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

⟦c10d9b193⟧

    Length: 10112 (0x2780)
    Notes: Mikados TextFile, Mikados_K
    Names: »BALANCE«

Derivation

└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS )
    └─ ⟦this⟧ »BALANCE« 

Text

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)
0150 DIM K2$(17),K3$(17),K4$(17),K5$(17),T1(9),LAND$(9,12)
0160 PROC CALC(ART,B1,B2,ES)
0170 OP1$=B1$;OP2$=B2$;RES$=ES$;SI=0;FLAG=0
0180 CALL "P641210:REGN"
0190 ES$=RES$
0200 IF FLAG<>0 THEN STOP 
0210 ENDPROC 
0220 PROC DATOUD(DA1,DA2)
0230 DA3=DA1
0240 DA2$="        "
0250 FOR J=8 TO 1 STEP -1
0260 IF J MOD 3=0 THEN 
0270 DA2$(J)="."
0280 ELSE 
0290 DA2$(J)=CHR(DA3 MOD 10+48)
0300 DA3=DA3 DIV 10
0310 ENDIF 
0320 NEXT J
0330 ENDPROC 
0340 PROC INDTAB(T,MANTAL,L10)
0350 J=MANTAL DIV 32+1
0360 FOR I=J TO MANTAL DIV 4+J-1
0370 H=(I-J)*4+1;H1=H+1;H2=H+2;H3=H+3
0380 GET L10$,I:T(H,1),T(H,2),T(H1,1),T(H1,2),T(H2,1),T(H2,2),T(H3,1),T(H3,2)
0390 EXEC FEJL(1,1,L10$)
0400 NEXT I
0410 ENDPROC 
0420 PROC HENTPOST
0430 S1=FTAB(FPIL3,2)
0440 GET K3$,S1:FNR,FNAVN$
0450 EXEC FEJL(2,2,K3$)
0460 GET K3$,S1+1:FMKODE$,FMDEBET$,FMKREDIT$
0470 EXEC FEJL(2,3,K3$)
0480 GET K3$,S1+2:FUKODE$,FÅDEBET$,FÅKREDIT$
0490 EXEC FEJL(2,4,K3$)
0500 ENDPROC 
0510 PROC FEJL(NR1,NR2,NR3)
0520 IF STATUS(NR3$)<>0 THEN 
0530 PRINT STATUS(NR3$),NR1,NR2,NR3$
0540 STOP 
0550 ENDIF 
0560 ENDPROC 
0570 PROC TUD(BLB1,UBLB1,TEGN,STØR)
0580 EXEC CALC(5,BLB1$,TAL4$,UBLB1$)
0590 IF TEGN=0 THEN 
0600 UBLB1$=UBLB1$(1:13)
0610 ELSE 
0620 IF TEGN=1 AND UBLB1$(LEN(UBLB1$))="+" THEN 
0630 UBLB1$(LEN(UBLB1$))=" "
0640 ENDIF 
0650 ENDIF 
0660 IF STØR=1 THEN 
0670 UBLB1$=UBLB1$(4:LEN(UBLB1$)-3)
0680 ENDIF 
0690 ENDPROC 
0700 PROC HOVEDUD(UDATO,USIDE)
0710 EXEC DATOUD(UDATO,DAT$)
0720 PRINT TAB(10);CHR(14);"Balance";CHR(15);TAB(44);"Dato : ";DAT$;
0730 PRINT USING "   Side :###":USIDE
0740 PRINT " "
0750 PRINT TAB(40);"Månedens";TAB(66);"Årets"
0760 PRINT TAB(3);"Nr    Kontonavn";TAB(35);"Debet      Kredit       Debet";
0770 PRINT "       Kredit"
0780 PRINT TAB(8);STREG$
0790 ENDPROC 
0800 PROC LINIEUD(NR4,NAVN1,SAL1,SAL2)
0810 PRINT USING "###### ":NR4;
0820 EXEC TUD(SAL1$,UBELØB1$,0,0)
0830 EXEC TUD(SAL2$,UBELØB2$,0,0)
0840 PRINT NAVN1$;TAB(31+12*(SAL1$(LEN(SAL1$))="-"));UBELØB1$(2:12);
0850 PRINT TAB(56+12*(SAL2$(LEN(SAL2$))="-"));UBELØB2$(2:12)
0860 ENDPROC 
0870 PROC NYSIDE
0880 FOR LINIE=LINIE TO 42
0890 PRINT CHR(10);
0900 NEXT LINIE
0910 PRINT " "
0920 BSIDE=BSIDE+1
0930 EXEC HOVEDUD(T1(7),BSIDE)
0940 PRINT " "
0950 PRINT USING "###### ":GFNR;
0960 EXEC CALC(4,SALDO12$,TAL4$,TAL4$)
0970 IF SI<>0 THEN 
0980 PRINT GLNAVN$(1:23);" Fortsat"
0990 ELSE 
1000 PRINT GLNAVN$(1:23)
1010 ENDIF 
1020 PRINT TAB(8);STREG$(1:23+7*(SI<>0))
1030 PRINT " "
1040 LINIE=5
1050 ENDPROC 
1060 K1$="P641220:SYSTEM1"
1070 OPEN K1$,R
1080 EXEC FEJL(9,1,K1$)
1090 GET K1$,1:MFANTAL
1100 EXEC FEJL(9,2,K1$)
1110 GET K1$,4:MKPOST,MFAK,MVGR,MKGR
1120 EXEC FEJL(9,3,K1$)
1130 GET K1$,5:MKRGR
1140 EXEC FEJL(9,4,K1$)
1150 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL
1160 EXEC FEJL(9,5,K1$)
1170 GET K1$,9:KRTAL
1180 EXEC FEJL(9,6,K1$)
1190 GET K1$,10:N$
1200 EXEC FEJL(9,7,K1$)
1210 GET K1$,11:K2$
1220 EXEC FEJL(9,8,K1$)
1230 GET K1$,15:K3$
1240 EXEC FEJL(9,9,K1$)
1250 GET K1$,36:K4$
1260 EXEC FEJL(9,10,K1$)
1270 CLOSE K1$
1280 EXEC FEJL(9,11,K1$)
1290 K2$=N$+K2$;K3$=N$+K3$
1300 K4$=N$+K4$
1310 DIM FTAB(MFANTAL,2)
1320 OPEN K4$,R
1330 EXEC FEJL(9,12,K4$)
1340 GET K4$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
1350 EXEC FEJL(9,13,K4$)
1360 GET K4$,14:AFIN
1370 EXEC FEJL(9,14,K4$)
1380 CLOSE K4$
1390 EXEC FEJL(9,15,K4$)
1400 OPEN K2$,R
1410 EXEC FEJL(9,16,K2$)
1420 OPEN K3$,R
1430 EXEC FEJL(9,17,K3$)
1440 EXEC INDTAB(FTAB,MFANTAL,K2$)
1450 BLANK$="                        "
1460 STREG$="------------------------------------";STREG$=STREG$+STREG$
1470 REPEAT 
1480 OUTPUT T
1490 CLEAR 
1500 CURSOR 30,2
1510 PRINT "Balanceprogram"
1520 CURSOR 15,5
1530 PRINT "0: Færdig"
1540 CURSOR 15,7
1550 PRINT "1: Totalbalance"
1560 CURSOR 15,9
1570 PRINT "2: Gruppebalance"
1580 REPEAT 
1590 CURSOR 18,12
1600 PRINT "Vælg type        "
1610 CURSOR 28,12
1620 INPUT A$
1630 TOTAL=ORD(A$)-48
1640 UNTIL TOTAL>-1 AND TOTAL<3
1650 IF TOTAL=0 THEN EXIT 
1660 CLEAR 
1670 REPEAT 
1680 CURSOR 15,13
1690 INPUT "Monter papir til udskrift af balance og tast RETURN",A$
1700 UNTIL ORD(A$)=255
1710 BSIDE=1;GLNAVN$=BLANK$;LINIE=1;SALDO1$="0+";SALDO2$="0+";SALDO3$="0+"
1720 SALDO3$="0+";SALDO11$="0+";SALDO12$="0+";SALDO13$="0+";TAL4$="0+";GFNR=0
1730 OUTPUT P
1740 EXEC HOVEDUD(T1(7),BSIDE)
1750 FOR FPIL3=1 TO AFIN
1760 IF FTAB(FPIL3,1)=100000 THEN EXIT 
1770 EXEC HENTPOST
1780 FGRUP=INT(ORD(FUKODE$)-48)
1790 EXEC CALC(0,FMDEBET$,FMKREDIT$,FMDK$)
1800 EXEC CALC(0,FÅDEBET$,FÅKREDIT$,FÅDK$)
1810 CASE FGRUP OF 
1820 STOP 
1830 WHEN 0
1840 IF TOTAL=1 THEN 
1850 IF LINIE>39 THEN EXEC NYSIDE
1860 EXEC LINIEUD(FNR,FNAVN$(1:23),FMDK$,FÅDK$)
1870 LINIE=LINIE+1
1880 ENDIF 
1890 EXEC CALC(0,SALDO1$,FMDK$,SALDO1$)
1900 EXEC CALC(0,SALDO11$,FÅDK$,SALDO11$)
1910 EXEC CALC(0,SALDO2$,FMDK$,SALDO2$)
1920 EXEC CALC(0,SALDO12$,FÅDK$,SALDO12$)
1930 EXEC CALC(0,SALDO3$,FMDK$,SALDO3$)
1940 EXEC CALC(0,SALDO13$,FÅDK$,SALDO13$)
1950 WHEN 1
1960 IF LINIE>39 THEN EXEC NYSIDE
1965 FNR2=FNR DIV 1000
1970 FNR1=FNR DIV 10000;DTAL1=DTAL*10000+MKGR;KRTAL1=KRTAL*1000+MKRGR
1980 IF FNR1=DTAL AND DTAL1=>FNR OR FNR2=KRTAL AND KRTAL1=>FNR THEN 
1990 EXEC CALC(0,SALDO2$,FMDK$,SALDO2$)
2000 EXEC CALC(0,SALDO12$,FÅDK$,SALDO12$)
2010 EXEC CALC(0,SALDO3$,FMDK$,SALDO3$)
2020 EXEC CALC(0,SALDO13$,FÅDK$,SALDO13$)
2030 EXEC LINIEUD(FNR,FNAVN$(1:23),FMDK$,FÅDK$)
2040 ELSE 
2050 EXEC LINIEUD(FNR,FNAVN$(1:23),SALDO1$,SALDO11$)
2060 SALDO1$="0+";SALDO11$="0+"
2070 ENDIF 
2080 PRINT " "
2090 LINIE=LINIE+2
2100 WHEN 2
2110 IF GFNR>0 THEN 
2120 IF LINIE>37 THEN EXEC NYSIDE
2130 PRINT " "
2140 PRINT TAB(8);STREG$(1:71)
2150 EXEC LINIEUD(GFNR,GLNAVN$(1:23),SALDO2$,SALDO12$)
2160 SALDO2$="0+";SALDO12$="0+";LINIE=LINIE+3
2170 SALDO1$="0+";SALDO11$="0+"
2180 ENDIF 
2190 GLNAVN$=FNAVN$;GFNR=FNR
2200 IF LINIE>34 THEN 
2210 EXEC NYSIDE
2220 ELSE 
2230 PRINT CHR(10)
2240 PRINT USING "###### ":FNR;
2250 PRINT GLNAVN$(1:23)
2260 PRINT TAB(8);STREG$(1:LEN(GLNAVN$))
2270 PRINT " "
2280 LINIE=LINIE+5
2290 ENDIF 
2300 WHEN 3
2310 IF LINIE>37 AND GFNR>0 THEN EXEC NYSIDE
2320 IF GFNR>0 THEN 
2330 PRINT " "
2340 PRINT TAB(8);STREG$(1:71)
2350 EXEC LINIEUD(GFNR,GLNAVN$(1:23),SALDO2$,SALDO12$)
2360 SALDO2$="0+";SALDO12$="0+";LINIE=LINIE+3;GFNR=0
2370 ENDIF 
2380 IF LINIE>36 THEN EXEC NYSIDE
2390 PRINT " "
2400 PRINT TAB(8);STREG$(1:71)
2410 EXEC LINIEUD(FNR,FNAVN$(1:23),SALDO3$,SALDO13$)
2420 SALDO1$="0+";SALDO11$="0+"
2430 PRINT TAB(8);STREG$(1:71)
2440 PRINT " "
2450 LINIE=LINIE+5
2460 ENDCASE 
2470 NEXT FPIL3
2480 IF GFNR>0 THEN 
2490 IF LINIE>37 THEN EXEC NYSIDE
2500 PRINT " "
2510 PRINT TAB(8);STREG$(1:71)
2520 EXEC LINIEUD(GFNR,GLNAVN$(1:23),SALDO2$,SALDO12$)
2530 SALDO2$="0+";SALDO12$="0+";LINIE=LINIE+3;GFNR=0
2540 SALDO1$="0+";SALDO11$="0+"
2550 ENDIF 
2560 IF LINIE>36 THEN EXEC NYSIDE
2570 GLNAVN$="Difference";GFNR=100000
2580 PRINT " "
2590 PRINT TAB(8);STREG$(1:71)
2600 EXEC LINIEUD(GFNR,GLNAVN$,SALDO3$,SALDO13$)
2610 PRINT TAB(8);STREG$(1:71)
2620 FOR LINIE=LINIE TO 38
2630 PRINT CHR(10);
2640 NEXT LINIE
2650 PRINT " "
2660 UNTIL TOTAL=0
2670 OUTPUT T
2680 CHAIN "P641210:OPSTART"