File PCBINL.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

5 REM --- PC - UEBERSETZER --- LOETHE PHE
6 REM     VERSION MIT KONTEXT VOM 27.5.80
10 REM === SCHLUESSELWOERTER ===
20 DATA "AUS","BEGINN","BIS","BEI","DANN","ENDE","FUEHRE","FUEHR","FUER"
30 DATA "FALLS","GLEICH","MACHE","MACH","SONST","SOLANGE","SCHRITTWEITE"
40 DATA "SCHRITT","VON","WENN","WIEDERHOLE","WIEDERHOL"
50 DATA "DIM","DRUCKE","DRUCK","DATEN","ED","FUNKTION$","FUNKTION"
60 DATA "LIES","OEFFNE","SCHREIBE","SCHREIB","SCHLIESSE","SCHLIESS"
70 DATA "DIM","PRINT#4:","PRINT#4:","DATA","END","","","INPUT","FILE"
80 DATA "PRINT","PRINT","CLOSE","CLOSE"
90 C$="EGDLFBHHKNOIICJLLKQMM[AAZZ$ BCAAZZ"
200 M$(0) = "              ADA9    A           "
201 M$(1) = "E EGCGEGEG  B1B2  B B   B4B     B "
202 M$(2) = "BGCGBGBGCG                        "
203 M$(3) = "EGEGEGEGEG  B1B2  B B   B4B     B "
204 M$(4) = "G G G G G                         "
205 M$(5) = "BGBGBGBGBG                        "
206 M$(6) = "EGEGEGEGEG  B1B2  B B   B4B     B "
207 M$(7) = "E EG        B1B2  B B   B4B     B "
208 M$(8) = "E       EG  B1B2  B B   B4B     B "
209 M$(9) = "EGEGEGEGEG  B1    B B   B4B     B "
210 M$(10)= "              5 8                 "
211 M$(11)= "      6       0                   "
212 M$(12)= "              FDF9                "
213 M$(13)= "E     EG    B1    B B   B4B     B "
214 M$(14)= "                            7     "
215 M$(15)= "                              H   "
216 M$(16)= "CGCG        B1B2  B B   B4B     B "
217 M$(17)= "          3                       "
300 DIM R$(40),B7(26,1)
301 R$="AAAFAAAIBCBFBBBJBBBDBBBBBBBFEBBBKBCFBGHB"
600 REM === VEREINBARUNGEN ===
610 DIM X$(34,12),Y$(13,8)
620 DIM Z$(72),S$(72),B8$(72)
622 DIM T$(2),U$(1),R0$(1),P1$(1)
625 DIM S0$(72),K3$(10,16)
630 DIM L1$(30,8),L2(30),L5$(50,8),L6(50)
650 DIM V$(100,72),N$(20)
655 DIM C$(34),C0$(1)
656 DIM B$(1),P0$(1)
660 DIM M$(18,34)
670 DIM P$(72)
680 REM === INITIALISIERUNGEN ===
681 FILEV#4:"SYS:PCWS.BA"
682 N=2
684 F=0
685 PRINT#4:STR$(1)&"DEFFNZ(X,Y)=X-Y*INT(X/Y)"
686 V=-1
687 REM === KONTEXT ===
688 PRINT "KONTEXT: ";
690 INPUT N$
695 IF N$<>"" GOTO 9000
700 REM === PROGRAMMNAME ===
710 PRINT "PROGRAMM: ";
711 INPUT N$
720 IF POS(N$,":",1)<>0 GOTO 740
730 N$="SYS:"&N$
740 IF POS(N$,".",1)<>0 GOTO 760
750 N$=N$&".PC"
760 FILE#2:N$
800 REM === INITIALISIERUNGEN ===
820 FOR B0=1 TO 34
821 READ X$(B0)
822 NEXT B0
830 FOR B0=1 TO 13
831 READ Y$(B0)
832 NEXT B0
870 C2=1\B8=0
871 C1=1
872 P0$="A"
873 C0$="Z"
874 K0=0
882 A0=-1
883 L3=-1
884 L7=-1
885 P3=0
886 IF D7=0 GOTO 900
887 FOR V0=0 TO V
888 PRINT V$(V0)
889 NEXT V0\PRINT\PRINT
900 REM === EINGABE ===
910 INPUT#2:Z$
920 IF END#2 GOTO 80300
930 B8$=Z$\B8=B8+1
1000 REM === ZEICHENWEISE ANALYSE ===
1010 Z=0
1011 Z0=LEN(Z$)
1012 D6=POS(Z$,"_",1)
1013 IF D6=0 GOTO 1020
1014 Z$=SEG$(Z$,1,D6-1)&","&SEG$(Z$,D6+1,LEN(Z$))
1020 IF P3=1 GOTO 3000
1030 Z=Z+1
1040 IF Z>Z0 GOTO 900
1050 B$=SEG$(Z$,Z,Z)
1100 REM --- EINZELZEICHEN ---
1110 IF B$="[" GOTO 3000
1120 IF B$="""" GOTO 2000
1130 IF B$=" " GOTO 1030
1140 IF B$=":" GOTO 1800
1145 IF B$="=" GOTO 1900
1170 IF B$=";" GOTO 1570
1200 REM --- FUNKTIONSDEF. ---
1210 IF C0$<" " GOTO 1300
1215 IF P0$>"A" GOTO 90200
1220 IF B$<> "(" GOTO 1300
1240 GOTO 12100
1300 REM --- SCHLUESSELWOERTER ---
1305 IF B$>"Z" GOTO 1460
1310 B1=POS("AB  DEF   GM S   VW  ",B$,1)
1320 IF B1=0 GOTO 1400
1330 B2=POS("A  BDE   FG M   SV  W",B$,1)
1340 FOR B0=B1 TO B2
1350 IF POS(Z$,X$(B0),Z)=Z GOTO 1600
1360 NEXT B0
1400 B1=POS("D   EF LOS   ",B$,1)+21
1410 IF B1=0 GOTO 1500
1420 B2=POS("   DE FLO   S",B$,1)+21
1430 FOR B0=B1 TO B2
1440 IF POS(Z$,X$(B0),Z)=Z GOTO 1700
1450 NEXT B0
1460 IF C0$="A" GOTO 2600
1500 REM --- ERSETZUNGEN ---
1510 IF V>=0 GOTO 9500
1530 REM --- UEBERTRAGEN EINES ZEICHENS ---
1550 S$=S$&B$
1560 GOTO 1030
1570 C2=1
1575 Z=Z+1
1580 GOTO 4900
1600 REM --- VERARBEITEN DER SCHLUESSELWORTER ---
1610 C2=ASC(SEG$(C$,B0,B0))
1620 Z=Z+LEN(X$(B0))
1630 GOTO 4900
1700 C0$=SEG$(C$,B0,B0)
1710 Z=Z+LEN(X$(B0))
1720 S$=S$&Y$(B0-21)
1730 GOTO 1040
1800 REM --- DOPPELPUNKT ---
1810 IF POS(Z$,":=",Z)=Z GOTO 1840
1820 IF C0$<"D" GOTO 1530
1830 IF K(K0)<>7 GOTO 80100
1831 C2=16
1832 Z=Z+1
1833 GOTO 4900
1840 IF C1=10 GOTO 90000
1850 IF C1=4  GOTO 90000
1860 IF C1=17 GOTO 90000
1870 S$=S$&"="
1880 Z=Z+2
1890 GOTO 1040
1900 IF C1=10 GOTO 1530
1910 IF C1=4  GOTO 1530
1920 IF C1=17 GOTO 1530
1925 IF C0$>"Z" GOTO 1530
1930 GOTO 90000
2000 REM --- ZEICHENKETTEN ---
2010 IF C0$="A" GOTO 2500
2015 IF Z=Z0 GOTO 90000
2020 Z1=POS(Z$,"""",Z+1)
2030 IF Z1=0 GOTO 90000
2040 S$=S$&SEG$(Z$,Z,Z1)
2050 Z=Z1+1
2060 GOTO 1040
2500 REM --- TRENNER IM PRINT ---
2510 IF S$="PRINT" GOTO 2020
2520 IF POS(":;,""&",SEG$(S$,LEN(S$),LEN(S$)),1)<>0 GOTO 2020
2530 S$=S$&";"
2540 GOTO 2020
2600 IF B$<>"!" GOTO 2630
2610 S$=S$&";"
2620 GOTO 1030
2630 IF B$="," GOTO 1500
2640 IF SEG$(S$,LEN(S$),LEN(S$))<>"""" GOTO 1500
2645 IF B$="&" GOTO 1500
2650 S$=S$&";"
2660 GOTO 1500
3000 REM --- KOMMENTAR ---
3010 P3=1
3020 Z1=POS(Z$,"]",Z+1)
3030 IF Z1=0 GOTO 900
3040 Z=Z1+1
3045 P3=0
3060 GOTO 1040
4900 REM === ENTSCHEIDUNGEN NACH STRUKTUR ===
4910 T$=SEG$(M$(C1),2*C2-1,2*C2)
4920 IF T$="  " GOTO 90000
5000 REM --- RUECKSPRUNG FUER ENTSCHEIDUNGEN ---
5010 IF T$="" GOTO 5500
5020 U$=SEG$(T$,1,1)
5030 IF U$=" " GOTO 5500
5040 T$=SEG$(T$,2,2)
5045 IF U$>="0" GOTO 5200
5050 IF U$="A" GOTO 23100
5051 IF U$="B" GOTO 7010 
5052 IF U$="C" GOTO 7100
5060 IF U$="D" GOTO 23300

5061 IF U$="E" GOTO 10000
5062 IF U$="F" GOTO 23200 5070 IF U$="G" GOTO 6100 5081 IF U$="H" GOTO 24100 5190 STOP 5200 REM --- ANFANGS ELEMENTE 5210 K0=K0+1 5220 IF K0>20 GOTO 90100 5230 K(K0)=VAL(U$) 5240 IF U$="0" GOTO 25000 5250 IF U$<"3" GOTO 13000 5255 IF U$="3" GOTO 20000 5260 IF U$="4" GOTO 22000 5270 IF U$="7" GOTO 24000 5280 IF U$="6" GOTO 23000 5290 IF C1=10 GOTO 21000 5300 K0=K0-1 5310 K(K0)=VAL(U$) 5320 GOTO 23300 5500 C1=C2 5510 GOTO 1040 6000 REM === ENTSCHEIDUNGEN NACH KELLER === 6010 K0=K0-1 6015 IF K(K0+1)=0 GOTO 5000 6020 IF K(K0+1)=5 GOTO 5000 6030 IF K(K0+1)=6 GOTO 5000 6100 IF K0=0 GOTO 5000 6102 IF K0<0 GOTO 90120 6110 IF K(K0)=8 GOTO 21100 6120 IF K(K0)=9 GOTO 23400 6130 IF K(K0)=10 GOTO 20100 6140 IF K(K0)=11 GOTO 22200 6200 R0$=SEG$(R$,(C2-1)*8+K(K0)+1,(C2-1)*8+K(K0)+1) 6300 IF R0$="A" GOTO 5000 6301 IF R0$="B" GOTO 90000 6302 IF R0$="C" GOTO 13500 6305 IF R0$="F" GOTO 20100 6306 IF R0$="G" GOTO 21100 6307 IF R0$="H" GOTO 23400 6308 IF R0$="I" GOTO 24300 6309 IF R0$="J" GOTO 24400 6335 IF R0$="K" GOTO 25200 6336 K(K0)=K(K0)+7 6337 IF R0$="D" GOTO 20200 6338 IF R0$="E" GOTO 5000 6340 STOP 7000 REM === KLEINE AKTIONEN === 7010 REM --- FEHLER,FALLS S$ NICHT LEER 7020 IF S$<>"" GOTO 90000 7030 GOTO 5000 7100 REM --- UEBERLESEN, FALLS S$ LEER --- 7110 IF S$="" GOTO 5000 7120 GOTO 10000 9000 REM === KONTEXT === 9001 D7=POS(N$,"/",1) 9002 IF D7=0 GOTO 9005 9003 N$=SEG$(N$,1,D7-1) 9005 IF POS(N$,":",1)<>0 GOTO 9007 9006 N$="SYS:"&N$ 9007 IF POS(N$,".",1)<>0 GOTO 9010 9008 N$=N$&".KO" 9010 FILE#2:N$
9015 FOR I=1 TO 26 9016 B7(I,0)=-1 9017 B7(I,1)=-1 9018 NEXT I 9020 INPUT#2:Z$ 9030 IF END#2 GOTO 9400 9040 P0=POS(Z$,"==",1) 9050 IF P0=0 GOTO 9100 9060 V=V+1 9070 IF V>100 GOTO 90100 9071 B$=SEG$(Z$,1,1) 9072 B6=ASC(B$) 9073 IF B7(B6,1)<>-1 GOTO 9075 9074 B7(B6,0)=V 9075 B7(B6,1)=V 9080 V$(V)=Z$ 9090 GOTO 9020 9100 IF POS(Z$,"FUNKTION$",1)=1 GOTO 9200 9110 IF POS(Z$,"FUNKTION",1)=1 GOTO 9220 9120 PRINT#4:STR$(N)&Z$ 9130 N=N+1 9140 GOTO 9020 9200 P1$="$" 9201 Z9=POS(Z$,"_",1) 9202 IF Z9=0 GOTO 9230 9203 Z$=SEG$(Z$,1,Z9-1)&","&SEG$(Z$,Z9+1,LEN(Z$)) 9210 GOTO 9230 9220 P1$="" 9230 Z$=SEG$(Z$,POS(Z$," ",1)+1,LEN(Z$)) 9240 F=F+1 9250 IF F>25 GOTO 90100 9260 P$="DEFFN"&CHR$(F)&P1$&SEG$(Z$,POS(Z$,"(",1),LEN(Z$)) 9261 PRINT#4:STR$(N)&P$ 9265 N=N+1 9270 Z$=SEG$(Z$,1,POS(Z$,"(",1))&"=="&"FN"&CHR$(F)&P1$&"(" 9280 GOTO 9060 9400 CLOSE#2 9401 IF D7=0 GOTO 700 9405 FOR I=1 TO 26 9406 PRINT CHR$(I),B7(I,0),B7(I,1) 9407 NEXT I 9410 GOTO 700 9500 REM === ERSETZUNGEN === 9501 B6=ASC(B$) 9502 IF B6>26 GOTO 1530 9503 IF B7(B6,0)=-1 GOTO 1530 9510 FOR V0=B7(B6,0) TO B7(B6,1) 9515 P0=POS(V$(V0),"==",1) 9520 IF POS(Z$,SEG$(V$(V0),1,P0-1),Z)<>Z GOTO 9570 9530 S$=S$&SEG$(V$(V0),P0+2,LEN(V$(V0))) 9540 Z=Z+P0-1 9550 GOTO 1040 9570 NEXT V0 9580 GOTO 1530 10000 REM === EINFACHE ANWEISUNG === 10010 IF S$="" GOTO 90000 10012 IF P0$<>"A" GOTO 10018 10014 IF C0$>"Z" GOTO 10900 10016 GOTO 90200 10018 IF C0$>"Z" GOTO 90200 10020 IF SEG$(S$,1,1)="@"GOTO 80200 10030 IF C0$="B" GOTO 10300 10070 IF POS(S$,"GEHNACH",1)=0 GOTO 10080 10071 S$=SEG$(S$,8,15) 10072 GOTO 80270 10080 IF POS(S$,"GEHENACH",1)=0 GOTO 10900 10081 S$=SEG$(S$,9,16) 10082 GOTO 80270 10300 REM --- LIES --- 10320 IF POS(S$,"ANFANG#:",6)=6 GOTO 10500 10330 IF POS(S$,"ANFANG#",6)=6 GOTO 10400 10340 IF POS(S$,"#:",6)=6 GOTO 10600 10350 GOTO 10900 10400 P$="RESTORE"&SEG$(S$,12,POS(S$,":",13)-1) 10405 PRINT#4:STR$(N)&P$ 10410 N=N+1 10420 S$=SEG$(S$,1,5)&SEG$(S$,12,LEN(S$)) 10430 GOTO 10900 10500 PRINT#4:STR$(N)&"RESTORE" 10505 N=N+1 10510 S$="READ"&SEG$(S$,14,LEN(S$)) 10520 GOTO 10900 10600 S$="READ"&SEG$(S$,8,LEN(S$)) 10610 GOTO 10900 10700 REM --- MOD,DIV --- 10705 S0$=SEG$(S$,P4+1,LEN(S$)) 10710 P5=POS(S0$,"MOD",1) 10720 IF P5<>0 GOTO 10770 10730 P5=POS(S0$,"DIV",1) 10740 IF P5=0 GOTO 10904 10750 S$=SEG$(S$,1,P4)&"INT(" 10755 S$=S$&SEG$(S0$,1,P5-1)&"/"&SEG$(S0$,P5+3,LEN(S0$))&")" 10760 GOTO 10904 10770 S$=SEG$(S$,1,P4)&"FNZ(" 10775 S$=S$&SEG$(S0$,1,P5-1)&","&SEG$(S0$,P5+3,LEN(S0$))&")" 10780 GOTO 10904 10900 REM --- ANWEISUNG --- 10901 P4=POS(S$,"=",1) 10902 IF P4<>0 GOTO 10700 10904 PRINT#4:STR$(N)&S$ 10905 C0$="Z" 10910 S$="" 10920 N=N+1 10930 GOTO 5000 11000 REM === LOGISCHE AUSDRUECKE === 11010 IF S$="" GOTO 90000 11100 REM --- NICHT AUSDRUCK --- 11110 P5=POS(S$,"NICHT",1) 11111 IF P5=0 GOTO 11200 11120 P$="IF"&SEG$(S$,P5+5,LEN(S$))&"GOTO"&STR$(N+2) 11125 PRINT#4:STR$(N)&P$ 11130 P$="GOTO"&STR$(N+3) 11135 PRINT#4:STR$(N+1)&P$ 11140 N=N+2 11145 S$="" 11150 RETURN 11200 REM --- UND AUSDRUCK --- 11210 P5=POS(S$,"UND",1) 11211 IF P5=0 GOTO 11300 11220 P$="IF"&SEG$(S$,1,P5-1)&"GOTO"&STR$(N+2) 11225 PRINT#4:STR$(N)&P$ 11230 P$="GOTO"&STR$(N+3) 11235 PRINT#4:STR$(N+1)&P$ 11240 P$="IF"&SEG$(S$,P5+3,LEN(S$))&"GOTO"&STR$(N+4) 11245 PRINT#4:STR$(N+2)&P$ 11250 N=N+3 11255 S$="" 11260 RETURN 11300 REM --- ODER AUSDRUCK --- 11310 P5=POS(S$,"ODER",1) 11311 IF P5=0 GOTO 11500 11320 P$="IF"&SEG$(S$,1,P5-1)&"GOTO"&STR$(N+3) 11325 PRINT#4:STR$(N)&P$ 11330 P$="IF"&SEG$(S$,P5+4,LEN(S$))&"GOTO"&STR$(N+3) 11335 PRINT#4:STR$(N+1)&P$ 11340 N=N+2 11345 S$="" 11350 RETURN 11400 REM --- VERGLEICHSAUSDRUCK --- 11410 PRINT#4:STR$(N)&"IF"&S$&"GOTO"&STR$(N+2) 11420 N=N+1 11430 S$="" 11440 RETURN 11500 REM --- TEILT --- 11510 P5=POS(S$,"TEILT",1) 11511 IF P5=0 GOTO 11400 11520 S$="FNZ("&SEG$(S$,P5+5,LEN(S$))&","&SEG$(S$,1,P5-1)&")=0" 11530 GOTO 11400 12000 REM === FUNKTIONEN === 12100 REM --- DEF FUNKTION --- 12110 F=F+1 12120 IF F>25 GOTO 90100 12130 V=V+1 12140 IF V>50 GOTO 90100 12150 V$(V)=S$&"(==FN"&CHR$(F)&C0$&"(" 12160 S$="DEFFN"&CHR$(F)&C0$&"(" 12170 C0$="[" 12180 GOTO 1030 13000 REM === BEGINN === 13010 IF P0$<>"A" GOTO 5000 13040 PRINT#4:STR$(N)&"REM FILEV#4:""LPT:"""
13050 P0$="B" 13060 N=N+1 13070 GOTO 5000 13500 REM --- ENDE --- 13510 K0=K0-1 13600 IF K0>0 GOTO 5000 13610 IF P0$="B" GOTO 13640 13620 PRINT#4:STR$(N)&"RETURN" 13625 N=N+1 13630 GOTO 5000 13640 PRINT#4:STR$(N)&"REM CLOSE#4"&CHR$(28)&"STOP" 13650 N=N+1 13660 P0$="C" 13670 GOTO 5000 20000 REM === IF ANFANG === 20030 GOSUB 11000 20040 K1(K0)=N 20041 N=N+1 20050 GOTO 5000 20100 REM --- IF-THEN ENDE --- 20120 PRINT#4:STR$(K1(K0))&"GOTO"&STR$(N) 20130 GOTO 6000 20200 REM --- ELSE ANFANG --- 20210 PRINT#4:STR$(K1(K0))&"GOTO"&STR$(N+1) 20230 K1(K0)=N 20231 N=N+1 20240 GOTO 5000 21000 REM === WHILE ANFANG === 21030 K2(K0)=N 21040 GOSUB 11000 21050 K1(K0)=N 21051 N=N+1 21060 GOTO 5000 21100 REM --- WHILE ENDE --- 21120 PRINT#4:STR$(N)&"GOTO"&STR$(K2(K0)) 21130 N=N+1 21150 PRINT#4:STR$(K1(K0))&"GOTO"&STR$(N) 21160 GOTO 6000 22000 REM --- REPEAT ANFANG === 22030 K1(K0)=N 22040 GOTO 5000 22200 REM --- REPEAT ENDE --- 22210 GOSUB 11000 22230 PRINT#4:STR$(N)&"GOTO"&STR$(K1(K0)) 22240 N=N+1 22250 GOTO 6000 23000 REM === FOR ANFANG === 23030 P5=POS(S$,"=",1) 23040 IF P5<=1 GOTO 90000 23050 K3$(K0)=SEG$(S$,1,P5-1) 23060 P$="FOR"&S$ 23070 S$="" 23080 C1=0 23090 GOTO 1040 23100 REM --- FOR-TO --- 23110 P$=P$&"TO"&S$ 23120 S$="" 23130 GOTO 5000 23200 REM --- FOR-TO-STEP --- 23210 P$=P$&"STEP"&S$ 23215 S$="" 23220 GOTO 5000 23300 REM --- FOR-DO --- 23310 PRINT#4:STR$(N)&P$ 23320 N=N+1 23330 GOTO 5000 23400 REM --- NEXT --- 23420 PRINT#4:STR$(N)&"NEXT"&K3$(K0) 23425 N=N+1 23430 K3$(K0)="" 23440 GOTO 6000 24000 REM === CASE ANFANG === 24030 PRINT#4:STR$(N)&"GOTO"&STR$(N+2) 24040 K1(K0)=N+1 24050 N=N+2 24060 K3$(K0)=S$&"=" 24070 S$="" 24090 GOTO 5000 24100 REM --- CASE LABEL --- 24101 N0=1 24102 P5=0 24103 P5=POS(S$,",",P5+1) 24104 IF P5=0 GOTO 24107 24105 N0=N0+1 24106 GOTO 24103 24107 N0=N0+N+1 24108 K2(K0)=N0-1 24110 P5=POS(S$,",",1) 24120 IF P5=0 GOTO 24180 24130 PRINT#4:STR$(N)&"IF"&K3$(K0)&SEG$(S$,1,P5-1)&"GOTO"&STR$(N0) 24150 N=N+1 24160 S$=SEG$(S$,P5+1,LEN(S$)) 24170 GOTO 24110 24180 PRINT#4:STR$(N)&"IF"&K3$(K0)&S$&"GOTO"&STR$(N0) 24200 N=N+2 24205 S$="" 24210 GOTO 5000 24300 REM --- CASE FALL ENDE --- 24310 PRINT#4:STR$(N)&"GOTO"&STR$(K1(K0)) 24320 N=N+1 24325 PRINT#4:STR$(K2(K0))&"GOTO"&STR$(N) 24330 C1=15 24340 GOTO 1040 24400 REM --- CASE ENDE --- 24410 PRINT#4:STR$(K1(K0))&"GOTO"&STR$(N) 24420 PRINT#4:STR$(K2(K0))&"GOTO"&STR$(N) 24425 K0=K0-1 24430 GOTO 5000 25000 REM === DATEI ANFANG === 25100 REM --- DATEI ANFANG 25130 PRINT#4:STR$(N)&"DIMZ$(72)" 25140 PRINT#4:STR$(N+1)&"FILE#3:"&SEG$(S$,6,LEN(S$)) 25150 PRINT#4:STR$(N+2)&"INPUT#3:Z$" 25160 K2(K0)=N+2 25170 K1(K0)=N+3 25180 N=N+4 25185 S$="" 25190 GOTO 5000 25200 REM --- DATEI ENDE --- 25210 PRINT#4:STR$(N)&"GOTO"&STR$(K2(K0)) 25220 N=N+1 25230 PRINT#4:STR$(K1(K0))&"IFEND#3GOTO"&STR$(N) 25240 PRINT#4:STR$(N)&"CLOSE#3" 25250 N=N+1 25270 GOTO 6000 80000 REM === MARKEN,SPRUENGE === 80100 REM --- MARKE EINTRAGEN --- 80111 S$=SEG$(S$,1,8) 80150 IF L3>=30 GOTO 90100 80160 L3=L3+1 80161 L1$(L3)=S$ 80162 L2(L3)=N 80170 S$="" 80171 GOTO 1030 80200 REM --- SPRUNG EINTRAGEN --- 80211 S$=SEG$(S$,1,8) 80270 REM 80280 L7=L7+1 80281 L5$(L7)=S$ 80282 L6(L7)=N 80290 S$="" 80291 N=N+1 80292 GOTO 5000 80300 REM --- MARKEN-SPRUNG-ZUORDNUNG --- 80302 IF S$="" GOTO 80310 80304 PRINT#4:STR$(N)&S$ 80310 FOR L8=0 TO L7 80320 FOR L4=0 TO L3 80330 IF L1$(L4)<>L5$(L8) GOTO 80360 80332 IF SEG$(L1$(L4),1,1)<>"@" GOTO 80340 80334 PRINT#4:STR$(L6(L8))&"GOSUB"&STR$(L2(L4)) 80336 GOTO 80380 80340 PRINT#4:STR$(L6(L8))&"GOTO"&STR$(L2(L4)) 80350 GOTO 80380 80360 NEXT L4 80362 IF SEG$(L5$(L8),1,1)<>"@" GOTO 80370 80364 PRINT#4:STR$(L6(L8))&"PRINT""VERFEINERUNG "";"""&L5$(L8)&"""" 80366 GOTO 80380 80370 PRINT "***FEHLER:MARKE ";L5$(L8);" FEHLT" 80371 GOTO 90201 80380 NEXT L8 80400 PRINT#4:STR$(N)&"END" 80410 GOTO 91000 90000 PRINT "***FEHLER ZWISCHEN DEN SCHLUESSELWOERTERN" 90001 PRINT " MIT CODE C1=";C1;"UND C2=";C2 90002 GOTO 90201 90100 PRINT "---SYSTEMGRENZE:C1=";C1;"C2=";C2;"K(K0)=";K(K0) 90101 PRINT " L3=";L3;"L7=";L7;"F=";F 90102 GOTO 90201 90120 PRINT "***FEHLER IN DER SCHACHTELUNG:K(K0)=";K(K0);"C2=";C2 90121 GOTO 90201 90200 PRINT "***FEHLER IM PROGRAMMAUFBAU" 90201 PRINT "FEHLER IN ZEILE NR. ";B8;" GEFUNDEN" 90202 PRINT B8$ 90203 STOP 91000 CLOSE#2 91040 CLOSE#4 99999 PRINT"KEINE SYNTAXFEHLER, ";B8;" PROG.ZEILEN"\END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search