DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦abd428a3d⟧ TextFile

    Length: 12640 (0x3160)
    Types: TextFile
    Notes: Mikados_K
    Names: »AKKRVEDL.K«

Derivation

└─⟦385f097a1⟧ Bits:30008988 SPC/1 COMAL programmer til bogføring
    └─⟦this⟧ »AKKRVEDL.K« 

Mikados K File

0010DIM POST4$(34),FIL7$(20),AKKTIM(10),AKKS$(10,16),B3$(12),DAD$(6) 
0100DIM AKK$(49),NR$(606),Å(100),M(30),FIL8$(20),FIL9$(20),AKKNR$(6) 
0105DIM RES$(15),OP1$(12),OP2$(12),RESUL$(12),TAH$(12),RESUL1$(12) 
0110PROC CALC(AR3,B1,B2,ES) 
0115RES$=ES$;OP1$=B1$;OP2$=B2$;SI=B;FLAG=B;ART=AR3-6*(AR3>5) 
0120CALL "P641210:REGN" 
0125IF AR3<6 THEN  
0130IF FLAG THEN STOP  
0135ENDIF  
0140ES$=RES$ 
0145ENDPROC  
0150PROC CONV(NR2,OK22,CIF) 
0155OK2=ABS(OK22) 
0160NR2$="" 
0165REPEAT  
0170NR2$=CHR((OK2 MOD 10)+48)+NR2$ 
0175CIF=CIF-E 
0180OK2=OK2 DIV 10 
0185IF CIF<B AND OK2=B THEN CIF=B 
0190UNTIL CIF=B 
0193IF OK22<B THEN NR2$="-"+NR2$ 
0195ENDPROC  
0200PROC INDAKK 
0205L=E;U=MAX 
0210IF U>B THEN  
0215REPEAT  
0220PEG=(L+U) DIV G 
0225IF AKKNR$>NR$((PEG-E)*6+E:6) THEN  
0230L=PEG+E 
0235ELSE  
0240U=PEG-E 
0245ENDIF  
0250UNTIL L>U OR AKKNR$=NR$((PEG-E)*6+E:6) 
0255ENDIF  
0260L=U+E 
0265IF NR$((L-E)*6+E:6)=AKKNR$ THEN  
0270FOUND=E 
0275PEG=Å(L) 
0280GET FIL8$,PEG:AKK$(E,27),TTIMER,RTIMER 
0285GET FIL8$,PEG+E:AKK$(28,49),M(E),M(G),M(V) 
0290GET FIL8$,PEG+G:M(4),M(5),M(6),M(7),M(8),M(W),M(10),M(11),M(12) 
0295GET FIL8$,PEG+V:M(13),M(14),M(15),M(16),M(17),M(18),M(19),M(20),M(21) 
0300GET FIL8$,PEG+4:M(22),M(23),M(24),M(25),M(26),M(27),M(28),M(29),M(30) 
0305EXEC FEJL(B,PEG,FIL8$) 
0310IF AKK$(E,6)<>AKKNR$ THEN FOUND=-E 
0315ELSE  
0320FOUND=B 
0325ENDIF  
0330ENDPROC  
0335PROC UDAKK 
0340PUT FIL8$,PEG:AKK$(E,27),TTIMER,RTIMER 
0345PUT FIL8$,PEG+E:AKK$(28,49),M(E),M(G),M(V) 
0350PUT FIL8$,PEG+G:M(4),M(5),M(6),M(7),M(8),M(W),M(10),M(11),M(12) 
0355PUT FIL8$,PEG+V:M(13),M(14),M(15),M(16),M(17),M(18),M(19),M(20),M(21) 
0360PUT FIL8$,PEG+4:M(22),M(23),M(24),M(25),M(26),M(27),M(28),M(29),M(30) 
0365EXEC FEJL(E,PEG,FIL8$) 
0370ENDPROC  
0375PROC INDTABEL 
0380FIL9$="P641220:AKKTABEL" 
0385OPEN FIL9$,R 
0390EXEC FEJL(B,B,FIL9$) 
0395FOR I=E TO 10 
0400GET FIL9$:NR$((I-E)*60+E:60) 
0405NEXT I 
0410GET FIL9$:Å(E),Å(G),Å(V),Å(4),Å(5),Å(6),Å(7),Å(8),Å(W),Å(10) 
0415GET FIL9$:Å(11),Å(12),Å(13),Å(14),Å(15),Å(16),Å(17),Å(18),Å(19),Å(20) 
0420GET FIL9$:Å(21),Å(22),Å(23),Å(24),Å(25),Å(26),Å(27),Å(28),Å(29),Å(30) 
0425GET FIL9$:Å(31),Å(32),Å(33),Å(34),Å(35),Å(36),Å(37),Å(38),Å(39),Å(40) 
0430GET FIL9$:Å(41),Å(42),Å(43),Å(44),Å(45),Å(46),Å(47),Å(48),Å(49),Å(50) 
0435GET FIL9$:Å(51),Å(52),Å(53),Å(54),Å(55),Å(56),Å(57),Å(58),Å(59),Å(60) 
0440GET FIL9$:Å(61),Å(62),Å(63),Å(64),Å(65),Å(66),Å(67),Å(68),Å(69),Å(70) 
0445GET FIL9$:Å(71),Å(72),Å(73),Å(74),Å(75),Å(76),Å(77),Å(78),Å(79),Å(80) 
0450GET FIL9$:Å(81),Å(82),Å(83),Å(84),Å(85),Å(86),Å(87),Å(88),Å(89),Å(90) 
0455GET FIL9$:Å(91),Å(92),Å(93),Å(94),Å(95),Å(96),Å(97),Å(98),Å(99),Å(100) 
0460EXEC FEJL(E,B,FIL9$) 
0465FOR I=B TO 99 
0470IF NR$(I*6+E:6)="      " THEN  
0475MAX=I;I=100 
0480ENDIF  
0485NEXT I 
0490CLOSE FIL9$ 
0495ENDPROC  
0500PROC INDREGNS(N) 
0510J=10*(N-E) 
0520FOR I=E TO 10 
0530GET FIL7$,J+I:AKKTIM(I),AKKS$(I) 
0540NEXT I 
0550EXEC FEJL(N,J,FIL7$) 
0560ENDPROC  
0600PROC UDREGNS(N) 
0610J=10*(N-E) 
0620FOR I=E TO 10 
0630PUT FIL7$,J+I:AKKTIM(I),AKKS$(I) 
0640NEXT I 
0650EXEC FEJL(-N,J,FIL7$) 
0660ENDPROC  
0850PROC INLØNMOD(N) 
0865GET FIL$,G*N-E:POST1$ 
0880GET FIL$,G*N:POST2$,C1,C2,LT,LF,LR,LA,RPI,K1,K2,FG,FD 
0895EXEC FEJL(E,N,FIL$) 
0910ENDPROC  
0915B3$="          0+" 
0916TI=10;EL=11 
0920PROC Æ(I1,I2) 
0930I1$=B3$ 
0940IF I2<>B THEN  
0950I1$(W,TI)=",0";I0=ABS(I2);K0=INT((I0-INT(I0))*100+0.50001) 
0960IF I2<B THEN I1$(12)="-" 
0970FOR I=EL TO E STEP -E 
0980IF I<>W THEN  
0990I1$(I)=CHR(K0 MOD TI+48) 
1000K0=K0 DIV TI 
1010IF K0=B AND I<TI THEN I=B 
1020ELSE  
1030K0=INT(I0) 
1040ENDIF  
1050NEXT I 
1060ENDIF  
1070ENDPROC  
1150PROC CHECK(NR1,OK1) 
1165OK1=B 
1180RESULT=B 
1195IF LEN(NR1$)>B THEN  
1210IF NR1$(E)="-" THEN  
1225FORTEGN=-E 
1240OK1=E 
1255ELSE  
1270FORTEGN=E 
1285ENDIF  
1300WHILE LEN(NR1$)>OK1 
1315OK1=OK1+E 
1330IF NR1$(OK1)<"0" OR NR1$(OK1)>"9" THEN  
1345FORTEGN=B 
1360OK1=LEN(NR1$) 
1375ENDIF  
1390RESULT=RESULT*10+ORD(NR1$(OK1))-48 
1405ENDWHILE  
1420OK1=OK1*FORTEGN 
1435IF OK1<B THEN OK1=OK1+E 
1450ENDIF  
1465ENDPROC  
1480PROC INOPL(OPL) 
1510CASE OPL OF  
1525WHEN E 
1530EXEC INLINE(OPL) 
1540LMNR=RESULT 
1555WHEN G 
1570POST1$(E,25)=LINE$ 
1585WHEN V,4,5,6,7,8,W,10,11,12 
1600REPEAT  
1610LINE$=AKKS$(OPL-G,11,16) 
1620CURSOR E,OPL+V 
1630PRINT USING "### ":OPL 
1640CURSOR 11,OPL+V 
1650EDIT "",LINE$ 
1660OK=B 
1670IF LEN(LINE$)>B AND LEN(LINE$)<=6 THEN  
1680OK=E 
1690FOR I=LEN(LINE$)+E TO 6 
1700LINE$=LINE$+" " 
1705IF LINE$="0     " THEN LINE$="      " 
1710NEXT I 
1720AKKNR$=LINE$ 
1730IF AKKNR$<>"      " THEN  
1740EXEC INDAKK 
1750OK=FOUND 
1760ENDIF  
1770ENDIF  
1780UNTIL OK<>B 
1790IF OK<>E THEN STOP  
1800IF AKKS$(OPL-G,11,16)<>"      " THEN  
1810IF AKKNR$<>AKKS$(OPL-G,11,16) THEN  
1820AKKNR$=AKKS$(OPL-G,11,16) 
1830EXEC INDAKK 
1840IF FOUND<>E THEN STOP  
1850FOR I=E TO 30 
1860IF ABS(M(I))=LMNR THEN FOUND=B 
1870IF FOUND=B AND I<30 THEN M(I)=M(I+E) 
1880NEXT I 
1890IF FOUND=B THEN  
1900M(30)=B 
1910TTIMER=TTIMER-ABS(AKKTIM(OPL-G)) 
1920RESUL$=AKK$(28,38) 
1930RESUL1$=AKKS$(OPL-G,E,10) 
1940EXEC CALC(E,RESUL$,RESUL1$,RESUL$) 
1950AKK$(28,38)=RESUL$(G:11) 
1960ELSE  
1970STOP  
1980ENDIF  
1990EXEC UDAKK 
2000AKKNR$=LINE$ 
2010IF AKKNR$<>"      " THEN EXEC INDAKK 
2020ELSE  
2030TTIMER=TTIMER-ABS(AKKTIM(OPL-G)) 
2040RESUL$=AKK$(28,38) 
2050RESUL1$=AKKS$(OPL-G,E,10) 
2060EXEC CALC(E,RESUL$,RESUL1$,RESUL$) 
2070AKK$(28,38)=RESUL$(G:11) 
2080ENDIF  
2090ENDIF  
2100IF AKKNR$<>"      " THEN  
2110IF AKKNR$<>AKKS$(OPL-G,11,16) THEN  
2120FOR I=E TO 30 
2130IF ABS(M(I))=LMNR THEN  
2140I=100 
2150ELSE  
2160IF M(I)=B THEN M(I)=LMNR;I=I+30 
2170ENDIF  
2180NEXT I 
2185CURSOR E,22 
2190IF I>100 THEN INPUT "Findes allerede på akkord, RETURN ",LINE$ 
2200IF I<32 THEN INPUT "Ikke plads til flere på akkord, RETURN ",LINE$ 
2210ELSE  
2220FOR I=E TO 30 
2230IF ABS(M(I))=LMNR THEN M(I)=LMNR;I=I+30 
2240NEXT I 
2250IF I<32 THEN STOP  
2260ENDIF  
2270I=I-31 
2280IF I>B AND I<31 THEN  
2290REPEAT  
2300LINE$=AKKS$(OPL-G,E,10) 
2305IF LINE$(10)="+" THEN LINE$(10)=" " 
2310CURSOR 22,OPL+V 
2320EDIT "",LINE$ 
2330LINE$=LINE$+"+" 
2340EXEC CALC(6,LINE$,TAH$,RESUL$) 
2350UNTIL FLAG=B 
2360AKKS$(OPL-G,E,10)=RESUL$(V:10) 
2370RESUL1$=AKK$(28,38) 
2380EXEC CALC(B,RESUL$,RESUL1$,RESUL1$) 
2390AKK$(28,38)=RESUL1$(G:11) 
2400TIM=AKKTIM(OPL-G) 
2410CURSOR 37,OPL+V 
2420EDIT "",TIM 
2430AKKTIM(OPL-G)=TIM 
2440TTIMER=TTIMER+ABS(TIM) 
2450IF TIM<B THEN M(I)=-M(I) 
2460AKKS$(OPL-G,11,16)=AKKNR$ 
2470EXEC UDAKK 
2480ELSE  
2490AKKNR$="      " 
2500ENDIF  
2510ENDIF  
2520IF AKKNR$="      " THEN  
2530AKKTIM(OPL-G)=B 
2540AKKS$(OPL-G)="                " 
2550ENDIF  
2950ENDCASE  
2965ENDPROC  
2980PROC SKRIVOPL 
2995IF OUTP=B THEN CLEAR  
3000PRINT "A K K O R D R E G N S K A B E R";TAB(60);"Dato ";DAD$ 
3010FOR J=E TO A 
3025CASE J OF  
3040WHEN E 
3055EXEC CONV(LINE$,LMNR,0) 
3070WHEN G 
3085LINE$=POST1$(E,25) 
3100WHEN V,4,5,6,7,8,W,10,11,12 
3115EXEC Æ(RESUL$,AKKTIM(J-2)) 
3120IF RESUL$(12)="+" THEN RESUL$(12)=" " 
3125LINE$="     "+AKKS$(J-G,11,16)+"     "+AKKS$(J-G,E,10)+"  "+RESUL$ 
3135IF LINE$(26)="+" THEN LINE$(26)=" " 
3730ENDCASE  
3732IF J=V THEN  
3734PRINT  
3736PRINT  
3738PRINT "          AKKORD      UDBETALT         TIMER" 
3740ENDIF  
3745IF OUTP=B THEN  
3760EXEC OUTLINE(J) 
3775ELSE  
3790EXEC OUTPLINE(J) 
3805ENDIF  
3820NEXT J 
3835ENDPROC  
3850PROC OUTLINE(N) 
3865CURSOR X(N),Y(N) 
3880PRINT USING "### ":N; 
3895PRINT PICT$(N);":";LINE$ 
3910ENDPROC  
3925PROC INDVIRK 
3940OPEN FIL$,W 
3955EXEC FEJL(B,B,FIL$) 
3985GET FIL$,G:POST4$,SLJNR,MLMNR,ATPLM 
3990GET FIL$,V:DAD$ 
4000ENDPROC  
4015PROC FEJL(P1,P2,P3) 
4030IF STATUS(P3$)<>B THEN  
4045OUTPUT T 
4060PRINT "FIL-FEJL ";P3$;STATUS(P3$),P1;P2 
4075STOP  
4090ENDIF  
4105ENDPROC  
4120PROC INLINE(N) 
4135REPEAT  
4150CURSOR X(N)+5+LEN(PICT$(N)),Y(N) 
4165PRINT BL$(E:ABS(TYPE(N))+V) 
4180CURSOR X(N),Y(N) 
4195PRINT USING "### ":N; 
4210PRINT PICT$(N);":"; 
4225INPUT "",LINE$ 
4240IF TYPE(N)<B THEN  
4255IF LEN(LINE$)<=ABS(TYPE(N)) THEN  
4270OK=E 
4285FOR I=LEN(LINE$)+E TO ABS(TYPE(N)) 
4300LINE$(I)=" " 
4315NEXT I 
4330ELSE  
4345OK=B 
4360ENDIF  
4375ELSE  
4390EXEC CHECK(LINE$,OK) 
4405IF TYPE(N)>B AND TYPE(N)<>OK THEN OK=B 
4420ENDIF  
4435UNTIL OK<>B 
4450ENDPROC  
4585PROC OUTPLINE(N) 
4600PRINT TAB(X(N)); 
4615PRINT USING "### ":N; 
4630PRINT PICT$(N);":";LINE$; 
4632IF N=12 THEN  
4634PRINT  
4636ELSE  
4638IF Y(N)<Y(N+E) THEN PRINT  
4640ENDIF  
4645ENDPROC  
4660A=12 
4675DIM X(A),Y(A),PICT$(A,20),TYPE(A) 
4690DIM POST1$(71),POST2$(27) 
4705DIM BL$(79),LINE$(50),FIL$(20) 
4720FOR I=E TO 79 
4735BL$=BL$+" " 
4750NEXT I 
4765FIL$="P641220:VIRKKART" 
4780X(E)=E 
4795X(G)=30 
4810X(V)=E 
4825X(4)=E 
4840X(5)=E 
4855X(6)=E 
4870X(7)=E 
4885X(8)=E 
4900X(W)=E 
4915X(10)=E 
4930X(11)=E 
4945X(12)=E 
5095Y(E)=G 
5110Y(G)=G 
5125Y(V)=6 
5140Y(4)=7 
5155Y(5)=8 
5170Y(6)=W 
5185Y(7)=10 
5200Y(8)=11 
5215Y(W)=12 
5230Y(10)=13 
5245Y(11)=14 
5260Y(12)=15 
5410TYPE(E)=B 
5425TYPE(G)=-25 
5440FOR I=V TO 12 
5450TYPE(I)=-6 
5455PICT$(I)="" 
5460NEXT I 
5725PICT$(E)="Lønnr" 
5740PICT$(G)="Navn" 
6040EXEC INDVIRK 
6055CLOSE FIL$ 
6070FIL$="P641220:LØNMODRG" 
6085OPEN FIL$,R 
6100EXEC FEJL(B,B,FIL$) 
6102FIL8$="P641220:AKKHOVED" 
6104OPEN FIL8$,W 
6106EXEC FEJL(B,B,FIL8$) 
6108EXEC INDTABEL 
6110FIL7$="P641220:AKKREGNS" 
6112OPEN FIL7$,W 
6114EXEC FEJL(B,B,FIL7$) 
6130OUTP=B 
6145TAH$="          0+" 
6250REPEAT  
6265SV=G 
6280CLEAR  
6295CURSOR 10,10 
6310PRINT "A K K O R D R E G N S K A B S - K A R T O T E K" 
6325PRINT  
6340PRINT TAB(10);"0 Færdig" 
6355PRINT TAB(10);"1 Ændring" 
6370PRINT TAB(10);"2 Udskrift på skærm" 
6385PRINT TAB(10);"3 Udskrift på printer" 
6430PRINT  
6445REPEAT  
6460CURSOR E,19 
6475EDIT "          ",SV 
6490UNTIL SV=>B AND SV<=V 
6505IF SV>B THEN  
6520REPEAT  
6535EXEC INOPL(1) 
6550UNTIL LMNR=>B AND LMNR<=MLMNR 
6551LISTE=B 
6552IF LMNR=B THEN LISTE=E 
6553REPEAT  
6554IF LISTE=E THEN LMNR=LMNR+E 
6565EXEC INLØNMOD(LMNR) 
6570IF LA<>B THEN EXEC INDREGNS(LMNR) 
6580CASE SV OF  
6595WHEN E 
6610IF LA<>B THEN  
6625EXEC SKRIVOPL 
6640REPEAT  
6655REPEAT  
6670SV1=B 
6685CURSOR E,23 
6700EDIT "Feltnr ",SV1 
6715UNTIL SV1>G AND SV1<13 OR SV1=B 
6730IF SV1>B THEN  
6745EXEC INOPL(SV1) 
6750EXEC SKRIVOPL 
6760ENDIF  
6775UNTIL SV1=B 
6790EXEC UDREGNS(LMNR) 
6805ELSE  
6820PRINT "Lønmodtager findes ikke" 
6835INPUT "RETURN",LINE$ 
6850ENDIF  
6865WHEN G 
6880IF LA<>B THEN  
6895OUTP=B 
6910EXEC SKRIVOPL 
6925INPUT "RETURN",LINE$ 
6940ELSE  
6955PRINT "Lønmodtager findes ikke" 
6970INPUT "RETURN",LINE$ 
6985ENDIF  
7000WHEN V 
7015IF LA<>B OR LISTE=E THEN  
7016IF LA<>B THEN  
7030OUTPUT P 
7045OUTP=E 
7050PRINT  
7051PRINT  
7060EXEC SKRIVOPL 
7062FOR I=17 TO 72 
7064PRINT  
7066NEXT I 
7075OUTP=B 
7090OUTPUT T 
7095ENDIF  
7105ELSE  
7120PRINT "Lønmodtager findes ikke" 
7135INPUT "RETURN",LINE$ 
7150ENDIF  
8005ENDCASE  
8006UNTIL LISTE=B OR LMNR=>MLMNR 
8010ENDIF  
8020UNTIL SV=B 
8035CLOSE  
8065CHAIN "P641210:STARTB" 

Full view