mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-12 23:31:43 +00:00
waterfall: shriking the code
note, this has broken things for now plan is to do some self-modifying code
This commit is contained in:
parent
7dfb809f76
commit
65b004cd06
40
waterfall/gr_hline.s
Normal file
40
waterfall/gr_hline.s
Normal file
@ -0,0 +1,40 @@
|
||||
;==================================
|
||||
; HLINE
|
||||
;==================================
|
||||
|
||||
; Color in A
|
||||
; Y has which line
|
||||
hline:
|
||||
pha ; 3
|
||||
ldx gr_offsets,y ; 4+
|
||||
stx hline_loop+1 ; 4
|
||||
lda gr_offsets+1,y ; 4+
|
||||
clc ; 2
|
||||
adc DRAW_PAGE ; 3
|
||||
sta hline_loop+2 ; 4
|
||||
pla ; 4
|
||||
ldx #39 ; 2
|
||||
hline_loop:
|
||||
sta $5d0,X ; 38 ; 5
|
||||
dex ; 2
|
||||
bpl hline_loop ; 2nt/3
|
||||
rts ; 6
|
||||
|
||||
;==========================
|
||||
; Clear gr screen
|
||||
;==========================
|
||||
; Color in A
|
||||
clear_gr:
|
||||
ldy #46
|
||||
clear_page_loop:
|
||||
jsr hline
|
||||
dey
|
||||
dey
|
||||
bpl clear_page_loop
|
||||
rts
|
||||
|
||||
gr_offsets:
|
||||
.word $400,$480,$500,$580,$600,$680,$700,$780
|
||||
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
|
||||
.word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0
|
||||
|
@ -220,8 +220,6 @@ vblank:
|
||||
; =============
|
||||
; 15 cycles
|
||||
|
||||
; jsr do_nothing ; 6
|
||||
|
||||
; 15 cycles
|
||||
inc YPOS ; 5
|
||||
nop ; 2
|
||||
@ -382,76 +380,7 @@ adjust_xpos:
|
||||
|
||||
jmp display_loop ; 3
|
||||
|
||||
|
||||
;=================================
|
||||
; do nothing
|
||||
;=================================
|
||||
; and take 11-6 = 5 cycles to do it
|
||||
;do_nothing:
|
||||
|
||||
; Try X=3 Y=1 cycles=22
|
||||
|
||||
; nop ; 2
|
||||
; nop ; 2
|
||||
|
||||
; ldy #1 ; 2
|
||||
;loop1:
|
||||
; ldx #3 ; 2
|
||||
;loop2:
|
||||
; dex ; 2
|
||||
; bne loop2 ; 2nt/3
|
||||
|
||||
; dey ; 2
|
||||
; bne loop1 ; 2nt/3
|
||||
|
||||
|
||||
; rts ; 6
|
||||
|
||||
|
||||
|
||||
;==================================
|
||||
; HLINE
|
||||
;==================================
|
||||
|
||||
; Color in A
|
||||
; Y has which line
|
||||
hline:
|
||||
pha ; 3
|
||||
ldx gr_offsets,y ; 4+
|
||||
stx hline_loop+1 ; 4
|
||||
lda gr_offsets+1,y ; 4+
|
||||
clc ; 2
|
||||
adc DRAW_PAGE ; 3
|
||||
sta hline_loop+2 ; 4
|
||||
pla ; 4
|
||||
ldx #39 ; 2
|
||||
hline_loop:
|
||||
sta $5d0,X ; 38 ; 5
|
||||
dex ; 2
|
||||
bpl hline_loop ; 2nt/3
|
||||
rts ; 6
|
||||
|
||||
;==========================
|
||||
; Clear gr screen
|
||||
;==========================
|
||||
; Color in A
|
||||
clear_gr:
|
||||
ldy #46
|
||||
clear_page_loop:
|
||||
jsr hline
|
||||
dey
|
||||
dey
|
||||
bpl clear_page_loop
|
||||
rts
|
||||
|
||||
.align $100
|
||||
|
||||
gr_offsets:
|
||||
.word $400,$480,$500,$580,$600,$680,$700,$780
|
||||
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
|
||||
.word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0
|
||||
|
||||
|
||||
.include "gr_hline.s"
|
||||
.include "../asm_routines/gr_unrle.s"
|
||||
.align $100
|
||||
.include "../asm_routines/keypress.s"
|
||||
@ -563,194 +492,108 @@ even_twinkle_stars:
|
||||
|
||||
twinkle_loop_even:
|
||||
|
||||
; page1 for 4 lines, 65 - 4 = 61 -2 = 59 - 25 = 34
|
||||
|
||||
; line 0
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
; line 1
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4
|
||||
; endfalls
|
||||
; delay 21
|
||||
nop
|
||||
nop
|
||||
; asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
; line 2
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
; line 3
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
lda #29 ; 2
|
||||
jsr delay_a ; 25+27
|
||||
|
||||
; below: 7 if not zero
|
||||
; 7 (including ldy later) if is zero
|
||||
|
||||
; line 4
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4 ; 44
|
||||
; end falls
|
||||
; delay 21 - 7 from loop
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
nop ; 2 ; 58
|
||||
|
||||
dey ; 2
|
||||
beq twinkle_loop_even_done ;
|
||||
; 2
|
||||
jmp twinkle_loop_even ; 3
|
||||
beq twinkle_loop_even_done ; 3
|
||||
;-1
|
||||
jmp twinkle_loop_even ; 3
|
||||
|
||||
|
||||
|
||||
twinkle_loop_even_done:
|
||||
|
||||
ldy #31 ; 2
|
||||
falls_loop_even:
|
||||
|
||||
; line 0
|
||||
; === line 0
|
||||
bit PAGE0 ; 4
|
||||
; delay 31
|
||||
lda #4 ; 2
|
||||
jsr delay_a ; 25+4
|
||||
|
||||
; delay 11
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
|
||||
; delay 19
|
||||
nop ; 2
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE0 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
; endfalls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
|
||||
; line 2
|
||||
;=== line 1
|
||||
bit PAGE0 ; 4
|
||||
; delay 31
|
||||
lda #4 ; 2
|
||||
jsr delay_a ; 25+4
|
||||
|
||||
; delay 11
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
|
||||
; delay 19
|
||||
nop ; 2
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE0 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
|
||||
; line 3
|
||||
;=== line 2
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
; delay 31
|
||||
lda #4 ; 2
|
||||
jsr delay_a ; 25+4
|
||||
|
||||
; delay 11
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
; delay 19
|
||||
nop ; 2
|
||||
nop ; 2
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
|
||||
; line 4
|
||||
;== line 4
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
; delay 31
|
||||
lda #4 ; 2
|
||||
jsr delay_a ; 25+4
|
||||
|
||||
; delay 11
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4 ; 44
|
||||
; end falls
|
||||
bit PAGE0 ; 4 ; 46
|
||||
|
||||
; delay 21 - 7 from loop
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
nop ; 2
|
||||
nop ; 2
|
||||
asl DUMMY ; 6
|
||||
nop ; 2 ; 58
|
||||
|
||||
@ -764,96 +607,29 @@ falls_loop_even_done:
|
||||
|
||||
ground_loop_even:
|
||||
|
||||
; line 0
|
||||
;==== line 0
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE0 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
; endfalls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
; delay 61
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
|
||||
; line 2
|
||||
;==== line 1
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
; delay 61
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
|
||||
; line 3
|
||||
;==== line 2
|
||||
bit PAGE0 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE0 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE0 ; 4
|
||||
; end falls
|
||||
; delay 21
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
; delay 61
|
||||
lda #34 ; 2
|
||||
jsr delay_a ; 25+34
|
||||
|
||||
; line 4
|
||||
;=== line 3
|
||||
bit PAGE1 ; 4
|
||||
; delay 29
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
asl DUMMY ; 6
|
||||
lda YPOS ; 3
|
||||
nop ; 2
|
||||
nop
|
||||
; falls
|
||||
bit PAGE1 ; 4
|
||||
lda YPOS ; 3
|
||||
bit PAGE1 ; 4 ; 44
|
||||
; end falls
|
||||
; delay 21 - 7 from loop
|
||||
; asl DUMMY ; 6
|
||||
nop
|
||||
nop
|
||||
asl DUMMY ; 6
|
||||
nop ; 2 ; 58
|
||||
; delay 54
|
||||
lda #27 ; 2
|
||||
jsr delay_a ; 25+27
|
||||
|
||||
dey ; 2
|
||||
beq ground_loop_even_done ;
|
||||
|
Loading…
x
Reference in New Issue
Block a user