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

⟦f0f4c1a6d⟧

    Length: 22752 (0x58e0)
    Notes: Mikados TextFile, Mikados_K
    Names: »PSTERING«

Derivation

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

Text

0100 DIM KONTONAVN$(25),DEBNAVN$(25),N$(6),FNAVN$(25),FUKODE$(1),T1(9),T2(9)
0110 DIM KRENAVN$(25),T3(9),K6$(17),K7$(17),K8$(17),K9$(17),K10$(17)
0120 DIM K1$(17),SALDO$(12),DAT$(8),TKO$(1),BELØB1$(12),MUL$(1),TEKST$(25)
0130 DIM K4$(17),TFIL$(9,10),UBELØB$(14),BELØB2$(12),KA(36),DA(36),TKA(36)
0140 DIM TA$(36,25),A$(2),TAL4$(12),OP1$(12),OP2$(12),STREG$(70),K5$(17)
0150 DIM RES$(14),BIL$(8),RET$(3),BTEKST$(26),ATEKST$(26),KTN$(6),BLB$(12)
0160 DIM K2$(17),BLB2$(12),BLB3$(12),BLK$(76),CA(36),CEA$(36,12),K3$(17)
0170 PROC CALC(AR3,AB,AC,ES)
0180 OP1$=AB$;OP2$=AC$;RES$=ES$;SI=0;FLAG=0;ART=AR3-6*(AR3>5)
0190 CALL "P641210:REGN"
0200 ES$=RES$
0210 IF AR3<>6 THEN 
0220 IF FLAG<>0 THEN STOP 
0230 ENDIF 
0240 ENDPROC 
0250 PROC KTNAVN(KOTAL,KKONTO)
0260 CEKS=1
0270 CASE KOTAL OF 
0280 EXEC FINDPOST1(FTAB1,FTAB,MFANTAL,KKONTO,FPIL3,K2$)
0290 IF CEKS=0 THEN 
0300 EXEC HENTPOST
0310 IF INT(ORD(FUKODE$)-48)=0 THEN 
0320 KONTONAVN$=FNAVN$
0330 ELSE 
0340 CEKS=1
0350 ENDIF 
0360 ENDIF 
0370 WHEN DTAL
0380 IF DTAL*10000+MKGR<KKONTO THEN 
0390 EXEC FINDPOST1(DTAB1,DTAB,MDANTAL,KKONTO,DPIL3,K3$)
0400 IF CEKS=0 THEN 
0410 EXEC HENTDPOST
0420 KONTONAVN$=DEBNAVN$
0430 ENDIF 
0440 ELSE 
0450 CEKS=1
0460 ENDIF 
0470 WHEN KRTAL
0480 IF KRTAL*1000+MKRGR<KKONTO THEN 
0490 EXEC FINDPOST1(KTAB1,KTAB,MKANTAL,KKONTO,KPIL3,K4$)
0500 IF CEKS=0 THEN 
0510 EXEC HENTKRPOST
0520 KONTONAVN$=KRENAVN$
0530 ENDIF 
0540 ENDIF 
0550 ENDCASE 
0560 IF CEKS=1 THEN 
0570 KONTONAVN$="Konto eksisterer ikke    "
0580 ENDIF 
0590 ENDPROC 
0600 PROC HENTDPOST
0610 S=DTAB(DPIL3,2)
0620 GET K6$,S:DEBNR,DEBNAVN$
0630 EXEC FEJL(8,2,K6$)
0640 IF DEBNR<>DTAB(DPIL3,1) THEN STOP 
0650 ENDPROC 
0660 PROC HENTKRPOST
0670 S=KTAB(KPIL3,2)
0680 GET K7$,S:KRENR,KRENAVN$
0690 EXEC FEJL(1,1,K7$)
0700 IF KRENR<>KTAB(KPIL3,1) THEN STOP 
0710 ENDPROC 
0720 PROC HENTPOST
0730 S=FTAB(FPIL3,2)
0740 GET K5$,S:FNR,FNAVN$
0750 EXEC FEJL(3,2,K5$)
0760 IF FNR<>FTAB(FPIL3,1) THEN STOP 
0770 GET K5$,S+2:FUKODE$
0780 EXEC FEJL(3,4,K5$)
0790 ENDPROC 
0800 PROC FINDPOST1(TAB4,Q,MANT2,NØGL5,PIL6,L8)
0810 PIL1=MANT2 DIV 8;PIL6=PIL1;CEKS=1;MANT3=MANT2 DIV 4;MANT4=MANT2 DIV 32
0820 REPEAT 
0830 IF NØGL5=TAB4(PIL6) OR PIL1=1 THEN EXIT 
0840 PIL1=(PIL1+1) DIV 2
0850 PIL6=PIL6+PIL1*(1-2*(NØGL5<TAB4(PIL6)))
0860 IF PIL6<1 THEN PIL6=1
0870 IF PIL6>MANT3 THEN PIL6=MANT3
0880 UNTIL PIL1=0
0890 IF TAB4(PIL6)>NØGL5 THEN PIL6=PIL6-1*(PIL6>1)
0900 PIL6=MANT4+PIL6
0910 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)
0920 EXEC FEJL(1,1,L8$)
0930 FOR PIL6=1 TO 4
0940 IF NØGL5=Q(PIL6,1) THEN EXIT 
0950 NEXT PIL6
0960 IF PIL6<5 THEN CEKS=0
0970 ENDPROC 
0980 PROC INDTAB1(Z,MANT5,L7)
0990 PIL1=MANT5 DIV 32
1000 FOR I=1 TO PIL1
1010 H=(I-1)*8+1
1020 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)
1030 EXEC FEJL(2,1,L7$)
1040 NEXT I
1050 ENDPROC 
1060 PROC DATOUD(DA1,DA2)
1070 DA3=DA1
1080 DA2$="        "
1090 FOR J=8 TO 1 STEP -1
1100 IF J MOD 3=0 THEN 
1110 DA2$(J)="."
1120 ELSE 
1130 DA2$(J)=CHR(DA3 MOD 10+48)
1140 DA3=DA3 DIV 10
1150 ENDIF 
1160 NEXT J
1170 ENDPROC 
1180 PROC PGETUD(SIDE)
1190 IF CPIL>1 THEN 
1200 I=1;SIDE=1;SALDO$="0+"
1210 CLEAR 
1220 REPEAT 
1230 CURSOR 8,13
1240 INPUT "Monter papir til udskrift af posteringsark og tast RETURN",A$
1250 UNTIL ORD(A$)=255
1260 REPEAT 
1270 EXEC DATOUD(DATO,DAT$)
1280 OUTPUT P
1290 PRINT " "
1300 PRINT TAB(9);CHR(14);"Posteringsark";CHR(15);TAB(44);"Dato:";DAT$;
1310 PRINT TAB(61);
1320 PRINT USING "Side:####":SIDE
1330 SIDE=SIDE+1
1340 PRINT CHR(10)
1350 PRINT TAB(3);"Bilag    Tekst";TAB(42);"Debet         Beløb       Kredit"
1360 PRINT TAB(3);STREG$
1370 LINIE=1
1380 REPEAT 
1390 GET K8$,I:KONTO1,DDATO,BILAG,TKO$,BLB2$,MUL$
1400 EXEC FEJL(3,2,K8$)
1410 TEKSTKODE=ORD(TKO$)-48
1420 MULTI=ORD(MUL$)-48
1430 I=I+1
1440 IF TEKSTKODE>9 THEN 
1450 GET K8$,I:KONTO1,TEKST$
1460 EXEC FEJL(3,3,K8$)
1470 I=I+1
1480 ELSE 
1490 TEKST$=BLK$(1:25)
1500 IF TEKSTKODE<>0 THEN TEKST$(1:10)=TFIL$(TEKSTKODE)
1510 ENDIF 
1520 IF MULTI=0 THEN 
1530 EXEC CALC(1,SALDO$,BLB2$,SALDO$)
1540 GET K8$,I:KONTO2
1550 EXEC FEJL(3,4,K8$)
1560 I=I+1
1570 IF TEKSTKODE>9 THEN I=I+1
1580 ELSE 
1590 IF BLB2$(LEN(BLB2$))="-" THEN 
1600 KONTO2=KONTO1
1610 KONTO1=100000
1620 ELSE 
1630 KONTO2=100000
1640 ENDIF 
1650 ENDIF 
1660 EXEC CALC(0,SALDO$,BLB2$,SALDO$)
1670 PRINT USING "#######    ":BILAG;
1680 PRINT TEKST$;TAB(39);
1690 PRINT USING "  ######    ":KONTO1;
1700 EXEC TUD(BLB2$,UBELØB$,0,0)
1710 PRINT UBELØB$;
1720 PRINT USING "   ######":KONTO2
1730 LINIE=LINIE+1
1740 UNTIL LINIE=37 OR I=CPIL
1750 IF LINIE=37 AND I<>CPIL THEN 
1760 PRINT CHR(10);CHR(10);CHR(10);CHR(10);CHR(10)
1770 ELSE 
1780 FOR LINIE=LINIE TO 36
1790 PRINT CHR(10);
1800 NEXT LINIE
1810 PRINT " "
1820 PRINT TAB(3);STREG$
1830 EXEC TUD(SALDO$,UBELØB$,1,0)
1840 PRINT TAB(27);CHR(14);"Difference";CHR(15);TAB(43);UBELØB$
1850 PRINT TAB(3);STREG$
1860 PRINT CHR(10)
1870 OUTPUT T
1880 ENDIF 
1890 UNTIL I=CPIL
1900 ENDIF 
1910 ENDPROC 
1920 PROC PPUT
1930 MUL$=CHR(MULTI+48)
1940 IF MULTI=0 THEN 
1950 BPIL=CPIL
1960 TKO$=CHR(TEKSTKODE+48)
1970 PUT K8$,CPIL:KONTO1,BDATO,BILAG,TKO$,BLB2$,MUL$
1980 EXEC FEJL(2,2,K8$)
1990 CPIL=CPIL+1
2000 IF TEKSTKODE>9 THEN 
2010 PUT K8$,CPIL:KONTO1,TEKST$
2020 EXEC FEJL(2,3,K8$)
2030 CPIL=CPIL+1
2040 ENDIF 
2050 PUT K8$,CPIL:KONTO2,BDATO,BILAG,TKO$,BLB3$,MUL$
2060 EXEC FEJL(2,4,K8$)
2070 CPIL=CPIL+1
2080 IF TEKSTKODE>9 THEN 
2090 PUT K8$,CPIL:KONTO2,TEKST$
2100 EXEC FEJL(2,5,K8$)
2110 CPIL=CPIL+1
2120 ENDIF 
2130 ELSE 
2140 FOR I=1 TO APIL
2150 IF KA(I)<>0 THEN 
2160 TKO$=CHR(TKA(I)+48)
2170 PUT K8$,CPIL:KA(I),DA(I),CA(I),TKO$,CEA$(I),MUL$
2180 EXEC FEJL(2,6,K8$)
2190 CPIL=CPIL+1
2200 IF TKA(I)>9 THEN 
2210 PUT K8$,CPIL:KA(I),TA$(I)
2220 EXEC FEJL(2,7,K8$)
2230 CPIL=CPIL+1
2240 ENDIF 
2250 ENDIF 
2260 NEXT I
2270 BPIL=CPIL;APIL=0;DPIL=0
2280 EXEC SYSGEM
2290 ENDIF 
2300 ENDPROC 
2310 PROC SYSGEM
2320 T1(5)=PSIDENR;T1(8)=BBILAG;T2(1)=PPOST;T3(1)=BHPOSTNR
2330 OPEN K10$,W
2340 EXEC FEJL(7,1,K10$)
2350 PUT K10$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
2360 EXEC FEJL(7,2,K10$)
2370 PUT K10$,12:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
2380 EXEC FEJL(7,3,K10$)
2390 PUT K10$,13:T3(1),T3(2),T3(3),T3(4),T3(5),T3(6),T3(7),T3(8),T3(9)
2400 EXEC FEJL(7,4,K10$)
2410 CLOSE K10$
2420 EXEC FEJL(7,5,K10$)
2430 ENDPROC 
2440 PROC KONTOOK
2450 EXEC KTNAVN(KTAL,P)
2460 CURSOR 25,23
2470 PRINT KONTONAVN$;BLK$(1:30-LEN(KONTONAVN$))
2480 REPEAT 
2490 CURSOR 55,23
2500 PRINT "Rigtig konto (J/N)  "
2510 CURSOR 75,23
2520 INPUT A$
2530 EXEC NRTEST(A$)
2540 UNTIL P=-7 OR P=-8
2550 ENDPROC 
2560 PROC KONTOUD(KONT)
2570 IF CEKS=1 THEN 
2580 CURSOR 2,LINIENR+3
2590 PRINT BLK$
2600 IF MULTI=0 THEN BBILAG=BBILAG-1
2610 CNR=1
2620 ELSE 
2630 CURSOR 42+28*(CNR=5),LINIENR+3
2640 PRINT USING "   ######   ":KONT
2650 LINIENR=LINIENR+1*(CNR=5)
2660 CNR=4-3*(CNR=5)
2670 ENDIF 
2680 ENDPROC 
2690 PROC TUD(BLB1,UBLB,TEGN,STØR)
2700 EXEC CALC(5,BLB1$,TAL4$,UBLB$)
2710 IF TEGN=0 THEN 
2720 UBLB$=UBLB$(1:13)
2730 ELSE 
2740 IF TEGN=1 AND UBLB$(LEN(UBLB$))="+" THEN 
2750 UBLB$(LEN(UBLB$))=" "
2760 ENDIF 
2770 ENDIF 
2780 IF STØR=1 THEN 
2790 UBLB$=UBLB$(3:LEN(UBLB$)-3)
2800 ENDIF 
2810 ENDPROC 
2820 PROC FEJL(NR1,NR2,NR3)
2830 IF STATUS(NR3$)<>0 THEN 
2840 PRINT STATUS(NR3$),NR1,NR2,NR3$
2850 STOP 
2860 ENDIF 
2870 ENDPROC 
2880 PROC PSLET(ART1)
2890 IF MULTI=0 THEN 
2900 IF BPIL=CPIL THEN 
2910 REPEAT 
2920 CURSOR 3,23
2930 PRINT "Posteringen kan ikke annuleres, tast RETURN"+BLK$(1:34)
2940 CURSOR 48,23
2950 INPUT A$
2960 EXEC NRTEST(A$)
2970 UNTIL P=-1
2980 ELSE 
2990 LINIENR=LINIENR-1
3000 BBILAG=BBILAG-1
3010 CURSOR 3,LINIENR+3
3020 PRINT BLK$
3030 FOR I=BPIL TO CPIL-1
3040 PUT K8$,I:0
3050 EXEC FEJL(1,2,K8$)
3060 NEXT I
3070 CPIL=BPIL
3080 ENDIF 
3090 ELSE 
3100 IF APIL>0 THEN 
3110 IF ART1=1 THEN 
3120 CURSOR 3,(P-1) MOD 18+4
3130 ELSE 
3140 P=APIL
3150 LINIENR=LINIENR-1
3160 CURSOR 3,LINIENR+3
3170 ENDIF 
3180 IF TKA(P)>9 THEN DPIL=DPIL-1
3190 PRINT BLK$
3200 KA(P)=0
3210 DA(P)=0
3220 CA(P)=0
3230 TKA(P)=0
3240 TA$(P)=BLK$(1:25)
3250 EXEC CALC(1,SALDO$,CEA$(P),SALDO$)
3260 CEA$(P)=BLK$(1:14)
3270 IF ART1=0 THEN 
3280 APIL=APIL-1;DPIL=DPIL-1
3290 ENDIF 
3300 ENDIF 
3310 ENDIF 
3320 ENDPROC 
3330 PROC NRTEST(NUM1)
3340 P=0;TEST2=0;KTAL=0
3350 L=LEN(NUM1$)
3360 CASE L OF 
3370 FOR I=1 TO L
3380 P1=INT(ORD(NUM1$(I))-48)
3390 IF P1=>0 AND P1<=9 THEN 
3400 P=P*10+P1
3410 ELSE 
3420 TEST2=1
3430 ENDIF 
3440 NEXT I
3450 KTAL=P DIV 10000;KTAL9=P DIV 1000
3460 IF KRTAL=KTAL9 THEN KTAL=KTAL9
3470 WHEN 0
3480 P=-1
3490 WHEN 1
3500 CASE NUM1$ OF 
3510 P=INT(ORD(NUM1$)-48)
3520 WHEN "d","D"
3530 P=-2
3540 WHEN "A","a"
3550 P=-3
3560 WHEN "M","m"
3570 P=-4
3580 WHEN "J","j"
3590 P=-7
3600 WHEN "N","n"
3610 P=-8
3620 ENDCASE 
3630 ENDCASE 
3640 ENDPROC 
3650 PROC FORTEGN
3660 L=LEN(BLB$)
3670 IF L=0 THEN 
3680 BLB$="0+";L=2
3690 ENDIF 
3700 IF BLB$(L)<>"+" AND BLB$(L)<>"-" THEN 
3710 BLB$=BLB$+"+"
3720 ELSE 
3730 BLB$(L)="+"
3740 ENDIF 
3750 ENDPROC 
3760 PROC UDHOVED
3770 CURSOR 2,1
3780 EXEC DATOUD(BDATO,DAT$)
3790 PRINT TAB(20);"Posteringsark";BLK$(1:25);"Dato:";DAT$
3800 CURSOR 3,3
3810 PRINT "Nr   Bilag    Tekst";BLK$(1:24);"Debet         Beløb        K";
3820 PRINT "redit"
3830 ENDPROC 
3840 PROC UDLINIE
3850 CURSOR 1,4
3860 PRINT USING "### #######     ":LINIENR,BILAG;
3870 IF TEKSTKODE<>0 THEN PRINT ATEKST$
3880 CURSOR 42,4
3890 PRINT USING "     ######  ":KONTO1;
3900 EXEC TUD(BLB2$,UBELØB$,0,0)
3910 PRINT UBELØB$;
3920 PRINT USING "   ######":KONTO2
3930 ENDPROC 
3940 PROC NYDATO
3950 REPEAT 
3960 CURSOR 3,23
3970 PRINT "Ny dato           (ÅÅMMDD)"+BLK$(1:51)
3980 CURSOR 11,23
3990 INPUT DAT$
4000 EXEC NRTEST(DAT$)
4010 UNTIL KTAL>79 AND (P DIV 100) MOD 100<13 AND P MOD 100<32
4020 BDATO=P
4030 ENDPROC 
4040 K1$="P641220:SYSTEM1"
4050 REPEAT 
4060 OPEN K1$,R
4070 IF STATUS(K1$)<>0 THEN 
4080 CLEAR 
4090 CURSOR 25,13
4100 INPUT "Isæt plade nr. 20 ,tast RETURN",A$
4110 EXEC NRTEST(A$)
4120 P=0
4130 ELSE 
4140 P=-1
4150 ENDIF 
4160 UNTIL P=-1
4170 GET K1$,1:MFANTAL,MDANTAL,MKANTAL
4180 EXEC FEJL(9,1,K1$)
4190 GET K1$,2:MKASPOST,MPPOST,MBHPOST
4200 EXEC FEJL(9,2,K1$)
4210 GET K1$,4:MKPOST,MFAK,MVGR,MKGR
4220 EXEC FEJL(9,3,K1$)
4230 GET K1$,5:MKRGR
4240 EXEC FEJL(9,4,K1$)
4250 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL
4260 EXEC FEJL(9,5,K1$)
4270 GET K1$,9:KRTAL
4280 EXEC FEJL(9,6,K1$)
4290 GET K1$,10:N$
4300 EXEC FEJL(9,7,K1$)
4310 GET K1$,11:K2$
4320 EXEC FEJL(9,8,K1$)
4330 GET K1$,12:K3$
4340 EXEC FEJL(9,9,K1$)
4350 GET K1$,13:K4$
4360 EXEC FEJL(9,10,K1$)
4370 GET K1$,15:K5$
4380 EXEC FEJL(9,11,K1$)
4390 GET K1$,16:K6$
4400 EXEC FEJL(9,12,K1$)
4410 GET K1$,17:K7$
4420 EXEC FEJL(9,13,K1$)
4430 GET K1$,20:K8$
4440 EXEC FEJL(9,14,K1$)
4450 GET K1$,21:K9$
4460 EXEC FEJL(9,15,K1$)
4470 GET K1$,36:K10$
4480 EXEC FEJL(9,16,K1$)
4490 CLOSE K1$
4500 EXEC FEJL(9,17,K1$)
4510 DIM FTAB1(MFANTAL DIV 4),DTAB1(MDANTAL DIV 4),KTAB1(MKANTAL DIV 4)
4520 DIM FTAB(4,2),DTAB(4,2),KTAB(4,2)
4530 K2$=N$+K2$;K3$=N$+K3$;K4$=N$+K4$;K5$=N$+K5$;K6$=N$+K6$;K7$=N$+K7$
4540 K8$=N$+K8$;K9$=N$+K9$;K10$=N$+K10$
4550 OPEN K10$,R
4560 EXEC FEJL(9,18,K10$)
4570 GET K10$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
4580 EXEC FEJL(9,19,K10$)
4590 FOR I=1 TO 3
4600 H=(I-1)*3+1
4610 GET K10$,I+5:TFIL$(H),TFIL$(H+1),TFIL$(H+2)
4620 EXEC FEJL(9,20,K10$)
4630 NEXT I
4640 GET K10$,12:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
4650 EXEC FEJL(9,21,K10$)
4660 GET K10$,13:T3(1),T3(2),T3(3),T3(4),T3(5),T3(6),T3(7),T3(8),T3(9)
4670 EXEC FEJL(9,22,K10$)
4680 CLOSE K10$
4690 EXEC FEJL(9,23,K10$)
4700 OPEN K2$,R
4710 EXEC FEJL(9,24,K2$)
4720 OPEN K3$,R
4730 EXEC FEJL(9,25,K3$)
4740 OPEN K4$,R
4750 EXEC FEJL(9,26,K4$)
4760 OPEN K5$,R
4770 EXEC FEJL(9,27,K5$)
4780 OPEN K6$,R
4790 EXEC FEJL(9,28,K6$)
4800 OPEN K7$,R
4810 EXEC FEJL(9,29,K7$)
4820 OPEN K8$,W
4830 EXEC FEJL(9,30,K8$)
4840 PSIDENR=T1(5);DATO=T1(7);BBILAG=T1(8);PPOST=T2(1);BHPOSTNR=T3(1)
4850 EXEC INDTAB1(FTAB1,MFANTAL,K2$)
4860 EXEC INDTAB1(DTAB1,MDANTAL,K3$)
4870 EXEC INDTAB1(KTAB1,MKANTAL,K4$)
4880 BLK$="                                                              "
4890 BLK$=BLK$+"              "
4900 TAL4$="0+";BDATO=DATO;CPIL=PPOST+1;BPIL=CPIL;APIL=0;LINIENR=1;MULTI=0
4910 CNR=1;SALDO$="0+";STREG$="-----------------------------------"
4920 STREG$=STREG$+STREG$;DPIL=0
4930 CLEAR 
4940 EXEC UDHOVED
4950 REPEAT 
4960 CASE CNR OF 
4970 STOP 
4980 WHEN 1
4990 REPEAT 
5000 REPEAT 
5010 CURSOR 3,23
5020 PRINT "Bilag        (0:færdig,RETURN:automatisk,A:annuller,D:ny dato,";
5030 PRINT "M:afslut multi)"
5040 CURSOR 8,23
5050 INPUT BIL$
5060 EXEC NRTEST(BIL$)
5070 UNTIL P=>-4 AND TEST2=0 AND L<=6
5080 FPIL=CPIL+DPIL
5090 IF (FPIL>MPPOST-3 OR APIL=35 OR FPIL+T3(1)-3>MBHPOST) AND P<>-3 THEN P=0
5100 IF P<>0 AND P>-2 AND LINIENR=19 THEN 
5110 CLEAR 
5120 EXEC UDHOVED
5130 LINIENR=1
5140 EXEC SYSGEM
5150 EXEC UDLINIE
5160 LINIENR=LINIENR+1
5170 ENDIF 
5180 REPEAT 
5190 CBILAG=-1
5200 CASE P OF 
5210 BILAG=P
5220 BBILAG=P
5230 CURSOR 1,LINIENR+3
5240 PRINT USING "### #######":LINIENR,BILAG
5250 P=-9
5260 CNR=2
5270 WHEN 0
5280 IF MULTI=0 THEN 
5290 IF CPIL>MPPOST-3 OR FPIL+T3(1)-3>MBHPOST THEN 
5300 REPEAT 
5310 CURSOR 3,23
5320 PRINT "Ikke plads til flere posteringer , tast RETURN";BLK$(1:30)
5330 CURSOR 50,23
5340 INPUT A$
5350 EXEC NRTEST(A$)
5360 UNTIL P=-1
5370 ENDIF 
5380 P=-9
5390 CNR=6
5400 ELSE 
5410 IF FPIL>MPPOST-3 OR APIL=35 OR FPIL+T3(1)-3>MBHPOST THEN 
5420 EXEC CALC(4,TAL4$,SALDO$,TAL4$)
5430 IF SI<>0 THEN 
5440 EXEC TUD(SALDO$,UBELØB$,1,0)
5450 REPEAT 
5460 CURSOR 3,23
5470 PRINT "Ikke plads til flere posteringer,";UBELØB$;" på differencekonto";
5480 PRINT ",RETURN"
5490 CURSOR 76,23
5500 INPUT A$
5510 EXEC NRTEST(A$)
5520 UNTIL P=-1
5530 APIL=APIL+1;DPIL=DPIL+2
5540 IF SALDO$(LEN(SALDO$))="+" THEN 
5550 CEA$(APIL)=SALDO$(1:LEN(SALDO$)-1)+"-"
5560 ELSE 
5570 CEA$(APIL)=SALDO$(1:LEN(SALDO$)-1)+"+"
5580 ENDIF 
5590 EXEC CALC(0,SALDO$,CEA$(APIL),SALDO$)
5600 KA(APIL)=DIFNR;TKA(APIL)=10;DA(APIL)=BDATO;CA(APIL)=BILAG
5610 TA$(APIL)="Difference multipostering"
5620 ENDIF 
5630 CBILAG=0
5640 P=-4
5650 ELSE 
5660 REPEAT 
5670 CURSOR 3,23
5680 PRINT "Multipostering ikke afsluttet , tast RETURN"+BLK$(1:34)
5690 CURSOR 46,23
5700 INPUT A$
5710 EXEC NRTEST(A$)
5720 UNTIL P=-1
5730 ENDIF 
5740 ENDIF 
5750 WHEN -1
5760 IF MULTI=0 THEN BBILAG=BBILAG+1
5770 P=BBILAG
5780 CBILAG=0
5790 WHEN -2
5800 EXEC NYDATO
5810 EXEC UDHOVED
5820 WHEN -3
5830 EXEC PSLET(0)
5840 WHEN -4
5850 IF MULTI=0 THEN EXIT 
5860 EXEC CALC(4,TAL4$,SALDO$,TAL4$)
5870 IF SI<>0 THEN 
5880 REPEAT 
5890 EXEC TUD(SALDO$,UBELØB$,1,0)
5900 REPEAT 
5910 CURSOR 3,23
5920 PRINT "Multipostering kan ikke afsluttes , difference :";UBELØB$;" tas";
5930 PRINT "t RETURN  "
5940 CURSOR 79,23
5950 INPUT A$
5960 EXEC NRTEST(A$)
5970 UNTIL P=-1
5980 CLEAR 
5990 X=1
6000 REPEAT 
6010 EXEC UDHOVED
6020 REPEAT 
6030 IF CA(X)<>0 AND LEN(CEA$(X))>0 THEN 
6040 EXEC CALC(5,CEA$(X),TAL4$,UBELØB$)
6050 CURSOR 1,(X-1) MOD 18+4
6060 PRINT USING "### #######     ":X,CA(X);
6070 IF TKA(X)>9 THEN 
6080 PRINT TA$(X);
6090 ELSE 
6100 IF TKA(X)<>0 THEN PRINT TFIL$(TKA(X));
6110 ENDIF 
6120 LOG=0
6130 CURSOR 42,(X-1) MOD 18+4
6140 IF CEA$(X,LEN(CEA$(X)))="-" THEN LOG=1
6150 PRINT USING "   ######    ":KA(X)+100000*(LOG=1);
6160 PRINT UBELØB$(1:13);
6170 PRINT USING "     ######":KA(X)+100000*(LOG=0)
6180 ENDIF 
6190 X=X+1
6200 UNTIL X=APIL+1 OR X MOD 19=0
6210 REPEAT 
6220 REPEAT 
6230 CURSOR 3,23
6240 PRINT "Type      (1-36:Annulering,0:færdig,N:ny post,RETURN:ny sid";
6250 PRINT "e)"+BLK$(1:10)
6260 CURSOR 8,23
6270 INPUT RET$
6280 EXEC NRTEST(RET$)
6290 UNTIL (P<37 AND P>-2) OR P=-8
6300 CASE P OF 
6310 IF P<=APIL AND P<X THEN 
6320 EXEC PSLET(1)
6330 ENDIF 
6340 WHEN 0
6350 EXEC CALC(4,TAL4$,SALDO$,TAL4$)
6360 IF SI<>0 THEN 
6370 P=-2
6380 ELSE 
6390 EXEC PPUT
6400 MULTI=0
6410 ENDIF 
6420 WHEN -1
6430 IF APIL>18 THEN 
6440 CLEAR 
6450 ELSE 
6460 P=1
6470 ENDIF 
6480 WHEN -8
6490 P=0
6500 LINIENR=(X-1) MOD 18+1
6510 ENDCASE 
6520 UNTIL P<1 AND P>-3
6530 UNTIL P=0 OR P=-2
6540 UNTIL P=0
6550 ELSE 
6560 EXEC PPUT
6570 MULTI=0
6580 ENDIF 
6590 ENDCASE 
6600 UNTIL CBILAG=-1
6610 UNTIL P=-9
6620 WHEN 2
6630 REPEAT 
6640 REPEAT 
6650 CURSOR 3,23
6660 PRINT "Tekst                              (max 25 tegn,0-19:tekstkode)";
6670 PRINT BLK$(1:14)
6680 CURSOR 10,23
6690 INPUT BTEKST$
6700 UNTIL LEN(BTEKST$)<26
6710 IF LEN(BTEKST$)<3 THEN 
6720 EXEC NRTEST(BTEKST$)
6730 ELSE 
6740 P=20;TEST2=0
6750 ENDIF 
6760 UNTIL P=>0 AND P<21 AND TEST2=0 AND P<>10
6770 IF P<>0 THEN 
6780 ATK=P MOD 10
6790 IF P=20 THEN 
6800 P=10
6810 TEKST$=BTEKST$
6820 ATEKST$=TEKST$
6830 ELSE 
6840 ATEKST$=TFIL$(ATK)+BLK$(1:15)
6850 IF P>10 THEN 
6860 REPEAT 
6870 CURSOR 3,23
6880 PRINT "Tekst                 (max 14 tegn)"+BLK$(1:42)
6890 CURSOR 10,23
6900 INPUT BTEKST$
6910 UNTIL LEN(BTEKST$)<15
6920 ATEKST$(12,25)=BTEKST$
6930 TEKST$=ATEKST$
6940 ENDIF 
6950 ENDIF 
6960 CURSOR 17,LINIENR+3
6970 PRINT ATEKST$
6980 ENDIF 
6990 CNR=3
7000 TEKSTKODE=P
7010 WHEN 3
7020 REPEAT 
7030 REPEAT 
7040 CURSOR 3,23
7050 PRINT "Debet-konto           (RETURN:overspringes)"+BLK$(1:34)
7060 CURSOR 16,23
7070 INPUT KTN$
7080 EXEC NRTEST(KTN$)
7090 UNTIL (((KTAL<10 AND KTAL>0) OR KTAL=KRTAL) AND TEST2=0) OR P=-1
7100 IF P=-1 THEN 
7110 KONTO1=100000
7120 MULTI=1
7130 OVS=1
7140 CEKS=0
7150 ELSE 
7160 OVS=0
7170 KONTO1=P
7180 EXEC KONTOOK
7190 ENDIF 
7200 UNTIL P=-1 OR P=-7
7210 EXEC KONTOUD(KONTO1)
7220 WHEN 4
7230 REPEAT 
7240 REPEAT 
7250 CURSOR 3,23
7260 PRINT "Beløb"+BLK$(1:70)
7270 CURSOR 10,23
7280 INPUT BLB$
7290 EXEC FORTEGN
7300 EXEC CALC(6,BLB$,TAL4$,UBELØB$)
7310 UNTIL FLAG=0
7320 EXEC CALC(4,BLB$,TAL4$,TAL4$)
7330 UNTIL SI<>0
7340 BLB2$=BLB$
7350 BLB3$=BLB$(1:LEN(BLB$)-1)+"-"
7360 EXEC TUD(BLB$,UBELØB$,0,0)
7370 CURSOR 55,LINIENR+3
7380 PRINT UBELØB$
7390 CNR=5
7400 WHEN 5
7410 REPEAT 
7420 REPEAT 
7430 CURSOR 3,23
7440 PRINT "Kredit-konto           (RETURN:overspringes,A:annuller)";
7450 PRINT "                     "
7460 CURSOR 17,23
7470 INPUT KTN$
7480 EXEC NRTEST(KTN$)
7490 UNTIL (((KTAL<10 AND KTAL>0) OR KTAL=KRTAL) AND TEST2=0) OR P=-1 OR P=-3
7500 IF P=-1 THEN 
7510 IF OVS=0 THEN 
7520 P=0
7530 KONTO2=100000
7540 MULTI=1
7550 EXEC CALC(0,SALDO$,BLB2$,SALDO$)
7560 APIL=APIL+1;DPIL=DPIL+1
7570 KA(APIL)=KONTO1
7580 DA(APIL)=BDATO
7590 CA(APIL)=BILAG
7600 TKA(APIL)=TEKSTKODE
7610 CEA$(APIL)=BLB2$
7620 IF TEKSTKODE>9 THEN 
7630 TA$(APIL)=TEKST$;DPIL=DPIL+1
7640 ELSE 
7650 TA$(APIL)=BLK$(1:25)
7660 ENDIF 
7670 CEKS=0
7680 EXEC KONTOUD(KONTO2)
7690 ENDIF 
7700 ELSE 
7710 IF P=-3 THEN 
7720 CEKS=1
7730 EXEC KONTOUD(P)
7740 ELSE 
7750 MO=MULTI+OVS
7760 CASE MO OF 
7770 STOP 
7780 WHEN 0
7790 KONTO2=P
7800 EXEC KONTOOK
7810 IF P=-7 THEN 
7820 EXEC KONTOUD(KONTO2)
7830 IF CEKS=0 THEN 
7840 EXEC PPUT
7850 ENDIF 
7860 ENDIF 
7870 WHEN 1
7880 REPEAT 
7890 CURSOR 3,23
7900 PRINT "Multipostering ikke afsluttet , tast RETURN"+BLK$(1:34)
7910 CURSOR 46,23
7920 INPUT A$
7930 EXEC NRTEST(A$)
7940 UNTIL P=-1
7950 WHEN 2
7960 KONTO2=P
7970 EXEC KONTOOK
7980 IF P=-7 THEN 
7990 EXEC KONTOUD(KONTO2)
8000 IF CEKS=0 THEN 
8010 EXEC CALC(0,SALDO$,BLB3$,SALDO$)
8020 APIL=APIL+1;DPIL=DPIL+1
8030 KA(APIL)=KONTO2
8040 DA(APIL)=BDATO
8050 CA(APIL)=BILAG
8060 TKA(APIL)=TEKSTKODE
8070 CEA$(APIL)=BLB3$
8080 IF TEKSTKODE>9 THEN 
8090 TA$(APIL)=TEKST$;DPIL=DPIL+1
8100 ELSE 
8110 TA$(APIL)=BLK$(1:25)
8120 ENDIF 
8130 ENDIF 
8140 ENDIF 
8150 ENDCASE 
8160 ENDIF 
8170 ENDIF 
8180 UNTIL P=0 OR P=-3 OR P=-7
8190 WHEN 6
8200 REPEAT 
8210 CURSOR 3,23
8220 PRINT "Ønskes afslutning (J/N)"+BLK$(1:54)
8230 CURSOR 27,23
8240 INPUT A$
8250 EXEC NRTEST(A$)
8260 UNTIL P=-7 OR P=-8
8270 IF P=-7 THEN 
8280 MUL$="2"
8290 OPEN K9$,W
8300 EXEC FEJL(9,32,K9$)
8310 FOR I=1 TO CPIL-1
8320 GET K8$,I:KONTO1,DDATO,BILAG,TKO$,BLB2$
8330 EXEC FEJL(9,33,K8$)
8340 BHPOSTNR=BHPOSTNR+1
8350 PUT K9$,BHPOSTNR:KONTO1,DDATO,BILAG,TKO$,BLB2$,MUL$
8360 EXEC FEJL(9,34,K9$)
8370 IF ORD(TKO$)-48>9 THEN 
8380 I=I+1
8390 BHPOSTNR=BHPOSTNR+1
8400 GET K8$,I:KONTO1,TEKST$
8410 EXEC FEJL(9,35,K8$)
8420 PUT K9$,BHPOSTNR:KONTO1,TEKST$
8430 EXEC FEJL(9,36,K9$)
8440 ENDIF 
8450 NEXT I
8460 CLOSE K9$
8470 EXEC FEJL(9,38,K9$)
8480 EXEC PGETUD(PSIDENR)
8490 PPOST=0
8500 ELSE 
8510 REPEAT 
8520 CURSOR 3,23
8530 PRINT "Ønskes kontroludskrift (J/N)"+BLK$(1:49)
8540 CURSOR 31,23
8550 INPUT A$
8560 EXEC NRTEST(A$)
8570 UNTIL P=-7 OR P=-8
8580 IF P=-7 THEN 
8590 EXEC PGETUD(1)
8600 ENDIF 
8610 PPOST=CPIL-1
8620 ENDIF 
8630 CNR=-1
8640 ENDCASE 
8650 UNTIL CNR=-1
8660 CLOSE K8$
8670 EXEC FEJL(9,40,K8$)
8680 CLOSE 
8690 EXEC SYSGEM
8700 OUTPUT T
8710 CHAIN "P641210:OPSTART"
8720 END