dos33fsprogs/graphics/hgr/boxes/myst_tiny.s
2021-06-16 16:50:28 -04:00

94 lines
1.3 KiB
ArmAsm

; zero page
HGR_X = $E0
HGR_XH = $E1
HGR_Y = $E2
HGR_COLOR = $E4
YRUN = $F0
XRUN = $F1
Y1 = $F2
X1 = $F3
COLOR = $F4
COLOR1 = $F5
COLOR2 = $F6
; rom routines
HGR2 = $F3D8
HPOSN = $F411
HLINRL = $F530
COLORTBL = $F6F6
myst_tiny:
jsr HGR2
outer_loop:
ldy #5
data_smc:
lda data
sta YRUN-1,Y
inc data_smc+1
dey
bne data_smc
rectangle_loop:
lda COLOR
asl ; nibble swap by david galloway
adc #$80
rol
asl
adc #$80
rol
sta COLOR
and #$f
tax
lda COLORTBL,X
sta HGR_COLOR
ldx X1 ; X1 into X
lda Y1 ; Y1 into A
ldy #0 ; always 0
jsr HPOSN ; (Y,X),(A) (values stores in HGRX,XH,Y)
lda XRUN ; XRUN into A
ldx #0 ; always 0
ldy #0 ; relative Y is 0
jsr HLINRL ; (X,A),(Y)
inc Y1
dec YRUN
bne rectangle_loop
beq outer_loop
data:
.byte $33,$00,$00,$8C,$5A
.byte $33,$8C,$00,$8B,$5A
.byte $16,$00,$5A,$8C,$65
.byte $16,$8C,$5A,$8B,$65
.byte $42,$9D,$79,$33,$46
.byte $07,$8D,$74,$5A,$13
.byte $00,$B4,$11,$21,$68
.byte $70,$9C,$14,$35,$6A
.byte $07,$91,$0A,$43,$0A
.byte $07,$A2,$00,$3A,$14
.byte $50,$AC,$5B,$0F,$20
.byte $77,$A9,$1F,$16,$20
.byte $77,$A5,$27,$1D,$15
.byte $51,$00,$A3,$3F,$1C
.byte $51,$3F,$A7,$72,$18
.byte $51,$B1,$B9,$35,$06
.byte $50,$17,$00,$10,$B2
.byte $15,$01,$0D,$62,$1F
.byte $50,$00,$00,$12,$BC
.byte $05,$42,$00,$0F,$BB
.byte $00,$B1,$20,$04,$12