mirror of
https://github.com/a2-4am/4cade.git
synced 2025-02-05 21:33:34 +00:00
140 lines
2.8 KiB
Plaintext
140 lines
2.8 KiB
Plaintext
|
;license:MIT
|
||
|
;(c) 2020 by 4am
|
||
|
;
|
||
|
!cpu 6502
|
||
|
!to "build/FX/DHGR.REDLINES",plain
|
||
|
*=$6000
|
||
|
|
||
|
; for red line:
|
||
|
; mainmem alternate #$11/#$44
|
||
|
; auxmem alternate #$08/#$22
|
||
|
|
||
|
hgrlo = $0200 ; [$C0 bytes, main memory only]
|
||
|
hgr1hi = $0300 ; [$C0 bytes, main memory only]
|
||
|
|
||
|
!source "src/fx/macros.a"
|
||
|
|
||
|
ldx #(end-start) ; copy code to zero page
|
||
|
- lda start-1, x
|
||
|
sta $FF, x
|
||
|
dex
|
||
|
bne -
|
||
|
+BUILD_HGR_LOOKUP_TABLES_X_IS_ALREADY_0 hgrlo, hgr1hi
|
||
|
jmp loop
|
||
|
|
||
|
start
|
||
|
!pseudopc 0 {
|
||
|
loop jsr WaitForVBL
|
||
|
row1=*+1
|
||
|
ldx #$00 ; SMC
|
||
|
jsr DrawRedLine
|
||
|
row2=*+1
|
||
|
ldx #$BF ; SMC
|
||
|
jsr DrawRedLine
|
||
|
ldx row1
|
||
|
beq +
|
||
|
dex
|
||
|
jsr DrawBlackLine
|
||
|
+ ldx row2
|
||
|
inx
|
||
|
cpx #$C0
|
||
|
beq +
|
||
|
jsr DrawBlackLine
|
||
|
+
|
||
|
lda $C000
|
||
|
bmi exit
|
||
|
inc row1
|
||
|
dec row2
|
||
|
lda row1
|
||
|
cmp #$60
|
||
|
bne loop
|
||
|
|
||
|
loop2 jsr WaitForVBL
|
||
|
ldx row1
|
||
|
cpx #$C0
|
||
|
beq +
|
||
|
jsr DrawRedLine
|
||
|
+ ldx row2
|
||
|
bmi +
|
||
|
jsr DrawRedLine
|
||
|
+ ldx row1
|
||
|
dex
|
||
|
jsr CopyLine
|
||
|
ldx row2
|
||
|
inx
|
||
|
jsr CopyLine
|
||
|
lda $C000
|
||
|
bmi exit
|
||
|
inc row1
|
||
|
dec row2
|
||
|
lda row1
|
||
|
cmp #$C1
|
||
|
bne loop2
|
||
|
exit jmp UnwaitForVBL
|
||
|
|
||
|
DrawRedLine
|
||
|
lda hgrlo, x
|
||
|
sta <reddst1+1
|
||
|
sta <reddst2+1
|
||
|
lda hgr1hi, x
|
||
|
sta <reddst1+2
|
||
|
sta <reddst2+2
|
||
|
ldy #$27
|
||
|
lda #$11
|
||
|
- eor #$55
|
||
|
reddst1 sta $FDFD, y ; SMC
|
||
|
dey
|
||
|
bpl -
|
||
|
sta $C005
|
||
|
ldy #$27
|
||
|
lda #$08
|
||
|
- eor #$2A
|
||
|
reddst2 sta $FDFD, y ; SMC
|
||
|
dey
|
||
|
bpl -
|
||
|
sta $C004
|
||
|
rts
|
||
|
|
||
|
DrawBlackLine
|
||
|
lda hgrlo, x
|
||
|
sta <blackdst+1
|
||
|
lda hgr1hi, x
|
||
|
sta <blackdst+2
|
||
|
lda #$00
|
||
|
clc
|
||
|
+HIDE_NEXT_BYTE
|
||
|
-- sec
|
||
|
ldy #$27
|
||
|
blackdst sta $FDFD, y ; SMC
|
||
|
dey
|
||
|
bpl blackdst
|
||
|
sta $C005
|
||
|
bcc --
|
||
|
sta $C004
|
||
|
rts
|
||
|
|
||
|
CopyLine
|
||
|
lda hgrlo, x
|
||
|
sta <copysrc+1
|
||
|
sta <copydst+1
|
||
|
lda hgr1hi, x
|
||
|
sta <copydst+2
|
||
|
eor #$60
|
||
|
sta <copysrc+2
|
||
|
clc
|
||
|
+HIDE_NEXT_BYTE
|
||
|
- sec
|
||
|
ldy #$27
|
||
|
copysrc lda $FDFD, y ; SMC
|
||
|
copydst sta $FDFD, y ; SMC
|
||
|
dey
|
||
|
bpl copysrc
|
||
|
sta $C003
|
||
|
sta $C005
|
||
|
bcc -
|
||
|
sta $C002
|
||
|
sta $C004
|
||
|
rts
|
||
|
}
|
||
|
end
|