dos33fsprogs/demos/lovebyte2023/weave_16/weave15.s
2023-01-28 18:17:22 -05:00

52 lines
1.0 KiB
ArmAsm

; 15B Weave Pattern
; by Vince `deater` Weaver / DsR
; for Lovebyte2023
; zero page locations
GBASL = $26
GBASH = $27
HGR_SCALE = $E7
; ROM locations
HGR2 = $F3D8
HPOSN = $F411
XDRAW0 = $F65D
XDRAW1 = $F661
HPLOT0 = $F457
weave15:
; we load at zero page $E7 which is HGR_SCALE
; this means the scale is $20 (JSR)
jsr HGR2 ; Hi-res, full screen ; 3
; Y=0, A=0 after this call
; A and Y are 0 here.
; X is left behind by the boot process?
; set GBASL/GBASH
; we really have to call this, otherwise it won't run
; on some real hardware depending on setup of zero page at boot
jsr HPLOT0 ; calls HPOSN and maybe sets some
; registers a bit better?
; jsr HPOSN ; set screen position to X= (y,x) Y=(a)
; saves X,Y,A to zero page
; after Y= orig X/7
; A and X are ??
tiny_loop:
lda #$E2 ; load $E2 into A, X, and Y
tax ; our shape table is in ROM at $E2E2
tay ; ROT is in A, but mod64
jsr XDRAW0 ; XDRAW 1 AT X,Y
; Both A and X are 0 at exit
; Z flag set on exit
; Y varies
beq tiny_loop ; bra