diff options
Diffstat (limited to 'samples/cube.s')
-rw-r--r-- | samples/cube.s | 109 |
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; |