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

⟦ca22501c1⟧ SPC/1-COMAL-BIN

    Length: 3668 (0xe54)
    Types: SPC/1-COMAL-BIN
    Notes: Mikados_B
    Names: »ÅRSAFSLT.B«

Derivation

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

SPC/1 COMAL-BIN

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

Full view