Drucker-Anwendung

Etiketten wie gedruckt

Bild 1. Leicht lassen sich solche Labels drucken

Mit diesem Programm sind Sie in der Lage, professionell beschriftete Etiketten herzustellen. Und das mit allen ASCII-Zeichen des C 64. Das Programm hat einen eigenen Editor zur Eingabe der Beschriftung. Fertige Labels können gespeichert und geladen werden.

Eine saubere Diskettenbeschriftung macht einiges her. Verschieden gestaltete Labels schaffen Ordnung; nicht nur bei Disketten.

Das Programm ist für einen 1526-Drucker konzipiert, ist aber leicht auf andere Drucker anzupassen. Vorausgesetzt, der Drucker kann die C 64-Grafikzeichen drucken. Wenn nicht, läßt sich das Programm trotzdem einsetzen, wenn man sich auf die Verwendung von Buchstaben beschränkt.

Mit einem Commodore 1526-Drucker können Sie Ihre Aufkleber mit sämtlichen alphanumerischen und C 64-eigenen Zeichen verwenden. Auch reverse und doppelt breite Schrift ist möglich. Das Programm ist für die Verwendung von Endlosetiketten der Größe 88,9x35,5 mm gedacht.

Komfortable Hilfsroutinen

Sehr gut am Programm ist die Tatsache, daß einmal erstellte Aufdrucke gespeichert und wieder geladen werden können. Aber damit sind die Möglichkeiten, die das Programm »Etiketten 64« bietet, noch lange nicht erschöpft. Einige Hilfsfunktionen zur Arbeit mit Disketten runden die »ganze Sache« ab. Man kann sich das Directory zeigen lassen und Befehle an das Diskettenlaufwerk senden. Zum Beispiel "R:" für Rename, "V" für Validate oder "I" zum Initialisieren. Das Programm ist weitestgehend absturzsicher (Ausnahme: Device not Present Error). Fehleingaben können leicht wieder rückgängig gemacht werden: Man gelangt ohne Datenverlust immer wieder ins Hauptmenü zurück.

»Etiketten 64« ist vollständig in Basic geschrieben, um die Anpassung auf andere Drucker zu erleichtern. Deshalb wurde auch der Programmteil DRUCKEN an das Programmende gelegt.

Wenn Sie einen Compiler besitzen, sollten Sie das Basic-Programm damit behandeln. Der Editor wird dann so schnell, daß die Eingabegeschwindigkeit nichts mehr zu wünschen übrigläßt. Das soll aber keinesfalls heißen, das Programm würde ohne Compiler nur bedingt funktionieren. »Etiketten 64«ist auch in nicht compilierter Form ein sehr gutes Programm.

Wenn Sie das Programm starten (sicherheitshalber nach dem Eintippen erst speichern), erscheint das Hauptmenü mit dem Eingabefeld.

Die Menüpunkte:

F1 — Editieren; der Aufdruck kann erstellt werden.

Während des Editierens behalten die Cursortasten ihre volle Funktion bei. Allerdings nur innerhalb des Eingabefeldes. Ebenso funktionieren auch alle anderen Tasten des C 64 zum Editieren. HOME setzt den Cursor in die linke obere Ecke, CLR löscht das Eingabefeld, DEL löscht das Zeichen unterhalb (!) des Cursors. INST fügt einen Leerraum an der Cursorposition ein.

Ein Untermenü am unteren Bildschirmrand erleichtert das Editieren noch mit folgenden Funktionen:

Revers schaltet den Reversmodus ein und aus. Der aktuelle Modus wird angezeigt.

Breit schaltet die Breitschrift ein und aus. Doppelt große Zeichen werden durch einen vorangestellten Pfeil gekennzeichnet.

Zeile löschen — eine Zeile wird ab Cursorposition gelöscht. Alle anderen Zeilen rücken nach. Eine komplette Zeile wird gelöscht, wenn der Cursor am Anfang der jeweiligen Zeile steht.

Zeile einfügen — eine Leerzeile wird ab Cursorposition eingefügt. Eine ganze Zeile wird eingefügt, wenn der Cursor, wie bei »Zeile löschen« am Zeilenanfang steht.

