1 COM Q$[55] 7 REM EBAP13 7/8/74 10 Q$="$EBAP13" 20 CHAIN "$EBAU11",100 100 REM PROGRAM TO ADJUST EXPENDITURE, REVENUE AND GENERAL LEDGER 101 REM ACCOUNTS FOR FISCAL YEAR CLOSING 200 DIM A$[30],B$[60],O$[60],N$[10],V$[7] 205 DIM L$[40],M$[40],X$[10],Y$[10],Z$[72] 210 DIM A[375],B[256],C$[30],D$[60],E$[30] 215 DIM F$[60],G$[30],H$[60],I$[30],J$[60] 220 N$="0000000000" 225 Y$="0123456789" 230 ENTER #J9 235 PRINT "THIS PROGRAM PERFORMS FISCAL YEAR CLOSING PROCEDURES ON" 240 PRINT "THE BUDGETARY AND GENERAL LEDGER ACCOUNTS." 245 PRINT LIN(1),"DO YOU REALLY WANT THESE PROCEDURES PERFORMED"; 250 INPUT Z$ 255 IF Z$[1,1]#"Y" THEN 1420 300 FILES * 310 PRINT LIN(1),"ENTER ACCOUNTS FILE NAME" 320 INPUT V$ 330 ASSIGN V$,1,Z0,Q$[8,13] 340 IF Z0=0 THEN 370 350 PRINT LIN(1),"REQUESTED FILE UNAVAILABLE OR NON-EXISTENT" 360 GOTO 310 370 IF TYP(1)#2 THEN 400 380 READ #1;Z$ 390 IF Z$="ACCOUNTS" THEN 420 400 PRINT LIN(1),"INVALID ACCOUNTS FILE" 410 GOTO 310 420 READ #1;D9,Z,Z,Z,Z,W9 430 IF D9=0 THEN 460 440 PRINT LIN(1),"DIRTY BIT SET IN ACCOUNTS FILE" 450 STOP  460 MAT READ #1;A 470 R6=R7=N1=N2=N3=N4=N5=N6=N7=N8=0 480 A5=A7=-1 490 F1=M1=1 500 J8=-3 1000 REM MAIN DRIVER 1010 Z0=BRK(0) 1020 PRINT #1,1;"ACCOUNTS",J8,J9,0,0,0,W9 1030 MAT PRINT #1;A 1040 F=-1 1050 J0=0 1060 GOSUB 2500 1070 IF J1#0 THEN 1390 1080 IF K0#3 THEN 1140 1090 O$="000000000000000000000000000000000000000000000000000000000000" 1100 IF F=F0 THEN 1140 1110 F=F0 1120 M$=O$[1,40] 1130 GOTO 1160 1140 GOSUB 2000 1150 GOSUB 2900 1160 R0=0 1170 R2=1 1180 R3=N4 1190 GOSUB 2600 1200 IF R1#0 THEN 1310 1210 GOSUB K0 OF 2000,2000,2100 1220 GOSUB 2900 1230 Q0=0 1240 Q2=1 1250 Q3=N4 1260 GOSUB 2700 1270 IF Q1#0 THEN 1190 1280 GOSUB K0 OF 2000,2000,2100 1290 GOSUB 2900 1300 GOTO 1260 1310 IF K0#3 THEN 1060 1320 M2=1 1330 N2=0 1340 GOSUB 9998 1350 B$=O$ 1360 GOSUB 2100 1370 GOSUB 2900 1380 GOTO 1060 1390 PRINT #1,1;"ACCOUNTS",0,0,0,0,0,W9 1400 MAT PRINT #1;A 1410 Z0=BRK(1) 1420 STOP  2000 REM UP EXP/REV ACCT 2010 B$[1,10]=N$ 2020 B$[11,20]=B$[31,40] 2030 B$[21,30]=B$[51,60] 2040 B$[31,40]=N$ 2050 B$[41,50]=N$ 2060 B$[51,60]=N$ 2070 RETURN  2100 REM UP GL ACCT 2110 L$=B$[1,40] 2120 GOSUB 3300 2130 L$[21,40]=B$[41] 2140 GOSUB 3100 2150 B$="000000000000000000000000000000000000000000000000000000000000" 2160 IF N1-F0*100000.=33400. THEN 2360 2170 IF N2=41 OR N2=42 THEN 2290 2180 IF S0#0 THEN 2240 2190 B$[1,20]=L$ 2200 L$[21,40]=O$ 2210 GOSUB 3300 2220 O$[1,20]=L$ 2230 RETURN  2240 B$[41,60]=L$ 2250 L$[21,40]=O$[41] 2260 GOSUB 3300 2270 O$[41,60]=L$ 2280 RETURN  2290 S0=S0+1 2300 IF S0=1 THEN 2320 2310 S0=0 2320 L$[21,40]=M$[20*S0+1] 2330 GOSUB 3300 2340 M$[20*S0+1,20*S0+20]=L$ 2350 RETURN  2360 IF N2=41 THEN 2320 2370 IF N2#70 THEN 2180 2380 L$[21,40]=M$[20*S0+1] 2390 GOSUB 3300 2400 M$[20*S0+1,20*S0+20]=L$ 2410 L$=M$ 2420 GOSUB 3100 2430 GOTO 2180 2500 REM RD MST SUMM RECS 2505 IF J0#0 THEN 2530 2510 J0=1 2515 J1=0 2520 M2=4 2525 GOTO 2535 2530 M2=5 2535 GOSUB 9998 2540 IF M3=0 THEN 2555 2545 J1=1 2550 RETURN  2555 F0=INT(N1/100000.) 2560 K0=INT(N1/10000)-INT(N1/100000.)*10 2565 RETURN  2600 REM RD MST RECS 2605 M2=7 2610 IF R0#0 THEN 2625 2615 M2=6 2620 R0=1 2625 IF R2 <= R3 THEN 2640 2630 R1=1 2635 RETURN  2640 R2=R2+1 2645 R1=0 2650 GOSUB 9998 2655 IF M3=0 THEN 2735 2660 PRINT "UNEXPECTED I/O ERROR READING MASTER RECORDS" 2665 STOP  2700 REM RD DET RECS 2705 M2=9 2710 IF Q0#0 THEN 2725 2715 M2=8 2720 Q0=1 2725 IF Q2 <= Q3 THEN 2740 2730 Q1=1 2735 RETURN  2740 Q2=Q2+1 2745 Q1=0 2750 GOSUB 9998 2755 IF M3=0 THEN 2735 2760 PRINT "UNEXPECTED I/O ERROR READING DETAIL RECORDS" 2765 STOP  2900 REM ROUTINE TO UPDATE ACCOUNT RECORD 2905 M1=4 2910 GOSUB 9998 2915 M1=1 2920 S0=M2 2925 M2=3 2930 IF N3#0 THEN 2950 2935 M2=2 2940 IF N2#0 THEN 2950 2945 M2=1 2950 GOSUB 9998 2955 M2=S0 2960 RETURN  3100 REM 20 DIGIT SUB 3105 S0=0 3110 IF L$[1,20] >= L$[21,40] THEN 3135 3115 S0=1 3120 Z$=L$[1,20] 3125 L$[1,20]=L$[21,40] 3130 L$[21,40]=Z$ 3135 X$=L$[31,40] 3140 GOSUB 5400 3145 Y1=X1 3150 Y2=X2 3155 IF L$[11,20] >= L$[31,40] THEN 3220 3160 X$=L$[1,10] 3165 GOSUB 5400 3170 IF X2#0 THEN 3185 3175 X1=X1-1 3180 X2=X2+100000. 3185 X2=X2-1 3190 GOSUB 5500 3195 L$[1,10]=X$ 3200 X$=L$[11,20] 3205 GOSUB 5400 3210 X1=X1+100000. 3215 GOTO 3230 3220 X$=L$[11,20] 3225 GOSUB 5400 3230 GOSUB 5700 3235 GOSUB 5500 3240 L$[11,20]=X$ 3245 X$=L$[21,30] 3250 GOSUB 5400 3255 Y1=X1 3260 Y2=X2 3265 X$=L$[1,10] 3270 GOSUB 5400 3275 GOSUB 5700 3280 GOSUB 5500 3285 L$[1,10]=X$ 3290 RETURN  3300 REM 20 DIGIT ADD 3305 X$=L$[11,20] 3310 GOSUB 5400 3315 Y1=X1 3320 Y2=X2 3325 X$=L$[31,40] 3330 GOSUB 5400 3335 GOSUB 5600 3340 Y2=X1-99999. 3345 IF Y2 <= 0 THEN 3355 3350 X1=X1-100000. 3355 GOSUB 5500 3360 L$[11,20]=X$ 3365 X$=L$[1,10] 3370 GOSUB 5400 3375 IF Y2 <= 0 THEN 3390 3380 Y1=0 3385 GOSUB 5600 3390 Y1=X1 3395 Y2=X2 3400 X$=L$[21,30] 3405 GOSUB 5400 3410 GOSUB 5600 3415 GOSUB 5500 3420 L$[1,10]=X$ 3425 RETURN  5000 REM STRING TO NUMBER CONVERSION ROUTINE. 5030 Z=Z2=0 5040 FOR Z4=Z0 TO 1 STEP -1 5050 IF Z$[Z4,Z4]>"4" THEN 5090 5060 FOR Y3=0 TO 4 5070 IF Z$[Z4,Z4]=Y$[Y3+1,Y3+1] THEN 5120 5080 NEXT Y3 5090 FOR Y3=5 TO 9 5100 IF Z$[Z4,Z4]=Y$[Y3+1,Y3+1] THEN 5120 5110 NEXT Y3 5120 Z=Z+Y3*10^Z2 5130 Z2=Z2+1 5140 NEXT Z4 5150 RETURN  5200 REM NUMBER TO STRING CONVERSION ROUTINE. 5230 Z2=Z3=Z4=0 5240 FOR Z1=Z0 TO 1 STEP -1 5250 Z3=Z3+1 5260 Z2=INT(Z/(10^(Z1-1)))-10*Z4 5270 Z4=(10*Z4)+Z2 5280 Z$[Z3,Z3]=Y$[Z2+1,Z2+1] 5290 NEXT Z1 5300 RETURN  5400 REM TEN DIGIT STRING TO TWO FIVE DIGIT 5401 REM NUMBERS CONVERSION ROUTINE. 5410 Z0=5 5415 Z$=X$[1,5] 5420 GOSUB 5000 5430 X1=Z 5440 Z$=X$[6,10] 5450 GOSUB 5000 5460 X2=Z 5470 RETURN  5500 REM TWO FIVE DIGIT NUMBERS TO TEN DIGIT 5501 REM STRING CONVERSION ROUTINE. 5510 Z0=5 5520 Z=X1 5530 GOSUB 5200 5540 X$[1,5]=Z$[1,5] 5550 Z=X2 5560 GOSUB 5200 5570 X$[6,10]=Z$[1,5] 5580 RETURN  5600 REM ROUTINE TO ADD TWO TEN DIGIT NUMBERS. 5610 X1=X1+Y1 5620 X2=X2+Y2 5630 IF X2<100000. THEN 5660 5640 X1=X1+1 5650 X2=X2-100000. 5660 RETURN  5700 REM ROUTINE TO SUBTRACT TWO TEN DIGIT NUMBERS. 5710 IF Y2 <= X2 THEN 5740 5720 X2=X2+100000. 5730 X1=X1-1 5740 X1=X1-Y1 5750 X2=X2-Y2 5760 RETURN