;Die Software stammt von Friedrich Bollow und Uwe Clausen ;und wurde im Sonderheft 221 der Funkschau (Franzis Verlag) ;1986 veröffentlicht. ;Die Kommentare stammen überwiegend von den Autoren. 2000 ;; ZX81-TERMINAL 2000 ;; 2000 ;;FUNKSCHAU SONDERHEFT 2 2000 ;------------------------- 2000 JP INITR C37220 ;Terminal, feste Initialisierung 2003 JP INIUT C37A20 ;Terminal, freie Initialisierung 2006 JP INIRA C36227 ;RAM-Vereinb. über Ramtop setzen 2009 ;; ;Nutzung Schnittstelle ohne Terminalfunktion 2009 JP INITS C3C320 ;initialisieren 200C JP USRCM C33320 ;CMD setzen 200F JP USRST C33920 ;Status abfragen 2012 JP USRDO C33F20 ;Zeichen ausgeben 2015 JP USRDI C34520 ;Zeichen lesen 2018 JP USROU C34B20 ;warten und Ausgabe 201B JP USRIN C36320 ;warten und Eingabe 201E ;; 201E JP BASL C39D25 ;BASIC-Listing vollständig 2021 JP BASPL C3A425 ;BASIC-Listing ab einer Zeilennr. 2024 JP BASST C3C626 ;Ausgabe von Strings 2027 JP BASCO C30827 ;Bildschirmkopie 22 Zeilen 202A JP DOWNL C36A23 ;Ausgabe des Downloadpuffers 202D JP BASAV C31F27 ;BASIC-Programm sichern, binär 2030 JP BALOA C33127 ;BASIC-Programm laden, binär 2033 ;; 2033 USRCM LD A,(IY+$21) FD7E21 ;CMD setzen 2036 OUT CNTRE,A D3EB 2038 RET C9 2039 ;; 2039 USRST IN A,CNTRE DBEB ;Status abfragen 203B LD (IY+$21),A FD7721 203E RET C9 203F ;; 203F USRDO LD A,(IY+$7B) FD7E7B ;Zeichen ausgeben 2042 OUT DATRE,A D3E3 2044 RET C9 2045 ;; 2045 USRDI IN A,DATRE DBE3 ;Zeichen lesen 2047 LD (IY+$7B),A FD777B 204A RET C9 204B ;; 204B USROU CALL BREAK CDAB26 ;warten und Ausgabe 204E IN A,CNTRE DBEB ;Transmitter emty 2050 BIT 0,A CB47 ;CTS-Warteschleife 2052 JR Z,USROU 28F7 2054 DSRWL CALL BREAK CDAB26 2057 IN A,CNTRE DBEB ;DSR-Warteschleife 2059 BIT 7,A CB7F 205B JR Z,DSRWL 28F7 205D ;; 205D LD A,(IY+$7B) FD7E7B 2060 OUT DATRE,A D3E3 2062 RET C9 2063 ;; 2063 USRIN CALL BREAK CDAB26 ;warten und Eingabe 2066 IN A,CNTRE DBEB 2068 BIT 1,A CB4F 206A JR Z,USRIN 28F7 206C ;; 206C IN A,DATRE DBE3 206E LD (IY+$7B),A FD777B 2071 RET C9 2072 ;-------------------- 2072 INITR LD (IY+$21),$4EFD36214E ;Terminal, feste Initialisierung 8 N 1 2076 LD (IY+$7B),$25FD367B25 ;Kommandowort: /DTR = 1, RTS = 1 207A ;; 207A INIUT PUSH HL E5 ;Terminal, freie Initialisierung 207B CALL INITS CDC320 ;Port init. 207E LD (IY+$21),$01FD362101 ;Flag init 2082 ;; 2082 LD HL,(RAMTO) 2A0440 ;Ramtop prüfen 2085 LD BC,$4401 010144 ;RAM > 1K? 2088 AND A A7 2089 SBC HL,BC ED42 208B JR NC,BIGRA 3006 ;ja 208D LD (IY+$05),$80FD360580 ;volle Bildgröße 2091 JR SETSC 1814 2093 ;; 2093 BIGRA LD HL,(RAMTO) 2A0440 ;Ramtopvereinbarung testen 2096 PUSH HL E5 2097 LD BC,$0006 010600 209A ADD HL,BC 09 209B LD A,(HL) 7E ;Startadr. H Lesen 209C XOR $5A EE5A 209E POP HL E1 209F LD B,(HL) 46 ;RAM-ID lesen 20A0 CP B B8 20A1 JR NZ,SETSC 2004 20A3 SET 6,(IY+$21) FDCB21F6 ;Vereinbarung erfüllt 20A7 ;; 20A7 SETSC POP HL E1 20A8 CALL CLS CD2A0A ;Schirm löschen 20AB CALL SLOW CDB420 20AE CALL HELLO CDDF20 20B1 JP MAINL C34121 20B4 ;; 20B4 SLOW LD A,(ROMID) 3AEE0E 20B7 CP $2F FE2F 20B9 JR NZ,NEWRO 2004 20BB CALL SLOWO CD280F ;Slow-Modus ein 20BE RET C9 20BF NEWRO CALL SLOWN CD2B0F 20C2 RET C9 20C3 ;; 20C3 INITS LD A,$00 3E00 20C5 OUT CNTRE,A D3EB 20C7 OUT CNTRE,A D3EB 20C9 OUT CNTRE,A D3EB 20CB OUT CNTRE,A D3EB 20CD LD A,INTRE 3E40 20CF OUT CNTRE,A D3EB 20D1 ;; 20D1 LD A,(IY+$21) FD7E21 ;Mode aus RAM 20D4 OUT CNTRE,A D3EB 20D6 LD A,(IY+$7B) FD7E7B ;COMMD aus RAM 20D9 LD (IY+$7C),A FD777C 20DC OUT CNTRE,A D3EB 20DE RET C9 20DF ;; 20DF HELLO LD A,$03 3E03 ;ZX-CODE 3 20E1 CALL HEL13 CDFE20 20E4 ;; 20E4 LD B,$20 0620 20E6 LD HL,HELOM 21ED24 20E9 MESLO LD A,(HL) 7E 20EA PUSH BC C5 20EB PUSH HL E5 20EC CALL ASCTZ CDD722 20EF POP HL E1 20F0 POP BC C1 20F1 INC HL 23 20F2 DEC B 05 20F3 JR NZ,MESLO 20F4 20F5 ;; 20F5 LD A,$83 3E83 ;ZX-Code 131 20F7 CALL HEL13 CDFE20 20FA CALL LFEED CD1024 20FD RET C9 20FE ;; 20FE HEL13 LD DE,(DFCC) ED5B0E40 2102 LD B,$20 0620 2104 HELL3 LD (DE),A 12 2105 INC DE 13 2106 DEC B 05 2107 JP NZ,HELL3 C20421 210A INC DE 13 210B LD (DFCC),DE ED530E40 210F RET C9 2110 SERIN LD HL,(DFCC) 2A0E40 ;Cursor-Pos. laden 2113 BIT 0,(IY+$21) FDCB2146 ;Ctrl.-Modus? 2117 JR Z,INVON 280C ;ja 2119 BIT 4,(IY+$21) FDCB2166 ;Intern-Modus 211D JR NZ,INVOF 200A ;ja 211F BIT 4,(IY+$34) FDCB3466 ;blinken 2123 JR Z,INVOF 2804 2125 INVON SET 7,(HL) CBFE 2127 JR SERRD 1802 2129 INVOF RES 7,(HL) CBBE 212B ;; 212B SERRD IN A,CNTRE DBEB ;Zeichen eingetroffen 212D BIT 1,A CB4F 212F JR Z,KEYBD 2808 ;nein 2131 ;; 2131 IN A,DATRE DBE3 ;ja, Zeichen lesen 2133 CALL WRITE CD2823 2136 CALL ASCTZ CDD722 2139 ;; 2139 KEYBD LD A,($4026) 3A2640 ;letzten Tastencode 213C AND $FE E6FE ;Shift-Maske 213E CP $FE FEFE ;wenn andere Taste: nz 2140 RET C9 2141 ;------------------- 2141 ;TERMINAL-HAUPTSCHLEIFE 2141 ;; 2141 MAINL CALL SERIN CD1021 2144 JR Z,MAINL 28FB ;kein Tastendruck 2146 ;; 2146 CALL CODKE CD8621 ;Wartezeit bis Autorepeat 2149 LD A,$E0 3EE0 214B OR (IY+$34) FDB634 214E LD (IY+$34),A FD7734 ;Zähler rücksetzen 2151 ;; 2151 MLPW CALL SERIN CD1021 2154 JR Z,MAINL 28EB ;Taste losgelassen 2156 ;; 2156 BIT 6,(IY+$34) FDCB3476 ;Warten auf Autorep. 215A JR NZ,MLPW 20F5 ;-Start 215C ;; 215C MLPRW RES 3,(IY+$21) FDCB219E ;Repeat-Phase merken 2160 BIT 3,(IY+$34) FDCB345E 2164 JR Z,MLPR 2804 2166 SET 3,(IY+$21) FDCB21DE 216A ;; 216A MLPR CALL SERIN CD1021 216D JR Z,MAINL 28D2 ;Taste losgelassen 216F ;; 216F LD A,(IY+$21) FD7E21 2172 XOR (IY+$34) FDAE34 2175 BIT 3,A CB5F 2177 JR Z,MLPR 28F1 ;warten auf Phasenwechsel 2179 BIT 2,(IY+$21) FDCB2156 ;gültiges Zeichen 217D JR Z,MLPRW 28DD ;nein 217F ;; 217F LD A,(IY+$7B) FD7E7B 2182 OUT DATRE,A D3E3 ;Zeichen wiederholt ausgeben 2184 JR MLPRW 18D6 2186 ;; 2186 CODKE RES 2,(IY+$21) FDCB2196 ;Autorepeat aus 218A LD BC,(LASTK) ED4B2540 218E CALL TASDE CDBD07 2191 LD BC,ZEIG1 01D124 ;Tabellenzeiger 2194 ADD HL,BC 09 2195 LD A,(HL) 7E ;Wert aus Tabelle holen 2196 ;; 2196 BIT 4,(IY+$21) FDCB2166 ;Intern-Modus? 219A JR NZ,INTMO 203B 219C ;; 219C CP $FF FEFF ;FF: Code ungültig 219E RET Z C8 219F CP $80 FE80 ;80: Control-Mode 21A1 JR Z,CTLMO 280D 21A3 ;; 21A3 CP $81 FE81 ;81: Intern-Mode 21A5 JR NZ,CTLCH 2016 21A7 ;; 21A7 SET 4,(IY+$21) FDCB21E6 21AB SET 0,(IY+$21) FDCB21C6 ;evtl. Ctrl-Mode aus 21AF RET C9 21B0 ;; 21B0 CTLMO LD A,$01 3E01 ;Ctrl-Mode invertieren 21B2 XOR (IY+$21) FDAE21 21B5 LD (IY+$21),A FD7721 21B8 RES 4,(IY+$21) FDCB21A6 ;evtl. Intern-Mode aus 21BC RET C9 21BD ;; 21BD CTLCH BIT 0,(IY+$21) FDCB2146 ;Control-Mode 21C1 JR NZ,COUT 200A ;nein 21C3 ;; 21C3 BIT 5,A CB6F ;Control zulässig? 21C5 JR NZ,CTLRE 2002 ;nein, normales Zeichen aus 21C7 AND $1F E61F ;Control-Maske 21C9 CTLRE SET 0,(IY+$21) FDCB21C6 ;Ctrl-Mode aus 21CD ;; 21CD COUT OUT DATRE,A D3E3 ;Intern-Mode aus 21CF LD (IY+$7B),A FD777B ;zurück zum BASIC 21D2 SET 2,(IY+$21) FDCB21D6 ;Autorepeat erlauben 21D6 RET C9 21D7 INTMO RES 4,(IY+$21) FDCB21A6 ;Intern-Mod. aus 21DB CP $42 FE42 ;zurück zum BASIC 21DD JP Z,EXIWT CA0422 ;ja 21E0 CP $43 FE43 ;Schirm löschen? 21E2 JP Z,CLSCR CA5A24 ;ja 21E5 BIT 6,(IY+$21) FDCB2176 ;Operation erlaubt 21E9 RET Z C8 ;nein 21EA CP $52 FE52 ;Empf. Zeichen speichern? 21EC JR Z,SETRE 281E ;ja 21EE CP $45 FE45 ;Speichern beenden? 21F0 JR Z,OFFRE 281F ;ja 21F2 CP $4A FE4A ;Sprung zur USER-Routine 21F4 JR Z,JPUSR 2820 ;ja 21F6 CP $4E FE4E ;Speicher neu anfangen 21F8 JR Z,NEWSP 2828 ;ja 21FA CP $4C FE4C ;Empf. Zeichen anzeigen 21FC JR Z,LISTS 2832 ;ja 21FE CP $53 FE53 ;Upload ausführen? 2200 JP Z,SENDS CA8922 ;ja 2203 RET C9 2204 ;; 2204 EXIWT CALL KEYBD CD3921 ;warten, bis Taste losgelassen 2207 JR NZ,EXIWT 20FB 2209 JP EXIT C3B326 220C ;; 220C SETRE SET 5,(IY+$21) FDCB21EE 2210 RET C9 2211 ;; 2211 OFFRE RES 5,(IY+$21) FDCB21AE 2215 RET C9 2216 ;; 2216 JPUSR LD HL,(RAMTO) 2A0440 2219 LD BC,$000E 010E00 221C ADD HL,BC 09 221D LD E,(HL) 5E ;Sprungziel lesen 221E INC HL 23 221F LD D,(HL) 56 2220 EX DE,HL EB 2221 JP (HL) E9 ;Sprung ausführen 2222 ;; 2222 NEWSP LD HL,(RAMTO) 2A0440 2225 INC HL 23 2226 LD B,$00 0600 ;Länge=0 2228 LD (HL),B 70 2229 INC HL 23 222A LD (HL),B 70 222B LD C,$05 0E05 222D ADD HL,BC 09 222E LD (HL),B 70 ;Overflow löschen 222F RET C9 2230 ;; 2230 LISTS CALL KEYBD CD3921 ;warten, bis Taste losgelassen 2233 JR NZ,LISTS 20FB 2235 CALL CRET CDF723 2238 CALL LFEED CD1024 223B CALL LFEED CD1024 223E LD HL,(RAMTO) 2A0440 2241 INC HL 23 2242 LD E,(HL) 5E ;Länge lesen 2243 INC HL 23 2244 LD D,(HL) 56 2245 LD BC,$0003 010300 2248 ADD HL,BC 09 2249 LD C,(HL) 4E ;Startadresse lesen 224A INC HL 23 224B LD B,(HL) 46 224C LD H,B 60 ;HL:=Startadr. 224D LD L,C 69 224E ;; 224E LISTL LD A,E 7B 224F OR D B2 2250 RET Z C8 2251 ;; 2251 LD A,(HL) 7E ;Zeichen lesen 2252 PUSH HL E5 2253 PUSH DE D5 2254 CALL ASCTZ CDD722 ;Zeichen darstellen 2257 POP DE D1 2258 POP HL E1 2259 INC HL 23 225A DEC DE 1B 225B ;; 225B CALL KEYBD CD3921 ;Tastendruck? 225E JR Z,LISTL 28EE ;nein 2260 KEYBL CALL KEYCO CD7822 ;ja 2263 PUSH AF F5 2264 KEYRD CALL KEYBD CD3921 ;warten, bis Taste losgelassen 2267 JR NZ,KEYRD 20FB 2269 POP AF F1 226A CP $53 FE53 ;Ende? 226C RET Z C8 ;ja 226D CP $20 FE20 ;warten 226F JR NZ,LISTL 20DD ;nein 2271 KEYWL CALL KEYBD CD3921 ;ja 2274 JR Z,KEYWL 28FB ;warten auf Tastendruck 2276 JR KEYBL 18E8 2278 ;; 2278 KEYCO PUSH HL E5 2279 PUSH DE D5 227A LD BC,(LASTK) ED4B2540 ;Tastenwert in ASCII umsetzen 227E CALL TASDE CDBD07 2281 LD BC,ZEIG1 01D124 2284 ADD HL,BC 09 2285 LD A,(HL) 7E 2286 POP DE D1 2287 POP HL E1 2288 RET C9 2289 ;; 2289 SENDS CALL INPSE CDAE22 ;warten, bis Taste losgelassen 228C JR NZ,SENDS 20FB 228E ;; 228E LD HL,(RAMTO) 2A0440 2291 LD BC,$0008 010800 2294 ADD HL,BC 09 2295 LD C,(HL) 4E ;BC:=Länge 2296 INC HL 23 2297 LD B,(HL) 46 2298 INC HL 23 2299 LD E,(HL) 5E ;DE:=Startadresse 229A INC HL 23 229B LD D,(HL) 56 229C EX DE,HL EB ;HL:=Startadresse 229D ;; 229D UPLOO LD A,C 79 229E OR B B0 229F RET Z C8 22A0 ;; 22A0 CALL INPSE CDAE22 ;warten und Annahme von Zeichen 22A3 RET NZ C0 ;Abbruch bei Tastendruck 22A4 ;; 22A4 LD A,(HL) 7E 22A5 OUT DATRE,A D3E3 ;Zeichen senden 22A7 CALL CRWAI CDC422 22AA INC HL 23 22AB DEC BC 0B 22AC JR UPLOO 18EF 22AE ;; 22AE INPSE PUSH HL E5 22AF PUSH BC C5 22B0 CALL SERIN CD1021 22B3 POP BC C1 22B4 POP HL E1 22B5 RET NZ C0 ;Return bei Tastendruck 22B6 ;; 22B6 IN A,CNTRE DBEB ;warten bis Port frei 22B8 BIT 0,A CB47 22BA JR Z,INPSE 28F2 22BC IN A,CNTRE DBEB 22BE BIT 7,A CB7F 22C0 JR Z,INPSE 28EC 22C2 XOR A AF ;Z:=1 22C3 RET C9 22C4 ;; 22C4 CRWAI CP $0D FE0D ;CR? 22C6 RET NZ C0 22C7 LD A,(IY+$34) FD7E34 22CA SUB $1A D61A ;0,5 sec 22CC CRWLO CP (IY+$34) FDBE34 22CF PUSH AF F5 22D0 CALL INPSE CDAE22 22D3 POP AF F1 22D4 JR NZ,CRWLO 20F6 22D6 RET C9 22D7 ;; 22D7 ASCTZ RES 7,A CBBF 22D9 LD C,A 4F ;A retten 22DA AND $60 E660 ;Ctrl-Code? 22DC JR Z,CTLC 2811 ;ja 22DE BIT 6,C CB71 ;Wandlung möglich 22E0 JR Z,CODCO 2802 ;nein 22E2 RES 5,C CBA9 ;Wandlung in Großbuchstaben 22E4 CODCO XOR A AF ;A:=0 22E5 LD B,A 47 ;B:=0 22E6 LD HL,ZEIG2 21EF24 ;Tabellenanfang, ASCII-Kor. 22E9 ADD HL,BC 09 ;Tab-Offset 22EA LD A,(HL) 7E ;Tab-Zugriff 22EB CALL WRSCR CDA823 ;ZX-Bildschirmausgabe 22EE RET C9 22EF ;; 22EF CTLC LD A,C 79 ;Sprungtabelle der Ctrl.-Zeichen 22F0 CP $0D FE0D ;in Empfangsrichtung 22F2 JP Z,CRET CAF723 22F5 CP LF FE0A 22F7 JP Z,LFEED CA1024 22FA CP CHO FE1C 22FC JP Z,CUHOM CA3F24 22FF CP CRI FE09 2301 JP Z,CURIG CA5024 2304 CP BS FE08 2306 JP Z,CULEF CA9524 2309 CP CUP FE0B 230B JP Z,CURSU CA7224 230E CP CCL FE0C 2310 JP Z,CLSCR CA5A24 2313 CP ION FE01 2315 JP Z,INON CAB424 2318 CP IOF FE02 231A JP Z,INOF CAB924 231D CP ESC FE1B 231F JP Z,ESCAP CABE24 2322 CP BEL FE07 2324 JP Z,BELL CA5D23 2327 RET C9 2328 ;; 2328 WRITE BIT 5,(IY+$21) FDCB216E ;Schreiben ein? 232C RET Z C8 ;nein 232D LD HL,(RAMTO) 2A0440 2330 INC HL 23 2331 PUSH HL E5 ;Adr. für Länge merken 2332 LD C,(HL) 4E ;Länge in BC 2333 INC HL 23 2334 LD B,(HL) 46 2335 INC HL 23 2336 LD E,(HL) 5E ;End-Adr. in DE 2337 INC HL 23 2338 LD D,(HL) 56 2339 PUSH DE D5 ;End-Adr. merken 233A INC HL 23 233B LD E,(HL) 5E ;Start-Adr. 233C INC HL 23 233D LD D,(HL) 56 233E EX DE,HL EB ;HL = Startadr. 233F ADD HL,BC 09 ;HL = Speicheradr. 2340 POP DE D1 2341 PUSH HL E5 2342 AND A A7 2343 SBC HL,DE ED52 ;End-Adr. erreicht? 2345 POP HL E1 2346 SCF 37 2347 CCF 3F 2348 JR NZ,WRMEN 2004 ;nein 234A ;; 234A LD BC,$FFFF 01FFFF ;Länge wird Null 234D SCF 37 234E WRMEN LD (HL),A 77 ;Zeichen in RAM ablegen 234F INC BC 03 2350 WRMEX POP HL E1 2351 LD (HL),C 71 ;Länge ablegen 2352 INC HL 23 2353 LD (HL),B 70 2354 RET NC D0 2355 ;; 2355 LD BC,$0005 010500 ;Buffer-full-Flag setzen 2358 ADD HL,BC 09 2359 LD B,$01 0601 235B LD (HL),B 70 235C RET C9 235D ;; 235D BELL LD A,$02 3E02 ;DTR-Bit 235F XOR (IY+$7C) FDAE7C 2362 OUT CNTRE,A D3EB 2364 LD A,(IY+$7C) FD7E7C 2367 OUT CNTRE,A D3EB 2369 RET C9 236A DOWNL LD HL,(RAMTO) 2A0440 236D INC HL 23 236E LD E,(HL) 5E :länge in DE 236F INC HL 23 2370 LD D,(HL) 56 2371 INC HL 23 2372 LD C,(HL) 4E ;Endadr. in BC 2373 INC HL 23 2374 LD B,(HL) 46 2375 PUSH BC C5 2376 INC HL 23 2377 LD C,(HL) 4E 2378 INC HL 23 2379 LD B,(HL) 46 237A INC HL 23 237B LD A,(HL) 7E ;Flag lesen 237C LD L,C 69 ;Startadr. in HL 237D LD H,B 60 237E POP BC C1 237F PUSH HL E5 ;Startadr. retten 2380 BIT 0,A CB47 ;Buffer voll? 2382 JR Z,DOWN2 280C 2384 ;; 2384 ADD HL,DE 19 2385 DOLI1 CALL DAOUT CDA023 2388 PUSH HL E5 2389 AND A A7 238A SBC HL,BC ED42 238C POP HL E1 238D INC HL 23 238E JR NZ,DOLI1 20F5 2390 ;; 2390 DOWN2 POP HL E1 2391 DOLI2 LD A,E 7B 2392 OR D B2 2393 JR Z,DOLIE 2807 2395 CALL DAOUT CDA023 2398 INC HL 23 2399 DEC DE 1B 239A JR DOLI2 18F5 239C DOLIE CALL PRCRL CDB526 239F RET C9 23A0 ;; 23A0 DAOUT LD A,(HL) 7E 23A1 LD (IY+$7B),A FD777B 23A4 CALL USROU CD4B20 23A7 RET C9 23A8 ;; 23A8 ;BILDSCHIRMAUSGABE. 23A8 ;; 23A8 WRSCR LD HL,(DFCC) 2A0E40 ;Bildschirmpos. 23AB BIT 1,(IY+$21) FDCB214E ;invertieren? 23AF JR Z,PRSCR 2802 ;nein 23B1 OR $80 F680 23B3 PRSCR LD (HL),A 77 ;Zeichen ausgeben 23B4 CALL NEXTP CDB823 23B7 RET C9 23B8 ;; 23B8 NEXTP INC HL 23 ;nächste Pos. 23B9 LD A,(HL) 7E 23BA CP NEWLI FE76 ;Zeilenende? 23BC JR NZ,SETCU 2003 ;nein 23BE CALL LINEW CDC823 23C1 SETCU LD (DFCC),HL 220E40 ;Pos. ablegen 23C4 CALL CURSS CDCF24 ;Cursor setzen 23C7 RET C9 23C8 ;; 23C8 LINEW PUSH HL E5 23C9 LD BC,(VARS) ED4B1040 ;Bildschirmendadr. laden 23CD DEC BC 0B ;Pos.-Korr. 23CE AND A A7 ;Carry clear 23CF SBC HL,BC ED42 ;Bildende 23D1 POP HL E1 23D2 JR NZ,LINEX 2004 ;nein 23D4 ;; 23D4 CALL SCROL CDDA23 23D7 RET C9 23D8 ;; 23D8 LINEX INC HL 23 ;Zeilenanfang 23D9 RET C9 23DA ;; 23DA SCROL LD HL,(DFILE) 2A0C40 23DD LD E,L 5D 23DE LD D,H 54 23DF INC DE 13 23E0 LD BC,$0022 012200 ;Versatz um Zeilenlänge 23E3 ADD HL,BC 09 23E4 LD BC,$02F6 01F602 ;23 Zeil. * 33 Zeilenlänge -1 23E7 LDIR EDB0 23E9 DEC HL 2B ;letzte Zeile 23EA LD D,ZXBLN 1600 ;rückwärts löschen 23EC LD A,NEWLI 3E76 23EE ERALP CP (HL) BE ;vorletztes Newline? 23EF JR Z,SCREX 2804 ;ja 23F1 ;; 23F1 LD (HL),D 72 ;Blank ausgeben 23F2 DEC HL 2B ;nächste Rückw.-Pos. 23F3 JR ERALP 18F9 23F5 ;; 23F5 SCREX INC HL 23 ;Zeilenanfang 23F6 RET C9 23F7 ;; 23F7 ;STEUERZEICHENVERARBEITUNG 23F7 ;; 23F7 CRET LD HL,(DFCC) 2A0E40 23FA LD D,ZXBLN 1600 23FC LD A,NEWLI 3E76 23FE ERAL LD (HL),D 72 ;Rest Zeile löschen 23FF INC HL 23 2400 CP (HL) BE 2401 JR NZ,ERAL 20FB 2403 ;; 2403 LD BC,$0020 012000 ;Zeilenlänge subtr. 2406 AND A A7 ;Carry clear 2407 SBC HL,BC ED42 2409 ;; 2409 CALL CURSS CDCF24 ;Cursor setzen 240C LD (DFCC),HL 220E40 240F RET C9 2410 ;; 2410 LFEED LD HL,(VARS) 2A1040 ;BC auf vorletztes 2413 LD BC,$0021 012100 ;Newline setzen 2416 AND A A7 2417 SBC HL,BC ED42 2419 LD B,H 44 241A LD C,L 4D 241B ;; 241B LD HL,(DFCC) 2A0E40 ;Cursorpos. laden 241E CALL CURSR CDE024 ;Cursor löschen 2421 AND A A7 ;Carry clear 2422 SBC HL,BC ED42 ;Cursor in letzter Zeile 2424 JP P,CULAL F23524 ;ja 2427 ;; 2427 LD HL,(DFCC) 2A0E40 242A LD BC,$0021 012100 242D ADD HL,BC 09 ;eine Zeile nach utnen 242E LD (DFCC),HL 220E40 :Pos. ablegen 2431 CALL CURSS CDCF24 ;Cursor setzen 2434 RET C9 2435 ;; 2435 CULAL CALL SCROL CDDA23 2438 LD HL,(DFCC) 2A0E40 243B CALL CURSS CDCF24 ;Cursor setzen 243E RET C9 243F ;; 243F CUHOM LD HL,(DFCC) 2A0E40 2442 CALL CURSR CDE024 ;Cursor löschen 2445 LD HL,(DFILE) 2A0C40 2448 INC HL 23 2449 LD (DFCC),HL 220E40 244C CALL CURSS CDCF24 244F RET C9 2450 ;; 2450 CURIG LD HL,(DFCC) 2A0E40 ;Cursor Pos. 2453 CALL CURSR CDE024 ;Cursor löschen 2456 CALL NEXTP CDB823 2459 RET C9 245A ;; 245A CLSCR LD HL,(VARS) 2A1040 ;HL auf letzte Schirm- 245D DEC HL 2B ;pos. einstellen 245E DEC HL 2B 245F LD A,ZXBLN 3E00 2461 LD C,$18 0E18 ;Zeilenanzahl 2463 SCRLP LD B,$20 0620 ;Zeichen/Zeile 2465 LINLP LD (HL),A 77 ;löschen 2466 DEC HL 2B 2467 DEC B 05 2468 JR NZ,LINLP 20FB 246A ;; 246A DEC HL 2B 246B DEC C 0D 246C JR NZ,SCRLP 20F5 246E CALL CUHOM CD3F24 2471 RET C9 2472 ;; 2472 CURSU LD HL,(DFILE) 2A0C40 ;BC auf zweites NL setzen 2475 LD BC,$0021 012100 2478 ADD HL,BC 09 2479 LD B,H 44 247A LD C,L 4D 247B ;; 247B LD HL,(DFCC) 2A0E40 ;Cursor in Zeile 1? 247E AND A A7 247F SBC HL,BC ED42 2481 RET M F8 ;ja 2482 ;; 2482 LD HL,(DFCC) 2A0E40 2485 CALL CURSR CDE024 ;Cursor löschen 2488 LD BC,$0021 012100 248B AND A A7 248C SBC HL,BC ED42 ;Zeile - 1 248E LD (DFCC),HL 220E40 2491 CALL CURSS CDCF24 ;Cursor setzen 2494 RET C9 2495 ;; 2495 CULEF LD BC,(DFCC) ED4B0E40 ;Cursor in 'Home'-Pos.? 2499 LD HL,(DFILE) 2A0C40 249C INC HL 23 249D AND A A7 ;Carry clear 249E SBC HL,BC ED42 24A0 RET Z C8 24A1 ;; 24A1 LD H,B 60 24A2 LD L,C 69 24A3 CALL CURSR CDE024 ;Cursor löschen 24A6 DEC HL 2B 24A7 LD A,(HL) 7E ;Newline? 24A8 CP NEWLI FE76 24AA JR NZ,CURSE 2001 ;nein 24AC ;; 24AC DEC HL 2B 24AD CURSE LD (DFCC),HL 220E40 24B0 CALL CURSS CDCF24 ;Cursor setzen 24B3 RET C9 24B4 ;; 24B4 INON SET 1,(IY+$21) FDCB21CE 24B8 RET C9 24B9 INOF RES 1,(IY+$21) FDCB218E 24BD RET C9 24BE ;; 24BE ESCAP BIT 6,(IY+$21) FDCB2176 24C2 RET Z C8 24C3 LD HL,(RAMTO) 2A0440 24C6 LD BC,$000C 010C00 24C9 ADD HL,BC 09 24CA LD E,(HL) 5E ;Sprungziel lesen 24CB INC HL 23 24CC LD D,(HL) 56 24CD EX DE,HL EB 24CE JP (HL) E9 ;Sprung ausführen 24CF ;; 24CF CURSS BIT 7,(HL) CB7E ;Orig MSB lesen 24D1 ZEIG1 JR Z,MSB0 2806 24D3 SET 7,(IY+$21) FDCB21FE 24D7 JR SECUE 1804 24D9 MSB0 RES 7,(IY+$21) FDCB21BE 24DD SECUE SET 7,(HL) CBFE 24DF RET C9 24E0 ;; 24E0 CURSR BIT 7,(IY+$21) FDCB217E 24E4 JR Z,MSBZE 2804 24E6 SET 7,(HL) CBFE 24E8 JR RECUE 1802 24EA MSBZE RES 7,(HL) CBBE 24EC ;; 24EC RECUE RET C9 24ED ;; 24ED HELOM 3E3E ;>> ZX-TERMINAL V3.0 (C) 1984 << 24EF ZEIG2 205A 24F1 582D5445 24F5 524D494E 24F9 414C2056 24FD 2E332E30 2501 20284329 2505 20313938 2509 34203C3C 250D 0D0A 250F 00050B0C ; !<"# 2513 0D060701 ;$%&' 2517 10111715 ;()*+ 251B 1A161B18 ;,-./ 251F 1C1D1E1F ;0123 2523 20212223 ;4567 2527 24250E19 ;89:; 252B 1314120F ;<=>? 252F 0A262728 ;§<* 2598 232C3E3C 259C 2A 259D ;; 259D BASL LD HL,PROGM 217D40 ;BASIC-Listing vollständig 25A0 CALL BLLOP CDBC25 25A3 RET C9 25A4 ;; 25A4 BASPL LD HL,(EPPC) 2A0A40 ;BASIC-Listing ab einer Zeilennr. 25A7 CALL LINAD CDD809 25AA JR NZ,BAPLE 200F 25AC LD B,$16 0616 ;22 BASIC-Zeilen 25AE BAPLO PUSH BC C5 25AF CALL BASLI CDCA25 25B2 POP BC C1 25B3 LD A,(HL) 7E 25B4 CP NEWLI FE76 25B6 JR Z,BAPLE 2803 25B8 DEC B 05 25B9 JR NZ,BAPLO 20F3 25BB BAPLE RET C9 25BC ;; 25BC BLLOP LD A,(HL) 7E 25BD CP NEWLI FE76 25BF JR Z,BLEND 2805 25C1 CALL BASLI CDCA25 25C4 JR BLLOP 18F6 25C6 ;; 25C6 BLEND CALL PRCRL CDB526 25C9 RET C9 25CA ;; 25CA BASLI LD B,(HL) 46 ;Zeilen-Nr. 25CB INC HL 23 25CC LD C,(HL) 4E 25CD INC HL 23 25CE ;; 25CE PUSH HL E5 25CF LD H,B 60 25D0 LD L,C 69 25D1 CALL ZEILN CDF825 25D4 POP HL E1 25D5 ;; 25D5 INC HL 23 ;Länge überlesen 25D6 INC HL 23 25D7 ;; 25D7 LINLO LD A,(HL) 7E 25D8 INC HL 23 25D9 CALL CSKIP CDB407 ;wenn 7Eh, überlesen 25DC JR Z,LINLO 28F9 25DE ;; 25DE CP $7F FE7F ;Cursor? 25E0 JR Z,LINLO 28F5 25E2 ;; 25E2 CP NEWLI FE76 ;Ende einer Zeile? 25E4 JR Z,BLRDY 280E 25E6 ;; 25E6 BIT 6,A CB77 ;druckbares Zeichen? 25E8 JR Z,NOTOK 2805 ;ja 25EA ;; 25EA CALL PRTOK CD3C26 ;Token umsetzen 25ED JR LINLO 18E8 25EF ;; 25EF NOTOK CALL PRCHR CD3526 ;übersetzen und drucken 25F2 JR LINLO 18E3 25F4 ;; 25F4 BLRDY CALL PRCRL CDB526 25F7 RET C9 25F8 ;; 25F8 ZEILN RES 7,(IY+$21) FDCB21BE ;Ausgabe-Flag f. Nullunterdr. 25FC LD BC,$FC18 0118FC ;Kompl. 1000 25FF CALL HEXDE CD1526 2602 LD BC,$FF9C 019CFF ;Kompl. 100 2605 CALL HEXDE CD1526 2608 LD BC,$FFF6 01F6FF ;Kompl. 10 260B CALL HEXDE CD1526 260E LD A,L 7D 260F ADD A,$1C C61C 2611 CALL PRCHR CD3526 2614 RET C9 2615 ;; 2615 HEXDE LD A,$FF 3EFF ;-1 2617 AND A A7 2618 HDLOP ADD HL,BC 09 ;Additionsverfahren 2619 INC A 3C ;0 bis 9 261A JR C,HDLOP 38FC 261C SBC HL,BC ED42 261E ADD A,$1C C61C ;ZX-Code 2620 ;; 2620 CP $1C FE1C ;ist es eine Null 2622 JR Z,HDTES 2806 ;ja 2624 ;; 2624 SET 7,(IY+$21) FDCB21FE 2628 JR HDEX 1807 262A ;; 262A HDTES BIT 7,(IY+$21) FDCB217E ;war schon eine Ausgbe <> 0 262E JR NZ,HDEX 2001 ;ja 2630 ;; 2630 XOR A AF 2631 ;; 2631 HDEX CALL FILBU CD6626 2634 RET C9 2635 ;; 2635 PRCHR CALL FILBU CD6626 2638 CALL PRBUF CD7626 263B RET C9 263C ;; 263C PRTOK PUSH AF F5 263D CALL TOSEA CD7509 2640 JR NC,MOVTX 3004 2642 XOR A AF ;Space 2643 CALL FILBU CD6626 2646 MOVTX LD A,(BC) 0A 2647 AND $3F E63F 2649 CALL FILBU CD6626 264C LD A,(BC) 0A 264D INC BC 03 264E ADD A,A 87 264F JR NC,MOVTX 30F5 2651 POP BC C1 2652 BIT 7,B CB78 2654 JR Z,TOKSP 2809 ;Wenn:RND/INKEY$/PI 2656 CP $1A FE1A ;0D -> '$' 2658 JR Z,ADDSP 2804 265A CP $38 FE38 ;1C -> '0' 265C JR C,TOKEX 3804 265E ADDSP XOR A AF ;Space 265F TOKSP CALL FILBU CD6626 2662 TOKEX CALL PRBUF CD7626 2665 RET C9 2666 ;; 2666 FILBU PUSH HL E5 2667 PUSH AF F5 2668 LD HL,$403D 213D40 266B LD D,H 54 266C LD E,L 5D 266D DEC HL 2B 266E LD A,(HL) 7E 266F ADD A,E 83 2670 LD E,A 5F 2671 POP AF F1 2672 LD (DE),A 12 2673 INC (HL) 34 2674 POP HL E1 2675 RET C9 2676 PRBUF PUSH HL E5 2677 LD HL,$403D 213D40 267A LD D,H 54 267B LD E,L 5D 267C DEC HL 2B 267D PBLOP LD A,(HL) 7E 267E JR Z,PRBEX 2808 2680 LD A,(DE) 1A 2681 CALL CNVOU CD8A26 2684 INC DE 13 2685 DEC (HL) 35 2686 JR PBLOP 18F5 2688 PRBEX POP HL E1 2689 RET C9 268A ;; 268A CNVOU PUSH HL E5 268B PUSH BC C5 268C BIT 6,A CB77 268E JR NZ,CNVEX 2018 2690 ;; 2690 LD C,A 4F ;das im Accu stehende ZX-Zeichen wird 2691 RES 7,C CBB9 2693 LD B,$00 0600 ;in ASCII übersetzt und ausgegeben 2695 LD HL,PRTAB 217F27 2698 ADD HL,BC 09 2699 BIT 7,A CB7F ;inverse? 269B JR Z,TABCN 2804 269D ;; 269D LD BC,$0040 014000 ;ja 26A0 ADD HL,BC 09 26A1 TABCN LD A,(HL) 7E 26A2 LD (IY+$7B),A FD777B 26A5 CALL USROU CD4B20 26A8 ;; 26A8 CNVEX POP BC C1 26A9 POP HL E1 26AA RET C9 26AB ;; 26AB BREAK LD A,$7F 3E7F 26AD IN A,$FE DBFE 26AF RRA 1F 26B0 JR NC,EXIT 3001 26B2 RET C9 26B3 ;; 26B3 EXIT RST 08 CF 26B4 0C 26B5 ;; 26B5 PRCRL LD A,$0D 3E0D 26B7 LD (IY+$7B),A FD777B 26BA CALL USROU CD4B20 26BD LD A,$0A 3E0A 26BF LD (IY+$7B),A FD777B 26C2 CALL USROU CD4B20 26C5 RET C9 26C6 ;; 26C6 BASST LD HL,(CHADD) 2A1640 ;Ausgabe von Strings 26C9 INC HL 23 ;Trennzeichen überspringen 26CA LD (CHADD),HL 221640 26CD ;; 26CD LD A,(ROMID) 3AEE0E ;Alt-Neu-ROM berücksichtigen 26D0 CP $2F FE2F 26D2 JR NZ,NEWBP 2008 26D4 CALL ANALO CD520F 26D7 CALL RDPAO CDF413 26DA JR PRSTR 1806 26DC NEWBP CALL ANALN CD550F 26DF CALL RDPAN CDF813 26E2 ;; 26E2 PRSTR LD A,B 78 ;BC auf 0 testen 26E3 OR C B1 26E4 JR Z,CHKCR 2808 26E6 ;; 26E6 LD A,(DE) 1A ;ZX-Zeichen lesen 26E7 INC DE 13 26E8 CALL CNVOU CD8A26 ;Konvertiere Zeichen und gebe aus 26EB DEC BC 0B 26EC JR PRSTR 18F4 26EE ;; 26EE CHKCR LD HL,(CHADD) 2A1640 ;CR unterdrücken? 26F1 CRSEL LD A,(HL) 7E 26F2 CP NEWLI FE76 26F4 JR Z,PREND 280B 26F6 CP ZXBLN FE00 26F8 JR NZ,CRTES 2003 26FA INC HL 23 26FB JR CRSEL 18F4 ;Blank überlesen 26FD ;; 26FD CRTES CP $19 FE19 ;';' 26FF JR Z,NOTCR 2803 2701 ;; 2701 PREND CALL PRCRL CDB526 2704 NOTCR LD (CHADD),HL 221640 2707 RET C9 2708 ;; 2708 ;; COPY ROUTINE ;COPY ROUTINE 2708 ;; 2708 BASCO LD B,$16 0616 ;22 Zeilen 270A LD HL,(DFILE) 2A0C40 270D COPYL INC HL 23 270E LD A,(HL) 7E 270F CP NEWLI FE76 ;neue Zeile 2711 JR Z,NEWLC 2805 ;ja 2713 CALL CNVOU CD8A26 2716 JR COPYL 18F5 2718 NEWLC CALL PRCRL CDB526 271B DEC B 05 271C JR NZ,COPYL 20EF 271E RET C9 271F ;; 271F BASAV CALL FAST CD5327 ;BASIC-Programm übertragen 2722 LD HL,$4009 210940 ;VERSN identifiziert durch 0 = ZX81-BASIC 2725 SAVEL LD A,(HL) 7E 2726 LD (IY+$7B),A FD777B ;$4000+$7B = d16507 2729 CALL USROU CD4B20 ;ROM-Routine 272C CALL UPDAT CDFC01 272F JR SAVEL 18F4 2731 BALOA CALL FAST CD5327 2734 LD (IY+$14),$09FD361409 2738 LD (IY+$15),$41FD361541 273C LD HL,$4009 210940 273F LOADL CALL USRIN CD6320 2742 LD (HL),A 77 2743 INC HL 23 2744 EX DE,HL EB 2745 LD HL,($4014) 2A1440 2748 SCF 37 2749 SBC HL,DE ED52 274B EX DE,HL EB 274C JR NC,LOADL 30F1 274E CALL SLOW CDB420 2751 RST 08 CF 2752 FF 2753 ;; 2753 FAST LD A,(ROMID) 3AEE0E 2756 CP $2F FE2F 2758 JR NZ,NEURO 2004 275A CALL FASTO CD200F 275D RET C9 275E NEURO CALL FASTN CD230F 2761 RET C9 2762 ;; 2762 INIRA LD DE,(RAMTO) ED5B0440 ;RAM-Vereinb. über Ramtop setzen 2766 LD HL,IRTAB 216F27 2769 LD BC,$0010 011000 276C LDIR EDB0 276E RET C9 276F ;; Original-Version 276F IRTAB 9A ;RAM-ID 3E 2770 0000 ;Download 0000 2772 FFFF FF7F 2774 00C0 1064 2776 00 ;Flag 00 2777 2200 ;Upload 2200 2779 ED24 ED24 'HELOM' 277B EC24 ;Escape = Return EC24 'RECUE' 277D 3F24 ;Internmode = J 3F24 'CUHOM' 277F ;; 277F ;; 277F ;; 277F PRTAB 20275D5E ;'ÜÄ!%&Ö_§" 2783 5B212526 2787 5C5F4022 278B 23243A3F ;#$:?()><=+-*/;,." 278F 28293E3C 2793 3D2B2D2A 2797 2F3B2C2E 279B 30313233 ;0123456789ABCDEF 279F 34353637 27A3 38394142 27A7 43444546 27AB 4748494A ;GHIJKLMNOPQRSTUV 27AF 4B4C4D4E 27B3 4F505152 27B7 53545556 27BB 5758595A ;WXYZ 27BF 20607D7E ; üßä!%ö,7Fh§22h 27C3 7B212526 27C7 7C7F4022 27CB 23243A3F ;#$:?()><=+-*/;.. 27CF 28293E3C 27D3 3D2B2D2A 27D7 2F3B2C2E 27DB 30313233 ;0123456789abcdef 27DF 34353637 27E3 38396162 27E7 63646566 27EB 6768696A ;ghijklmnopqrstuv 27EF 6B6C6D6E 27F3 6F707172 27F7 73747576 27FB 7778797A ;wxyz 27FF ;; LAUFADR=08192=$2000 ABLEGEN=32768=$8000 M-CODE =02047=$07FF LISTING=08007=$1F47 ZEILEN =01137=$0471 KOMMENT=00160=$00A0 BEFEHLE=00878=$036E VARIABL=00099=$0063 MARKEN =00046=$002E LABELS =00146=$0092 AUFRUFE=00341=$0155 FREI AB=27454=$6B3E BYTES =05290=$14AA MARKEN ANALN=03925=$0F55 ANALO=03922=$0F52 BEL =00007=$0007 BS =00008=$0008 CCL =00012=$000C CHADD=16406=$4016 CHO =00028=$001C CLS =02602=$0A2A CNTRE=00235=$00EB COMMD=00037=$0025 CR =00013=$000D CRI =00009=$0009 CSKIP=01972=$07B4 CUP =00011=$000B DATRE=00227=$00E3 DFCC =16398=$400E DFILE=16396=$400C EPPC =16394=$400A ESC =00027=$001B FASTN=03875=$0F23 FASTO=03872=$0F20 FLAGR=00033=$0021 FRAME=00052=$0034 INTRE=00064=$0040 IOF =00002=$0002 ION =00001=$0001 LASTK=16421=$4025 LF =00010=$000A LINAD=02520=$09D8 LINEN=00000=$0000 MLPRN=00000=$0000 MODE =00078=$004E NEWLI=00118=$0076 PROGM=16509=$407D RAMTO=16388=$4004 RDPAN=05112=$13F8 RDPAO=05108=$13F4 ROMID=03822=$0EEE SLOWN=03883=$0F2B SLOWO=03880=$0F28 TASDE=01981=$07BD TOSEA=02421=$0975 UPDAT=00508=$01FC URAM =00123=$007B VARS =16400=$4010 ZXBLN=00000=$0000 LABELS ADDSP=09822=$265E ASCTZ=08919=$22D7 BALOA=10033=$2731 BAPLE=09659=$25BB BAPLO=09646=$25AE BASAV=10015=$271F BASCO=09992=$2708 BASL =09629=$259D BASLI=09674=$25CA BASPL=09636=$25A4 BASST=09926=$26C6 BELL =09053=$235D BIGRA=08339=$2093 BLEND=09670=$25C6 BLLOP=09660=$25BC BLRDY=09716=$25F4 BREAK=09899=$26AB CHKCR=09966=$26EE CLSCR=09306=$245A CNVEX=09896=$26A8 CNVOU=09866=$268A CODCO=08932=$22E4 CODKE=08582=$2186 COPYL=09997=$270D COUT =08653=$21CD CRET =09207=$23F7 CRSEL=09969=$26F1 CRTES=09981=$26FD CRWAI=08900=$22C4 CRWLO=08908=$22CC CTLC =08943=$22EF CTLCH=08637=$21BD CTLMO=08624=$21B0 CTLRE=08649=$21C9 CUHOM=09279=$243F CULAL=09269=$2435 CULEF=09365=$2495 CURIG=09296=$2450 CURSE=09389=$24AD CURSR=09440=$24E0 CURSS=09423=$24CF CURSU=09330=$2472 DAOUT=09120=$23A0 DOLI1=09093=$2385 DOLI2=09105=$2391 DOLIE=09116=$239C DOWN2=09104=$2390 DOWNL=09066=$236A DSRWL=08276=$2054 ERAL =09214=$23FE ERALP=09198=$23EE ESCAP=09406=$24BE EXIT =09907=$26B3 EXIWT=08708=$2204 FAST =10067=$2753 FILBU=09830=$2666 HDEX =09777=$2631 HDLOP=09752=$2618 HDTES=09770=$262A HEL13=08446=$20FE HELL3=08452=$2104 HELLO=08415=$20DF HELOM=09453=$24ED HEXDE=09749=$2615 INIRA=10082=$2762 INITR=08306=$2072 INITS=08387=$20C3 INIUT=08314=$207A INOF =09401=$24B9 INON =09396=$24B4 INPSE=08878=$22AE INTMO=08663=$21D7 INVOF=08489=$2129 INVON=08485=$2125 IRTAB=10095=$276F JPUSR=08726=$2216 KEYBD=08505=$2139 KEYBL=08800=$2260 KEYCO=08824=$2278 KEYRD=08804=$2264 KEYWL=08817=$2271 LFEED=09232=$2410 LINEW=09160=$23C8 LINEX=09176=$23D8 LINLO=09687=$25D7 LINLP=09317=$2465 LISTL=08782=$224E LISTS=08752=$2230 LOADL=10047=$273F MAINL=08513=$2141 MESLO=08425=$20E9 MLPR =08554=$216A MLPRW=08540=$215C MLPW =08529=$2151 MOVTX=09798=$2646 MSB0 =09433=$24D9 MSBZE=09450=$24EA NEURO=10078=$275E NEWBP=09948=$26DC NEWLC=10008=$2718 NEWRO=08383=$20BF NEWSP=08738=$2222 NEXTP=09144=$23B8 NOTCR=09988=$2704 NOTOK=09711=$25EF OFFRE=08721=$2211 PBLOP=09853=$267D PRBEX=09864=$2688 PRBUF=09846=$2676 PRCHR=09781=$2635 PRCRL=09909=$26B5 PREND=09985=$2701 PRSCR=09139=$23B3 PRSTR=09954=$26E2 PRTAB=10111=$277F PRTOK=09788=$263C RECUE=09452=$24EC SAVEL=10021=$2725 SCREX=09205=$23F5 SCRLP=09315=$2463 SCROL=09178=$23DA SECUE=09437=$24DD SENDS=08841=$2289 SERIN=08464=$2110 SERRD=08491=$212B SETCU=09153=$23C1 SETRE=08716=$220C SETSC=08359=$20A7 SLOW =08372=$20B4 TABCN=09889=$26A1 TOKEX=09826=$2662 TOKSP=09823=$265F UPLOO=08861=$229D USRCM=08243=$2033 USRDI=08261=$2045 USRDO=08255=$203F USRIN=08291=$2063 USROU=08267=$204B USRST=08249=$2039 WRITE=09000=$2328 WRMEN=09038=$234E WRMEX=09040=$2350 WRSCR=09128=$23A8 ZEIG1=09425=$24D1 ZEIG2=09455=$24EF ZEILN=09720=$25F8