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

⟦4f9dea86b⟧ TextFile

    Length: 5056 (0x13c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »ÅRSAFSLT.K«

Derivation

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

Mikados K File

0110DIM STARTPER$(8),SLUTPER$(8),LP$(E),ORK$(E) 
0120DIM RES$(15),OP1$(12),OP2$(12),TAH$(12) 
0160DIM MF1$(16) 
0210DIM X(8),Y(8),TYPE(8) 
0220DIM BL$(79),L$(79),LIN$(12) 
0230FOR I=E TO 79 
0240BL$=BL$+" " 
0250NEXT I 
0255TAH$="          0+" 
0260X(E)=27 
0270X(G)=34;X(V)=36 
0290X(4),X(5),X(6),X(7),X(8)=39 
0310Y(E),Y(G)=G;Y(V)=V;Y(4)=4;Y(5)=5;Y(6)=7;Y(7)=8;Y(8)=W 
0340TYPE(E),TYPE(G)=6 
0350TYPE(4),TYPE(7),TYPE(8),TYPE(5),TYPE(6)=-E 
0360TYPE(V)=-4 
0370PROC C(AR3,B1,B2,ES) 
0380RES$=ES$;OP1$=B1$;OP2$=B2$;SI=B;FLAG=B;ART=AR3-6*(AR3>5) 
0390CALL "P641210:REGN" 
0400IF AR3<6 THEN  
0410IF FLAG THEN STOP  
0420ENDIF  
0430ES$=RES$ 
0440ENDPROC  
0650PROC DATOCHECK(NR5,OK5) 
0660OK5=E 
0670ÅR=(ORD(NR5$(E))-48)*10+ORD(NR5$(G))-48 
0680MÅNED=(ORD(NR5$(V))-48)*10+ORD(NR5$(4))-48 
0690DATO=(ORD(NR5$(5))-48)*10+ORD(NR5$(6))-48 
0700IF DATO<E OR MÅNED<E OR MÅNED>12 OR DATO>31 THEN OK5=B 
0710IF OK5=B THEN EXIT  
0720CASE MÅNED OF  
0730WHEN 4,6,W,11 
0740IF DATO>30 THEN OK5=B 
0750WHEN G 
0760IF DATO>29 THEN OK5=B 
0770IF DATO=29 AND ÅR MOD 4<>B THEN OK5=B 
0780ENDCASE  
0790ENDPROC  
1000PROC CHECK(NR1,OK1) 
1010OK1=B 
1020RESULT=B 
1030IF LEN(NR1$)>B THEN  
1040IF NR1$(E)="-" THEN  
1050FORTEGN=-E 
1060OK1=E 
1070ELSE  
1080FORTEGN=E 
1090ENDIF  
1100WHILE LEN(NR1$)>OK1 
1110OK1=OK1+E 
1120IF NR1$(OK1)<"0" OR NR1$(OK1)>"9" THEN  
1130FORTEGN=B 
1140OK1=LEN(NR1$) 
1150ENDIF  
1160RESULT=RESULT*10+ORD(NR1$(OK1))-48 
1170ENDWHILE  
1175RESULT=RESULT*FORTEGN 
1180OK1=OK1*FORTEGN 
1190IF OK1<B THEN OK1=OK1+E 
1200ENDIF  
1210ENDPROC  
1220PROC INOPL(OPL) 
1230EXEC INLINE(OPL) 
1240CASE OPL OF  
1250WHEN E 
1260REPEAT  
1270EXEC DATOCHECK(L$,I) 
1280IF I=B THEN EXEC INLINE(OPL) 
1290UNTIL I=E 
1300EXEC CONVDATE(STARTPER$,RESULT) 
1310WHEN G 
1320REPEAT  
1330EXEC DATOCHECK(L$,I) 
1340IF I=B THEN EXEC INLINE(OPL) 
1350UNTIL I=E 
1360EXEC CONVDATE(SLUTPER$,RESULT) 
1460WHEN V 
1470REPEAT  
1480L$=L$+"+" 
1490EXEC C(6,L$,TAH$,LIN$) 
1500IF FLAG<>B THEN EXEC INLINE(OPL) 
1510UNTIL FLAG=B 
1520EXEC C(0,L$,TAH$,LIN$) 
1530EXEC PERVERT(LIN$,MFD) 
1540WHEN 4 
1550WHILE L$<"1" OR L$>"7" 
1560EXEC INLINE(OPL) 
1570ENDWHILE  
1580LP$=L$ 
1590WHEN 5 
1600WHILE L$<>"A" AND L$<>"F" 
1610EXEC INLINE(OPL) 
1620ENDWHILE  
1630ORK$=L$ 
1640WHEN 7,8,6 
1650WHILE L$<>"J" AND L$<>"N" 
1660EXEC INLINE(OPL) 
1670ENDWHILE  
1680IF L$="J" THEN ORK$="0" 
1870ENDCASE  
1880ENDPROC  
2020PROC INLINE(N) 
2030REPEAT  
2040CURSOR X(N),Y(N) 
2050INPUT "",L$ 
2060IF TYPE(N)<B THEN  
2070IF LEN(L$)<=ABS(TYPE(N)) THEN  
2080OK=E 
2090FOR I=LEN(L$)+E TO ABS(TYPE(N)) 
2100L$(I)=" " 
2110NEXT I 
2120ELSE  
2130OK=B 
2140ENDIF  
2150ELSE  
2160EXEC CHECK(L$,OK) 
2170IF TYPE(N)>B AND TYPE(N)<>OK THEN OK=B 
2180ENDIF  
2190UNTIL OK<>B 
2200ENDPROC  
2210PROC SKRIVPICT 
2220CLEAR  
2230PRINT TAB(15);"Årsafslutning" 
2240PRINT " Lønperioden" 
2260PRINT " Maksimum feriedage i året" 
2270PRINT " Lønperiodekode 1,2,3,4,5,6 eller 7" 
2280PRINT " Arbejdere(A) eller funktionærer(F)" 
2290PRINT " Mangler der:" 
2300PRINT " Lønafregninger     ja(J) eller nej(N)" 
2310PRINT " Ferie- og SH-opg   ja(J) eller nej(N)" 
2320PRINT " Arbejderlønstat    ja(J) eller nej(N)" 
2330PRINT " Der udskrives:" 
2340PRINT " Lønjournal" 
2350PRINT " Ferieliste" 
2360PRINT " Lønmodtagerkartotekets tælleværker" 
2370PRINT " Årsoplysningssedler" 
2380PRINT  
2390PRINT " Fratrådte fjernes" 
2400PRINT  
2410PRINT " 0-stilling af:" 
2412PRINT " Samtlige tælleværker" 
2414PRINT " Skattekortoplysninger" 
2420ENDPROC  
2600PROC CONVDATE(NR1,OK1) 
2610OK11=OK1;NR1$="" 
2620FOR I=8 TO E STEP -E 
2630IF I MOD V=B THEN  
2640NR1$(I)="-" 
2650ELSE  
2660NR1$(I)=CHR(OK11 MOD 10+48) 
2670OK11=OK11 DIV 10 
2680ENDIF  
2690NEXT I 
2700ENDPROC  
2890PROC PERVERT(NR1,OK1) 
2900OK1=B 
2910FOR I=E TO LEN(NR1$)-E 
2920IF NR1$(I)<>" " AND NR1$(I)<>"," THEN OK1=10*OK1+ORD(NR1$(I))-48 
2930NEXT I 
2940IF NR1$(I)="-" THEN OK1=-OK1 
2950OK1=OK1/100 
2960ENDPROC  
8291MF1$="P641210:LØNJOUR" 
8292OPEN MF1$,W 
8300EXEC SKRIVPICT 
8310FOR J=E TO 8 
8330EXEC INOPL(J) 
8340NEXT J 
8370L$=BL$ 
8372PUT MF1$:STARTPER$,SLUTPER$,LP$,ORK$,MFD 
8870CLOSE  
8875IF ORK$<>"0" THEN  
8880CHAIN "P641210:AFSLJOUR" 
8890ELSE  
8900CHAIN "P641210:STARTB" 
8910ENDIF  

Full view