Elektrotechnisches Zeichnen mit dem VC 20
Dieses Programm unterstützt den Hobby-Elektroniker beim Entwurf von Schaltplänen. Gezeichnet wird mit dem Joystick, wobei zusätzlich eine Reihe von vordefinierten, elektrotechnischen und alphanumerischen Symbolen eingefügt werden kann.
Das Programm läuft auf jedem VC 20 mit mindestens 8 KByte Erweiterung. Zur Speicherung der Schaltpläne benötigt man eine 1541-Floppy; die Hardcopy-Routine ist für den MPS 801-Drucker geschrieben. Vor dem Abtippen muß der Zeiger für den Basic-Start verändert werden, um Platz für die hochauflösende Grafik und das Maschinenprogramm zu schaffen. Das geschieht mit
POKE44,36:POKE36 * 256,0:NEW
Jetzt wird zunächst der Basic-Lader nach Listing 1 eingetippt und vorsichtshalber sofort abgespeichert. Nach einwandfreiem Lauf des Laders kann anschließend der Basic-Teil (Listing 2) abgetippt werden. Sollte jedoch nach dem Start des Basic-Laders ein Fehler aufgetreten sein, so müssen die DATAs noch einmal überprüft werden.
Zu beachten ist, daß das Maschinenprogramm vor dem Start gesichert wird, denn vor dem Abtippen des Basic-Teils wird das Ladeprogramm mit »NEW« gelöscht. Nachdem nun auch der Basic-Teil vorhanden ist, kann das Programm endlich mit »RUN« gestartet werden.
Es erscheint auf dem Bildschirm ein Menü (Bild 1). Zunächst muß der Name der zu ladenden Zeichnung eingegeben werden. Wenn eine neue Zeichnung erstellt werden soll, so braucht man an dieser Stelle nur RETURN drücken. Danach wird der Name abgefragt, unter dem die Zeichnung abgespeichert werden soll. Wenn beide Eingaben gemacht wurden, erscheint die Zeichenfläche. Auf ihr kann nun mit dem Joystick gezeichnet werden. Bei gedrücktem Feuerknopf werden bereits gezeichnete Punkte wieder gelöscht. Wird der Bildschirmrand überschritten, springt der Zeichenpunkt immer in die linke obere Ecke.

Die weiteren Funktionen können nur über die Tastatur erreicht werden:
- (1) ← Löschen des Bildschirms (komplett)
- (2) ↑ Directory (ohne Zerstörung des Programms)
- (3) RETURN Menü (Grafik geht verloren)
- (4) CTRL Schaltet von Elektrozeichen auf alphanumerische Zeichen
- (5) SHIFT+CTRL Macht (4) rückgängig
- (6) C= + CTRL Löscht einen bestimmten Ausschnitt der Zeichenfläche.
Im Normalmodus können über die Tasten 1 bis 0 und SHIFT 1 bis 0 elektrotechnische Zeichen abgerufen werden (Bild 2). Nachdem die entsprechende Taste gedrückt ist, wird mit den Funktionstasten die Lage des Zeichens festgelegt:
- F1 = Bauteilanschluß oben
- F3 = Bauteilanschluß links
- F5 = Bauteilanschluß unten
- F7 = Bauteilanschluß rechts

