home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 86xx / 8610b.d64 / vg-cp80x.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  5KB  |  147 lines

  1. 50 SYS9*4096
  2. 100 ;
  3. 110 ;
  4. 120 .OPT OO
  5. 130 ;ANPASSUNG VON CP 80X AN VIZAWRITE
  6. 140 ;UMLAUTE UND STEUERCODES WERDEN
  7. 150 ;VOM CP 80X RICHTIG AUSGEGEBEN, WENN
  8. 160 ;ER ALS EPSON-DRUCKER (E) ANGESTEUERT
  9. 170 ;WIRD
  10. 180 ;ZUSAETZLICH IST ES MOEGLICH GRAFIKEN ZU DRUCKEN!
  11. 190 ;
  12. 200 ;VERSION 2.2
  13. 210 ;
  14. 220 ;(C) 1986 MARKT&TECHNIK
  15. 230 ;
  16. 240 ;       WRITTEN BY
  17. 250 ;       RALF LENZ
  18. 260 ;     AM LANDGRABEN 12
  19. 270 ;    4290 BOCHOLT-BARLO
  20. 280 ;
  21. 290 ;
  22. 300 PRINT  = $F1CA;AUSGABE EINES ZEICHENS
  23. 310 GRAPHCODE = $A8;CODE FUER GRAFIK
  24. 320 CR = $0D;CARRIAGE RETURN 
  25. 330 ;
  26. 340 ;
  27. 350 *= $02A7
  28. 360 ;
  29. 370 GRAFIK      STY YZW;Y-REGISTER ZWISCHENSPEICHERN
  30. 380             LDY #0
  31. 390             STY FLAG;FLAG FUER NIBBLE
  32. 400 BIN320      LDA TABELLE3,Y;DRUCKER AUF 320 BINAER-
  33. 410             JSR PRINT;DATEN EINSTELLEN
  34. 420             INY
  35. 430             CPY #4
  36. 440             BNE BIN320
  37. 450             LDY YZW;Y-REGISTER ZURUECKHOLEN
  38. 460             LDA #<GRAPHOUT;OUTPUTVEKTOR ERNEUT
  39. 470             STA $0326;VERSTELLEN FUER AUSGABE VON
  40. 480             LDA #>GRAPHOUT;GRAFIK
  41. 490             STA $0327;OUTPUTVEKTOR ERNEUT VERSTELLEN
  42. 500 EXIT2       CLC
  43. 510             RTS
  44. 540 ;
  45. 550 GRAPHOUT    CMP #GRAPHCODE;PRUEFEN, OB ZEILENENDE
  46. 560             BNE G1
  47. 570             CLC;ENDE DER GRAFIKZEILE ERREICHT.
  48. 580             JMP INIT;OUTPUT-VEKTOR ZURUECKSTELLEN
  49. 590 G1          CMP #63;PRUEFEN, OB ILLEGALER CODE (0-63)
  50. 600             BCC EXIT2
  51. 610             AND #%00001111;NUR UNTERES NIBBLE VERWENDEN
  52. 620             PHA; UND AUF STAPEL
  53. 630             LDA FLAG;OBERES ODER UNTERES NIBBLE
  54. 640             BNE NIBBLE2
  55. 650 ;
  56. 660 NIBBLE1     INC FLAG;FLAG=1
  57. 670             PLA;NIBBLE ZURUECKHOLEN
  58. 680             STA STORE;UND ZWISCHENSPEICHERN
  59. 690             CLC
  60. 700             RTS
  61. 710 ;
  62. 720 NIBBLE2     DEC FLAG;FLAG=0
  63. 730             PLA;NIBBLE ZURUECKHOLEN
  64. 740             ASL;UND UM 4 BIT NACH LINKS SCHIEBEN
  65. 750             ASL:ASL:ASL
  66. 760             ORA STORE;VERKNUEPFEN MIT UNTEREM NIBBLE
  67. 770             JSR PRINT;UND AUSGEBEN
  68. 780             RTS
  69. 790 ;
  70. 800 ;
  71. 810 ;
  72. 820 *= $0365
  73. 830 INIT        LDA #<START ;OUTPUT-VEKTOR AENDERN
  74. 840             STA $0326
  75. 850             LDA #>START
  76. 860             STA $0327
  77. 870             RTS
  78. 880 ;
  79. 890 START       PHA;DRUCKBYTE AUF STAPEL RETTEN
  80. 900             LDA $9A  ;PRUEFEN OB
  81. 910             CMP #$04;AUSGABE AUF DRUCKER
  82. 920             BNE ENDE   ;NEIN
  83. 930             PLA ;WENN JA, DRUCKBYTE ZURUECKHOLEN
  84. 940             CMP #GRAPHCODE
  85. 950             BNE S1
  86. 960             JMP GRAFIK
  87. 970 S1          PHA ;UND SOFORT WIEDER AUF STAPEL
  88. 980             STY YZW   ;YREGISTER ZWISCHENSPEICHERN
  89. 990             LDY #$07
  90. 1000 SUCH        CMP TABELLE1,Y;DRUCKBYTE MIT ZU AENDERNDEN
  91. 1010 ;                       ZEICHEN VERGLEICHEN
  92. 1020             BEQ TAUSCH1;ZEICHEN GEFUNDEN
  93. 1030             DEY
  94. 1040             BPL SUCH ;WEITERSUCHEN
  95. 1050             BNE SMALLTEST;KEIN UMLAUT GEFUNDEN
  96. 1060 TAUSCH1     PLA;DRUCKBYTE VOM STAPEL HOLEN
  97. 1070             LDA TABELLE2,Y ;ERSATZBYTE AUS TABELLE HOLEN
  98. 1080             PHA;UND ALS NEUES DRUCKBYTE ZUM STAPEL
  99. 1090             CLC
  100. 1100             BCC ENDE1;ESCTEST KANN ENTFALLEN, DA UMLAUT
  101. 1110 SMALLTEST   PLA;DRUCKBYTE VOM STAPEL HOLEN
  102. 1120             CMP #15; MIT CODE FUER SCHMALSCHRIFT VERGLEICHEN
  103. 1130             BNE NOSMALL
  104. 1140             LDY SMALLFLG;FLAG PRUEFEN
  105. 1150             BEQ SMALLON 
  106. 1160             ORA #128; BIT 7 SETZEN FUER SCHMALSCHRIFT AUS
  107. 1170 SMALLOFF    LDY #0
  108. 1180             .BYTE $2C; DIE FOLGENDEN 2 BYTES UEBERSPRINGEN
  109. 1190 SMALLON     LDY #1
  110. 1200             STY SMALLFLG
  111. 1210 NOSMALL     PHA;DRUCKBYTE WIEDER AUF STAPEL
  112. 1220 ESCTEST     LDA TEST
  113. 1230             CMP #27;ESCAPECODE
  114. 1240             BEQ ENDE1;VORHERGEGANGENER CODE WAR ESCAPE
  115. 1250 ;                    ===> BYTE NICHT AENDERN
  116. 1260 TAUSCH2     PLA
  117. 1270             CMP #65
  118. 1280             BCC EXIT ;KLEINER ALS 65 (A)
  119. 1290             CMP #91
  120. 1300             BCS WEITER;GROESSER ALS 90 (Z)
  121. 1310             ORA #%10000000 ;BIT 7 SETZEN
  122. 1320             BCC EXIT ;SPRINGT HIER IMMER
  123. 1330 WEITER      CMP #97
  124. 1340             BCC EXIT;KLEINER ALS 97 (a)
  125. 1350             CMP #123
  126. 1360             BCS EXIT;GROESSER ALS 122 (z)
  127. 1370             AND #%11011111;BIT 5 LOESCHEN
  128. 1380 EXIT        PHA
  129. 1390 ENDE1       LDY YZW;YREGISTER ZURUECKHOLEN
  130. 1400 ENDE        PLA;DRUCKBYTE ZURUECKHOLEN
  131. 1410             STA TEST;UND FUER ESCTEST BEIM NAECHSTEN
  132. 1420 ;                     EINSPRUNG SPEICHERN
  133. 1430             JMP PRINT;SPRUNG ZUM NORMALEN OUTPUT-VEKTOR
  134. 1440 ;
  135. 1450 TABELLE1    .BYTE  91,92,93,126,123,124,125,64
  136. 1460 ;                     SOLLEN GETAUSCHT WERDEN
  137. 1470 TABELLE2    .BYTE  219,220,221,94,91,92,93,192
  138. 1480 ;                     SOLLEN DAFUER GEDRUCKT WERDEN
  139. 1490 YZW         .BYTE 00 ;ZWISCHENSPEICHER FUER YREGISTER
  140. 1500 TEST        .BYTE 00;ZWISCHENSPEICHER FUER ESCTEST
  141. 1510 SMALLFLG    .BYTE 00;FLAG FUER SMALLTEST
  142. 1520 TABELLE3    .BYTE $1B,$4B,$40,$01;ESCAPE K 320
  143. 1530 STORE       .BYTE 00;SPEICHER FUER GRAFIKBYTE
  144. 1540 FLAG        .BYTE 00;FLAG FUER OBERES/UNTERES NIBBLE
  145. 1550 ;
  146. 1560 ;
  147.