!!!Fast text output on Graphics 0 Screen without OS

General Information

Author: Erwin Reuss, Compy Shop \\
Assembler: Bibo Assembler \\
Published: CSM 3/89 \\

{{{

00010          .LI OFF
00020 ------------------------------
00030 * Fast Textoutput on         *
00040 * GRAFICS 0 Screen           *
00050 * (P) E.REUSS   CSM 3/89     *
00060 ------------------------------
00140 RETOUT   LDA #$9B
00150 *
00160 CHROUT   STY STOY
00170          STX STOX
00180          JSR CHOUT
00190 .1       LDA $11
00200          BEQ BREAK
00210          LDA $2FF
00220          BMI .1
00230          LDY STOY
00240          LDX STOX
00250          RTS
00260 ;
00270 BREAK    LDA #$80
00280          STA $11
00290          JSR RETOUT
00300          LDX #$FF
00310          STX $2FC
00320 ;>>>>    JMP ...   insert own
00330 ;                  ERROR-
00340 ;                      ROUTINE here
00350 *
00360 STOX     .HX 00
00370 STOY     .HX 00
00380 ------------------------------
00390 EOUT     TAX
00400          LDA $E407
00410          PHA
00420          LDA $E406
00430          PHA
00440          TXA
00450          RTS
00460 ------------------------------
00470 CHOUT    STA $2FB
00480          LDA $2F0
00490          BNE .1
00500          LDA $5D
00510          LDY #0
00520          STA ($5E),Y
00530 .1       JSR CUR1
00540          LDA $2FB
00550          JSR CHR1
00560          LDA $5E
00570          CLC
00580          ADC $55
00590          STA $5E
00600          BCC .2
00610          INC $5F
00620 .2       LDY #0
00630          LDA ($5E),Y
00640          STA $5D
00650          LDX $2F0
00660          BNE .3
00670          EOR #$80
00680 .3       STA ($5E),Y
00690          RTS
00700 ------------------------------
00710 BELL     LDA #$FD
00720          JMP EOUT
00730 ------------------------------
00740 ESCAPE   LDA #1
00750          STA $2FE
00760          RTS
00770 ------------------------------
00780 CHR1     LDX $2FE
00790          BNE CHR2
00800          CMP #$FD
00810          BEQ BELL
00820          CMP #$9B
00830          BEQ NEWLIN
00840          CMP #$1B
00850          BCC CHR2
00860          CMP #$20
00870          BCS CHR2
00880          TAY
00890          LDA TABHI-$1B,Y
00900          PHA
00910          LDA TABLO-$1B,Y
00920          PHA
00930          RTS
00940 *
00950 CHR2     LSR $2FE
00960          STA $70
00970          ASL
00980          ASL
00990          ROL
01000          ROL
01010          AND #3
01020          TAY
01030          LDA TABL1,Y
01040          EOR $70
01050          LDY $55
01060          STA ($5E),Y
01070          INC $55
01080          LDA $55
01090          CMP #$28
01100          BCS NEWLIN
01110          RTS
01120 *
01130 NEWLIN   LDA $52
01140          STA $55
01150 CDOWN    INC $54
01160          LDA $54
01170          CMP #$18
01180          BCC CURPOS
01190          DEC $54
01200          LDA #0
01210          PHA
01220          JSR CURPOS
01230 NLA      LDA $5E
01240          STA $66
01250          LDA $5F
01260          STA $67
01270          LDY #$27
01280          PLA
01290          CLC
01300          ADC #1
01310          CMP #$18
01320          BCS NL1
01330          PHA
01340          JSR CURPOS
01350 NL0      LDA ($5E),Y
01360          STA ($66),Y
01370          DEY
01380          BPL NL0
01390          BMI NLA
01400 NL1      JSR CUR1
01410          LDY $55
01420 POKCHR   LDA #0
01430 .1       STA ($5E),Y
01440          INY
01450          CPY #$28
01460          BCC .1
01470 CLRET    RTS
01480 ------------------------------
01490 CLEFT    DEC $55
01500          LDA $55
01510          CMP $52
01520          BCS CLRET
01530          LDA #$27
01540          STA $55
01550          RTS
01560 ------------------------------
01570 CRIGH    INC $55
01580          LDA $55
01590          CMP #$28
01600          BCC CLRET
01610          LDA $52
01620          STA $55
01630          RTS
01640 ------------------------------
01650 CURUP    LDA $54
01660          BNE CUP1
01670          LDA #$18
01680          STA $54
01690 CUP1     DEC $54
01700 CUR1     LDA $54
01710 CURPOS   STA $5E
01720          ASL
01730          ASL
01740          ADC $5E
01750          PHA
01760          LSR
01770          LSR
01780          LSR
01790          LSR
01800          LSR
01810          STA $5F
01820          PLA
01830          ASL
01840          ASL
01850          ASL
01860          CLC
01870          ADC $58
01880          STA $5E
01890          LDA $5F
01900          ADC $59
01910          STA $5F
01920          RTS
01930 ------------------------------
01940 TABL1    .HX 40206000
01950 ------------------------------
01960 TABLO    .DA #ESCAPE-1 (ESC)
01970          .DA #CURUP-1  (UP)
01980          .DA #CDOWN-1  (DOWN)
01990          .DA #CLEFT-1  (LEFT)
02000          .DA #CRIGH-1  (RIGHT)
02010 TABHI    .DA /ESCAPE-1 (ESC)
02020          .DA /CURUP-1  (UP)
02030          .DA /CDOWN-1  (DOWN)
02040          .DA /CLEFT-1  (LEFT)
02050          .DA /CRIGH-1  (RIGHT)
02060 ------------------------------
}}}