home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug007.arc
/
1984NOV.CAT
< prev
next >
Wrap
Text File
|
1979-12-31
|
46KB
|
1,160 lines
.mt 1
.mb 1
.op
$1.50 RECOMMENDED
RETAIL PRICE
Registered for transmission
by post as a periodical
Publication No: VBH 6579.
Vo∞ 3« N≥ 2 NOVEMBER, 1984
IN THIS ISSUE -
FLOWCHARTING, PART 3. 1
FORTH ASSEMBLER 3
WORDSTAR AND THE WORD + 4
IMPROVEMENTS TO THE ETI EPROM PROGRAMMER 5
AN EXPLANATION OF ELECTRICITY 12
COMPAT - A BASIC PROGRAM 13
TENNIS - A BASIC GAME 15
MICROBUGS
PRESIDENT Grant Forest 8748728
VICE-PRESIDENT Andrew Reid 8360316
SECRETARY Richard Collett 6908283
TREASURER Jim Lobley 7589169
TAPE LIBRARIAN David Soutar
MICROBEE HARDWARE Bob Denton 2331483
EDITORS, THE CATCHER -
MICROBEE Dixon Kenney 8734476
DGOS Z80 John Buxton 4350885
---------------------------------------------------------------
| ADDRESSES FOR CORRESPONDENCE |
---------------------------------------------------------------
| |
| OFFICIAL ADDRESS |
| MICROBUG AUSTRALIA P.O. 157, NUNAWADING .VIC 3131. |
| |
---------------------------------------------------------------
| |
| FOR OTHER CONTACTS AND ADDRESSES SEE INSIDE COVER |
| |
---------------------------------------------------------------
| THE CATCHER is published by MICROBUG AUSTRALIA |
| All copyrights are reserved by MICROBUG |
---------------------------------------------------------------
NEX╘ MEETING ║á 14tΦá NOVEMBE╥
TIME & PLACE : 7.0░ pφ BURWOO─ TEACHER╙á COLLEG┼ BUILDING E
.PAè.HE --__T_H_E___C_A_T_C_H_E_R__--
.OP
TO : MICROBUG AUSTRALIA,
The Treasurer, 26 Alexander Cr., Ferntree Gully. 3156
I would like to - join MICROBUG AUSTRALIA [ ]
renew my subscription to M.A. [ ]
NAME :________________________________________________
ADDRESS :________________________________________________
________________________________________________
TELEPHONE :__________________ SYSTEM :_________________
HARDWARE :____________________________________________
[ ] $20 Melbourne subscription per year.
[ ] $17 Non-city subscription per year.
[ ] $A20 New Zealand subscription per year.
[ ] $10 Tape Library membership (payment only required once)
[ ] I would like a receipt, please
-------------------------------------------------------------
| |
| SERVICES PROVIDED BY MICROBUG AUSTRALIA |
| |
|------------------------------------------------------------
| TAPE LIBRARY * P.O. BOX 45 CANTERBURY 3126 |
|-----------------------------------------------------------|
| $2.0░áPE╥ S/W TAP┼ FO╥ ON┼ MONTH¼ RETURNED NEXT MEETING.|
| $5.00 PER SIG/M VOLUME, WE SUPPLY THE DISK. |
| $4.50 PER BLANK 5" DISKETTE |
-------------------------------------------------------------
| ADVERTISEMENTS * P.O. BOX 157 NUNAWADING 3131 |
|-----------------------------------------------------------|
| $80.00 FULL PAGE $40.00 HALF PAGE $25.00 QUARTER PAGE |
| $3.00 FOR SERVICE AND RECURRENT ITEMS (LESS THAN 5 LINES) |
| FREE FOR ADVERTISEMENTS THAT ARE NOT RECURRING ITEMS |ì
-------------------------------------------------------------
| MODEM HIRE * JOHN BUXTON 435-0885 |
|-----------------------------------------------------------|
| $5.00 FIRST WEEK THEN $10.00 EACH ADDITIONAL WEEK |
| PLUS $25.00 DEPOSIT |
-------------------------------------------------------------
| BAZAAR * MICK HOLZINGER 354-6742 P.O. BOX 157 NUNAWADING. |
|-----------------------------------------------------------|
| $1.50 PER C30 TAPE OR $25.00 PER BOX OF 20. |
| $1.50 BACK ISSUES OF CATCHER VOL 1 NO 1 PRINTED OCT 82 |
-------------------------------------------------------------
| DISKETTE COPYING * GRANT FOREST 8748728 |
|-----------------------------------------------------------|
| 5"TO 8" OR 8"TO 5" MOST FORMATS |
-------------------------------------------------------------
| FOR ALL POSTAL ORDERS ADD $1.50 MINIMUM |
-------------------------------------------------------------
.PAè FROM_THE_CHIEF_MICROBUG
A⌠ last¼ yo⌡ arσ no≈ receivinτ thσ curren⌠ month'≤ CATCHE╥ beforσ thi≤ ì
month'≤á meeting«á Thi≤ wa≤ madσ possiblσ b∙ thσ splendiΣ effort≤á oµ ì
DaviΣá Souta≥ ¿ thσ Tapσ Librariaε )¼á wh∩ co-ordinateΣ thσ productioε ì
of the birthday issue.
WHAT'S NEW IN THE PAPER LIBRARY -
¬ PERIODICAL╙ Lates⌠ issuσ oµ BYTE¼á You≥á Computer¼á Australiaε ì
Personal Computer, E.T.I., and Electronics Australia.
¬ NEWSLETTER╙ Wes⌠n Aus⌠ Vo∞ 2¼á #≤ 2,3,4╗á Sydney¼á Vo∞ ▓á #7╗ ì
South Australia, October '84.
* OTHER WILDCARDS vols 1 & 2 ( who has my vol 3 ?? )
NEW ACTIVITIES-
¬ CARTOO╬ CONTES╘ Iµ yo⌡ havσ ß compute≥ relateΣ cartoon¼á for- ì
warΣ i⌠ t∩ us¼ anΣ wσ wil∞ publisΦ it« Bes⌠ cartooε oµ thσ montΦ wil∞ ì
win an A.T. tape of the sender's choice.
¬á 2░ LIN┼ BASI├ PROGRA═ CONTES╘ No⌠ man∙ entrie≤ receiveΣ u≡ t∩ ì
thi≤ timσ !íá Ge⌠ you≥ entrie≤ iε anΣ wiε thσ Zak≤ Z8░ prograφ booδ - ì
what intriguing program can you pack into 20 Basic lines ??
¬á SUBGROUP╙ Wσ presentl∙ havσ tw∩ subgroup≤á - thσá TEACHER'≤ ì
grou≡ anΣ thσ ├ group«á Thσ teacher'≤ grou≡ contac⌠ i≤ FreΣ Richards¼ ì
anΣ ha≤ ove≥ 2░ members╗á thσ ├ grou≡ contac⌠ i≤ myself¼ witΦ onσ mem-ì
be≥ (me!)« S∩ iµ yo⌡ wan⌠ t∩ sharσ you≥ ├ experiences¼ anΣ obtaiε thσ ì
many volumes of public domain software in BDS C, contact me.
¬ PROJEC╘ EacΦ montΦ wσ wil∞ attemp⌠ t∩ star⌠ ß projec⌠ (H/╫ and» ì
o≥ S/W)¼á b∙ outlininτ iε thσ CATCHE╥ wha⌠ wσ want¼á anΣ then¼á oε thσ ì
meetinτ night¼ member≤ wh∩ arσ interesteΣ caε pu⌠ forwarΣ thei≥ ideas« ì
Hopefully¼á wσá wil∞ al∞ gaiε aε insigh⌠ int∩ variou≤ way≤ iε whicΦá ß ì
singlσ objectivσ caε bσ met« Wσ wil∞ star⌠ ofµ witΦ ß S/╫ project¼ s∩ ì
tha⌠á participatinτ member≤ caε brinτ alonτ t∩ thσ nex⌠ meetinτ ß pro-ì
graφ whicΦ wil∞ achievσ thσ projec⌠ goal«á Wσ caε theε usσ thi≤ a≤á ß ì
learning/sharinτá experience¼á iε seeinτ thσ man∙ way≤ iε whicΦ ß tasδ ì
may be done.
S/╫ PROJEC╘ 1║á Thσ cluΓ require≤ ß prograφ t∩ displa∙ ß pagσ oµ ì
tex⌠á fo≥ 3░ seconds¼á anΣ theε displa∙ anothe≥ pagσ fo≥ ß furthe≥á 3░ ì
seconds¼á anΣ theε another¼á etc¼ etc« Afte≥ thσ las⌠ pagσ (say¼ pagσ ì
15⌐ thσ wholσ proces≤ wil∞ star⌠ again« Wσ d∩ no⌠ wan⌠ thσ prograφ t∩ ì
bσá disδ bounΣ ¿ thi≤ wil∞ allo≈ an∙ membe≥ t∩ writσá thσá program«á ⌐ ì
Brinτá you≥ prograφ alonτ t∩ thσ nex⌠ meetinτ anΣ le⌠ u≤ finΣ ou⌠á thσ ì
different ways to achieve this task.
¬ BULLETI╬ BOAR─ Thσ phonσ i≤ no≈ connecteΣ ¿ 873-573┤ )¼á anΣ ì
thσ S/╫ ha≤ beeε ruε up« Wσ arσ waitinτ fo≥ thσ UAR╘ H/╫ modificatioε ì
t∩á bσá completeΣ oε thσ cluΓ BEE¼á anΣ theε wσ shoulΣ bσ oε thσá air« ì
Thσ systeφ wil∞ bσ demonstrateΣ a⌠ thσ NOVEMBE╥ meeting¼ wherσ wσ wil∞ ì
outlinσá ho≈á t∩ loτ in¼á anΣ wha⌠ benefit≤ caε bσ obtaineΣá froφá ou≥ ì
BULLETI╬ board«á Thσ DECEMBE╥ CATCHE╥ wil∞ outlinσ thσ connec⌠ proce-ì
dure and the times in which the BOARD will be active.
¬á PUBLI├ DOMAI╬ SOFTWAR┼ Wσ havσ hard-copie≤ oµ thσ SIG/═á cata-ì
logue≤ coverinτ Vo∞ #▒ t∩ Vo∞ #192¼á whicΦ wil∞ bσ availablσ froφá thσ ì
BAZAA╥ fo≥ $7.00«á Thσ CU╟ volume≤ havσ beeε appendeΣ t∩ includσ vol-ì
umes up to #42.
See you at the next meeting.
A> GRANT
.PAè
THINKIN╟_A╙_┴_PROGRAMME╥_║_BASI├_PRINCIPLE╙_O╞_FLOWCHARTIN╟ì
PAR╘ 3: GRANT FOREST
------------------------------------------------------------
PROGRAM FLOWCHARTS
Iεá thσ las⌠ articlσ wσ gavσ yo⌡ thσ followinτ datß t∩ generatσ ß flo≈ ì
chart.
áááá┴á maε ha≤ founΣ tha⌠ thσ followinτ rule≤ enablσ hiφá t∩á trave∞ ì
áááácomfortabl∙ t∩ worδ iε al∞ weathers
áááá ¬á Iµá hi≤ baromete≥ indicate≤ STORM┘ hσ take≤ hi≤á umbrellß ì
ááááanΣ wear≤ hi≤ overcoat.
áááá ¬ Iµ RAIN┘ i≤ indicateΣ hσ take≤ hi≤ umbrellß anΣ wear≤á hi≤ ì
ááááraincoat.
áááá ¬ Iµ CHANG┼ i≤ indicated¼á hσ behave≤ a≤ fo≥ DR┘ iµ i⌠ raineΣ ì
ááááyesterday¼áa≤áfo≥áRAINYéáiµái⌠ádiΣánot« ì
áááá ¬ Iµ DR┘ i≤ indicated¼ hσ simpl∙ take≤ hi≤ umbrella.
áááá ¬á Iµá VER┘ DR┘ i≤ indicated¼á hσ take≤á neithe≥á coa⌠á no≥ ì
ááááumbrella.
Before we start let's note three salient points.
1« Thσ baromete≥ caε registe≥ onl∙ thσ fivσ condition≤ mentioned« Onl∙ ì
fouréá question≤ oµ thσ typσ "I≤ STORM┘ indicatedó arσ needeΣ t∩ deterì
minσá whicΦá conditioε applies¼á sincσ thσ las⌠ onσ i≤á recogniseΣá b∙ ì
eliminatioε oµ thσ others«á Thus¼ iε thσ char⌠ drawε here¼ therσ i≤ n∩ ì
tes⌠ tha⌠ specificall∙ ask≤ "I≤ VER┘ DRYé indicated"┐ Wσ kno≈ tha⌠ VER┘ ì
DR┘ musté bσ indicateΣ iµ nonσ oµ thσ othe≥ condition≤ is«
2«á Remembe≥ t∩ avoiΣ duplicatinτ ß bo° oε tw∩ o≥ morσ flowline≤ ¼ iµ ì
yo⌡ caε usσ onσ bo° oε ß commoε flowlinσ instead.
3« Thσ umbrellß i≤ requireΣ iε ever∙ conditioε excep⌠ VER┘ DRY«
REMEMBE╥á THER┼á AR┼á FOU╥ PRINCIPLE╙ YO╒ AR┼ GOIN╟á T╧á US┼á I╬á THI╙ ì
SECTION
áááá¬á Completσá onσá brancΦ a⌠ ß timeé A≤ sooε a≤ yo⌡ reacΦá ßá poin⌠ ì
ááááwherσ thσ seconΣ brancΦ froφ thσ lates⌠ tes⌠ shoulΣ joiε in¼ i⌠ i≤ ì
áááátimσ t∩ g∩ bacδ anΣ dea∞ witΦ tha⌠ branch.
áááᬠLette≥ thσ boxe≤ fo≥ reference«á D∩ thi≤ a≤ yo⌡ dra≈ eacΦá one¼ ì
ááááletterinτ theφ iε sequence.
áááᬠKee≡ test≤ t∩ ß minimum«á Wheε an∙ onσ oµ severa∞ alternativσ ì
áááácondition≤ ma∙ apply¼á therσ i≤ generall∙ n∩ neeΣ t∩ tes⌠ fo≥ theφ ì
ááááal∞ explicitly«á Onσ oµ theφ i≤ simpl∙ wha⌠ remain≤ wheε thσ othe≥ ì
áááápossibilitie≤á havσá beeεá eliminated«á Als∩ tr∙ t∩á arrangσá you≥ ì
ááááflowchar⌠ s∩ tha⌠ boxe≤ oµ ß kinΣ arσ no⌠ duplicateΣá unnecessariì
áááály«
áááá¬á Alway≤ tr∙ ou⌠ you≥ flowchart«á Thi≤ mean≤ workinτ througΦ i⌠ ì
ááááwitΦ somσ actua∞ value≤ oµ thσ typσ involveΣ iε thσ problem.
Successfu∞ flowchartinτ i≤ s∩ mucΦ ß matte≥ oµ gooΣ habits¼ tha⌠ i⌠ i≤ ì
worthwhilσ spendinτ fivσ minute≤ o≥ s∩ t∩ makσ surσ thesσ basiπá prinì
ciple≤á arσ firml∙ fixeΣ iε you≥ mind«á T∩ convincσ yourselµ tha⌠ the∙ ì
are¼ tr∙ t∩ summarizσ eacΦ onσ iε ß singlσ sentence.
Thσ nex⌠ pagσ ha≤ thσ answe≥ t∩ thσ baromete≥ problem
.PAè ---------
( START )
---------
:
/ \
/ A \
/ \
/ IS \ __________
/ STORMY \____YES_________________: WEAR G:_______
\INDICATED/ : OVERCOAT : :
\ ? / ---------- :
\ / :
\ / :
\ / :
: :
/ \ :
/ B \ :
/ \ :
/ IS \ :
/ RAIN \_____YES_____________________ :
\INDICATED/ : :
\ ? / : :
\ / : :
\ / : :
\ / : :
: : :
/ \ : :
/ C \ : :
/ \ : :
/ IS \ : :
/ CHANGE \____YES_______ : :
\INDICATED/ : : :
\ ? / / \ : :
\ / / E \ : :
\ / / \ : :
\ / / DID \ : :
: / IT RAIN \___NO____: :
/ \ \ YESTERDAY/ : :
/ D \ \ ? / : :
/ \ \ / : :
/ IS \ \ / : :
___NO___/ DRY \ \ / : :
: \INDICATED/ : __________ :
: \ ? / : YES : WEAR F: :
: \ / : : RAINCOAT : :
: \ / : ---------- :
: \ / : : :
: : V V V
: :<------------------------------------------------
: __________
: : TAKE H:
: : UMBRELLA :
: ----------
------------>:
:
___V___
( END )
-------
.PAè FORTH_ASSEMBLER
Russel Lang
Tw∩ issue≤ ago¼ wσ haΣ aε articlσ oε thi≤ subject« Thσ edito≥ decideΣ ì
t∩á cleaεá u≡á hi≤á Catche≥á disk¼áá anΣá thσá actua∞á FortΦáá prograφ ì
"disappeared" from the disk. Thanks to the author - here it is.
SCR # 43
0 ( 8080 ASSEMBLER #1 RJL-1984-04-12 )
1 HEX
2 VOCABULARY ASSEMBLER
3 : CODE CREATE ASSEMBLER ;
4 ASSEMBLER DEFINITIONS
5 0 CONSTANT B 1 CONSTANT C 2 CONSTANT D 3 CONSTANT E
6 4 CONSTANT H 5 CONSTANT L 6 CONSTANT M 7 CONSTANT A
7 6 CONSTANT PSW 6 CONSTANT SP 145 CONSTANT NEXT
8 : MOV, 8 * OR 40 OR C, ; : MVI, 8 * 6 OR C, C, ;
9 : INR, 8 * 4 OR C, ; : DCR, 8 * 5 OR C, ;
10 : ADD, 80 OR C, ; : ADC, 88 OR C, ; : SUB, 90 OR C, ;
11 : SBB, 98 OR C, ; : ANA, A0 OR C, ; : XRA, A8 OR C, ;
12 : ORA, B0 OR C, ; : CMP, B8 OR C, ; : ADI, C6 C, C, ;
13 : ACI, CE C, C, ; : SUI, D6 C, C, ; : SBI, DE C, C, ;
14 : ANI, E6 C, C, ; : XRI, EE C, C, ; : ORI, F6 C, C, ;
15 : CPI, FE C, C, ; -->
SCR # 44
0 ( 8080 ASSEMBLER #2 RJL-1984-04-12 )
1 : RLC, 07 C, ; : RRC, 0F C, ; : RAL, 17 C, ; : RAR, 1F C, ;
2 : JMP, C3 C, , ; : CALL, CD C, , ; : RET, C9 C, ;
3 : JNZ, C2 C, , ; : CNZ, C4 C, , ; : RNZ, C0 C, ;
4 : JZ, CA C, , ; : CZ, CC C, , ; : RZ, C8 C, ;
5 : JNC, D2 C, , ; : CNC, D4 C, , ; : RNC, D0 C, ;
6 : JC, DA C, , ; : CC, DC C, , ; : RC, D8 C, ;
7 : JPO, E2 C, , ; : CPO, E4 C, , ; : RPO, E0 C, ;
8 : JPE, EA C, , ; : CPE, EC C, , ; : RPE, E8 C, ;
9 : JP, F2 C, , ; : CP, F4 C, , ; : RP, F0 C, ;
10 : JM, FA C, , ; : CM, FC C, , ; : RM, F8 C, ;
11 : RST, 8 * A7 OR C, ;
12 : EI, FB C, ; : DI, F3 C, ;
13 : IN, DB C, C, ; : OUT, D3 C, C, ;
14 : NOP, 00 C, ; : HLT, 76 C, ;
15 -->
SCR # 45
0 ( 8080 ASSEMBLER #3 1984-04-12 )
1 : LXI, 8 * 30 AND 1 OR C, , ;
2 : PUSH, 8 * 30 AND C5 OR C, ;
3 : POP, 8 * 30 AND C1 OR C, ;
4 : STA, 32 C, , ; : LDA, 3A C, , ;
5 : XCHG, EB C, ; : XTHL, E3 C, ;
6 : SPHL, F9 C, ; : PCHL, E9 C, ;
7 : DAD, 8 * 30 AND 9 OR C, ;
8 : STAX, 8 * 30 AND 2 OR C, ; : LDAX, 8 * 30 AND 0A OR C, ;
9 : INX, 8 * 30 AND 3 OR C, ; : DCX, 8 * 30 AND 0B OR C, ;
10 : CMA, 2F C, ; : STC, 37 C, ; : CMC, 3F C, ; : DAA, 27 C, ;
11 : SHLD, 22 C, , ; : LHLD, 2A C, , ;
12 : ENDCODE SMUDGE [COMPILE] FORTH ;
13 FORTH DEFINITIONS DECIMAL
14 : ;CODE ?CSP COMPILE (;CODE) [COMPILE] [ [COMPILE] ASSEMBLER ;
15
.PAè THE_WORD_+__OR__SPELLSTAR
Dixon Kenney
WhicΦ dictionar∙ d∩ yo⌡ usσ witΦ WordSta≥ ┐ Man∙ oµ u≤ havσ TW+¼ ì
whicΦ wσ regarΣ a≤ bette≥ thaε SpellStar« T∩ usσ it¼ though¼ yo⌡ havσ ì
t∩ exi⌠ WordStar¼á ruε TW+¼á anΣ theε re-ente≥ WordStar¼á or¼ alterna- ì
tivel∙á usσ thσ "Ruε ß Programó choicσ froφ thσ Maiε Menu¼á whicΦá in-ì
volves typing in "TW", or whatever you have called it, and waiting.
I⌠á is¼á however¼á possiblσ t∩ loaΣ TW½ froφ thσ ╙ optioε oµá thσ ì
Maiε Men⌡ - tha⌠ is¼ t∩ substitutσ Thσ WorΣ ½ fo≥ SpellStar« Thσ men⌡ ì
will still show SpellStar, but the file accessed is TW+.
SpellSta≥á unde≥á thσ ╙ optioε i≤ accesseΣ b∙ WordSta≥á froφá thσ ì
file WSOVLY1.OVR. All you have to do to make the changes are -
1. Make a copy of WSOVLY1.OVR onto a scratch disk.
2. Copy DDT on to the same disk.
3. Invoke DDT with the command
DDT WSOVLY1.OVR
4. The dialogue will be like this -
[ For v3.0 WordStar]
ááááááááááááááDDT vers 2.2
ááááááááááááááNEXT PC
áááááááááááááá8400 0100 8900 0100
áááááááááááááá-S2817 -S2814
áááááááááááááá2817 53 54 2814 53 54
áááááááááááááá2818 50 48
áááááááááááááá2819 45 45
áááááááááááááá281A 4C 57 as for 3.3
áááááááááááááá281B 53 4F
áááááááááááááá281C 54 52
áááááááááááááá281D 41 44
áááááááááááááá281E 52 2B
áááááááááááááá281F 4F 43
áááááááááááááá2820 56 4F
áááááááááááááá2821 52 4D
áááááááááááááá2822 00 .
áááááááááááááá-G0
ááááááááááááááA> SAVE 131 WSOVLY1.OVR A> SAVE 136 WSOVLY1.OVR
Wha⌠á yo⌡á havσ changeΣ i≤ thσ namσ oµ thσ commanΣ filσ t∩á ruεá - thσ ì
original¼á iµ yo⌡ worδ i⌠ out¼á i≤ SPELSTAROVR¼ anΣ thσ replacemen⌠ i≤ ì
THEWORD+COM.
5«á Froφ this¼á yo⌡ caε seσ tha⌠ yo⌡ havσ t∩ renamσ thσ commanΣ filσ ì
TW.CO═ on your disk to THEWORD+.COM.
6«á Now¼ usinτ thi≤ ne≈ forφ oµ WSOVLY1.OVR¼ oε ß WordSta≥ disk¼ ruε ì
i⌠ oε ß tex⌠ filσ - i⌠ shoulΣ work«á Wheε ╔ useΣ it¼á i⌠ workeΣá per-ì
fectly, and if I can do it, so can you!
7«á T∩ ruε TW½ normall∙ thi≤ way¼á selec⌠ ╙ froφ thσ Maiε Menu¼ and¼ ì
iµ yo⌡ wan⌠ t∩ checδ thσ filσ yo⌡ havσ jus⌠ finisheΣ editing¼á typσ ^╥ ì
wheε yo⌡ arσ askeΣ fo≥ thσ namσ oµ thσ file«á Wheε TW½ i≤ finished¼ i⌠ ì
wil∞ lanΣ yo⌡ straigh⌠ bacδ iε you≥ document¼ witΦ thσ newl∙ correcteΣ ì
version written back to disk. Use ^KQ to get back to Command level.ì
.PAè IMPROVEMENT╙_FO╥_TH┼_ETI-66╕_E-PRO═_PROGRAMMER
Bil∞ Tait« VK3YK╘ 23/08/8┤
DiΣá yo⌡á builΣ thσ TO═ MOFFA╘ E-Proφ programme≥ (ETI-668⌐ ?¼á d∩á yo⌡ ì
finΣá thσá rese⌠á switch,thσ ste≡ switcΦ anΣ thσá A1▓á addres≤á switcΦ ì
tediou≤ t∩ operatσ ?¼á theε thesσ improvement≤ coulΣ bσ jus⌠ wha⌠á yo⌡ ì
need.
1« Automatiπ RESE╘ unde≥ prograφ control
2« Automatiπ STE╨ t∩ correc⌠ addres≤ iε E-PRO═ unde≥ prograφ
control.
3« Recove≥ froφ error-- Restar⌠ o≥ Jum≡ t∩ monitor.
4« Automatiπ generatioε oµ thσ A1▓ addres≤ linσ wheε required.
5« Fas⌠ read,tes⌠ anΣ verify.
6« Prograφ detect≤ positioε oµ Read/Prograφ switcΦ anΣ prompt≤
correc⌠ operation.
Hardwarσ modifications:
=======================
Obtaiεá aε origina∞ circui⌠ diagraφ anΣ comparσ witΦ thσ modifieΣ cir-ì
cui⌠ [whicΦ caε bσ provideΣ iµ yo⌡ writσ t∩ Microbuτ Australißá - it'≤ ì
not published here to save space. Ed]
Thσá read/prograφ switcΦ i≤ rewireΣ t∩ pu⌠ ß 4K╖ resisto≥ iεá paralle∞ ì
witΦá thσá timinτ resisto≥ (R10⌐ oµ thσ seconΣ monostablσ wheε iεá thσ ì
reaΣ mode«á Thi≤ wil∞ shorteε it≤ pulsσ t∩ abou⌠ 2m≤ pe≥ byte« Thi≤ i≤ ì
useΣ iε thσ Read/Test/Verif∙ modes.
Thσá RESE╘á switcΦ i≤ replaceΣ witΦ ß 0.0▒ capacito≥ chargeΣ viß ßá 1═ ì
resisto≥ connecteΣ t∩ thσ outpu⌠ oµ thσ firs⌠ monostablσ (IC│ piε 13)« ì
Normall∙á thσá dut∙á cyclσ herσ i≤ s∩ lo≈á tha⌠á thσá capacito≥á neve≥ ì
charges¼ bu⌠ ß rapiΣ burs⌠ oµ I/O≤ wil∞ effec⌠ ß rese⌠ oµ thσ counter¼ ì
anΣá thσ dischargσ timσ i≤ lonτ enougΦ t∩ masδ thσ clocδ pulse≤á whicΦ ì
arσ generated.
Cu⌠ thσ tracδ joininτ thσ READ┘ anΣ STROB┼ line≤ (pin≤ ╖ anΣ 1╡ oµ thσ ì
1╡á piεá connector⌐ ,anΣ wirσ thσ STROB┼ linσ (piε 15⌐ t∩ IC│ piεá 10« ì
Thi≤á poin⌠ i≤ lo≈ durinτ read,test,verif∙ functions,bu⌠á pulse≤á higΦ ì
wheεá thσá switcΦ i≤ se⌠ t∩ program,thi≤ generate≤ aε interrup⌠á whicΦ ì
thσ prograφ catches.
Thσ switcΦ whicΦ control≤ thσ A1▓ addres≤ linσ i≤ removeΣ anΣ replaceΣ ì
witΦ anothe≥ 4040┬ I├ wireΣ iε a≤ follows¼ Piε 1╢ t∩ ½ ╡ volts¼ piε ╕ ì
t∩ Gnd¼á piε 1▒ t∩ piε 1▒ oµ IC▓ (reset)¼á piε 1░ t∩ piε ▒ oµ IC▓ (A1▒ ì
line)¼á piε ▒ t∩ thσ A1▓ linσ (piε ▓ oµ thσ E-PRO═ socket)«á Al∞ othe≥ ì
output≤á caεá bσ ignored«á ╔ mounteΣ minσ oε ß smal∞ piecσá oµá matri° ì
boarΣ attacheΣ t∩ onσ oµ thσ maiε boarΣ suppor⌠ pillars«á Incidentall∙ ì
iµ the∙ eve≥ develo≡ 64╦ E-PROM╙ yo⌡ no≈ havσ al∞ thσ addres≤ line≤ t∩ ì
handlσ them«
Al∞ thesσ modification≤ arσ showε oε thσ modifieΣ circui⌠ diagram« Thσ ì
hole≤á lef⌠á iε thσ fron⌠ pane∞ b∙ thσ remova∞ oµ thσ switche≤ caεá bσ ì
useΣá t∩ moun⌠ tw∩ LE─ indicators,onσ a≤ suggesteΣ b∙á Geofµá Nicholl≤ ì
(ETI-Jaεá 1984⌐á t∩á indicatσ thσ Read/Prograφ mode«á Anothe≥á caεá bσ ì
connecteΣá t∩á thσ ½ ╡ Vol⌠ suppl∙ viß 27░ ohφá resisto≥á t∩á indicatσ ì
Powe≥ on.
.paè Operation:
=========╜
Ensurσá thσ READ/PROGRA═ switcΦ i≤ iε thσ REA─ mode«á Wheε thσ prograφ ì
i≤ executeΣ i⌠ firs⌠ ask≤ fo≥ E-PRO═ Address¼á iµ yo⌡ wisΦ t∩á prograφ ì
froφ thσ beginninτ oµ thσ E-proφ theε ente≥ 000░ « Iµ yo⌡ alread∙ havσ ì
ßá prograφ iε thσ E-Proφ startinτ a⌠ 000░ anΣ yo⌡ wisΦ t∩ inser⌠á you≥ ì
ne≈á prograφá afte≥ it,theε givσ thσ addres≤ oµ thσ nex⌠ vacan⌠á area« ì
Fo≥á examplσá iµ you≥ E-Proφ contain≤ ß prograφ whicΦá occupie≤á spacσ ì
froφá 000░ t∩ 0297¼á theε thσ nex⌠ prograφ coulΣ bσ inserteΣ a⌠á 0300¼ ì
thi≤á woulΣá leavσ ß couplσ oµ sparσ byte≤ t∩ identif∙ thσá enΣá oµá ß ì
prograφá area.Typσá iε 030░ ,thσ prograφ wil∞ automaticall∙á ste≡á thσ ì
addres≤á counte≥ t∩ thσ designateΣ address«á Thi≤ counte≥ i≤ rese⌠á a⌠ ì
thσ star⌠ oµ eacΦ operatioε unde≥ softwarσ control.
Nex⌠á ente≥á thσ star⌠ anΣ finisΦ addresse≤ normally¼á theε ente≥á thσ ì
desireΣá function«á Iµá thi≤ wa≤ - Program- thσá messagσá "SwitcΦá t∩ ì
Prograφ anΣ hi⌠ returnó wil∞ bσ displayed¼á follo≈ thσ instructioε anΣ ì
you≥á E-Proφ wil∞ bσ programmeΣ correctly«á Iµ i⌠ wa≤ ß 276┤ theεá thσ ì
prograφá wil∞ automaticall∙ generatσ thσ A1▓ addres≤ linσ a≤á requireΣ ì
b∙á thσ star⌠ anΣ finisΦ addresses«á A⌠ thσ conclusioε oµá programminτ ì
thσá messagσá "SwitcΦá t∩ ReaΣ anΣ hi⌠ returε óá i≤á displayed¼á agaiε ì
follo≈á instruction≤á anΣ yo⌡ wil∞ bσ returneΣ t∩ thσ star⌠á oµá operì
ations«á Thσá samσ procedurσ i≤ useΣ t∩ ReaΣ Tes⌠ o≥ Verif∙á thσá Roφ ì
usinτ thσ appropriatσ command.
Iµá yo⌡ happeε t∩ strikσ aε erro≥ durinτ thσ Tes⌠ o≥ Verif∙ operation¼ ì
thσ prograφ wil∞ offe≥ yo⌡ thσ choicσ oµ Restartinτ thσ sequencσ agaiε ì
o≥á enterinτ thσ Monito≥ t∩ examinσ thσ memor∙ image,(yo⌡ ma∙ bσá ablσ ì
t∩ seσ wha⌠ wen⌠ wronτ anΣ fi° it)«á Thσ E-Proφ prograφ caε alway≤á bσ ì
restarteΣ witΦ ß G***¬ instructioε froφ thσ monitor.
SOFTWARE:
=========
Thσá softwarσ ha≤ beeε modifieΣ t∩ allo≈ thesσ improvement≤ anΣ ß ful∞ ì
sourcσá codσá i≤ attached«á Thσ prograφ i≤ ORGE─ a⌠ 040░á bu⌠á caεá bσ ì
assembleΣá almos⌠á anywherσá yo⌡ finΣ convenient,jus⌠ changσá thσá OR╟ ì
addres≤ a⌠ thσ start« ╔ havσ minσ iε ROM¼ alonτ witΦ ß numbe≥ oµ othe≥ ì
usefu∞ routines¼ a⌠ C00░ anΣ cal∞ theφ witΦ thσ PA╦ commanΣ a≤ needed.
Acknowledgements:
=================
Toφ Moffa⌠ ¼á ET╔ FeΓ 1983« Geofµ Nicholls¼ ET╔ Jaε 1984« Viπ Stonσ ì
(software).
*******************
áááá;************************************************
áááá╗ Eproφ programmer(ET╔ - 668⌐ improved
áááá╗ Softwarσ mod≤ b∙ Viπ Stone¼ Bil∞ Tait.
áááá ááá OR╟ 0400H
áááá áááá L─ BC,400╚ ;CLEA╥ SCREEN
ááááSTAR╘ L─ HL,0F000H
ááááCL╥ L─ (HL),20H
áááá IN├ HL
áááá BI╘ 3,H
áááá J╥ Z,CLR
áááá;Ente≥ star⌠ anΣ finisΦ addresses
áááá;
áááá áááá L─ HL,MS╟ ;POIN╘ T╧ MESSAGES
áááá L─ BC,0F08DH
áááá áááá CAL╠ MES╙ ;SHO╫ TITLEèáááá CAL╠ RESE╘ ;RESE╘ COUNTER
áááá áááá L─ BC,INTRP│ ;NUL╠ INTERRUP╘ ROUTINE
áááá áááá L─ (88H),BC
áááá áááá L─ BC,0F115H
áááá áááá CAL╠ MES╙ ;EPRO═ ADDRESS
áááá áááá CAL╠ ADD╥ ╗ T╧ DE
áááá ááááSTLOO╨ L─ A,─ ;CHEC╦ FO╥ 0
áááá áááá O╥ E
áááá áááá J╥ Z,STLPE╪ ;FINISHE─ STEPPING
áááá áááá I╬ A,(0⌐ ;STE╨ COUNTER
áááá áááá L─ BC,0080H
áááá áááá CAL╠ DELAY
áááá áááá DE├ DE
áááá áááá J╥ STLOOP
áááá ááááSTLPE╪ L─ BC,0F195H
áááá áááá CAL╠ MES╙ ;SHO╫ STAR╘ ADDRESS
áááá áááá CAL╠ ADDR
áááá áááá PUS╚ DE
áááá áááá L─ BC,0F215H
áááá áááá CAL╠ MESS
áááá áááá CAL╠ ADDR
áááá áááá L─ BC,0F295H
áááá áááá CAL╠ MES╙ ;SHO╫ COMMAND
áááá áááá;
áááá áááá;Ente≥ command¼ theε jump
áááá áááá;
áááá ááááCO═ CAL╠ 8006╚ ;GE╘ KEY
áááá áááá C╨ 10H
áááá áááá J╥ Z,PROG
áááá áááá C╨ 12H
áááá áááá J╥ Z,READ
áááá áááá C╨ 14H
áááá áááá J╥ Z,TEST
áááá áááá C╨ 16H
áááá áááá J╥ Z,VRFY
áááá áááá C╨ 03H
áááá áááá J╥ Z,CLSC╥ ;RESTART
áááá áááá C╨ 1BH
áááá áááá J╨ Z,EXI╘ ;JUM╨ T╧ MONITOR
áááá CLSCR LD BC,400H
áááá JR START
áááá ;
áááá ;Program from memory to EPROM
áááá ;
áááá PROG LD HL,INTRP2 ;SET INT VEC FOR
áááá LD (88H),HL ; FOR LONG DELAY
áááá áááá LD HL,PROGM
áááá LD A,0FH ;SET PIO FOR OUTPUT
áááá CALL INIT+2
áááá LD BC,0F315H ;SET MODE
áááá LD HL,SWPROG
áááá CALL MESS
áááá CALL 8006H
áááá LD BC,0F315H
LD HL,SPACES
CALL MESS
POP HL
áááá PROG1 LD A,(HL) ;GET BYTE FROM MEMORY
áááá OUT (0),A ;SEND IT TO EPROM
áááá CALL SHODL ;SHOW ADDR THEN DELAY
áááá PROGR JR PROG1
áááá ;
áááá ;read from EPROM to memory
áááá ;
áááá READ LD HL,READM
áááá CALL INIT
áááá POP HL
áááá READ1 IN A,(0) ;BRING IN A BYTEèáááá LD (HL),A ;STORE IT IN MEMORY
áááá CALL SHODL
áááá JR READ1
áááá ;
áááá ;TEST for compete EPROM erasure
áááá ;
áááá TEST LD HL,TESTM
áááá CALL INIT
áááá POP HL
áááá TEST1 IN A,(0) ;GET BYTE FROM EPROM
áááá CP 0FFH ;IS IT ERASED
áááá JR NZ,ERROR
áááá CALL SHODL
áááá JR TEST1
áááá ;
áááá ;VERIFY memory and EPROM are the same
áááá ;
áááá VRFY LD HL,VRFYM
áááá CALL INIT
áááá POP HL
áááá VRFY1 IN A,(0) ;GET BYTE FROM EPROM
áááá LD C,(HL) ;GET BYTE FROM MEMORY
áááá CP C ;SAME?
áááá JR NZ,ERROR
áááá CALL SHODL
áááá JR VRFY1
áááá ;
áááá ;Show an error message
áááá ;
áááá ERROR LD HL,ERRM
áááá LD BC,0F319H
áááá CALL MESS
áááá LD B,7
áááá CALL 800CH ;BEEP
áááá LD HL,MESS1
áááá LD BC,0F380H
áááá CALL MESS
áááá CALL 8006H
áááá CP 1BH
áááá JP Z,EXIT
áááá CP 03
áááá JR NZ,ERROR
áááá LD BC,400H
áááá POP HL
áááá JP START
áááá EXIT JP 0C003H ;ENTER MONITOR
áááá ;Show hl and do time delay
áááá ;
áááá SHODL LD BC,0F2A4H ;SCREEN ADDR
áááá LD A,0A0H
áááá LD (BC),A ;SHOW WHITE SPACE
áááá INC BC
áááá INC HL
áááá LD A,H
áááá CALL SHOW ;SHOW H REG
áááá LD A,L
áááá CALL SHOW ;SHOW L REG
áááá LD A,0A0H
áááá LD (BC),A ;SHOW A WHITE SPACE
áááá LD BC,0080H ;2 MS DELAY
áááá EI ;IF PROGRAMMING, INTERRUPT
áááá CALL DELAY ; WILL CHANGE BC
áááá DI
áááá PUSH HL
áááá SBC HL,DE
áááá POP HL
áááá RET C ;FINISHED?
áááá POP HLèáááá LD DE,PROGR ;SEE IF COMMAND WAS P
áááá SBC HL,DE ;CARRY IS CLEAR
áááá ; CALL Z,INTRP1 ;YES, MAKE THE SWITCH (OMIT)
áááá LD BC,28FH ;PARTIAL SCREEN CLEAR
áááá JP START
áááá ;
áááá ; DELAY DEPENDS ON BC
áááá DELAY DEC BC
áááá LD A,B
áááá OR C
áááá JR NZ,DELAY
áááá RET
áááá ;
áááá ;sHOW a REG AS HEX VALUE
áááá ;
áááá SHOW PUSH AF
áááá RRCA
áááá RRCA
áááá RRCA
áááá RRCA
áááá CALL $+4
áááá POP AF
áááá AND 0FH
áááá ADD A,0B0H
áááá CP 0BAH
áááá JR C,$+4
áááá ADD A,7
áááá LD (BC),A
áááá INC BC
áááá RET
áááá ;
áááá ;Enter an address,show it and put in de
áááá ;
áááá ADDR CALL $+4
áááá LD D,E
CALL KEY
áááá RLCA
áááá RLCA
áááá RLCA
áááá RLCA
áááá LD E,A
áááá CALL KEY
áááá OR E
áááá LD E,A
áááá RET
áááá ;
áááá ;Get a key, convert to hex and show it
áááá ;
áááá KEY INC BC
áááá KEY1 CALL 8006H ;KEY IN A
áááá LD (BC),A
áááá SUB 30H ;CONV ASCII TO HEX
áááá JR C,KEY1 ;IF LESS THAN 0
áááá CP 0AH
áááá RET M ;IF 0-9
áááá SUB 7
áááá CP 0AH
áááá JR C,KEY1 ;IF LESS THAN 0A
áááá CP 10H
áááá JR NC,KEY1 ;IF MORE THAN 0F
áááá RET
áááá ;
áááá ;Initialize the PIO and/show message
áááá INIT LD A,4FH ;SET PIO FOR INPUT
áááá OUT (1),A
áááá MESS LD A,(HL)
áááá INC HL
áááá CP '$'èáááá RET Z
áááá LD (BC),A
áááá INC BC
áááá JR MESS
áááá ;
áááá ;
áááá MSG DEFM 'MICROBEE '
áááá DEFM 'EPROM PROGRAMMER$'
áááá DEFM 'EPROM address? $'
áááá DEFM 'Start address? $'
áááá DEFM 'Finish address?$'
áááá DEFM 'Command? $'
áááá ERRM DEFM 'ERROR $'
áááá SWREAD DEFM 'Switch to READ, hit return$'
áááá SWPROG DEFM 'Switch to PROG, hit return$'
áááá SPACES DEFM ' $'
áááá ;
áááá MESS1 DEFM 'Hit BREAK to Restart. ESC returns to monitor$'
áááá ;Command labels - reverse video
áááá ;
áááá PROGM DEFW 0D0A0H ; P
áááá DEFW 0CFD2H ;RO
áááá DEFW 24C7H ;G$
áááá READM DEFW 0D2A0H ; R
áááá DEFW 0C1C5H ;EA
áááá DEFW 24C4H ;D$
áááá TESTM DEFW 0D4A0H ; T
áááá DEFW 0D3C5H ;ES
áááá DEFW 24D4H ;T$
áááá VRFYM DEFW 0D6A0H ; V
áááá DEFW 0C6D2H ;ER
áááá DEFW 24D9H ;Y$
áááá ;
áááá ;RESET THE COUNTER AND ENSURE READ MODE
áááá ; IF NOT, AN INTERRUPT WILL OCCUR
áááá ;
áááá RESET LD A,97H
áááá OUT (1),A
áááá OUT (1),A
áááá LD A,0FH ;SET OUTPUT
áááá OUT (1),A
áááá LD DE,INTRP1 ;SET INT VECT
áááá LD (88H),DE
áááá LD DE,1000H ;LOOP SIZE
áááá RLOOP EI
áááá LD A,0FFH ;OUTPUT FF
áááá OUT (0),A
áááá DEC DE
áááá LD A,D
áááá OR E
áááá JR NZ,RLOOP
áááá DI
áááá LD A,4FH ;SET INPUT
áááá OUT (1),A
áááá RET
áááá ;
áááá ;AN INTERRUPT HERE MEANS SWITCH SET TO READ
áááá ;
áááá INTRP1 PUSH HL
áááá LD BC,0F315H
áááá LD HL,SWREAD
áááá CALL MESS
áááá CALL 8006H
áááá LD BC,0F315H
áááá LD HL,SPACES
áááá CALL MESS
áááá POP HL
áááá RETIèáááá ;
áááá ;INTERRUPT HERE SETS BC FOR 50MS DELAY
áááá ;
áááá INTRP2 LD BC,1E00H
áááá INTRP3 RETI ;ENTER HERE FOR NULL INTERRUPT ROUTINE
áááá ;
áááá END
.paè AN_EXPLANATION_ABOUT_ELECTRICITY.
John Buxton
╔á wa≤ neve≥ taugh⌠ electricit∙ a⌠ school¼á no≥ wa≤ i⌠ ß topiπ oµ ì
dinne≥ tablσ conversatioε betweeε m∙ parents«á Bu⌠ witΦá reading¼á anΣ ì
havinτá t∩á changσ ligh⌠ bulb≤ o≥ tunσ iε ß transisto≥ radio¼á ╔á havσ ì
pickeΣ u≡ ß prett∙ sounΣ workinτ knowledgσ oµ electrica∞ matters¼ It'≤ ì
no⌠ comprehensive¼á GoΣ knows«á ╔ stil∞ can'⌠ full∙ understanΣ wh∙ yo⌡ ì
can'⌠á boi∞ aε egτ oε aε electriπ guita≥ o≥ ruε ß Basiπ prograφá oεá ß ì
washinτ machine.
Mos⌠á electricit∙á i≤ manufactureΣ iε powe≥ station≤ wherσ i⌠á i≤ ì
feΣ int∩ wire≤ whicΦ arσ theε wounΣ arounΣ largσ drums.
Somσ electricity¼á howeve≥ doe≤ no⌠ neeΣ t∩ g∩ alonτ wires╗á tha⌠ ì
useΣ iε lightninτ fo≥ example«á Thi≤ kinΣ oµ electricit∙ i≤ no⌠ generì
ated¼ bu⌠ jus⌠ hang≤ abou⌠ iε thσ air¼ loose.
Electricit∙ make≤ ß lo≈ humminτ noise«á Thi≤ noisσ ma∙ bσ pitcheΣ ì
a⌠á differen⌠ level≤ fo≥ usσ iε doo≥ bells¼á telephone≤á anΣá electriπ ì
organs.
Electricit∙á ha≤á t∩á bσ earthed¼á tha⌠ i≤ t∩ sa∙ i⌠á ha≤á t∩á bσ ì
connecteΣ t∩ thσ grounΣ beforσ i⌠ caε function¼á excep⌠ iε thσ casσ oµ ì
aircraft¼ whicΦ havσ separatσ arrangements.
AlthougΦá electricit∙ doe≤ no⌠ leaδ ou⌠ oµ aε empt∙ powe≥á point¼ ì
tha⌠ powe≥ poin⌠ is¼á nevertheless¼ livσ iµ yo⌡ happeneΣ t∩ shovσ you≥ ì
finge≥ iε i⌠ wheε thσ switcΦ i≤ on«á Iµ i⌠ i≤ no⌠ leaking¼á wha⌠ i≤ i⌠ ì
doing?
Electricit∙ i≤ madσ u≡ oµ tw∩ ingredients¼ negativσ anΣ positive« ì
Onσá ingredien⌠ travel≤ alonτ ß wirσ covereΣ iε reΣ plastic¼á anΣá thσ ì
othe≥ alonτ ß wirσ covereΣ iε blacδ plastic« Wheε thesσ tw∩ wire≤ mee⌠ ì
togethe≥á iε wha⌠ wσ cal∞ ß plug¼á thσ differen⌠ ingredient≤ arσ mixeΣ ì
t∩ forφ wha⌠ wσ cal∞ electricity.
Electricit∙á ma∙á bσ storeΣ iε batteries«á Biτ batterie≤á d∩á no⌠ ì
necessaril∙á holΣ morσ electricit∙ thaε smal∞ batteries«á Iε biτá batì
terie≤ electricit∙ i≤ jus⌠ shoveΣ in¼á whils⌠ iε smal∞ batterie≤á (fo≥ ì
transistors⌐ i⌠ i≤ packeΣ flat.
┴á switcΦ control≤ ß smal∞ clam≡ o≥ vice¼á whicΦ grip≤ thσá wire≤ ì
ver∙ harΣ s∩ tha⌠ thσ electricit∙ canno⌠ ge⌠ through«á Wheε thσ switcΦ ì
i≤ flickeΣ on¼á thσ wirσ i≤ relaxeΣ anΣ thσ electricit∙ travel≤ t∩ thσ ì
ligh⌠ bulΓ wherσ ß bi⌠ oµ wire¼ calleΣ thσ element¼ i≤ lef⌠ bare« herσ ì
fo≥ thσ firs⌠ time¼á wσ caε actuall∙ seσ thσ electricity¼á iε thσ forφ ì
oµ ß spark«á Thi≤ sparδ i≤ enlargeΣ man∙ man∙ time≤ b∙ thσ curveΣ bulΓ ì
whicΦ i≤ madσ oµ magnifyinτ glass.
╔ havσ no⌠ toucheΣ oε fusσ wire«á I⌠ ha≤ alway≤ amazeΣ mσ tha⌠ aε ì
industr∙á whicΦ i≤ s∩ enterprisinτ iε mos⌠ respect≤ - thσ inventioε oµ ì
colo≥á electricit∙á fo≥ usσ iε traffiπ light≤ anΣá thσá harnessinτá oµ ì
negativσá electricit∙ fo≥ refrigeratioε arσ tw∩ example≤ tha⌠ comσá t∩ ì
minΣá - shoulΣá stil∞ bσ manufacturinτ fusσ wirσ to∩á thin«á B∙á usinτ ì
chickeεá wirσá ╔ no≈ havσ ß fusσ bo° whicΦ - eveε wheε thσá spin-drye≥ ì
burs⌠á int∩ flame≤ becausσ oµ to∩ mucΦ electricit∙ havinτ beeε feΣá t∩ ì
i⌠ - ha≤ fo≥ si° month≤ beeε a≤ impregnablσ a≤ thσ Banδ oµ England.
Iε somσ respects¼á ╔ kno≈ m∙ knowledgσ i≤ imperfect«á ╔ havσá no⌠ ì
ye⌠á exploreΣ thσ fielΣ oµ neoε sign≤ - ho≈ d∩ the∙ makσ thσá electriì
cit∙á movσ about┐á AnΣ thσ pop-u≡ toaste≥ - ho≈ doe≤ i⌠ kno≈ wheεá thσ ì
toas⌠ i≤ ready?
Logiπ woulΣ answe≥ al∞ thesσ questions¼á bu⌠ thσ ligh⌠ oε m∙ desδ ì
ha≤ jus⌠ gonσ out.
.paè00010 REM ////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\
00011 REM | << COMPAT >> |
00012 REM | Ex Computer Games for Business, School and Home. |
00013 REM | For TRS-80 Level 2 Basic. |
00014 REM | By J.V Nahaigian & W.S. Hodges. |
00015 REM | Modified for the MIcroBee. |
00016 REM | By Peter Collins. Nov '83. |
00017 REM \\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////
00018 REM
00020 REM A1()=Name of person one.
00021 REM A2()=Number of days past in year up to month.
00022 REM B1()=Name of person two.
00023 REM C3=Remainder of P2/33 (cognitive)
00024 REM D3=Remainder of P2/23 (physical)
00025 REM E1,F1,G3=Person one's birthday(mm,dd,yyyy)
00026 REM E2,D2,G2=Person two's birthday(mm,dd,yyyy)
00027 REM P2=Difference of days between person one's birthday and
person two's birthday.
00028 REM S3=Remainder of P2/28 (sensitivity)
00100 DIM A1(30),B1(30)
00110 DIM A2(12)
00120 FOR I=1 TO 12:READ A2(I):NEXT I
00130 DATA 0,31,59,90,120,151,181,212,243,273,304,334
00140 Y=0
00150 Y=Y+1
00155 CLS:PRINT "WHAT IS THE NAME OF PERSON ONE";:INPUT W0$
00190 PRINT\"WHAT IS ";W0$;"'S BIRTH DATE? (DD,MM,YYYY)";
00200 INPUT D,M,Y
00205 IF Y<1000 THEN 190
00210 E1=FLT(M):F1=FLT(D):G1=FLT(Y)
00220 GOSUB 770
00230 Z2=T1:K1=J1+1
00240 PRINT
00250 PRINT "WHAT IS THE NAME OF PERSON TWO";:INPUT X0$
00310 PRINT\"WHAT IS ";X0$;"'S BIRTH DATE? (DD,MM,YYYY)";
00320 INPUT D,M,Y
00325 IF Y<1000 THEN 250
00330 E2=FLT(M):D2=FLT(D):G2=FLT(Y)
00340 GOSUB 770
00350 P2=ABS(Z2-T1)
00360 K2=J1+1
00380 FOR I=1 TO 6:PRINT:NEXT I
00385 CLS
00390 UNDERLINE:PRINT "COMPATABILITY ANALYSIS":NORMAL
00400 PRINT
00410 REM
00420 PRINT "COMPATABILITY ANALYSIS OF ";W0$;" AND ";X0$;"."
00450 PRINT\
00470 PRINT W0$;" WAS BORN ON ";:M=INT(E1):GOSUB 950
00480 PRINT INT(F1);",";INT(G1);". IT WAS A ";:J1=K1:J=INT(J1):
J1=FLT(J)
00490 GOSUB 1070
00500 PRINT"."
00510 PRINT
00530 PRINT X0$;" WAS BORN ON ";:M=INT(E2):GOSUB 950
00540 PRINT INT(D2);",";INT(G2);". IT WAS A ";:J1=K2:J=INT(J1):
J1=FLT(J)
00550 GOSUB 1070
00560 PRINT "."
00570 PRINT
00580 Z1=P2
00590 Z7=Z1:Z=INT(Z7/23):Z7=FLT(Z):P3=ABS(((Z1/23)-Z7)*23)
00600 Z7=Z1:Z=INT(Z7/28):Z7=FLT(Z):S3=ABS(((Z1/28)-Z7)*28)
00610 Z7=Z1:Z=INT(Z7/33):Z7=FLT(Z):C3=ABS(((Z1/33)-Z7)*33)
00620 P5=ABS(100-((2*P3)*(100/23)))
00630 S5=ABS(100-((2*S3)*(100/28)))
00640 C5=ABS(100-((2*C3)*(100/33)))
00650 PRINT "PHYSICAL CYCLE COMPATABILITY (23-DAY) IS ";è00660 PRINT INT((P5*1000)/1000);"%"
00670 PRINT "SENSITIVITY CYCLE COMPATABILITY (28-DAY) IS ";
00680 PRINT INT((S5*1000)/1000);"%"
00690 PRINT "COGNITIVE CYCLE COMPATABILITY (33-DAY) IS ";
00700 PRINT INT((C5*1000)/1000);"%"
00710 PRINT TAB(48) "----------"
00720 PRINT "AVERAGE COMPATABILITY IS ";
00730 A5=(P5+S5+C5)/3
00740 PRINT INT((A5*1000)/1000);"%"
00760 GOTO 760
00770 Y1=FLT(Y)-1800
00780 Q1=Y1/4:Q=INT(Q1):Q1=FLT(Q)
00790 Q2=Q1/25:Q=INT(Q2):Q2=FLT(Q)
00800 Q3=(Y1+200)/400:Q=INT(Q3):Q3=FLT(Q)
00810 K3=0
00820 IF Q1*4<>Y1 THEN 860
00830 IF Q2*100<>Y1 THEN 860
00840 IF Q3*400-200<>Y1 THEN 860
00850 K3=1
00860 T1=365*Y1+Q1-Q2+Q3-K3
00870 X7=FLT(D):T1=T1+A2(M)+X7-1
00880 IF M<3 THEN 900
00890 T1=T1+K3
00900 IF INT(Y1/4)<> (Y1/4) THEN 930
00910 IF M>2 THEN 930
00920 T1=T1-1
00930 T7=T1:T7=T7/7:T=INT(T7):T7=FLT(T):J1=T1-7*T7
00940 RETURN
00950 IF M=1 THEN PRINT "JANUARY";:RETURN
00960 IF M=2 THEN PRINT "FEBRUARY";:RETURN
00970 IF M=3 THEN PRINT "MARCH";:RETURN
00980 IF M=4 THEN PRINT "APRIL";:RETURN
00990 IF M=5 THEN PRINT "MAY";:RETURN
01000 IF M=6 THEN PRINT "JUNE";:RETURN
01010 IF M=7 THEN PRINT "JULY";:RETURN
01020 IF M=8 THEN PRINT "AUGUST";:RETURN
01030 IF M=9 THEN PRINT "SEPTEMBER";:RETURN
01040 IF M=10 THEN PRINT "OCTOBER";:RETURN
01050 IF M=11 THEN PRINT "NOVEMBER";:RETURN
01060 PRINT "DECEMBER";:RETURN
01070 IF J1=1 THEN PRINT "WEDNESDAY";:RETURN
01080 IF J1=2 THEN PRINT "THURSDAY";:RETURN
01090 IF J1=3 THEN PRINT "FRIDAY";:RETURN
01100 IF J1=4 THEN PRINT "SATURDAY";:RETURN
01110 IF J1=5 THEN PRINT "SUNDAY";:RETURN
01120 IF J1=6 THEN PRINT "MONDAY";:RETURN
01130 PRINT "TUESDAY";:RETURN
01140 END
.PA è00010 REM /////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\
00011 REM | << TENNIS >> |
00012 REM | Ex Computer Games for Business, School and Home. |
00013 REM | For TRS-80 Level 2 Basic. |
00014 REM | By J.V. Nahigian & W.S. Hodges. |
00015 REM | Modified for the MicroBee. |
00016 REM | By Peter Collins. Oct'83. |
00017 REM \\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////
00018 REM
00020 REM A7=Type of serve (first serve)
00025 REM B=Way in which computer's shot went bad.
00030 REM B7=Type of serve (second serve)
00035 REM C=Probability of serving a let (first serve)
00040 REM C7=Type of shot attempted by player.
00045 REM D=Probability of making the serve (first serve)
00050 REM G=Probability of serving a let (second serve)
00055 REM H=Probability of making the serve (second serve)
00060 REM I=Probability of serve not being returned(first shot)
00065 REM N=Probability of serve not being returned (shot #2)
00070 REM Q=Positioning of player for return shot.
00075 REM R=Area of court shot aimed for.
00080 REM S=Probability of return being good.
00085 REM U=Way in which player's shot went bad.
00090 REM W=Probability of computer's return being good.
00095 REM Y=Players points. Y1=Games won by players
00097 REM Z=Points scored by computer. Z1=Games won by computer.
00100 CLS:INVERSE:PRINT " TENNIS GAME ":NORMAL:PRINT
00110 PRINT"THIS PROGRAM WILL SIMULATE A SINGLES TENNIS MATCH."
00120 PRINT "THERE ARE SEVERAL OPTIONS AVAILABLE TO YOU AS TO
POSITION,"
00130 PRINT "PLACEMENT, AND SPEED (TYPE) OF SHOT. THE KEY THAT YOU "
00140 PRINT "USE IS:":PRINT\ "POSITIONS (PLACEMENTS TOO):"
00150 PRINT
00160 PRINT "1";TAB(5);"LEFT BACKCOURT"
00170 PRINT "2";TAB(5);"RIGHT BACKCOURT"
00180 PRINT "3";TAB(5);"LEFT FORECOURT"
00190 PRINT "4";TAB(5);"RIGHT FORECOURT"
00195 K0$=KEY$:IF K0$="" THEN 195 ELSE CLS
00200 PRINT\ "SPEED (TYPE) OF SHOTS:":PRINT
00210 PRINT "1";TAB(5);"FAST SLAM":PRINT "2";TAB(5); "SLOW LOB":PRINT
00220 PRINT "ALWAYS SPECIFY YOUR OPTION BY NUMBER. YOU WILL BE
ALLOWED"
00230 PRINT "TO SERVE FIRST IN ALL GAMES.":PRINT
00240 PRINT "BACKHANDS AND FOREHANDS WILL BE ASSUMED.":PRINT
00250 PRINT "(6 x 4 GAME SETS)..... GOOD LUCK!!"
00260 Y=0:Z=0
00270 PRINT
00280 PRINT
00290 PRINT " SERVE! TYPE ";
00300 INPUT A7
00310 A=INT(RND*100)
00320 IF A7=2 THEN 410
00330 C=6
00340 D=51
00350 IF A<C THEN 390
00360 IF A<D THEN 590
00370 PRINT TAB(10);"SERVE IS BAD"
00380 GOTO 440
00390 PRINT TAB(10);"LET SERVE.. TAKE TWO."
00400 GOTO 290
00410 C=4
00420 D=66
00430 GOTO 350
00440 PRINT TAB(10);"SERVE AGAIN! TYPE ";
00450 INPUT B7
00460 E=INT(RND*100)
00470 IF B7=2 THEN 560
00480 G=5è00490 H=41
00500 IF E<G THEN 540
00510 IF E<H THEN 590
00520 PRINT TAB(10);"SERVE IS BAD ...DOUBLE FAULT!"
00530 GOTO 1160
00540 PRINT TAB(10);"LET SERVE... TAKE ONE"
00550 GOTO 440
00560 G=3
00570 H=76
00580 GOTO 500
00590 I=INT(RND*100)
00600 IF I>6 THEN 630
00610 PRINT TAB(10);"SERVE IS GOOD ...ACE!"
00620 GOTO 1140
00630 K=INT(RND*100)
00640 IF A7=2 THEN 700
00650 IF B7=2 THEN 700
00660 N=62
00670 IF K<N THEN 720
00680 PRINT TAB (10);"SERVE IS GOOD... CAN'T BE RETURNED!"
00690 GOTO 1140
00700 N=76
00710 GOTO 670
00720 PRINT TAB(10);"SERVE HAS BEEN RETURNED..."
00730 PRINT
00740 O=INT(4*RND)+1
00750 PRINT "WHAT IS YOUR POSITION ";
00760 INPUT Q
00770 IF O+Q=5 THEN 1110
00780 PRINT "WHAT TYPE OF SHOT ARE YOU MAKING ";
00790 INPUT C7
00800 PRINT "WHAT PART OF THE COURT ARE YOU AIMING FOR ";
00810 INPUT R:PRINT
00820 S=INT(RND*100)
00830 IF C7=2 THEN 860
00840 IF S<81 THEN 940
00850 GOTO 870
00860 IF S<91 THEN 940
00870 U=INT(RND*4)
00880 PRINT TAB(30);"YOUR RETURN IS BAD..."
00890 IF U<2 THEN 920
00900 PRINT TAB(33);"HIT OUT-OF-BOUNDS"
00910 GOTO 1160
00920 PRINT TAB(33);"HIT INTO NET"
00930 GOTO 1160
00940 PRINT TAB(30);"YOUR RETURN IS GOOD!"
00950 PRINT:A=INT(4*RND)
00960 IF R+A=5 THEN 1130
00970 W=INT(RND*100)
00980 IF C7=2 THEN 990
00990 IF W<84 THEN 1090
01000 GOTO 1020
01010 IF W<84 THEN 1090
01020 B=INT(RND*4)
01030 PRINT TAB(30);"COMPUTER'S RETURN IS BAD..."
01040 IF B<2 THEN 1070
01050 PRINT TAB(33);"HIT OUT OF BOUNDS"
01060 GOTO 1140
01070 PRINT TAB(33);"HIT INTO NET"
01080 GOTO 1140
01090 PRINT TAB(30);"COMPUTER'S RETURN IS GOOD!"
01100 GOTO 730
01110 PRINT " NICE TRY YOU WERE UNABLE TO REACH THAT SHOT-COURT #"O
01120 GOTO 1160
01130 PRINT " NICE SHOT-THE COMPUTER COULDN'T REACH IT"
01140 Y=Y+1
01150 GOTO 1170
01160 Z=Z+1è01170 PRINT
01180 PLAY22,1:UNDERLINE:PRINT " SCORE-POINTS YOU....ME ":NORMAL
01190 PRINT TAB(21);Y;" ";Z
01200 IF Y=4 THEN 1230
01210 IF Z=4 THEN 1250
01220 GOTO 270
01230 Y1=Y1+1
01240 GOTO 1260
01250 Z1=Z1+1
01260 FOR F=1 TO 60:PRINT "-";:NEXT F:PRINT
01270 PLAY20,1:PRINT TAB(15);"SCORE GAMES YOU...ME"
01280 PRINT TAB(32);Y1;" ";Z1
01290 IF Y1=6 THEN 1320
01300 IF Z1=6 THEN 1350
01310 GOTO 260
01320 PRINT
01330 PRINT "**** CONGRATULATIONS... YOU WON ****"
01340 GOTO 1370
01350 PRINT
01360 PLAY1,1;2,2;3,3:PRINT "**** AS PREDICTED, THE COMPUTER IS AGAIN TRIUMPHANT ****"
01370 PRINT
01380 PRINT "LET'S PLAY AGAIN SOMETIME. RIGHT NOW I NEED SOME "
01390 PRINT "COOLING FROM MY FANS!!! BYE!!!"
01400 END
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ $
$ FOR SALE $
$ $
$ ONE ONLY MITSUBISHI 4851 DISK DRIVE, 5.25" 40 TRACK DOUBLE SIDED $
$ DOUBLE DENSITY 396k BEE FORMAT $
$ $
$ BOB DENTON 233-1483 $
$ $
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$