home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
86xx
/
8610b.d64
/
vg-cp80x.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
5KB
|
147 lines
50 SYS9*4096
100 ;
110 ;
120 .OPT OO
130 ;ANPASSUNG VON CP 80X AN VIZAWRITE
140 ;UMLAUTE UND STEUERCODES WERDEN
150 ;VOM CP 80X RICHTIG AUSGEGEBEN, WENN
160 ;ER ALS EPSON-DRUCKER (E) ANGESTEUERT
170 ;WIRD
180 ;ZUSAETZLICH IST ES MOEGLICH GRAFIKEN ZU DRUCKEN!
190 ;
200 ;VERSION 2.2
210 ;
220 ;(C) 1986 MARKT&TECHNIK
230 ;
240 ; WRITTEN BY
250 ; RALF LENZ
260 ; AM LANDGRABEN 12
270 ; 4290 BOCHOLT-BARLO
280 ;
290 ;
300 PRINT = $F1CA;AUSGABE EINES ZEICHENS
310 GRAPHCODE = $A8;CODE FUER GRAFIK
320 CR = $0D;CARRIAGE RETURN
330 ;
340 ;
350 *= $02A7
360 ;
370 GRAFIK STY YZW;Y-REGISTER ZWISCHENSPEICHERN
380 LDY #0
390 STY FLAG;FLAG FUER NIBBLE
400 BIN320 LDA TABELLE3,Y;DRUCKER AUF 320 BINAER-
410 JSR PRINT;DATEN EINSTELLEN
420 INY
430 CPY #4
440 BNE BIN320
450 LDY YZW;Y-REGISTER ZURUECKHOLEN
460 LDA #<GRAPHOUT;OUTPUTVEKTOR ERNEUT
470 STA $0326;VERSTELLEN FUER AUSGABE VON
480 LDA #>GRAPHOUT;GRAFIK
490 STA $0327;OUTPUTVEKTOR ERNEUT VERSTELLEN
500 EXIT2 CLC
510 RTS
540 ;
550 GRAPHOUT CMP #GRAPHCODE;PRUEFEN, OB ZEILENENDE
560 BNE G1
570 CLC;ENDE DER GRAFIKZEILE ERREICHT.
580 JMP INIT;OUTPUT-VEKTOR ZURUECKSTELLEN
590 G1 CMP #63;PRUEFEN, OB ILLEGALER CODE (0-63)
600 BCC EXIT2
610 AND #%00001111;NUR UNTERES NIBBLE VERWENDEN
620 PHA; UND AUF STAPEL
630 LDA FLAG;OBERES ODER UNTERES NIBBLE
640 BNE NIBBLE2
650 ;
660 NIBBLE1 INC FLAG;FLAG=1
670 PLA;NIBBLE ZURUECKHOLEN
680 STA STORE;UND ZWISCHENSPEICHERN
690 CLC
700 RTS
710 ;
720 NIBBLE2 DEC FLAG;FLAG=0
730 PLA;NIBBLE ZURUECKHOLEN
740 ASL;UND UM 4 BIT NACH LINKS SCHIEBEN
750 ASL:ASL:ASL
760 ORA STORE;VERKNUEPFEN MIT UNTEREM NIBBLE
770 JSR PRINT;UND AUSGEBEN
780 RTS
790 ;
800 ;
810 ;
820 *= $0365
830 INIT LDA #<START ;OUTPUT-VEKTOR AENDERN
840 STA $0326
850 LDA #>START
860 STA $0327
870 RTS
880 ;
890 START PHA;DRUCKBYTE AUF STAPEL RETTEN
900 LDA $9A ;PRUEFEN OB
910 CMP #$04;AUSGABE AUF DRUCKER
920 BNE ENDE ;NEIN
930 PLA ;WENN JA, DRUCKBYTE ZURUECKHOLEN
940 CMP #GRAPHCODE
950 BNE S1
960 JMP GRAFIK
970 S1 PHA ;UND SOFORT WIEDER AUF STAPEL
980 STY YZW ;YREGISTER ZWISCHENSPEICHERN
990 LDY #$07
1000 SUCH CMP TABELLE1,Y;DRUCKBYTE MIT ZU AENDERNDEN
1010 ; ZEICHEN VERGLEICHEN
1020 BEQ TAUSCH1;ZEICHEN GEFUNDEN
1030 DEY
1040 BPL SUCH ;WEITERSUCHEN
1050 BNE SMALLTEST;KEIN UMLAUT GEFUNDEN
1060 TAUSCH1 PLA;DRUCKBYTE VOM STAPEL HOLEN
1070 LDA TABELLE2,Y ;ERSATZBYTE AUS TABELLE HOLEN
1080 PHA;UND ALS NEUES DRUCKBYTE ZUM STAPEL
1090 CLC
1100 BCC ENDE1;ESCTEST KANN ENTFALLEN, DA UMLAUT
1110 SMALLTEST PLA;DRUCKBYTE VOM STAPEL HOLEN
1120 CMP #15; MIT CODE FUER SCHMALSCHRIFT VERGLEICHEN
1130 BNE NOSMALL
1140 LDY SMALLFLG;FLAG PRUEFEN
1150 BEQ SMALLON
1160 ORA #128; BIT 7 SETZEN FUER SCHMALSCHRIFT AUS
1170 SMALLOFF LDY #0
1180 .BYTE $2C; DIE FOLGENDEN 2 BYTES UEBERSPRINGEN
1190 SMALLON LDY #1
1200 STY SMALLFLG
1210 NOSMALL PHA;DRUCKBYTE WIEDER AUF STAPEL
1220 ESCTEST LDA TEST
1230 CMP #27;ESCAPECODE
1240 BEQ ENDE1;VORHERGEGANGENER CODE WAR ESCAPE
1250 ; ===> BYTE NICHT AENDERN
1260 TAUSCH2 PLA
1270 CMP #65
1280 BCC EXIT ;KLEINER ALS 65 (A)
1290 CMP #91
1300 BCS WEITER;GROESSER ALS 90 (Z)
1310 ORA #%10000000 ;BIT 7 SETZEN
1320 BCC EXIT ;SPRINGT HIER IMMER
1330 WEITER CMP #97
1340 BCC EXIT;KLEINER ALS 97 (a)
1350 CMP #123
1360 BCS EXIT;GROESSER ALS 122 (z)
1370 AND #%11011111;BIT 5 LOESCHEN
1380 EXIT PHA
1390 ENDE1 LDY YZW;YREGISTER ZURUECKHOLEN
1400 ENDE PLA;DRUCKBYTE ZURUECKHOLEN
1410 STA TEST;UND FUER ESCTEST BEIM NAECHSTEN
1420 ; EINSPRUNG SPEICHERN
1430 JMP PRINT;SPRUNG ZUM NORMALEN OUTPUT-VEKTOR
1440 ;
1450 TABELLE1 .BYTE 91,92,93,126,123,124,125,64
1460 ; SOLLEN GETAUSCHT WERDEN
1470 TABELLE2 .BYTE 219,220,221,94,91,92,93,192
1480 ; SOLLEN DAFUER GEDRUCKT WERDEN
1490 YZW .BYTE 00 ;ZWISCHENSPEICHER FUER YREGISTER
1500 TEST .BYTE 00;ZWISCHENSPEICHER FUER ESCTEST
1510 SMALLFLG .BYTE 00;FLAG FUER SMALLTEST
1520 TABELLE3 .BYTE $1B,$4B,$40,$01;ESCAPE K 320
1530 STORE .BYTE 00;SPEICHER FUER GRAFIKBYTE
1540 FLAG .BYTE 00;FLAG FUER OBERES/UNTERES NIBBLE
1550 ;
1560 ;