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