2 ; Ullrich von Bassewitz, 06.08.1998
4 ; void cputcxy (unsigned char x, unsigned char y, char c);
9 .export _cputcxy, _cputc
10 .export _gotoxy, cputdirect
11 .export newline, putchar
13 .import popa, SETWND, BASCALC
15 .include "../apple2/apple2.inc"
19 lda #$FF ; Normal character display mode
21 sta SETALTCHAR ; Switch in alternate charset
23 jsr SETWND ; Reset text window to full screen
26 ; Plot a character - also used as internal function
35 cmp #$0D ; Test for \r = carrage return
37 stz CH ; Goto left edge of screen
38 rts ; That's all we do
40 cmp #$0A ; Test for \n = line feed
42 ora #$80 ; Turn on high bit
46 inc CH ; Bump to next column
56 cpy #$FF ; Normal character display mode?
60 and #$7F ; Inverse lowercase
63 and INVFLG ; Apply normal, inverse, flash
66 bit RD80VID ; In 80 column mode?
67 bpl col40 ; No, in 40 cols
73 bcs col40 ; Odd cols go in 40 col memory