dos33fsprogs/megademo/gr_hline.s

45 lines
910 B
ArmAsm
Raw Normal View History

;==================================
; HLINE
;==================================
; Color in A
; Y has which line
2018-09-26 20:43:26 +00:00
; takes 435 cycles
hline:
pha ; 3
ldx gr_offsets,y ; 4+
2018-09-26 20:43:26 +00:00
stx hline_loop+1 ; self-modify code ; 4
lda gr_offsets+1,y ; 4+
clc ; 2
adc DRAW_PAGE ; 3
2018-09-26 20:43:26 +00:00
sta hline_loop+2 ; self-modify code ; 4
pla ; 4
ldx #39 ; 2
2018-09-26 20:43:26 +00:00
;===========
; 30
hline_loop:
sta $5d0,X ; 38 ; 5
dex ; 2
bpl hline_loop ; 2nt/3
2018-09-26 20:43:26 +00:00
;===========
; 40*(10)=400
; -1
rts ; 6
;==========================
; Clear gr screen
;==========================
2018-09-26 20:43:26 +00:00
; Color in A, Clears 0 to and including Y
; clear_gr: takes 2+(48/2)*(6+435+7)+5 = 10759
; cpl: takes (Y/2)*(6+435+7)+5 = ?
clear_gr:
2018-09-26 20:43:26 +00:00
ldy #46 ; 2
clear_page_loop:
2018-09-26 20:43:26 +00:00
jsr hline ; 6+435
dey ; 2
dey ; 2
bpl clear_page_loop ; 2/3
rts ; 6