I:GLMF.BAS, G/L MASTER FILE MAINTENANCE , RDR, 6/12/78 REV. CP/M 2.0, 11/10/78!J  :COPYRIGHT 1978 RETAIL SCIENCES, INC./J QJPN$"MASTER FILE MAINTENANCE"[J PtJ,PU$"$$#,###,###.##"JPU$"$$###,###.##"JC1$"** FIELD 1 (ACCOUNT NUMBER)"JC2$"** FIELD 2 (DESCRIPTION) "JC3$"** FIELD 3 (TYPE) "#KC4$"** FIELD 4 (MASTER/SUB) "IK&C5$"** FIELD 5 (BALANCE COL.) "oK0C6$"** FIELD 6 (CURRENT AMOUNT)"K:C7$"** FIELD 7 (YTD AMOUNT) "KDC8$"** FIELD 8 (BUDGET AMOUNT) "KNC9$"** FIELD"KSCP$"** FIELD 21 (PREV YTD AMOUNT)"!LXCV$" CURRENT VALUE: ": CE$" ENTER: "\LNR%(V$( )):0:  :SET # RECORDS, OPEN FILEhLFC: L$ I : MA#(I): :CLEAR $ FIELDSL. "ENTER - A - TO ADD A NEW ACCOUNT TO THE FILEM8 " C - TO CHANGE AN EXISTING ACCOUNT RECORDBMB " D - TO DELETE AN EXISTING ACCOUNT RECORD{ML " Q - TO QUERY AN EXISTING ACCOUNT RECORDM` " END - TO END AND RETURN TO THE GL MENU"Mj:Q: Q$"YOUR SELECTION? ": 8Mt R$"A" : N~ R$"C"  : -N R$"D" : IN R$"Q" : ZN : jNFC:SC$:"********** G/L ADDITION **********":N  N :ACCOUNT #N ( :SEARCH FOR RECORDN ER%   OER%ϑ:"** ACCOUNT ALREADY EXISTS **"::.O T :INVALID ER% RETURNED;O M1$KEY$WO I : MA#(I): qO R :DESCRIPTIONO  U :TYPEO* Y :COLUMNO4 ] :LEVELO> a :CURR AMTOH e :YTD AMTOR xi :BUDGET,P\:Q$"DO YOU WISH TO ENTER FISCAL PERIOD AMOUNTS": X APa (R$) zSPf YES zyPpPI : `m: :PREV YR AMTSPu Hq :PREV YEAR TO DATEPz:Q$ "DOUBLECHECK. ANY CHANGES"PQ: X: (R$) P YES 0u: 0 Q  :CREATE NEW RECORD!QSQ FC:SC$:"********** G/L CHANGE **********"Q :Q$"ENTER ACCOUNT NUMBER OF RECORD TO BE CHANGED: "Q Q : QT : LB!d : UB!OC : Q (R$) R$R$"00"Q (R$) :  R M1$R$:  :READ@R ER%ϑ:"** ACCOUNT DOES NOT EXIST **"::SR ER% TYR wR 0u :DISPLAY CURRENTR& FCR0 : Q$"ENTER FIELD NUMBER OF FIELD TO BE CHANGED: "R: Q: UB!: LB!: RD (R$)  SN FC b :FROM G/L ADD,SX N! : 0 2Sb CSl N!  kSq N! Hq:  :PREV YTDSv PIN!: `m:  :PREV MONTHS N!  N, R, U, Y, ], a, e, xiS : Q$"ANY MORE FIELDS TO BE CHANGED"T Q : QT : XT (R$)  -T YES 0 3T BT FC WT ` :RESTORE]T jT :PAGE'TFC:SC$:"********** G/L DELETION **********"T : Q$"ENTER ACCOUNT NUMBER OF RECORD TO BE DELETED: "UQ : QT : LB!d : UB!OC : U (R$) 5U (R$) R$R$"00"TU (R$) : nUM1$R$:  :READUER% :"** ACCOUNT DOES NOT EXIST **"::UU 0u :DISPLAY CURRENTU (MA#() MA#())  : ^U*VQ$"ARE YOU SURE THAT YOU WANT TO DELETE THIS"AV"Q : QT : XTV' (R$) dV, YES V6 RL$"Y" : V@ ĸ :DELETEVTV^:"*** DELETION NOT POSSIBLE DUE TO NON-ZERO AMOUNT ***"Wh"*** IN EITHER CURRENT OR YTD FIELDS, OR BOTH. ***" Wr BELL$&W|3W:QUERY`W SC$:"********** G/L QUERY *********":W:Q$"ENTER ACCOUNT NUMBER OF RECORD TO BE QUERIED: "WQ: LB!d: UB!OC: W (R$) W (R$) R$R$"00" X (R$) : XM1$R$: OXER% :"** ACCOUNT DOES NOT EXIST **"::nX:0u :DISPLAY CURRENTX:Q$"ANY MORE ACCOUNTS TO BE QUERIED":X:X (R$) : YES X XM YM FO% OP: ` :CLOSE MARISYM :ANYTHING ELSE.YN:"END OF "PN$nYN:Q$"PUSH THE 'RETURN' KEY TO RETURN TO THE MAIN GL MENU "YN 8: (R$) YN "A:GL MENU"Y NQ$C1$CE$Y*NQ : QT : LB!d : UB!OC : Y4N (R$) R$R$"00"Z>N (R$) :  NZHNM1$R$"ZRN1ZRQ$C2$CE$@ZRQ: 8_ZR (R$) : RjZ&RM2$R$pZ0RZUQ$C3$CE$ZUQ: LB!: UB!: ZVM3$R$: ZYQ$C4$CE$ZYQ: 8ZY R$"M" R$"S" (R$) R$" " M4$R$: [Y : Y[]Q$C5$CE$;[]Q: LB!: UB!: Z[] N! M5$"1" : M5$R$`[]o[aQ$C6$CE$[aQ : QT : LB!UB! : [a (R$) D#[aMA#()D#[a[eQ$C7$CE$[eQ : QT : LB!UB! : \e (R$) D#\eMA#()D#\e$\xiQ$C8$CE$<\iQ: LB!UB!: R\i (R$) D#`\iMA#()D#f\i\`mQ$C9$(PI)" (FISCAL PD. #"(PI)") "CE$\jmQ: LB!UB!: \tm (R$) D#\~mMA#(PI)D#\m\HqQ$CP$CE$]RqLB!UB!: ]\q (R$) D#']pqMA#()D#-]zq6]0uSC$^]:u:"**** CURRENT RECORD VALUE ****"d]Du]Nu (M1$,,)"00" X1$(M1$,) : X1$M1$]Xu C1$;);CV$;-);X1$]bu C2$;);CV$;-);M2$]lu C3$;);CV$;-);M3$^vu C4$;);CV$;-);M4$"^u C5$;);CV$;-);M5$H^u C6$;);CV$;-);:PU$;MA#()n^u C7$;);CV$;-);:PU$;MA#()^u C8$;);CV$;-);:PU$;MA#()^uPI ^uC9$(PI)" (FISCAL PD. #"(PI)")";);CV$;:PU$;MA#(PI)^u_u CP$;);CV$;-);:PU$;MA#()4_u I  : "--";: I:_ug_@ "I",,MD$":GLSRC.DAT": S$(), A!()s_:OPEN_FI%:NA$"GLMST.DAT":DI%DK%():OP:`_ij ER% T_γ F1$(),MA#() :COA FIELDS`س #, ASF1$(), ASF1$(), ASF1$(), ASF1$(), ASF1$()M`Ⳃ I : #, I AS T$, ASF1$(I): i`쳆 F2$() :JE FIELDS` #,  AS F2$(),  AS F2$(), ASF2$(), ASF2$()` #, 'AST$, ASF2$(), ASF2$()` FO% :FILE OPEN FLAG``x:CLOSEa FO% : FO%9aOP: `: ER% T : Ga@:REWINDlaJOP: `: ER% T : a:CREATE NEW RECORDaKE$M1$: OP: `: ER% Ta F1$()M1$: F1$()M2$: F1$()M3$: F1$()M4$$b F1$()M5$:I:DD#MA#(I): : F1$(I)II$:5b FI%,OS: Rb`:UPDATE CURRENT RECORDgbj ( :SEARCHbt ER% T : bĸ:DELETE RECORDbθKE$M1$: OP: `: ER% T : b(:SEARCH FOR RECORDb2KE$M1$: OP: `: c:GET RECORD%cKE$M1$: OP: `Gc ER% : ER% TcM1$F1$(): M2$F1$(): M3$F1$(): M4$F1$(): M5$F1$()cM1(M1$): M3(M3$): M5(M5$)c I :II$F1$(I): :MA#(I)DD#::c:GET NEXT RECORDdOP: `: ER% T : 6d:CREATE NEW EXTENT^dOLOS: OP : `: ER% Td F2$()J1$: F2$()J2$: F2$()J3$: F2$()J4$d F2$()(SD!(J5$)):DD#J6#: : F2$()II$d FI%,OS: dH:UPDATE CURRENT EXTENTeR e:DELETE EXTENTBeOP : `: ER% T : Ye:GET NEXT EXTENTeOSOL: OP : `: ER% Te$J1$F2$(): J2$F2$(): J3$F2$(): J4$F2$()e.J5$DS$((F2$())):II$F2$(): :J6#DD#:fPÕ : BELL$()()()1fZÿ "I",,"A:GLSYS.DAT": #,N$jfdÆ V$((N$)):V$()N$: I (N$):#,V$(I): I:fnMD$V$( ):SC$V$():W(V$())fË MD$"A" MD$"B" z: MfË MD$"A" fDN1: V$fÿ "I",,MD$":GLSYS.DAT": #,N$6gÆ V$((N$)):V$()N$:I(N$): #,V$(I): I:`gMD$V$( ): MD$"B" H: MugÕ : gË 5 8 H: MgË 6 > A z: MgÉ gN#:X9$()():X8$()(): &hII$((N#DD#H),,):ShDD#((X9$II$X8$)(N#))ףp= #z:hØSD!(S$)((S$,)(S$,)(S$,,))hØDS$(D!)((D!),,)"/"((D!),)"/"((D!),,)hĿ "I",,"A:GLDA.DAT": #,VD$:  :DATE%iVS$V$(): VC$V$() :SYSTEM, COMPANY NAMEViĂ I (V$()): DK%(I)(V$(I)): ~iđ SC$: :: :DISPLAY HEADERSi"đ:"ONE MOMENT FOR PROGRAM STARTUP...."::iƑ(W(VC$)));VC$:(W(VS$)));VS$iƑ(W(PN$)));PN$jƑ(W(VD$)));VD$j.ǎ%j8Ǒ Q$;: R$6jtRL$(R$,)RjyNj R$"END" M : tjȍ8:N!:R$E$ώ:DP:DGjȋ(R$,)" "R$(R$,):jȋ(R$)Zj(ȂJJ(R$):CH((R$,JJ,))j2ȋCH/CH:DG:Pk<ȋCH.DPDP:DPύ::P6kFȋ(CH-CH+)JJύ:NkPȃJJ:DGύ:ykZN!(R$):(N!LB!N!UB!)LB!UB!ώkdȍ:kȍ 8: (R$) MO: DA: YR: kȋ(R$) (R$) &lMO(R$,"/"): MO  : MO R$"0"R$FlDA(,R$,"/"): DA {lȋ DA RL$(R$,): R$"0"(R$,):R$RL$R$lMO((R$,)):DA((R$,,)):YR((R$,))lȋ(MO)(MO )(DA)(DA )(YR)(YRc)ώlȍ:mɍ8:DP:DG)mɋ(R$,)" "R$(R$,):cmJJ(R$,","):JJR$(R$,,JJ)(R$,JJ):mɋ(R$,)"$"R$(R$,)mɋ(R$)D#:mɂJJ(R$):CH((R$,JJ,))mɋCH/CH:DG:mɋCH.DPDP:DPύ::%nɋ(CH-)(CH+)JJύ:=nɃJJ:DGύ:QnD#(R$"D"):inXQ$Q$" (Y OR N)? "n]YES:8:RL$"Y"YES:n_ʋ (R$) nbʋRL$"N"ύ:] : nʑ:"POSITION THE PAPER AT THE TOP OF A PAGE. "oQ$"READY": X: (R$) )oʋ YES  : `oґ"*** INVALID ENTRY. PLEASE REENTER. ***";BELL$:mo"ӋER%ώoTӑ"*** SYSTEM ERROR ";ER%;". PLEASE CONSULT MANUAL. ***";BELL$o^Ӊ Moӑ"*** NUMBER IS OUT OF RANGE. ***";BELL$:'pԑ"*** INCORRECT DATE. MUST BE FORM MM/DD/YY. ***";BELL$:Xpԑ:" BASIC ERROR NUMBER ";;" LINE NO. ";pԑ" CONSULT BASIC MANUAL FOR EXPLANATION. "pԑ:"ABNORMAL END OF JOB ":pՂI:BELL$;:: MqHՑ: "*** PROPER SYSTEM FILE NOT FOUND. CAN'T CONTINUE. ***":QqzՑ: "*** SYSTEM FILE INITIALIZED IMPROPERLY. CAN'T CONTINUE. ***":q_:10/30/78 Multi ARray ISam - MARIS (OP) q`ꕨ:OP,(,,,T,,, ,,H,,,tqjꕨ:q=ER%:j::Dr: CREATE MARIS FILE (FI%, NA$, DI%, DA$, KL%, OC$, RETURNS: ER%) prꕨ:NA$(DI%A)":"NA$:NA$ASNA$rER%:rꕨ:ER%:ER%:s"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$,ASO8$tsO0$"MARIS":O1$():O2$DA$:O3$(): O4$():O5$O4$:O6$(KL%):O7$OC$:O8$"103078"sFI%,:FI%:ER%:s': OPEN MARIS FILE (FI%, NA$, DI%, RETURNS: DA$, EX%, NR%, OA, KL%, OC$, OI, ER%) t(땨2:NA$(DI%A)":"NA$:NA$ASNA$%t2ER%:<At<땨:ER%:ER%:tF"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$tPFI%,:O0$"MARIS"FI%:ER%:]uZDA$O2$:EX%(O3$):NR%(O4$):OA(O5$):KL%(O6$):OC$O7$: FI%,(KL%)ASOK$,({KL%)ASOT$,ASOM$,ASOE$,ASOL$: O1$()x:NR%udOKKL%:OTOK:OJOT:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OJOTOJ:FI%vnOK$(OI)OT$(OJ):OJOJ:OI:OT$:vx:"*** FILE WAS NOT CLOSED PROPERLY. ONE MOMENT FOR FIX...": BE$:NR%:FI%,:EX%:OPEX%:FI%: OM$"M"NR%NR%:OK$(NR%)OK$(OP)vyOP:NR%:OH():OH():OH():OH() :OTwzOH(OT)NR%OTOT:OH(OT)OH(OT):zSw{OKOT:OHOH(OK):OJOHNR%:OIOJOH:OT$,OK$(OJ)w|OT$OK$(OI)ϥOK$(OIOH),OK$(OI):OIOIOH:OI|w}OK$(OIOH),OT$:OJ,OK:OHwFI%,:O1$():FI%,:ODDI%:w: CLOSE MARIS FILE (RETURNS: ER%) x땨:FI%,:ER%:*xER%:>x땨:ER%ώbxNR%:OKKL%:OTOKxOJ:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OT$(OJ)OK$(OI):OJOJ:OJOTFI%:OJyOI:OT$:OJFI%`yFI%,:O1$():O3$(EX%):O4$(NR%): O5$(OA):O7$OC$:FI%,:FI%:ER%:y: CREATE RECORD (KE$, RETURNS: OI, OS, ER%) y:ER%ώ:yNR%OBςOJNR%OB:OK$(OJ),OK$(OJ):@zNR%NR%:OIOB:OK$(OI)KE$(OS):OK$KE$:OM$"M": OE$(OS):OL$(OS):FI%,OS:ER%:zzS: DELETE RECORD (KE$, RETURNS: KE$, OI, OS, ER%) zT:ER%ώ::NR%NR%:OTOS: OINR%ςOJOINR%:OK$(OJ),OK$(OJ):z^OSOL:OSOTύ:^1{hOINR%ER%::OS((OK$(OI),)): KE$(OK$(OI),KL%):ER%:V{: REWIND (RETURNS: OI, ER%) w{OI:NR%ER%::ER%:{: SEARCH (KE$, RETURNS: OI, OS, ER%) {OTNR%:OB:(KE$)KL%KE$(KE$(KL%," "),KL%)|&OBOTOI(OTOB):OT$(OK$(OI),KL%):ER%:E|0OT$KE$OTOI:&:OT$KE$OBOI:&f|:OS((OK$(OI),)):ER%:|: GET RECORD (KE$, RETURNS: OI, OS, OE, OL, ER%) |:ER%ώ :FI%,OS:OE(OE$):OL(OL$):ER%:}: GET NEXT RECORD (RETURNS: KE$, OI, OS, OE, OL, ER%) }}OINR%ER%::OIOI:OS((OK$(OI),)):FI%,OS: KE$OK$:OE(OE$):OL(OL$):ER%:}G: GET PREVIOUS RECORD (RETURNS: KE$, OI, OS, OE, OL, ER%) !~HOIER%::OIOI:OS((OK$(OI),)):FI%,OS: KE$OK$:OE(OE$):OL(OL$):ER%:\~: CREATE EXTENT SECTOR (OE, OL, RETURNS: OS, ER%) ~:FI%,OE:OL$(OS):FI%,OE: FI%,OL:OE$(OS):FI%,OL:FI%,OS:OE$(OE): OL$(OL):OM$"E":FI%,OS:ER%:: DELETE EXTENT SECTOR (OS, RETURNS: OE, OL, ER%) 9FI%,OS:OM$"E"ER%::FI%,OE:OL$(OL):FI%,OE: FI%,OL:OE$(OE):FI%,OL:ER%:s: GET EXTENT SECTOR (OS, RETURNS: OE, OL, ER%) tFI%,OS:OM$"E"ER%:OE(OE$):OL(OL$):ER%~ /: SETUP (NR%) 0O:OK$(NR%):H: GET NEW SECTOR (RETURNS: OS) ~OAFI%,OA:OSOA:OA(OL$):EX%EX%:OSEX%FI%,:O3$(EX%):O5$(OA):FI%,:ER%:: FREE OLD SECTOR (OS, RETURNS: OE, OL, ER%) 3FI%,OS:OE(OE$):OL(OL$):OM$"F":OL$(OA):OAOS: FI%,OS:V IILC A: : II: LC: E, OL, ER%) 3FI%,OS:OE(OE$):OL(OL$):OM$"F":OL$