drawing gray borders and have routines for the scanlines; right side scanlines cause a stack underflow, so must fix
This commit is contained in:
parent
ad43323600
commit
dd3d318039
1 changed files with 136 additions and 12 deletions
|
@ -114,6 +114,11 @@ BRK
|
|||
&keep-state POP
|
||||
BRK
|
||||
&state4 DUP #04 NEQ ,&state5 JCN
|
||||
;draw-gray-borders JSR2
|
||||
( ;draw-bl-scanlines JSR2
|
||||
;draw-tl-scanlines JSR2
|
||||
;draw-tr-scanlines JSR2
|
||||
;draw-br-scanlines JSR2 )
|
||||
;draw-uxn-logo JSR2
|
||||
;draw-xrxs-logo-xr JSR2
|
||||
;draw-xrxs-logo-xs JSR2
|
||||
|
@ -123,8 +128,7 @@ BRK
|
|||
BRK
|
||||
|
||||
@clear-screen ( -> )
|
||||
( fix this to clear the animation AND fix the overflow! )
|
||||
|
||||
|
||||
.Screen/width DEI2 #0000 &whilex EQU2k ,&endx JCN
|
||||
DUP2 ,&x STR2
|
||||
.Screen/height DEI2 #0000 &whiley EQU2k ,&endy JCN
|
||||
|
@ -132,15 +136,15 @@ BRK
|
|||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
;blank .Screen/addr DEO2
|
||||
#80 .Screen/sprite DEO
|
||||
#10 .Screen/sprite DEO
|
||||
#40 .Screen/sprite DEO
|
||||
#0008 ADD2 ,&whiley JMP &endy POP2 POP2
|
||||
#0008 ADD2 ,&whilex JMP &endx POP2 POP2
|
||||
RTN
|
||||
|
||||
&x $2
|
||||
&y $2
|
||||
RTN
|
||||
|
||||
RTN
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
@scoot-logos ( -> )
|
||||
.logo-coords/x LDZ2 #0021 LTH2 ,&no-scoot-x JCN
|
||||
.logo-coords/x LDZ2 #01 SFT2
|
||||
|
@ -160,7 +164,7 @@ RTN
|
|||
|
||||
#0100 #0000 &while EQU2k ,&end JCN
|
||||
DUP2 ;uxnlogo ADD2 .Screen/addr DEO2
|
||||
#81 .Screen/sprite DEO INC-X
|
||||
#c1 .Screen/sprite DEO INC-X
|
||||
|
||||
NEXT-TILE #0030 AND2 #0000 NEQ2 ,&no-inc-y JCN
|
||||
.logo-coords/x LDZ2 #0020 SUB2 .Screen/x DEO2
|
||||
|
@ -177,7 +181,7 @@ RTN
|
|||
|
||||
#0080 #0000 &while EQU2k ,&end JCN
|
||||
DUP2 ;xrxslogo ADD2 .Screen/addr DEO2
|
||||
#81 .Screen/sprite DEO INC-X
|
||||
#c1 .Screen/sprite DEO INC-X
|
||||
|
||||
NEXT-TILE #0030 AND2 #0000 NEQ2 ,&no-inc-y JCN
|
||||
.logo-coords/x LDZ2 .Screen/x DEO2
|
||||
|
@ -194,7 +198,7 @@ RTN
|
|||
|
||||
#0100 #0080 &while EQU2k ,&end JCN
|
||||
DUP2 ;xrxslogo ADD2 .Screen/addr DEO2
|
||||
#81 .Screen/sprite DEO INC-X
|
||||
#c1 .Screen/sprite DEO INC-X
|
||||
|
||||
NEXT-TILE #0030 AND2 #0000 NEQ2 ,&no-inc-y JCN
|
||||
.logo-coords/x LDZ2 .Screen/x DEO2
|
||||
|
@ -204,10 +208,130 @@ RTN
|
|||
|
||||
RTN
|
||||
|
||||
@draw-gray-borders ( -> )
|
||||
|
||||
;blank .Screen/addr DEO2
|
||||
#0028 #0000 &whilemtop EQU2k ,&endmtop JCN
|
||||
DUP2 .Screen/y DEO2
|
||||
.Screen/width DEI2 #0000 &whiletop EQU2k ,&endtop JCN
|
||||
DUP2 .Screen/x DEO2
|
||||
#84 .Screen/sprite DEO
|
||||
#0008 ADD2 ,&whiletop JMP &endtop POP2 POP2
|
||||
#0008 ADD2 ,&whilemtop JMP &endmtop POP2 POP2
|
||||
|
||||
#0040 #0000 &whilemleft EQU2k ,&endmleft JCN
|
||||
DUP2 .Screen/x DEO2
|
||||
.Screen/height DEI2 #0028 SUB2 #0028 &whileleft EQU2k ,&endleft JCN
|
||||
DUP2 .Screen/y DEO2
|
||||
#84 .Screen/sprite DEO
|
||||
#0008 ADD2 ,&whileleft JMP &endleft POP2 POP2
|
||||
#0008 ADD2 ,&whilemleft JMP &endmleft POP2 POP2
|
||||
|
||||
.Screen/width DEI2 DUP2 #0040 SUB2 &whilemright EQU2k ,&endmright JCN
|
||||
DUP2 .Screen/x DEO2
|
||||
.Screen/height DEI2 #0028 SUB2 #0028 &whileright EQU2k ,&endright JCN
|
||||
DUP2 .Screen/y DEO2
|
||||
#84 .Screen/sprite DEO
|
||||
#0008 ADD2 ,&whileright JMP &endright POP2 POP2
|
||||
#0008 ADD2 ,&whilemright JMP &endmright POP2 POP2
|
||||
|
||||
.Screen/height DEI2 DUP2 #0028 SUB2 &whilembottom EQU2k ,&endmbottom JCN
|
||||
DUP2 .Screen/y DEO2
|
||||
.Screen/width DEI2 #0000 &whilebottom EQU2k ,&endbottom JCN
|
||||
DUP2 .Screen/x DEO2
|
||||
#84 .Screen/sprite DEO
|
||||
#0008 ADD2 ,&whilebottom JMP &endbottom POP2 POP2
|
||||
#0008 ADD2 ,&whilembottom JMP &endmbottom POP2 POP2
|
||||
RTN
|
||||
|
||||
|
||||
( come up with a more elegant way to draw these that doesn't cause a stack underflow )
|
||||
|
||||
@draw-bl-scanlines ( -> )
|
||||
CENTER-Y ,&y STR2
|
||||
#0008 ,&x STR2
|
||||
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
|
||||
&whileld
|
||||
,&y LDR2 CENTER-Y SUB2 #0004 DIV2 #0008 ADD2 ,&x STR2
|
||||
.Screen/height DEI2 #0028 SUB2 ,&y LDR2 LTH2 ,&endld JCN
|
||||
&dlscan #0040 ,&x LDR2 EQU2 ,&enddlscan JCN
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
#03 .Screen/pixel DEO
|
||||
,&x LDR2 #0001 ADD2 ,&x STR2 ,&dlscan JMP &enddlscan
|
||||
,&y LDR2 #0004 ADD2 ,&y STR2 ,&whileld JMP &endld
|
||||
RTN
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
@draw-tl-scanlines
|
||||
#0028 ,&y STR2
|
||||
#0008 ,&x STR2
|
||||
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
&whilelu
|
||||
CENTER-Y ,&y LDR2 SUB2 #0004 DIV2 #0008 ADD2 ,&x STR2
|
||||
CENTER-Y ,&y LDR2 LTH2 ,&endlu JCN
|
||||
&ulscan #0040 ,&x LDR2 EQU2 ,&endulscan JCN
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
#03 .Screen/pixel DEO
|
||||
,&x LDR2 #0001 ADD2 ,&x STR2 ,&ulscan JMP &endulscan
|
||||
,&y LDR2 #0004 ADD2 ,&y STR2 ,&whilelu JMP &endlu
|
||||
|
||||
RTN
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
@draw-br-scanlines ( -> )
|
||||
CENTER-Y ,&y STR2
|
||||
.Screen/width #0008 SUB2 ,&x STR2
|
||||
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
|
||||
&whilerd
|
||||
.Screen/width DEI2 ,&y LDR2 CENTER-Y SUB2 #0004 DIV2 #0008 ADD2 SUB2 ,&x STR2
|
||||
.Screen/height DEI2 #0028 SUB2 ,&y LDR2 LTH2 ,&endrd JCN
|
||||
&drscan .Screen/width DEI2 #0040 SUB2 ,&x LDR2 EQU2 ,&enddrscan JCN
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
#03 .Screen/pixel DEO
|
||||
,&x LDR2 #0001 SUB2 ,&x STR2 ,&drscan JMP &enddrscan
|
||||
,&y LDR2 #0004 ADD2 ,&y STR2 ,&whilerd JMP &endrd
|
||||
RTN
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
@draw-tr-scanlines
|
||||
#0028 ,&y STR2
|
||||
.Screen/width #0008 SUB2 ,&x STR2
|
||||
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
&whileru
|
||||
.Screen/width DEI2 CENTER-Y ,&y LDR2 SUB2 #0004 DIV2 #0008 ADD2 SUB2 ,&x STR2
|
||||
CENTER-Y ,&y LDR2 LTH2 ,&endru JCN
|
||||
&urscan .Screen/width DEI2 #0040 SUB2 ,&x LDR2 EQU2 ,&endurscan JCN
|
||||
,&x LDR2 .Screen/x DEO2
|
||||
,&y LDR2 .Screen/y DEO2
|
||||
#03 .Screen/pixel DEO
|
||||
,&x LDR2 #0001 SUB2 ,&x STR2 ,&urscan JMP &endurscan
|
||||
,&y LDR2 #0004 ADD2 ,&y STR2 ,&whileru JMP &endru
|
||||
|
||||
RTN
|
||||
&x $2
|
||||
&y $2
|
||||
|
||||
|
||||
( constants )
|
||||
@spritesheet "xrxs.chr 00
|
||||
|
||||
( sprites )
|
||||
@blank $16
|
||||
@uxnlogo $128
|
||||
@uxnlogo $128
|
||||
@xrxslogo $128
|
||||
|
|
Loading…
Reference in a new issue