X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libsrc%2Fatari5200%2Fcputc.s;h=3e3a36cffe731bbe7546fe0caa14a67b161d5156;hb=78daf84f1269ca2ae0c935946b4e336641f889b2;hp=26527535dd4a9cb382662807bf64b9e88c99f839;hpb=92b32d7d0ec65534602e3edd6911ed9a31b673d6;p=cc65 diff --git a/libsrc/atari5200/cputc.s b/libsrc/atari5200/cputc.s index 26527535d..3e3a36cff 100644 --- a/libsrc/atari5200/cputc.s +++ b/libsrc/atari5200/cputc.s @@ -10,19 +10,18 @@ .export _cputcxy, _cputc .export plot, cputdirect, putchar - .import popa, _gotoxy, mul20 + .import gotoxy, _mul20 + .import conio_color + .importzp screen_width, screen_height .importzp ptr4 - .import setcursor - - .constructor screen_setup, 26 - .import screen_setup_20x24 -screen_setup = screen_setup_20x24 + .import screen_setup + .constructor initconio +initconio = screen_setup _cputcxy: pha ; Save C - jsr popa ; Get Y - jsr _gotoxy ; Set cursor, drop x + jsr gotoxy ; Set cursor, drop x and y pla ; Restore C _cputc: @@ -45,7 +44,7 @@ L4: cmp #$0A ; LF and #3 tax tya - and #$9f + and #$9F ora ataint,x cputdirect: ; accepts screen code @@ -54,7 +53,7 @@ cputdirect: ; accepts screen code ; advance cursor inc COLCRS_5200 lda COLCRS_5200 - cmp #40 + cmp #screen_width bcc plot lda #0 sta COLCRS_5200 @@ -63,22 +62,19 @@ cputdirect: ; accepts screen code newline: inc ROWCRS_5200 lda ROWCRS_5200 - cmp #24 + cmp #screen_height bne plot lda #0 sta ROWCRS_5200 -plot: jsr setcursor - ldy COLCRS_5200 +plot: ldy COLCRS_5200 ldx ROWCRS_5200 rts -; turn off cursor, update screen, turn on cursor putchar: pha ; save char lda ROWCRS_5200 - jsr mul20 ; destroys tmp4 - clc + jsr _mul20 ; destroys tmp4, carry is cleared adc SAVMSC ; add start of screen memory sta ptr4 txa @@ -86,10 +82,12 @@ putchar: sta ptr4+1 pla ; get char again + and #$3F ; clear palette index bits + ora conio_color ; use currently selected palette + ldy COLCRS_5200 sta (ptr4),y - jmp setcursor + rts .rodata ataint: .byte 64,0,32,96 -