Nach dem Drücken der entsprechenden Funktionstaste erscheint das Bauteil auf dem Bildschirm. Mit Hilfe des Joysticks können nun Verbindungslinien gezogen werden. Wenn in den Alphamodus umgeschaltet wurde, stehen die Buchstaben (A bis Z), die Ziffern (0 bis 9) und drei Sonderzeichen zur Verfügung (Bild 2). Die Sonderzeichen sind µ ([), Ω (]) und + (£). Alle Alphazeichen werden nach dem gleichen Verfahren wie die elektrotechnischen Zeichen auf den Bildschirm gebracht undkönnen daher auch in allen vier Lagen (F1, F3, F5, F7) dargestellt werden. Ein fertiger Schaltplan kann über die Funktionstaste F1 auf dem Drucker in einfacher (anschließend 1 drücken) oder in doppelter (anschließend 2 drücken) Größe ausgegeben werden. Durch Betätigen von F6 wird das Bild unter dem zu Anfang angegebenen Namen abgespeichert. Über F4 kann das Bild jederzeit wieder geladen werden.
Da das Löschen größerer Teile einer Zeichnung mit Hilfe des Joysticks normalerweise eine Geduldsaufgabe ist, wurde eine Funktion zum einfachen Löschen von Bildteilen vorgesehen. Das funktioniert wie folgt: Als erstes werden die Tasten C= und CTRL gleichzeitig gedrückt. Daraufhin ertönt ein ständiges Tonsignal. Jetzt kann mit dem Joystick der zu löschende Ausschnitt eingekreist werden (Bild 3). Um die »Löschlinie« von den anderen zu unterscheiden, wird sie gestrichelt dargestellt. Durch Drücken von F8 wird der markierte Ausschnitt schließlich gelöscht. Um das Erkennen der verschiedenen Betriebsarten des Programms zu erleichtern, werden unterschiedliche Rahmenfarben zur Kennzeichnung verwendet:
grün: | Normal- und Zeichenmodus |
gelb: | Alphamodus |
rot: | Bildschirmausdruck |
blau: | Bild von Disk laden |
violett: | Bild auf Disk speichern |
schwarz: | Disk Error |
Aus Geschwindigkeitsgründen wurden die Routinen für die hochauflösende Grafik, die Joystickabfrage, die Bewegungsberechnung und die Druckerausgabe in einem Maschinenprogramm zusammengefaßt (Listing 1). Diese Routinen liegen von $2000 (8192) bis $24FF (9471) im Speicher des VC 20. Wer auf die alphanumerischen Symbole verzichten will, der kann die Zeilen 30000 bis 35470, 7000 bis 7020, 5165, 5166, 420, 410 weglassen und erspart sich damit einige Tipparbeit. Das Programm läuft dann nur mit den elektrotechnischen Symbolen.
Bild 3 zeigt den Ausdruck eines mit diesem Programm erzeugten Schaltplanes. Bei der praktischen Arbeit werden Sie feststellen, daß es zu Anfang nicht ganz einfach ist, derart komplexe Zeichnungen auf Anhieb korrekt anzufertigen. Der große Vorteil dieses Programms liegt aber in der Änderungsfreundlichkeit und der beliebigen Reproduzierbarkeit der Zeichnungen.
(Elmar Baer/ev)
Zeile | 11 - | 120 | Parameter setzen |
Zeile | 200 - | 260 | Hauptteil (Punkte setzen & löschen; Tastatur abfragen; Überschreiten des Randes registrieren) |
Zeile | 400 - | 490 | Unterprogramm Abfrage der Funktionen (CLR, Zeichen holen, Directory und so weiter) |
Zeile | 500 | Tonausgabe | |
Zeile | 800 - | 870 | Funktionstastenabfrage (Speichern, Laden, Ausdruck, Richtungsangabe) |
Zeile | 900 | Plotten der Zeichen & Symbole | |
Zeile | 1000 - | 1390 | Bauteil mit entsprechender Richtung plotten |
Zeile | 4000 - | 4030 | Maximal & Minimalwerte zum CLR festlegen |
Zeile | 4040 - | 4100 | Ausschnitt löschen |
Zeile | 5000 - | 5210 | Menü und Eingabe des Bildnamens |
Zeile | 6000 - | 6010 | Floppyfehlerabfrage |
Zeile | 7000 - | 7020 | Begrenzung der Eingabe (a-], 1-0) |
Zeile | 9000 - | 9170 | Directory von Disk holen |
Zeile | 19999 - | 20920 | Koordinaten für die elektrotechnischen Symbole |
Zeile | 30000 - | 35470 | Koordinaten für die alphanumerischen |
10 rem********************* 15 rem* * 20 rem* e. zeichnen * 25 rem* * 30 rem* elmar baer * 35 rem* starenschleife 59 * 40 rem* 4700 hamm 1 * 45 rem* tel. 02381/81959 * 50 rem* * 55 rem* m.-teil * 60 rem********************* 65 fort=8196to9177:reada:poket,a:b=b+a:next 70 ifb<>111788thenprint"fehler":end 75 print"lade den basic teil" 76 data32,253,206,32,209,225,162,0,160,32,169,0,133,253,169,17,133,254,169 77 data253,133,185,76,216,255,32,253,206,32,209,225,169,1,133,185,169,0 78 data76,213,255,169,12,141,0,144,169,22,141,2,144,169,174,141,3,144,169 79 data192,141,5,144,96,234,234,234,234,234,234,169,6,162,0,157,0,148,232 80 data224,230,208,248,96,169,17,141,102,32,169,0,141,101,32,162,0,160,0 81 data169,0,153,241,31,200,192,255,208,248,24,173,101,32,105,255,141,101 82 data32,173,102,32,105,0,141,102,32,232,224,15,208,222,96,234,234,234 83 data234,234,234,96,169,128,44,169,0,133,151,32,253,206,32,158,215,224 84 data168,176,238,134,20,32,253,206,32,158,215,224,176,176,226,138,74,74 85 data74,74,10,168,185,14,33,141,107,33,185,15,33,141,108,33,138,41,15 86 data24,109,107,33,141,107,33,169,0,141,106,33,165,20,41,248,10,141,105 87 data33,144,4,238,106,33,24,169,0,109,107,33,133,253,169,17,109,108,33 88 data133,254,24,165,253,109,105,33,133,253,165,254,109,106,33,133,254 89 data165,20,41,7,73,7,170,189,36,33,160,0,36,151,16,5,73,255,49,253,44 90 data17,253,145,253,96,0,0,80,1,160,2,240,3,64,5,144,6,224,7,48,9,128 91 data10,208,11,32,13,1,2,4,8,16,32,64,128,169,151,141,3,144,169,21,141 92 data2,144,169,204,141,5,144,169,14,141,0,144,162,16,138,157,240,15,169 93 data6,157,240,147,232,208,244,96,162,3,32,198,255,32,207,255,32,210,255 94 data208,248,169,13,32,210,255,76,204,255,234,234,234,234,234,160,0,47 95 data13,234,234,234,234,234,234,234,234,169,127,141,34,145,173,32,145 96 data41,128,133,251,169,255,141,34,145,173,31,145,41,28,24,101,251,133 97 data251,173,31,145,41,32,133,252,96,173,141,2,201,0,240,2,96,234,166 98 data251,160,0,224,28,240,63,224,140,240,69,224,136,240,23,224,132,240 99 data27,160,1,224,152,240,55,224,148,240,41,224,24,240,29,224,20,240,17 100 data96,32,242,33,160,1,76,242,33,32,242,33,160,1,76,232,33,32,232,33 101 data160,0,76,232,33,32,242,33,160,0,76,232,33,24,185,60,3,101,255,153 102 data60,3,96,185,60,3,229,255,153,60,3,96,72,138,72,152,72,32,28,34,76 103 data178,254,169,10,141,14,144,169,192,141,12,144,170,168,136,208,253 104 data202,208,250,142,14,144,96,216,160,0,162,17,181,0,148,0,72,202,16 105 data248,173,5,144,170,41,7,10,10,10,133,8,138,41,8,208,1,56,102,8,173 106 data2,144,168,41,127,133,9,152,41,128,240,1,56,138,41,112,144,2,9,8,74 107 data133,17,138,41,128,208,1,56,102,17,173,3,144,41,127,74,38,12,240,1 108 data10,10,10,10,133,10,169,128,133,2,32,6,34,32,159,255,165,197,201,56 109 data240,25,201,0,240,21,201,15,240,14,201,62,208,235,169,173,141,24,3 110 data169,254,141,25,3,76,197,35,133,13,32,6,34,32,159,255,169,60,234,234 111 data234,234,234,234,234,234,133,11,24,169,4,170,160,255,32,186,255,169 112 data0,133,198,32,189,255,32,192,255,162,4,32,201,255,176,207,169,8,32 113 data210,255,169,13,32,210,255,24,165,9,133,7,165,3,101,0,133,5,197,10 114 data144,4,169,0,240,92,166,12,240,1,74,74,74,74,133,6,169,0,133,15,133 115 data16,162,8,70,7,144,3,24,101,6,106,102,15,202,208,243,24,101,17,133 116 data16,24,165,1,101,15,133,15,138,101,16,133,16,161,15,133,15,134,16 117 data24,169,3,101,12,168,138,70,5,106,6,15,38,16,136,208,246,164,12,208 118 data1,74,74,74,74,74,101,15,133,15,165,8,101,16,133,16,161,15,24,36,2 119 data240,1,56,102,4,230,3,160,6,196,3,176,58,134,3,165,4,166,13,240,22 120 data24,169,4,101,14,170,70,4,8,106,40,106,202,208,247,166,14,208,3,70 121 data4,106,162,4,228,11,208,2,73,255,56,106,133,4,32,210,255,166,13,240 122 data5,165,4,32,210,255,70,2,176,3,76,205,34,102,2,230,1,165,9,197,1,208 123 data243,160,0,132,1,169,13,32,210,255,165,13,240,14,165,14,208,6,169 124 data4,133,14,208,220,169,0,133,14,24,165,0,105,7,133,0,165,5,197,10,144 125 data203,169,15,32,210,255,169,13,32,210,255,32,204,255,169,4,32,195,255 126 data162,0,134,198,104,149,0,232,224,18,48,248,96
11 rem*************** 12 rem* e. zeichnen * 13 rem* * 14 rem* elmar baer * 15 rem* * 20 rem* * 21 rem* basic teil * 22 rem*************** 50 print"{clr}":poke36879,29:printchr$(8) 60 lt=36878:mt=36876:r=230:j=30 100 dimh$(30),nl(70),z$(70):gosub20000 110 xm=0:xn=168:ym=0:yn=176:poke828,80:poke829,80:fy=174:fu=1:fx=166:fp=36879:gosub5000 120 poke255,1:sys8492:sys8276:sys8263:poke650,128 200 sys8565:q=peek(653):sys8600:y=peek(829):x=peek(828) 210 ify<fuory>fyorx<fuorx>fxthenpoke828,10:poke829,10:r=160:gosub500 220 sys8333,x,y 230 geta$:ifa$<>""orq<>0orqw=1thengosub400 240 ifpeek(252)=0thensys8330,x,y:goto200 250 sys8333,x,y:goto200 260 goto200 400 ifa$="_"thensys8276:gosub500 410 ifq=5thenww=0:pokefp,29 420 ifq=4orww=2then7000 430 ifa$>"/"anda$<":"andq=0thenn=val(a$) 440 ifa$>" "anda$<":"andq=1thena$=chr$(asc(a$)+16):n=val(a$)+10 450 ifa$>chr$(132)anda$<chr$(141)thengosub800 460 ifq=6orqw=1thengosub500:gosub4000 470 ifa$=chr$(13)thengosub500:goto5000 480 ifa$="^"then9100 490 return 500 pokelt,8:pokemt,230:foryy=0to50:next:pokemt,0:r=230:return 800 ifa$=chr$(137)thenpokefp,26:gosub970:sys8732:pokefp,29 810 ifa$=chr$(133)then1020 820 ifa$=chr$(134)then1120 830 ifa$=chr$(135)then1220 840 ifa$=chr$(136)then1320 850 ifa$=chr$(138)thenpokefp,j:gosub960:sys8221,"e-z"+fl$,8:gosub950:gosub6000:pokefp,29 860 ifa$=chr$(139)thenpokefp,28:gosub970:sys8196,"@:e-z"+f$,8:gosub6000:pokefp,29 870 return 900 x1=x+zx:y1=y+zy:sys8333,x1,y1:return 950 poke828,10:poke829,10:return 960 sys8330,x,y:x=10:y=x:return 970 sys8330,x,y:return 1000 rem anschluss oben 1020 fort=1tonl(n)step4:zx=val(mid$(z$(n),t,2)):zy=val(mid$(z$(n),t+2,2)):gosub900:next 1090 goto870 1100 rem anschluss rechts 1120 fort=1tonl(n)step4:zy=val(mid$(z$(n),t,2)):zx=val(mid$(z$(n),t+2,2)):gosub900:next 1190 goto870 1200 rem anschluss unten 1220 fort=1tonl(n)step4:zx=val(mid$(z$(n),t,2))*-1:zy=val(mid$(z$(n),t+2,2))*-1:gosub900 1290 next:goto870 1300 rem anschluss links 1320 fort=1tonl(n)step4:zy=val(mid$(z$(n),t,2))*-1:zx=val(mid$(z$(n),t+2,2))*-1:gosub900 1390 next:goto870 4000 ifxm<xthenxm=x 4010 ifxn>xthenxn=x 4020 ifyn>ythenyn=y 4030 ifym<ythenym=y 4040 qw=1:poke255,3:fx=164:fy=172:fu=4 4050 geta$:ifa$<>chr$(140)thenreturn 4060 fort=yntoym:fortt=xntoxm:sys8330,tt,t:next:next:xm=0:xn=168:ym=0:yn=176:qw=0 4100 fy=175:fx=167:fu=1:poke255,1:return 5000 sys8236 5100 print"{clr}{rvon}{red} elektro-zeichnen {rvof}{blu}" 5110 print"f1 anschluss oben" 5120 print"f3 anschluss rechts" 5130 print"f5 anschluss unten" 5140 print"f7 anschluss links" 5145 print"f8 clr auschnitt" 5146 print"f2 hardcopy" 5150 print"f4 laden bild" 5160 print"f6 saven bild" 5165 print"{down}ctrl alpha ein" 5166 print"ctrl+sh alpha aus" 5168 print"^ directory" 5170 print"_ loeschen " 5174 print"return start" 5175 print"ctrl+c= clr festlegen" 5180 print" 1-0 e. symbole" 5190 print"sh 1-0 e. symbole" 5195 input"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}filenname {rvon}l{rvof}";fl$:iflen(fl$)>13then5195 5200 input"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}filenname {rvon}{pur}s{rvof}{blu}";f$:iflen(f$)>13then5200 5210 sys8492:goto120 6000 open15,8,15:input#15,a:ifa>20thenpokefp,24:wait198,1 6010 close15:return 7000 pokefp,31:ww=2:ifa$>"/"anda$<":"thenn=asc(a$)+12:goto450 7010 ifa$>"@"anda$<"^"thenn=asc(a$)-34:goto450 7020 goto450 9000 rem direktory 9100 print"{clr}":sys8236 9104 open3,8,0,"$0":get#3,d$,d$ 9106 open15,8,15:input#15,d 9107 ifd>19thenpokefp,24:wait198,1:poke198,0:pokefp,29:close3:close15:goto9104 9108 close15:close3 9109 open3,8,0,"$0":get#3,d$,d$ 9110 get#3,d$,d$,dl$,dh$ 9120 ifd$=""then9150 9130 dl$=dl$+chr$(0):dh$=dh$+chr$(0):print256*asc(dh$)+asc(dl$); 9140 sys8527:goto9110 9150 print"{down}f1=directory f7=start" 9155 geta$:ifa$="{f1}"thenclose3:goto9100 9160 ifa$="{f7}"thenclose3:goto5000 9170 goto9155 19999 rem koordinaten fuer zeichen 20000 rem transistor 20005 nl(1)=64 20010 z$(1)="-5+5-4+5-3+5-3+4-3+3-3+2-3+6-3+7-3+8-2+3-1+2+0+1-2+7-1+8+0+9+0+9" 20050 rem resistor 20055 nl(2)=112 20060 h$(2)="-2+4-2+3-2+2-2+1-2+0-1+0+0+0+1+0+2+0+2+1+2+2+2+3+2+4+0-1" 20070 z$(2)=h$(2)+"-2+4-2+5-2+6-2+7-2+8-1+8+0+8+1+8+2+8+2+7+2+6+2+5+2+4+0+9" 20100 rem diode 20105 nl(3)=92 20110 h$(3)="+0+1+0+2+0+3-1+3-2+3-3+3-2+4-1+5+0+6+1+5+2+4+3+3+1+3+2+3" 20120 z$(3)=h$(3)+"-3+7-2+7-1+7+0+7+1+7+2+7+3+7+0+8+0+9" 20150 rem thristor 20155 nl(4)=104 20160 z$(4)=h$(3)+"-3+7-2+7-1+7+0+7+1+7+2+7+3+7+0+8+0+9-2+8-3+9-4+9" 20200 rem diac 20205 nl(5)=136 20210 h$(5)="+0+1+0+2+0+3-1+2-2+2-3+2-4+2-4+3-3+4-2+5-2+6-1+4+0+3+1+2+2+2+3+2+4+2" 20220 z$(5)=h$(5)+"+0+9+0+8+0+7+1+7+2+7+3+7+4+7+4+6+3+5+2+4+2+3+1+5+0+6-1+7-2+7-3+7-4+7" 20250 rem triac 20255 nl(6)=148 20260 z$(6)=z$(5)+"-3+8-4+9-5+9" 20300 rem kondensator 20305 nl(7)=72 20310 z$(7)="+0+1+0+2+0+3-1+3-2+3-3+3+1+3+2+3+3+3+3+6+2+6+1+6+0+6-1+6-2+6-3+6+0+7+0+8" 20350 rem poti 20355 nl(8)=156 20360 z$(8)=z$(2)+"+4+0+3+1+2+2+1+3+0+4-1+5-2+6-3+7-4+8-4+9" 20400 rem schlieser 20405 nl(19)=36 20410 z$(19)="+0+0+0+1+0+2-3+4-2+5-1+6+0+7+0+8+0+9" 20450 rem knoten 20455 nl(0)=32 20460 z$(0)="+0+1+0-1+1+1+1-1-1+1-1-1-1+0+1+0" 20500 rem oeffner 20505 nl(18)=60 20510 z$(18)="+0+0+0+1+0+2+0+3-1+3-2+3-3+3-4+3-4+3-3+4-2+5-1+6+0+7+0+8+0+9" 20550 rem lampe 20555 nl(11)=96 20560 h$(11)="+0+1-1+1-2+2-3+3-3+4-3+5-2+6-1+7+0+7+1+7+2+6+3+5+3+4+3+3+2+2+1+1" 20570 z$(11)=h$(11)+"+0+0+0+8+0+9-1+3+0+4+1+5-1+5+1+3" 20600 rem spannungsq. 20605 nl(12)=88 20610 z$(12)=z$(7)+"-4+3-5+3+4+3+5+3" 20650 rem z-diode 20655 nl(9)=104 20660 z$(9)=z$(3)+"-4+7-4+6-4+5" 20700 rem op 20705 nl(13)=216 20710 h$="-7+9-7+8-7+7-7+6-7+5-7+4-7+3-7+2-7+1-7+0-7-1-7-2-7-3-7-4-7-5-7-6-7-7-7-8-7-9" 20720 h$(13)="-6+9-5+9-4+8-3+7-2+6-1+5+0+4+1+3+2+2+3+1+4+0+5+0+6+0-4+3-5+4-4+4-3+4-4+5" 20730 h$(9)="-6-9-5-9-4-8-3-7-2-6-1-5+0-4+1-3+2-2+3-1-5-4-4-4-3-4" 20740 z$(13)=h$+h$(13)+h$(9)+"-8-4-9-4-8+4-9+4" 20750 rem fet 20755 nl(14)=72 20760 z$(14)="-1+0-2+0-3+0-4+0-5-1-5+0-5+1-5+2-5+3-5+4-5+5-6+4-7+4-8+4-4+4-3+4-2+4-1+4" 20800 reminduktivitaet 20805 nl(15)=196 20810 h$(15)="-1+3-1+2-1+1+0+3+0+2+0+1+1+3+1+2+1+1-1+4-1+5-1+6-1+7+0+4+0+5+0+6+0+7" 20820 z$(15)=z$(2)+h$(15)+"+1+4+1+5+1+6+1+7" 20850 remschuetz 20855 nl(16)=124 20860 h$(16)="+0+0+0+1+0+2-1+2-2+2-3+2-4+2-4+3-4+4-4+5-4+6-3+6-2+6-1+6+0+6+0+7+0+8" 20870 z$(16)=h$(16)+"+1+6+2+6+3+6+4+6+4+5+4+4+4+3+4+2+3+2+2+2+1+2+1+3+0+4-1+5" 20900 rem trafo 20905 nl(17)=244 20910 zh$(0)="-8+0-7+0-6+0-5+0-1+0+1+0+2+0" 20911 zh$(1)="-6+1-5+1-3+1-1+1+0+1" 20912 zh$(2)="-6+2-5+2-3+2-1+2+0+2" 20913 zh$(3)="-6+3-5+3-3+3-1+3+0+3" 20914 zh$(4)="-6+4-5+4-3+4-1+4+0+4" 20915 zh$(5)="-6+5-5+5-3+5-1+5+0+5" 20916 zh$(6)="-6+6-5+6-3+6-1+6+0+6" 20917 zh$(7)="-6+7-5+7-3+7-1+7+0+7" 20918 zh$(8)="-8+8-7+8-6+8-5+8-1+8+0+8+1+8+2+8" 20920 z$(17)=zh$(0)+zh$(1)+zh$(2)+zh$(3)+zh$(4)+zh$(5)+zh$(6)+zhs$(7)+zh$(8) 30000 rem a 30010 nl(31)=48 30020 z$(31)="+0-1+0-2+0-3+0-4+0-5+1-5+2-5+2-4+2-3+2-2+2-1+1-3" 30050 rem b 30060 nl(32)=40 30070 z$(32)="+0-1+0-2+0-3+0-4+0-5+1-5+2-4+2-2+1-1+1-3" 30100 rem c 30110 nl(33)=28 30120 z$(33)="+0-2+0-3+0-4+1-5+2-5+2-1+1-1" 30150 rem d 30160 nl(34)=40 30170 z$(34)="+0-1+0-2+0-3+0-4+0-5+1-5+2-4+2-3+2-2+1-1" 30200 rem e 30210 nl(35)=40 30220 z$(35)="+0-1+0-2+0-3+0-4+0-5+1-5+2-5+1-3+2-1+1-1" 30250 rem f 30260 nl(36)=32 30270 z$(36)="+0-1+0-2+0-3+0-4+0-5+1-5+2-5+1-3" 30300 rem g 30310 nl(37)=40 30320 z$(37)="+0-2+0-3+0-4+1-5+2-5+1-1+2-1+3-2+3-3+2-3" 30350 rem h 30360 nl(38)=44 30370 z$(38)="+0-1+0-2+0-3+0-4+0-5+2-5+2-4+2-3+2-2+2-1+1-3" 30400 rem i 30410 nl(39)=20 30420 z$(39)="+1-1+1-2+1-3+1-4+1-5" 30450 rem j 30460 nl(40)=24 30470 z$(40)="+0-2+1-1+2-2+2-3+2-4+2-5" 30500 rem k 30510 nl(41)=40 30520 z$(41)="+0-1+0-2+0-3+0-4+0-5+1-3+2-4+3-5+2-2+3-1" 30550 rem l 30560 nl(42)=28 30570 z$(42)="+0-1+0-2+0-3+0-4+0-5+1-1+2-1" 30600 rem m 30610 nl(43)=60 30620 z$(43)="+0-1+0-2+0-3+0-4+0-5+1-5+1-4+2-3+3-4+3-5+4-5+4-4+4-3+4-2+4-1" 30650 rem n 30660 nl(44)=60 30670 z$(44)="+0-1+0-2+0-3+0-4+0-5+1-5+1-4+2-3+3-2+3-1+4-1+4-2+4-3+4-4+4-5" 30700 rem o 30710 nl(45)=32 30720 z$(45)="+0-2+0-3+0-4+1-5+2-4+2-3+2-2+1-1" 30750 rem p 30760 nl(46)=32 30770 z$(46)="+0-1+0-2+0-3+0-4+0-5+1-5+2-4+1-3" 30800 rem q 30810 nl(47)=36 30820 z$(47)="+0-2+0-3+0-4+1-5+2-4+2-3+2-2+1-1+3-1" 30850 rem r 30860 nl(48)=40 30870 z$(48)="+0-1+0-2+0-3+0-4+0-5+1-5+2-4+1-3+1-2+2-1" 30900 rem s 30910 nl(49)=44 30920 z$(49)="+0-1+1-1+2-1+2-2+2-3+1-3+0-3+0-4+0-5+1-5+2-5" 30950 rem t 30960 nl(50)=28 30970 z$(50)="+1-1+1-2+1-3+1-4+1-5+0-5+2-5" 31000 rem u 31010 nl(51)=44 31020 z$(51)="+0-5+0-4+0-3+0-2+0-1+1-1+2-1+2-2+2-3+2-4+2-5" 31050 rem v 31060 nl(52)=36 31070 z$(52)="+0-5+0-4+0-3+0-2+1-1+2-2+2-3+2-4+2-5" 31100 rem w 31110 nl(53)=52 31120 z$(53)="+0-5+0-4+0-3+0-2+0-1+1-1+2-2+3-1+4-1+4-2+4-3+4-4+4-5" 31150 rem x 31160 nl(54)=36 31170 z$(54)="+0-5+1-4+2-3+3-2+4-1+0-1+1-2+3-4+4-5" 31200 rem y 31210 nl(55)=28 31220 z$(55)="+0-5+0-4+1-3+1-2+1-1+2-4+2-5" 31250 rem z 31260 nl(56)=36 31270 z$(56)="+0-5+1-5+2-5+2-4+1-3+0-2+0-1+1-1+2-1" 31300 rem my 31310 nl(57)=32 31320 z$(57)="-1-3-1-2-1-1-1-0+0-1+1-1+1-2+1-3" 31350 rem + 31360 nl(58)=20 31370 z$(58)="+1-4+1-3+1-2+0-3+2-3" 31400 rem ohm 31410 nl(59)=44 31420 z$(59)="+0-1+1-1+1-2+0-3+1-4+2-5+3-4+4-3+3-2+3-1+4-1" 35000 rem 0 35010 nl(60)=48 35020 z$(60)="+0-1+0-2+0-3+0-4+0-5+1-5+2-5+2-4+2-3+2-2+2-1+1-1" 35050 rem 1 35060 nl(61)=20 35070 z$(61)="+0-1+0-2+0-3+0-4+0-5" 35100 rem 2 35110 nl(62)=32 35120 z$(62)="+0-5+1-5+2-4+1-3+0-2+0-1+1-1+2-1" 35150 rem 3 35160 nl(63)=28 35170 z$(63)="+0-5+1-5+2-4+1-3+2-2+1-1+0-1" 35200 rem 4 35210 nl(64)=32 35220 z$(64)="+0-5+0-4+0-3+1-3+2-3+2-4+2-2+2-1" 35250 rem 5 35260 nl(65)=36 35270 z$(65)="+0-5+1-5+2-5+0-4+0-3+1-3+2-2+1-1+0-1" 35300 rem 6 35310 nl(66)=48 35320 z$(66)="+2-5+1-5+0-5+0-4+0-3+0-2+0-1+1-1+2-1+2-2+2-3+1-3" 35350 rem 7 35360 nl(67)=28 35370 z$(67)="+0-5+1-5+2-5+2-4+2-3+1-2+1-1" 35400 rem 8 35410 nl(68)=44 35420 z$(68)="+0-2+0-4+0-5+1-5+2-5+2-4+2-2+2-1+1-1+0-1+1-3" 35450 rem 9 35460 nl(69)=48 35470 z$(69)="+1-3+0-3+0-4+0-5+1-5+2-5+2-4+2-3+2-2+2-1+1-1+0-1" 39999 return