|
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: 25280 (0x62c0) Notes: Mikados TextFile, Mikados_K Names: »KASRAP«
└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS ) └─ ⟦this⟧ »KASRAP«
0100 DIM OP1$(12),OP2$(12),RES$(14),A1$(12),A2$(77),A3$(25),A4$(17) 0110 DIM A5$(17),A6$(17),A7$(25),A8$(12),A9$(1),B0$(25) 0120 DIM B1$(12),B2$(12),B3$(12),B4$(25),B5$(25) 0130 DIM B6$(17),B7$(77),B8$(14),B9$(12),C0$(9),C1$(20),C2$(17) 0140 DIM C3$(12),C4$(12),C5$(1),A$(2),C6$(12),C7$(1),C8$(1) 0150 DIM C9$(17),D0$(17),D1$(17),D2$(17),D3$(17),D4$(26),D5$(7),D6$(8) 0160 DIM D7$(12),D8$(12),D9$(12),E0$(12),E1$(12) 0170 DIM E2$(17),E3$(25),E4$(25),E5$(18,10),E6$(1),E7$(6),E8(9) 0180 DIM E9$(17),F0(9),F1$(1),F2$(1),F3$(12),F4$(12),F5$(6,12) 0190 DIM F6$(12),F7$(12),F8$(25),F9$(6,12),G0$(1),G1(9) 0200 DIM G2(18),G3(18),G4(18),G5(18),G6$(18,12),G7(18),G8$(18,25) 0210 PROC CALC(G9,H0,H1,H2) 0220 OP1$=H0$;OP2$=H1$;RES$=H2$;SI=0;FLAG=0;ART=G9-6*(G9>5) 0230 CALL "P641210:REGN" 0240 H2$=RES$ 0250 IF G9<>6 THEN 0260 IF FLAG THEN STOP 0270 ENDIF 0280 ENDPROC 0290 PROC INDTASTNING(H3) 0300 REPEAT 0310 CASE H3 OF 0320 STOP 0330 WHEN 1 0340 REPEAT 0350 REPEAT 0360 CURSOR 3,23 0370 PRINT "Bilag (0:Færdig, RETURN:Automatisk, D:Ny dato, A:Annuller)" 0380 CURSOR 8,23 0390 INPUT D5$ 0400 EXEC NRTEST(D5$) 0410 UNTIL P=>-3 AND H4=0 0420 IF P<>0 AND H5=19 AND P<>-2 AND P<>-3 THEN 0430 CLEAR 0440 EXEC UDHOVED 0450 H5=1 0460 EXEC UDLINIE(H6,H7,E4$,F4$,H8) 0470 EXEC KYSGEM 0480 H5=H5+1 0490 ENDIF 0500 H9=-1 0510 REPEAT 0520 H9=-1 0530 CASE P OF 0540 CURSOR 1,H5+3 0550 PRINT USING "###":H5 0560 H7=P 0570 P=-4 0580 I0=H7 0590 CURSOR 4,H5+3 0600 PRINT USING "#######":H7 0610 H3=2 0620 WHEN 0 0630 H3=6 0640 IF I1=2 THEN H3=-1 0650 P=-4 0660 WHEN -1 0670 I0=I0+1 0680 P=I0 0690 H9=0 0700 WHEN -2 0710 EXEC NYDATO 0720 EXEC UDHOVED 0730 WHEN -3 0740 IF I2>I3 THEN 0750 I0=I0-1 0760 H5=H5-1 0770 EXEC KLET(5) 0780 EXEC ÆND(1,F4$,H8) 0790 I2=I3;I4=I3-1 0800 ENDIF 0810 ENDCASE 0820 UNTIL H9=-1 0830 UNTIL P=-4 0840 WHEN 2 0850 REPEAT 0860 REPEAT 0870 CURSOR 3,23 0880 PRINT "Tekst"+B7$(1:27)+"(max 25 tegn)"+B7$(1:32) 0890 CURSOR 9,23 0900 INPUT D4$ 0910 I5=LEN(D4$) 0920 UNTIL I5<=25 0930 IF I5<3 THEN 0940 EXEC NRTEST(D4$) 0950 ELSE 0960 P=20;H4=0 0970 ENDIF 0980 UNTIL P=>0 AND P<21 AND H4=0 AND P<>10 0990 IF P<>0 THEN 1000 I6=P MOD 10 1010 IF I6=0 THEN 1020 P=10 1030 E3$=D4$ 1040 E4$=E3$ 1050 ELSE 1060 E4$=E5$(I6)+B7$(1:15) 1070 IF P>10 THEN 1080 REPEAT 1090 CURSOR 3,23 1100 PRINT "Tekst";B7$(1:16);"(max 14 tegn)"+B7$(1:43) 1110 CURSOR 9,23 1120 INPUT D4$ 1130 UNTIL LEN(D4$)<15 1140 E4$(12,25)=D4$ 1150 E3$=E4$ 1160 ENDIF 1170 ENDIF 1180 CURSOR 12,H5+3 1190 PRINT E4$ 1200 ELSE 1210 E4$=B7$(1:25) 1220 ENDIF 1230 H3=3 1240 I7=P 1250 WHEN 3 1260 REPEAT 1270 REPEAT 1280 CURSOR 3,23 1290 PRINT "Konto (5 cifre)";B7$(1:53) 1300 CURSOR 9,23 1310 INPUT D5$ 1320 EXEC NRTEST(D5$) 1330 UNTIL H4=0 AND (I8<>0 AND I5=5) 1340 H6=P 1350 EXEC KTNAVN(I8,H6) 1360 CURSOR 15,23 1370 PRINT "(Navn:";B7$(1:27);"Er konto rigtig (J/N) " 1380 CURSOR 22,23 1390 PRINT B4$ 1400 REPEAT 1410 CURSOR 64,23 1420 INPUT A$ 1430 EXEC NRTEST(A$) 1440 UNTIL P=-7 OR P=-8 1450 UNTIL P=-7 AND ((I9=0 AND I1=1) OR I1<>1) 1460 IF I9=1 THEN 1470 EXEC KLET(5) 1480 H3=1;I0=I0-1 1490 ELSE 1500 CURSOR 38,H5+3 1510 H3=4 1520 IF I1=1 THEN H3=-1 1530 PRINT USING "######":H6 1540 ENDIF 1550 WHEN 4 1560 REPEAT 1570 REPEAT 1580 REPEAT 1590 REPEAT 1600 CURSOR 3,23 1610 PRINT "Beløb";B7$(1:14);"(Kredit indtastes med efterstillet minus)"; 1620 PRINT B7$(1:16) 1630 CURSOR 8,23 1640 INPUT F3$ 1650 UNTIL LEN(F3$)>0 1660 EXEC FORTEGN 1670 EXEC CALC(6,F3$,B9$,B8$) 1680 UNTIL FLAG=0 1690 EXEC CALC(4,F3$,B9$,B9$) 1700 UNTIL SI<>0 AND FLAG=0 1710 I8=H6 DIV 10000 1720 J0=0 1730 D5$=F3$(LEN(F3$)) 1740 IF (I8=J1 AND D5$="+") OR (I8=J2 AND D5$="-") THEN 1750 EXEC TESTSALDO(F3$) 1760 ENDIF 1770 UNTIL J0=0 1780 F4$=F3$ 1790 EXEC KLET(3) 1800 IF D5$="+" THEN 1810 CURSOR 46,H5+3 1820 J3=1 1830 ELSE 1840 CURSOR 61,H5+3 1850 J3=0 1860 ENDIF 1870 EXEC TUD(F4$,B8$,0,0) 1880 PRINT B8$ 1890 H3=5 1900 IF I1=1 THEN H3=-1 1910 WHEN 5 1920 REPEAT 1930 CURSOR 3,23 1940 PRINT "Kode (0:Annullering, 1:Kasse, 2:Giro, 3:Bank)"+B7$(1:27) 1950 CURSOR 7,23 1960 INPUT D5$ 1970 EXEC NRTEST(D5$) 1980 UNTIL (P>0 AND P<4) OR (P=0 AND I1<>1) 1990 H8=P;H3=1 2000 IF H8=0 THEN 2010 EXEC KLET(5) 2020 I0=I0-1 2030 ELSE 2040 CURSOR 77,H5+3 2050 PRINT USING "##":H8 2060 IF I1<>1 THEN 2070 EXEC ÆND(0,F4$,H8) 2080 H5=H5+1 2090 EXEC GENNYPOST 2100 ENDIF 2110 ENDIF 2120 IF I1=1 THEN H3=-1 2130 WHEN 6 2140 REPEAT 2150 CURSOR 3,23 2160 PRINT "Ønskes afstemning J/N "+B7$(1:54) 2170 CURSOR 22,23 2180 INPUT A$ 2190 EXEC NRTEST(A$) 2200 UNTIL P=-7 OR P=-8 2210 EXEC KYSGEM 2220 IF P=-7 THEN 2230 J4=0 2240 FOR I=1 TO 6 2250 REPEAT 2260 REPEAT 2270 CURSOR 3,23 2280 PRINT J5$(I);B7$(1:60) 2290 CURSOR 17,23 2300 INPUT F3$ 2310 UNTIL LEN(F3$)>0 2320 EXEC FORTEGN 2330 EXEC CALC(6,F3$,B9$,B8$) 2340 UNTIL FLAG=0 2350 IF I MOD 2=1 THEN 2360 F9$(I)=F3$ 2370 ELSE 2380 F9$(I)=F3$(1:LEN(F3$)-1)+"-" 2390 ENDIF 2400 NEXT I 2410 ELSE 2420 J4=1 2430 ENDIF 2440 H3=-1 2450 ENDCASE 2460 UNTIL H3=-1 2470 ENDPROC 2480 PROC GENNYPOST 2490 I3=I2;F1$=CHR(I7+48);F2$=CHR(H8+48) 2500 PUT D2$,I2:H6,J6,H7,F1$,F4$,F2$ 2510 EXEC FEJL(6,1,D2$) 2520 I2=I2+1 2530 IF I7>9 THEN 2540 PUT D2$,I2:E3$ 2550 EXEC FEJL(6,2,D2$) 2560 I2=I2+1 2570 ENDIF 2580 I4=I2-1 2590 ENDPROC 2600 PROC HENTKRPOST 2610 J7=J8(J9,2) 2620 GET D1$,J7:K0,F8$,A3$ 2630 EXEC FEJL(5,1,D1$) 2640 GET D1$,J7+1:A5$,C7$,C8$,K1,F6$,F7$ 2650 EXEC FEJL(5,2,D1$) 2660 ENDPROC 2670 PROC HENTKASPOST 2680 EXEC UDHOVED 2690 IF K2=I2 THEN K2=1 2700 K3=K2;H5=1 2710 FOR I=1 TO 18 2720 GET D2$,K2:G2(I),G3(I),G4(I),F1$,G6$(I),F2$ 2730 EXEC FEJL(2,1,D2$) 2740 K2=K2+1 2750 G5(I)=ORD(F1$)-48;G7(I)=ORD(F2$)-48 2760 IF G5(I)>9 AND G5(I)<20 THEN 2770 IF I2=K2 THEN EXIT 2780 GET D2$,K2:G8$(I) 2790 EXEC FEJL(2,2,D2$) 2800 K2=K2+1 2810 ELSE 2820 IF G5(I)>0 THEN 2830 G8$(I)=E5$(G5(I)-10*(G5(I)>20)) 2840 ELSE 2850 G8$(I)=B7$(1:25) 2860 ENDIF 2870 ENDIF 2880 IF G2(I)<>0 THEN EXEC UDLINIE(G2(I),G4(I),G8$(I),G6$(I),G7(I)) 2890 H5=H5+1 2900 IF K2=I2 THEN EXIT 2910 NEXT I 2920 ENDPROC 2930 PROC GEMKASPOST 2940 FOR I=1 TO 18 2950 F1$=CHR(G5(I)+48);F2$=CHR(G7(I)+48) 2960 PUT D2$,K3:G2(I),G3(I),G4(I),F1$,G6$(I),F2$ 2970 EXEC FEJL(3,1,D2$) 2980 K3=K3+1 2990 IF G5(I)>9 AND G5(I)<20 THEN 3000 PUT D2$,K3:G8$(I) 3010 EXEC FEJL(3,2,D2$) 3020 K3=K3+1 3030 ENDIF 3040 IF K3=K2 THEN EXIT 3050 NEXT I 3060 ENDPROC 3070 PROC ÆND(K4,K5,K6) 3080 J3=0;B8$=K5$ 3090 IF B8$(LEN(B8$))="+" THEN J3=1 3100 J3=2*K6-J3 3110 EXEC CALC(K4,F5$(J3),B8$,F5$(J3)) 3120 ENDPROC 3130 PROC RETTE 3140 K3=1;K2=1 3150 IF I2=1 THEN EXIT 3160 REPEAT 3170 CLEAR 3180 EXEC HENTKASPOST 3190 K7=H5;K8=0 3200 REPEAT 3210 REPEAT 3220 CURSOR 3,23 3230 PRINT "Ønskes ændringer (1-18:Linienr, 0:Færdig, RETURN:Ny side, N:"; 3240 PRINT "Ny post) " 3250 CURSOR 20,23 3260 INPUT D5$ 3270 EXEC NRTEST(D5$) 3280 UNTIL (P=-8 OR P>-2 AND P<K7) AND H4=0 3290 K9=P 3300 IF K9<1 THEN EXIT 3310 K8=1 3320 REPEAT 3330 REPEAT 3340 CURSOR 3,23 3350 PRINT "Linie:";K9;" Vælg ændring (0:Færdig, A:Annuller, 1:Konto, "; 3360 PRINT "2:Beløb, 3:Kode)" 3370 CURSOR 25,23 3380 INPUT D5$ 3390 EXEC NRTEST(D5$) 3400 UNTIL (P=-3 OR P>-1 AND P<4) AND H4=0 3410 L0=P 3420 IF L0=0 THEN EXIT 3430 H5=K9 3440 IF G2(K9)=0 THEN 3450 CURSOR 3,H5+3 3460 PRINT "Postering er annulleret" 3470 ELSE 3480 IF L0<>1 THEN EXEC ÆND(1,G6$(K9),G7(K9)) 3490 IF L0=-3 THEN 3500 EXEC KLET(5) 3510 G2(K9)=0 3520 ELSE 3530 L0=L0+2;L1=L0;I1=1;H6=G2(K9);F4$=G6$(K9);H8=G7(K9) 3540 EXEC INDTASTNING(L0) 3550 G2(K9)=H6;G6$(K9)=F4$;G7(K9)=H8 3560 IF L1<>3 THEN EXEC ÆND(0,F4$,H8) 3570 ENDIF 3580 ENDIF 3590 UNTIL L0=-3 OR L0=0 3600 UNTIL K9<1 3610 IF K8=1 THEN 3620 EXEC GEMKASPOST 3630 EXEC KYSGEM 3640 ENDIF 3650 UNTIL K9=0 OR K9=-8 3660 IF K9=-8 THEN 3670 CLEAR 3680 EXEC UDHOVED 3690 H5=1;I1=2 3700 EXEC INDTASTNING(1) 3710 ENDIF 3720 ENDPROC 3730 PROC KYSGEM 3740 E8(4)=L2;E8(8)=I0;F0(2)=I4;G1(1)=L3 3750 OPEN E2$,W 3760 EXEC FEJL(3,1,E2$) 3770 PUT E2$,2:E8(1),E8(2),E8(3),E8(4),E8(5),E8(6),E8(7),E8(8),E8(9) 3780 EXEC FEJL(3,2,E2$) 3790 PUT E2$,12:F0(1),F0(2),F0(3),F0(4),F0(5),F0(6),F0(7),F0(8),F0(9) 3800 EXEC FEJL(3,3,E2$) 3810 PUT E2$,13:G1(1),G1(2),G1(3),G1(4),G1(5),G1(6),G1(7),G1(8),G1(9) 3820 EXEC FEJL(3,4,E2$) 3830 PUT E2$,15:F5$(1),F5$(2),F5$(3) 3840 EXEC FEJL(3,5,E2$) 3850 PUT E2$,16:F5$(4),F5$(5),F5$(6) 3860 EXEC FEJL(3,6,E2$) 3870 CLOSE E2$ 3880 EXEC FEJL(3,7,E2$) 3890 ENDPROC 3900 PROC HENTKASPOST1 3910 GET D2$,I:H6,L4,H7,F1$,F4$,F2$ 3920 EXEC FEJL(4,1,D2$) 3930 I7=ORD(F1$)-48;H8=ORD(F2$)-48 3940 IF I7>9 AND I7<20 THEN 3950 I=I+1 3960 GET D2$,I:E3$ 3970 EXEC FEJL(4,2,D2$) 3980 ENDIF 3990 ENDPROC 4000 PROC FINDPOST1(L5,Q,L6,L7,L8,L9) 4010 M0=L6 DIV 8;L8=M0;I9=1;M1=L6 DIV 4;M2=L6 DIV 32 4020 REPEAT 4030 IF L7=L5(L8) OR M0=1 THEN EXIT 4040 M0=(M0+1) DIV 2 4050 L8=L8+M0*(1-2*(L7<L5(L8))) 4060 IF L8<1 THEN L8=1 4070 IF L8>M1 THEN L8=M1 4080 UNTIL M0=0 4090 IF L5(L8)>L7 THEN L8=L8-1*(L8>1) 4100 L8=M2+L8 4110 GET L9$,L8:Q(1,1),Q(1,2),Q(2,1),Q(2,2),Q(3,1),Q(3,2),Q(4,1),Q(4,2) 4120 EXEC FEJL(1,1,L9$) 4130 FOR L8=1 TO 4 4140 IF L7=Q(L8,1) THEN EXIT 4150 NEXT L8 4160 IF L8<>5 THEN I9=0 4170 ENDPROC 4180 PROC INDTAB1(Z,M3,M4) 4190 M0=M3 DIV 32 4200 FOR I=1 TO M0 4210 H=(I-1)*8+1 4220 GET M4$,I:Z(H),Z(H+1),Z(H+2),Z(H+3),Z(H+4),Z(H+5),Z(H+6),Z(H+7) 4230 EXEC FEJL(5,1,M4$) 4240 NEXT I 4250 ENDPROC 4260 PROC KTNAVN(M5,M6) 4270 I9=1 4280 CASE M5 OF 4290 EXEC FINDPOST1(M7,M8,M9,M6,N0,A6$) 4300 IF I9=0 THEN 4310 EXEC HENTPOST 4320 B4$=B0$ 4330 ENDIF 4340 WHEN J1 4350 IF NOT (M5*10000<=M6 AND M5*10000+N1=>M6) THEN 4360 EXEC FINDPOST1(N2,N3,N4,M6,N5,A4$) 4370 IF I9=0 THEN 4380 EXEC HENTDPOST 4390 B4$=A7$ 4400 ENDIF 4410 ENDIF 4420 WHEN J2 4430 IF NOT (M5*1000<=M6 AND M5*1000+N6=>M6) THEN 4440 EXEC FINDPOST1(N7,J8,N8,M6,J9,B6$) 4450 IF I9=0 THEN 4460 EXEC HENTKRPOST 4470 B4$=F8$ 4480 ENDIF 4490 ENDIF 4500 ENDCASE 4510 IF I9=1 THEN 4520 B4$="Konto eksisterer ikke " 4530 ENDIF 4540 ENDPROC 4550 PROC TESTSALDO(N9) 4560 EXEC KTNAVN(I8,H6) 4570 IF I9=0 THEN 4580 J0=0 4590 C6$=N9$ 4600 IF I8=J1 THEN 4610 EXEC CALC(4,B3$,B9$,B9$) 4620 IF SI<>0 THEN 4630 EXEC CALC(0,B3$,C6$,C6$) 4640 ELSE 4650 EXEC CALC(4,B2$,B9$,B9$) 4660 IF SI<>0 THEN 4670 EXEC CALC(0,B2$,C6$,C6$) 4680 ELSE 4690 EXEC CALC(4,B1$,B9$,B9$) 4700 IF SI<>0 THEN 4710 EXEC CALC(0,B1$,C6$,C6$) 4720 ELSE 4730 EXEC CALC(4,A8$,B9$,B9$) 4740 IF SI<>0 THEN 4750 EXEC CALC(0,A8$,C6$,C6$) 4760 ELSE 4770 J0=1 4780 C6$="0+" 4790 ENDIF 4800 ENDIF 4810 ENDIF 4820 ENDIF 4830 IF C6$(LEN(C6$))="-" THEN J0=1 4840 ELSE 4850 EXEC CALC(4,F7$,B9$,B9$) 4860 IF SI<>0 THEN 4870 EXEC CALC(0,F7$,C6$,C6$) 4880 ELSE 4890 EXEC CALC(4,F6$,B9$,B9$) 4900 IF SI<>0 THEN 4910 EXEC CALC(0,F6$,C6$,C6$) 4920 ELSE 4930 C6$="0+" 4940 ENDIF 4950 ENDIF 4960 IF C6$(LEN(C6$))="+" THEN J0=1 4970 ENDIF 4980 IF J0=1 THEN 4990 REPEAT 5000 CURSOR 22,23 5010 PRINT " Er beløbet rigtigt ? (J/N)";B7$(1:20) 5020 CURSOR 45,23 5030 INPUT " ",A$ 5040 EXEC NRTEST(A$) 5050 UNTIL P=-7 OR P=-8 5060 IF P=-7 THEN J0=0 5070 ENDIF 5080 ELSE 5090 STOP 5100 ENDIF 5110 ENDPROC 5120 PROC KLET(O0) 5130 CASE O0 OF 5140 STOP 5150 WHEN 1 5160 CURSOR 4,H5+3 5170 PRINT B7$(1:32) 5180 WHEN 2 5190 CURSOR 38,H5+3 5200 PRINT " " 5210 WHEN 3 5220 CURSOR 46,H5+3 5230 PRINT B7$(1:28) 5240 WHEN 4 5250 CURSOR 77,H5+3 5260 PRINT B7$(1) 5270 WHEN 5 5280 CURSOR 4,H5+3 5290 PRINT B7$ 5300 ENDCASE 5310 ENDPROC 5320 PROC FORTEGN 5330 I5=LEN(F3$) 5340 IF I5=0 THEN F3$="0+" 5350 IF F3$(I5)<>"+" AND F3$(I5)<>"-" THEN 5360 F3$=F3$+"+" 5370 ENDIF 5380 ENDPROC 5390 PROC UDHOVED 5400 CURSOR 35,1 5410 PRINT "Kasserapport";TAB(30);"Dato:" 5420 CURSOR 72,1 5430 PRINT J6 5440 CURSOR 2,3 5450 PRINT "Nr Bilag Tekst";TAB(38);"Konto Debet Kredit"; 5460 PRINT " Kode" 5470 ENDPROC 5480 PROC NYDATO 5490 REPEAT 5500 CURSOR 3,23 5510 PRINT "Ny dato (ååmmdd)"+B7$(1:54) 5520 CURSOR 11,23 5530 INPUT D5$ 5540 EXEC NRTEST(D5$) 5550 UNTIL I8=>80 AND (P MOD 10000) DIV 100<13 AND P MOD 100<32 5560 J6=P 5570 ENDPROC 5580 PROC UDLINIE(O1,O2,O3,O4,O5) 5590 B8$=O4$ 5600 CURSOR 1,H5+3 5610 PRINT USING "###":H5 5620 IF O2<>-1 THEN 5630 CURSOR 4,H5+3 5640 PRINT USING "#######":O2 5650 ENDIF 5660 CURSOR 12,H5+3 5670 PRINT O3$ 5680 CURSOR 38,H5+3 5690 PRINT O1 5700 IF B8$(LEN(B8$))="+" THEN 5710 CURSOR 46,H5+3 5720 ELSE 5730 CURSOR 61,H5+3 5740 ENDIF 5750 EXEC TUD(B8$,B8$,0,0) 5760 PRINT B8$ 5770 CURSOR 77,H5+3 5780 PRINT O5 5790 ENDPROC 5800 PROC FEJL(O6,O7,O8) 5810 IF STATUS(O8$)<>0 THEN 5820 PRINT STATUS(O8$),O6,O7,O8$ 5830 STOP 5840 ENDIF 5850 ENDPROC 5860 PROC HENTDPOST 5870 J7=N3(N5,2) 5880 GET D0$,J7:O9,A7$,A8$,A9$ 5890 EXEC FEJL(8,2,D0$) 5900 IF O9<>N3(N5,1) THEN STOP 5910 GET D0$,J7+1:B1$,B2$,B3$,P0,C5$ 5920 EXEC FEJL(8,3,D0$) 5930 GET D0$,J7+2:B5$,C0$,P1,P2 5940 EXEC FEJL(8,4,D0$) 5950 GET D0$,J7+3:C1$,C3$,C4$ 5960 EXEC FEJL(8,5,D0$) 5970 ENDPROC 5980 PROC TUD(P3,P4,P5,P6) 5990 C6$=P3$;B8$=P4$ 6000 EXEC CALC(5,C6$,B9$,B8$) 6010 P4$=B8$ 6020 IF P5=0 THEN 6030 P4$=P4$(1:13) 6040 ELSE 6050 IF P5=1 AND P4$(LEN(P4$))="+" THEN 6060 P4$(LEN(P4$))=" " 6070 ENDIF 6080 ENDIF 6090 IF P6=1 THEN 6100 P4$=P4$(4:LEN(P4$)-3) 6110 ENDIF 6120 ENDPROC 6130 PROC NRTEST(P7) 6140 P=0;H4=0;I8=0;I5=LEN(P7$) 6150 CASE I5 OF 6160 FOR I=1 TO I5 6170 P8=INT(ORD(P7$(I))-48) 6180 IF P8=>0 AND P8<10 THEN 6190 P=P*10+P8 6200 ELSE 6210 H4=1 6220 ENDIF 6230 NEXT I 6240 I8=P DIV 10000;KTAL9=P DIV 1000 6250 IF KTAL9=J2 THEN I8=KTAL9 6260 WHEN 0 6270 P=-1 6280 WHEN 1 6290 CASE P7$ OF 6300 P=INT(ORD(P7$)-48) 6310 WHEN "d","D" 6320 P=-2 6330 WHEN "a","A" 6340 P=-3 6350 WHEN "j","J" 6360 P=-7 6370 WHEN "n","N" 6380 P=-8 6390 ENDCASE 6400 ENDCASE 6410 ENDPROC 6420 PROC HENTPOST 6430 J7=M8(N0,2) 6440 GET C9$,J7:P9,B0$ 6450 EXEC FEJL(3,2,C9$) 6460 IF P9<>M8(N0,1) THEN STOP 6470 GET C9$,J7+1:G0$,D7$,D8$ 6480 EXEC FEJL(3,3,C9$) 6490 GET C9$,J7+2:E6$,D9$,E0$ 6500 EXEC FEJL(3,4,C9$) 6510 ENDPROC 6520 PROC BFSTEMNING 6530 REPEAT 6540 CLEAR 6550 CURSOR 21,1 6560 PRINT "Kasserapport afstemning" 6570 CURSOR 66,1 6580 PRINT "Dato :";J6 6590 CURSOR 21,3 6600 PRINT "Differencer Indtastede saldi" 6610 FOR I=1 TO 6 6620 EXEC CALC(1,F5$(I),F9$(I),F3$) 6630 CURSOR 1,I+4 6640 PRINT I;J5$(I) 6650 CURSOR 19,I+4 6660 EXEC TUD(F3$,B8$,1,0) 6670 PRINT B8$ 6680 CURSOR 36,I+4 6690 EXEC TUD(F9$(I),B8$,1,0) 6700 PRINT B8$ 6710 NEXT I 6720 CURSOR 4,12 6730 PRINT "Kontroller dine saldi !" 6740 REPEAT 6750 CURSOR 4,14 6760 PRINT "Hvilken er forkert (0:ingen,1-6)" 6770 CURSOR 25,14 6780 INPUT D5$ 6790 EXEC NRTEST(D5$) 6800 UNTIL -1<P AND P<7 AND H4=0 6810 IF P<>0 THEN 6820 REPEAT 6830 REPEAT 6840 CURSOR 1,16 6850 PRINT P;J5$(P);" (tast ændret saldo)" 6860 CURSOR 19,16 6870 INPUT F3$ 6880 UNTIL LEN(F3$)>0 6890 EXEC FORTEGN 6900 EXEC CALC(6,F3$,B9$,B8$) 6910 UNTIL FLAG=0 6920 IF P MOD 2=0 THEN 6930 F9$(P)=F3$(1:LEN(F3$)-1)+"-" 6940 ELSE 6950 F9$(P)=F3$ 6960 ENDIF 6970 Q0=0 6980 ELSE 6990 FOR I=1 TO 6 7000 EXEC CALC(1,F5$(I),F9$(I),F3$) 7010 EXEC CALC(4,F3$,B9$,B9$) 7020 IF SI<>0 THEN EXIT 7030 NEXT I 7040 IF SI<>0 THEN 7050 EXEC RETTE 7060 Q0=0 7070 ELSE 7080 REPEAT 7090 CURSOR 4,16 7100 PRINT "Ønskes ændringer (J/N)" 7110 CURSOR 22,16 7120 INPUT A$ 7130 EXEC NRTEST(A$) 7140 UNTIL (P=-7 OR P=-8) AND H4=0 7150 IF P=-7 THEN 7160 EXEC RETTE 7170 Q0=0 7180 ELSE 7190 Q0=-1 7200 ENDIF 7210 ENDIF 7220 ENDIF 7230 UNTIL Q0=-1 7240 ENDPROC 7250 PROC HOVEDUD(Q1,Q2) 7260 EXEC DATOUD(Q1,D6$) 7270 OUTPUT P 7280 IF R3=36 THEN PRINT CHR(10);CHR(10);CHR(10);CHR(10);CHR(10);CHR(10) 7290 PRINT TAB(9);CHR(14);"Kasserapport";CHR(15);TAB(44);"Dato:";D6$; 7300 PRINT TAB(61); 7310 PRINT USING "Side:####":Q2 7320 PRINT CHR(10) 7330 PRINT TAB(3);"Bilag";TAB(10);"Tekst";TAB(39);"Konto"; 7340 PRINT TAB(52);"Debet";TAB(67);"Kredit";TAB(75);"Kode" 7350 PRINT TAB(3);A2$ 7360 ENDPROC 7370 PROC LINIEUD(Q3,Q4,Q5,Q6,Q7,Q8) 7380 IF Q3<>-1 THEN 7390 PRINT USING "#######":Q3; 7400 ENDIF 7410 IF Q4<10 AND Q4>0 THEN 7420 E3$=E5$(Q4)+B7$(1:15) 7430 ENDIF 7440 IF Q4<>0 THEN 7450 PRINT TAB(10);E3$; 7460 ENDIF 7470 PRINT TAB(38); 7480 PRINT USING "######":Q5; 7490 PRINT TAB(47+14*(Q6=0)); 7500 EXEC TUD(Q7$,B8$,0,0) 7510 PRINT B8$;TAB(76); 7520 PRINT USING "##":Q8 7530 ENDPROC 7540 PROC DATOUD(Q9,R0) 7550 R1=Q9 7560 R0$=" " 7570 FOR J=8 TO 1 STEP -1 7580 IF J MOD 3=0 THEN 7590 R0$(J)="." 7600 ELSE 7610 R0$(J)=CHR(R1 MOD 10+48) 7620 R1=R1 DIV 10 7630 ENDIF 7640 NEXT J 7650 ENDPROC 7660 PROC UDSKRIV(R2,R3) 7670 IF R3=36 OR R3=0 THEN 7680 R2=R2+1 7690 EXEC HOVEDUD(R4,R2) 7700 R3=0 7710 ENDIF 7720 R5=0 7730 R3=R3+1 7740 IF F4$(LEN(F4$))="+" THEN R5=1 7750 EXEC LINIEUD(H7,I7,H6,R5,F4$,H8) 7760 ENDPROC 7770 PROC MODFORTEGN(R6,R7) 7780 I5=LEN(R7$) 7790 IF R7$(I5)="+" THEN 7800 R6$=R7$(1:I5-1)+"-" 7810 ELSE 7820 R6$=R7$(1:I5-1)+"+" 7830 ENDIF 7840 ENDPROC 7850 PROC GEMBHPOST 7860 J7=L3;D5$="1" 7870 J7=J7+1 7880 F1$=CHR(I7+48) 7890 PUT D3$,J7:H6,L4,H7,F1$,F3$,D5$ 7900 EXEC FEJL(7,2,D3$) 7910 IF I7=>10 AND I7<20 THEN 7920 J7=J7+1 7930 PUT D3$,J7:H6,E3$ 7940 EXEC FEJL(7,3,D3$) 7950 ENDIF 7960 L3=J7 7970 ENDPROC 7980 PROC BUND 7990 FOR I=R8 TO 36 8000 PRINT CHR(10); 8010 NEXT I 8020 PRINT " " 8030 PRINT TAB(3);A2$ 8040 EXEC TUD(A1$,B8$,0,0) 8050 PRINT TAB(10);CHR(14);"Difference";CHR(15); 8060 PRINT TAB(39+14*(B8$(LEN(B8$))="-"));B8$ 8070 PRINT TAB(3);A2$ 8080 PRINT CHR(10) 8090 ENDPROC 8100 PROC UDBIL 8110 CLEAR 8120 REPEAT 8130 CURSOR 8,13 8140 INPUT "Monter papir til udskrift af kasserapport og tast RETURN",A$ 8150 UNTIL ORD(A$)=255 8160 ENDPROC 8170 C2$="P641220:SYSTEM1" 8180 OPEN C2$,R 8190 EXEC FEJL(9,1,C2$) 8200 GET C2$,1:M9,N4,N8 8210 EXEC FEJL(9,2,C2$) 8220 GET C2$,2:R9,S0,S1 8230 EXEC FEJL(9,3,C2$) 8240 GET C2$,4:S2,S3,S4,N1 8250 EXEC FEJL(9,4,C2$) 8260 GET C2$,5:N6 8270 EXEC FEJL(9,5,C2$) 8280 GET C2$,6:S5,S6,S7 8290 EXEC FEJL(9,6,C2$) 8300 GET C2$,8:S8,S9,T0,J1 8310 EXEC FEJL(9,7,C2$) 8320 GET C2$,9:J2 8330 EXEC FEJL(9,8,C2$) 8340 GET C2$,10:E7$ 8350 EXEC FEJL(9,9,C2$) 8360 GET C2$,11:A6$ 8370 EXEC FEJL(9,10,C2$) 8380 GET C2$,12:A4$ 8390 EXEC FEJL(9,11,C2$) 8400 GET C2$,13:B6$ 8410 EXEC FEJL(9,12,C2$) 8420 GET C2$,15:C9$ 8430 EXEC FEJL(9,13,C2$) 8440 GET C2$,16:D0$ 8450 EXEC FEJL(9,14,C2$) 8460 GET C2$,17:D1$ 8470 EXEC FEJL(9,15,C2$) 8480 GET C2$,19:D2$ 8490 EXEC FEJL(9,16,C2$) 8500 GET C2$,21:D3$ 8510 EXEC FEJL(9,17,C2$) 8520 GET C2$,36:E2$ 8530 EXEC FEJL(9,18,C2$) 8540 CLOSE C2$ 8550 EXEC FEJL(9,19,C2$) 8560 DIM M7(M9 DIV 4),N2(N4 DIV 4),N7(N8 DIV 4) 8570 DIM M8(4,2),N3(4,2),J8(4,2),J5$(6,14) 8580 E2$=E7$+E2$ 8590 OPEN E2$,R 8600 EXEC FEJL(9,20,E2$) 8610 GET E2$,2:E8(1),E8(2),E8(3),E8(4),E8(5),E8(6),E8(7),E8(8),E8(9) 8620 EXEC FEJL(9,21,E2$) 8630 FOR I=1 TO 6 8640 J=(I-1)*3+1 8650 GET E2$,I+5:E5$(J),E5$(J+1),E5$(J+2) 8660 EXEC FEJL(9,22,E2$) 8670 NEXT I 8680 GET E2$,12:F0(1),F0(2),F0(3),F0(4),F0(5),F0(6),F0(7),F0(8),F0(9) 8690 EXEC FEJL(9,23,E2$) 8700 GET E2$,13:G1(1),G1(2),G1(3),G1(4),G1(5),G1(6),G1(7),G1(8),G1(9) 8710 EXEC FEJL(9,24,E2$) 8720 GET E2$,15:F5$(1),F5$(2),F5$(3) 8730 EXEC FEJL(9,25,E2$) 8740 GET E2$,16:F5$(4),F5$(5),F5$(6) 8750 EXEC FEJL(9,26,E2$) 8760 CLOSE E2$ 8770 EXEC FEJL(9,27,E2$) 8780 A6$=E7$+A6$;A4$=E7$+A4$;B6$=E7$+B6$;C9$=E7$+C9$;D0$=E7$+D0$;D1$=E7$+D1$ 8790 D2$=E7$+D2$;D3$=E7$+D3$ 8800 OPEN A6$,R 8810 EXEC FEJL(9,28,A6$) 8820 OPEN A4$,R 8830 EXEC FEJL(9,29,A4$) 8840 OPEN B6$,R 8850 EXEC FEJL(9,30,B6$) 8860 OPEN C9$,R 8870 EXEC FEJL(9,31,C9$) 8880 OPEN D0$,R 8890 EXEC FEJL(9,32,D0$) 8900 OPEN D1$,R 8910 EXEC FEJL(9,33,D1$) 8920 OPEN D2$,W 8930 EXEC FEJL(9,34,D2$) 8940 EXEC INDTAB1(M7,M9,A6$) 8950 EXEC INDTAB1(N2,N4,A4$) 8960 EXEC INDTAB1(N7,N8,B6$) 8970 J5$(1)="Kasse debet ";J5$(2)="Kasse kredit ";J5$(3)="Giro debet " 8980 J5$(4)="Giro kredit ";J5$(5)="Bank debet ";J5$(6)="Bank kredit " 8990 B7$=" ";B7$=B7$+B7$ 9000 B9$="0+";A1$="0+";A2$="--------------------------------------" 9010 I1=0;A2$=A2$+A2$+" " 9020 L2=E8(4);R4=E8(7);I0=E8(8);I4=F0(2);L3=G1(1) 9030 H5=1;J6=R4;R8=0;L4=0;B8$="0+";I3=I4+1 9040 I2=I3;K3=1;K2=1 9050 CLEAR 9060 EXEC UDHOVED 9070 EXEC INDTASTNING(1) 9080 IF J4=0 THEN 9090 EXEC BFSTEMNING 9100 EXEC UDBIL 9110 OPEN D3$,W 9120 EXEC FEJL(9,37,D3$) 9130 FOR I=1 TO I4 9140 EXEC HENTKASPOST1 9150 IF H6<>0 THEN 9160 EXEC MODFORTEGN(F3$,F4$) 9170 EXEC GEMBHPOST 9180 EXEC CALC(0,F3$,A1$,A1$) 9190 EXEC UDSKRIV(L2,R8) 9200 ENDIF 9210 NEXT I 9220 I7=24;H7=L2;H8=0 9230 EXEC CALC(0,F5$(1),F5$(2),F3$) 9240 EXEC CALC(0,F3$,A1$,A1$) 9250 H6=S5 9260 EXEC GEMBHPOST 9270 I7=10;H7=-1;F4$=F3$;E3$="Samlet kassepostering" 9280 EXEC UDSKRIV(L2,R8) 9290 EXEC CALC(0,F5$(3),F5$(4),F3$) 9300 EXEC CALC(0,F3$,A1$,A1$) 9310 I7=24;H7=L2;H6=S6 9320 EXEC GEMBHPOST 9330 F4$=F3$;I7=10;H7=-1;E3$="Samlet giropostering" 9340 EXEC UDSKRIV(L2,R8) 9350 EXEC CALC(0,F5$(5),F5$(6),F3$) 9360 EXEC CALC(0,F3$,A1$,A1$) 9370 I7=24;H7=L2;H6=S7 9380 EXEC GEMBHPOST 9390 E3$="Samlet bankpostering";F4$=F3$;I7=10;H7=-1 9400 EXEC UDSKRIV(L2,R8) 9410 EXEC CALC(4,A1$,B9$,B9$) 9420 IF SI<>0 THEN 9430 I7=10;H7=L2;H6=T0;E3$="Difference kasserapport" 9440 EXEC MODFORTEGN(F3$,A1$) 9450 EXEC GEMBHPOST 9460 EXEC CALC(0,F3$,A1$,A1$) 9470 F4$=F3$;H7=-1 9480 EXEC UDSKRIV(L2,R8) 9490 ENDIF 9500 EXEC BUND 9510 CLOSE D3$ 9520 EXEC FEJL(9,38,D3$) 9530 I4=0 9540 FOR I=1 TO 6 9550 F5$(I)="0+" 9560 NEXT I 9570 ELSE 9580 REPEAT 9590 CURSOR 3,23 9600 PRINT "Ønskes kontroludskrift J/N ";B7$(1:45) 9610 CURSOR 26,23 9620 INPUT A$ 9630 UNTIL (A$="J" OR A$="N" OR A$="j" OR A$="n") AND LEN(A$)=1 9640 IF A$="J" OR A$="j" THEN 9650 T1=L2 9660 EXEC UDBIL 9670 FOR I=1 TO I4 9680 EXEC HENTKASPOST1 9690 EXEC UDSKRIV(T1,R8) 9700 EXEC CALC(1,A1$,F4$,A1$) 9710 NEXT I 9720 I7=10;H7=-1;H8=0;H6=0 9730 FOR I=1 TO 6 9740 E3$=J5$(I);F4$=F5$(I) 9750 EXEC UDSKRIV(T1,R8) 9760 EXEC CALC(0,A1$,F4$,A1$) 9770 NEXT I 9780 EXEC BUND 9790 ENDIF 9800 ENDIF 9810 EXEC KYSGEM 9820 CLOSE D2$ 9830 EXEC FEJL(9,39,D2$) 9840 CLOSE 9850 OUTPUT T 9860 CHAIN "P641210:OPSTART"