mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-29 08:55:10 +00:00
157 lines
1.7 KiB
ArmAsm
157 lines
1.7 KiB
ArmAsm
|
;================================
|
||
|
; draw the sorta vectored logo
|
||
|
;================================
|
||
|
|
||
|
; 908 bytes -- first display
|
||
|
; 916 bytes -- scroll down
|
||
|
|
||
|
show_logo:
|
||
|
|
||
|
lda #76
|
||
|
sta LETTER_Y
|
||
|
|
||
|
logo_loop:
|
||
|
ldx #7
|
||
|
jsr HCOLOR1 ; set color
|
||
|
|
||
|
lda #14
|
||
|
sta LETTER_X
|
||
|
|
||
|
lda #<letter_d
|
||
|
sta INL
|
||
|
lda #>letter_d
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
lda #62
|
||
|
sta LETTER_X
|
||
|
lda #<letter_e
|
||
|
sta INL
|
||
|
lda #>letter_e
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
lda #110
|
||
|
sta LETTER_X
|
||
|
lda #<letter_s
|
||
|
sta INL
|
||
|
lda #>letter_s
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
lda #154
|
||
|
sta LETTER_X
|
||
|
lda #<letter_i
|
||
|
sta INL
|
||
|
lda #>letter_i
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
lda #176
|
||
|
sta LETTER_X
|
||
|
lda #<letter_r
|
||
|
sta INL
|
||
|
lda #>letter_r
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
lda #220
|
||
|
sta LETTER_X
|
||
|
lda #<letter_e
|
||
|
sta INL
|
||
|
lda #>letter_e
|
||
|
sta INH
|
||
|
jsr draw_letter
|
||
|
|
||
|
inc LETTER_Y
|
||
|
lda LETTER_Y
|
||
|
cmp #77
|
||
|
bne logo_loop
|
||
|
|
||
|
|
||
|
|
||
|
logo_done:
|
||
|
jmp skip_it
|
||
|
|
||
|
|
||
|
;========================
|
||
|
; draw letter
|
||
|
;========================
|
||
|
; so inefficient
|
||
|
; letter to draw in INL:INH
|
||
|
|
||
|
draw_letter:
|
||
|
|
||
|
ldy #0 ; iterator
|
||
|
letter_loop:
|
||
|
lda (INL),Y
|
||
|
|
||
|
cmp #$FF
|
||
|
beq letter_done
|
||
|
|
||
|
cmp #$8D
|
||
|
bne hplot_to
|
||
|
hplot:
|
||
|
iny
|
||
|
|
||
|
lda (INL),Y ; get X value
|
||
|
asl ; need to multiply by 2
|
||
|
clc
|
||
|
adc LETTER_X
|
||
|
tax ; put in X
|
||
|
|
||
|
iny ; point to Y value
|
||
|
|
||
|
tya ; save Y value on stack for later
|
||
|
pha
|
||
|
|
||
|
lda (INL),Y ; get Y value
|
||
|
clc
|
||
|
adc LETTER_Y
|
||
|
|
||
|
ldy #0 ; set top of X value (FIXME)
|
||
|
|
||
|
jsr HPLOT0 ; plot at (Y,X), (A)
|
||
|
|
||
|
pla ; restore pointer
|
||
|
tay
|
||
|
|
||
|
iny
|
||
|
|
||
|
hplot_to:
|
||
|
|
||
|
lda (INL),Y
|
||
|
asl
|
||
|
clc
|
||
|
adc LETTER_X
|
||
|
sta TEMP
|
||
|
|
||
|
lda #0
|
||
|
adc #0
|
||
|
tax
|
||
|
|
||
|
iny
|
||
|
|
||
|
tya
|
||
|
pha
|
||
|
|
||
|
lda (INL),Y
|
||
|
clc
|
||
|
adc LETTER_Y
|
||
|
tay
|
||
|
|
||
|
lda TEMP
|
||
|
|
||
|
jsr HGLIN ; line to (X,A),(Y)
|
||
|
|
||
|
pla
|
||
|
tay
|
||
|
|
||
|
iny
|
||
|
|
||
|
jmp letter_loop
|
||
|
letter_done:
|
||
|
rts
|
||
|
|
||
|
skip_it:
|