Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5170"]
Waiting for machine "ibm5170" to load....
Programmers -- automate the process of compiling and linking a program
that is contained in several (or numerous) source files. MMAKE can be
used with any programming language and with any compiler that can be run
from the MS-DOS command line. It can speed-up program development
enormously, both by making recompilation of a program go much faster,
and by preventing errors when a changed file is not recompiled. Based
on the UNIX ``make'' utility.
Edit your WordStar, WordPerfect, or ASCII files so they can contain the
255 character ASCII set. Press your ALT key along with the decimal
code that denotes the character you desire and it will be put into your
file. The program has a full screen editor and on-line help is
available to you from a pop-up window.
BREAKER is a life-saving utility when you have a text file that is too
large to fit in your wordprocessor. Invoke BREAKER and you are asked
what file you want to break and how many lines each of your broken files
will contain. The files are saved with any name you desire that has a
sequentially added number attached to it for easy tracking.
Once you have worked with your broken files, put them back together
again in the same fashion. A very easy program to use that should be in
any person's utility library.
File Descriptions:
BREAKER EXE The BREAKER main program.
BUDG PRN Data file.
STRIPPER reads an input text file and produces an output file by
replacing any control character visible. You have the option of
deleting characters in the ASCII character set that are above 126, below
126, 126 only, below 32, above 32, delete spaces, or any combination in
between.
File Descriptions:
STRIPPER EXE The STRIPPER main program.
TESTMAIL DBF Data base file.
EGABLANK blanks your EGA screen after two minutes of inactivity.
Pressing any key will reactivate your screen.
File Descriptions:
EGABLANK COM Main program.
00 00 0 000 016 LP MS KEY FOB & 8 Z 5.00<R>
00 00 0 000 150 LP PEN&PENCIL SET & 8 Z 49.89<R>
00 00 0 000 151 NLA & Z 8 5.38<R>
00 00 0 000 152 NLA & Z 8 10.77<R>
00 00 0 000 160 LP-GREY CROSS PEN & Z 8 25.50<R>
00 00 0 000 161 LP-CROSS SELECTIP & Z 8 37.50<R>
00 00 0 000 178 LP SILVER PEN & Z 8 49.54<R>
00 00 0 000 179 LP PEN/PENCIL SET & Z 8 15.54<R>
00 00 0 000 180 LP BALL PEN(BLK) & Z 8 5.38<R>
00 00 0 000 181 LP BALL PEN(WHT) & Z 8 5.38<R>
00 00 0 000 182 LP CLICK-PEN(BLK) & Z 8 1.25<R>
00 00 0 000 183 LP PEN DESK SET & Z 8 10.46<R>
00 00 0 000 184 LP REFILL(BLUE) & Z 8 2.15<R>
00 00 0 000 185 LP REFILL(RED) & Z 8 2.15<R>
00 00 0 000 186 LP TOTE BAG & Z 8 4.60<R>
00 00 0 000 187 LP BEER STEIN & Z 8 6.25<R>
00 00 0 000 188 LP COFFEE MUG & Z 8 4.95<R>
00 00 0 000 189 LP ASHTRAY(BMW) & Z 8 3.40<R>
00 00 0 000 190 LP LIGHTER(CHRM) & Z 8 21.60<R>
00 00 0 000 191 LP LIGHTER(BLK) & Z 8 21.60<R>
00 00 0 000 192 LP LIGHTER(LTHR) & Z 8 26.00<R>
00 00 0 000 193 LP LIGHTER(LTHR) & Z 8 26.00<R>
00 00 0 000 194 LP REFILL(LIGHTER) & Z 8 2.05<R>
00 00 0 000 195 LP MUG-LOWENBRAU & Z 8 10.45<R>
00 00 0 000 196 LP MUG-HOFBRAUHAUS & Z 8 10.45<R>
00 00 0 000 197 LP MUG-SPATENBRAU & Z 8 10.45<R>
00 00 0 000 198 NLA -GOBLET*KALTENBERG* & Z 8 9.54<R>
00 00 0 000 199 NLA -GOBLET*KULMBACHER* & Z 8 9.54<R>
00 00 0 000 200 NLA -GOBLET*BAYERN* & Z 8 14.51<R>
00 00 0 000 201 SHOPPING BAG & Z 8 0.30<R>
00 00 0 000 202 BMW MONEY CLIP & Z 8 13.50<R>
00 00 0 000 203 BMW LETTER OPENER & Z 8 17.65<R>
00 00 0 000 204 LUGGAGE TAG & Z 8 9.70<R>
00 00 0 000 205 KEY TAG SLVR. & Z 8 5.20<R>
00 00 0 000 206 KEY TAG (BMW) & Z 8 6.00<R>
00 00 0 000 207 PULL-APART KEY RING & Z 8 12.75<R>
00 00 0 000 208 SLIM PULL-APART KEY RING & Z 8 11.60<R>
00 00 0 000 210 BMW TIE TACK & Z 8 5.15<R>
00 00 0 000 211 BMW LAPEL PIN & Z 8 5.15<R>
00 00 0 000 212 BMW STICK PIN & Z 8 5.15<R>
00 00 0 000 213 LAPEL PIN(318I) & Z 8 5.45<R>
00 00 0 000 214 LAPEL PIN(325E) & Z 8 5.45<R>
00 00 0 000 215 LAPEL PIN(524TD) & Z 8 5.45<R>
00 00 0 000 216 LAPEL PIN(528E) & Z 8 5.45<R>
00 00 0 000 217 LAPEL PIN(535I) & Z 8 5.45<R>
00 00 0 000 218 LAPEL PIN(635CSI) & Z 8 5.45<R>
00 00 0 000 219 LAPEL PIN(735I) & Z 8 5.45<R>
00 00 0 000 718 LP KN-SHIRT MWHS $ Z 8 19.00<R>
00 00 0 000 719 LP KN-SHIRT MWHM $ Z 8 19.00<R>
00 00 0 000 720 LP KN-SHIRT MWHL $ Z 8 19.00<R>
00 00 0 000 721 LP KN-SHIRT MWHXL $ Z 8 19.00<R>
00 00 0 000 722 LP KN-SHIRT MBLS $ Z 8 19.00<R>
00 00 0 000 723 LP KN-SHIRT MBLM $ Z 8 19.00<R>
00 00 0 000 724 LP KN-SHIRT MBLL $ Z 8 19.00<R>
00 00 0 000 725 LP KN-SHIRT MBLXL $ Z 8 19.00<R>
00 00 0 000 728 BMW VISOR $ Z 8 10.45<R>
00 00 0 000 729 T-SHIRT W/N S $ Z 8 6.10<R>
00 00 0 000 730 T-SHIRT W/N M $ Z 8 6.10<R>
00 00 0 000 731 T-SHIRT W/N L $ Z 8 6.10<R>
00 00 0 000 732 T-SHIRT W/N XL $ Z 8 6.10<R>
00 00 0 000 733 YOUTH T-SHIRTS $ Z 8 4.75<R>
00 00 0 000 734 YOUTH T-SHIRT M $ Z 8 4.75<R>
00 00 0 000 735 YOUTH T-SHIRT L $ Z 8 4.75<R>
00 00 0 000 736 T-SHIRT W/B S $ Z 8 6.10<R>
00 00 0 000 737 NLA -T-SHIRT W/B M $ Z 8 6.10<R>
00 00 0 000 738 NLA -T-SHIRT W/B L $ Z 8 6.10<R>
00 00 0 000 739 NLA -T-SHIRT W/B XL $ Z 8 6.10<R>
00 00 0 000 740 T-SHIRT BLK.S $ Z 8 6.90<R>
00 00 0 000 741 T-SHIRT BLK.M $ Z 8 6.90<R>
00 00 0 000 742 NLA -T-SHIRT BLK.L $ Z 8 6.90<R>
00 00 0 000 743 NLA -T-SHIRT BLK.XL $ Z 8 6.90<R>
00 00 0 000 744 T-SHIRT W/N S $ Z 8 4.95<R>
00 00 0 000 745 T-SHIRT W/N M $ Z 8 4.95<R>
00 00 0 000 746 T-SHIRT W/N L $ Z 8 4.95<R>
00 00 0 000 800 TENT CARD(50) & Z 16.15<R>
00 00 0 000 850 ATTACHE CASE & Z 8 599.23<R>
00 00 0 000 851 KEY FOB & Z 8 11.46<R>
00 00 0 000 852 DATEBOOK & Z 8 142.69<R>
00 00 0 000 853 POCKET SECRETARY & Z 8 56.54<R>
00 00 0 000 854 CHECKBOOK COVER & Z 8 39.92<R>
00 00 0 000 855 ADDRESS BOOK & Z 8 85.62<R>
00 00 0 000 856 LUGGAGE TAG & Z 8 4.77<R>
00 00 0 000 857 MEMO FOLDER & Z 8 114.15<R>
00 00 0 000 860 T/NECK SHIRT-SMALL $ Z 8 34.60<R>
00 00 0 000 861 T/NECK SHIRT-MED. $ Z 8 34.60<R>
00 00 0 000 862 T/NECK SHIRT-LARGE $ Z 8 34.60<R>
00 00 0 000 863 T/NECK SHIRT- XL $ Z 8 34.60<R>
00 00 0 000 864 POLO SHIRT WHITE-SMALL $ Z 8 42.00<R>
00 00 0 000 865 POLO SHIRT WHITE-MED. $ Z 8 42.00<R>
00 00 0 000 866 POLO SHIRT WHITE-LARGE $ Z 8 42.00<R>
00 00 0 000 867 POLO SHIRT WHITE-XL $ Z 8 42.00<R>
00 00 0 000 868 POLO SHIRT BLACK-SMALL $ Z 8 42.00<R>
00 00 0 000 869 POLO SHIRT BLACK-MED. $ Z 8 42.00<R>
00 00 0 000 870 POLO SHIRT BLACK-LARGE $ Z 8 42.00<R>
00 00 0 000 871 POLO SHIRT BLACK-XL $ Z 8 42.00<R>
00 00 0 000 872 SPORT HAT-WHITE $ Z 8 10.60<R>
00 00 0 000 873 SPORT HAT-BLACK $ Z 8 10.60<R>
00 00 0 000 874 SPORT VISOR-WHITE $ Z 8 8.10<R>
00 00 0 000 875 SPORT T-SHIRT--SM. $ Z 8 7.30<R>
00 00 0 000 876 SPORT T-SHIRT--MED. $ Z 8 7.30<R>
00 00 0 000 877 SPORT T-SHIRT--LG. $ Z 8 7.30<R>
00 00 0 000 878 SPORT T-SHIRT--XL. $ Z 8 7.30<R>
00 00 0 000 879 YOUTH SHIRT-SM. $ Z 8 6.50<R>
00 00 0 000 880 YOUTH SHIRT-MED. $ Z 8 6.50<R>
00 00 0 000 881 YOUTH SHIRT-LARGE $ Z 8 6.50<R>
00 00 0 000 900 PRODUCT TAG (50) & Z 18.46<R>
00 00 0 000 916 LP-KEY FOB BLK. & Z 5.00<R>
00 00 0 000 990 EXEC. TRAVEL LIBRARY & Z 8 33.38<R>
01 00 9 760 750 OBS NLA FILM 11/81 H X 5.11<R>
01 00 9 796 021 01099099161 V 40.12<R>
01 00 9 796 022 NLA -BELTKAT R51/2-R68 V 18.58<R>
01 00 9 796 023 NLA -TABLE V 13.77<R>
01 00 9 796 538 01019796538 VV 9.23<R>
01 00 9 796 758 01019796758 VV 9.23<R>
01 01 9 750 451 NLA -BROCHURE H X 0.00<R>
01 01 9 766 341 NLA -NLA XYZ 0.00<R>
01 01 9 796 311 LGR-R80G/S R80ST FILM Z 9.23<R>
01 01 9 796 318 SML.R80GS-R80ST FILM Z 9.23<R>
01 01 9 796 341 LGR-R45 R65LS FILM Y 9.23<R>
01 01 9 796 351 SML.R45-R65LS FILM Y 9.23<R>
01 01 9 796 371 LGR-R50/5-R90S FILM W 9.23<R>
01 01 9 796 378 R50/5-R90S FILM W 9.23<R>
01 01 9 796 381 01019796521 X 9.23<R>
01 01 9 796 388 01019796528 X 9.23<R>
01 01 9 796 441 NLA -BATTERY DISPLAY WXYZ 49.83<R>
01 01 9 796 451 NLA -WINDOW DISPLAY WXYZ 31.37<R>
01 01 9 796 491 LGR-R60/7-R80RT XZ 9.23<R>
01 01 9 796 498 SML.R60/7RSORT FILM XZ 9.23<R>
01 01 9 796 521 LGR-R100/7-R100RT X 9.23<R>
01 01 9 796 528 SML.R100/7-R100 FILM X 9.23<R>
01 01 9 796 531 K100-RS PT-FILM LGR. VV 9.23<R>
01 01 9 796 538 K-100 PARTS FILM VV 9.23<R>
01 01 9 796 611 PARTS CATALOG Z 45.00<R>
01 01 9 796 620 NLA -PTS.CTLG.R60/R80 X 0.00<R>
01 01 9 796 621 PARTS CATALOG X 45.00<R>
01 01 9 796 671 R80-R80RT/85 LGR. Z 9.23<R>
01 01 9 796 678 R80-R80RT/85 Z 9.23<R>
01 01 9 796 751 K75C-S M.FISCHE LRG. VV 9.23<R>
01 01 9 796 758 K-75 MICROFISCHE VV 9.23<R>
01 09 9 099 161 PARTS CATALOG V 37.11<R>
01 09 9 099 480 BINDER * FX 8.65<R>
01 09 9 760 251 01009796370 H X 0.00<R>
01 09 9 760 255 NLA -MICRO FISCHE WX 0.00<R>
01 09 9 760 261 01099796024 WX 35.14<R>
01 09 9 760 341 NLA -NLA WX 0.00<R>
01 09 9 796 024 01099796332 WX 40.12<R>
01 09 9 796 026 NLA -MICRO FILM R65 Y 14.68<R>
01 09 9 796 028 01009796340 X 0.00<R>
01 09 9 796 068 LGR.ACCES.FILM WXYZ 0.00<R>
01 09 9 796 069 NLA -POCKET ACCESS BOOK WXYZ 2.75<R>
01 09 9 796 319 LGR-NO. INDEX FILM WXYZ 0.00<R>
01 09 9 796 320 SML.NO INDEX FILM WXYZ 0.00<R>
01 09 9 796 330 PARTS CATALOG Y 37.11<R>
01 09 9 796 332 01019796621 WX 33.26<R>
01 09 9 796 389 SML.ACCESSORIES VWXYZ 0.00<R>
01 09 9 798 307 OBS-NLA -MICRO FILM SERVI WXYZ 8.65<R>
01 09 9 798 407 NLA -FILM 1 WXYZ 0.00<R>
01 21 9 796 561 DISPLAY CATALOG WXYZ 0.00<R>
01 27 9 796 367 NLA -HELMET PAMPHLET Z 0.00<R>
01 29 9 796 019 NLA -PARTS-SERVICE FILE X 0.00<R>
01 29 9 796 239 NLA -SML. ACCS. BOOK WXYZ 3.46<R>
01 29 9 796 785 TEMPLATE VV 0.47<R>
01 30 9 099 810 INDEX AX 0.00<R>
01 30 9 760 500 NLA -N/A H X 0.00<R>
01 31 9 099 323 NLA -PUB BOARD G X 7.35<R>
01 38 9 760 161 81249404002 ACBFGHI X 1244.65<R>
01 38 9 760 188 81249404016 G X 10.65<R>
01 39 9 099 250 NLA -PTS/SERV G X 4.48<R>
01 39 9 099 254 NLA -PARTS BINDER WX 0.00<R>
01 39 9 099 275 01399099840 A X 0.00<R>
01 39 9 099 840 01309099810 AX 0.00<R>
01 39 9 796 079 NLA -FILE XYZ 13.91<R>
01 40 9 099 100 RIDERS MANUAL /5 W 15.00<R>
01 40 9 099 150 REPAIR MANUAL W 45.00<R>
01 40 9 760 450 RIDERS MANUAL /6 W 15.00<R>
01 40 9 760 460 REPAIR MANUAL W 45.00<R>
01 41 9 099 116 NLA -RIDER'S MANUAL W 8.48<R>
01 41 9 760 457 NLA -RIDER'S MANUAL W 8.48<R>
01 41 9 760 467 NLA -RIDER'S MANUAL X 8.48<R>
01 41 9 798 011 NLA -HAND BOOK /7 1978 X 4.26<R>
01 41 9 798 017 RIDERS MANUAL X 8.48<R>
01 41 9 798 031 HAND BOOK R65 1979 Y 4.26<R>
01 41 9 798 037 RIDER'S MANUAL Y 8.48<R>
01 41 9 798 047 OBS RIDER'S MANUAL X 8.48<R>
01 41 9 798 048 OBS RIDER'S MANUAL X 8.48<R>
01 41 9 798 098 RIDER'S MANUAL Y 8.48<R>
01 41 9 798 099 NLA -RIDER'S MANUAL XZ 8.48<R>
01 41 9 798 261 NLA -HANDBOOK /7 19 X 4.00<R>
01 41 9 798 321 01419798447 VV 6.12<R>
01 41 9 798 447 01479798447 VV 6.12<R>
01 43 9 798 443 RIDER MANUAL VV 8.48<R>
01 47 9 798 257 RIDER'S MANUAL Y 8.48<R>
01 47 9 798 258 SUPPLEMENT Z 8.00<R>
01 47 9 798 267 RIDER'S MANUAL X 8.48<R>
01 47 9 798 277 RIDER'S MANUAL XZ 8.48<R>
01 47 9 798 317 RIDER'S MANUAL Y 8.48<R>
01 47 9 798 447 RIDER'S MANUAL VV 8.48<R>
01 47 9 798 491 RIDER'S MANUAL Z 8.48<R>
01 47 9 798 547 K-75 RIDERS MANUAL VV 8.48<R>
01 48 9 798 138 RIDER'S MANUAL Z 8.48<R>
01 51 9 099 021 NLA -SHOP MANUAL W 48.85<R>
01 51 9 099 022 NLA-OBS-NLA -SUPPLEMENT # W 0.00<R>
01 51 9 099 051 NLA -SHOP MANUAL /5 W 19.57<R>
01 51 9 599 041 01519798461 X 58.63<R>
01 51 9 798 052 NLA -SUPPLEMENT #1 X 0.00<R>
01 51 9 798 055 01559798465 X 47.71<R>
01 51 9 798 065 SUPPLEMENT #2 X 0.00<R>
01 51 9 798 092 01579798467 Y 37.51<R>
01 51 9 798 094 NLA -SUPPLEMENT #3 Y 0.00<R>
01 51 9 798 461 01519798055 X 47.71<R>
01 55 9 798 115 NLA -SUPPLEMENT R65 Y 0.00<R>
01 55 9 798 125 NLA -SHOP MAN.FILM 80GS Z 10.60<R>
01 55 9 798 465 REPAIR MANUAL X 47.71<R>
01 57 9 798 022 NLA -NLA -SUPPLEMENT #4 X 0.00<R>
01 57 9 798 027 SUPPLEMENT#3 Y 0.00<R>
01 57 9 798 357 REPAIR MANUAL Z 47.71<R>
01 57 9 798 457 REPAIR MANUAL VV 15.91<R>
01 57 9 798 467 REPAIR MANUAL Y 47.71<R>
01 57 9 798 517 REPAIR MANUAL R80RT YZ 15.91<R>
01 57 9 798 557 K-75 REPAIR MANUAL VV 15.91<R>
01 59 9 099 176 NLA -N.L.A. V 32.62<R>
01 60 9 798 164 NLA-OBS-NLA -FLAT RATE-SU WXYZ 0.00<R>
01 61 9 760 701 NLA -INSPECTION FORMS 50 XYZ 3.91<R>
01 61 9 798 061 NLA-OBS-NLA -FLAT RATE 19 X 29.35<R>
01 61 9 798 081 OBS-NLA -FLAT RATE BOOK R Y 16.23<R>
01 61 9 798 084 NLA-OBS-NLA -FLAT RATE 19 Y 29.35<R>
01 61 9 798 141 NLA -FLAT RATE BOOK X 33.94<R>
01 61 9 798 161 NLA-OBS-NLA -FLAT RATE R8 Z 8.15<R>
01 61 9 798 191 NLA -INSP-FORM WXYZ 2.05<R>
01 70 9 796 210 FILM HOLDER WXYZ 6.12<R>
01 71 9 760 477 NLA-OBS-TECH.DATA + SERVI X 7.83<R>
01 71 9 798 001 NLA-OBS-NLA -FLAT RATE BO Z 8.65<R>
01 71 9 798 071 NLA-OBS-NLA -TECH DATA & X 7.83<R>
01 71 9 798 077 NLA-OBS-TECH DATA & SERVI X 7.83<R>
01 71 9 798 078 NLA-OBS-TECH DATA & SERVI X 7.83<R>
01 80 9 750 010 NLA G X 0.58<R>
01 80 9 750 012 NLA G X 0.98<R>
01 80 9 772 211 88888999785 G X 0.00<R>
01 80 9 772 214 DECAL 4CM-NLA G X 0.00<R>
01 80 9 772 220 DECAL HELMET-NLA G X 0.00<R>
01 88 9 099 670 NLA -TAG FOR WARRANTY PAR VWXYZ 0.00<R>
01 89 9 099 668 OBS-IBM PENCIL G X 10.52<R>
01 89 9 099 669 NLA -BOX OF REFILLS FOR P VWXYZ 9.98<R>
01 89 9 798 029 NLA -WARRANTY CLAIMS VWXYZ 0.00<R>
01 90 9 099 150 NLA -DLR LIST EUROPE VWXYZ 2.43<R>
01 90 9 099 190 DEALER LIST EURO VWXYZ 2.60<R>
01 90 9 798 470 CATALOG WXYZ 49.20<R>
01 90 9 798 473 86 WIRING FILE WXYZ VV 0.00<R>
01 91 9 099 094 NLA -ELECTRIC DIAGRAM X 2.38<R>
01 91 9 099 097 NLA -ELECTRIC DIAGRAM X 2.38<R>
01 99 9 099 187 S.I.DIVIDERS WHT. VWXYZ 1.63<R>
01 99 9 099 188 S.I.DIVIDERS YEL. VWXYZ 3.26<R>
01 99 9 099 191 01999099153 G X 1.72<R>
01 99 9 099 199 S.I.BINDER VWXYZ 8.15<R>
07 11 0 014 100 NLA -PISTON RING STD. V 2.45<R>
07 11 0 014 112 OBS-NLA -OIL RING STD. V 2.94<R>
07 11 0 014 116 NLA -OIL RING + 1MM V 2.62<R>
07 11 0 014 123 OBS-OIL RING + 05 V 3.58<R>
07 11 0 014 124 OBS-OIL RING + 1MM V 3.58<R>
07 11 0 014 127 OBS-PISTON RING STD. V 2.77<R>
07 11 0 014 128 OBS-PISTON RING + 05 V 2.77<R>
07 11 0 014 538 NLA-OBS-NLA -PISTON RING V 3.91<R>
07 11 0 014 539 OBS-NLA -PISTON RING + 1M V 3.91<R>
07 11 0 014 543 OBS-NLA -OIL RING STD. V 3.58<R>
07 11 0 014 544 NLA -OIL RING 05 V 3.18<R>
07 11 0 014 545 NLA -OIL RING + 1MM V 3.18<R>
07 11 0 014 577 OBS-PISTON RING STD. V 2.20<R>
07 11 0 014 578 NLA -PISTON RING + 05 V 2.20<R>
07 11 0 014 579 NLA -PISTON RING 1MM V 2.20<R>
07 11 9 900 105 OBS-SCREW V 0.17<R>
07 11 9 900 147 OBS-SCREW 8X10 WXYZ 0.49<R>
07 11 9 900 719 SCREW 5X18 WX 0.17<R>
07 11 9 900 744 NLA -SCREW 6X25 WX 0.25<R>
07 11 9 900 810 07119900811 J X 0.18<R>
07 11 9 900 820 NLA -SCREW 6 X 20 WX 0.42<R>
07 11 9 900 869 SCREW 8X20 CIX 0.46<R>
07 11 9 900 873 OBS-BOLT Y 0.25<R>
07 11 9 900 875 BOLT 10 X 30 WXYZ 0.74<R>
07 11 9 900 878 BOLT M8X25 VV 0.23<R>
07 11 9 901 310 NLA -SCREW 4X8 V 0.08<R>
07 11 9 901 322 NLA -NLA V 0.05<R>
07 11 9 901 428 NLA-OBS-NLA -SCREW 6 X 2 WXY 0.32<R>
07 11 9 901 682 SCREW 4 X 8 H WX 0.18<R>
07 11 9 901 692 07119928420 W 0.25<R>
07 11 9 901 720 07119928439 GWXH 0.18<R>
07 11 9 901 763 OBS-SCREW 5 X 12 W 0.17<R>
07 11 9 901 797 NLA -NLA V 0.00<R>
07 11 9 901 849 NLA -SCREW 6 X 20 WX 0.17<R>
07 11 9 902 137 OBS-SCREW 3.5 X 13 X 0.17<R>
07 11 9 902 321 07119902403 W 0.17<R>
07 11 9 902 403 METAL SCREW HI X 0.18<R>
07 11 9 902 429 B3.5X16 SCREW WXY 0.17<R>
07 11 9 902 475 METAL SCREW BHFJMVV 0.18<R>
07 11 9 902 512 OBS-NLA -BOLT WXY 0.09<R>
07 11 9 902 513 BZ4.2X19 SCREW WXY 0.17<R>
07 11 9 902 514 BZ4.2X16 SCREW XY 0.17<R>
07 11 9 902 527 BOLT B4.2X13 VV 0.17<R>
07 11 9 902 638 BOLT M6X12 VV 0.26<R>
07 11 9 902 654 BOLT M8X35 VV 0.42<R>
07 11 9 902 656 07119902654 VV 0.32<R>
07 11 9 903 196 NLA -STUD 6X30 LA G X 1.60<R>
07 11 9 903 208 STUD 6X12 V 1.11<R>
07 11 9 903 209 07119903208 V 1.55<R>
07 11 9 903 300 NLA -STUD 8 X 12 WXY 0.05<R>
07 11 9 903 303 NLA -STUD 8 X 15 V 0.89<R>
07 11 9 903 306 OBS-STUD 8X18 W 0.91<R>
07 11 9 903 339 07129903338 G X 1.11<R>
07 11 9 903 436 OBS-OBS-NLA-STD G X 1.26<R>
07 11 9 903 503 NLA-OBS-NLA -STUD 8 X 1 X V 0.89<R>
07 11 9 903 530 NLA -STUD 8 X 1 X 28 V 1.46<R>
07 11 9 903 540 OBS-OBS-SCREW V 1.14<R>
07 11 9 905 325 WRENCH VV 3.69<R>
07 11 9 905 437 STUD Z 0.38<R>
07 11 9 905 660 SCREW VW 0.49<R>
07 11 9 906 008 TOOL WX 1.46<R>
07 11 9 906 014 OBS-ALLEN WRENCH 4MM VWXY 0.98<R>
07 11 9 906 020 07119906026 G X 1.26<R>
07 11 9 906 026 NLA -ALLEN WRENCH M6 B X 1.26<R>
07 11 9 906 032 NLA -ALLEN WRENCH 78 B X 1.69<R>
07 11 9 906 327 46631241080 YXZ 0.17<R>
07 11 9 906 328 O-RING WXYZ 0.17<R>
07 11 9 906 400 OBS-BOLT Z 0.17<R>
07 11 9 906 412 SCREW 5 X 10 WX 0.17<R>
07 11 9 906 415 OBS-OBS-SCREW B X HIJM 0.18<R>
07 11 9 906 416 M5X25 SCREW VV 0.17<R>
07 11 9 906 431 SCREW 5X12 WXY 0.49<R>
07 11 9 906 432 SCREW FHIJMX 0.18<R>
07 11 9 906 433 SCREW 5 X 16 WXY 0.49<R>
07 11 9 906 434 OBS-SCREW 4 X 12 WXYZ 0.17<R>
07 11 9 906 435 BOLT X 0.17<R>
07 11 9 906 702 OBS-BOLT X 0.17<R>
07 11 9 906 714 BOLT BZ3.5X16 VV 0.17<R>
07 11 9 906 734 OBS-SCREW JMN Y 0.18<R>
07 11 9 906 737 METAL SCREW B3.9X13 HIJ VV 0.18<R>
07 11 9 906 747 SCREW 4.2 X 16 X 0.17<R>
07 11 9 906 754 SCREW W 0.25<R>
07 11 9 906 758 NLA-OBS-OBS-METAL SCREW H X 0.05<R>
07 11 9 906 762 SCREW HMXFIJN 0.18<R>
07 11 9 906 763 BOLT J X 0.18<R>
07 11 9 906 772 SCREW 4.2 X 19 Y 0.17<R>
07 11 9 906 812 SCREW 4X10 * F Z HMN 0.18<R>
07 11 9 906 822 HEAD SCREW HFIJMYZVV 0.18<R>
07 11 9 906 832 SCREW Z 0.17<R>
07 11 9 907 058 OBS-OBS-NLA -SCREW 4 X 8 WX 0.25<R>
07 11 9 907 101 NLA -SCREW VW 0.08<R>
07 11 9 907 430 SCREW 6X12 WYZ VV 0.65<R>
07 11 9 907 450 SCREW WITH NOSE VW 0.82<R>
07 11 9 907 581 NLA -HEAD SCREW VV 0.17<R>
07 11 9 907 582 5 X 12 SCREW VV 0.17<R>
07 11 9 907 589 BOLT VV 0.17<R>
07 11 9 907 590 07119907589 VV 0.17<R>
07 11 9 907 591 AM4X30 SCREW VV 0.17<R>
07 11 9 907 592 BOLT AM4X10 P VV 0.15<R>
07 11 9 907 593 BOLT AM4X20 VV 0.17<R>
07 11 9 907 594 BOLT AM5X10 VV 0.17<R>
07 11 9 907 595 BOLT AM5X12 VV 0.17<R>
07 11 9 907 602 SCREW X IMN 0.18<R>
07 11 9 907 603 SCREW 3 X 8 XYZ 0.17<R>
07 11 9 907 604 AM3X10 SCREW H X JMN 0.18<R>
07 11 9 907 614 SCREW 4X10 Z 0.17<R>
07 11 9 907 616 AM4X10 SCREW B X 0.18<R>
07 11 9 907 623 SCREW AGXHN 0.18<R>
07 11 9 907 624 5X10 SCREW X 0.15<R>
07 11 9 907 626 07119907697 G X 0.18<R>
07 11 9 907 631 OBS-SCREW 5X20 WX 0.25<R>
07 11 9 907 639 L S SCREW AGFIJXVV 0.18<R>
07 11 9 907 643 SCREW 3.5 X 25 WXYZ 0.29<R>
07 11 9 907 646 OBS-SCREW 6 X 10 WXY 0.17<R>
07 11 9 907 657 SCREW AM4X6 MH VV 0.18<R>
07 11 9 907 687 NLA -SCREW 4 X 6 WXYZ 0.17<R>
07 11 9 907 688 SCREW AG22XHFIJM 0.18<R>
07 11 9 907 701 B2.9X6.5 SCREW F X HIJ 0.18<R>
07 11 9 907 712 OBS-OBS-NLA B X 0.18<R>
07 11 9 907 733 SCREW B4,2X13 AGHXFIJM 0.18<R>
07 11 9 907 737 OBS-BOLT Y 0.17<R>
07 11 9 907 741 07119907794 AB X 0.18<R>
07 11 9 907 744 07119907790 B X 0.03<R>
07 11 9 907 773 SCREW B3,5X13 I X J 0.18<R>
07 11 9 907 774 SCREW B X I 0.18<R>
07 11 9 907 794 OBS-OBS-SCREW BXHFIJMN 0.18<R>
07 11 9 907 801 BOLT BZ4.2X19 NIM VV 0.17<R>
07 11 9 907 804 SCREW VV 0.23<R>
07 11 9 907 808 BOLT 3.5X13 Z 0.17<R>
07 11 9 907 809 4.2X19 SCREW VV 0.17<R>
07 11 9 907 812 SCREW VV 0.17<R>
07 11 9 907 909 3.5X13 SCREW P VV 0.15<R>
07 11 9 907 910 SCREW 3.9X9.5 Z 0.17<R>
07 11 9 907 911 B3.5X13 SCREW Y 0.17<R>
07 11 9 907 913 SCREW FJMN VV 0.18<R>
07 11 9 907 941 OBS-SCREW 4.2X9.5 XY 0.17<R>
07 11 9 907 943 SCREW JN ZVV 0.18<R>
07 11 9 907 944 BZ4.2X13 SCREW WX 0.17<R>
07 11 9 907 945 SCREW CM X FIN 0.18<R>
07 11 9 907 946 OBS-SCREW IXJ 0.18<R>
07 11 9 907 947 SCREW 4.2X 1.5X2.5 JN VV 0.18<R>
07 11 9 907 949 SCREW NMIFHJZ 0.18<R>
07 11 9 907 951 BOLT BZ.5X13 VV 0.17<R>
07 11 9 907 957 SCREW MIJN VV 0.18<R>
07 11 9 907 975 4.8X16 SCREW VV 0.17<R>
07 11 9 907 984 4.2X16 SCREW VV 0.25<R>
07 11 9 908 255 NLA -STUD A G X 1.42<R>
07 11 9 908 308 33111233225 WX 0.65<R>
07 11 9 908 327 SCREW B X 0.60<R>
07 11 9 908 328 07129908137 B X 1.11<R>
07 11 9 908 336 07129908145 V 0.00<R>
07 11 9 908 370 33111233226 WX 1.06<R>
07 11 9 908 378 07129908174 WX 1.38<R>
07 11 9 908 385 07119903436 W 1.38<R>
07 11 9 908 391 STUD 10 X 35 WXY 1.55<R>
07 11 9 910 405 NLA A G X 0.22<R>
07 11 9 910 407 SCREW I X 0.28<R>
07 11 9 910 409 OBS-BOLT 6X18 W 0.25<R>
07 11 9 910 417 BOLT M5X16 VV 0.17<R>
07 11 9 910 418 BOLT M5X30 VV 0.17<R>
07 11 9 911 214 07119911218 G X 0.18<R>
07 11 9 911 218 SCREW X HIJMN 0.18<R>
07 11 9 911 605 BOLT 8 X 1 X 12 VXY 0.32<R>
07 11 9 911 621 BOLT M10X1X22 VV 0.32<R>
07 11 9 911 628 07119911631 V 0.32<R>
07 11 9 911 631 BOLT 10 X 1 X 20 W 0.32<R>
07 11 9 912 192 NLA -BOLT 5 X 30 V 0.25<R>
07 11 9 912 199 HEX BOLT XYZ 0.17<R>
07 11 9 912 256 OBS-BOLT 6X25 A X 0.22<R>
07 11 9 912 282 OBS-BOLT 6X30-NLA A G X 0.22<R>
07 11 9 912 303 M6X35 BOLT IJHFN Y 34 0.18<R>
07 11 9 912 312 BOLT 6X40 WX 0.32<R>
07 11 9 912 316 NLA -BOLT 6X42 V 0.25<R>
07 11 9 912 326 OBS-BOLT 6X45 WXY 0.32<R>
07 11 9 912 335 07119912337 G X 0.32<R>
07 11 9 912 337 BOLT 6X50 HFIJMNXA 0.18<R>
07 11 9 912 357 SCREW FIJMXB34 0.28<R>
07 11 9 912 360 OBS-SCREW I X M 0.38<R>
07 11 9 912 364 SCREW VV 3 4 0.75<R>
07 11 9 912 453 07119919756 X 0.57<R>
07 11 9 912 507 BOLT H X 0.28<R>
07 11 9 912 513 OBS-OBS-BOLT 8 X 50 YZ 0.32<R>
07 11 9 912 515 07119912517 A X 0.62<R>
07 11 9 912 525 BOLT 8X55-NLA A G X 0.51<R>
07 11 9 912 563 NLA -BOLT M8X85 Z 0.00<R>
07 11 9 912 629 07119913868 W 0.49<R>
07 11 9 912 646 BOLT 10X50 G X 0.60<R>
07 11 9 912 858 OBS-BOLT 12X60 Y 0.98<R>
07 11 9 912 859 OBS-BOLT 12 X 70 Y 0.78<R>
07 11 9 913 021 NLA-OBS-NLA -SCREW VW 0.17<R>
07 11 9 913 077 4X8 HEX BOLT VV 0.15<R>
07 11 9 913 082 BOLT F X I 0.45<R>
07 11 9 913 097 OBS-SCREW X 22 23 0.34<R>
07 11 9 913 210 BOLT 5X8 LA G X 0.22<R>
07 11 9 913 211 M5X12 BOLT X VV 0.17<R>
07 11 9 913 212 BOLT BM X 0.18<R>
07 11 9 913 222 BOLT 5X10 G X VV 0.18<R>
07 11 9 913 227 07119913231 AGX 32 0.18<R>
07 11 9 913 235 NUT BXFI 0.18<R>
07 11 9 913 250 NLA-OBS-NLA -BOLT 5X20 WX 0.17<R>
07 11 9 913 252 PD M5X20 HEX NUT X 0.17<R>
07 11 9 913 405 OBS-BOLT 6X6 Y 0.32<R>
07 11 9 913 408 BOLT M6X6 VV 0.32<R>
07 11 9 913 412 BOLT VV 0.31<R>
07 11 9 913 418 07119913420 BC 24 25 X 0.18<R>
07 11 9 913 425 07119913439 A G X 0.03<R>
07 11 9 913 426 7-BOLT SPEC QXIJMNHF 3 0.18<R>
07 11 9 913 430 NLA-OBS-NLA -BOLT 6X10 Y 0.22<R>
07 11 9 913 432 BOLT A X 0.18<R>
07 11 9 913 436 M6X20 HEX BOLT VV 0.49<R>
07 11 9 913 441 BOLT 6X12 G X 0.28<R>
07 11 9 913 442 BOLT 6X12 IJMNHF3 VV 0.18<R>
07 11 9 913 445 OBS-BOLT 6 X 12 V 0.65<R>
07 11 9 913 451 M6X14 BOLT XY 0.17<R>
07 11 9 913 464 BOLT 6X16 VXYZ 0.17<R>
07 11 9 913 465 M6X16 BOLT VXYZ 0.17<R>
07 11 9 913 466 07119913442 BFIJM X 32 0.17<R>
07 11 9 913 470 NLA-BOLT 6X18 G X 0.18<R>
07 11 9 913 472 SET SCREW 6X15 * AGMHFIJNX 0.18<R>
07 11 9 913 476 M6X20 HEX BOLT XYZ 0.18<R>
07 11 9 913 477 11131252369 G VV 3 4 0.03<R>
07 11 9 913 478 07119913477 B VV 3 4 0.22<R>
07 11 9 913 480 BOLT 6X25 AG X JM VV 0.18<R>
07 11 9 913 482 OBS-NLA-BOLT G X 0.28<R>
07 11 9 913 483 BOLT 6X25 HFIJMNX2 0.18<R>
07 11 9 913 484 BOLT 6X28 * HFIJMNX3VV 0.20<R>
07 11 9 913 499 BOLT 6 X 28 WX HN 0.28<R>
07 11 9 913 500 BOLT M6X30 MN/VV 0.15<R>
07 11 9 913 502 BOLT M6X28 Z 0.17<R>
07 11 9 913 554 BOLT 6X16 A X 0.18<R>
07 11 9 913 566 BOLT 6X20 WX 0.49<R>
07 11 9 913 567 BOLT 6 X 22 XY VV 0.25<R>
07 11 9 913 573 BOLT XY 2.57<R>
07 11 9 913 575 BOLT 6X30 2FHIJMN3VV 0.18<R>
07 11 9 913 590 OBS-BOLT 6X25 WX 0.49<R>
07 11 9 913 607 OBS BOLT 8X16 Y 0.32<R>
07 11 9 913 618 BOLT EURO X I N VV 0.18<R>
07 11 9 913 620 BOLT 8X15 G X 0.32<R>
07 11 9 913 624 BOLT 8X16 22HXFI32JN 0.17<R>
07 11 9 913 627 BOLT 8X18 GIJMX22HF 0.18<R>
07 11 9 913 640 BOLT 8X20 BC X 0.18<R>
07 11 9 913 652 BOLT 8X22 FHIJMN22X 0.28<R>
07 11 9 913 656 BOLT 8X25 B X 0.18<R>
07 11 9 913 662 BOLT 8X30 HFIJMN3X4 0.18<R>
07 11 9 913 668 BOLT 8 X 32 V 0.25<R>
07 11 9 913 674 BOLT M8X35 A X 0.28<R>
07 11 9 913 678 BOLT 8X40 Z 0.18<R>
07 11 9 913 831 OBS-BOLT 10X25 VWXY 0.49<R>
07 11 9 913 837 BOLT 10X30 HMNIJ22X23 0.28<R>
07 11 9 913 839 BOLT 10 X 30 XYZ 0.49<R>
07 11 9 913 844 BOLT 10 X 35 WX 1.38<R>
07 11 9 913 849 33531232705 WX 0.89<R>
07 11 9 913 853 BOLT 10 X 45 WXY 0.82<R>
07 11 9 913 855 BOLT 10X45 * AFHIJXM 0.46<R>
07 11 9 913 868 07119913853 WXY 1.63<R>
07 11 9 913 880 07119913842 CBFI2X3HJM 0.18<R>
07 11 9 913 891 OBS-NLA -BOLT 12 X 25 V 0.65<R>
07 11 9 913 912 BOLT M12X45 VV 0.55<R>
07 11 9 913 920 BOLT M6X25 VV 0.42<R>
07 11 9 913 921 BOLT M6X12 VV 0.29<R>
07 11 9 913 922 BOLT M5X10 VV 0.17<R>
07 11 9 913 923 BOLT M5X12 VV 0.17<R>
07 11 9 913 944 M6X40 SCREW VV 0.32<R>
07 11 9 914 005 NLA-OBS-NLA -BOLT 8X1X15 V 0.32<R>
07 11 9 914 062 NLA -BOLT V 0.32<R>
07 11 9 914 093 OBS-BOLT 8 X 1 X 100 V 0.65<R>
07 11 9 914 096 NLA -BOLT 8 X 1 X 110 V 0.82<R>
07 11 9 914 347 BOLT V 1.55<R>
07 11 9 914 364 BOLT V 3.43<R>
07 11 9 914 626 BOLT M12X1.5X45 H X J 0.60<R>
07 11 9 914 665 NLA -BOLT 12 X 1.5 X 82 V 1.14<R>
07 11 9 915 014 OBS-OBS-BOLT FHIJMN VV 0.18<R>
07 11 9 915 015 SCREW FHIJ Z 0.18<R>
07 11 9 915 021 HEX SCREW * BFHIJMN VV 0.25<R>
07 11 9 915 027 OBS-OBS-BOLT FHIJ VV 0.28<R>
07 11 9 915 030 BOLT WITH LOCK WASHER WXYZ 0.17<R>
07 11 9 915 036 BOLT M6X22 VV 0.25<R>
07 11 9 915 051 SCREW I J VV 0.38<R>
07 11 9 915 063 BOLT M6X 16 JI VV 0.62<R>
07 11 9 915 068 OBS-SCREW JHFM VV 0.42<R>
07 11 9 915 096 NLA -BOLT BM 3 4 X 0.00<R>
07 11 9 915 100 6X14 HEX BOLT VV 0.42<R>
07 11 9 915 104 M5X12 BOLT VV 0.17<R>
07 11 9 915 112 BOLT M5X12 VV 0.26<R>
07 11 9 915 124 OBS-BOLT XY 0.34<R>
07 11 9 916 614 NLA -BOLT X 0.00<R>
07 11 9 916 810 07119907941 WX 0.17<R>
07 11 9 917 411 OBS-BOLT V 2 1.42<R>
07 11 9 918 407 AM5X10 SELF TAPPING SCREW Z 0.17<R>
07 11 9 918 415 07119915024 F X 0.32<R>
07 11 9 918 606 BOLT 5 X 16 Y VV 1.38<R>
07 11 9 918 619 M6X25 BOLT VV 0.18<R>
07 11 9 918 655 M8X50 BOLT VV 0.32<R>
07 11 9 918 828 BOLT 8 X 75 Y 0.82<R>
07 11 9 918 850 MIDX25 BOLT Z VV 0.46<R>
07 11 9 918 859 BOLT M8X35 VV 0.32<R>
07 11 9 919 006 BOLT M8X1 VV 0.29<R>
07 11 9 919 007 M8X1 PLUG VV 0.23<R>
07 11 9 919 108 PLUG 10 X 1 NV 32 VV 0.63<R>
07 11 9 919 112 07119919108 BCM XVV 32 0.63<R>
07 11 9 919 123 07119919124 WXYZ VV 0.65<R>
07 11 9 919 124 PLUG VV 0.51<R>
07 11 9 919 209 07119919212 X 3 4 1.00<R>
07 11 9 919 212 BOLT M 8X1 X 3 4 0.65<R>
07 11 9 919 216 HEX PLUG 710 AG X 0.45<R>
07 11 9 919 225 PLUG * FHMWXYZ3VV 2.11<R>
07 11 9 919 226 07119919225 FXIJM 0.65<R>
07 11 9 919 313 SCREW 3 X 8 W 0.17<R>
07 11 9 919 358 OBS-SCREW G X 0.18<R>
07 11 9 919 367 CYLINDER HEADSC BC22XHFIJM 0.18<R>
07 11 9 919 373 SCREW A X 0.18<R>
07 11 9 919 381 SCREW 4 X 12 WY 0.17<R>
07 11 9 919 386 SCREW 4 X 15 V 0.17<R>
07 11 9 919 420 OBS-OBS-NLA-SCREW G X 0.28<R>
07 11 9 919 467 32722072219 VW 0.32<R>
07 11 9 919 522 M8X70 SCREW VV 0.49<R>
07 11 9 919 594 BOLT M10X100 VV 2.43<R>
07 11 9 919 607 OBS-SCREW 6X12 YZ 0.25<R>
07 11 9 919 611 BOLT 5X8 WZ 0.25<R>
07 11 9 919 612 BOLT 5 X 10 WYZ VV 0.17<R>
07 11 9 919 613 BOLT 5 X 12 J WYZ VV 0.23<R>
07 11 9 919 614 BOLT 5 X 16 WYZ 0.25<R>
07 11 9 919 615 07119918606 M WXYZVV 0.17<R>
07 11 9 919 617 BOLT 5 X 20 WYZ 0.25<R>
07 11 9 919 619 BOLT 5 X 30 X 0.25<R>
07 11 9 919 621 BOLT 6 X 16 P Y VV 0.15<R>
07 11 9 919 623 OBS-SCREW * G X 12.65<R>
07 11 9 919 630 OBS-HEAD SCREW M6X50 XFM 0.28<R>
07 11 9 919 631 BOLT YZ VV 0.49<R>
07 11 9 919 635 BOLT WYZ 0.65<R>
07 11 9 919 637 OBS-BOLT 8 X 12 X 0.65<R>
07 11 9 919 638 BOLT 8 X 45 XYZ VV 0.49<R>
07 11 9 919 640 BOLT 8 X 15 WY 0.32<R>
07 11 9 919 643 SCREW H3 4 23 VV 0.43<R>
07 11 9 919 646 BOLT VV 0.22<R>
07 11 9 919 647 BOLT Z 0.25<R>
07 11 9 919 648 SCREW 8X40 X 24 25 VV 0.94<R>
07 11 9 919 649 BOLT 8 X 50 W 0.34<R>
07 11 9 919 651 BOLT 8 X 55 W 0.82<R>
07 11 9 919 653 OBS-BOLT WYZ 0.82<R>
07 11 9 919 656 BOLT 8 X 80 WYZ 0.82<R>
07 11 9 919 658 BOLT WXYZ 0.82<R>
07 11 9 919 662 BOLTM10X12 H2XMN VV 0.35<R>
07 11 9 919 670 07119919672 XY 0.00<R>
07 11 9 919 672 BOLT 10 X 45 XZ VV 1.14<R>
07 11 9 919 680 BOLT M10X40 VV 0.29
Disk No: 978
Program Title: MMAKE, FIXER, EGABLANK, & PLOT
PC-SIG version: 1.2
MMAKE allows programmers to automate the process of compiling and
linking a program that is contained in several (or numerous) source
files. It can be used with any programming language and with any
compiler that can be run from the MS-DOS command line. MMAKE can
speed-up program development enormously, both by making recompilation of
a program go much faster, and by preventing errors when a changed file
is not recompiled. MMAKE is based on the UNIX make utility.
FIXER lets you edit the extended ASCII character set. The program has a
bar-menu on the top of the screen and a full screen editor for your
ASCII character set. On-line help is also available most of the time
and is in a pop-up window.
Along with this ASCII full-screen editor, you have two other modules.
The first one is called BREAKER and it "breaks" a file and makes it
smaller. BREAKER can also reverse the process by putting two files
together. The second file is called STRIPPER. It reads an input text
file and produces an output file by replacing any control character
visible (other choices are also possible).
PLOT provides a quick and easy-to-use set of tools for technical
plotting. It handles rectilinear, polar, and vector plotting, and after
plotting your data lets you review a tabulation of all plotted points.
PLOT also graphs two simultaneous equations. On-line help is included
for each plotting program, and the graphs are automatically scaled so
all your equations are always completely displayed. The graphs can be
displayed on the screen and/or printed on your printer via DOS
GRAPHICS.COM.
Finally there is EGABLANK, which as the name suggests, blanks your EGA
screen after two minutes of inactivity. Pressing any key will allow you
to see the text on your screen again.
Usage: Programmer's Utility.
Special Requirements: EGABLANK requires an EGA card.
How to Start: Type GO (press enter).
Suggested Registration: $20.00 for MMAKE, $20.00 for FIXER and $35.00
for PLOT.
File Descriptions:
DESCRIPT Author's description of the program.
MMAKE DOC Documentation file.
MMAKE EXE Main program file.
!READ ME Information on how to start FIXER and user's conditions.
AR-REORD DBF Data base file.
ASCEDIT @@@ ASCII edit working file.
BIGBMW TXT Data file.
BREAKER EXE The BREAKER main program.
BUDG PRN Data file.
FIXER EXE The FIXER main program.
HELP ASC The help file for FIXER.EXE.
SPECIAL DOC Special ASCII characters.
STRIPPER EXE The STRIPPER main program.
TESTMAIL DBF Data base file.
EGABLANK COM Main program
HLP3 BAS Help file.
README DOC Documentation.
IPLOT BAS Program for plotting y=f(x) equations.
PLIC BAS License statement.
PLOG BAS Opening screen files.
PLOT BAT Batch file for start-up.
PLOTM BAS Plot menu.
PPLOT BAS Program for polar plotting.
SPLOT BAS Program for plotting two simultaneous equations.
VPLOT BAS Program for vector plotting.
IQBUILD BAS Program for testing your IQ.
PC-SIG
1030D East Duane Avenue
Sunnyvale Ca. 94086
(408) 730-9291
(c) Copyright 1988,89 PC-SIG, Inc.
╔═════════════════════════════════════════════════════════════════════════╗
║ <<<< Disk No 978 MMAKE FIXER, EGABLANK, PLOT >>>> ║
╠═════════════════════════════════════════════════════════════════════════╣
║ To print the documentation files on this disk, type: ║
║ MANUALS (press enter) ║
╚═════════════════════════════════════════════════════════════════════════╝
100 'HLP3 - HELP FILE FOR SHAREWARE VERSION OF 'PLOT'. 05/08/87
110 'COPYRIGHT 1985,1986,1987, Prowess, Inc.
120 SCREEN 0,0:CLS:KEY OFF:COLOR 6,0
130 PRINT " 'PLOT'- HELP PROGRAM"
140 PRINT " -------------------"
150 PRINT "INTRODUCTION"
160 PRINT "------------":COLOR 6,0
170 PRINT "Your Prowess, Inc. 'PLOT' shareware is a technical productivity tool that"
180 PRINT "provides a quick means of graphing a variety of functions. These include"
190 PRINT "plotting rectilinear and polar equations and vectors. In addition,"
200 PRINT "integrating capability is provided for finding the approximate area under"
210 PRINT "a curve (in rectangular coordinates only). After each plot is completed, you"
220 PRINT "may review a tabulation of all points plotted. BASIC syntax is used for "
230 PRINT "entering all functions. "
240 PRINT
250 PRINT:COLOR 7,0
260 PRINT " A REMINDER: If you use these programs, after a trial period, you"
270 PRINT " must pay the nominal registeration fee. Shareware"
280 PRINT " companies can't exist without your support !!"
290 PRINT
300 PRINT
310 COLOR 6,0:PRINT "You are free to copy and distribute this shareware package providing that"
320 PRINT "you distribute ALL files on this diskette, in UNALTERED form."
330 LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE"
340 LOCATE 23,55:Q$=INKEY$:IF Q$="" THEN 340
350 CLS:KEY OFF:PRINT :PRINT
360 COLOR 7,0
370 PRINT
380 PRINT " PROGRAM DESCRIPTIONS"
390 PRINT " --------------------"
400 PRINT
410 PRINT " PLOT Y=f(X)-------(PGM. MENU SELECTION #1)---1":PRINT
420 PRINT " POLAR PLOTTING----(PGM. MENU SELECTION #2)---2":PRINT
430 PRINT " VECTOR PLOTTING---(PGM. MENU SELECTION #3) --3":PRINT
440 PRINT " PLOT SIM. EQ.-----(PGM. MENU SELECTION #4) --4":PRINT
450 PRINT " RETURN TO 'PLOT' PROGRAM MENU --------------5":PRINT
460 PRINT " EXIT ----------------------------------------6":PRINT
470 PRINT
480 PRINT " MAKE SELECTION "
490 LOCATE 20,49:XX$=INKEY$:IF XX$="" OR VAL(XX$)<1 OR VAL(XX$)>6 THEN 490
500 CLS:ON VAL(XX$) GOTO 520,740,980,1200,1870,1900
510 '------------------------------iplot-------------------------------------
520 COLOR 7,0:PRINT "Y=f(X) (SELECTION #1 ON THE MENU)":COLOR 6,0
530 PRINT
540 PRINT "This program plots single valued functions of X over any range of X that you"
550 PRINT "specify (99999>X>.0001). You will be prompted to enter an equation in the "
560 PRINT "form y=f(x) and to specify a range of X (XMIN,XMAX) over which to plot. The"
570 PRINT "graph will be plotted over the range that you specify, but the X-axis will be"
580 PRINT "labeled + and - the larger of XMIN or XMAX.":PRINT
590 PRINT "Your equation will be evaluated at 200 evenly spaced points between XMIN and"
600 PRINT "XMAX and the largest absolute value of Y determined. This value of Y provides a"
610 PRINT "scaling factor that is used to insure that the graph of the function will fit"
620 PRINT "on the plot field. The Y-axis is labled + and - this largest value of Y.":PRINT
630 PRINT "The total range of X (XMIN to XMAX) is divided by 199 to establish a plotting "
640 PRINT "increment. The first point plotted is XMIN and 199th of the total range of X is"
650 PRINT "added for each of the 200 plot points. This tends to reduce the possibility"
660 PRINT "of division by zero, BUT DOES INSURE THAT IT WON'T OCCUR. If you get a "
670 PRINT "'division by zero' error message, try a slight change in the range of X."
680 PRINT "After plotting, a tabulation of all plotting point may be viewed.":PRINT
690 PRINT "NOTE: In trig functions, X will be considered an angle in radians!"
700 PRINT
710 COLOR 6,0:LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE":COLOR 7,0
720 LOCATE 23,54:A$=INKEY$:IF A$="" THEN 720
730 CLS:GOTO 1560
740 '-------------------------------pplot-------------------------------------
750 COLOR 7,0:PRINT "POLAR PLOTTING (SELECTION #2 ON THE MENU)":COLOR 6,0
760 PRINT
770 PRINT "This program plots polar equations in polar format. There are two common forms"
780 PRINT "of polar equations:"
790 PRINT
800 PRINT " R = f(";CHR$(233);") OR Y = f(";CHR$(233);") AND X = f(";CHR$(233);")"
810 PRINT
820 PRINT "You will first be prompted to select the desired format. You will then be"
830 PRINT "prompted through the process of entering your equation(s)."
840 PRINT
850 COLOR 7,0:PRINT " NOTE: ENTER ANY FIXED ANGLES IN RADIANS !!!"
860 PRINT
870 PRINT " THE PLOT (VARIABLE A) WILL RUN FROM 0 TO 2*PI RADIANS [(0-360) DEGREES]":COLOR 6,0:PRINT
880 PRINT "Your equation(s) will be evaluated every 2 degrees to determine the largest"
890 PRINT "value of R for scaling. (X and Y formats are automatically converted to 'R'"
900 PRINT "format for scaling and plotting. After plotting, you may review a tabulation "
910 PRINT "of all plot points in both 'R' and 'X and Y' formats."
920 PRINT:COLOR 7,0
930 PRINT " NOTE: The variable in your equation must always be 'A' (for angle)"
940 PRINT " i.e.; R = 2 * SIN((A+180)"
950 COLOR 6,0:LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE":COLOR 7,0
960 LOCATE 23,54:A$=INKEY$:IF A$="" THEN 960
970 GOTO 350
980 '-----------------------------vplot---------------------------------------
990 COLOR 7,0:PRINT "VECTOR PLOTTING (SELECTION #3 ON THE MENU)":PRINT:COLOR 6,0
1000 PRINT "This program allows you to enter up to 10 vectors, in either polar or"
1010 PRINT "rectangular coordinates. You will be prompted through the inputs."
1020 PRINT
1030 PRINT "If you entered in polar format, a list of vectors representing your inputs will"
1040 PRINT "be shown along with the rectangular coordinates of each point. The coordinates"
1050 PRINT "of the resultant will be displayed in both coordinate systems"
1060 PRINT
1070 PRINT "The longest vector ( including the resultant ) will be used to scale the plot"
1080 PRINT "field and each vector will be shown in polar form. The resultant will be"
1090 PRINT "identified by a large, white terminator circle. The x and y coordinates of the"
1100 PRINT "resultant will be noted beside the graph."
1110 PRINT
1120 PRINT "Vectors input in rectangular format are handled in much the same way."
1130 PRINT
1140 COLOR 7,0:PRINT " NOTE: Roundoff errors may result in small calculation errors."
1150 PRINT " Example: 5 might be represented by 4.9999 etc."
1160 PRINT :PRINT
1170 COLOR 6,0:LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE":COLOR 7,0
1180 LOCATE 23,54:A$=INKEY$:IF A$="" THEN 1180
1190 GOTO 350
1200 '-------------------------------splot-----------------------------------
1210 COLOR 7,0:PRINT "SIMULTANEOUS EQUATION PLOTTING (SELECTION #4 ON THE MENU)":COLOR 6,0:PRINT
1220 PRINT "This program allows you to input two equations, one in the form Y=f(X)."
1230 PRINT "and the other in the form A=f(B) and to plot them both on the same plot field."
1240 PRINT
1250 PRINT "You will be prompted to enter two equations and a range of X. Both equations"
1260 PRINT "will be plotted over the same range (XMIN to XMAX). Plotting increments are"
1270 PRINT "derived by dividing this total range by 199. Plotting starts at XMIN and 199th"
1280 PRINT "of the range is added for each of the 200 iterations. This greatly reduces the"
1290 PRINT "probability of getting a 'divide by zero' error, BUT DOES NOT ELIMINATE IT!!."
1300 PRINT "Should you get a 'divide by zero' error, try changing the range of X by a"
1310 PRINT "small amount. Both equations are evaluated over the whole range to determine"
1320 PRINT "the largest value of Y. The largest value (from either equation) will be used"
1330 PRINT "to scale the Y-axis (+Ymax to -Ymax).":PRINT:COLOR 7,0
1340 PRINT " NOTE: IF ONE EQUATION PRODUCES VERY LARGE Y-AXIS VALUES AND THE OTHER"
1350 PRINT " VERY SMALL Y-AXIS VALUES, THE TRUE SHAPE OF THE SMALL-VALUED CURVE"
1360 PRINT " MAY BE VERY DIFFICULT TO DISCERN. OFTEN, RESTRICTING THE RANGE OF X"
1370 PRINT " HELPS RESTRICT THE 'Y-VALUES' SO THAT BOTH CURVES ARE WELL PRESENTED."
1380 LOCATE 22,1:COLOR 6,0:PRINT " PRESS ANY KEY TO CONTINUE":COLOR 7,0
1390 LOCATE 22,54:A$=INKEY$:IF A$="" THEN 1390
1400 CLS:PRINT :PRINT :PRINT "When plotting of the two equations is completed, you may review a tabulation"
1410 PRINT "of all plotted points. This table displays the calculated values of Y and A for"
1420 PRINT "each value of X.":PRINT:COLOR 7,0
1430 PRINT " NOTE: A RATIONAL FIRST ASSUMPTION IS THAT IF THE CURVES INTERSECT,"
1440 PRINT " THE TABULATED VALUES SHOULD SHOW THE SOLUTION(S): i,e. Y=A"
1450 PRINT " FOR A GIVEN X. IF THIS HAPPENS, IT IS PURE CHANCE SINCE THE"
1460 PRINT " RANGE OF X WAS ARBITRARILY DIVIDED INTO 199 EVEN INCREMEMENTS."
1470 PRINT " ALTHOUGH EXACT SOLUTIONS ARE NOT LIKELY TO BE DISPLAYED, THE"
1480 PRINT " TABULAR VALUES OFTEN PROVIDE A SATISFACTORY ANSWER. RESTRICTING"
1490 PRINT " THE RANGE OF X TO BARELY INCLUDE THE INTERSECTION POINT WILL"
1500 PRINT " PROVIDE TABULATED VALUES THAT ARE CLOSEST TO THE THE EXACT"
1510 PRINT " SOLUTION. A FEW ITERATIONS MAY BE REQUIRED."
1520 COLOR 6,0:LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE"
1530 LOCATE 23,54:A$=INKEY$:IF A$="" THEN 1530
1540 GOTO 350
1550 '------------------------------iplot continued ---------------------------
1560 COLOR 7,0:PRINT "PLOT Y=f(X) AND INTEGRATE (IF DESIRED) (SELECTION #1 ON THE PGM. MENU)":COLOR 6,0:PRINT
1570 PRINT "After the function is plotted, a prompt is displayed that allows you to find"
1580 PRINT "the area under the curve, or go to the next menu.":PRINT
1590 PRINT "If you choose the 'Area' option, you will be prompted to enter a lower limit"
1600 PRINT "of X and an upper limit of X (X1,X2), over which to calculate the area under"
1610 PRINT "the curve. After selection, these limits are displayed as white lines on the:
1620 PRINT "plot field and integration begins immediately. Progress of the integration is""
1630 PRINT "shown by progressive shading over the range of interest. When integration is"
1640 PRINT "completed, the absolute value of the approximate area is displayed. You can"
1650 PRINT "accurately integrate beyond the plotted curve and even beyond the plot field."
1660 PRINT "INTEGRATING BEYOND THE LIMITS OF THE SCREEN IS POSSIBLE, BUT NOT RECOMMENDED.":PRINT:COLOR 7,0
1670 PRINT " NOTE: THE ACCURACY OF THE AREA CALCULATION IS AFFECTED BY BOTH"
1680 PRINT " THE FINITE ( 200 INCREMENT ) INTEGRATION AND ROUNDOFF ERRORS"
1690 PRINT " IN THE COMPUTER. IN MOST CASES, THE ACCURACY OF THE AREA"
1700 PRINT " IS MUCH BETTER THAN 1%."
1710 LOCATE 22,1:COLOR 6,0:PRINT " PRESS ANY KEY TO CONTINUE"
1720 LOCATE 22,54:A$=INKEY$:IF A$="" THEN 1720
1730 CLS:LOCATE 4,1
1740 PRINT "Note that the 200 increments over which the integration is performed are not"
1750 PRINT "the same increments that were used in plotting the function. The range of X"
1760 PRINT "over which you elected to integrate is separately divided into 200 parts for"
1770 PRINT "the integration routine. After the area is displayed, you may still review"
1780 PRINT "the tabulated plotting points.":PRINT
1790 PRINT "NOTE: It takes no longer to integrate over a broad expanse of the plotted"
1800 PRINT "function than over a small portion since 200 equally spaced points will be"
1810 PRINT "used for integration in either case. Some improvement in area calculation"
1820 PRINT "accuracy is obtained by restricting the plotting range of X to just include"
1830 PRINT "the desired range of integration."
1840 COLOR 6,0:LOCATE 23,28:PRINT "PRESS ANY KEY TO CONTINUE":COLOR 7,0
1850 LOCATE 23,54:A$=INKEY$:IF A$="" THEN 1850
1860 GOTO 350
1870 '---------------------------goto plotting menu---------------------------
1880 CLS
1890 RUN "PLOTM"
1900 '------------------------------return to system--------------------------
1910 CLS:COLOR 10,0:LOCATE 12,31:PRINT "ARE YOU SURE? Y/N"
1920 LOCATE 12,51:A$=INKEY$:IF A$="" THEN 1920
1930 IF A$="Y" OR A$="y" THEN 1960
1940 IF A$="N" OR A$="n" THEN 350
1950 GOTO 1920
1960 LOCATE 15,30:COLOR 7,0:PRINT "COPY AUDIT #: ";CHR$(4);CHR$(225);CHR$(213);CHR$(177);CHR$(146);CHR$(216);CHR$(6);CHR$(206):FOR I=1 TO 1500:NEXT I
1970 CLS:CHAIN "PLIC
1980 END
100 'IPLOT - SHAREWARE F(X) PLOT WITH INTEGRATION
110 'COPYRIGHT 1985,1986,1987 Prowess, Inc.
120 CLS:KEY OFF:CLEAR,,2000:SCREEN 0,0,0:COLOR 6,0:XX$=STRING$(78,32)
130 DIM R(51),U(51),X(51),Y(51),XC(51),YC(51)
140 COLOR 3,0:LOCATE 1,25:PRINT CHR$(201)+STRING$(31,205)+CHR$(187)
150 FOR L=2 TO 3:LOCATE L,25:PRINT CHR$(186):LOCATE L,57:PRINT CHR$(186):NEXT L
160 LOCATE 2,34:PRINT "RECTLINEAR PLOT"
170 LOCATE 3,26:PRINT "(C) 1985,1986,1987 Prowess,Inc."
180 COLOR 3,0:LOCATE 4,25:PRINT CHR$(200)+STRING$(31,205)+CHR$(188)
190 COLOR 1,0:LOCATE 4,2:PRINT CHR$(201)+STRING$(78,205)+CHR$(187)
200 LOCATE 3,75:COLOR 7,0:PRINT "V2.5":COLOR 1,0
210 FOR L=6 TO 19
220 LOCATE L,1:PRINT CHR$(186):LOCATE L,80:PRINT CHR$(186)
230 NEXT L
240 LOCATE 19,2:PRINT CHR$(200)+STRING$(78,205)+CHR$(188):COLOR 6,0
250 IF FLAG<>0 THEN 340
260 LOCATE 12,16:PRINT "Do you want to read the instructions? (Y/N/Q)"
270 LOCATE 12,62:K$=INKEY$:IF K$="" THEN 270
280 IF K$="Y" OR K$="y" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 2370
290 IF K$="N" OR K$="n" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 320
300 IF K$="Q" OR K$="q" THEN 2230
310 GOTO 270
320 LOCATE 12,3:PRINT STRING$(75,32)
330 DEFDBL X-Y:PI=3.1415926#
340 COLOR 10,0
350 LOCATE 6,3:PRINT "Enter your equation in the form Y=f(X) and press 'return'":COLOR 7,0
360 LOCATE 8,3:PRINT "EXAMPLE: Y = 2*X^2 - 20*X - 3 or Y = exp(-.3*X)*sin(4*X)":LOCATE 10,12:COLOR 15,0:PRINT "Y ="
370 IF FLAG=3 THEN LOCATE 21,3:COLOR 6,0:PRINT "YOUR EQUATION WAS ":COLOR 7,0:LOCATE 21,22:PRINT "Y = ";EQ$:COLOR 7,4:LOCATE 18,9:PRINT "DIVISION BY ZERO OCCURED-REENTER EQUATION AND CHECK RANGE OF X":COLOR 10,0:FLAG=0:LOCATE 14,3
380 IF FLAG=2 THEN LOCATE 21,3:COLOR 6,0:PRINT "YOUR EQUATION WAS ":COLOR 7,0:LOCATE 21,22:PRINT "Y = ";EQ$:COLOR 7,4:LOCATE 18,20:PRINT "PLEASE CHECK FOR SYNTAX ERROR AND REENTER ":COLOR 10,0:FLAG=0:LOCATE 14,3
390 IF FLAG=4 THEN LOCATE 21,3:COLOR 6,0:PRINT "YOUR EQUATION WAS ":COLOR 7,0:LOCATE 21,22:PRINT "Y = ";EQ$:COLOR 7,4:LOCATE 17,3:PRINT "AN ILLEGAL FUNCTION CALL WAS MADE-POSSIBLY AN IMMAGINARY NUMBER WAS CREATED"
400 IF FLAG=4 THEN LOCATE 18,3:PRINT " - REENTER THE EQUATION. CHECK YOUR RANGE SPECIFICATION."
410 COLOR 15,0:FLAG=0:LOCATE 14,3
420 '---------------------inputs user's equation string---------------------
430 B$="1910 Y=" 'line # at which user eq. will be placed---------
440 LOCATE 10,16:LINE INPUT EQ$:IF LEN(EQ$)=0 THEN BEEP:GOSUB 530:GOTO 360
450 C$ = B$+EQ$
460 '----------writes the equation string to a file called funct.bas---------
470 OPEN "O",#1,"FUNCT.BAS"
480 PRINT #1,C$
490 CLOSE #1
500 '-------merges funct.bas with this pgm. and continues execution----------
510 CHAIN MERGE "FUNCT.BAS",560,ALL:ON ERROR GOTO 1930
520 '----------------------clear upper & lower fields-------------------------
530 FOR LL=6 TO 19:LOCATE LL,3:PRINT STRING$(76,32):NEXT LL
540 FOR LL=21 TO 23:LOCATE LL,3:PRINT STRING$(75,32):NEXT LL:RETURN
550 '-------------------------------------------------------------------------
560 COLOR 10,0
570 GOSUB 530
580 '--user defines range of x over which to plot-------------
590 LOCATE 21,3:PRINT "Enter RANGE of X over which to plot. (Xmin,Xmax)":COLOR 12,0
600 LOCATE 8,20:PRINT "NOTE: XMIN must be smaller than XMAX !!!":COLOR 10,0
610 LOCATE 12,3:PRINT "The X-AXIS will be scaled + and - whichever (Xmin or Xmax) has the largest"
620 LOCATE 13,3:PRINT "absolute value."
630 LOCATE 15,3:PRINT "Example: If you wish to plot the function from X = -10 to X = 0, you would"
640 LOCATE 16,3:PRINT "enter -10,0. The X axis would run from -10 to +10 and the function would"
650 LOCATE 17,3:PRINT "be plotted from X = -10 to X = 0, as you requested."
660 LOCATE 21,52:INPUT "",XMIN,XMAX
670 IF XMIN>=XMAX THEN BEEP:LOCATE 21,52:PRINT " ":GOTO 660
680 INC = (XMAX-XMIN)/199 'sets up plotting increment of x
690 CLS:COLOR 28,0
700 ' ------------determines largest values of x and y for scaling ----------
710 GOSUB 530
720 LOCATE 12,20:PRINT "FINDING MAX VALUES OF X AND Y FOR SCALING"
730 X=XMIN:LOCATE 23,1:ON ERROR GOTO 1930
740 GOSUB 1910
750 YBIG=ABS(Y):XBIG=ABS(X)
760 FOR K=2 TO 200
770 X = X + INC
780 GOSUB 1910
790 IF ABS(Y) > YBIG THEN YBIG=ABS(Y)
800 NEXT K
810 IF ABS(XMIN) > ABS(XMAX) THEN XBIG=ABS(XMIN) ELSE XBIG=ABS(XMAX)
820 '------------------------draws plotting field-----------------------------
830 BEEP
840 SCREEN 2,0:CLS
850 LINE (137,9.3)-(493,157),7,B 'draws graph field---------------
860 FOR I=7.38 TO 73.8 STEP 7.38
870 LINE (315+(I/0.417),9.3)-(315+(I/0.417),157),7,,&HAAAA '+ vert grid lines
880 LINE (315-(I/0.417),9.3)-(315-(I/0.417),157),7,,&HAAAA ' - vert grid lines
890 LINE (137,83.2+I)-(493,83.2+I),7,,&HAAAA '+ horiz grid lines
900 LINE (137,83.2-I)-(493,83.2-I),7,,&HAAAA '- horiz grid lines
910 NEXT I
920 LINE (315,9.3)-(315,157),7 'draws vertical axis -----------------
930 LINE (137,83.2)-(493,83.2),7 'draws horizontal axis ---------------
940 ' -------------------prints axis labels, etc. ---------------------------
950 LOCATE 1,40
960 PRINT "Y"
970 LOCATE 11,64
980 PRINT "X"
990 LOCATE 2,64
1000 IF YBIG<=0 THEN 1020
1010 PRINT USING "+#######.####";YBIG:GOTO 1030
1020 PRINT USING "+#.#####";YBIG:
1030 LOCATE 20,65
1040 IF YBIG#<=0 THEN 1060
1050 PRINT USING "#######.####";-YBIG:GOTO 1070
1060 PRINT USING "#.#####";-YBIG
1070 LOCATE 20,65:PRINT " "
1080 LOCATE 21,11
1090 IF XBIG<=0 THEN 1110
1100 PRINT USING "#######.####";-XBIG:GOTO 1120
1110 PRINT USING "#.#####";-XBIG
1120 LOCATE 21,11:PRINT " "
1130 LOCATE 21,56
1140 IF XBIG<=0 THEN 1160
1150 PRINT USING "+#######.####";XBIG:GOTO 1170
1160 PRINT USING "+#.#####";XBIG
1170 LOCATE 21,40
1180 PRINT "0"
1190 LOCATE 11,15
1200 PRINT "0"
1210 ' -----------------------plots points------------------------------------
1220 X=XMIN:W$=STRING$(80,32):LOCATE 1,1:PRINT "PLOTTING"
1230 GOSUB 1910
1240 PSET ((315+(X*177)/XBIG),(83.2-(Y*73.8/YBIG))) 'sets cursor to 1st pt.
1250 FOR K=2 TO 200 'scales and plots user function
1260 X=X+INC
1270 GOSUB 1910
1280 LINE -((315+(X*177)/XBIG),(83.2-(Y*73.8)/YBIG)),7
1290 NEXT K
1300 LOCATE 1,1:PRINT " "
1310 LOCATE 22,1
1320 OPEN "I",2,"FUNCT.BAS"
1330 INPUT #2,T$
1340 LOCATE 1,1:PRINT "GRAPH OF ";MID$(T$,5)
1350 LOCATE 22,1:PRINT W$:LOCATE 22,1:PRINT "PRESS 'A' TO FIND AREA UNDER CURVE, OTHERWISE, PRESS 'C' ":LOCATE 23,78
1360 LOCATE 22,78:A$=INKEY$:IF A$="" THEN 1360
1370 LOCATE 22,1:PRINT W$
1380 IF A$="A" OR A$="a" THEN GOSUB 1980:LOCATE 15,65:PRINT "PRESS ANY KEY":LOCATE 16,65:PRINT "TO CONTINUE":FOR I=1 TO 3000:NEXT I:LOCATE 15,65:PRINT " ":LOCATE 16,65:PRINT " " ELSE 1410
1390 LOCATE 22,80:W$=INKEY$:IF W$="" THEN 1390
1400 GOTO 1430
1410 IF A$="C" OR A$="c" THEN 1430
1420 BEEP:GOTO 1350
1430 CLOSE 2:SCREEN 0,,0,0
1440 CLS '--------------- provides choice of continuing or not -------------
1450 PRINT :PRINT :PRINT :PRINT :PRINT :COLOR 10,0
1460 PRINT " DISPLAY A TABLE OF CALCULATED X & Y VALUES ? .....1"
1470 PRINT " CHANGE RANGE OF X FOR PRESENT FUNCTION ...........2"
1480 PRINT " PLOT A NEW FUNCTION...............................3"
1490 PRINT " EXIT .............................................4"
1500 PRINT
1510 PRINT " MAKE SELECTION "
1520 LOCATE 11,42:SS$=INKEY$:IF SS$="" OR VAL(SS$)<1 OR VAL(SS$)>4 THEN 1520
1530 ON VAL(SS$) GOTO 1540,530,120,2240
1540 Q = 12
1550 X=XMIN-INC
1560 CLS
1570 '--------------------------sets up page header---------------------------
1580 COLOR 10,0:PRINT " POINT # X Y "
1590 LOCATE 18,60:COLOR 6,0:PRINT "PRESS ANY KEY TO"
1600 LOCATE 19,60:PRINT "CONTINUE OR 'Q'"
1610 LOCATE 20,60:PRINT "FOR NEXT MENU."
1620 COLOR 14,0:J=4:K=2:L=1
1630 FOR I=3 TO 22
1640 X=X+INC
1650 GOSUB 1910:IF FLAG=1 THEN LOCATE I:PRINT " ":GOTO 1690
1660 LOCATE I,11:PRINT L
1670 LOCATE I,18:PRINT USING "#######.####";X
1680 LOCATE I,38:PRINT USING "#######.####";Y
1690 L=L+1
1700 IF L=200 THEN FLAG=1
1710 NEXT I
1720 FLAG=0
1730 LOCATE 23,80:A$=INKEY$:IF A$="" THEN 1730
1740 IF A$="Q" OR A$="q" THEN CLS:GOTO 1780
1750 IF L<200 GOTO 1630
1760 LOCATE 23,80:A$=INKEY$:IF A$="" THEN 1760
1770 CLS
1780 '-------------------provides choice of continuing or not-----------------
1790 COLOR 10,0:LOCATE 8,1
1800 PRINT " PLOT SAME FUNCTION AGAIN ................1"
1810 PRINT " CHANGE RANGE OF X FOR PRESENT FUNCTION ..2"
1820 PRINT " INPUT A NEW FUNCTION ....................3"
1830 PRINT " EXIT ....................................4":PRINT
1840 PRINT " MAKE SELECTION "
1850 LOCATE 13,47:GG$=INKEY$:IF GG$="" OR VAL(GG$)<1 OR VAL(GG$)>4 THEN 1850
1860 ON VAL(GG$) GOTO 820,530,120,2240
1870 CLS:IF I=200 THEN 1770
1880 Q = Q + 12
1890 Y=SIN(X)
1900 '-----------------------------user function-----------------------------
1910 Y=10*SQR(X)
1920 RETURN
1930 '-----------------------error trap routine-syntax,/0,--------------------
1940 IF ERR=2 AND ERL=1910 THEN CLS:FLAG=2:CLS:BEEP:RESUME 140
1950 IF ERR=11 AND (ERL=1910 OR ERL=1240) THEN CLS:BEEP:FLAG=3:RESUME 140
1960 IF ERR=5 AND ERL=1910 THEN CLS:FLAG=4:CLS:BEEP:RESUME 140
1970 ON ERROR GOTO 0:CLS:GOTO 140
1980 Z$=STRING$(79,32) '----integration subroutine----------------------------
1990 LOCATE 23,1:PRINT "Z$":LOCATE 23,1
2000 INPUT "To find AREA between X1 and X2, enter in the form: X1,X2 ";X1,X2
2010 LOCATE 23,1:PRINT Z$:LOCATE 23,1:PRINT "INTEGRATING":LOCATE 23,80
2020 X=X1
2030 GOSUB 1910
2040 PSET (315+(X*177/XBIG),83.2)
2050 LINE -(315+(X*177/XBIG),(83.2-(Y*73.8/YBIG))),7
2060 X=X2
2070 GOSUB 1910
2080 PSET (315+(X*177/XBIG),83.2)
2090 LINE -(315+(X*177/XBIG),(83.2-(Y*73.8/YBIG))),7
2100 AINC = (X2-X1)/251:DA=0
2110 FOR J=X1 TO X2 STEP AINC
2120 X=J+AINC
2130 GOSUB 1910
2140 PSET (315+(X*177/XBIG),83.2)
2150 LINE -(315+(X*177/XBIG),(83.2-(Y*73.8/YBIG))),7
2160 X=J+(AINC/2)
2170 GOSUB 1910
2180 DA=DA+(AINC*ABS(Y))
2190 NEXT J
2200 LOCATE 23,1:PRINT Z$:LOCATE 23,1:PRINT "APPROX AREA BETWEEN ";X1;" AND ";X2;" = "
2210 LOCATE 23,45:PRINT USING "#######.####";DA:LOCATE 23,60:PRINT " SQ. UNITS"
2220 RETURN
2230 '-------------------------------quit menu---------------------------------
2240 SCREEN 0,1,0:CLS:COLOR 6,0
2250 LOCATE 8,25:PRINT "RESTART THIS PROGRAM --------------1"
2260 LOCATE 10,25:PRINT "RETURN TO PLOT MENU ---------------2"
2270 LOCATE 12,25:PRINT "EXIT ------------------------------3"
2280 LOCATE 17,30:PRINT "Make selection"
2290 LOCATE 17,50:Q$=INKEY$:IF Q$="" THEN 2290
2300 QT=VAL(Q$)
2310 IF QT<1 OR QT>3 THEN BEEP:GOTO 2290
2320 IF QT=1 THEN 120
2330 IF QT=2 THEN CHAIN "PLOTM"
2340 IF QT=3 THEN KEY ON:COLOR 7,0:CLS:SYSTEM
2350 BEEP:GOTO 2290
2360 '---------------------------------help-----------------------------------
2370 GOSUB 530
2380 LOCATE 6,3:PRINT "* This program plots functions of the form Y = f(X) over any range of X"
2390 LOCATE 7,5:PRINT "that you specify."
2400 LOCATE 9,3:PRINT "* If your equation uses letters other than 'Y' and 'X', you will have to"
2410 LOCATE 10,5:PRINT "change to the Y = f(X) format before entering."
2420 LOCATE 12,3:PRINT "* BASIC language syntax must be used when entering your equation. Check"
2430 LOCATE 13,5:PRINT "your BASICA (or equiv.) manual if you are not familiar with handling"
2440 LOCATE 14,5:PRINT "BASIC math statements."
2450 LOCATE 16,3:PRINT "* Although this program contains statements to trap 'division by zero'"
2460 LOCATE 17,5:PRINT "that might occur, BASICA does not allow trapping this error. Some other"
2470 LOCATE 18,5:PRINT "BASICA equivalents DO allow 'division by zero' trapping. If you get a"
2480 LOCATE 19,5:PRINT "'division by zero' error message, you will have to rerun the program."
2490 LOCATE 21,3:PRINT "Press any key to continue"
2500 LOCATE 21,27:K$=INKEY$:IF K$="" THEN 2500
2510 GOSUB 530
2520 LOCATE 6,3:PRINT "* To minimize the chance of inadvertently creating a 'divide by zero'"
2530 LOCATE 7,5:PRINT "situation, the program divides the plotting range into 199 parts. Thus,"
2540 LOCATE 8,5:PRINT "if specify that you want an equation plotted from X = -10 to +20, the"
2550 LOCATE 9,5:PRINT "program will first plot the value of Y for X = -10. The next plot point"
2560 LOCATE 10,5:PRINT "will be the value of Y for X = -10 + (30/199). The 30/199 is added to X"
2570 LOCATE 11,5:PRINT "for each iteration. Unless you enter zero as one of the range numbers, the"
2580 LOCATE 12,5:PRINT "likelyhood of accidently dividing by zero is very small."
2590 LOCATE 14,3:PRINT "* After your curve is plotted, you may calculate the approximate area"
2600 LOCATE 15,5:PRINT "between the curve and the X-axis by selecting the 'A' option. Take the "
2610 LOCATE 16,5:PRINT "'C' (continue) option if you don't want to find the area."
2620 LOCATE 18,3:PRINT "* After plotting, you may review the X and Y values for each plotting point."
2630 LOCATE 21,3:PRINT "Press any key to start"
2640 LOCATE 21,25:K$=INKEY$:IF K$="" THEN 2640
2650 GOSUB 530:GOTO 330
10 REM ======================================================================
20 REM ============================= IQ Builder =============================
30 REM This program presents a menu of the programs available in the ===
40 REM IQ Builder series and allows the user to select a program by ===
50 REM moving the cursor to the desired program and pressing ENTER. ===
60 REM ======================================================================
70 REM $s2
80 REM =====================================================================
90 REM Turn off KEY display, set display width, clear the screen and set ===
100 REM KEY(10) to reload the menu program when pressed in command mode. ===
110 REM =====================================================================
120 REM $s2
130 KEY OFF:WIDTH 80:CLS:KEY 10,"run "+CHR$(34)+"b:???0??"+CHR$(13)
140 REM $s2
150 REM =====================================================================
160 REM Display the menu of the programs available in IQ Builder. ===
170 REM =====================================================================
180 REM $s2
190 LOCATE 1,34,0:COLOR 0,7:PRINT " IQ Builder ";
200 LOCATE 3,10:COLOR 7,0:PRINT "The following programs are available on this diskette:";
210 LOCATE 5,30:PRINT "Number Series"
220 LOCATE 6,30:PRINT "Analogies"
230 LOCATE 7,30:PRINT "Synonyms"
240 LOCATE 8,30:PRINT "Antonyms"
270 LOCATE 16,1:PRINT"Use the ";:COLOR 15:PRINT"UP ("CHR$(24)")";:COLOR 7:PRINT" and ";:COLOR 15:PRINT"DOWN ("CHR$(25)")";:COLOR 7:PRINT" arrows to position the cursor to the function"
280 LOCATE 17,1:PRINT"desired and then press the ";:COLOR 15:PRINT"ENTER ("CHR$(17)CHR$(196)CHR$(217)")";:COLOR 7:PRINT" key."
290 REM $s2
300 REM =====================================================================
310 REM Set up the initial coordinates for the selection arrow. ===
320 REM =====================================================================
330 REM $s2
340 X=25:Y=5
350 REM $pa
360 REM =====================================================================
370 REM Set up UP and DOWN arrows for moving selection arrow. ===
380 REM =====================================================================
390 REM $s2
400 KEY(11) ON:KEY(14) ON:ON KEY(11) GOSUB 730:ON KEY(14) GOSUB 800
410 REM $s2
420 REM =====================================================================
430 REM Set up KEY(10) to return to MENU program on A-disk. ===
440 REM =====================================================================
450 REM $s2
460 KEY(10) ON:ON KEY(10) GOSUB 1000
470 REM $s2
480 REM =====================================================================
490 REM Display highlighted selection arrow at Y,X. ===
500 REM ======================
Mmake
Version 1.3 User's Manual
MicroSystems
P.O. Box 471
Carbondale, IL 62903
REGISTRATION
This program is made available to the public as shareware. You are free
to make and distribute an unlimited number of copies. You are to also
entitled to use the program without cost on a trial basis, to see if
it is of value to you.
If you decide to use the program, you are requested to register by
sending $20 along with your name and address to the address on the
cover of this manual.
The existence of user-supported software as an alternative to costly
commercial software depends on the good faith and cooperation of the
software's users. Your $20 registration will enable us to continue
to upgrade this product and to develop others. Commercial versions
of the make utility cost between $89 and $150.
Registered users are entitled to free support and to at least one
free upgrade.
FEEDBACK and SUPPORT
Registered users will be given assistance if any problems are
encountered using this program. If you enclose a self-addressed,
stamped envelope with your questions, it will help us to answer you
more quickly.
Support is not guaranteed to non-registered users. However, we do
appreciate feedback from all users, registered or otherwise. If you
encounter a bug when using this program, please let us know so that
we can correct it and save others from similar aggravation. When
reporting a problem, the more detail you can provide to us, the more
likely it is that we will be able to reproduce (and fix) the bug.
In addition to a description of the problem, it will help if you send
us copies of the files that were being processed when the problem
occured, or "dummy" files that cause the same problem.
We also welcome suggestions for improvements and added features, and
we are interested in hearing about how you have used Mmake.
WHAT MMAKE DOES
Mmake is based on the Unix "make" utility and performs the same
function, though it does not yet provide all of the sophisticated
features of the Unix utility.
Mmake is used by programmers to automate the process of compiling and
linking a program that is contained in several (or numerous) source
files. It can be used with any language and with any compiler that
can be run from the Ms-Dos command line. It can speed development
enormously, both by making recompilation of a program go much more
quickly, and by preventing errors when a changed file is not recompiled.
When creating or editing a complex program, it is often difficult to
remember which source files or modules have been changed and need to
be recompiled. Mmake automates this process so that the programmer
can forget about it. After editing files, the programmer simply
runs Mmake and the modules that have been changed will be recompiled.
Files that have not been changed are not recompiled.
Without a make utility, there are two basic strategies to compiling and
linking a program as it is being developed or when it is changed. The
first is to simply recompile and re-link all of the source files that
make up the program, every time any of them are changed. This has the
serious drawback of vastly increasing the amount of time spent recompiling
the program. The other strategy is to break the program into modules
which can be compiled separately, then trying to keep track of which ones
have been changed or added. This can be difficult, especially when an
"include" file is edited; any source files that include that "include"
file need to be recompiled, while others do not. This puts the burden of
keeping track of which modules have been affected on the programmer, who
should be free to think about the program being written. It also introduces
the possibility that a module that should be recompiled may not be,
thus generating errors in the program and wasting even more of the
programmer's time in debugging.
Mmake saves the time that is wasted by compiling files unnecessarily,
while preventing the errors that result when a programmer forgets to
recompile a module that has been changed. It also frees the programmer
to think about the program being written. When the program is ready to
be recompiled, Mmake automatically determines which source files have
been changed or affected by changes, and runs the commands necessary to
re-make the program.
Mmake does this by comparing the last modification times of the files you
are creating with the modification times of the files which are used to
create them. Depending on which files have been changed, Mmake runs
the appropriate programs to bring them up to date -- compilers,
assemblers, linkers, or any other executable Ms-Dos program.
We have used Mmake with 'C' compilers, the Clipper DBase compiler, the
Macro Assembler, and with programs that contained all three. It will
work with any compiler that can be run from the Ms-Dos command line.
WHAT MMAKE DOES, continued
While Mmake is designed as a tool for programmers, it can be used in
any situation in which an action must be taken for files which have
changed and not taken for those which have not. For example, a large
document consistng of many files could be run through a spell-checker or
text formatter, using Mmake to insure that all the files changed, and
only the files changed, were spell-checked or formatted. Or Mmake could
compare modification times of files on a source disk and files on a backup
disk, and copy the source to the backup when the source file was the
more-recently changed.
MEMORY REQUIREMENTS
The amount of memory needed to run Mymake depends on the commands in your
make file. Mymake.exe itself takes up about 25 K of memory while it
is running. In addition, you must have enough memory to load and run
any command line in your make file.
HOW TO USE MMAKE
The first step in using Mmake is to create a "make file," which is
a description of the relationships among the files in the program
you are making. The format of the make file is described in detail
below. Once the make file is created, the process of developing a
program or modifying an existing program is greatly simplified; the
time invested in creating the make file is soon repaid. Make files
also help to document a program, since they show all of the source
files contained in it and the relationships among them. Of course,
as you add new source files to your program, you have to add those
files to the make file as well.
Once a make file is created, using Mmake is extremely simple.
The command line syntax is:
Mmake /F filename /H /S /D /I
Everything after "Mmake" is optional, including the filename, which is
part of the /F option. The options can be given in any order. The
meaning of the command lines options are as follows:
/F filename - Use "filename" for the make file. If this
option is not given, Mmake uses the default file
name "makefile".
/H - Help: display a list of Mymake's options.
/S - Silent: don't display commands before running them.
Normally, Mmake displays each command as it is run.
This option turns off that display. Note that the
output of the programs themselves are not turned off,
just Mmake's display of the command line.
/D - Display only: display commands but don't run them.
With this option, Mmake will show you the commands
that would be run, based on the modification times of
files, but it does not actually run the commands.
/I - Ignore exit codes: normally, Mmake will stop running if a
compiler or other program returns with an exit code other
than zero. Most programs use non-zero exit codes to indicate
an error, so this is normally desirable. However, it you
need to run a program that returns a non-zero exit code, the
/I option can be used. It tells Mmake to simply ignore the
exit codes of the programs it runs.
For all options, a dash (-) may be used instead of the slash (e.g.,
-D or -S).
HOW TO USE MMAKE, continued
As Mmake runs, it will display the commands that it is executing (unless
the /S option is used). If no files have been changed since the last
time they were compiled or linked, Mmake simply displays a message that
all files are up to date. If any of the programs that Mmake runs
encounter an error, Mmake will display the error code returned by the
program, and stop. Once you have corrected the source of the problem,
run Mmake again and it will take up where it left off, making only
those files that still need to be made.
Note that since Mmake uses the modification times of files, the date and
time must be kept current on your system (which is a good idea in any
case). By far the most convenient way to do this is with a battery-
powered clock chip. If you don't have such a chip in your computer,
you will have to enter the date and time before editing source files.
(Usually, this is done when booting Dos).
SETTING UP THE MAKE FILE
Mmake requires a "make file," which describes to it the files in your
program and the dependencies among them. You can use Mmake for as
many different projects as you like, by setting up a separate make
file for each program.
The make file is a plain ascii text file; it can be created with any
text editor or word processor that will create ascii files. You can
name the make file anything you like. One convention is to name the
make file the same name as the program you are creating, but without
any extension. For example, using "chess" as the name of a make file
that creates a program named "chess.exe." If you do not give Mmake a
make file name, it will use a file named "makefile" in the default directory.
The make file consists of a number of records. Each record starts with
a filename, which is the file to be created. This is followed by a
colon, then a list of files upon which the file being created depends.
This "dependency line" is followed by one or more command lines, which
are the commands to be executed in order to create the file being created.
The general format of a make file record is as follows:
File to be created: files on which it depends
command to create the file
An example will help make this clear. Below is a simple make file
for an imaginary chess program, followed by an explanation of its
contents. (In the example, only three files are being created. In
fact up to 256 files can be created by each make file):
# chess - make file for chess.exe
# dummy file used for example only
# 7/12/87
Chess.exe : Chess.obj drawscrn.obj
link Chess drawscrn;
Chess.Obj : Chess.c Games.h
cl -c Chess;
Drawscrn.obj : a:\chessboard\drawscrn.asm
masm a:\chessboard\drawscrn;
The first three lines of this file are comments, and have no effect on
Mmake's actions. Comment lines can be placed anywhere in the file,
as long as the first non-space character of a comment line is "#".
Similarly, blank lines may be inserted to improve readability;
they are ignored by Mmake.
SETTING UP THE MAKE FILE, continued
In the example make file, the first dependency line tells Mmake that
Chess.exe "depends on" each of the two .obj files listed on that line.
That is, if either of these files change, Chess.exe must be remade.
Mmake will compare the modification times of the two .Obj files with
that of chess.exe; if either of them have been changed since Chess.exe
was last created, Chess.exe will be remade. Chess.exe will also be
created if it does not exist.
The next line of the sample make file is a command line. It begins with a
tab character, and tells Mmake how to remake Chess.exe if it decides to
do so. This example command line tells Mmake to run the link program,
passing the names of the two .obj files to link as arguments. Mmake
will look for the link program in the current directory, then look in the
directories specified by the Dos PATH string. This command line,
like the others in this example, is just an example; any linker or
compiler could be used -- or, for that matter, any .com or .exe file.
An exact description of what commands can be used appears below.
The next record tells Mmake that the Chess.obj file depends on two other
files, Chess.c and Games.h. If either of these two files has a later
modification date than Chess.obj, Mmake will remake Chess.obj. In this
example, it would run the cl compiler with the -c argument.
The drawscrn.obj record is interpreted in a similar manner. Note that
this record contains a full path and drive specification; any
file name in any record can include a drive and/or directory specification.
If the path of a command is not given, Mmake will look in the current
directory and the directories listed in the Ms-Dos PATH environment
string. Files other than commands have to include thier full path
name unless they are in the current directory.
RECORD ORDER
In some commercially-available versions of the make utility, the above
make file would not work because of the order in which the files are
listed. If, for example, Chess.c were changed, Chess.obj would get
remade. But Chess.exe would not, because by the time Chess.obj was
remade, the dependency line for Chess.exe would have already been checked.
This is not true of Mmake. In the above example, before it decides
whether or not to remake Chess.exe, it will look ahead to see if any
of the files Chess.exe depends on need to be remade; if so, it will remake
those fles (looking ahead again, if necessary) before deciding whether or
not to make Chess.exe.
Therefore, the order of records in the make file is not critical.
However, Mmake will run a little faster if the records are arranged to
minimize look-ahead. In the example, if the record for Chess.exe were
last, the make process would go faster. Minimizing look-ahead can also
help if you encounter a "Stack Overflow" error when running Mmake; see
error messages, below.
LONG LINES
If a dependency line is too long to fit on a single 80-column line,
it can be extended by placing a backslash (\) just before the end of
the line. Any lines ending in a backslash are considered as
continuing on the next line; for example, the lines
Chess.exe : Chess.obj drawscrn.obj mymove.obj \
Scorkeep.obj Highscr.obj Newgame.obj Replay.obj
are treated by Mmake as a single line. There is no limit to the number
of lines that can be "connected" in this way. The backslash must be
the very last character on the line.
COMMAND LINES
Each command line MUST begin with either a tab character or the '@'
character; this is how Mmake distinguishes the commands from the
dependency lines.
In the example above, only one command line is shown for each dependency
line. However, there is no limit to the number of command lines that
can follow a dependency line, as long as each one begins with a tab
or '@' character.
A command line that begins with the '@' character must have that
character in the first column; the '@' is stripped off. This can be
used if you are using a word processor or editor that makes it
inconvenient to use the tab character. The '@' can be followed by
spaces for clarity. For example, the sample make file shown above
could have been written as follows:
# chess - make file for chess.exe
# dummy file used for example only
# 7/12/87
Chess.exe : Chess.obj drawscrn.obj
@ link Chess drawscrn;
Chess.Obj : Chess.c Games.h
@ cl -c Chess;
Drawscrn.obj : a:\chessboard\drawscrn.asm
@ masm a:\chessboard\drawscrn;
The characters after the '@' can be either tabs or spaces; Mmake uses
the '@' in the first column to recognize the line as a command.
COMMAND LINES, continued
Any .com or .exe file can be specified as the command to be executed.
In addition, any internal DOS command (such as cd or copy) can be
given as one of the commands, as long as it is given in the form
command /c dir
-- that is, you must run command.com with the /c option, followed by the
Dos command you want to execute. Batch files can be run the
same way; they cannot be run without running a copy of command.com.
Continuing the above example, instead of simply linking the .obj files
to create Chess.exe, we could also have changed directories, invoked
an editor to edit a "scores" file, changed directories back to the \Chess
directory, then run the Chess program to test it. The following record
in the make file would accomplish this:
Chess.exe : Chess.obj drawscrn.obj
link Chess drawscrn ;
command /c cd scores
edlin highscores
command /c cd \Chess
Chess
If a command being run by Mmake returns an exit code greater than zero,
Mmake will stop. Additional commands will not be processed until you
run Mmake again. You can override this feature by specifying the /I
option, which will cause Mmake to ignore exit codes.
ERROR MESSAGES
Mmake generates two different types of errors. Before it begins processing
files, Mmake scans the entire make file, looking for errors in the make file
itself. Most such errors require that you edit the make file before
proceeding. These errors are listed in alphabetical order under "MAKE
FILE ERRORS" below.
The second type of error is generated during the process of making one
of the files listed in the make file. These errors are listed in
alphabetical order under "PROCESSING ERRORS" below.
MAKE FILE ERRORS
/F option requires make file name.
You entered the /F option on the Mmake command line, but
did not follow it with the name of the make file. If you
want to use the defualt make file name, "makefile", you
do not need the /F option on the command line. If you
want to use another file for the make file, enter /F
followed by the name of the make file, on the command line.
File (filename) too big (must be < 32k).
The make file must be less than 32 K in size. If you get
this error, you can reduce the size of the make file by
removing or shortening comments, or moving some files so
that shorter path names can be used in the make file. If your
make file is still more than 32 K, you can get around this
restriction by creating two separte make files and running
Mmake on each of them. This size limit will be removed in the
next version of Mmake.
Illegal file or path name: (file or path from make file)
The displayed path or file name in the make file
is an illegal name. This is NOT a "file not found"
message. It means that a file cannot even be looked
for because the file or path name contains
illegal characters, two consecutive backslash ("\")
characters, a colon in the middle of the name, or some
other illegal combination of characters.
MAKE FILE ERRORS (continued)
Mmake creates a temporary file named (filename).
A file already exists with that name.
Okay to overwrite existing file? (press y or n).
During operation, Mmake creates a temporary file with the
given name, in the default directory. This file is erased
before Mmake finishes running. You will not see the above
message unless a file by that name already exists in the
default directory. If you see this message, pressing 'N'
will cause Mmake to stop. Pressing 'Y' will overwrite the
existing temporary file, destroying its contents.
Missing colon make file line: (line from make file).
The line displayed is a dependency line, and does not
contain a colon separating the file to be created from
the files upon which it depends. Any line in the make file
that does not begin with a tab or the '@' character is taken
to be a dependency line unless the line right above it ends
in a backslash, in which case it is considered part of the
line above it.
Missing dependencies in make file after: (line from make file).
The dependency line displayed has a file to be created, but
no files upon which it depends. Each dependency line of
the make file must contain a file to be created, then a
colon, then one or more dependency files.
No command line following make file line: (line from make file).
The dependecny line displayed is not followed by a command
line. Command lines must begin with a tab or '@' character.
Each dependency line must be followed by at least one command
line. Some implementations of the make utility have built-in
rules which are used when no command is given. It is expected
that this feature will be available in future versions of Mmake;
this version does not provide built-in make rules.
Not enough memory to read make file (filename)
Mmake.exe is unable to get enough memory to read the make file.
You need more memory in your machine to run Mmake. If you have
a RAM disk or "Stay Resident" utilities installed, removing them
will make more memory available to programs such as Mmake.
If you receive this error, we would appreciate hearing about it.
MAKE FILE ERRORS (continued)
Too many files; make file must contain less than (number) files.
Your make file contains more files to be created than Mmake
can handle. The only solution is to reduce this number of
files in the make file; this can be done by splitting it
into two parts and running each part separately. If you do
this, the order in which you run the two make files may be
important, if the files in one depend on files in the other.
If you receive this error, we would appreciate hearing about it.
Two filenames before colon in make file line: (line from make file)
The dependency line displayed has more than one file name
before the colon. Only one file to be created can be
listed in each dependency line, though there can be many
dependency files.
Unable to open file (filename) for reading.
The named file cannot be opened. Normally, this means the
file does not exist, or that it is not in the current
directory and not in one of the directories specified by PATH.
Unable to create temporary file (filename).
The temporary file cannot be created. This may mean that
your disk is full, or that there is a directory with the
same name as the temp file, in the default directory. In
the former case, remove some files to make more room on
your disk. Remember that Mmake can access files on more than
one disk; just include the drive letter in the path name in
the make file or in the Dos PATH.
Unknown command line option: (option)
You typed a command line option that Mmake does not
recognize. Type Mmake /H for a list of valid options.
PROCESSING ERRORS
Arg list too long.
The command line is greater than 128 bytes long. The total
length of the command line must be less than 128 bytes. The
best way to overcome this problem is to use a respone file for
the input to your linker or compiler; most compilers and linkers
have an option that allows this.
Can't execute command line: (command line)
Commands must have .exe, .com, or no extension.
Only files ending in .com or .exe can be run as commands on
a command line in the make file. As explained under
"COMMAND LINES" above, .bat files or internal Dos commands
can be run by running a copy of command.com with its /c
option, followed by the command you wish to run. If a
command in the make file has no extension, Mmake assumes
that it has a .com or .exe extension.
Exec format error
The file being run is not an executable file or has been
altered in some way which makes it impossible to run.
Execute error: (error message)
Mmake is unable to run the program it is attempting to
run, for reasons explained by the error message following
the colon. Each of these error messages appears separately
in this list.
Executing: (command line)
This is not an error message; it simply tells you what
command or program is being executed by Mmake. If you
started Mmake with the /D (display only) option, this
shows you the commands that would be executed by Mmake
if the /D option were not used.
Exit code: (number)
The program just run by Mmake ended with an error code;
the exit code printed is from that program. Consult the
manual for the program creating the error to find out what
the error code means. Mmake will stop executing after
such an error is returned unless the /I option is used.
No such file or directory.
The command you specified cannot be found.
PROCESSING ERRORS (continued)
Not enough core.
There is not enough memory to run the program that Mmake
is attempting to run. If you can free some memory by
removing "Terminate but Stay Resident" utilities, RAM
disks, print spoolers, etc., Mmake may be able to run
the program.
Stack overflow.
Mmake has run out of stack space during execution. The
most common cause of this is a dependency line that
has a file dependent on itself, such as
Chess.obj : Chess.obj.
The solution is to fix the dependency line.
This error may also be caused by a deeply-nested set of
dependencies. In this case, you should be able to overcome
the problem by rearranging the make file to minimize
look-ahead, since look-ahead uses stack space. See the
section above on "RECORD ORDER" for an explanation of how to
minimize look-ahead.
If you receive this error, we would appreciate hearing
about it.
Unable to find or make (filename).
The named file is listed in the make file as one upon which
another file depends. However, the named file does not
exist, and there is no record in the make file indicating
how it can be created. This causes Mmake to stop. This
usually means that either the file name was incorrectly
typed, that a record needs to be added to the make file
indicating how the named file is to be made, or that the
file is in a different directory than the one listed in the
make file.
Unable to make file (filename); no commands.
There are no commands following the dependency line for
the named file. If you get this error, we would appreciate
hearing about it.
Warning: Command line contains more than (number) arguments. Extra ignored.
The number shown is the maximum number of arguments that can be
passed to a program run by Mmake. The command is still run,
but only the first (number) arguments have been passed.
If you get this error, we would appreciate hearing about it.
500 'PLIC -- Prowess, Inc. license agreement 04/28/87
510 CLS:CLEAR:SCREEN 0,0
520 LOCATE 1,28:PRINT "PLOT -- LICENSE AGREEMENT"
530 LOCATE 2,20:PRINT "Copyright 1985,1986,1987, Prowess, Inc."
540 LOCATE 4,5:PRINT "This is a user supported software product. It is not public domain"
550 LOCATE 5,5:PRINT "software, nor is it free software. You are granted a limited license"
560 LOCATE 6,5:PRINT "to use this product on a trial basis. If you continue to use this"
570 LOCATE 7,5:PRINT "product, after a trial period, you must register by sending:"
580 LOCATE 9,5:PRINT " $25 (Minimum reg.) or $35 (+ $4 s/h) (Full reg.)"
590 LOCATE 10,5:PRINT " * Technical support * Technical support"
600 LOCATE 11,5:PRINT " * Informed of updates * Latest diskette supplied"
610 LOCATE 12,5:PRINT " * Printed manual"
620 LOCATE 14,18:PRINT "Texas residents, please add 7 1/4 % sales tax"
630 LOCATE 15,11:PRINT "Contact us for information concerning low cost site licenses."
640 LOCATE 17,5:PRINT "If you like the shareware concept - try before you buy - support the"
650 LOCATE 18,5:PRINT "companies that provide useful, professional quality products."
660 LOCATE 20,5:PRINT "Prowess,Inc. - 203 Lakeridge Village - Suite 102 - Dallas, TX 75238"
670 LOCATE 21,33:PRINT "(214) 349-4718"
680 LOCATE 23,29:PRINT "Press any key to exit"
690 LOCATE 23,52:F$=INKEY$:IF F$="" THEN 690
700 COLOR 7,0:SYSTEM
100 'PLOT - LOGO, LICENSE (COLOR SYS) - SHAREWARE VERSION 2.0 -- 05/08/87
110 ' COPYRIGHT 1985,1986, 1987, Prowess, Inc.
120 CLEAR:SCREEN 1,0,0
130 CLS:KEY OFF
140 LOCATE 5,16:COLOR 1,1:PRINT "PROWESS, Inc."
150 LINE (115,40)-(177,40),1
160 LINE (115,40)-(115,90),1
170 LINE (177,40)-(177,90),1
180 LINE (118,94)-(142,94),1
190 LINE (150,94)-(174,94),1
200 CIRCLE (119,91),4,1,3.14,4.712:CIRCLE (173,91),4,1,4.71,0
210 CIRCLE (173,91),4,1,4.71,0
220 CIRCLE (141,97),4,1,0,1.57
230 CIRCLE (151,97),4,1,1.57,3.1422:PSET (146,98),1
240 PSET (146,98),1
250 LINE (118,42)-(174,92),1,B
260 PSET (146,94),1:DRAW "H2 F2 E2 G2"
270 PSET (146,93):PSET (146,92)
280 LINE (118,91.4)-(174,91.4)
290 CIRCLE (198,86),52,1,2.1,3.05
300 CIRCLE (94,86),52,1,0.1,1.05
310 CIRCLE (198,86),58,1,2.01,2.6
320 CIRCLE (94,86),58,1,0.5,1.1
330 PSET (146,65),1
340 PSET (146,48),1:DRAW "U3 D3 D3"
350 PSET (146,48),1:DRAW "H3 F3 F3"
360 PSET (146,48),1:DRAW "E3 G3 G3"
370 PSET (148,48),1:DRAW "H3 F3 F3"
380 PSET (144,48),1:DRAW "E3 G3 G3"
390 LOCATE 14,6:PRINT "Shareware for Technical Design"
400 LOCATE 15,14:PRINT "and Management"
410 LINE (5,130)-(315,165),1,B
420 LOCATE 18,17:PRINT "PLOT"
430 LOCATE 20,5:PRINT "(C) 1985,1986, 1987, Prowess, Inc."
440 LOCATE 1,1:PRINT "1003-B-v2.0"
450 LOCATE 23,7:PRINT "Press any key to continue"
460 LOCATE 21,34:F$=INKEY$:IF F$="" THEN 460
470 WIDTH 80
480 'PLIC -- Prowess, Inc. license agreement 04/28/87
490 CLS:CLEAR:SCREEN 0,0
500 LOCATE 1,28:PRINT "PLOT - LICENSE AGREEMENT"
510 LOCATE 2,20:PRINT "Copyright 1985,1986,1987 Prowess, Inc."
520 LOCATE 4,5:PRINT "This is a user supported software product. It is not public domain"
530 LOCATE 5,5:PRINT "software, nor is it free software. You are granted a limited license"
540 LOCATE 6,5:PRINT "to use this product on a trial basis. If you continue to use this"
550 LOCATE 7,5:PRINT "product, after a trial period, you must register by sending:"
560 LOCATE 9,5:PRINT " $25 (Minimum reg.) or $35 (+ $4 s/h) (Full reg.)"
570 LOCATE 10,5:PRINT " * Technical support * Technical support"
580 LOCATE 11,5:PRINT " * Informed of updates * Latest diskette supplied"
590 LOCATE 12,5:PRINT " * Printed manual"
600 LOCATE 14,18:PRINT "Texas residents, please add 7 1/4 % sales tax"
610 LOCATE 15,11:PRINT "Contact us for information concerning low cost site licenses."
620 LOCATE 17,5:PRINT "If you like the shareware concept - try before you buy - support the"
630 LOCATE 18,5:PRINT "companies that provide useful, professional quality products."
640 LOCATE 20,5:PRINT "Prowess,Inc. - 203 Lakeridge Village - Suite 102 - Dallas, TX 75238"
650 LOCATE 21,33:PRINT "(214) 349-4718"
660 LOCATE 23,26:PRINT "Press any key to continue"
670 LOCATE 23,52:F$=INKEY$:IF F$="" THEN 670
680 CHAIN "PLOTM
690 END
100 'PLOTM - PLOTTING PROGRAM MENU -- SHAREWARE VERSION - 05/07/87
110 'Copyright 1986, 1987, PROWESS, Inc.
120 KEY OFF:CLS:CLEAR:SCREEN 0,1,0
130 COLOR 3,0:LOCATE 1,25:PRINT CHR$(201)+STRING$(31,205)+CHR$(187)
140 FOR L=2 TO 3:LOCATE L,25:PRINT CHR$(186):LOCATE L,57:PRINT CHR$(186):NEXT L
150 COLOR 6,0:LOCATE 2,33:PRINT "PLOTTING PROGRAMS"
160 LOCATE 3,26:PRINT "(C) 1985,1986,1987, Prowess,Inc"
170 COLOR 3,0:LOCATE 4,25:PRINT CHR$(200)+STRING$(31,205)+CHR$(188)
180 COLOR 1,0:LOCATE 4,2:PRINT CHR$(201)+STRING$(78,205)+CHR$(187)
190 LOCATE 3,75:COLOR 7,0:PRINT "V2.5":COLOR 1,0
200 FOR L=6 TO 19
210 LOCATE L,1:PRINT CHR$(186):LOCATE L,80:PRINT CHR$(186)
220 NEXT L
230 LOCATE 19,2:PRINT CHR$(200)+STRING$(78,205)+CHR$(188):COLOR 6,0
240 '-----------------------------------menu-----------------------------------
250 LOCATE 6,38:PRINT "MENU":LOCATE 7,38:PRINT "----"
260 LOCATE 9,5:PRINT "* PLOT FUNCTION OF THE FORM y = f(x) (also find area under curve) -1"
270 LOCATE 11,5:PRINT "* PLOT IN POLAR FORMAT r = f(";CHR$(233);") or y = f(";CHR$(233);"); x = f(";CHR$(233);") FORMS ----2"
280 LOCATE 13,5:PRINT "* PLOT AND RESOLVE VECTORS ( polar or rect. inputs ) --------------3"
290 LOCATE 15,5:PRINT "* PLOT TWO SIMULTANEOUS EQUATIONS ---------------------------------4"
310 LOCATE 17,5:PRINT "* HELP ( plotting program descriptions ) -------------------------5"
320 LOCATE 19,5:PRINT "* EXIT ------------------------------------------------------------6"
330 LOCATE 21,3:PRINT "Enter selection number"
340 LOCATE 21,27:ZZ$=INKEY$:IF ZZ$="" THEN 340
350 IF VAL(ZZ$)<1 OR VAL(ZZ$)>6 THEN BEEP:GOTO 340
360 ON VAL(ZZ$) GOTO 370,380,390,400,420,430
370 RUN "IPLOT"
380 RUN "PPLOT"
390 RUN "VPLOT"
400 RUN "SPLOT"
420 RUN "HLP3"
430 CLS:CHAIN "PLIC
440 BEEP:GOTO 100
450 GOTO 100
100 'PPLOT - SHAREWARE POLAR PLOTTING PROGRAM - revision date: 05/07/87
110 'Copyright 1985,1986,1987, Prowess, Inc.
120 'THIS PROGRAM RESOLVES AND PLOTS VECTORS
130 CLS:KEY OFF:CLEAR:SCREEN 0,0
140 DIM R(51),U(51),X(51),Y(51),XC(51),YC(51)
150 COLOR 6,0:XX$=STRING$(78,32)
160 COLOR 3,0:LOCATE 1,25:PRINT CHR$(201)+STRING$(31,205)+CHR$(187)
170 FOR L=2 TO 3:LOCATE L,25:PRINT CHR$(186):LOCATE L,57:PRINT CHR$(186):NEXT L
180 LOCATE 2,35:PRINT "POLAR PLOTTING"
190 LOCATE 3,26:PRINT "(C) 1985,1986,1987 Prowess,Inc."
200 COLOR 3,0:LOCATE 4,25:PRINT CHR$(200)+STRING$(31,205)+CHR$(188)
210 COLOR 1,0:LOCATE 4,2:PRINT CHR$(201)+STRING$(78,205)+CHR$(187)
220 LOCATE 3,75:COLOR 7,0:PRINT "V2.0":COLOR 1,0
230 FOR L=6 TO 19
240 LOCATE L,1:PRINT CHR$(186):LOCATE L,80:PRINT CHR$(186)
250 NEXT L
260 LOCATE 19,2:PRINT CHR$(200)+STRING$(78,205)+CHR$(188):COLOR 6,0
270 IF SKIP=1 THEN 390
280 LOCATE 12,16:PRINT "Do you want to read the instructions? (Y/N/Q)"
290 LOCATE 12,62:K$=INKEY$:IF K$="" THEN 290
300 IF K$="Y" OR K$="y" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 2780
310 IF K$="N" OR K$="n" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 390
320 IF K$="Q" OR K$="q" THEN 2650
330 GOTO 290
340 '-----------------------clear pgm. field subroutine------------------------
350 FOR LL= 6 TO 19:LOCATE LL,3:PRINT STRING$(76,32):NEXT LL:RETURN
360 '---------------------clear message panel subroutine-----------------------
370 FOR LL=21 TO 23:LOCATE LL,3:PRINT STRING$(76,32):NEXT LL:RETURN
380 '--------------------------enter polar equation(s)-------------------------
390 COLOR 6,0:PI=3.1415926#:BIG=0:AMIN=0:AMAX=360:SKIP=0
400 LOCATE 10,10:PRINT "Polar equations of the form: r = f(";CHR$(233);")................1"
410 LOCATE 12,10:PRINT "Polar equations of the form: x = f(";CHR$(233);") and y = f(";CHR$(233);")....2"
420 LOCATE 21,3:PRINT "Enter selection number"
430 LOCATE 21,27:EE$=INKEY$:IF EE$="" THEN 430
440 IF EE$="Q" OR EE$="q" THEN 2650
450 IF VAL(EE$)<1 OR VAL(EE$)>2 THEN BEEP:GOTO 430
460 IF VAL(EE$)=1 THEN 480
470 IF VAL(EE$)=2 THEN 680
480 GOSUB 350:GOSUB 370
490 COLOR 10,0:ON ERROR GOTO 0:LOCATE 10,1
500 LOCATE 10,17:PRINT "ENTER YOUR POLAR EQUATION IN THE FORM R = f(A)"
510 LOCATE 12,10:COLOR 7,0:PRINT "EXAMPLE:"
520 LOCATE 12,19:PRINT "R = 10 * SIN(2*A)":COLOR 15,0
530 LOCATE 14,19:PRINT "R = "
540 LOCATE 14,23:LINE INPUT EQ1$
550 IF EQ1$="Q" OR EQ1$="q" THEN 2650
560 IF LEN(EQ1$)=0 THEN BEEP:GOTO 540
570 B$="2410 R = "
580 C$ = B$+EQ1$
590 '------------writes the equation string to a file called fct1.bas-----------
600 OPEN "O",#1,"FCT1.BAS"
610 PRINT #1,C$
620 CLOSE #1
630 '-----------merges fct1.bas with this pgm. and continues execution ---------
640 CHAIN MERGE "FCT1.BAS",650,ALL
650 GOTO 1010
660 GOSUB 350:GOSUB 370
670 '--------------------------enter parametric form--------------------------
680 GOSUB 350:GOSUB 370
690 LOCATE 6,17:COLOR 7,0:PRINT "You will enter two equations: Y = f("CHR$(233);") and X = f(";CHR$(233);")"
700 ON ERROR GOTO 0
710 LOCATE 8,5:COLOR 6,0:PRINT "Enter the 1st equation in the form Y = f(A) & press 'RETURN'"
720 LOCATE 10,10:COLOR 7,0:PRINT "EXAMPLE: Y = 5 * SIN(2*A)"
730 LOCATE 12,20:COLOR 15,0:PRINT "Y = "
740 LOCATE 12,24:LINE INPUT EQ2$
750 D$ = "2430 Y = "
760 IF EQ2$="Q" OR EQ2$="q" THEN BEEP:GOTO 2650
770 IF LEN(EQ2$)=0 THEN BEEP:GOTO 740
780 E$ = D$+EQ2$
790 '----------------writes 1st equation to file called fct2.bas --------------
800 OPEN "O",#2,"FCT2.BAS"
810 PRINT #2,E$
820 CLOSE #2:COLOR 10,0
830 IF FLAG=3 THEN FLAG=0:CHAIN MERGE "FCT2.BAS",850,ALL:GOTO 1140
840 '----------------------------enter 2nd function--------------------------
850 LOCATE 14,5:COLOR 6,0:PRINT "Enter the 2nd equation in the form x = f(A) & press 'RETURN'"
860 LOCATE 16,10:COLOR 7,0:PRINT "EXAMPLE: X = COS(A/4)"
870 LOCATE 18,20:COLOR 15,0:PRINT "X ="
880 G$ = "2450 X = "
890 LOCATE 18,24:COLOR 15,0:LINE INPUT EQ3$
900 IF EQ3$="Q" OR EQ3$="q" THEN 2650
910 IF LEN(EQ3$)=0 THEN BEEP:GOTO 890
920 F$ = G$+EQ3$
930 '-----------------writes 2nd equation to a file called fct3.bas------------
940 OPEN "O",#3,"FCT3.BAS"
950 PRINT #3,F$
960 CLOSE #3
970 '-----merges fct2.bas & fct3.bas with this pgm and continues execution-----
980 CHAIN MERGE "FCT2.BAS",990,ALL
990 CHAIN MERGE "FCT3.BAS",1000,ALL
1000 IF VAL(EE$)=1 THEN 1050 ELSE 1150
1010 '--------------finds largest value of r for scaling------------------------
1020 GOSUB 350:GOSUB 370:ON ERROR GOTO 2570
1030 LOCATE 12,22:COLOR 28,0:PRINT "FINDING LARGEST VALUES FOR SCALING"
1040 LOCATE 23,80:RMAX=0
1050 FOR A=AMIN*PI/180 TO AMAX*PI/180 STEP 2*PI/180
1060 GOSUB 2410
1070 YP=R*SIN(A)
1080 XP=R*COS(A)
1090 IF R>RMAX THEN RMAX=R
1100 IF ABS(YP)>BIG THEN BIG=ABS(YP)
1110 IF ABS(XP)>BIG THEN BIG=ABS(XP)
1120 NEXT A
1130 GOTO 1280
1140 '----------------finds largest valueof y and x for scaling---------------
1150 GOSUB 350:GOSUB 370::ON ERROR GOTO 2570
1160 LOCATE 12,22:COLOR 28,0:PRINT "FINDING LARGEST VALUES FOR SCALING"
1170 LOCATE 24,1:RMAX=0
1180 FOR A=AMIN*PI/180 TO AMAX*PI/180 STEP 2*PI/180
1190 GOSUB 2430
1200 IF ABS(Y)>BIG THEN BIG=ABS(Y)
1210 GOSUB 2450
1220 IF ABS(X)>BIG THEN BIG=ABS(X)
1230 R=SQR(X^2+Y^2)
1240 IF R>RMAX THEN RMAX=R
1250 NEXT A
1260 GOTO 1280
1270 '---------------------------set-up plot field----------------------------
1280 CLS:SCREEN 2,0,0
1290 FOR ANG=0 TO 6.2831853# STEP 0.785398163#
1300 J=ANG
1310 PSET (311.2,100),1
1320 LINE -(311.2+(360*COS(J)),100+(133.3*SIN(J))),0
1330 NEXT ANG
1340 LINE (106.7,100)-(511.2,100),1,,&HAAAA '-draws horizontal axis--------
1350 LINE (311.2,22.2)-(311.2,183.3),1,,&HAAAA '-draws vertical axis---------
1360 LOCATE 13,64
1370 PRINT "0 (2*PI)"
1380 LOCATE 3,35
1390 PRINT "90 (PI/2)"
1400 LOCATE 13,8
1410 PRINT "180 (PI)"
1420 LOCATE 23,35
1430 PRINT "270 (3*PI/2)"
1440 IF VAL(EE$) = 2 THEN 1700
1450 '------------------plot routine for the r=f(ang) case------------------
1460 A=AMIN*PI/180
1470 GOSUB 2410
1480 YP=R*SIN(A)*70/BIG
1490 XP=R*COS(A)*168/BIG
1500 LOCATE 23,1:PRINT "PLOTTING"
1510 PSET (311.2+XP,100-YP) '----sets 1st point for r=f(a)---------
1520 FOR A=AMIN*PI/180 TO AMAX*PI/180 STEP 2*PI/180
1530 GOSUB 2410
1540 YP=R*SIN(A)*70/BIG
1550 XP=R*COS(A)*168/BIG
1560 LINE -(311.2 + XP,100-YP) '----------draws graph of r=f(a)--------
1570 NEXT A
1580 OPEN "I",#1,"FCT1.BAS"
1590 INPUT #1,J$
1600 LOCATE 1,1
1610 PRINT "GRAPH OF: ";MID$(J$,5)
1620 CLOSE #1
1630 LOCATE 4,60:PRINT "R(MAX) = ";RMAX
1640 LOCATE 23,1:PRINT " "
1650 LOCATE 20,70:PRINT "PRESS ANY"
1660 LOCATE 21,70:PRINT " KEY":FOR I=1 TO 2000:NEXT I
1670 LOCATE 20,70:PRINT " ":LOCATE 21,70:PRINT " "
1680 LOCATE 23,74:A$=INKEY$:IF A$="" THEN 1680
1690 GOTO 1970
1700 '---------------plot routine for the y=f(ang),x=f(ang) case-------------
1710 A=AMIN*PI/180
1720 GOSUB 2430
1730 GOSUB 2450
1740 LOCATE 23,1:PRINT "PLOTTING"
1750 PSET (311.2+((X*168)/BIG),100-(Y*70/BIG)) '---sets 1st point (x & y)---
1760 FOR A=AMIN*PI/180 TO AMAX*PI/180 STEP 2*PI/180
1770 GOSUB 2430
1780 GOSUB 2450
1790 LINE -(311.2+(X*168/BIG),100-(Y*70/BIG)) 'plots x-y =f(a) graph----
1800 NEXT A
1810 OPEN "I",#2,"FCT2.BAS"
1820 OPEN "I",#3,"FCT3.BAS"
1830 INPUT #2,K$
1840 INPUT #3,L$
1850 LOCATE 1,1
1860 PRINT "GRAPH OF: ";MID$(K$,5)
1870 LOCATE 2,11
1880 PRINT MID$(L$,5)
1890 CLOSE #3
1900 CLOSE #2
1910 LOCATE 4,60:PRINT "R(MAX) = ";RMAX
1920 LOCATE 23,1:PRINT " "
1930 LOCATE 20,70:PRINT "PRESS ANY"
1940 LOCATE 21,70:PRINT " KEY":FOR I=1 TO 2000:NEXT I
1950 LOCATE 20,70:PRINT " ":LOCATE 21,70:PRINT " "
1960 LOCATE 23,74:A$=INKEY$:IF A$="" THEN 1960
1970 CLS '-------------header for tabular list--------------
1980 SCREEN 0,0:COLOR 6,0:SKIP=1
1990 LOCATE 10,23:PRINT "DISPLAY TABULAR VALUES ..........1"
2000 LOCATE 12,23:PRINT "START OVER ......................2"
2010 LOCATE 14,23:PRINT "EXIT MENU .......................3"
2020 LOCATE 21,29:PRINT "Enter selection number"
2030 LOCATE 21,53:AA$=INKEY$:IF AA$="" THEN 2030
2040 IF VAL(AA$)<1 OR VAL(AA$)>3 THEN BEEP:GOTO 2030
2050 ON VAL(AA$) GOTO 2070,2060,2650
2060 CLS:GOTO 150
2070 CLS '--routine for displaying calculated values-------
2080 T=-2:ON ERROR GOTO 0
2090 Z=18:CNT=0:SCREEN 0,1,0
2100 COLOR 6,0:PRINT
2110 'PAGE HEADER
2120 LOCATE 2,1
2130 PRINT " POINT ANGLE ANGLE R X Y"
2140 PRINT " # (DEG) (RAD)"
2150 PRINT :PRINT:COLOR 7,0
2160 FOR Q=1 TO 18
2170 T=T+2
2180 CNT=CNT+1
2190 A=T*PI/180
2200 IF VAL(EE$)=1 THEN GOSUB 2470 ELSE GOSUB 2520
2210 LOCATE Q+4,1:PRINT " ";CNT," ";T
2220 LOCATE Q+4,23:PRINT USING "#####.####";A,R,X,Y
2230 IF T>=360 THEN FLAG=1:GOTO 2280
2240 NEXT Q
2250 COLOR 6,0:LOCATE 19,65:PRINT "PRESS ANY KEY TO"
2260 LOCATE 20,65:PRINT "CONTINUE OR 'Q'"
2270 LOCATE 21,65:PRINT "FOR NEXT MENU"
2280 LOCATE 22,69:A$=INKEY$:IF A$="" THEN 2280
2290 IF FLAG =1 THEN FLAG=0:CLS:GOTO 2320
2300 IF A$="Q" OR A$="q" THEN 2320
2310 CLS:Z=Z+18:GOTO 2100
2320 CLS:COLOR 6,0:SKIP=1
2330 LOCATE 10,23:PRINT "ENTER A NEW POLAR FUNCTION ......1"
2340 LOCATE 12,23:PRINT "EXIT MENU .......................2"
2350 LOCATE 21,29:PRINT "Enter selection number"
2360 LOCATE 21,53:GG$=INKEY$:IF GG$="" THEN 2360
2370 IF VAL(GG$)<1 OR VAL(GG$)>2 THEN 2360
2380 ON VAL(GG$) GOTO 2390,2650
2390 GOSUB 350:GOSUB 370:GOTO 150
2400 '-------------------------------user functions--------------------------
2410 R = SIN(3*A)
2420 RETURN
2430 Y = 5*SIN(2*A)
2440 RETURN
2450 X = 3*COS(3*A)
2460 RETURN
2470 '-----------------subroutine for calculating r=f(a) values--------------
2480 GOSUB 2410
2490 X=R*COS(A)
2500 Y=R*SIN(A)
2510 RETURN
2520 '-------------subroutine for calculating x=f(a) & y=f(a) values---------
2530 GOSUB 2430
2540 GOSUB 2450
2550 R=SQR(X^2+Y^2)
2560 RETURN
2570 '-------------------------------error traps-------------------------------
2580 IF ERR=2 AND ERL=2410 THEN GOSUB 350:COLOR 15,4:LOCATE 21,3:PRINT "YOUR EQUATION R = ";EQ1$:LOCATE 21,21+LEN(EQ1$):PRINT " HAS A SYNTAX ERROR - PLEASE FIX.":RESUME 490
2590 IF ERR=2 AND ERL=2430 THEN GOSUB 350:COLOR 15,4:LOCATE 21,3:PRINT "YOUR EQUATION Y = ";EQ2$:LOCATE 21,21+LEN(EQ2$):PRINT " HAS A SYNTAX ERROR - PLEASE FIX.":FLAG=3:COLOR 7,0:RESUME 690
2600 IF ERR=2 AND ERL=2450 THEN GOSUB 350:COLOR 15,4:LOCATE 21,3:PRINT "YOUR EQUATION X = ";EQ3$:LOCATE 21,21+LEN(EQ3$):PRINT " HAS A SYNTAX ERROR - PLEASE FIX.":COLOR 7,0:RESUME 830
2610 IF (ERR=11 OR ERR=6) AND (ERL=1060 OR ERL=1190 OR ERL=1210) THEN GOSUB 350:COLOR 15,4:LOCATE 21,3:PRINT "DIVISION BY ZERO OCCURED-CHECK YOUR EQUATION AND START OVER":COLOR 7,0:RESUME 100
2620 LOCATE 21,3:COLOR 15,4:PRINT "---------------FATAL ERROR START OVER------------":FOR I=1 TO 2000:NEXT I:CLS:COLOR 6,0:GOTO 100
2630 RESUME 100
2640 '-----------------------------------quit---------------------------------
2650 GOSUB 370:GOSUB 350:COLOR 6,0
2660 LOCATE 8,25:PRINT "RESTART THIS PROGRAM --------------1"
2670 LOCATE 10,25:PRINT "RETURN TO PLOT MENU ---------------2"
2680 LOCATE 12,25:PRINT "EXIT ------------------------------3"
2690 LOCATE 21,29:PRINT "Enter selection number"
2700 LOCATE 21,53:Q$=INKEY$:IF Q$="" THEN 2700
2710 QT=VAL(Q$)
2720 IF QT<1 OR QT>3 THEN BEEP:GOTO 2700
2730 IF QT=1 THEN 100
2740 IF QT=2 THEN CLS:CHAIN "PLOTM
2750 IF QT=3 THEN CLS:CHAIN "PLIC
2760 BEEP:GOTO 2700
2770 '-----------------------------------help----------------------------------
2780 GOSUB 370:GOSUB 350
2790 LOCATE 6,3:PRINT "* This program plots polar functions. It will handle both standard forms"
2800 LOCATE 7,5:PRINT "(R = f(angle)) and parametric forms (Y = f(angle) and X = f(angle)."
2810 LOCATE 9,3:PRINT "* The value(s) of your function will be calculated from 0 to 360 degrees,"
2820 LOCATE 10,5:PRINT "in 2 degree increments, and plotted."
2830 LOCATE 12,3:PRINT "* Standard format (R = f(angle)) - The length of a radius (R), from 0,0,"
2840 LOCATE 13,5:PRINT "is expressed in terms of the angle (A). Example: R = A generates a"
2850 LOCATE 14,5:PRINT "spiral; R = SIN(3*A) generates a three-leaf rose."
2860 LOCATE 16,3:PRINT "* Parametric format (Y = f(angle) & X = f(angle)) - The values of Y and X"
2870 LOCATE 17,5:PRINT "are independently expressed in terms of the angle. Example: Y = 5*SIN(2*A)"
2880 LOCATE 18,5:PRINT "and X = 3*COS(3*A) - generates a lissajous pattern."
2890 LOCATE 21,3:PRINT "Press any key to continue"
2900 LOCATE 21,30:K$=INKEY$:IF K$="" THEN 2900
2910 IF K$="Q" OR K$="q" THEN CLS:GOTO 2650
2920 GOSUB 370:GOSUB 350
2930 LOCATE 6,3:PRINT "* This program features full autoscaling, e.g. no matter how large a value"
2940 LOCATE 7,5:PRINT "is calculated (within the computer's capability), it will 'fit' within"
2950 LOCATE 8,5:PRINT "the plot field. This can create a problem if both very large and very"
2960 LOCATE 9,5:PRINT "small values are generated. Because the plot field is scalled to handle"
2970 LOCATE 10,5:PRINT "the largest value, plotting details of the smaller values may be lost"
2980 LOCATE 11,5:PRINT "because of the finite resolution of the screen."
2990 LOCATE 13,3:PRINT "* After plotting your function, you may review all of the plotting points"
3000 LOCATE 14,5:PRINT "in tabular format. Regardless of the polar format that you used, the"
3010 LOCATE 15,5:PRINT "tabular display shows the value of R, X and Y for each two-degree"
3020 LOCATE 16,5:PRINT "increment."
3030 LOCATE 18,3:PRINT "* The IBM-PC does not allow error trapping of 'division by zero'. If your"
3040 LOCATE 19,5:PRINT "function accidently tries to divide by zero, you will have to start over!"
3050 LOCATE 21,3:PRINT "Press any key to start
3060 LOCATE 21,30:K$=INKEY$:IF K$="" THEN 3060
3070 GOSUB 350:GOSUB 370:GOTO 390
Readme.doc
PLOT -- DOCUMENTATION
PLOT-- LICENSE AGREEMENT
Copyright 1985,1986,1987, Prowess, Inc.
This is a user supported software product. It is not public domain
software, nor is it free software. You are granted a limited license
to use this product on a trial basis. If you continue to use this
product after a trial period, you are expected to register by sending:
$25 (Minimum reg.) or $35 (+ $4 S/H) (Full reg.)
* Technical support * Technical support
* Update notification * Latest diskette
* Printed manual
Texas residents, please add 7 1/4 % sales tax
Contact us for information concerning low cost site licenses.
If you like the shareware concept - try before you buy - please support the
companies that provide useful, professional quality products.
Prowess,Inc. - 203 Lakeridge Village - Suite 102 - Dallas 75238
(214) 349-4718
You are encouraged to distribute copies of this software providing
that you make no modifications to any of the files and that the copy
that you distribute, regardless of the means of distribution, contains
all files that came on your product diskette.
DISCLAIMER
----------
This software product and associated instructional material are sold
"as is" without warranty as to their performance, accuracy, freedom
from error, merchantability or fitness for any particular purpose.
The entire risk as to the performance of the software is assumed by
the user.
Under no circumstances, whether in contract or tort, shall Prowess,
Inc. be liable for indirect, consequential, special, or exemplary
damages such as, but not limited to, loss of revenue or anticipated
profits, lost business or other economic loss, arising out of, or
in connection with this agreement, or your use, or inability to use
any program or sub-program associated with this software product.
------------------------------------------------------------
CONTENTS
* File descriptions
* Minimum system requirements
* Introduction
* Working diskette preparation
* Loading/running the plot programs
* General information about these programs
* Other Prowess, Inc. shareware products
----------------------------------------------------------------
FILE DESCRIPTIONS
The following files are contained on your product diskette:
README.DOC This file. Documentation for PLOT
HLP3.BAS Help file accessed from PLOTM.BAS. Provides
the most detailed information on all plot
programs.
IPLOT.BAS Program for plotting Y=f(X) type equations.
It also provide integration capability to
find the area under a curve.
SPLOT.BAS Program for plotting two simultaneous
equations.
PPLOT.BAS Program for polar plotting.
VPLOT.BAS Program for vector plotting.
PLOTM.BAS Contains the plot menu. Calls the available
plotting programs and help file.
PLOT.BAT A batch file which loads the opening screen
files via BASIC(A).
PLOG.BAS Opening screen files - logo, etc. Calls
PLOTM.BAS.
FUNCT.BAS Data files containing user defined
FCT1.BAS equations. These files are automatically
FCT2.BAS generated when you use the plotting
FCT3.BAS programs. These file are generated as a
result of running the plotting programs.
They may or may not be present on your
product diskette.
PLIC.BAS License statement.
--------------------------------------------------------
MINIMUM SYSTEM REQUIREMENTS
* IBM-PC or 100% compatible * CGA graphics
* BASICA (or equivalent, GW-BASIC, etc.) * 64K RAM
* DOS 2.1 or above * 1 Floppy drive
-------------------------------------------
INTRODUCTION
This program set is designed to provide a quick, easy to use, set of tools
for technical plotting. It will handle rectilinear, polar and vector
plotting. After plotting, you may review a tabulation of all plotted points
(except for the vector program).
These programs were written in BASICA to take advantage of a unique BASICA
capability - the CHAIN MERGE feature. When you enter an equation to be
plotted, you may enter it just as you would write it on paper. The
program accepts your equation as a string variable, appends your equation
to a string that defines a line number then writes the whole string to a
file (FCT1.BAS for example). This file is then CHAIN MERGED with the
program itself and your equation becomes an executable line of code,
complete with a line number in the program. Unfortunately, existing
compilers can not compile the CHAIN MERGE statement.
We felt that being able to enter the equation in standard equation format was
so important that we have released these programs in BASIC(A). No other
language that we know of allows a chain-merge-like function and writing the
function in another language would be a formidable task. Chalk one up for
BASIC! Although not extremely fast, we think that you will find the plotting
speed of these programs satisfactory.
SPECIAL NOTE: Because of the technique mentioned above, you will render
these programs INOPERATIVE IF YOU RENUMBER THE LINES !!!
There is a master help file accessable from the main menu (HLP3.BAS). It is
a separate program that describes each program in detail. It is your best
source of information about program specifics.
In addition to HLP3.BAS, each program contains a brief help (or
instruction) section for quick reference.
-----------------------------------------------
MAKE A WORKING DISKETTE
Protect your investment; make a working copy of your PLOT product diskette
now!
1. Format a new diskette (with the system option)
Example: FORMAT B:/S
(Assumes system diskette in drive A and new diskette in
drive B.)
2. Copy your BASICA.COM to the working diskette.
COPY BASICA.COM B:
If your system uses a different advanced BASIC, you will
need to copy it to the working disk AND CHANGE ITS NAME
TO BASICA.XXX (the XXX refers to its original extension-
probably .EXE)
Examples: COPY GW-BASIC.EXE B:BASICA.EXE
3. Copy all files from your product diskette to the newly
formatted diskette.
Example: COPY *.* B:
(Assumes product diskette in drive A and formatted diskette
in drive B.)
4. Label your working diskette PLOT.
5. Put your PLOT product diskette in a safe place.
NOTE: If you are using a hard disk, set up a separate directory
for PLOT and start with step #2 above, substituting C: for
B:.
------------------------------------------------------------
LOADING AND RUNNING THE PLOT PROGRAMS
Put your working diskette in drive A (or get into the PLOT directory if
you are using a hard disk). Enter:
PLOT <return>
This will cause PLOT.BAT to execute and you should see the logo screen
appear.
NOTE: PLOT.BAT expects to find a program called BASIC (.COM
or .EXE). If you forgot to change the name of your BASICA
(or other advanced basic clone) to BASIC, you will have a
problem. Either ROM basic will be loaded or you will get a
"file not found" error.
Pressing any key from the logo screen will display the Prowess, Inc.
license statement. Pressing any key at this point will call the main menu.
From the main menu, you may select any of the plotting programs. We strongly
suggest that you review the main help file (accessable from the main menu)
before operating the programs.
NOTE: If your DOS operating system contains a utility called GRAPHICS.COM
(DOS 2.1 and greater), you may want to load it prior to loading the PLOT
programs. With GRAPHICS.COM memory resident, you can print the graphs
produced by the PLOT package on most wire dot printers by simply pressing
<shift-prtSc>. You can load GRAPHICS.COM by entering: GRAPHICS <return> from
your system disk.
-------------------------------------------------
GENERAL INFORMATION
BASIC is rather unforgiving about comma errors; if you enter a period
instead of a comma or fail to put a comma where the program is expecting
one, you will see a 'REDO FROM START' error message. If this occurs, you
can usually recover by re-entering the data correctly AT THE CURRENT
CURSOR POSITION. If you try to move the cursor before correcting your
entry, you'll make things worse! In most cases the messy screen will be
redrawn when the function is plotted. Specifying the range of X over
which to plot, the range of X over which to integrate, and inputting
vectors (in both rectangular and polar formats) require entries in the
form of M,N. The comma is a requirement!!
BASICA does not allow error trapping 'division by zero' and 'overflow'
(a floating point overflow). Some BASICA equivalents do allow trapping
these errors. Error trapping statements exist in the programs to detect
these errors; however, they won't operate on the IBM-PC. They will work
properly on some clones that use a different advanced BASIC. If you get
either of these error messages, from the system, you will have to restart
the program. Most syntax errors are trapped and the error traps should
work.
Entering a single 'Q' (for 'quit') and pressing return, at most user inputs,
will halt the current operation and display the exit screen.
------------------------------------------------------
If you like this program set, try our other Prowess , Inc. shareware
tools:
* Financial programs (interest, annuities, amortization, etc.)
* Pro-menu (an elegant full featured PC menu system-one data file)
* Units (easy, fast technical units conversions and more)
* Circuit design calculations (DC circuits, RC, RL, Pw., Energy, etc.)
* AC circuit design (great graphics,- RF design, Op amps, Xformers, BW)
* Magnetics design (great graphics - linear motors, mag. force, etc.)
* Automated Planning Form (project planning tools - Gantt-charts, etc.)
* Math utilities (equation solving, lines, factors, intersections, etc.)
* Geometry for design (great graphics - chords, arcs, triangles, etc.)
* Dos-pro (a special menu for executing DOS commands from plain English)
100 'SPLOT - SHAREWARE SIM. EQ. PLOTTING PROGRAM - revision date: 05/08/87
110 'Copyright 1985,1986,1987, Prowess, Inc.
120 'This progem plots simultaneous equations
130 CLS:KEY OFF:CLEAR:SCREEN 0,0,0:COLOR 6,0:XX$=STRING$(78,32)
140 DIM R(51),U(51),X(51),Y(51),XC(51),YC(51)
150 COLOR 3,0:LOCATE 1,25:PRINT CHR$(201)+STRING$(31,205)+CHR$(187)
160 FOR L=2 TO 3:LOCATE L,25:PRINT CHR$(186):LOCATE L,57:PRINT CHR$(186):NEXT L
170 LOCATE 2,28:PRINT "PLOT SIMULTANEOUS EQUATIONS"
180 LOCATE 3,26:PRINT "(C) 1985,1986,1987 Prowess,Inc."
190 COLOR 3,0:LOCATE 4,25:PRINT CHR$(200)+STRING$(31,205)+CHR$(188)
200 COLOR 1,0:LOCATE 4,2:PRINT CHR$(201)+STRING$(78,205)+CHR$(187)
210 LOCATE 3,75:COLOR 7,0:PRINT "V2.0":COLOR 1,0
220 FOR L=6 TO 19
230 LOCATE L,1:PRINT CHR$(186):LOCATE L,80:PRINT CHR$(186)
240 NEXT L
250 LOCATE 19,2:PRINT CHR$(200)+STRING$(78,205)+CHR$(188):COLOR 6,0
260 IF SKIP=1 THEN 670
270 IF SKIP=2 THEN 410
280 LOCATE 12,16:PRINT "Do you want to read the instructions? (Y/N/Q)"
290 LOCATE 12,62:K$=INKEY$:IF K$="" THEN 290
300 IF K$="Y" OR K$="y" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 2420
310 IF K$="N" OR K$="n" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 380
320 IF K$="Q" OR K$="q" THEN 2290
330 GOTO 290
340 '--------------------------clear field subroutines------------------------
350 FOR LL=6 TO 19:LOCATE LL,3:PRINT STRING$(76,32):NEXT LL
360 FOR LL=21 TO 23:LOCATE LL,3:PRINT STRING$(76,32):NEXT LL:RETURN
370 '-------------------------------------------------------------------------
380 LOCATE 12,3:PRINT STRING$(75,32)
390 IF FLAG=>1 THEN LOCATE 21,3:PRINT "Your previous equations were:":LOCATE 22,3:PRINT "Y = ";EQ1$;" and A = ";EQ2$
392 IF FLAG=1 OR FLAG=3 THEN 410
394 IF FLAG=2 OR FLAG=4 THEN 500
400 '------------------------inputs two user defined equations-----------------
410 LOCATE 6,3:PRINT "Enter the first equation in the form: y = f(x)"
420 LOCATE 8,10:COLOR 7,0:PRINT "Example: Y = X^3 -(2*X^2) + X - 10"
430 W$ = "2170 Y = ":LOCATE 10,19:COLOR 15,0:PRINT "Y = ":LOCATE 10,24
440 LINE INPUT EQ1$:IF LEN(EQ1$)=0 THEN BEEP:GOTO 440 'inputs user string-----
450 S$ = W$+EQ1$ 'adds correct line # to 1st equation string------
460 OPEN "O",#1,"FCT1.BAS" 'writes 1st equation to the file fct1.bas--------
470 PRINT #1,S$
480 CLOSE #1
490 IF FLAG=1 OR FLAG=3 THEN 620
500 LOCATE 14,1:COLOR 6,0
510 LOCATE 14,3:PRINT "Enter the second equation in the form A = f(B)"
520 COLOR 7,0
530 LOCATE 16,10:PRINT "EXAMPLE: A = 2*EXP(-SIN(B))"
540 LOCATE 18,19:COLOR 15,0:PRINT "A = ":LOCATE 18,24
550 Q$ = "2190 A = "
560 COLOR 15,0:LINE INPUT EQ2$:IF LEN(EQ2$)=0 THEN BEEP:GOTO 560 'inputs 2nd user string-
570 SS$ = Q$+EQ2$ 'adds correct line# to 2nd equation string--------
580 OPEN "O",#2,"FCT2.BAS" 'writes 2nd equation to the file fct2.bas--------
590 PRINT #2,SS$
600 CLOSE #2
610 ' -------------merges fct1.bas and fct2.bas with this pgm ------------------
620 CHAIN MERGE "FCT1.BAS",630,ALL
630 IF FLAG=1 THEN FLAG =0:GOTO 770
640 CHAIN MERGE "FCT2.BAS",660,ALL
650 '---------------------user defines plotting range of x-axis-----------------
660 IF FLAG=1 OR FLAG=2 THEN 770
670 GOSUB 350
680 LOCATE 8,20:COLOR 14,0:PRINT "NOTE: XMIN must be smaller than XMAX !!!"
690 LOCATE 13,3:COLOR 7,0:PRINT "The X-axis will be scaled + and - whichever (Xmen or Xmax) has the largest"
700 LOCATE 14,3:PRINT "absolute value."
710 LOCATE 16,3:PRINT "Example: If you wish to plot the functions from X = -15 to X = +5, you"
720 LOCATE 17,3:PRINT "would enter -15,5. The axis would run from -15 to +15 and the function"
730 LOCATE 18,3:PRINT "would be plotted from X = -15 to X = 5, as you requested."
740 LOCATE 21,3:COLOR 6,0:INPUT "Enter RANGE of X over which to plot. (Xmin,Xmax) ",XMIN,XMAX
750 IF XMIN>XMAX THEN BEEP:LOCATE 21,52:PRINT " ":GOTO 740
760 '--------evaluates both functions and finds largest value of y and a -------
770 FLAG=0
780 GOSUB 350:ON ERROR GOTO 2210:COLOR 28,0:LOCATE 12,17
790 PRINT "FINDING LARGEST VALUES OF Y AND A FOR SCALING"
800 LOCATE 23,1
810 PRINT
820 INC = (XMAX-XMIN)/199 'sets up plotting increment of x -------------
830 X = XMIN:YBIG=0
840 B = XMIN
850 ON ERROR GOTO 2210
860 FOR X=XMIN TO XMAX STEP INC 'finds biggest value of y-----------
870 GOSUB 2170
880 IF ABS(Y)>YBIG THEN YBIG = ABS(Y)
890 NEXT X
900 FOR B=XMIN TO XMAX STEP INC:ON ERROR GOTO 2210 'finds biggest value of a ---
910 GOSUB 2190
920 IF ABS(A)>YBIG THEN YBIG = ABS(A) 'sets YBIG equal to largest y or a--
930 NEXT B
940 IF ABS(XMIN)>ABS(XMAX) THEN XBIG=ABS(XMIN) ELSE XBIG=ABS(XMAX)
950 '---------------draws and labels plot field----------------------
960 BEEP:SCREEN 2,,0,0
970 CLS
980 LINE (137,9.3)-(493,157),7,B 'draws graph field ---------
990 FOR I=7.38 TO 73.8 STEP 7.38
1000 LINE (315+(I/0.417),9.3)-(315+(I/0.417),157),7,,&HAAAA
1010 LINE (315-(I/0.417),9.3)-(315-(I/0.417),157),7,,&HAAAA
1020 LINE (137,83.2+I)-(493,83.2+I),7,,&HAAAA
1030 LINE (137,83.2-I)-(493,83.2-I),7,,&HAAAA
1040 NEXT I
1050 LINE (315,9.3)-(315,157),7 'draws vertical axis -----------------
1060 LINE (137,83.2)-(493,83.2),7 'draws horizontal axis ---------------
1070 ' -------------------prints axis labels, etc. ---------------------------
1080 LOCATE 1,40
1090 PRINT "Y"
1100 LOCATE 11,64
1110 PRINT "X"
1120 LOCATE 2,64
1130 IF YBIG<=0 THEN 1150
1140 PRINT USING "+#######.###";YBIG:GOTO 1160
1150 PRINT USING "+#.####";YBIG:
1160 LOCATE 20,65
1170 IF YBIG#<=0 THEN 1190
1180 PRINT USING "#######.###";-YBIG:GOTO 1200
1190 PRINT USING "#.####";-YBIG
1200 LOCATE 20,65:PRINT " "
1210 LOCATE 21,11
1220 IF XBIG<=0 THEN 1240
1230 PRINT USING "#######.###";-XBIG:GOTO 1250
1240 PRINT USING "#.####";-XBIG
1250 LOCATE 21,11:PRINT " "
1260 LOCATE 21,56
1270 IF XBIG<=0 THEN 1290
1280 PRINT USING "+#######.###";XBIG:GOTO 1300
1290 PRINT USING "+#.####";XBIG
1300 LOCATE 21,40
1310 PRINT "0"
1320 LOCATE 11,15
1330 PRINT "0"
1340 '-------------plot routine for both equations------------------
1350 X=XMIN:B=XMIN:U$=STRING$(80,32) 'initializes x and b to same smallest value-
1360 LOCATE 1,1:PRINT "PLOTTING":GOSUB 2170
1370 PSET ((315+(XMIN*177/XBIG)),(83.2-(Y*73.8/YBIG))) 'sets 1st plot pt.---
1380 FOR X=X+INC TO XMAX STEP INC 'plots 1st equation-----
1390 GOSUB 2170
1400 LINE -((315+(X*177/XBIG)),(83.2-(Y*73.8/YBIG))),7
1410 NEXT X
1420 GOSUB 2190
1430 PSET ((315+(B*177/XBIG)),(83.2-(A*73.8/YBIG))) 'sets 1st pt of 2nd eq.--
1440 FOR B=B+INC TO XMAX STEP INC 'plots 2nd equation -----
1450 GOSUB 2190
1460 LINE -((315+(B*177/XBIG)),(83.2-(A*73.8/YBIG))),7,,&HAAAA
1470 NEXT B
1480 LOCATE 1,1:PRINT " ":LOCATE 22,1:PRINT U$:LOCATE 23,1
1490 LOCATE 23,1:PRINT "GRAPH OF:"
1500 OPEN "I",#1,"FCT1.BAS"
1510 INPUT #1,T$
1520 CLOSE #1
1530 OPEN "I",#2,"FCT2.BAS"
1540 INPUT #2,Q$
1550 CLOSE #2
1560 LOCATE 23,11
1570 PRINT MID$(T$,5);" AND ";MID$(Q$,5):LOCATE 3,1:PRINT "PRESS ANY KEY":LOCATE 4,1:PRINT "TO CONTINUE":FOR I=1 TO 2000:NEXT I
1580 LOCATE 3,1:PRINT " ":LOCATE 4,1:PRINT " "
1590 LOCATE 23,78:A$=INKEY$:IF A$="" THEN 1590
1600 SCREEN 0,1,0:CLS:COLOR 6,0
1610 LOCATE 10,1
1620 PRINT " DISPLAY TABULATED VALUES OF X, Y AND A...............1"
1630 PRINT
1640 PRINT " ENTER NEW RANGE OF X ................................2"
1650 PRINT
1660 PRINT " INPUT TWO NEW FUNCTIONS .............................3"
1670 PRINT
1680 PRINT " EXIT ................................................4"
1690 PRINT
1700 PRINT " MAKE SELECTION "
1710 LOCATE 18,46:SS$=INKEY$:IF SS$="" OR VAL(SS$)<1 OR VAL(SS$)>4 THEN 1710
1720 ON VAL(SS$) GOTO 1750,1730,1740,2290
1730 SKIP=1:GOSUB 350:GOTO 150
1740 SKIP=2:GOSUB 350:GOTO 150
1750 '---------------routine for listing calculated values --------------------
1760 CLS:X=XMIN-INC:COLOR 10,0
1770 PRINT " POINT FOR EQ.#1 EQ.#2"
1780 PRINT " # X & B Y A"
1790 LOCATE 18,68:COLOR 12,0:PRINT "PRESS ANY KEY"
1800 LOCATE 19,68:PRINT " TO CONTINUE"
1810 LOCATE 20,71:PRINT "OR 'Q'"
1820 LOCATE 21,68:PRINT "FOR NEXT MENU"
1830 COLOR 7,0:J=4:K=2:L=1
1840 FOR I=3 TO 22
1850 X=X+INC:B=X
1860 GOSUB 2170:GOSUB 2190
1870 LOCATE I,3:PRINT L
1880 'LIMIT DISPLAY DIGITS FOR SINGLE PRECISION
1890 LOCATE I,11:PRINT USING "#######.####";X
1900 LOCATE I,31:PRINT USING "#######.####";Y
1910 LOCATE I,51:PRINT USING "#######.####";A
1920 L=L+1
1930 IF L=201 THEN 1990
1940 NEXT I
1950 FLAG=0
1960 LOCATE 23,74:A$=INKEY$:IF A$="" THEN 1960
1970 IF A$="Q" OR A$="q" THEN CLS:GOTO 2010
1980 IF L<200 GOTO 1840
1990 LOCATE 23,74:A$=INKEY$:IF A$="" THEN 1990
2000 CLS
2010 LOCATE 10,1:COLOR 6,0
2020 LOCATE 10,16:PRINT "REVIEW TABULAR VALUES .........................1"
2030 LOCATE 12,16:PRINT "CHANGE RANGE OF X FOR PRESENT FUNCTIONS .......2"
2040 LOCATE 14,16:PRINT "INPUT TWO NEW FUNCTIONS .......................3"
2050 LOCATE 16,16:PRINT "EXIT ..........................................4"
2060 LOCATE 21,29:PRINT "Enter selection number"
2070 LOCATE 21,52:GG$=INKEY$:IF GG$="" OR VAL(GG$)<1 OR VAL(GG$)>4 THEN 2070
2080 Q=Q+12
2090 CLS
2100 ON VAL(GG$) GOTO 2130,2110,2120,2290
2110 SKIP=1:GOSUB 350:GOTO 150
2120 SKIP=2:GOSUB 350:GOTO 150
2130 CLS
2140 IF I=200 THEN CLS:GOTO 2010
2150 CLS:GOTO 1760
2160 '-----------------------------user functions----------------------------
2170 Y = X^2-5
2180 RETURN
2190 A = -B-3
2200 RETURN
2210 '---------------------------error trap routine----------------------------
2220 IF ERR=2 AND ERL=2170 THEN BEEP:GOSUB 350:LOCATE 19,23:COLOR 12,4:PRINT "SYNTAX ERROR IN EQUATION #1 - REDO":FOR PP=1 TO 1000:NEXT PP:FLAG=1:COLOR 6,0:RESUME 390
2230 IF ERR=2 AND ERL=2190 THEN BEEP:GOSUB 350:LOCATE 19,23:COLOR 12,4:PRINT "SYSTAX ERROR IN EQUATION #2 - REDO":FOR PP=1 TO 1000:NEXT PP:FLAG=2:COLOR 6,0:RESUME 390
2240 IF ERR=5 AND ERL=2170 THEN BEEP:GOSUB 350:LOCATE 19,3:COLOR 12,4:PRINT "IMAGINARY NUMBERS CREATED! - ALTER EQUATION AND/OR LIMITS":FOR I=1 TO 1000:NEXT I:COLOR 6,0:FLAG=3:RESUME 390
2250 IF ERR=5 AND ERL=2190 THEN BEEP:GOSUB 350:LOCATE 19,3:COLOR 12,4:PRINT "IMAGINARY NUMBERS CREATED! - ALTER EQUATION AND/OR LIMITS":FOR I=1 TO 1000:NEXT I:COLOR 6,0:FLAG=4:RESUME 390
2260 IF ERR=11 AND ERL=2170 OR ERL=2190 THEN GOSUB 350:COLOR 12,4:FLAG=3:LOCATE 21,3:PRINT "DIVISION BY ZERO OCCURED - CHECK YOUR EQUATION AND REDO!":FOR I=1 TO 1000:NEXT I:RESUME 390
2265 IF ERR=6 THEN BEEP:LOCATE 21,3:COLOR 12,4:FLAG=4:PRINT "AN OVERFLOW HAS OCCURED - ALTER EQUATION AND/OR LIMITS":FOR I=1 TO 1000:NEXT I:CLS:RESUME 390
2270 ON ERROR GOTO 0:CLS:GOTO 100
2280 '-----------------------------------quit---------------------------------
2290 SCREEN 0,1:CLS:COLOR 6,0
2300 LOCATE 8,25:PRINT "RESTART THIS PROGRAM --------------1"
2310 LOCATE 10,25:PRINT "RETURN TO PLOT MENU ---------------2"
2320 LOCATE 12,25:PRINT "QUIT ------------------------------3"
2330 LOCATE 17,30:PRINT "MAKE SELECTION"
2340 LOCATE 17,50:Q$=INKEY$:IF Q$="" THEN 2340
2350 QT=VAL(Q$)
2360 IF QT<1 OR QT>3 THEN BEEP:GOTO 2340
2370 IF QT=1 THEN SKIP=2:GOSUB 350:GOTO 150
2380 IF QT=2 THEN RUN "PLOTM"
2390 IF QT=3 THEN CLS:CHAIN "PLIC
2400 BEEP:GOTO 2340
2410 '----------------------------------help----------------------------------
2420 GOSUB 350
2430 LOCATE 6,3:PRINT "* This program plots two simultaneous equations - one in the form Y=f(X)"
2440 LOCATE 7,5:PRINT "and the other in the form of A=f(B)."
2450 LOCATE 9,3:PRINT "* After plotting is completed, a tabulation of all plotted points may be"
2460 LOCATE 10,5:PRINT "reviewed."
2470 LOCATE 12,3:PRINT "* Since 'Y' axis is scaled to accomodate the largest value from either"
2480 LOCATE 13,5:PRINT "equation, if one equation produces large values of 'Y' (Y or A) and the"
2490 LOCATE 14,5:PRINT "other produces small values of 'Y' (Y or A), the curve with the smaller"
2500 LOCATE 15,5:PRINT "values may not show much detail. Curves display best when both produce"
2510 LOCATE 16,5:PRINT "a similiar range of values. Often, restricting the range of X, to just"
2520 LOCATE 17,5:PRINT "cover a particular point of interest, will keep values of both curves"
2530 LOCATE 18,5:PRINT "in a good display range."
2540 LOCATE 21,3:PRINT "Press any key to continue"
2550 LOCATE 21,30:K$=INKEY$:IF K$="" THEN 2550
2560 IF K$="Q" OR K$="q" THEN 2290
2570 GOSUB 350
2580 LOCATE 6,3:PRINT "* Error traps detect syntax errors and provide a chance to recover without"
2590 LOCATE 7,5:PRINT "having to restart the program."
2600 LOCATE 9,3:PRINT "* Error traps exist, in this program, to detect both 'division by zero'"
2610 LOCATE 10,5:PRINT "and 'floating point overflow' conditions, however IBM BASICA does not"
2620 LOCATE 11,5:PRINT "allow trapping these errors and the statements will not function. Some"
2630 LOCATE 12,5:PRINT "BASICA 'clones' do not have these restrictions, in which case, the error"
2640 LOCATE 13,5:PRINT "traps will work. If you get a system generated 'division by zero' or"
2650 LOCATE 14,5:PRINT "'overflow' error, you will have to restart the program."
2660 LOCATE 16,3:PRINT "* See the HELP file accessable from the PLOT MENU for a more thorough"
2670 LOCATE 17,5:PRINT "discussion of this program.
2680 LOCATE 19,3:PRINT "* For practice, try: Y = X^2-5 AND A = -B -3, FROM X = -4 TO +4 (i.e. -4,4)"
2690 LOCATE 21,3:PRINT "Press any key to begin"
2700 LOCATE 21,28:K$=INKEY$:IF K$="" THEN 2700
2710 IF K$="Q" OR K$="q" THEN 2290
2720 GOSUB 350:GOTO 410
100 'VPLOT - SHAREWARE VECTOR PROGRAM - COPYRIGHT 1985,1986,1987, Prowess, Inc.
110 'THIS PROGRAM RESOLVES AND PLOTS VECTORS
120 CLS:KEY OFF:CLEAR:SCREEN 0,0,0:COLOR 6,0:XX$=STRING$(78,32)
130 DIM R(51),U(51),X(51),Y(51),XC(51),YC(51)
140 COLOR 3,0:LOCATE 1,25:PRINT CHR$(201)+STRING$(31,205)+CHR$(187)
150 FOR L=2 TO 3:LOCATE L,25:PRINT CHR$(186):LOCATE L,57:PRINT CHR$(186):NEXT L
160 LOCATE 2,35:PRINT "VECTOR PROGRAM"
170 LOCATE 3,26:PRINT "(C) 1985,1986,1987 Prowess,Inc."
180 COLOR 3,0:LOCATE 4,25:PRINT CHR$(200)+STRING$(31,205)+CHR$(188)
190 COLOR 1,0:LOCATE 4,2:PRINT CHR$(201)+STRING$(78,205)+CHR$(187)
200 LOCATE 3,75:COLOR 7,0:PRINT "V1.0":COLOR 1,0
210 FOR L=6 TO 19
220 LOCATE L,1:PRINT CHR$(186):LOCATE L,80:PRINT CHR$(186)
230 NEXT L
240 LOCATE 19,2:PRINT CHR$(200)+STRING$(78,205)+CHR$(188):COLOR 6,0
250 LOCATE 12,16:PRINT "Do you want to read the instructions? (Y/N/Q)"
260 LOCATE 12,62:K$=INKEY$:IF K$="" THEN 260
270 IF K$="Y" OR K$="y" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 1830
280 IF K$="N" OR K$="n" THEN LOCATE 12,2:PRINT XX$:LOCATE 3,75:PRINT " ":GOTO 350
290 IF K$="Q" OR K$="q" THEN 2150
300 GOTO 260
310 '-------------------------------------------------------------------------
320 FOR T=6 TO 19:LOCATE T,2:PRINT XX$:NEXT T:RETURN
330 FOR T=21 TO 23:LOCATE T,1:PRINT XX$:NEXT T:RETURN
340 FOR T=6 TO 19:LOCATE T,2:PRINT XX$:NEXT T:FOR T=21 TO 23:LOCATE T,1:PRINT XX$:NEXT T:RETURN
350 LOCATE 10,14:PRINT "HOW MANY VECTORS DO YOU WANT TO SUM ? ( MAX OF 10 )"
360 LOCATE 10,70:INPUT "",CT$:CT=VAL(CT$)
370 IF CT$="Q" OR CT$="q" THEN 2150
380 IF CT<1 OR CT>10 THEN BEEP:GOSUB 320:GOTO 350 'chk illegal entry --------
390 LOCATE 14,9:PRINT "WILL YOU ENTER VECTORS IN POLAR OR RECTANGULAR FORMAT (P/R)?"
400 LOCATE 14,72:S$=INKEY$:IF S$="" THEN 390
410 IF S$="Q" OR S$="q" THEN 2150
420 IF S$<>"R" AND S$<>"P" AND S$<>"r" AND S$<>"p" THEN LOCATE 14,2:PRINT XX$:GOTO 400
430 IF S$ = "P" OR S$="p" THEN LOCATE 14,2:PRINT XX$:GOTO 540
440 LOCATE 14,2:PRINT XX$:LOCATE 10,2:PRINT XX$
450 LOCATE 6,18:PRINT "ENTER X AND Y COORDINATES IN THE FORM X,Y":INC=2
460 FOR N=1 TO CT 'enters rect. coordinates----------------------
470 LOCATE 6+INC,30:PRINT "#";N:LOCATE 6+INC,35:INPUT "",X$,Y$:X(N)=VAL(X$):Y(N)=VAL(Y$)
480 IF X$="Q" OR X$="q" THEN 2150
490 IF Y$="Q" OR Y$="q" THEN 2150
500 IF X(N)=0 AND Y(N)=0 THEN BEEP:LOCATE 21,2:PRINT "CAN'T ALLOW BOTH X AND Y TO BE ZERO !":FOR J=1 TO 3000:NEXT J:GOSUB 340:GOTO 450
510 INC=INC+1
520 NEXT N
530 GOTO 640
540 GOSUB 320
550 XS=0
560 YS=0:INC=2
570 LOCATE 6,18:PRINT "ENTER VECTOR IN THE FORM R,";CHR$(233);" ( ";CHR$(233);" IN DEGREES )":INC=2
580 FOR N = 1 TO CT 'enters polar vectors------------------------
590 LOCATE 6+INC,30:PRINT "#";N:LOCATE 6+INC,35:INPUT "",R$,U$:R(N)=VAL(R$):U(N)=VAL(U$)
600 IF R$="Q" OR R$="q" THEN 2150
610 IF U$="Q" OR U$="q" THEN 2150
620 INC=INC+2
630 NEXT N
640 GOSUB 320:COLOR 6,0
650 LOCATE 6,2:PRINT TAB(11);"VECTOR #";TAB(29);"R";TAB(38);"THETA";TAB(51);"X";TAB(62);"Y"
660 LOCATE 7,2:PRINT TAB(10);"--------------------------------------------------------------"
670 FOR N = 1 TO CT
680 IF S$="R" OR S$="r" THEN 710 'avoids p -> r conversion if rect. format-
690 X(N) = R(N) * COS(( U(N) * 3.1415926#)/ 180) 'calculates x coordinate-
700 Y(N) = R(N) * SIN(( U(N) * 3.1415926#)/ 180) 'calculates y coordinate-
710 IF ABS( X(N)) > 0.0001 THEN 730 'avoids x roundoff error---------
720 X(N) = 0
730 IF ABS(Y(N)) > 0.0001 THEN 750 'avoids y roundoff error---------
740 Y(N) = 0
750 XS = XS + X(N)
760 YS = YS + Y(N)
770 LOCATE N+7,2:PRINT TAB(14);N
780 LOCATE N+7,23
790 PRINT USING " #####.#### ";R(N),U(N),X(N),Y(N)
800 NEXT N
810 LOCATE N+7,2:PRINT TAB(10);"--------------------------------------------------------------"
820 H = XS
830 V = YS
840 IF ABS( H) > 0.0001 THEN 940
850 XS = 0
860 IF ABS( V) > 0.0001 THEN 890
870 THETA = 0
880 GOTO 1120
890 IF V > 0 THEN 920
900 THETA = 270
910 GOTO 1120
920 THETA = 90
930 GOTO 1120
940 IF ABS( V) < 0.0001 THEN 1070
950 THETA = (ATN(YS/XS) * 180)/ 3.1415926#
960 IF YS < 0 THEN 1020
970 IF XS < 0 THEN 1000
980 THETA = THETA
990 GOTO 1060
1000 THETA = 180 + THETA
1010 GOTO 1060
1020 IF XS < 0 THEN 1050
1030 THETA = 360 + THETA
1040 GOTO 1060
1050 THETA = 180 + THETA
1060 GOTO 1120
1070 YS = 0
1080 IF XS > 0 THEN 1110
1090 THETA = 180
1100 GOTO 1120
1110 PRINT
1120 RT = SQR(XS^2 + YS^2)
1130 R(51)=RT
1140 U(51)=THETA
1150 X(51)=XS
1160 Y(51)=YS
1170 V=10
1180 LOCATE N+8,10
1190 PRINT "RESULTANT ->"
1200 LOCATE N+8,22
1210 PRINT USING " ######.####";RT,THETA,XS,YS
1220 LOCATE 21,2
1230 PRINT "PRESS ANY KEY TO CONTINUE"
1240 LOCATE 21,28:A$=INKEY$:IF A$="" THEN 1240
1250 XM=0
1260 YM=0
1270 GOSUB 330
1280 LOCATE 21,32
1290 PRINT "BUILDING ARRAYS"
1300 COLOR 6,0
1310 FOR N=1 TO CT 'finds largest value of x and y for scaling-----
1320 IF ABS(X(N))>XM THEN XM=ABS(X(N))
1330 IF ABS(Y(N))>YM THEN YM=ABS(Y(N))
1340 NEXT N
1350 IF ABS(X(51))>XM THEN XM=ABS(X(51)) 'includes resultant in scaling-----
1360 IF ABS(Y(51))>YM THEN YM=ABS(Y(51)) 'includes resultant in scaling-----
1370 IF YM>XM THEN XM=YM 'makes xm the largest value--------
1380 FOR N=1 TO CT 'scales for graph and x-y aspect ratio--
1390 XC(N)=((X(N)/XM)*197.6)
1400 YC(N)=((Y(N)/XM)*81.7)
1410 NEXT N
1420 XC(51)=((X(51)/XM)*197.6) 'scales resultant-------------------
1430 YC(51)=((Y(51)/XM)*81.7) 'scales resultant-------------------
1440 CLS:SCREEN 2,0,0
1450 PI=3.1415926#
1460 LINE (222.5,13.4)-(623,180.9),1,B 'draws plotting field---------------
1470 LINE (422.8,13.4)-(422.8,180.9),1 'draws vert axis--------------------
1480 LINE (222.5,97.2)-(623,97.2),1 'draws horiz axis-------------------
1490 LOCATE 12,80
1500 PRINT "X" 'labels x-axis----------------------
1510 LOCATE 1,53
1520 PRINT "Y" 'labels y-axis----------------------
1530 LOCATE 1,1
1540 PRINT "X and Y MAX = +/-" 'prints length of x-axis from 0-------
1550 LOCATE 1,18:PRINT USING "######.####";XM:LOCATE 2,1
1560 PSET (422.8,97.2),1
1570 FOR N=1 TO CT 'plots each vector--------------------
1580 LINE -(422.8+XC(N),97.2-YC(N)),1
1590 CIRCLE (422.8+XC(N),97.2-YC(N)),4,1
1600 PSET (422.8,97.2),1 'resets to origin---------------------
1610 FOR I=1 TO 100 'creates slight pause between plots---
1620 NEXT I
1630 NEXT N
1640 LINE -(422.8+XC(51),97.2-YC(51)),1 'plots resultant----------------------
1650 CIRCLE (422.8+XC(51),97.2-YC(51)),7,1
1660 PSET (422.8,97.2),1
1670 LOCATE 10,1
1680 PRINT "RESULTANT IDENTIFIED"
1690 PRINT " BY LARGE WHITE"
1700 PRINT "TERMINATOR CIRCLE AT:"
1710 PRINT
1720 PRINT " (";X(51);",";Y(51);")" 'prints resultant rect coordinates---
1730 PRINT :PRINT :PRINT :
1740 PRINT "TO START OVER ....1"
1750 PRINT "TO REVIEW VALUES .2
1760 PRINT "EXIT .............3":PRINT
1770 PRINT " MAKE SELECTION"
1780 LOCATE 22,18:AA$=INKEY$:IF AA$="" THEN 1780
1790 IF VAL(AA$)<1 OR VAL(AA$)>3 THEN BEEP:GOTO 1780
1800 IF VAL(AA$)=1 THEN 100
1810 IF VAL(AA$)=2 THEN FOR I=1 TO 51:XC(I)=0:YC(I)=0:NEXT I:XS=0:YS=0:SCREEN 0,0,0:CLS:GOTO 640
1820 IF VAL(AA$)=3 THEN SCREEN 0,1,0:COLOR 6,0:GOTO 2150
1830 '----------------------------------help-----------------------------------
1840 GOSUB 320
1850 LOCATE 6,5:PRINT "* Up to 10 vectors may be entered in either rectangular or polar"
1860 LOCATE 7,7:PRINT "formats. You must declare the number of vectors that the program"
1870 LOCATE 8,7:PRINT "must handle and the format that you intend to use."
1880 LOCATE 10,5:PRINT "* When inputting is complete, the program first displays a tabular"
1890 LOCATE 11,7:PRINT "list of your inputs. If you used polar format, the list shows"
1900 LOCATE 12,7:PRINT "your inputs in both polar and rectangular form. The resultant"
1910 LOCATE 13,7:PRINT "of all input vectors is shown in both formats."
1920 LOCATE 15,5:PRINT "* Pressing any key after the tabular display will clear the screen"
1930 LOCATE 16,7:PRINT "and present a plot of your input vectors and their resultant."
1940 LOCATE 18,5:PRINT "* The vector plot is autoscaled to insure that all vectors will"
1950 LOCATE 19,7:PRINT "fit on the plot field."
1960 LOCATE 21,2:PRINT "PRESS ANY KEY TO CONTINUE"
1970 LOCATE 21,30:K$=INKEY$:IF K$="" THEN 1970
1980 IF K$="Q" OR K$="q" THEN 2150
1990 GOSUB 340
2000 LOCATE 6,5:PRINT "* The largest X or Y value (including the resultant) is used to"
2010 LOCATE 7,7:PRINT "scale both the X and Y axis. The value of the largest X or Y value"
2020 LOCATE 8,7:PRINT "defines the value of both the X and Y axis. The value is displayed."
2030 LOCATE 10,5:PRINT "* The coordinates of the resultant vector are listed and the"
2040 LOCATE 11,7:PRINT "plotted resultant can be distinguished from the input vectors by"
2050 LOCATE 12,7:PRINT "the large terminator circle at its end point."
2060 LOCATE 14,5:PRINT "* Vector lengths (including the resultant) are limited to four"
2070 LOCATE 15,7:PRINT "digits to the left of the decimal point and four decimal places."
2080 LOCATE 17,5:PRINT "* A comma error will result in a 'REDO FROM START' message. Simply"
2090 LOCATE 18,7:PRINT "reenter, using correct syntax, at the currrent cursor position."
2100 LOCATE 21,2:PRINT "PRESS ANY KEY TO START"
2110 LOCATE 21,27:K$=INKEY$:IF K$="" THEN 2110
2120 IF K$="Q" OR K$="q" THEN 2150
2130 GOSUB 340:GOTO 350
2140 '-----------------------------------quit---------------------------------
2150 CLS
2160 LOCATE 8,25:PRINT "RESTART THIS PROGRAM --------------1"
2170 LOCATE 10,25:PRINT "RETURN TO PLOT MENU ---------------2"
2180 LOCATE 12,25:PRINT "QUIT ------------------------------3"
2190 LOCATE 17,30:PRINT "MAKE SELECTION"
2200 LOCATE 17,50:Q$=INKEY$:IF Q$="" THEN 2200
2210 QT=VAL(Q$)
2220 IF QT<1 OR QT>3 THEN BEEP:GOTO 2200
2230 IF QT=1 THEN 100
2240 IF QT=2 THEN RUN "PLOTM"
2250 IF QT=3 THEN CLS:CHAIN "PLIC
2260 BEEP:GOTO 2200
Volume in drive A has no label
Directory of A:\
!READ ME 714 9-08-87 10:12a
AR-REORD DBF 1024 5-25-84 1:38a
BIGBMW TXT 28696 1-01-80 1:14a
FIXER EXE 61590 7-29-87 2:20p
BUDG PRN 11547 1-01-80 5:22a
STRIPPER EXE 10866 9-13-87 7:58p
BREAKER EXE 51900 8-21-87 5:13p
ASCEDIT @@@ 1951 7-29-87 8:28p
IQBUILD BAS 4608 5-17-85 7:52p
SPECIAL DOC 2048 2-27-85 10:52a
HELP ASC 6105 1-01-80 12:46a
TESTMAIL DBF 2048
EGABLANK COM 256 6-16-87 7:45p
MMAKE EXE 21231 5-12-88 4:22p
MMAKE DOC 28292 5-12-88 4:20p
DESCRIPT 1121 8-12-87 10:37p
HLP3 BAS 11303 5-11-87 1:55p
README DOC 12398 5-22-87 10:24a
IPLOT BAS 10937 5-06-87 4:09p
PLIC BAS 1310 5-06-87 10:59a
PLOG BAS 2477 5-08-87 12:02p
PLOT BAT 29 5-22-87 10:14a
PLOTM BAS 1444 5-11-87 2:02p
PPLOT BAS 11335 5-10-87 2:54a
SPLOT BAS 11215 5-11-87 1:49p
VPLOT BAS 8523 5-10-87 2:53a
FILES978 TXT 3276 1-27-89 2:11p
GO TXT 463 6-03-88 9:19a
GO BAT 38 10-19-87 3:56p
MANUALS BAT 16 6-03-88 9:19a
30 file(s) 308761 bytes
36864 bytes free