5 REM STRUBS4/4.9.83 10 '******************************* 15 '** ---- STRUBS.4.QP --- ** 20 '** 4.9.83 ** 22 '** STRUBS.2 -CODE ** 25 '** BASIC PROG VORUEBERSETZEN ** 30 '** UEBERSETZT MARKEN IN ZEI- ** 32 '** LENNR. ( \NAME) ** 35 '** LOESCHT KOMMENTARE '...' ** 36 '** UND BLANKS ** 40 '** BEFEHLE: MIT '!' ** 41 '** LOOP,EXIT,ELOOP ** 43 '** IF,ELSE,FI ** 45 '** CASEOF,OF,ECASE ** 46 '** WHILE,EWHILE ** 47 '** REPEAT,UNTIL ** 48 '** EXT: ** 49 '******************************* 50 ' 51 PRINT"[147]";TAB(10);"*****************" 52 PRINT TAB(10);"* --STRUBS.4 -- *" 55 PRINT TAB(10);"* M.TOERK *" 57 PRINT TAB(10);"* 4352 HERTEN *" 58 PRINT TAB(10);"*****************" 67 ' 68 ' 70 !IF PEEK(46)<40 OR (PEEK(46)=40 AND PEEK(45)<3)THEN'KEIN PROG IN EDITBEREICH 71 ' 72 ' ** INIT EDIT U. VAR. BEREICH: 73 : POKE46,40:POKE45,3:POKE 40*256,0:CLR 75 !FI 78 ' 80 EA=40*256+1' ** EDIT-BEREICH 100 GOSUB \INIT 140 GOTO \MENUE 148 ' 149 ' 200 '****************************** 205 '** -- NEXT ZEICHEN --- ** 208 '** HOLT AB ADR NC NAECHSTES ** 210 '** RELEVANTES ZEICHEN ** 212 '** UEBERLIEST BLANKS UND ** 214 '** KOMMENTARE ZWISCHEN ** 215 '** ' UND ' BZW ZEILENDE ** 217 '** KOPIERT STRINGS UNVERAEN-** 218 '** DERT NACH Z$ ** 220 '** EIN: NC -CHAR ADR ** 222 '** CODE-VARIABLEN ** 224 '** AUS: NC -ADR NEXT CHAR ** 226 '** C -CHAR-CODE ** 228 '** SEF: Z$ -ZEILENSTRING ** 247 '****************************** 248 ' 250 \NEXCHAR:IF PEEK(NC)=BL'ANK' THEN NC=NC+1:GOTO \THIS ' **BLANKS UEBERLESEN 254 ' 260 C=PEEK(NC) 265 IF C<>KO'MMENTAR' THEN \TESTSTRING 267 ' 270 ' ** KOMMENTAR UEBERLESEN 280 NC=NC+1:C=PEEK(NC):IF C AND C<>KO THEN \THIS 290 IF C THEN NC=NC+1:C=PEEK(NC) 295 IF C=BL THEN \NEXCHAR 298 ' 320 \TESTSTRING: IF C<>TE'XT' THEN NC=NC+1:RETURN 340 ' 345 ' ** STRING NACH Z$ UEBERTRAGEN ** 350 Z$=Z$+CHR$(C):NC=NC+1:C=PEEK(NC):IF C AND C<>TE'XT' THEN \THIS 370 NC=NC+1 390 RETURN 395 ' 500 '****************************** 505 '** -SCHREIB ZEILE AUF DISK- ** 510 '** EIN: Z$ - ZEILENSTRING ** 512 '** E/A: AA - LINKADRESSE ** 513 '** DARF AUSSERHALB DIE-** 514 '** SER ROUTINE NICHT!! ** 515 '** VERAENDERT WERDEN ! ** 520 '** SEF: H% ** 525 '** IMP: FNAD - ADRESSFUNKT. ** 547 '****************************** 548 ' 550 \SCHREIBZEILE:IF LEN(Z$)<4 THEN RETURN' **LEERZEILE 555 PRINTFNAD(ZA+2) 560 AA=AA+LEN(Z$)+2 ' ** LINKADR 565 H%=AA/256 570 PRINT#1,CHR$(AA-256*H%);CHR$(H%);Z$; 580 RETURN 595 ' 700 '***************************** 704 '** --- HOLNAME ---- ** 706 '** LIEST NAME AB ADR NC ** 708 '** BIS ":", ",", BLANK ** 709 '** ODER ZEILENENDE ** 710 '** EIN: NC ** 715 '** AUS: NC -ADR. NEXT CHAR ** 720 '** C -LETZTES GELESE-** 722 '** -NES ZEICHEN ** 728 '** T$ -NAME ** 747 '***************************** 748 ' 750 \HOLNAME:T$="" 780 ' **** NAME LESEN 790 !LOOP 795 : C=PEEK(NC):IF C=DP OR C=KM OR C=BL OR C=0 THEN !EXIT 800 : NC=NC+1:T$=T$+CHR$(C) 810 !ELOOP 820 NC=NC+1:IF C=BL'ANK' THEN GOSUB \NEXCHAR 830 RETURN 835 ' 1000 '***************************** 1004 '** -- UEBERSETZE MARKE -- ** 1020 '** EIN: Z$ -ZEILENANFANG ** 1022 '** NC -AKT.CHAR ADR ** 1030 '** AUS: Z$ -Z$+SPRUNGZIEL ** 1032 '** NC -AUF LETZTES ** 1033 '** GELESENES CHAR ** 1038 '** SEF: I,H,T$ ** 1047 '***************************** 1048 ' 1050 \MARKE:GOSUB \HOLNAME 1115 ' 1120 !IF T$="THIS" THEN 1125 : H=FNAD(ZA+2) 1130 !ELSE '** MARKE SUCHEN **** 1140 : FOR I=0 TO MP:IF MA$(I)<>T$ THEN NEXT 1160 : IF I>MP THEN ER=2:GOTO \ERROR:'UNDEFINED LABEL 1170 : H=MA%(I)+DI 1175 !FI 1180 Z$=Z$+MID$(STR$(H),2) 1190 RETURN 1195 ' 1495 ' 1500 '********************************* 1504 '** --- BEFEHLE IM 1.LAUF ---- ** 1510 '** SEF: SP,S%() STACK ** 1530 '** I%() IF/CASE TABELLE** 1532 '** LO%(,) LOOPTABELLE ** 1533 '** ER,ER%(),EP -ERRORTAB. ** 1535 '** I,IN,TA,B$,H,L ** 1540 '** IMP: HOLNAME,ERROR,ABBRUCH ** 1547 '********************************* 1549 ' 1550 \BEFEHL.L1:GOSUB \HOLNAME 1551 ' 1560 FOR I=0 TO BM:IF T$<>BE$(I) THEN NEXT 1565 IF I>BM THEN ER=0:GOTO \ERROR ' FALSCHER BEFEHL 1567 B$=BE$(I):IF I=3 THEN B$="IF" 1568 ' 1569 I=I+1 ' ** VERTEILER ** 1570 ONIGOSUB\L1,\EX1,\EL1,\IF1,\ELS1,\FI1,\CA1,\OF1,\EC1,\ET1,\W1,\N1,\R1,\U1 1571 ' 1572 '** BLOCKSTRUCKTUR AUSGEBEN ** 1574 PRINTFNAD(ZA+2); 1575 IF IN'DENTMODUS'=0 THEN PRINT TAB(TA);B$:RETURN 1577 IF IN=1 THEN PRINT TAB(TA);B$:TA=TA+1:RETURN 1579 IF IN=2 THEN PRINT TAB(TA-1);B$:RETURN 1581 IF IN=3 THEN TA=TA-1:PRINT TAB(TA);B$:RETURN 1585 ' 1586 RETURN 1588 ' 1589 ' **** LOOP ***** 1600 \L1: IF SP'TR'>SM'AX' THEN ER=3:GOTO \ABBRUCH 1605 : IF LP>LM THEN ER=5:GOTO \ABBRUCH 1609 ' * ZEILENNR MERKEN: 1610 : S'TACK'%(SP)=LP:SP=SP+1:LO%(LP,0)=FNAD(ZA+2)-DI:LP=LP+1 1615 : IN'DENTMODUS'=1:RETURN 1628 ' 1629 ' **** ELOOP ***** 1640 \EL1:SP=SP-1:IF S'TACK'P'OINTER'<0 THEN ER=1:GOTO \ABBRUCH 1649 ' * ZEILENNUMMERN ZU ENTSPRECHENDEM LOOP NACH LO%(,) 1650 : LO'OP'%(S%(SP),1)=FNAD(ZA+2)-DI 1660 : IN'DENTMODUS'=3:RETURN 1678 ' 1679 ' ** EXIT ***** 1680 \EX1: IN'DENTMODUS'=0:RETURN 1688 ' 1689 ' 1700 ' ** WHILE ***** 1710 \W1: GOSUB \L1 'LOOP':RETURN 1715 ' 1730 ' *** EWHILE ****** 1740 \N1: GOSUB \EL1 'ELOOP':RETURN 1745 ' 1800 ' ** REPEAT ******* 1810 \R1: GOSUB \L1 'LOOP':RETURN 1815 ' 1845 ' 1850 ' ** UNTIL ******* 1860 \U1: GOSUB \EL1 'ELOOP':RETURN 1948 ' 1990 ' 2000 ' **** IF ******* 2005 ' LISTENPLATZ FUER SPAETEREN SPRUNGZIELEINTRAG MERKEN: 2010 \IF1: IF SP>SM THEN ER=3:GOTO \ABBRUCH 2011 : IF IP>IM THEN ER=4:GOTO \ABBRUCH 2020 : S%(SP)=IP:IP=IP+1:SP=SP+1 2025 : IN'DENTMODUS'=1:RETURN 2029 ' 2030 ' **** ELSE ******* 2035 ' ZEILENNR.+1 ALS SPRUNGZIEL FUER ZUGEHOERIGES IF EINTRAGEN: 2040 \ELS1:IF SP<1 THEN ER=1:GOTO \ABBRUCH 2041 : IF IP>IM THEN ER=4:GOTO \ABBRUCH 2044 : I%(S%(SP-1))=FNAD(ZA+2)+1-DI 2045 ' * INDEX FUER SPAETEREN SPRUNGZIELEINTRAG MERKEN: 2050 : S%(SP-1)=IP:IP=IP+1 2052 : IN'DENTMODUS'=2:RETURN 2058 ' 2090 ' **** FI ******* 2095 ' ZNR. ALS SPRUNGZIEL BEI IF BZW. ELSE EINTRAGEN 2100 \FI1: IF SP<1 THEN ER=1:GOTO \ABBRUCH 2105 : SP=SP-1:I%(S%(SP))=FNAD(ZA+2)-DI 2107 : IN'DENTMODUS'=3:RETURN 2108 ' 2110 ' 2150 ' **** CASEOF ***** 2160 \CA1: IF SP>SM THEN ER=3:GOTO \ABBRUCH 2165 : S%(SP)=-1:SP=SP+1 2170 : GOSUB \IF1 2180 : IN'DENTM.'=1:RETURN 2185 ' 2200 ' ***** OF ****** 2210 \OF1: GOSUB \ELS1 2230 : GOSUB \IF1 2240 : IN'DENTM.'=2:RETURN 2245 ' 2250 ' ***** ECASE ***** 2260 \EC1: H=FNAD(ZA+2)-DI ' * ZEILENNR 2269 ' ** AUSGAENGE EINTRAGEN 2270 : !LOOP 2275 : IF SP<1 THEN ER=1:GOTO \ABBRUCH 2280 : SP=SP-1:I=S%(SP) 2290 : IF I<0 THEN !EXIT 2300 : I%(I)=H 2310 : !ELOOP 2320 : IN'DENTM.'=3:RETURN 2330 ' 2399 ' *** EXT/CONST *** 2400 \ET1: !LOOP 2410 : IF MP>MM THEN ER=6:GOTO \ABBRUCH 2415 : IF C AND C<>LA'BEL' THEN GOSUB \NEXCHAR:GOTO \THIS 2420 : IF C THEN GOSUB \HOLNAME 2423 : IF C THEN GOSUB \NEXCHAR 2425 : IF C<48 OR C>57 THEN 'KEINE ZIFFER' ER=9:GOTO \ERROR 2430 : MA$(MP)=T$:H=C 2438 ' 2439 ' ** WERT DES LABELS: ** 2440 : GOSUB \HOLNAME 2450 : MA%(MP)=VAL(CHR$(H)+T$)-DI 2460 : MP=MP+1 2470 : IF C=0 THEN !EXIT 2480 !ELOOP 2481 ' 2485 IN'DENTM.'=0:RETURN 2495 ' 2497 ' 2500 '********************************* 2504 '** --- BEFEHLE IM 2.LAUF ---- ** 2510 '** SEF: STACK ** 2530 '** IP,LP - TAB. POINTER ** 2534 '** Z$ - ZEILENSTRING ** 2540 '** IMP: HOLNAME ** 2547 '********************************* 2549 ' 2550 \BEFEHL.L2:GOSUB \HOLNAME 2551 ' 2560 FOR I=0 TO BM:IF T$<>BE$(I) THEN NEXT 2565 IF I>BM THEN ER=0:GOTO \ERROR ' * FALSCHER BEFEHL 2567 ' 2568 I=I+1 ' ** VERTEILER ** 2570 ONIGOSUB\L2,\EX2,\EL2,\IF2,\ELS2,\FI2,\CA2,\OF2,\EC2,\ET2,\W2,\N2,\R2,\U2 2575 RETURN 2576 ' 2589 ' **** LOOP ***** 2590 \L2:IF C=0 THEN Z$=Z$+":" 2592 ' INDEX VON LOOP/ELOOP PAAR MERKEN 2595 : S%(SP)=LP:SP=SP+1:LP=LP+1 2597 : RETURN 2628 ' 2629 ' **** ELOOP ***** 2630 \EL2: SP=SP-1 2639 ' * SPRUNG ZU ENTSPR. LOOP 2640 : Z$=Z$+G'O'T'O'$+MID$(STR$(LO%(S%(SP),0)+DI),2)+NU$ 2642 : GOSUB \SCHREIBZEILE 2645 ' * FOLGEZEILE ALS SPRUNGZIEL GENERIEREN 2647 : L=PEEK(ZA+2)+1:H=PEEK(ZA+3):IF L>255 THEN L=0:H=H+1 2648 : Z$=CHR$(L)+CHR$(H) +":" 2650 : RETURN 2652 ' 2680 ' **** EXIT ***** 2685 \EX2:B$="":IF RIGHT$(Z$,1)<>CHR$(167) 'THEN-CODE' THEN B$=G'O'T'O'$ 2689 ' * SPRUNG ZU NAECHSTEM ELOOP 2693 : Z$=Z$+B$+MID$(STR$(LO%(S%(SP-1),1)+DI+1),2) 2695 : RETURN 2947 ' 2955 ' 3000 ' **** IF ******** 3010 \IF2: Z$=Z$+I'F'C$+NO'T'$+"("+CHR$(C) 3020 : GOSUB \NEXCHAR:IF C<>TH'EN' AND C THEN Z$=Z$+CHR$(C): GOTO \THIS 3030 : Z$=Z$+")"+CHR$(TH'EN')+MID$(STR$(I%(IP)+DI),2) 3035 ' 3036 : IP=IP+1:C=0:RETURN 3039 ' 3080 ' **** ELSE ******** 3090 \ELS2: Z$=Z$+G'O'T'O'$+MID$(STR$(I%(IP)+DI),2)+NU$ 3100 : GOSUB \SCHREIBZEILE 3110 ' * FOLGEZEILE ALS SPRUNGZIEL GENERIEREN: 3120 : L=PEEK(ZA+2)+1:H=PEEK(ZA+3):IF L>255 THEN L=0:H=H+1 3130 : Z$=CHR$(L)+CHR$(H) +":" 3140 : IP=IP+1:RETURN 3149 ' 3180 ' **** FI ******** 3190 \FI2: L=PEEK(ZA+2):H=PEEK(ZA+3) 3195 ' * ZEILE ALS SPRUNGZIEL GENERIEREN: 3200 : Z$=CHR$(L)+CHR$(H) +":" 3210 : RETURN 3255 ' 3259 ' ***** CASEOF **** 3260 \CA2: GOSUB \IF2:RETURN 3299 ' 3300 ' ***** OF ****** 3310 \OF2: GOSUB \ELS2 3320 : Z$=LEFT$(Z$,LEN(Z$)-1) ' ":" WEG 3330 : GOSUB \IF2 3340 : RETURN 3345 ' 3350 ' ***** ECASE ***** 3360 \EC2: GOSUB \FI2 3370 : RETURN 3380 ' 3385 ' 3399 ' *** EXT/CONST *** 3400 \ET2: Z$="":C=0:RETURN ' *ZEILE LOESCHEN 3405 ' 3448 ' 3449 ' *** WHILE ***** 3450 \W2: GOSUB \L2 'LOOP' 3460 : Z$=Z$+I'F'C'ODE'$+NO'T'$+"(" 3469 ' ** BEDINGUNG KOPIEREN: 3470 : IF C<>BE'FEHL' AND C THEN Z$=Z$+CHR$(C):GOSUB \NEXCHAR:GOTO \THIS 3480 : Z$=Z$+")"+CHR$(TH'EN') 3488 ' ** ANALOG EXIT: 3490 : Z$=Z$+MID$(STR$(LO%(S%(SP-1),1)+DI+1),2) 3495 : C=0:RETURN 3497 ' 3498 ' 3549 ' *** EWHILE ***** 3550 \N2: GOSUB \EL2 'ELOOP':RETURN 3555 ' 3557 ' 3579 ' *** REPEAT ***** 3580 \R2: GOSUB \L2 'LOOP':RETURN 3585 ' 3599 ' *** UNTIL ***** 3600 \U2: Z$=Z$+I'F'C$+NO'T'$+"(" 3605 ' 3609 ' * BEDINGUNG KOPIEREN 3610 : IF C THEN Z$=Z$+CHR$(C):GOSUB \NEXCHAR:GOTO \THIS 3619 ' * ANALOG ELOOP 3620 : SP=SP-1:IN'DENT'=3 3630 : Z$=Z$+")"+CHR$(TH'EN')+MID$(STR$(LO%(S%(SP),0)+DI),2) 3640 : RETURN 4000 '***************************** 4004 '** - BEARBEITE ZEILE - ** 4020 '** EIN: ZA -ZEILENADR ** 4028 '** AUS: Z$ -ZEILENSTRING ** 4029 '** UEBERSETZTE Z. ** 4035 '** LEFT$(Z$,2)=ZEILNR ** 4040 '** IMP: \BEFEHL.L2 ** 4045 '** \MARKE ** 4047 '***************************** 4048 ' 4050 ' ** ZEILENNR: ** 4060 \ZEILE:Z$=CHR$(PEEK(ZA+2))+CHR$(PEEK(ZA+3)) 4080 NC=ZA+4:GOSUB \NEXCHAR ' 1.ZEICHEN DER ZEILE 4082 ' 4089 ' ** 'TABULATOR' ** 4090 IF C=DP THEN GOSUB \NEXCHAR 4098 ' 4099 ' ** MARKE UEBERLESEN: ** 4100 !IF C=LA'BEL' THEN 4105 : GOSUB \HOLNAME:IF C=DP THEN GOSUB \NEXCHAR 4108 : IF C=0 THEN Z$=Z$+":" 4110 !FI 4111 ' 4115 NC=NC-1:IF C=0 THEN Z$=Z$+NU'LL'$ 4119 ' 4120 ' ******** ZEILE LESEN ******** 4130 !LOOP: IF C=0 THEN !EXIT 4131 ' 4132 : GOSUB \NEXCHAR 4138 ' 4150 : !IF C=BE'FEHL' THEN 4155 : GOSUB \BEFEHL.L2 4358 : !ELSE 4360 : IF C=LA'BEL' THEN GOSUB \MARKE 4378 : !FI 4380 : Z$=Z$+CHR$(C) 4395 ' ******** BIS ZEILENENDE ***** 4396 !ELOOP 4398 RETURN 4399 ' 5000 '***************************** 5005 '** --- UEBERSETZEN --- ** 5047 '***************************** 5048 ' 5049 ' 5050 \UEBERSETZEN: PRINT"[147] ***** UEBERSETZEN ****" 5052 !IF FNAD(EA)EA+83 THEN 5053 : PRINT"KEIN PROGRAMM VORHANDEN":GOSUB \WARTEN:RETURN 5054 !FI 5057 ' 5058 PRINT"BITTE DISK EINLEGEN  " 5059 ' 5060 !LOOP PRINT"NAME FUER OBJEKT-PROGRAMM" 5065 : POKE198,1:POKE631,34 ' ** " FUER INPUT 5070 : [133] F$ 5080 : [159] 1,8,1,F$[170]",P,W":[159] 15,8,15 5090 : [132]15,E,E$:[139] E[178]0 [167] !EXIT 5095 : [153]"DISK ERR:";E;E$ 5096 : [133]"NEUER VERSUCH";Z$ 5098 : [160]1:[160]15 5099 : [139] Z$[179][177]"J" [167] [142] 5100 !ELOOP 5118 ' 5119 ' 5120 AA[178]EA 5130 [152]1,[199](AA [175] 256);[199](AA[173]256);' [172][172] STARTADR. 5134 ' 5135 [153]"1.LAUF" 5136 TA'BULA[164]R'[178]7 'FUER BLOCKSTRUKTUR AUSGABE 5140 [141] \1.LAUF 5142 '" ** ALLE BLOECKE GESCHLOSSEN? 5143 IF SP>0 THEN PRINT SP;:ER=8:GOTO \ABBRUCH 5144 ' 5145 PRINT"2.LAUF" 5150 GOSUB \2.LAUF 5154 ' 5160 PRINT#1,CHR$(0);CHR$(0);' **** PROG.ENDE MARKE 5180 CLOSE1:PRINT"**";EP;" ERRORS **":GOSUB \WARTEN 5190 RETURN 5198 ' 5199 ' 5500 '***************************** 5504 '** --- 1.LAUF --- ** 5510 '** IMP: \NEXCHAR ** 5512 '** \MARDEF ** 5514 '** \BEFEHL.L1 ** 5547 '***************************** 5548 ' 5550 ' *** ZEILENAD.=EDITBEREICH ANF 5555 \1.LAUF: ZA=EA 5557 ' 5560 ' ** WHILE NICHT PROGR.ENDE DO *** 5570 !WHILE ZA<>0 !DO 5580 : NC=ZA+4:C=PEEK(NC):NC=NC+1 '1.ZEICHEN DER ZEILE 5584 ' ** TAB UEBERLESEN: 5585 : IF C=D'OPPEL'P'UNKT' THEN GOSUB \NEXCHAR 5587 ' 5589 ' ** MARKE DEFINIEREN 5590 : IF C=LA'BEL' THEN GOSUB \MARDEF:IF C=DP THEN GOSUB \NEXCHAR 5599 ' 5619 ' ** BEFEHL: 5620 : IF C=BE'FEHL' THEN GOSUB \BEFEHL.L1 5920 : ZA=FNAD(ZA) 5930 !EWHILE 5935 RETURN 5940 ' **** ENDWHILE ****************** 5995 ' 5996 ' 6000 '******************************* 6004 '** --- MARKE DEFINIEREN --- ** 6015 '** EIN: ZA -ZEILENADR. ** 6020 '** AUS: VERAENDERTE MARKEN- ** 6022 '** LISTE MA$(),MA%(),MP ** 6030 '** SEF: NC,T$ ** 6047 '******************************* 6048 ' 6050 \MARDEF: IF MP>MM'AX' THEN ER=6:GOTO \ABBRUCH 6070 GOSUB \HOLNAME 6095 ' 6100 MA$(MP)=T$:MA%(MP)=FNAD(ZA+2)-DI:MP=MP+1 6120 RETURN 6130 ' 6500 '***************************** 6504 '** --- 2.LAUF --- ** 6510 '** IMP: \ZEILE ** 6512 '** \SCHREIBZEILE ** 6547 '***************************** 6548 ' 6550 \2.LAUF: Z'EILEN'A'DRESSE'=E'DITBEREICH'A'NFANG':Z1=FNAD(ZA) 'ADR. 2.ZEILE 6560 LP=0:SP=0:IP=0 ' * POINTER RUECKSETZEN 6575 ' 6580 !REPEAT 6585 : !IF PEEK(ZA+4)<>KO'MMENTAR' THEN 6590 : GOSUB \ZEILE ' BEARBEITEN 6600 : GOSUB \SCHREIBZEILE 6649 ' 6650 : !FI 6655 : ZA=Z1:Z1=FNAD(Z1) ' ADRESSE NAECHSTE ZEILE 6660 !UNTIL Z1=0 6670 ' * PROGR. ENDE * 6680 RETURN 6685 ' 8000 '***************************** 8004 '** --- ERROR ----- ** 8047 '***************************** 8050 \ERROR:PRINT"ERROR IN";FNAD(ZA+2),ER$(ER) 8060 IF EP[157][157]"; 49560 GETB$:IF B$="" THEN \THIS 49570 RETURN 49598 ' 49599 ' 49950 '******************************** 49955 '** --- PROGR.ABBRUCH --- ** 49958 '** SCHLIESST FILE ** 49970 '** GIBT FEHLERMELDUNG AUS ** 49975 '** EIN: ER -FEHLERCODE ** 49990 '******************************** 50000 \ABBRUCH: PRINT "* FEHLER BEHEBEN, DANN NEU VERSUCHEN *" 50008 PRINT:PRINT ER$(ER);" IN ";FNAD(ZA+2) 50010 PRINT#1,CHR$(0);CHR$(0); ' **** PROG.ENDE MARKE 50020 CLOSE1 50030 GOSUB \WARTEN 50040 GOSUB \ERRORTAB-AUS 50050 RUN