|
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: 12640 (0x3160) Notes: Mikados TextFile, Mikados_K Names: »ÅRSLUT«
└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS ) └─ ⟦this⟧ »ÅRSLUT«
0100 DIM RES$(14),OP1$(12),OP2$(12),N$(6),K1$(17),A$(1),TAL4$(12),BLANK$(25) 0110 DIM UBELØB1$(14),UBELØB2$(14),STREG$(71),FÅDK$(12),FMDK$(12),GLNAVN$(25) 0120 DIM DAT$(8),FÅKREDIT$(12),FÅDEBET$(12),FMKREDIT$(12),FMDEBET$(12) 0130 DIM FMKODE$(1),FNAVN$(25),FUKODE$(1),SALDO13$(12),SALDO3$(12) 0140 DIM SALDO2$(12),SALDO11$(12),SALDO1$(12),SALDO12$(12),SUM$(12),SUM1$(14) 0150 DIM K2$(17),K3$(17),K4$(17),K5$(17),T1(9),LAND$(9,12),DEBNAVN$(25) 0160 DIM DSALDO1$(12),DEBKGR$(1),DSALDO2$(12),DSALDO3$(12),DSALDO4$(12) 0170 DIM DEBLK$(1),DEBBY$(20),ÅRKØB$(12),MDNKØB$(12),TÅRKØB$(12),SALDO$(12) 0180 DIM TOKØB$(12),TOSALDO1$(12),K$(26,11),KREBY$(20) 0190 DIM TOSALDO$(12),KRELK$(1),KREGR$(1),KSALDO1$(12),T2(9) 0200 DIM KSALDO2$(12),K10$(17),K6$(17),K7$(17),K9$(17),K8$(17),TYPE$(1) 0210 DIM BLB2$(12),TILNAVN$(27,8),FRANAVN$(27,8),TEKST$(25) 0220 DIM SUM3$(12),DREVFRA$(2),DREVTIL$(2),TKODE$(1) 0230 PROC CALC(ART,B1,B2,ES) 0240 OP1$=B1$;OP2$=B2$;RES$=ES$;SI=0;FLAG=0 0250 CALL "P641210:REGN" 0260 ES$=RES$ 0270 IF FLAG<>0 THEN STOP 0280 ENDPROC 0290 PROC DATOUD(DA1,DA2) 0300 DA3=DA1 0310 DA2$=" " 0320 FOR J=8 TO 1 STEP -1 0330 IF J MOD 3=0 THEN 0340 DA2$(J)="." 0350 ELSE 0360 DA2$(J)=CHR(DA3 MOD 10+48) 0370 DA3=DA3 DIV 10 0380 ENDIF 0390 NEXT J 0400 ENDPROC 0410 PROC UDLIN 0420 EXEC TUD(SUM$,SUM1$,1,0) 0430 PRINT TAB(5);GR;TAB(12);UBELØB1$;TAB(37);UBELØB2$;TAB(57);SUM1$ 0440 ENDPROC 0450 PROC INDTAB1(Z,MANT5,L7) 0460 PIL1=MANT5 DIV 32 0470 FOR I=1 TO PIL1 0480 H=(I-1)*8+1 0490 GET L7$,I:Z(H),Z(H+1),Z(H+2),Z(H+3),Z(H+4),Z(H+5),Z(H+6),Z(H+7) 0500 EXEC FEJL(2,1,L7$) 0510 NEXT I 0520 ENDPROC 0530 PROC UNDIND(V2,U1,Z) 0540 OPEN V2$,R 0550 EXEC FEJL(14,1,V2$) 0560 GET V2$,U1:Z(1,1),Z(1,2),Z(2,1),Z(2,2),Z(3,1),Z(3,2),Z(4,1),Z(4,2) 0570 EXEC FEJL(14,2,V2$) 0580 CLOSE V2$ 0590 EXEC FEJL(14,3,V2$) 0600 ENDPROC ;UNDIND 0610 PROC TABINIT(K31,K32,MPOSTANTAL3,HTAB2,UTAB2) 0620 OPEN K31$,R 0630 EXEC FEJL(15,1,K31$) 0640 OPEN K32$,W 0650 EXEC FEJL(15,2,K32$) 0660 H=1 0670 FOR I=1 TO MPOSTANTAL3 DIV 40 0680 GET K31$,H:KONR 0690 EXEC FEJL(15,3,K31$) 0700 HTAB2(I,1)=KONR 0710 FOR J=1 TO 4 0720 GET K31$,H:KONR 0730 EXEC FEJL(15,4,K31$) 0740 UTAB2(J,1)=KONR 0750 H=H+9 0760 GET K31$,H:KONR 0770 EXEC FEJL(15,5,K31$) 0780 UTAB2(J,2)=KONR 0790 H=H+1 0800 NEXT J 0810 HTAB2(I,2)=KONR 0820 K90=I+MPOSTANTAL3 DIV 160 0830 EXEC UNDUD(K32$,K90,UTAB2) 0840 NEXT I 0850 EXEC HOVUD(K32$,MPOSTANTAL3,HTAB2) 0860 CLOSE K31$ 0870 EXEC FEJL(15,6,K31$) 0880 CLOSE K32$ 0890 EXEC FEJL(15,7,K32$) 0900 ENDPROC ;TABINIT 0910 PROC UNDUD(V3,U2,T) 0920 PUT V3$,U2:T(1,1),T(1,2),T(2,1),T(2,2),T(3,1),T(3,2),T(4,1),T(4,2) 0930 EXEC FEJL(16,1,V3$) 0940 ENDPROC ;UNDUD 0950 PROC HOVUD(V4,MPOSTANTAL4,S) 0960 FOR I=1 TO MPOSTANTAL4 DIV 160 0970 J=(I-1)*4+1;J1=J+1;J2=J+2;J3=J+3 0980 PUT V4$,I:S(J,1),S(J,2),S(J1,1),S(J1,2),S(J2,1),S(J2,2),S(J3,1),S(J3,2) 0990 EXEC FEJL(17,2,V4$) 1000 NEXT I 1010 ENDPROC 1020 PROC PINIT(K61,MPOSTANTAL8) 1030 OPEN K61$,W 1040 EXEC FEJL(1,1,K61$) 1050 FOR I=1 TO MPOSTANTAL8 1060 PUT K61$,I:100000 1070 EXEC FEJL(1,2,K61$) 1080 NEXT I 1090 CLOSE K61$ 1100 EXEC FEJL(1,3,K61$) 1110 ENDPROC 1120 PROC HENTPOST 1130 S1=FTAB(FPIL3,2) 1140 GET K5$,S1:FNR,FNAVN$ 1150 EXEC FEJL(2,2,K5$) 1160 GET K5$,S1+1:FMKODE$,FMDEBET$,FMKREDIT$ 1170 EXEC FEJL(2,3,K5$) 1180 GET K5$,S1+2:FUKODE$,FÅDEBET$,FÅKREDIT$ 1190 EXEC FEJL(2,4,K5$) 1200 ENDPROC 1210 PROC FINDPOST1(TAB4,Q,MANT2,NØGL5,PIL6,L8) 1220 PIL1=MANT2 DIV 8;PIL6=PIL1;CEKS=1;MANT3=MANT2 DIV 4;MANT4=MANT2 DIV 32 1230 REPEAT 1240 IF NØGL5=TAB4(PIL6) OR PIL1=1 THEN EXIT 1250 PIL1=(PIL1+1) DIV 2;PIL6=PIL6+PIL1*(1-2*(NØGL5<TAB4(PIL6))) 1260 IF PIL6<1 THEN PIL6=MANT3 1270 UNTIL PIL1=0 1280 IF TAB4(PIL6)>NØGL5 THEN PIL6=PIL6-1*(PIL6>1) 1290 PIL6=MANT4+PIL6 1300 GET L8$,PIL6:Q(1,1),Q(1,2),Q(2,1),Q(2,2),Q(3,1),Q(3,2),Q(4,1),Q(4,2) 1310 EXEC FEJL(1,1,L8$) 1320 FOR PIL6=1 TO 4 1330 IF NØGL5=Q(PIL6,1) THEN EXIT 1340 NEXT PIL6 1350 IF PIL6<>5 THEN CEKS=0 1360 ENDPROC 1370 PROC GEMFPOST 1380 S1=FTAB(FPIL3,2) 1390 PUT K5$,S1:FNR,FNAVN$ 1400 EXEC FEJL(4,3,K5$) 1410 PUT K5$,S1+1:FMKODE$,FMDEBET$,FMKREDIT$ 1420 EXEC FEJL(4,4,K5$) 1430 PUT K5$,S1+2:FUKODE$,FÅDEBET$,FÅKREDIT$ 1440 EXEC FEJL(4,4,K5$) 1450 ENDPROC 1460 PROC NRTEST(NUM1) 1470 P=0;TEST2=0;KTAL=0;L=LEN(NUM1$) 1480 IF L>6 THEN EXIT 1490 CASE L OF 1500 FOR I=1 TO L 1510 P1=INT(ORD(NUM1$(I))-48) 1520 IF P1<0 OR P1>9 THEN TEST2=1 1530 P=P*10+P1 1540 NEXT I 1550 KTAL=P DIV 10000 1560 WHEN 0 1570 P=-1 1580 WHEN 1 1590 CASE NUM1$ OF 1600 P=INT(ORD(NUM1$)-48) 1610 WHEN "D","d" 1620 P=-2 1630 WHEN "A","a" 1640 P=-3 1650 WHEN "M","m" 1660 P=-4 1670 WHEN "J","j" 1680 P=-7 1690 WHEN "N","n" 1700 P=-8 1710 ENDCASE 1720 ENDCASE 1730 ENDPROC 1740 PROC KINIT(K62,K63,TAB1,KM,MANTAL) 1750 OPEN K63$,W 1760 EXEC FEJL(2,1,K63$) 1770 FOR J=1 TO MANTAL DIV 4 1780 K90=J+MANTAL DIV 32 1790 EXEC UNDIND(K62$,K90,TAB1) 1800 FOR I=1 TO 4 1810 IF TAB1(I,1)=1000000 THEN EXIT 1820 X=TAB1(I,2);SALDO$="0+" 1830 CASE KM OF 1840 GET K63$,X:DEBNR,DEBNAVN$,DSALDO1$,DEBKGR$ 1850 EXEC FEJL(7,1,K63$) 1860 GET K63$,X+1:DSALDO2$,DSALDO3$,DSALDO4$,DEBPOSTNR,DEBLK$ 1870 EXEC FEJL(7,2,K63$) 1880 GET K63$,X+3:DEBBY$,ÅRKØB$,MDNKØB$ 1890 EXEC FEJL(7,3,K63$) 1900 GR=ORD(DEBKGR$)-48;TÅRKØB$=ÅRKØB$ 1910 EXEC CALC(0,DSALDO3$,DSALDO4$,SALDO$) 1920 EXEC CALC(0,SALDO$,DSALDO2$,SALDO$) 1930 EXEC CALC(0,SALDO$,DSALDO1$,SALDO$) 1940 EXEC CALC(0,DSALDI$(GR),SALDO$,DSALDI$(GR)) 1950 EXEC CALC(0,TÅRKØB$,TOKØB$,TOKØB$) 1960 ÅRKØB$="0+" 1970 PUT K63$,X+3:DEBBY$,ÅRKØB$,MDNKØB$ 1980 EXEC FEJL(7,4,K63$) 1990 WHEN 1 2000 GET K63$,X:FNR 2010 EXEC FEJL(7,6,K63$) 2020 GET K63$,X+2:FUKODE$,FÅDEBET$,FÅKREDIT$ 2030 EXEC FEJL(7,7,K63$) 2040 GR=ORD(FUKODE$)-48 2050 IF (DTAL=FNR DIV 10000 OR KRTAL=FNR DIV 10000) AND GR=1 THEN 2060 EXEC CALC(0,FÅDEBET$,FÅKREDIT$,SALDO$) 2070 IF SALDO$(LEN(SALDO$))="-" THEN 2080 FÅKREDIT$=SALDO$;FÅDEBET$="0+" 2090 ELSE 2100 FÅDEBET$=SALDO$;FÅKREDIT$="0+" 2110 ENDIF 2120 EXEC CALC(0,TOSALDO1$,SALDO$,TOSALDO1$) 2130 IF DTAL=FNR DIV 10000 THEN 2140 DSALDI1$(FNR MOD 10)=SALDO$ 2150 ELSE 2160 KSALDI1$(FNR MOD 10)=SALDO$ 2170 ENDIF 2180 ELSE 2190 IF GR=0 THEN 2200 EXEC CALC(0,FÅDEBET$,FÅKREDIT$,SALDO$) 2210 EXEC CALC(0,TOSALDO$,SALDO$,TOSALDO$) 2220 FÅDEBET$="0+";FÅKREDIT$="0+" 2230 ENDIF 2240 ENDIF 2250 PUT K63$,X+2:FUKODE$,FÅDEBET$,FÅKREDIT$ 2260 EXEC FEJL(7,8,K63$) 2270 WHEN 2 2280 GET K63$,X+1:KREBY$,KRELK$,KREGR$,KREPOSTNR,KSALDO1$,KSALDO2$ 2290 EXEC FEJL(7,5,K63$) 2300 GR=ORD(KREGR$)-48 2310 EXEC CALC(0,KSALDO1$,KSALDO2$,SALDO$) 2320 EXEC CALC(0,KSALDI$(GR),SALDO$,KSALDI$(GR)) 2330 ENDCASE 2340 NEXT I 2350 IF TAB1(I-1*(I=5),1)=1000000 THEN EXIT 2360 NEXT J 2370 CLOSE K63$ 2380 EXEC FEJL(2,22,K63$) 2390 ENDPROC 2400 PROC FEJL(NR1,NR2,NR3) 2410 IF STATUS(NR3$)<>0 THEN 2420 PRINT STATUS(NR3$),NR1,NR2,NR3$ 2430 STOP 2440 ENDIF 2450 ENDPROC 2460 PROC TUD(BLB1,UBLB1,TEGN,STØR) 2470 BLB2$=BLB1$ 2480 EXEC CALC(5,BLB2$,TAL4$,UBLB1$) 2490 IF TEGN=0 THEN 2500 UBLB1$=UBLB1$(1:13) 2510 ELSE 2520 IF TEGN=1 AND UBLB1$(LEN(UBLB1$))="+" THEN 2530 UBLB1$(LEN(UBLB1$))=" " 2540 ENDIF 2550 ENDIF 2560 IF STØR=1 THEN 2570 UBLB1$=UBLB1$(4:LEN(UBLB1$)-3) 2580 ENDIF 2590 ENDPROC 2600 K1$="P641220:SYSTEM1" 2610 OPEN K1$,R 2620 EXEC FEJL(9,1,K1$) 2630 GET K1$,1:MFANTAL,MDANTAL,MKANTAL 2640 EXEC FEJL(9,2,K1$) 2650 GET K1$,3:DPOST,KPOST,MFPOST,MDPOST 2660 EXEC FEJL(9,21,K1$) 2670 GET K1$,4:MKPOST,MFAK,MVGR,MKGR 2680 EXEC FEJL(9,3,K1$) 2690 GET K1$,5:MKRGR 2700 EXEC FEJL(9,4,K1$) 2710 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL 2720 EXEC FEJL(9,5,K1$) 2730 GET K1$,9:KRTAL 2740 EXEC FEJL(9,6,K1$) 2750 GET K1$,10:N$ 2760 EXEC FEJL(9,7,K1$) 2770 FOR I=1 TO 26 2780 GET K1$,I+10:K$(I) 2790 EXEC FEJL(9,8,K1$) 2800 NEXT I 2810 CLOSE K1$ 2820 EXEC FEJL(9,11,K1$) 2830 DIM DSALDI$(MKGR,12),DSALDI1$(MKGR,12),KSALDI1$(MKRGR,12) 2840 DIM KSALDI$(MKRGR,12) 2850 K3$=N$+K$(2);K4$=N$+K$(3);K5$=N$+K$(5);K6$=N$+K$(6);K7$=N$+K$(7) 2860 K8$=N$+K$(15);K9$=N$+K$(22);K2$=N$+K$(1);K10$=N$+K$(26) 2870 DIM FTAB1(MFANTAL DIV 4),DTAB1(MDANTAL DIV 4),KTAB1(MKANTAL DIV 4) 2880 DIM FTAB(4,2),DTAB(4,2),KTAB(4,2),HFTAB(MFPOST DIV 40,2),UFTAB(4,2) 2890 OPEN K10$,R 2900 EXEC FEJL(9,12,K10$) 2910 GET K10$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9) 2920 EXEC FEJL(9,13,K10$) 2925 GET K10$,13:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9) 2926 EXEC FEJL(9,14,K10$) 2930 CLOSE K10$ 2940 EXEC FEJL(9,15,K10$) 2950 OPEN K2$,R 2960 EXEC FEJL(9,16,K2$) 2970 OPEN K3$,R 2980 EXEC FEJL(9,18,K3$) 2990 OPEN K4$,R 3000 EXEC FEJL(9,19,K4$) 3010 FOR I=1 TO MKGR 3020 DSALDI$(I)="0+";DSALDI1$(I)="0+" 3030 NEXT I 3040 FOR I=1 TO MKRGR 3050 KSALDI$(I)="0+";KSALDI1$(I)="0+" 3060 NEXT I 3070 TOSALDO$="0+";TOSALDO1$="0+";SUM$="0+";SUM3$="0+" 3080 EXEC INDTAB1(FTAB1,MFANTAL,K2$) 3090 EXEC INDTAB1(DTAB1,MDANTAL,K3$) 3100 EXEC INDTAB1(KTAB1,MKANTAL,K4$) 3110 EXEC KINIT(K3$,K6$,DTAB,0,MDANTAL) 3120 EXEC KINIT(K4$,K7$,KTAB,2,MKANTAL) 3130 EXEC KINIT(K2$,K5$,FTAB,1,MFANTAL) 3140 EXEC PINIT(K8$,MFPOST) 3150 EXEC TABINIT(K8$,K9$,MFPOST,HFTAB,UFTAB) 3160 OPEN K5$,W 3170 EXEC FEJL(9,20,K5$) 3180 EXEC FINDPOST1(FTAB1,FTAB,MFANTAL,DIFNR,FPIL3,K2$) 3190 IF CEKS=1 THEN STOP 3200 EXEC HENTPOST 3210 IF TOSALDO$(LEN(TOSALDO$))="-" THEN 3220 EXEC CALC(0,FMKREDIT$,TOSALDO$,FMKREDIT$) 3230 EXEC CALC(0,FÅKREDIT$,TOSALDO$,FÅKREDIT$) 3240 ELSE 3250 EXEC CALC(0,FMDEBET$,TOSALDO$,FMDEBET$) 3260 EXEC CALC(0,FÅDEBET$,TOSALDO$,FÅDEBET$) 3270 ENDIF 3280 EXEC GEMFPOST 3290 TKODE$=CHR(10+48);TEKST$="Årsafslutnings difference" 3300 OPEN K8$,W 3310 EXEC FEJL(9,21,K8$) 3320 PUT K8$,1:DIFNR,T1(7),-1,TKODE$,TOSALDO$ 3330 EXEC FEJL(9,22,K8$) 3340 PUT K8$,2:DIFNR,TEKST$ 3350 EXEC FEJL(9,23,K8$) 3360 CLOSE K8$ 3370 EXEC FEJL(9,24,K8$) 3380 T2(5)=2 3381 OPEN K10$,W 3382 EXEC FEJL(9,25,K10$) 3383 PUT K10$,13:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9) 3384 EXEC FEJL(9,26,K10$) 3385 CLOSE K10$ 3386 EXEC FEJL(9,27,K10$) 3390 EXEC DATOUD(T1(7),DAT$) 3400 CLEAR 3410 REPEAT 3420 CURSOR 15,13 3430 INPUT "Monter papir til udskrift og tast RETURN",A$ 3440 EXEC NRTEST(A$) 3450 UNTIL P=-1 3460 OUTPUT P 3470 PRINT TAB(10);CHR(14);"Årsafslutningsjournal";CHR(15);TAB(40); 3480 PRINT "DATO: ";DAT$ 3490 PRINT CHR(10) 3500 PRINT TAB(5);"Gr. Totaler Deb. ";TAB(37);"Gr.Total Deb."; 3510 PRINT TAB(60);"Difference" 3520 PRINT " " 3530 FOR GR=1 TO MKGR 3540 EXEC CALC(1,DSALDI$(GR),DSALDI1$(GR),SUM$) 3550 EXEC TUD(DSALDI$(GR),UBELØB1$,1,0) 3560 EXEC TUD(DSALDI1$(GR),UBELØB2$,1,0) 3570 EXEC UDLIN 3580 NEXT GR 3590 PRINT CHR(10) 3600 PRINT TAB(5);"Gr. Totaler Kre. ";TAB(37);"Gr.Total Kre."; 3610 PRINT TAB(60);"Difference" 3620 PRINT " " 3630 FOR GR=1 TO MKRGR 3640 EXEC CALC(1,KSALDI$(GR),KSALDI1$(GR),SUM$) 3650 EXEC TUD(KSALDI$(GR),UBELØB1$,1,0) 3660 EXEC TUD(KSALDI1$(GR),UBELØB2$,1,0) 3670 EXEC UDLIN 3680 NEXT GR 3690 PRINT CHR(10) 3700 PRINT TAB(5);"Total Deb+Kre.";TAB(40);"Total Fin.";TAB(60);"Difference" 3710 PRINT " " 3720 EXEC CALC(0,TOSALDO1$,TOSALDO$,SUM3$) 3730 EXEC TUD(TOSALDO1$,UBELØB1$,1,0) 3740 EXEC TUD(TOSALDO$,UBELØB2$,1,0) 3750 EXEC TUD(SUM3$,SUM1$,1,0) 3760 PRINT TAB(6);UBELØB1$;TAB(37);UBELØB2$; 3770 PRINT TAB(57);SUM1$ 3780 PRINT " " 3790 PRINT TAB(5);"Bogført på difference konto:";TAB(57);UBELØB2$ 3800 FOR I=1 TO 48-15-MKGR-MKRGR 3810 PRINT " " 3820 NEXT I 3830 OUTPUT T 3840 CLEAR 3850 CHAIN "P641210:OPSTART"