mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-23 05:29:03 +00:00
demo: move things to functions, no net win?
This commit is contained in:
parent
3afabf3af4
commit
1fe81ea5f6
101
demos/demosplash2022/draw_letter.s
Normal file
101
demos/demosplash2022/draw_letter.s
Normal file
@ -0,0 +1,101 @@
|
||||
;========================
|
||||
; draw letter
|
||||
;========================
|
||||
; so inefficient
|
||||
; letter to draw in INL:INH
|
||||
|
||||
draw_letter:
|
||||
|
||||
ldy #$FF ; iterator
|
||||
letter_loop:
|
||||
|
||||
|
||||
hplot:
|
||||
; setup X value
|
||||
|
||||
iny
|
||||
|
||||
jsr get_x ; get adjusted x-coord in A
|
||||
|
||||
tax ; put in X
|
||||
|
||||
; setup Y value
|
||||
|
||||
jsr get_y
|
||||
|
||||
ldy #0 ; set top of X value (FIXME)
|
||||
|
||||
jsr HPLOT0 ; plot at (Y,X), (A)
|
||||
|
||||
ldy SAVE_Y ; restore pointer
|
||||
|
||||
iny
|
||||
|
||||
hplot_to:
|
||||
|
||||
; get X value
|
||||
|
||||
jsr get_x ; get adjusted x-coord in A
|
||||
|
||||
pha ; save for later
|
||||
|
||||
lda #0 ; wrap if > 256
|
||||
adc #0
|
||||
tax
|
||||
|
||||
; get Y value
|
||||
|
||||
jsr get_y
|
||||
|
||||
tay ; put into Y
|
||||
|
||||
pla ; restore X value
|
||||
|
||||
jsr HGLIN ; line to (X,A),(Y)
|
||||
|
||||
ldy SAVE_Y
|
||||
|
||||
iny
|
||||
|
||||
; see if at end of line or of whole thing
|
||||
|
||||
lda (INL),Y ; get next value
|
||||
|
||||
bmi letter_done ; if negative, we are done
|
||||
|
||||
cmp #$7F
|
||||
beq hplot
|
||||
bne hplot_to
|
||||
|
||||
letter_done:
|
||||
rts
|
||||
|
||||
|
||||
;================
|
||||
; get next X co-ord
|
||||
; multipy by 2
|
||||
; increment y
|
||||
get_x:
|
||||
lda (INL),Y ; get X value
|
||||
asl ; need to multiply by 2
|
||||
clc
|
||||
adc LETTER_X
|
||||
|
||||
iny
|
||||
|
||||
rts
|
||||
|
||||
;================
|
||||
; get next Y co-ord
|
||||
; increment y
|
||||
; save to SAVE_Y
|
||||
|
||||
get_y:
|
||||
sty SAVE_Y ; save Y value on stack for later
|
||||
|
||||
lda (INL),Y ; get Y value
|
||||
clc
|
||||
adc LETTER_Y
|
||||
|
||||
rts
|
||||
|
Loading…
x
Reference in New Issue
Block a user