mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-10 13:29:57 +00:00
letters: more timing
This commit is contained in:
parent
dbf8110611
commit
d2e6219118
|
@ -17,7 +17,7 @@ do_letters:
|
||||||
lda #28 ;
|
lda #28 ;
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
lda #<deater_ends
|
lda #<desire_ends+1
|
||||||
sta type_smc+1
|
sta type_smc+1
|
||||||
|
|
||||||
lda #<deater_offsets
|
lda #<deater_offsets
|
||||||
|
@ -29,6 +29,12 @@ do_letters:
|
||||||
;==============================
|
;==============================
|
||||||
; print maze
|
; print maze
|
||||||
|
|
||||||
|
lda #28
|
||||||
|
sta start_smc+1
|
||||||
|
|
||||||
|
lda #4
|
||||||
|
sta add_smc+1
|
||||||
|
|
||||||
lda #128 ;
|
lda #128 ;
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
|
@ -77,21 +83,15 @@ not_done2:
|
||||||
lda #36 ; start big
|
lda #36 ; start big
|
||||||
sta HGR_SCALE
|
sta HGR_SCALE
|
||||||
|
|
||||||
lda deater_ends,X ; X Position
|
lda desire_ends,X ; X Position
|
||||||
sta XPOS
|
sta XPOS
|
||||||
|
|
||||||
lda #76 ; Y position
|
lda #76 ; Y position
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
inner_zoom_loop:
|
inner_zoom_loop:
|
||||||
; FIXME: common code?
|
|
||||||
|
|
||||||
jsr xdraw ; draw
|
jsr draw_wait_erase
|
||||||
|
|
||||||
lda #100 ; wait a bit
|
|
||||||
jsr WAIT
|
|
||||||
|
|
||||||
jsr xdraw ; draw for good
|
|
||||||
|
|
||||||
dec HGR_SCALE ; zoom in
|
dec HGR_SCALE ; zoom in
|
||||||
dec HGR_SCALE
|
dec HGR_SCALE
|
||||||
|
@ -110,6 +110,15 @@ inner_zoom_loop:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
draw_wait_erase:
|
||||||
|
jsr xdraw ; draw
|
||||||
|
|
||||||
|
lda #100 ; wait a bit
|
||||||
|
jsr WAIT
|
||||||
|
|
||||||
|
jmp xdraw ; draw for good
|
||||||
|
|
||||||
|
|
||||||
;=========================
|
;=========================
|
||||||
; slide in
|
; slide in
|
||||||
;=========================
|
;=========================
|
||||||
|
@ -123,13 +132,15 @@ slide_in:
|
||||||
sta WHICH
|
sta WHICH
|
||||||
|
|
||||||
outer_slide_loop:
|
outer_slide_loop:
|
||||||
lda #255 ; start position
|
|
||||||
|
start_smc:
|
||||||
|
lda #252 ; start position
|
||||||
sta XPOS ; 255 instead of 279 for size reasons
|
sta XPOS ; 255 instead of 279 for size reasons
|
||||||
|
|
||||||
lda WHICH
|
lda WHICH
|
||||||
tax
|
tax
|
||||||
type_smc:
|
type_smc:
|
||||||
lda deater_ends,X
|
lda desire_ends+1,X
|
||||||
sta ends_smc+1
|
sta ends_smc+1
|
||||||
|
|
||||||
offsets_smc:
|
offsets_smc:
|
||||||
|
@ -142,17 +153,16 @@ offsets_smc:
|
||||||
not_done:
|
not_done:
|
||||||
|
|
||||||
slide_loop:
|
slide_loop:
|
||||||
jsr xdraw ; draw
|
|
||||||
|
|
||||||
lda #100 ; wait a bit
|
jsr draw_wait_erase
|
||||||
jsr WAIT
|
|
||||||
|
|
||||||
jsr xdraw ; erase
|
clc
|
||||||
|
lda XPOS
|
||||||
|
add_smc:
|
||||||
|
adc #$FC
|
||||||
|
sta XPOS
|
||||||
|
|
||||||
dec XPOS ; move left
|
lsr
|
||||||
dec XPOS
|
|
||||||
|
|
||||||
lda XPOS ; rotate
|
|
||||||
lsr
|
lsr
|
||||||
and #$f
|
and #$f
|
||||||
tax
|
tax
|
||||||
|
@ -162,16 +172,13 @@ slide_loop:
|
||||||
lda XPOS ; see if hit end
|
lda XPOS ; see if hit end
|
||||||
ends_smc:
|
ends_smc:
|
||||||
cmp #65
|
cmp #65
|
||||||
bcs slide_loop
|
bne slide_loop
|
||||||
|
|
||||||
jsr xdraw ; one last draw so remains onscreen
|
jsr xdraw ; one last draw so remains onscreen
|
||||||
|
|
||||||
inc WHICH ; move to next letter
|
inc WHICH ; move to next letter
|
||||||
|
|
||||||
; FIXME: bpl bra, WHICH always positive
|
bpl outer_slide_loop ; bra (WHICH always positive)
|
||||||
jmp outer_slide_loop ; loop
|
|
||||||
|
|
||||||
; rts ; done
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,23 +188,21 @@ ends_smc:
|
||||||
;=======================
|
;=======================
|
||||||
|
|
||||||
xdraw:
|
xdraw:
|
||||||
ldy #0
|
ldy #0 ; guess we can't draw far right edge
|
||||||
ldx XPOS
|
ldx XPOS
|
||||||
lda YPOS
|
lda YPOS
|
||||||
jsr HPOSN ; X= (y,x) Y=(a)
|
jsr HPOSN ; X= (y,x) Y=(a)
|
||||||
|
|
||||||
|
clc ; get shape table from offset
|
||||||
|
|
||||||
clc
|
|
||||||
lda #<shape_table_d
|
lda #<shape_table_d
|
||||||
xdraw_offset_smc:
|
xdraw_offset_smc:
|
||||||
adc #0
|
adc #0
|
||||||
tax
|
tax
|
||||||
ldy #>shape_table_d
|
ldy #>shape_table_d ; assume always in same page
|
||||||
|
|
||||||
lda ROTATE
|
lda ROTATE
|
||||||
|
|
||||||
jmp XDRAW0
|
jmp XDRAW0 ; tail call
|
||||||
|
|
||||||
.if 0
|
.if 0
|
||||||
;=======================
|
;=======================
|
||||||
|
@ -228,8 +233,10 @@ flip_page:
|
||||||
; bne init_loop ; 2
|
; bne init_loop ; 2
|
||||||
|
|
||||||
rotate_pattern:
|
rotate_pattern:
|
||||||
.byte 0,3,6,9, 9,6,3,0, 0,$FD,$FA,$F7, $F7,$FA,$FD, 0
|
; offset by 3 to give original effect
|
||||||
|
; .byte 0,3,6
|
||||||
|
.byte 9, 9,6,3,0, 0,$FD,$FA,$F7, $F7,$FA,$FD, 0
|
||||||
|
.byte 0,3,6
|
||||||
|
|
||||||
deater_offsets:
|
deater_offsets:
|
||||||
.byte 0 ; D
|
.byte 0 ; D
|
||||||
|
@ -241,30 +248,30 @@ deater_offsets:
|
||||||
.byte $FF ; end
|
.byte $FF ; end
|
||||||
|
|
||||||
ma2e_offsets:
|
ma2e_offsets:
|
||||||
.byte 39 ; M
|
|
||||||
.byte 15 ; A
|
|
||||||
.byte 47 ; 2
|
|
||||||
.byte 8 ; E
|
.byte 8 ; E
|
||||||
|
.byte 47 ; 2
|
||||||
|
.byte 15 ; A
|
||||||
|
.byte 39 ; M
|
||||||
.byte $FF ; end
|
.byte $FF ; end
|
||||||
|
|
||||||
|
|
||||||
desire_offsets:
|
desire_offsets:
|
||||||
|
.byte 67 ; -
|
||||||
.byte 0 ; D
|
.byte 0 ; D
|
||||||
.byte 8 ; E
|
.byte 8 ; E
|
||||||
.byte 54 ; S
|
.byte 54 ; S
|
||||||
.byte 61 ; I
|
.byte 61 ; I
|
||||||
.byte 30 ; R
|
.byte 30 ; R
|
||||||
.byte 8 ; E
|
.byte 8 ; E
|
||||||
|
.byte 67 ; -
|
||||||
.byte $FF ; end
|
.byte $FF ; end
|
||||||
|
|
||||||
deater_ends:
|
desire_ends:
|
||||||
; center of screen is 140, offset by 12?
|
; center of screen is 140, offset by 16 each way
|
||||||
; want multiple of 24?
|
.byte 28,60,92,124,156,188,220,252
|
||||||
.byte 80,104,128,152,176,200
|
|
||||||
|
|
||||||
ma2e_ends:
|
ma2e_ends:
|
||||||
; center of screen is 140, offset by 12.5?
|
.byte 188,156,124,92
|
||||||
.byte 104,128,152,176
|
|
||||||
|
|
||||||
|
|
||||||
.align $100
|
.align $100
|
||||||
|
@ -279,8 +286,9 @@ shape_table_m: .byte $24,$37,$36,$4e, $24,$24,$07,$00 ; 39
|
||||||
shape_table_2: .byte $25,$3c,$97,$39, $36,$2d,$00 ; 47
|
shape_table_2: .byte $25,$3c,$97,$39, $36,$2d,$00 ; 47
|
||||||
shape_table_s: .byte $27,$2c,$95,$2b, $36,$3f,$00 ; 54
|
shape_table_s: .byte $27,$2c,$95,$2b, $36,$3f,$00 ; 54
|
||||||
shape_table_i: .byte $d2,$ed,$24,$e4, $2d,$00 ; 61
|
shape_table_i: .byte $d2,$ed,$24,$e4, $2d,$00 ; 61
|
||||||
shape_table_line: .byte $12,$24,$24,$00 ; 67
|
shape_table_hline: .byte $2b,$05,$00 ; 67
|
||||||
|
|
||||||
|
;shape_table_vline: .byte $12,$24,$24,$00 ; 67
|
||||||
;shape_table_o: .byte $23,$2c,$35,$36, $3e,$27,$04,$00 ;
|
;shape_table_o: .byte $23,$2c,$35,$36, $3e,$27,$04,$00 ;
|
||||||
;shape_table_v: .byte $18,$30,$36,$35, $28,$24,$04,$00 ;
|
;shape_table_v: .byte $18,$30,$36,$35, $28,$24,$04,$00 ;
|
||||||
|
|
||||||
|
|
6
graphics/hgr/shape_letters/letters/letter.hline
Normal file
6
graphics/hgr/shape_letters/letters/letter.hline
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Number of shapes
|
||||||
|
1
|
||||||
|
START
|
||||||
|
NLT RT RT
|
||||||
|
STOP
|
||||||
|
|
Loading…
Reference in New Issue
Block a user