Verwendete IO-Ports bzw. Hardware:
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 POKE 10846,95:!NEUER CURSOR
2 CLEAR 25000:A2$=" Z 1013 / 64"
3 FZ=0:N=4:I=1:X=1:N$="TEST":QA=0:DA$=""
4 A4$=" UniDat 100 "
5 A5$=" V 2.5 :11/88 Ko "
6 PRINT:!Bernd Koch,Block 228/1,Halle-Neust.,Tel:645429
7 WINDOW:CLS:GOSUB 39
8 IZ=1:DIM C$(101,11),D$(11),R$(101,11):LS$=STRING$(11," ")
9 AR=101
10 GOSUB 11:GOTO 40
11 PRINT AT(2,8);A1$:PRINT AT(4,0);"",STRING$(29,""),""
12 PRINT AT(5,0);"": PRINT AT(5,30);""
13 PRINT AT(6,0);"",STRING$(29,""),""
14 PRINT AT(5,3);A2$:PRINT AT(5,23);A3$
15 PRINT AT(8,0);STRING$(31,"")
16 FOR I=9 TO 13:PRINT AT(I,0);"":PRINT AT(I,30);"":NEXT I
17 PRINT AT(14,0);STRING$(31,"")
18 PRINT AT(10,9);A4$:PRINT AT(12,6);A5$
19 PRINT AT(31,23);">ENTER<":GOSUB 39
20 T$=INKEY$:IF T$<>CHR$(13)THEN 20:ELSE RETURN
21 CLS:GOSUB 39:PRINT AT(28,7);"FALSCHE EINGABE !":PAUSE 10
22 PRINT AT(28,7);" ":RETURN
23 PRINT AT(28,19);"KENNZIFFER :"
24 T$=INKEY$:IF T$=""THEN 24
25 FZ$=T$:PRINT AT(28,31);T$
26 IF ASC(T$)<48+KA OR ASC(T$)>48+KE THEN GOSUB 21:GOTO 40
27 T=ASC(T$)-48:RETURN
28 PRINT AT(24,(30-LEN(KY$)));KY$," (J/N)":PRINT AT(26,23);LS$
29 T$=INKEY$:IF T$=""THEN 29
30 IF T$="J"OR ASC(T$)=13 THEN T=1:GOSUB 33:RETURN
31 IF ASC(T$)=78 THEN T=2:GOSUB 33:RETURN
32 GOSUB 21:PAUSE 10:GOTO 28
33 PRINT AT(25,0);" ":RETURN
34 IF FZ$="1"AND C$(101,1)=""THEN FOR I=1 TO FZ:C$(101,I)="........":NEXT I
35 FOR I=1 TO FZ
36 PRINT AT(N,2);C$(101,I):N=N+2
37 NEXT I:N=4:RETURN
38 WINDOW 4,25,10,31:FOR J=0 TO FZ-1:INPUT C$(I1,J):PRINT:NEXT J:RETURN
39 PRINT AT(X=PEEK(44)-1,X=PEEK(43)-1);" ":RETURN
40 WINDOW:CLS:GOSUB 39:PRINT AT(2,0);A4$:PRINT AT(2,19);DA$:PRINT AT(3,2);LS$
41 PRINT AT(4,0);STRING$(31,"")
42 PRINT AT(7,0);"1 = DATEN eingeben"
43 PRINT AT(9,0);"2 = DATEN sichern auf KASSETTE"
44 PRINT AT(11,0);"3 = DATEN lesen von KASSETTE"
45 PRINT AT(13,0);"4 = FELDnamen aendern"
46 PRINT AT(15,0);"5 = DATEN suchen /veraendern"
47 PRINT AT(17,0);"6 = DATENsaetze ausgeben"
48 PRINT AT(19,0);"7 = DATENsatznr. suchen/aendern"
49 PRINT AT(21,0);"8 = HILFE <--- "
50 PRINT AT(23,0);"9 = ENDE
51 KA=1:KE=9:GOSUB 23:CLS:GOSUB 39
52 ON T GOTO 53,76,86,99,105,130,189,178,149
53 IF DA$<>""THEN QA=1
54 IF QA=1 THEN 58
55 CLS:DA$="":INPUT "DATEIname (max.8 Buchst.) ";DA$
56 QA=1:IF LEN(DA$)>8 THEN 55
57 IF DA$=""THEN DA$=N$
58 CLS:IF FZ<>0 AND FZ$<>"4"THEN 62
59 PRINT AT(2,2);"Wieviel Datenfelder (2-10) ?":PRINT:PRINT:PRINT:PRINT
60 INPUT "";FZ:IF FZ<2 OR FZ>10 THEN GOSUB 21:GOTO 59
61 CLS:GOTO 99
62 PRINT AT(1,0);"DATENEINGABE :"
63 PRINT AT(2,0);STRING$(32,"")
64 PRINT AT(1,14);" ** Datensatz:",IZ:PRINT:PRINT
65 GOSUB 34
66 WINDOW 4,25,10,31:CLS
67 IF IZ=AR THEN GOSUB 187:GOTO 40
68 FOR I=IZ TO AR:CLS:PRINT AT(1,28);IZ:C$(I,0)="":INPUT ":";C$(I,0):PRINT
69 IF IZ=AR THEN GOSUB 187:I=AR:NEXT I:GOSUB 155:GOTO 40
70 FOR J=1 TO FZ:C$(I,J)=" ":NEXT J
71 IF C$(I,0)=""THEN IZ=I:I=AR:NEXT I:GOSUB 155:GOTO 40
72 FOR J=1 TO FZ-1:INPUT ":";C$(I,J):PRINT
73 NEXT J:IZ=IZ+1:NEXT I
74 WINDOW:CLS:PRINT;AT(4,2);"DATENSPEICHER VOLL !"
75 GOSUB 39:PAUSE 30:GOSUB 155:GOTO 40
76 CLS:PRINT AT(5,2);"DATEN ABSPEICHERN":PRINT AT(6,2);STRING$(17,"")
77 GOSUB 39:PAUSE 10:KY$=""
78 GOSUB 28:IF T=2 THEN 40
79 CLS:DA$="":INPUT "DATEINAME (Et=>Test<) :";DA$:IF LEN(DA$)>8 THEN 79
80 IF DA$=""THEN DA$=N$
81 CLS:PRINT AT(2,2);"DATEINAME : ",DA$
82 PRINT AT(4,2);"START TAPE !"
83 PRINT AT(6,0);"DANACH TASTE >ENTER< BETAETIGEN!":GOSUB 39: GOSUB 20
84 WINDOW 10,23,2,31:C$(101,0)=STR$(FZ):C$(0,0)=STR$(IZ):CSAVE*""+DA$;C$
85 WINDOW:GOSUB 39:GOTO 40
86 CLS:PRINT AT(7,0);"*** Warnung ! ***"
87 PRINT AT(9,0);"vorhandene Daten werden ueber-"
88 PRINT AT(11,0);"schrieben (J/N) !":GOSUB 39:T$=INKEY$:IF T$=""THEN 88
89 IF T$="N"THEN 76
90 CLS:PRINT AT(2,2 );"DATEN EINLESEN":PRINT AT(3,2);STRING$(14,""):GOSUB 39
91 PAUSE 10
92 CLS:SA$="":INPUT "DATEINAME:";SA$:IF LEN(SA$)>8 THEN 92
93 IF SA$=""THEN 92
94 CLS:PRINT AT(2,2);"DATEINAME : ",SA$
95 PRINT AT(4,9);"START TAPE !"
96 PRINT AT(6,0);"BEI VORTON >ENTER< BETAETIGEN!":GOSUB 39:GOSUB 20
97 WINDOW:CLS:CLOAD*""+SA$;C$:IZ=VAL(C$(0,0)):FZ=VAL(C$(101,0))
98 DA$=SA$:GOTO 40
99 PRINT AT(2,0);"Feldnamen aendern,Datei":PRINT AT(2,24);DA$
100 PRINT AT(3,0);STRING$(32,"")
101 GOSUB 34:PRINT:PRINT:WINDOW 4,25,0,31:FOR I=1 TO FZ:INPUT " ";C$(101,I):PRINT
102 IF LEN(C$(101,I))>8 THEN C$(101,I)=LEFT$(C$(101,I),8)
103 NEXT I
104 GOSUB 19:GOTO 40
105 IF IZ=1 THEN 145
106 PRINT AT(5,2);"STICHWORT ODER ZAHL EINGEBEN !"
107 PRINT STRING$(8,CHR$(10));" ";
108 WINDOW 10,25,2,31:CLS
109 XI$="":I1=1:INPUT "";XI$:IF XI$=""THEN 105
110 WINDOW
111 FOR I=I1 TO IZ-1:FOR J=0 TO FZ
112 IF INSTR(XI$,C$(I,J))=0 THEN 113:ELSE I1=I:I=IZ:J=FZ:NEXT J:NEXT I:GOTO 117
113 NEXT J:NEXT I
114 WINDOW:CLS
115 PRINT AT(8,2);"KEINE INFORMATION VORHANDEN !"
116 GOSUB 39:PAUSE 10:GOTO 40
117 CLS:PRINT AT(1,0);"Datensaetze der Datei:":PRINT AT(1,24);DA$
118 PRINT AT(2,0);" ** Datensatz:",I1
119 PRINT AT(3,0);STRING$(32,"")
120 GOSUB 39:GOSUB 34
121 WINDOW 4,25,10,31:CLS
122 FOR I=0 TO FZ-1:PRINT ": ";C$(I1,I):PRINT:NEXT I
123 KY$="WEITER SUCHEN":GOSUB 28:GOSUB 39:IF T=1 THEN I1=I1+1:ELSE GOTO 125
124 IF I1=IZ THEN 114:ELSE CLS:GOTO 111
125 KY$="Korrigieren (K) / Loeschen (L) ?"
126 PRINT AT(25,0);KY$:PRINT AT(24,0);" "
127 IF INKEY$="L"THEN 170
128 IF INKEY$="K"THEN GOSUB 33:GOSUB 38:GOSUB 155:GOTO 40
129 GOTO 127
130 GOSUB 199
131 I1=1
132 CLS:GOSUB 39:PRINT AT(1,0);"Liste":PRINT AT(4,0);STRING$(32,"")
133 PRINT AT(2,0);"Datei :":PRINT AT(2,9);DA$
134 PRINT AT(1,10);" ** Datensaetze :",IZ-1
135 IF IZ=1 THEN 145
136 PRINT AT(3,0);"Nr.":PRINT AT(3,7);C$(101,1):PRINT AT(3,20);C$(101,X+1)
137 PRINT STRING$(3,CHR$(10))
138 FOR I=I1 TO I1+8:PRINT AT(1,26);IZ-1:PRINT
139 PRINT I;TAB(7)C$(I,0);TAB(20)C$(I,X)
140 IF I=IZ-1 THEN I=I1+8:NEXT I:WINDOW:GOSUB 19:I=1:GOTO 40
141 NEXT I
142 KY$="FORTSETZEN":GOSUB 28:
143 GOSUB 39:IF T=2 THEN 40
144 I1=I1+FZ:GOTO 132
145 WINDOW:CLS:PRINT AT(3,2);"BITTE ERST DATEN EINGEBEN"
146 PRINT AT(5,2);"ODER VON KASSETTE EINLESEN!":GOSUB 39
147 KY$="DATEN VON KASSETTE EINLESEN":GOSUB 28:IF T=2 THEN 40
148 CLS:GOTO 90
149 PRINT;AT(2,2);"PROGRAMMENDE":PRINT AT(3,2);STRING$(12,"")
150 PRINT AT(6,2);"BITTE VERGESSEN SIE NICHT,"
151 PRINT AT(8,2);"DIE DATEN ABZUSPEICHERN !"
152 KY$="WOLLEN SIE DATEN ABSPEICHERN ?":GOSUB 28:CLS
153 IF T=1 THEN GOSUB 39:GOTO 76
154 POKE 10846,0:END
155 WINDOW:CLS:PRINT AT(5,5);"--- Ich sortiere ---":GOSUB 39
156 L=IZ-1:S=L
157 S=INT(S/2)
158 IF S=0 THEN 168
159 FOR M=S+1 TO L
160 Z=M:C$=C$(Z,0):FOR R=1 TO FZ-1:R$(Z,R)=C$(Z,R):NEXT R
161 FOR Q=M TO S+1 STEP-S
162 Y=Q-S:IF C$(Q-S,0)<=C$ THEN GOTO 165
163 C$(Q,0)=C$(Q-S,0):FOR R=1 TO FZ-1:C$(Q,R)=C$(Y,R):NEXT R
164 NEXT Q
165 C$(Q,0)=C$:FOR R=1 TO FZ-1:C$(Q,R)=R$(Z,R):NEXT R
166 NEXT M
167 GOTO 157
168 PRINT AT(20,3);FRE(C$),"BYTES FREE":PAUSE 30
169 RETURN
170 WINDOW
171 CLS:PRINT AT(0,0);" wirklich loeschen ? (J / N)":GOSUB 39
172 IF INKEY$="N"THEN GOTO 40
173 IF INKEY$="J"THEN 175
174 GOTO 172
175 CLS:FOR I=0 TO FZ-1:C$(I1,I)=""
176 FOR I=I1 TO IZ-1:C$(I,0)=C$(I+1,0):FOR J=1 TO FZ:C$(I,J)=C$(I+1,J):NEXT J:NEXT I
177 GOSUB 155:IZ=IZ-1:GOTO 40
178 CLS:PRINT AT(1,0);"Beim Veraendern Text ueberschreiben,"
179 PRINT AT(3,0);"auch SP,<--, und --> bewirken das Loeschen der"
180 PRINT AT(5,0);"Eintragung. --> Enter geht ohneAenderung weiter"
181 PRINT AT(11,0);"Maximal 19 Zeichen eingeben !"
182 PRINT AT(15,0);"Statt --J-- auch --Et-- moeglich"
183 PRINT AT(17,0);"Warmstart : *** GOTO3040 ***"
184 PRINT AT(20,0);"Kein Komma eingeben !"
185 GOSUB 39:PAUSE 250:PAUSE 250
186 A4$="VERZEICHNIS":A5$="GRUNDMITTEL DATEN":POKE 10846,95:GOTO 40
187 WINDOW:CLS:GOSUB 39:PRINT AT(7,0);"DATENSPEICHER VOLL !"
188 PAUSE 30:RETURN
189 WINDOW:CLS:IF IZ=1 THEN 145
190 PRINT AT(2,0);"Gewuenschte Nummer eingeben":PRINT:PRINT:PRINT:PRINT:PRINT
191 I1 =0:INPUT "";I1:IF I1=0 THEN GOSUB 21:GOTO 189
192 IF I1=IZ OR I1>IZ THEN GOSUB 21:GOTO 189
193 CLS:PRINT AT(1,0);"Datenausgabe":PRINT AT(3,0);STRING$(32,"")
194 PRINT AT(1,14);" **DATENSATZ :",I1
195 PRINT AT(2,0);"Datei :":PRINT AT(2,9);DA$
196 GOSUB 39:GOSUB 34
197 WINDOW 4,25,10,31:CLS
198 FOR I=0 TO FZ-1:PRINT ": ";C$(I1,I):PRINT:NEXT I:GOTO 125
199 WINDOW:CLS
200 PRINT AT(2,0);"Das 1.Feld wird immer ausgegeben "
201 IF FZ<=9 THEN TZ=FZ:ELSE TZ=FZ-1
202 PRINT AT(4,0);"Das 2.Feld kann frei gewaehlt werden (2-",TZ,")2=Stan
203 PRINT AT(6,0);"Zur Aenderungder Feldausgabe Zahl eingeben ,oder Et<--
204 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
205 M$="":M$=INKEY$:PRINT AT(10,0);M$
206 IF M$=CHR$(13)THEN X=1:RETURN
207 IF VAL(M$)<2 OR VAL(M$)>FZ THEN 205 GOTO 205
208 X=VAL(M$)-1:RETURN:END