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