1 COM Q$[55],O$[42],P$[14] 2 COM Y$[10],M[12] 7 REM EBAP10 7/8/74 10 Q$="$EBAP10" 20 CHAIN "$EBAU11",100 100 REM PROGRAM TO RECORD ENCUMBRANCES 200 DIM L$[40],M$[28],R$[30],S$[60],X$[10],Z$[72] 210 DIM A[375],B[256],A$[30],B$[60],C$[30],D$[60] 220 DIM E$[30],F$[60],G$[30],H$[60],I$[30],J$[60] 230 ENTER #J9 240 Y$="0123456789" 250 MAT READ M 260 DATA 31,29,31,30,31,30,31,31,30,31,30,31 270 READ C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 280 DATA 0,1,2,3,4,5,6,7,8,9 300 FILES *,*,* 310 PRINT LIN(C1),"ENTER ACCOUNTS FILE NAME" 320 INPUT P$[C1,C7] 330 ASSIGN P$[C1,C7],C1,Z0,Q$[C8,13] 340 IF Z0=C0 THEN 370 350 PRINT LIN(C1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 360 GOTO 310 370 IF TYP(C1)#C2 THEN 400 380 READ #C1;Z$ 390 IF Z$="ACCOUNTS" THEN 420 400 PRINT LIN(C1),"INVALID ACCOUNTS FILE" 410 GOTO 310 420 READ #C1;D9,Z,Z,Z,Z,W9 430 IF D9=C0 THEN 460 440 PRINT LIN(C1),"DIRTY BIT SET IN ACCOUNTS FILE" 450 STOP  460 MAT READ #C1;A 470 R6=R7=N4=N5=N6=N7=N8=C0 480 A5=A7=-1 490 F1=C1 500 J8=-15 510 PRINT LIN(C1),"ENTER ENCUMBRANCE FILE NAME" 520 INPUT P$[C8,14] 530 ASSIGN P$[C8,14],C2,Z0,Q$[44,49] 540 IF Z0=C0 THEN 570 550 PRINT LIN(C1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 560 GOTO 510 570 IF TYP(C2)#C2 THEN 600 580 READ #C2;Z$ 590 IF Z$="ENCUMBRANCE" THEN 620 600 PRINT LIN(C1),"INVALID ENCUMBRANCE FILE" 610 GOTO 510 620 READ #C2;E1,E2,D9 630 IF D9=C0 THEN 660 640 PRINT LIN(C1),"DIRTY BIT SET IN ENCUMBRANCE FILE" 650 STOP  660 IF E1#C0 THEN 690 670 PRINT LIN(C1),"EMPTY ENCUMBRANCE FILE" 680 GOTO 510 690 E3=C1 700 E4=E5=E6=C0 710 ASSIGN P$[C8,14],C3,Z0,Q$[44,49] 720 PRINT LIN(C1),"ENTER RUN OPTION" 730 PRINT "A MEANS UPDATE ACCOUNTS AND PRODUCE REPORT" 740 PRINT "R MEANS PRODUCE REPORT ONLY" 750 INPUT Z$ 760 IF Z$[C1,C1]="A" THEN 1000 770 IF Z$[C1,C1]#"R" THEN 720 780 CHAIN "$EBAR16",100 1000 REM MAIN DRIVER 1010 Z0=BRK(C0) 1020 PRINT #C3,C1;"ENCUMBRANCE",E1,E2,J8,J9,C0," " 1030 PRINT #C1,C1;"ACCOUNTS",J8,J9,C0,C0,C0,W9 1040 MAT PRINT #C1;A 1050 READ #C3,C2 1060 READ #C1,C2 1070 GOSUB 3000 1080 IF E6#C0 THEN 1250 1090 GOSUB 3400 1110 IF M$[C1,C1]="2" THEN 1190 1120 IF M$[C1,C1]="4" THEN 1190 1130 GOSUB 3600 1140 IF M$[C2,C2]#"0" THEN 1230 1150 IF W9=C0 THEN 1220 1160 GOSUB 2400 1170 IF M$[C2,C2]#"0" THEN 1230 1180 GOTO 1220 1190 IF W9=C0 THEN 1220 1200 GOSUB 2000 1210 IF M$[C2,C2]#"0" THEN 1230 1220 M$[C2,C2]="9" 1230 GOSUB 3200 1240 GOTO 1070 1250 PRINT #C3,C1;"ENCUMBRANCE",E1,E2,C0,C0,C0," " 1260 PRINT #C1,C1;"ACCOUNTS",C0,C0,C0,C0,C0,W9 1270 MAT PRINT #C1;A 1280 READ #C3,C2 1290 READ #C1,C2 1300 Z0=BRK(C1) 1310 CHAIN "$EBAR16",100 2000 REM PRI GL CHG 2005 S0=C0 2010 IF M$[C1,C1]="2" THEN 2020 2015 S0=C1 2020 M1=C1 2025 M2=C2 2030 N1=F0*100000.+33400. 2035 N2=61 2040 N3=C0 2045 GOSUB 9998 2050 IF M3#C0 THEN 2175 2055 GOSUB 2700 2060 GOSUB 3900 2065 S0=S0+C1 2070 IF S0=C1 THEN 2080 2075 S0=C0 2080 N2=70 2085 GOSUB 9998 2090 IF M3#C0 THEN 2175 2095 GOSUB 2700 2100 M1=C4 2105 GOSUB 9998 2110 GOSUB 3950 2115 GOSUB 9998 2120 M1=M2=C1 2125 N2=C0 2130 GOSUB 9998 2135 GOSUB 2700 2140 S0=S0+C1 2145 IF S0=C1 THEN 2155 2150 S0=C0 2155 GOSUB 2700 2160 M1=C4 2165 GOSUB 9998 2170 RETURN  2175 M$[C2,C2]="4" 2180 RETURN  2400 REM CUR GL CHG 2405 S0=C0 2410 IF M$[C1,C1]="1" THEN 2420 2415 S0=C1 2420 M1=C1 2425 M2=C2 2430 N1=F0*100000.+33100. 2435 N2=42 2440 N3=C0 2445 GOSUB 9998 2450 IF M3#C0 THEN 2575 2455 GOSUB 2700 2460 GOSUB 3900 2465 N1=N1+300 2470 N2=61 2475 GOSUB 9998 2480 IF M3#C0 THEN 2575 2485 GOSUB 2700 2490 M1=C4 2495 GOSUB 9998 2500 GOSUB 3950 2505 GOSUB 9998 2510 M1=M2=C1 2515 N2=C0 2520 GOSUB 9998 2525 GOSUB 2700 2530 M1=C4 2535 GOSUB 9998 2540 M1=C1 2545 N1=N1+300 2550 GOSUB 9998 2555 GOSUB 2700 2560 M1=C4 2565 GOSUB 9998 2570 RETURN  2575 M$[C2,C2]="4" 2580 RETURN  2700 REM CHG GL ACCT 2705 L$=B$[21,40] 2710 L$[21,30]="0000000000" 2715 L$[31,40]=M$[19,28] 2720 IF S0=C0 THEN 2730 2725 L$[C1,20]=B$[41,60] 2730 GOSUB 2800 2735 IF S0=C1 THEN 2750 2740 B$[21,40]=L$[C1,20] 2745 RETURN  2750 B$[41,60]=L$[C1,20] 2755 RETURN  2800 REM 20 DIGIT ADD 2805 X$=L$[11,20] 2810 GOSUB 5400 2815 Y1=X1 2820 Y2=X2 2825 X$=L$[31,40] 2830 GOSUB 5400 2835 GOSUB 5600 2840 Y2=X1-99999. 2845 IF Y2 <= C0 THEN 2855 2850 X1=X1-100000. 2855 GOSUB 5500 2860 L$[11,20]=X$ 2865 X$=L$[C1,10] 2870 GOSUB 5400 2875 IF Y2 <= C0 THEN 2890 2880 Y1=C0 2885 GOSUB 5600 2890 Y1=X1 2895 Y2=X2 2900 X$=L$[21,30] 2905 GOSUB 5400 2910 GOSUB 5600 2915 GOSUB 5500 2920 L$[C1,10]=X$ 2925 RETURN  3000 REM RD ENCUM REC 3010 IF E4Y1 THEN 3850 3830 IF X1= Y2 THEN 3850 3840 M$[C2,C2]="3" 3845 RETURN  3850 GOSUB 5700 3855 GOTO 3865 3860 GOSUB 5600 3865 GOSUB 5500 3870 B$[41,50]=X$ 3875 M1=C4 3880 GOSUB 9998 3885 RETURN  3900 REM SAV REC 3905 A1=N1 3910 A2=N2 3915 A3=N3 3920 A4=N4 3925 R$=A$ 3930 S$=B$ 3935 RETURN  3950 REM RES REC 3955 N1=A1 3960 N2=A2 3965 N3=A3 3970 N4=A4 3975 A$=R$ 3980 B$=S$ 3985 RETURN  5000 Z=Z2=C0 5010 FOR Z4=Z0 TO C1 STEP -C1 5020 IF Z$[Z4,Z4]>"4" THEN 5060 5030 FOR Y3=C0 TO C4 5040 IF Z$[Z4,Z4]=Y$[Y3+C1,Y3+C1] THEN 5090 5050 NEXT Y3 5060 FOR Y3=C5 TO C9 5070 IF Z$[Z4,Z4]=Y$[Y3+C1,Y3+C1] THEN 5090 5080 NEXT Y3 5090 Z=Z+Y3*10^Z2 5100 Z2=Z2+C1 5110 NEXT Z4 5120 RETURN  5200 Z2=Z3=Z4=C0 5210 FOR Z1=Z0 TO C1 STEP -C1 5220 Z3=Z3+C1 5230 Z2=INT(Z/(10^(Z1-C1)))-10*Z4 5240 Z4=(10*Z4)+Z2 5250 Z$[Z3,Z3]=Y$[Z2+C1,Z2+C1] 5260 NEXT Z1 5270 RETURN  5400 Z0=C5 5410 Z$=X$[C1,C5] 5420 GOSUB 5000 5430 X1=Z 5440 Z$=X$[C6,10] 5450 GOSUB 5000 5460 X2=Z 5470 RETURN  5500 Z0=C5 5510 Z=X1 5520 GOSUB 5200 5530 X$[C1,C5]=Z$[C1,C5] 5540 Z=X2 5550 GOSUB 5200 5560 X$[C6,10]=Z$[C1,C5] 5570 RETURN  5600 X1=X1+Y1 5610 X2=X2+Y2 5620 IF X2<100000. THEN 5650 5630 X1=X1+C1 5640 X2=X2-100000. 5650 RETURN  5700 IF Y2 <= X2 THEN 5730 5710 X2=X2+100000. 5720 X1=X1-C1 5730 X1=X1-Y1 5740 X2=X2-Y2 5750 RETURN