;
-; Christian Groessler, 05-Apr-2019
+; Greg King, 10-Apr-2019
;
.export _bgcolor
.include "atari5200.inc"
- .constructor init_old_bgcolor
+.data
-.bss
-
-old_bg_color:
- .res 1
+old_bg_index:
+ .byte COLOR_BLACK ; see conioscreen.s for default palette
.code
_bgcolor:
- and #3
+ and #$03
tax
- lda COLOR0,x
- ldx old_bg_color
- sta COLOR4 ; set new value
- sta old_bg_color
- txa
- ldx #0 ; fix X
- rts
-
-.segment "ONCE"
-
-init_old_bgcolor:
- lda COLOR0+3 ; see also conioscreen.s for initialization
- sta old_bg_color
+ ldy COLOR0,x
+ lda old_bg_index
+ sty COLOR4 ; set new value
+ stx old_bg_index
+ ldx #0 ; fix high byte
rts
- .end
+.end
SCREEN_BUF_SIZE = 20 * 24
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
- .export screen_setup
+ .export initconio
.export screen_width, screen_height
.export conio_color
.segment "ONCE"
-screen_setup:
+; initialize color registers, display list, and screen memory
+initconio:
; initialize SAVMSC
lda #<SCREEN_BUF
rts
- .data
+ .bss
-conio_color: .byte 0
+conio_color: .res 1
.segment "DLIST"
.importzp screen_width, screen_height
.importzp ptr4
- .import screen_setup
- .constructor screen_setup_constructor, 26
-screen_setup_constructor = screen_setup
+ .import initconio
+ .constructor initconio_constructor
+initconio_constructor = initconio
_cputcxy:
pha ; Save C
SCREEN_BUF_SIZE = 20 * 12
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
- .export screen_setup
+ .export initconio
.export screen_width, screen_height
.export conio_color
.segment "ONCE"
-screen_setup:
+; initialize color registers, display list, and screen memory
+initconio:
; initialize SAVMSC
lda #<SCREEN_BUF
rts
- .data
+ .bss
-conio_color: .byte 0
+conio_color: .res 1
.segment "DLIST"