Drucker-Anwendung

160 Spalten mit dem 1526 oder MPS 802

Dieses Unterprogramm läßt den Commodore 1526-Drucker 128 oder sogar 160 Zeichen pro Zeile drucken. Der Druck von breiten Tabellen wird zum Vergnügen!

Der 1526 kommt durch dieses Programm an die Leistungen von teuren Druckern mit Kleinschriftmodus nahe heran. Mit 160 Zeichen pro Zeile übertrifft er diese Drucker sogar.

Wie Sie wissen ist der 1526 (MPS 802) nur bedingt grafikfähig. Es lassen sich selbstdefinierte Zeichen ausdrucken. Das macht auch dieses Programm. Es setzt zwei zu druckende Buchstaben in ein selbstdefiniertes Zeichen um, das der Drucker zu Papier bringt. Der 1526 druckt also immer zwei Buchstaben gleichzeitig (160 Zeichen pro Zeile). Im 128-Zeichenmodus ist es etwas komplizierter. Hier werden aus acht Buchstaben fünf Druckerzeichen zusammengesetzt (Bild 1). Das Aussehen der Zeichen wird über die DATA-Werte im Programm bestimmt. Acht DATAs für ein Zeichen. Ein DATA-Wert bestimmt, welche Nadeln einer vertikalen Punktreihe angeschlagen werden.

Bild 1. Die drei Schriftmodi des 1526, die mit diesem Unterprogramm möglich sind

Die einzelnen Nadeln haben die folgenden Wertigkeiten:

oben . 128
. 64
. 32
. 16
. 8
. 4
. 2
unten . 1

Ein Zeichen ist aus acht solchen Punktreihen zusammengesetzt. Die binären Wertigkeiten der einzelnen Punktspalten werden über die CHR$()-Funktion in einem String addiert und an den 1526 gesandt, der das selbstdefinierte Zeichen druckt.

Das folgende kleine Programm druckt einen senkrechten Strich:
10 open5,4,5
20 a$=chr$(255): rem eine Punktreihe
30 for i=1 to 7 : rem Rest des Zeichens
40 a$=a$+chr$(0): rem mit Leerraum
50 next i :rem auffüllen
60 print#5,a$
70 close5

Tips zur Benutzung

Das eigentliche Programm beginnt ab Zeile 60000. Der Teil vorher dient nur zur Demonstration der 128- und der 160-Zeichendarstellung. Ab Zeile 60000 zerlegt das Programm den zu druckenden String (XX$) in seine Einzelteile, baut daraus die selbstdefinierten Zeichen zusammen und schickt diese an den Drucker.

Wenn Sie das Unterprogramm in einem Basic-Programm verwenden, übergeben Sie einfach die zu druckenden Zeichen in der Variablen XX$ an das Unterprogramm. Das Unterprogramm wird, wie üblich, mit einem GOSUB gestartet. GOSUB 60000 bewirkt eine 160-Zeichendarstellung, GOSUB 60810 eine »Druckbreite« von 128 Zeichen.

Beachten Sie bitte, daß vor dem Aufruf des 128-Zeichenmodus erst einmal der 160-Zeichenmodus aktiviert werden muß. Warum? Nun, beim ersten Durchlauf des Programmes werden alle DATAs in Variablenfelder (V1$() und V2$()) eingelesen. Da der READ-Befehl grundsätzlich mit dem ersten Datum im ganzen Programm beginnt, müssen zur 128-Zeichendarstellung die 160-Zeichen-DATAs überlesen werden. Das geschieht mit einem GOSUB 60000. Danach sind beide Variablenfelder definiert. Sie können dann beliebig den 128- oder 160-Zeichenmodus aufrufen. Würde zuerst der 128-Zeichenmodus aufgerufen, würden die falschen DATAs gelesen und den Variablen zugeordnet. Ein reichlich seltsames Aussehen der Zeichen wäre die Folge.

Eine detaillierte Programmbeschreibung finden Sie in Tabelle 1.

