IMD 1.16: 8/06/2007 8:06:11 2CON LBR1ACCT1 LBR ACCT1 LBR !"#$%ACCT1 LBR&'()*+,-./012345ACCT1 LBR6789:;<=>?@ABCDEACCT1 LBR FGHIJKLMNOPQRSTUACCT1 LBR VWXYZ[\]^_`abcdeACCT1 LBR OfghijADIR LBRKklmnoAIM LBRZpqrstuvwxyz{|}ANIMATE LBR~AREACD13LBR.BACKGAM COMqBACKMW27LBR4BARG-1 LBRABIGPRINTLBRBIN-CALCLBRT-PUBDOM 055 i02CON -'R2CON AQM, vs2CON.ASMZ  !"$#%&')(*+,o.-/0213547689;:<>=@?ABCDFEGJIHKLMNOPQSRTVUXWYmF#Qf6;)Q%=4}jQrC(ܱ :}2>Nmcaإ8]{Tv܂G3)e KqaVQlGww()]kLeO *杕Os'z~$ ,%6 pțy6 6gN -CBw]A`w]wblG8lTDs'r#U;!BY1߉]6+x\DelFBgwwfdsl!!t;=_97w[ǩp/ /sB;$ 3{G~;]Y"p,% z'H `v܉I0pXʑv$v8]]!䇄6#KBc3iQfs`W'\&62!ȒWv.G*e*kqN 3l)H`p}46GݘrsNHطϝ:Ǥ\1e]]6OLxڬ~<= c9vlCȾ]Vqj<5mA1u.қFXyslj:TOm<5meizی,y]c]8k$ʞFE4\&6wizی,ybb2FbO2;7*:5qlCțJvȒs7g(L2lYm?.M0E~_.mF<3E%3tʋtϝk[ρg.㭻7ZR ᡛT130,0P{&Q@aѶ5i,j$545qe,r,m[sV]-?km]]g<5U.ᡛKjXJ&ͮZЦTTP㱓Wx& "b ϖj⪠najTXdP,]R5J <5mA:&#YdP,]RZM\Gq#5*,A[(lY ڂ]nH]j"b ϖjVwje BvgKj*% l(],* l(] ,뿑(%#Q27FZAq r :E6 3nlw(cd[7َtw;[l`%?;{naa1H+(@у4 .EgKu[iwE&ӥSVDd;&T`]d/("&Xgf]Դwa_M\wZdP,]ى۩i4;삇nH+(0z3hhvGw?%/23 _M\wc Bvg}ZG2.';?k𞹘]è3g)GZA9zd;&,i1H+.,ygA0  ?;a#AgM{.2{tKZ2,.f:&ihvwnm.f]gHl`%H?H>ބD5J <5mA:&#YdP,]RZM\Gq#5*,A[(lY ڂ]nH]j"b 2CON is a coresident utility that allows a CP/M 2.2 computer to have two consoles active at once. (Kind of like a pilot and co-pilot in a plane.) Unlike BYE, it does not diminish the space available to run other programs. The distribution version is customized for the Kaypro, but can be customized for other machines by changing only six variables (those that define the port,f]]8=5 = ALxh5žsFx!WűQ<S&gU5Ҩ~Vbףأ[M\7@ѣW!ibgjWף. /Ip:sĩF :svȣ=5 = g>j⪠a! ]530,׮g;j⪠a!ZAS\,eSVִ}?k{?ىޛwإ3sFB6z|ծts/& JҙvhŚ9cΠz6z]pqY1Y5 tٌckt~GڅއsFxώ30`R.kGgpv0?ۅV]ծlY ڂڵbybqM>Z SAծGLv. L;kJބD5J <5mA:&#YdP,]RZM\Gq#5*,A[(lY ڂ]nH]j"b 2CON is a coresident utility that allows a CP/M 2.2 computer to have two consoles active at once. (Kind of like a pilot and co-pilot in a plane.) Unlike BYE, it does not diminish the space available to run other programs. The distribution version is customized for the Kaypro, but can be customized for other machines by changing only six variables (those that define the port * DATE 07/20/84 18:12 * chart of account program STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:CHART SET INDEX TO &dr.:chart STOR t TO more3 DO WHIL more3 REST from coname additive ERAS TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * *  ADD BLD0ADD1 BLDqADD2 BLD@GCHART ACC2y!CHECKS ACCB@DEPOS ACCaEDIT BLD#INIT ACC JOURN ACCPJOURP ACCL\MAIN ACC'+MAIN BLD9RMAINTAINACCMAINTAINBLDxMENU ACCMENU BLD[POSTIT ACCR]PRINT BLD`REPORT BLDpSEARCH BLDSEARCH1 BLD/ NSTATEM ACC\=2STATEMP ACC7  * * * * * * * * * * * * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< t TO more4 DO WHIL more4 ERAS STOR ' ' TO macctno STOR ' ' TO mdesc @ 08,10 SAY 'Add as many account as you wish - just leave a blank to end' @ 10,10 SAY "Account Number: " @ 11,13 SAY "Description: " @ 10,27 GET macctno PICTURE '9999' @ 11,27 GET mdesc READ IF macctno = ' ' STOR f TO more4 ENDI macct no ENDD while more4 CASE comman = '5' SET TALK ON SET ECHO ON STOR CHR(PEEK(063)) TO dr SET INDEX TO PACK INDE on acctno TO &dr.:chart SET ECHO OFF SET TALK OFF SET INDEX TO &dr.:chart CASE comman = '?' ERAS TEXT C H A R T O F A C C O U N T S H E L P M E N U The Chart of Accounts is critical to your use of this program. It is the vehicle by which you can customize Property Manager to fit your requirement. IF YOU SELECTED THE GENERAL CHART OF ACCOUNTS YOU MUST INDEX BEFORE FIRST USE. The Display function shows the v ENDT STOR '?' TO comman @ 3,04 SAY coname + ' - CHART OF ACCOUNTS MENU' @ 3,65 SAY date() @ 07,26 SAY "1. Display Chart of Accounts" @ 08,26 SAY "2. Print Chart of Accounts" @ 09,26 SAY "3. Edit or delete existing accounts" @ 10,26 SAY "4. Add new accounts" @ 11,26 SAY "5. Index Chart of Accounts" @ 12,26 SAY "6. Return to prior menu" @ 17,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 17,58 GET comman PICTURE '!' READ DO WHIL @(COMMAN, '123456?Q') = 0 STOR '?' TO comman @ 17,58 GET comman PICTURE '!' READ ENDD CLEA GETS DO CASE CASE comman = '1' .OR. comman = '2' IF comman = '2' SET PRINT ON LIST all fields acctno, desc SET PRINT OFF ELSE ERAS SET ESCAPE OFF DISP all fields acctno, desc SET ESCAPE ON ? ' ' ? ' Hit any key to continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI comman = '2' CASE comman = '3' ERAS STOR t TO more4 DO WHIL more4 STOR ' ' TO macctno arious accounts on screen in account number order. The print funtion outputs a full list to your printer. We would suggest that you print the list and decide how it should be customized to meet your needs. You can then use the edit function to change or delete items and the add funtion to add new items. Remember, before you use it you must index it. (Note to the edit function will not find an entry that has had the account number changed unless you reindex. If you change the account number structure you may have to change the statement writing modules. Chances are you will not have to - but you may. Hit any key to continue ENDT SET CONSOLE OFF WAIT SET CONSOLE ON CASE comman = '6' .OR. comman = 'Q' STOR f TO more3 ENDC ENDD WHILE more3 RELE ALL STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO &dr.:account STOR t TO accou STOR ' ' TO mdesc @ 12,00 @ 13,00 @ 15,00 @ 8,10 SAY 'Leave blank to end editing' @ 10,10 SAY "What account shall we edit ?" @ 10,39 GET macctno PICTURE '9999' READ IF macctno = ' ' STOR f TO more4 ELSE FIND &macctno DO WHIL # = 0 @ 10,10 SAY "What account shall we edit ?" @ 10,39 GET macctno PICTURE '9999' READ FIND &macctno ENDD WHILE # = 0 STOR 'N' TO getrid STOR desc TO mdesc @ 12,10 SAY "Account Number: " @ 13,13 SAY "Description: " @ 12,27 GET macctno PICTURE '9999' @ 13,27 GET mdesc READ @ 15,15 SAY "Shall we delete the account ?" @ 15,45 GET getrid PICTURE '!' READ CLEA GETS IF getrid = 'Y' @ 17,10 SAY "Don't forget to reindex to remove deleted record." DELE ELSE REPL acctno WITH macctno REPL desc WITH mdesc ENDI getrid ENDI macctno ENDD WHILE more4 CASE comman = '4' STOR nt1 RETU * DATE 08/23/84 21:05 * check entry screen ERAS SET INTENSITY ON SET COLON OFF STOR ' ' TO blnks STOR $(blnks,1,2) TO mprop STOR $(blnks,1,4) TO mbank STOR $(blnks,1,8) TO mdate1 STOR t TO more STOR t TO first STOR "When done, leave first amount and check no. blank and enter Control 'Q'" TO prompt DO WHIL more STOR $(blnks,1,4) TO mchk1 STOR $(blnks,1,20) TO mpay1 STOR $(blnks,1,20) TO mpay1a STOR $(blnks,1,4) TO macc1 STOR 0.00 TO mamt1 STOR $(blnks,1,4) TO mchk2 STOR $(blnks,1,20) TO mpay2 STOR $(blnks,1,20) TO mpay2a STOR $(blnks,1,4) TO macc2 STOR 0.00 TO mamt2 STOR $(blnks,1,4) TO mchk3 STOR $(blnks,1,20) TO mpay3 STOR $(blnks,1,20) TO mpay3a STOR $(blnks,1,4) TO macc3 STOR 0.00 TO mamt3 STrify PICTURE '!' READ CLEA GETS IF verify = 'Y' STOR f TO first @ 3,14 GET mprop PICTURE '99' @ 3,44 GET mdate1 PICTURE '99/99/99' @ 4,14 GET mbank PICTURE '9999' @ 6,14 GET mchk1 PICTURE '9999' @ 6,43 GET mpay1 @ 7,14 GET mpay1a @ 7,43 GET macc1 PICTURE '9999' @ 7,60 GET mamt1 @ 9,14 GET mchk2 PICTURE '9999' @ 9,43 GET mpay2 @ 10,14 GET mpay2a @ 10,43 GET macc2 PICTURE '9999' @ 10,60 GET mamt2 @ 12,14 GET mchk3 PICTURE '9999' @ 12,43 GET mpay3 @ 13,14 GET mpay3a @ 13,43 GET macc3 PICTURE '9999' @ 13,60 GET mamt3 @ 15,14 GET mchk4 PICTURE '9999' @ 15,43 GET mpay4 @ 16,14 GET mpay4a @ 16,43 GET macc4 PICTURE '9999' @ 16,60 GET mamt4 @ 18,14 GET mchk5 PICTURE '9999' @ 18,43 GET mpay5 @ 19,14 GET mpay5a @ 19,43 GET macc5 PICTURE '9999' @ 19,60 GET mamt5 @ 20,00 @ 21,00 @ 22,00 READ CLEA GETS ENDI verify * error checking routine * put in all of the other routines you may require STOR t TO validate DOR $(blnks,1,4) TO mchk4 STOR $(blnks,1,20) TO mpay4 STOR $(blnks,1,20) TO mpay4a STOR $(blnks,1,4) TO macc4 STOR 0.00 TO mamt4 STOR $(blnks,1,4) TO mchk5 STOR $(blnks,1,20) TO mpay5 STOR $(blnks,1,20) TO mpay5a STOR $(blnks,1,4) TO macc5 STOR 0.00 TO mamt5 STOR 'N' TO verify IF first @ 1,12 SAY "Cash Disbursements Entry Screen - Posted" @ 1,55 SAY date() @ 3, 4 SAY "Property:" @ 3,37 SAY "Date:" @ 4, 0 SAY "Bank Acct No:" @ 6, 0 SAY "Check Number:" @ 6,36 SAY "Payee:" @ 7, 1 SAY "Description:" @ 7,35 SAY "Acct #:" @ 7,50 SAY "Amount:" @ 9, 0 SAY "Check Number:" @ 9,36 SAY "Payee:" @ 10, 1 SAY "Description:" @ 10,35 SAY "Acct #:" @ 10,50 SAY "Amount:" @ 12, 0 SAY "Check Number:" @ 12,36 SAY "Payee:" @ 13, 1 SAY "description:" @ 13,35 SAY "Acct #:" @ 13,50 SAY "Amount:" @ 15, 0 SAY "Check Number:" @ 15,36 SAY "Payee:" @ 16, 1 SAY "Description:" @ 16,35 SAY "Acct #:" @ 16,50 SAY "Amount:" @ 18, 0 SAY "Check NumbO WHIL VALIDATE DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.(mdate1 = ' ') STOR t TO error CASE mamt1 <> 0 .AND. ($(mbank,4) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.($(macc1,4) = ' ') STOR t TO error CASE mamt2 <> 0 .AND.($(macc2,4) = ' ') STOR t TO error CASE mamt3 <> 0 .AND.($(macc3,4) = ' ') STOR t TO error CASE mamt4 <> 0 .AND.($(macc4,4) = ' ') STOR t TO error CASE mamt5 <> 0 .AND.($(macc5,4) = ' ') STOR t TO error OTHE STOR f TO validate STOR f TO error ENDC IF error @ 20,00 @ 21,00 @ 22,00 @ 21,14 SAY "PLEASE CORRECT THE INDICATED DATA" * keep looping till all fields are fixed STOR t TO an:error DO WHIL an:error * fix bad ones one at a time DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a two number property account or '00'" @ 3,14 GET mprop PICTURE '99' READ CASE mamt1 <> 0 .AND.(mdaer:" @ 18,36 SAY "Payee:" @ 19, 1 SAY "Description:" @ 19,35 SAY "Acct #:" @ 19,50 SAY "Amount:" @ 22,10 SAY prompt ENDI first STOR f TO first @ 3,14 GET mprop PICTURE '99' @ 3,44 GET mdate1 PICTURE '99/99/99' @ 4,14 GET mbank PICTURE '9999' @ 6,14 GET mchk1 PICTURE '9999' @ 6,43 GET mpay1 @ 7,14 GET mpay1a @ 7,43 GET macc1 PICTURE '9999' @ 7,60 GET mamt1 @ 9,14 GET mchk2 PICTURE '9999' @ 9,43 GET mpay2 @ 10,14 GET mpay2a @ 10,43 GET macc2 PICTURE '9999' @ 10,60 GET mamt2 @ 12,14 GET mchk3 PICTURE '9999' @ 12,43 GET mpay3 @ 13,14 GET mpay3a @ 13,43 GET macc3 PICTURE '9999' @ 13,60 GET mamt3 @ 15,14 GET mchk4 PICTURE '9999' @ 15,43 GET mpay4 @ 16,14 GET mpay4a @ 16,43 GET macc4 PICTURE '9999' @ 16,60 GET mamt4 @ 18,14 GET mchk5 PICTURE '9999' @ 18,43 GET mpay5 @ 19,14 GET mpay5a @ 19,43 GET macc5 PICTURE '9999' @ 19,60 GET mamt5 @ 20,00 READ CLEA GETS @ 22,00 @ 22,20 SAY "DO YOU WANT TO MAKE ANY CHANGES ? [ ]" @ 22,55 GET vete1 = ' ') @ 22,00 @ 22,10 SAY "You must have a transaction date" @ 3,44 GET mdate1 PICTURE '99/99/99' READ CASE mamt1 <> 0 .AND.($(mbank,4) = ' ') @ 22,00 @ 22,10 SAY "You must have a bank account" @ 4,14 GET mbank PICTURE '9999' READ CASE mamt1 <> 0 .AND. ($(macc1,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers" @ 7,43 GET macc1 PICTURE '9999' READ CASE mamt2 <> 0 .AND. ($(macc2,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers " @ 10,43 GET macc2 PICTURE '9999' READ CASE mamt3 <> 0 .AND. ($(macc3,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers" @ 13,43 GET macc3 PICTURE '9999' READ CASE mamt4 <> 0 .AND. ($(macc4,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers " @ 16,43 GET macc4 PICTURE '9999' READ CASE mamt5 <> 0 .AND.($(macc5,4) = ' ') @ 22,00 @ 2TOR ' ' TO command * DATE 07/07/84 07:20 * deposit entry screen ERAS SET INTENSITY ON SET COLON OFF STOR ' ' TO blnks STOR $(blnks,1,2) TO mprop STOR $(blnks,1,4) TO mbank STOR $(blnks,1,8) TO mdate1 STOR t TO more STOR t TO first STOR "When done, leave first amount blank and enter Control 'Q'" TO prompt DO WHIL more STOR $(blnks,1,4) TO mchk1 STOR $(blnks,1,20) TO mpay1 STOR 'rent ' TO mpay1a STOR $(blnks,1,4) TO macc1 STOR 0.00 TO mamt1 STOR $(blnks,1,4) TO mchk2 STOR $(blnks,1,20) TO mpay2 STOR 'rent ' TO mpay2a STOR $(blnks,1,4) TO macc2 STOR 0.00 TO mamt2 STOR $(blnks,1,4) TO mchk3 STOR $(blnks,1,20) TO mpay3 STOR 'rent ' TO mpay3a STOR $(blnks,1,4) TO macc3 STOR 0.02,10 SAY "Account Number must be four numbers" @ 19,43 GET macc5 PICTURE '9999' READ OTHE @ 20,00 @ 21,00 @ 22,00 @ 22,10 SAY prompt STOR F TO validate STOR f TO an:error ENDC ENDD WHILE an:error ENDI error ENDD validate RELE error, an:error, validate STOR $(mdate1,7,2) + $(mdate1,1,2) + $(mdate1,4,2) TO mdate2 IF mamt1 > 0 .OR.(mamt1 = 0 .AND. mchk1 <> ' ') APPE BLANK REPL date WITH mdate2 REPL data WITH mchk1+mprop+macc1+'D'+mpay1+date()+'D' REPL amount WITH mamt1 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk1+mprop+mbank+'C'+mpay1a+date()+'D' REPL amount WITH (mamt1*-1) IF mamt2 > 0 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk2+mprop+macc2+'D'+mpay2+date()+'D' REPL amount WITH mamt2 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk2+mprop+mbank+'C'+mpay2a+date()+'D' REPL amount WITH (mamt2*-1) ENDI mamt2 IF mamt3 > 0 APPE BLANK REPL date WITH md0 TO mamt3 STOR $(blnks,1,4) TO mchk4 STOR $(blnks,1,20) TO mpay4 STOR 'rent ' TO mpay4a STOR $(blnks,1,4) TO macc4 STOR 0.00 TO mamt4 STOR $(blnks,1,4) TO mchk5 STOR $(blnks,1,20) TO mpay5 STOR 'rent ' TO mpay5a STOR $(blnks,1,4) TO macc5 STOR 0.00 TO mamt5 STOR 'N' TO verify IF first @ 1,12 SAY "Cash Receipts Entry Screen - Posted" @ 1,51 SAY date() @ 3, 4 SAY "Property:" @ 3,37 SAY "Date:" @ 4, 0 SAY "Bank Acct No:" @ 6, 2 SAY "Account No:" @ 6,26 SAY "Tenant No/Payor:" @ 7, 1 SAY "Description:" @ 7,36 say "Ck No:" @ 7,50 SAY "Amount:" @ 9, 2 SAY "Account No:" @ 9,26 SAY "Tenant No/Payor:" @ 10, 1 SAY "Description:" @ 10,36 SAY "Ck No:" @ 10,50 SAY "Amount:" @ 12, 2 SAY "Account No:" @ 12,26 SAY "Tenant No/Payor:" @ 13, 1 SAY "Description:" @ 13,36 SAY "Ck No:" @ 13,50 SAY "Amount:" @ 15, 2 SAY "Account No:" @ 15,26 SAY "Tenant No/Payor:" @ 16, 1 SAY "Description:" @ 16,36 SAY "Ck ate2 REPL data WITH mchk3+mprop+macc3+'D'+mpay3+date()+'D' REPL amount WITH mamt3 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk3+mprop+mbank+'C'+mpay3a+date()+'D' REPL amount WITH (mamt3*-1) ENDI mamt3 IF mamt4 > 0 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk4+mprop+macc4+'D'+mpay4+date()+'D' REPL amount WITH mamt4 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk4+mprop+mbank+'C'+mpay4a+date()+'D' REPL amount WITH (mamt4*-1) ENDI mamt4 IF mamt5 > 0 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk5+mprop+macc5+'D'+mpay5+date()+'D' REPL amount WITH mamt5 APPE BLANK REPL date WITH mdate2 REPL data WITH mchk5+mprop+mbank+'C'+mpay5a+date()+'D' REPL amount WITH (mamt5*-1) ENDI mamt5 STOR t TO more ELSE STOR f TO more ENDI mamt1 > 0 STOR t TO first ENDD WHILE more SET COLON ON REST from manage.dat IF bright = 'I' SET INTENSITY OFF ENDI bright RELE ALL STOR t TO account SNo:" @ 16,50 SAY "Amount:" @ 18, 2 SAY "Account No:" @ 18,26 SAY "Tenant No/Payor:" @ 19, 1 SAY "Description:" @ 19,36 SAY "Ck No:" @ 19,50 SAY "Amount:" ENDI first STOR f TO first @ 3,14 GET mprop PICTURE '99' @ 3,44 GET mdate1 PICTURE '99/99/99' @ 4,14 GET mbank PICTURE '9999' @ 6,14 GET macc1 PICTURE '9999' @ 6,43 GET mpay1 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 7,14 GET mpay1a @ 7,43 GET mchk1 PICTURE '9999' @ 7,60 GET mamt1 @ 9,14 GET macc2 PICTURE '9999' @ 9,43 GET mpay2 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 10,14 GET mpay2a @ 10,43 GET mchk2 PICTURE '9999' @ 10,60 GET mamt2 @ 12,14 GET macc3 PICTURE '9999' @ 12,43 GET mpay3 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 13,14 GET mpay3a @ 13,43 GET mchk3 PICTURE '9999' @ 13,60 GET mamt3 @ 15,14 GET macc4 PICTURE '9999' @ 15,43 GET mpay4 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 16,14 GET mpay4a @ 16,43 GET mchk4 PICTURE '9999' @ 16,60 GET mamt4 @ 18,14 GET macc5 PICTURE '9999' @ 18,43 GET mpay5 PICTURE '!XXXXXXXXXX CASE ($(mpay2,1,1) = 'T' .AND.(RANK($(mpay2,2)) <58)) .AND. (LEN(TRIM(mpay2)) <>4) STOR t TO error CASE mamt3 <> 0 .AND.($(macc3,4) = ' ') STOR t TO error CASE mamt3 <> 0 .AND.(LEN(TRIM(mpay3)) <4 .AND. $(mpay3,1,1) <> 'T') STOR t TO error CASE ($(mpay3,1,1) = 'T' .AND.(RANK($(mpay3,2)) <58)) .AND. (LEN(TRIM(mpay3)) <>4) STOR t TO error CASE mamt4 <> 0 .AND.($(macc4,4) = ' ') STOR t TO error CASE mamt4 <> 0 .AND.(LEN(TRIM(mpay4)) <4 .AND. $(mpay4,1,1) <> 'T') STOR t TO error CASE ($(mpay4,1,1) = 'T' .AND.(RANK($(mpay4,2)) <58)) .AND. (LEN(TRIM(mpay4)) <>4) STOR t TO error CASE mamt5 <> 0 .AND.($(macc5,4) = ' ') STOR t TO error CASE mamt5 <> 0 .AND.(LEN(TRIM(mpay5)) <4 .AND. $(mpay5,1,1) <> 'T') STOR t TO error CASE ($(mpay5,1,1) = 'T' .AND.(RANK($(mpay5,2)) <58)) .AND. (LEN(TRIM(mpay5)) <>4) STOR t TO error OTHE STOR f TO validate STOR f TO error ENDC IF error @ 20,00 @ 21,00 @ 22,00 @ 21,14 SAY "PLEASE CORRXXXXXXXXX' @ 19,14 GET mpay5a @ 19,43 GET mchk5 PICTURE '9999' @ 19,60 GET mamt5 @ 20,00 @ 21,00 @ 22,00 @ 22,10 SAY prompt READ CLEA GETS @ 22,00 @ 21,20 SAY "DO YOU WANT TO MAKE ANY CHANGES ? [ ]" @ 21,55 GET verify PICTURE '!' READ CLEA GETS IF verify = 'Y' @ 3,14 GET mprop PICTURE '99' @ 3,44 GET mdate1 PICTURE '99/99/99' @ 4,14 GET mbank PICTURE '9999' @ 6,14 GET macc1 PICTURE '9999' @ 6,43 GET mpay1 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 7,14 GET mpay1a @ 7,43 GET mchk1 PICTURE '9999' @ 7,60 GET mamt1 @ 9,14 GET macc2 PICTURE '9999' @ 9,43 GET mpay2 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 10,14 GET mpay2a @ 10,43 GET mchk2 PICTURE '9999' @ 10,43 GET mamt2 @ 12,14 GET macc3 PICTURE '9999' @ 12,43 GET mpay3 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 13,14 GET mpay3a @ 13,43 GET mchk3 PICTURE '9999' @ 13,60 GET mamt3 @ 15,14 GET macc4 PICTURE '9999' @ 15,43 GET mpay4 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 16,16 GET mpay4a @ 16,43 GET mchk4 ECT THE INDICATED DATA" * keep looping till all fields are fixed STOR t TO an:error DO WHIL an:error * fix bad ones one at a time DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a two number property account or '00'" @ 3,14 GET mprop PICTURE '99' READ CASE mamt1 <> 0 .AND.(mdate1 = ' ') @ 22,00 @ 22,10 SAY "You must have a transaction date" @ 3,44 GET mdate1 PICTURE '99/99/99' READ CASE mamt1 <> 0 .AND.($(mbank,4) = ' ') @ 22,00 @ 22,10 SAY "You must have a bank account" @ 4,14 GET mbank PICTURE '9999' READ CASE mamt1 <> 0 .AND.(LEN(TRIM(mpay1)) <4 .AND. $(mpay1,1,1) <> 'T') @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 6,43 GET mpay1 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE ($(mpay1,1,1) = 'T' .AND.(RANK($(mpay1,2)) <58)) .AND. (LEN(TRIM(mpay1)) <>4) @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a threPICTURE '9999' @ 16,60 GET mamt4 @ 18,14 GET macc5 PICTURE '9999' @ 18,43 GET mpay5 PICTURE '!XXXXXXXXXXXXXXXXXXX' @ 19,14 GET mpay5a @ 19,43 GET mchk5 PICTURE '9999' @ 19,60 GET mamt5 @ 20,00 @ 21,00 @ 22,00 @ 22,10 SAY prompt READ CLEA GETS ENDI verify * error checking routine * put in all of the other routines you may require STOR t TO validate DO WHIL VALIDATE DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.(mdate1 = ' ') STOR t TO error CASE mamt1 <> 0 .AND. ($(mbank,4) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.($(macc1,4) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.(LEN(TRIM(mpay1)) <4 .AND. $(mpay1,1,1) <> 'T') STOR t TO error CASE ($(mpay1,1,1) = 'T' .AND.(RANK($(mpay1,2)) <58)) .AND. (LEN(TRIM(mpay1)) <>4) STOR t TO error CASE mamt2 <> 0 .AND.($(macc2,4) = ' ') STOR t TO error CASE mamt2 <> 0 .AND.(LEN(TRIM(mpay2)) <4 .AND. $(mpay2,1,1) <> 'T') STOR t TO error e number code" @ 6,43 GET mpay1 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE mamt1 <> 0 .AND. ($(macc1,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers" @ 6,14 GET macc1 PICTURE '9999' READ CASE mamt2 <> 0 .AND. (LEN(TRIM(mpay2)) <4 .AND. $(mpay2,1,1) <> 'T') @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 9,43 GET mpay2 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE ($(mpay2,1,1) = 'T' .AND.(RANK($(mpay2,2)) <58)) .AND. (LEN(TRIM(mpay2)) <>4) @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 9,43 GET mpay2 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE mamt2 <> 0 .AND. ($(macc2,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers " @ 9,14 GET macc2 PICTURE '9999' READ CASE mamt3 <> 0 .AND.(LEN(TRIM(mpay3)) <4 .AND. $(mpay3,1,1) <> 'T') @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" T' STOR 'T' + mprop + $(mpay1,2,17) TO mpay1 ENDI REPL date WITH mdate2 REPL data WITH mchk1+mprop+mbank+'D'+mpay1+date()+'R' REPL amount WITH mamt1 STOR f TO posted APPE BLANK REPL date WITH mdate2 REPL data WITH mchk1+mprop+macc1+'C'+mpay1a+date()+'R' REPL amount WITH (mamt1*-1) STOR f TO posted IF mamt2 > 0 APPE BLANK IF $(mpay2,1) = 'T' STOR 'T' + mprop + $(mpay2,2,17) TO mpay2 ENDI REPL date WITH mdate2 REPL data WITH mchk2+mprop+mbank+'D'+mpay2+date()+'R' REPL amount WITH mamt2 STOR f TO posted APPE BLANK REPL date WITH mdate2 REPL data WITH mchk2+mprop+macc2+'C'+mpay2a+date()+'R' REPL amount WITH (mamt2*-1) STOR f TO posted ENDI mamt2 IF mamt3 > 0 APPE BLANK IF $(mpay3,1) = 'T' STOR 'T' + mprop + $(mpay3,2,17) TO mpay3 ENDI REPL date WITH mdate2 REPL data WITH mchk3+mprop+mbank+'D'+mpay3+date()+R' REPL amount WITH mamt3 STOR f TO posted APPE BLANK REPL date WITH mdate @ 12,43 GET mpay3 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE ($(mpay3,1,1) = 'T' .AND.(RANK($(mpay3,2)) <58)) .AND. (LEN(TRIM(mpay3)) <>4) @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 12,43 GET mpay3 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE mamt3 <> 0 .AND. ($(macc3,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers" @ 12,14 GET macc3 PICTURE '9999' READ CASE mamt4 <> 0 .AND. (LEN(TRIM(mpay4)) <4 .AND. $(mpay4,1,1) <> 'T') @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 15,43 GET mpay4 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE ($(mpay4,1,1) = 'T' .AND.(RANK($(mpay4,2)) <58)) .AND. (LEN(TRIM(mpay4)) <>4) @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 15,43 GET mpay4 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE mamt4 <> 0 .AND. ($(macc4,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be2 REPL data WITH mchk3+mprop+macc3+'C'+mpay3a+date()+'R' REPL amount WITH (mamt3*-1) STOR f TO posted ENDI mamt3 IF mamt4 > 0 APPE BLANK IF $(mpay4,1) = 'T' STOR 'T' + mprop + $(mpay4,2,17) TO mpay4 ENDI REPL date WITH mdate2 REPL data WITH mchk4+mprop+mbank+'D'+mpay4+date()+'R' REPL amount WITH mamt4 STOR f TO posted APPE BLANK REPL date WITH mdate2 REPL data WITH mchk4+mprop+macc4+'C'+mpay4a+date()+'R' REPL amount WITH (mamt4*-1) STOR f TO posted ENDI mamt4 IF mamt5 > 0 APPE BLANK IF $(mpay5,1) = 'T' STOR 'T' + mprop + $(mpay5,2,17) TO mpay5 ENDI REPL date WITH mdate2 REPL data WITH mchk5+mprop+mbank+'D'+mpay5+date()+'R' REPL amount WITH mamt5 STOR f TO posted APPE BLANK REPL date WITH mdate2 REPL data WITH mchk5+mprop+macc5+'C'+mpay5a+date()+'R' REPL amount WITH (mamt5*-1) STOR f TO posted ENDI mamt5 STOR t TO more ELSE STOR f TO more ENDI mamt1 > 0 STOR t TO firs four numbers " @ 15,14 GET macc4 PICTURE '9999' READ CASE mamt5 <> 0 .AND. (LEN(TRIM(mpay5)) <4 .AND. $(mpay5,1,1) <> 'T') @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 18,43 GET mpay5 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE ($(mpay5,1,1) = 'T' .AND.(RANK($(mpay5,2)) <58)) .AND. (LEN(TRIM(mpay5)) <>4) @ 22,00 @ 22,10 SAY "Tenant account is 'T' plus a three number code" @ 18,43 GET mpay5 PICTURE '!XXXXXXXXXXXXXXXXXXX' READ CASE mamt5 <> 0 .AND.($(macc5,4) = ' ') @ 22,00 @ 22,10 SAY "Account Number must be four numbers" @ 18,14 GET macc5 PICTURE '9999' READ OTHE @ 20,00 @ 21,00 @ 22,00 @ 22,10 SAY prompt STOR F TO validate STOR f TO an:error ENDC ENDD WHILE an:error ENDI error ENDD validate RELE error, an:error, validate STOR $(mdate1,7,2) + $(mdate1,1,2) + $(mdate1,4,2) TO mdate2 IF mamt1 > 0 APPE BLANK IF $(mpay1,1) = 't ENDD WHILE more SET COLON ON REST from manage.dat IF bright = 'I' SET INTENSITY OFF ENDI bright RELE ALL STOR t TO account STOR ' ' TO command * DATE 09/12/84 20:03 * initialization program ERAS TEXT *************************************************************************** This is a first time initialization program. It sets the defaults for all operations. However, you can change any of the defaults on the building or accounting maintenance menus. *************************************************************************** ENDT IF .NOT. file ("ACCOUNT.DAT") STOR ' ' TO coname STOR 'A' TO dr STOR 'Y' TO bells STOR 'I' TO bbells PICTURE '!' @ 12,50 GET bright PICTURE '!' @ 15,75 GET escap PICTURE '!' @ 17,70 GET I picture '!' @ 18,70 GET C PICTURE '!' @ 20,45 GET pass PICTURE '!' READ IF pass = 'Y' @ 21,00 SAY "What is the password ?" @ 21,45 GET passp READ DO WHIL passp = ' ' @ 21,45 GET passp READ ENDD WHILE passp ENDI pass = 'Y' READ ENDI goagain RELE goagain CLEA GETS SAVE TO account.dat RELE bright, dr, escap, bells, pass, passp, I, C SAVE TO coname RETU * DATE 07/07/84 07:18 * journal entry screen STOR CHR(PEEK(063)) TO dr SET INTENSITY ON SELE PRIMARY USE &dr.:account SET INDEX TO STOR 0 TO debit STOR 0 TO credit IF # = 0 STOR 'J001' TO entry STOR t TO firstup ELSE GO BOTTOM STOR f TO firstup DO WHIL .NOT. firstup IF $(data,1,1) = 'J' STOR VAL($(data,2,3)) TO entryno STOR entryno + 1001 TO entryno STOR STR(entryno,4) to entry STOR 'J' + $(entry,2,3) TO entry STOR t TO firstup ELSE STOR # TO rec:no SKIright STOR 'Y' TO escap STOR 'N' TO I STOR 'N' TO C STOR 'N' TO pass STOR ' ' TO passp ELSE REST from account.dat ENDI .NOT. file @ 06,00 SAY "Please state company name " @ 06,30 GET coname PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' READ DO WHIL $(coname,1,1) = ' ' @ 06,30 GET coname PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' READ ENDD WHILE $(coname) STOR TRIM(coname) TO coname @ 08,00 SAY "On what drive will you store the data files ?" @ 08,50 GET dr PICTURE '!' READ @ 09,00 SAY'Do you wish to use signal beep ? ' @ 09,38 GET bells PICTURE '!' READ DO WHIL @(bells,'YN')=0 @ 09,38 GET bells PICTURE '!' READ ENDD WHILE @(bells) @ 11,00 SAY "You can have bright and dim intensity at ll points in the program" @ 12,00 SAY "or just on the nput screens. Answer 'A' or 'I' " @ 12,50 GET bright PICTURE '!' READ DO WHIL @(bright,'AI')=0 @ 12,50 GET bright PICTURE '!' READ ENDD WHILE @(bright) @ 14,00 SAY "If you leave the escape key on it is possible to bP -1 IF # = rec:no STOR 'J001' TO entry RELE rec:no STOR t TO firstup ENDI # = rec:no ENDI ENDD WHILE .NOT. firstup ENDI # =0 ERAS SET COLON OFF STOR ' ' TO blnks STOR $(blnks,1,2) TO mprop STOR t TO more STOR t TO first STOR "When done, leave first amount blank and enter Control 'Q'" TO prompt DO WHIL more STOR $(blnks,1,4) TO mbank1 STOR $(blnks,1,4) TO mbank2 STOR $(blnks,1,4) TO mbank3 STOR $(blnks,1,4) TO mbank4 STOR $(blnks,1,8) TO mdate1 STOR $(blnks,1,8) TO mdate2 STOR $(blnks,1,8) TO mdate3 STOR $(blnks,1,8) TO mdate4 IF firstup STOR entry TO mchk1 STOR f TO firstup RELE entry, entryno ELSE STOR $(blnks,1,4) TO mchk1 ENDI firstup STOR $(blnks,1,20) TO mpay1 STOR $(blnks,1,4) TO macc1 STOR 0.00 TO mamt1 STOR $(blnks,1,4) TO mchk2 STOR $(blnks,1,20) TO mpay2 STOR $(blnks,1,4) TO macc2 STOR 0.00 TO mamt2 STOR $(blnks,1,4) TO mchk3 STOR $(blnks,1,20) TO mpay3 STOR $(blnks,1,4) TO macc3 STOR 0.0reak out of the program" @ 15,00 SAY "at any time. Some people prefer to not allow this. Shall we leave it on ?" @ 15,75 GET escap PICTURE '!' READ DO WHIL @(escap,'YN')=0 @ 15,75 GET escap PICTURE '!' READ ENDD WHILE @(escap) @ 17,00 SAY "Are you using an IBM PC or compatable with a clock board ?" @ 17,70 GET I picture '!' READ @ 18,00 SAY "Are you using a Compupro Systems Support Board with clock ?" @ 18,70 GET C PICTURE '!' READ @ 20,00 SAY "Do you want password protection ? " @ 20,45 GET pass PICTURE '!' READ DO WHIL @(pass,'YN')=0 @ 20,45 GET pass PICTURE '!' READ ENDD WHILE @(pass) IF pass = 'Y' @ 21,00 SAY "What is the password ?" @ 21,45 GET passp READ DO WHIL passp = ' ' @ 21,45 GET passp READ ENDD WHILE passp ENDI pass = 'Y' STOR 'Y' TO goagain @ 22,30 SAY "IS THE ABOVE CORRECT ? " @ 22,55 GET goagain PICTURE '!' READ IF goagain = 'N' @ 22,00 @ 06,30 GET coname PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' @ 08,50 GET dr PICTURE '!' @ 09,38 GET 0 TO mamt3 STOR $(blnks,1,4) TO mchk4 STOR $(blnks,1,20) TO mpay4 STOR $(blnks,1,4) TO macc4 STOR 0.00 TO mamt4 STOR 'N' TO verify IF first @ 1,15 SAY "Journal Entry Screen - Posted" @ 1,48 SAY date() @ 3, 8 SAY "Use positive or negative numbers to indicate Debits and Credits" @ 4,19 SAY "DEBITS AND CREDITS MUST BALANCE TO EXIT" @ 6, 4 SAY "Property:" @ 8, 1 SAY "Journal #:" @ 8,37 SAY "Item:" @ 9, 6 SAY "Date:" @ 9,31 SAY "Account No:" @ 9,50 SAY "Amount:" @ 11, 1 SAY "Journal #:" @ 11,37 SAY "Item:" @ 12, 6 SAY "Date:" @ 12,31 SAY "Account No:" @ 12,50 SAY "Amount:" @ 14, 1 SAY "Journal #:" @ 14,37 SAY "Item:" @ 15, 6 SAY "Date:" @ 15,31 SAY "Account No:" @ 15,50 SAY "Amount:" @ 17, 1 SAY "Journal #:" @ 17,37 SAY "Item:" @ 18, 6 SAY "Date:" @ 18,31 SAY "Account No:" @ 18,50 SAY "Amount:" @ 20, 3 SAY "DEBITS:" @ 20,14 SAY debit @ 20,34 SAY "CREDITS:" @ 20,43 SAY credit @ 22,10 SAY prompt ENDI first STORt ELSE STOR credit + mamt2 TO credit ENDI IF mamt3 > 0 STOR debit + mamt3 TO debit ELSE STOR credit + mamt3 TO credit ENDI IF mamt4 > 0 STOR debit + mamt4 TO debit ELSE STOR credit + mamt4 TO credit ENDI CLEA GETS @ 21,00 @ 22,00 READ CLEA GETS ENDI verify * error checking routine * put in all of the other routines you may require STOR t TO validate DO WHIL VALIDATE DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.($(mchk1,2) = ' ') STOR t TO error CASE mamt2 <> 0 .AND.($(mchk2,2) = ' ') STOR t TO error CASE mamt3 <> 0 .AND.($(mchk3,2) = ' ') STOR t TO error CASE mamt4 <> 0 .AND.($(mchk4,2) = ' ') STOR t TO error CASE mamt1 <> 0 .AND.(mdate1 = ' ') STOR t TO error CASE mamt2 <> 0 .AND.(mdate2 = ' ') STOR t TO error CASE mamt3 <> 0 .AND.(mdate3 = ' ') STOR t TO error CASE mamt4 <> 0 .AND.(mdate4 = ' ') STOR t TO error CASE mamt1 <> 0 .AND.($ f TO first @ 6,14 GET mprop PICTURE '99' @ 8,14 GET mchk1 PICTURE 'J999' @ 8,43 GET mpay1 @ 9,14 GET mdate1 PICTURE '99/99/99' @ 9,43 GET macc1 PICTURE '9999' @ 9,60 GET mamt1 @ 11,14 GET mchk2 PICTURE 'J999' @ 11,43 GET mpay2 @ 12,14 GET mdate2 PICTURE '99/99/99' @ 12,43 GET macc2 PICTURE '9999' @ 12,60 GET mamt2 @ 14,14 GET mchk3 PICTURE 'J999' @ 14,43 GET mpay3 @ 15,14 GET mdate3 PICTURE '99/99/99' @ 15,43 GET macc3 PICTURE '9999' @ 15,60 GET mamt3 @ 17,14 GET mchk4 PICTURE 'J999' @ 17,43 GET mpay4 @ 18,14 GET mdate4 PICTURE '99/99/99' @ 18,43 GET macc4 PICTURE '9999' @ 18,60 GET mamt4 READ IF mamt1 > 0 STOR debit + mamt1 TO debit ELSE STOR credit + mamt1 TO credit ENDI IF mamt2 > 0 STOR debit + mamt2 TO debit ELSE STOR credit + mamt2 TO credit ENDI IF mamt3 > 0 STOR debit + mamt3 TO debit ELSE STOR credit + mamt3 TO credit ENDI IF mamt4 > 0 STOR debit + mamt4 TO debit ELSE STOR credit + mamt4 TO credit ENDI CLEA(macc1,4) = ' ') STOR t TO error CASE mamt2 <> 0 .AND.($(macc2,4) = ' ') STOR t TO error CASE mamt3 <> 0 .AND.($(macc3,4) = ' ') STOR t TO error CASE mamt4 <> 0 .AND.($(macc4,4) = ' ') STOR t TO error OTHE STOR f TO validate STOR f TO error ENDC IF error @ 21,00 @ 22,00 @ 21,14 SAY "PLEASE CORRECT THE INDICATED DATA" * keep looping till all fields are fixed STOR t TO an:error DO WHIL an:error * fix bad ones one at a time DO CASE CASE mamt1 <> 0 .AND.($(mprop,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a two number property account or '00'" @ 6,14 GET mprop PICTURE '99' READ CASE mamt1 <> 0 .AND.($(mchk1,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a Journal Entry number" @ 8,14 GET mchk1 PICTURE 'J999' READ CASE mamt1 <> 0 .AND.(mdate1 = ' ') @ 22,00 @ 22,14 SAY "You must have a transaction date" @ 9,14 GET mdate1 PICTURE '99/99/99' READ CASE mamt1 < GETS @ 20,14 SAY debit @ 20,43 SAY credit @ 22,00 @ 22,20 SAY "DO YOU WANT TO MAKE ANY CHANGES ? [ ]" @ 22,55 GET verify PICTURE '!' READ CLEA GETS IF verify = 'Y' @ 6,14 GET mprop PICTURE '99' @ 8,14 GET mchk1 PICTURE 'J999' @ 8,43 GET mpay1 @ 9,14 GET mdate1 PICTURE '99/99/99' @ 9,43 GET macc1 PICTURE '9999' @ 9,60 GET mamt1 @ 11,14 GET mchk2 PICTURE 'J999' @ 11,43 GET mpay2 @ 12,14 GET mdate2 PICTURE '99/99/99' @ 12,43 GET macc2 PICTURE '9999' @ 12,60 GET mamt2 @ 14,14 GET mchk3 PICTURE 'J999' @ 14,43 GET mpay3 @ 15,14 GET mdate3 PICTURE '99/99/99' @ 15,43 GET macc3 PICTURE '9999' @ 15,60 GET mamt3 @ 17,14 GET mchk4 PICTURE 'J999' @ 17,43 GET mpay4 @ 18,14 GET mdate4 PICTURE '99/99/99' @ 18,43 GET macc4 PICTURE '9999' @ 18,60 GET mamt4 @ 20,14 SAY debit @ 20,43 SAY credit READ IF mamt1 > 0 STOR debit + mamt1 TO debit ELSE STOR credit + mamt1 TO credit ENDI IF mamt2 > 0 STOR debit + mamt2 TO debi> 0 .AND.($(macc1,4) = ' ') @ 22,00 @ 22,14 SAY "You must have a four digit account number" @ 9,43 GET macc1 PICTURE '9999' READ CASE mamt2 <> 0 .AND.($(mchk2,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a Journal Entry number" @ 11,14 GET mchk2 PICTURE 'J999' READ CASE mamt2 <> 0 .AND.(mdate2 = ' ') @ 22,00 @ 22,14 SAY "You must have a transaction date" @ 12,14 GET mdate2 PICTURE '99/99/99' READ CASE mamt2 <> 0 .AND.($(macc2,4) = ' ') @ 22,00 @ 22,14 SAY "You must have a four digit account number" @ 12,43 GET macc2 PICTURE '9999' READ CASE mamt3 <> 0 .AND.($(mchk3,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a Journal Entry number" @ 14,14 GET mchk3 PICTURE 'J999' READ CASE mamt3 <> 0 .AND.(mdate3 = ' ') @ 22,00 @ 22,14 SAY "You must have a transaction date" @ 15,14 GET mdate3 PICTURE '99/99/99' READ CASE mamt3 <> 0 .AND.($(macc3,4) = '00 @ 21,00 ELSE @ 21,10 SAY 'DEBITS AND CREDITS DO NOT BALANCE - CORRECT BEFORE YOU EXIT' ENDI debit ELSE IF (debit + credit) = 0.00 STOR f TO more ENDI debit ENDI mamt1 > 0 STOR t TO first ENDD WHILE more SET COLON ON REST from manage.dat IF bright = 'I' SET INTENSITY OFF ENDI RELE ALL STOR t TO account STOR ' ' TO command * DATE 09/12/84 10:25 * program to print out or display journals STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET index TO &dr.:account ERAS STOR '99' TO build1 STOR t TO maybe STOR 'N' TO answer REST from coname additive STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR t TO more DO WHIL more TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< *  ') @ 22,00 @ 22,14 SAY "You must have a four digit account number" @ 15,43 GET macc3 PICTURE '9999' READ CASE mamt4 <> 0 .AND.($(mchk4,2) = ' ') @ 22,00 @ 22,10 SAY "You must have a Journal Entry number" @ 17,14 GET mchk4 PICTURE 'J999' READ CASE mamt4 <> 0 .AND.(mdate4 = ' ') @ 22,00 @ 22,14 SAY "You must have a transaction date" @ 18,14 GET mdate4 PICTURE '99/99/99' READ CASE mamt4 <> 0 .AND.($(macc4,4) = ' ') @ 22,00 @ 22,14 SAY "You must have a four digit account number" @ 18,43 GET macc4 PICTURE '9999' READ OTHE @ 21,00 @ 22,00 @ 22,10 SAY prompt STOR F TO validate STOR f TO an:error ENDC ENDD WHILE an:error ENDI error ENDD validate RELE error, an:error, validate IF mamt1 <> 0 STOR $(mdate1,7,2) + $(mdate1,1,2) + $(mdate1,4,2) TO mdat1 APPE BLANK IF mamt1 > 0 STOR 'D' TO ltr ELSE STOR 'C' TO ltr ENDI REPL date WITH m * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * * * * * * * * * * dat1 REPL data WITH mchk1+mprop+macc1+ltr+mpay1+date()+'J' REPL amount WITH mamt1 IF mamt2 <> 0 STOR $(mdate2,7,2) + $(mdate2,1,2) + $(mdate2,4,2) TO mdat2 APPE BLANK IF mamt2 > 0 STOR 'D' TO ltr ELSE STOR 'C' TO ltr ENDI REPL date WITH mdat2 REPL data WITH mchk2+mprop+macc2+ltr+mpay2+date()+'J' REPL amount WITH mamt2 ENDI mamt2 IF mamt3 <> 0 STOR $(mdate3,7,2) + $(mdate3,1,2) + $(mdate3,4,2) TO mdat3 APPE BLANK IF mamt3 > 0 STOR 'D' TO ltr ELSE STOR 'C' TO ltr ENDI REPL date WITH mdat3 REPL data WITH mchk3+mprop+macc3+ltr+mpay3+date()+'J' REPL amount WITH mamt3 ENDI mamt3 IF mamt4 <> 0 STOR $(mdate4,7,2) + $(mdate4,1,2) + $(mdate4,4,2) TO mdat4 APPE BLANK IF mamt1 > 0 STOR 'D' TO ltr ELSE STOR 'C' TO ltr ENDI REPL date WITH mdat4 REPL data WITH mchk4+mprop+macc4+ltr+mpay4+date()+'J' REPL amount with mamt4 ENDI mamt4 STOR t TO more IF (debit + credit) = 0. * * * * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 3,04 SAY coname + ' - ACCOUNTING REPORT MENU' @ 3,65 SAY DATE() @ 7,27 SAY "A. Cash Receipts Journal" @ 8,27 SAY "B. Cash Disbursements Journal" @ 9,27 SAY "C. General Journal" @ 10,27 SAY "D. General Ledger" @ 11,27 SAY "E. Display records on screen" @ 12,27 SAY "F. Reindex" @ 13,27 SAY "G. Return to Main Menu" @ 17,23 @ 18,00 SAY ' * Select drive to put Files on *' @ 18,55 GET dr PICTURE '!' READ ENDD while @ ENDI disk = Y IF printer = 'Y' @ 17,00 @ 18,00 @ 17,00 SAY ' * MAKE PRINTER READY AND THEN HIT ANY KEY *' @ 18,00 SAY " * *" SET CONSOLE OFF WAIT SET CONSOLE ON SET print ON ENDI printer = Y IF disk = 'Y' .AND. filename <> ' ' * make a proper REPORT file name that is of type TXT STOR @('.',filename) TO length IF length = 0 .OR. length > 8 STOR 9 TO length ENDI length STOR $(filename,1,length-1) TO filename STOR '&dr.:'+filename+'.TXT' TO filename SET ALTERNATE TO &filename SET ALTERNATE ON ENDI disk = Y and filename <> '' ENDI select ERAS CLEA GETS DO CASE CASE select = 'A' SET INDEX TO GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 17,58 GET select PICTURE '!' READ DO WHIL @(select, 'ABCDEFG?Q') = 0 STOR '?' TO select @ 17,58 GET select PICTURE '!' READ ENDD CLEA GETS IF select >='A' .AND. select < 'E' * select building @ 17,00 @ 17,00 SAY " * What building shall we do ('99' for all) ? *" @ 17,60 GET build1 PICTURE '99' READ * get a starting point STOR '00/00/00' TO stdat @ 17,00 @ 17,00 SAY ' * What is the starting date (MM/DD/YY) ? *' @ 17,57 GET stdat PICTURE '99/99/99' READ STOR $(stdat,7,2)+$(stdat,1,2)+$(stdat,4,2) TO stday STOR VAL(stday) TO stdate RELE stday STOR date() TO enddat @ 18,00 SAY ' * What is the cutoff date for entries? *' @ 18,57 GET enddat PICTURE '99/99/99' READ STOR $(enddat,7,2)+$(enddat,1,2)+$(enddat,4,2) TO endday STOR VAL(endday) TO enddate RELE endday @ 17,00 @ 18,00 STOR LEN STOR 0 TO mamount STOR 0 TO amt STOR t TO more1 SET MARGIN TO 3 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname1 ? ' CASH RECEIPTS JOURNAL' ? ' ' ? 'Report of ' +date() + '. ' + 'Covering period ' +stdat + ' to ' + enddat STOR lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Date Check #'+' Payor/Description '+ ' Account Prop ' + ' ' + 'Amount' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file IF .NOT. EOF STOR VAL(date) TO stdate1 IF (build1 = '99' .OR. build1 = $(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. $((coname)/2 TO L STOR 40-L TO L STOR ' ' TO bl STOR $(bl,1,L) + coname TO coname1 RELE L, bl @ 17,00 SAY " * Send Report to the Printer (Y/N) *" @ 18,00 SAY ' * *' @ 17,55 GET printer PICTURE '!' READ @ 18,00 SAY " * Send Report to a Disk File (Y/N) *" @ 18,55 GET disk PICTURE '!' READ IF disk ='Y' @ 17,00 @ 18,00 @ 17,00 SAY " * Enter Disk File Name *" @ 18,00 SAY " * *" @ 17,44 GET filename PICTURE '!!!!!!!!' @ 17,54 SAY "(.TXT will be added )" READ @ 18,00 SAY ' * Select drive to put Files on *' @ 18,55 GET dr PICTURE '!' READ DO WHIL @(dr,'AB') = 0 @ 18,00 data,40,1) = 'R') STOR $(date,3,2)+'/'+$(date,5,2)+'/'+$(date,1,2)+' ' TO m1 IF $(data,5,2) = '00' STOR ' ' TO prop ELSE STORE $(data,5,2) TO prop ENDIF ? m1+$(data,1,4)+' '+$(data,12,20)+' '+$(data,7,4) + ' ' + prop+' ' + STR(amount,12,2) STOR mamount + amount TO mamount SKIP IF amount < 0 STOR amount*-1 TO amt ELSE STOR amount TO amt ENDI amount ? ' '+$(data,12,20)+' '+$(data,7,4) + ' ' + STR(amt,12,2) ? ' ' STOR lineno +3 TO lineno SKIP ELSE SKIP ENDI (stdate1) ELSE ? ' ' ? ' TOTAL RECEIPTS FOR THIS PERIOD: ' + STR(mamount,12,2) ? ' ' STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? '  TOTAL DISBURSEMENTS LISTED FOR PERIOD: ' + STR(mamount,12,2) ? ' ' STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue' SET CONSOLE OFF WAIT SET CONSOLE ON ERAS STOR 'Y' TO printer STOR 'N' TO disk STOR '99' TO build1 STOR ' ' TO filename STOR '?' TO select CASE select = 'C' SET INDEX TO GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR 0 TO amt STOR t TO more1 SET MARGIN TO 3 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname1 ? ' GENERAL JOURNAL' ? ' ' ? 'Report of ' +date() + '. ' + 'Covering period ' +stdat + ' to ' + enddat STOR Hit any key to continue' SET CONSOLE OFF WAIT SET CONSOLE ON ERAS STOR 'Y' TO printer STOR 'N' TO disk STOR '99' TO build1 STOR ' ' TO filename STOR '?' TO select CASE select = 'B' SET INDEX TO GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR 0 TO mamount STOR 0 TO amt STOR t TO more1 SET MARGIN TO 3 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname1 ? ' CASH DISBURSEMENTS JOURNAL' ? ' ' ? 'Report of ' +date() + '. ' + 'Covering period ' +stdat + ' to ' + enddat STOR lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Date Check #'+' Payee/Description '+ ' Account Prop ' + ' ' + 'Amount' ? "--------------------------------------------- lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Date ' + ' Journal '+' Description ' + ' '+ ' Account Prop ' + ' ' + ' Amount' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file IF .NOT. EOF STOR VAL(date) TO stdate1 IF (build1 = '99' .OR. build1 = $(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. $(data,40,1) = 'J') STOR $(date,3,2)+'/'+$(date,5,2)+'/'+$(date,1,2)+' ' TO m1 IF $(data,5,2) = '00' STOR ' ' TO prop ELSE STOR $(data,5,2) TO prop ENDIF $(data) IF amount >= 0 STOR ' ' TO sp STOR amount TO amt ELSE STOR ' ' TO sp STOR amount*-1 TO amt ENDI amount ? m1+$(data,1,4)+' '+$-------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file IF .NOT. EOF STOR VAL(date) TO stdate1 IF (build1 = '99' .OR. build1 = $(data,5,2)).AND.((stdate1 >= stdate .AND. stdate1 <= enddate) .AND. $(data,40,1) = 'D') STOR $(date,3,2)+'/'+$(date,5,2)+'/'+$(date,1,2)+' ' TO m1 IF $(data,5,2) = '00' STOR ' ' TO prop ELSE STOR $(data,5,2) TO prop ENDIF $(data) ? m1+$(data,1,4)+' '+$(data,12,20)+' '+$(data,7,4)+' '+prop+' ' + STR(amount,12,2) STOR mamount + amount TO mamount SKIP IF amount < 0 STOR amount*-1 TO amt ELSE STOR amount to amt ENDI amount ? ' '+$(data,12,20)+' '+$(data,7,4)+ ' ' + STR(amt,12,2) ? ' ' STOR lineno +3 TO lineno SKIP ELSE SKIP ENDI stdate ELSE ? ' ' ? ' (data,12,20)+' '+$(data,7,4)+' '+prop+ sp + STR(amt,12,2) STOR lineno +1 TO lineno SKIP ELSE SKIP ENDI stdate ELSE STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue' SET CONSOLE OFF WAIT SET CONSOLE ON ERAS STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '99' TO build1 STOR '?' TO select CASE select = 'D' SET INDEX TO &dr.:account GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR t TO more1 STOR $(data,7,4) TO account STOR 0 TO amtacct STOR 0 TO amt SET MARGIN TO 3 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname1 ? ' GENERAL Balance account ' + account + ' = ' + STR(amtacct,12,2) ? ' ' STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue' SET CONSOLE OFF WAIT SET CONSOLE ON ERAS STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '99' TO build1 STOR '?' TO select CASE select = 'E' ERAS TEXT Accounting entries can be displayed either in the order they were entered (showing both the debit and credit) or in date order further sorted by building and account. When WAITING hit space bar to continue or ESCape to quit. ENDT * get a starting point in file STOR 'E' TO sttype @ 10,12 SAY 'Shall we display by = stdate .AND. stdate1 <= enddate IF $(data,40,1) = 'D' STOR 'Cash Disburse Jnrl' TO book ENDI $(data,40) IF $(data,40,1) = 'R' STOR 'Cash Receipt Jnrl ' TO book ENDI $(data,40) IF $(data,40,1) = 'J' STOR 'General Journal ' TO book ENDI $(data,40) IF build1 = '99' .OR. build1 =ll we display by = 0 STOR ' ' TO sp STOR amount TO amt ELSE STOR ' ' TO sp STOR amount*-1 TO amt ENDI amount STOR $(data,7,4) TO account1 IF account1 = account STOR amtacct + amount TO amtacct ? m1+book+' '+$(data,7,4)+ ' '+prop+sp+STR(amt,12,2) ELSE ? ' Balance account ' + account + ' = ' + STR(amtacct,12,2) ? ' ' ? m1+book+' '+$(data,7,4)+ ' '+prop+sp+STR(amt,12,2) STOR amount TO amtacct STOR account1 TO account STOR lineno + 3 TO lineno ENDI account1 SKIP STOR lineno +1 TO lineno ELSE SKIP ENDI build1 ELSE SKIP ENDI stdate1 ELSE ? ' se journal programs - make sure you index. Financial statements are prepared and printed from the main accounting menu. ......hit any key to continue ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS CASE select = 'F' ERAS SET TALK ON SET ECHO ON INDE on $(data,7,4) +date+ $(data,5,2) to &dr.:account SET ECHO OFF SET TALK OFF ERAS CASE select = 'Q' .OR. select = 'G' STOR f TO more ENDC ENDD WHILE more STOR CHR(PEEK(063)) TO dr SET INDEX TO &dr.:account RELE ALL STOR t TO account * DATE 07/20/84 17:25 STOR t TO account DO WHIL account REST from coname additive STOR '?' to command ERAS TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * display Journals or General Ledger" @ 12,17 SAY "F. Prepare financial statements" @ 13,17 SAY "G. Reindex accounting records" @ 14,17 SAY "H. Go to Accounting Maintenance Menu" @ 15,17 SAY "I. Exit to the Operating System" @ 16,17 SAY "J. Return to any prior menu" @ 18,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 18,58 GET command PICTURE '!' READ DO WHIL @(COMMAND, 'ABCDEFGHIJQ?') = 0 STOR '?' TO command @ 18,58 GET command PICTURE '!' READ ENDD CLEA GETS DO CASE CASE command = 'A' DO checks.acc CASE command = 'B' DO depos.acc CASE command = 'C' DO journ.acc CASE command = 'D' DO postit.acc CASE command = 'E' DO jourp.acc CASE command = 'F' DO statem.acc CASE command = 'G' STOR CHR(PEEK(063)) TO dr SET TALK ON SET ECHO ON INDE ON $(data,7,4) + date+ $(data,5,2) TO &dr.:account SET TALK OFF SET ECHO OFF CASE command = '?' ERAS TEXT M A I N A C C O U N T I N G H E L P M E N U Items 'A', 'B' and 'C' * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * * * * * * * * * *  are books of original entry. To print out or display these books or the General Ledger, select the 'E' option. To post tenant payments to their records or to accrue the monthly rent, use the 'D' option. The actual ultimate financial statements are prepared with the 'F' option. These include a trial balance, the balance sheet and the profit and loss statement. Before you prepare these statements you must reindex. We have provided for this at a number of points including option 'G'. Option 'H' takes you the accounting maintenance menu. On that menu you can adjust the Chart of Accounts, browse through the accounting records, etc. See the Accounting Maintenance HELP menu for more information. please hit any key to continue..... ENDT SET CONSOLE OFF WAIT SET CONSOLE ON CASE command = 'H' DO maintain.acc CASE command = 'I' STOR 'N' TO comman @ 18,00 SAY ' * ARE YOU SURE YOU WANT TO EXI * * * * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 3,04 SAY coname + ' - MAIN ACCOUNTING MENU' @ 3,65 SAY DATE() @ 7,17 SAY "A. Enter checks (Cash Disbursements Journal)" @ 8,17 SAY "B. Enter deposits (Cash Receipts Journal)" @ 9,17 SAY "C. Other journal entries (General Journal)" @ 10,17 SAY "D. Post tenant payments & monthly rent accruals" @ 11,17 SAY "E. Print or T TO THE OPERATING SYSTEM ? *' @ 18,69 GET comman PICTURE '!' READ IF comman = 'Y' ERAS SET CONSOLE OFF QUIT ELSE RELE comman STOR '?' TO command @ 18,00 SAY " * HIT ANY KET TO RETURN TO THE ACCOUNTING MENU *" SET CONSOLE OFF WAIT SET CONSOLE ON ENDI comman = 'Y' CASE command = 'J' .OR. command = 'Q' STOR f TO account OTHE STOR t TO ACCOUNT ENDC ENDD WHILE account STOR t TO keepitup STOR 0 TO box RETU * DATE 09/12/84 17:36 * maintain.acc STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO &dr.:account STOR t TO account1 DO WHIL account1 REST from coname additive STOR '?' TO command ERAS TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * ting records" @ 13,17 SAY "G. Return to main accounting menu" @ 18,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 18,58 GET command PICTURE '!' READ DO WHIL @(COMMAND, 'ABCDEFGQ?') = 0 STOR '?' TO command @ 18,58 GET command PICTURE '!' READ ENDD CLEA GETS DO CASE CASE command = 'A' STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO GO top * browse thru records ERAS TEXT ***WARNING*** ***WARNING*** ***WARNING*** Changes made will be written to the File CTRL-C write current record & go down CTRL-R write current record & go up CTRL-Z/B pans screen left or right CTRL-V toggles Insert on or off CTRL-G Delete character under cursor CTRL-U Delete or Recall current record CTRL-Q exit Don't Write Current record CTRL-W exit and Save all changes >>>>>>>>>>>>>>>>>>>>* * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * * * * * * * * * * >>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< BROWSE allows you to change raw accounting data, so please use it with care. You can examine the record in either ENTRY order or SORT order. The use of ENTRY order presents both the debit and the credit. You locate a record by the date of posting. Sort order locates by account number. You have to find the corresponding debit or credit separately. In either case, if the record is not found, the program will go to the first record. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT * get a starting point in file STOR 'E' TO sttype @ 22,12 SAY 'Shall we browse by >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 3,04 SAY coname + ' - ACCT MAINTENANCE MENU' @ 3,65 SAY DATE() @ 7,17 SAY "A. Browse accounting records" @ 8,17 SAY "B. Close books for the year" @ 9,17 SAY "C. Edit, change or index Chart of Accounts" @ 10,17 SAY "D. First initialization of program" @ 11,17 SAY "E. Reininitialze defaults, company name, etc." @ 12,17 SAY "F. Reindex accoun start @ 22,00 @ 22,12 SAY 'WHAT IS THE STARTING ACCOUNT NUMBER ?' @ 22,55 GET mstart PICTURE '9999' READ FIND &mstart IF # = 0 GO TOP ENDI # = 0 ELSE SET INDEX TO @ 22,00 STOR ' ' TO mstar @ 22,10 SAY 'WHAT IS THE STARTING DATE (MM/DD/YY) ? ' @ 22,50 GET mstar PICTURE '99/99/99' READ STOR $(mstar,7,2) + $(mstar,1,2) + $(mstar,4,2) TO mstart LOCA FOR mstart = date IF EOF GO TOP ENDI EOF ENDI sttype * display selected list ERAS * browse thru file SET ESCAPE OFF BROW fields date, data, amount, posted SET ESCAPE ON ERAS RELE mstar, mstart SET INDEX TO &dr.:account CASE command = 'B' ERAS STOR 'N' TO option TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< W A R N I N G W A R N I N G W A R N I N G ============= ================== ============== This option is designed to create a new data base file too,1,4) + type+ 'opening entry ' + nyear + 'J' REPL amount WITH mamount ENDI mamount <> 0 SELE PRIMARY USE &dr.:account SET index TO &dr.:temp STOR 0 TO mamount GO recno STOR $(data,7,4) + $(data,5,2) TO info ENDI $(data,7,4) OTHE IF .NOT. EOF STOR mamount + amount TO mamount SKIP ELSE SELE SECONDARY USE &dr.:TEMP IF mamount <> 0 IF mamount > 0 STOR 'D' to type ELSE STOR 'C' TO type ENDI mamount > 0 APPE BLANK REPL date WITH $(nyear,7,2)+$(nyear,1,2)+$(nyear,4,2) REPL data WITH 'J001992530' + type+ 'opening entry ' + nyear + 'J' REPL amount WITH mamount ENDI mamount <> 0 SELE PRIMARY USE &dr.:account SET index TO &dr.:temp ENDI .NOT. EOF ENDC ENDD WHILE .NOT. EOF DO CASE CASE $(info,1,1)='1'.OR.$(info,1,1)='2'.OR.$(info,1,2)='57' SELE SECONDARY USE &dr. start a calendar or fiscal year (or for that matter, to close out any period. It takes a while to run and if something happens (like a voltage drop) while it is running - you could very well lose all of your data. The old file will be saved as 'AC' + the ending date. NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP YOUR DATA >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 19,20 SAY 'ARE YOU READY TO PROCEED' @ 19,47 GET option PICTURE '!' READ IF option = 'Y' SET CONFIRM ON STOR date() TO myear ERAS @ 10,10 SAY "You should be able to stop this program until the last item by" @ 11,10 SAY "hitting the ESCape key and typing QUIT." @ 13,10 SAY "I will keep you posted as we go along." @ 15,10 SAY "What is the last day of the period your are closing ?" @ 15,68 GET myear PICTURE '99/99/99' READ STOR '01/01/' + STR((VAL($(myear,7,2))+1),2) TO n:TEMP IF mamount <> 0 IF mamount > 0 STOR 'D' to type ELSE STOR 'C' TO type ENDI mamount > 0 APPE BLANK REPL date WITH $(nyear,7,2)+$(nyear,1,2)+$(nyear,4,2) REPL data WITH 'J001'+ $(info,5,2) + $(info,1,4) + type+ 'opening entry ' + nyear + 'J' REPL amount WITH mamount ENDI mamount <> 0 OTHE SELE SECONDARY USE &dr.:TEMP IF mamount <> 0 IF mamount > 0 STOR 'D' to type ELSE STOR 'C' TO type ENDI mamount > 0 APPE BLANK REPL date WITH $(nyear,7,2)+$(nyear,1,2)+$(nyear,4,2) REPL data WITH 'J001992530' + type+ 'opening entry ' + nyear + 'J' REPL amount WITH mamount ENDI mamount <> 0 ENDC SELE PRIMARY USE &dr.:account SET index TO &dr.:temp SAVE TO temp CLEA REST FROM temp STOR CHR(PEEK(063)) TO dr RENA &dr.:account.dbf TO &dr.:&newname RENA &dr.:temp.dbf TO &dr.:account.dbf DELE file &dr.:temp.ndx SELE PRIMARY year @ 16,10 SAY "What is the first day of the new period you are opening ?" @ 16,68 GET nyear PICTURE '99/99/99' READ STOR 'AC' + $(myear,1,2) +$(myear,4,2)+$(myear,7,2)+'.DBF' TO newname SET CONFIRM OFF SET TALK ON SELE PRIMARY USE &dr.:account INDE on $(data,7,4) + $(data,5,2) TO &dr.:temp SET INDEX TO &dr.:temp COPY STRUCTURE TO &dr.:temp GO TOP STOR $(data,7,4) + $(data,5,2) TO info STOR 0 TO mamount STOR 0 TO recno DO WHIL .NOT. EOF DO CASE CASE $(info,1,1)='1'.OR.$(info,1,1)='2'.OR.$(info,1,2)='57' IF $(data,7,4) + $(data,5,2) = info STOR mamount + amount TO mamount SKIP ELSE STOR # TO recno SELE SECONDARY USE &dr.:TEMP IF mamount <> 0 IF mamount > 0 STOR 'D' to type ELSE STOR 'C' TO type ENDI mamount > 0 APPE BLANK REPL date WITH $(nyear,7,2)+$(nyear,1,2)+$(nyear,4,2) REPL data WITH 'J001'+ $(info,5,2) + $(inf  USE &dr.:account INDE ON $(data,7,4) + date + $(data,5,2) TO &dr.:account SET INDEX TO &dr.:account SET TALK OFF ENDI OPTION = 'Y' CASE command = 'C' DO chart.acc CASE COMMAND = 'D' ERAS STOR 'N' TO option STOR 'R' TO choice TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< W A R N I N G W A R N I N G W A R N I N G ============= ================== ============== This option is designed to create a new data base file to startup this program the first time. It will eliminate all of the sample files we gave you in the accounting data base and start you off with no records. It can also rename one of the two Chart of Accounts data bases (CHART1.DBF and CHART2.DBF) to CHART.DBF when you select either the real estate or general Chart of Accounts. ------ SELE SECONDARY USE &dr.:TEMP IF mamo @(CHOICE,'YNQ') = 0 @ 19,60 GET choice PICTURE '!' READ ENDD IF choice = 'Y' @ 19,00 @ 19,05 SAY "Do you want a eal estate or a eneral Chart of Accounts ?" @ 19,68 GET pick PICTURE '!' READ ENDI choice = 'Y' IF pick = 'R' DELE file CHART.DBF RENA CHART1.DBF TO CHART.DBF ENDI IF PICK = 'G' DELE file CHART.DBF RENA CHART2.DBF TO CHART.DBF ENDI PICK = 'G' STOR CHR(PEEK(063)) TO dr USE &dr.:account SET INDEX TO DELE ALL PACK INDE ON date + $(data,7,4) + $(data,5,2) TO &dr.:account SET INDEX TO &dr.:account RELE choice, pick ENDI option = 'Y' CASE command = 'E' SAVE TO temp REST from manage.dat IF PASS = 'Y' ERAS @ 12,10 SAY 'PLEASE ENTER THE PASSWORD SLOWLY ........' SET EXACT ON SET COLON OFF STOR '12345678' TO passt STOR ' ' TO passt1 STOR ' ' TO one STOR ' ' to one1 STOR 0 to count DO WHIL count < 8 SET CONSOLE OFF @ 12,50 SAY passtunt <> 0 IF mamount > 0 STOR 'D' to type ELSE STOR 'C' TO type ENDI mamount > 0 APPE BLANK REPL date WITH $(nyear,7,2)+$(nyear,1,2)+$(nyear,4,2) REPL data WITH 'J001'+ $(info,5,2) + $(info,1,4) + type+ 'opening entry ' + nyear + 'J' REPL amount WITH mamount ENDI mamount <> 0 SELE PRIMARY USE &dr.:account SET index TO &dr.:temp SAVE TO temp CLEA REST FROM temp STOR CHR(PEEK(063)) TO dr RENA &dr.:account.dbf TO &dr.:&newname RENA &dr.:temp.dbf TO &dr.:account.dbf DELETE file &dr.:temp.ndx SELE PRIMARY USE &dr.:account INDE ON $(data,7,4) + date + $(data,5,2) TO &dr.:account SET INDEX TO &dr.:account SET TALK OFF ENDI OPTION = 'Y' CASE command = 'C' DO chart.acc CASE COMMAND = 'D' ERAS STOR 'N' TO option STOR 'R' TO choice TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< W A R N I N G W A R N I N G W1 WAIT TO one1 @ 12,50 ACCEPT one1 SET CONSOLE ON STOR TRIM(one) + one1 TO one STOR count + 1 TO count STOR $(passt,1,count) TO passt1 @ 12,50 SAY passt1 SET CONSOLE OFF ENDD SET CONSOLE ON STOR $(one,2,9) TO passt IF TRIM(passt) <> TRIM(passp) ERAS @ 14,10 SAY "U N A U T H O R I Z E D A C C E S S " @ 17,10 SET CONSOLE OFF QUIT ENDI passt SET EXACT OFF SET COLON ON ENDI pass DO init.spm REST from temp additive CASE command = 'F' STOR CHR(PEEK(063)) TO dr SET TALK ON SET ECHO ON INDE ON $(data,7,4) +date + $(data,5,2) TO &dr.:account SET TALK OFF SET ECHO OFF CASE command = '?' ERAS TEXT A C C O U N T I N G M A I N T E N A N C E H E L P M E N U The browse ('A') option on the menu allows you to make changes directly into the file to correct errors. The instructions as to how to do it are quite specific. They are set forth on screen before you act A R N I N G ============= ================== ============== This option is designed to create a new data base file to startup this program the first time. It will eliminate all of the sample files we gave you in the accounting data base and start you off with no records. It can also rename one of the two Chart of Accounts data bases (CHART1.DBF and CHART2.DBF) to CHART.DBF when you select either the real estate or general Chart of Accounts. NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP THE PROGRAM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 19,20 SAY 'ARE YOU READY TO DELETE THE FILES' @ 19,55 GET option PICTURE '!' READ IF option = 'Y' STOR 'N' TO choice STOR '?' TO pick @ 19,00 @ 19,05 SAY "Do you want to select a new Chart of Accounts ?" @ 19,60 GET choice PICTURE '!' READ DO WHIL ually enter browse. Until you are familiar with the commands, make a note of them. Remember that 'CONTROL Q' should get you out without doing any damage. Please use Browse with care. The year end closing statement option should be done after you have made your closing adjustments AND AFTER YOU HAVE MADE A BACKUP COPY OF THE DATA. It copies all of the records to a new file, indexes the new file and then renames the old file to 'ACC' + the prior year. You can stop the process before the end by hitting ESCape and typing QUIT. The Chart of Accounts option has its own menu. However, we have included two Charts of Account. This program was written as a building management data base with accounting. Some people suggested that they might want to use just the accounting aspects for a different type of operation. Please hit any key to continue ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERѝ ߚы ߌы ߏы * DATE 06/24/84 17:05 * postit.acc - module to update the file STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO &dr.:account STOR f TO ok ERAS STOR 'Y' to comm @ 10,00 SAY 'Do you want to post the tenant rent payments to the tenant accounts ?' @ 10,70 GET comm PICTURE '!' READ DO WHIL @(comm,'YN') = 0 @ 10,00 SAY 'Do you want to post the tenant rent payments to the tenant accounts ?' @ 10,70 GET comm PICTURE '!' READ ENDD IF comm = 'Y' STOR t TO accrue1 ELSE STOR f TO accrue1 ENDI STOR 'Y' TO comm1 @ 12,10 SAY 'Do you want to post the monthly rent accruals ?' @ 12,59 GET comm1 PICTURE '!' READ DO WHIL @(comm1,'YN') = 0 @ 12,10 SAY 'Do you want to post the monthly rent accruals ?' @ 12,59 GET comm1 PICTURE '!' READ ENDD IF comm1 = 'Y' STOR date() to mdate1 @ 14,10 SAY 'What is the rent accrual date (MM/DD/YY) ? ' @ 14,5AS TEXT For those people who would like to try this program in a non-real estate environment, we have created a second Chart of Accounts. (There are actually three Charts - CHART.DBF is real estate and will be erase when you select between CHART1.DBF (also real estate) and CHART2.DBF (general). If you want to switch to the other system, just rename the files. In all probability you will generate you own Chart of Accounts, but we put in a sample. The first time program in addition to initializing the Chart of Accounts wipes out all of the sample records we have included and starts you off with a clean slate. We warn you to make a backup before you run it. Reindex is on this menu as well as at various other points in the program. You will want to use it. please hit any key to continue..... ENDT SET CONSOLE OFF WAIT SET CONSOLE ON CASE command = 'G' .OR. command =9 GET mdate1 PICTURE '99/99/99' READ STOR t TO accrue ELSE STOR f TO accrue ENDI comm1 IF accrue1 STOR 0 TO latech LOCA for $(data,7,3) = '104' .AND. $(data,12,1) = 'T' .AND.(.NOT. posted) DO WHIL accrue1 STOR # TO rec:no STOR $(data,13,5) TO name STOR $(date,5,2) TO mlate STOR amount to mamount SELE secondary USE &dr.:tenant SET index to &dr.:codea FIND &name IF # <> 0 STOR trentd TO mtrentd STOR trentt TO mtrentt STOR trenty TO mtrenty STOR tlatec TO mtlatec IF VAL(mlate) > VAL(tlate) STOR latech + mtlatec TO latech STOR mtlatec + mtrentd TO mtrentd REPL watchit WITH t ENDI VAL(mlate) REPL trentd WITH (mtrentd-mamount), trentt WITH (mtrentt+mamount) REPL trenty WITH (mtrenty+mamount), posted WITH t, tupdate WITH DATE() STOR t TO ok ELSE STOR f TO ok ENDI # <) 0 SELE primary USE &dr.:account SET INDEX TO &dr.:account GO rec:no IF ok REPL posted WITH t ENDI ok CONT IF EOF STOR 'Q' STOR f TO account1 OTHE STOR t TO ACCOUNT1 ENDC ENDD WHILE account1 REST from manage.dat additive IF escap = 'N' SET ESCAPE OFF ELSE SET ESCAPE ON ENDI escap IF bright = 'A' SET INTENSITY ON ELSE SET INTENSITY OFF ENDI bright RELE all STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account INDEX &dr.:account STOR t TO account RETU ߛѝ ߒь ߒў ߌў ߌў ߕў ߕў ߒў ߜў ߜў ߏў ߛў ߒќ ߞя ߞќ ߛў ߌѝ ߌѝ ߒѝ ߍѝ ߞѝ ߞѝ ߞѝ ߒѝ ߒѝ ߒы ߌы ߒѝ ߚѝ   f TO accrue1 ENDI EOF ENDD WHILE accrue1 IF latech > 0 SET INDEX TO GO BOTTOM STOR f TO firstup DO WHIL .NOT. firstup IF $(data,1,1) = 'J' STOR VAL($(data,2,3)) TO entryno STOR t TO firstup ELSE SKIP -1 ENDI ENDD WHILE .NOT. firstup SET INDEX TO &dr.:account STOR entryno + 1 TO entryno STOR entryno + 1000 TO entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH date() REPL data with entry + '993020C'+'acc late chgs - all ' + date()+'J' REPL amount WITH (latech*-1) APPE BLANK REPL date WITH date() REPL data with entry + '991040D'+'acc late chgs - all ' + date()+'J' REPL amount WITH latech ENDI latech RELE latech, firstup, entryno, entry, rec:no, accrue1, ok, comm RELE name, mlate, mamoubt, mtrentd, mtrentt, mtrenty, mtlatec ENDI accrue1 IF accrue SELE SECONDARY USE &dr.:TENANT * if more than 10 properties, will have to adjust this STOR 0 TO rent01 STOR 0 TO rent02 STOR 0 TO rent03 STOR 0 TO ren$(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'013020C'+'rent accrual '+date()+'J' REPL amount WITH (rent01*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'011040D'+'rent accrual '+date()+'J' REPL amount WITH rent01 ENDI rent01 > 0 IF rent02 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'023020C'+'rent accrual '+date()+'J' REPL amount WITH (rent02*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'021040D'+'rent accrual '+date()+'J' REPL amount WITH rent02 ENDI rent02 > 0 IF rent03 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'033020C'+'rent accrual '+date()+'J' REPL amount WITH (rent04 STOR 0 TO rent05 STOR 0 TO rent06 STOR 0 TO rent07 STOR 0 TO rent08 STOR 0 TO rent09 STOR 0 TO rent10 GO TOP DO WHIL .NOT. EOF IF $(bcode,1,2) = '01' STOR rent01 + (trent + taddl) TO rent01 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '01' IF $(bcode,1,2) = '02' STOR rent02 + (trent + taddl) TO rent02 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '02' IF $(bcode,1,2) = '03' STOR rent03 + (trent + taddl) TO rent03 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '03' IF $(bcode,1,2) = '04' STOR rent04 + (trent + taddl) TO rent04 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '04' IF $(bcode,1,2) = '05' STOR rent05 + (trent + taddl) TO rent05 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '05' IF $(bcode,1,2) = '06' STOR rent06 + (trent + taddl) TO rent06 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '06' IF $(bcodet03*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'031040D'+'rent accrual '+date()+'J' REPL amount WITH rent03 ENDI rent03 > 0 IF rent04 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'043020C'+'rent accrual '+date()+'J' REPL amount WITH (rent04*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'041040D'+'rent accrual '+date()+'J' REPL amount WITH rent04 ENDI rent04 > 0 IF rent05 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'053020C'+'rent accrual '+date()+'J' REPL amount WITH (rent05*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'051040D'+'rent accrual '+date()+'J' REPL amount WITH rent05 ENDI rent,1,2) = '07' STOR rent07 + (trent + taddl) TO rent07 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '07' IF $(bcode,1,2) = '08' STOR rent08 + (trent + taddl) TO rent08 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '08' IF $(bcode,1,2) = '09' STOR rent09 + (trent + taddl) TO rent09 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '09' IF $(bcode,1,2) = '10' STOR rent10 + (trent + taddl) TO rent10 REPL trentd WITH (trentd + trent + taddl) ENDI $(bcode,1,2) = '10' SKIP ENDD WHILE .NOT. eof SELE PRIMARY USE &dr.:ACCOUNT SET INDEX TO GO BOTTOM STOR f TO firstup DO WHIL .NOT. firstup IF $(data,1,1) = 'J' STOR VAL($(data,2,3)) TO entryno STOR t TO firstup ELSE SKIP -1 ENDI ENDD WHILE .NOT. firstup STOR $(mdate1,7,2) + $(mdate1,1,2) + $(mdate1,4,2) TO mdat1 IF rent01 > 0 STOR entryno + 1 TO entryno STOR entryno + 1000 TO entryn STOR STR(entryn,4) to entry STOR 'J' +  05 > 0 IF rent06 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'063020C'+'rent accrual '+date()+'J' REPL amount WITH (rent06*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'061040D'+'rent accrual '+date()+'J' REPL amount WITH rent06 ENDI rent06 > 0 IF rent07 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'073020C'+'rent accrual '+date()+'J' REPL amount WITH (rent07*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'071040D'+'rent accrual '+date()+'J' REPL amount WITH rent07 ENDI rent07 > 0 IF rent08 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entr.:account SET TALK OFF SET ECHO OFF ENDI command = 'Y' RELE all STOR CHR(PEEK(063)) TO dr USE &dr.:account SET INDEX TO &dr.:account ERAS STOR t TO account * DATE 08/26/84 13:27 * statement module STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET index TO &dr.:account REST from coname additive ERAS STOR t TO more2 DO WHIL more2 STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR 0 TO rec:no STOR '?' TO comm STOR 'N' TO nowprint TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * y APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'083020C'+'rent accrual '+date()+'J' REPL amount WITH (rent08*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'081040D'+'rent accrual '+date()+'J' REPL amount WITH rent08 ENDI rent08 > 0 IF rent09 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'093020C'+'rent accrual '+date()+'J' REPL amount WITH (rent09*-1) APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'091040D'+'rent accrual '+date()+'J' REPL amount WITH rent09 ENDI rent09 > 0 IF rent10 > 0 STOR entryno + 1 TO entryno STOR entryno + 1001 TO entryn STOR STR(entryn,4) to entry STOR 'J' + $(entry,2,3) TO entry APPE BLANK REPL date WITH mdat1 REPL data WITH entry+'103020C'+'rent accrual '+date()+'J' REPL amount WITH (rent10*-1) APPE BLAN * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * * * * * * * * * * * * * * * * K REPL date WITH mdat1 REPL data WITH entry+'101040D'+'rent accrual '+date()+'J' REPL amount WITH rent10 ENDI rent10 > 0 ENDI accrue SELE PRIMARY USE &dr.:account SET INDEX TO account STOR 'Y' TO command ERAS TEXT This module updates the accounting files so that statements can be prepared. The steps to do this are to reindex the file - and then to set the accrual and statement dates. If all you want to do is update the rental records to send out monthly rent bills - you need not reindex. You also do not have to reindex if no entries were made since your last reindexing. SHALL WE REINDEX ? ENDT @ 11,43 GET command PICTURE '!' READ IF command = 'Y' @ 14,15 SAY 'Reindexing............please be patient' @ 15,15 SAY '......................but I will keep you posted' @ 16,00 SET TALK ON SET ECHO ON INDE ON date + $(data,7,4) + $(data,5,1) TO &dr  * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 3,04 SAY coname + ' - STATEMENT PRINTING MENU' @ 3,65 SAY date() @ 7,11 SAY "A. Prepare a new Trial Balance" @ 8,11 SAY "B. Prepare a new Balance Sheet and Profit & Loss Statement" @ 9,11 SAY "C. Print a previously prepared Trial Balance" @ 10,11 SAY "D. Print a previously prepared Balance Sheet and P&L Statement" @ 11,11 SAY "E. Return to main accounting menu" @ 13,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 13,58 GET comm PICTURE '!' READ DO WHIL @(COMM, 'ABCDE?Q') = 0 S *" @ 14,00 SAY " * *" @ 15,00 SAY " * This will take a while - so please be patient *" @ 16,00 SAY " * I am examining record number....... *" @ 16,40 SAY countit STOR 0 TO tempamt STOR 0 TO tempamt1 GO top STOR $(data,7,4) TO tempcr STOR $(data,5,2) TO build STOR t TO range STOR t TO more STOR 1 TO planct STOR '10115220321323425530640750856957060A' TO plan DO WHIL more ******************************************************************************* * NOTE - if you change the ranges in the Chart of Accounts the three * * number groupings in 'plan' may require changing to caculate the statements * * 'plan' appears again later on under IF STUB * ******************************************************************************* STOR t TO LOOPING TOR '?' TO comm @ 13,58 GET comm PICTURE '!' READ ENDD WHILE @(comm) DO CASE CASE comm = 'A' .OR. comm = 'B' STOR DATE() TO stdate STOR '12' TO mfyr STOR '99' TO build1 STOR ',' TO bl STOR bl TO mcode1 STOR bl TO mcode2 STOR bl TO mcode3 STOR bl TO mcode4 STOR bl TO mcode5 STOR bl TO mcode6 STOR bl TO mcode7 STOR bl TO mcode8 STOR bl TO mcode9 STOR bl TO mcode0 STOR bl TO mcodea STOR 'N' to stub1 STOR ' ' TO stubdate STOR t TO maybe @ 13,00 SAY " *****************************************************************************" @ 14,00 SAY " * What is the statement date ? *" @ 14,58 GET stdate PICTURE '99/99/99' READ STOR $(stdate,7,2) + $(stdate,1,2) + $(stdate,4,2) TO stdat @ 15,00 SAY " * What is the ending month of the fiscal or calendar year ? *" @ 15,68 GET mfyr PICTURE '99' READ IF comm = 'B' @ 16,00 SAY " * Do you want a one month repor DO WHIL looping STOR $(plan,planct,3) TO nu STOR $(nu,1,2) TO nu1 STOR $(nu,3,1) TO nu2 IF range .AND. planct = 19 STOR # TO rec:no STOR f TO range STOR tempcr TO tempcr1 ENDI range IF $(tempcr,1,2) = '&nu1' DO WHIL $(data,7,2) = '&nu1' .AND. (.NOT. EOF) IF (build1 = '99' .OR. build1 = build) .AND. date <= stdat STOR $(data,7,4) TO cr IF tempcr = cr STOR t TO maybe STOR tempamt + amount TO tempamt ELSE STOR STR(tempamt,12,2) TO tempam STOR 0 TO tempamt STOR 1 TO blank DO WHIL $(tempam,blank,1)=' ' STOR blank+1 TO blank ENDD STOR $(tempam,blank) TO tempam STOR (tempcr +',' + tempam +',') TO mtemp STOR (mcode&nu2 + mtemp) TO mcode&nu2 STOR cr TO tempcr STOR f TO maybe ENDI tempcr = cr ELSE SKIP ENDI build1 IF maybe SKIP STOR countit + 1 TO countit @t included ? *" @ 16,60 GET stub1 PICTURE '!' READ ENDI comm= 'B' IF stub1 = 'Y' STOR t TO stub STOR bl TO mcode6a STOR bl TO mcode7a STOR bl TO mcode8a STOR bl TO mcode9a STOR bl TO mcode0a STOR bl TO mcodeaa IF $(stdat,3,2) = '01' STOR (VAL(stdat) -10000) TO stdat1 STOR STR(stdat1,6) TO stdat STOR $(stdat,1,2) + '12' + $(stdat,5,2) TO stubdate ELSE STOR (VAL(stdat) -100) TO stdat1 STOR STR(stdat1,6) TO stubdate ENDI $(stdat) ELSE STOR f TO stub ENDI stub1 @ 17,00 SAY " * What building shall we do ('99' for all) ? *" @ 17,60 GET build1 PICTURE '99' READ @ 18,00 SAY " * Do you want to print the statement now ? *" @ 18,60 GET nowprint PICTURE '!' READ STOR 1 TO countit @ 17,00 SAY " * *" @ 18,00 SAY " *   16,40 SAY countit ENDI maybe ENDD WHILE $(data,7,2) = nu2 STOR STR(tempamt,12,2) TO tempam STOR 1 TO blank DO WHIL $(tempam,blank,1)=' ' STOR blank+1 TO blank ENDD STOR $(tempam,blank) TO tempam STOR (tempcr +',' + tempam +',') TO mtemp STOR (mcode&nu2 + mtemp) TO mcode&nu2 STOR $(data,7,4) TO tempcr STOR 0 TO tempamt ENDI $(tempcr,1,2) = nu1 STOR planct + 3 TO planct IF nu2 = 'A' .OR. EOF STOR f TO looping ENDI nu2 ENDD while looping IF stub GO rec:no STOR 0 TO tempamt STOR tempcr1 TO tempcr STOR 1 TO planct STOR '306a407a508a569a570a60Aa' TO plan STOR t TO LOOPING DO WHIL looping STOR $(plan,planct,4) TO nu STOR $(nu,1,2) TO nu1 STOR $(nu,3,2) TO nu2 IF $(tempcr,1,2) = '&nu1' DO WHIL $(data,7,2) = '&nu1' .AND. (.NOT. EOF) IF (build1 = '99' .OR. build1 = build) .AND. date <= stdat STOR $(data,7,4) TO cr IF tempodea, bl, maybe, cr RELE mcode6a, mcode7a, mcode8a, mcode9a, mcode0a, mcodeaa RELE countit, tempcr, blank, tempam, mtemp, more, account RELE command, build1, tempamt, stub1 SAVE TO temp CLEA REST from temp IF comm = 'A' STOR 'C' TO com1 ELSE STOR 'D' TO com1 ENDI comm DO statemp.acc ELSE ERAS CLEA STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO &dr.:account REST from coname additive STOR t TO more2 ENDI nowprint CASE comm = 'C' .OR. comm = 'D' IF comm = 'C' STOR 'C' TO com1 ELSE STOR 'D' TO com1 ENDI comm DO statemp.acc CASE comm = '?' ERAS TEXT S T A T E M E N T P R I N T I N G H E L P M E N U This module calculates a trial balance and an income statement and a balance sheet. It will also prepare a one month 'stub' income statement. You can print the statement at the time of the calculation, or at any later time. It will alwacr = cr STOR t TO maybe STOR tempamt + amount TO tempamt ELSE STOR STR(tempamt,12,2) TO tempam STOR 0 TO tempamt STOR 1 TO blank DO WHIL $(tempam,blank,1)=' ' STOR blank+1 TO blank ENDD STOR $(tempam,blank) TO tempam STOR (tempcr +',' + tempam +',') TO mtemp STOR (mcode&nu2 + mtemp) TO mcode&nu2 STOR cr TO tempcr STOR f TO maybe ENDI tempcr = cr ELSE SKIP ENDI build1 IF maybe SKIP STOR countit + 1 TO countit @ 16,40 SAY countit ENDI maybe ENDD WHILE $(data,7,2) = nu2 STOR STR(tempamt,12,2) TO tempam STOR 1 TO blank DO WHIL $(tempam,blank,1)=' ' STOR blank+1 TO blank ENDD STOR $(tempam,blank) TO tempam STOR (tempcr +',' + tempam +',') TO mtemp STOR (mcode&nu2 + mtemp) TO mcode&nu2 STOR $(data,7,4) TO tempcr STOR 0 TO temys print the last statement prepared under a particular date. If you initially asked for the stub statement, it will always print the stub statement in addition to the full statement. If you elect to print the statement, you can send it to both the screen and the printer or just the screen. You can also send the output to a disk file where you can edit it further before printing. It will take a few minutes for the calculations, so please be patient while it runs. Please hit any key to return to the menu ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS STOR t TO more2 CASE comm = 'E' .OR. comm = 'Q' STOR f TO more2 ENDC ENDD WHILE more2 RELE ALL STOR t TO account * DATE 09/12/84 18:38 * statement printing program SAVE TO TEMP CLEA REST FROM TEMP STOR CHR(PEEK(063)) TO dr SELE PRIMARpamt ENDI $(tempcr,1,2) = nu1 STOR planct + 4 TO planct IF $(nu2,1,1) = 'A' .OR. EOF STOR f TO looping ENDI nu2 ENDD while looping ENDI stub STOR f TO more ENDD while more SELE SECONDARY USE &dr.:statemnt IF stub APPE BLANK REPL date WITH stdate, fyr WITH mfyr, bld WITH build1 REPL code6 WITH mcode6a, code7 WITH mcode7a, code8 WITH mcode8a REPL code9 WITH mcode9a, code0 WITH mcode0a, codea WITH mcodeaa REPL stubs WITH t ENDI stub APPE BLANK REPL date WITH stdate, fyr WITH mfyr, bld WITH build1 REPL code1 WITH mcode1, code2 WITH mcode2, code3 WITH mcode3 REPL code4 WITH mcode4, code5 WITH mcode5, code6 WITH mcode6 REPL code7 WITH mcode7, code8 WITH mcode8, code9 WITH mcode9 REPL code0 WITH mcode0, codea WITH mcodea IF stub REPL stubs WITH t ENDI stub IF nowprint = 'Y' STOR stdate TO daya RELE stdate, mfyr, mcode1, mcode2, mcode3, mcode4, mcode5 RELE mcode6, mcode7, mcode8, mcode9, mcode0,mc Y USE &dr.:statemnt RELE dr STOR 0 TO totalit STOR 0 TO totalit1 STOR 0 TO netin GO top IF nowprint = 'Y' GO bottom ELSE STOR ' ' to daya @ 15,00 @ 15,00 @ 16,00 SAY " * *" @ 15,00 SAY ' * What is the date of the statement you want to print *' @ 15,65 GET daya picture '99/99/99' READ GO TOP LOCA for daya = date DO WHIL .NOT. EOF IF .NOT. EOF STOR # TO rec:no ENDI .NOT. EOF CONT ENDD WHILE .NOT. EOF IF rec:no = 0 DO WHIL rec:no = 0 GO TOP @ 15,65 GET daya picture '99/99/99' READ LOCA for daya = date DO WHIL .NOT. EOF IF .NOT. EOF STOR # TO rec:no ENDI .NOT. EOF CONT ENDD WHILE .NOT. EOF ENDD WHILE rec:no = 0 ENDI rec:no = 0 IF rec:no <> 0 GO rec:no ENDI rec:no ENDI nowprint = 'Y' RELE nowprint IF stubs STOR t TO stub ELSE STOR f TO stub ENDI stubs @ 16,00 SAY " * ilename SET ALTERNATE ON ELSE RELE filename ENDI disk = Y and filename <> '' IF $(daya,4,1) = '0' STOR $(daya,5,1) TO date2 ELSE STOR $(daya,4,2) TO date2 ENDI STOR fyr TO mfyr IF mfyr < $(daya,1,2) STOR VAL(fyr)+12 TO mfyr1 ELSE STOR VAL(mfyr) TO mfyr1 ENDI mfyr STOR mfyr1 - VAL($(daya,1,2)) TO mfyr1 STOR mfyr1 + 100 TO mfyr1 STOR STR(mfyr1,3) TO mfyr2 STOR $(mfyr2,2,2) TO mfyr DO CASE CASE mfyr = '01' STOR 'One month ending ' TO date3 CASE mfyr = '02' STOR 'Two months ending ' TO date3 CASE mfyr = '03' STOR 'Three months ending ' TO date3 CASE mfyr = '04' STOR 'Four months ending ' TO date3 CASE mfyr = '05' STOR 'Five months ending ' TO date3 CASE mfyr = '06' STOR 'Six months ending ' TO date3 CASE mfyr = '07' STOR 'Seven months ending ' TO date3 CASE mfyr = '08' STOR 'Eight months ending ' TO date3 CASE mfyr = '09' STOR 'Nine months ending ' TO date3 CASE mfyr = '10' STOR 'Ten months ending ' TO date3 CASE mfyr = '11' STOR 'Eleven months ending ' T *" @ 15,00 SAY " * Send Statements to the Printer (Y/N) *" @ 15,60 GET printer PICTURE '!' READ @ 16,00 SAY " * Send Statements to a Disk File (Y/N) *" @ 16,60 GET disk PICTURE '!' READ STOR LEN(coname)/2 TO L STOR 40-L TO L STOR ' ' TO bl STOR $(bl,1,L) + coname TO coname1 RELE coname IF disk ='Y' @ 18,00 SAY " * Enter Disk File Name *" @ 18,44 GET filename PICTURE '!!!!!!!!' @ 18,54 SAY "(.TXT will be added )" READ STOR 'A' to dr @ 19,00 SAY ' * Select drive to put Files on *' @ 19,54 GET dr PICTURE '!' READ DO WHIL @(dr,'AB') = 0 @ 19,54 GET dr PICTURE '!' READ ENDD while @ ENDI disk = Y @ 15,00 SAY " * *" @ 16,00 SAY " * O date3 CASE mfyr = '12' STOR 'Twelve months ending ' TO date3 ENDC DO CASE CASE $(daya,1,2) = '01' STOR 'January ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '02' STOR 'February ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '03' STOR 'March ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '04' STOR 'April ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '05' STOR 'May ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '06' STOR 'June ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '07' STOR 'July ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '08' STOR 'August ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '09' STOR 'September ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '10' STOR 'October ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '11' STOR 'November ' + date2 + ', 19' + $(daya,7,2) TO date1 CASE $(daya,1,2) = '12' STOR 'December *" @ 17,00 SAY " * *" @ 18,00 SAY " * *" @ 19,00 SAY " * *" IF printer = 'Y' @ 16,00 SAY " * MAKE PRINTER READY AND HIT ANY KEY *" SET CONSOLE OFF WAIT SET CONSOLE ON ERAS @ 10,20 SAY 'Calculating........................................' @ 12,00 SAY ' ' SET print ON ELSE ERAS @ 10,20 SAY 'Calculating........................................' @ 12,00 SAY ' ' ENDI printer = Y IF disk = 'Y' .AND. filename <> ' ' * make a proper REPORT file name that is of type TXT STOR @('.',filename) TO length IF length = 0 .OR. length > 8 STOR 9 TO length ENDI length STOR $(filename,1,length-1) TO filename STOR '&dr.:'+filename+'.TXT' TO filename RELE dr SET ALTERNATE TO &f  ' + date2 + ', 19' + $(daya,7,2) TO date1 ENDC STOR TRIM(date1) TO date1 STOR TRIM(date3+date1) TO date3 STOR LEN(date3)/2 TO L STOR 40-L TO L STOR ' ' TO bl STOR $(bl,1,L) + date3 TO date3 STOR LEN(date1)/2 TO L STOR 40-L TO L STOR ' ' TO bl STOR $(bl,1,L) + date1 TO date1 RELE L, bl, daya, date2, printer, disk,mfyr, mcyr, mfyr1, mfyr2 STOR t TO wholelist STOR 1 to count IF com1 = 'C' STOR 'BCDEFGHIJKL' TO plan STOR t TO trial ELSE STOR '6789A012345' TO plan STOR f TO trial ENDI com1 STOR 0 TO plus STOR 0 TO minus DO WHIL WHOLELIST STOR $(plan,(count),1) TO chart DO CASE CASE chart = '1'.OR. chart = 'B' STOR code1 TO mcode STOR count + 1 TO count CASE chart = '2' .OR. chart = 'C' STOR code2 TO mcode STOR count + 1 TO count CASE chart = '3'.OR. chart = 'D' STOR code3 TO mcode STOR count + 1 TO count CASE chart = '4' .OR. chart = 'E' STOR code4 TO mcode STOR count + 1 ' ' ? coname1 ? ' TRIAL BALANCE' ? date1 ? ' ' ? '----------------------------------------------------------------------------' ? 'Acct # Description Debit Credit' ? '----------------------------------------------------------------------------' CASE chart = '1' EJEC ? ' ' ? coname1 ? ' BALANCE SHEET' ? date1 ? ' ' ? ' ' ? 'ASSETS ' ? ' ' CASE chart = '3' ? ' ' ? 'LIABILITIES AND CAPITAL' ? ' ' CASE chart = '5' ? ' ' ? 'CAPITAL' ? ' ' CASE chart = '6' .OR. chart = 'M' ? ' ' ? coname1 ? ' PROFIT AND LOSS STATEMENT' IF chart = '6' ? date3 RELE date3 ELSE ? ' ONE MONTH ENDING ' ? date1 ENDI chart = '6' ? ' ' ? 'INCOME' ? ' ' ENDC STOR '0' TO nu IF trial IF chart='B'.OR.chart='C'.OR.chart='D'.OR.chart='E'.OR.chart='F'; .OR TO count CASE chart = '5' STOR code5 TO mcode IF .NOT. stub STOR f TO wholelist ELSE STOR 'M789A0X' TO plan STOR 1 TO count ENDI CASE chart = 'X' STOR f TO wholelist CASE chart = 'F' STOR code5 TO mcode STOR count+1 TO count CASE CHART = '6' .OR. chart = 'G' .OR. chart = 'M' STOR code6 TO mcode STOR count + 1 TO count CASE CHART = '7' .OR. chart = 'H' STOR code7 TO mcode STOR count + 1 TO count CASE CHART = '8' .OR. chart = 'I' STOR code8 TO mcode STOR count + 1 TO count CASE CHART = '9' .OR. chart = 'J' STOR code9 TO mcode STOR count + 1 TO count CASE CHART = '0' .OR. chart = 'K' STOR code0 TO mcode STOR count + 1 TO count CASE CHART = 'A' STOR codea TO mcode STOR count + 1 TO count CASE CHART = 'L' STOR codea TO mcode STOR f TO wholelist ENDC STOR ',' TO C STOR 1 TO X STOR 1 TO Y STOR @(C,$(mcode,x)) TO y STOR t TO more STOR 0 TO countup STOR '0' TO nu DO WHIL more IF Y > 0 IF VAL(nu) <9.chart='G'.OR.chart='H'.OR.chart='I'.OR.chart='J'.OR.; chart='K'.OR.chart='L' DO WHIL &nu < &last-1 IF countup1 > 0 IF VAL(nu) <9 STOR STR(VAL($(nu,1,1))+1,1) TO nu ELSE STOR STR(VAL($(nu,1,2))+1,2) TO nu ENDI VAL(nu) IF NM&nu< 0 STOR ' ' TO sp STOR minus + NM&nu TO minus ELSE STOR ' ' TO sp STOR plus + NM&nu TO plus ENDI NM ? ' ' + mdesc&nu + sp+ STR(NM&nu,12,2) RELE N&nu, mdesc&nu, NM&nu, sp STOR countup1 -1 TO countup1 ENDI countup1 ENDD WHILE &nu ENDI chart ELSE STOR t TO full DO WHIL &nu < &last-1 IF countup1 > 0 IF VAL(nu) <9 STOR STR(VAL($(nu,1,1))+1,1) TO nu ELSE STOR STR(VAL($(nu,1,2))+1,2) TO nu ENDI VAL(nu) IF NM&nu < 0 .AND. chart <> '1' STOR (NM&nu*-1) TO NM&nu ENDI NM IF full .AND. NM&nu <> 0 DO CASE CASE chart = '1' ? 'CURRENT ASSETS ' ? ' ' CASE chart = '2' ? '  STOR STR(VAL($(nu,1,1))+1,1) TO nu ELSE STOR STR(VAL($(nu,1,2))+1,2) TO nu ENDI VAL(nu) STOR X + Y TO X STOR @(C,$(mcode,x)) TO y STOR $(mcode,x,y-1) TO N&nu STOR X + Y TO X STOR @(C,$(mcode,x)) TO y STOR (VAL($(mcode,x,y-1))*1.00) TO NM&nu STOR countup + 1 TO countup ELSE STOR f TO more ENDI Y > 0 ENDD WHILE more STOR nu TO last STOR 0 TO sumup STOR countup-1 to countup STOR countup to countup1 STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:chart RELE dr STOR '0' TO nu DO WHIL &nu < &last-1 IF countup > 0 IF VAL(nu) <9 STOR STR(VAL($(nu,1,1))+1,1) TO nu ELSE STOR STR(VAL($(nu,1,2))+1,2) TO nu ENDI VAL(nu) LOCA FOR N&nu= acctno IF comm = 'A' .OR. comm = 'C' STOR N&nu + ' ' + desc TO mdesc&nu ELSE STOR desc TO mdesc&nu ENDI comm RELE N&nu STOR sumup + NM&nu TO sumup STOR countup -1 TO countup ENDI countup ENDD WHILE &nu DO CASE ERAS CASE chart = 'B' ? ' ? 'FIXED ASSETS' ? ' ' CASE chart = '3' ? ' ' ? 'CURRENT LIABILITIES' ? ' ' CASE chart = '4' ? ' ' ? 'LONG TERM LIABILITIES' ? ' ' CASE chart = '7' ? ' ' ? 'OPERATING EXPENSES' ? ' ' CASE chart = '8' ? ' ' ? 'GENERAL & ADMINISTRATIVE EXPENSES' ? ' ' CASE chart = '9' ? ' ' ? 'FINANCIAL EXPENSES' ? ' ' CASE chart = '0' ? ' ' ? 'TAX EXPENSES' ? ' ' ENDC ENDI NM&nu ? ' ' + mdesc&nu + STR(NM&nu,12,2) STOR f TO full RELE mdesc&nu, MN&nu, N&nu STOR countup1 -1 TO countup1 ENDI countup1 ENDD while &nu ENDI trial DO CASE CASE chart = '1' STOR 0 TO totalit STOR sumup + totalit TO totalit STOR 0 TO sumup CASE chart = '2' ? ' ---------- ' STOR sumup + totalit TO totalit IF totalit < 0 STOR totalit*-1 TO totalit ? '  ' Credits = '+STR(minus,12,2) ? '----------------------------------------------------------------------------' IF netin <=0 ? ' NET INCOME FOR PERIOD ' +sp+ STR(netin,12,2) ELSE ? ' NET LOSS FOR PERIOD ' +sp+ STR(netin,12,2) ENDIF netin ? '----------------------------------------------------------------------------' ? ' ' EJEC ? ' ' CASE chart = '6' .OR. chart = 'M' STOR 0 TO netin STOR sumup + netin TO netin STOR (sumup*-1) TO sumup IF sumup <> 0 ? ' ---------- ' + STR(SUMUP,12,2) ENDI sumup ? ' ' STOR 0 TO sumup CASE chart = '7' STOR sumup + netin TO netin STOR 0 TO exp STOR sumup + exp to exp IF sumup <> 0 ? ' ---------- ' + STR(SUMUP,12,2) ENDI sumup ? ' ' STOR 0 TO sumup CASE chart = '8' STOR sumup + netin TO netin STOR sumup + exp TO exp IF sum TOTAL ASSETS (' + STR(totalit,12,2)+')' ELSE ? ' TOTAL ASSETS ' + STR(totalit,12,2) ENDI totalit ? ' ============' ? ' ' STOR 0 TO sumup CASE chart = '3' STOR 0 TO totalit STOR sumup + totalit TO totalit CASE chart = '4' STOR sumup + totalit TO totalit ? ' ---------- ' IF TOTALIT < 0 STOR totalit*-1 TO total1 ELSE STOR totalit TO total1 ENDI ? ' TOTAL LIABIlITIES ' + STR(total1,12,2) ? ' ' STOR 0 TO sumup RELE total1 CASE chart = '5' STOR sumup + totalit + netin TO totalit IF netin >= 0 STOR netin*-1 TO net ? ' Earnings this period ' + STR(NET,12,2) ELSE ? ' Earnings this period (' + STR(NETIN,12,2)+')' ENDI up <> 0 ? ' ---------- ' + STR(SUMUP,12,2) ENDI sumup ? ' ' STOR 0 TO sumup CASE chart = '9' STOR sumup + netin TO netin STOR sumup + exp TO exp STOR sumup TO adjust IF sumup <> 0 ? ' ---------- ' + STR(SUMUP,12,2) ENDI sumup ? ' ' STOR 0 TO sumup CASE chart = '0' STOR sumup + netin TO netin STOR sumup + exp TO exp IF sumup <> 0 ? ' ---------- ' + STR(SUMUP,12,2) ENDI sumup ? ' --------------' ? ' TOTAL ALL EXPENSES ' + STR(exp,12,2) ? ' ------------' IF netin < 0 STOR netin*-1 TO net ? ' NET INCOME FOR PERIOD ' + STR(net,12,2) ? ' netin ? ' ---------- ' IF totalit > 0 ? ' TOTAL LIABILITIES & CAPITAL (' + STR(totalit,12,2)+')' ELSE ? ' TOTAL LIABILITIES & CAPITAL ' + STR(totalit,12,2) ENDI totalit ? ' ============' EJEC ? ' ' CASE chart = 'B'.OR.chart='C'.OR.chart='D'.OR.chart='E'.OR.chart='F' STOR 0 TO sumup CASE chart = 'G' STOR 0 TO netin STOR sumup + netin TO netin STOR 0 TO sumup CASE chart = 'H'.OR.chart='I'.OR.chart='J' STOR sumup + netin TO netin STOR 0 TO sumup CASE chart = 'K' STOR 0 TO sumup CASE chart = 'L' STOR sumup + netin TO netin IF netin < 0 STOR ' ' TO sp ELSE STOR ' ' TO sp ENDI netin STOR minus*-1 TO minus ? '----------------------------------------------------------------------------' ? ' VALIDATION Debits = '+ STR(plus,12,2)+ ============' ELSE ? " NET INCOME FOR PERIOD $(" + STR(netin,12,2) + ")" ? ' ============' ENDI netin STOR (sumup+netin-adjust) TO adjust IF adjust <> netin IF adjust < 0 STOR adjust*-1 TO adjust ? ' ' ? ' CASH GENERATED FROM OPERATIONS $' + STR(adjust,12,2) ? ' ' ? ' ' ELSE ? ' ' ? ' CASH GENERATED FROM OPERATIONS $(' + STR(adjust,12,2)+ ')' ? ' ' ? ' ' STOR 0 TO sumup ENDI ENDI adjust IF stub SKIP -1 ENDI stub CASE chart = 'X' EJEC ? ' ' STOR f TO wholelist ENDC RELE N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12,N13,N14,N15,N16,N17,N18 RELE NM1, NM2, NM3, NM4, NM5, NM6, NM7, NM8, NM9, NM10, NM11, NM12,NM13,NM14 RELE NM15,NM16,NM17,NM18,mdesc1, mdesc2, mdesc3, mdesc4, mdesc5, mdesc6, mdescsame time add all of the units. (Add them even if vacant - just leave the tenant name blank - so that it will appear on the vacancy list). When a unit becomes vacant - we suggest you not delete the record - but that you delete the name of the tenant. Note, however, the automatic rent posting program will post the rental to the unit - so you will have to make an offsetting journal entry for vacancy losses. Most people do that anyway. However, if you want to add a tenant who was never in the data base you have that option on this menu. Press any key to continue ENDT CASE choice = 'C' RELE ALL STOR t TO first ENDC * DATE 07/31/84 17:24 * ADD.PRG * this program will add records to the current files SET INDEX TO STOR ' ' TO choice STOR 7, mdesc8 RELE mdesc9, mdesc10, mdesc11, mdesc12,mdesc13,mdesc14,mdesc15,mdesc16,mdesc17,mdesc18, countup, countup1, full STOR 0 TO countup ENDD while wholelist SET PRINT OFF SET ALTERNATE OFF ERAS CLEA STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:account SET INDEX TO &dr.:account REST from coname additive STOR t TO more2 RETU * DATE 06/23/84 19:01 * add.bld STOR 'A' TO choice ERAS TEXT Welcome to the 'ADD' Menu. We can now add new buildings to the data file - or add new tenants to existing buildings already in the data base. Note that when you add a building, you will be given the option of adding the tenants or the units at the same time. add a new building t TO more SET INTENSITY ON SET COLON OFF DO WHIL more * set up screen for data entry ERAS *loop until finished adding records STOR 'Add Building Records' TO mode STOR 'First enter data about the building. You then will be able to' TO prompt1 STOR 'enter tenant data before you enter another building.' TO prompt2 STOR 'To terminate session leave building blank and hit control Q' TO prompt3 @ 0,26 SAY mode @ 1, 0 SAY " -------------------------------------------------" @ 1,50 SAY "-----------------------------" @ 3, 1 SAY "Address:" @ 3,55 SAY "Code:" @ 4, 4 SAY "City:" @ 4,37 SAY "State:" @ 4,56 SAY "Zip:" @ 6, 1 SAY "Manager:" @ 6,54 SAY "Phone:" @ 7, 4 SAY "Type:" @ 7,44 SAY "Number of Units:" @ 9, 0 SAY "Acquired:" @ 9,45 SAY "Purchase Price:" @ 11,28 SAY "Send Rental Payments To:" @ 12,00 SAY "Company:" @ 12,54 SAY "Phone:" @ 13,01 SAY "Street:" @ 14,03 SAY "City:" @ 15,00 SAY "Chks To:" @ 17,02 SAY "Notes:" @ 18,52 SAY "Updated:" @ 19, 0 SAY " -- add tenants to a building already in the data base return to main menu without adding ENDT @ 13,10 SAY 'How shall we proceed ? ' @ 13,42 GET choice picture '!' READ DO WHIL @(choice, 'ABC') = 0 @ 13,42 GET choice PICTURE '!' READ CLEA GETS ENDD while @(choice DO CASE CASE choice = 'A' DO add1.bld STOR t TO first CASE choice = 'B' STOR '99' TO findit @ 13,00 @ 13,10 SAY 'What is the code number of the building (99 to quit) ? ' @ 13,65 GET findit PICTURE '99' READ IF findit = '99' STOR t TO first RETU ENDI FIND &findit DO WHIL # = 0 STOR ' ' TO findit @ 13,65 GET findit PICTURE '99' READ IF findit = ' ' STOR t TO first RETU ENDI FIND &findit ENDD DO add2.bld CASE choice = '?' ERAS TEXT A D D M E N U H E L P S C R E E N The options are rather simple. In a normal case you would add a building and at the -----------------------------------------------" @ 19,50 SAY "-----------------------------" * get a set of default memory variables for data entry STOR ' ' TO blnks STOR $(blnks,1,35) TO mbaddr STOR $(blnks,1,2) TO mbcode STOR $(blnks,1,20) TO mbcity STOR $(blnks,1,2) TO mbst STOR $(blnks,1,5) TO mbzip STOR $(blnks,1,25) TO mbmgr STOR $(blnks,1,13) TO mbphone STOR $(blnks,1,2) TO mbtype STOR $(blnks,1,3) TO mbunit STOR $(blnks,1,8) TO mbacq STOR 0 TO mbprice STOR $(blnks,1,35) TO mremit STOR $(blnks,1,13) TO mphone STOR $(blnks,1,35) TO mremitad STOR $(blnks,1,35) TO mremitc STOR $(blnks,1,50) TO mchecks STOR $(blnks,1,50) TO mbnotes STOR date() TO mbupdate * get drive letter from memory 039 hex STOR chr(peek (063)) TO dr * let user enter data @ 3,10 GET mbaddr @ 3,61 GET mbcode PICTURE '99' @ 4,10 GET mbcity @ 4,44 GET mbst PICTURE '!!' @ 4,61 GET mbzip PICTURE '99999' @ 6,10 GET mbmgr @ 6,61 GET mbph @ 18,61 GET mbupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 22,00 READ CLEA GETS ENDI command = 'Y' * add new record APPE BLANK REPL baddr WITH mbaddr, bcode WITH mbcode REPL bcity WITH mbcity+mbst+mbzip REPL bdata WITH mbmgr+mbphone+mbtype+mbunit+mbacq REPL bprice WITH mbprice, remit WITH mremit, phone WITH mphone REPL remitad WITH mremitad, remitc WITH mremitc REPL checks WITH mchecks, bnotes with mbnotes, bupdate WITH mbupdate RELE mbcity, mbst, mbzip, mbmgr, mbphone, mbtype, mbunit, mbacq RELE mbprice, mremit, mphone, mremitad, mremitc RELE mchecks, mbnotes, mode, prompt1, prompt2, prompt3 SELE SECONDARY USE &dr.:tenant STOR t TO more1 STOR t TO first ERAS DO WHIL more1 IF first STOR 'Add Tenant Records' TO mode STOR 'Enter as many tenants as you want. When done, enter a blank for tenant' TO prompt1 STOR "name and unit or control 'Q' to end session." TO prompt2 @ 0,26 SAY mode @ 1, 0 SAY " -------------one PICTURE '(999)999-9999' @ 7,10 GET mbtype @ 7,61 GET mbunit @ 9,10 GET mbacq PICTURE '99/99/99' @ 9,61 GET mbprice @ 12,10 GET mremit @ 12,61 GET mphone PICTURE '(999)999-9999' @ 13,10 GET mremitad @ 14,10 GET mremitc @ 15,10 GET mchecks @ 17,10 GET mbnotes @ 18,61 GET mbupdate PICTURE '99/99/99' @ 20, 4 SAY prompt1 @ 21, 4 SAY prompt2 @ 22, 4 SAY prompt3 READ CLEA GETS * if a building was entered * add a new record with the entered data IF mbaddr <> ' ' * validation * this module validates added records * test if there is a bad field validation DO CASE CASE mbcode = ' ' * no building code STOR t TO error OTHE STOR f TO error ENDC * if test for error was true then fix the fields that need fixing IF error * erase the lines to be used for prompts @ 00,00 @ 20,00 @ 21,00 @ 22,00 * tell them to correct it @ 0,18 SAY 'Please Correct the Indicated Data' * keep looping until all fields are fixed STOR t to an:error DO W------------------------------------" @ 1,50 SAY "----------------------------" @ 3, 2 SAY "Tenant:" @ 3,53 SAY "Code:" @ 4, 4 SAY "Unit:" @ 4,26 SAY "Building:" @ 5, 1 SAY "Contact:" @ 5,52 SAY "Phone:" @ 6,09 SAY "Alternate mailing address:" @ 7,01 SAY "Address:" @ 8,01 SAY "City:" @ 10, 4 SAY "Type:" @ 10,19 SAY "Addl Percentage:" @ 10,48 SAY "1st Lease:" @ 11,04 SAY "Base:" @ 11,47 SAY "Expiration:" @ 12, 0 SAY "Security:" @ 12,30 SAY "Bank:" @ 12,48 SAY "Late Date:" @ 13, 4 SAY "Rent:" @ 13,25 SAY "Late Chgs:" @ 13,48 SAY "Addl Rent:" @ 14, 3 SAY "G & E:" @ 14,24 SAY "Other Chgs:" @ 15, 0 SAY "Rent Due:" @ 15,22 SAY "Last Payment:" @ 15,49 SAY "Amt Paid:" @ 16,00 SAY "Total Yr:" @ 16,30 SAY "Flag:" @ 16,52 SAY "Total:" @ 18, 3 SAY "Notes:" @ 18,51 SAY "Update:" @ 19, 0 SAY " -------------------------------------------------" @ 19,50 SAY "----HIL an:error DO CASE CASE mbcode = ' ' @ 20,15 SAY 'Must have a building code ' @ 03,61 GET mbcode PICTURE '99' READ OTHE STOR f TO an:error ENDC ENDD while an:error ENDI error RELE error, an:error SET COLON ON STOR 'N' TO command @ 20,00 @ 21,00 @ 22,00 @ 20,15 SAY 'Are there any more changes ? ' @ 20,48 GET command picture '!' READ SET COLON OFF IF command = 'Y' @ 0,00 @ 0,26 SAY mode @ 3,10 GET mbaddr @ 3,61 GET mbcode PICTURE '99' @ 4,10 GET mbcity @ 4,44 GET mbst PICTURE '!!' @ 4,61 GET mbzip PICTURE '99999' @ 6,10 GET mbmgr @ 6,61 GET mbphone PICTURE '(999)999-9999' @ 7,10 GET mbtype @ 7,61 GET mbunit @ 9,10 GET mbacq PICTURE '99/99/99' @ 9,61 GET mbprice @ 12,10 GET mremit @ 12,61 GET mphone PICTURE '(999)999-9999' @ 13,10 GET mremitad @ 14,10 GET mremitc @ 15,10 GET mchecks @ 17,10 GET mbnotes-------------------------" ENDI first STOR f TO first STOR $(blnks,1,35) TO mtenant STOR $(blnks,1,3) TO mtcode STOR $(blnks,1,5) to mtunit STOR 'R' TO mttype STOR $(blnks,1,25) TO mtcontac STOR $(blnks,1,13) TO mtphone STOR 'N' TO malt STOR $(blnks,1,35) TO maltad STOR $(blnks,1,35) TO maltcty STOR $(blnks,1,8) TO mtexpir STOR $(blnks,1,8) TO mtfirst STOR 0 TO mtsec STOR $(blnks,1,4) TO mtsecb STOR $(blnks,1,2) TO mtlate STOR 0 TO mtrent STOR 0.0000 TO mtrentpc STOR 0 TO mtrenpcr STOR 0 TO mtlatec STOR 0 TO mtaddl STOR 0 TO mtrente STOR 0 TO mtrentm STOR 0 TO mtrentd STOR $(blnks,1,8) TO mtrentpd STOR 0 TO mtrentp STOR 0 TO mtrenty STOR 0 TO mtrentt STOR $(blnks,1,8) TO mtflag STOR $(blnks,1,35) TO mtnotes STOR mbupdate TO mtupdate * setup gets to read data @ 3,10 GET mtenant @ 3,59 SAY mbcode @ 3,61 GET mtcode PICTURE '999' @ 4,10 GET mtunit @ 4,36 SAY mbaddr @R.mttype='P'.OR. mttype='O') @ 20,00 @ 21,00 @ 20,05 SAY "Type must be 'R' for Regular, 'P' for Percentage which uses the higher of" @ 21,05 SAY "the percentage or the base rent or 'O' for Overage plus base rent" @ 10,10 GET mttype PICTURE '!' READ CASE (mttype = 'P'.OR. mttype = 'O').AND.(.NOT.(mtrentpc>0.AND. mtrenpcr> 0)) @ 20,00 @ 21,00 @ 20,05 SAY 'If a percentage or overage lease, you must state the percentage' @ 21,05 SAY 'AND the base for calculating the percentage rent' @ 10,36 GET mtrentpc @ 11,10 GET mtrenpcr READ OTHE STOR f TO an:error ENDC ENDD while an:error ENDI error * give them another chance SET COLON ON STOR 'N' TO command @ 20,00 @ 21,00 @ 22,00 @ 20,15 SAY 'Are there any more changes ? ' @ 20,48 GET command picture '!' READ SET COLON OFF IF command = 'Y' @ 0,00  5,10 GET mtcontac @ 5,59 GET mtphone PICTURE '(999)999-9999' @ 6,36 GET malt PICTURE '!' @ 7,10 GET maltad @ 8,10 GET maltcty @ 10,10 GET mttype PICTURE '!' @ 10,36 GET mtrentpc @ 10,59 GET mtfirst PICTURE '99/99/99' @ 11,10 GET mtrenpcr @ 11,59 GET mtexpir PICTURE '99/99/99' @ 12,10 GET mtsec @ 12,36 GET mtsecb @ 12,59 GET mtlate PICTURE '99' @ 13,10 GET mtrent @ 13,36 GET mtlatec @ 13,59 GET mtaddl @ 14,10 GET mtrente @ 14,36 GET mtrentm @ 15,10 GET mtrentd @ 15,36 GET mtrentp PICTURE '99/99/99' @ 15,59 GET mtrentp @ 16,10 GET mtrenty @ 16,36 GET mtflag PICTURE '99/99/99' @ 16,59 GET mtrentt @ 18,10 GET mtnotes @ 18,61 GET mtupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 22,00 @ 20, 7 SAY prompt1 @ 21, 7 SAY prompt2 READ CLEA GETS * test if there is a bad field validation IF mtenant <> ' ' * validation DO CASE CASE mtcode = ' ' STOR t TO error CASE .NOT.(ma@ 0,26 SAY mode @ 3,10 GET mtenant @ 3,59 SAY mbcode @ 3,61 GET mtcode PICTURE '999' @ 4,10 GET mtunit @ 4,36 SAY mbaddr @ 5,10 GET mtcontac @ 5,59 GET mtphone PICTURE '(999)999-9999' @ 6,36 GET malt PICTURE '!' @ 7,10 GET maltad @ 8,10 GET maltcty @ 10,10 GET mttype PICTURE '!' @ 10,36 GET mtrentpc @ 10,59 GET mtfirst PICTURE '99/99/99' @ 11,10 GET mtrenpcr @ 11,59 GET mtexpir PICTURE '99/99/99' @ 12,10 GET mtsec @ 12,36 GET mtsecb @ 12,59 GET mtlate PICTURE '99' @ 13,10 GET mtrent @ 13,36 GET mtlatec @ 13,59 GET mtaddl @ 14,10 GET mtrente @ 14,36 GET mtrentm @ 15,10 GET mtrentd @ 15,36 GET mtrentp PICTURE '99/99/99' @ 15,59 GET mtrentp @ 16,10 GET mtrenty @ 16,36 GET mtflag PICTURE '99/99/99' @ 16,59 GET mtrentt @ 18,10 GET mtnotes @ 18,61 GET mtupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 22,00 * let user lt = 'Y' .OR. malt = 'N') STOR t TO error CASE .NOT.(mttype = 'R'.OR.mttype='P'.OR. mttype='O') STOR t TO error CASE (mttype = 'P'.OR. mttype = 'O') .AND.(.NOT.(mtrentpc >0.AND. mtrenpcr >0)) STOR t TO error OTHE STOR f TO error ENDC * if test for error was true then fix the fields that need fixing IF error * erase the lines to be used for prompts @ 00,00 @ 20,00 @ 21,00 @ 22,00 * tell them to correct it @ 0,18 SAY 'Please Correct the Indicated Data' * keep looping until all fields are fixed STOR t to an:error DO WHIL an:error DO CASE CASE mtcode = ' ' @ 20,00 @ 20,15 SAY 'Must have a tenant code ' @ 03,61 GET mtcode PICTURE '999' READ CASE .NOT.(malt = 'Y' .OR. malt = 'N') @ 20,00 @ 20,15 SAY "Must answer 'Y' or 'N' to alternate address" @ 06,36 GET malt PICTURE '!' READ CASE .NOT.(mttype = 'R'.Oenter data READ CLEA GETS ENDI command = 'Y' * put data in file APPE BLANK STOR mbcode + mtcode TO mbcod1 REPL tenant WITH mtenant, bcode WITH mbcod1, tunit WITH mtunit REPL baddr WITH mbaddr, tcontac WITH mtcontac, tphone WITH mtphone REPL alt WITH malt, altad WITH maltad, altcty WITH maltcty REPL ttype WITH mttype, texpir WITH mtexpir REPL trentpc WITH mtrentpc, trentpcr WITH mtrenpcr REPL tfirst WITH mtfirst, tsec WITH mtsec, tsecb WITH mtsecb REPL tlate WITH mtlate, trent WITH mtrent, tlatec WITH mtlatec REPL taddl WITH mtaddl, trente WITH mtrente, trentm WITH mtrentm REPL trentd WITH mtrentd, trentpd WITH mtrentpd, trentp WITH mtrentp REPL trenty WITH mtrenty, trentt WITH mtrentt, tflag WITH mtflag REPL tnotes WITH mtnotes,tupdate WITH mtupdate STOR t TO more1 ELSE * get ready to stop the loop STOR f TO more1 ENDI mtenant <> ' ' ENDD WHILE more1 SET COLON ON STOR 'A' TO command ERAS TEXT * DATE 07/31/84 17:22 * ADD2.PRG * this program will add tenant records to the current files SET INDEX TO SET COLON OFF SET INTENSITY ON STOR ' ' TO choice STOR ' ' TO blnks * set up screen for data entry *loop until finished adding records STOR baddr TO mbaddr STOR bcode TO mbcode STOR bupdate TO mbupdate SELE SECONDARY USE &dr.:tenant STOR t TO more STOR t TO first ERAS DO WHIL more IF first STOR 'Add Tenant Records' TO mode STOR 'Enter as many tenants as you want. When done, enter a blank for tenant' TO prompt1 STOR "name and unit or control 'Q' to end session." TO prompt2 @ 0,26 SAY mode @ 1, 0 SAY " -------------------------------------------------" @ 1,50 SAY "----------------------------" @ 3, 2 SAY "Tenant:" @ 3,53 SAY "Code:" @ 4, 4 SAY "Unit:" @ 4,26 SAY "Building:" @ 5, 1 SAY "Contact:" @ 5,52 SAY "Phone:" @ 6,09 SAY "Alternate mailing address:" @ 7,01 SAY "Address:" @ 8,01 SAY "City:" The newly added information is in the database - but will not show up on screen until the records are reindexed............ and reindexing may take a few minutes. Moreover, if you have additional buildings to add, you should not index until they are all added. In any event, you can reindex at any time. There is an option to reindex on the Maintenance menu. ENDT @ 15,10 SAY "Do you wish to REINDEX now (Y/N) or ADD (A) another building ?" @ 15,72 GET command PICTURE '!' READ CLEA GETS DO WHIL @(command, 'ANY') = 0 @ 15,72 GET command PICTURE '!' READ CLEA GETS ENDD DO CASE CASE command = 'Y' * restore original index and reindex * since it takes time, tell them ERAS @ 02,00 SAY 'Files are now being reindexed. ' @ 03,00 SAY 'Please be patient as this will take a few minutes.' @ 04,00 SAY 'I will keep you posted as I go along' @ 05,00 SAY ' ' *index transitional part in secondary  @ 10, 4 SAY "Type:" @ 10,19 SAY "Addl Percentage:" @ 10,48 SAY "1st Lease:" @ 11,04 SAY "Base:" @ 11,47 SAY "Expiration:" @ 12, 0 SAY "Security:" @ 12,30 SAY "Bank:" @ 12,48 SAY "Late Date:" @ 13, 4 SAY "Rent:" @ 13,25 SAY "Late Chgs:" @ 13,48 SAY "Addl Rent:" @ 14, 3 SAY "G & E:" @ 14,24 SAY "Other Chgs:" @ 15, 0 SAY "Rent Due:" @ 15,22 SAY "Last Payment:" @ 15,49 SAY "Amt Paid:" @ 16,00 SAY "Total Yr:" @ 16,30 SAY "Flag:" @ 16,52 SAY "Total:" @ 18, 3 SAY "Notes:" @ 18,51 SAY "Update:" @ 19, 0 SAY " -------------------------------------------------" @ 19,50 SAY "-----------------------------" ENDI first STOR f TO first STOR $(blnks,1,35) TO mtenant STOR $(blnks,1,3) TO mtcode STOR $(blnks,1,5) to mtunit STOR 'R' TO mttype STOR $(blnks,1,25) TO mtcontac STOR $(blnks,1,13) TO mtphone STOR 'N' TO malt STOR $(blnks,1,35) TO maltad STOR $(blnks,1,35) TO maltcty STOR $(blnks,1,8) TO mtexpir STOR $(blnks,1,8) TO mtfirst database STOR chr(peek(063)) to dr SET ECHO ON SET TALK ON SELE primary USE &dr.:build INDEX &dr.:code INDE ON bcode to &dr.:code SELE SECONDARY USE &dr.:TENANT INDEX &dr.:codea INDE on bcode to &dr.:codea SET ECHO OFF SET TALK OFF STOR f TO more STOR t TO first STOR ' ' TO choice CASE command = 'N' STOR f TO more STOR chr(peek(063)) to dr SELE PRIMARY USE &dr.:build INDEX &dr.:code STOR ' ' TO choice STOR t TO first CASE command = 'A' STOR t TO more STOR chr(peek(063)) TO dr SELE PRIMARY USE &dr.:build STOR t TO first STOR 'A' TO choice ENDC ELSE STOR f TO more ENDI mbaddr ENDD WHILE MORE STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build SET INDEX TO &dr.:code SET INTENSITY OFF STOR t TO first  STOR 0 TO mtsec STOR $(blnks,1,4) TO mtsecb STOR $(blnks,1,2) TO mtlate STOR 0 TO mtrent STOR 0.0000 TO mtrentpc STOR 0 TO mtrenpcr STOR 0 TO mtlatec STOR 0 TO mtaddl STOR 0 TO mtrente STOR 0 TO mtrentm STOR 0 TO mtrentd STOR $(blnks,1,8) TO mtrentpd STOR 0 TO mtrentp STOR 0 TO mtrenty STOR 0 TO mtrentt STOR $(blnks,1,8) TO mtflag STOR $(blnks,1,35) TO mtnotes STOR mbupdate TO mtupdate * setup gets to read data @ 3,10 GET mtenant @ 3,59 SAY mbcode @ 3,61 GET mtcode PICTURE '999' @ 4,10 GET mtunit @ 4,36 SAY mbaddr @ 5,10 GET mtcontac @ 5,59 GET mtphone PICTURE '(999)999-9999' @ 6,36 GET malt PICTURE '!' @ 7,10 GET maltad @ 8,10 GET maltcty @ 10,10 GET mttype PICTURE '!' @ 10,36 GET mtrentpc @ 10,59 GET mtfirst PICTURE '99/99/99' @ 11,10 GET mtrenpcr @ 11,59 GET mtexpir PICTURE '99/99/99' @ 12,10 GET mtsec @ 12,36 GET mtsecb @ 12,59 GET mtlate PICTURE '99' @ 13,10 GET mtrent @ 13,36 GET mtlatec @ 13,59 GET mtaddl @ 14,10 GET mtren11,10 GET mtrenpcr READ OTHE STOR f TO an:error ENDC ENDD while an:error ENDI error * give them another chance SET COLON ON STOR 'N' TO command @ 20,00 @ 21,00 @ 22,00 @ 20,15 SAY 'Are there any more changes ? ' @ 20,48 GET command picture '!' READ SET COLON OFF IF command = 'Y' @ 0,00 @ 0,26 SAY mode @ 3,10 GET mtenant @ 3,59 SAY mbcode @ 3,61 GET mtcode PICTURE '999' @ 4,10 GET mtunit @ 4,36 SAY mbaddr @ 5,10 GET mtcontac @ 5,59 GET mtphone PICTURE '(999)999-9999' @ 6,36 GET malt PICTURE '!' @ 7,10 GET maltad @ 8,10 GET maltcty @ 10,10 GET mttype PICTURE '!' @ 10,36 GET mtrentpc @ 10,59 GET mtfirst PICTURE '99/99/99' @ 11,10 GET mtrenpcr @ 11,59 GET mtexpir PICTURE '99/99/99' @ 12,10 GET mtsec @ 12,36 GET mtsecb @ 12,59 GET mtlate PICTURE '99' @ 13,10 GET mtrent @ 13,36 GET mtlatec @ 13,59 GET mtaddl @ 14,10 GET mtrente @ 14,36te @ 14,36 GET mtrentm @ 15,10 GET mtrentd @ 15,36 GET mtrentp PICTURE '99/99/99' @ 15,59 GET mtrentp @ 16,10 GET mtrenty @ 16,36 GET mtflag PICTURE '99/99/99' @ 16,59 GET mtrentt @ 18,10 GET mtnotes @ 18,61 GET mtupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 22,00 @ 20, 7 SAY prompt1 @ 21, 7 SAY prompt2 READ CLEA GETS * test if there is a bad field validation IF mtenant <> ' ' * validation DO CASE CASE mtcode = ' ' STOR t TO error CASE .NOT.(malt = 'Y' .OR. malt = 'N') STOR t TO error CASE .NOT.(mttype = 'R'.OR.mttype='P'.OR. mttype='O') STOR t TO error CASE (mttype = 'P'.OR. mttype = 'O') .AND.(.NOT.(mtrentpc >0.AND. mtrenpcr >0)) STOR t TO error OTHE STOR f TO error ENDC * if test for error was true then fix the fields that need fixing IF error * erase the lines to be used for prompts @ 00,00 @ 20,00 @ 21,00 @ 22,00 * tell them to correct it @ 0,18 SAY 'Please Correct the Indicated Data' * keep looping unt GET mtrentm @ 15,10 GET mtrentd @ 15,36 GET mtrentp PICTURE '99/99/99' @ 15,59 GET mtrentp @ 16,10 GET mtrenty @ 16,36 GET mtflag PICTURE '99/99/99' @ 16,59 GET mtrentt @ 18,10 GET mtnotes @ 18,61 GET mtupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 22,00 * let user enter data READ CLEA GETS ENDI command = 'Y' * put data in file APPE BLANK STOR mbcode + mtcode TO mbcod1 REPL tenant WITH mtenant, bcode WITH mbcod1, tunit WITH mtunit REPL baddr WITH mbaddr, tcontac WITH mtcontac, tphone WITH mtphone REPL alt WITH malt, altad WITH maltad, altcty WITH maltcty REPL ttype WITH mttype, texpir WITH mtexpir REPL trentpc WITH mtrentpc, trentpcr WITH mtrenpcr REPL tfirst WITH mtfirst, tsec WITH mtsec, tsecb WITH mtsecb REPL tlate WITH mtlate, trent WITH mtrent, tlatec WITH mtlatec REPL taddl WITH mtaddl, trente WITH mtrente, trentm WITH mtrentm REPL trentd WITH mtrentd, trentpd WITH mtrentpd, trentp WITH mtrentp REPL trenty WITH mil all fields are fixed STOR t to an:error DO WHIL an:error DO CASE CASE mtcode = ' ' @ 20,00 @ 20,15 SAY 'Must have a tenant code ' @ 03,61 GET mtcode PICTURE '999' READ CASE .NOT.(malt = 'Y' .OR. malt = 'N') @ 20,00 @ 20,15 SAY "Must answer 'Y' or 'N' to alternate address" @ 06,36 GET malt PICTURE '!' READ CASE .NOT.(mttype = 'R'.OR.mttype='P'.OR. mttype='O') @ 20,00 @ 21,00 @ 20,05 SAY "Type must be 'R' for Regular, 'P' for Percentage which uses the higher of" @ 21,05 SAY "the percentage or the base rent or 'O' for Overage plus base rent" @ 10,10 GET mttype PICTURE '!' READ CASE (mttype = 'P'.OR. mttype = 'O').AND.(.NOT.(mtrentpc>0.AND. mtrenpcr> 0)) @ 20,00 @ 21,00 @ 20,05 SAY 'If a percentage or overage lease, you must state the percentage' @ 21,05 SAY 'AND the base for calculating the percentage rent' @ 10,36 GET mtrentpc @ trenty, trentt WITH mtrentt, tflag WITH mtflag REPL tnotes WITH mtnotes,tupdate WITH mtupdate STOR t TO more ELSE * get ready to stop the loop STOR f TO more ENDI mtenant <> ' ' STOR t TO first ENDD WHILE more SET COLON ON STOR 'Y' TO command ERAS TEXT The newly added information is in the database - but will not show up on screen until the records are reindexed............ and reindexing may take a few minutes. Moreover, if you want to add tenants to another building, you should not index until that is done. In any event, you can reindex at any time. There is an option to reindex on the Maintenance menu. ENDT @ 15,10 SAY "Do you wish to REINDEX now (Y/N) ?" @ 15,44 GET command PICTURE '!' READ CLEA GETS DO WHIL @(command, 'NY') = 0 @ 15,10 SAY "Do you wish to REINDEX now ?" @ 15,44 GET command PICTURE '!' READ CLEA GETS ENDD DO CASE CASE command = 'Y' * restore original index and reindex * s "Type:" @ 7,44 SAY "Number of Units:" @ 9, 0 SAY "Acquired:" @ 9,45 SAY "Purchase Price:" @ 11,28 SAY "Send Rental Payments To:" @ 12,00 SAY "Company:" @ 12,54 SAY "Phone:" @ 13,01 SAY "Street:" @ 14,03 SAY "City:" @ 15,00 SAY "Chks To:" @ 17,02 SAY "Notes:" @ 18,52 SAY "Updated:" @ 19, 0 SAY " -------------------------------------------------" @ 19,50 SAY "-----------------------------" @ 20, 4 SAY prompt1 @ 21, 4 SAY prompt2 @ 3,10 GET mbaddr @ 3,61 GET mbcode PICTURE '99' @ 4,10 GET mbcity @ 4,44 GET mbst PICTURE '!!' @ 4,61 GET mbzip PICTURE '99999' @ 6,10 GET mbmgr @ 6,61 GET mbphone PICTURE '(999)999-9999' @ 7,10 GET mbtype @ 7,61 GET mbunit @ 9,10 GET mbacq PICTURE '99/99/99' @ 9,61 GET mbprice @ 12,10 GET mremit @ 12,61 GET mphone @ 13,10 GET mremitad @ 14,10 GET mremitc @ 15,10 GET mchecks @ 17,10 GET mbnotes @ 18,61 GET mbupdate PICTURE '99/99/99' READ CLEA GETS * test if there is a bad field validation DO CASE CASE mbcode = ' ' * no building code STOR t TO ince it takes time, tell them ERAS @ 02,00 SAY 'Files are now being reindexed. ' @ 03,00 SAY 'Please be patient as this will take a few minutes.' @ 04,00 SAY 'I will keep you posted as I go along' @ 05,00 SAY ' ' *index transitional part in secondary database STOR chr(peek(063)) to dr SET ECHO ON SET TALK ON SELE SECONDARY USE &dr.:TENANT INDEX &dr.:codea INDE on bcode to &dr.:codea SET ECHO OFF SET TALK OFF STOR f TO more STOR t TO first STOR ' ' TO choice CASE command = 'N' STOR f TO more ENDC STOR chr(peek(063)) to dr SELE PRIMARY USE &dr.:build INDEX &dr.:code SET INTENSITY OFF STOR ' ' TO choice STOR t TO first * DATE 07/20/84 17:58 * edit.cmd * this program will edit the current record STOR CHR(PEEK (063)) TO dr * if deleted it canerror OTHE STOR f TO error ENDC * if test for error was true then fix the fields that need fixing IF error * erase the lines to be used for prompts @ 00,00 @ 20,00 @ 21,00 * tell them to correct it @ 0,18 SAY 'Please Correct the Indicated Data' * keep looping until all fields are fixed STOR t to an:error DO WHIL an:error DO CASE CASE mbcode = ' ' @ 20,15 SAY 'Must have a building code ' @ 03,61 GET mbcode PICTURE '99' READ OTHE STOR f TO an:error ENDC ENDD while an:error ENDI error STOR 'N' TO command @ 20,00 @ 21,00 @ 20,15 SAY 'Are there any more changes ? ' @ 20,48 GET command picture '!' READ IF command = 'Y' @ 0,00 @ 3,10 GET mbaddr @ 3,61 GET mbcode PICTURE '99' @ 4,10 GET mbcity @ 4,44 GET mbst PICTURE '!!' @ 4,61 GET mbzip PICTURE '99999' @ 6,10 GET mbmgr @ 6,61 GET mbphone PICTURE '(999)999-9999' @ 7,10 GET mbtype @ 7,61 GET mbunit @ 9,10 GET mbacq PICTURE '99/99/99' t be edited so RECA * store field variables into mem variables for editing STOR baddr TO mbaddr STOR bcode TO mbcode STOR $(bcity,1,20) TO mbcity STOR $(bcity,21,2) TO mbst STOR $(bcity,23,5) TO mbzip STOR $(bdata,1,25) TO mbmgr STOR $(bdata,26,13) TO mbphone STOR $(bdata,39,2) TO mbtype STOR $(bdata,41,3) TO mbunit STOR $(bdata,44,8) TO mbacq STOR bprice TO mbprice STOR remit TO mremit STOR phone TO mphone STOR remitad TO mremitad STOR remitc TO mremitc STOR checks TO mchecks STOR bnotes TO mbnotes STOR bupdate TO mbupdate * set up screen and prompt for editing ERAS STOR 'Edit Building Data' TO mode STOR 'Enter the new or corrected information' TO prompt1 STOR "Control 'Q' to end edit session" TO prompt2 @ 0,26 SAY mode @ 1, 0 SAY " -------------------------------------------------" @ 1,50 SAY "-----------------------------" @ 3, 1 SAY "Address:" @ 3,55 SAY "Code:" @ 4, 4 SAY "City:" @ 4,37 SAY "State:" @ 4,56 SAY "Zip:" @ 6, 1 SAY "Manager:" @ 6,54 SAY "Phone:" @ 7, 4 SAY@ 9,61 GET mbprice @ 12,10 GET mremit @ 12,61 GET mphone @ 13,10 GET mremitad @ 14,10 GET mremitc @ 15,10 GET mchecks @ 17,10 GET mbnotes @ 18,61 GET mbupdate PICTURE '99/99/99' @ 20,00 @ 21,00 @ 20,04 SAY prompt1 @ 21,04 SAY prompt2 * let user enter data READ CLEA GETS ENDI command = 'Y' REPL baddr WITH mbaddr, bcode WITH mbcode REPL bcity WITH mbcity + mbst + mbzip REPL bdata WITH mbmgr + mbphone + mbtype + mbunit + mbacq REPL bprice WITH mbprice, remit WITH mremit, phone WITH mphone REPL remitad WITH mremitad, remitc WITH mremitc,checks WITH mchecks, bnotes WITH mbnotes * ask if an automatic update of the date is wanted IF $(DATE(),1,2) <> '00' STOR 'Y' TO command @ 20,00 @ 21,00 @ 20,12 SAY 'Do You wish to UpDate to Todays Date (Y/N) ?' @ 20,57 GET command PICTURE '!' READ IF command = 'Y' REPL bupdate WITH DATE() ELSE REPL bupdate WITH mbupdate ENDI $(date) ENDI command = 'Y' RELE ALL * restore original memory STOR '?' TO command STOR t TO 1,3) @ 9,10 SAY $(bdata,44,8) @ 9,61 SAY bprice USING '$99,999,999.99' @ 12,10 SAY remit @ 12,61 SAY phone @ 13,10 SAY remitad @ 14,10 SAY remitc @ 15,10 SAY checks @ 17,10 SAY bnotes @ 18,61 SAY bupdate @ 22,41 SAY "WHAT NEXT ?" @ 22,60 GET command PICTURE '!' READ * perform selected function DO CASE CASE command = 'A' DO ADD.bld CASE (command = 'B' .OR. command = ',' ) * move backwards one record SKIP -1 CASE command = 'D' * switch the current record from deleted to recalled IF * RECA ELSE DELE ENDI * CASE command = 'E' SET console OFF RECA STOR # TO rec:number SET INDEX TO IF rec:number=0 GO 1 ELSE GO rec:number ENDI rec:number=0 SET console ON RELE rec:number DO EDIT.bld CASE (command = 'F' .OR. command = '.' ) * move forward one record SKIP CASE (command = 'H' .OR. command = '?' ) * display a screen full of instructions STOR t TO first ERAS TEXT M A I N B U I L D I N G M Emore STOR t TO first RETU * DATE 08/26/84 16:11 * main command program of database IF moveit REST from move additive FIND &linker RELE linker STOR t TO keepitup STOR f TO moveit ENDI * set up screen STOR t TO first * set up the loop DO WHIL t * if first time this trip IF first ERAS STOR 'dd, ackward, elete/Recall, dit, orward, elp' TO prompt1 STOR '

rint' TO prompt2 STOR 'o to tenant search menu or uit searching' TO prompt3 STOR '?' TO command * find out if the current record is marked for deletion IF * STOR 'Deleted' TO deleted ELSE STOR ' ' TO deleted ENDI * * show the current record, and find out what to do next @ 0, 0 SAY deleted @ 3,10 SAY baddr @ 10,20 SAY 'SELECT FIELD NUMBER ' @ 12,20 SAY 'ENTER SEARCH DATA ' @ 14,0 SAY ' 1. Address 2. Code 3. City 4. State 5. Zip ' @ 15,0 SAY ' 6. Manager 7. Phone 8. Type 9. # Units 10. Acquired ' @ 16,0 SAY '11. Rent Co. 12. Phone 13. Street 14. City 15. Checks ' @ 17,0 SAY '16. Notes 17. Updated ' STOR ' ' TO EVAR DO WHIL VAL(EVAR) < 1 .OR. VAL(EVAR) > 17 @ 10,20 SAY 'SELECT FIELD NUMBER ' GET EVAR PICTURE '99' READ ENDD STOR ' ' TO EPART @ 12,20 SAY 'ENTER SEARCH DATA ' GET EPART READ IF VAL(EVAR) = 1 STOR 'BADDR' TO PARTFIELD ENDI IF VAL(EVAR) = 2 STOR 'BCODE' TO PARTFIELD ENDI IF VAL(EVAR) = 3 STOR 'BCITY' TO PARTFIELD ENDI IF VAL(EVAR) = 4 STOR 'BCITY' TO PARTFIELD ENDI IF VAL(EVAR) = 5 STOR 'BCITY' TO PARTFIELD ENDI IF VAL(EVAR) = 6 STOR 'BDATA' TO PARTFIELD ENDI IF VAL(EVAR) = 7 STOR 'BDATA' TO PARTFIELD ENDI IF VAL(EVAR) = 8 STOR 'BDATA' TO PARTFIELD SAY $(bdata,1,25) @ 6,61 SAY $(bdata,26,13) @ 7,10 SAY $(bdata,39,2) @ 7,61 SAY $(bdata,41,3) @ 9,10 SAY $(bdata,44,8) @ 9,61 SAY bprice USING '$99,999,999.99' @ 12,10 SAY remit @ 12,61 SAY phone @ 13,10 SAY remitad @ 14,10 SAY remitc @ 15,10 SAY checks @ 17,10 SAY bnotes @ 18,61 SAY bupdate STOR ' ' TO EOPTION @ 21,7 SAY 'N (NEXT), S (SELECT), R (RETURN)' DO WHIL EOPTION <> 'N' .AND. EOPTION <> 'S' .AND. EOPTION <> 'R' @ 21,40 GET EOPTION PICTURE '!' READ ENDD ENDD RELE PARTSRCH RELE EMETH, EOPTION, EPART, FILESRCH, LASTREC, FIRSTREC RELE PARTFIELD, FIRSTLOOP, EKEYOPT, INCREMENT STOR t TO first STOR CHR(PEEK(063)) TO dr STOR TRIM(BCODE) TO name SET INDEX TO &dr.:code FIND &name RETU  ENDI IF VAL(EVAR) = 9 STOR 'BDATA' TO PARTFIELD ENDI IF VAL(EVAR) = 10 STOR 'BDATA' TO PARTFIELD ENDI IF VAL(EVAR) = 11 STOR 'REMIT' TO PARTFIELD ENDI IF VAL(EVAR) = 12 STOR 'PHONE' TO PARTFIELD ENDI IF VAL(EVAR) = 13 STOR 'REMITAD' TO PARTFIELD ENDI IF VAL(EVAR) = 14 STOR 'REMITC' TO PARTFIELD ENDI IF VAL(EVAR) = 15 STOR 'CHECKS' TO PARTFIELD ENDI IF VAL(EVAR) = 16 STOR 'BNOTES' TO PARTFIELD ENDI IF VAL(EVAR) = 17 STOR 'BUPDATE' TO PARTFIELD ENDI STOR TRIM(EPART) TO EPART RELE EVAR GO BOTTOM STOR # TO LASTREC GO TOP STOR 0 TO RECNO STOR T TO PARTSRCH STOR ' ' TO EOPTION STOR T TO FIRSTLOOP DO WHIL PARTSRCH IF EOPTION = 'S' STOR # TO RECNO STOR F TO PARTSRCH LOOP ENDI IF EOPTION = 'R' STOR 0 TO RECNO STOR F TO PARTSRCH LOOP ENDI IF RECNO = LASTREC STOR 'R' TO EOPTION LOOP ENDI IF FIRSTLOOP LOCA FOR !(EPART) $ !(&PARTFIELD) ENDI IF .NOT.FIRSTLOOP CONT ENDI STOR F TO FIRSTLOOP STOR # TO RECNO IF # = LASTREC . -20MAY86 -READ ME ^ADIR COM`ADIR IQF&% TOPIC: ADIR.COM FOR USE WITH .ARC LIBRARY FILES THIS PROGRAM ONLY RUNS ON A Z-80 COMPUTER. IT IS SLIGHTLY UNDER 4k. Note to RCPM Sysops - this ADIR.COM file is ready to run on your system with no further changes needed. It is a modified UNARC10 program (Bob Freed, author) which works in a similar manner on .ARC library files to that of LDIR.COM on .LBR library files. B>ADIR RAMA ; Shows contents of RAMA.ARC file It has the added capability of display any member text files: B>ADIR RAMA RAM.DOC ; Displays the RAM.DOC member file Unlike UNARC10, it will not allow extraction of files to your disk, a no-no for remote users. - Irv Hoff W6FFC 20 May 1986 AND.(.NOT. EPART $ &PARTFIELD) STOR 'R' TO EOPTION LOOP ENDI ERAS @ 0,26 SAY "Detailed Building Search Mode" @ 1,0 SAY " -------------------------------------------------" @ 1,50 SAY "----------------------------" @ 3,1 SAY 'Address: Code:' @ 4,4 SAY 'City: State: Zip:' @ 6,1 SAY 'Manager: Phone:' @ 7,4 SAY 'Type: Number of Units:' @ 9,0 SAY 'Acquired: Purchase Price:' @ 11,28 SAY "Send Rental Payments To:" @ 12,00 SAY "Company:" @ 12,54 SAY "Phone:" @ 13,01 SAY "Street:" @ 14,03 SAY "City:" @ 15,00 SAY "Chks To:" @ 16,2 SAY 'Notes:' @ 18,52 SAY 'Updated:' @ 19,0 SAY ' ------------------------------------------------------------------------------' @ 3,10 SAY baddr @ 3,61 SAY bcode @ 4,10 SAY $(bcity,1,20) @ 4,44 SAY $(bcity,21,2) @ 4,61 SAY $(bcity,23,5) @ 6,10COMCMDEXEOBJOV?REL?RLINTSYSBADLBRARC?Q?UNARC 1.0 03 May 86 Archive File Extractor for Z80 CP/M Systems Usage: UNARC arcfile [afn] First parameter (required) specifies an archive file (default filetype .ARC). Second parameter (optional) selects the file to display. Examples: B>ADIR SAVE ; List all files in SAVE.ARC B>ADIR SAVE READ.ME ; Display the file READ.ME Copyright (C) 1986 by Robert A. Freed. All Rights Reserved.><s  sad1͕>! e v iv(  !N ͢*| 9 (8=I (:1ɯ2,24   8:!2> ͊  ͅ :l¤:m ʩ>2l> !l bk6? !e !!]G( (! ͠ w=2!\:X 8@ (2, ͅ : ###~<2\>5><< Í!~5 #+w7*,̈"~E\ Êx {jaj8!w<zw\$*}8"}!͊!|4 v!valid archive file formatUnexpected end of archive fileNo matching file(s) in archiveInvalid archive file driveInvalid output driveArchive File = FILENAME.ARCOutput Drive = A:Invalid file name for typeoutCannot extract file (need newer version of UNARC?)Overwrite existing output file (y/n)? Disk fullDirectory fullCannot close output fileIncompatible crunched file formatTypeout line limit exceededWarning: Extracted file has incorrect CRClength???JanFebMarAprMayJunJulAugSepOctNovDecUnpacked Packed SqueezedCrunchedUnknown!Name Length Disk Stowage Ver Stored Saved Date Time CRC ============ ======= ==== ======== === ======= ===== ========= ====== ==== ==== ======= ==== ======= === Total vADIR.INFY  !"#$%&'()*+,-./0123o456789:;<=>?@AB!! (!8 >_j . x8> w~#?(#e :!(R=!s Ҋ_A2  r ѻ_!|̓}90yOq%w$, ( !?((# Ê! >?:G:  Ҋo& ~̓!wO#:w: :(80w 6E=(͍ J(_u {j Y==8ʊ24:0L ( ]8 /  ]0A :4*RĖ !N xĖ 0!46GÊ ^]O](zW]  ٯo? \87&0$$~$F /  _!uT](O!_>U((8!!!/ ] `Šgo"/!> ! " "SX2C ůͰ<  8 #~ ~ `i~8 rW+~s_##~+Ͱ#~ %( $~rW+~s_# *d#"+s#r#w}- |%( ( 4T])!5#~#F!?(F<82|=!6 +w+~(6GG\!,!"!\X 7lgxG ob ,L}Z8 90)))))lo& T])))))))))))|g~C) ^#Vz eˤ~(#r+s\_!8+~g\2gjjjjCDEFGHIJKLMNOPQRSTUVWX79U+Tw}Wo_y=/O=ȫ5oN˟V8yo>L7.JaPKv8by q>O)Ϯd{onUo( ˫7OȳuU}Rb/;%bu|rO*ZZ0F *.ckCcccCG >y/ (Oo|&$fo:*oR(DM*B"0*+"h :4(3bk 6#} ( ͋ ͋ !E==.ÊV<!=8 |  x (8 0u J!4(:  Ê!-Oe Z*|#"̅ !V !V ! c ͠ ͳ  : c _ ͕ '![  [  c  6͍ > | > _u u | ͍   (w#>. (*:?lg:=_/_T*" 6k#a !:8 ( ( 8  N `i)jJ)j)j)jJ)j)jN x( >e=RB0 6%#: 6 #*)))| 8O! 6 #?P0h*|a( 8p > ))) 6:#?͐ w#a [ Sro z'`w#   ^#V#~#f_W_ 7* 0w#0| ٱ(w#z(2 |8e.)8,^#V#N#Fw# q#a{Z80 CPU required UNARC aborted!$CP/M version 2 or higher requiredNot enough memoryAmbiguous archive file nameCannot find archive fileInPXC0# BYT"V Tl(|_9Wus9WCa܉N3E\!XXH%X5\BQգ 83ZpIN&aF$XRI# +^5jC)tg!TJqK}WP R//J*2R%,JuKX9()Ѱ䃾(K5(%ZuX董X# 1cTua-0UvPC^=a:TjzfY[‚ȁ0Kj`;D23z >xH¼-%,59Qc1cn DNϐ|Գ`XX ;K. +X! f8D %g.R8 * x pI( ci6Fª(0U*\f9G3zj+٣f30eyERR._#.VyJh $LY^zA׬=ȳulg}dVѪ΀K”jQKK|s<[ghWyJh $LY^zA׬=ȳuU=ZaF:. SW^PD!,|$Z}a03IѪ\ȱA;&R %Yq,Y*af( \+t 0hJ8JryΤqScl|WG+hUg%zA}W2<[Os%{9 $XcB▂rzJ:çU=:ʂbB▂~n^f90HiB%5bjD!BkB8 ~՛'9F}K. 83A!)hAX/03ja;h|^=a:T5LbbA;&:" 3ZA5 `zd’?3Je rTM !B A8(9҈ZX%kp8x]=NZYLW\196DpIrIp:~՛'RrGj`’k$a^ TJv` .QY$=([v(A$d`tM(%Zup0F=RD(a(BDb3]~sg]_v*`{r#7^n$rFbˍ`{M=5VUcӛ_|lwv)yE71~(n' KT0}@U=\ݪ]yqэg)[;÷5>LPU6jI0`$VPKn$=> l/7rFl/7^n$6^n  l?>\}:=/=>FU㖢A$r, 1(ڡpv)|~7YJqK K8=rTBG7aMlʃ{.eϯvި#}WPq(%|OU~4i!m1o: ,PK ^KYv)vݼىh&HHfA  fAIM BQSUAIMINFO TXT vyAIM.BASn  !"#$%&'()*+,-./0123456789:;o<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmH;cJf; o PxhLQ5zOp1~C1hcR `heX +dJf; +Úd\p$T2a8X$̕ KK%aMr\p$T2a8X$/̕ KK%aM\p$T2a8&!6F,PV5bxIvdpp2I KK%aMrJp$T2a8X$ KK%aMJp$T2a8X$ KK%m"LB1hcR `keX2|y%٥ʰIq%٥ʰ$c%٥ʰF1aTp$T2a8& 6F,PVy@6Hi^8^m"%5*m2X*ClQq(-pP3M]*_M!,q7&ê]&˫IР]¨)N,SfA &xU@Zznh.aTQqG){ C6PKM@Z`s[HŒVupzThɬ^KYݼ3g-AMG4AףvM}/ۥl a\5ƨ2fj{.eϯv$ YXhp?P 83&R6w 5l_S|v)|~7mi03 A Ah{.eSKf%5lWyDu`aIѪ$ KB|v),i(n +n{.eϯv󆻑`;Z83sBXb4l0hg%gTj{.eϯvFGj``$t=zjRVy}/ۥͯv^Y^![dNSW:}w+aZ4l)%ᐭnw)˫&x.n~75k9nw'lǕ0 e-@SK&{wj{.eSK![dNSWM}/ۥn>+dNRb{Fe^KYݼ}Wޝ$=NP֢ eM!,F▐5lWyd,p;a:ϕ鑣S\ eM!,F▰l{.eϯv^Y^&{w*?e>aE71$4i!m1ok֞sdNOY;O[VѪ\eM!,!?e>5/ۥn~ >xY=?R(%i*|l/7^nˍ6^nHl`{l/7`{ ]9:y *%pI( V82uMI(&At.{)gf $ Hj.Ja0F%z{)0/(%]K=rTS0Z5qJ %e3'l)V1hcR *S)1m^8^m"%5*m2X*Y5qJ B%&RR ligA J( U^3 Rq)yY3&RR 7 4=oߓ(^ `0LN[46v.vl PV2J'xfcn ǗW͢p!|;R7 Vh\!c\7_q+J~xŗWK2fSzÙW Σ58~MMc2Tc0>Kxk2yE.h\MGU+QV2+MzC"gטl3Ek㖜-SWdJ1pD|%Ӈx8Fu_U8ƗW?%Wͫ1ɸJC +'09~|LW)ޝ8tY (3 gwqQLEƧf `L/1sB•7~w"$\ ɼJN >7|Ip'Wb\=Cu<ڜOQcw-L^>7|IpߝW?`=GuǥPex&A DO3(HQ))×.Z8^3 l).OaW zaVR ||W zՁu`J(9t$5=0_.Pȇ.Ի}~ O\=wM߽w gɸzLEHEzÙ@&9[R WXo8 +܏6""RaaL -]BŮp&aAC! glI?_h]RlhLÂ|~m`4[*"2ْ~lW? ^Xo8 zÙ@‚^ѸB)F5ǣsc|J 9^%Wo6񧱥~_T2!Yo8zGxÙp&@߿PCjhz-5/.Vf3@9xq5Ncp&@߿7py96jϱgqX4<%tz*zv~w[0ocKqƈ?͓+p&@߿=KT|<:Wx>& g;#jxÙ%h>u<3-jhh~m2Pu<S g;;Xj# 07ePY1 } f3aLp{(H3a^Q!0ZOv x@(2;nJ(\~wm p$ g YhHI6|V=͐7 4=㡠&3F3)T{e*}&I*fԷ:io8΄]*p # g `*Z|Np#^08Eu<_hsJMUr|sn4xÙE38Hg4N2/_ǧ$}O?6 #Ndz$xC<% g<:c2}ϙxҨob4Bf8H,rk6>,zÙwp&@(hzC ^+ *>hsJpl1 ksRlb.#&z21K%HjH 7 Я4& FksFcTL@8DO3/БԐ2I KK%3Мd^eN d-Os2>:\aO+xzr3@aM 2hkgJ(/БP^3 Re76He&RR 8m.Ld9h&RR 2ekV5ɜrxIvdC~s|~ I=إ ;HjH 7 Я4& FksFcTLsJf; oO9i@= gMτxK%9t$5~7 gzÙp&7 D*,xOMħ Uo#2 ߮ :9Q gu<cuqR U/ Ƨiw_G_+Ƨ)FhAEn7 gzÙp&7 gտb'|ZQHv]a?^n0=bLs|AX A|š^ Jf;lG+_%t$5m'DO3Է:K%Hj >5 =R KI >簦!A4CO}vBp7sXӖ z!BGRO9B= gMτxK%mނO9H= gMτxK%w|k%f3g}~<إ pI >簦;iۡ]*l#'tC= gMτx(u\12\1(Kp&R v7|k"fБԸwLp72x ".TXX`/9zg=䥏zÙwp&aAJ!TD*,2$ 9Fi^Mmz PA: OOÂ7 xXw- L*az?Ǜ#Bww19$ӂ67 V0%E&5\1!t,Ct=P]'2x8T Yo8 C{]:MP]x7Q&m6XZss\o p&vo8 `6'L<~9%&IBn7 V~@xDO3#!eX])dJf;7G g9Mɼʝ6PȞ3Zbd|už WM@g2|5DO3ȼ]*pm.LdLA*6m` )mvdp$˙D6m`e֮',kL RaAX攠^8EyN &8E<&u|LfirWՂ2ek΄3,&zB5u|\qeGm6W _GSdsunaMr\p$T2!X> kziɤL~ R !t$5$ 7 Я4& FksF#~.,,g>~wOSnБԐ2I])dJf;7G g9Mɼʝ6PȞ3Z:\aO+xzr39 m>5DO3a[;TBvI 5)J ]6,/zÙhTCDJjU^3 Re,g>m:DJjövv9rZ$̕ KK% fL.P=BGRCmXzÙhNi2 o46=g4Pr3w[ z[@4:R5ɭ+RlhL44W`YjsFK\'+ptOTX|& aO aM r.P=BGRCy@6HiM& Kp& 6m` )mvdp$˙D6m`嶭]=O 0%ۆ= g 5b|>6iO=[}-zÙp&@iㄎ^ n ~!j%x>^+}>#6)u:XwwaM\p$T2!X> kziɤL~ 4d<"3 `A8gCLjyoojy` o8TXK|b=֣ /1M 1Fc<ěMil.Pm =7B4CBGRz<,*"rRTLNq8ٛdl&1aX? tT؈3 |&L~G IXA4C3]*HjM [xÙ@Z=L26CH+z<,hAwAp>A3 k"fh&K%|I wAp5)J ]6,/zÙhhf Ni&%Y|& &RR l3w.3 5J8p8ٛdl*_}Xϫd*>aoTX|& m&u3Qz gkyLq1ӳzi$c3Ld$0ħ3 HoILK<8mR0*Z8^g RgHI6p&@Wbwb¨.4&1aX? WЁ ˙oB'oL RaA,ӻQ`4`4F*faAX1?%ğ,Hj z[=io8.s ošojgJ(:A>wA>m.LdLA|&RR 8m.Ld9htgHI67|yfZ޿Wn$u!$Hj oo za'k޺YXLsR#~ }| ;Yl]*.ȏJU{9`'S DO3 š|f!J`0iZ}>Hj07.kyc3|faMRGBi kzOБɰ&P  Jš" kzOБ(UX&iYX`a00P  zR :]څ@sNyoxᵁ9? 3 KDO3БԐ2I^\)dJf;7G g9Mɼʝ6PȞ3Z:\aO+xzr3y |y k"fvv]I 5)J ]6,/zÙhT^BDJjU^3 Re,g>m:DJjv.kyi kGʅ%٥ \XGDO3L&dc`J(]#!1]hL~ 44W7^Ȟ3paa9<|V=paMJp$T2!9Zo8 i:MXV@ {*\Ax7]3 ccXA4dR!za2v-t$5LXo8 x"3 BQLpi *lęg>ڥ w7p&7 gzÙp&7 4=oaQiwz7x^11U|~zOG:xOx<+$*3㸊o>~7cW$S_xA΄37ZJ-2_ g>wb`A8g~ww>簦簦%fn# D (GQ^~w3@K@4ov7إ 7[Hjf ჼ_A '7DO3fWMߔr{ ``)@4oznD^^y/'M l gMτx(t7eeOk"Mτx(O9 ݽ/ /q5FlO%I&Wb\o *zm@Ed-?`\7O_.PCHjxÙ / iefTYX Wm4.3Y0 `;@DO&ʔNp(ynvMo8TXj=Ly4NT!c=y^b¨.—WFWW*>- g~en՟WeU+|xe|/nn g2=Pͳp&IΖmHov3ϙxҨo)T,k*7 d%m?Rᛲw7w3M95Pͳp&IΖmHod7 PzÙ@&9[ү+*$ zÙ2ْ°]vѶTྰp&@xpA3Lr_aWTH6 gTXo8$gK vER!3O,w`o8$gKVEdp&@A3Lr0lW]-rAo8|A3Lr_aWTH3B *7 d%am}aL glI㯨l5p&IΖ귋Bn gop\PAo8$gKVEdǰp&@A3Lr0lW]-x_~ 3 꿚t+%\)T{eA3Lr y/]0bdC>w5qJ F1aTp$˙D.MFX> DO3#t$5m G &aMA4C07 xXЯU2Ž2 5g\pA AO}= g=kyL!pf*2RyrEg^ڥ ;xÙ@.4R5B*"^=wrR_/~ )m'{d9h&RR , F '5 p&] g=Mτ_c ! 4Ncxq4}K*3-t$5=B4CBGR΄8gU2DC{ 09GDx Ef nshJ(K [xÙgLJbxÙHOa ó~AT|R `{|aM >5 dؗ:p&LϏlBa#- K%.PGHjۻ~lLši`{ I`8wR5bxI2hRlJ$sW%YW˼K%[+eXR,/ɺZ[T2!R5ɭ+񒬫嶵K%[+eXR,/ɺZ^ZT2!R5ɣ+񒬫屵K%[,von$R `8w|aM >5#fu`LpMfB΄6dJf;zÙ@3>?R `8w|aM :p&LϏ g dIFsu<ǗdB<Żi2hg*K< =Z,P~\P eTB!.X*]Rl0F0kt o8hz&ǃ5Zd#30sBB5X$G V'{X(&;~f@̳|<:&yÙaݻ(X<dlo]i~뮾 V?)3ޏ6]p"3zb|YXA4,i00|  "o8=Qa#o8$gKP3򾰑7 7 d%] 9)l g'*l gl jW~OE3)l gDE .GDp&IΖvQ|SOT2Ԯ~b' yÙN yÙ@&9[/Tw7 *,OT2Ԯ~r_ _ |ª{ª{;rJQ Dp&@^1QWpj*fa "o8 F.P.@y@6Ho3',g>m0݅iZ.>ЏG@?6m"%5 \X`a00DO3wt$5Jf; o.. gMτx(HG| h\d\1p&7 gU2 ㇫x EfU jP‚,gL`.`D=0 kڥ :|H,<ʠp? a~@P%Y?io8 4ebd'ʀB> ,ӿvBpn5)J zxID6m-Lp9^sƛg4p+A,p&7 gzÙp&R `wkRAJIf Kp& m&hf Ei(&dLA|cHI6kRAJE Kp& hf NiR(p$f Ei(B.;Od z!w-"48hԅD.K%c DJj}QD=.2/ K.`D=0 k > wRlqhYإ6mn+5Q$ǥPexI. f Ei8ٛdlp$ gfbHI6kRyJb¨hxID7h~P eTB!fEfX nP eTB!l8mRK]ps7 4=w|& w-"48h|]t{i&(½ 4ˡ{e z! #|½ 4HCM"fnn#~J> . 9Xo8Qu2&~ ,Q1QRl|pK%#t$5cxÙ@ga7ۨQ?p&IΖ+WTHL@L -]D Fp&@T2ْER!Fp&@ yÙ@&9[ү_Q!0,l g*l glI'*-l gAHL -]}\-rX#3pT2ْ~ .aa#o8 Pa#o8$gKjW?Q!/ma#o8 B*l glImyÙ-63Lr_B<,l g*l glI'*d63 Fp&IΖԮ>.ږ .8yÙZ*l glI~Ed۰7 7 d%۶7 !63LrvqѶTma#o8 GKL -W6363Lrv63 Fp&IΖԮ>.ږ ywq΄LޯF7,59DP1 ]pOPš" 7 c|W0RGcTqhY=k0؂R xI >A~ pl7 kizNj 7 c|W0>3MIUc8lY)FpdJ(Ǜ~oj9c3YXQ z!3mU|~zI7ѿ{` \R xI >N8654='5Bioz4N1&pL5+{]*o]p`'DO3Dp&@e/"d/5kWdJ(Hj ,g9Th&=yÙ%>a|6W¢*>a'm6hM26;,.P7.8ށOfaMRGBc3"o8 ' TYX\AU|~<{K% t$5"o8#إ :ͱp&PYwAzÙ@¢p0ۻ3½ 48ۛCmTDݨOШ?y ʘvdC>إ :ͱMF|07 gտi2hg*9W)Fip3ϡmTD=K%m[xÙ@3>?7 n&xzU#\$s$je_'W p&lęg> o0ZdY` JJ2 *9K%mxÙp&@X7ZJ-2_0Q23'6L3 |m2&#Lp9Hg~=~jFEX}ܝ^?dytY >VfS3ªwQi x0 ޻(X]}]~Rf VmN @hHIm )mz\ e^ L"'7)T <rOhxB0*;~fO(yCY`o8 d~愖OwQ'` x&x]i>>]}]OPf VP˃|& y0wycu zv BqD.R <] '(,ς0ݦCM3'4A47 D*,J> L`Lp0 ۛC3aL&RR "3 :ywy7 D*,J> L`Lpa7 g%]Az{sp&PYwA͡6m`a..h"%52WjP IPKR |po8hz&CAp&T&&p 4i)lA΄3p& q#~W9jfQWw/qmΧͨZ1ƣsT z\ e^p&@M*k{w7 yÙp&LϏTB!]p;7 ШRr$MϙaQH]Q)TlL RaAX})0%7q=9ף9b¨.48_3n% z<^1is/ ӹJ0Q]'(/dlF. gp'FQoNsGs|I8JpC<}D3[|jټ"~@2:_?>u+Wm]i\N(&pL/3fGZ'{dlfzÙ@‚0=*x+_NWmi&U7q|{wL8z u Σ5#FNǧ9ITKi1" gߟFӼzh| U|~û|='c544 "w LxL+4?`tu\a\7;MףqrC gzÙFi#񦧣HNgLAL # gFip34a C . 5 z!ϏБ~GDp&PYwAFp&R <BGR#χ.oyÙ@ga7TB!χБa;Dp&PYwAFp&PYwA ۻLp0 Az{sK%|I<C'5\1I΄3ao8TXN_M ֛ hN+8^<ڜOQ&WXQ]'q)yY8^Rˇ9L֛d ֛ q+M4ըa<\a=GKrAz簦2J= gĒOq)yY8^aIp&*Zru= M=.2/{&̣R(عg̕R(p$8 q)yY3٥ t$5L Ra˷$šrK%;+"iYWXNO5dƖRlʰ&9d\8^2I])dYXӐRla[ k[ʅ%Y)Ú֕bxI5m.vnܶw2J*ټBKΧͨZM 6dJf;wV5 s񒬔aMJp$š.dJf;w7V^zgeX<2W./J$ K,HvdC~wc屭wvB~.7 qHϫdq0?=~Ib$W U F0cKmAw9Úi$ʅ%Y)ÚdJp$TB!@GRO9)'faM2g\8^2I KK%A|kDO3Ȱ&9d\8^2I])dJ(7Hj >5m dX2W./J$ KK%A|kDO3Ȱ&ya\8^2I^\)dJ(7Hj >5 dX<2W./J$ KK%A.|kA|k[i:|aM :wG z[@4:|V=pFw-L Ra!¢Ck w )mTVy@6O -g>mr36a]Ywa`L-*7 d%诩hzÙS=h?ħ9@h(S 8mJZ|& ugӝmºp4HzÙ ZTXo8$gK_Sф3"Ra+z<,4@hLJdxhO8z4MxO?ͱOvnX]yFip3Z> k"fpaMW]*l#'4ۻ#DO3,v.vB~;wM>, zaTWWwMoLuyw:zA26w+d 4ƈ0*w67 ЧfFƧ)z\ e^XI  4Q.!LUz^ j k)8[3Ȟ3ZBMLCJrAz5DO3xÙ͒MR?tOq5F K%:#yd\p$̣$sʅ%gE 9d\8^}Q[ʅ%gE ya\8^}QGʅ%gE R,/>(ܕbxIGH])dy֕bxIGH^\)dyѕbxI&j=֛ws~oo!Úd\p$T2aZ$sʅ%٥ʰ&9d\8^]*0 n k[ʅ%٥ʰ&ya\8^]*0 n kGʅ%٥;Ȱ&R,/.vwV5ܕbxIvd02I])dJf; ;+Ú֕bxIvd02I^\)dJf; ;+ÚѕbxIvd0wK%m/xÙalj=ѸB5ǣsXR(pz o^ w%8mRK]~'j=͐_.. qD.ʘ1cK%KMF؈3-}2&~_hTD=wk┶AJ=.2/ KwkRyJ/ 1Q7*c DO3aˏڅ6L36H]hʘgZ= gSڥ qco8mK%MˏC4m`1Qlę-%]n zv8^ +ףi2F*\Xb'ğ?YXߎm`0L`!LpEIwLg j1ᑖX`wkRA*C g R&RR[5)J 2p& &RRۉ2u ]*]~s8mr3..K> 0 `p@h# )mTr3MF̰~By@6H 76Hm"%5ZdkRAJ=.2/ Kw LAJfNhR!cdńQVw2l(yCYdLAJXu.4V?&a{eߺsO̴)~7 0 k > ; kYɂd%Úޯ>l~d۰d%5_}$+1# T2axZo8mҟb)FOBh gR(p$kJkRAJ=.2/{& g Rb1FU/NdHImLz\ e^;Lh C(HQ 76H#&RR[o85ZfwkRA*C g Rm"%3ZeV~7\f Ni2MF̰~7f Ei4sB//zÙhl)7 p$kJ[(HQ))9dLAJYo8m`@D4m"%3Rf9sB//-RkRAJL9dLAJYo8m`@D4m"%3b p$kJ<()9d (mYΜ Kp& 76Hi0 g R 6m<@L9d (m6sB//zÙhp& 76BwgER(p~a]Y߅i;úp ml%]ަ6AX|waz7a]Yo0ӻa]Y߅i~ ºp m .?By@6Ho3'76HgAhLA:C g 0MFX5)J Iq%Yo8m6AhHI6kRAJIf Kp& m"%5*HQ)5 %Yo8m MFx>, z!?@GRչ]*0<-~oDJjeԠFB%٥a6F,Pȷf Ni(&d9hwh~@4m2|y%Yo8m6mK%CxÙ@3>? j2c4ʈ~n g SB[|Np#^08Eu<_hsJMUr|sn4% go\8yF^*u|\KїT!h^n0=4NƨI?Swp&@8xNLqs".^4ͯP6N&*> *z^+/?"~ho:ڜ\'Yo8 j:z"'yxqDfqu9%N6W w-LC gWmWGUC<}=`4M0?%ğ]]!*$U$Jx7~A56dS&u|1F]*Z$ʅ%Y)ÚdJp$šK%;+Y$sʅ%Y)ÚdJpHi0 DJjAyfN%Y5)J zxID4| > dHIm (mz\ e^Ao8my'9zH8F1aTL6Jgio1Yo8mVݽ2O`IfXE`23mhsJ !faM`@v'Ú@TaM .vD'xQ549ӫjm"%u[(m2X*0 .Gq7lsdyńQb瞩 +5q7lxIp8ٛdlعg̕(&'Ab¨hskRAJIf Kp& &RR[5)J F1aTp$ g Rm"%U^3 RR/]p$ g Rm"%U^3 R.Z8^3) 6-20mzÙhޯ>m"%5Zdap5)J 3) 6-20š" n&Bš|f!A4.ieO ~77`fp߅5IDO3xÙh*QO18q,pϚ-F̰~7 J`0c3šv*[Bio8mҟӼBqPizNj|Q1Əf0{l5ZdaOf k*!$f3) rI?@V FcdL=\#bY/k w|>N86.ieO $f3) oz4N1&SpAg~"3 -;Y zD'첗RG8ǧL\#bY/dan_'p߅5T f( DO3xÙhu|\T¢i2?~" gTp&@>8`>?`O/?e{V?odL0sBcQ a?lh YEfXG waMRE3f(=DO3xÙhu|\T‚猖0F̰~7o gS^>%nvϥAE Bq YEfXwP^3 RR/]p~7o'j=DJjt$58h&RR p88mR䤸wpOd zhk g>ml)hk┶AJ彋!ZMHI6K%-t$58hwh~7n']=iI EfX/P^3 RR/]p$ g RoHI6F̰~71%> n8D:Prk2;;LA5`w fN8 a^nқA4ipyvt8ئ ̜pi~t8HA: pt8HAn(S)1m^8^Rns DO34mI |& --g>m,g>m&RR p;K/vdp{knBy@6HI p~7^'j=DJjt$58hLgm"%5ڠ G躴zf]*0Zw{_R /3}?՜=_69}|08|\p{>7A4|u0=f^~7 '~ oЃi%wK:wKQ_~s^ÏA^B4rw?>>gb=[f^r >A;HjZrVLŇۃ5Zdk┶AJ彋d9h&RR ,f-2xX7=ÏMτ`anxs {K> .L4?{K> .Li~8X7]/,ܻ0Má opA'pA !zu`ݰv'p: z A܂OfpAXӀ~„{#Ⴐ„{|&@4Ú&ܻI &ܻ77oDO3aXӀ~„{7<@GR Z ﶃ\%{ia]Yw0`]%{i~7\4K> .< n;'poDO3ЏnZEfX.3g}~<MτCA/i gm _ʝ0/4C(HF +F?ߓ(^ ``F̰~ gMτx(vp o8 qc|=&Fף1$UrO+F+jyŧ麪9)h~^6ﶃ;xÙ}Iúh~Oa4M?`uO54Z 4Aq`*WﶃxÙ]QbT Mdx1h~!V種c6hPxÙ񼚮u<#4a:zD2c2ƨbKDL>}MPo7\6/t=P9La6zx4yPCxÙ}~$hFCm DJjz XEfX @4}1K?|/A^|A}pu0XEfX3ѲtDRzzÙhYIΖԮL/7'*7lITIaL,%ah^hϫ yWmp7 z:-Tŏj}m6p? J!?̓ Nu|\T‚猖0F̰~7o gS^>%nvϥAADDITIONAL INFORMATION ON AIM: 1) COMMISSIONS (FEES) CHARGED BY BROKERS TO BUY & SELL STOCK: DO NOT include commission charges in the CONTROL VALUE column. Brokerage commissions should be deducted from the MONEY FUND account. A separate column can be made on your AIM form to keep a running tally of each commission for later reference. 2) CREDITING STOCK DIVIDENDS: Stock dividends should added to the CASH FUND as they are received. 3) CREDITING INTEREST ON MONEY FUND: Earned interest SHOULD BE INCLUDED in the CASH FUND column each month. 4) TAXES: Taxes should NOT be paid from the CASH FUND. If you must withdraw money from the money fund to pay taxes then you must also sell an equal amount of stock. DO NOT adjust the CONTROL VALUE. 5) DEPLETED CASH FUND: If you run out of money to buy stocks from CASH FUND that's good! You may add additional cash from another sourm!~!~h/%o}Vb +4Ky@=e{Oqzk Ve40@ O1 vG {V"Iv@ܡC4FBoʄ!/ x\ *COp7&/‗eÔ {-" |Ƥ(hW$G N[ a8ygH7(yP:VK +TKYdQz+0"MMe)K!*Ũ2{'ؔ "Qp,0R ʠT!{D(Fhp8xdN =Pbzs~/ +y-QBjʂfDѕz$f0luu1Fx"SCSܢ j)r }!"%r8fezORvRǮgW=:>gs\t0&3A"L"|BQ1 5RXP GvANIMATE2.CMD  &It23i H4J$B4 n@M0d2 $r Ia2LjfANs`\:!2$sydS B،b6Mb:9 Oj\HB ȴa2Su9c)*uY)e9&l X Sid2 d\ m 1mfNF ou`ariyncmvPt$Vk(@I۴G?(T-VQ UיhsIaEDUL@ADDs݁ c{ZtIY\qÛ^2N$ɉtl(2s=cH l2mReМElSyB?¥W1 >K:5GEUHPQ@UBp# .2 =N{8P;z/x%<]|o# bȐcD$7vϻsbtu HgGOixj `n!C}9bm"yUUL:`bU-PK` %URxoYzd$-!$_Mm:d2c" |R!^d,)EHPb+K noe$b]QuO㊆&+XKf*/ !m ' Դ"^AdoĽ–Z ʵ 'P ]B:qĠ@dN@-SX`I!}7Ӡr=VtW^ C%7i -leHohSjnF*(;ДBDE?,I8(bNV]4,A;!1i@)|PbCJ.j/fmH ZANIMATE CZD ]ANIMATE2CZD Ii vANIMATE.CMD $ P@A'I\C& (^18< E&#Ȁi1 &S`o4Ƞf0DZ5F`6 RC(D)sf!S6Nb-$cy * '1@aSe qa:`r c3grWӝn083y1Sps # I$(1`FS1`d:M}Vn8d hdh: ۃ9emUsͦ,ly _VtFd F`Ag .E1)pAp`qOB9~W6cyu ѵ!J\fBmbi^NcGHvp"d1p&Z c!aI=I]יoR5tkסcې`v WUBm灔:]I`!\HCQXE"AHIwE0[raZЀ1 Fmb  -cVg  E 4nFPwhK*̳bXծ6BF!db\h&1Ep_FvF8ƶ`يcxp8Mj0ͬk絭V`PcN<? YˁA!ΆV 0w`gQZ!Ijmf gFb] e2a=Y|VX?'c|9zfpW I]]Y*H ELPSOXS$SЀ=~.y'Il#8y%0q槵_H=yFf`Ur@e0  C0$ ވ!ZB0vj)}mQn-4:)- 1VF DLM.5|DhtImnĚ$+rUpEpА jh:\By7NE1qXMҚqhstGXvOɫŲ!y{yMQ?K MOwsc^ΉogƎmO/?}䄦9=Icîm۵ c+8!K'vbh炐l, W''4=mύ$;4;npX| (/tjG/_X<;ht-W;z*|rG4Z5 FkχJ;$^Q$c"<6%cǍzvZ`X.NiA4FEBo:c\h:vx<*qhҘooY5Wh:vxC%Wm_Q$0J`'7^8ci}EODc5FV57^8vZn{Oh`Fӱ NK˷*h7^84zph%;':J?K]Kh:\m/Ƙo:(ƣq+(kZXWɣqZVh48$68y4;npo: $hUF셱۾H4Ҙo`Ak.K+z2v:\m/>I\H4Dx(ƣqㅃטo:ci8o:XFy5h7σuA@i7B3pN(N[ZL4;37^8u >h4<ѵ-V'1I t|+ +7qqJjK4ZVm[cjW8ps?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmcVx׮ 7[1?eՍccx+\Y{ kQd48 !`4]p]kႮ6vH'"n?Ԣ^ԨP N0] \-_cpboE8ه+4z>glc5vH5{,.>Um\ע#8v^"(,.> iN`\Hkn2vH'"уAuP5+71Қv7v;=h:V&t^ W7^81hOݠXh7رcŬ׵rvvZ` _;bUMx#jc (F˛WnQ^ ?}9%z™;H yp@_OH|+Ay5‰ѵ0N^(+1|xBӱ Cd,UH45;ht-P uP^8c"N4V8uP^8x p;ht-[Z t3;ht-P 4tG||2>nt6Pxo|@+z"0NLV`U#y@A+cx r{1I4\~=7vlݫ:yX'8 FP}۶purBرtt$N?11Tj|XNN(˩twnhgbnb}9y] FkKcw(f 4v1}wb&<㖫P`4$HkфMw4vxLr^;6$N?}8 1׎'ӟH#:(/4{$#yx"ϕnzF>PϕnzFAy<; '#yx"ѵ(pb*HMkU>@1X>Hc)f\UpbJ<zi,L4b&U'&AT8蹗R$X$WRʅӊ[륱3ɋٵ4b&yVj"* \v*pzi,Ljv%IN w`v;脕J!Wa b^K1Z>Hc)bw-N ^; X>^<^;6vµK|GVv{\^\p㓨=;cƎ?Ǝ[ /B ^i]pbɳi- 6v$ڶnU/8Bs@%V$0 Fkaj0?<-8 y1ǁ׵)~By59^N!w{p];tʫ/O4v9GpƎ=N_kG. j {#6ccO^_hz"c5vQ;2>w;4\~ccرtjGOeI4ƜnB 8c7Ako,U驱4}:ty矌W;jU9" |P ss4vl,Q,+'ų4\~=7N^詜/_Ayx vZj;civG,h*bK˷* 1&#mUьh a<F8uP^8rf,-.]YKq)Ay̰N0] xE$gwB$HcՎb9_^f¥MU]V(?p\4rU}Nn1U/I\R$N`k.`Uc3u!Wa bdzi,LbBK1|DRjLn^!Wa b74b&y3{R$/XƔ^;VMH.r6ک-FKc)f/g7Xc5`U㔫9k$ T?X4b&9eDU kWxU%CF;诽4b&b(INq<k1;- \v*p/zi,Lfy%INYNjLJoCF;?{i,L4b&g=PuŪ.[륱3ɇ4b&gnYhCV\szi,LBK1ή3K .gtb^K1]Ic)f? A4? A4CV\sX4b& Xx/Nᇁ8`Ȋkn1s/I3sj\*.!+跽4b&yR$.[Kc)fGi,LrȾ!+^K1Y^Kc)f !+/4b&R$ >C] CV\sXZK1䪂U*J;uzi,Lby-IrUI* R辰34b&U'&ATEgDzi,Lby!I5ZĐ `74b&y5R$WZݱvpUAyķB 5R$Xk=ދ j 5QXٕ4b&g*d+1.UXAK17$.؊3|bw4b&ry#I;v^U)W!n_wUPb4b&bBK1|PD=W"LV5އ U{Ueto{i,Lqv#Iu5`.﹀U8cw,n1^K1R$uU ]pbc/I]Ic)fA:`U|P%.Sb_p*JUXBK1< ާM+.`U^7H^STWR$_^Jc)fO\HLkUPE9Qp*JU4b&y|!IfxΩ 7\p:k܇F;M.UXr&IrUI*wإUb^K1Z^Kc)f\UpbJS=tR$X$WRT|G4b&8{R${J U-6T(8Jh1^K1|Ic)f 1_w! DŨ辰3ɫ4b& U N-F饱3ɇم4b&$TP aع|(`Uc + \b^K1Hc)fSxé^K1|9R$ y N-FR$o/3w\݊*8o8R$f//IXHc)f9&nCUוv#XFK1\gqn4b&bv!I}tJ`Ucʷwv-FKc)fW+i,L NLV8^K1X^Ic)f\UpbJ;bo4b&8R$Wת`pJV5ByU]UCj1^K1]Hc)fӎ ]hx IPjJZR$_̮3Kƹ^#|b8R$X*ujD|74b&R$O PUA]NTm*QI(?h_XFK1½LX؊3\JJ'zR`-F襱3ٕ4b&yGaǮ jL;'nZ;_p!Vb^K1XR$$h h1^K1^Τ3I*81 Z}Ūn1B/I>^Jc)fY'Uk& X؊3dQo 7 S R$ofXt킚lM7Hb^K1\fXv ªiDJZm/I>\Jc)fSW=V5޲jV&^辰34b&U'&AT^$M b^K1|\^Ic)fYT:x:$ އhj1^K1|9{R$xa CjJAR$of7X;'B}"Tg<8 Q=7A!5ZZl/I^/_Jc)f\UpbJzԤ^K1&?,x|l,L||"3ohƎm4]/I>ή3K .gtb^K1]Ic)f? A4? A4CV\sX4b& Xx/vCAREACODE.MACn  !"#$%&'()*+,-./01o23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefѯzi,Lrr)InݙH &4菽4b&9{R$Mh4 Mhts/I^Ϯ3(jXR +wЮ`.LX^K1|=Jc)fNcPUαqPEh0a襱3ɇKi,LU jV5< „UX4b&9A1ł]taªw4b&|)Ip'ƽn:pHsџ{i,Lbv%IA5]"(%bXBK1\uX՘rP< A)3LK1䪂U*XBJa-FKc)f7XGӵ j !%=p74b&y5{R$?J0 ~V5Gĺ+X_XFK1rP'zR".R$oX$WRB+ϊ[륱3ɛ4b&yT+V5.qV#R$WXV;bX՘6tMV#R$_./3I*81 Z[{i,Lqy-IrUI*lxN]pw4b&|!I|ʇCBqZl> ľ׽4b&yIc)fOJ ڹ>SjlcVpI[~Kc)fi,L NLV`+ΰoB[Kc)f+i,LrUX 9!YhV5M'h<8W-FKc)f/gXdl6\m ;kTƽn:p[q[R$/3ɻj| 13'1_'/.؊3|bKc)f/f7XB+EB[Vj; NAljwl1S/I^.3ɭ8W V{/XN7?b+UcghijklmtX;-O1 )~w8ӏbs., __8X-̞g^ܶQؠ _`#rr=-Z=;2`+nbEZZl؄;zaచ"lp|Z-Ƚi+`F; wߑ5( 6#A9FKY\~mՏ j Ve#;ma'zfЏA-aFpVLPBf܏l7w8. Fd#Y|.|;7/l6 E3.r~ ;`=܁V[u+g`N X؅OlV ~b+ Uaٱe#w`+nEN[(q_s )?9@lU<}'|նm2`zw/_Wa=~V3'5X_Dם3:p~|t>ń1ˢhC>v|XE6lD|}: feaaxU{jp= 7B+N`^ls.,cZʪ@i-a#`NXz1`6N8Pza4fY4Y60-O1A){zV@*$B;h2 j03 Ka/zi8;X Z>ӗٰV'=/pdkB?آ愐G+PF X agE0/V,ٍ- >1w=Öh戝bٰ0| tgrRLÖh|GO obizniuv{v7i)fD \ qD0P0 mGA66%̔ D~nzrJ|Z9Oo醜_uV=ӫ?\ sඵ"gK|ZQ/TD PƞmkEߔ_j_VOlO͆U NX_n>S/h _jZ"(ȉL&hm_hx Zచޢ J`'D}| Zచޢgk/03_8OOoVO ia@{ Ҹfy:Hfu1v~Oizniuv{vC.Ycv zd(,9#8OH15wD o2;OvK۳i4{NE?2:OH157Z8 [u+mmss(D uPF`0| WwF:4_bFRȖ{#,l׭N[l4/oD Zd T 7B V-VzfFE)wa <`'S-$`2hD5[1`tbN:O1B+1ѪA mD:O1B~,j!yx Wl/Tm .NZ| ~A -D:O1By*j!Y5N4IUd"&UiZ0tbtb/VDiZ0D:O1Be"j!y0+`MoDBeH)ZH~XI)ZH~Sou`bŏ > mD:O1B~/j!]+A9t{6BlsD?2:OH-0rF?^ϔKhQ`V􊞝Wtf5=6%>#[ JQ`VxvbRLD plЏl7s0A+Eg3 6lyiJ[i|Kaq6 BaE V8O+FM?ht -FXVy'<4aA? ~AXj <ݞM)&ƆM?68m8fQeٔίﴍthh0PA? aӏt(l n5n"j!~SL"B%2Xk0tbtbdc&k02SL|^SL] L9U?ʜD:O1BY:O1Bfjq*s0tb;q0q0tbtbd૶flp#6N4`+y&y֯ygF|<`.'ytb$wXr_ 擉tbN:O1BV,Vn2濛H)ZH_S-$#N#c:L۝.jqU`A0tbtbd6|f 4+})j5~`A0tbtbլ6hW:W:nh5`=SLe@T;pY$b?H)ZH>S-$`2hD5[1`tbN:O1B+1ѪA mD:O1B~,j!yx Wl/Tm .NvAREACODE.COM  !"o#$%&'()*+,-./0123456789:;<=>?@ABCDEB?%s7SL|~'j!YؘN`jl06t XlYxchsЏaj0SL|]SLܲA-ŊAuЏaj_'yS-$W< VF `DЏaj/'yy\X`jQd#l?LS-$yq"(%6<`>H)ZH[I)ZH^u2XXqPW<\DֆD:O1B~-j!]+A"rc0tbtb} j k\̆?H)ZHޯI)ZH*s4XXqP?tDZEYl0tbE:O1BrAl,!g=ap)T6dUV-5g?4`gz_^x?>r_gGG?9xp8u&TPɛ~Mˠũ` ylSITP}X Bwsb y<2<`1Y,['*.Y<' ℹO9YxV*>͇˄,tF sHx`YxV*> hI4l1Y!5Mqqœ=q5#9=1 ?ɇ;r+ϼ,Frzb<+TMs<'8!ւՙx%,Frzb<+TfNp4 N.ָڈHNOgꓼxq¼c]Jկaʼn89d1Sa,p; m'#1%*Wnoӂ|Up KsA&*YĔ8GakXĔ:pBb$Dշ/5nifq͑T8-,9Wc1s—τPAZ_v'V-VP~;LS-$ׯy~XńkVH)ZH~ܿH)ZHNG6FUw!fĔ1SL j! C׉o܉j5t]M6Z58֌]P<`"j!qSL䮃ˠUnpR0tbtbj`ډGѱj\pΡjoL-תMS-$_yӠV-"V Ơb"j!n"j!9ls> .a 7`L\l4=`'y/y7kn4=`m"j!a}/j!y1˗z)Xu<]v< D:O1Be*j!t7i0Oz=SL|?K)ZHre*7xbՀtbU:O1BuB}LG XCǭcWB|YLS-$/yhAA4`j>k%N R= <`uD:O1Btb[.zhՀU֊WB|Y0SLSL, nR"g!D:O1B~-j!y!617B)0LS-$S-$t?MS-$_wyY6A5j{eLG XXAnp#>q0tbE:O1B2rqnp#>q02S˼i1҂,9Wc1Sk~\Z:9b$D?xJ| xOKk1Sk67 ɫ)QA8ݔX9'TmSPlkY[Ĕzwԝd1Szjus%T~KˠhLA j8XYڨm m&eP8Z yݯ/)C4lDCFus|lO/ ә`Ap][wS; /9xDߝFG J,މRAU>n֗4k  s f-މRA? eP-Hz9/WjSP}7-㈧ٰq(=9%+甍m֧7,Z[[7(['ҡv w'W) p 3'ϼpŕsFCAC>hsrN,7N%Z'<0dq圲PP}dq圲PP} pΉ'%M^7,^je8YLu ƨqfA07]q+,8)1m8)1 Y+NJLYVn]wr,̂ yH(Kq”agWfAy?λ߉ŕYPAc6'& Q @|lc8ƜɄ,>  ߜ''\*(صYAEGpΉڂ8a^;]sbpɬ,-Ex`A@`t O9xDXw@0\ș4(1TuHˠŔ&oA )#N95!xi<Դ NXNOS ں c(ϼpŔB r4\q09$)~}8F3& NT55,dr+:@/o:22<(2 {=ʝҝ<2 +{22=+?pU :=+>!=w#"?=:<ĩ,+:,= *F=+qN1,4O=2,=*F=~#"F=!5, () 'U ') )@ :<:=x,>=!]?G~µw#„,p, /U ,/@ #~µ~$w2'+"=>2=!"=ñ&>2=:=U - -~w#~d -~w,,͝-w͵,~Bدw#w#w#wU ~#~>-,"C=m-:>21=Ux¯x 20=*C="?= x4̓ :>"C=~w|21=m-x¯*C=-#~µ~@ w#s#r#*=s#r4͸K:?w/:<Ĩ/!<4~=Z.!]?~-!1>~-!@#]?~# . .. . -!V?p#"?=ͩ2'!5O"@ A."?=~w#~@k/~.#^#Vͩ.*= ͩ *={ĩn*F=ԃ +!"4="6=}2/=p!/!3=44!r?>͗;Z:3=8p!3=44!/!?>͗;Zʹ/*<|.:@<2[?2[?.!L/r)>a4> ST渟ʽƙT5՛mO$z4y% N8eƩ?7bmqAy4[ F/2)sZ' LSj[@\}s8( NӠL կqS"Q U,:T}xG<qx2K0 9xҹ.Se`"T9oTΌ9)GQ,,D*$oA !ٙTɻ}sA0?ÉKS t^ /A8Pq9)GoS t^ OI94XL5y-wA HLü׏[ +b)„ y,5( N&p{ *>ɇA \PM[r^5,+ZZTM|qƙH$lApㅣa, 과WN^C4 NXʂb) />Ȭ,=9/KY`*ښoN9ᅶq¼fKY|lnrb4'<'qx,IAGyu+dqkjɂ8aiub|X/T}y%Rxaz԰7b15G<φ-L7b^?)>f^?q5( [oX/T`) 0~Q ?ԉpL܌A0qq-/J6Sq_Emb) 0~RP}Xw&Fqœ,#y㔩|"|ΉrCmAp)B4l4>Lo9xpXk,vL:@<>,USER PATCH AREA ALL STRINGS MUST HAVE ZERO TERMINATOR->TOKEN1:()TOKEN2:[]TOKEN3:qbTOKEN4:C3CRTNIT:CRTXIT:CURSON:CURSOF:CLS->GOTOXY->=YB4X BYTE:XOFS BYTE: YOFS BYTE: ENHANCED ALTERNATES->TOKEN5:B1B0B3><C3C0C1TOKEN6:B3B0[]C0C3TOKEN7:遖TOKEN8:KRTNIT:B5KRTXIT:C5KURSON:B4KURSOF:C4<-END USER PATCH AREA!!!!#!!!!.!|!B!Q!o!`!M!\!z!k! :: : :[r^5, 7yOfc-! NQwV+Y s b 4SaxU,:]N]+TȻf}1'%& %DwfX(6{ ,'-.M$-y/wfX ǷTӊŭU hk,b-x~PUp)r^5,& #NWߒs2`17]17N y9xp.xB*oXS %BaD o:5X*~s"PPY7.De.` sbr4F)Tu{BQ{ Տپ2]-nBAy#w!!{ շ9|n|ĥ񱶸ՙ KjōS(cq# ?}Cˠ_E 59/Oů ǂa>wcMޙ%\sb4ĸqmdTTP}s/Ip!6 NTnk QSRAiws+bq%9G$BloH8ᒺ@ťpP.Ȼf΋0nif1Un"bAZe/?$ePrfVCA0?~Y? : ~ # _*|9 {OA ͻ{O*|U {O] Ϳ{Oͷ{O*|z {O {O*|ʖ {OÞ {O!9"*++"q !9*͘q * ÷ *++"q"**++"q1 ÷ *++"q" * *++"qI ÷ *s!9q1 !9q"!9q" e !9q" !!9q1 * qq~ * qqqʗ * #" +q͘ e *##|» * #" +!9q}* 6!9q*!w!9*q*++"!""!"* #" q":q ! }2*:q"|* * #" +q"*|K !0}2* #" +q"͵ " *|m * #" ͵ ""* #" +q"qʎ *cqqʚ !"*Í !9q++q" * * #͂ñ !9q++qq! ͫ ñ !" ! " !"!9q++qq"**Eñ !9q++qq" ""*"#""+~? / *"+""* Ϳq*bqZ *qk * *""* *"͂ñ *͘ e ñ q c d o u x s{ | e *$!"$* q"0Sq *9Rqq *$ q* #" +q"$ÿbe!{ %d }{%03d}!"6!"4*,**&q3*4##"4*4"͊A!"N|ʌ!B*2+|i!{Oq!{O!{O*2++|‹!(͗M*2+|!v!TB*4|º!"8!"8͏T*8q!"6!"4*4q͊ͣn*8+"8#!T!|Q!TBì!"*:qʬ*4q7͊t"!B%"*ql*qi*qqq?*|›!B͆A~%*"4!"6á!"!BAll myyour moves are blocked!I move.All ok? Y/N Ok, as it was...!|l*2͹ "2*2+|aWT|V!Ebq2Kq> IS͠cqS IaT|a I*2b>***4"!AB*@:qʜ*R{O!D{O!F{O*+"#|*,**&q**"*6+|**"*6|*,"*+|*,"**"͟ !L*ͧ ä!R{O*@|0!W{O8!Y{O""You have [%d] left., moving from high to low.|ʎ!B!"4åmU:qʝÎ!BYou have no more moves in this line of play.**!"*qO*#"+!" *$"$!9q"&!9q"(!9q+q*&:qG *(! rR *&+*(q}*&:qt *(!ͳqØ *&:qʎ *(! rØ *(!ͳq"(*(| !9q!9!T9qbq !T9qq !T9q"*!9P"**!V9q "!T9qq2:q|)!-͘ * +" 2*+"6-**͂!P9!9!9P"!V9q!V9q "**͂!P9!9q!9qͿq",*:qʰ:q*,*,+",#|!9q#q+q͘ * +" ð*|! !!9q* cq!9q͘ * +" !9q Rq0!03!7!9qɾ**&%"*É!"(!"å!"(!!"å!"(!5"åJåqVAVVeLePtTÃ^ *p9*""Copyright (c) 1985 by The Xochitl Sodality Wonders & Marvels CommitteeVILLIERS: At your service!LOUISA: Delighted!TORVE: Is interesting line of occurrence. Thurb!x*="!"(5!|w!"F!B*B!"H8!">*>|t̓ *D|͠!!!{O!!!{O*B|mO*@| *qL*#"+*8q.*)q|I!""!>**!"H!dB!!l."*:q²*).q:qʯ*)fq:qqq!""!p{O!!l."*:q*).q*Dq*)fq*Dqqq!!û**G*4q^*).q*&qX!"6^!"6!ûMove from? To? !T!9qQ!9q|»͟ !!4!! 9qͿq !9q|͟ !!A!!9qͿq ͟ !!M!! 9qͿq!! 9qͿq !T!|Q!TB %d to Home, Bar to %d, %d to %d,!9q!9qG!9q!9q͈*4qژ!9q"6!9q:q*2S "*!9qͿqO"5*2+|!9q"*!9qͿq"*q!"5!!9qͿq"*!9q"*q5!"*))))qcqc*))))##q*2&qq*))))##q*2Dqʗ*))))qcqqʞ*2k *&q*!9q!9qq!9q:q*2S *Dqq!9q!BH!B*F|=͟ *j*L|1!4!ͧ H͟ *hͧ %"*1Aq!"J-!Bq"~%q*D}o"Dq@B~%q*B}o"Bq*@}o"@q*L}o"Lq?"!">q!"J*(#|?"~%qB *}o"& @B@B@B@B~%q!">!"2q!"0".t"q*F}o"FqqqTQZAnRwCSBDUOP NZ!è{P(lay, R(everse, S(wap, A(rrange, N(ew, B(eep, Q(uit U(se %s dice, O(pponent, C(ount pips, Z(ero score Your pleasure? Select: myyourD!9"G@`****L|4*2bqqʻ!B*P{O!{O*R{O!{O!͜vQ"*:q‰*:qq:qʕb*|ª!"2ð!"2*2b>ë*2|«H!B=%!b>**"!b>**"**&qo*B|mO!B̓ *)"*!r"!%! *qQ͟ !*ͧ a͟ ! *ͧ !͗MË**bqʅ!"2Ë!"2**TQ"***,Q","""Is it my turn or your turn? Tossing for first turn...Double the cu8q.*)*q***6! 9q&q:""*2E"!"*qڇe*#"+K!9q*! 9q*͙Z1!"*qê*#"+Ð!"*q*#"+ð*8q.*)6#6ÿß!**!*,**!"!"*qh2*#"+*))))##q+|e*))))q*q*"'*D|ʍ!!͟ !*ͧ *""%03d**!"!"*q *#"+ô*))))##q++| *))))q!*Ϳqq*"*D|2!!͟ !@*ͧ *""%03d!9qS ))))qqn!"!"*q!9q+|–*"ã!*Ϳq"*))))qcq*))))##q!9q&qq**+"t*!9qq !9!! 9qͿqq!9qq' !!9q!9q&q@ !!9q!9qDq!9q+:qg !j !!9q++:qʀ !à !|ž !!E ͠|¸ !!E !9q+| ! !;**B| mO!9q͹ k ))))qund of introductions: LOUISA PARINI -- A young woman who gives you the uncomfortable feeling that she is even younger than she looks. In fact, she is the offspring of a clan of noted interstellar jewel thieves and con artists, on her way to a famous girl's finishing school on Nashua. She has larceny in her soul, but she is on holiday. Do not underestimate her. (But you will, of course. You must.) ANTHONY VILLIERS -- A mysterious young fop with impeccable manners, and (you notice) an even more impeccable dueling saber at his side. There is something between Louisa and him. His conversation is light, witty and just slightly cynical, but you are not wrong to conclude that this is someone you can trust. TORVE THE TROG -- This blue-eyed, golden-furred entity is a member of the most dangerous and unpredictable race in the galaxy (aside from humans). You are amazed that this one is allowed to travel. (In fact, Torve's papers were forged by a member of Louisa's family and procured for him by Viq!!"!!"!9q|+!!"A!!9qqA!!"!5"B!9q+|a!!6"{Oi!!8"{O!<"{O*Û!!A"{Oì!!C"{Oì!!N"{Oì!ì!qw!!!**q"!9q!*.*".!*0*"0!!q!!t"!]"B!9!͜v}!9q|"!!"2"!">B@"3IYou win! a Gammon! a Backgammon!Hit ESC to resume play!'!!'͝B!5!͟ !"*0*.ͧ SCORE: You %d, Me %d****̓ *N"*>"*."*"!!!͏C!!!͏C!J$! J$!! !#{O!K! !#{O*qc#!"B"Rl#!K"B"R!"0"P!""@*"N*">*".*""""" Gammon IV concept & text graphic rendition by David C. OshelMidSummer's Day, June 21, 1985To Whomever Destroys This Notice -- Nothing Shall Happen, Forever!9q"!9q"**bq%}$*#"+b$*)+*Ϳq"*))))q"*)))) *))))*))))qqq*)))) *))))*qlliers). Torve is lost in some inner rapture, emitting soft "Thurb"-like noises. (Hit any key to continue) You suggest a friendly game of backgammon, at small stakes, and your companions agree instantly. Who will be your opponent? (L, V, or T) D!9"G@`!"2*@:q.!2.B!|1.͌͠2.Type BAR or HOME, or the Number of a Point (and )*****g !!ͰM!"*~ʸ.**#"+qQ}Ö.̓ *J:q.!!0ͅP#q.!!0ͅP#qqq 0!"!0B*2S ))))qq1/!0{O!9q"0!0{O*6qI/*6+qqW/!0{O!0{O!"*q/*).q"*|™/*)fq"*|/͟ !1!*Ϳqͧ *|/͟ ! 1ͧ /͟ !1!*Ϳqͧ !"*+"#e/!(͗MÅ0!!1ͅP#|)0!9q"Å0!!1ͅP#|I0! 9q"Å0!O"*bqi0*cqqx0!"Å0!*Ϳq"*"""""HEL?You're on the Bar, so let's move that one! BAR Are you REALLY blocked? Try moving Fromqr$*!͜v"!͜vQ":q1%ͼ@%*"k%̓ !/! *;%{O! ! *;%{O * * * !" * q%ê%* #" +Ð%* )))) q* ))))q͟ !&!* Ϳqͧ ß%* ++|&*ͼH&* +|&*XH&H!" * qt&;&* #" +!&* ))))q" * ))))##q" * * * ͏C0&*qډ&!" Ï&!K" * ! !&{Ot"͠" " " %2dHOME^ !'{O!'{O!4({O!({O!({O!'{O!){O!h){O!){O!){O!O*{O!'{O!*{O!*{O!9+{O!+{O!'{O!+{O!',{O!v,{O!,{O!-{O!T-{O%!o-{O!-{OYou are a passenger in the "Orion" bound for STAR WELL, a slightly disreputable planetoid in the Flammarion Rift, where you have a scheduled layover of several hours. You enter the Casino there, desperately bored. Your attention is immediately drawn to an unusual trio. Your instinct for good company (they are playing Backgammon) leads you easily into a ro %d To HOME%dBH*!!9q))))qcqL1!9q))))qcqq2!l2B!9q{O!s2{O*P{O!{2{O*R{O!q2{O%"!*!:q«1*!:qq:qʷ1Î1!2B*!|1!9q"!*P{O1*R{O!9q"!!2{O!9q{O*!"!i2!9q))))qq;2!9q 2i2!9q))))qqc2!9q 2i2! 2 2Whose ? 1 = 2 = From 's !2v!TBͼ2:qŒ2Move a Stone From? *5!!l."#͟ !!A5!*#ͿqO *#|3!D5!!1"#!!H5Q*#|I3!L5!!1"#!!Q5Q*#|a3*2B!*#))))q"':qʄ3!V5B!!T!|Q!T!h5|Q!TB!!l."%͟ !!A5!*%ͿqO *#))))##q"+*%|4*+++|4!"%!!H5Q*%|<4*+++|/4!"%!!Q5Q*%|T4*2B!*%*#&qm4!n5B!!T!|Q*%))))q")*%))))##q*+&q¸4*%))))##q:qq5!TB*#*'+"'*+͏C*%*)#")*+͏C!@5B!)|=!"(B@*="=*=bq-=*=cqq6=<*=0!!w*="*!L>{O!͜v"=:qi=U=*=|~=!"(B@*="=*=bq=*=cqqʦ=à<*=0!!w*=",!W>{O!͜vQ"=:q==*=|=!"(B@*=q >*=qq>à<4<Û<<> MyYour roll: , using your dice: First? Second? All Ok? *?!2?v*@:qʚ>*L:qʍ>!T!>?|Q!T!F?|Q*2++|!?!"?*?|?!TB%>!"(B@ͨ; ?M ?!!E ?!"? ?q>>P>D>Q>ê>̓ !=?B!=?B!9qn?"?Your Turn: P(eek, D(ouble, Q(uit, or to Roll |<̓ !/"A! "C*qҘ?! "A!/"C*2|?*C*l?!͝B*A*l?!͝B!9q+|?*A*l?!-@{O@*C*l?!0@{O͟ !5@**ͧ *2|,@͟ !<@*,ͧ MyYour Roll> [%d] *G@!<S}L (Z@ C & E+9PDX ,j a yTlQu gE^ 8 *@#"@+*@#"@+*@!7r"@*@!7r"@*@)J@q*@)J@q5!5B*)q5!5{O!5{O!Hit ESC to resume play%dbarBARhomeHOMEWhat's the point? To? Quite easily doneEvict other stones first!"2H!"-*-q55*-#"-+ê5*-))))*-))))##!qqù5~%!","*"2"0".!"L"J"@"<":"!"B"F"DOM͐M& ̓ A"PB"R*=p9!"/*/q6a6*/#"/+G6*/))))*/))))##!qq*/))))*/))))*/))))*/)))) !qqqq*/)))) */))))!qqV6!D"3!"/*/q7%7*/#"/+ 7!*/Ϳq"1*/)))) *1)))) */))))*1))))*3qqqq*3"3*/))))6#6*1))))6#6*/))))6#6*1))))6#6*3|7*3"37!&""2!K"B"R!"T"4!"D"=%͛5!!!͏C!!!͏C!! !͏C!!!͏C!!!͏C! !!͏C!!!͏C!!!͏C!!!͏C!!!͏C!! !͏C!!!͏C!!! qq*@)J@qB g s*E!"E*EqځA@A*E#"E+&A*E))))^*E))))qq*E))))^##*E))))##qq5A"E*G!"G*GqAêA*G#"G+ÐA*G))))*G))))^qq*G))))##*G))))^##qqßA"G*|AͧB͗*|BͫB͛*|'Bͯ+B͟*|;Bͳ?Bͣ*I*:}o":*:|kB*P"I*R"P*I"RØB*<}o"<*<|ʌBB"P,B"RØBA"PB"R"I!9q+q#|ʿB! !!wÝBg !!!J͝B!!!9q{Og !!!J͝B!!!9q{O!!9qqCC!9q+LC!9q#!9q:qhC!9q:qq!9q:q‹C!9q:qq*U*S*Q*O*M*K!9qqC!9q!!9q͏C!9qqC!9!9!qq!9q))))!9qq!9q))))##!9qq!9qMC|GD!9qlCqVD!"Q\D!"Q!9q))))q"M!9q))))q"O!9qqҧD!F"SíD!F"S*qD!9q!r+:qD!F"SD!9q!r:qD!F"S!9qlC|͏C!!!͏C!!!͏C! !!͏C!!!͏C!!!͏Ca:g:::;a;^ ̓ !9qB̓ !!*d9{O͟ *f9*+Rͧ *d9{O*h9{O!"7*7q99*7#"7+9*d9{O*j9{O9*d9{O*l9{O*d9{O*l9{O*d9{O*l9{O!"7*7qP:=:*7#"7+#:*d9{O*n9{O2:*d9{O*h9{O The Peelgrunt Game of GAMMON IV%s :=================================o=================================: :: .. \/ .. \/ .. \/ ||| .. \/ .. \/ .. \/ :: :: ||| :: :: /\ .. /\ .. /\ .. ||| /\ .. /\ .. /\ .. :: *L|ʱ;*@|;!;B;!;B|<͟ !<***,ͧ The Dice will Rattle until you Roll. Now on [%d] [%d] ...ͼ@O!r#*;*9*2|M<"9";***,,Q"9***,TQ";*9"**;",D<*=*L:qʠ<"<"*ͼ@"<",4<"=!>B*2+|¼{O{O!%>{O*@:q{O!C>{O!͜v"=:q<<*= E!F"S!9qMC|!E!F"S!9q+|7E*P"U=E*R"U̓ !9q|E!"K*Q*KbqEmE*K#"K+RE*M*O*S{O!9q))))!9q)))) !qq*O'C"ObEÐF!"K!9q*KbqʐFE*K#"K+E!9q))))q*K*Qr"M*K*Qr:q9F!9q))))q"O*M*O*U{O!9q))))*Mq!9q)))) *Oq*O'C"OE"K"M"O"Q"S"U/\ \/ .. ||| *B|FmO!9qS "W!9q!!͏C*W))))q#"Y*W*Y!9q͏C*2͹ "[!9q))))##q*[&qUG!9q*[F!9q))))q+"]!9q))))q#"_!9q*]*2͏C!9q*_*2͏C*4+"4̈́ !K!!͝B!K!!͝B!K!!͝B!K!!͝B!"!" G͸G!%! !6H{O{512}!%! !RH{O BAR Ϳq"m*obqrK*mbqqʎK!"k"m"o"q*qcq£K*ocqqK!r)#"k͠!r)#"m*m*"m*k*"k*m++"m*k!r|K*k#"k+*m!r|L*m#"m+*kcq*L*qcqq6L*:qqDL*k#"k+*mcqYL*ocqqeL*:qqsL*m#"m+*o*qbqʊL*m*kbqqʖL!{K*obqʬL*k*mbqqʸL!{K*k*mSq{KLI{K{KK|L!MB͸G*)"*XHM!!UU*Q#"Q+T*Q).q"Q*Q|,UìU!"Q*QqڬULU*Q#"Q+2U*Q)fq"Q*Q|iUéU!9q*Q*Q*Q*Q!U|ʩU*Q*Q!X!AUU!*&|ʿU!!"Q*QqVU*Q#"Q+U*Q)fq"Q*Q|U|V!"Q*Qq|VV*Q#"Q+V*Q).q"R*R|9VyV!9q*Q*Q*Q*R!ZV|yV*Q*Q!X!VU!!9q bqV!9q))))q++:qʿV!9qTbqqq!9qqW!9q))))##q++:qV*cqqW!!!9qqW!!9q))))q+:qNW!9q))))##q+:qq!9qV|gW!!9q))))q++qʙW!9q))))qbqqʱW!9qTcqqʾW!W!!9q))))##q++:q*8|W*4##W*4"R*RqX!9q))))q:q!!9q"R!9q!9qͿq"R*8*4q" R* R+" R#|X*R*RͿq"R*RqoX!*R))))q|…XEX*R))))q+| X!X*R))))##q++|¾X!XEXEX!!9q!9qW|X!9q cqq!9q!9 I accept the cube.* +|6M*B|+MmO!:MB9MLIt's MY cube, dummy!!{M!M-u"w͂M͉M!}2s!}2!u!}2%uLST:w!"u!"s!"s!9qE>d £M=¡MŸM!"{!9qbqM!9qcqqM!96O#6!͜v}2}:qMͼ@M*{q N!"{:}q|+N!9q6*{eO:}q:qHN:}q:qqsN*{+"{#|pN!iO{O!9q+q#eO:}q|¨N*s|ʐNsåN*2qҢN!"(B@eO:}q:qN:}q:qqN*{+"{#|N!9q+q#!iO{ONeO!9q*{&qO!͠OeO:}qcq*O:}qbqq]O:}q͠O!9q#q+:}q}*{#"{+eO!͠OM !!!w!9q~ʟO!9q#q+q͠O{O!9q!!w*u|O!9q*w!w!9qbqO!9qqO!9q!"!"~!9qqP!"!9q#q+Pq P-P+!9qq0SqNP!9qq9RqqzP*~ q!9q#q+q"~+P**~q!"!9q*q|(QíP*#"+ËP*"!"!9q*qqP!9q*q!9q*q&qq Q Q*#"qX|"Y!9q!9qRWq!9qcqOY!9q))))##q++:qq!9q̓V|hY!!9q!9qi[|ʬY!9qbqʟY!9qcqqʩY!Y!9q))))##q+:qY!9q))))qbqq!9qcq!9qqZ!!9qcq#Z!9qRqq-Z!!9q cqJZ!9q RqqTZ!!9qcqqZ!9qRqq{Z!!!9qqړZ!!9q!r" R* R|±Z!* R|Z!9q!rbq!9q:q!9q̓V|[!9qVq [!!9q))))qcq:[!9q))))q:qq!9q bq[[!9qcqqe[!!!9q))))q+:q!!" R* RqI\ä[* R#" R+Ê[!"R*RqF\[*R#"R+ê[* R8q.*R)q|[ù[!9q*R* R8q.*R)q!\|C\*R* R8q.*R)q* RX!ù[Ù[!!"R*Rq]m\*R#"R+S\!"R*Rq]Í\*R+"R#s\*R8q.*R)q|°\Â\!9q*R*R8q.*R)q!\| ]*R*R8q.*R)q*!9! ! !!G`!!!!G`! ! !!G`! !!!G`! !!!G`àeqde e8ePeheh!9q;f!!!!! ! ! ! ͅ`!9! ! ! ! G`!!!!G`! !! ! G`! !!!G`Tfqeeef fh!9qf! ! ! ! !!!!ͅ`!9! ! ! ! G`! !!!G`! !! ! G`fqaffffh!9qWg! ! ! ! ! !! !ͅ`!9! !! ! G`! !! ! G`hgqf$g]!9q))))qbqqH]!*R!9q&qg]*R!9q&qqʂ]!9q!9qtT*,**Dq]!9qbqʶ]!9q))))q++:qqʿ]͏T!9qbq]!9q))))q++:qq]͏T*& ! "R*R|b^*R)]q"R*R+"R#*R))))qqN^^_^!]T|_^!^!*R!9q&qʋ^*R))))##q+:qqʨ^!9q))))q++qq ! "R*R|_*R)^q"R*R+"R#*R))))q+|_^_!f^̈́[|_!^!!9q*Rbq!9q*RbqR_!9q))))q+:qq!+_M\|g_!!_̈́[|x_!![M\|ʉ_!!"R!"R*Rq_ð_*R#"R+Ö_!9q*RͿq"R*R))))##q+:q_*R))))qcqq_*R#"R+å_*Rcq! "!R*!RqC`*!R͊_|8`*!R"RV_|8`!*!R+"!R# `!!9q!9q!X!9q!9q!X!"4!!"8!9q!9q!9q!9qG`!9q!9q!9q!9qG`!*%R*#R*H:q`!"#R"%R!"!!!!!!!ͅ`!9! ! ! ! G`!!!!G`! !! ! G`! !! ! G`åiqh)iAiYiqijk!9q(j! ! ! ! ! !! !ͅ`!9! ! ! ! G`! !!!G`! !! ! G`=jqiii jjk!9qèj! ! ! ! ! !! !ͅ`!9! !! ! G`! !! ! G`ùjqJjujjjk!9q k! !! !!!!!ͅ`!9! !! !G`kqjjjk! !! !!!!!ͅ`!9jkjkq$hhi@jjk ^|wkDl`|ʃkDl*,**&qʽk!Ẍ́[|ʞk!Ẅ́[|ʬk![M\|ʺkDl^|kDlT|k!Z̈́[|k![M\|kDl!WM\|k!TT| l!SYM\|l!>[̈́[|(l!ZM\|6l![M\|Dl ^|Ql:m`|]l:m*,**&qʗl!Ẍ́[|xl!Ẅ́[|ʆl![M\|ʔl:m^|ʣl:mT|l!Z̈́[|ʹl![M\|l:m!&YM\|l!RWM\|l! Ẅ́[|l!TT|H***,,Q"#R***,TQ"%R*(da*#R*%Rxa`ua*#R*%Rd`ua*#R*%Rh`uauaq(a;aNa`!9qëd!9q2b!!!!!!!!ͅ`!9!!! ! G`!!!!G`!!! ! G`!!! !G`! !!!G`Obqaaaaabd!9qb!!!!! ! ! ! ͅ`!9! ! ! ! G`!!!!G`! !! ! G`!!! ! G`cq\bbbbbd!9qÆc! ! ! ! ! !! !ͅ`!9! ! ! ! G`! ! ! !G`!!! ! G`Ûcqc;cSckcd!9qd! ! ! ! !!!!ͅ`!9! !! ! G`!!!!G`dqcccd!9qjd! !! !!!!!ͅ`!9!!!! G`wdq$dOdd! !! !!!!!ͅ`!9ddqaRbccdzd!9qg!9qÃe!!!!!!!!ͅ`m!SYM\|m!>[M\|m!ZM\|,m![M\|:m ^|Gmân`|Smân*,**&qʍm!Ẍ́[|nm!Ẅ́[||m![M\|ʊmân^|ʙmânT|m!Z̈́[|ʯm![M\|ʽmân-R:qmSqmʹRq2n!WM\|m!TT|m!SYM\|n!>[̈́[|n!ZM\|!n![M\|/nân!&YM\|@n!RWM\|Nn! Ẅ́[|\n!TT|jn!SYM\|xn!>[M\|ʆn!ZM\|ʔn![M\|ʢn*)R*'R|ʴo*N|n*,**Dqqʕo!"N!p{O*(o!p{Oo!p{Oo!p{Oooqnnn! ͗M͆A~%**")R*,"**)R",!"6!"4!"8*(po!pvÁo!pvÁo!pvÁoÁoqLoWobo!TB! "RV_ño!"N!T!p|Q!"4"8îp`|o"'R")Rîp*&|o*"*$!X͏TîpWT|Sp!ZM\|püo!YM\|püo!YM\| püo!ZM\|0püo!ZM\|@püo![M\|Ppüoîp*.q҂p!WM\|opüo![M\|püoîp*(ÝpElîp;mîpkkîpîpqpppüo... Blocked!Well, no!Thurb!I moveLet's tryMove is and now I'm blocked }xw w##w w #~+:¨x~##x@~#.ʹxxèx*x++xw#ÿx\a O!u ~_#V!$̓sr+sbk#|"x> w+ 6pw#62uuq!9qy=xʉvtx>wu<ʉv!ts w#6 w+w ~#v̓ss#r{ʉv{ *v!%u͢t#^{!!t~<ʉv6͎v!t~r{v!tN!tq}zv*tybjv>w#cv%!=tv)ͦw{=xbvx ʜv[tʜvh&{ ͎v!u~!tN#F{p+pH#v1wnt ?wqt+!9~ iw!t~bfw!cw5dw> iw6> *t w`i#q᯾—w%,!ͦw|!!9n&:cw!wɯ2\x>w!9q):\x|!tww#4!tw>2\x>2w:ss]xxIx:wOx! DMw:wIx/x !OxWrite error - Disk full $`iqðwR!9~=+xV+^+F+N "x> w+ }xw w##w w #~+:¨x~##x@~#.ʹxxèx*x++xw#ÿx\a O!u ~_#V!$̓sr+sbk#|"x> w+ }o|g}o|g}o|g|!,|}!8q8q,ɯ|$q!|}!-zdq{oq!,zuqzoq{!-|!sq|g|q}!ҕq-ɵzŸq{!-||g}oæqèq)ùq{ozg+|/g}/o~og~#fos#rN#F#xq~#~#qq`iDM!z> rS\))r = rɯ*rzq|qMD!x<>rz>CrjS\>))Kr# Sr =Crqq*+%"t%"t%"t " u " u "uy 6"s+6+cr!x͗qʤr"s!^6 F+N+r!* !fr!9~# s rO"r'r +}|+#~rr6#~#<,s>>s!dr4r6#6*dr!frl*s|)s v!:s-u" or < file.$sw*s ͗qžs! 9ͅq!"sx* _*s~+#4N s> {s> !!u͢t:s/tͻs2s_~4t It Et ! Rt t[to&!*s!w> !%u͢t} ‹t > _con:rdr:pun:lst: ڴtt_~O7[t !"# !t  Ou#wu<ʉv!ts w#6 w+w ~#v̓ss#r{ʉv{ *v!%u͢t#^{!!t~<ʉv6͎v!t~r{v!tN!tq}zv*tybjv>w#cv%!=tv)ͦw{=xbvx ʜv[tʜvh&{ ͎v!u~!tN#F{p+pH#v1wnt ?wqt+!9~ iw!t~bfw!cw5dw> iw6> *t w`i#q᯾—w%,!ͦw|!!9n&:cw!wɯ2\x>w!9q):\x|!tww#4!tw>2\x>2w:ss]xxIx:wOx! DMw:wIx/x !OxWrite error - Disk full $`iqðwR!9~=+xV+^+F+N "x> w+ }xw w##w w #~+:¨x~##x@~#.ʹxxèx*x++xw#ÿx\a O!u ~_#V!$̓sr+sbk#|"x> w+   BACKMW DQC2wBACKMW27CQM4.BACKMW27MQCbR v"BACKMW.DOCS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIoJKLMNOPQR/wgWLJgpyׇ Vo|ɝo~U"_*"4`!pIegie_YC}Ƭ#BΖΔ198@ I'Vq O9V[9;Xz/f]:*rMnDg#6g1Eoed ;10'qs^/wxdX=Px[M2f N-S'׭zN/o 8Fή K4FDȵ r5h \Sހ!vB^I 8'ߣ|&Zm_`=PB`8bѲCPd"1!ve E=B13V4,CV&@Nğ`bdt| ǭr"LQaxlJ'zX1Y$$=f,3=?-U t$=flΘ&p"\1 laEˎ2'r:gla/(<8->`pR(=a=,xV_L82F A`EA&'1HzMPF$ 7; 8'd~  adN.#[؝0kUkHc nxV[}0JGH0y tl#el8(zzs^߽8nׇ_nAr&~->`&|>ǧ{\=󗇗/;>Qkr#fRp//_~|>ǧ=~0D͇V6;Q:X0yVogʦLqF`@0E[PijDE:A}164a=,̳`Yܸ3z'ұYXv[ā!:6DL =h,ԱiĢeׇVšg]G")|q4gy{*d l1JGH)6 晲)S9;MITv%|&DHrla:?"r0?M<4GNh,=*SyxV9 D VL鄛zf1Bi,<8Q: Ngʄ2F&D ԇ8OfedhA< 8lap}z8bӀ@ S>AYCV&pVgr,ăa2 #lyTnEnu2Ph>dN0f1bp2Q:X`>cp"08)] O-0Y}'&ɼd0_Y#n'ܜp"&Eˎ2#C;ˬlEc#iA&;L1|&ZUYX#8I 18)#5a!؜1 BDF Eˮ{%zCQeL0cGEɍ'l],DH2$grP#e50->Z58Gg2&q(ɐ`RQ8!4$ʈrAQd"1$nV޷jxxy{8_=>cnj\`#ܜ&q;6'~&V[}H<ϘF0D8Jw<؝ǠNgbr-YI4i #f6'~&ϯ[mvLH2koz׭eF,Zv}@vvM^V_EBvvMϯuy!~ًo۟>o9,!++&qDzdzpxz~۟/l|a LV[}|~?ϧϧtuz:OdG88t Δ Ɂ%?C6CTUN#3 >q轱 t:*xqDky܁ O&t0PiDvvMP1Y$xӾV[fܜw/[m<19T6gLadhٵ*pƘ{<ElΘC'&p۪ MVׇgW/oVX=P tD0_Y#n 9ee6ӾջDcG(n',l9;`sNbH?c7rbĦ8Ê"A'&ESp 9a(E,4#lqj~?Zm_0Mݼ0DJgGp"EY}޷jpx8"5)0eܜC=._EӼ]H` lx#k&9(B27B<ί> ,ps^/w`ƧVd%aprM, aM܎I1I =P'tnuV?ma u,0H='lBwd&&^#->`IGcNd.0f180I?"$1c!d0't>aj0_pCqX_^,N,0~j,]Z}|=[Hv(.WOW(23S~أDYrE:]S# |q4gpX=42$-P]3' D:S8 =24<>>]8a@L~ҏI-vGN<@!B$Lyٰ'okad &2apDM#8)apDa^N}yjmpV>0Jf1b!hQ 0Jw j 0)qCX@A= ;A}'eh j cz0D]08)^Wr{~'V^ȌHcᨐ]E;x 6a@ C1E`$ȄH!z< Kg:(D'p"@NC3zϧVo1JG Ž)`OE}'ByjR-N:B3fBwQ:^K?&LQ(q,F([E_ #'>MA%E}t1,ꅡڂ.]1n0[Α ] 9eB0_Q:z/"w–F41d ET&LxQ:61/zhQ`uEˮ)ogOc4(cMI09x|d%B8KVՏOX:cَg`;Gid)I&j`gbB27r]/ N"y 8p"1Z,R NbH{\%יpyt+JR{-}~'/d2X`>cp"Lc2 #1g,Zv}huQdEwXp'$1fYc!HIHKBLuޠ|&\ PaqX4c2elKqĖ,i67X+5v$;GQh>kps^/wH)2`G(c4l#&c'BΑV(00Jf1b! N)9')0PP j;{e3ׄcѲ>qf|s*,.` jLҒPh>tYG">@=._ER[v(-;C9tz_4`2o!Q'¢e ] &~;% &qxD0_Y#->`&N[Jw,8Xa1wO_oZJw,ؒ59@PhB!bwj5poM_xz|xvgWO@,X7rpV?,`~8ҌzۿxX[mc2e|7oSzpu.#[aѲB3,8b!dqB't)UNLDH2,D%?R|!FL"qp"c2_II 3eׄL2exa|7S&q 8a0*YLC1J.Abg#BwNyґ ֈEˮV[9FLQaD CA @PGQHq$nVfʭ>#(`t&P1JG42ZVlCQ8 e6w4gr90ӓúR`ƣ!Yp9pA\-\0!MپbB wV>VTAU U CHy/gGI$2m4gr9ӵ>lBҭnq6 n Zvܰo>2Ў|oU&\z˾ڑ5t߬y&ldK`p0*M4g,לTKͭc'"R t^A{H@; )ibT1ŴE݃n=njm` Mc4aUrܹ \B @;h.9P%0WTIP5z ؝N@FIdRJ' JzPǦ33=Y(E{f2n28EHd [Vtz<ҭngiK:j+0pug=8`a9(i%Ȁ?A7[v+@DIY*@$SJ0X؃*A%Ȁ?A)[}nYc"=J"c LĖ2PT8a.a!UQҞ1Աb"d4'i R&ڧuM\v{pЧ0 S4]z ؝N,L `f>{, 83P(D, n N2VU4g줮A%Ȁ?A)AEːQ`b"ҚA[R@WW)fVmu|,>?.8HQ [@G'[UGAÎ2&qPV(c4y!UMGQ]=n"ME?B=G3yֈ&q?Wlc-F8 =2̃a=,'{,؜1a=,R:19"拣?@ABCDEFGHIJKLMNOPQRSTUVWXY6=5H:Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ >*. %P>tK/Drܹ wV:ݻr<ψ}@ȳ0`S|3 pҭn\9©2Ў;`?)iyU{8sv|uG+~cb adM@G_M M 5"-XxJ%N|/3<$ Hn:,w#P-Mޕ+A$?`-C2𰼙)'TaiX>;a=.ώ˜ov0a[!eiXcdAq"<,#M p3 a N&AHEŔK׳os;j@uday3;.#M p8M n0'N΋H,TD(:/nҰLY+gg><,qYKkFKh<,Y5xɨ-^"M)F5DӒ0»~=;.K2# r6ar2WGxɐò<{C{o-E79)/QtKN }xbXOl'|u^T4 ~e`MDA;3$qiVJG81,(#  {zsrgfd_F@?&!63r[[YQe` M 3P`P&`ziX,DQpJ2r׌37h椂ATQ*_%V%Jٙms%:x{}mڂO|溼HyFL s*tftIib[ nBӷa i{>lBÖ\D3v{y[ӟ|ϥ}+=˽r2rgn+_H;iKZVo3J;)#胄>)dNȌ"MFn fs'N΋ {8YnTIS IMTjQtxt.0WZ3ZR-z%(z!~"MF5D_`^ȮҷڛԖdZ{dS!Sioo'{c ٻ޾}{PZddˡM9Y$//,,'IWkcB*IV7dz& _M wW汅<Ӿz,˥zhwgw p~9{oҮ&a")LΏۯ ?wjWÒ YŸߏū1:Wxٍffc??qsXL'f~fg{gSZ=|KNLu4IQV%p;[_ڛś D,^ä(8v/^LԸ&EiG{^  赬amഺ}/z?|i4k0O3p=l/ծNLuul#ML żaIK4ɾnvˏ>y}훢/`R%CL tk&t. 0!ڬeB0Aj&IR3+4k1!ICY 4@;S C-4ʧ5lpm c?g&H-kal# D`6L5 C%Z?2A3Un`aPI$aꏳ~d. L u^/ Lr(88[WҫxI`Rm&ߌ/olo6ǗW%aIQFkYsuU[M{_^l-/KKTkY]Ʌ&vo67ű$L0)Jg;k]545W%aIQ?j-:/ &Eyx_]/AWL,lJ&\tM&hQƒ ;\]2ARK&\]G&hQ ;jh\"%.wX2A2 &:/}gWbgżg$^d¥Vtb:پ86̾bfb^Ξ7vn}se:1qx~?08`̄q3_fLcg&Q}qgξ}cgdŸgtjya7-vm-+vy żaI& GSwɚ@hdi1u-N2Jo'#I$z?$$߿&Sw%xP<K&S |$,trD]J GmG#! _wC]vGj5SFv{ ~6EC25{M[uWK%O)j]v5񼖩\]+k3{+s_=.](ИИt;z5^>tud*\{\{]==v;n J™է];}\\繛?"lRgvfS62߳Σg؂S 4:DbPhBh)04nGӳ8%{Ig.9c7e*>y߯;)@W$HpvtF:=A؊VsN?a v[p:R<C/8ˆ_p5/8$8=oDm Ki+Ug]^tձXc_2H>z3y⠷1_ 6A]=ALQ 7p'hl^.KG棃I=]AގI=^.~{}8%$</hf4(vK%0(ur]Ʌ&v$^&exsco6ūmLPGL  D7L0)uyI`R|uoƗWv/^֮mLHeL  D7L0)uyI`RԞūmLN;0A&hAb0(ץW%aIQEogsSڵ- RAmZAY-_2A2 &:/ L2}/z?ۡҦsw- RPi0AZed. L u^/ LR?V>?_/AWL,K&\Pw`feR2rĸ4(dj܁ EMɄZ&hQ%.w*YDd?4ydd. L u^/ &EY챘ٛM~b6+ҫ0(=3{ﯮ^]xUy1}yI`Rjbfթ=/WYї^ &E챘}َ/ծY_(:/ Lrc1=lU|}yI`R?o/fyXbu[%.m$>2J54 s1o`R0/լl8G{Uv|1_vEo׶K&hc՘J0b0T5L˓tbk żaIK/V_]~3l?@ABCDEFGHIJKLMNOPQRSTUVWXYo4CԾnvˏ?>au< ;X0߾)zEaӠۧS{v:NL'8ΊXnG{^ {_G;f|y{u`:ٍ.Xw6 }ߌ/?MawfNvvY<޺j&ߘNLc߷Xngrs4=Q7L'}88=o^vvz~ߘNL';\S[|j3?2P|+\_g+?og~X~ܯvٍjP|+-k&\;HL lr.m'^3=VkH-& C-$c&XkH-$cl#o)I=mw@-&la-j&ܡb%C6GaPA:%I嘠AyB/O_7v|1_vEoKdbkad|1 "\&=lۿ~@'7T "jb !"&hA!vLZ trCL5Z trCLtJ`!0ahbN .=V)\0NNאmD0b*eSDŽn//& 6L;/:/ L򾰯o7ݬvv1?/}1]=W%aIQfzcoҫ0(y9f1_eg{;W궰?{_^ҫ0(ݬ^n7 ;۾xw*=WW/q®mL  Y+&hQ^Lwh&S2tjȄD54 s1o`RxI|؍=WW/q϶K&hAVL żaIQ֮bW%Ҭal# "0P&dPfVG&H-kaԆ ۦ&dPfVG&H-tk&h0^04z-Y„֏LȺ 546LjȄP3AL<Ԇ 1ߢfB0ahɮ&hA2A2 &Eiբ8$^d0![LCńK~$Lj1H$<&!0ahbN 4wHd RPi0a#P)bË́P)nQ3Ak0AUALC2A$2A*P1Aԩ D7L0)JΪS- DV&h:I R:M mw@+&| mw@ da/&``0bN)aS"PkhA"P`Jd5<&t. 0rD CtJ ST 0I$aJde; C0L5bP1!& ST 0^%є Drй 6Óc:1%2 5NI„tJ1U Ӊ)5:"_ ;s 1wLiYchSU bh܁ Q mwQ& "Hc7(^ Lh CDK&hAA JvfB^"x` H}NI„g&hAA"_2.޿{` LpwL żaIK%G&eV.}gCڹ2W%K&!l "\&$#L2E?=WW/Kdd(4 s1o`Rv٫8W%K&hAJ+&KS3AR LHO-da^4 F :є D$2AL@"]]3a"ʿLa$.r&\/l38}żgv5[Wҫ0(Sߌ/o6?m"]]Qzu^&پ8}aO˲k6^Kԛb,jlo_K&h,4(Ӓ ;AYDJ&\;U>1=D 0i3A Ǫ c?g& 6L;8N&hv Z i:%Lq_cv{?? {jVv|1_vEoWEog{{mږ~Ʉq3~XL79WÒ 7Ŝ +n0ns竛qL79jƄ=#v(+:g|fmo3{_͖~Ʉq3fe72W8=Ӊ879jƄ=~~K&̿.pLx~>h+Nm_~48_caDŽ ^ ؏s&\oc 7~=3aaDŽvL8w̄& Z0bTm)^!ۈ?0a@'7Tʄq3cܯvƫ1~3j_Ck&dPf;,6O78U!dV_f&fDŽ?վ„q3_fLݣ`fҾ{g/WW՛{??%uN ab7LX mw@+&| mw@ da/&``0bN)aŸ0Wg:1ŗ5uN bË́oQ3![Lh*2![Lhouj&hvmV&\0R&hAb0(m'fKdVG&hAV˯ZAy`ObÇW%K&H-4&| 1ߢfB|˄+n0bN)al#7c(& ,Z&#l~ij&hAj 0 MA1M)$e5)" {nNLON&khv Z i:%L ǪQFNMA1M)SL%&laA˪ RAmZ 54CmvfB^-R'u*kdP#ebN)al#o)Ia; C0L5bP1I0bN)al#WL Mń&\;<9&d] FHv2sʄK~'u*L J7TL*NLʭAyBK?L0)ʷoڬrmȫ[99ΆsM۷oKK|!V$Je kҫ%CDe(04Ը.m'Nӓ[C2 &:/`RO.6UL*̐1[C2 &:/`R K&\ sfȘNLmx]9d. L u^/?2(* 6C2SskhAb0P%#L˪K93dkhAb0(m rsvż_2=Dbaa 1a Ä&h~ 10CʄK~9"R !"C "nj*$aB4vSÄoa`!e%CdAylH;TCyI 6C[Ӊ)ڬ]C2 &:/Vyag{߮jW;{??%`tbrF&khv Z i:%L ǪQFNMA1M)SL%&laA.r&\;8N&H-kal#XL aB mwzaB̷H:5i2AƫDS&hAU0s T1Aj1P0A7$LN0LhZ-j&ܡb%& tJuR&"eB|ʄ(.:&\ {nNLmwF6 5j&bj?mw@-&la-j&| ).O„P3U ӉjԬAyBK?2(X3[_ڟٍ=/- M "Ȇ1A2 &EaGX]xU/ &@w`h75L żaIQ+{ǣuU3$~ "HSyń~ij&\ ch"k PM F& k&h!e%COLh?0ahTaD|js H$˧ D!)5&„;& Mj"L K ZMA1M)$e5)kɄ [&hA*gB.r RNN [ tJvbB̷v0![LHO-&| C-4&a:14]bkal#o)IAm-_2Ao)I3da^K1=DS+kLaB̷0L5:Lwh jNL';o|=ӉI^Cԩcd. LR_.VobXK&H-:9&hAVLmD0bTm1u4a(CɄ;@}`B{CDa RNN mw@k& !"%4 ݠLmDtJ&>3A ʤNa Š mw@k& !"&hAA" "Hc7(dQ&IdkL u:e 1w&\; f>Ǹ_+&W |cŸ؏g&H-CYÄ֏LZ -j& 4U=054@6 .ԩ<0Aԩ C-MfAyVlL _2U Ӊd vv8^mfM3 l#jY b2rd BARG COMBARG DQCBARG PQS+ͫCopyright (C) 1984 BORLAND IncA Osborne 1al selected)(= ERT()~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w`ԡe¥͐n`:1i&ӰQ CnR&OvW& G&l~dP\Ȅ˒ 0>ݐLR L'4vCaR,`R,Ru K&Sq %L'&j \./ߗ/0OX25U}^3A ʤNa Š mw@k& !"&hAA" "Hc7(dQ&IdkL u:e 1w&\; f>Ǹ_+&W |cŸ؏g&H-CYÄ֏LZ -j& 4U=054@6 .ԩ<0Aԩ C-MfAyVlL _2U Ӊd vv8^mfM3 l#jY b2rd"#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2ST9^K#^C#y8w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J $Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ ( -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{# *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *e re-enter!bm#!*W&!ͽ!(*W&ͽ*S&!YNE$ŔHigh bŔValue of this bar:b!d+ ._b!d !x*\+)]T)!Z͝*Z!a!d \}o!x*\+)]T)!PCͥ}o!x*\+)]T)!P͸}o*S&!YN!x*\+)]T)!*\+)]T)͸}o}oE&!(*W&!ŔPlease re-enter!bͬ$!*W&!ͽ*T&(!Ca*T&(!Ia}o*\!ͯ}oEʰ&Ŕ More? Y/N :b!8!Ub*U&(}2U*U&Q!Na!YaEx&!P*\+)]T)!x*\+)]T)͡*S&!YNE,'!x*\+)]T)!P*\+)]T)!*\+)]T)ͼ ͡!2B!$!Z͡!$t!`͡!*\5za("b*S&!NN!x*b+)]T)!`͸}oEʹ'!x*b+)]T)!`͡*S&!YN!*b+)]T)!`͸}oE (!*b+)]T)!`͡!P*b+)]T)!ZͥEK(!P*b+)]T)!Z͡!`!f͡*b#^'!`!ͥ*S&!N! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!@Ͳâ@}2R!*R&5z- "Z!*W&*Z!Rͽ*Z#!*W&!!5zʳ "b!(!Ŕ-Span too narrow-!b!2B!N}oEʛ(!!`͡!`!͸!Z!ͥ}o*S&!YN}oE(!4}2V(!:}2V!Z!͸*S&!NN}oEE)!`˸*V& !r͡v)!Z!`ͼ ˸*V& !r͡!r!͑Eʞ)!!$͡!r!͑E)!!$͡!r!͑E)!!$͡!r!͑E*!!$͡!r!d͑E>*!d!$͡!r!2͑Ef*!2!$͡!r!͑Eʎ*!!$͡!r! ͑Eʶ*! !$͡!r!͑E*!!$͡!r!͑E+!!$͡!r!͑E.+!!$͡!r!͑E\+!!$͡!r!~L͑Eʊ+!~L!$͡!r!}L͑Eʸ+!}L!$͡!r!|L͑E+!|L!$͡!r!{p= #͑E,!{p= #!$͡!r!zp= #͑EB,!zp= #!$͡!r!yp= #͑Ep,!yp= #!$͡!r!xn(!Ŕ b!2B*b#E !Ŕ Graph title:b!q+4.b!!r!f͡ŔValue/block is now: !r!!@́ New value:b!d+ ._b!d !r!Z͝*Z!a!d \}o!r!sXQ͸}oE!!f!r͡ŔPlease re-enter!b !*W&!ͽ!ŔDefine the minimum scale value:b!d+ ._b!d !l!Z͝*Z!a!d \}oEʄ"ŔPlease re-enter!b!!*W&!ͽ!!ŔLow--high bars ? Y/N :b!8!Sb*S&(Q!Na!YaEʯ"*S&(}2SR*S&!b!Ŕ Name of bar #*\!!:b!*W&R!<b!*W&!*\+)))+ .b*S&!YNEʫ$!ŔLowest value of !*\+))) !q́ :b!d+ ._b!d !*\+)]T)!Z͝*Z!a!d \}o!*\+)]T)!P͸}o!*\+)]T)!PCͥ}oEʖ$!"*W&!ŔPleas#͑Eʞ,!xn!$͡!r!wn͑E,!wn!$͡!r!vn͑E,!vn!$͡!r!tXQ͑E(-!tXQ!$͡!$˸!r͡!Z!r ! ͙! "b*b! R"b!`*b!r !w -!r ͼ }Ek-*b!r !l͡!ŔFor changes, press:͐bŔA1: title, 2: scale factor, 3: min scale, 4: bar change, else b!8!Ub*U&Q!1!4k! aEP.!2B*U&1Rš.ʹ 02R±.! 03R.!!04R0!*\"^!"\Ŕ6Enter number of bar to be changed or added, else :b!d+ ._b!d !\!X͞*\!t*\!͇}o*X!N}oE/"m#ͬ$*\*^͇Eʕ/*^"\3'*S&!YN!r!tXQ!Z ͸}oE/: -/R!b*\*^͇*\!͛}oE0*^"\cŔ !q !q͐b*&!NEZ0R͐b!r!}L͸Eʁ0!"XÇ5zʠ8"R!b*#Â8R!b!*!R5z8"R!b*#8Ŕ@͐b*`#d1ŔJ |+++++++++|+++++++++|+++++++++|+++++++++|+++++++++|++++++++͐b!}2!ŔEnter number of bar to delete:b!d+ .b!d !`!Z͞*Z!N*`*\͇}o*`!͛}o!d o}oEt;*`*\!R5z:"b!*b+)))!*b!+)))  !*b+)]T)!*b!+)]T)͡!x*b+)]T)!x*b!+)]T)͡!P*b+)]T)!P*b!+)]T)͡*b#9*\!R"\*\!!5z^;"b!*b+))) !*b+)]T)!͡!x*b+)]T)!͡!P*b+)]T)!͡*b#:*\!͛Eq;3'À;R!b!*\!ͯE@=ŔEnter number of bar to insert:b!d+ .b!d !`!Z͞*\!"b*Z!N*`*\͇}o*`!͛}o!d o}oE1=*b*`͛E=*b!R"b!*b!+)))!*b+)))  !*b0!"XŔ b!!5z0"`!l*`!r !  ͳ R! *X@b*`#â0R͐bŔJ |+++++++++|+++++++++|+++++++++|+++++++++|+++++++++|++++++++͐b!*\5z8"`!*`+))) m}2*&!NE4*S&!YNE2!x*`+)]T)˸!r ͙!"!*`+)]T)!lͼ !r ͙"*S&!NNE3!l!}!x*`+)]T)!}}oEʻ2!x*`+)]T)!r !l!r ͼ ͙!"!"!l!͸!x*`+)]T)!}}oEK3!x*`+)]T)!r ͙!"!lxG!r ͙"!l!͑!x*`+)]T)!͸}oE3!x*`+)]T)˸!r !ͳ ͙"*}/o|/g#!l!r ͼ ͙!"*`R!́ !*`+))) *&qb!! *&R5zb4"R! b*#D4R!|b!*5zʗ4"!+)]T)!*b+)]T)͡!x*b!+)]T)!x*b+)]T)͡!P*b!+)]T)!P*b+)]T)͡,<*\!"\*\"^*`"\"m#ͬ$*^"\3'==R!bL=R!b*T&!RNE2?c!!5z="\!*\+))) !x*\+)]T)!͡!*\+)]T)!͡!P*\+)]T)!͡*\#m=Ŕ!-Graph Program- Max no of bars: !!́ --Use ^H as delete key--b!}2Wʹ !!Ŕ--Start entering bar data--͐b!}2W!"\!Y}2U*U&!YN*\!ͯ}oE>*\!"\*\!NE>ͅ""m#ͬ$Ï>3'*S&!YN!r!tXQ!Z ͸}oE/?: -! }2T3'0!"X!Ŕ;(P)rint--Ready printer (D)elete bar (I)nsert bar (R)e-do͐bŔ6(C)hanges-- or add bar (A)utoscale (S)top ?b!8!Tb*T&(Q!Aa!Ca!Da!Ia!Pa!Ra!SaE?*T&(}2T*T&SR:@!BÛ@PRN@!}2Û@RR^@M=Û@CRn@-Û@AR~@3'Û@R! b*#y4R!b!*5z4"R!Ib*#î4R͐b8*S&!YNEʂ5!x*`+)]T)˸!r ! ͙"!*`+)]T)!r !l!r ͼ ! ͙!"*S&!NNE7!l!}!x*`+)]T)!}}oE46!x*`+)]T)!r !l!r ͼ ! ͙"!"!l!͸!x*`+)]T)!}}oE6!x*`+)]T)!r ! ͙"!!l!r ! ͙R"!l!͑!x*`+)]T)!͸}oE7!x*`+)]T)˸!r ! ͙"!!lxG!r !x*`+)]T)!r ͳ ! ͙"**!!"**!!"Ŕ !*`+))) *&qb!! *&R5zS8"R! b*#58ŔbŔK**b!*$DRŽ@V9Û@IR›@́;0M=!R}2TM=B,@PRP!}2B@RRRM=V@CRC-f@ARA3'v@vUBARG.DOC|  !"#$%&'()*+,-./01or  23456789:;<=>?@ABCDS QEFGHIJKLMNOPQRSTUVWX YZ[\]^_`abcVdefghijklmnopqrXE>stuvwxyz{uNMKI@61+γ,RL NK.rqk%|c0Y|y.lM5ĭmE-H72 1}xSТ QiKVa4 KijQSSʪ 9z%,VQ^>d;7,`u x} C Ùb n1ύJ]Jp>|6㚮u~b+aJ¥j tPg| 5"JEL=*D EK3&ל'쌻1<}I $g-8/{(+K^B1mc16Γ2 a@/: 'EA=b(=DEFGHIJKLMNOPQRSTUVWXYZ[\7O̪ ]_S>pb.q҅유hOB |T1uyv:￝to;+puo(3RE1}y**e_O˧Cmά¯3Άp7Ѱ"2U]}̀E%Xb~a?F+9g8&lb̏xwf}/\(&ӫ([zg86d.Ui|Jα2kP>pWh8FHpyo}=v86kUv% ߚ/kIkIܷ+IoQ0%R5>n)])YFM^K2g(iEO^,q[%MKBwt ZI|ҿp4g r(SR|y&Q+4 =>"(iE{_ᝊtؿ{GïUa8pҿ/aNEI:+jk}U&rDyv|OJ~%34"π^ީ(I5d-%l1g r(SRm %M3};wJީ(Iʶ+/[߿ACO PLmWy,ɦУ4\Vrp3.7J҅`U).L&&Q:KRQQ[9p4-1^U_8@"(Iߨ~8^DG/ Sʸo\gJUTƍ<oEqdŅK4*7.8hTb2ߡ( -a! <޺by:qLzQcZQHĿMEKpjm(9kN-|D 4*1ͺ:x L0U[a\,jՏD3p860K{mpjѨKLBbc̴]S _(;~'sɚ0Kp'Ǵ]`9:dVزX{/$ĕ6NJʄ+j]3&1^` N1N<18,kwg9"WxdWvp `S)*p2@"kGV!0Pg}3@L@ E:yR& A/ ؂!*yrF%8qMjQ ADo<+=JJWS;{z|i6Ǘ+u"+<t5BLY@I(pҿ/x SQU[9p4\vEL"壗3|h;nmo{k6imo{k6 ƊT6OF$P$ T+.K%+$tky}t_*dl׈b.ŒI\,qt4f.\Y3fh_hƯUa8@"օ`HBL掌IfU=mf Y3`Wfw#&r3wP+R} Ț(q7c}G`E0^Cm]F$p5.w hz7"ՇںI*7*2qzTȘ 3Te5E*qθ7-LUV*$Œ=ǝΘ\?tqc%OыPg/$dx_zZEO15;'Pz K4WJ[ij86q"Ea:Ǥ~E״S/=3Z̳Ĩ6& CnlTb2!qL1P nѨdCTظTn {yj JmBoCo/hSƺC/k6p1/ zyajwwnv_w>z/7wv18i_Hn?ͣ}%^C User break1:% I/O% Run-vJ-BARG.PAS]  !"#$%&'()*+,-./0123456789:;<=>?@ABCo$*7n] kĭ<1r㺢(Y@'+fܸ k]ЌQ. &ꐸuQ0fܸ(Ț>q]QpUqW5 T} OUq?ɚ>q hƨʍ $kufܸ+,k]qUqk,kĭ?7cTu8Y$P8πfܸ IW\^1fܸr @$P+.לg@3FUn\q5 T}ˎ4cT kЌQW\k@$P+.5Uqe&O\qYtg@3FUn\qYW5 T}ˢb4cTEIW\Ś hƨʍ+.IW\Ehƨʍ+.IW\Eqy4cTEQ!kEQ*7* $nW" _7tKVI\ ^ [уk>T徸,PH\*9@"y,閬Ēl,ӡ 2kD1 ] /cƯUasB_ÏK-qXI8kmIII(p־kË(DeHJD^3UFz^ϡ2SQR+t_H$HHRQLPZJĭ<F+P'.\ձ%.\cEG'z4čN7c\Y_Ug"+ۮIW mV3oUI7zm8πZ1* /ɦqPKPZƈ9)*@/ S SQ>ڊ {x(Ȭ%#3`Id%dSc5Umo{kQ! UBp Cxfg&mo  ?/BR$ ־/_L"pKZR!rW(yWH=>(I/N]tEhxVNEIGSy(I&ީ(g8D j焒&QnZ/QZOQָUQHR({[~>ps3F_[.IIy,+j=*纚^}U HүDBLgU_WќL"&rX/60V^6IIX&nW"zTu54>3E֧_T*O^Ҙ HDy]ԙOuԙ4G3`$ps^ϒ ?yu]NEI: ީ(I>~n8π*V~ }:HH=v*J}m.ᝊՕ<BczT?wީ(_&2=s/p|gNEIGS͗ug r(SRWrIyoNEI:< I b-IQZRK`xI6գ4\Vr Ќ+޸""գ<`dM%MWhw 1wH=JDg6=isff6nմ%6nU=mfisfL"QF x MF GI(l,q!BLY ,qW%`)Ќ1z( kg)v*J? Hg7sR %M3}׆1F'ȚJDtxj[ #9)y,ɦz+VÙ&qSXX+R}P<Hh+7!Y@I(cKhz4M}vڜYq 1mN,q 1mf\MS7K\5mf\Wf$R%ntUFz^ϡ2SQR+t_H$HHRQLPZJĭ<F+P'.\ձ%.\cEG'z4čN7c\Y_Ug"+ۮIW mV3oUI7zm8πZ1* /ɦqPKPZƈ9)*@/ S SQ>ڊ {x(Ȭ%#3`Id%dSc5Umo{kQ! UBp Cxfg&mo  ?/BR$ ־/_L"pKZR!rW(% "BIG <BIGPRINTOQJo vBIGPRINT.OBJ ? !"#$%&'()*+o,-./0123456789:;<=>?@A2<9BCDEFGHIJKLMNOPQRSTUVWXYZ[>H5= \]^_`abcdefghijklmnopqrstuvwxyz{|}~A3~gP86: |L7}xeY0.*% s@;/-!vpld\ONIC1+)&jh4ݏIP1/x}A͚ߍ+[5} fi_t[Y:TW/f#.Z=o%Y|KA\0^`]{I悠:=R 7\6ǕAk}/0KA{jTYSgf~e܁AƻǍmKf7zI|KA\0^`hh7qmݤցF۽獽7sfUSY1Ǖ{RPEsw.s <_3~xEF{7M-7 ^Xηߣ?缻ƍUP7[.N1j\~c԰z1^kziayxFƞ7ցFx&}ATz~3|bUEFgllz?8ѶnR@^9{}3ުJ=fw)jo;չU/bUp {{w-ߘ'm_D{v=~ֿдϹ'~ۖn[tȬKsndz!v/;"lP7܁tߦAǍMr_ooKCȟ?{F]|:asұc Ge=/omsرw{>{|]o;_B8踗s\ CJx:= ;p/il]tO waDxތ ιY~9Mn ތ D U["IWv[Wh].w~0]A&%̅i p$Y'58\ Gat2bEt.1yZBKh qK !D:#!8"Qy+Bʸ(BgK8$DV<ubEb'"b. ZBKh Vh*Y؉x$DHDrrda-G Qˁ#[hB 5 0/BIN-CALCCOMKBIN-CALCDQCLj *K͞+%%%'+FÎr ͖ 8{ Ăw#w#w^#V#*~#fo^#*~#fo^#V#*n^#*n^#V# ~#fo^#& ~#fo!+!#!+!#!+!+}|z{|}|z7||7zZZ)|/g}/o#|͉k|/g}/o#ɯ2qZZk:q|/g}/o#|/g}/o#:q<2qqDM!xxGyO҃)v|͔`i|)Öxڷz/W{/_ѯzW{_=yOxGæ2qZZ͉M|}ȯ|g}o)|/g}/o#z/W{/_!9~#fo! ! ! ! ! ! !9~#A"s!`*"!"!Y">2>2>22!"!"!@"!" ʞ!F#x±~#±!b2r~# "2r+}|~#G:rx"2r+w# +6#!6#2w2x*s!>r<o&F=-` r'~h6!+`W?_ ,4, tFCpFXT%'["GBԉ"1#XWdEBD`` $v":"VR~Vׄ[L5alV`nV$v"VĊx$DX+JDZBKh FۂӷLXI>XId--؂-؂-<~*aEjwTI_V"VĊDV#!lVĊXݚ\9$f+kזǔVtIN$ZBKh ͊X+bEHD"@:shVĊXTm7!"ŢǝdEH'vIh -6. . BKh -%~pBJ? -%2HvZBKh -B, kҡNۇ؂uF# [tpPZ'VĊCBk$`KVQY4Ee\+bE!84ڪ7bX+bEX!8!%C|O" -g%Cp!8B{;SLU2U ֯C"d!5bE(ݪ_{=bEGѵ`т`EoѿBw-؂-2M:RU/"}le\|Yh"VnBJW^YhJ*3[BK:EmcBZ҉],j%!sHL, 1qQBKh GBKh -%Z -%'G}rؑZBKh --(BKh >r{zd*X/$)%ԋ]w~QLc 2O?P?|s@maGhDʰIzˏ~bEօc&{ɴ2O?Q?|s@maGhDThis program prints large characters on a printer. CONATING,TEXT EDITING,FILE PREFIXING, AND MUCH MORE.  AMAZING 2k P%!~7z?` :>ª@w#G.¶ww#?*>?w#> w#.7:77!a{   `OE!y6$ -7rBo&))T])))!yB B B B      #  #        @ F   @ G G    @ H H  H @ I   I I ! $   $   P K K       L L L  L         M M P !9DM!ͯ!ͯ!ͯZ%y ! ͏%! ͏%! !f Ϳ%!f q !f ́!d s#r͐d͐d! ͐d!= ͐d|g}o _͐d|g}o!V g!b !d !͐dʹ!n ! ^#Vr+s!5͐ n&| ͐ ! s! n}͐ ͇! s#r͐ n}(͐ #B! s#r͐ ~! s#r(͐ l! s#r͐ ! s#r! n}ʔ! n}+O-R~d?yÎÎ͐! s#rÎ͐}/o|/g! s#rÎ͐}/o|/g! s#rÎ! 6͐ n&|͐ n&|!͐ ! s͐ ͇! s#r͐ n&|!͐ ! s! n}'͐ ͇! s#r͐ n}(X͐ #B! s#r͐ ~! s#rz͐ l! s#r͐ ! s#r! n}! n}-ʡ?ʳ+~͐! s#r͐}/o|/g! s#r͐}/o|/g! s#r! 6͐! n&͐! s#r͐ n&|åÚ! ^#Vr+s͐5!9!9DM͐n&|v͐n&|v! ^#Vr+sF͐!9DM͐n}(œ! ^#Vr+s͐n&|͐n}(͐~! s#r! ^#Vr+sÜ͐n})! ^#Vr+s͐>! s#r͐!9DM͐>! s#r͐n&|n͐n&|n͐n&|n͐n}(n! ^#Vr+s"͐>! s#r !e9 + + + bc binary calculator 2.0 + + + (c) 1981 Occam Mjukisar Want to have instructions (y/n) ?? Enter expression : Decimal: %6u Hex: %04x Octal : %06o Ascii: %c Binary : !9DM͐n} ͐n}'¾ ͐͐ns! ^#Vr+s͐͐ns! ^#Vr+s͐͐n&s! ^#Vr+sy ! ͯ! ͯ! ͯ!) ͯ!P ͯ!y ͯ! ͯ! ͯ! ͯ! ͯ! ͯ! ͯ! ͯ!6 ͯ!R ͯ!n ͯ! ͯ! ͯ! ͯ! ͯ! ͯ! ͯ! ͯ!0 ͯ!L ͯ!g ͯ! ͯ! ͯ! ͯ! ͯ! ͯ!ͯ!+ͯ!Vͯ!ͯ This program acts as a general binary calculator with 16-bit precision. In the expression you may have any number of nested parentheses and numbers may be expressed in several ways. Allowed number bases: b = binary o = octal q = octal d = decimal h = hexadecimal 'a' = ascii value default = dec!9DM͐>! s#r͐n&|ʿ! ^#Vr+s͐ ! s#r͐>! s#r͐!9DM͐T>!T s#r͐Tn&| ͐Tn&`i͐TJ!`i2|F!&&!`i2|_!^&!`i2|x!<&!`i2|‘!>&!`i2|ª!%&!`i2|!|&!!&!P9andxorshlshrmodor!9DM͐T>!T s#r͐Tn}-$+$~$.͐Tn&_`i͐TJ!h`i2|W!?&__!&_!P9not!9DM͐T>!T s#r`i͐TJ`in&|ʮ`i`in}'! n&`in`i !P9!9DM! n}   ) , ; !!!9DM! n}HXhxʈʘè:! þ:! þ:! þ:!B þ:!d þ:!| þ! n&:! %4u: Expecting operand/expression, returned zero. %4u: Missing operator in expression. %4u: Missing an operand after operator. %4u: Illegal operator in 'calc'. %4u: Illegal operator. %4u:imal Legal operators: + = plus - = minus * = multiplication / = division 'mod' or % = modulus 'and' or & = bitwise and 'xor' or ~ = bitwise xor 'or' or | = bitwise or 'shl' or < = shift left, zero fill 'shr' or > = shift right, zero fill Unary operators: - = negation 'not' or ~ = one's complement (note that two unary operators before one operand (like 'not -7') is illegal but will not draw any error message) !9DM`i! s#r͐w#w͐! s#r! s#r! s#r͐n}͐n}(! ^#Vr+s͐n})! ^#Vr+s! ^#Vr+sø͐ ͐:!W H͐ ͐<:! H͐BN!N!9%4u: Missing left parenthesis in expression. %4u: Missing right parenthesis in expression. !9DM! 6#6! ^#Vr+sz͐! s#r͐|1͐͐ |g}o|!0͏%!1͏%͐! s#r!9!!9DM`i6! ^#Vr+s͐ >! s#r͐ n&|ʚ!& Illegal character in numeric constant. %4u: Internal error in 'anlyz', type = %u. !9DM! n}+-%*5/D|S&e^w%ʉ<ʘ>ʧö͐͐͐͐͐͐k͉͐͐͐͐|g}o͐͐|g}o͐͐|g}o͐͐)͐͐͐͐!!!9DM! n} :  !!!9DM! n}+>->*>/>~>^>&><>>>%>|>C!!!9DM͐>! s#r͐`is#r! ^#Vr+s͐n&|͐n&|͐n&|͐n}(! ^#Vr+sx͐n! s͐6͐͐ ͐! ns!9!9DM͐! s#r͐n}&! ^#Vr+s! ^#Vr+s͐n} Q͐n}Q͐n} _! ^#Vr+s1͐͐n&8 s͐n}BʕOʞQʧDʰHʹ! 6! 6! 6! 6 ! 6! 6 ͐n&j |͐6! w#w! ~#fo͐n} )! ~#fo͐n} )! ~#fo͐n} 7! ^#Vr+s! 6#6! ~#fo͐n}+l! ~#fo͐n}-œ! ~#fo! ^#Vr+s Җ$͐0Þ$͐7s!&$͐ ͐͐ ͉͐Y$`is͐ ͐͐ )͐Y$`in&#&$!9!9DM`iw#w͐~#fon&}J%͐ ?͐^#Vr+snѯg`is#r %͐Q%!9:woi%2w&!o Œ% . &  £% > _ ³% 6  #F#x%~#%ɮÛr+sn`is{$`in}%$! ! s#r! 6#6! s! s! s͐n}-Z!! ^#Vr+s! 4͐n}0j!! 4͐n&}ʇ!! v/ZBIN-CALC.DOCB  !"#$%&'()*+,-./0123456789:;<=>?@Ao9sާSb'>6n 9s&ŝOOws|)ȏ5Ɍ\pժ&)TSti}lݸ)dJ?jUôrbWE:ΓZ%!5Z uV"i)*E_դqSyL1EY_z/0KV | _ǒ*W7w1SKk~э:Γ-/)n}+‘!Ô!! s#r! w#w! ~#fo͐n&0&! ~#fo͐n! n&+&! n͐?! ~#fo͐n&\! s#r! ^#Vr+sä! ~#fo͐n! n&+U!͐͐?e! 9!9DM`i6`in&Ҧ͐n}•æ! ^#Vr+s`i4z! ^#Vr+sn}͐! s#r͐n}! ^#Vr+s! ^#Vr+s! ^#Vr+s͐ns͐6!9!9DM!!9DM! n&0s! n&9Q! n&'s! n&!9DM! n&8 ! s! n&9ҕ! n&s! n&s! n&!9DM͐n}! ^#Vr+sn&͏%÷!9DM! n&͛ |! n& ! n&!y9DM! `i `iͯ!9!9DM`iw#w! ~#fo͐n! ~#fo͐n}Œ! ~#fo`i^#Vr+sn}‰!ø@! ~#fo͐n! ~#fo͐nѯgWø!9!9DM! n&0ͯ! n&9ͯ!9DM͐`is#r! ^#Vr+s! ^#Vr+sns{(  ͐/ !9!9DM! n&*$|_ ! n&d ! n&!9DM! n&͛ |)pgi)X𞥥 0KKqVVM{3FMMƖYشYZ)SCM[yIq,m,)3 scIq<53 [x %xMٷ7~gamlcIۀ0| EýۀXBܻ nn)K([0 7nwj-" e7BY-cSsnSw;ᇚdZspW=+yL8c;ᇚd¤77M&u㮅P=PUZ4f.5g6 RO"W}H1pW=+yL8c;ᇚd¤77MϜ9S)T]Zd7Μ9]'޻|9 ES dFz.HAjU)E>6n\D2 U\`"<`<%%ȗ֕{ S\T~-v/ZBIN-CALC.DOCB  !"#$%&'()*+,-./0123456789:;<=>?@Ao9sާSb'>6n 9s&ŝOOws|)ȏ5Ɍ\pժ&)TSti}lݸ)dJ?jUôrbWE:ΓZ%!5Z uV"i)*E_դqSyL1EY_z/0KV | _ǒ*W7w1SKk~э:Γ-/)ͣ— ! n&*$|ͣ!9DM! n&Aͯ ! n&Zͯ!h9DM! ^#Vr+s~#fo! s#r͐! s#r! ^#Vr+sn`is{$`in}%$! ! s#r! 6#6! s! s! s͐n}-Z!! ^#Vr+s! 4͐n}0j!! 4͐n&}ʇ!! $Ê!!! s#r! ^#Vr+sn`is{.!! $! s#r! 4! ^#Vr+sn`is`in&8 }D!U:"XC"OL"Cʒ"S"#͐~#fo|:"! ^#Vr+s6-͐͐~#fos#r! ^#Vr+s! 6 R"! 6R"! 6! ~#fo! n&! ^#Vr+s~#fo! Y$ѯgs#r;#! ^#Vr+s! ^#Vr+s~#fos! ^#Vr+s;#! n}"! 6#6! ^#Vr+s~#fo! s#r͐n};#͐|;#! ^#Vr+s! ^#Vr+sns! ^#Vr+s! ^#Vr+s"͐6! ! s#r! n}’#! ^#Vr+s!Ғ#! ^#Vr+s! n}ʉ#!0Ì#! sW#͐! ^#Vr+sns{ʻ#! ^#Vr+sÒ#! n}#! ^#Vr+s!#! ^#Vr+s6 #$! ^#Vr+s`ins$! ^#Vr+s`ins ͐6!9!9DM! n&aͯU$! n&zͯ!9DM͐͐ ҩ$͐^#Vr+s͐&j:n9Qپ j&0W4nT xBMK΄P?er.p m\[ٺDXP/ݴ;jD"Ub^Z;gJ5 ֽ 7z!&j{f2P *1si -tܨb5Pj5%C%+zMA|̡^_׾ck)P/ݴ eh ^\GASe5%P/x_ƂbrytY)O{ 5jj.M:*ۗ4p jf;LJS뵗a$P|!%]ǃ)2nbx;cS};OSʼn~P|!ݨ{}z.v.f c;jGq里}tl:M8bt ǢDCK }$ ^ jJ!"n9Qپf# JAP ̟%2wBRonD̡P% 07­ jQLufD(Q :j4m̧efsK6AP9l8&=j 05kzI\L/dI"[s(jи.z)\uOGp 8f]/!sZs(kԄG {A;jG{=M H`Eq'0n{ k`rZlQtQ.y;yCuK^ @"^ Λ6zD&4nP\{'`JLr v2ZnJ̡JZTr7(Ss5^-m8 fP Mu ;t1"XiL98~Z*THC1%s9W17LTO\ZpM\4970q7(xjF"у =XeKǦT[B4qs(b5$D.GuT3Fz.YSg:p5pK*s(&5ļ}jJ1jW x8vBISHOW29.ASMb  !#"$%&')(+*-,.0/123456798:;=<>@?oABCDEGFHIJKLMNOPQRTSUVWXYuZ\[]_^`a꯹(&-=._`W =jb5$ݠ;jG5 9QI]a6P`0u5TxL3k/Ô;z!Z;0 6{הp{f2ZTuOL̡(#x\Ē9 O & Vx5$\ژCw)vxjFK1@"˶-8zg {8єdog wW:Cw!.kԉ-~<բr9ԓ.+xk$Ռc 0Ly)^-9ԓW ^Q.F0O ~kzavoO5͡4W OC'AS5 GsFu !9-Qp`jA{8<5J8τP?5%Cnt'95ӓjݵw}d*W Ǣ}ȔpywԎI|,!DxKQ;^y Z <:B(m!2cztG(<5jKiA<ɣ#/CFi# ,Ee߉L #bAZHld,,ɓWEݠXRFٕ; O B̘`ʣ#/s(_0"Sd*'ɯdDA$Ixjb,eWyxqC\W ؓ.cQw"S-!sZ%wyxv6%Csj8{T/XBjՌq`ָ^- ΫwSݥ:zSx2Zn>sZp]{&5\\ǫF6n̡^-v70]ҙAKOΡP% έF`в d4r D.{;hsb Q# O :#]ꅘ@wԈB)^xtO8t,#C͡KN~ x)jޱ^53z!&8 p{%kM9pLn,C=O1ZϡP% 'k)F`ͱH`BLI|9 ^ZSnjEl_p2Ӛ6(l}P/@mD%2%|0@ }k,9"S9 Q#ļ}ʽv6v >mMNKjEl_ њ6(P\ҸQ]zs9 q7-yjx$ 0n]FB} 9* zsK/tP/@[͚}f2P *1si ){vsb \(ReߙQW/Gz'itZ)Ŕ o硥 Ρx Gz.Lz)ù GzQ,!Pi ĄP?e~%[$z4v&Ca'qZ$4si{B.`^-=SNhm/Ge;%ΔL`j+}%Cv^-x: GLơuS2Z8 pZpţQ09^-(Jm[Q<:N-;wqDosٶſ:w~yeoT(R;jDC͡^%!T/ps9[[y!cQw8n=Ek7t:y˿M+V\`W*w2{e k8gzOj_/Q"%YbYJ_~Up,*NdJ8#4uk+ZhmF_Ǣo| yC+K$_!YIֶ/ؿ*Ee߉L uTvnmEKmU<ʾRMǍ긎JdJ̱5u_} ˿z%rSl'Mn16&Ek7-Jޚx׭uoڮ ukjMVE/n?XTj:nT/2%x-_,E㛶?͕ߺ}\XTȔpsi/EΟ#!^CK57!2C͛d/ eє+S2ñs9$҅_g|ԯ[5U_GnPؓ.C+˭mEj(r86q;LS̥Ps^Pses:fWLl++w{ BdJ^s۾hɊܿrנ)PmWn"cJ1%þ=jlNn?[%п*j:n9^~!+A3> 4h=p0O{q<0ǯoWܨsֿF,jLF#f/JWoӴvnTB{ps@׭E_m|tmp^4KY?w|QޥG/Er4;ȔN,sj#%2%xt9zٜNO7mWsM*QNLpnZC Wwb޾C=Ď wi9~ K>ۗj1 tz n"{Tn}9/`^6kW\^ބc~ _^uv)6s#9~?ts̡o/Z۾_ HwN,(:C},{带7C%m_u: VsctEk۷_ubS"/~']p7(./Z۾FU3G87;[hm{'\\<1Pù9)3z醛C͡HrhmV^Tqb_Funʝ#ȿhm{Dd*Ȍrݔ;hm{Dd=yr?0jñssnjInA W^wSɠ9tb^EkļT/ݠ( 9tb^EkļvWzwX:1Ekļ2ZnX9tb^f:1ow#ë5eWXT5qIhm{DTr=ST#͡PՊK7jlOU#h6WX 4G^Ek Wtlrtmmou6GSֶoZ2%G9/Z۾lWGդLjc!۷ 9ֶo[U#cYhm{ 9 ^ʫrTgzC͡-4e9!xtO0cQ C&5vB̅QՂ35s(ΫyhdW j9~ۜt{m/K_h\L̑ߊP~6y"M9 /Z^-ȔC]@mlպƲ#2%bEk6ť;jD:ՄǍhm[~66*Z%fOЭrmonvS:eb5K'>'Ρx6WnY/GeKa{הC!6}Zۜ[9/>xqlx^9,6v *x.7WQs9>YVə >imgв v4> hVə >i,۴ {{8e~i9څȔpv]dY_V/`vkC͡[5sKdKert=7[WmaՔK};NjfEIڼ?W,9/n+Y:ǟEئd6'^W]s^PsXDk[W/'q\+}%sz A͛]\zkҔwxql~,xIvz_xh2-'xbsT"/HNj@ `W)Gs9^es:9^&oQ;Bұ4U//JWo =xHVS2ԢW9ҽeYxqlx^utOvFM.Q UBa W7ҢocvFMIh -L09ր`_+j_^"%Yb,WGTogj^uo-'^m޼Jz-AKg.P,s^Ps_//ۮrs9[Wir7x  J=DXո^-ky:J7òhJ|񼒥s9bn`x*bnPsJ~IEC`}@n- FcuL9}Xb0lt57ls,ۈYn-Ȕi3ǟo#Kc)0!­sm`1 7u'͡e$qFh\L7K&S&l`1 7us96b%Z.)f?FX:60.)S"h1pS/g|b_+jJ"'Zs96-pÿqmMǦ9=,eKrn+BW.-;t7Jn9izY ˹啋t7-h=綫u7vSɠ9*f.ovsۯGYh ׵gj87z9__Ӌ9^m_n͟4gwﻋvw M6nV oaqsۗ['+],}]\B핽9ii_nb:Mur+]W~JSyu-'"4}i*7ݥ SWz 9^6k W+vwy.+Q?7z ]t]ח9^/~.NBMutq^)b޾GC=Z$ G, sz=5PO}Jslio[b&8n7W~_aDo^vȔWox<9CDoCel.b+uk2qQL +wߞϿW7f6mPjl.Woͩ&>˹7W~џW7N,5oƲ:ebͬ,fՁ"U^-QPsesy(ߴ]>PmWLp}^QnwZC  _T/NwsQ.c3Oa~_rA>xuf~ _謱yu5^6CK57Q:˿r55ш;ǟE۷+G <%{9^^+A3 `߉L9^PD_m+^q=t6M!,jTXsȔѽriv> ^6z_,Ρo7o?XTȔpx_b4ǟoͩ8jQ.͝+͛5h/oz\Jڼ9@fgWso1_sMQ-jۙ{rhtz*Li57QPsV!¹p{};s7(y94ߦW'5M!{T(exIv9^es9I:i8 T/ݠ)ļ}:z|S;w_B0ݍ5tl㛖(sD\ξq{uD]H`oڮ [B|˫1oߣ1ǟ?o+ZNM\FeK:1/fs=^M FucoZ7vĄ}wqi 1oߣM՟a!5ߦxED婹)tq^yhD\bﻋ;[%Пs$b7uT7|/o~I.?w +(ҙR[Eq^ 8n51ǟ6kw@.`kP36n|ݪo ī1oߣM[oӽڼ9u7vF;1oߣ|:PʫQ#/`^6_\S ޗMK&ݠC͡"t!b޾G^;Nq{CjtszyغXT.۫U3.M՟ %ߦ{zt7˾Q-pÿ{W9^4//DџW7Ǣtq^M!{9ii_'l_fo_ _xedߜsiM丼};s7(h 1oߣrG)3zkb闷9ǯt/-s|}UKdD:E+˹u\\<9^6?Ky30n1oߣM՟aW..5ogx+E8؞jG`_NsxIvU#J27-ļL\^Q.kǢ+[͘i/[׉y1W7r9ii_^?2q⸽:Bsoyy~y!ܿrנsT"/HY:B4#'{xrQy';Y#'1zy_y

rint, earch, enant records or uit to main menu' TO prompt2 STOR 'Main Building Database Menu' TO mode * show the current record @ 0,26 SAY mode @ 1, 0 SAY " -------------------------------------------------" @ 1,50 SAY "-----------------------------" @ 3, 1 SAY "Address:" @ 3,55 SAY "Code:" @ 4, 4 SAY "City:" @ 4,37 SAY "State:" @ 4,56 SAY "Zip:" @ 6 N U H E L P F I L E Welcome to the SIG/M PROPERTY MANAGER Building File Data Base. I am here to help you and you can call me anytime by just entering a ? mark at any place where this program asks for a command. When you go back to the screen you will see two lines - on top of the first line it says 'Main Building Database Menu' - thus, the program always tells you where you are! Between the two lines we have the information you or someone else entered into the computer. This information tells you all about a particular building. If you press any key I will tell you more. ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS TEXT This is a multiple data base - by that I mean - you can have one screen of information about the building and another screen of information about any of the tenants in that building. To find the first tenant for the building you are looking at hit 'T' for tenant informat, 1 SAY "Manager:" @ 6,54 SAY "Phone:" @ 7, 4 SAY "Type:" @ 7,44 SAY "Number of Units:" @ 9, 0 SAY "Acquired:" @ 9,45 SAY "Purchase Price:" @ 11,28 SAY "Send Rental Payments To:" @ 12,00 SAY "Company:" @ 12,54 SAY "Phone:" @ 13,01 SAY "Street:" @ 14,03 SAY "City:" @ 15,00 SAY "Chks To:" @ 17, 2 SAY "Notes:" @ 18,52 SAY "Updated:" @ 19, 0 SAY " -------------------------------------------------" @ 19,50 SAY "-----------------------------" @ 20, 4 SAY prompt1 @ 21, 4 SAY prompt2 ENDI first STOR f TO first STOR '?' TO command * find out if the current record is marked for deletion IF * STOR 'Deleted' TO deleted ELSE STOR ' ' TO deleted ENDI * * show the current record, and find out what to do next @ 0, 0 SAY deleted @ 3,10 SAY baddr @ 3,61 SAY bcode @ 4,10 SAY $(bcity,1,20) @ 4,44 SAY $(bcity,21,2) @ 4,61 SAY $(bcity,23,5) @ 6,10 SAY $(bdata,1,25) @ 6,61 SAY $(bdata,26,13) @ 7,10 SAY $(bdata,39,2) @ 7,61 SAY $(bdata,4ion. The transition is not quite immediate, because the program takes the time to find the first individual in the building that you have on the screen. The information on screen in clear, so let's look below the line. This shows what you can do. To look at the next record - hit 'F' (or a period). To go back one record - hit 'B' (or a comma). To delete a record hit 'D' and a sign will appear at the upper right corner. To remove the delete - hit 'D' again. Don't worry - you cannot accidentally delete a record just by hitting 'D'. You must run another program on the Maintenance Menu (purge) to delete. To find a file - hit 'S' for search. To edit an entry hit 'E' (although you usually would search for a file - and Edit from the search menu.) To add more records you hit 'A'. Once in add you can enter new buildings and the tenants connected with that building. If you already have the building data in this program the menu gives you the option to add only tenants. STOR 4 TO box STOR t TO keepitup RETU CASE command = 'S' RELE ALL STOR bcode to linker SAVE TO move STOR 5 TO box STOR t TO keepitup RETU ENDC * loop back again ENDD WHILE t * DATE 09/10/84 18:19 * maintain.bld STOR t TO more DO WHIL more STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build INDEX &dr.:code REST from coname additive ERAS STOR '?' TO command TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< *  Please hit any key for the next screen ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS TEXT We suggest that you enter all units for the property first time around, even if they are vacant. (Put in the last rental for the property) If you leave a blank for the tenant name - the unit will appear on the vacancy list. To do property connected reports, such as rent bills, tenant labels, vacancy lists or delinquency lists, hit 'R' for Reports. 'M' for Maintanance allows you to do housekeeping chores, etc. See the specific help menus as well as the menus themselves for more information. Please don't forget that at any menu '?' brings on a help menu and 'Q' quits to the prior menu. ------------------------------------------------------------------------- WH * * * * * * * * * * * * * * * * * * * * * * * * * * ATEVER YOU DO - NEVER SHUT OFF THE MACHINE OR REMOVE A DISK UNTIL YOU FIRST RETURN TO THE MAIN MENU AND THEN QUIT TO THE OPERATING SYSTEM. IF you ever get a SYNTAX error and hitting ENTER does not solve the prob- lem, then just hit ESCAPE and type QUIT. Then just start all over again. ------------------------------------------------------------------------- Please hit any key to get back to the data base ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS CASE command = 'P' DO PRINT.bld CASE command = 'Q' * prevent sign-off message STOR t TO keepitup STOR 0 TO box RETU CASE command = 'T' STOR '000' to tno @ 20,00 @ 21,00 @ 22,00 @ 21,04 SAY 'Enter tenant number (or leave at 000 for first tenant) ' @ 21,63 GET tno PICTURE '999' READ IF tno = '000' STOR bcode TO linker ELSE STOR bcode + tno TO linker ENDI tno SAVE to move  * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 03,04 SAY coname + " - FILE MAINTENANCE MENU" @ 03,65 SAY DATE() @ 07,24 SAY 'A. Backup data files' @ 08,24 SAY 'B. Browse through building file' @ 09,24 SAY 'C. Browse through tenant file' @ 10,24 SAY 'D. Display building file' @ 11,24 SAY 'E. Display tenant file' @ 12,24 SAY 'F. First initialization of Property Manager Program' @ 13,24 SAY 'G. Reininitialze defaults, company name, etc.' @ 14,24 SAY 'H. Purge building and tenant file' @ 15,24 SAY 'I. Re-index the records into all indexes' @ 16,24 SAY 'J. Return to main menu' @ 18,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 18,58 GET command PICnt record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STOR ' ' TO stletter @ 15,12 SAY 'We are using the building code index to browse' @ 16,12 SAY '....so please tell me the starting code number' @ 17,12 SAY 'or as much of it as you want to.' @ 19,12 SAY ' Where shall we start.............' @ 19,57 Get stletter PICTURE '99' @ 22,00 READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * browse thru file SET ESCAPE OFF BROW fields bcode, baddr SET ESCAPE ON CASE command = 'C' ERAS SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea * browse thru records ERAS @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,TURE '!' READ DO WHIL @(COMMAND, 'ABCDEFGHIJ?Q') = 0 STOR '?' TO command @ 18,58 GET command PICTURE '!' READ ENDD DO CASE CASE command = 'A' STOR 'Y' TO doit ERAS @ 01,05 SAY 'This module makes a backup of the DATA Files to another disk' @ 03,05 SAY 'Do you want to do a backup of the DATA Files (Y/N) ?' @ 03,60 GET doit PICTURE '!' READ IF doit = 'Y' @ 01,00 @ 03,00 @ 03,05 SAY 'The left drive is Drive A - The right drive is Drive B' @ 04,05 SAY 'The DATA File is on drive '+dr+' and you normally backup to drive B' @ 06,05 SAY 'Make sure the backup disk is in the drive selected for backup' RESE STOR 'B' TO bdr @ 08,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ DO WHIL @(bdr,'AB') = 0 @ 08,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ ENDD while @ IF bdr <> dr @ 10,05 SAY 'Now copying DATA Files from drive '+dr+' to drive '+bdr+ ' ' SET E12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Current record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STOR ' ' TO stletter @ 15,12 SAY 'We are using the building code index to browse' @ 16,12 SAY '....so please tell me the starting code number' @ 17,12 SAY 'or as much of it as you want to.' @ 19,12 SAY ' Where shall we start.............' @ 19,57 Get stletter PICTURE '99999' @ 22,00 READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * browse thru file SET ESCAPE OFF BROW fields bcode, tunit, tenant SET ESCAPE ON SELE PRIMARY USE &dr.:build INDEX &dr.:code CASE command = 'D' STOR CHR(PEEK (063)) TO dr ERAS @ 02,12 SAY 'Records are displayed by code number and you can select the ' @ CHO ON SET TALK ON SELE PRIMARY USE &dr.:build INDEX &dr.:code RESE COPY TO &bdr.:buildbak SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea COPY TO &bdr.:tenbak SET TALK OFF SET ECHO OFF SELE PRIMARY USE &dr.:build INDEX &dr.:code ELSE @ 10,05 SAY 'Cant backup to same drive - Aborting' @ 12,00 SAY 'Hit RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI not same drive ENDI do backup CASE command = 'B' * browse thru records ERAS @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Curre03,12 SAY 'starting code letter or any part of it. If I do not find that' @ 04,12 SAY 'number in the file, I will start at the beginning' @ 06,12 SAY 'When WAITING hit space bar to continue... or ESCape to quit' * get a starting point in file STOR ' ' TO stletter @ 10,12 SAY 'Place at which to start display' @ 10,57 Get stletter PICTURE '99' READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * display selected list ERAS SET ESCAPE OFF DISP NEXT 65000 bcode, $(bdata,1,38), $(baddr,1,20) IF eof WAIT ENDI SET ESCAPE ON CASE command = 'E' STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant INDEX &dr.:codea ERAS @ 02,12 SAY 'Records are displayed by code number and you can select the ' @ 03,12 SAY 'starting code letter or any part of it. If I do not find that' @ 04,12 SAY 'number in the file, I will start at the beginning' @ 06,12 SAY 'When WAITING hit space ba SET CONSOLE ON STOR TRIM(one) + one1 TO one STOR count + 1 TO count STOR $(passt,1,count) TO passt1 @ 12,50 SAY passt1 SET CONSOLE OFF ENDD SET CONSOLE ON STOR $(one,2,9) TO passt IF TRIM(passt) <> TRIM(passp) ERAS @ 14,10 SAY "U N A U T H O R I Z E D A C C E S S " @ 17,10 SET CONSOLE OFF QUIT ENDI passt SET EXACT OFF SET COLON ON ENDI pass DO init.spm REST from temp additive CASE command = 'H' STOR CHR(PEEK (063)) TO dr STOR 'N' TO command ERAS @ 02,05 SAY '***** WARNING! ***** WARNING! ***** WARNING! ****' @ 04,05 SAY 'This will PERMANENTLY remove any deleted records.' @ 06,05 SAY 'Type Y to continue, any other key to cancel this operation' @ 06,64 GET command PICTURE '!' READ IF command = 'Y' ERAS * give the user something to read while file is packed TEXT Records which have been marked for deletion are being removed from the file. When that is completed, alr to continue... or ESCape to quit' * get a starting point in file STOR ' ' TO stletter @ 10,12 SAY 'Place at which to start display' @ 10,57 Get stletter PICTURE '99999' READ STOR TRIM(stletter) TO stletter * goto starting point or next if no find FIND &stletter IF # = 0 GO top ENDI * display selected list ERAS SET ESCAPE OFF DISP NEXT 65000 bcode, tunit, ttype, tenant IF eof WAIT ENDI SET ESCAPE ON SELE PRIMARY USE &dr.:build INDEX &dr.:code CASE command = 'F' ERAS STOR 'N' TO option TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< W A R N I N G W A R N I N G W A R N I N G ============= ================== ============== This option is designed to create a new data base file to startup this program the first time. It will mark for deletion all of the sample files we gave you in the build- ing and tenant databasel records will be reindexed. We will keep you posted as we go along..........but please be patient. ENDT *pack the file to remove deleted records *but let us know how many records are deleted SET INDEX TO GO bottom STOR # to before @ 08,00 SAY 'The building data base contains ' + STR(before,4) + ' files before deletions' @ 09,00 SAY ' ' SET INDEX TO &dr.:code SET TALK ON PACK SET TALK OFF SELE SECONDARY USE &dr.:tenant GO bottom STOR # to before ERAS @ 08,00 SAY 'The tenant data base contains ' + STR(before,4) + ' files before deletions' @ 09,00 SAY ' ' SET INDEX TO &dr.:codea SET TALK ON PACK SET TALK OFF SELE PRIMARY USE &dr.:build INDEX &dr.:code @ 19,00 @ 20,00 @ 21,00 SAY ' *************************************************************************' @ 23,20 SAY 'Hit any key to Continue ' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI command = Y RELE ALL STOR t TO more CASE comms. Then add your records and come back to the maintenance menu to purge. A similar program is found on the Accounting Maintenance menu. NEVER RUN THIS OPTION UNLESS YOU HAVE BACKED UP THE PROGRAM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ENDT @ 19,20 SAY 'ARE YOU READY TO PROCEED' @ 19,47 GET option PICTURE '!' READ IF option = 'Y' STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant DELE ALL SELE PRIMARY USE &dr.:build DELE ALL SET INDEX TO &dr.:code ENDI option = 'Y' CASE command = 'G' SAVE TO temp REST from manage.dat IF PASS = 'Y' ERAS @ 12,10 SAY 'PLEASE ENTER THE PASSWORD SLOWLY ........' SET EXACT ON SET COLON OFF STOR '12345678' TO passt STOR ' ' TO passt1 STOR ' ' TO one STOR ' ' to one1 STOR 0 to count DO WHIL count < 8 SET CONSOLE OFF @ 12,50 SAY passt1 WAIT TO one1 @ 12,50 ACCEPT one1 and = 'I' * re-initialize index files ERAS @ 2,00 SAY 'We are going to index to all of the indexes and' @ 3,00 SAY 'will keep you posted as we do it.' @ 5,00 SAY 'Please be patient as this takes a little time...' @ 7,00 SAY 'Records are now being re-indexed' STOR CHR(PEEK(063)) TO dr SET TALK ON SET ECHO ON SELE SECONDARY USE &dr.:tenant INDE on bcode to &dr.:codea SELE PRIMARY USE &dr.:build INDE ON bcode TO &dr.:code SET INDEX TO &dr.:code SET TALK OFF SET ECHO OFF CASE command = '?' ERAS TEXT M A I N T E N A N C E M E N U H E L P S C R E E N The maintenance menu allows you to work with both the building and the tenant databases. Some of the options on this screen are exceedingly powerful and should be used with care. The browse command allows you to examine certain of the data in the files and make changes directly in the file. Because of size limitations, you can only browse in the code, address and type fields in bright = 'A' SET INTENSITY ON ELSE SET INTENSITY OFF ENDI bright RELE ALL STOR 0 TO box STOR t TO first STOR t TO keepitup RETU ߛѝ ߒь ߒў ߌў ߌў ߕў ߕў ߒў ߜў ߜў ߏў ߛў ߒќ ߞя ߞќ ߛў ߌѝ ߌѝ ߒѝ ߍѝ ߞѝ ߞѝ ߞѝ ߒѝ ߒѝ ߒы ߌы ߒѝ ߚѝ ߌѝ ߚы ߌы ߏы the building database and in the code, unit and tenant name fields in the tenant database. The same type of space limitations apply in the display mode. However, it is a simple, non-dangerous (and preferable) way to view multiple records. In the building mode I display the code, the units, the type, the acquisition date and part of the address. In the tenant mode I display the code, tenant, type and tenant name. Please hit any key to continue........ ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS TEXT Purge deleted entries - this permanently removes from the file all entries marked for deletion and then reindexes the file. Use this carefully and only purge after you have made a backup of the file. Backup data file - I hate to say this - but computers goof and disks are so so delicate. ALWAYS ALWAYS ALWAYS never let a week go by without a backup - so all you lose is one week (do it every day if you want). This program can make an automatic backup * DATE 07/09/84 13:21 * Screen print @ 22,0 SAY 'PRINT OPTIONS: S (SINGLE SPACE), D (DOUBLE SPACE), N (NO PRINTING) ' STOR 'Y' TO PRNTSCRN STOR 'N' TO PRNTOPT @ 22,67 GET PRNTOPT PICTURE '!' READ DO WHIL @(PRNTOPT, 'SDN') = 0 @ 22,67 GET PRNTOPT PICTURE '!' READ ENDD IF PRNTOPT = 'S' STOR 1 TO LINEMULT ENDI IF PRNTOPT = 'D' STOR 2 TO LINEMULT ENDI IF PRNTOPT = 'N' STOR 'N' TO PRNTSCRN ENDI IF PRNTSCRN = 'Y' SET FORMAT TO PRINT EJEC @ LINEMULT*4,2 SAY 'Address:' @ LINEMULT*4,12 SAY BADDR @ LINEMULT*4,56 SAY 'Code:' @ LINEMULT*4,63 SAY BCODE @ LINEMULT*5,5 SAY 'City:' @ LINEMULT*5,12 SAY $(BCITY,1,20) @ LINEMULT*5,38 SAY 'State:' @ LINEMULT*5,46 SAY $(BCITY,21,2) @ LINEMULT*5,57 SAY 'Zip:' @ LINEMULT*5,63 SAY $(BCITY,23,5) @ LINEMULT*7,2 SAY 'Manager:' @ LINEMULT*7,12 SAY $(BDATA,1,25) @ LINEMULT*7,55 SAY 'Phone:' @ LINEMULT*7,63 SAY $(BDATA,26,13) @ LINEMULT*8,5 SAY 'Type:' @ LINEMULT*8,12 SAY $(BDATA,39,2) @ LINEMULT*8,45 SAY 'Number of Uniof the data to another disk. There should always be another copy of the program and data, but backup is a convenient way for an extra copy. Reindex - this is necessary if you are going to search for a file using the search by index command. The first time initialization option has instructions. Basically, first time around run it to delete the sample files. The set name option refers to the name that appears on the top of the menu and on reports. You can change it anytime. Note, when going from dBASE version to another or from one operating system to another, you must delete memory variable files. These files are MANAGE.DAT and CONAME.MEM. If deleted, the program will reinitialize itself. Please press any key to return to the menu......... ENDT SET CONSOLE OFF WAIT SET CONSOLE ON ERAS CASE (command = 'J' .OR. command = 'Q') STOR f TO more ENDC ENDD while more REST from manage.dat IF escap = 'N' SET ESCAPE OFF ELSE SET ESCAPE ON ENDI IF ts:' @ LINEMULT*8,63 SAY $(BDATA,41,3) @ LINEMULT*10,1 SAY 'Acquired:' @ LINEMULT*10,12 SAY $(BDATA,44,8) @ LINEMULT*10,46 SAY 'Purchase Price:' @ LINEMULT*10,63 SAY BPRICE USING '$999,999,999.99' @ LINEMULT*12,29 SAY "Send Rental Payments To:" @ LINEMULT*13,01 SAY "Company:" @ LINEMULT*13,12 SAY REMIT @ LINEMULT*13,55 SAY "Phone:" @ LINEMULT*13,63 SAY PHONE @ LINEMULT*14,02 SAY "Street:" @ LINEMULT*14,12 SAY REMITAD @ LINEMULT*15,04 SAY "City:" @ LINEMULT*15,12 SAY REMITC @ LINEMULT*16,1 SAY "Chks To:" @ LINEMULT*16,12 SAY CHECKS @ LINEMULT*17,02 SAY "Notes:" @ LINEMULT*17,12 SAY BNOTES @ LINEMULT*18,53 SAY 'Updated:' @ LINEMULT*18,63 SAY BUPDATE @ LINEMULT*19,1 SAY DATE() @ 52,0 SAY ' ' SET FORMAT TO SCREEN ENDI RELE PRNTSCRN, PRNTOPT, LINEMULT <<<<<<<<<<<<<<<<<<<<< ENDT @ 3,04 SAY coname + " - BUILDING REPORT MENU" @ 3,65 SAY DATE() @ 7,29 SAY "A. Rent bills" @ 8,29 SAY "B. Tenant roster" @ 9,29 SAY "C. Delinquency report" @ 10,29 SAY "D. Tenant mailing labels" @ 11,29 SAY "E. Vacancy list" @ 12,29 SAY "F. Lease expiration and flag report" @ 13,29 SAY "G. Return to Main Menu" @ 15,23 SAY "PLEASE SELECT ONE OF THE OPTIONS" @ 15,58 GET command PICTURE '!' READ DO WHIL @(COMMAND, 'ABCDEFG?Q') = 0 STOR '?' TO command @ 15,58 GET command PICTURE '!' READ ENDD CLEA GETS IF command >='B' .AND. command < 'G' @ 17,00 @ 17,00 SAY " * Send Report to the Printer (Y/N) *" @ 17,55 GET printer PICTURE '!' READ @ 18,00 SAY " * Send Report to a Disk File (Y/N) *" @ 18,55 GET disk PICTURE '!' READ IF disk ='Y' @ 17,00 @ 18,00 @ 17,00 SAY " * Enter Disk File Name * DATE 08/31/84 21:54 * report.bld STOR t TO more DO WHIL more STOR CHR(PEEK (063)) TO dr REST from coname additive ERAS STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO command TEXT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * * * * * * * * *  *" @ 17,34 GET filename PICTURE '!!!!!!!!' @ 17,44 SAY "(.TXT will be added )" @ 18,00 SAY ' * *' READ @ 18,00 SAY ' * Select drive to put Files on *' @ 18,55 GET dr PICTURE '!' READ DO WHIL @(dr,'AB') = 0 @ 18,00 @ 18,00 SAY ' * Select drive to put Files on *' @ 18,55 GET dr PICTURE '!' READ ENDD while @ ENDI disk = Y STOR LEN(coname)/2 TO L STOR 40-L TO L STOR ' ' TO bl STOR $(bl,1,L) + coname TO coname IF printer = 'Y' @ 17,00 @ 18,00 @ 17,00 SAY ' * MAKE PRINTER READY AND HIT ANY KEY *' @ 18,00 SAY ' * *' SET CONSOLE OFF WAIT SET CONSOLE ON SET print ON ENDI printer = Y IF dis * * * * * * * * * * * * * * * * * * * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< * Please select one of the above options. You may also leave this menu * * by typing 'Q' and get on-line HELP by typing '?'. * >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<k = 'Y' .AND. filename <> ' ' * make a proper REPORT file name that is of type TXT STOR @('.',filename) TO length IF length = 0 .OR. length > 8 STOR 9 TO length ENDI length STOR $(filename,1,length-1) TO filename STOR '&dr.:'+filename+'.TXT' TO filename SET ALTERNATE TO &filename SET ALTERNATE ON ENDI disk = Y and filename <> '' ENDI command ERAS DO CASE CASE command = 'A' SET PRINT OFF * rent bills STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build SET INDEX TO &dr.:code ERAS TEXT This module prepares the rent bills. If the rents for the month have not been posted and the new rents not accrued please take care of that before you run this program. The form set up is for UARCO C599 and envelope EN81. Form length is 7 inches. ENDT STOR 'Y' TO command @ 10,20 SAY 'ARE YOU READY TO PROCEED ? ' ltcty ELSE ? ' ' + mbaddr ? ' ' + mbcity ENDI alt ? ' ' ? ' ' ? ' R E N T S T A T E M E N T' ? ' ' ? ' ' ? ' Refer inquiries to ' + mphone ? ' ' ? ' ' IF trentp > 0 ? ' Paid ' + trentpd + '. THANK YOU '+STR(trentp,12,2) STOR line + 1 TO line ENDI trentp > 0 ? ' Unpaid balance ' + date() + ' '+STR(trentd,12,2) STOR mtotal + trentd TO mtotal ? ' ' IF ttype = 'P' .OR. ttype = 'O' ? ' Base Rent ' + STR(trent,12,2) ENDI ttype ? ' Base Rent for the month of ' + month + ' '+STR(trentx,12,2) STOR mtotal + trentx TO mtotal IF trente > 0 ? ' Electricity '+ STR(trente,12,2) STOR mtotal + trente TO mtotal STOR line + 1 TO line ENDI @ 10,50 GET command PICTURE '!' READ IF COMMAND = 'Y' SET confirm on STOR ' ' TO build @ 12,10 SAY "What building shall we prepare bills for ('99' for all) " @ 12,70 GET build PICTURE '99' READ IF build <> '99' FIND &build DO WHIL # = 0 @ 12,70 GET build PICTURE '99' READ FIND &build ENDD WHILE # ELSE GO TOP ENDI build <> '99' STOR ' ' TO month @ 13,10 SAY "For what month " @ 13,40 GET month PICTURE '!XXXXXXXX' READ @ 16,10 SAY 'Hit any key when the printer is on and the proper paper loaded' @ 17,10 SAY 'with the top of the form at the level of the print head.' SET CONSOLE OFF WAIT SET CONSOLE ON SET PRINT ON ERAS STOR t TO bigloop DO WHIL BIGLOOP .AND(.NOT. EOF) IF build <> '99' STOR f TO bigloop ELSE STOR # TO rec:no ENDI build <> '99' STOR bcode TO mbcode STOR baddr TO mbaddr STOR $(bcity,1,22) + ' ' + $(bcity,23,5) TO mbcity  trente IF trentm > 0 ? ' Miscellaneous charges '+STR(trentm,12,2) STOR mtotal + trentm TO mtotal STOR line + 1 TO line ENDI trentm > 0 IF taddl > 0 ? ' Additional charges '+STR(taddl,12,2) STOR mtotal + taddl TO mtotal STOR line + 1 TO line ENDI taddl >0 ? ' ' ? ' TOTAL DUE $'+STR(mtotal,12,2) STOR mtotal + tlatec TO mtotal ? ' ' ? ' ' ? ' AFTER ' + TRIM(!(month)) + ' ' +tlate + ' PAY - $ '+STR(mtotal,12,2) STOR 11- line TO line1 DO WHIL line1 > 0 ? ' ' STOR line1 - 1 TO line1 ENDD ENDI tenant <> ' ' SKIP ENDD WHILE $(bcode) SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code IF bigloop GO rec:no SKIP ENDI bigloop ENDD WHILE .NOT. EOF ENDI command = 'Y' EJEC SET PRINT OFF  STOR remit TO mremit STOR remitad TO mremitad STOR remitc TO mremitc STOR phone TO mphone STOR checks TO mchecks SELE SECONDARY USE &dr.:tenant SET index TO &dr.:codea FIND &mbcode DO WHIL $(bcode,1,2) = mbcode .AND.(.NOT. EOF) IF tenant <> ' ' STOR 0 TO line STOR 0 TO mtotal STOR trent TO trentx IF ttype = 'P' IF (trentpc*(trentpcr/100)/12)>trent STOR (trentpc*(trentpcr/100)/12) TO trentx ENDI (trentpc) ENDI ttype = 'P' IF ttype = 'O' STOR ((trentpc*(trentpcr/100)/12)+trent) TO trentx ENDI ttype = 'O' ? ' ' ? ' ' + mremit ? ' ' + mremitad ? ' ' + mremitc ? ' ' ? ' ' ? ' PLEASE SEND CHECKS TO ABOVE ADDRESS PAYABLE TO:' ? ' ' + mchecks ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' + tenant + ' Unit ' +tunit IF alt = 'Y' ? ' ' + altad ? ' ' + aSET CONFIRM off RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build SET INDEX TO &dr.:code CASE command = 'B' * tenant roster STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant SET INDEX TO &dr.:codea ERAS * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR 0 TO counter1 STOR 0 TO additup STOR ' ' TO mtenant SET MARGIN TO 3 GO TOP STOR t TO more1 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' IF pageno = 1 ? coname ? ' TENANT REPORT' ? ' ' ? 'Report of ' +date() + '.' STOR lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Tenant ' + 'Code '+ ' Unit ineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Tenant ' + 'Code '+ 'Late Date' + ' Due' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file IF .NOT. EOF IF tlate < $(date(),4,2) ? tenant + ' ' + bcode + ' ' + tlate + ' ' + STR(trentd,9,2) STOR lineno +1 TO lineno STOR additup + trentd TO additup STOR counter1 + 1 TO counter1 CONT ELSE CONT ENDI tlate ELSE STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ? ' ' ? "----------------------------------------------------------------------------" ? ' ' ? ' TOTAL NUMBER OF DELINQUENCIES: ' + STR(counter1,3) ? '  ' + ' Expires' + ' Rent' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file DO WHIL .NOT. EOF STOR tenant TO mtenant IF tenant = ' ' STOR 'VACANT ' TO mtenant ENDI ? mtenant + ' ' + bcode + ' ' + tunit + ' ' + texpir +' ' + STR(trent,9,2) STOR lineno +1 TO lineno STOR additup + trent TO additup STOR counter1 + 1 TO counter1 SKIP ENDD WHILE .NOT. EOF STOR f TO more1 STOR 60 TO lineno ENDD while lineno < 50 ? ' ' ? "----------------------------------------------------------------------------" ? ' ' ? ' TOTAL NUMBER OF RENTAL UNITS: ' + STR(counter1,3) ? ' RENT ROLL: $' + STR(additup,10,2) ? ' ' ENDD more1 * if it was on turn it off EJEC  TOTAL DOLLAR AMOUNT DELINQUENT: $' + STR(additup,10,2) ? ' ' ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue.........' SET CONSOLE OFF WAIT SET CONSOLE ON RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code CASE command = 'D' * tenant labels * adjust for printer STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:build SET INDEX TO &dr.:code GO TOP STOR t TO more2 DO WHIL more2 .AND. (.NOT. EOF) STOR # TO rec:no STOR bcode TO mbcode STOR baddr TO mbaddr STOR $(bcity,1,22) + ' ' + $(bcity,23,5) TO mbcity SELE SECONDARY USE &dr.:tenant SET INDEX TO &dr.:codea FIND &mbcode STOR $(bcode,1,2) TO mtcode DO WHIL mtcode = mbcode .AND. (.NOT. EOF) IF tenant <> ' ' ? 'SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue..........' SET CONSOLE OFF WAIT SET CONSOLE ON RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code CASE command = 'C' * tenant delinquency report STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant SET INDEX TO &dr.:codea GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR 0 TO counter1 STOR t TO more1 STOR 0 TO additup SET MARGIN TO 3 LOCA FOR trentd > 0 IF EOF STOR f TO more1 ENDI EOF DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname ? ' TENANT DELINQUENCY LIST' ? ' ' ? 'Report of ' +date() + '.' STOR lineno + 4 TO l ' ? TRIM(tenant) + ' ' + tunit ? mbaddr ? mbcity ? ' ' ENDI tenant SKIP STOR $(bcode,1,2) TO mtcode ENDD WHILE mtcode SELE PRIMARY USE &dr.:build SET INDEX TO &dr.:code GO rec:no SKIP IF EOF STOR f TO more2 ENDI ENDD WHILE more2 .AND. (.NOT. EOF) EJEC SET PRINT OFF SET ALTERNATE OFF RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code CASE command = 'E' * vacancy report STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant SET INDEX TO &dr.:codea GO TOP * initialize variables STOR 0 TO pageno STOR 0 TO counter STOR 0 TO counter1 STOR 0 TO additup SET MARGIN TO 3 LOCA FOR tenant = ' ' IF .NOT. EOF STOR t TO more1 ELSE STOR f TO more1 ENDI .NOT. EOF DO WHIL more1 * do page counter etc STOR  pageno STOR 0 TO counter STOR 0 TO counter1 STOR 0 TO additup SET MARGIN TO 1 GO TOP STOR t TO more1 DO WHIL more1 * do page counter etc STOR pageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' IF pageno = 1 ? coname ? ' LEASE EXPIRATION AND FLAG REPORT' ? ' ' ? 'Report of ' +date() + '.' STOR lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Tenant ' + 'Code '+ ' Unit ' + ' Flag'+' Expires'+ ' Rent' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file DO WHIL .NOT. EOF STOR $(texpir,7,2) + $(texpir,1,2) + $(texpir,4,2) TO mwxpir STOR $(tflag,7,2) + $(tflag,1,2) + $(tflag,4,2) TO flagex IF flagex = ' ' Spageno + 1 TO pageno STOR 4 TO lineno ERAS ? ' ' * and write TITLE IF pageno = 1 ? coname ? ' VACANCY REPORT' ? ' ' ? 'Report of ' +date() + '.' STOR lineno + 4 TO lineno ENDI pageno = 1 ? ' ' + 'PAGE ' + STR(pageno,2) ? ' Building ' + 'Code '+ 'Unit ' + ' Last Rent' ? "----------------------------------------------------------------------------" ? ' ' * now fill up rest of page to 50 lines with entries DO WHIL lineno < 50 * now do a page if not end of file ? baddr + ' ' + bcode + ' ' + tunit + ' ' + STR(trent,9,2) STOR lineno +1 TO lineno STOR additup + trent TO additup STOR counter1 + 1 TO counter1 CONT IF EOF STOR f TO more1 STOR 60 TO lineno ENDI not EOF ENDD while lineno < 50 ? ' ' ? "-------------------------------------------------TORE '999999' TO flagex ENDIF flagex IF VAL(mwxpir) < VAL(expdate) .OR. VAL(flagex) < VAL(expdate) ? tenant + ' ' + bcode + ' ' + tunit +' '+ tflag +' '+ texpir +' ' + STR(trent,9,2) STOR lineno +1 TO lineno STOR additup + trent TO additup STOR counter1 + 1 TO counter1 ENDI VAL(mwexpir) SKIP ENDD WHILE .NOT. EOF STOR f TO more1 STOR 60 TO lineno ENDD while lineno < 50 ? ' ' ? "----------------------------------------------------------------------------" ? ' ' ? ' TOTAL FLAGGED AND/OR EXPIRING LEASES: ' + STR(counter1,3) ? ' TOTAL DOLLAR AMOUNT OF LEASES: $' + STR(additup,10,2) ? ' ' ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue..........' SET CONSOLE OFF WAIT SET CONSOLE ON RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' '---------------------------" ? ' ' ? ' TOTAL NUMBER OF VACANCIES: ' + STR(counter1,3) ? ' TOTAL DOLLAR AMOUNT VACANCIES: $' + STR(additup,10,2) ? ' ' ENDD more1 * if it was on turn it off EJEC SET PRINT OFF SET ALTERNATE OFF ? ' Hit any key to continue................' SET CONSOLE OFF WAIT SET CONSOLE ON RELE ALL ERAS STOR t TO more STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code CASE command = 'F' * lease expiration report STOR CHR(PEEK(063)) TO dr SELE SECONDARY USE &dr.:tenant SET INDEX TO &dr.:codea ERAS STOR date() to exdate @ 10,10 SAY 'What is the cutoff date for the report ? ' @ 10,55 GET exdate PICTURE '99/99/99' READ STOR $(exdate,7,2) + $(exdate,1,2) + $(exdate,4,2) TO expdate * initialize variables STOR 0 TO TO filename STOR '?' TO select STOR CHR(PEEK(063)) TO dr SELE PRIMARY USE &dr.:BUILD SET INDEX TO &dr.:code CASE command = '?' ERAS TEXT R E P O R T M E N U H E L P F I L E The various reports are self explanatory. You should note, however, that the rent bills must be sent to the printer. All of the other reports can be sent to the printer, viewed on screen or written to a disk file (or any combination thereof). A certain amount of customization may be required for your bills and for your labels. All of this is pretty well set forth in the program text. (Type REPORT.BLD to find the correct name of the report program you must edit.) We assume that the rent bills will use the UARCO form we are using. If that is not the case, you will have to adjust it, but adjustments are rather easy. You can also print the form on plain paper. The ledger and journal printing programs have a module to input and center text. Please hit any 3,61 SAY bcode @ 4,10 SAY $(bcity,1,20) @ 4,44 SAY $(bcity,21,2) @ 4,61 SAY $(bcity,23,5) @ 6,10 SAY $(bdata,1,25) @ 6,61 SAY $(bdata,26,13) @ 7,10 SAY $(bdata,39,2) @ 7,61 SAY $(bdata,41,3) @ 9,10 SAY $(bdata,44,8) @ 9,61 SAY bprice USING '$99,999,999.99' @ 12,10 SAY remit @ 12,61 SAY phone @ 13,10 SAY remitad @ 14,10 SAY remitc @ 15,10 SAY checks @ 17,10 SAY bnotes @ 18,61 SAY bupdate @ 20, 4 SAY prompt1 @ 21, 4 SAY prompt2 @ 22, 4 SAY prompt3 @ 22,56 SAY "WHAT NEXT ?" @ 22,70 GET command PICTURE '!' READ * perform selected functions DO CASE CASE (command = 'B' .OR. command = ',' ) * move backwards one record SKIP -1 CASE command = 'D' IF * RECA ELSE DELE ENDI * CASE (command = 'F' .OR. command = '.' ) * move forward one record SKIP CASE command = 'C' STOR # TO rec:number @ 20,00 @ 21,00 @ 22,00 @ 20,12 SAY "Please enter Code number" @ 20,38 GET name PICTURE '99' READ * look for matching record STOR CHR key to return to the menu ENDT SET CONSOLE OFF WAIT SET CONSOLE ON CASE (command = 'G' .OR. COMMAND = 'Q') STOR f TO more ENDC SET PRINT OFF SET ALTERNATE OFF ENDD while more RELE ALL STOR t TO keepitup STOR t TO more STOR t TO first STOR 0 TO box RETU * DATE 07/20/84 17:56 * search.cmd IF moveit REST from move additive FIND &linker RELE linker STOR f TO moveit ENDI STOR t TO first STOR t TO more DO WHIL more IF first * set up screen and prompts ERAS STOR 'Building Search Menu' TO mode @ 0,26 SAY mode @ 1, 0 SAY " -------------------------------------------------" @ 1,50 SAY "-----------------------------" @ 3, 1 SAY "Address:" @ 3,55 SAY "Code:" @ 4, 4 SAY "City:" @ 4,37 SAY "State:" @ 4,56 SAY "Zip:" @ (PEEK(063)) to dr SET INDEX TO &dr.:code FIND &name * if it isn ' t in the files IF # = 0 * say that name can ' t be found @ 20,00 @ 20,12 SAY name+ ' is not in the file' @ 22,12 SAY 'Press ENTER to Continue' SET console OFF WAIT SET console ON GO rec:number ENDI # = 0 CASE COMMAND = 'P' DO PRINT.bld CASE command = 'E' DO EDIT.bld CASE command = 'A' DO search1.bld CASE command = 'G' RELE all STOR bcode TO linker SAVE TO move STOR t TO first STOR 6 TO box STOR t TO keepitup RETU CASE command = 'Q' STOR t TO keepitup STOR t TO first STOR 1 TO box RETU ENDC RELE name * loop back again ENDD WHILE more * DATE 08/01/84 18:50 * detailed string search STOR CHR(peek(063)) TO dr SELE PRIMARY USE &DR.:build SET INDEX TO ERAS @6, 1 SAY "Manager:" @ 6,54 SAY "Phone:" @ 7, 4 SAY "Type:" @ 7,44 SAY "Number of Units:" @ 9, 0 SAY "Acquired:" @ 9,45 SAY "Purchase Price:" @ 11,28 SAY "Send Rental Payments To:" @ 12,00 SAY "Company:" @ 12,54 SAY "Phone:" @ 13,01 SAY "Street:" @ 14,03 SAY "City:" @ 15,00 SAY "Chks To:" @ 17,02 SAY "Notes:" @ 18,52 SAY "Updated:" @ 19, 0 SAY " -------------------------------------------------" @ 19,50 SAY "-----------------------------" ENDI first STOR f TO first STOR ' ' TO name STOR 'Search by ode number or ny part of building database' TO prompt1 STOR 'ackward, orward, elete/recall, dit or