|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 10112 (0x2780) Notes: Mikados TextFile, Mikados_K Names: »BREV«
└─⟦98735d749⟧ Bits:30007443 8" floppy ( TEXT ) vedr. matematik i skibsindustrien └─ ⟦this⟧ »BREV«
0100 TRUE=1 0110 FALSE=0 0120 DIM SPLIT$(66),BL$(66) 0130 DIM B$(133),SYM$(66),S$(1),SIDE$(22,66),LINE$(133),SV$(2),FIL1$(20) 0140 DIM FIL$(20),UDFIL$(20),SV1$(1) 0150 FOR I=1 TO 66 0160 BL$(I)=" " 0170 NEXT I 0180 UDFIL$="DDE:BREVFIL" 0190 FIL$="DDE:MODUL" 0200 OPEN UDFIL$,W 0210 PROC INDMODUL 0220 LAST=0 0230 REPEAT 0240 INPUT "MODULNR ",SV$ 0250 EXEC CHECK1 0260 UNTIL OKAY=TRUE 0270 EXEC CONVERT(NR) 0280 FIL1$=FIL$+SV$ 0290 OPEN FIL1$,R 0300 IF STATUS(FIL1$)=0 THEN 0310 FOR L=1 TO 18 0320 GET FIL1$:SIDE$(L) 0330 IF LEN(SIDE$(L))>0 THEN LAST=L 0340 NEXT L 0350 CLOSE FIL1$ 0360 EXEC SKRIV 0370 ENDIF 0380 IF LAST=0 THEN GO TO 0230 0390 ENDPROC 0400 PROC TILPAS 0410 I0=1 0420 REPEAT 0430 CURSOR 1,23 0440 INPUT "T,TL,S,SL,R,E,F ",SV$ 0450 EXEC CHECK 0460 IF OKAY=TRUE THEN 0470 I=I0-1 0480 EXEC FINDPOS 0490 I0=I 0500 IF I0=>LAST THEN I0=1 0510 IF J>0 THEN 0520 CASE SV$ OF 0530 WHEN "TL","tl","Tl","tL" 0540 IF LAST<22 THEN 0550 CURSOR 1,23 0560 PRINT BL$ 0570 REPEAT 0580 CURSOR 1,23 0590 INPUT " ",LINE$ 0600 UNTIL LEN(LINE$)>0 AND LEN(LINE$)<67 0610 I1=I 0620 EXEC INDSÆT 0630 ENDIF 0640 WHEN "T","t" 0650 J1=J 0660 I1=I 0670 CURSOR 1,23 0680 PRINT BL$ 0690 REPEAT 0700 CURSOR 1,23 0710 INPUT " ",LINE$ 0720 UNTIL LEN(LINE$)>0 AND LEN(LINE$)<67 0730 EXEC INSERT 0740 WHEN "S","s" 0750 EXEC SLUTPOS 0760 EXEC DELETE 0770 WHEN "SL","sl","Sl","sL" 0780 I1=I 0790 EXEC SLET 0800 WHEN "R","r" 0810 EXEC SLUTPOS 0820 CURSOR 1,23 0830 PRINT BL$ 0840 REPEAT 0850 CURSOR 1,23 0860 INPUT " ",LINE$ 0870 UNTIL LEN(LINE$)>0 AND LEN(LINE$)<67 0880 IF I1=I THEN 0890 IF LEN(LINE$)<=J-J1+1 THEN 0900 SIDE$(I1,J1:LEN(LINE$))=LINE$ 0910 J1=J1+LEN(LINE$) 0920 IF J1<=J THEN EXEC DELETE 0930 ELSE 0940 SIDE$(I1,J1:J-J1+1)=LINE$(1:J-J1+1) 0950 LINE$=LINE$(J-J1+2,LEN(LINE$)) 0960 J1=J+1 0970 EXEC INSERT 0980 ENDIF 0990 ELSE 1000 IF LEN(LINE$)<=66-J1 THEN 1010 SIDE$(I1,J1:LEN(LINE$))=LINE$ 1020 J1=J1+LEN(LINE$) 1030 IF J1>66 THEN 1040 J1=1 1050 I1=I1+1 1060 ENDIF 1070 EXEC DELETE 1080 ELSE 1090 P=67 1100 IF J1>1 THEN LINE$=SIDE$(I1,1,J1-1)+LINE$ 1110 EXEC FLÆK(LINE$) 1120 SIDE$(I1)=SPLIT$+BL$ 1130 I1=I1+1 1140 J1=1 1150 IF I1=I THEN 1160 IF LEN(LINE$)<=J-J1 THEN 1170 IF LEN(LINE$)>0 THEN SIDE$(I1,J1:LEN(LINE$))=LINE$ 1180 J1=J1+LEN(LINE$) 1190 EXEC DELETE 1200 ELSE 1210 SIDE$(I1,J1:J-J1+1)=LINE$(1:J-J1+1) 1220 LINE$=LINE$(J-J1+2,LEN(LINE$)) 1230 J1=J+1 1240 EXEC INSERT 1250 ENDIF 1260 ELSE 1270 SIDE$(I1)=LINE$ 1280 J1=LEN(LINE$)+1 1290 EXEC DELETE 1300 ENDIF 1310 ENDIF 1320 ENDIF 1330 WHEN "E","e" 1340 LINE$=SIDE$(I) 1350 CURSOR 1,23 1360 PRINT BL$ 1370 REPEAT 1380 CURSOR 1,23 1390 EDIT " ",LINE$ 1400 UNTIL LEN(LINE$)>0 AND LEN(LINE$)<67 1410 SIDE$(I)=LINE$ 1420 ENDCASE 1430 EXEC SKRIV 1440 ENDIF 1450 ENDIF 1460 UNTIL SV$="F" OR SV$="f" 1470 ENDPROC 1480 PROC FINDPOS 1490 REPEAT 1500 I=I+1 1510 CURSOR 1,I 1520 INPUT " ",LINE$ 1530 UNTIL I=22 OR LEN(LINE$)>0 1540 J=LEN(LINE$) 1550 IF J>66 THEN J=66 1560 ENDPROC 1570 PROC SKRIV 1580 CLEAR 1590 FOR X=1 TO 22 1600 CURSOR 1,X 1610 PRINT " ";SIDE$(X) 1620 NEXT X 1630 ENDPROC 1640 PROC INDSÆT 1650 LAST=LAST+1 1660 IF I1>LAST THEN LAST=I1 1670 FOR L=LAST TO I1+1 STEP -1 1680 SIDE$(L)=SIDE$(L-1) 1690 NEXT L 1700 SIDE$(I1)=LINE$+BL$ 1710 ENDPROC 1720 PROC SLET 1730 FOR L=I1 TO LAST-1 1740 SIDE$(L)=SIDE$(L+1) 1750 NEXT L 1760 SIDE$(LAST)="" 1770 LAST=LAST-1 1780 ENDPROC 1790 PROC SLUTPOS 1800 I1=I 1810 J1=J 1820 CURSOR J+10,I 1830 INPUT " ",LINE$ 1840 IF LEN(LINE$)=0 THEN 1850 EXEC FINDPOS 1860 ELSE 1870 J=LEN(LINE$)+J1-1 1880 IF J>66 THEN J=66 1890 ENDIF 1900 ENDPROC 1910 PROC FLÆK(LIN) 1920 SPLIT$="" 1930 FOUND=FALSE 1940 Q=LEN(LIN$) 1950 WHILE Q>0 1960 IF LIN$(Q)=" " THEN 1970 LIN$(Q)="" 1980 Q=Q-1 1990 ELSE 2000 Q=0 2010 ENDIF 2020 ENDWHILE 2030 IF P>LEN(LIN$) THEN 2040 FOUND=TRUE 2050 P=LEN(LIN$)+1 2060 ELSE 2070 IF P<66 THEN P=P+1 2080 IF LIN$(P)<>" " THEN 2090 REPEAT 2100 P=P-1 2110 IF LIN$(P)=" " THEN FOUND=TRUE 2120 UNTIL FOUND=TRUE OR P=1 2130 ELSE 2140 FOUND=TRUE 2150 ENDIF 2160 ENDIF 2170 IF FOUND THEN 2180 IF P=1 THEN 2190 SPLIT$="" 2200 IF P<LEN(LIN$) THEN LIN$=LIN$(P+1,LEN(LIN$)) 2210 ELSE 2220 SPLIT$=LIN$(1,P-1) 2230 IF P<LEN(LIN$) THEN 2240 LIN$=LIN$(P+1,LEN(LIN$)) 2250 ELSE 2260 LIN$="" 2270 ENDIF 2280 ENDIF 2290 ENDIF 2300 ENDPROC 2310 PROC INSERT 2320 B$="" 2330 IF J1>1 THEN B$=SIDE$(I1,1,J1-1) 2340 B$=B$+LINE$ 2350 IF J1<67 THEN B$=B$+SIDE$(I1,J1,66) 2360 P=67 2370 EXEC FLÆK(B$) 2380 SIDE$(I1)=SPLIT$+BL$ 2390 I1=I1+1 2400 J1=1 2410 LINE$=B$ 2420 WHILE SIDE$(I1,1)<>" " AND LEN(LINE$)>0 AND LEN(SIDE$(I1))>0 2430 B$=SIDE$(I1) 2440 IF LINE$(LEN(LINE$))="-" THEN 2450 LINE$(LEN(LINE$))="" 2460 ELSE 2470 IF LEN(LINE$)<66 THEN LINE$=LINE$+" " 2480 ENDIF 2490 SIDE$(I1,1,LEN(LINE$))=LINE$ 2500 P=67-LEN(LINE$) 2510 EXEC FLÆK(B$) 2520 IF LEN(SPLIT$)>0 THEN SIDE$(I1,LEN(LINE$)+1,66)=SPLIT$+BL$ 2530 LINE$=B$ 2540 I1=I1+1 2550 ENDWHILE 2560 IF LEN(LINE$)>0 THEN 2570 EXEC INDSÆT 2580 ENDIF 2590 ENDPROC 2600 PROC DELETE 2610 J=J+1 2620 IF J>66 THEN 2630 J=1 2640 I=I+1 2650 ENDIF 2660 P=67-J1 2670 IF I=LAST+1 THEN 2680 IF J1>1 THEN 2690 SIDE$(I1,J1,66)=BL$ 2700 ELSE 2710 I1=I1-1 2720 ENDIF 2730 FOR Q=I1+1 TO LAST 2740 SIDE$(Q)=BL$ 2750 NEXT Q 2760 LAST=I1 2770 ELSE 2780 LINE$=SIDE$(I,J,66) 2790 EXEC FLÆK(LINE$) 2800 REPEAT 2810 HYPHEN=0 2820 IF LEN(SPLIT$)>0 THEN 2830 IF SPLIT$(LEN(SPLIT$))="-" THEN 2840 HYPHEN=LEN(SPLIT$)+J1-1+100*I1 2850 SPLIT$(LEN(SPLIT$))="" 2860 ELSE 2870 SPLIT$=SPLIT$+" " 2880 ENDIF 2890 ENDIF 2900 SIDE$(I1,J1,66)=SPLIT$+BL$ 2910 IF J1+LEN(SPLIT$)<66 AND LEN(LINE$)=0 THEN 2920 J1=J1+LEN(SPLIT$) 2930 P=67-J1 2940 IF I<22 THEN 2950 IF SIDE$(I+1,1)<>" " THEN 2960 LINE$=SIDE$(I+1) 2970 I=I+1 2980 EXEC FLÆK(LINE$) 2990 IF LEN(SPLIT$)>0 THEN 3000 SIDE$(I1,J1,66)=SPLIT$+BL$ 3010 IF LEN(LINE$)>0 THEN I=I-1 3020 SPLIT$=LINE$ 3030 LINE$="" 3040 HYPHEN=0 3050 ELSE 3060 SIDE$(I1+1)=LINE$ 3070 LINE$="" 3080 I1=I1+1 3090 ENDIF 3100 ELSE 3110 LINE$="" 3120 SPLIT$="" 3130 ENDIF 3140 ELSE 3150 LINE$="" 3160 SPLIT$="" 3210 ENDIF 3220 ELSE 3230 B$=LINE$ 3240 LINE$=SIDE$(I+1) 3250 SIDE$(I1+1)=B$ 3260 J1=LEN(B$);P=67-J1 3270 EXEC FLÆK(LINE$) 3280 ENDIF 3300 IF HYPHEN>0 THEN SIDE$(HYPHEN DIV 100,HYPHEN MOD 100)="-" 3310 J1=1 3320 J=1 3330 I1=I1+1 3340 I=I+1 3350 IF I>22 THEN I=22 3360 UNTIL (LEN(SPLIT$)=0 AND LEN(LINE$)=0) OR (J=1 AND SIDE$(I,1)=" ") 3370 J=I1 3380 WHILE J<I 3390 EXEC SLET 3400 J=J+1 3410 ENDWHILE 3420 ENDIF 3430 ENDPROC 3440 PROC CHECK1 3450 NR=0 3460 I=1 3470 IF LEN(SV$)>0 AND LEN(SV$)<3 THEN 3480 OKAY=TRUE 3490 ELSE 3500 OKAY=FALSE 3510 ENDIF 3520 WHILE I<=LEN(SV$) 3530 IF SV$(I)<"0" OR SV$(I)>"9" THEN 3540 OKAY=FALSE 3550 I=LEN(SV$)+1 3560 ELSE 3570 NR=NR*10+ORD(SV$(I))-48 3580 I=I+1 3590 ENDIF 3600 ENDWHILE 3610 ENDPROC 3620 PROC CONVERT(NO) 3630 SV$=CHR(NO DIV 10+48)+CHR(NO MOD 10+48) 3640 ENDPROC 3650 PROC CHECK 3660 OKAY=FALSE 3670 CURSOR 20,23 3680 CASE SV$ OF 3690 WHEN "T","t" 3700 OKAY=TRUE 3710 PRINT "Tilføjelse" 3720 WHEN "TL","tl","Tl","tL" 3730 OKAY=TRUE 3740 PRINT "Tilføj linie" 3750 WHEN "s","S" 3760 OKAY=TRUE 3770 PRINT "Sletning" 3780 WHEN "SL","sl","Sl","sL" 3790 OKAY=TRUE 3800 PRINT "Slet linie" 3810 WHEN "R","r" 3820 OKAY=TRUE 3830 PRINT "Retning" 3840 WHEN "e","E" 3850 OKAY=TRUE 3860 PRINT "Editering" 3870 ENDCASE 3880 ENDPROC 3890 PROC UDBREV 3900 FOR I=1 TO LAST 3910 PUT UDFIL$:SIDE$(I) 3920 NEXT I 3940 ENDPROC 3950 REPEAT 3960 CURSOR 1,23 3970 INPUT "FLERE MODULER (J/N) ",SV1$ 3980 IF SV1$="J" OR SV1$="j" THEN 3990 EXEC INDMODUL 4000 EXEC TILPAS 4010 EXEC UDBREV 4020 ENDIF 4030 UNTIL SV1$<>"J" AND SV1$<>"j" 4040 ENDFILE UDFIL$ 4050 CLOSE UDFIL$ 4060 REPEAT 4070 CLEAR 4080 PRINT "BREVET ØNSKES UDSKREVET" 4090 PRINT "Som det er: 1" 4100 PRINT "Til en enkelt kunde: 2" 4110 PRINT "Til en række kunder: 3" 4120 PRINT "Til en kundegruppe : 4" 4130 REPEAT 4140 INPUT "(1/2/3/4) 0 FOR STOP ",SV$ 4150 EXEC CHECK1 4160 UNTIL NR=>0 AND NR<=4 AND OKAY=TRUE 4170 CASE NR OF 4180 WHEN 1 4190 EXEC WRITE 4200 WHEN 2 4210 WHEN 3 4220 WHEN 4 4230 ENDCASE 4240 UNTIL NR=0 4250 PROC WRITE 4260 OUTPUT P 4270 OPEN UDFIL$,R 4280 GET UDFIL$:SYM$ 4290 LINES=0 4300 WHILE STATUS(UDFIL$)=0 4310 LINES=LINES+1 4320 IF LINES=43 THEN 4330 FOR LINES=1 TO 6 4340 PRINT " " 4350 NEXT LINES 4360 LINES=1 4370 ENDIF 4380 PRINT TAB(7);SYM$ 4390 GET UDFIL$:SYM$ 4400 ENDWHILE 4410 CLOSE UDFIL$ 4420 OUTPUT T 4430 ENDPROC