mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-04 05:05:13 +00:00
46b20a427c
cycle counting was wrong in gr_clear update appleii_intro to compensate move some stuff around
56 lines
1.0 KiB
ArmAsm
56 lines
1.0 KiB
ArmAsm
|
|
;=========================================================
|
|
; clear_all
|
|
;=========================================================
|
|
; clear 48 rows
|
|
; page in DRAW_PAGE
|
|
; 45+4+(45*120)+5 = 5454
|
|
|
|
gr_clear_all:
|
|
clc ; 2
|
|
lda DRAW_PAGE ; 3
|
|
|
|
adc #4 ; 2
|
|
sta __caf+2 ; 4
|
|
sta __caf+5 ; 4
|
|
adc #1 ; 2
|
|
sta __caf+8 ; 4
|
|
sta __caf+11 ; 4
|
|
adc #1 ; 2
|
|
sta __caf2+2 ; 4
|
|
sta __caf2+5 ; 4
|
|
adc #1 ; 2
|
|
sta __caf2+8 ; 4
|
|
sta __caf2+11 ; 4
|
|
;===========
|
|
; 45
|
|
|
|
ldy #119 ; 2
|
|
clear_all_color:
|
|
lda #$00 ; 2
|
|
;============
|
|
; 4
|
|
clear_all_fast_loop:
|
|
__caf:
|
|
sta $400,Y ; 5
|
|
sta $480,Y ; 5
|
|
sta $500,Y ; 5
|
|
sta $580,Y ; 5
|
|
__caf2:
|
|
sta $600,Y ; 5
|
|
sta $680,Y ; 5
|
|
sta $700,Y ; 5
|
|
sta $780,Y ; 5
|
|
|
|
dey ; 2
|
|
bpl clear_all_fast_loop ; 3
|
|
;============
|
|
; 45
|
|
|
|
; -1
|
|
rts ; 6
|
|
|
|
gr_clear_all_end:
|
|
|
|
.assert >gr_clear_all = >gr_clear_all_end, error, "gr_clear_all crosses page"
|