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

⟦9014f0a1d⟧

    Length: 12640 (0x3160)
    Notes: Mikados TextFile, Mikados_K
    Names: »RENTE«

Derivation

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

Text

0090 DIM OP1$(12),OP2$(12),RES$(14),K2$(17),K4$(17),DEBNAVN$(25)
0100 DIM A$(6),SUM1$(14),SUM2$(12),SUM3$(12),K5$(17),SALDO$(12),FSALDO$(12)
0110 DIM RENTE$(12),UBELØB1$(14),UBELØB2$(14),UBELØB3$(14),NAVN$(25)
0130 DIM DSALDO1$(12),DEBKGR$(1),DSALDO2$(12),DSALDO3$(12),DSALDO4$(12)
0140 DIM DEBLK$(1),DEBGADE$(25),DEBTLF$(10),DEBBY$(20),ÅRKØB$(12),MDNKØB$(12)
0150 DIM K1$(17),N$(6),K3$(17),DAT$(8),TXT1$(6,28),RENPRO$(12),TAH$(12)
0160 DIM MINREN$(12),SALDO1$(12),TAL3$(12),MUL$(1),TKO$(1),K6$(17)
0170 DIM TORENTE$(12),TEKST$(25),T1(9),T2(9),BLB2$(12)
0180 PROC SKRIVLIST(TXT,SIDE)
0190 REPEAT 
0200 OUTPUT T
0210 CLEAR 
0220 REPEAT 
0230 CURSOR 15,13
0240 INPUT "Monter papir til udskrift af liste og tast RETURN",A$
0250 EXEC NRTEST(A$)
0260 UNTIL P=-1
0270 OUTPUT P
0280 LINIE=1;SUM1$="0+";SUM2$="0+";SUM3$="0+";SALDO$="0+";FSALDO$="0+"
0281 RENTE$="0+"
0290 FOR RENNR1=1 TO REN
0300 IF LINIE=40 THEN 
0310 PRINT CHR(10);CHR(10);CHR(10)
0320 LINIE=1;SIDE=SIDE+1
0330 ENDIF 
0340 IF LINIE=1 THEN 
0350 PRINT TAB(10);CHR(14);TXT$;CHR(15);" Dato: ";DAT$;
0360 PRINT USING " side:###":SIDE
0370 PRINT CHR(10)
0380 PRINT " Nr   Konto Navn";TAB(44);"Saldo     Forf.saldo   Rentebeløb"
0390 PRINT " "
0400 ENDIF 
0410 REPEAT 
0420 GET K5$,RENNR1:KONTO,NAVN$,SALDO$,FSALDO$,RENTE$
0430 EXEC FEJL(1,1,K5$)
0440 IF KONTO=0 THEN RENNR1=RENNR1+1;SALDO$="0+";FSALDO$="0+";RENTE$="0+"
0450 UNTIL KONTO<>0 OR RENNR1=REN+1
0455 IF KONTO=0 THEN EXIT 
0460 EXEC CALC(0,SUM1$,SALDO$,SUM1$)
0470 EXEC CALC(0,SUM2$,FSALDO$,SUM2$)
0480 EXEC CALC(0,SUM3$,RENTE$,SUM3$)
0490 EXEC TUD(SALDO$,UBELØB1$,1,0)
0500 EXEC TUD(FSALDO$,UBELØB2$,1,0)
0510 EXEC TUD(RENTE$,UBELØB3$,1,0)
0520 PRINT USING "#### ###### ":RENNR1,KONTO;
0530 PRINT NAVN$;TAB(38);UBELØB1$;UBELØB2$;UBELØB3$
0540 LINIE=LINIE+1
0550 NEXT RENNR1
0560 FOR LINIE=LINIE TO 40
0570 PRINT " "
0580 NEXT LINIE
0590 PRINT ""
0600 EXEC TUD(SUM1$,UBELØB1$,1,0)
0610 EXEC TUD(SUM2$,UBELØB2$,1,0)
0620 EXEC TUD(SUM3$,UBELØB3$,1,0)
0630 PRINT TAB(10);CHR(14);"Total";CHR(15);TAB(34);UBELØB1$;UBELØB2$;UBELØB3$
0640 PRINT CHR(10)
0650 OUTPUT T
0660 CLEAR 
0670 SIDE=SIDE+1;P=-8
0680 IF TYPE=2 THEN EXIT 
0690 REPEAT 
0700 CURSOR 15,13
0710 INPUT "Ønskes ny udskrift (J/N) ",A$
0720 EXEC NRTEST(A$)
0730 UNTIL P=-7 OR P=-8
0740 UNTIL P=-8
0750 ENDPROC 
0751 PROC TUD(BLB1,UBLB1,TEGN,STØR)
0752 BLB2$=BLB1$
0753 EXEC CALC(5,BLB2$,TAH$,UBLB1$)
0754 IF TEGN=0 THEN UBLB1$=UBLB1$(1:13)
0755 IF TEGN=1 AND UBLB1$(LEN(UBLB1$))="+" THEN UBLB1$(LEN(UBLB1$))=" "
0756 IF STØR=1 THEN UBLB1$=UBLB1$(4:LEN(UBLB1$)-3)
0757 ENDPROC 
0760 PROC SYSGEM
0770 T2(1)=BHPOSTNR;T1(9)=RENRAPSIDE;T2(8)=REN
0780 OPEN K6$,W
0790 EXEC FEJL(3,1,K6$)
0800 PUT K6$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
0810 EXEC FEJL(3,2,K6$)
0820 PUT K6$,13:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
0830 EXEC FEJL(3,3,K6$)
0840 CLOSE K6$
0850 EXEC FEJL(3,4,K6$)
0860 ENDPROC 
0870 PROC DATOUD(DA1,DA2)
0880 DA3=DA1
0890 DA2$="        "
0900 FOR J=8 TO 1 STEP -1
0910 IF J MOD 3=0 THEN 
0920 DA2$(J)="."
0930 ELSE 
0940 DA2$(J)=CHR(DA3 MOD 10+48)
0950 DA3=DA3 DIV 10
0960 ENDIF 
0970 NEXT J
0980 ENDPROC 
0990 PROC INDTAB1(Z,MANT5,L7)
1000 PIL1=MANT5 DIV 32
1010 FOR I=1 TO PIL1
1020 H=(I-1)*8+1
1030 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)
1040 EXEC FEJL(2,1,L7$)
1050 NEXT I
1060 ENDPROC 
1070 PROC NRTEST(NUM1)
1080 P=0;TEST2=0;KTAL=0;L=LEN(NUM1$)
1090 IF L>6 THEN EXIT 
1100 CASE L OF 
1110 FOR I=1 TO L
1120 P1=INT(ORD(NUM1$(I))-48)
1130 IF P1<0 OR P1>9 THEN TEST2=1
1140 P=P*10+P1
1150 NEXT I
1160 KTAL=P DIV 10000
1170 WHEN 0
1180 P=-1
1190 WHEN 1
1200 CASE NUM1$ OF 
1210 P=INT(ORD(NUM1$)-48)
1220 WHEN "D","d"
1230 P=-2
1240 WHEN "A","a"
1250 P=-3
1260 WHEN "M","m"
1270 P=-4
1280 WHEN "J","j"
1290 P=-7
1300 WHEN "N","n"
1310 P=-8
1320 ENDCASE 
1330 ENDCASE 
1340 ENDPROC 
1350 PROC FINDPOST2(TAB5,MANT8,NØGL6,PIL10)
1360 PIL1=MANT8 DIV 8;PIL10=PIL1;MANT3=MANT8 DIV 4;MANT4=MANT8 DIV 32
1370 REPEAT 
1380 IF NØGL6=TAB5(PIL10) OR PIL1=1 THEN EXIT 
1390 PIL1=(PIL1+1) DIV 2;PIL10=PIL10+PIL1*(1-2*(NØGL6<TAB5(PIL10)))
1400 IF PIL10<1 THEN PIL10=1
1410 IF PIL10>MANT3 THEN PIL10=MANT3
1420 UNTIL PIL1=0
1430 IF TAB5(PIL10)>NØGL6 THEN PIL10=PIL10-1*(PIL10>1)
1440 ENDPROC 
1450 PROC CALC(AR3,B1,B2,ES)
1460 OP1$=B1$;OP2$=B2$;RES$=ES$;SI=0;FLAG=0;ART=AR3-6*(AR3>5)
1470 CALL "P641215:REGN"
1480 ES$=RES$
1490 IF AR3<6 THEN 
1500 IF FLAG THEN STOP 
1510 ENDIF 
1520 ENDPROC 
1530 PROC FEJL(NR1,NR2,NR3)
1540 IF STATUS(NR3$)<>0 THEN 
1550 PRINT STATUS(NR3$),NR1,NR2,NR3$
1560 STOP 
1570 ENDIF 
1580 ENDPROC 
1590 PROC INDLÆS1(U,PIL8)
1600 PIL1=MDANTAL DIV 32+PIL8
1610 GET K2$,PIL1:U(1,1),U(1,2),U(2,1),U(2,2),U(3,1),U(3,2),U(4,1),U(4,2)
1620 EXEC FEJL(1,1,K2$)
1630 ENDPROC 
1640 PROC HENTDPOST
1650 S=DTAB3(DPIL3,2)
1660 GET K3$,S:KONTO,DEBNAVN$,DSALDO1$,DEBKGR$
1670 EXEC FEJL(8,1,K3$)
1680 GET K3$,S+1:DSALDO2$,DSALDO3$,DSALDO4$,DEBPOSTNR,DEBLK$
1690 EXEC FEJL(8,2,K3$)
1700 GET K3$,S+2:DEBGADE$,DEBTLF$,HPOST,HKUNDE
1710 EXEC FEJL(8,3,K3$)
1720 GET K3$,S+3:DEBBY$,ÅRKØB$,MDNKØB$
1730 EXEC FEJL(8,4,K3$)
1740 ENDPROC 
1750 K1$="P641220:SYSTEM1"
1760 OPEN K1$,R
1770 EXEC FEJL(9,1,K1$)
1780 GET K1$,1:MFANTAL,MDANTAL,MKANTAL,MVANTAL
1790 EXEC FEJL(9,2,K1$)
1800 GET K1$,2:MKAS,MPOS,MBHPOST,MFMID
1810 EXEC FEJL(9,3,K1$)
1820 GET K1$,3:MDMID
1830 EXEC FEJL(9,4,K1$)
1840 GET K1$,7:INDMOMS,RENTENR
1850 EXEC FEJL(9,5,K1$)
1855 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL
1856 EXEC FEJL(9,51,K1$)
1860 GET K1$,10:N$
1870 EXEC FEJL(9,6,K1$)
1880 GET K1$,12:K2$
1890 EXEC FEJL(9,7,K1$)
1900 GET K1$,16:K3$
1910 EXEC FEJL(9,8,K1$)
1920 GET K1$,21:K4$
1930 EXEC FEJL(9,9,K1$)
1940 GET K1$,36:K6$
1950 EXEC FEJL(9,10,K1$)
1960 CLOSE K1$
1970 EXEC FEJL(9,11,K1$)
1980 K2$=N$+K2$;K3$=N$+K3$;K4$=N$+K4$;K6$=N$+K6$;K5$=N$+"15:RENPOST"
1990 DIM DTAB(MDANTAL DIV 4),DTAB3(4,2)
2000 IF MDMID>MBHPOST THEN MDMID=MBHPOST
2010 CREATE K5$,MDMID,70
2020 IF STATUS(K5$)>2 THEN STOP 
2030 OPEN K6$,R
2040 EXEC FEJL(9,12,K6$)
2050 GET K6$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9)
2060 EXEC FEJL(9,13,K6$)
2070 GET K6$,13:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9)
2080 EXEC FEJL(9,14,K6$)
2090 CLOSE K6$
2100 EXEC FEJL(9,15,K6$)
2110 DATO=T1(7);BHPOSTNR=T2(1);RENRAPSIDE=T1(9);REN=T2(8);TAH$="0+"
2111 TAL3$="100+"
2120 OPEN K2$,R
2130 EXEC FEJL(9,16,K2$)
2140 OPEN K3$,R
2150 EXEC FEJL(9,17,K3$)
2160 OPEN K4$,W
2170 EXEC FEJL(9,18,K4$)
2180 OPEN K5$,W
2190 EXEC FEJL(9,19,K5$)
2200 EXEC INDTAB1(DTAB,MDANTAL,K2$)
2210 EXEC DATOUD(DATO,DAT$)
2220 TXT1$(1)="Beregning af rente"
2230 TXT1$(2)="Bogføring af rente"
2240 TXT1$(3)="Sletning af renteposteringer"
2250 TXT1$(4)="Udskriv renteposteringer"
2260 TXT1$(5)="Renteberegningsoversigt"
2270 TXT1$(6)="Rentebogføringsrapport"
2280 REPEAT 
2290 OUTPUT T
2300 CLEAR 
2310 CURSOR 20,1
2320 PRINT "Renteberegning"
2330 CURSOR 16,4
2340 PRINT "0 :Færdig"
2350 FOR I=1 TO 4
2360 CURSOR 15,(I-1)*2+6
2370 PRINT I;":";TXT1$(I)
2380 NEXT I
2390 REPEAT 
2400 CURSOR 18,14
2410 INPUT "Vælg type (0-4): ",A$
2420 EXEC NRTEST(A$)
2430 UNTIL P=>0 AND P<5 AND TEST2=0
2440 TYPE=P
2450 IF TYPE=0 THEN EXIT 
2470 CLEAR 
2480 CURSOR 18,8
2490 PRINT TXT1$(TYPE)
2500 CASE TYPE OF 
2510 STOP 
2520 WHEN 1
2525 REPEAT 
2530 REPEAT 
2540 CURSOR 18,10
2550 PRINT "Fra kundenr :       (0:Alle)"
2560 CURSOR 31,10
2570 INPUT " ",A$
2580 EXEC NRTEST(A$)
2590 UNTIL (KTAL=DTAL OR P=0) AND TEST2=0
2600 FRANR=P
2610 IF P=0 THEN 
2620 FRA=1;TIL=MDANTAL DIV 4;TILNR=(DTAL+1)*10000
2630 ELSE 
2640 EXEC FINDPOST2(DTAB,MDANTAL,P,FRA)
2650 IF DTAB(FRA)=1000000 THEN FRA=0
2660 ENDIF 
2670 UNTIL FRA>0
2680 IF P>0 THEN 
2690 REPEAT 
2700 REPEAT 
2710 CURSOR 18,12
2720 INPUT "Til kundenr : ",A$
2730 EXEC NRTEST(A$)
2740 UNTIL KTAL=DTAL AND TEST2=0
2750 EXEC FINDPOST2(DTAB,MDANTAL,P,TIL)
2760 TILNR=P
2770 UNTIL FRA<=TIL
2780 ENDIF 
2790 REPEAT 
2800 REPEAT 
2810 CURSOR 18,14
2820 INPUT "Indtast renteprocent: ",RENPRO$
2830 RENPRO$=RENPRO$+"+"
2840 EXEC CALC(6,RENPRO$,TAH$,RENPRO$)
2850 UNTIL FLAG=0
2860 REPEAT 
2870 CURSOR 18,16
2880 PRINT "Er ";RENPRO$(7:5);" % rigtig (J/N)"
2890 CURSOR 42,16
2900 INPUT " ",A$
2910 EXEC NRTEST(A$)
2920 UNTIL P=-7 OR P=-8
2930 UNTIL P=-7
2940 REPEAT 
2950 CURSOR 18,18
2960 INPUT "Indtast minimumsrentebeløb: ",MINREN$
2970 MINREN$=MINREN$+"+"
2980 EXEC CALC(6,MINREN$,TAH$,MINREN$)
2990 UNTIL FLAG=0
3000 REPEAT 
3010 CURSOR 18,20
3020 PRINT "Foretages denne beregning før eller efter månedsafslutning"
3030 CURSOR 18,22
3040 INPUT "Vælg 0:Før , 1:Efter ",A$
3050 EXEC NRTEST(A$)
3060 UNTIL (P=0 OR P=1) AND TEST2=0
3070 FØR=P
3080 FOR DPIL1=FRA TO TIL
3090 IF TILNR<DTAB(DPIL1) OR REN=MDMID THEN EXIT 
3100 EXEC INDLÆS1(DTAB3,DPIL1)
3110 FOR DPIL3=1 TO 4
3120 IF DTAB3(DPIL3,1)=>FRANR AND DTAB3(DPIL3,1)<=TILNR THEN 
3130 EXEC HENTDPOST
3140 SALDO$="0+";SALDO1$="0+"
3150 EXEC CALC(0,DSALDO4$,DSALDO3$,SALDO$)
3160 EXEC CALC(0,DSALDO1$,DSALDO2$,SALDO1$)
3170 EXEC CALC(0,SALDO1$,SALDO$,SALDO1$)
3180 IF FØR=0 THEN EXEC CALC(0,SALDO$,DSALDO2$,SALDO$)
3190 IF SALDO$(LEN(SALDO$))="+" THEN 
3200 EXEC CALC(2,SALDO$,RENPRO$,RENTE$)
3210 EXEC CALC(3,RENTE$,TAL3$,RENTE$)
3220 EXEC CALC(4,RENTE$,MINREN$,TAL3$)
3230 IF SI<>1 THEN 
3240 REN=REN+1
3250 PUT K5$,REN:KONTO,DEBNAVN$,SALDO1$,SALDO$,RENTE$
3260 EXEC FEJL(2,1,K5$)
3265 ENDIF 
3270 ENDIF 
3280 ENDIF 
3290 IF DTAB3(DPIL3,1)>TILNR OR REN=MDMID THEN EXIT 
3300 NEXT DPIL3
3310 NEXT DPIL1
3320 IF REN=MDMID THEN 
3330 CLEAR 
3340 REPEAT 
3350 CURSOR 15,13
3360 INPUT "Ikke plads til flere renteposteringer,tast RETURN",A$
3370 EXEC NRTEST(A$)
3380 UNTIL P=-1
3390 ENDIF 
3400 CLEAR 
3410 REPEAT 
3420 CURSOR 15,13
3430 INPUT "Ønskes liste udskrevet (J/N): ",A$
3440 EXEC NRTEST(A$)
3450 UNTIL P=-7 OR P=-8
3460 IF P=-7 THEN EXEC SKRIVLIST(TXT1$(5),1)
3470 WHEN 2
3480 MUL$="4";TKO$=CHR(23+48);TORENTE$="0+"
3490 FOR RENNR1=1 TO REN
3500 GET K5$,RENNR1:KONTO,NAVN$,SALDO1$,SALDO$,RENTE$
3510 EXEC FEJL(4,1,K5$)
3520 IF KONTO<>0 THEN 
3530 BHPOSTNR=BHPOSTNR+1
3540 PUT K4$,BHPOSTNR:KONTO,DATO,RENNR1,TKO$,RENTE$,MUL$
3550 EXEC FEJL(4,2,K4$)
3560 EXEC CALC(1,TORENTE$,RENTE$,TORENTE$)
3570 ENDIF 
3580 NEXT RENNR1
3590 BHPOSTNR=BHPOSTNR+2;TKO$=CHR(10+48);TEKST$="Samlet rentepostering"
3600 PUT K4$,BHPOSTNR-1:RENTENR,DATO,RENRAPSIDE,TKO$,TORENTE$,MUL$
3610 EXEC FEJL(4,3,K4$)
3620 PUT K4$,BHPOSTNR:RENTENR,TEKST$
3630 EXEC FEJL(4,4,K4$)
3640 EXEC SKRIVLIST(TXT1$(6),RENRAPSIDE)
3650 REN=0
3660 EXEC SYSGEM
3670 FOR I=1 TO RENNR1-1
3680 PUT K5$,I:0,TAH$,TAH$,TAH$
3690 EXEC FEJL(4,5,K5$)
3700 NEXT I
3710 WHEN 3
3720 REPEAT 
3730 CURSOR 18,10
3740 PRINT "Fra posteringsnr :       (0:Alle,RETURN:færdig)"
3750 CURSOR 36,10
3760 INPUT " ",A$
3770 EXEC NRTEST(A$)
3780 UNTIL P<=REN AND TEST2=0
3790 FRA=P
3800 IF P<>-1 THEN 
3810 IF P=0 THEN 
3820 FRA=1;TIL=REN
3830 ELSE 
3840 REPEAT 
3850 CURSOR 18,12
3860 INPUT "Til posteringsnr : ",A$
3870 EXEC NRTEST(A$)
3880 UNTIL P=>FRA AND TEST2=0 AND P<=REN
3890 ENDIF 
3895 TIL=P
3900 FOR RENNR1=FRA TO TIL
3910 GET K5$,RENNR1:KONTO,NAVN$,SALDO$,FSALDO$,RENTE$
3920 EXEC FEJL(3,1,K5$)
3930 PUT K5$,RENNR1:0,NAVN$,SALDO$,FSALDO$,RENTE$
3940 EXEC FEJL(3,2,K5$)
3950 NEXT RENNR1
3960 CLEAR 
3970 REPEAT 
3980 CURSOR 15,13
3990 INPUT "Ønskes liste udskrevet (J/N): ",A$
4000 EXEC NRTEST(A$)
4010 UNTIL P=-7 OR P=-8
4020 IF P=-7 THEN EXEC SKRIVLIST(TXT1$(5),1)
4030 ENDIF 
4040 WHEN 4
4050 EXEC SKRIVLIST(TXT1$(5),1)
4060 ENDCASE 
4080 UNTIL TYPE=2 OR TYPE=0
4090 CLOSE K4$
4100 EXEC FEJL(9,20,K4$)
4110 CLOSE K5$
4120 EXEC FEJL(9,21,K5$)
4130 CLOSE 
4140 CLEAR 
4150 REPEAT 
4160 CURSOR 15,13
4170 INPUT "Isæt plade nr 10 og tast RETURN",A$
4180 EXEC NRTEST(A$)
4190 UNTIL P=-1
4200 IF TYPE=2 THEN CHAIN "P641210:BJ"
4210 EXEC SYSGEM
4220 CHAIN "P641210:OPSTART"