From: Christian Groessler Date: Fri, 16 May 2014 00:10:19 +0000 (+0200) Subject: some CONIO fixes X-Git-Tag: V2.15~57^2~20 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0f2f19ef5b2c4773176442d4efb4c9e92fb34707;p=cc65 some CONIO fixes --- diff --git a/asminc/atari5200.inc b/asminc/atari5200.inc index 6ae2483d2..10b71eba5 100644 --- a/asminc/atari5200.inc +++ b/asminc/atari5200.inc @@ -57,8 +57,8 @@ PADDL7 = $18 ;POT7 " ; cc65 runtime zero page variables -COLCRS_5200 = $19 -ROWCRS_5200 = $1A +ROWCRS_5200 = $19 +COLCRS_5200 = $1A SAVMSC = $1B ; pointer to screen memory (conio) ;------------------------------------------------------------------------- diff --git a/libsrc/atari5200/conioscreen.s b/libsrc/atari5200/conioscreen.s index c9d95aa51..ba47866ce 100644 --- a/libsrc/atari5200/conioscreen.s +++ b/libsrc/atari5200/conioscreen.s @@ -1,44 +1,57 @@ .include "atari5200.inc" -SCREEN_BUF_SIZE = 20 * 24 -SCREEN_BUF = $4000 - SCREEN_BUF_SIZE +SCREEN_BUF_SIZE = 20 * 24 +SCREEN_BUF = $4000 - SCREEN_BUF_SIZE .code .export screen_setup_20x24 screen_setup_20x24: - ; initialize 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 display list - - lda #dlist - sta SDLSTH - - rts + ; initialize 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 SDLSTH + + rts .segment "RODATA" diff --git a/libsrc/atari5200/cputc.s b/libsrc/atari5200/cputc.s index 26527535d..976f910f0 100644 --- a/libsrc/atari5200/cputc.s +++ b/libsrc/atari5200/cputc.s @@ -54,7 +54,7 @@ cputdirect: ; accepts screen code ; advance cursor inc COLCRS_5200 lda COLCRS_5200 - cmp #40 + cmp #20 bcc plot lda #0 sta COLCRS_5200 @@ -72,7 +72,6 @@ plot: jsr setcursor ldx ROWCRS_5200 rts -; turn off cursor, update screen, turn on cursor putchar: pha ; save char diff --git a/libsrc/atari5200/gotox.s b/libsrc/atari5200/gotox.s index be8cfe540..99f7cfd22 100644 --- a/libsrc/atari5200/gotox.s +++ b/libsrc/atari5200/gotox.s @@ -10,6 +10,4 @@ _gotox: sta COLCRS_5200 ; Set X - lda #0 - sta COLCRS_5200+1 jmp setcursor diff --git a/libsrc/atari5200/gotoxy.s b/libsrc/atari5200/gotoxy.s index b4c86c95a..a4b7c61d0 100644 --- a/libsrc/atari5200/gotoxy.s +++ b/libsrc/atari5200/gotoxy.s @@ -14,6 +14,4 @@ _gotoxy: ; Set the cursor position sta ROWCRS_5200 ; Set Y jsr popa ; Get X sta COLCRS_5200 ; Set X - lda #0 - sta COLCRS_5200+1 ; jmp setcursor