Ende — Rücksprung ins Hauptmenü.

F3 — Drucken; das Eingabefeld wird gedruckt. Zum Druck müssen die Etiketten beim 1526-Drucker linksbündig eingelegt werden. Die obere Kante des Aufklebers soll gerade über dem Farbband sichtbar sein.

F5 — speichern; das Eingabefeld wird auf Diskette gespeichert. Wurde der Menüpunkt irrtümlich angewählt, kommt man mit F8 ins Hauptmenü zurück. Vor dem Speichern muß der Bildschirm eingegeben werden. Diskettenfehler werden angezeigt und werden mit RETURN bestätigt. Sollte bereits ein Etikett mit dem eingegebenen Namen auf der Diskette vorhanden sein, so muß man ein Überschreiben mit »J« bestätigen.

F7 — laden; ein Etikett-Design wird von Diskette geladen.

F2 — Directory; die auf einer Diskette gespeicherten Aufkleberbeschriftungen werden aufgelistet.

Weiter holt den nächsten Directory-Eintrag.

Ende stoppt die F2-Funktion. Der zuletzt sichtbare Etikettenname wird in die Ladefunktion übernommen.

F4 — Befehle an das Diskettenlaufwerk.

Hier können Sie Direktbefehle ans Floppylaufwerk schicken. Mit F8 kann diese Funktion abgebrochen werden.

F8 — Ende; beendet einen Programmteil oder das ganze Programm.

Leichte Druckeranpassung

Tabelle 1 zeigt die Variablenliste des Etikettendruckprogramms. Möchten Sie das Listing auf einen anderen Drucker als dem Commodore 1526 anpassen, müssen die Sekundäradressen und Steuercodes entsprechend geändert werden. Sollte eine Anpassung Ihres Druckers bezüglich der Grafikzeichen und doppelt breiter Schrift nicht möglich sein, können Sie das Programm dennoch verwenden. Denn ohne Grafik- und Steuerzeichen sollte das Programm auf jedem Drucker laufen, wenn der Drucker eine Einstellung des Zeilenabstandes zuläßt.

