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

⟦c767ee570⟧ SPC/1-COMAL-BIN

    Length: 7898 (0x1eda)
    Types: SPC/1-COMAL-BIN
    Notes: Mikados_B
    Names: »BALANCE.B«

Derivation

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

SPC/1 COMAL-BIN

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

Full view