mirror of
https://github.com/cc65/cc65.git
synced 2025-02-04 13:32:54 +00:00
atari5200: add alternative conio screen (20x12 resolution)
This commit is contained in:
parent
ec5e38617a
commit
db01036e2e
@ -7,7 +7,7 @@
|
||||
SCREEN_BUF_SIZE = 20 * 24
|
||||
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
|
||||
|
||||
.export screen_setup_20x24
|
||||
.export screen_setup
|
||||
.export screen_width, screen_height
|
||||
.export conio_color
|
||||
|
||||
@ -17,7 +17,7 @@ screen_height = 24
|
||||
|
||||
.segment "ONCE"
|
||||
|
||||
screen_setup_20x24:
|
||||
screen_setup:
|
||||
|
||||
; initialize SAVMSC
|
||||
lda #<SCREEN_BUF
|
||||
|
@ -15,10 +15,9 @@
|
||||
.importzp screen_width, screen_height
|
||||
.importzp ptr4
|
||||
|
||||
.constructor screen_setup, 26
|
||||
.import screen_setup_20x24
|
||||
screen_setup = screen_setup_20x24
|
||||
|
||||
.import screen_setup
|
||||
.constructor screen_setup_constructor, 26
|
||||
screen_setup_constructor = screen_setup
|
||||
|
||||
_cputcxy:
|
||||
pha ; Save C
|
||||
|
92
libsrc/atari5200/extra/conioscreen_20x12.s
Normal file
92
libsrc/atari5200/extra/conioscreen_20x12.s
Normal file
@ -0,0 +1,92 @@
|
||||
; setup alternative CONIO screen (20x12, Antic mode 7, BASIC mode 2)
|
||||
;
|
||||
; 02-Apr-2019, Christian Groessler <chris@groessler.org>
|
||||
|
||||
.include "atari5200.inc"
|
||||
|
||||
SCREEN_BUF_SIZE = 20 * 12
|
||||
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
|
||||
|
||||
.export screen_setup
|
||||
.export screen_width, screen_height
|
||||
.export conio_color
|
||||
|
||||
screen_width = 20
|
||||
screen_height = 12
|
||||
|
||||
|
||||
.segment "ONCE"
|
||||
|
||||
screen_setup:
|
||||
|
||||
; initialize SAVMSC
|
||||
lda #<SCREEN_BUF
|
||||
sta SAVMSC
|
||||
lda #>SCREEN_BUF
|
||||
sta SAVMSC+1
|
||||
|
||||
; initialize cursor position
|
||||
lda #0
|
||||
sta COLCRS_5200
|
||||
sta ROWCRS_5200
|
||||
|
||||
; clear screen buffer
|
||||
ldy #<(SCREEN_BUF_SIZE-1)
|
||||
ldx #>(SCREEN_BUF_SIZE-1)
|
||||
clrscr: sta (SAVMSC),y
|
||||
dey
|
||||
cpy #$FF
|
||||
bne clrscr
|
||||
dex
|
||||
cpx #$FF
|
||||
bne clrscr
|
||||
|
||||
; set default colors
|
||||
|
||||
lda #40
|
||||
sta COLOR0
|
||||
lda #202
|
||||
sta COLOR1
|
||||
lda #148
|
||||
sta COLOR2
|
||||
lda #70
|
||||
sta COLOR3
|
||||
lda #0
|
||||
sta COLOR4
|
||||
|
||||
; set display list
|
||||
|
||||
lda #<dlist
|
||||
sta SDLSTL
|
||||
lda #>dlist
|
||||
sta SDLSTH
|
||||
|
||||
rts
|
||||
|
||||
.data
|
||||
|
||||
conio_color: .byte 0
|
||||
|
||||
.segment "DLIST"
|
||||
|
||||
; display list for 20x12 text mode
|
||||
|
||||
dlist: .repeat 3
|
||||
.byte DL_BLK8
|
||||
.endrepeat
|
||||
|
||||
.byte DL_CHR20x16x2 | DL_LMS
|
||||
.word SCREEN_BUF
|
||||
|
||||
.repeat 11
|
||||
.byte DL_CHR20x16x2
|
||||
.endrepeat
|
||||
|
||||
.byte DL_JVB
|
||||
.word dlist
|
||||
|
||||
; end of display list
|
||||
|
||||
.assert ((* >> 10) = (dlist >> 10)), error, "Display list crosses 1K boundary"
|
||||
|
||||
.end
|
Loading…
x
Reference in New Issue
Block a user