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

⟦8da69bcb5⟧ SPC/1-COMAL-BIN

    Length: 7181 (0x1c0d)
    Types: SPC/1-COMAL-BIN
    Notes: Mikados_B
    Names: »TV2.B«

Derivation

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

SPC/1 COMAL-BIN

0100 DIM RES$(15),OP1$(12),OP2$(12),TAH$(12),BLB3$(15),DAD$(6)
0110 DIM RESUL$(12),RESUL1$(12),TVN(45),TV$(45,11),POST5$(55),PR$(14)
0120 DIM FIL$(20),FIL2$(20),POST1$(71),POST2$(27),POST3$(55),POST4$(34)
0130 TAH$="          0+"
0140 PROC TUD(BLB4,UBLB2,TEGN2,STØR2)
0150 BLB3$=BLB4$
0160 EXEC CALC(5,BLB3$,TAH$,UBLB2$)
0170 IF TEGN2=B THEN UBLB2$=UBLB2$(E:13)
0180 IF TEGN2=E AND UBLB2$(LEN(UBLB2$))="+" THEN UBLB2$(LEN(UBLB2$))=" "
0190 IF STØR2=E THEN UBLB2$=UBLB2$(4:LEN(UBLB2$)-V)
0200 ENDPROC
0210 PROC CALC(AR3,B1,B2,ES)
0220 RES$=ES$;OP1$=B1$;OP2$=B2$;SI=B;FLAG=B;ART=AR3-6*(AR3>5)
0230 CALL "P641210:REGN"
0240 IF AR3<6 THEN
0250 IF FLAG THEN STOP
0260 ENDIF
0270 ES$=RES$
0280 ENDPROC
0290 FIL$="P641220:VIRKKART"
0300 EXEC INDVIRK
0310 CLOSE FIL$
0320 FIL$="P641220:LØNMODRG"
0330 FIL2$="P641220:TÆLLEREG"
0340 OPEN FIL$,R
0350 EXEC FEJL(B,B,FIL$)
0360 OPEN FIL2$,W
0370 EXEC FEJL(B,B,FIL2$)
0380 PROC UDTÆL(N)
0390 J=W*(N-E)
0400 FOR K=4 TO 6
0410 FOR I=E TO 5
0420 POST5$((I-E)*11+E:11)=TV$((K-E)*5+I)
0430 NEXT I
0440 PUT FIL2$,J+K:POST5$
0450 NEXT K
0460 EXEC FEJL(-N,-K,FIL2$)
0470 ENDPROC
0480 TVN(E)=E
0490 TVN(G)=G
0500 TVN(V)=V
0510 TVN(4)=4
0520 TVN(5)=5
0530 TVN(6)=7
0540 TVN(7)=8
0550 TVN(8)=W
0560 TVN(W)=10
0570 TVN(10)=11
0580 TVN(11)=12
0590 TVN(12)=13
0600 TVN(13)=14
0610 TVN(14)=15
0620 TVN(15)=16
0630 TVN(16)=112
0640 TVN(17)=113
0650 TVN(18)=313
0660 TVN(19)=413
0670 TVN(20)=115
0680 TVN(21)=315
0690 TVN(22)=415
0700 TVN(23)=116
0710 TVN(24)=316
0720 TVN(25)=416
0730 TVN(26)=117
0740 TVN(27)=317
0750 TVN(28)=417
0760 TVN(29)=123
0770 TVN(30)=206
0780 TVN(31)=212
0790 TVN(32)=214
0800 TVN(33)=218
0810 TVN(34)=219
0820 TVN(35)=319
0830 TVN(36)=419
0840 TVN(37)=220
0850 TVN(38)=320
0860 TVN(39)=420
0870 TVN(40)=221
0880 TVN(41)=321
0890 TVN(42)=421
0900 TVN(43)=222
0910 TVN(44)=223
0920 TVN(45)=224
0930 PROC CONV(NR2,OK22,CIF)
0940 OK2=OK22
0950 NR2$=""
0960 REPEAT
0970 NR2$=CHR((OK2 MOD 10)+48)+NR2$
0980 CIF=CIF-E
0990 OK2=OK2 DIV 10
1000 IF CIF<B AND OK2=B THEN CIF=B
1010 UNTIL CIF=B
1020 ENDPROC
1030 PROC CHECK(NR1,OK1)
1040 OK1=B
1050 RESULT=B
1060 IF LEN(NR1$)>B THEN
1070 IF NR1$(E)="-" THEN
1080 FORTEGN=-E
1090 OK1=E
1100 ELSE
1110 FORTEGN=E
1120 ENDIF
1130 WHILE LEN(NR1$)>OK1
1140 OK1=OK1+E
1150 IF NR1$(OK1)<"0" OR NR1$(OK1)>"9" THEN
1160 FORTEGN=B
1170 OK1=LEN(NR1$)
1180 ENDIF
1190 RESULT=RESULT*10+ORD(NR1$(OK1))-48
1200 ENDWHILE
1210 OK1=OK1*FORTEGN
1220 IF OK1<B THEN OK1=OK1+E
1230 ENDIF
1240 ENDPROC
1250 PROC INOPL(OPL)
1260 EXEC INLINE(OPL)
1270 CASE OPL OF
1280 WHEN E
1290 LMNR=RESULT
1300 WHEN V,4,5,6,7,8
1310 REPEAT
1320 LINE$=LINE$+"+"
1330 EXEC CALC(6,LINE$,TAH$,RESUL$)
1340 IF FLAG<>B THEN EXEC INLINE(OPL)
1350 UNTIL FLAG=B
1355 EXEC CALC(B,LINE$,TAH$,RESUL$)
1360 CASE OPL OF
1362 WHEN V,8
1364 IF OPL=V THEN
1366 T=16
1368 ELSE
1370 T=29
1372 ENDIF
1374 WHEN 4,5,6,7
1376 T=OPL*V+5
1378 PR$=TV$(T)
1380 LINE$=TV$(T+E)
1382 EXEC CALC(B,PR$,LINE$,RESUL1$)
1384 TV$(T+E)=RESUL1$(G:11)
1386 LINE$=TV$(T+G)
1388 EXEC CALC(B,RESUL$,LINE$,RESUL1$)
1390 TV$(T+G)=RESUL1$(G:11)
1392 ENDCASE
1410 TV$(T)=RESUL$(G:11)
1430 ENDCASE
1440 ENDPROC
1450 PROC SKRIVOPL
1460 IF OUTP=B THEN CLEAR
1470 PRINT "L Ø N M O D T A G E R K A R T O T E K - T Æ L L E V Æ R K E R"
1480 PRINT "F E R I E - O G   S H - O P G Ø R E L S E";TAB(60);"Dato ";DAD$
1490 FOR J=E TO A
1500 CASE J OF
1510 WHEN E
1520 EXEC CONV(LINE$,LMNR,0)
1530 WHEN G
1540 LINE$=POST1$(E,25)
1550 WHEN V,4,5,6,7,8
1560 IF J=V THEN
1570 T=16
1580 ELSE
1590 T=J*V+5
1600 ENDIF
1610 RESUL$=TV$(T)
1620 EXEC TUD(RESUL$,PR$,E,B)
1630 LINE$=PR$
1700 ENDCASE
1710 IF OUTP=B THEN
1720 EXEC OUTLINE(J)
1730 ELSE
1740 EXEC OUTPLINE(J)
1750 ENDIF
1760 NEXT J
1770 ENDPROC
1780 PROC OUTLINE(N)
1790 CURSOR X(N),Y(N)
1800 PRINT USING "### ":N;
1810 IF N=G THEN
1820 PRINT PICT$(N);":";LINE$
1830 PRINT TAB(6);"TV TEKST";TAB(38);"INDHOLD"
1840 ELSE
1850 IF N>G THEN
1860 IF N=V THEN
1870 T=16
1880 ELSE
1890 T=N*V+5
1900 ENDIF
1910 EXEC CONV(RESUL$,TVN(T),3)
1920 PRINT RESUL$;" ";PICT$(N);":";TAB(32);LINE$
1930 ELSE
1940 PRINT PICT$(N);": ";LINE$
1945 ENDIF
1950 ENDIF
1960 ENDPROC
1970 PROC FEJL(P1,P2,P3)
1980 IF STATUS(P3$)<>B THEN
1990 OUTPUT T
2000 PRINT "FIL-FEJL ";P3$;STATUS(P3$),P1;P2
2010 STOP
2020 ENDIF
2030 ENDPROC
2040 PROC INLINE(N)
2050 REPEAT
2060 CURSOR 32,Y(N)
2070 PRINT BL$(E:ABS(TYPE(N))+6)
2080 CURSOR X(N),Y(N)
2090 PRINT USING "### ":N;
2100 IF N>G THEN
2110 IF N=V THEN
2120 T=16
2130 ELSE
2140 T=N*V+5
2150 ENDIF
2160 EXEC CONV(RESUL$,TVN(T),3)
2170 PRINT RESUL$;" ";PICT$(N);":";
2175 CURSOR 32,Y(N)
2180 ELSE
2190 PRINT PICT$(N);": ";
2200 ENDIF
2210 INPUT "",LINE$
2220 IF TYPE(N)<B THEN
2230 IF LEN(LINE$)<=ABS(TYPE(N)) THEN
2240 OK=E
2250 ELSE
2260 OK=B
2270 ENDIF
2280 ELSE
2290 EXEC CHECK(LINE$,OK)
2300 IF TYPE(N)>B AND TYPE(N)<>OK THEN OK=B
2310 ENDIF
2320 UNTIL OK<>B
2330 ENDPROC
2340 PROC OUTPLINE(N)
2350 PRINT TAB(X(N));
2360 PRINT USING "### ":N;
2370 IF N=G THEN
2380 PRINT PICT$(N);":";LINE$
2390 PRINT TAB(6);"TV TEKST";TAB(38);"INDHOLD"
2400 ELSE
2410 IF N>G THEN
2420 IF N=V THEN
2430 T=16
2440 ELSE
2450 T=N*V+5
2460 ENDIF
2470 EXEC CONV(RESUL$,TVN(T),3)
2480 PRINT RESUL$;" ";PICT$(N);":";TAB(32);LINE$
2490 ELSE
2500 PRINT PICT$(N);": ";LINE$;
2505 ENDIF
2510 ENDIF
2520 ENDPROC
2530 A=8
2540 DIM X(A),Y(A),PICT$(A,20),TYPE(A)
2550 DIM BL$(79),LINE$(30)
2560 FOR I=E TO 79
2570 BL$=BL$+" "
2580 NEXT I
2590 X(E)=E
2600 X(G)=36
2610 FOR I=V TO A
2620 X(I)=E
2630 Y(I)=I+G
2640 TYPE(I)=-11
2650 NEXT I
2660 Y(E)=V
2670 Y(G)=V
2680 TYPE(E)=B
2690 TYPE(G)=B
2700 PICT$(E)="Lønnr"
2710 PICT$(G)="Navn"
2760 PICT$(7)="SH-forskud"
2770 PICT$(8)="Feriedage"
2830 PICT$(V)="Ferieberett løn"
2840 PICT$(4)="Sygeferiepenge"
2860 PICT$(5)="Beregnede feriep"
2870 PICT$(6)="SH-opsparing"
2880 OUTP=B
2890 PROC INDTÆL(N)
2900 J=W*(N-E)
2910 FOR K=4 TO 6
2920 GET FIL2$,J+K:POST5$
2930 FOR I=E TO 5
2940 TV$((K-E)*5+I)=POST5$((I-E)*11+E:11)
2950 NEXT I
2960 NEXT K
2970 EXEC FEJL(N,K,FIL2$)
2980 ENDPROC
2990 PROC INLØNMOD(N)
3000 GET FIL$,G*N-E:POST1$
3010 GET FIL$,G*N:POST2$,C1,C2,LT,LF,LR,LA,RPI,K1,K2,FG,FD
3020 EXEC FEJL(E,N,FIL$)
3030 ENDPROC
3040 PROC INDVIRK
3050 OPEN FIL$,W
3060 EXEC FEJL(B,B,FIL$)
3070 GET FIL$,E:POST3$
3080 GET FIL$,G:POST4$,SLJNR,MLMNR,ATPLM
3085 GET FIL$,V:DAD$
3090 ENDPROC
3100 REPEAT
3110 SV=G
3120 CLEAR
3130 CURSOR 10,10
3140 PRINT "L Ø N M O D T A G E R K A R T O T E K - T Æ L L E V Æ R K E R"
3150 PRINT "         F E R I E - O G   S H - O P G Ø R E L S E"
3160 PRINT
3170 PRINT TAB(10);"0 Færdig"
3180 PRINT TAB(10);"1 Ændring"
3190 PRINT TAB(10);"2 Udskrift på skærm"
3200 PRINT TAB(10);"3 Udskrift på printer"
3210 PRINT
3220 REPEAT
3230 CURSOR E,18
3240 EDIT "          ",SV
3250 UNTIL SV=>B AND SV<=V
3260 IF SV>B THEN
3270 REPEAT
3280 EXEC INOPL(1)
3290 UNTIL LMNR=>B AND LMNR<=MLMNR
3291 LISTE=B
3292 IF LMNR=B THEN LISTE=E
3295 REPEAT
3296 IF LISTE=E THEN LMNR=LMNR+E
3300 EXEC INLØNMOD(LMNR)
3310 CASE SV OF
3320 WHEN E
3330 IF LA<>B THEN
3340 EXEC INDTÆL(LMNR)
3350 EXEC SKRIVOPL
3360 REPEAT
3370 REPEAT
3380 SV1=B
3390 CURSOR E,23
3400 EDIT "Feltnr ",SV1
3410 UNTIL SV1=B OR (SV1>G AND SV1<W)
3420 IF SV1>B THEN
3430 EXEC INOPL(SV1)
3440 ENDIF
3450 UNTIL SV1=B
3460 EXEC UDTÆL(LMNR)
3470 ELSE
3480 PRINT "Lønmodtager findes ikke"
3490 INPUT "RETURN",LINE$
3500 ENDIF
3510 WHEN G
3520 IF LA<>B THEN
3530 OUTP=B
3540 EXEC INDTÆL(LMNR)
3550 EXEC SKRIVOPL
3560 INPUT "RETURN",LINE$
3570 ELSE
3580 PRINT "Lønmodtager findes ikke"
3590 INPUT "RETURN",LINE$
3600 ENDIF
3610 WHEN V
3620 IF LA<>B OR LISTE=E THEN
3625 IF LA<>B THEN
3630 OUTPUT P
3640 OUTP=E
3650 EXEC INDTÆL(LMNR)
3660 EXEC SKRIVOPL
3662 FOR I=11 TO 72
3664 PRINT
3666 NEXT I
3670 OUTP=B
3680 OUTPUT T
3685 ENDIF
3690 ELSE
3700 PRINT "Lønmodtager findes ikke"
3710 INPUT "RETURN",LINE$
3720 ENDIF
3730 ENDCASE
3735 UNTIL LISTE=B OR LMNR=>MLMNR
3740 ENDIF
3750 UNTIL SV=B
3760 CLOSE FIL$
3770 CLOSE FIL2$
3780 CHAIN "P641210:STARTB"

Full view