mirror of
https://github.com/cc65/cc65.git
synced 2025-08-09 13:25:06 +00:00
atari5200: add alternative conio screen (20x12 resolution)
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
SCREEN_BUF_SIZE = 20 * 24
|
SCREEN_BUF_SIZE = 20 * 24
|
||||||
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
|
SCREEN_BUF = $4000 - SCREEN_BUF_SIZE
|
||||||
|
|
||||||
.export screen_setup_20x24
|
.export screen_setup
|
||||||
.export screen_width, screen_height
|
.export screen_width, screen_height
|
||||||
.export conio_color
|
.export conio_color
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ screen_height = 24
|
|||||||
|
|
||||||
.segment "ONCE"
|
.segment "ONCE"
|
||||||
|
|
||||||
screen_setup_20x24:
|
screen_setup:
|
||||||
|
|
||||||
; initialize SAVMSC
|
; initialize SAVMSC
|
||||||
lda #<SCREEN_BUF
|
lda #<SCREEN_BUF
|
||||||
|
@@ -15,10 +15,9 @@
|
|||||||
.importzp screen_width, screen_height
|
.importzp screen_width, screen_height
|
||||||
.importzp ptr4
|
.importzp ptr4
|
||||||
|
|
||||||
.constructor screen_setup, 26
|
.import screen_setup
|
||||||
.import screen_setup_20x24
|
.constructor screen_setup_constructor, 26
|
||||||
screen_setup = screen_setup_20x24
|
screen_setup_constructor = screen_setup
|
||||||
|
|
||||||
|
|
||||||
_cputcxy:
|
_cputcxy:
|
||||||
pha ; Save C
|
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
|
Reference in New Issue
Block a user