(Martin Riethmüller/hm)
Zeile Inhalt
0-8 Programmkopf
18-120 Demo
59000- Unterprogrammkopf 160-Zeichen-Karte
60000 Eröffnen eines Kanals zum Drucker
60005 Damit die DATA-Zeilen beim zweiten Aufruf nicht noch einmal aufgerufen werden.
60010- DATA-Zeilen für den neuen Zeichensatz
60080 Dimensionierung der Zeichensatzvariablen und der Druckvariablen, falls nicht schon ab 61000 gemacht
60085 <SPACE> wird definiert
60090- Einlesen der restlichen Buchstaben aus den DATA-
60115 Zeilen und Zuordnung in V1$(ll)
60130- In 60140 String in einzelne Buchstaben zerlegen.
60160 Dann in 60145 ermitteln der Nummer des Buchstabens, abfangen von nicht vorhandenen Zeichen. In 60155 auszudruckendes neues Zeichen = die letzten zwei Zeichen, gelesen aus dem neudefinierten Zeichensatz in V1$(ll).
60165 Zeilenvorschub des Druckers auf Null
60170- Ausdruckschleife mit allmählicher Verschiebung des
60185 Druckkopfes durch LE$
60190 Zeilenvorschub
60200 Rückkehr zum Hauptprogramm
60800- Unterprogrammkopf 128-Zeichen-Karte
61000 Eröffnen eines Kanals zum Drucker
61005 Damit die DATA-Zeilen beim zweiten Aufruf nicht noch einmal aufgerufen werden
61010- Dimensionierung der Zeichensatzvariablen und der
61015 Druckvariablen, falls nicht schon ab 61000 gemacht
61020- <SPACE> wird definiert
61035- DATA-Zeilen, in denen der neue Zeichensatz steckt
61115- Einlesen der restlichen Buchstaben aus den DATA-
61130 Zeilen und Zuordnung in V1$(II,JJ)
61140 Zeilenvorschub des Druckers auf Null
61145- In 61155 Zerlegung des eingegebenen Strings in ein-
61220 zelne Buchstaben. Dann in 61160 ermitteln der Nummer des Buchstabens, abfangen von nicht vorhandenen Zeichen. Ab 61170 Zusammenbau von 5 neudefinierten Zeichen aus 8 Zeichen von XX$. (Immer 5 »Streifen« zu einem neuen Zeichen.)
61225- Ausdruckschleife mit allmählicher Verschiebung des
61235 Druckkopfes durch LE$.
61245 Zeilenvorschub
61250 Rückkehr zum Hauptprogramm
Tabelle 1. Die einzelnen Programmzeilen aufgeschlüsselt
0 rem " {CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}
1 rem " {SHIFT--}   160/128-zeichen-karte   {SHIFT--}
2 rem " {SHIFT--}    fuer commodore 1526    {SHIFT--}
3 rem " {SHIFT--}  von martin riethmueller  {SHIFT--}
4 rem " {SHIFT--}  bei fragen zum programm  {SHIFT--}
5 rem " {SHIFT--}   oder zum 1526-drucker   {SHIFT--}
6 rem " {SHIFT--}gebe ich gerne rat+auskunft{SHIFT--}
7 rem " {SHIFT--}      tel. 07152/47418     {SHIFT--}
8 rem " {CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
18 clr:open1,4
19 print"{clr}"
20 rem ***** demo *****
30 xx$="":forx=32to94:xx$=xx$+" "+chr$(x):next
40 xx$=xx$+"das ist der zeichensatz des prgms."
60 gosub60000
70 xx$="":forx=32to94:xx$=xx$+" "+chr$(x):next
90 gosub61000
100 print#1,"und das ist zum vergleich die normale groesse.da sieht man den ";
110 print#1,"unterschied!":goto20
120 rem ********** demo-ende ***********
59000 rem "{CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}
59010 rem "{SHIFT--}       unterprogramm 160-zeichen-karte fuer drucker 1526          {SHIFT--}
59020 rem "{CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}
59030 rem "{SHIFT--} aufruf: gosub 60000.der inhalt der variablen xx$ wird ausgedruckt{SHIFT--}
59040 rem "{CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}
59050 rem "{SHIFT--}                  verwendete variablen                            {SHIFT--}
59060 rem "{SHIFT--}                                                                  {SHIFT--}
59070 rem "{SHIFT--} statusvariable [ ts ] (zur vermeidung der mehrfachen einlesung   {SHIFT--}
59080 rem "{SHIFT--} der datazeilen in [ v1$(94) ]                                    {SHIFT--}
59090 rem "{SHIFT--} laufvariablen [ ii ] und [ jj ]                                  {SHIFT--}
59100 rem "{SHIFT--} datalese-variable [ aa ]                                         {SHIFT--}
59110 rem "{SHIFT--} arbeitsvariable [ v1$ ]                                          {SHIFT--}
59115 rem "{SHIFT--} arbeitsfeld [ w1(2) ]                                            {SHIFT--}
59120 rem "{SHIFT--} [ le$ ] zur positionierung des druckkopfes                       {SHIFT--}
59130 rem "{SHIFT--} das feld [ v1$(94) ],das den neuen zeichensatz beinhaltet.       {SHIFT--}
59140 rem "{SHIFT--} das feld [ dr$(160) ],das ausgedruckt wird.                      {SHIFT--}
59150 rem "{CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
60000 open4,4
60005 ts=ts+1:ifts>1then60130
60010 data0,232,0,0,192,0,192,0,112,160,112,160,72,248,176,0,152,32,200,0,80
60015 data168,80,8,0,64,128,0,112,136,0,0,0,136,112,0,80,32,80,0,32,112,32,0,0,4
60020 data24,0,32,32,32,0,0,0,8,0,24,32,192,0
60025 data248,136,248,0,64,192,248,0,184,168,232,0,168,168,248,0,96,184,32
60030 data0,232,168,184,0,248,168,184,0,128,160,248,0,248,168,248,0,232,168,248
60035 data0,0,40,0,0,0,4,40,0,32,80,80,136,80,80,80,0,136,80,80,32,128,168,224
60040 data0,112,168,200,080
60045 data120,160,120,0,248,168,112,0,112,136,136,0,248,136,112,0,248,168,168,0
60050 data248,160,128,0,248,136,152,0,248,32,248,0,0,248,0,0,136,136,240,0
60055 data248,112,136,0,248,8,8,0
60060 data248,64,192,248,248,64,56,0,112,136,112,0,248,160,224,0,112,152,120,0
60065 data248,176,232,0,104,168,176,0,128,248,128,0,248,8,248,0,240,8,240,0,248
60070 data8,56,248,216,32,216,0,224,40,248,0,152,168,200,0
60077 data0,248,136,0,208,168,72,0,0,136,248,0,64,248,64,0
60080 dimv1$(94):iftz<1thendimdr$(160)
60085 v1$(32)=chr$(0)+chr$(0)+chr$(0)+chr$(0)
60090 forii=33to94
60095 forjj=1to4
60100 readaa
60105 v1$(ii)=v1$(ii)+chr$(aa):aa=0
60110 nextjj
60115 nextii
60130 forii=1to80
60135 forjj=1to2
60140 v1$=mid$(xx$,ii*2-(2-jj),1):ifv1$=""thenv1$=" "
60145 w1(jj)=asc(v1$):ifasc(v1$)>94orasc(v1$)<32thenw1(jj)=32
60150 nextjj
60155 dr$(80+ii)=v1$(w1(1))+v1$(w1(2))
60160 nextii
60165 open6,4,6:print#6,chr$(0):close6
60170 open5,4,5
60175 forii=1to80
60180 print#5,dr$(80+ii):print#4,le$+chr$(254)
60185 le$=le$+" ":nextii
60190 close5:le$="":open6,4,6:print#6,chr$(23):print#4,:print#6,chr$(32):close6
60200 xx$="":close4:return
60800 rem "{CBM-A}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-S}
60810 rem "{SHIFT--}       unterprogramm 128-zeichen-karte fuer drucker 1526          {SHIFT--}
60820 rem "{CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}
60830 rem "{SHIFT--} aufruf mit sys61000.der inhalt der variablen xx$ wird ausgedruckt{SHIFT--}
60840 rem "{CBM-Q}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-W}
60850 rem "{SHIFT--}                  verwendete variablen                            {SHIFT--}
60860 rem "{SHIFT--}                                                                  {SHIFT--}
60870 rem "{SHIFT--} statusvariable [ tz ] (zur vermeidung der mehrfachen einlesung   {SHIFT--}
60880 rem "{SHIFT--} der datazeilen in [ v2$(94,5) ]                                  {SHIFT--}
60890 rem "{SHIFT--} laufvariablen [ ii ] und [ jj ]                                  {SHIFT--}
60900 rem "{SHIFT--} datalese-variable [ aa ]                                         {SHIFT--}
60910 rem "{SHIFT--} arbeitsvariable [ v2$ ]                                          {SHIFT--}
60915 rem "{SHIFT--} arbeitsfeld [ f(8) ]                                             {SHIFT--}
60920 rem "{SHIFT--} [ le$ ] zur positionierung des druckkopfes                       {SHIFT--}
60930 rem "{SHIFT--} das feld [ v2$(94,5) ],das den neuen zeichensatz beinhaltet.     {SHIFT--}
60940 rem "{SHIFT--} das feld [ dr$(160) ],das ausgedruckt wird.                      {SHIFT--}
60950 rem "{CBM-Z}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-X}
61000 open4,4:open5,4,5
61005 tz=tz+1:iftz>1then61140
61010 dimv2$(94,5)
61015 ifts<1thendimdr$(180)
61020 forii=1to5
61025 v2$(32,ii)=chr$(0)
61030 nextii
61035 data0,0,250,0,0,0,224,0,224,0,20,62,20,62,20,98,159,242,140,0
61040 data198,200,16,38,198,108,154,150,110,9,0,0,96,128,0,124,130,130,0,0
61045 data130,130,124,0,0,40,16,124,16,40,16,16,124,16,16,0,0,1,6,0
61050 data16,16,16,16,0,0,0,6,6,0,6,8,16,32,192,124,138,146,124,0
61055 data32,64,254,0,0,70,138,146,98,0,146,146,146,108,0,24,40,94,8,0
61060 data242,146,146,140,0,60,82,146,140,0,144,158,176,208,0,108,146,146,108,0
61065 data100,146,146,124,0,0,0,18,0,0,0,1,12,0,0,16,40,68,68,0
61070 data40,40,40,40,0,68,68,40,16,0,64,128,154,96,0,124,130,178,116,0
61075 data254,144,144,254,0,254,146,146,108,0,124,130,130,130,0,254,130,130,124
61080 data0,254,146,146,146,0,254,144,144,128,0,124,130,146,92,0,254,16,16,254,0
61085 data0,0,190,0,0,132,130,130,252,0,254,16,40,198,0,254,2,2,2,0
61090 data254,64,32,64,254,254,64,32,254,0,124,130,130,124,0,254,144,144,96,0
61095 data124,130,142,126,1,254,152,148,98,0,98,146,146,140,0,128,254,128,128,0
61100 data252,2,2,252,0,248,6,6,248,0,254,2,4,2,254,198,56,56,198,0
61105 data224,18,18,252,0,134,154,178,210,0,254,130,130,0,0,76,178,146,82,0
61110 data0,130,130,254,0,32,64,254,64,32
61115 forii=33to94
61120 forjj=1to5
61125 readaa:v2$(ii,jj)=chr$(aa)
61130 nextjj:nextii
61140 open6,4,6:print#6,chr$(0):close6
61145 forii=1to16
61150 forjj=1to8
61155 v2$=mid$(xx$,ii*8-(8-jj),1):ifv2$=""thenv2$=" "
61160 f(jj)=asc(v2$):ifasc(v2$)<32orasc(v2$)>94thenf(jj)=32
61165 nextjj
61170 dr$(ii*5-4)=v2$(f(1),1)+v2$(f(1),2)+v2$(f(1),3)+v2$(f(1),4)+v2$(f(1),5)
61175 dr$(ii*5-4)=dr$(ii*5-4)+v2$(f(2),1)+v2$(f(2),2)+v2$(f(2),3)
61180 dr$(ii*5-3)=v2$(f(2),4)+v2$(f(2),5)+v2$(f(3),1)+v2$(f(3),2)+v2$(f(3),3)
61185 dr$(ii*5-3)=dr$(ii*5-3)+v2$(f(3),4)+v2$(f(3),5)+v2$(f(4),1)
61190 dr$(ii*5-2)=v2$(f(4),2)+v2$(f(4),3)+v2$(f(4),4)+v2$(f(4),5)+v2$(f(5),1)
61195 dr$(ii*5-2)=dr$(ii*5-2)+v2$(f(5),2)+v2$(f(5),3)+v2$(f(5),4)
61200 dr$(ii*5-1)=v2$(f(5),5)+v2$(f(6),1)+v2$(f(6),2)+v2$(f(6),3)+v2$(f(6),4)
61205 dr$(ii*5-1)=dr$(ii*5-1)+v2$(f(6),5)+v2$(f(7),1)+v2$(f(7),2)
61210 dr$(ii*5-0)=v2$(f(7),3)+v2$(f(7),4)+v2$(f(7),5)+v2$(f(8),1)+v2$(f(8),2)
61215 dr$(ii*5-0)=dr$(ii*5-0)+v2$(f(8),3)+v2$(f(8),4)+v2$(f(8),5)
61220 nextii
61225 forii=1to80
61230 print#5,dr$(ii):print#4,le$+chr$(254):le$=le$+" "
61235 nextii
61240 le$=""
61245 open6,4,6:print#6,chr$(26):print#4,:print#6,chr$(32):close6:close4:close5
61250 xx$="":return
Listing 1. 128/160 Zeichen auf dem 1526 (MPS 802).
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →