mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-28 09:30:41 +00:00
63 lines
1.2 KiB
ArmAsm
63 lines
1.2 KiB
ArmAsm
PLOT = $F800 ; plot, horiz=y, vert=A (A trashed, XY Saved)
|
|
SETCOL = $F864
|
|
TEXT = $FB36 ;; Set text mode
|
|
TABV = $FB5B
|
|
BASCALC = $FBC1
|
|
SETGR = $FB40
|
|
STORADV = $FBF0
|
|
HOME = $FC58 ;; Clear the text screen
|
|
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
|
|
HLINE = $F819
|
|
CH = $24
|
|
CV = $25
|
|
COLOR = $30
|
|
TEMPY = $FF
|
|
|
|
graphic:
|
|
.byte $F0,$25,$1C,$F0,$26,$1C,$F0,$24,$6C,$A0,$1F,$F0,$16,$6D,$B0,$2F
|
|
.byte $F0,$15,$69,$B0,$3F,$F0,$14,$71,$A0,$4F,$F0,$13,$72,$A0,$5F,$F0
|
|
.byte $13,$56,$B0,$67,$F0,$20,$12,$10,$BF,$52,$F0,$12,$4D,$22,$1F,$31
|
|
.byte $42,$3F,$62,$F0,$0F,$6D,$22,$2F,$11,$34,$12,$4F,$72,$D0,$4D,$39
|
|
.byte $22,$BF,$82,$E0,$5D,$22,$BF,$92,$F0,$0F,$3D,$22,$A7,$BF,$F0,$11
|
|
.byte $12,$10,$9F,$17,$CF,$00
|
|
|
|
rle:
|
|
jsr SETGR
|
|
rerun:
|
|
lda #1
|
|
sta CH
|
|
jsr TABV
|
|
|
|
ldy #0
|
|
decode_loop:
|
|
lda graphic,Y
|
|
pha
|
|
jsr SETCOL ; puts (color&0xf)*17 in $30
|
|
pla
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
beq rerun ; if stride=0 then done
|
|
cmp #$f
|
|
bne ready
|
|
iny
|
|
lda graphic,Y
|
|
ready:
|
|
tax
|
|
sty TEMPY
|
|
final_loop:
|
|
lda COLOR
|
|
jsr STORADV ; destroys A and Y
|
|
dex
|
|
bne final_loop
|
|
ldy TEMPY
|
|
iny
|
|
jmp decode_loop
|
|
start:
|
|
jmp rle ; ampersand jumps to $3f5
|
|
; 140 is 8c in hex
|
|
; so want to load at $3f5-$8c+3 = $36C
|
|
|
|
|