2019-11-02 04:01:15 +00:00
|
|
|
|
|
|
|
; Autogenerates code that does interleaved Page0/Page1 lores mode
|
|
|
|
; but leaving room for 14 pixels/line of per-scanline color
|
|
|
|
|
|
|
|
UPDATE_START = $9000
|
|
|
|
|
2019-11-02 20:04:11 +00:00
|
|
|
DEFAULT_COLOR = $0
|
|
|
|
|
2019-11-02 04:01:15 +00:00
|
|
|
create_update_type1:
|
|
|
|
ldx #192
|
|
|
|
lda #<UPDATE_START
|
|
|
|
sta OUTL
|
|
|
|
lda #>UPDATE_START
|
|
|
|
sta OUTH
|
|
|
|
lda #<one_scanline
|
|
|
|
sta INL
|
|
|
|
lda #>one_scanline
|
|
|
|
sta INH
|
|
|
|
create_update_outer_loop:
|
|
|
|
ldy #0
|
|
|
|
create_update_inner_loop:
|
|
|
|
lda (INL),Y
|
|
|
|
sta (OUTL),Y
|
|
|
|
iny
|
|
|
|
cpy #49
|
|
|
|
bne create_update_inner_loop
|
|
|
|
|
2019-11-02 19:47:58 +00:00
|
|
|
; toggle PAGE0/PAGE1
|
2019-11-02 04:01:15 +00:00
|
|
|
txa
|
|
|
|
and #$1 ; ror?
|
|
|
|
clc
|
|
|
|
adc #$54
|
|
|
|
ldy #1
|
|
|
|
sta (OUTL),Y
|
|
|
|
|
|
|
|
clc
|
|
|
|
lda #49
|
|
|
|
adc OUTL
|
|
|
|
sta OUTL
|
|
|
|
lda OUTH
|
|
|
|
adc #0
|
|
|
|
sta OUTH
|
|
|
|
|
|
|
|
dex
|
|
|
|
bne create_update_outer_loop
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
lda #$60
|
|
|
|
sta (OUTL),Y
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
2019-11-02 20:04:11 +00:00
|
|
|
BARS_START = 38
|
|
|
|
|
2019-11-02 19:47:58 +00:00
|
|
|
;===========================
|
|
|
|
; from 32 to 160?
|
|
|
|
setup_rasterbars:
|
|
|
|
|
|
|
|
lda #4 ; which page
|
2019-11-02 20:04:11 +00:00
|
|
|
sta RASTER_PAGE
|
2019-11-02 19:47:58 +00:00
|
|
|
|
2019-11-02 20:04:11 +00:00
|
|
|
ldx #BARS_START
|
|
|
|
lda #<(UPDATE_START+(BARS_START*49))
|
2019-11-02 19:47:58 +00:00
|
|
|
sta OUTL
|
2019-11-02 20:04:11 +00:00
|
|
|
lda #>(UPDATE_START+(BARS_START*49))
|
2019-11-02 19:47:58 +00:00
|
|
|
sta OUTH
|
|
|
|
setup_rasterbars_outer_loop:
|
|
|
|
ldy #6
|
2019-11-02 20:04:11 +00:00
|
|
|
lda #13
|
|
|
|
sta RASTER_X
|
2019-11-02 19:47:58 +00:00
|
|
|
setup_rasterbars_inner_loop:
|
|
|
|
txa
|
|
|
|
pha
|
|
|
|
inx
|
|
|
|
txa ; start one earlier
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
and #$fe
|
|
|
|
tax
|
2019-11-02 20:04:11 +00:00
|
|
|
clc
|
2019-11-02 19:47:58 +00:00
|
|
|
lda gr_offsets,X
|
2019-11-02 20:04:11 +00:00
|
|
|
adc RASTER_X
|
|
|
|
inc RASTER_X
|
2019-11-02 19:47:58 +00:00
|
|
|
sta (OUTL),Y
|
|
|
|
iny
|
|
|
|
clc
|
|
|
|
lda gr_offsets+1,X
|
2019-11-02 20:04:11 +00:00
|
|
|
adc RASTER_PAGE
|
2019-11-02 19:47:58 +00:00
|
|
|
sta (OUTL),Y
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
pla
|
|
|
|
tax
|
|
|
|
|
|
|
|
cpy #48
|
|
|
|
bne setup_rasterbars_inner_loop
|
|
|
|
|
|
|
|
clc
|
|
|
|
lda #49
|
|
|
|
adc OUTL
|
|
|
|
sta OUTL
|
|
|
|
lda OUTH
|
|
|
|
adc #0
|
|
|
|
sta OUTH
|
|
|
|
|
|
|
|
|
2019-11-02 20:04:11 +00:00
|
|
|
lda RASTER_PAGE
|
2019-11-02 19:47:58 +00:00
|
|
|
eor #$04
|
2019-11-02 20:04:11 +00:00
|
|
|
sta RASTER_PAGE
|
2019-11-02 19:47:58 +00:00
|
|
|
|
|
|
|
inx
|
2019-11-02 20:09:01 +00:00
|
|
|
cpx #176
|
2019-11-02 19:47:58 +00:00
|
|
|
bne setup_rasterbars_outer_loop
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
2019-11-02 04:01:15 +00:00
|
|
|
one_scanline:
|
|
|
|
.byte $2C,$54,$C0 ; bit PAGE0 ; 4
|
2019-11-02 20:04:11 +00:00
|
|
|
.byte $A9,DEFAULT_COLOR ; lda #$0b ; 2
|
2019-11-02 04:01:15 +00:00
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $8D,$00,$02 ; sta $200 ; 4
|
|
|
|
.byte $A5,$FA ; lda TEMP ; 3
|
|
|
|
|