]> git.sur5r.net Git - cc65/blobdiff - libsrc/atari/cputc.s
ostype.o: new object file
[cc65] / libsrc / atari / cputc.s
index 95bc7756c4c8de4a37c4c3db8a2b14d207134451..c7d30a4604335eb7ea6abfaf0d40d7e4230d2c6e 100644 (file)
@@ -7,7 +7,7 @@
 
        .export         _cputcxy, _cputc
        .export         plot, cputdirect, putchar
-       .import         popa, _gotoxy
+       .import         popa, _gotoxy, mul40
 
        .include        "atari.inc"
 
@@ -20,6 +20,7 @@ _cputcxy:
 .ifdef DIRECT_SCREEN
 
        .importzp tmp4,ptr4
+       .import _revflag
 
 _cputc:
        cmp     #$0D            ; CR
@@ -69,22 +70,8 @@ plot:        ldy     COLCRS
 
 putchar:
        pha                     ; save char
-       lda     #0
-       sta     tmp4
        lda     ROWCRS
-       asl     a
-       rol     tmp4
-       asl     a
-       rol     tmp4            ; row * 4
-       adc     ROWCRS
-       bcc     L1
-       inc     tmp4            ; row * 5
-L1:    asl     a
-       rol     tmp4            ; row * 10
-       asl     a
-       rol     tmp4
-       asl     a
-       rol     tmp4            ; row * 40
+       jsr     mul40
 L3:    clc
        adc     SAVMSC          ; add start of screen memory
        sta     ptr4
@@ -92,7 +79,7 @@ L3:   clc
        adc     SAVMSC+1
        sta     ptr4+1
        pla                     ; get char again
-       ora     INVFLG
+       ora     _revflag
        ldy     COLCRS
        sta     (ptr4),y
        rts