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

⟦f84e41ef4⟧ SPC/1-COMAL-BIN

    Length: 10301 (0x283d)
    Types: SPC/1-COMAL-BIN
    Notes: Mikados_B
    Names: »AKKRVEDL.B«

Derivation

└─⟦385f097a1⟧ Bits:30008988 SPC/1 COMAL programmer til bogføring
    └─⟦this⟧ »AKKRVEDL.B« 
└─⟦ff7f7aeee⟧ Bits:30009007 NBT	15/3-84
    └─⟦this⟧ »AKKRVEDL.B« 

SPC/1 COMAL-BIN

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

Full view