(Gerhard Zinner/hm)
CR$ Cursor Right String (zur Cursorpositionierung)
CD$ Cursor Down String (zur Cursorpositionierung)
LE$ String aus Leerzeichen
T$ Textstring (wird aus Eingaben gebildet)
N Pointer f+r Diskettenformatierung
S Cursorspalte
R Cursorreihe
A,L Aktuelle Cursoradresse
RV Pointer für Reversmodus
BR Pointer für Breitmodus
l,J Laufvariablen
UE Pointer für Datei überschreiben
E Fehlernummer der Diskette
E$ Fehlertext der Diskette
A$ Eingabestring für GET
EN Pointer für Unterprogramm beenden
DE Pointer für Eingabekorrektur
M Max. Eingabelänge
D$ Dateiname, Disketten-Kommando
I$ Disketten-ID
DA$ Dateiname Alt (für Rename)
Tabelle 1. Variablenliste zum Etikettendrucker
1000 goto 2050
1010 rem
1020 rem
1030 rem         etiketten 64
1040 rem         ------------
1050 rem
1060 rem programm zum beschriften von
1070 rem endlos - etiketten der groesse
1080 rem        88.5 * 35.7 mm
1090 rem
1100 rem
1110 rem
1120 rem      1985  by  g. zinner
1130 rem                schmale str.3
1140 rem                4300 essen 11
1150 rem
1160 rem
1170 rem   ---------------------
1180 rem   --- allg. u'progs ---
1190 rem   ---------------------
1200 rem
1210 rem
1220 rem      menuefeld loeschen
1230 rem
1240 print left$(cd$,17)
1250 for i=0 to 6
1260 print le$
1270 next
1280 return
1290 :
1300 rem      cursor setzen
1310 :
1320 if s=29 then s=28
1330 a=1024+((r+3)*40)+s+5
1340 if peek(a)>127 then poke a,peek(a)-128:return
1350 poke a,peek(a)+128:return
1360 :
1370 rem      schreibfeld loeschen
1380 :
1390 print left$(cd$,4)
1400 fori=1 to 11
1410 print left$(cr$,6)left$(le$,28)
1420 next
1430 return
1440 :
1450 rem      string t$ zusammenbauen
1460 :
1470 rv=0:t$=""
1480 for i=l to l+27
1490 a=peek(i)
1500 if rv=0 and a>128 then t$=t$+"{rvon}":rv=1
1510 if rv=1 and a<128 then t$=t$+"{rvof}":rv=0
1520 if a>128 then a=a-128
1530 if a<32 then a=a+64:goto 1560
1540 if a>63 and a<96 then a=a+32:goto 1560
1550 if a>96 then a=a+64
1560 t$=t$+chr$(a)
1570 next
1580 return
1590 :
1600 rem      disketten fehler
1610 :
1620 ue=0
1630 input#15,e,e$,t,t
1640 if e=0 then return
1650 print left$(cd$,25)left$(cr$,2);
1660 :
1670 if e<>63 then 1730
1680 print e;e$;" - aendern (j/n)";
1690 get a$:if a$="" then 1690
1700 if a$<>"j" then 1770
1710 ue=1:goto 1770
1720 :
1730 print e;e$;" - <return>";
1740 get a$
1750 if a$<>chr$(13) then 1740
1760 :
1770 print left$(cd$,25)left$(cr$,2)left$(le$,37);
1780 return
1790 :
1800 rem      dateinamen eingeben
1810 :
1820 r=19:s=-1:en=0:de=0
1830 gosub 1320
1840 get a$:if a$="" then 1840
1850 gosub 1320
1860 if a$=chr$(13) then 1940
1870 if a$=chr$(20) then de=1:goto 1940
1880 if a$=chr$(140)then en=1:goto 1940
1890 if a$<chr$(32) then 1830
1900 if a$>chr$(94) then 1830
1910 s=s+1:if s>m then s=m
1920 print left$(cd$,r+4)left$(cr$,s+4);
1930 print a$;:goto 1830
1940 return
1950 :
1960 :
1970 rem   -------------------
1980 rem   --- arbeitsfeld ---
1990 rem   -------------------
2000 :
2010 :
2020 :
2030 rem      bildschirmfarben
2040 :
2050 poke 53280,0:poke 53281,0:print"{wht}"
2060 :
2070 rem      alle tasten repeat
2080 :
2090 poke 650,128
2100 :
2110 rem      shift+commodore aus
2120 :
2130 print chr$(8)
2140 :
2150 rem      feste variablen
2160 :
2170 cr$="{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}"
2180 cd$="{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"
2190 le$="                                       "
2200 t$="":n=0
2210 :
2220 rem      bildschirm aufbauen
2230 :
2240 print "{clr}   etiketten 64"spc(9)"(w)1985 by gz":print
2250 print " U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I"
2260 print " {SHIFT--}   {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-*}{CBM-S}   {SHIFT--}"
2270 for i=1 to 11
2280 print " {SHIFT--}  -{SHIFT--}"spc(28)"{SHIFT--}-  {SHIFT--}"
2290 next i
2300 print " {SHIFT--}   {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-*}{CBM-X}   {SHIFT--}"
2310 print " J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K"
2320 :
2330 gosub 1390
2340 :
2350 rem      menue anzeigen
2360 :
2370 gosub 1240
2380 print left$(cd$,17)
2390 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
2400 print "   {rvon} menue {rvof}"
2410 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}                {CBM-@}{CBM-@}{CBM-@}{CBM-@}"
2420 print "   {rvon} f1 {rvof} editieren      {rvon} f2 {rvof} directory"
2430 print "   {rvon} f3 {rvof} drucken        {rvon} f4 {rvof} disk com."
2440 print "   {rvon} f5 {rvof} speichern      {CBM-@}{CBM-@}{CBM-@}{CBM-@}"
2450 print "   {rvon} f7 {rvof} laden          {rvon} f8 {rvof} ende"
2460 :
2470 get a$:if a$="" then 2470
2480 if a$<"{f1}" or a$>"{f8}" then 2470
2490 :
2500 on asc(a$)-132 goto 2590,6790,3990,4410,4820,5250,2370,6580
2510 goto 2370
2520 :
2530 :
2540 rem   -----------------
2550 rem   --- editieren ---
2560 rem   -----------------
2570 :
2580 :
2590 gosub 1240
2600 print left$(cd$,17)
2610 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
2620 print "   {rvon} editieren {rvof}"
2630 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(9)"{CBM-@}{CBM-@}{CBM-@}"
2640 print "   {rvon} f1 {rvof} revers >{rvon}aus{rvof}<"
2650 print "   {rvon} f3 {rvof} breite >{rvon}nrm{rvof}<   {CBM-@}{CBM-@}{CBM-@}{CBM-@}"
2660 print "   {rvon} f5 {rvof} zeile loesch   {rvon} f6 {rvof} zeile einf"
2670 print "                       {rvon} f8 {rvof} ende"
2680 br=0:rv=0
2690 :
2700 rem      cursor positionieren
2710 :
2720 r=1:s=1
2730 print left$(cd$,5)left$(cr$,6);
2740 :
2750 gosub 1320
2760 geta$:ifa$="" or a$=chr$(34)then2760
2770 gosub 1320
2780 :
2790 if a$>chr$(31) and a$<chr$(128) then gosub 3840:goto 2750
2800 if a$>chr$(160)then gosub 3840:goto 2750
2810 if a$=chr$(140)then 2370
2820 if a$=chr$(133)then gosub 3460:goto 2750
2830 if a$=chr$(134)then gosub 3520:goto 2750
2840 if a$=chr$(135)then gosub 3580:goto 2750
2850 if a$=chr$(139)then gosub 3710:goto 2750
2860 if a$=chr$(19) then 2720
2870 if a$=chr$(147)then gosub 1390:goto 2720
2880 if a$=chr$(17) then gosub 3000:goto 2750
2890 if a$=chr$(145)then gosub 3050:goto 2750
2900 if a$=chr$(29) then gosub 3100:goto 2750
2910 if a$=chr$(157)then gosub 3150:goto 2750
2920 if a$=chr$(148)then gosub 3260:goto 2750
2930 if a$=chr$(20) then gosub 3360:goto 2750
2940 if a$=chr$(13) then gosub 3200:goto 2750
2950 :
2960 goto 2750
2970 :
2980 rem      cursor down
2990 :
3000 r=r+1:if r>11 then r=1
3010 return
3020 :
3030 rem      cursor up
3040 :
3050 r=r-1:if r<1 then r=11
3060 return
3070 :
3080 rem      cursor right
3090 :
3100 s=s+1:if s>28 then s=1
3110 return
3120 :
3130 rem      cursor left
3140 :
3150 s=s-1:if s<1 then s=28
3160 return
3170 :
3180 rem      return
3190 :
3200 r=r+1:if r>11 then r=1
3210 s=1
3220 return
3230 :
3240 rem      insert
3250 :
3260 if s=28 then return
3270 a=1024+((r+3)*40)+s+6:e=a+27-s
3280 for i=e to a step-1
3290 poke i,peek(i-1)
3300 next
3310 poke i,32
3320 return
3330 :
3340 rem      delete
3350 :
3360 if s=28 then return
3370 a=1024+((r+3)*40)+s+5:e=a+27-s
3380 for i=a to e
3390 poke i,peek(i+1)
3400 next
3410 poke i,32
3420 return
3430 :
3440 rem      revers an / aus
3450 :
3460 print left$(cd$,21)spc(16)"{rvon}";
3470 if rv=0 then print"an {rvof}":rv=1:return
3480 if rv=1 then print"aus{rvof}":rv=0:return
3490 :
3500 rem      breitschrift nrm/dop
3510 :
3520 print left$(cd$,22)spc(16)"{rvon}";
3530 if br=0 then print"dop{rvof}":br=1:return
3540 if br=1 then print"nrm{rvof}":br=0:return
3550 :
3560 rem      zeile loeschen
3570 :
3580 a=1024+((r+3)*40)+s+5:e=a+28-s
3590 if r=11 then j=a:goto 3660
3600 a1=(10-r)*40+a
3610 for j=a to a1 step 40
3620 for i=j to e
3630 poke i,peek(i+40)
3640 next:e=e+40
3650 next
3660 for i=j to e:poke i,32:next
3670 return
3680 :
3690 rem      zeile einfuegen
3700 :
3710 a=1024+((r+3)*40)+s+5+40
3720 if r=11 then return
3730 a1=(10-r)*40+a:e=a1+28-s
3740 for j=a1 to a step -40
3750 for i=j to e
3760 poke i,peek(i-40)
3770 next:e=e-40
3780 next
3790 for i=j to e:poke i,32:next
3800 return
3810 :
3820 rem      zeichen setzen
3830 :
3840 if br=1 then s=s+1
3850 s=s+1:if s>29 then s=29
3860 print left$(cd$,r+4)left$(cr$,s+4);
3870 if rv=1 then print"{rvon}";
3880 if rv=0 then print"{rvof}";
3890 if br=1 then print"{left}_";
3900 print a$;
3910 return
3920 :
3930 :
3940 rem   -----------------
3950 rem   --- speichern ---
3960 rem   -----------------
3970 :
3980 :
3990 gosub 1240
4000 print left$(cd$,17)
4010 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(9)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
4020 print "   {rvon} speichern {rvof}"spc(9)"{rvon} f8 {rvof} ende":print
4030 print "   >dateiname eingeben"
4040 print:print "   >               <";
4050 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}";
4060 :
4070 rem      dateinamen eingeben
4080 :
4090 if ue=1 then d$="@:"+d$:goto4220
4100 :
4110 m=14:gosub 1820
4120 if en=1 then 2370
4130 if de=1 then 4000
4140 :
4150 l=1908:gosub 1470
4160 d$=left$(t$,15)+"{CBM-+}"
4170 :
4180 rem      bild abspeichern
4190 :
4200 close 15
4210 :
4220 open 15,8,15:open 8,8,8,d$+",s,w"
4230 gosub 1620:if e<>0 then close8:close15:goto 4090
4240 for l=1190 to 1590 step 40
4250 gosub 1470
4260 :
4270 t$="{CBM-POUND}"+t$
4280 :
4290 print#8,t$
4300 next l
4310 close 8:close 15
4320 :
4330 t$="":goto 2370
4340 :
4350 :
4360 rem   -------------
4370 rem   --- laden ---
4380 rem   -------------
4390 :
4400 :
4410 gosub 1240
4420 print left$(cd$,17)
4430 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(13)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
4440 print "   {rvon} laden {rvof}"spc(13)"{rvon} f8 {rvof} ende":print
4450 print "   >dateiname eingeben"
4460 print:print "   >               <";
4470 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}";left$(t$,15)
4480 :
4490 rem      dateinamen eingeben
4500 :
4510 m=14:gosub 1820
4520 if en=1 then 2370
4530 if de=1 then 4420
4540 :
4550 l=1908:gosub 1470
4560 d$=left$(t$,15)+"{CBM-+}"
4570 :
4580 rem      bild holen
4590 :
4600 close 15
4610 :
4620 gosub 1390:r=1
4630 open 15,8,15:open 8,8,8,d$+",s,r"
4640 gosub 1620:if e<>0 then close8:close15:goto 4510
4650 input#8,t$
4660 :
4670 t$=right$(t$,len(t$)-1)
4680 :
4690 print left$(cd$,4+r)left$(cr$,6)t$
4700 r=r+1
4710 if r<12 then 4650
4720 close8:close15
4730 :
4740 t$="":goto 2370
4750 :
4760 :
4770 rem   -----------------
4780 rem   --- directory ---
4790 rem   -----------------
4800 :
4810 :
4820 gosub 1240
4830 print left$(cd$,17)
4840 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
4850 print "   {rvon} directory {rvof}"
4860 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(15)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
4870 print "   {rvon} f1 {rvof} weiter        {rvon} f8 {rvof} ende"
4880 print:print "   >               <";
4890 :
4900 rem  rem bildfiles holen
4910 :
4920 close 15
4930 :
4940 open 15,8,15
4950 open 1,8,0,"$0"
4960 :
4970 gosub 1620:if e<>0 then close 1:close 15:goto 4820
4980 :
4990 get#1,a$,a$,a$,a$,a$,a$
5000 :
5010 t$=""
5020 get#1,a$:if st<>0 then 5150
5030 if a$<>chr$(34) then 5020
5040 get#1,a$:if a$<>chr$(34) then t$=t$+a$:goto 5040
5050 if right$(t$,1)<>chr$(166) then 5120
5060 :
5070 print left$(cd$,23)left$(cr$,4)left$(t$,15)
5080 :
5090 get a$:if a$="" then 5090
5100 if a$=chr$(140) then 5150
5110 :
5120 get#1,a$:if a$<>"" then 5120
5130 if st=0 then 5010
5140 :
5150 close 1:close 15
5160 :
5170 goto 2370
5180 :
5190 :
5200 rem   -------------------
5210 rem   --- diskcomands ---
5220 rem   -------------------
5230 :
5240 :
5250 gosub 1240
5260 print left$(cd$,17)
5270 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"spc(7)"{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
5280 print "   {rvon} disk-comands {rvof}"spc(7)"{rvon} f8 {rvof} ende"
5290 print "   {CBM-@}{CBM-@}{CBM-@}"spc(18)"{CBM-@}{CBM-@}{CBM-@}"
5300 print "   {rvon} n {rvof} new (format.)    {rvon} s {rvof} scratch"
5310 print "   {rvon} v {rvof} validate         {rvon} r {rvof} rename"
5320 print "   {rvon} i {rvof} initialize"
5330 :
5340 close 15
5350 :
5360 get a$:if a$="" then 5360
5370 :
5380 if a$=chr$(140) then 2370
5390 if a$="n" then 5480
5400 if a$="s" then 5850
5410 if a$="v" or a$="i" then 6040
5420 if a$="r" then 6140
5430 :
5440 goto 5360
5450 :
5460 rem      new (formatieren)
5470 :
5480 gosub 1240
5490 print left$(cd$,17)
5500 print "   {CBM-@}{CBM-@}{CBM-@}"
5510 print "   {rvon} n {rvof} new (formatieren)":print
5520 print "   >diskettenname":print
5530 print "   >                <";
5540 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}";
5550 :
5560 m=15:gosub 1820
5570 if en=1 then 2370
5580 if de=1 then 5490
5590 :
5600 l=1908:gosub 1470
5610 if left$(t$,1)=" " then 2370
5620 d$=left$(t$,16)
5630 :
5640 print left$(cd$,21)left$(cr$,25)", id"
5650 print:print spc(26) ">  <"
5660 r=19:s=22:en=0:de=0:m=24
5670 gosub 1830
5680 if en=1 then 2370
5690 if de=1 then 5640
5700 :
5710 l=1931:gosub 1470
5720 if left$(t$,1)=" " then 2370
5730 i$=left$(t$,2)
5740 :
5750 print left$(cd$,20) "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
5760 print "   {rvon} neue diskette eingelegt (j/n) {rvon}"
5770 :
5780 get a$:if a$="" then 5780
5790 if a$<>"j" then 2370
5800 :
5810 d$="n0:"+d$+","+i$:goto 6450
5820 :
5830 rem      scratchen
5840 :
5850 gosub 1240
5860 print left$(cd$,17)
5870 print "   {CBM-@}{CBM-@}{CBM-@}"
5880 print "   {rvon} s {rvof} scratch":print
5890 print "   >dateiname eingeben":print
5900 print "   >               <";
5910 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}"left$(t$,15);
5920 :
5930 m=14:gosub 1820
5940 if en=1 then 2370
5950 if de=1 then 5860
5960 :
5970 l=1908:gosub 1470
5980 if left$(t$,1)=" " then 2370
5990 d$="s0:"+left$(t$,15)+"{CBM-+}"
6000 goto 6450
6010 :
6020 rem      validate/initialize
6030 :
6040 gosub 1240
6050 print left$(cd$,17)
6060 print "   {CBM-@}{CBM-@}{CBM-@}"
6070 print "   {rvon} "a$" {rvof} validate / initialize":print
6080 :
6090 d$=a$+"0"
6100 goto 6450
6110 :
6120 rem      rename
6130 :
6140 gosub 1240
6150 print left$(cd$,17)
6160 print "   {CBM-@}{CBM-@}{CBM-@}"
6170 print "   {rvon} r {rvof} rename":print
6180 print "   >alter dateiname":print
6190 print "   >               <";
6200 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}"left$(t$,15);
6210 :
6220 m=14:gosub 1820
6230 if en=1 then 2370
6240 if de=1 then 6150
6250 :
6260 l=1908:gosub 1470
6270 da$=left$(t$,15)+"{CBM-+}"
6280 :
6290 print left$(cd$,19)
6300 print "    {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
6310 print "   >{rvon}neuer{rvof} dateiname":print
6320 print "   >               <";
6330 print "{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}";
6340 m=14:gosub 1820
6350 if en=1 then 2370
6360 if de=1 then 6290
6370 :
6380 l=1908:gosub 1470
6390 d$=left$(t$,15)+"{CBM-+}"
6400 :
6410 d$="r0:"+d$+"="+da$
6420 :
6430 rem      diskbefehl ausfuehren
6440 :
6450 open 15,8,15
6460 gosub 1620:if e<>0 then close 15:goto 2370
6470 print#15,d$
6480 gosub 1620:if e<>0 then close 15
6490 :
6500 t$="":goto 2370
6510 :
6520 :
6530 rem   --------------------
6540 rem   --- prog beenden ---
6550 rem   --------------------
6560 :
6570 :
6580 gosub 1240
6590 print left$(cd$,17)
6600 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
6610 print "   {rvon} ende {rvof}":print
6620 print "   sind sie sicher (j/n) :"
6630 get a$:if a$="" then 6630
6640 if a$<>"j" then 2370
6650 print "{clr}ok - bis bald!":end
6660 :
6670 :
6680 rem   ----------------------
6690 rem   ---    drucken     ---
6700 rem   ----------------------
6710 rem   - 1526 mit neuem rom -
6720 rem   -      im 1525 modus -
6730 rem   -                    -
6740 rem   - chr$(14)=breit ein -
6750 rem   - chr$(15)=breit aus -
6760 rem   ----------------------
6770 :
6780 :
6790 gosub 1240
6800 print left$(cd$,17)
6810 print "   {CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}{CBM-@}"
6820 print "   {rvon} drucken {rvof}"
6830 print:print "   drucker eingeschaltet (j/n) : "
6840 get a$:if a$="" then 6840
6850 if a$<>"j" then goto 2370
6860 :
6870 rem      druckkanal oeffnen
6880 :
6890 open 3,4
6900 :
6910 rem      zeilenabstand = 0
6920 :
6930 open 6,4,6:print#6,chr$(20):close 6
6940 :
6950 rem      zeilen holen
6960 :
6970 for l=1190 to 1590 step 40
6980 gosub 1470
6990 :
7000 rem      druckstring erstellen
7010 :
7020 for j=1 to len(t$)
7030 a$=mid$(t$,j,1)
7040 if a$<>"_" then print#3,a$;:goto7080
7050 print#3,chr$(14);
7060 j=j+1:a$=mid$(t$,j,1)
7070 print#3,a$;chr$(15);
7080 next j
7090 :
7100 rem      string drucken
7110 :
7120 print#3
7130 next l
7140 :
7150 rem      zeilenvorschub
7160 :
7170 for i=1 to 5:print#3:next i
7180 :
7190 :    rem druckkanal schliessen
7200 :
7210 close 3
7220 :
7230 t$="":goto 2370
Listing zu »Etiketten 64«.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →