summaryrefslogtreecommitdiff
path: root/samples/cube.s
diff options
context:
space:
mode:
Diffstat (limited to 'samples/cube.s')
-rw-r--r--samples/cube.s109
1 files changed, 104 insertions, 5 deletions
diff --git a/samples/cube.s b/samples/cube.s
index 593bf79..29f36cc 100644
--- a/samples/cube.s
+++ b/samples/cube.s
@@ -19,6 +19,7 @@ NL DB, ( (-8) * 65536); oppose de L
V DB 8 * 2; distance pt de vue - plan de l ecran
X0 DB 40; centre de l ecran
Y0 DB 12; centre de l ecran
+sauge DS "\n";
.text
;
@@ -28,8 +29,8 @@ Y0 DB 12; centre de l ecran
;
Mult: MUL R5, R6;
- SHR Rd, 16;
- SHL Rg, 16;
+ SHR Rd, R30;
+ SHL Rg, R30;
ADD R5, Rg, Rd;
RET;
@@ -73,6 +74,7 @@ InitCube: MOV, Points3D[0], L;
MOV, Points3D[22], NL;
MOV, Points3D[23], NL;
;
+ MOV R30, 16
RET;
@@ -300,7 +302,7 @@ BouclProj: MOV R5, Points3D[R3+0];
ADD R6, R6, R7;
DIV R5, R6;
MOV R5, Rg;
- SHR R5, 16;
+ SHR R5, R30;
MOV R6, [X0];
ADD R5, R5, R6;
MOV Points2D[R2], R5;
@@ -314,7 +316,7 @@ BouclProj: MOV R5, Points3D[R3+0];
ADD R6, R6, R7;
DIV R5, R6;
MOV R5, Rg;
- SHR R5, 16;
+ SHR R5, R30;
MOV R6, [Y0];
ADD R5, R5, R6;
MOV Points2D[R2+1], R5;
@@ -339,61 +341,157 @@ Draw: MOV R7, Points2D[0];
MOV R6, Points2D[1];
MOV R9, Points2D[2];
MOV R8, Points2D[3];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[2];
MOV R6, Points2D[3];
MOV R9, Points2D[4];
MOV R8, Points2D[5];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[4];
MOV R6, Points2D[5];
MOV R9, Points2D[6];
MOV R8, Points2D[7];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[6];
MOV R6, Points2D[7];
MOV R9, Points2D[0];
MOV R8, Points2D[1];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[8];
MOV R6, Points2D[9];
MOV R9, Points2D[10];
MOV R8, Points2D[11];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[10];
MOV R6, Points2D[11];
MOV R9, Points2D[12];
MOV R8, Points2D[13];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[12];
MOV R6, Points2D[13];
MOV R9, Points2D[14];
MOV R8, Points2D[15];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[14];
MOV R6, Points2D[15];
MOV R9, Points2D[8];
MOV R8, Points2D[9];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[0];
MOV R6, Points2D[1];
MOV R9, Points2D[8];
MOV R8, Points2D[9];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[2];
MOV R6, Points2D[3];
MOV R9, Points2D[10];
MOV R8, Points2D[11];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[4];
MOV R6, Points2D[5];
MOV R9, Points2D[12];
MOV R8, Points2D[13];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
MOV R7, Points2D[6];
MOV R6, Points2D[7];
MOV R9, Points2D[14];
MOV R8, Points2D[15];
+ MOV, [0xffffff06], R7;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R6;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R9;
+ MOV, [0xffffff04], sauge;
+ MOV, [0xffffff06], R8;
+ MOV, [0xffffff04], sauge;
CALL DrawLine;
RET;
@@ -433,10 +531,11 @@ IncrAngl: MOV R5, [T1];
;
.start
CALL InitCube;
+ CALL ClrScr;
Main: CALL IncrAngl;
CALL MajMatr;
CALL RotCube;
CALL Proj;
- CALL ClrScr;
+ ;CALL ClrScr;
CALL Draw;
JMP Main;