IMD 1.16: 31/05/2007 20:34:56 FOGCPM.143 --FOGCPM143CHECKREGBAS@ CHECKREGDOC~ CORINDENBAS* CORRBAL BAS!"#$CORRECT BAS%PRINT BAS&'()*+,-./012345PRINT BAS$6789:-09-00 86 ;PROFILE SUB<STARTER BAS =>A-CLIST BAS ?@ACCOUNT BAS ABACCOUNTS ,CDEFGHBANK BASIJKMULTREG1BASLMNOPQRSTUVWXYZ[MULTREG1BASQ\]^_`abcdef-CPM143 DOCghijMULTREG1DOC:klmnopqrMULTREG DTA stMULTREG MSG uvSAVE-MB2COMwSAVE20 DOC=xyz{|}~UNPROTECDOC MBASIC-PDOCMEASURE BAS+METRIC BAS1CONVERT BAS!ENDROUTEBASENDROUTEDOCGANTTX BAS)LATDEC BAS.LATDEC DOCMONEY BASJMONEY DOCThis is the disk name. 10 DEFDBL A,X 20 DIM A(999):DIM A$(210):DIM X$(210):DIM Y$(210) 30 'CHECK REGISTER PROGRAM 40 'COPYRIGHT HARRY HAYMAN 50 '1985 60 PRINT CHR$(26):PRINT:PRINT:PRINT 70 PRINT TAB(20) "CHECK REGISTER PROGRAM" 80 PRINT TAB(17) "COPYRIGHT HARRY HAYMAN - 1985" 90 PRINT:PRINT:PRINT TAB(15) STRING$(33,"*") 100 PRINT TAB(16) "MENU FOR CHECK REGISTER PROGRAM" 110 PRINT TAB(15) STRING$(33,"*") 120 PRINT 130 PRINT TAB(10)"1. TO ENTER DEPOSITS OR CHECKS" 140 PRINT TAB(10)"2. TO ENTER AND CORRECT ACCOUNTS" 150 PRINT TAB(10)"3. TO START THE NEW YEAR" 160 PRINT TAB(10)"4. TO PRINT OUT LIST OF ACCOUNTS" 170 PRINT TAB(10)"5. TO PRINT SELECTED INFORMATION" 180 PRINT TAB(10)"6. TO CORRECT INDIVIDUAL ENTRIES" 190 PRINT TAB(10)"7. TO BALANCE ACCOUNT AGAINST BANK STATEMENT" 200 PRINT TAB(10)"8. TO CORRECT BANK BALANCES" 210 PRINT TAB(10)"9. TO END PROGRAM" 220 PRINT:PRINT:PRINT 230 PRINT " MAKE YOUR SELECTION " 240 INPUT A 245 IF A<1 GOTO 230 246 IF A>9 GOTO 230  250 ON A GOTO 300,320,260,360,410,450,490,550,520 260 PRINT CHR$(26):PRINT:PRINT:PRINT 270 PRINT TAB(10) "READING PROGRAM TO START THE NEW YEAR" 280 FOR N=1 TO 2500:NEXT N 290 RUN "STARTER" 300 PRINT CHR$(26):PRINT:PRINT:PRINT 310 GOTO 580 320 PRINT CHR$(26):PRINT:PRINT:PRINT 330 PRINT TAB(10) "READING PROGRAM TO ENTER ACCOUNTS" 340 FOR N=1 TO 2500:NEXT N 350 RUN "ACCOUNT" 360 RUN "A/CLIST" 370 PRINT CHR$(26):PRINT:PRINT:PRINT 380 PRINT TAB(10)"READING PROGRAM TO CORRECT LIST OF ACCOUNTS" 390 FOR N=1 TO 2500:NEXT N 400 RUN "CORRECT" 410 PRINT CHR$(26):PRINT:PRINT:PRINT 420 PRINT TAB(10) "READING PRINT PROGRAM" 430 FOR N=1 TO 2000:NEXT N 440 RUN "PRINT" 450 PRINT CHR$(26):PRINT:PRINT:PRINT 460 PRINT TAB(10) "READING PROGRAM TO CORRECT INDIVIDUAL ENTRIES" 470 FOR N=1 TO 1000:NEXT N 480 RUN "CORINDEN" 490 PRINT CHR$(26):PRINT:PRINT:PRINT 500 PRINT TAB(10) "READING PROGRAM TO BALANCE ACCOUNT AGAINST BANK STATEMENT" 510 RUN "BANK" 520 PRINT CHR$(26):PRINT:PRINT:PRINT 530 PRINT TAB(10) "PROGRAM IS FINISHED" 540 SYSTEM 550 PRINT CHR$(26):FOR N=1 TO 10:PRINT:NEXT N 560 PRINT TAB(10) "READING PROGRAM TO CORRECT BANK BALANCE AND ENTRIES" 570 RUN "CORRBAL" 580 GOSUB 1700 590 GOSUB 1450 600 'BLANK 610 'CHECK REGISTER PROGRAM 620 'COPYRIGHT HARRY HAYMAN - 1985 630 'SUB PROGRAM - TO ENTER CHECKS OR DEPOSITS 640 PRINT CHR$(26) 650 PRINT TAB(10) "CHECK REGISTER PROGRAM - COPYRIGHT HARRY HAYMAN - 1985" 660 PRINT TAB(30)"NEW ENTRIES" 670 PRINT TAB(24) "ALL ENTRIES IN CAPS" 680 PRINT TAB(13) "TO EXIT PROGRAM ENTER 0 IN THE FIRST ENTRY" 690 IMAGE$="\ \\ \$$##,###.##" 700 D$="BALANCE" 710 PRINT 720 PRINT USING IMAGE$;D$;Y$(1);CVD(X1$) 730 PRINT USING IMAGE$;D$,Y$(2);CVD(X2$) 740 PRINT USING IMAGE$;D$;Y$(3);CVD(X3$) 750 A1$="":A2$="":A3$="":A4=0:A(5)=0:A6=0:A(7)=0:A8=0:A(9)=0:A10=0:A(11)=0:C$="" 760 GOSUB 2040 770 INPUT "1. CHECK NUMBER ";A1$ 780 IF A1$="0" THEN GOTO 30 790 LINE INPUT "2. DATE ";A2$ 800 INPUT "3. PAYEE ";A3$ 810 INPUT "4. AMOUNT (DEPOSITS SHOULD BE PROCEEDED BY - ";A4 820 N=5:INPUT "5. ACCOUNT TO BE DEBITED ";A(N) 830 IF A(N)<4.1 THEN GOTO 930 840 IF A4<0 THEN GOTO 1000 850 PRINT CHR$(27)+"="+CHR$(51) 860 PRINT "YOU HAVE NOT ENTERED A BANK ACCOUNT IN THE FIRST ITEM THEREFOR" 870 PRINT " THE FIRST ITEM MUST BE A '-' ITEM" 880 FOR N=1 TO 1700:NEXT N 890 PRINT CHR$(27)+"="+CHR$(44) 900 FOR N=1 TO 9:PRINT SPACE$(75):NEXT N 910 PRINT CHR$(27)+"="+CHR$(44) 920 GOTO 810 930 IF A(N)<3.1 THEN GOTO 1000 940 IF A4<0 THEN GOTO 1000 950 PRINT "YOU HAVE ENTERED THE MEMO ITEM AS A CHARGE" 960 PRINT "THEREFOR EACH OF THE OTHER ITEMS MUST BE A CHARGE" 970 PRINT "IF THIS IS NOT SATISFACTORY ENTER 'NO'" 980 INPUT K$ 990 IF K$="NO" GOTO 590 991 PRINT CHR$(27)+"="+CHR$(46) 992 FOR N=1 TO 4:PRINT SPACE$(75):NEXT N 993 PRINT CHR$(27)+"="+CHR$(46) 1000 IF Y$(A(N))="" THEN PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 5." 1010 IF Y$(A(N))="" THEN GOTO 820 1020 PRINT TAB(20) Y$(A(N)) 1030 INPUT "6. AMOUNT TO BE CHARGED ";A6 1040 N=7:INPUT "7. ACCOUNT TO BE CHARGED ";A(N) 1050 PRINT TAB(20) Y$(A(N)) 1060 IF Y$(A(N))>"!" THEN GOTO 1130 1070 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 7" 1080 FOR N=1 TO 2000:NEXT N 1090 PRINT CHR$(27)+"="+CHR$(48) 1100 FOR N=1 TO 3:PRINT SPACE$(80):NEXT N 1110 PRINT CHR$(27)+"="+CHR$(48) 1120 GOTO 1040 1130 IF A4>0 THEN A6=A6*-1 1140 IF A4+A6=0 THEN GOTO 1860 1150 INPUT "8. AMOUNT TO BE CHARGED ";A8 1160 N=9:INPUT "9. ACCOUNT TO BE CHARGED ";A(N) 1170 PRINT TAB(20) Y$(A(N)) 1180 IF Y$(A(N))>"!" THEN GOTO 1250 1190 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 9" 1200 FOR N=1 TO 2000:NEXT N 1210 PRINT CHR$(27)+"="+CHR$(51) 1220 FOR N=1 TO 3:PRINT SPACE$(75):NEXT N 1230 PRINT CHR$(27)+"="+CHR$(51) 1240 GOTO 1160 1250 IF A4>0 THEN A8=A8*-1 1260 IF ABS(A4+A6+A8)<.01 THEN GOTO 1860 1270 INPUT "10. AMOUNT TO BE CHARGED ";A10 1280 IF A4>0 THEN A10=A10*-1 1290 IF ABS(A4+A6+A8+A10)>.009 THEN GOTO 1410 1300 N=11:INPUT "11. ACCOUNT TO BE CHARGED ";A(N) 1310 PRINT TAB(20) Y$(A(N)) 1320 IF Y$(A(N))>"!" THEN GOTO 1390 1330 PRINT "YOU HAVE ENTERED AN UNASSIGNED ACCOUNT - PLEASE REENTER ITEM 11" 1340 FOR N=1 TO 2000:NEXT N 1350 PRINT CHR$(27)+"="+CHR$(51) 1360 FOR N=1 TO 3:PRINT SPACE$(75):NEXT N 1370 PRINT CHR$(27)+"="+CHR$(51) 1380 GOTO 1300 1390 IF ABS(A4+A6+A8+A10)<.01 THEN GOTO 1860 1400 PRINT CHR$(26):PRINT:PRINT:PRINT 1410 PRINT TAB(10) "THE TOTAL OF ALL ENTRIES DOES NOT ZERO OUT" 1420 PRINT TAB(12) " PLEASE REENTER CORRECTLY" 1430 FOR N=1 TO 3000:NEXT N 1440 GOTO 590 1450 OPEN "R",#1,"B:BALANCE",58 1460 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 1470 GET #1,1 1480 CLOSE #1 1490 X1=CVD(X1$):X2=CVD(X2$):X3=CVD(X3$):X4=CVD(X4$):X5=CVD(X5$):X6=CVD(X6$) 1500 ZZ=VAL(ZZ$) 1510 RETURN 1520 OPEN "R",#1,"B:BALANCE",58 1530 ZZ=ZZ+1 1540 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS Z1$ 1550 LSET X1$=MKD$(X1):LSET X2$=MKD$(X2):LSET X3$=MKD$(X3) 1560 LSET X4$=MKD$(X4):LSET X5$=MKD$(X5):LSET X6$=MKD$(X6) 1570 LSET Z1$=STR$(ZZ) 1580 PUT #1,1 1590 CLOSE #1 1600 RETURN 1610 OPEN "R",#1,"B:ENTRIES",136 1620 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 1630 LSET AA1$=A1$:LSET AA2$=A2$:LSET AA3$=A3$:LSET AA4$=STR$(A4) 1640 LSET AA5$=STR$(A(5)):LSET AA6$=STR$(A6):LSET AA7$=STR$(A(7)) 1650 LSET AA8$=STR$(A8):LSET AA9$=STR$(A(9)):LSET AA10$=STR$(A10) 1660 LSET AA11$=STR$(A(11)):LSET AC$=C$:LSET AD$="N" 1670 PUT #1,ZZ 1680 CLOSE #1 1690 RETURN 1700 Z=1 1710 PRINT CHR$(26):FOR N=1 TO 10:PRINT:NEXT N 1720 PRINT TAB(20) "READING ACCOUNTS" 1730 PRINT CHR$(27) CHR$(46)+"0" 1740 PRINT CHR$(27)+"="+CHR$(47) 1750 PRINT TAB(25)Z 1760 OPEN "R",#1,"B:ACCOUNTS",28 1770 FIELD #1,3 AS CC1$,25 AS CC2$ 1780 GET #1,Z 1790 IF EOF(1) GOTO 1840 1800 CLOSE #1 1810 X$(Z)=CC1$:Y$(Z)=CC2$ 1820 Z=Z+1 1830 GOTO 1740 1840 CLOSE #1:PRINT CHR$(27) CHR$(46)+"2" 1850 RETURN 1860 LINE INPUT "REMARKS ";C$ 1870 INPUT "IS THE ABOVE ENTRY CORRECT - YES OR NO";D$ 1880 IF D$="NO" THEN GOTO 590 1890 IF A(5)=1 THEN X1=X1-A4 1900 IF A(5)=2 THEN X2=X2-A4 1910 IF A(5)=3 THEN X3=X3-A4 1920 IF A(7)=1 THEN X1=X1-A6 1930 IF A(7)=2 THEN X2=X2-A6 1940 IF A(7)=3 THEN X3=X3-A6 1950 IF A(9)=1 THEN X1=X1-A8 1960 IF A(9)=2 THEN X2=X2-A8 1970 IF A(9)=3 THEN X3=X3-A8 1980 IF A(11)=1 THEN X1=X1-A10 1990 IF A(11)=2 THEN X2=X2-A10 2000 IF A(11)=3 THEN X3=X3-A10 2010 GOSUB 1520 2020 GOSUB 1610 2030 GOTO 590 2040 OPEN "R",#1,"B:ENTRIES",136 2050 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 2060 ON ERROR GOTO 2110 2070 GET #1,ZZ 2080 CLOSE #1 2090 PRINT "LAST ENTRY WAS # ";ZZ;" CHECK NO. ";AA1$;" PAYEE: ";AA3$ 2100 RETURN 2110 CLOSE #1:GOTO 770 Z 2080 CLOSE #1 2090 PRINT "LAST ENTRY WAS # ";ZZ;" CHECK NO. ";AA1$;" PAYEE: ";AA3$ 2100 RETURN 2110 CLOSE TH CHEC REGISTE PROGRAM COPYRIGH HARR HAYMA - 1985 GENERA INFORMATION: I yo us thi progra an fin i o value pleas forwar $1 to: Harr Hayman 73 Whitake Terrace Silve Spring M 20901 U.S.A. Telephone (301) 434-1990 Regardles o whethe yo pa th $1 charg fo th us o thi program yo ar encourage t cop an shar i wit othe users. I yo hav problem wit th us o thi program pleas cal m a (301) 434-199 o writ t m a th abov address wil tr t hel yo wit you problem. Anyon ma reques cop o thi progra b sendin blan dis t th abov addres wit a addresed postage-pai retur mailer Th chec registe progra i men driv progra t maintai u t thre堠 checkin砠 accounts Th堠 followin砠 ar堠 it specifications: Maintain u t thre checkin accounts Account 1, an 3 On mem accoun (accoun 4) U t 99 entrie pe disk U t 19 othe accounts Maximu dolla amoun pe accoun $99,999.99 Al Entrie mus b i CAPS Th program ar writte i MBasi fo th Osborn Executive Al program ar store o th disk Th entries accoun balances an accoun name an number ar store o th disk .PA .HE The Check Register Program Th firs ste t star you chec registe i t establis th name o accounts lis o account i o you progra disk Cop thi lis i th fil name "Accounts t dis usin NSW o PIP Selec men ite t prin ou thi lis o accounts Yo ma chang an o th accoun name o ad ne account b men ite "T correc listin o accounts" Thi wil cu yo t giv th accoun numbe an name Th numbe mus b betwee an 199 Th nam ma no b longe tha 2 characters whic include spaces. T star you cop o CHECKRE se th rese butto an pres return You cop o CHECKRE shoul star automatically o a th CP promp typ i "MBASIà CHECKREG/S:200" D no typ i th quotatio marks Thi wil tak yo int MBASIC Loa CHECKRE an se th fil lengt t 200 Th actua maximu fil lengt i 13 characters. Startin you chec register: Selec men ite "T star th ne year" Thi wil as yo fo th balanc i you checkin accoun an th balanc i th bank I i suggeste tha bot thes amount b identical sinc i ther ar uncleare checks yo wil hav n wa o enterin the whe the clear Thi wil as fo th balanc o eac checkin account Th nam yo giv whe yo ente th accoun name fo 1 2 an 3 shoul b th name o you ban o accounts I yo mak mistak i enterin th amoun i th bank yo ca restar men ite 3 I however yo wan t chang thi amoun later afte makin entrie t you chec register yo ca chang th amoun i th ban balanc b usin men selectio 8 "T correc Ban Balances" Men selectio wil no affec you entries Men selectio als list th las entr yo made I yo chang thi numbe fo lowe number th nex entr yo mak wil writ ove th previou entries Thu i th entr wa 14 an yo chang thi t 140 th nex entr yo mak wil b 141 the 142 etc Yo wil los th ol entrie fro l4 t 145 Thi wil no chang you ban balance Thu i yo writ ove entries b sur t zer the ou usin men ite "T correc individua entries" befor yo chang th numbe i selectio 9 T Correc Individua Entries: Thi i men ite 6 Whe yo correc individua entrie the mus balanc ou t zero I yo chang th individua entr i wil correc you ban balanc accordingly I wil no accep a entr whic doe no balanc ou t zero Men ite 6 T Correc Individua Entries correct you ban balanc whe yo mak changes .PA T Ente Deposit o Checks: Thi i men ite 1 Whe yo star thi ite i print ou th balanc i you thre checkin account an i print ou th entr number chec number an paye o th las entr yo made Yo thu kno whic entr wa las made I ask yo fo th chec number Thi ca b th numbe o th check I ther wa n chec numbe yo ma leav i blank Al entrie ar file an printe b entr numbe no chec number Th nex ite i th date Th dat shoul b th mont writte out followe b th date an year Th mont shoul b abbreviate suc as "Apr 14 1985" B sur t us character fo th month sinc thi i use late i yo selec printin onl fo on month Thu whe yo selec Januar a th mont t b printe i compare o th firs thre character (i.e JAN). Al entrie shoul b i CAPS Th dat ma no b mor tha 1 character includin punctuatio an spaces Th nex entr i payee Thi shoul b i CAPS 2 characters includin punctuatio an spaces i provide fo th payee Th nex entr i amount Maximu amoun allowe i $99,999.99 I yo excee thi amoun th leas significan digit ar dropped Th nex entr i account thi mus b numbe u t 199 Unassigne account ma no b used I yo attemp t selec a unassigne accoun i wil b rejected I th firs entr i deposit i mus b proceede b minu (- sign Th tota o th firs entr an th thre othe entrie permitted mus equa zero I th firs entr i no proceede b minu the th othe entrie ar multiplie b -1 Th sign fo th othe entrie ar inserte automatically I th firs entr i minu the n chang i mad i th sig o th followin entries Onl whe th firs entr i preceede b - sig ma yo inser minu sig i fron o th othe entrie i the ar t b considere a deposit o credits. I th firs entr i no ban entr (account t 3 an no mem entr i mus b minu (- entry Eac entr ca b entere int u t fou accounts Th entrie mus balanc ou t zero Remembe i th firs entr i t ban accoun an i i charg t th ban accoun th sign o th othe entrie ar changed Thu charg o $10 t ban accoun i entere a $10 an al othe entrie ar multiplie b -1. On furthe warning Ther i onl on characte allowe fo a ite whic i cleared Thu i yo ar makin transfe fro on ban accoun t another whe th firs ite i entere a cleare b th bank th othe ite i considere t b cleared I thi i no th cas you ban balanc wil b incorrec i th secon ban account. .PA To Enter and Correct Accounts: Thi i men selectio 2 Whe yo ente thi selectio instruction ar give t chang accounts Jus follo th instruction i th menu I yo hav mad entrie t a accoun d no blan ou th accoun name Jus nam i 'BLANK' T Prin Ou Lis o Accounts: Agai jus follo th men o thi item Yo ca eithe prin i ou o you scree o mak har cop o you printer I yo wan t chang an accoun afte yo se it jus g t men selectio 2. T Prin Selecte Information: Thi i th mos comple progra o th Chec Register I give yo seven selections: 1 Lis Individua Accounts 2 Lis Al Entries 3 Lis Individua Entries 4 Prin Total o Al Accounts 5 Prin Tota o Cleare Items 6. Print Total of Uncleared Items Th printout ca eithe b har cop o printe o you screen Th printou ca lis jus on mont o entrie o al th entries T lis individua account yo selec men ite 1. fro th prin menu The selec th accoun whic yo wis t b printed Yo wil the b aske i yo wan har copy I yo d no answe 'YES the i wil b printe ou o th screen Th nex questio i th date whic i printe o you har copy an th nex questio i i yo wan particula month I yo d no giv date i wil no b printe ou o you har copy I yo d no as fo particula month i wil printou al entrie fo th account Fo you ban account (1 2 o 3 th fina tota wil b you curren ban balance. 1 Lis Individua Accounts. Thi wil firs as yo th accoun numbe yo wis listed The i wil as whethe yo wan hardcopy I yo desir hardcop i wil as i yo wan specifi month. .PA 2 Lis al entries. Thi wil onl b printe ou i hardcop an require 13 colum printer I yo hav a Epso printe i wil automaticall shif th printe t compresse type Therefor yo ca us a 8 colum printe i compresse mod t ge you 13 columns Th progra wil the as i yo wan particula mont printe out I yo wan particula month yo mus inpu th mont a thi time carriag retur wil prin ou al th entries Th listin i onl th entr number th chec number th payee th amoun i th firs entry th accoun numbe o th firs entry whethe th entr ha cleared an th remarks T se th entir entr yo mus us th nex selection 3 Lis Individua Entries 3 Lis Individua Entries Thi wil lis th complet individua entry I firs request th entr numbe o th individua entry I display o th scree th complet entr a yo hav entere it I the ask i yo wan hardcopy I yo answe 'YES' the i print i ou o th printer Yo ar the give fou choices I yo ente zero th progra wil retur yo t th prin menu i yo wan th nex entry jus pres return i yo wan th preceedin entry ente minu sign an i yo wan anothe entry ente th entr number. 4 Prin Total o al Accounts Th firs selectio thi progra give you i whethe yo wan printout I the ask th date an whethe yo wan jus on month' totals I the goe throug al th entrie addin total fo eac account I yo reques jus on month i onl total thos entrie fo tha particula month I yo hav entere 'YES t th reques fo printout th total ar outputte t th printer. 5 Prin Tota o Cleare Items Th firs questio tha i asked i whic checkin account Yo ca onl selec 1 o 3 I wil no accep an othe request I the request whethe yo wan hardcopy I th answe i 'YES i the ask yo whethe yo wan on particula month I yo as fo hardcop o on particula month i display o th screen al th entrie fo tha account bu onl print ou th mont tha yo requested wit th startin balanc an th tota balanc fo th cleare items Thi shoul agre wit th ban balance .PA 6. Print Total of Uncleared Items Th firs questio tha i asked i whic checkin account Yo ca onl selec 1 o 3 I wil no accep an othe request I the request whethe yo wan hardcopy I th answe i 'YES i the ask yo whethe yo wan on particula month I yo as fo hardcop o on particula month i display o th screen al th uncleare entrie fo tha account bu onl print ou th mont tha yo requested wit th curren checkin accoun balanc an th balanc wit th uncleare item deducted. This should agree with the bank balance. 7 En Prin Program Thi selectio wil retur yo t th startin Chec Registe Program. T Balanc Accoun Agains Ban Statement Thi i simpl progra t indicat whethe th particula item ha cleare agains you bank Th firs questio i th entr numbe o th ite whic ha cleared Th complet entr i the displaye an yo ar aske ha th entr cleare you ban o not Yo ar onl permitte on o tw replies 'Y fo Ye i ha cleare o 'N fo N i ha no cleared N othe entr wil b accepted An othe respons wil caus n action Not tha th repl mus b i CAP ( o N) Whe thi respons i give yo ar the returne t th firs screen A thi poin i yo hi th retur ke th nex entr wil b displayed I yo wan th nex entr hi th retur key i yo wan specifi entr ente th entr number I yo wan t retur t th startin menu ente (Th numbe zero) T prin ou al th cleare entrie g t men selectio "5 T Prin Selecte Information an the t men selectio "5 Prin Tota o Cleare Items". .PA Som Do' an Dont's 1 Whe usin thi progra se you keyboar i CAPS. 2 I yo ar enterin credi (- b sur thi i you firs item Yo ma ente mor the on credi ite (- bu th firs ite must b credi (-). 3 I yo excee $99,999.9 th leas significan digit wil be rounde off. 4 D no attemp t excee 99 entrie pe disk I wil b better t star ne dis whe yo excee 97 entries. 5 B carefu whe usin men selectio 8 D no chang entries in this menu selection unless you are sure about it. 6 I yo us men selectio 6 i wil no accep a incorrec change. 7. Yo ma contro (^C i mos operations sinc th informatio displaye o th scree ha onl bee rea fro you dat disk Whe yo complet th operatio i i writte t you dat disk Th Prin men (5. onl read fro disk I doe no chang you dat disk Men Ite 1 doe no writ t dis unti yo answe 'YES t th fina questio "I th abov entr correct" 'NO wipe ou th dat an return yo t th start. 8 D no us men ite 3 'T STAR TH NE YEAR' I wil wip ou you dat disk I yo us thi men ite onl pu you account list on the data disk. This is always retained. fina remark hav use thi progra fo mysel fo mor tha si months Bug continu t com up Pleas advis m i ther ar an bug yo find o i yo fee tha othe change shoul b mad i th program wil attemp t oblige Sinc th progra i writte i Basic yo ca attemp t chang i yourself Pleas giv m th th benefi o you us o th progra b writin t me: Harry Hayman 738 Whitaker Terrace Silver Spring, MD 20901 (Spring - Summer and Fall Telephone) (301) 434-1990 (Winter telephone) (305) 483-3073 'T STAR TH NE YEAR' I wil wip ou you dat disk I yo us thi men ite onl pu you account list on the data disk. This is always retained. fina remark hav use thi progra fo mysel fo mor tha si mon5 DIM X$(210):DIM Y$(210) 7 DEFDBL A,B,X 10 'CHECK REGISTER PROGRAM 20 'CORINDEN PROGRAM 30 'COPYRIGHT HARRY HAYMAN -1985 35 GOSUB 2000 40 PRINT CHR$(26):PRINT:PRINT:PRINT 50 PRINT TAB(20) "PROGRAM TO CORRECT INDIVIDUAL ENTRIES" 60 PRINT TAB(20) " COPYRIGHT - HARRY HAYMAN - 1985" 70 PRINT:PRINT:PRINT TAB(23)"********************************":PRINT 80 PRINT TAB(17) "TO END PROGRAM TYPE 0 FOR ITEM TO BE CHANGED" 90 PRINT:PRINT TAB(23)"********************************":PRINT:PRINT 100 INPUT "ENTER ENTRY NUMBER OF ITEM TO BE CHANGED";A 110 IF A=0 THEN RUN "CHECKREG" 120 'READ ENTRY FROM 130 OPEN "R",#1,"B:ENTRIES",136 140 GOSUB 820 150 GET #1,A 155 IF EOF(1) GOTO 1500 160 CLOSE #1 170 AB1$=AA1$:AB2$=AA2$:AB3$=AA3$:AB4$=AA4$:AB5$=AA5$:AB6$=AA6$:AB7$=AA7$ 180 AB8$=AA8$:AB9$=AA9$:AB10$=AA10$:AB11$=AA11$:AC1$=AC$:AD1$=AD$ 190 PRINT CHR$(26):PRINT:PRINT:PRINT 200 A5=VAL(AA5$):A4=VAL(AA4$):A6=VAL(AA6$):A7=VAL(AA7$):A8=VAL(AA8$):A9=VAL(AA9$):A10=VAL(AA10$):A11=VAL(AA11$) 210 PRINT "1. CHECK NUMBER ";AB1$ 220 PRINT "2. DATE ";AB2$ 230 PRINT "3. PAYEE ";AB3$ 240 PRINT "4. AMOUNT (DEPOSITS SHOULD BE PRECEEDED BY -) ";AB4$ 245 A5=VAL(AB5$) 250 PRINT "5. ACCOUNT TO BE DEBITED ";AB5$,Y$(A5) 260 PRINT 270 PRINT "6. AMOUNT TO BE CHARGED ";AB6$ 275 A7=VAL(AB7$) 280 PRINT "7. ACCOUNT TO BE CHARGED ";AB7$,Y$(A7) 290 PRINT 300 PRINT "8. AMOUNT TO BE CHARGED ";AB8$ 305 A9=VAL(AB9$) 310 PRINT"9. ACCOUNT TO BE CHARGED ";AB9$,Y$(A9) 320 PRINT 330 PRINT "10. AMOUNT TO BE CHARGED ";AB10$ 335 A11=VAL(AB11$) 340 PRINT "11. ACCOUNT TO BE CHARGED ";AB11$,Y$(A11) 350 PRINT 360 PRINT "12. REMARKS ";AC1$ 370 PRINT "13. HAS CHECK CLEARED ";AD1$ 380 INPUT "IS THE ABOVE ENTRY CORRECT ";Q$ 390 IF Q$="YES" THEN GOTO 1310 400 INPUT "NUMBER OF ENTRY TO BE CHANGED";Q 410 LINE INPUT "WHAT SHOULD THIS ENTRY BE ";P$ 420 IF Q=1 THEN GOSUB 560 430 IF Q=2 THEN GOSUB 580 440 IF Q=3 THEN GOSUB 600 450 IF Q=4 THEN GOSUB 620 460 IF Q=5 THEN GOSUB 640 470 IF Q=6 THEN GOSUB 660 480 IF Q=7 THEN GOSUB 680 490 IF Q=8 THEN GOSUB 700 500 IF Q=9 THEN GOSUB 720 510 IF Q=10 THEN GOSUB 740 520 IF Q=11 THEN GOSUB 760 530 IF Q=12 THEN GOSUB 780 540 IF Q=13 THEN GOSUB 800 550 GOTO 190 560 AB1$=P$ 570 RETURN 580 AB2$=P$ 590 RETURN 600 AB3$=P$ 610 RETURN 620 AB4$=P$ 630 RETURN 640 AB5$=P$ 650 RETURN 660 AB6$=P$ 670 RETURN 680 AB7$=P$ 690 RETURN 700 AB8$=P$ 710 RETURN 720 AB9$=P$ 730 RETURN 740 AB10$=P$ 750 RETURN 760 AB11$=P$ 770 RETURN 780 AC1$=P$ 790 RETURN 800 AD1$=P$ 810 RETURN 820 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 830 RETURN 840 OPEN "R",#1,"B:BALANCE",58 850 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 860 GET #1,1 870 CLOSE #1 880 X1=CVD(X1$):X2=CVD(X2$):X3=CVD(X3$) 890 IF A5=1 THEN X1=X1+A4 900 IF A5=2 THEN X2=X2+A4 910 IF A5=3 THEN X3=X3+A4 920 IF  B5=1 THEN X1=X1-B4 930 IF B5=2 THEN X2=X2-B4 940 IF B5=3 THEN X3=X3-B4 950 IF A7=1 THEN X1=X1+A6 960 IF A7=2 THEN X2=X2+A6 970 IF A7=3 THEN X3=X3+A6 980 IF B7=1 THEN X1=X1-B6 990 IF B7=2 THEN X2=X2-B6 1000 IF B7=3 THEN X3=X3-B6 1010 IF A9=1 THEN X1=X1+A8 1020 IF A9=2 THEN X2=X2+A8 1030 IF A9=3 THEN X3=X3+A8 1040 IF B9=1 THEN X1=X1-B8 1050 IF B9=2 THEN X2=X2-B8 1060 IF B9=3 THEN X3=X3-B8 1070 IF A11=1 THEN X1=X1+A10 1080 IF A11=2 THEN X2=X2+A10 1090 IF A11=3 THEN X3=X3+A10 1100 IF B11=1 THEN X1=X1-B10 1110 IF B11=2 THEN X2=X2-B10 1120 IF B11=3 THEN X3=X3-B10 1130 OPEN "R",#1,"B:BALANCE",58 1140 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 1150 LSET X1$=MKD$(X1):LSET X2$=MKD$(X2):LSET X3$=MKD$(X3) 1160 LSET X4$=X4$:LSET X5$=X5$:LSET X6$=X6$:LSET ZZ$=ZZ$ 1170 PUT #1,1 1180 CLOSE #1 1190 GOTO 40 1200 'TO REENTER CORRECTED ENTRIES 1210 B5=VAL(AB5$):B4=VAL(AB4$):B6=VAL(AB6$):B7=VAL(AB7$):B8=VAL(AB8$):B9=VAL(AB9$):B10=VAL(AB10$):B11=VAL(AB11$) 1220 OPEN "R",#1,"B:ENTRIES",136 1230 GOSUB 820 1240 LSET AA1$=AB1$:LSET AA2$=AB2$:LSET AA3$=AB3$:LSET AA4$=AB4$ 1250 LSET AA5$=AB5$:LSET AA6$=AB6$:LSET AA7$=AB7$:LSET AA8$=AB8$ 1260 LSET AA9$=AB9$:LSET AA10$=AB10$:LSET AA11$=AB11$:LSET AC$=AC1$ 1270 LSET AD$=AD1$ 1280 PUT #1,A 1290 CLOSE #1 1300 GOTO 840 1310 IF ABS(VAL(AB4$)+VAL(AB6$)+VAL(AB8$)+VAL(AB10$))<.01 THEN GOTO 1200 1320 PRINT CHR$(26):PRINT:PRINT:PRINT 1330 PRINT TAB(10) "THE TOTAL OF THE AMOUNT DEBITED MUST EQUAL THE AMOUNT" 1340 PRINT TAB(12) "CHARGED - PLEASE CHECK THE SIGNS OF ALL VALUES" 1350 FOR N=1 TO 2000:NEXT N 1360 GOTO 190 1500 CLOSE #1 1510 PRINT CHR$(26):PRINT:PRINT:PRINT 1520 PRINT TAB(10) "YOU HAVE PASSED THE END OF THE FILE, PLEASE" 1530 PRINT TAB(10) "REENTER YOUR ENTRY NUMBER" 1540 FOR N=1 TO 2000:NEXT N 1550 GOTO 40 2000 PRINT CHR$(26):FOR N=1 TO 6:PRINT:NEXT N 2010 Z=1 2020 PRINT TAB(20) "READING ACCOUNT NUMBER" 2030 OPEN "R",#1,"B:ACCOUNTS",28 2040 FIELD #1,3 AS CC1$,25 AS CC2$ 2050 GET #1,Z 2060 IF EOF(1) GOTO 2200 2070 CLOSE #1 2080 X$(Z)=CC1$:Y$(Z)=CC2$ 2085 PRINT CHR$(27) CHR$(46)+"0" 2090 PRINT TAB(25) CHR$(27)+"="CHR$(40):PRINT TAB(25)Z 2100 Z=Z+1 2110 GOTO 2030 2200 PRINT CHR$(27) CHR$(46)+"2":CLOSE #1 2210 RETURN B(25) CHR$(27)+"="CHR$(40):PRINT TAB280 PUT #1,A 1290 CLOSE #1 1300 GOTO 840 1310 IF ABS(VAL(AB4$)+VAL(AB6$)+VAL(AB8$)+VAL(AB10$))<.01 THEN GOTO 1200 1320 PRINT CHR$(26):PRINT:PRINT:PRINT 1330 PRINT TAB(10) "THE TOTAL OF THE AMOUNT DEBITED MUST EQUAL THE AMOUNT" 1340 PRINT TAB(12) "CHARGED - PLEASE CHECK THE SIGNS OF ALL VALUES" 1350 FOR N=1 TO 2000:NEXT N 1360 GOTO 190 1500 CLOSE #1 1510 PRINT CHR$(26):PRINT:PRINT:PRINT 1520 PRINT TAB(10) "YOU HAVE PASSED THE END OF THE FILE, PLEASE" 1530 PRINT TAB(10) "REENTER YOUR ENTRY NUMBER" 1540 FOR N=1 TO 2000:NEXT N 1550 GOTO 40 2000 PRINT CHR$(26):FOR N=1 TO 6:PRINT:NEXT N 2010 Z=1 2020 PRINT TAB(20) "READING ACCOUNT NUMBER" 2030 OPEN "R",#1,"B:ACCOUNTS",28 2040 FIELD #1,3 AS CC1$,25 AS CC2$ 2050 GET #1,Z 2060 IF EOF(1) GOTO 220010 'CHECK REGISTER PROGRAM 20 'COPYRIGHT HARRY HAYMAN - 1985 30 'CORRBAL TO CORRECT BALANCE IN CHECKING ACCOUNT 34 X=1 35 GOSUB 1100 40 PRINT CHR$(26):PRINT:PRINT:PRINT 50 PRINT TAB(15) STRING$(40,"=") 60 PRINT TAB(18)" COPYRIGHT - HARRY HAYMAN - 1985" 70 PRINT TAB(19) "PROGRAM TO CORRECT BANK BALANCE" 80 PRINT TAB(15) STRING$(40,"=") 130 IMAGE$="\ \ $$###,###.##" 135 IMAG$="\ \ ### 140 A$="1. BALANCE IN ACCOUNT #1" 150 B$="2. BALANCE IN ACCOUNT #2" 160 C$="3. BALANCE IN ACCOUNT #3" 170 D$="4. STARTING BALANCE IN ACCOUNT #1" 180 E$="5. STARTING BALANCE IN ACCOUNT #2" 190 F$="6. STARTING BALANCE IN ACCOUNT #3" 195 G$="7. NUMBER OF ENTRIES ON DISK" 200 PRINT USING IMAGE$;A$,CVD(X1$) 210 PRINT USING IMAGE$;B$;CVD(X2$) 220 PRINT USING IMAGE$;C$;CVD(X3$) 230 PRINT USING IMAGE$;D$;CVD(X4$) 240 PRINT USING IMAGE$;E$;CVD(X5$) 250 PRINT USING IMAGE$;F$;CVD(X6$) 255 PRINT USING IMAG$;G$;VAL(Z1$) 260 INPUT "IS THIS CORRECT";A$ 265 IF A$="YES" THEN X=1 270 IF A$="YES" THEN GOSUB 1000 275 IF A$="YES" THEN GOTO 500 280 INPUT "INPUT ITEM NUMBER TO CHANGE";A 290 INPUT "INPUT THE NEW AMOUNT (WITHOUT $ SIGN)";X 300 IF A=1 THEN X1$=MKD$(X) 310 IF A=2 THEN X2$=MKD$(X) 320 IF A=3 THEN X3$=MKD$(X) 330 IF A=4 THEN X4$=MKD$(X) 340 IF A=5 THEN X5$=MKD$(X) 350 IF A=6 THEN X6$=MKD$(X) 355 IF A=7 THEN Z1$=STR$(X) 400 GOTO 40 500 X=2 510 GOSUB 1100 520 PRINT CHR$(26):PRINT:PRINT:PRINT 530 PRINT TAB(15) STRING$(40,"=") 540 PRINT TAB(19) "COPYRIGHT - HARRY HAYMAN - 1985" 550 PRINT TAB(15) "PROGRAM TO CHANGE ORIGINAL BANK BALANCE" 560 PRINT TAB(15) STRING$(40,"=") 570 A$="1. STARTING BALANCE IN ACCOUNT #1" 580 B$="2. STARTING BALANCE IN ACCOUNT #2" 590 C$="3. STARTING BALANCE IN ACCOUNT #3" 600 D$="4. STARTING BANK BALANCE IN ACCOUNT #1" 610 E$="5. STARTING BANK BALANCE IN ACCOUNT #2" 620 F$="6. STARTING BANK BALANCE IN ACCOUNT #3" 630 G$="7. STARTING ENTRIES ON DISK" 640 IMAGE$="\   \ $$###,###.##" 650 PRINT USING IMAGE$;A$;CVD(X1$) 660 PRINT USING IMAGE$;B$;CVD(X2$) 670 PRINT USING IMAGE$;C$;CVD(X3$) 680 PRINT USING IMAGE$;D$;CVD(X4$) 690 PRINT USING IMAGE$;E$;CVD(X5$) 700 PRINT USING IMAGE$;F$;CVD(X6$) 710 IMAG$="\ \ ### 720 PRINT USING IMAG$;G$;VAL(Z1$) 730 INPUT "IS THIS CORRECT";A$ 735 IF A$="YES" THEN X=2 740 IF A$="YES" THEN GOSUB 1000 750 IF A$="YES" THEN RUN "CHECKREG" 760 INPUT "INPUT ITEM NUMBER TO CHANGE";A 770 INPUT "INPUT THE NEW AMOUNT (WITHOUT $ SIGN)";X 780 IF A=1 THEN X1$=MKD$(X) 790 IF A=2 THEN X2$=MKD$(X) 800 IF A=3 THEN X3$=MKD$(X) 810 IF A=4 THEN X4$=MKD$(X) 820 IF A=5 THEN X5$=MKD$(X) 830 IF A=6 THEN X6$=MKD$(X) 840 IF A=7 THEN Z1$=STR$(X) 850 GOTO 520 1000 OPEN "R",#1,"B:BALANCE",58 1010 FIELD #1,9 AS Y1$,9 AS Y2$,9 AS Y3$,9 AS Y4$,9 AS Y5$,9 AS Y6$,4 AS U1$ 1020 LSET Y1$=X1$:LSET Y2$=X2$:LSET Y3$=X3$:LSET Y4$=X4$:LSET Y5$=X5$:LSET Y6$=X6$:LSET U1$=Z1$ 1030 PUT #1,X 1040 CLOSE #1 1050 RETURN 1100 OPEN "R",#1,"B:BALANCE",58 1110 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS Z1$ 1120 GET 1,X 1130 CLOSE #1 1140 RETURN E",58 1110 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS Z1$ 1"\ \ ### 720 PRINT USING IMAG$;G$;VAL(Z1$) 730 INPUT "IS THIS CORRECT";A$ 735 IF A$="YES" THEN X=2 740 IF A$="YES" THEN GOSUB 1000 750 IF A$="YES" THEN RUN "CHECKREG" 760 INPUT "INPUT ITEM NUMBER TO CHANGE";A 770 INPUT "INPUT THE NEW AMOUNT (WITHOUT $ SIGN)";X 780 IF A=1 THEN X1$=MKD$(X) 790 IF A=2 THEN X2$=MKD$(X) 800 IF A=3 THEN X3$=MKD$(X) 810 IF A=4 THEN X4$=MKD$(X) 820 IF A=5 THEN X5$=MKD$(X) 830 IF A=6 THEN X6$=MKD$(X) 840 IF A=7 THEN Z1$=STR$(X) 850 GOTO 520 1000 OPEN "R",#1,"B:BALANCE",58 1010 FIELD #1,9 AS Y1$,9 AS Y2$,9 AS Y3$,9 AS Y4$,9 AS Y5$,9 AS Y6$,4 AS U1$ 1020 LSET Y1$=X1$:LSET Y2$=X2$:LSET Y3$=X3$:LSET Y4$=X4$:LSET Y5$=X5$:LSET Y6$=X6$:LSET U1$=Z1$ 1030 PUT #1,X 1040 CLOSE #10 'CHECK REGISTER PROGRAM 20 'COPYRIGHT HARRY HAYMAN - 1985 22 'PROGRAM TO CORRECT LIST OF ACCOUNTS 23 'CORRECT 30 PRINT CHR$(26) 35 PRINT TAB(10) "COPYRIGHT HARRY HAYMAN - 1985" 36 PRINT:PRINT:PRINT 40 PRINT TAB(20) "TO CORRECT LIST OF ACCOUNTS" 45 PRINT TAB(10) "TO EXIT PROGRAM ENTER 0 FOR ACCOUNT NUMBER" 50 PRINT:PRINT 60 INPUT "ENTER ACCOUNT NUMBER TO CORRECT";C1$ 65 IF C1$="0" THEN RUN "CHECKREG" 70 INPUT "ENTER NEW DESCRIPTION FOR ACCOUNT";C2$ 80 Z=VAL(C1$) 90 INPUT "IS THIS ITEM CORRECT (YES OR NO)";X$ 100 IF X$="YES" THEN GOTO 120 110 GOTO 30 120 OPEN "R",#1,"B:ACCOUNTS",28 130 FIELD #1,3 AS CC1$,25 AS CC2$ 140 LSET CC1$=C1$:LSET CC2$=C2$ 150 PUT #1,Z 160 CLOSE #1 170 ' 180 ' 190 GOTO 30 200 ' 210 ' #1,3 AS CC1$,25 AS C4 DEFDBL A,P 5 DIM X$(210):DIM Y$(210):DIM P(210) 10 'CHECK REGISTER PROGRAM 20 'PRINT SUB-PROGRAM 30 'COPYRIGHT HARRY HAYMAN - 1985 33 GOSUB 6000 34 IMAGE$="##### \ \ \ \ \ \ $$#####.## \ \" 40 PRINT CHR$(26):PRINT:PRINT:PRINT:AA4=0:E1=0 42 Z=0:AA1$="":AA2$="":AA3$="":A4=0:AD$="" 45 PRINT TAB(10) STRING$(29,"*") 50 PRINT TAB(10)"CHECK REGISTER PRINT PROGRAM" 60 PRINT TAB(10)"COPYRIGHT HARRY HAYMAN - 1985" 65 PRINT TAB(10) STRING$(29,"*") 70 PRINT:PRINT:PRINT 80 PRINT TAB(10) "1. LIST INDIVIDUAL ACCOUNTS" 90 PRINT TAB(10) "2. LIST ALL ENTRIES" 100 PRINT TAB(10) "3. LIST INDIVIDUAL ENTRIES" 110 PRINT TAB(10) "4. PRINT TOTALS OF ALL ACCOUNTS" 115 PRINT TAB(10) "5. PRINT TOTAL OF CLEARED ITEMS" 118 PRINT TAB(10) "6. PRINT TOTAL OF UNCLEARED ITEMS" 120 PRINT TAB(10) "7. END PRINT PROGRAM" 130 INPUT " INPUT NUMBER DESIRED ";AB 140 ON AB GOTO 1000,2000,3000,4000,9000,15000,5000 150 PRINT "YOU HAVE SELECTED AN INCORRECT PROGRAM" 160 FOR N=1 TO 2000:NEXT N 170 GOTO 40 1000 'PROGRAM TO LIST INDIVIDUAL ACCOUNTS' 1005 Q=0:M=1 1010 PRINT CHR$(26):PRINT:PRINT:PRINT 1020 PRINT TAB(10) "PROGRAM TO LIST INDIVIDUAL ACCOUNTS" 1025 PRINT TAB(13) "TO EXIT PROGRAM ENTER 0" 1030 PRINT:PRINT:PRINT 1040 INPUT "WHICH ACCOUNT DO YOU WANT ";A 1043 IF A=0 THEN GOTO 34 1045 GOSUB 13000 1050 INPUT "DO YOU WANT THE ACCOUNT PRINTED (YES OR NO)";B$ 1051 PRNT$=B$ 1052 PRINT CHR$(26):PRINT:PRINT:PRINT 1060 IF B$<>"YES" THEN GOTO 1069 1066 IF B$="YES" THEN GOSUB 12500 1067 INPUT "IF YOU WANT JUST ONE MONTH PRINTED, LIST THE MONTH HERE ";C$ 1068 D$=LEFT$(C$,3) 1069 PRINT "ACCOUNT NUMBER";A,Y$(A) 1070 GOSUB 10000 1071 PRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED" 1076 Z=1 1077 PRINT " NO. NO." 1078 GOSUB 10000 1079 PRINT 1080 GOSUB 8000 1090 IF VAL(AA5$)=A THEN GOSUB 1300 1100 IF VAL(AA7$)=A THEN GOSUB 1400 1110 IF VAL(AA9$)=A THEN GOSUB 1500 1120 IF VAL(AA11$)=A THEN GOSUB 1600 1210  'BLANK 1220 GOSUB 8000 1230 IF VAL(AA5$)=A THEN GOSUB 1300 1240 IF VAL(AA7$)=A THEN GOSUB 1400 1250 IF VAL(AA9$)=A THEN GOSUB 1500 1260 IF VAL(AA11$)=A THEN GOSUB 1600 1280 GOTO 1210 1300 ' PRINT PROGRAM 1315 AA4=AA4+A4 1320 PRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A4;AD$ 1321 IF MO$<"!" THEN GOTO 1340 1322 IF A2$<>MO$ THEN GOTO 1341 1340 IF B$="YES" THEN LPRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A4;AD$ :GOSUB 12000 1341 IF B$="YES" THEN E1=E1+A4 1342 GOSUB 1700 1350 RETURN 1400 'PRINT PROGRAM 1410 AA4=AA4+A6 1420 PRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A6;AD$ 1430 IF B$="YES" THEN LPRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A6;AD$:GOSUB 12000 1431 IF B$="YES" THEN E1=E1+A6 1432 GOSUB 1700 1440 RETURN 1500 'PRINT PROGRAM 1510 AA4=AA4+A8 1520 PRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A8;AD$ 1530 IF B$="YES" THEN LPRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A8;AD$:GOSUB 12000 1531 IF B$="YES" THEN E1=E1+A8 1532 GOSUB 1700 1540 RETURN 1600 'PRINT PROGRAM 1610 AA4=AA4+A10 1620 PRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A10;AD$ 1621 IF B$="YES" THEN E1=E1+A10 1630 IF B$="YES" THEN LPRINT USING IMAGE$;Z-1;AA1$;AA2$;AA3$;A10;AD$:GOSUB 12000 1632 GOSUB 1700 1640 RETURN 1700 R=R+1:IF B$="YES" THEN RETURN 1701 IF R=20 GOTO 1720 1702 RETURN 1720 R=0 1721 INPUT "PRESS ANY KEY TO CONTINUE";S 1722 PRINT CHR$(26) 1723 RETURN 2000 'PROGRAM TO PRINT ALL ENTRIES 2010 PRINT CHR$(26):PRINT:PRINT:PRINT 2020 PRINT TAB(40) "COPYRIGHT - HARRY HAYMAN - 1985" 2030 PRINT:PRINT:PRINT 2035 M=1:Q=0:Z=0 2036 PRINT TAB(10) "THIS PRINTOUT REQUIRES A 132 COLUMN PRINTER OR A" 2037 PRINT TAB(12) " PRINTER CAPABLE OF PRINTING IN THE COMPRESSED MODE" 2038 PRINT:PRINT:PRINT 2040 INPUT "THIS WILL BE PRINTED IN HARDCOPY ONLY DO YOU WANT TO CONTINUE - YES OR NO ";B$ 2041 IF B$="YES" THEN GOTO 2043 2042 GOTO 40 2043 PRINT:PRINT "IF YOU WANT TO START AT A PARTICULAR ENTRY ENTER THE NUMBER" 2044 INPUT " OTHERWISE PRESS RETURN ";Z 2045 IF Z<1 GOTO 2052 2046 Z=Z-1:GOTO 2054 2052 INPUT "IF YOU ONLY WANT ONE MONTH PRINTOUT - ENTER THE MONTH HERE";MOS$ 2053 MO$=LEFT$(MOS$,3) 2054 LPRINT CHR$(15):LPRINT CHR$(27)"Q"CHR$(232):WIDTH LPRINT 232 2055 LPRINT TAB(100) "PAGE ";M:GOSUB 12000 2056 IF MOS$>"!" THEN LPRINT TAB(30) "LISTING OF ALL ENTRIES FOR MONTH OF ";MOS$ 2057 IF MOS$>"!" THEN GOTO 2070 2060 LPRINT TAB(35) "LISTING OF ENTRIES":GOSUB 12000 2070 LPRINT:GOSUB 12000 2080 LPRINT STRING$(132,"="):GOSUB 12000 2100 IMAGE$="#### \ \ \ \\ \$$#####.## ### \ \\ \" 2110 FORM$="\ \\ \ \ \\ \ \ \\ \\ \ \ \" 2120 A$="ENTRY":B$="CHECK":C$=" DATE":D$="PAYEE":E$="AMOUNT":F$="A/C":G$="REMARKS":H$="CLEARED" 2130 LPRINT USING FORM$;A$;B$;C$;D$;E$;F$;H$;G$:GOSUB 12000 2140 LPRINT STRING$(132,"="):GOSUB 12000 2150 LPRINT:GOSUB 12000 2160 Z=Z+1 2170 OPEN "R",#1,"B:ENTRIES",136 2180 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 2190 GET 1,Z 2200 A4=VAL(AA4$):A5=VAL(AA5$) 2210 IF EOF(1) GOTO 2300 2220 CLOSE #1 2221 A2$=LEFT$(AA2$,3) 2222 IF MOS$<"!" THEN GOTO 2230 2223 IF A2$<>MO$ THEN GOTO 2160 2230 LPRINT USING IMAGE$;Z;AA1$;AA2$;AA3$;A4;A5;AD$;AC$:GOSUB 12000 2240 GOTO 2160 2300 O=66-Q 2310 FOR N=1 TO O:LPRINT:NEXT N 2320 Q=0 2330 LPRINT CHR$(18) 2335 CLOSE #1 2340 GOTO 34 3000 'PROGRAM TO LIST INDIVIDUAL ITEMS 3010 PRINT CHR$(26):PRINT:PRINT:PRINT:P=0 3020 PRINT TAB(15) STRING$(40,"=") 3030 PRINT TAB(20) "COPYRIGHT - HARRY HAYMAN - 1985" 3040 PRINT TAB(19) "PROGRAM TO PRINT INDIVIDUAL ITEMS" 3050 PRINT TAB(15) STRING$(40,"=") 3060 PRINT:PRINT:PRINT 3069 PRINT TAB(10)"TO END PROGRAM ENTER 0":PRINT:PRINT 3070 INPUT "ENTER ENTRY NUMBER DESIRED";Z 3075 IF Z=0 THEN GOTO 40 3080 OPEN "R",#1,"B:ENTRIES",136 3090 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 3100 GET #1,Z 3110 A4=VAL(AA4$):A5=VAL(AA5$):A6=VAL(AA6$):A7=VAL(AA7$):A8=VAL(AA8$) 3120 A9=VAL(AA9$):A10=VAL(AA10$):A11=VAL(AA11$) 3130 IF EOF(1) GOTO 3700 3140 CLOSE #1 3150 GOSUB 3500 3155 INPUT "IF YOU WANT HARDCOPY ENTER 'YES' ";HC$ 3156 IF HC$="YES" THEN GOSUB 3300 3160 PRINT "TO END PROGRAM TYPE 0" 3170 PRINT "TO READ PRECEEDING ITEM TYPE - " 3180 PRINT "TO READ ANOTHER ITEM TYPE ENTRY NUMBER" 3190 PRINT "TO READ THE NEXT ITEM TYPE RETURN" 3200 INPUT Q$:Q=VAL(Q$) 3210 IF Q$="" THEN Z=Z+1 3220 IF Q$="" THEN GOTO 3080 3230 IF Q$="0" THEN GOTO 40 3240 IF Q$="-" THEN Z=Z-1 3245 IF Q$="-" THEN GOTO 3080 3250 IF Q>0 THEN Z=Q 3260 IF Q>0 THEN GOTO 3080 3270 PRINT CHR$(26):PRINT:PRINT:GOTO 3150 3300 LPRINT TAB(10) "ENTRY NUMBER ";Z 3310 LPRINT TAB(10) "CHECK NUMBER ";AA1$ 3320 LPRINT TAB(10) "DATE ";AA2$ 3330 LPRINT TAB(10) "PAYEE ";AA3$ 3340 LPRINT TAB(10) USING IM$;A5;Y$(A5);A4 3350 LPRINT TAB(10) USING IM$;A7;Y$ (A7);A6 3360 LPRINT TAB(10) USING IM$;A9;Y$(A9);A8 3370 LPRINT TAB(10) USING IM$;A11;Y$(A11);A10 3371 LPRINT TAB(10) "REMARKS: ";AC$ 3372 LPRINT TAB(10) "HAS ITEM CLEARED: ";AD$ 3375 LPRINT 3380 P=P+11 3390 IF P>55 THEN GOTO 3410 3400 RETURN 3410 O=66-P 3420 FOR N=1 TO O:LPRINT:NEXT N 3430 P=0 3440 RETURN 3500 PRINT CHR$(26):PRINT:PRINT:PRINT 3510 PRINT "ENTRY NUMBER ";Z 3520 PRINT "CHECK NUMBER ";AA1$ 3530 PRINT "DATE ";AA2$ 3540 PRINT "PAYEE ";AA3$ 3545 IM$="ACCOUNT NUMBER ### \ \ $$##,###.##" 3550 PRINT USING IM$;A5;Y$(A5),A4 3560 PRINT USING IM$;A7;Y$(A7),A6 3570 PRINT USING IM$;A9;Y$(A9),A8 3580 PRINT USING IM$;A11;Y$(A11);A10 3584 PRINT "REMARKS: ";AC$ 3585 PRINT "HAS ITEM CLEARED: ";AD$ 3590 PRINT:PRINT:PRINT 3600 RETURN 3700 CLOSE #1 3710 PRINT TAB(10) "YOU HAVE SELECTED A NON-EXISTENT ENTRY" 3720 FOR N=1 TO 2500:NEXT N 3730 GOTO 3000 4000 'PROGRAM TO PRINT TOTALS OF ALL ACCOUNTS 4010 PRINT CHR$(26):PRINT TAB(30) "COPYRIGHT HARRY HAYMAN - 1985" 4020 PRINT:PRINT:PRINT 4030 PRINT TAB(10) "PROGRAM TO PRINT TOTAL OF ALL ACCOUNTS" 4040 PRINT:PRINT:PRINT 4050 INPUT "DO YOU WANT PRINTOUT - YES OR NO";A$ 4055 LINE INPUT "INPUT TODAY'S DATE ";A1$ 4056 INPUT "IF YOU WANT THE TOTAL OF ONLY ONE MONTH - ENTER MONTH";E$ 4057 F$=LEFT$(E$,3) 4060 Z=0:Y=0:P=0 4061 PRINT:PRINT:PRINT "READING ENTRY NUMBER" 4070 Z=Z+1 4075 PRINT CHR$(27) CHR$(46)+"0" 4080 OPEN "R",#1,"B:ENTRIES",136 4090 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 4100 GET #1,Z 4105 IF EOF(1) GOTO 4175 4106 CLOSE #1 4107 PRINT CHR$(27)+"="+CHR$(47):PRINT TAB(10)Z 4111 G$=LEFT$(AA2$,3) 4112 IF G$=F$ THEN GOTO 4120 4113 IF E$="" THEN GOTO 4120 4114 GOTO 4070 4120 AA4=VAL(AA4$):AA5=VAL(AA5$):AA6=VAL(AA6$):AA7=VAL(AA7$):AA8=VAL(AA8$):AA9=VAL(AA9$):AA10=VAL(AA10$):AA11=VAL(AA11$) 4130 P(AA5)=P(AA5)+AA4 4140 P(AA7)=P(AA7)+AA6 4150 P(AA9)=P(AA9)+AA8 4160 P(AA11)=P(AA11)+AA10 4170 GOTO 4070 4175 PRINT CHR$(27)CHR$(46)+"2" 4180 CLOSE #1:IF A$="YES" THEN GOTO 4300 4200 PRINT CHR$(26):PRINT:PRINT:PRINT 4201 H$="":IF E$>"A" THEN H$=" FOR "+E$ 4202 PRINT TAB(10) "TOTAL OF ALL ACCOUNTS";H$ 4203 PRINT 4210 IMAGE$=" ### \ \ $$#####.##" 4220 Y=Y+1 4225 IF Y=200 THEN GOTO 4700 4226 P=P+P(Y) 4227 IF P(Y)=0 THEN GOTO 4220 4230 PRINT USING IMAGE$;Y;Y$(Y);P(Y) 4231 W=W+1 4232 IF W>19 GOTO 4239 4235 GOTO 4250 4239 W=0 4240 INPUT "TYPE ANY KEY TO CONTINUE";A 4241 PRINT CHR$(26) 4243 PRINT TAB(10) "TOTAL OF ALL ACCOUNTS";H$ 4244 PRINT 4250 GOTO 4220 4300 W=1:Y=0:Q=0 4310 IMAGE$=" ### \ \ $$#####.##" 4340 LPRINT TAB(65) "PAGE ";W:GOSUB 4500 4350 LPRINT TAB(65) A1$:GOSUB 4500 4360 LPRINT STRING$(80,"="):GOSUB 4500 4365 H$="":IF F$>"" THEN H$=" FOR "+E$ 4370 LPRINT TAB(30) "TOTAL OF ALL ACCOUNTS";H$:GOSUB 4500 4380 LPRINT "A/C # A/C NAME TOTAL":GOSUB 4500 4390 LPRINT STRING$(80,"="):GOSUB 4500 4400 LPRINT:GOSUB 4500 4401 IF Y=200 THEN GOTO 4800 4404 Y=Y+1 4405 IF Y=200 THEN GOTO 4800 4406 P=P+P(Y) 4407 IF P(Y)=0 THEN GOTO 4404 4410 LPRINT USING IMAGE$;Y;Y$(Y);P(Y):GOSUB 4500 4430 GOTO 4404 4500 Q=Q+1 4510 IF Q=55 THEN W=W+1 4520 IF Q=55 THEN GOTO 4535 4530 RETURN 4535 O=66-Q 4540 FOR N=1 TO O:LPRINT:NEXT N 4545 Q=0 4550 IF Y=200 THEN GOTO 4800 4560 IF Y=201 THEN GOTO 4600 4570 GOTO 4310 4600 INPUT "TYPE RETURN TO CONTINUE";E 4610 GOTO 34 4700 Y$(Y)=" TOTAL":P(Y)=P 4710 PRINT USING IMAGE$;0;Y$(Y);P(Y) 4720 GOTO 4600 4800 LPRINT 4810 Y=0:Y$(Y)=" TOTAL":P(Y)=P 4820 LPRINT USING IMAGE$;Y;Y$(Y);P(Y) 4830 O=64-Q 4840 FOR N=1 TO O:LPRINT:NEXT N 4850 INPUT "TYPE RETURN TO CONTINUE";E 4860 GOTO 34 5000 RUN "CHECKREG" 6000 PRINT CHR$(26):FOR N=1 TO 10:PRINT:NEXT N 6003 PRINT CHR$(27) CHR$(46)+"0" 6004 Z=1 6005 PRINT TAB(20) "READING ACCOUNTS" 6006 PRINT CHR$(27)+"="+CHR$(45) 6007 PRINT TAB(25)Z 6010 OPEN "R",#1,"B:ACCOUNTS",28 6020 FIELD #1,3 AS CC1$,25 AS CC2$ 6030 GET #1,Z 6040 IF EOF(1) GOTO 6090 6050 CLOSE #1 6060 X$(Z)=CC1$:Y$(Z)=CC2$ 6070 Z=Z+1 6080 GOTO 6006 6090 PRINT CHR$(27) CHR$(46)+"2" 6100 CLOSE #1:Z=1:RETURN 7000 Z=1 7010 X=VAL(X$(Z)) 7015 IF A=X THEN A$=Y$(Z) 7020 IF A=X THEN RETURN 7030 Z=Z+1 7040 IF Z=200 GOTO 7100 7050 GOTO 7010 7100 PRINT TAB(10)"YOU HAVE ENTERED AN UNASSIGNED ACCOUNT" 7110 RETURN 8000 'REM 8001 OPEN "R",#1,"B:ENTRIES",136 8010 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 8020 GET #1,Z 8021 A4=VAL(AA4$):A5=VAL(AA5$):A6=VAL(AA6$):A7=VAL(AA7$):A8=VAL(AA8$) 8022 A9=VAL(AA9$):A10=VAL(AA10$):A11=VAL(AA11$) 8030 IF EOF(1) GOTO 8100 8040 Z=Z+1 8050 CLOSE #1 8051 E$=LEFT$(AA2$,3) 8052 B$="NO" 8053 IF D$="" THEN B$=PRNT$ 8054 IF D$=E$ THEN B$="YES" 8060 RETURN 8100 CLOSE #1 8105 B$=PRNT$ 81 10 IF A=1 THEN GOTO 8500 8111 IF A=2 THEN GOTO 8500 8112 IF A=3 THEN GOTO 8500 8120 IMAG$="\ \ $$#####.##" 8121 IMG$="\ \\ \ $$#####.##" 8125 PRINT:PRINT USING IMAG$;"TOTAL";AA4 8140 IF B$="YES" THEN LPRINT " ":GOSUB 12000 8141 IF PRNT$="YES" THEN GOTO 8143 8142 GOTO 8150 8143 IF D$="" GOTO 8150 8144 G$=" TOTAL FOR" 8145 LPRINT USING IMG$;G$;C$;E1:GOSUB 12000 8146 LPRINT:GOSUB 12000 8150 IF B$="YES" THEN LPRINT USING IMAG$;" TOTAL";AA4:GOSUB 12000 8151 Q=66-Q 8152 IF B$="YES" THEN FOR N=0 TO Q:LPRINT:NEXT N 8160 INPUT "PRESS RETURN TO CONTINUE ";A:GOTO 40 8500 OPEN "R",#1,"B:BALANCE",58 8510 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 8520 GET #1,2 8530 IF A=1 THEN X1=CVD(X1$)*-1 8531 IF A=2 THEN X1=CVD(X2$)*-1 8532 IF A=3 THEN X1=CVD(X3$)*-1 8540 CLOSE #1 8549 IMG$="\ \\  \ $$#####.##" 8550 IMAG$="\ \ $$#####.##" 8551 IF B$="YES" THEN LPRINT:GOSUB 12000 8552 IF B$="YES" THEN GOTO 8554 8553 GOTO 8561 8554 G$=" TOTAL FOR":IF C$="" THEN G$=" TOTAL FOR ALL MONTHS" 8555 LPRINT USING IMG$;G$;C$;E1:GOSUB 12000 8556 LPRINT " ":GOSUB 12000 8561 PRINT USING IMAG$;" STARTING BALANCE";X1 8562 PRINT 8570 IF B$="YES" THEN LPRINT USING IMAG$;" STARTING BALANCE";X1:GOSUB 12000 8580 AA4=AA4+X1 8585 IF B$="YES" THEN LPRINT " ":GOSUB 12000 8590 IF B$="YES" THEN LPRINT USING IMAG$;" CURRENT BALANCE";CDBL(AA4):GOSUB 12000 8591 PRINT USING IMAG$;" TOTAL";AA4 8593 Q=66-Q 8594 IF B$="YES" THEN FOR N=0 TO Q:LPRINT:NEXT N 8595 INPUT "PRESS RETURN TO CONTINUE";R 8600 GOTO 40 9000 ' PROGRAM TO PRINT AND TOTAL CLEARED ITEMS 9010 PRINT CHR$(26):PRINT:PRINT:PRINT 9020 INPUT "WHICH CHECKING ACCOUNT DO YOU WANT 1, 2, OR 3";A 9030 IF A>3 THEN GOTO 9020  9040 INPUT "DO YOU WANT THE ACCOUNT PRINTED (YES OR NO) ";B$ 9045 IF B$<>"YES" THEN GOTO 9050 9046 INPUT "IF YOU WANT JUST ONE MONTH PRINTED OUT INPUT THE MONTH HERE";MOS$ 9048 MO$=LEFT$(MOS$,3) 9050 GOSUB 7000 9060 PRINT CHR$(26):PRINT:PRINT:PRINT 9064 M=1 9065 IF B$="YES" THEN LPRINT TAB(70) "PAGE ";M:GOSUB 12000 9070 IF B$="YES" THEN LPRINT TAB(10) "LISTING OF ACCOUNT ";A,A$:GOSUB 12000 9090 PRINT TAB(10) "LISTING OF ACCOUNT ";A,A$ 9100 GOSUB 10000 9110 PRINT:PRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED" 9120 IF B$="YES" THEN GOSUB 11000 9125 GOSUB 12000 9130 IF B$="YES" THEN LPRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED":GOSUB 12000 9140 IF B$="YES" THEN LPRINT " NO. NO.:GOSUB 12000 9150 IF B$="YES" THEN GOSUB 11000 9155 GOSUB 12000 9160 IF B$="YES" THEN LPRINT:GOSUB 12000 9170 PRINT " NO. NO." 9180 GOSUB 10000 9190 Z=1 9200 GOSUB 9500 9210 IF VAL(AA5$)=A THEN GOTO 9400 9211 IF VAL(AA7$)=A THEN GOSUB 9800 9212 IF VAL(AA9$)=A THEN GOSUB 9850 9213 IF VAL(AA11$)=A THEN GOSUB 9900 9230 GOTO 9200 9400 IF AD$="Y" THEN GOTO 9450 9410 GOTO 9200 9450 'BLANK 9451 A2$=LEFT$(AA2$,3) 9459 GOSUB 1300 9460 GOTO 9200 9500 'REM 9510 OPEN "R",#1,"B:ENTRIES",136 9520 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 9530 GET #1,Z 9540 A4=VAL(AA4$):A5=VAL(AA5$):A6=VAL(AA6$):A7=VAL(AA7$):A8=VAL(AA8$) 9545 A9=VAL(AA9$):A10=VAL(AA10$):A11=VAL(AA11$) 9550 IF EOF(1) GOTO 9600 9560 Z=Z+1 9570 CLOSE #1 9580 RETURN 9600 CLOSE #1 9610 IMAG$="\ \$$#####.##" 9620 OPEN "R",#1,"B:BALANCE",58 9630 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 9640 GET #1,1 9650 IF A=1 THEN X1=CVD(X4$)*-1 9660 IF A=2 THEN X1=CVD(X5$)*-1 9670 IF A=3 THEN X1=CVD(X6$)*-1 9680 CLOSE #1 9690 IF B$="YES" THEN LPRINT " " 9700 PRINT USING IMAG$;"  STARTING BALANCE";X1 9710 PRINT 9720 IF B$="YES" THEN LPRINT USING IMAG$;" STARTING BALANCE";X1 9730 AA4=AA4+X1 9740 IF B$="YES" THEN LPRINT 9750 IF B$="YES" THEN LPRINT USING IMAG$;" TOTAL";AA4 9760 PRINT USING IMAG$;" TOTAL";AA4 9762 IF B$<>"YES" THEN GOTO 9770 9765 O=66-(Q+4):FOR N=1 TO O:LPRINT:NEXT N 9770 INPUT "PRESS RETURN TO CONTINUE";Q 9780 GOTO 40 9800 IF AD$="Y" THEN GOTO 9820 9810 GOTO 9200 9820 GOSUB 1400 9830 GOTO 9200 9850 IF AD$="Y" THEN GOTO 9870 9860 GOTO 9200 9870 GOSUB 1500 9880 GOTO 9200 9900 IF AD$="Y" THEN GOTO 9920 9910 GOTO 9200 9920 GOSUB 1600 9930 GOTO 9200 10000 PRINT STRING$(80,"=") 10010 RETURN 11000 LPRINT STRING$(80,"="):GOSUB 12000 11010 RETURN 12000 Q=Q+1 12010 IF Q=55 THEN GOSUB 12040 12020 RETURN 12030 'BLANK 12040 O=66-Q 12041 FOR N=1 TO O:LPRINT:NEXT N 12050 M=M+1 12060 Q=0 12061 IF AB=2 THEN GOTO 2055 12065 GOSUB 12500 12070 RETURN 12500 LPRINT TAB(70) "PAGE ";M:GOSUB 12000 12505 LPRINT TAB(10)"LISTING OF ACCOUNT ";A,Y$(A):GOSUB 12000 12510 LPRINT STRING$(80,"="):GOSUB 12000 12520 LPRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED":GOSUB 12000 12530 LPRINT " NO. NO.":GOSUB 12000 12540 LPRINT STRING$(80,"="):GOSUB 12000 12550 RETURN 13000 IF Y$(A)<"!" GOTO 13020 13010 RETURN 13020 PRINT:PRINT:PRINT 13030 PRINT TAB(10) "YOU HAVE SELECTED AN UNUSED ACCOUNT" 13040 PRINT TAB(12) " REENTER ACCOUNT NUMBER" 13050 FOR N=1 TO 2000:NEXT N 13060 GOTO 1000 15000 'PROGRAM TO PRINT AND TOTAL UNCLEARED ITEMS 15010 PRINT CHR$(26):PRINT:PRINT:PRINT:AA4=0 15020 INPUT "WHICH CHECKING ACCOUNT DO YOU WANT 1, 2, OR 3 ";A 15030 IF A>3 THEN GOTO 15010 15040 INPUT "DO YOU WANT THE ACCOUNT PRINTED (YES OR NO) ";B$ 15050 IF B$<>"YES" THEN GOTO 15080 15060 INPUT "IF YOU WANT JUST ONE MONTH PRINTED OUT INPUT THE MONTH HERE";MOS$ 15070 MO$=LEFT$(MOS$,3) 15080 PRINT CHR$(26):PRINT:PRINT:PRINT 15090 M=1:IF B$="YES" THEN LPRINT TAB(30) "LISTING OF UNCLEARED ITEMS" 15100 IF B$="YES" THEN LPRINT TAB(70) "PAGE ";M:GOSUB 12000 15110 PRINT TAB(10) "LISTING OF ACCOUNT ";A,Y$(A) 15115 IF B$="YES" THEN LPRINT TAB(10) "LISTING OF ACCOUNT ";A,Y$(A):GOSUB 12000 15120 GOSUB 10000 15130 PRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED" 15140 IF B$="YES" THEN GOSUB 11000 15150 GOSUB 12000 15160 IF B$="YES" THEN LPRINT "ENTRY CHECK DATE PAYEE AMOUNT CLEARED":GOSUB 12000 15170 IF B$="YES" THEN LPRINT " NO. NO." 15180 IF B$="YES" THEN GOSUB 11000 15190 GOSUB 12000 15200 IF B$="YES" THEN LPRINT:GOSUB 12000 15210 PRINT " NO. NO. 15220 GOSUB 10000 15230 Z=1 15240 GOSUB 15500 15250 IF VAL(AA5$)=A THEN GOTO 15300 15260 IF VAL(AA7$)=A THEN GOSUB 15800 15270 IF VAL(AA9$)=A THEN GOSUB 15850 15280 IF VAL(AA11$)=A THEN GOSUB 15900 15290 GOTO 15240 15300 IF AD$="N" THEN GOTO 15320 15310 GOTO 15240 15320 A2$=LEFT$(AA2$,3) 15330 GOSUB 1300 15340 GOTO 15240 15500 OPEN "R",#1,"B:ENTRIES",136 15510 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 15520 GET #1,Z 15530 A4=VAL(AA4$):A5=VAL(AA5$):A6=VAL(AA6$):A7=VAL(AA7$):A8=VAL(AA8$) 15540 A9=VAL(AA9$):A10=VAL(AA10$):A11=VAL(AA11$) 15550 IF EOF(1) GOTO 15600 15560 Z=Z+1 15570 CLOSE #1 15580 RETURN 15600 CLOSE #1 15610 IMAG$="\ \$$#####.##" 15620 OPEN "R",#1,"B:BALANCE",58 15630 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 15640 GET #1,1 15650 IF A=1 THEN X1=CVD(X1$) 15660 IF A=2 THEN X1=CVD(X2$) 15670 IF A=3 THEN X1=CVD(X3$) 15680 CLOSE #1 15690 IF B$="YES" THEN LPRINT " " 15700 PRINT USING IMAG$;" CHECKBOOK BALANCE";X1 15710 PRINT 15720 IF B$="YES" THEN LPRINT USING IMAG$;" CHECKBOOK BALANCE";X1 15730 AA4=AA4+X1 15740 IF B$="YES" THEN LPRINT 15750 IF B$="YES" THEN LPRINT USING IMAG$;" BANK BALANCE";AA4 15760 PRINT USING IMAG$;" BANK BALANCE";AA4 15770 IF B$<>"YES" THEN GOTO 15790 15780 O=66-(Q+4):FOR N=1 TO O:LPRINT:NEXT N 15790 INPUT "PRESS RETURN TO CONTINUE";Q 15795 GOTO 40 15800 IF AD$="N" THEN GOTO 15820 15810 GOTO 15240 15820 GOSUB 1400 15830 GOTO 15240 15850 IF AD$="N" THEN GOTO 15870 15860 GOTO 15240 15870 GOSUB 1500 15880 GOTO 15240 15900 IF AD$="N" THEN GOTO 15920 15910 GOSUB 15240 15920 GOSUB 1600 15930 GOTO 15240  15870 GOSUB 1500 15880 GOTO 15240 IELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 15640 GET #1,1 15650 IF A=1 THEN X1=CVD(X1$) 15660 IF A=2 THEN X1=CVD(X2$) 15670 IF A=3 THEN X1=CVD(X3$) 15680 CLOSE #1 15690 IF B$="YES" THEN LPRINT " " 15700 PRINT USING IMAG$;" CHECKBOOK BALANCE";X1 15710 PRINT 15720 IF B$="YES" THEN LPRINT USING IMAG$;" CHECKBOOK BALANCE";X1 15730 AA4=AA4+X1 15740 IF B$="YES" THEN LPRINT 15750 IF B$="YES" THEN LPRINT USING IMAG$;" BANK BALANCE";AA4 This is the release date of the disk. MULTREG1DOC kMULTREG DTA sMULTREG MSG uSAVE-MB2COM wSAVE20 DOC xUNPROTECDOC MBASIC-PDOC MEASURE BAS METRIC BAS CONVERT BAS ENDROUTEBAS ENDROUTEDOC GANTTX BAS LATDEC BAS ACCOUNT .BAS 59 96 1408 11 ACCOUNTS. 94 E7 5632 44 BANK .BAS AB 68 2560 20 MULTREG1.BAS 84 0B 26752 209 MULTREG1.DOC 64 EA 7424 58 MULTREG .DTA 9A 3B 1152 9 MULTREG .MSG 7A 43 1280 10 SAVE-MB2.COM FF 0C 896 7 SAVE20 .DOC B8 03 7808 61 UNPROTEC.DOC EB 18 1408 11 MBASIC-P.DOC 2F AA 384 3 MEASURE .BAS 01 57 5504 43 METRIC MBASIC CHECKREG/S:200 CORRBAL BAS!"#$CORRECT BAS%PRINT BAS&'()*+,-./012345PRINT BAS$6789:PROFILE $$$10 'CHECK REGISTER PROGRAM 20 'COPYRIGHT HARRY HAYMAN -1985 30 'STARTER TO START THE NEW YEAR 40 PRINT CHR$(26):PRINT:PRINT:PRINT 50 PRINT TAB(40) "COPYRIGHT HARRY HAYMAN - 1985" 60 PRINT TAB(10) "DO YOU REALLY WANT TO START THE NEW YEAR?" 70 PRINT:PRINT TAB(10) "USE A NEW DISK OR ALL YOUR ENTRIES WILL BE WIPED" 80 PRINT TAB(10) " IF YOU RUN THIS PROGRAM" 90 PRINT:PRINT:INPUT "DO YOU WANT TO START THE NEW YEAR - YES OR NO";GG$ 100 IF GG$="YES" THEN GOTO 120 110 RUN "CHECKREG" 120 PRINT CHR$(26) 130 PRINT TAB(20) "CHECK REGISTER PROGRAM" 140 PRINT TAB(20) "TO START THE NEW YEAR" 150 PRINT TAB(30) "COPYRIGHT - HARRY HAYMAN - 1985" 160 PRINT:PRINT:PRINT 170 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #1 ";X1 180 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #2 ";X2 190 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #3 ";X3 200 INPUT "INPUT THE BANK BALANCE IN CHECKING ACCOUNT #1 ";X4 210 INPUT "INPUT THE BANK BALANCE IN CHECKING ACCOUNT #2 ";X5 220 INPUT "INPUT THE BANK BALANCE IN CHECKING ACCOUNT #3 ";X6 230 ZZ=0 240 PRINT:PRINT:PRINT 250 GOSUB 310 260 ZZ=0 270 ON ERROR GOTO 290 280 KILL "B:ENTRIES" 290 'BLANK 300 RUN "CHECKREG" 310 OPEN "R",#1,"B:BALANCE",58 320 FIELD #1,9 AS X1$,9 AS X2$,9 AS X3$,9 AS X4$,9 AS X5$,9 AS X6$,4 AS ZZ$ 330 LSET X1$=MKD$(X1):LSET X2$=MKD$(X2):LSET X3$=MKD$(X3) 340 LSET X4$=MKD$(X4):LSET X5$=MKD$(X5):LSET X6$=MKD$(X6):ZZ$=STR$(ZZ) 350 PUT #1,1 360 PUT #1,2 370 CLOSE #1 380 RETURN  340 LSET X4$=MKD$(X4):LSET X5$=MKD$(X5):LSET X6$=MKD$(X6):ZZ$=STR 130 PRINT TAB(20) "CHECK REGISTER PROGRAM" 140 PRINT TAB(20) "TO START THE NEW YEAR" 150 PRINT TAB(30) "COPYRIGHT - HARRY HAYMAN - 1985" 160 PRINT:PRINT:PRINT 170 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #1 ";X1 180 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #2 ";X2 190 INPUT "INPUT THE BALANCE IN CHECKING ACCOUNT #3 ";X3 200 INPUT "INPUT THE BANK BALANCE IN CHECKING ACCOUNT #1 ";X4 210 INPUT "INPUT THE BANK BALANCE IN CHECKING ACCOUNT #2 ";X5 220 INPUT "INPUT THE BANK BALANCE IN CHECKING A10 'CHECK REGISTER PROGRAM 20 'SUB PROGRAM - TO PRINT OUT LIST OF ACCOUNTS 30 ' A/CLIST 40 'COPYRIGHT HARRY HAYMAN - 1985 50 PRINT CHR$(26) 60 PRINT:PRINT:PRINT 70 PRINT TAB(10) STRING$(29,"*") 80 PRINT TAB(15) "A/C LIST PROGRAM" 90 PRINT TAB(10) "COPYRIGHT HARRY HAYMAN - 1985" 100 PRINT TAB(10) STRING$(29,"*") 110 PRINT:PRINT:PRINT 120 PRINT TAB(10) "DO YOU WANT A PRINTOUT - YES OR NO" 130 INPUT A$ 140 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT TAB(20) "LIST OF ACCOUNTS" 150 IF A$="YES" THEN LPRINT TAB(20) "LIST OF ACCOUNTS":GOSUB 400 160 Z=1 170 OPEN "R",#1,"B:ACCOUNTS",28 180 FIELD #1,3 AS CC1$,25 AS CC2$ 190 GET #1,Z 200 IF EOF(1) THEN GOTO 350 210 CLOSE #1 220 IF CC2$<"!" THEN Z=Z+1 230 IF CC2$<"!" THEN GOTO 170 240 C1$=CC1$:C2$=CC2$ 250 PRINT C1$,C2$:X=X+1 260 IF A$="YES" THEN LPRINT C1$,C2$:GOSUB 400 270 Z=Z+1 280 IF A$="YES" THEN GOTO 170 290 IF X=20 GOTO 310 300 GOTO 170 310 X=0 320 INPUT "PRESS ENTER TO CONTINUE";A 330 PRINT CHR$(26) 340 GOTO 170 350 FOR N=1 TO 2500:NEXT N 360 IF A$="YES" THEN GOTO 380 370 GOTO 390 380 Q=66-Q:FOR N=1 TO Q:LPRINT:NEXT N 390 RUN "CHECKREG" 400 Q=Q+1 410 IF Q=55 THEN GOTO 430 420 RETURN 430 Q=66-Q 440 FOR N=1 TO Q:LPRINT:NEXT N 450 Q=0 460 RETURN "CHECKREG" 400 Q=Q+1 410 IF COPYRIGHT HARRY HAYMAN - 1985" 100 PRINT TAB(10) STRING$(29,"*") 110 PRINT:PRINT:PRINT 120 PRINT TAB(10) "DO YOU WANT A PRINTOUT - YES OR NO" 130 INPUT A$ 140 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT TAB(20) "LIST OF ACCOUNTS" 150 IF A$="YES" THEN LPRINT TAB(20) "LIST OF ACCOUNTS":GOSUB 400 160 Z=1 170 OPEN "R",#1,"B:ACCOUNTS",28 180 FIELD #1,3 AS CC1$,25 AS CC2$ 190 GET #1,Z 200 IF EOF(1) THEN GOTO 350 210 CLOSE #1 220 IF CC2$<"!" THEN Z=Z+1 230 IF CC2$<"!" THEN GOTO 170 240 C1$=CC1$:C2$=CC2$ 250 PRINT C1$,C2$:X=X+1 260 IF A$="YES" THEN LPRINT C1$,C2$:GOSUB 400 270 Z=Z+1 280 IF A$="YES" THEN GOTO 170 290 IF X=20 GOTO 310 300 GOTO 170 310 X=0 320 INPUT "PRESS ENTER TO CONTINUE";A 330 PRINT CHR$(26) 340 GOTO 170 350 FOR N=1 TO 2500:NE10 'CHECK REGISTER PROGRAM 20 'COPYRIGHT HARRY HAYMAN - 1985 30 PRINT CHR$(26):PRINT:PRINT:PRINT 40 PRINT TAB(20) STRING$(29,"*") 50 PRINT TAB(20) "TO ENTER AND CORRECT ACCOUNTS" 60 PRINT TAB(20) "COPYRIGHT HARRY HAYMAN - 1985" 70 PRINT TAB(20) STRING$(29,"*") 80 PRINT:PRINT 90 PRINT TAB(20) "TO ENTER NEW AND CORRECT ACCOUNTS" 100 PRINT TAB(15) "TO EXIT PROGRAM ENTER 0 FOR ACCOUNT NUMBER" 110 PRINT:PRINT 120 INPUT "ENTER ACCOUNT NUMBER ";C1$ 130 IF C1$="0" THEN RUN "CHECKREG" 135 IF C1$="" THEN GOTO 120 140 GOSUB 350 150 PRINT 160 INPUT "DO YOU WANT TO CHANGE ACCOUNT DESCRIPTION 'YES' OR 'NO'";G$ 170 IF G$="YES" GOTO 190 180 GOTO 30 190 PRINT:PRINT 200 INPUT "ENTER ACCOUNT DESCRIPTION ";C2$ 210 Z=VAL(C1$) 220 PRINT:INPUT "IS THIS ENTRY CORRECT YES OR NO";G$ 230 IF G$="YES" THEN GOTO 250 240 GOTO 30 250 OPEN "R",#1,"B:ACCOUNTS",28 260 FIELD #1,3 AS CC1$,25 AS CC2$ 270 LSET CC1$=C1$:LSET CC2$=C2$ 280 PUT #1,Z 290 CLOSE #1 300 ' 310 ' 320 GOTO 30 330 ' 340 ' 350 Z=VAL(C1$) 360 IF Z>199 GOTO 380 370 GOTO 410 380 PRINT "ACCOUNT NUMBER CANNOT BE GREATER THAN 199" 390 FOR N=1 TO 2000:NEXT N 400 GOTO 30 410 OPEN "R",#1,"B:ACCOUNTS",28 420 FIELD #1,3 AS CC1$,25 AS CC2$ 430 GET #1,Z 440 CLOSE #1 450 IF CC2$<"!" THEN CC2$="BLANK" 460 PRINT "ACCOUNT #";Z;" NOW READS: ";CC2$ 470 RETURN  CC2$ 430 GET #1,Z 440 CLOSE #1 450 IF CC2$<"!" THEN CC2$="BR ACCOUNT NUMBER" 110 PRINT:PRINT 120 INPUT "ENTER ACCOUNT NUMBER ";C1$ 130 IF C1$="0" THEN RUN "CHECKREG" 135 IF C1$="" THEN GOTO 120 140 GOSUB 350 150 PRINT 160 INPUT "DO YOU WANT TO CHANGE ACCOUNT DESCRIPTION 'YES' OR 'NO'";G$ 170 IF G$="YES" GOTO 190 180 GOTO 30 190 PRINT:PRINT 200 INPUT "ENTER ACCOUNT DESCRIPTION ";C2$ 210 Z=VAL(C1$) 220 PRINT:INPUT "IS THIS ENTRY CORRECT YES OR NO";G$ 230 IF G$="YES" THEN GOTO 250 240 GOTO 30 250 OPEN "R",#1,"B:ACCOUNTS",28 260 FIELD #1,3 AS CC1$,25 AS CC2$ 270 LSET CC1$=C1$:LSET CC2$=C2$ 280 PUT #1,Z 290 CLOSE #1 300 ' 310 ' 320 GOTO 30 330 ' 340 ' 350 Z=VAL(C1$) 31 SUBURBAN BANK 2 FLORIDA NATIONAL BANK 3 MERRILL LYNCH 4 MEMO ENTRY 9 SOCIAL SECURITY 10 WAGES AND SALARIES 11 INTEREST EARNED 12 DIVIDENDS 13 CAPITAL GAINS 14 OTHER INCOME 15 RENTAL INCOME 16 PENSION INCOME 17 IEEE - PENSION 18 19 20 21 22 23 IEEE ETC. - EXPENSES 24 TAX REFUNDS 25 STOCK SALES 26 STOCK PURCHASES 27 QUICK & REILLY INC. 30 AUTO INSURANCE 32 BANK CHARGES 34 BUSINESS EXPENSES 36 COMPUTER EXPENSES  38 CAPITAL INVESTMENT 40 CAR INSURANCE 42 CAR LOAN PAYMENTS 44 CAR REGISTRATION 46 CAR REPAIR 60 CHARITABLE CONTRIBUTIONS 62 CLUBS 64 CREDIT CARD INTEREST PAID 66 EST. STATE TAX PAYMENTS 67 EST. FEDERAL TAX PAYMENTS68 DOCTORS AND DENTISTS 70 FEDERAL INCOME TAX 72 GIFTS 74 HEALTH INSURANCE 76 INTEREST PAID 78 LOAN REPAYMENT 80 MORTGAGE PAYMENTS 82 POLITICAL CONTRIBUTIONS 84 PROFESSIONAL DUES 86 STATE INCOME TAX 88 TRANSFER - CASH 90 VISA PAYMENTS 92 AMERICAN EXPRESS 100ELECTRICITY - MARYLAND 102ELECTRICITY - FLORIDA 104GAS - MARYLAND 106REAL ESTATE PROPERTY TAX 108HOME REPAIRS - MARYLAND 110TELEPHONE - MARYLAND 112TELEPHONE - FLORIDA 114WATER MARYLAND 116MISC. - FLORIDA 118MISC. - MARYLAND  150IRA RETIREMENT ACCOUNT 175 177 179EDITH HAYMAN 181 183HARRY HAYMAN  175 177 179EDITH HAYMAN 181 183HARRY HAYMAN 10 'CHECK REGISTER PROGRAM 20 'BANK CONCILIATION PROGRAM 30 'COPYRIGHT HARRY HAYMAN -1985 40 PRINT CHR$(26):PRINT:PRINT:PRINT 50 PRINT TAB(14) "PROGRAM TO BALANCE ACCOUNT AGAINST BANK STATEMENT" 60 PRINT TAB(20) " COPYRIGHT - HARRY HAYMAN - 1985" 70 PRINT:PRINT:PRINT TAB(23)"********************************":PRINT 80 PRINT TAB(20) "TO END PROGRAM TYPE 0 FOR ENTRY NUMBER" 90 PRINT:PRINT TAB(23)"********************************":PRINT:PRINT 100 INPUT "ENTRY NUMBER OF ITEM TO BE CLEARED OR RETURN FOR NEXT ITEM";A$ 110 IF A$="" THEN A=A+1 120 IF A$="" GOTO 150 130 A=VAL(A$) 140 IF A=0 THEN RUN "CHECKREG" 150 'READ ENTRY FROM 160 OPEN "R",#1,"B:ENTRIES",136 170 GOSUB 510 180 GET #1,A 190 IF EOF(1) GOTO 460 200 CLOSE #1 210 AB1$=AA1$:AB2$=AA2$:AB3$=AA3$:AB4$=AA4$:AB5$=AA5$:AB6$=AA6$:AB7$=AA7$ 220 AB8$=AA8$:AB9$=AA9$:AB10$=AA10$:AB11$=AA11$:AC1$=AC$:AD1$=AD$ 230 PRINT CHR$(26):PRINT:PRINT:PRINT 240 A5=VAL(AA5$):A4=VAL(AA4$) 250 PRINT "1. CHECK NUMBER ";AB1$ 260 PRINT "2. DATE  ";AB2$ 270 PRINT "3. PAYEE ";AB3$ 280 PRINT "4. AMOUNT (DEPOSITS SHOULD BE PRECEEDED BY -) ";AB4$ 290 PRINT "5. ACCOUNT TO BE DEBITED ";AB5$ 300 PRINT 310 PRINT "6. AMOUNT TO BE CHARGED ";AB6$ 320 PRINT "7. ACCOUNT TO BE CHARGED ";AB7$ 330 PRINT 340 PRINT "8. AMOUNT TO BE CHARGED ";AB8$ 350 PRINT"9. ACCOUNT TO BE CHARGED ";AB9$ 360 PRINT 370 PRINT "10. AMOUNT TO BE CHARGED ";AB10$ 380 PRINT "11. ACCOUNT TO BE CHARGED ";AB11$ 390 PRINT 400 PRINT "12. REMARKS ";AC1$ 410 PRINT "13. HAS CHECK CLEARED ";AD1$ 420 PRINT "HAS ITEM CLEARED (Y)ES OR (N)O" 430 AD2$=INKEY$:IF AD2$="" THEN GOTO 430 431 IF AD2$="Y" GOTO 440 432 IF AD2$="N" GOTO 440 433 GOTO 430 440 AD1$=AD2$:GOTO 530 450 GOTO 230 460 CLOSE #1 470 PRINT CHR$(26):PRINT:PRINT:PRINT 480 PRINT TAB(10) "YOU HAVE REACHED THE END OF FILE" 490 FOR N=1 TO 2500:NEXT N 500 GOTO 10 510 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 AS AA9$,9 AS AA10$,4 AS AA11$,39 AS AC$,1 AS AD$ 520 RETURN 530 'TO REENTER CORRECTED ENTRIES 540 B5=VAL(AB5$):B4=VAL(AB4$) 550 OPEN "R",#1,"B:ENTRIES",136 560 GOSUB 510 570 LSET AA1$=AB1$:LSET AA2$=AB2$:LSET AA3$=AB3$:LSET AA4$=AB4$ 580 LSET AA5$=AB5$:LSET AA6$=AB6$:LSET AA7$=AB7$:LSET AA8$=AB8$ 590 LSET AA9$=AB9$:LSET AA10$=AB10$:LSET AA11$=AB11$:LSET AC$=AC1$ 600 LSET AD$=AD1$ 610 PUT #1,A 620 CLOSE #1 630 GOTO 40 90 LSET AA9$=AB9$:LSET AA10$=AB10$:LSET AA11$=AB11$:LSET AC$=AC1$ 600 LSET ADMARKS ";AC1$ 410 PRINT "13. HAS CHECK CLEARED ";AD1$ 420 PRINT "HAS ITEM CLEARED (Y)ES OR (N)O" 430 AD2$=INKEY$:IF AD2$="" THEN GOTO 430 431 IF AD2$="Y" GOTO 440 432 IF AD2$="N" GOTO 440 433 GOTO 430 440 AD1$=AD2$:GOTO 530 450 GOTO 230 460 CLOSE #1 470 PRINT CHR$(26):PRINT:PRINT:PRINT 480 PRINT TAB(10) "YOU HAVE REACHED THE END OF FILE" 490 FOR N=1 TO 2500:NEXT N 500 GOTO 10 510 FIELD #1,4 AS AA1$,15 AS AA2$,25 AS AA3$,9 AS AA4$,4 AS AA5$,9 AS AA6$,4 AS AA7$,9 AS AA8$,4 A10 REM MULTREG1 (MULTREG Version 1.1) 7/9/85 12 REM with double precision when not compiled 15 REM COPYRIGHT (c) 1983, 1985 BY GREGORY C. DAHL 17 REM * * * ALL RIGHTS RESERVED * * * 20 REM THIS PROGRAM RUNS A MULTIPLE REGRESSION 200 REM 210 REM DETAILED INSTRUCTIONS ARE GIVEN IN MULTREG.DOC 220 REM 230 ' Memory management under Microsoft Compiler has 235 ' been a problem. Fixed data arrays for X and Y 240 ' are inflexible and use up too much memory during 245 ' link loading. The CLEAR command does not work 250 ' with OBSLIB. An effort to store X and Y in 255 ' binary format in string variables produced an 260 ' unknown execution error. Compilation has thus 263 ' not succeeded with OBSLIB. 265 ' 266 ' The program can, however, be compiled with the 267 ' BRUN module, following instructions just below. 268 ' Data variables are poked into protected high 269 ' memory. Current compiled dimension limits are 270 ' 17 indep. vbles and 300 observations. Memory 280 ' limit also applies. 290 ' 300 DEFINT A-C,F,I-N : DEFDBL G-H,O-S,U-W 'SET MOST VARIABLES DOUBLE-PRECISION 310 ' CLEAR, &HB880 : BUFFSTART=&HB880 : TOPMEM%=CVI(CHR$(PEEK(6))+CHR$(PEEK(7))) 320 COMP = 0 ' FLAG FOR COMPILED VERSION 325 ' 330 ' IF COMPILED: Change COMP flag ! ! ! ! ! 332 ' Make line 310 active 334 ' Delete lines 3005-3030, 3220-3347 335 ' Delete lines 1032-1035, 1037 337 ' Delete lines 1510, 1535, 1637-1700 338 ' 340 IF COMP THEN NBLINK%=350 ELSE NBLINK%= 60 ' BLINK SPEED 350 OPTION BASE 1 360 WIDTH 255:FALSE%=0:TRUE%=NOT FALSE% 370 ' user supported software message 380 PRINT CHR$(&H1A); 390 PRINT TAB(16)"MULTREG (ver. 1.1)":PRINT 400 PRINT TAB(5)"COPYRIGHT (C) 1983,1985 BY GREGORY C. DAHL 410 IF COMP THEN PRINT TAB(6)CHR$(&H1B)CHR$(&H29)"PORTIONS COPYRIGHTED BY MICROSOFT, 1981"CHR$(&H1B)CHR$(&H28) ELSE PRINT 420 FX$="MULTREG.MSG":GOSUB 7200:IF NOT FLAG THEN PRINT:PRINT: PRINT CHR$(7)"Can't proceed without MULTREG.MSG. Stopping.":STOP 430 OPEN "R",2,"MULTREG.MSG":FIELD#2,128 AS BUFF2$ 440 FOR J=1 TO 7:GET#2,J:PRINT BUFF2$;:NEXT J 450 GOSUB 10000 'Press to return flashing message 460 ' 470 SC% = 51 'SCREEN DISPLAY WIDTH 480 WID% = SC% : FOUT%=1 490 F1$="######.##" 'FORMAT FOR DISPLAYING DATA ON SCREEN 500 QUOTES$=CHR$(&H22) ' double " 510 ' 520 ' 530 ' 1000 PRINT CHR$(&H1A):A$="MULTREG":GOSUB 12000 1010 PRINT:A$="Version 1.1":GOSUB 12000 1020 PRINT:PRINT:A$="COPYRIGHT (c) 1983,1985 BY GREGORY C. DAHL":GOSUB 12000 1030 PRINT:A$="* * All rights reserved * *":GOSUB 12000 1032 DOUBLE%=FALSE%:IF COMP THEN 1036 1033 PRINT:PRINT " Single or double precision input data? (S/D) S"CHR$(8); 1034 A$=INKEY$:IF A$="" THEN 1034 1035 PRINT A$: IF A$="D" OR A$="d" THEN DOUBLE%=TRUE% 1036 IF COMP THEN I=(TOPMEM%-BUFFSTART-4)/4 ELSE I=INT(FRE(" ")/4-300) 1037 IF DOUBLE% THEN I=I/2 : DEFDBL X-Y 1040 PRINT:A$="[maximum memory size is about"+STR$(I)+" data points]":GOSUB 12000 1050 FOUT%=1 '1=SCREEN,2=LPRINT,3=DISK FILE 1060 ' GET INPUT FILE NAME 1070 FOR J=8 TO 9:GET#2,J:PRINT BUFF2$;:NEXT J 1080 ' PRINT "FRE() = " FRE(" ") ' DEBUG * * * * 1090 PRINT:LINE INPUT" ENTER DATA FILE NAME: ";F$ 1100 IF F$="" THEN FF1$="MULTREG.DTA":GOTO 1220 1105 IF INSTR(F$,CHR$(3))>0 THEN STOP 1110 M=INSTR(F$,":"):IF M=0 THEN DRIVE$="B":GOTO 1150 1120 IF M=1 THEN 1200 1130 DRIVE$=MID$(F$,M-1,1):F$=RIGHT$(F$,LEN(F$)-M) 1140 IF DRIVE$<"A" OR DRIVE$>"D" THEN 1200 1150 M=INSTR(F$,"."):IF M=0 THEN EXT$=".DTA":GOTO 1170 1160 EXT$=MID$(F$,M,4):F$=LEFT$(F$,M-1) 1170 IF LEN(F$)=0 THEN F$="MULTREG" 1180 FF1$=DRIVE$+":"+F$+EXT$ 1190 GOTO 1220 1200 PRINT:PRINT CHR$(7)" Illegal file name " F$" Try again.":GOSUB 10000:GOTO 1000 1210 ' 1220 FX$=FF1$:GOSUB 7200:IF NOT FLAG THEN CLEAR:GOTO 300 'see if file exists 1230 OPEN "I",1,FF1$ 1240 PRINT CHR$(&H1A); 1250 LINENUM=0:GOSUB 1730 1251 ' trim leading and trailing blanks and quotes 1252 FOR J=1 TO LEN(S$):IF LEFT$(S$,1)<>" " AND LEFT$(S$,1)<>QUOTES$ THEN 1256 1254 S$=MID$(S$,2,255):NEXT J 1256 FOR J=1 TO LEN(S$):IF RIGHT$(S$,1)<>" " AND RIGHT$(S$,1)<>QUOTES$ THEN 1260 1258 S$=LEFT$(S$,LEN(S$)-1):NEXT J 1260 HEAD$=S$:GOSUB 1730:ALPHA=FALSE%:GOSUB 2030:V=XVAL:GOSUB 2030:N=XVAL 'get N and V from second line 1270 PRINT:PRINT:PRINT:PRINT 1280 PRINT "Header is:":PRINT:PRINT HEAD$:PRINT:PRINT 1290 PRINT "Number of independent variables is:"V 1300 PRINT:PRINT "Number of observations is:"N 1310 PRINT:PRINT:PRINT"Shall we proceed? (Y/N) Y" CHR$(8); 1320 A$=INKEY$:IF A$="" THEN 1320 1330 PRINT A$ 1340 IF A$="N" OR A$="n" THEN 6072 1350 M=V+1 1500 IF COMP THEN DIM XX#(18,18), XXINV#(18,18), A#(18,18),BETA#(18),C#(18),EST(300),ER(300),T(18),TPROB(18),VBLENAME$(19),VNAME$(19) 1510 IF NOT COMP THEN DIM XX#(M,M), XXINV#(M,M), A#(M,M), BETA#(M),C#(M),EST(N),ER(N),T(M),TPROB(M),VBLENAME$(M+1),VNAME$(M+1),X(N,M),Y(N) 1520 IF COMP THEN DEF FNY(L) = CVS(CHR$(PEEK(L*4+BUFFSTART))+CHR$(PEEK(L*4+BUFFSTART+1))+CHR$(PEEK(L*4+BUFFSTART+2))+CHR$(PEEK(L*4+BUFFSTART+3))) 1530 IF COMP THEN DEF FNX(L1,L2) = CVS(CHR$(PEEK((((L2)*N)+L1)*4+BUFFSTART))+CHR$(PEEK((((L2)*N)+L1)*4+BUFFSTART+1))+CHR$(PEEK((((L2)*N)+L1)*4+BUFFSTART+2))+CHR$(PEEK((((L2)*N)+L1)*4+BUFFSTART+3))) 1535 IF NOT COMP THEN DEF FNY(L)=Y(L) : DEF FNX(L1,L2)=X(L1,L2) 1540 ' X IS MATRIX OF DATA, ROWS ARE OBSERVATIONS 1550 ' COL 1 = 1'S, COLS 2 TO V+1 ARE INDEP. VBLES 1560 ' Y IS VECTOR OF DEPENDENT VBLE OBSERVATIONS 1570 ' (XX IS X'X, AND XXINV IS (X'X) INVERSE. A IS A TEMPORARY WORKING MATRIX) 1580 PRINT CHR$(&H1A);:PRINT:PRINT "Reading input file:":PRINT 1590 ALPHA=TRUE%:GOSUB 1730:FOR I=1 TO V+1:GOSUB 2030:VBLENAME$(I)=A$ 1600 IF A$="" AND I=1 THEN VBLENAME$(I)="DEP.VBLE" 1610 IF A$="" AND I>1 THEN VBLENAME$(I)="VBLE#"+MID$(STR$(I-1),2,LEN(STR$(I-1))-1) 1620 NEXT I 1630 ' INPUT Y,X(I,J) 1635 ALPHA=FALSE% 1637 IF COMP THEN 1702 1640 FOR I=1 TO N 1650 GOSUB 1730 'Get input line 1660 FOR J=0 TO V+1 1670 IF J=1 THEN X(I,J)=1:GOTO 1700' first col of X is vector of 1s 1680 GOSUB 2030 1690 IF J=0 THEN Y(I)=XVAL ELSE X(I,J)=XVAL 1700 NEXT J: NEXT I:CLOSE:GOTO 2320 ' Jump to input data display 1702 FOR I=1 TO N 1704 GOSUB 1730 'Get input line 1706 FOR J=0 TO V+1 1708 IF J=1 THEN XV=1:LLOC=(((J)*N)+I)*4+BUFFSTART:GOSUB 20160:GOTO 1714 1710 GOSUB 2030: IF J=0 THEN LLOC=BUFFSTART+I*4:XV=XVAL:GOSUB 20160:GOTO 1714 1712 LLOC=(((J)*N)+I)*4+BUFFSTART:XV=XVAL:GOSUB 20160 'poke value in array buffer in high memory 1714 NEXT J: NEXT I:CLOSE:GOTO 2320 1720 ' READ A LINE FROM INPUT FILE: 1730 IF NOT EOF(1) THEN 2000 1740 ' End 1750 PRINT:PRINT CHR$(7)"END OF INPUT FILE REACHED":PRINT LINENUM "LINES READ":PRINT:PRINT: CLOSE:GOSUB 10000:RETURN 1760 ' Input new line 2000 LINE INPUT#1, S$: PRINT S$ 2005 IF INKEY$=CHR$(3) THEN STOP 2010 LINENUM=LINENUM+1:NP1=1:FLAGCOMMA=TRUE%:FLAGSTRING=FALSE%:RETURN 2020 ' fetch a number XVAL from line S$ beginning at pointer NP1 2030 IF NP1> LEN(S$) THEN IF NOT ALPHA THEN GOTO 2290 ELSE A$="":RETURN 2040 LASTCHAR$=" " 2050 FOR NP=NP1 TO LEN(S$) 2060 L$=CHR$(ASC(MID$(S$,NP,1)) AND &H7F) 'strip high-order bit if any 2065 ' PRINT "L$="L$" LASTCHAR=";LASTCHAR$;" NP="NP" FLAGSTRING="FLAGSTRING" FLAGCOMMA="FLAGCOMMA ' DEBUG 2070 IF (LASTCHAR$="-" OR LASTCHAR$="+") AND L$=" " THEN 2210 ELSE LASTCHAR$=L$ ' ignore blanks after sign 2080 IF FLAGSTRING THEN 2190 2090 ' find beginning of string: 2100 IF L$=" " THEN 2210 'ignore leading blanks 2110 IF L$<>"," THEN 2140 2120 IF FLAGCOMMA THEN NP1=NP+1:NP2=NP1:GOTO 2230 ' output a zero if two commas in sequence 2130 FLAGCOMMA=TRUE% :GOTO 2210 2140 IF L$<>QUOTES$ THEN 2170 2150 NP2=INSTR(NP+1,S$,QUOTES$):IF NP2=0 THEN NP2=LEN(S$)+1'no close quote 2160 NP1=NP:GOTO 2230 2170 NP1=NP:FLAGSTRING=TRUE%:FLAGCOMMA=FALSE%:GOTO 2210 'beginning of string found 2180 ' find end of string: 2190 IF L$=" " OR L$="," THEN NP2=NP:GOTO 2230 2210 NEXT NP:NP2=LEN(S$)+1 2220 ' process string beginning at NP1 and ending at NP2-1 2230 FLAGSTRING=FALSE%:FLAGCOMMA=FALSE%:IF L$<>QUOTES$ THEN 2250 2240 IF ALPHA THEN A$=MID$(S$,NP1+1,NP2-NP1-1):NP2=NP2+1:GOTO 2280 ELSE NP1=NP2+1:GOTO 2030 ' skip material in quotes if NOT ALPHA 2250 A$=MID$(S$,NP1,NP2-NP1):B$=LEFT$(A$,1) 2260 IF NOT ALPHA AND B$<>"-" AND B$<>"+" AND B$<>"." AND (B$<"0" OR B$>"9") AND LEN(A$)>0 THEN NP1=NP2+1:GOTO 2030 ' skip any string beginning with non-numeric 2270 XVAL = VAL(A$) 2280 NP1=NP2:RETURN 'begin at next location in S$ 2290 PRINT CHR$(7)"AN ATTEMPT HAS BEEN MADE TO OBTAIN MORE NUMBERS 2300 PRINT "THAN ARE CONTAINED IN THIS LINE. CHECK YOUR DATA 2310 PRINT "FILE.":XVAL=0:A$="":RETURN 2320 GOSUB 15000 ' display input data 2330 ' INVERT MATRIX X'X (ANSWER IS XXINV) 3000 PRINT:PRINT " INVERTING MATRIX. PLEASE BE PATIENT.... 3005 IF COMP THEN 3032 3010 FOR I=1 TO M:FOR J=1 TO M:XX#(I,J)=0 3020 FOR K=1 TO N:XX#(I,J)=XX#(I,J)+X(K,I)*X(K,J) 3030 NEXT K,J,I : GOTO 3040 3032 FOR I=1 TO M:FOR J=1 TO M:XX#(I,J)=0 3034 FOR K=1 TO N:XX#(I,J)=XX#(I,J)+FNX(K,I)*FNX(K,J) 3036 NEXT K,J,I : IF INKEY$=CHR$(3) THEN STOP 3040 FOR J=1 TO M: XXINV#(J,J)=1 : NEXT J 3050 FOR I=1 TO M:FOR J=1 TO M:A#(I,J)=XX#(I,J)::NEXT J,I 'MATRIX TO INVERT 3060 FOR J=1 TO M:FOR I=J TO M 3065 ' PRINT "I,J,A#(I,J)=";I;J;A#(I,J) ' DEBUG * * * * 3070 IF A#(I,J)<>0 THEN 3090 3080 NEXT I : PRINT "SINGULAR MATRIX. STOPPING":STOP 3090 FOR K=1 TO M 3100 S#=A#(J,K) : A#(J,K)=A#(I,K) : A#(I,K)=S# 3110 NEXT K 3120 T#=1/A#(J,J) 3130 FOR K=1 TO M : A#(J,K)=T#*A#(J,K) : XXINV#(J,K)=T#*XXINV#(J,K) 3140 NEXT K 3150 FOR L=1 TO M : IF L=J THEN 3210 3160 T#=-A#(L,J) 3170 FOR K=1 TO M 3180 A#(L,K)=A#(L,K)+T#*A#(J,K) 3190 XXINV#(L,K)=XXINV#(L,K)+T#*XXINV#(J,K) 3200 NEXT K 3210 NEXT L,J 3220 GOTO 3360 ' * * * * * 3230 ' TEST INVERSE 3240 PRINT "TEST. SHOULD BE IDENTITY MATRIX I: 3250 FOR I=1 TO M : FOR J=1 TO M : S#=0 3280 FOR K=1 TO M : S#=S#+XX#(I,K)*XXINV#(K,J) : NEXT K 3310 PRINT USING "#####.###############";S#; 3320 NEXT J:PRINT:NEXT I 3342 PRINT:PRINT"MATRIX XX#:" 3343 FOR I=1 TO M:FOR J=1 TO M:PRINT USING "#######.##### ";XX#(I,J); 3344 NEXT J:PRINT:NEXT I 3345 PRINT:PRINT"MATRIX XXINV#:" 3346 FOR I=1 TO M:FOR J=1 TO M:PRINT USING "#######.##### ";XXINV#(I,J); 3347 NEXT J:PRINT:NEXT I 3350 ' COMPUTE ESTIMATED COEFFICIENTS BETA 3360 FOR I=1 TO M : C#(I)=0 3370 FOR J=1 TO N : C#(I)=C#(I)+FNX(J,I)*FNY(J) 3380 NEXT J,I 3390 FOR I=1 TO M : BETA#(I)=0 3400 FOR J=1 TO M : BETA#(I)=BETA#(I)+XXINV#(I,J)*C#(J) 3410 NEXT J,I 3420 ' COMPUTE OTHER STATISTICS 3430 ' S# = Y'Y 3440 ' W# = (SUM Y)^2 / N 3450 W#=0:FOR I=1 TO N:W#=W#+FNY(I):NEXT I 3460 W#=W#*W#/N 3470 RSQR#=0:S#=0 3480 FOR I=1 TO M:RSQR#=RSQR#+BETA#(I)*C#(I):NEXT I 3490 FOR I=1 TO N:S#=S#+FNY(I)*FNY(I):NEXT I 3500 RSQR#=(RSQR#-W#)/(S#-W#) 3510 F! = RSQR# * (N-M) / ((1 - RSQR#)*(M-1)) 3520 ' F DEGREES OF FREEDOM: M-1, N-M 3530 EMIN=1.7E+37 : EMAX = -EMIN 'INITIAL VALUES 3540 ERSQR# = 0 3550 FOR I=1 TO N 3560 EST(I)=0 3570 FOR J=1 TO M 3580 EST(I)=EST(I)+BETA#(J)*FNX(I,J) 3590 NEXT J 3600 ER(I)=FNY(I)-EST(I) 3610 ERSQR# = ERSQR#+ ER(I)*ER(I) 3620 IF ER(I)>EMAX THEN EMAX=ER(I) 3630 IF ER(I)EMAX THEN EMAX=ABS(EMIN) ELSE EMIN=-EMAX ' MAKE ERROR LIMITS SYMMETRICAL FOR GRAPHING 3660 U# = SQR(ERSQR#/(N-M)) 3670 FOR I=1 TO M: T(I) = BETA#(I)/(U# * SQR(XXINV#(I,I))) : GOSUB 21000 : NEXT I 3680 ' T HAS N-M DEGREES OF FREEDOM 3690 DW#=0: FOR I=2 TO N:DW#=DW#+(ER(I)-ER(I-1))*(ER(I)-ER(I-1)):NEXT I 3700 DW#=DW#/ERSQR# 'DURBAN-WATSON STATISTIC 3710 ' DISPLAY RESULTS ON SCREEN 4000 PRINT CHR$(&H1A):PRINT HEAD$:PRINT 4010 PRINT " ESTIMATED COEFFICIENTS: 4020 F3$ = "#######.###" 'FORMAT FOR t STATISTIC 4030 GOSUB 4040:GOTO 4170 4040 PRINT SPACE$(30) "t STATISTIC t PROB" 4050 FOR I=1 TO M 4060 IF I=1 THEN PRINT "INTERCEPT: "; ELSE PRINT LEFT$(VBLENAME$(I),10)SPACE$(10-LEN(VBLENAME$(I)))": "; 4070 IF ABS(BETA#(I))>100000! OR ABS(BETA#(I))<.001 THEN F$="#.######^^^^" ELSE F$="######.#####" 4080 PRINT USING F$;BETA#(I); 4082 A$=" ":IF TPROB(I)>.95 THEN A$=" * " 4084 IF TPROB(I)>.99 THEN A$=" ** " 4086 PRINT A$;:PRINT USING F3$;T(I);TPROB(I) 4090 NEXT I 4100 Z=RSQR#:PRINT " R SQUARED: "Z 4110 PRINT " F STATISTIC: "F! 4120 PRINT USING "(degrees of freedom: ##_,###)";M-1,N-M 4130 Z=DW#:PRINT " DURBAN-WATSON STATISTIC: "Z 4140 PRINT USING " (t degrees of freedom: ###)";N-M 4150 RETURN 4160 ' DISPLAY ERRORS 4170 MASK$="* | *" 4180 F$="###. #########.## #########.## #########.##" 4190 PRINT:GOSUB 10000 4200 PRINT CHR$(&H1A):A$=HEAD$:GOSUB 12000:A$="* * ERRORS * *":GOSUB 12000:PRINT:PRINT "OBS# OBSERVED ESTIMATED ERROR":PRINT 4210 FOR I=1 TO N:PRINT USING F$;I,FNY(I),EST(I),ER(I) 4215 IF I MOD 19 = 0 THEN GOSUB 10000:PRINT CHR$(13)" "CHR$(13); 'pause 4217 NEXT I 4220 PRINT:GOSUB 10000 'PRESS RETURN TO CONTINUE 4230 PRINT CHR$(&H1A):PRINT HEAD$:PRINT:PRINT "ERROR PATTERN:":PRINT 4240 M1$=STR$(CSNG(EMIN)):M2$=STR$(CSNG(EMAX)):L=LEN(M1$)+LEN(M2$):L=L/2:IF L"" THEN 6078 6072 PRINT:INPUT "Run another regression? (Y/N) ",A$ 6074 IF A$<>"N" AND A$<>"n" THEN CLEAR:GOTO 300 'do again 6076 PRINT:IF COMP THEN PRINT "Free memory is: ";FRE(" "):PRINT 6077 END 6078 OPEN "O",#1,F$ : FOUT%=3 ' flag for disk out 6090 PRINT:PRINT:A$="THE INPUT DATA":GOSUB 7000 6100 IF FLAG THEN 6140 6110 ' PRINT INPUT DATA 6120 GOSUB 15000 6130 ' PRINT EST. COEFFICIENTS, ETC. 6140 A$="EST. COEFFS. AND STAT.":GOSUB 7000 6150 IF FLAG THEN 6310 6160 IF FLAG THEN A$=HEAD$:GOSUB 12000 6170 PRINT#1,:PRINT#1,:PRINT#1,:PRINT#1, " ESTIMATED COEFFICIENTS:":PRINT#1,:PRINT#1, 6180 PRINT#1, SPACE$(30) "t STATISTIC t PROB" 6190 F3$ = "#######.###" 'FORMAT FOR t STATISTIC 6200 FOR I=0 TO M-1 6210 IF I=0 THEN PRINT#1, "INTERCEPT: "; ELSE PRINT#1, LEFT$(VBLENAME$(I+1),10)SPACE$(10-LEN(VBLENAME$(I+1)))": "; 6220 IF ABS(BETA#(I+1))>100000! OR ABS(BETA#(I+1))<.001 THEN F$="#.######^^^^" ELSE F$="######.#####" 6230 PRINT#1, USING F$;BETA#(I+1); 6232 A$=" ":IF TPROB(I+1)>.95 THEN A$=" * " 6234 IF TPROB(I+1)>.99 THEN A$=" ** " 6236 PRINT#1,A$;:PRINT#1, USING F3$;T(I+1);TPROB(I+1) 6240 NEXT I 6250 Z=RSQR#:PRINT#1, " R SQUARED: "Z 6260 PRINT#1, " F STATISTIC: "F! 6270 PRINT#1, USING "(degrees of freedom: ##_,###)";M-1,N-M 6280 Z=DW#:PRINT#1," DURBAN-WATSON STATISTIC: "Z 6290 PRINT#1, USING " (t degrees of freedom: ###)";N-M 6300 ' PRINT ERRORS 6310 A$="ERRORS":GOSUB 7000 6320 IF FLAG THEN 6470 6330 MASK$="* | *" 6340 F$="###. #########.## #########.## #########.##" 6350 IF FLAG THEN A$=HEAD$:GOSUB 12000:A$=" * * * ERRORS * * *":GOSUB 12000 6360 M1$=STR$(CSNG(EMIN)):M2$=STR$(CSNG(EMAX)):L=LEN(M1$)+LEN(M2$):L=L/2:IF L""THEN RETURN ELSE NEXT IB 10020 PRINT CHR$(13)" "CHR$(13); 10030 FOR IB=1 TO NBLINK%:A$=INKEY$:IF A$=CHR$(3) THEN STOP 10035 IF A$<>""THEN RETURN ELSE NEXT IB 10040 GOTO 10000 10990 ' pause routine with exit 11000 PRINT" Press any key to continue, X to exit..."; 11010 FOR IB=1 TO NBLINK%:A$=INKEY$:IF A$<>""THEN GOTO 11050 ELSE NEXT IB 11020 PRINT CHR$(13)" "CHR$(13); 11030 FOR IB=1 TO NBLINK%:A$=INKEY$:IF A$<>""THEN GOTO 11050 ELSE NEXT IB 11040 GOTO 11000 11050 IF A$="X" OR A$="x" THEN CLEAR:GOTO 300 ELSE RETURN 11150 ' DISPLAY LINE, CENTERED 12000 IF FOUT%=1 THEN PRINT TAB((WID%-LEN(A$))/2) A$:RETURN 12010 IF FOUT%=2 THEN LPRINT TAB((WID%-LEN(A$))/2) A$:RETURN 12020 IF FOUT%=3 THEN PRINT#1, TAB((WID%-LEN(A$))/2) A$ 12030 RETURN 12040 ' DISPLAY INPUT DATA 15000 IF FOUT%=1 THEN PRINT CHR$(&H1A); 15010 A$=HEAD$:GOSUB 12000 15020 HEAD1$="* * * * INPUT DATA * * * *":A$=HEAD1$:GOSUB 12000 15030 FOR J=1 TO V+1 ' set up vble name headers 15040 VNAME$(J)=VBLENAME$(J):IF LEN(VNAME$(J))>LEN(F1$) THEN VNAME$(J)=LEFT$(VNAME$(J),LEN(F1$)) 15050 I=(LEN(F1$)-LEN(VNAME$(J))-.4)/2:IF I<0 THEN I=0'spaces each side of name 15060 VNAME$(J)=SPACE$(I)+VNAME$(J)+SPACE$(I):IF LEN(VNAME$(J))M THEN K=M 'NUMBER OF INDEP. VARIABLES THAT CAN BE DISPLAYED ON SCREEN 15140 FOR J=1 TO K-1:A$=VNAME$(J+1):GOSUB 20000:NEXT J 15150 IF FOUT%<>1 THEN 15310 15160 PRINT 15170 FOR I=1 TO N 15180 PRINT USING F$;I,FNY(I); 15190  FOR J=2 TO K : PRINT USING F1$;FNX(I,J); 15200 NEXT J:PRINT 15205 IF I MOD 19 = 0 THEN GOSUB 11000:PRINT CHR$(&H1A) 'pause 15208 NEXT I:GOSUB 11000 15210 IF K=M THEN RETURN 'ALL INPUT DATA DISPLAYED 15220 K2=K 15230 K1=K2+1:K2=K1+(INT((WID%-6)/LEN(F1$)))-1:IF K2>M THEN K2=M 15240 PRINT CHR$(&H1A):A$=HEAD$:GOSUB 12000:A$=HEAD1$:GOSUB 12000:PRINT:PRINT"INDEP. VARIABLES, CONTINUED:":PRINT 15250 PRINT TAB(11);:FOR J=K1-1 TO K2-1:PRINT VNAME$(J+1);:NEXT J: PRINT 15260 FOR I=1 TO N:PRINT USING "###. ";I; 15270 FOR J=K1 TO K2:PRINT USING F1$;FNX(I,J); 15280 NEXT J:PRINT 15285 IF I MOD 19 = 0 THEN GOSUB 11000:PRINT CHR$(&H1A) 'pause 15287 NEXT I:GOSUB 11000 15290 IF K22 THEN 15470 15320 LPRINT 15330 FOR I=1 TO N 15340 LPRINT USING F$;I,FNY(I); 15350 FOR J=2 TO K : LPRINT USING F1$;FNX(I,J); 15360 NEXT J:LPRINT:NEXT I:GOSUB 10000 15370 IF K=M THEN RETURN 'ALL INPUT DATA DISPLAYED 15380 K2=K 15390 K1=K2+1:K2=K1+(INT((WID%-6)/LEN(F1$)))-1:IF K2>M THEN K2=M 15400 LPRINT CHR$(&H1A):A$=HEAD$:GOSUB 12000:A$=HEAD1$:GOSUB 12000:LPRINT:LPRINT"INDEP. VARIABLES, CONTINUED:":LPRINT 15410 LPRINT TAB(11);:FOR J=K1-1 TO K2-1:LPRINT VNAME$(J+1);:NEXT J: LPRINT 15420 FOR I=1 TO N:LPRINT USING "###. ";I; 15430 FOR J=K1 TO K2:LPRINT USING F1$;FNX(I,J); 15440 NEXT J:LPRINT:NEXT I:GOSUB 10000 15450 IF K23 THEN RETURN 15480 PRINT#1, 15490 FOR I=1 TO N 15500 PRINT#1, USING F$;I,FNY(I); 15510 FOR J=2 TO K : PRINT#1, USING F1$;FNX(I,J); 15520 NEXT J:PRINT#1,:NEXT I:GOSUB 10000 15530 IF K=M THEN RETURN 'ALL INPUT DATA DISPLAYED 15540 K2=K 15550 K1=K2+1:K2=K1+(INT((WID%-6)/LEN(F1$)))-1:IF K2>M THEN K2=M 15560 PRINT#1, CHR$(&H1A):A$=HEAD$:GOSUB 12000:A$=HEAD1$:GOSUB 12000:PRINT#1,:PRINT#1,"INDEP. VARIABLES, CONTINUED:":PRINT#1, 15570 PRINT#1, TAB(11);:FOR J=K1-1 TO K2-1:PRINT#1, VNAME$(J+1);:NEXT J: PRINT#1, 15580 FOR I=1 TO N:PRINT#1, USING "###. ";I; 15590 FOR J=K1 TO K2:PRINT#1, USING F1$;FNX(I,J); 15600 NEXT J:PRINT#1,:NEXT I 15610 IF K22!: Gw: 2* >w:qc:q~#R͛M>qͦ _\\   S A V E - M B Version 2.0 for MBASIC 5.21 on Osborne 1 (c) 1985 by John M. Steele donated to FOG, its chapters, and memebers for non-commercial use only *R E L A X and read this. If your program is still in memory, SAVE-MB will recover it for you. *Be sure there is room for your file on the drive you specified (or default). You can load a formatted disk now if you are not sure. SAVE-MB resets the drives before proceeding. <<<<<< HIT ANY KEY TO BEGIN >>>>>> $Usage: SAVE-MB X:FILENAME.TYP saves abandoned MBASIC program in memory to filename. X: is optional drive specification. This version is configured for MBASIC 5.21 on Osborne 1. $.mt 0 SAVE.DOC Version 2.0 (c) 1985 by John M. Steele, DEFOG NOTICE: SAVE.DOC, SAVE-WS.COM, and SAVE-MB.COM have been donated to FOG for non-commercial distribution to its affiliated chapters and members. The author retains all other copyrights. VERSIO 2. NOTES I Versio 1.0 thes program wer name WS-SAVE.CO an MB-SAVE.COM The hav bee rename s tha the wil b adjacen i sorte directory Tw mino problem i Versio 1. have been corrected: *I n fil nam i specified th Versio progra give brie usag description wherea th Versio 1. create fil o (blank).(blank) which could not be accessed. *The Version 2. progra correctl retain th defaul driv whil resettin th disks Versio 1. defaulte t th A driv an woul writ t th B driv onl i th B designation was included in the filespec. Th use patc addresse give belo hav bee revised for the Version 2.0 program. Th April/Ma 198 issu o th Portabl Companio define procedur fo recover o los Wordsta o MBASI file fro memor usin DD an SAV commands Th procedure wor bu ma b difficul t remembe o locat unde th pressur o th dreade BDO ERRO o othe crisis Thes procedure hav bee reduce t program whic ca b kep o you dis an ar eas t use. SAVE-WS.COM ----------- SAVE-WS saves Wordstar text from memory to a specified file. The algorithm for finding the end- of-text is weak and may result in junk appended to the end of the file which you will have to edit out, but this is much easier than re-typing the text. Note that in a long document, any text beyond the starting location of the CCP (at CF00h in the Osborne 1) will be overwritten when CP/M is re- loaded, so some text may be missing at the end of the file. USAGE: 1. The recommended procedure is to place a copy of SAVE-WS on your Wordstar diskette before the need arises. The procedure below assumes that SAVE-WS is on the A: drive and that B: has been logged as the default drive. Other arrangements will work if the drives are correctly specified. 2. Exit to CP/M and type A:SAVE-WS x:filename.ext where the x: is an optional drive specification (A: or B:) and filename.ext is the CP/M filename you would like your text written to. The specified (or default) destination drive must have room for the file. However, SAVE-WS will pause after displaying its sign-on message. At this point, you may load another diskette on the destination drive, SAVE-WS will reset the drives for you. Hit any key to begin the file recovery. 3. File recovery will be stopped by any of four conditions: A. User Input: The text is displayed on the screen as it is written to file. If you see SAVE-WS continue after the end of valid text, hit any key to stop the process and close the file. B. Encounter ^Z: In saving a file, Wordstar fills the sector with ^Z. If you are editting an old file, and have not inserted too much, there may be one or more ^Z at the end of text. This will close the file. C. Long Line: If SAVE-WS encounters more than 128 characters without a line feed, it terminates the write to file. The 128 character limit is arbitrary and may be patched by the user. D. Encounter the CCP: SAVE-WS calculates the beginning of CP/M (specifically the CCP) and stops the write at this address. Any text above this address has been overwritten in re- loading CP/M before SAVE-WS is even called. 4. Reload Wordstar, call up the file in which you stored your text and check it carefully, editting as required. Note that in very long files, Wordstar may have written part of the text to a temporary file ( .$$$ extension) and that only part of text was in memory. USER PATCHES The distributed version of SAVE-WS is correct only for Wordstar 2.26. Wordstar 2.26 starts text at memory address 7321h. Other versions of Wordstar start text at different memory locations. SAVE-WS stores the start-of-text address at 01E7h and 01E8h, low byte first. Patch this address for other versions of Wordstar. If you patch the start address above, you may wish to patch the Wordstar version number in the sign-on. It is located in four contiguous bytes startin a 0215h an agai a 0495h Pleas d no patc m copyrigh o distributio notice. The long line limit of 128 characters (80h) is stored at 01E4h. If SAVE-WS encounters this many characters without a line feed, it closes the file. Users working with wide documents may wish to change  thi limit I ma be increase t maximu valu of 255 characters (FFh). SAVE-MB.COM ----------- SAVE-MB saves MBASIC programs from memory to a specified file. Note that in a long program, any lines beyond the starting location of the CCP (at CF00h in the Osborne 1) will be overwritten when CP/M is re-loaded, so some lines may be missing at the end of the file. I am indebted to Jim McHutchion of DEFOG for his note on recovering MBASIC files which identified the locations (0AC8h and 0AC6h) at which MBASIC stores the addresses for the start and end of program memory. This allows SAVE-MB to teminate more cleanly than SAVE-WS. USAGE: 1. The recommended procedure is to place a copy of SAVE-MB on your MBASIC diskette before the need arises. The procedure below assumes that SAVE-MB is on the A: drive and that B: has been logged as the default drive. Other arrangements will work if the drives are correctly specified. 2. Exit to CP/M and type A:SAVE-MB x:filename.BAS where the x: is an optional drive specification (A: or B:) and filename.BAS is the CP/M filename you would like your text written to. The specified (or default) destination drive must have room for the file. However, SAVE-MB will pause after displaying its sign-on message. At this point, you may load another diskette on the destination drive, SAVE-MB will reset the drives for you. Hit any key to begin the file recovery. 3. SAVE-MB will write your program to file and stop reliably at the end of the program provided it ends below the start of the CCP (CF00h in the Osborne 1). If your program is too long, recovery may stop in mid-line and some lines may be lost. 4. Reload MBASIC, call up the file in which you stored your program and check it carefully, editting as required. USER PATCHES: MBASIC 5.21 stores the address of the start of program at 0AC8h; for Version 5.21, the contents are always 61AEh. The address of the end of program is stored at 0AC6h and contents are a function of program length. SAVE-MB references both of these locations as part of the recovery process. The author does not know whether these locations are common to all versions of MBASIC or require patching. References to addresses 0AC7h, 0AC6h, and 0AC8h are made in SAVE-MB at addresses 013Ah, 0142h, and 0148h respectively and may require patching for other versions of MBASIC. Note that all references are in the usual low byte first format. (end of document) below the start of the CCP (CF00h in the Osborne 1). If your program is too long, recovery may stop in mid-line and some lines may be lost. 4. Reload MBASIC, call up the file in which you stored your program and check it carefully, editting as required. USER PATCHES: MBASIC 5.21 stores the address of the start of program at 0AC8h; for Version 5.2 UNPROTECTING PROTECTED BASIC by Gobind Singh Khalsa I th Novembe '8 issu o Creativ Computing Murra L Lesse explain ho t unprotec Basi progra fil save wit th ",P fo Protec option A applie t th Osborn running Mbasic under CP/M, the steps are as follows: You'l nee DDT.COM MBASIC.COM an th proble progra read o disk Let' assum tha th progra t b unprotecte i name 'TEST.BAS an wha follow i exactl wha yo ente a whatever prompt presents itself at the time. STEP 1) ENTER -> DDT MBASIC.COM 2) S80 3) 00 4) . 5) G 6) LOAD "TEST" 7 LEԠDD &H3 9) S0BEC  10) 00 11) . 12) G 13) LIST ( or LLIST or SAVE "TEST" to save it in an unprotected format) n th proble progra read o disk Let' assum tha th progra t b unprotecte i name 'TEST.BAS an wha follow i exactl wha yo ente a whatever prompt presents itself at the time. STEP 1) ENTER -> DDT MBASIC.COM 2) S80 3) 00 4) . 5) G 6) LOAD "TEST" 7 LEԠDD &H3 9) S0BEC Users of Microsoft MBASIC 5.2 may find this of interest: It's sometimes annoying not to be able to LIST a .BAS file you previously SAVEd using the ,P (protect) option. If you bring up MBASIC 5.2 and do POKE 23899,175 then LOAD your protected file, you will be able to LIST or SAVE it in normal format. ACCOUNTS ,BCDEFGBANK BASHIJMULTREG1BASKLMNOPQRSTUVWXYZMULTREG1BASQ[\]^_`abcdeMULTREG1DOC:fghijklmMULTREG DTA noMULTREG MSG pqSAVE-MB2COMrSAVE20 DOC=stuvwxyzUNPROTECDOC {|MBASIC-P$$$10 DEFDBL A,K,X:DEFINT J,M,N,T:DIM A(20),K(20):T=7 20 PRINT CHR$(26):REM CLEAR SCREEN 30 PRINT" *** MEASURE ***":PRINT:PRINT 31 REM Written by JIM SCHENKEL 415/928-4445. MBASIC 32 REM version 7/11/81 translated from original North 33 REM Star Basic version donated to NorthStar Users' 34 REM Group library in 1978. NSBASIC uses BCD math. 35 REM MBASIC doesn't, but double precision calculation 36 REM should give accurate results to 6 places as printed. 37 REM Data is from CRC HANDBOOK OF CHEMISTRY & 38 REM PHYSICS (58th ed., 1978). Good to 8 places. 39 REM Comments welcome. 40 PRINT"Choose the number of the type of measurement involved" 50 PRINT:RESTORE 380:FOR J=1 TO T:READ A$:PRINT J;A$:NEXT 60 PRINT:INPUT M 70 IF M<1 OR M>7 OR INT(M)<>ABS(M) THEN 40 80 PRINT CHR$(26):PRINT"Choose the number of the units" 90 PRINT"you wish to have converted" 100 GOSUB 740:N1=0 110 READ A$:IF A$="" THEN 130 120 N1=N1+1:PRINT N1;A$:GOTO 110 130 PRINT:INPUT N 140 IF N<=N1 AND N>=1 AND INT(N)=ABS(N) THEN 160 150 PRINT"Sorry, try again":GOTO 100 160 GOSUB 740:FOR J=1 TO N:READ A$:NEXT:PRINT 170 PRINT"How many ";A$;:INPUT X:GOSUB 750:IF M=7 THEN 320 180 FOR I=1 TO N1-1:READ R:K(I)=R:NEXT 190 IF N<>1 THEN 210 200 FOR J=2 TO N1:A(J)=X/K(J-1):NEXT:GOTO 250 210 A(1)=X*K(N-1):FOR J=2 TO N1 220 IF J=N THEN 240 230 A(J)=A(1)/K(J-1) 240 NEXT J 250 FOR J=1 TO N:READ A$:NEXT 260 PRINT:PRINT X;" ";A$;" is equivalent to:":GOSUB 740 270 FOR I=1 TO N1:READ A$:IF I=N THEN 290 278 REM O! in line 280 changes the calculated result to 279 REM single precision. Change to LPRINT for hardcopy.' 280 O!=A(I):PRINT O,A$ 290 NEXT I 300 PRINT:PRINT"Again?":PRINT"1-same units 2-same type 3-different type" 310 Q$=INPUT$(1):ON VAL(Q$) GOTO 160,80,40:END 319 REM Lines 320-370 deal with temperature (special case). 320 IF N=1 THEN 350 330 IF N=2 THEN 360 340 A(1)=X-273.16:A(2)=A(1)*1.8+32:GOTO 370 350 A(3)=X+273.16:A(2)=X*1.8+32:GOTO 370 360 A(1)=(X-32)/1.8:A(3)=A(1)+273.16 370 RESTORE 720:GOTO 250 379 REM Types of measurement follow: 380 DATA " length"," area"," volume"," mass" 390 DATA " energy"," velocity"," temperature" 399 REM Data areas follow, beginning with constants for length. 400 DATA 100,1e5,2.54,30.48,91.44,1.609344e5 410 DATA 1.852e5,1e-8,9.46055e17 420 DATA centimeters, meters, kilometers, inches 430 DATA feet, yards, miles, naut. miles (Int'l) 440 DATA angstroms, light years, "" 450 DATA 1e4,1e10,6.4516,929.0304,8361.2736 460 DATA 25899881000#,40468564# 470 DATA square centimeters, square meters 480 DATA square kilometers, square inches 490 DATA square feet, square yards, square miles 500 DATA acres, "" 510 DATA 1000!,1E+06,16.387064#,28316.847#,764554.86#,29.5735 520 DATA 473.1764700000001#,946.3529400000001#,3785.4118#,4546.09,158987! 530 DATA cubic centimeters, liters, cubic meters 540 DATA cubic inches, cubic feet, cubic yards 550 DATA fluid ounces, fluid pints, fluid quarts 560 DATA gallons, Imperial gallons, barrels (oil),"" 570 DATA 1e3,1e6,28.349523,453.59237,9.0718474e5 580 DATA 31.103486,373.24182,980.665 590 DATA grams, kilograms, metric tons 600 DATA ounces (avoirdupois),pounds (avoirdupois) 610 DATA short tons, Troy ounces, Troy pounds, dynes, "" 620 DATA 3.9683207e-3,9.2744135e-3,1.28408e-3,9.48451e-4 630 DATA 2546.14,3404.6205,9.48451e-11,2.8736047e5,9.30113e-8 640 DATA BTU, calories 650 DATA kilogram meters, foot pounds 660 DATA joules, horsepower hours, kilowatt hours 670 DATA ergs, tons of refrigeration, gram centimeters, "" 680 DATA 27.78,2.54,30.48,.508,44.7 690 DATA centimeters per second, kilometers per hour 700 DATA inches per second, feet per second 710 DATA feet per minute, miles per hour, "" 720 DATA degrees centigrade, degrees Farenheit 730 DATA degrees Kelvin, "" 740 ON M GOTO 760,770,780,790,800,810,820 750 ON M GOTO 830,840,850,860,870,880,890 759 REM Lines 760-820 reset to proper constants. 760 RESTORE 420:RETURN 770 RESTORE 470:RETURN 780 RESTORE 530:RETURN 790 RESTORE 590:RETURN 800 RESTORE 640:RETURN 810 RESTORE 690:RETURN 820 RESTORE 720:RETURN 829 REM Lines 830-890 reset to proper unit names. 830 RESTORE 400:RETURN 840 RESTORE 450:RETURN 850 RESTORE 510:RETURN 860 RESTORE 570:RETURN 870 RESTORE 620:RETURN 880 RESTORE 680:RETURN 890 RETURN 900 REM Additional types of measurement can be 901 REM added by the following steps: 902 REM -- Increase the number of types of 903 REM measurements (T, line 10). 904 REM -- Add the name of the type of measurement 905 REM to the data statement on line 390, or put 906 REM in a new data line at, e.g., 395. Note the 907 REM leading space. 908 REM -- Add appropriate jump vectors to lines 909 REM 740 and 750 (e.g., to lines 825 and 895). 910 REM -- Add line restoring data area for the 911 REM numeric constants (e.g., at line 825). 912 REM -- Add line restoring data area for the 913 REM unit name strings (e.g., at line 895). 914 REM -- Create appropriate data lines. 915 REM Note that there should be one more unit name 916 REM in the list than there are constants. Each 917 REM calculation first converts everything into 918 REM the first units on the list (e.g., centimeters) 919 REM and then multiplies by the constants to 920 REM arrive at the other values. 921 REM -- Be sure that the last data item in the 922 REM list of unit names is the dummy data "". th REM measurements (T, line 10). 904 REM -- Add the name of the type of measurement 905 REM to the data statement on line 390, or put 906 REM in a new data line at, e.g., 395. Note the 907 REM leading space. 908 REM -- Add appropriate jump vectors to lines 909 REM 740 and 750 (e.g., to lines 825 and 895). 910 REM -- Add line restoring data area for the 911 REM numeric constants (e.g., at line 825). 912 REM -- Add line restoring data area for the 913 REM unit name strings (e.g., at line 895). 914 REM -- Create appropriate data lines. 915 REM Note that there should be one more un5 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 10 PRINT " *** GREAT CONVERSION SYSTEM ***" 20 PRINT:PRINT "U.S. TO METRIC AND METRIC TO U.S. CONVERSIONS":PRINT:PRINT 30 PRINT " COPYRIGHT 1982 BY BURT L. FIELDING" 35 PRINT " 325 POPPINGA WAY, SANTA MARIA, CA 93455":PRINT:PRINT 40 PRINT " Do You Want CONVERSION For............." 50 PRINT:PRINT 60 PRINT " (1) METRIC To U.S." 70 PRINT " (2) U.S. To METRIC" 80 PRINT 90 INPUT " TYPE 1 OR 2";N 100 PRINT 110 ON N GOSUB 1000,1200 120 PRINT 130 GOTO 40 990 REM ***** SUBROUTINES FOR METRIC TO U.S. 1000 PRINT:PRINT:PRINT "METRIC TO U.S. CONVERSIONS AVAILABLE" 1010 PRINT 1020 PRINT "CHOOSE CONVERSION DESIRED FROM THIS LIST:" 1030 PRINT 1040 PRINT " (1) ";"CENTIMETERS TO INCHES" 1050 PRINT " (2) ";"METERS TO FEET" 1060 PRINT " (3) ";"KILOMETERS TO MILES" 1070 PRINT " (4) ";"KILOGRAMS TO POUNDS" 1080 PRINT " (5) ";"GRAMS TO OUNCES" 1090 PRINT " (6) ";"LITERS TO QUARTS" 1100 PRINT " (7) ";"SQUARE METERS TO SQUARE FEET" 1110 PRINT " (8) ";"SQUARE METERS TO ACRES" 1120 PRINT " (9) ";"MILLILITERS TO FLUID OUNCES" 1130 PRINT " (10) ";"DEGREES CELSIUS TO DEGREES FAHRENHEIT" 1140 PRINT " (11) ";"LITERS TO GALLONS" 1145 PRINT " (12) ";"KILOJOULES TO KILOCALORIES" 1150 PRINT:PRINT:PRINT 1160 INPUT " ENTER The NUMBER Of THE Conversion Desired";M 1170 PRINT:PRINT:PRINT:PRINT 1180 ON M GOSUB 2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100 1190 RETURN 1195 PRINT:PRINT:PRINT:PRINT 1200 PRINT:PRINT:PRINT:PRINT "U.S. TO METRIC CONVERSIONS AVAILABLE" 1210 PRINT 1220 PRINT "CHOOSE CONVERSION DESIRED FROM THIS LIST:" 1230 PRINT 1240 PRINT " (1) ";"INCHES TO CENTIMETERS" 1250 PRINT " (2) ";"FEET TO METERS" 1260 PRINT " (3) ";"MILES TO KILOMETERS" 1270 PRINT " (4) ";"POUNDS TO KILOGRAMS" 1280 PRINT " (5) ";"OUNCES TO GRAMS" 1290 PRINT " (6) ";"QUARTS TO LITERS" 1300 PRINT " (7) ";"YARDS TO METERS" 1310 PRINT " (8) ";"FLUID OUNCES TO MILLILITERS" 1320 PRINT " (9) ";"ACRES TO SQUARE METERS" 1330 PRINT " (10) ";"CUBIC INCHES TO CUBIC CENTIMETERS" 1340 PRINT " (11) ";"DEGREES FAHRENHEIT TO DEGREES CELSIUS" 1350 PRINT " (12) ";"GALLONS TO LITERS" 1360 PRINT:PRINT 1370 INPUT "ENTER The NUMBER Of THE Conversion You Desire";S 1380 PRINT:PRINT:PRINT:PRINT 1390 ON S GOSUB 4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100 1400 RETURN 2000 PRINT " CENTIMETERS TO INCHES":PRINT 2010 INPUT " NUMBER OF CENTIMETERS";C:PRINT 2015 PRINT 2020 PRINT C;"CENTIMETERS =";C*.393701;"INCHES" 2030 PRINT:RETURN 2100 PRINT "METERS TO FEET":PRINT 2110 INPUT "NUMBER OF METERS";M 2115 PRINT 2120 PRINT M;"METERS =";M*3.2808;"FEET" 2130 PRINT:RETURN 2200 PRINT "KILOMETERS TO MILES":PRINT 2210 INPUT "NUMBER OF KILOMETERS";K 2215 PRINT 2220 PRINT K;"KILOMETERS =";K*.6214;"MILES" 2230 PRINT:RETURN 2300 PRINT "KILOGRAMS TO POUNDS":PRINT 2310 INPUT "NUMBER OF KILOGRAMS";K 2315 PRINT 2320 PRINT K;"KILOGRAMS =";K*2.2046;"POUNDS" 2330 PRINT:RETURN 2400 PRINT "GRAMS TO OUNCES":PRINT 2410 INPUT "NUMBER OF GRAMS";G 2415 PRINT 2420 PRINT G;"GRAMS =";G*.03527;"OUNCES" 2430 PRINT:RETURN 2500 PRINT "LITERS TO QUARTS":PRINT 2510 INPUT "NUMBER OF LITERS";L 2515 PRINT 2520 PRINT L;"LITERS =";L*1.0567;"QUARTS" 2530 PRINT:RETURN 2600 PRINT "SQUARE METERS TO SQUARE FEET":PRINT 2610 INPUT "NUMBER OF SQUARE METERS";S 2615 PRINT 2620 PRINT S;"SQUARE METERS =";S*10.7643;"SQUARE FEET" 2630 PRINT:RETURN 2700 PRINT "SQUARE METERS TO ACRES":PRINT 2710 INPUT "NUMBER OF SQUARE METERS";S 2715 PRINT 2720 PRINT S;"SQUARE METERS =";S*.000247;"ACRES" 2730 PRINT:RETURN 2800 PRINT "MILLILITERS TO FLUID OUNCES":PRINT 2810 INPUT "NUMBER OF MILLILITERS";M 2815 PRINT 2820 PRINT M;"MILLILITERS =";M*.0338;"FLUID OUNCES" 2830 PRINT:RETURN 2900 PRINT "DEGREES CELSIUS TO DEGREES FAHRENHEIT":PRINT 2910 INPUT "NUMBERS OF DEGREES CELSIUS";D 2915 PRINT 2920 PRINT D;"DEGREES CELSIUS ="9*D/5+32;"DEGREES FAHRENHEIT" 2930 PRINT:RETURN 3000 PRINT "LITERS TO GALLONS":PRINT 3010 INPUT "NUMBER OF LITERS";L 3015 PRINT 3020 PRINT L;"LITERS =";L*.26417;"GALLONS" 3030 PRINT:RETURN 3100 PRINT "KILOJOULES TO KILOCALORIES":PRINT 3110 INPUT "NUMBER OF KILOJOULES";J 3115 PRINT 3120 PRINT J;"KILOJOULES =";J*.2389;"KILOCALORIES" 3130 PRINT:RETURN 4000 PRINT "INCHES TO CENTIMETERS":PRINT 4010 INPUT "NUMBER OF INCHES";I 4015 PRINT 4020 PRINT I;"INCHES =";I*2.54;"CENTIMETERS" 4030 PRINT:RETURN 4100 PRINT "FEET TO METERS":PRINT 4110 INPUT "NUMBER OF FEET";F 4115 PRINT 4120 PRINT F;"FEET =";F*.3048;"METERS" 4130 PRINT:RETURN 4200 PRINT "MILES TO KILOMETERS":PRINT 4210 INPUT "NUMBER OF MILES";M 4215 PRINT 4220 PRINT M;"MILES =";M*1.6093;"KILOMETERS" 4230 PRINT:RETURN 4300 PRINT "POUNDS TO KILOGRAMS":PRINT 4310 INPUT "NUMBER OF POUNDS";P 4315 PRINT 4320 PRINT P;"POUNDS =";P*.4536;"KILOGRAMS" 4330 PRINT:RETURN 4400 PRINT "OUNCES TO GRAMS":PRINT 4410 INPUT "NUMBER OF OUNCES";O 4415 PRINT 4420 PRINT O;"OUNCES =";O*28.35;"GRAMS" 4430 PRINT:RETURN 4500 PRINT "QUARTS TO LITERS":PRINT 4510 INPUT "NUMBER OF QUARTS";Q 4515 PRINT 4520 PRINT Q;"QUARTS =";Q*.94635;"LITERS" 4530 PRINT:RETURN 4600 PRINT "YARDS TO METERS":PRINT 4610 INPUT "NUMBER OF YARDS";Y 4615 PRINT 4620 PRINT Y;"YARDS =";Y*.9144;"METERS" 4630 PRINT:RETURN 4700 PRINT "FLUID OUNCES TO MILLILITERS":PRINT 4710 INPUT "NUMBER OF FLUID OUNCES";O 4715 PRINT 4720 PRINT O;"FLUID OUNCES =";O*29.574;"MILLILITERS" 4730 PRINT:RETURN 4800 PRINT "ACRES TO SQUARE METERS":PRINT 4810 INPUT "NUMBER OF ACRES";A 4815 PRINT 4820 PRINT A;"ACRES =";A*4047;"SQUARE METERS" 4830 PRINT:RETURN 4900 PRINT "CUBIC INCHES TO CUBIC CENTIMETERS":PRINT 4910 INPUT "NUMBER OF CUBIC INCHES";I 4915 PRINT 4920 PRINTI;"CUBIC INCHES =";I*16.387;"CUBIC CENTIMETERS" 4930 PRINT:RETURN 5000 PRINT "DEGREES FAHRENHEIT TO DEGREES CELSIUS":PRINT 5010 INPUT "NUMBER OF DEGREES FAHRENHEIT";D 5015 PRINT 5020 PRINT D;"DEGREES FAHRENHEIT =";5/9*(D-32);"DEGREES CELSIUS" 5030 PRINT:RETURN 5100 PRINT "GALLONS TO LITERS":PRINT 5110 INPUT "NUMBER OF GALLONS";G 5115 PRINT 5120 PRINT G;"GALLONS =";G*3.7854;"LITERS" 5130 PRINT:RETURN 5140 END :PRINT 5110 INPU 4600 PRINT "YARDS TO METERS":PRINT 4610 INPUT "NUMBER OF YARDS";Y 4615 PRINT 4620 PRINT Y;"YARDS =";Y*.9144;"METERS" 4630 PRINT:RETURN 4700 PRINT "FLUID OUNCES TO MILLILITERS":PRINT 4710 INPUT "NUMBER OF FLUID OUNCES";O 4715 PRINT 4720 PRINT O;"FLUID OUNCES =";O*29.574;"MILLILITERS" 4730 PRINT:RETURN 4800 PRINT "ACRES TO SQUARE METERS":PRINT 4810 INPUT "NUMBER OF ACRES";A 4815 PRINT 4820 PRINT A;"ACRES =";A*4047;"SQUARE METERS" 4830 PRINT:RETURN 4900 PRINT "CUBIC INCHES TO CUBIC CENTIMETERS":PRINT 4910 INPUT "NUMBER OF CUBIC INCHES";I 4915 PRINT 4920 PRINTI;"CUBIC INCHES =";I*16.387;"CUBIC CENTIMETERS" 4930 PRINT:RETURN 5000 PRINT "DEGREES FAHRENHEIT TO DEGREES CELSIUS":PRINT 5010 INPUT "NUMBER OF DEGREES FAHRENHEIT";D 5015 PRINT 5020 PRINT D;"DEGREES FAHRENHEIT =";5/9*(D-32);"DEGREES CELSIUS" 5030 PRINT:RETURN 5100 PRINT "GALLONS TO LITERS":PRINT 5110 INPU10 REM CONVERT 30 PRINT TAB(20) "CONVERT" 40 PRINT TAB(17) "BY RON FORSYTHE" 50 PRINT 60 PRINT "I AM A NUMBER CONVERTER. MY PURPOSE IS TO CONVERT" 70 PRINT "METRIC MEASURE TO SAE STANDARD AND CENTIGRADE TO" 75 PRINT "FARENHEIT." 77 PRINT 80 PRINT "I WILL ASK YOU QUESTIONS REGARDING TYPES AND UNITS" 90 PRINT "OF CONVERSION. WHEN YOU ANSWER A QUESTION, END THE" 100 PRINT "ANSWER YOU GIVE ME BY PRESSING THE RETURN KEY." 105 FOR X=1 TO 13 107 PRINT 108 NEXT X 110 INPUT "PRESS RETURN TO CONTINUE";R$ 120 PRINT 130 PRINT " LINEAR MEASURE"," WEIGHT" 135 PRINT " --------------"," ------" 140 PRINT 150 PRINT "A = MILLIMETERS","F = MILLIGRAMS" 160 PRINT 170 PRINT "B = CENTIMETERS","G = CENTIGRAMS" 180 PRINT 190 PRINT "C = DECIMETERS","H = DECIGRAMS" 200 PRINT 210 PRINT "D = METERS ","I = GRAMS" 220 PRINT 230 PRINT "E = KILOMETERS","J = KILOGRAMS" 240 PRINT 250 PRINT TAB(10) "M= MORE SELECTIONS" 260 PRINT 270 PRINT TAB(10) "Q = QUIT" 275 FOR X2=1 TO 5 278 PRINT 280 NEXT X2  290 PRINT "PLEASE SELECT THE LETTER THAT CORRESPONDS TO" 300 PRINT "THE UNIT OF MEASURE YOU WISH TO HAVE CONVERTED." 310 INPUT;I$ 315 PRINT 320 IF I$="Q" THEN END 330 IF I$="M" GOTO 1000 340 GOSUB 5000 350 IF I$<"F" THEN I=N1*39.37 ELSE O=N1*.035274 490 F=I/12 500 Y=F/3 502 M=F/5280 504 P1=O/16 510 T=P1/5280 520 IF I$="A" THEN I$=" MILLIMETERS" 530 IF I$="B" THEN I$=" CENTIMETERS" 540 IF I$="C" THEN I$=" DECIMETERS" 550 IF I$="D" THEN I$=" METERS" 560 IF I$="E" THEN I$=" KILOMETERS" 570 IF I$>"E" THEN 700 580 PRINT 590 PRINT N2;I$; " CONVERTS TO:" 595 PRINT 600 PRINT "INCHES: ";I 610 PRINT "FEET: ";F 620 PRINT "YARDS: ";Y 630 PRINT "MILES: ";M 640 FOR X4=1 TO 16 645 PRINT 646 NEXT X4 650 PRINT:INPUT "WOULD YOU LIKE ANOTHER CONVERSION (Y/N)";Y$ 660 IF Y$="Y" GOTO 120 670 END 700 IF I$="F" THEN I$=" MILLIGRAMS" 710 IF I$="G" THEN I$=" CENTIGRAMS" 720 IF I$="H" THEN I$=" DECIGRAMS" 730 IF I$="I" THEN I$=" GRAMS" 740 IF I$="J" THEN I$=" KILOGRAMS" 750 PRINT 760 PRINT N2;I$;" CONVERTS TO:" 765 PRINT 770 PRINT "OUNCES: ";O 780 PRINT "POUNDS: ";P1 790 PRINT "SHORT TONS ";T 792 FOR X5=1 TO 17 794 PRINT 796 NEXT X5 800 GOTO 650 1000 PRINT 1005 PRINT TAB(20) "MENU 2" 1007 PRINT TAB(20) "======" 1010 PRINT 1020 PRINT " LIQUID MEASURE"," TEMPERATURE" 1025 PRINT " --------------"," -----------" 1030 PRINT 1040 PRINT "A = MILLILITERS","F = CENTIGRADE" 1050 PRINT 1060 PRINT "B = CENTILITERS" 1070 PRINT 1080 PRINT "C = DECILITERS" 1090 PRINT 1100 PRINT "D = LITERS" 1110 PRINT 1120 PRINT "E = KILOLITERS" 1130 FOR X3=1 TO 6 1133 PRINT 1135 NEXT X3 1140 PRINT "PLEASE SELECT THE LETTER THAT CORRESPONDS TO" 1150 PRINT "THE UNIT OF MEASURE YOU WISH TO HAVE CONVERTED" 1160 INPUT I$ 1170 PRINT 1180 IF I$="R" THEN 120 1190 IF I$="Q" THEN END 1200 IF I$="F" THEN 2000 1210 GOSUB 5000 1220 P2=N1*2.113 1230 C=P2*2 1240 Q=P2/2 1250 G=Q/4 1260 IF I$="A" THEN I$=" MILLILITERS" 1270 IF I$="B" THEN I$=" CENTILITERS" 1280 IF I$="C" THEN I$=" DECILITERS" 1290 IF I$="D" THEN I$=" LITERS" 1300 IF I$="E" THEN I$=" KILOLITERS" 1310 PRINT 1320 PRINT N2;I$;" CONVERTS TO:" 1325 PRINT 1330 PRINT "CUPS: ";C 1340 PRINT "PINTS: ";P2 1350 PRINT "QUARTS: ";Q 1360 PRINT "GALLONS: ";G 1370 FOR X6=1 TO 17 1372 PRINT 1374 NEXT X6 1380 INPUT "WOULD YOU LIKE ANOTHER CONVERSION (Y/N)";Y$ 1390 IF Y$="Y" THEN 120 1400 END 2000 INPUT "NUMBER OF DEGREES CENTIGRADE TO BE CONVERTED";N1 2010 N2=N1 2020 N1=N1*1.8+32 2030 PRINT 2040 PRINT N2;" DEGREES CENTIGRADE IS EQUAL TO" 2050 PRINT N1;" DEGREES FARENHEIT" 2052 FOR X7=1 TO 3 2054 PRINT 2056 NEXT X7 2060 GOTO 1370 5000 REM GOSUB 5000 MODULE TO CONVERT VALUES 5002 PRINT 5005 PRINT "NUMBER OF UNITS TO BE CONVERTED" 5010 INPUT "(-99.99 TO QUIT)";N1 5020 N2=N1 5030 IF N1=-99.99 THEN 650 5040 IF I$="A" THEN N1=N1*.001 ELSE IF I$="F" THEN N1=N1*.001 5050 IF I$="B" THEN N1=N1*.01 ELSE IF I$="G" THEN N1=N1*.01 5060 IF I$="C" THEN N1=N1*.1 ELSE IF I$="H" THEN N1=N1*.1 5070 IF I$="E" THEN N1=N1*1000 ELSE IF I$="J" THEN N1=N1*1000 5080 RETURN I$="C" THEN N1=N1*.1 ELSE IF I$="H" THEN N1=N1*.1 5070 IF I$="E" THEN N1=N1*1000 ELSE IF I$="J" THENPRINT "CUPS: ";C 1340 PRINT "PINTS: ";P2 1350 PRINT "QUARTS: ";Q 1360 PRINT "GALLONS: ";G 1370 FOR X6=1 TO 17 1372 PRINT 1374 NEXT X6 1380 INPUT "WOULD YOU LIKE ANOTHER CONVERSION (Y/N)";Y$ 1390 IF Y$="Y" THEN 120 1400 END 2000 INPUT "NUMBER OF DEGREES CENTIGRADE TO BE CONVERTED";N1 2010 N2=N1 2020 N1=N1*1.8+32 2030 PRINT 2040 PRINT N2;" DEGREES CENTIGRADE IS EQUAL TO" 2050 PRINT N1;" DEGREES FARENHEIT" 2052 FOR X7=1 TO 3 2054 PRINT 2056 NEXT X7 2060 GOTO 1370 5000 REM GOSUB 5000 MODULE TO CONVERT VALUES 5002 PRINT 5005 PRINT "NUMBER OF UNITS TO BE CONVERTED" 5010 INPUT "(-99.99 TO QUIT)";N1 5020 N2=N1 5030 IF N1=-99.99 THEN 650 5040 IF I$="A" THEN N1=N1*.001 ELSE IF I$="F" THEN N1=N1*.001 5050 IF I$="B" THEN N1=N1*.01 ELSE IF I$="G" THEN N1=N1*.01 5060 IF I$="C" THEN N1=N1*.1 ELSE IF I$="H" THEN N1=N1*.1 5070 IF I$="E" THEN N1=N1*1000 ELSE IF I$="J" THEN5000 REM *** IN ASCII *** 5010 REM ** KEPT ON ALL DISKS AS A "TOOLKIT PART" ** 5020 REM ********** QUIT ROUTINE ********** 5030 PRINT 5040 PRINT"ARE YOU SURE YOU WANT TO QUIT?" 5050 A$=INKEY$ 5060 IF LEN(A$)<1 THEN 5050 5070 IF A$="N" THEN 5360 5080 IF A$="Y" THEN 5100 5090 GOTO 5050 5100 PRINT 5110 PRINT"OPTIONS: A>SYSTEM B>BASIC" 5120 PRINT"( TO BACK UP ONE FRAME )" 5130 B$=INKEY$ 5140 IF LEN(B$)<1 THEN 5130 5150 IF B$=CHR$(27) THEN 5030 5160 IF B$="A" THEN 5300 5170 IF B$="B" THEN 5190 5180 GOTO 5130 5190 PRINT 5200 PRINT"OPTIONS: A>CLEARED RAM B>PROGRAM IN RAM" 5210 PRINT" TO BACK UP" 5220 D$=INKEY$ 5230 IF LEN(D$)<1 THEN 5220 5240 IF D$=CHR$(27) THEN 5100 5250 IF D$="A" THEN 5280 5260 IF D$="B" THEN 5290 5270 GOTO 5220 5280 NEW 5290 END 5300 PRINT 5310 PRINT"INSERT SYSTEM DISKETTE IN A: AND PRESS ANY KEY" 5320 F$=INKEY$ 5330 IF LEN(F$)>0 THEN 5350 5340 GOTO 5320 5350 SYSTEM 5360 GOTO 5020 M DISKETTE IN A: AND PRESS ANY KEY" 5320 F$=INKEY$ 5330 IF L!'ENDROUTE.DOC' -- A GOOD ENDING ROUTINE I USE AS A TOOLBOX PIECE. USES OPTION BUT NOTHING ELSE SPECIAL ABOUT IT. NUMBERED FROM 5000 UP (IN ASCII) ING ROUTINE I USE AS A TOOLBOX PIECE. USES OPTION BUT NOTHING ELSE SPECIAL ABOUT IT. NUMBEREPROFILE SUB;STARTER BAS <=A/CLIST BAS >?ACCOUNT BAS @AACCOUNTS ,BCDEFGBANK BASHIJMULTREG1BASKLMNOPQRSTUVWXYZMULTREG1BASQ[\]^_`abcdeMULTREG1DOC:fghijklmMULTREG DTA noMULTREG MSG pqSAVE-MB2COMrSAVE20 DOC=stuvwxyzUNPROTECDOC {|MBASIC-PDOC}MEASURE BAS+~METRIC BAS1CONVERT BAS!ENDROUTEBASENDROUTE$$$100 REM - ROUTINE TO DO GANTT CHARTS 200 REM - DEVELOPED BY B. YANCEY JUNE, 1982 300 REM - ROUTINE IS SETUP TO DRIVE AN EPSON MX80 400 REM - IN COMPRESSED MODE 500 REM - ROUTINE EXPECTS TO READ DATA FROM DISK FILE 600 REM - FORMAT - 700 REM - DATE$,TIME,RESP$,DESC$ 800 REM - DATE$ IS STARTING DATE MMDDYY 900 REM - TIME IS TIME IN DAYS TO COMPLETE THE TASK 1000 REM - RESP$ IS CODE (1 CHAR) FOR PERSON RESPONSIBLE FOR TASK 1100 REM - DESC$ IS DESCRIPTION OF TASK 1200 DIM MD(12),ML$(12),DAY$(7) 1300 PRINT " GANTT CHART ROUTINE" 1400 PRINT 1500 REM - INITIALIZE ARRAYS 1600 FOR I=1 TO 12 1700 READ MD(I) 1800 NEXT I 1900 FOR I=1 TO 12 2000 READ ML$(I) 2100 NEXT I 2200 FOR I=1 TO 7 2300 READ DAY$(I) 2400 NEXT I 2500 DATA 31,28,31,30,31,30,31,31,30,31,30,31 2600 DATA "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC" 2700 DATA " ","M","T","W","T","F"," " 2800 REM - INPUT VALUES 2900 INPUT "TITLE";BUF$ 3000 ITB = 65 - LEN(BUF$)/2 3100 REM - SET COMPRESSED MODE AND SMALLER LINE SPACING 3200 LPRINT CHR$(27);"0" 3300 LPRINT CHR$(15) 3400 LPRINT CHR$(27) "C" CHR$(88) 3500 LPRINT TAB(ITB);BUF$ 3600 LPRINT 3700 INPUT "STARTING DATE - MMDDYY";SDTE$ 3800 SMM = VAL(LEFT$(SDTE$,2)) 3900 SDD = VAL(MID$(SDTE$,3,2)) 4000 SYY = VAL(RIGHT$(SDTE$,2)) 4100 INPUT "ENDING DATE - MMDDYY";EDTE$ 4200 EMM = VAL(LEFT$(EDTE$,2)) 4300 EDD = VAL(MID$(EDTE$,3,2)) 4400 EYY = VAL(RIGHT$(EDTE$,2)) 4500 MM2=EMM: DD2=EDD: YY2=EYY 4600 REM - CALL SUB TO CALCULATE PERIOD IN DAYS 4700 GOSUB 10000 4800 PERIOD = TDAYS 4900 SCAL = 1 5000 IF PERIOD/SCAL > 100 THEN SCAL = SCAL*7 5100 IF PERIOD/SCAL > 100 THEN SCAL = SCAL*2 5200 PRINT " SCALE TO BE USED IS ";SCAL;" DAYS" 5300 PRINT " PERIOD IS ";PERIOD;" DAYS" 5400 PRINT 5500 INPUT "DAY OF WEEK FOR STARTING DATE - 1-SUN, 2-MON, ETC";SDAY 5600 LPRINT 5700 LPRINT TAB(22);"STARTING DATE: ";SDTE$;TAB(110);"ENDING DATE: ";EDTE$ 5800 LPRINT TAB(22);"---------------------";TAB(110);"-------------------" 5900 GOSUB 12800 6000 INPUT "FILE FOR TASK DATA";FILE$ 6100 OPEN "I",1,FILE$ 6200 INPUT#1,DATE$,TIME,RESP$,DESC$ 6300 EMM = VAL(LEFT$(DATE$,2)) 6400 EDD = VAL(MID$(DATE$,3,2)) 6500 EYY = VAL(RIGHT$(DATE$,2)) 6600 IF EYY > YY2 THEN GOTO 6900 6700 GOSUB 10000 6800 GOTO 7100 6900 EYY = YY2: EDD=DD2: EMM=MM2 7000 GOTO 6700 7100 BUF$ = "|" 7200 STP=(PERIOD+(SCAL-1))/SCAL 7300 INDX=(TDAYS + (SCAL-1))/SCAL - 1 7400 IF INDX=0 THEN GOTO 7800 7500 FOR I=1 TO INDX 7600 BUF$ = BUF$ + " " 7700 NEXT I 7800 INDX = (TIME + (SCAL-1))/SCAL 7900 FOR I=1 TO INDX 8000 BUF$ = BUF$ + LEFT$(RESP$,1) 8100 NEXT I 8200 LPRINT LEFT$(DESC$,20);TAB(21);BUF$ 8300 IF LEN(DESC$) > 20 THEN LPRINT MID$(DESC$,21,20) 8400 IF LEN(DESC$) > 40 THEN LPRINT MID$(DESC$,41,20) 8500 LPRINT DIV$ 8600 IF EOF(1) THEN GOTO 8800 8700 GOTO 6200 8800 BUF$ = SPACE$(20) 8900 STP = (PERIOD+(SCAL-1))/SCAL 9000 FOR I=1 TO STP 9100 BUF$ = BUF$ + "-" 9200 NEXT I 9300 LPRINT BUF$ 9400 LPRINT 9500 LPRINT " SCALE IS";SCAL;" DAYS" 9600 CLOSE 9700 LPRINT CHR$(24) 9800 LPRINT CHR$(18) 9900 END 10000 REM - SUBROUTINE TO DETERMINE PERIOD BETWEEN TWO DATES IN DAYS 10100 REM - VALUE RETURNED IN TDAYS 10200 REM - SMM SDD SYY - STRATING DATE 10300 REM - EMM EDD EYY - ENDING DATE 10400 TDAYS = 0 10500 IF EYY > SYY THEN GOTO 11500 10600 IF EMM > SMM THEN GOTO 11500 10700 TDAYS = EDD - SDD +1 10800 RETURN 10900 TDAYS = MD(SMM) -SDD + 1 11000 FOR I = (SMM+1) TO (EMM-1) 11100 TDAYS = TDAYS + MD(I) 11200 NEXT I 11300 TDAYS = TDAYS + EDD 11400 RETURN 11500 TDAYS = MD(SMM) - SDD + 1 11600 INDX = (EYY - SYY) + 1 11700 FOR J=1 TO INDX 11800 IF J=1 THEN STRT = SMM + 1 11900 STP = 12 12000 IF J>1 THEN STRT = 1 12100 IF J=INDX THEN STP=(EMM - 1) 12200 FOR I=STRT TO STP 12300 TDAYS = TDAYS + MD(I) 12400 NEXT I 12500 NEXT J 12600 TDAYS = TDAYS + EDD 12700 RETURN 12800 REM - ROUTINE TO DO HEADINGS 12900 IF SCAL > 1 THEN GOTO 16900 13000 DIV$ = SPACE$(21) 13100 BUF$=SPACE$(21) 13200 BUF2$=SPACE$(21) 13300 STRT = SMM 13400 IF SDD>1 THEN STRT=STRT + 1 13500 IF SDD" = 1 THEN GOTO 14300 13600 FOR I=SDD TO MD(SMM) 13700 BUF$ = BUF$ + " " 13800 IF FIX(I/5)*5 <> I THEN GOTO 14100 13900 IF FIX(I/10)*10 = I THEN BUF2$ = BUF2$ + "0": GOTO 14200 14000 BUF2$ = BUF2$ + "5": GOTO 14200 14100 BUF2$ = BUF2$ + " " 14200 NEXT I 14300 FOR I=STRT TO EMM 14400 BUF$=BUF$ + ML$(I) 14500 BUF2$ = BUF2$ + "1 " 14600 FOR J=4 TO MD(I) 14700 BUF$=BUF$ + " " 14800 IF FIX(J/5)*5 = J THEN GOTO 15100 14900 BUF2$ = BUF2$ + " " 15000 GOTO 15300 15100 IF FIX(J/10)*10 = J THEN BUF2$ = BUF2$ + "0": GOTO 15300 15200 BUF2$ = BUF2$ + "5" 15300 NEXT J 15400 NEXT I 15500 LPRINT BUF$ 15600 LPRINT BUF2$ 15700 REM - DAY SCALE 15800 BUF$ = SPACE$(21) 15900 STRT = SDAY 16000 STP=(PERIOD + (SCAL-1))/SCAL 16100 FOR J=1 TO STP 16200 IF SCAL=1 THEN BUF$=BUF$ + DAY$(STRT) 16300 IF SCAL > 1 THEN BUF$ = BUF$ + DAY$(SDAY) 16400 IF SCAL = 1 AND STRT = 1 THEN DIV$ = DIV$ + "|" ELSE DIV$ = DIV$ + " " 16500 STRT = STRT + 1 16600 IF STRT > 7 THEN STRT = 1 16700 NEXT J 16800 LPRINT BUF$ 16900 BUF$ = SPACE$(20) 17000 FOR J=1 TO STP 17100 BUF$ = BUF$ + "-" 17200 NEXT J 17300 LPRINT BUF$ 17400 RETURN T BUF$ 16900 X(I/10)*10 = I THEN BUF2$ = BUF2$ + "0": GOTO 14200 14000 BUF2$ = BUF2$ + "5": GOTO 14200 14100 BUF2$ = BUF2$ + " " 14200 NEXT I 14300 FOR I=STRT TO EMM 14400 BUF$=BUF$ + ML$(I) 14500 BUF2$ = BUF2$ + "1 " 14600 FOR J=4 TO MD(I) 14700 BUF$=BUF$ + " " 14800 IF FIX(J/5)*5 = J THEN GOTO 15100 14900 BUF2$ = BUF2$ + " " 15000 GOTO 15300 15100 IF FIX(J/10)*10 = J THEN BUF2$ = BUF2$ + "0": GOTO 15300 15200 BUF2$ = BUF2$ + "5" 15300 NEXT J 15400 NEXT I 15500 LPRINT BUF$ 15600 LPRINT BUF2$ 15700 REM - DAY SCALE 15800 BUF$ = SPACE$(21) 15900 STRT = SDAY 16000 STP=(PERIOD + (SCAL-1))/SCAL 16100 FOR J=1 TO STP 16200 IF SCAL=1 THEN BUF$=BUF$ + DAY$(STRT) 16300 IF SCAL > 1 THEN BUF$ = BUF$ + DAY$(SDAY) 16400 IF SCAL = 1 AND STRT = 1 THEN DIV$ = DIV$ + "|" ELSE DIV$ = DIV$ + " " 16500 STRT = STRT + 1 16600 IF STRT > 7 THEN STRT = 1 16700 NEXT J 16800 LPRINT BUF$ 16900 10 REM LATIN AUTO DECLINER 20 REM CONCEIVED BY IAN JOHNSON 6-24-85 30 REM COMPLETED 5-7-86 40 FOR N=1 TO 22:PRINT:NEXT N 50 WIDTH 52 60 FOR N=1 TO 26 70 PRINT CHR$(127);"-"; 80 NEXT N 90 PRINT 100 PRINT"LATIN AUTO DECLINER" 110 PRINT"CREATED BY IAN JOHNSON" 120 PRINT"COPYRIGHT (C) 1986" 130 FOR PAUSE=1 TO 500:NEXT PAUSE 140 PRINT CHR$(26) 150 FOR N=1 TO 52:PRINT"_";:NEXT N 160 PRINT 170 PRINT" This program will ask for several parts of a Latin noun and will print them out fully declined with sug-gested tranlations for the various cases." 180 PRINT 190 PRINT"" 200 PRINT 210 A$=INKEY$ 220 IF LEN(A$)>0 THEN 290 230 PRINT CHR$(30); 240 PRINT" >-----*MAKE SURE YOUR PRINTER IS ON!!!!*-----<" 250 FOR PAUSE=1 TO 500:NEXT PAUSE 260 PRINT CHR$(30);" > " 270 FOR PAUSE=1 TO 300:NEXT PAUSE 280 GOTO 210 290 PRINT CHR$(26) 300 PRINT" LATIN AUTO DECLINER 310 FOR N=1 TO 52:PRINT"_";:NEXT N 320 PRINT"What is the nominative of your noun?" 330 INPUT NOM$ 340 PRINT "Nominative = ";NOM$;" O.K.? (Y/N)" 350 A$=INKEY$ 360 IF A$="Y" THEN 390 370 IF A$="N" THEN 320 380 GOTO 350 390 PRINT 400 PRINT"What is the genitive of your noun?" 410 INPUT GENITIVE$ 420 PRINT"Genitive = ";GENITIVE$;" O.K.? (Y/N)" 430 A$=INKEY$ 440 IF A$="N" THEN GOTO 400 450 IF A$="Y" THEN GOTO 470 460 GOTO 430 470 GEN$=RIGHT$(GENITIVE$,2) 480 IF GEN$>"I" THEN 490 ELSE 520 490 IF GEN$="EI" THEN 510 500 IF GEN$="IS" THEN 520 510 GEN$="I" 520 PRINT "Ending of ";GEN$ 530 A=LEN(GENITIVE$) 540 B=LEN(GEN$) 550 C=A-B 560 STEM$=LEFT$(GENITIVE$,C) 570 PRINT 580 PRINT"What is the gender of your noun? (M,F,N)" 590 SEX$=INKEY$ 600 IF SEX$="M" OR SEX$="F" OR SEX$="N" THEN 620 ELSE 610 610 GOTO 590 620 PRINT"Gender = ";SEX$;" - O.K.? (Y/N)" 630 A$=INKEY$ 640 IF A$="N" THEN 580 650 IF A$="Y" THEN 670 660 GOTO 630 670 PRINT"Ok" 680 PRINT 690 PRINT"What is the definition of your noun? i.e.' FARMER '" 700 INPUT SINGDEF$ 710 PRINT"Simple defintion - ";SINGDEF$;" O.K.? (Y/N)" 720 A$=INKEY$ 730 IF A$="Y" THEN 770 740 IF A$="N" THEN 680 750 GOTO 720 760 PRINT 770 PRINT"What is the plural defintion of your noun? i.e. 'children'" 780 INPUT PLURALDEF$ 790 PRINT"Plural definition - ";PLURALDEF$;" O.K.? (Y/N)" 800 A$=INKEY$ 810 IF A$="Y" THEN 850 820 IF A$="N" THEN 760 830 GOTO 800 840 PRINT 850 PRINT NOM$;",";STEM$;GEN$;" - ";SEX$;" ---> ";SINGDEF$ 860 REM ****** LPRINTING SUB ROUTINE ******* 870 LPRINT:LPRINT 880 LPRINT NOM$;", ";STEM$;GEN$;", ";SEX$;" ------>";SINGDEF$ 890 IF GEN$="AE" THEN GOTO 990 900 IF GEN$="I" THEN GOTO 1030 910 IF GEN$="IS" THEN GOTO 1120 920 IF GEN$="US" THEN GOTO 1190 930 IF GEN$="EI" THEN GOTO 1260 940 CLEAR 950 PRINT"Do you wish to do another? (Y/N)" 960 A$=INKEY$ 970 IF A$="Y" THEN 10 980 IF A$="N" THEN 1440 985 GOTO 960 990 READ DAT$,ACC$,ABL$,NOMP$,GENP$,DATP$,ACCP$,ABLP$ 1000 DATA AE,AM,a,AE,ARUM,IS,AS,IS 1010 LET NEUT$=STEM$ 1020 GOSUB 1300:CLEAR:GOTO 940 1030 IF S#EX$="N" THEN 1090 ELSE 1180 1040 DAT$="O":ACC$="UM":ABL$="O":NOMP$="I" 1050 GENP$="ORUM":DATP$="IS":ACCP$="OS":ABLP$="IS" 1060 LET NEUT$=STEM$ 1070 GOSUB 1300:CLEAR:GOTO 940 1080 END 1090 DAT$="O":ACC$="":ABL$="O":NOMP$="A":GENP$="ORUM" 1100 DATP$="IS":ACCP$="A":ABLP$="IS":NEUT$=NOM$ 1110 GOSUB 1300:CLEAR:GOTO 940 1120 IF SEX$="N" THEN 1160 ELSE 1130 1130 DAT$="I":ACC$="EM":ABL$="E":NOMP$="ES":GENP$="UM" 1140 DATP$="IBUS":ACCP$="ES":ABLP$="IBUS":NEUT$=STEM$ 1150 GOSUB 1300:CLEAR:GOTO 940 1160 DAT$="I":ACC$="":ABL$="E":NOMP$="A":GENP$="UM" 1170 DATP$="IBUS":ACCP$="A":ABLP$="IBUS":NEUT$=NOM$ 1180 GOSUB 1300:CLEAR:GOTO 940 1190 IF SEX$="N" THEN 1230 ELSE 1200 1200 DAT$="UI":ACC$="UM":ABL$="U":NOMP$="US":GENP$="UUM" 1210 DATP$="IBUS":ACCP$="US":ABLP$="IBUS":NEUT$=STEM$ 1220 GOSUB 1300:CLEAR:GOTO 940 1230 DAT$="U":ACC$="":ABL$="U":NOMP$="UA":GENP$="UUM" 1240 DATP$="IBUS":ACCP$="UA":ABLP$="IBUS":NEUT$=NOM$ 1250 GOSUB 1300:CLEAR:GOTO 940 1260 DAT$="EI":ACC$="EM":ABL$="E":NOMP$="E":GENP$="ERUM" 1270 DATP$="EBUS":ACCP$="ES":ABLP$="EBUS":NEUT$=STEM$ 1280 GOSUB 1300:CLEAR:GOTO 940 1290 REM ************ DECLINING SUB-ROUTINE ************ 1300 LPRINT" SINGULAR" 1310 LPRINT 1320 LPRINT"NOM.:";NOM$;" THE OR A ";SINGDEF$ 1330 LPRINT"GEN.:";STEM$;GEN$;" OF THE OR A ";SINGDEF$ 1340 LPRINT"DAT.:";STEM$;DAT$;" TO OR FOR THE OR A ";SINGDEF$ 1350 LPRINT"ACC.:";NEUT$;ACC$;" THE OR A ";SINGDEF$ 1360 LPRINT"ABL.:";STEM$;ABL$;" (PREP) THE OR A ";SINGDEF$ 1370 LPRINT" PLURAL" 1380 LPRINT"NOM.:";STEM$;NOMP$;" THE ";PLURALDEF$ 1390 LPRINT"GEN.:";STEM$;GENP$;" OF THE ";PLURALDEF$ 1400 LPRINT"DAT.:";STEM$;DATP$;" TO OR FOR THE ";PLURALDEF$ 1410 LPRINT"ACC.:";STEM$;ACCP$;" THE ";PLURALDEF$ 1420 LPRINT"ABL.:";STEM$;ABLP$;" (PREP) THE ";PLURALDEF$ 1430 RETURN 1440 REM ********** QUIT ROUTINE **********8 1450 PRINT 1460 PRINT"ARE YOU SURE YOU WANT TO QUIT?" 1470 A$=INKEY$ 1480 IF LEN(A$)<1 THEN 1470 1490 IF A$="N" THEN 1780 1500 IF A$="Y" THEN 1520 1510 GOTO 1470 1520 PRINT 1530 PRINT"OPTIONS: A>SYSTEM B>BASIC" 1540 PRINT"( TO BACK UP ONE FRAME )" 1550 B$=INKEY$ 1560 IF LEN(B$)<1 THEN 1550 1570 IF B$=CHR$(27) THEN 1450 1580 IF B$="A" THEN 1720 1590 IF B$="B" THEN 1610 1600 GOTO 1550 1610 PRINT 1620 PRINT"OPTIONS: A>CLEARED RAM B>PROGRAM IN RAM" 1630 PRINT" TO BACK UP" 1640 D$=INKEY$ 1650 IF LEN(D$)<1 THEN 1640 1660 IF D$=CHR$(27) THEN 1520 1670 IF D$="A" THEN 1700 1680 IF D$="B" THEN 1710 1690 GOTO 1640 1700 NEW 1710 END 1720 PRINT 1730 PRINT"INSERT SYSTEM DISKETTE IN A: AND PRESS ANY KEY" 1740 F$=INKEY$ 1750 IF LEN(F$)>0 THEN 1770 1760 GOTO 1740 1770 SYSTEM 1780 GOTO 10 TEM DISKETTE IN A: AND PRESS ANY KEY" 1740 F$=INKEY$ 1750 IF LEN(F$)>0 THEN 1770 1760 GOTO 1740 1770 SYSTEM 1780 GOTURALDEF$ 1430 RETURN 1440 REM ********** QUIT ROUTINE **********8 1450 PRINT 1460 PRINT"ARE YOU SURE YOU WANT TO QUIT?" 1470 A$=INKEY$ 1480 IF LEN(A$)<1 THEN 1470 1490 IF A$="N" THEN 1780 1500 IF A$="Y" THEN 1520 1510 GOTO 1470 1520 PRINT 1530 LATDEC.BAS -- A PROGRAM WHICH DECLINES LATIN VERBS NO SPECIAL FUNCTION ABOUT IT BUT THERE IS A SMALL BUG THAT CAN BE WORKED OUT. A BLINKING MESSAGE TECHNIQUE DIFFERENT THAN PRESENTED IN FOG. ONLY USEFUL TO FRESHMEN HIGH SCHOOL STUDENTS AS MYSELF OR TO LATIN TEACHERS. GE TECHNIQUE DIFFERENT THAN PRESENTED IN FOG. ONLY USEFUL TO FRESHMEN HIGH SCHOOL STUDENTS AS MYSELF OR TOACCOUNTS ,BCDEFGBANK BASHIJMULTREG1BASKLMNOPQRSTUVWXYZMULTREG1BASQ[\]^_`abcdeMULTREG1DOC:fghijklmMULTREG DTA noMULTREG MSG pqSAVE-MB2COMrSAVE20 DOC=stuvwxyzUNPROTECDOC {|MBASIC-PDOC}MEASURE BAS+~METRIC BAS1CONVERT BAS!ENDROUTEBASENDROUTEDOCGANTTX BAS)LATDEC BAS.LATDEC $$$100 XX=1 200 FOR XX=1 TO 25 300 PRINT 400 NEXT XX 500 PRINT" *********************************" 600 PRINT 700 PRINT" WHERE APPLICABLE ENTER ALL" 800 PRINT" FIGURES IN PER PERIOD AMOUNTS" 900 PRINT 1000 PRINT" *********************************" 1010 XX=1 1011 FOR XX=1 TO 6 1012 PRINT 1013 NEXT XX 1100 XX=1 1200 FOR XX=1 TO 2500 1300 NEXT XX 1400 XX=1 1500 FOR XX=1 TO 25 1600 PRINT 1700 NEXT XX 1800 PRINT"FINANCIAL MATHEMATICAL PROBLEMS AVAILIABLE:" 1900 PRINT 2000 PRINT 2100 PRINT"PRESENT VALUE (1)" 2200 PRINT"PRESENT VALUE OF AN CONSTANT ANNUITY (2)" 2300 PRINT"FUTURE VALUE (3)" 2400 PRINT"FUTURE VALUE OF AN CONSTANT ANNUTIY (4)" 2500 PRINT"SINKING FUND FACTOR (5)" 2600 PRINT"INSTALLMENT TO AMORTIZE (6)" 2700 REM CODE ENTRY AND GOTO STATEMENTS 2800 PRINT 2900 INPUT "ENTER PROBLEM NUMBER";A 3000 XX=1 3100 FOR XX=1 TO 25 3200 PRINT 3300 NEXT XX 3400 IF A=1 GOTO 4000 3500 IF A=2 GOTO 6900 3600 IF A=3 GOTO 10100 3700 IF A=4 GOTO 13000 3800 I$F A=5 GOTO 16200 3900 IF A=6 GOTO 19700 4000 PRINT"PRESENT VALUE" 4100 PRINT 4200 INPUT"WHAT IS THE FUTURE VALUE";FV 4300 INPUT"HOW MANY PERIODS";N 4400 INPUT"WHAT IS THE INTEREST RATE";P 4500 K=P/100 4600 PV=1/(1+K)^N*FV 4700 PRINT 4800 PRINT"THE PRESENT VALUE IS";PV 4900 PRINT 5000 PRINT 5100 PRINT"WOULD YOU LIKE A HARDCOPY ?" 5200 INPUT" YES (1) NO (2)";XA 5300 IF XA=1 GOTO 23400 5400 PRINT 5500 PRINT 5600 PRINT"DO YOU HAVE ANOTHER PRESENT VALUE PROBLEM ?" 5700 INPUT" YES (1) NO (2) ";B 5800 XX=1 5900 FOR XX=1 TO 25 6000 PRINT 6100 NEXT XX 6200 IF B=1 GOTO 4000 6300 PRINT 6400 PRINT 6500 PRINT"DO YOU HAVE ANY OTHER TYPE OF FINANCIAL PROBLEM ?" 6600 INPUT" YES (1) NO (2) ";C 6700 IF C=1 GOTO 1400 6800 GOTO 30400 6900 PRINT"PRESENT VALUE OF AN CONSTANT ANNUITY" 7000 PRINT 7100 INPUT"WHAT IS THE AMOUNT OF THE PAYMENTS";D 7200 INPUT"HOW MANY PERIODS";E 7300 INPUT"WHAT IS THE INTEREST RATE";F 7400 G=F/100 7500 Z=(1+G)^E 7600 Y=1-(1/Z) 7700 X=Y/G 7800 H=X*D 7900 PRINT 8000 PRINT"THE PRESENT VALUE IS"H 8100 PRINT 8200 PRINT 8300 PRINT"WOULD YOU LIKE A HARDCOPY ?" 8400 INPUT" YES (1) NO (2)";XB 8500 IF XB=1 GOTO 24600 8600 PRINT 8700 PRINT 8800 PRINT"DO YOU HAVE ANOTHER PRESENT VALUE OF A CONSTANT ANNUITY ?" 8900 INPUT" YES (1) NO (2) ";I 9000 XX=1 9100 FOR XX=1 TO 25 9200 PRINT 9300 NEXT XX 9400 IF I=1 GOTO 6900 9500 PRINT 9600 PRINT 9700 PRINT"DO YOU HAVE ANY OTHER FINANCIAL PROBLEM" 9800 INPUT" YES (1) NO (2) ";J 9900 IF J=1 GOTO 1400 10000 GOTO 30400 10100 PRINT"FUTURE VALUE" 10200 PRINT 10300 INPUT"WHAT IS THE PRESENT VALUE";L 10400 INPUT"HOW MANY PERIODS";M 10500 INPUT"WHAT IS THE INTEREST RATE";O 10600 R=O/100 10700 Q=(1+R)^M*L 10800 PRINT 10900 PRINT"THE FUTURE VALUE IS"Q 11000 PRINT 11100 PRINT 11200 PRINT"WOULD YOU LIKE A HARDCOPY ?" 11300 INPUT" YES (1) NO (2)";XC 11400 IF XC=1 GOTO 25800 11500 PRINT 11600 PRINT 11700 PRINT"DO YOU HAVE ANOTHER FUTURE VALUE PROBLEM ?" 11800 INPUT" YES (1) NO (2) ";S 11900 XX=1 12000 FOR XX=1 TO 25 12100 PRINT 12200 NEXT XX 12300 IF S=1 GOTO 10100 12400 PRINT 12500 PRINT 12600 PRINT"DO YOU HAVE ANY OTHER FINANCIAL PROBLEM ?" 12700 INPUT" YES (1) NO (2) ";T 12800 IF T=1 GOTO 1400 12900 GOTO 30400 13000 PRINT"FUTURE VALUE OF AN CONSTANT ANNUITY" 13100 PRINT 13200 INPUT"HOW MUCH IS THE PAYMENT";U 13300 INPUT"HOW MANY PERIODS";V 13400 INPUT"WHAT IS THE INTEREST RATE";W 13500 AA=W/100 13600 AE=(1+AA)^V 13700 AF=AE-1 13800 AG=AF/AA 13900 AB=AG*U 14000 PRINT 14100 PRINT"THE FUTURE VALUE IS"AB 14200 PRINT 14300 PRINT 14400 PRINT"WOULD YOU LIKE A HARDCOPY ?" 14500 INPUT" YES (1) NO (2)";XD 14600 IF XD=1 GOTO 27000 14700 PRINT 14800 PRINT 14900 PRINT"DO YOU HAVE ANOTHER FUTURE VALUE OF AN ANNUITY PROBLEM ?" 15000 INPUT" YES (1) NO (2) ";AC 15100 XX=1 15200 FOR XX=1 TO 25 15300 PRINT 15400 NEXT XX 15500 IF AC=1 GOTO 13000 15600 PRINT 15700 PRINT 15800 PRINT"DO YOU HAVE ANY OTHER FINANCIAL PROBLEM" 15900 INPUT" YES (1) NO (2) ";AD 16000 IF AD=1 GOTO 1400 16100 GOTO 30400 16200 PRINT"SINKING FUND FACTOR" 16300 PRINT 16400 REM THIS IS THE INVERSE OF THE FUTURE VALUE 16500 REM OF $1.00/PERIOD. HOW MUCH TO SET ASIDE 16600 REM TO HAVE A SUM AT THE END OF A PERIOD. 16700 INPUT"WHAT IS THE AMOUNT YOU NEED IN THE FUTURE";AG 16800 INPUT"IN HOW MANY PERIODS DO YOU NEED THE MONEY";AH 16900 INPUT"WHAT IS THE INTEREST RATE PER PERIOD";AI 17000 AJ=AI/100 17100 AK=(1+AJ)^AH 17200 AL=AK-1 17300 AM=AL*(1+AJ) 17400 AN=(AJ/AM)*AG 17500 PRINT 17600 PRINT"SINKING FUND PER PERIOD IS"AN 17700 PRINT 17800 PRINT 17900 PRINT"WOULD YOU LIKE A HARDCOPY ?" 18000 INPUT" YES (1) NO (2)";XE 18100 IF XE=1 GOTO 28200 18200 PRINT 18300 PRINT 18400 PRINT"DO YOU HAVE ANOTHER SINKING FUND PROBLEM ?" 18500 INPUT" YES (1) NO (2) ";AO 18600 XX=1 18700 FOR XX=1 TO 25 18800 PRINT 18900 NEXT XX 19000 IF AO=1 GOTO 16200 19100 PRINT 19200 PRINT 19300 PRINT"DO YOU HAVE ANY OTHER FINANCIAL PROBLEM ?" 19400 INPUT" YES (1) NO (2) ";AP 19500 IF AP=1 GOTO 1400 19600 GOTO 30400 19700 PRINT"INSTALLMENT TO AMORTIZE" 19800 PRINT 19900 REM THIS IS THE INVERSE OF THE PV OF $1/PERIOD 20000 REM IT IS CONVENIENT WHEN COMPUTING THE EQUAL 20100 REM PERIODIC PAYMENTS TO ARMORTIZE A LOAN. 20200 INPUT"WHAT IS THE AMOUNT OF THE LOAN";AQ 20300 INPUT"WHAT IS THE MATURITY OF THE LOAN (IN PERIODS)";AR 20400 INPUT"WHAT IS THE INTEREST RATE PER PERIOD";AS 20500 AT=AS/100 20600 PRINT 20700 PRINT 20800 AU=(1+AT)^AR 20900 BA=1-(1/AU) 21000 BB=AT/BA 21100 AX=BB*AQ 21200 PRINT 21300 PRINT"THE MONTHLY PAYMENTS ARE"AX 21400 PRINT 21500 PRINT 21600 PRINT"WOULD YOU LIKE A HARDCOPY ?" 21700 INPUT" YES (1) NO (2)";XF 21800 IF XF=1 GOTO 29300 21900 PRINT 22000 PRINT 22100 PRINT"DO YOU HAVE ANOTHER INSTALLMENT LOAN PROBLEM" 22200 INPUT" YES (1) NO (2) ";AY 22300 XX=1 22400 FOR XX=1 TO 25 22500 PRINT 22600 NEXT XX 22700 I%F AY=1 GOTO 19700 22800 PRINT 22900 PRINT 23000 PRINT"DO YOU HAVE ANY OTHER FINANCIAL PROBLEM" 23100 INPUT" YES (1) NO (2) ";AZ 23200 IF AZ=1 GOTO 1400 23300 GOTO 30400 23400 REM PRINTOUT FOR PRESENT VALUE PROBLEMS 23500 LPRINT"PRESENT VALUE" 23600 LPRINT"" 23700 LPRINT"WHAT IS THE FUTURE VALUE";FV 23800 LPRINT"HOW MANY PERIODS";N 23900 LPRINT"WHAT IS THE INTEREST RATE";P 24000 LPRINT "" 24100 LPRINT"THE PRESENT VALUE IS";PV 24200 LPRINT"" 24300 LPRINT"" 24400 LPRINT"" 24500 GOTO 5400 24600 REM PRINTOUT FOR THE PV OF A CONSTANT ANNUITY 24700 LPRINT"PRESENT VALUE OF AN CONSTANT ANNUITY" 24800 LPRINT"" 24900 LPRINT"WHAT IS THE AMOUNT OF THE PAYMENTS";D 25000 LPRINT"HOW MANY PERIODS";E 25100 LPRINT"WHAT IS THE INTEREST RATE";F 25200 LPRINT"" 25300 LPRINT"THE PRESENT VALUE IS"H 25400 LPRINT"" 25500 LPRINT"" 25600 LPRINT"" 25700 GOTO 8600 25800 REM PRINTOUT OF A FV 25900 LPRINT"FUTURE VALUE" 26000 LPRINT"" 26100 LPRINT"WHAT IS THE PRESENT VALUE";L 26200 LPRINT"HOW MANY PERIODS";M 26300 LPRINT"WHAT IS THE INTEREST RATE";O 26400 LPRINT"" 26500 LPRINT"THE FUTURE VALUE IS";Q 26600 LPRINT"" 26700 LPRINT"" 26800 LPRINT"" 26900 GOTO 11500 27000 REM PRINTOUT OF A FV OF A K ANNUITY 27100 LPRINT"FUTURE VALUE OF AN CONSTANT ANNUITY" 27200 LPRINT"" 27300 LPRINT"HOW MUCH IS THE PAYMENT";U 27400 LPRINT"HOW MANY PERIODS";V 27500 LPRINT"WHAT IS THE INTEREST RATE";W 27600 LPRINT"" 27700 LPRINT"THE FUTURE VALUE IS";AB 27800 LPRINT"" 27900 LPRINT"" 28000 LPRINT"" 28100 GOTO 14700 28200 REM PRINTOUT OF SINKING FUND 28300 LPRINT"SINKING FUND FACTOR" 28400 LPRINT"" 28500 LPRINT"WHAT IS THE AMOUNT OF MONEY NEEDED IN THE FUTURE";AG 28600 LPRINT"IN HOW MANY PERIODS DO YOU NEED THE MONEY";AH 28700 LPRINT"WHAT IS THE INTEREST RATE";AI 28800 LPRINT"" 28900 LPRINT"SINKING FUND PER PERIOD IS";AN 29000 LPRINT"" 29100 LPRINT"" 29200 GOTO 18200 29300 REM INSTALLMENT TO AMORTIZE 29400 LPRINT"INSTALLMENT TO AMORTIZE" 29500 LPRINT"" 29600 LPRINT"WHAT IS THE AMOUNT OF THE LOAN";AQ 29700 LPRINT"WHAT IS THE MATURITY OF THE LOAN (IN PERIODS)";AR 29800 LPRINT"WHAT IS THE INTEREST RATE";AS 29900 LPRINT"" 30000 LPRINT"THE MONTHLY PAYMENTS ARE";AX 30100 LPRINT"" 30200 LPRINT"" 30300 LPRINT"" 30400 XX=1 30500 FOR XX=1 TO 25 30600 PRINT 30700 NEXT XX 30800 PRINT "COPYRIGHT INFORMATION:" 30900 PRINT 31000 PRINT "THIS PROGRAM CARRIES A COPYRIGHT NOTICE" 31100 PRINT 31200 PRINT "I DO NOT AUTHORIZE ANY" 31300 PRINT " * PROFIT MAKING 31400 PRINT " * RESALE 31500 PRINT " * COMMERCIAL USE 31600 PRINT 31700 PRINT 31800 PRINT "I DO GRANT LICENSE FOR PERSONAL USE" 31900 PRINT "TO ALL OSBORNE OWNERS . . . . " 32000 PRINT 32100 PRINT 32200 PRINT" J. EDDIE HILLARD" 32300 PRINT" 2809 FRONTIER DRIVE" 32400 PRINT" RAPID CITY, SD 57702" 32500 XX=1 32600 FOR XX=1 TO 5999 32700 NEXT XX 32800 XX=1 32900 FOR XX=1 TO 25 33000 PRINT 33100 NEXT XX 33200 PRINT "UNLESS A ^C IS ENTERED IN" 33300 PRINT "LESS THAN 10 SECONDS YOU" 33400 PRINT "WILL BE RETURNED TO YOUR SYSTEM" 33500 XX=1 33600 FOR XX=1 TO 9 33700 PRINT 33800 NEXT XX 33900 XX=1 34000 FOR XX=1 TO 5999 34100 NEXT XX 34200 SYSTEM  33500 XX=1 33600 FOR XX=1 TO 9 33700 PRINT 33800 NEXT XX 33900 30600 PRINT 30700 NEXT XX 30800 PRINT "COPYRIGHT INFORMATION:" 30900 PRINT 31000 PRINT "THIS PROGRAM CARRIES A COPYRIGHT NOTICE" 31100 PRINT 31200 PRINT "I DO NOT AUTHORIZE ANY" 31300 PRINT " * PROFIT MAKING 31400 PRINT " * RESALE 31500 PRINT " * COMMERCIAL USE 31600 PRINT 31700 PRINT 31800 PRINT "I DO GRANT LICENSE FOR PERSONAL USE" 31900 PRINT "TO ALL OSBORNE OWNERS . . . . " 32000 PRINT 32100 PRINT 32200 PRINT" J. EDDIE HILLARD" 32300 PRINT" 2809 FRONTIER DRIVE" 32400 PRINT" RAPID CITY, SD 57702" 32500 XX=1 32600 FOR XX=1 TO 5999 32700 NEXT XX 32800 XX=1 32900 FOR XX=1 TO 25 33000 PRINT 33100 NEXT XX 33200 PRINT "UNLESS A ^C IS ENTERED IN" 33300 PRINT "LESS THAN 10 .op To: All F.O.G. Members From: J. Eddie Hillard 2809 Frontier Drive Rapid City, SD 57702 Subject: Money Thi program,Money operate unde MBasi an occupie 8 o memory I include mathematica solution fo si financia models: (1) Present Value (2) Present Value of an Constant Annuity (3) Future Value (4) Future Value of an Constant Annuity (5) Sinking Fund Factors (6) Installment to Amortize #1-4: are standard PV and FV models # i usefu i calculatin ho muc mone t se asid eac period to have a given sum by a given period # i convenien whe computin th equa periodi payment necessary to amortize a loan All financial models have been taken from: Tables for Investment Dec&ision Making By: R.E. Johnson & R.T. Pratt * A INDICATE B TH OPENIN STATEMENT O TH PROGRAM I I VER٠ IMPORTAN THA WHER APPLICABL AL ENTERIE B MAD I PER PERIOD FIGURES. Thi ma appl t interes rate and/o th amount o an annuity !!! I yo fin i necessar t ad additiona financia model yo shoul fin m subroutine quit simple If you do make additions I would like to hear from you.  eac period to have a given sum by a given period # i convenien whe computin th equa periodi payment necessary to amortize a loan All financial models have been taken from: Tables for Investment Dec'