I:GLIN.BAS, INCOME STATEMENT, RDR, 7/15/78 REV. CP/M 2.3, 7/27/79J  :COPYRIGHT 1978 RETAIL SCIENCES, INC."J =JPN$"INCOME STATEMENT"GJ PpJ TC#(),TY#(),TB#(),LC#(),LY#()J FM$"$$#,###,###.##-"J%FP$"####.#"J* @ :GET ACCOUNT RANGESJ4ALA!(): AHA!() :ASSETS LOW, HIGHK>CLA!(): CIA!() :CAP & LIAB0KHILA!(): IHA!() :INCOMETKRELA!(): EHA!() :EXPENSESK\REA!() :RETAINED CURRENT EARNINGSKf:ASSUMING: 1) NO DEPARTMENT CODES FOR LAST MAJOR ACCOUNT OF ANYKp: RANGE (199, 299, 399, ETC):Lz: 2) COA IS STRUCTURED SEQUENTIALLY WITH ASSETS FIRST,L: FOLLOWED BY CAP & LIAB, THEN INCOME, THEN EXPENSES LASTLNR%(V$( )): 0:  :INIT, OPENL:Q$"WHAT DATE IS TO BE PRINTED ON THIS REPORT (MM/DD/YY)? "-M:(R$)ϑ"USING ";VD$:R$VD$::VD$R$bM :PP%=PREVIOUS PERIOD POINTER (MA#() ARRAY)MPP%((MOFM% ) ) :MO=THIS MONTH (FROM ENTERED DATE)M :FM%=FISCAL MONTH START (FROM 40000 SUBR.)M+N"YOU MAY SELECT - 1 - TO PRINT THIS REPORT WITHOUT LAST YEARS TOTALS"tN" 2 - TO PRINT THIS REPORT WITH LAST YEARS TOTALS"N:Q$"WHAT IS YOUR SELECTION (1 OR 2)? "NLB!: UB!: N N! LY% : LY% :LY% = LAST YEAR FLAG O  :TOP - OF - FORMDO:"** PRINTING WILL BEGIN AFTER TOTAL INCOME HAS"dO"** BEEN ACCUMULATED. . ."O N! LY% : LY% :LY%=LAST YEAR FLAGOM1$((IL),):  :READ MASTER DIRECTO ER%  :FOUND ITP  :READ MASTER SEQUENTIAL#P M1IH 7P M3 VPCT#CT#MA#() :CURRENTxP$YT#YT#MA#()MA#() :YTDPL PCT#CT#: YT#YT# :REVERSE SIGNS OF INCOME ACCOUNTSP CT# CT#hP YT# YT#h)QM1$((IL),):  :READ MASTER DIRECT`Q ER% 0u:  :SKIP NEXT READ IF FOUNDvQ 0u :HEADERSQ  :READ MASTER SEQUENTIALQ ER% MQ M3  Q M2$QLCLC: LC< : : : R  M3 NR M4$"M" :  :HANDLE M/S'S IN SPECIAL SUBR.R  (MA#()) #y (MA#()) #y (MA#()) #y (MA#(PP%)) #y (MA#()) #y R* M2$;);S> M1IH SF% : SF% :SIGN FACTOR (REVERSE IF INCOME ACCT).SH FM$;SF%(MA#());YSR -);: FP$;SF%((MA#()CT#)d);S\ 6);: FM$;SF%(MA#()MA#());Sf G);: FP$;SF%(((MA#()MA#())YT#)d);Sp LY% : Sz P);: FM$;SF%(MA#());T a);: FM$;SF%(MA#(PP%));?T r);: FM$;SF%(MA#(PP%)MA#())MT I rTTC#(I)TC#(I)MA#() :CURRENTTTY#(I)TY#(I)MA#()MA#() :YTDT LY% TTB#(I)TB#(I)MA#() :BUDGETTLC#(I)LC#(I)MA#(PP%) :PREV YR CURRENT2ULY#(I)LY#(I)MA#(PP%)MA#() :PREV YR YTD8UfULCLC: LC< : : : U);"-------------- ------ -------------- ------";U LY% :  U " -------------- -------------- --------------"V M2$;);5V M3ML MLM3 : M1IH SF%:  SV M1IH SF% : SF%nV FM$;SF%(TC#(M3));V -);: FP$;SF%((TC#(M3)CT#)d);V 6);: FM$;SF%(TY#(M3));V G);: FP$;SF%((TY#(M3)YT#)d);W LY% : : #W P);: FM$;SF%(TB#(M3));FW& a);: FM$;SF%(LC#(M3));hW0 r);: FM$;SF%(LY#(M3))nW: WD IM3  WN TC#(I)WX TY#(I)W] LY%  Wb TB#(I)Wl LC#(I)Wv LY#(I)W X LCLC: LC8 : : : ?XH1M1: H2$M2$: H7#: H6#: HB#: HC#: HY#]X  :READ SEQUENTIALtX M4$"S" X M3 XH6#H6#MA#() : H7#H7#MA#()XHB#HB#MA#() : HC#HC#MA#(PP%) : HY#HY#MA#()X GY (H6#) #y (H7#) #y (HB#) #y (HC#) #y (HY#) #y WY H2$;);uY H1IH SF% : SF%Y FM$;SF%(H6#);Y -);: FP$;SF%((H6#CT#)d);Y" 6);: FM$;SF%(H6#H7#);Z, G);: FP$;SF%(((H6#H7#)YT#)d);Z6 LY% : ^9Z@ P);: FM$;SF%HB#;VZJ a);: FM$;SF%HC#;xZT r);: FM$;SF%(HY#HC#)Z^ I ZhTC#(I)TC#(I)H6#ZrTY#(I)TY#(I)H6#H7#Zw LY% Z|TB#(I)TB#(I)HB#ZLC#(I)LC#(I)HC#[LY#(I)LY#(I)HC#HY#[8[LCLC: LC< : 0u>[L[M t[M FO% OP: ` :CLOSE MARIS[M :ANYTHING ELSE[M PF% N[M);"============== ====== ============== ======";[M LY% : M0\M" ============== ============== =============="C\MLCLC: X\N:"END OF "PN$\N:Q$"PUSH THE 'RETURN' KEY TO RETURN TO THE MAIN GL MENU "\N 8: (R$) \N "A:GL MENU"\0uPF%: LY% W : WP]:u (W(VC$)));VC$;"]Du LY% n);: : F);=]NuPGPG: "PAGE ";PGW]Xu (W(VS$)));VS$q]bu (W(PN$)));PN$]lu (W(VD$)));VD$]vu]u LY% u^u );"----------------------- T H I S Y E A R ------------------------ ------ L A S T Y E A R ------"^^u );"THIS MONTH";.);"RATIO";7);"YEAR-TO-DATE"; H);"RATIO";u^u LY% : u^u T);"BUDGET";d);"THIS MONTH";s);"YEAR-TO-DATE"^u );"-------------- ------ -------------- ------";_u LY% : uD_u P);"-------------- -------------- --------------"J_uc_u LY% LC : LCi_u_@ "I",,MD$":GLSRC.DAT": S$(), A!()_J I : #,I$: A!(I)(I$): I :ACCOUNT #'S`T I : #,S$(I): I :SOURCE DESCRIPTIONS9`Y #,MM$: FM%(MM$) :FISCAL MONTH STARTA`^ G`hS`:OPEN`FI%:NA$"GLMST.DAT":DI%DK%():OP:``ij ER% T`γ F1$(),MA#() :COA FIELDS`س #, ASF1$(), ASF1$(), ASF1$(), ASF1$(), ASF1$()-aⳂ I : #, I AS T$, ASF1$(I): Ia쳆 F2$() :JE FIELDSa #,  AS F2$(),  AS F2$(), ASF2$(), ASF2$()a #, 'AST$, ASF2$(), ASF2$()a FO% :FILE OPEN FLAGaax:CLOSEa FO% : FO%bOP: `: ER% T : 'b@:REWINDLbJOP: `: ER% T : eb:CREATE NEW RECORDbKE$M1$: OP: `: ER% Tb F1$()M1$: F1$()M2$: F1$()M3$: F1$()M4$c F1$()M5$:I:DD#MA#(I): :F1$(I)II$:c FI%,OS: 0c`:UPDATE CURRENT RECORDEcj ( :SEARCHact ER% T : vcĸ:DELETE RECORDcθKE$M1$: OP: `: ER% T : c(:SEARCH FOR RECORDc2KE$M1$: OP: `: c:GET RECORDdKE$M1$: OP: `%d ER% : ER% TddM1$F1$(): M2$F1$(): M3$F1$(): M4$F1$(): M5$F1$()dM1(M1$): M3(M3$): M5(M5$)d I :II$F1$(I): :MA#(I)DD#::d:GET NEXT RECORDdOP: `: ER% T : e:CREATE NEW EXTENThMD$V$( ): MD$"B" H: MShÕ : thË 5 8 H: MhË 6 > A z: MhÉ hN#:X9$()():X8$()(): iII$((N#DD#H),,):1iDD#((X9$II$X8$)(N#))ףp= #z:`iØSD!(S$)((S$,)(S$,)(S$,,))iØDS$(D!)((D!),,)"/"((D!),)"/"((D!),,)iĿ "I",,"A:GLDA.DAT": #,VD$:  :DATEjVS$V$(): VC$V$() :SYSTEM, COMPANY NAME4jĂ I (V$()): DK%(I)(V$(I)): \jđ SC$: :: :DISPLAY HEADERSj"đ:"ONE MOMENT FOR PROGRAM STARTUP...."::jƑ(W(VC$)));VC$:(W(VS$)));VS$jƑ(W(PN$)));PN$jƑ(W(VD$)));VD$j.ǎk8Ǒ Q$;: R$ktRL$(R$,)0kyNj R$"END" M : Rkȍ8:N!:R$E$ώ:DP:DGukȋ(R$,)" "R$(R$,):kȋ(R$)Zk(ȂJJ(R$):CH((R$,JJ,))k2ȋCH/CH:DG:Pk<ȋCH.DPDP:DPύ::PlFȋ(CH-CH+)JJύ:,lPȃJJ:DGύ:WlZN!(R$):(N!LB!N!UB!)LB!UB!ώeldȍ:lȍ 8: (R$) MO: DA: YR: lȋ(R$) (R$) mMO(R$,"/"): MO  : MO R$"0"R$$mDA(,R$,"/"): DA Ymȋ DA RL$(R$,): R$"0"(R$,):R$RL$R$mMO((R$,)):DA((R$,,)):YR((R$,))mȋ(MO)(MO )(DA)(DA )(YR)(YRc)ώmȍ:mɍ8:DP:DGnɋ(R$,)" "R$(R$,):AnJJ(R$,","):JJR$(R$,,JJ)(R$,JJ):_nɋ(R$,)"$"R$(R$,)tnɋ(R$)D#:nɂJJ(R$):CH((R$,JJ,))nɋCH/CH:DG:nɋCH.DPDP:DPύ::oɋ(CH-)(CH+)JJύ:oɃJJ:DGύ:/oD#(R$"D"):GoXQ$Q$" (Y OR N)? "ho]YES:8:RL$"Y"YES:{o_ʋ (R$) obʋRL$"N"ύ:] : oʑ:"POSITION THE PAPER AT THE TOP OF A PAGE. "oQ$"READY": X: (R$) pʋ YES  : >pґ"*** INVALID ENTRY. PLEASE REENTER. ***";BELL$:Kp"ӋER%ώpTӑ"*** SYSTEM ERROR ";ER%;". PLEASE CONSULT MANUAL. ***";BELL$p^Ӊ Mpӑ"*** NUMBER IS OUT OF RANGE. ***";BELL$:qԑ"*** INCORRECT DATE. MUST BE FORM MM/DD/YY. ***";BELL$:Dqԑ"*** START PROGRAM NOT RUN. CAN'T CONTINUE. ***";BELL$:uqԑ:" BASIC ERROR NUMBER ";;" LINE NO. ";qԑ" CONSULT BASIC MANUAL FOR EXPLANATION. "qԑ:"ABNORMAL END OF JOB ":qՂI:BELL$;:: M%rHՑ: "*** PROPER SYSTEM FILE NOT FOUND. CAN'T CONTINUE. ***":nrzՑ: "*** SYSTEM FILE INITIALIZED IMPROPERLY. CAN'T CONTINUE. ***":r_:10/30/78 Multi ARray ISam - MARIS (OP) r`ꕨ:OP,(,,,T,,, ,,H,,,trjꕨ:s=ER%:j::as: CREATE MARIS FILE (FI%, NA$, DI%, DA$, KL%, OC$, RETURNS: ER%) sꕨ:NA$(DI%A)":"NA$:NA$ASNA$sER%:sꕨ:ER%:ER%:"t"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$,ASO8$tO0$"MARIS":O1$():O2$DA$:O3$(): O4$():O5$O4$:O6$(KL%):O7$OC$:O8$"103078"tFI%,:FI%:ER%:u': OPEN MARIS FILE (FI%, NA$, DI%, RETURNS: DA$, EX%, NR%, OA, KL%, OC$, OI, ER%) 3u(땨2:NA$(DI%A)":"NA$:NA$ASNA$Bu2ER%:<^u<땨:ER%:ER%:uF"R",FI%,NA$:NA$(NA$,): FI%,ASO0$,ASO1$,ASO2$,ASO3$,ASO4$,ASO5$,ASO6$,dASO7$uPFI%,:O0$"MARIS"FI%:ER%:zvZDA$O2$:EX%(O3$):NR%(O4$):OA(O5$):KL%(O6$):OC$O7$: FI%,(KL%)ASOK$,({KL%)ASOT$,ASOM$,ASOE$,ASOL$: O1$()x:NR%wdOKKL%:OTOK:OJOT:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OJOTOJ:FI%+wnOK$(OI)OT$(OJ):OJOJ:OI:OT$:wx:"*** FILE WAS NOT CLOSED PROPERLY. ONE MOMENT FOR FIX...": BE$:NR%:FI%,:EX%:OPEX%:FI%: OM$"M"NR%NR%:OK$(NR%)OK$(OP)wyOP:NR%:OH():OH():OH():OH() :OT3xzOH(OT)NR%OTOT:OH(OT)OH(OT):zpx{OKOT:OHOH(OK):OJOHNR%:OIOJOH:OT$,OK$(OJ)x|OT$OK$(OI)ϥOK$(OIOH),OK$(OI):OIOIOH:OI|x}OK$(OIOH),OT$:OJ,OK:OHxFI%,:O1$():FI%,:ODDI%:y: CLOSE MARIS FILE (RETURNS: ER%) 8y땨:FI%,:ER%:GyER%:[y땨:ER%ώyNR%:OKKL%:OTOKzOJ:FI%,EX%:OT$(OT):OB: OIOT:FI%,(OB)ASOT$,(OK)ASOT$(OI):OBOBOK:: OINR%:OT$(OJ)OK$(OI):OJOJ:OJOTFI%:OJ!zOI:OT$:OJFI%}zFI%,:O1$():O3$(EX%):O4$(NR%): O5$(OA):O7$OC$:FI%,:FI%:ER%:z: CREATE RECORD (KE$, RETURNS: OI, OS, ER%) z:ER%ώ:zNR%OBςOJNR%OB:OK$(OJ),OK$(OJ):]{NR%NR%:OIOB:OK$(OI)KE$(OS):OK$KE$:OM$"M": OE$(OS):OL$(OS):FI%,OS:ER%:{S: DELETE RECORD (KE$, RETURNS: KE$, OI, OS, ER%) {T:ER%ώ::NR%NR%:OTOS: OINR%ςOJOINR%:OK$(OJ),OK$(OJ):|^OSOL:OSOTύ:^N|hOINR%ER%::OS((OK$(OI),)): KE$(OK$(OI),KL%):ER%:s|: REWIND (RETURNS: OI, ER%) |OI:NR%ER%::ER%:|: SEARCH (KE$, RETURNS: OI, OS, ER%) |OTNR%:OB:(KE$)KL%KE$(KE$(KL%," "),KL%)1}&OBOTOI(OTOB):OT$(OK$(OI),KL%):ER%:b}0OT$KE$OTOI:&:OT$KE$OBOI:&}:OS((OK$(OI),)):ER%:}: GET RECORD (KE$, RETURNS: OI, OS, OE, OL, ER%) }:ER%ώ :FI%,OS:OE(OE$):OL(OL$):ER%:7~: 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%:y: 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%:2: DELETE EXTENT SECTOR (OS, RETURNS: OE, OL, ER%) VFI%,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%):e: 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%) PFI%,OS:OE(OE$):OL(OL$):OM$"F":OL$(OA):OAOS: FI%,OS:s IILC A: : II: LC: OE, OL, ER%) PFI%,OS:OE(O