mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-22 04:30:38 +00:00
107 lines
1.1 KiB
ArmAsm
107 lines
1.1 KiB
ArmAsm
; wires -- Apple II Hires
|
|
|
|
|
|
; D0+ used by HGR routines
|
|
|
|
HGR_COLOR = $E4
|
|
HGR_PAGE = $E6
|
|
|
|
GBASL = $26
|
|
GBASH = $27
|
|
|
|
COUNT = $FE
|
|
FRAME = $FF
|
|
|
|
; soft-switches
|
|
|
|
; ROM routines
|
|
|
|
HGR2 = $F3D8 ; set hires page2 and clear $4000-$5fff
|
|
WAIT = $FCA8 ; delay 1/2(26+27A+5A^2) us
|
|
|
|
wires:
|
|
|
|
jsr HGR2
|
|
|
|
reset_x:
|
|
ldx #$0
|
|
|
|
outer_loop:
|
|
|
|
|
|
; pulse loop horizontal
|
|
|
|
lda #$00
|
|
tay
|
|
|
|
sta GBASL
|
|
|
|
lda #$40
|
|
sta GBASH
|
|
horiz_loop:
|
|
|
|
lda even_lookup,X
|
|
sta (GBASL),Y
|
|
iny
|
|
|
|
lda odd_lookup,X
|
|
sta (GBASL),Y
|
|
iny
|
|
|
|
bne noflo2
|
|
inc GBASH
|
|
noflo2:
|
|
|
|
lda #$44
|
|
cmp GBASH
|
|
bne horiz_loop
|
|
|
|
|
|
; A should already be $44 here
|
|
; Y should be 0
|
|
|
|
vert_loop:
|
|
txa
|
|
clc
|
|
adc #2
|
|
asl
|
|
asl
|
|
adc #$40
|
|
sbc GBASH
|
|
cmp #8
|
|
lda #$81
|
|
bcs noeor
|
|
ora #$02
|
|
noeor:
|
|
|
|
sta (GBASL),Y
|
|
|
|
inc GBASL
|
|
inc GBASL
|
|
bne noflo
|
|
inc GBASH
|
|
noflo:
|
|
lda #$60
|
|
cmp GBASH
|
|
bne vert_loop
|
|
|
|
inx ; wrap at 7
|
|
cpx #7
|
|
beq reset_x
|
|
bne outer_loop
|
|
|
|
even_lookup:
|
|
.byte $D7,$DD,$F5, $D5,$D5,$D5,$D5
|
|
odd_lookup:
|
|
.byte $AA,$AA,$AA, $AB,$AE,$BA,$EA
|
|
|
|
|
|
; want this to be at 3f5
|
|
; Length is 94 so start at
|
|
; $3F5 - 91 = $39A
|
|
|
|
|
|
jmp wires
|
|
|
|
|