home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug011.arc
/
1985OCT.CAT
< prev
next >
Wrap
Text File
|
1979-12-31
|
65KB
|
1,339 lines
.pl70
.PO0
.OP
.HE ---- T H E C A T C H E R ---- #
Thσ followinτ i≤ ß lis⌠ oµ thσ 1985/8╢ committeσ anΣ somσ oµ thσ peoplσ wh∩ ì
havσ offereΣ thei≥ assistance« Iµ therσ i≤ anythinτ yo⌡ requirσ o≥ an∙ hel≡ ì
yo⌡á caεá givσá us¼á pleasσ d∩ no⌠ hesitatσ t∩ contac⌠ an∙ onσá oµá us«á Iµ ì
phoning, please do so at a reasonable hour.
EXECUTIVE
PRESIDENT ANDREW BARFOOT 758-4822
VICE-PRESIDENT MICK HOLZINGER 354-6742
SECRETARY AXLE JOSCHT 859-1541
TREASURER KEVIN CARR 233-4629
PUBLI├ OFFICE╥ JOHN BUTTON 578-8145
COMMITTEE AND ASSISTANTS
Terry Murphy 520-6229 Graham Schulz 848-5485
Ray Han (B/H) 817-1371 John Buxton 758-5744
Jim Lobley 758-9169 David Soutar 836-3661
Gran⌠ Fores⌠ 847-872╕ Steveε Jepsoε 45-4226
Mike Thompson 82-5002 Robert Broomhead 546-3020
Wal Hansen Richard Collet (B/H) 690-8283
SERVICES PROVIDED BY MBUG AUSTRALIA
-------------------------------------------------------------
| EDITOR A.BARFOOT. P.O. BOX 157 NUNAWADING 3131 758-4822 |
|-----------------------------------------------------------|
|PUBLIC DOMAIN DISKS D.SOUTAR. P.O. BOX 45 CANTERBURY 3126|
| $5.00 ea. (std 5 1/4") disks. OTHER SIZES POA. |
| We supply disk. |
| POSTAL ORDERS ADD $1.50 per DISK |
|-----------------------------------------------------------|
| MODEM HIRE * GRAEME SCHULTZ. 848-5485 |
| $5.00 FIRST WEEK THEN $10.00 EACH ADDITIONAL WEEK |
| PLUS $25.00 DEPOSIT |
|-----------------------------------------------------------|
| BAZAAR * MICK HOLZINGER P.O. BOX 253 COBURG 3058 |
| FOR PRICES OF GOODS ON SALE IN THE BAZAAR, A PRICE LIST |
| WILL BE PUBLISHED EVERY 2nd MONTH. MAIL ORDERS ACCEPTED |
|-----------------------------------------------------------|
| DISK FORMAT COPYING * GRANT FOREST 874-8728 A.H. ONLY |
| 5" to 8" or 8" to 5" MOST FORMATS $2.00 PER DISKETTE |
| COPYING OF THE 3" C.I.A.B. IS ALSO CATERED FOR |
| FOR POSTAL ORDERS ADD $1.50 per Diskette |
|-----------------------------------------------------------|
| RBBS SYSTEM OPERATORS AND PROGRAMMERS |
| SYSOP GRANT FOREST |
| REMOTE SYSOPS: Ray Han. Mike Thompson. Richard Collett |
|-----------------------------------------------------------|
| 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) |
| NO CHARGE FOR NON RECURRING PRIVATE SALES ITEMS |
|-----------------------------------------------------------|
| THE CATCHER is published by MBUG AUSTRALIA INCORPORATED |
|All copyrights are reserved by MBUG AUSTRALIA INCORPORATED |
-------------------------------------------------------------è FROM-THE-CHIEF-MBUG**FROM-THE-CHIEF-MBUG**FROM-THE-CHIEF-MBUG**
╔á woulΣ likσ t∩ thanδ thosσ peoplσ wh∩ helpeΣ mσ oε m∙ firs⌠ cluΓá meetinτ ì
nigh⌠á a≤ Presiden⌠ fo≥ al∞ thei≥ assistancσ anΣ t∩ thanδ thosσ member≤ wh∩ ì
attendeΣ b∙ co-operatinτ anΣ goinτ alonτ witΦ thσ change≤ made.
Iεá casσ an∙ oµ yo⌡ don'⌠ know¼á Mikσ Holzinger¼á thσ Bazaa≥ maε (he'≤á no⌠ ì
reall∙ bazaar)¼ i≤ par⌠ oµ you≥ club« Hσ i≤ no⌠ aε outside≥ wh∩ come≤ alonτ ì
jus⌠á t∩ makσ profi⌠ ou⌠ oµ you«á Hσ work≤ fo≥ thσ cluΓ runninτ ou≥á "Sale≤ ì
Department"«á Iµ yo⌡ haven'⌠ noticeΣ thσ price≤ yo⌡ haΣ bette≥ havσ anothe≥ ì
look« Iµ yo⌡ caε bu∙ bette≥ elsewhere¼ tel∞ u≤ where¼ anΣ wσ will¼ whereve≥ ì
possible¼á ge⌠ i⌠ a⌠ ß bette≥ price«á T∩ givσ aε example¼á wσ bu∙ pape≥á iε ì
bulδ anΣ makσ les≤ thaε $1.0░ pe≥ pack« Thσ dolla≥ i≤ useΣ t∩ cove≥ ou≥ owε ì
cost≤ (banδ charges¼ stationar∙ etc.)« Pleasσ suppor⌠ you≥ club...
MEMBERSHIP:
Wheεá ßá persoε applie≤ t∩ become≤ ß membe≥ oµ thi≤ cluΓ therσ arσ quitσá ß ì
fe≈á step≤á tha⌠ havσ t∩ bσ taken«á Firstly¼á wheε ßá mai∞á applicatioεá i≤ ì
collected¼ i⌠ ha≤ t∩ bσ takeε t∩ thσ Treasure≥ s∩ hσ caε allocatσ ß receip⌠ ì
numbe≥á t∩ thσ ne≈ member«á Theε thσ forφ goe≤ t∩ thσ membershi≡á secretar∙ ì
wh∩ put≤ thσ detail≤ int∩ thσ datß base«á Wheε thσ detail≤ g∩ int∩ thσ datß ì
basσ wσ ge⌠ ß membershi≡ numbe≥ ou⌠ oµ it« Theε thσ ne≈ member¼ i≤ formall∙ ì
voteΣ int∩ thσ cluΓ (a⌠ thσ committeσ meeting)«á ┴ cop∙ oµ thσ datß basσ i≤ ì
theεá giveεá t∩á anothe≥á membe≥ oµ thσ committeσ wh∩á theεá make≤á u≡á thσ ì
membershi≡á cards«á Thesσá card≤á arσá theε takeε bacδá t∩á thσá membershi≡ ì
secretary¼á where¼á oε mailinτ night¼á usuall∙ iε timσ fo≥ thσ ne≈ membersº ì
2nΣá magazinσ thσ card≤ arσ placeΣ iε witΦ thσ Catche≥ anΣá posted«á Hencσ ì
thσ onσ montΦ dela∙ iε you≥ card« If¼ afte≥ readinτ this¼ yo⌡ qualif∙ fo≥ ß ì
carΣ anΣ havσ no⌠ ye⌠ go⌠ one¼á pleasσ writσ t∩ thσ membershi≡ secretar∙ a⌠ ì
ou≥ officia∞ address.
A≤á wσá havσ ß lo⌠ oµ ver∙ gooΣ materia∞ thi≤ montΦ wσ arσá includinτá fou≥ ì
extrß page≤ anΣ ╔ hopσ yo⌡ finΣ mos⌠ oµ i⌠ oµ usσ t∩ you«á A≤ morσ thaε 75Ñ ì
oµá ne≈ sale≤ oµ Microbee≤ arσ iε thσ forma⌠ oµ CIA┬ anΣ ßá simila≥á figurσ ì
pertain≤ fo≥ upgrade≤ (t∩ CIAB)¼ ╔ plan¼ whereve≥ possible¼ t∩ includσ botΦ ì
DIS╦á anΣ RO═ routine≤ iε BASI├ listings«á Iµ yo⌡ arσ planninτ t∩ submi⌠á ß ì
prograφ fo≥ publicatioε iε Thσ Catcher¼á PLEASE¼ iµ ha≤ routine≤ fo≥ savinτ ì
datßá t∩ disk¼á coulΣ yo⌡ als∩ includσ thσ applicablσ TAP┼ savinτ routines« ì
Don'⌠ forget¼ wσ PA┘ (rea∞ mone∙ $$ñ CASH⌐ fo≥ anythinτ origina∞ printeΣ iε ì
Thσá Catche≥á a⌠ appro° $5.0░ pe≥ page«á Thi≤ come≤ t∩ $100.0░á pe≥á norma∞ ì
issue« Arσ yo⌡ gettinτ you≥ sharσ oµ this┐ ╔ believσ thσ Basiπ listinτ las⌠ ì
montΦá ha≤ beeε takeε u≡ b∙ ß softwarσ housσ fo≥ re-salσá anΣá distributioε ì
througΦ thσ educatioε system«
Thσ ches≤ move≤ competitioε closinτ datσ ha≤ beeε extendeΣ b∙ onσ weeδ froφ ì
tha⌠á announceΣá a⌠á thσ Septembe≥ meeting«á Thσ ne≈ closinτá datσá i≤á no≈ ì
TUESDA┘ 15tΦ OCTOBER«á Entrie≤ receiveΣ late≥ thaε thi≤ wil∞ bσ to∩ latσ a≤ ì
judginτá wil∞ bσ helΣ oε thσ followinτ nigh⌠ a⌠ thσ committeσ meeting«á Thσ ì
winne≥ wil∞ bσ announceΣ a⌠ thσ Novembe≥ meeting«
Iµ yo⌡ arσ writinτ t∩ t∩ morσ thaε onσ membe≥ oµ thσ committeσ a⌠ thσá samσ ì
timσá coulΣ yo⌡ pleasσ pu⌠ eacΦ reques⌠ oε seperatσ paper«á Thi≤ wil∞ speeΣ ì
u≡ replie≤ froφ ou≥ end« Thanδ you.
DISCOUNT NUMBER 805
>ANDREW
FROM-THE-CHIEF-MBUG**FROM-THE-CHIEF-MBUG**FROM-THE-CHIEF-MBUG**è A LETTER FROM THE TAPE LIBRARIAN
Hi¼á ╔á havσá jus⌠á takeε ove≥ froφ Davσ iε thσ TAPELI┬ anΣá ╔á aφá lookinτ ì
forwarΣ t∩ makinτ i⌠ BIGGE╥ anΣ BETTE╥ (n∩ reflectioε oε Dave)«á Thank≤ fo≥ ì
ß joΓ wel∞ donσ Davσ (╔ thinδ ╔ speaδ fo≥ all).
┴á ne≈á Pos⌠ Officσ Bo° wil∞ allo≈ anyonσ wh∩ can'⌠ makσ i⌠ t∩ thσá meetinτ ì
thσ opportunit∙ oµ reserving¼ borrowinτ anΣ returninτ prograφ tapes«
Onσ majo≥ probleφ ha≤ beeε thσ shee≥ volumσ oµ cassette≤ iε thσ library« Iε ì
thσ past¼á we'vσ haΣ fivσ copie≤ oµ eacΦ prograφ cassettσ iε aε attemp⌠á t∩ ì
kee≡á thσ number≤ down¼á but¼á eveε thi≤ ha≤ resulteΣ iε ß virtua∞á Cheop'≤ ì
pyramiΣ oµ cassette≤ t∩ bσ lift¼á pack¼á un-pack¼á check¼á find¼ count¼ re-ì
count¼á copy¼á fix¼á et-bloody-cetera«á ╔ wil∞ endeavou≥ t∩ pu⌠ al∞ thσ OL─ ì
program≤á iε bunche≤ oµ │ o≥ ┤ pe≥ cassettσ dependinτ oε ho≈ lonτ the∙á arσ ì
anΣ onl∙ keepinτ tw∩ copie≤ oµ each«á Thi≤ shoulΣ makσ i⌠ easie≥ fo≥ yo⌡ t∩ ì
ge⌠ thσ earl∙ program≤ anΣ builΣ u≡ you≥ librar∙ oµ new(er⌐ programs«á Thi≤ ì
shoulΣ takσ effec⌠ ove≥ thσ nex⌠ fe≈ months....
Also¼á ß reminde≥ t∩ al∞ members¼ ne≈ anΣ old« Thσ TAPELI┬ i≤ fo≥ many¼ thσ ì
onl∙ sourcσ oµ program≤ fo≥ thei≥ Bees«á A≤ such¼á i⌠ i≤ imperativσ tha⌠ wσ ì
ge⌠ a≤ man∙ ne≈ program≤ a≤ possible« Pleasσ submi⌠ AN┘ program¼ whethe≥ i⌠ ì
bσá ßá game¼á utilit∙ o≥ an∙ prograφ tha⌠ coulΣ bσ oµ genera∞á interes⌠á t∩ ì
members«á Elsewherσá iε thi≤ issuσ i≤ ß ful∞ lis⌠ oµ tape≤ wσ havσ fo≥ hirσ ì
iε thσ tapσ library.
Thi≤ montΦ wσ havσ somσ reall∙ interestinτ addition≤ t∩ thσ tapσ library.
1⌐ AUS╘ ┴ geograph∙ lesson« (seσ wha⌠ yo⌡ kno≈ abou⌠ Aust⌐
2⌐ GOL╞ Everythinτ bu⌠ thσ 19tΦ hole.
3⌐ BRICK╙ Machinσ languagσ brickba⌠ game
4⌐ COMPA╘ Mumerologica∞ compatibilit∙ program
5⌐ PSYCH╧ Compute≥ psychiatris⌠ usinτ artificia∞ intelligence
Looδ ou⌠ nex⌠ montΦ fo≥ more...« Wa∞ Hansen.
FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--
Microbee:- Eproφ Programme≥ (A.T« Model⌐ $100¼ 64δ Roφ BoarΣ $40¼ Multiproφ ì
Interfacσ fo≥ Beσ $50¼ MicroworlΣ "OZ-LOGOó 8δ Roφ $20¼ Myteδ Wordprocesso≥ ì
8k Rom $20, Blank 2764 Rom Chip $7, 6264 Ram Chip $15.
Manuals supplied, Software package for Multiprom Board included.
Reasoεá fo≥ sale╗á upgradeΣ t∩ CIAB«á Wil∞ sel∞ seperatel∙ iµ requireΣ o≥ ß ì
special price of $210.00 for the lot.
Contact Doug Craigie P.O. BOX 3230 Alice Springs 5750 or Phone 089-52 5214.
FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--
HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??
Q: How do you get a machine code listing to the printer from the monitor?
A1: Get a disassembler ? Is there any better answer? 789-0369
Q║ Doe≤ anyonσ kno≈ thσ connection≤ fo≥ ß DP84░ Sta≥ Printe≥ "SERIALó t∩ ì
thσ CIAB« Thσ printe≥ ha≤ ß 1╢ piε pluτ markeΣ HRS6D« ╔ don'⌠ don'⌠ kno≈ iµ ì
the pin is standard or not? Lindsay Burt. 645-2299
HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??è SPHERE.MWB
A small listing to draw a ball/sphere on the screen.
100 rem GRAPHICS/MATHEMATICAL WARREN WILSON WOWSOFT SOFTWARE 1985 [145]
110 CLS:POKE220,25:INVERSE:CURS16,1:PRINT
"BASIC SPHERE By WARREN WILSON" [015]
120 CURS22,5: PRINT" Input size of sphere ":NORMAL [202]
130 CURS25,6: PRINT"[1] Large sphere": CURS25,7: PRINT"[2] Medium sphere":
CURS 25,8: PRINT"[3] Small sphere" [246]
140 CURS 21,10: INPUT"Which sphere number 1-3 ?";G [037]
150 IF G <=0 OR G =>4 THEN CURS21,10: PRINT [A50 32]: GOTO 120 [152]
160 IF G=1 : N1$="LARGR SPHERE":
G0=80: H0=15: G1=80: H1=45: G2=25: H2=45 132]
170 IF G=2: N1$="MEDIUN SPHERE":
G0=40: H0=7.5: G1=40: H1=22.5: G2=12.5: H2=22.5 [023]
180 IF G=3: N1$="SMALL SPHERE":
G0=20: H0=3.75: G1=20: H1=11.25: G2=6.25: H2=11.25 [100]
190 HIRES [021]
200 CURS0: PRINT N1$ [105]
210 FOR N=1 TO 700 [112]
220 S1=S1+0.009 [251]
230 S0=SIN(S1): C0=COS(S1) [184]
240 A=INT(G0*S0): B=INT(H0*C0) [126]
250 rem A=INT(80*S0): B=INT(15*C0) [151]
260 SET A+220, B+120 [176]
270 C=INT(G1*S0): D=INT(H1*C0) [135]
280 rem C=INT(80*S0): D=INT(45*C0) [154]
290 SET C+220, D+120 [183]
300 E=INT(G2*S0): F=INT(H2*C0) [135]
310 rem E=INT(25*S0): F=INT(45*C0) [148]
320 SET E+220, F+120 [181]
330 NEXT N [035]
340 CURS 17,14: PRINT "DO YOU WANT ANOTHER SPHERE Y/N ?" [080]
350 S1$=KEY$: IF S1$="" THEN 350 [067]
360 IF S1$= "y"OR S1$="Y" THEN 110 ELSE POKE 220,111:END [074]
VIDEO.MWB
00001 REM 10 December 1983. [049]
00005 CLS [023]
00007 K=1:J=-1 [015]
00010 PRINT " *** ";:UNDERLINE:PRINT "V I D E O G R A P H I C S";
:NORMAL:PRINT " ***" [101]
00020 PRINT:PRINT:PRINT"S TO GO RIGHT A TO GO LEFT W TO GO UP
Z TO GO DOWN" [112]
00025 PRINT "D MARKER: DEPRESS D ONCE FOR STARTING POINT, POSITION
CURSOR AND PRESS D AGAIN AND A LINE WILL BE DRAWN BETWEEN
THE 2 POINTS" [200]
0002╖ PRINT"╘ TEX╘ MODE« TYP┼ I╬ DESIRE─ CHARACTER╙ AN─ PRES╙ RETURNó [031]
00030 PRINT:PRINT "O TO TURN (PEN) ON F TO TURN (PEN) OFF" [072]
00040 PRINT:PRINT" HIT K AND THEN Y TO FILE DRAWING" [086]
00050 PRINT "HIRES OR LORES (H/L)";:INPUT C1$ [136]
00055 INPUT "NAME OF THIS FILE"D1$ [229]
00056 D1$=D1$+".GRA" [081]
00070 GOTO 4000 [100]
00080 CLS [074]
00090 IF C1$="H" THEN HIRES ELSE LORES [177]
00095 C=1:X=20:Y=20 [130]
00100 SET X,Y:IF J<>-1 THEN SET(J,O) [118] continued on page 14è PASCAL_FOR_BASIC_PROGRAMMERS
PART IX. Dixon Kenney
We'rσá no≈á goinτ t∩ adΣ t∩ ou≥ Inventor∙ Prograφ thσ procedurσá whicΦ ì
wil∞ finΣ an∙ onσ item«á Thi≤ procedurσ find≤ aε iteφ b∙ it≤ par⌠á number╗ ì
i⌠á coulΣá bσ rewritteε o≥ extendeΣ t∩ finΣ aε iteφá b∙á description¼á o≥ ì
whateve≥ fielΣ yo⌡ required« Here'≤ thσ codσ -
ááááProcedurσ Finditem;
ááááConst
áááá Heade≥ ╜ º ¬ FIN─ A╬ EXISTIN╟ ITE═ O╞ STOC╦ ¬ ';
ááááVar
áááá P╬ ║ Integer;
áááá YesN∩ ║ Char;
áááá Agaiε ║ Boolean;
áááá FounΣ ║ Boolean;
ááááBegin
áááá Assign(PartFile¼ FileName);
áááá Reset(PartFile);
áááá Agaiε :╜ True;
áááá Repeat
áááá ClrScr;
áááá Writeln¿ º ':20¼ Header);
áááá Writeln╗ Writeln;
áááá Write('Ente≥ thσ Par⌠ Numbe≥ oµ thσ Iteφ requireΣ ║ ');
áááá Readln(PN);
áááá WitΦ Par⌠ do
áááá Begin
áááá FounΣ :╜ False;
áááá Whilσ no⌠ EOF(PartFile⌐ anΣ no⌠ FounΣ do
áááá Begin
áááá Read(PartFile,Part);
áááá Iµ PartNuφ ╜ P╬ then
áááá FounΣ :╜ True;
áááá End;
áááá Iµ no⌠ FounΣ then
áááá Begin
áááá Writeln╗ Writeln;
áááá Write('Thi≤ iteφ doe≤ no⌠ exis⌠ ');
áááá End
áááá Else
áááá Begin
áááá Formwrite(Header);
áááá Iµ DeleteΣ then
áááá Begin
áááá GoToXY(10,2);
áááá Write('¬ DELETE─ *');
áááá End╗ √ oµ Iµ DeleteΣ }
áááá GoToXY(32¼ 4)╗ Write(PartNum);èáááá GoToXY(32¼ 5)╗ Write(Description);
áááá GoToXY(32¼ 7)╗ Write(Cost:8:2);
áááá GoToXY(32¼ 8)╗ Write(Retail:8:2);
áááá GoToXY(32,10)╗ Write(MinOH);
áááá GoToXY(32,11)╗ Write(MaxReorder);
áááá GoToXY(32,13)╗ Write(CurrentOH);
áááá End╗ √ oµ Elsσ .« }
áááá End;
áááá Writeln╗ Writeln;
áááá Write('D∩ yo⌡ wan⌠ t∩ looδ fo≥ anothe≥ par⌠ █ Y/╬ ▌ ┐ ');
áááá Read(YesNo);
áááá Iµ UpCase(YesNo)╜ 'Y'
áááá Then
áááá Begin
áááá Agaiε :╜ True;
áááá Reset(PartFile)
áááá End
áááá Else
áááá Agaiε :╜ False
áááá Unti∞ Agaiε ╜ False;
áááá Close(PartFile)
ááááEnd╗ √ Procedurσ FindIteφ )
Comments on the code -
Ou≥ majo≥ probleφ t∩ addres≤ i≤ thi≤ - wha⌠ happen≤ iµ thσ iteφ i≤ no⌠ ì
iε thσ datß list« Wσ coulΣ havσ writteε thσ codσ t∩ finΣ i⌠ likσ thi≤ -
áááááááááRepeat Read(PartFile) Until PartNum = PN;
However¼á iµ thσ iteφ i≤ no⌠ oε thσ list¼á thi≤ codσ wil∞ causσ thσ prograφ ì
t∩á "bomΓ outó witΦ ß run-timσ erro≥ ¿ I'vσ trieΣ it¼á s∩ ╔ kno≈ tha⌠á thi≤ ì
wil∞ happeε !⌐ S∩ wσ se⌠ tw∩ condition≤ -
i⌐á ReaΣá unti∞á thσ enΣ oµ thσ Filσ - Whilσá no⌠á EOF(filevariable⌐ ì
mean≤á tha⌠á eacΦá recorΣ wil∞ bσ reaΣ iε turεá unti∞á thσá recorΣá pointe≥ ì
reache≤ thσ EO╞ marker╗á thσ ReaΣ functioε wil∞ end¼ withou⌠ goinτ pas⌠ thσ ì
marker;
ii⌐ ReaΣ thσ filσ unti∞ thσ iteφ requireΣ i≤ found« Wσ se⌠ ß Booleaε ì
variablσ FOUN─ equa∞ t∩ FALS┼ wheε wσ ente≥ thσ loo≡ - i⌠ i≤ FALS┼ tha⌠ thσ ì
iteφ ha≤ beeε FOUND« Iµ wσ finΣ thσ item¼ thσ se⌠ thσ variablσ t∩ TRUE.
Thσá tw∩ condition≤ meaε tha⌠ thσ ReaΣ wil∞ continuσ whilσ i⌠ i≤á TRU┼ ì
botΦá tha⌠á wσ haven'⌠ reacheΣ thσ EnΣ oµ thσ Filσ anΣ als∩ thσ iteφá isn'⌠ ì
FounΣ ¿ NO╘ FOUN─ mean≤ tha⌠ FOUN─ i≤ FALS┼ )« However¼ a≤ sooε onσ oµ thσ ì
condition≤ become≤ TRU┼ - tha⌠ is¼á NO╘ EO╞ o≥ NO╘ FOUN─ becomσ eithe≥á EO╞ ì
o≥ FOUND¼ theε thσ ReaΣ loo≡ wil∞ terminatσ correctly.
Iµ thσ flaτ FOUN─ remain≤ FALS┼ wheε thσ EO╞ i≤ reached¼á theε wσ havσ ì
t∩á sa∙ tha⌠ thσ iteφ doesn'⌠ exis⌠ - whicΦ i≤ carrieΣ ou⌠ b∙ thσ I╞á blocδ ì
oµ thσ I╞ NO╘ FOUN─ par⌠ oµ thσ code« Iµ FOUN─ i≤ se⌠ t∩ TRUE¼ theε wσ caε ì
writσá ou⌠á thσá detail≤ oε t∩ thσ screeε - thσ ELS┼ par⌠ oµ thσá I╞á FOUN─ ì
block.
è In this block, notice the statement
If Deleted
Thσá fielΣá DELETE─ i≤ ß Booleaε fielΣ - i⌠ caε havσ eithe≥ oµá thσá value≤ ì
TRU┼ o≥ FALSE« Thσ wa∙ t∩ se⌠ ß conditioε oε ß Booleaε fielΣ i≤ thσ wa∙ wσ ì
havσ writteε it.
If Deleted means if the field Deleted is set to TRUE
If NOT Deleted means if the field Deleted is set to FALSE
We don't have to use the "=" or "<>" signs with Boolean variables.
Towards the end of the procedure, we have the function
UpCase(YesNo)
Thi≤ functioε take≤ an∙ alphabetiπ character≤ iε thσ variable¼á anΣá treat≤ ì
theφá al∞ a≤ iµ the∙ werσ Uppe≥ Casσ characters«á Iε ß previou≤ procedure¼ ì
wσ useΣ thσ phrase
If variable in [ 'Y', 'y' ]
This is an alternative way of doing the same thing.
Wheε wσ wrotσ thσ functioε EXISTS¼á wσ passeΣ ß valuσ t∩á it¼á througΦ ì
thσ paramete≥ º (Namσ ║á Filespec⌐ ║ Booleaε '« Wσ caε diagraφ it≤ workinτ ì
likσ thi≤ -
|------------------------|
If Exists(FileName) |v
|^ Function Exists (Name : Filename ) : Boolean;
| Begin
| Exists := (IOResult = 0)
|---------------------|
Wheε thσ functioε i≤ invoked¼ TurboPasca∞ make≤ ß copyô oµ thσ content≤ ì
oµá thσ operanΣ oµ thσ functioε (FileName)¼á whicΦ i≤ useΣ b∙ thσá variablσ ì
Namσ iε thσ Functioε itself«á Wheneve≥ thσ functioε i≤ called¼ thσ datß i⌠ ì
use≤á caεá bσ differen⌠ eacΦ timσ - thσ actua∞ valuσ i≤ substituteΣ iεá thσ ì
functioεá call«á Noticσá tha⌠á thσ variablσ i≤ declareΣá iεá thσá functioε ì
'titleºá - thi≤ i≤ calleΣ ß "forma∞ paramete≥ list"¼á anΣ thσ variable≤á d∩ ì
no⌠ neeΣ t∩ bσ declareΣ iε thσ usua∞ way« A⌠ thσ enΣ oµ thσ paramete≥ lis⌠ ì
i≤á thσ typσ oµ thσ resul⌠ thσ functioε use≤ - iε thi≤ casσ ß Booleaε ¿á i≤ ì
i⌠á TRU┼ tha⌠ thσ filσ exists¼á o≥ FALS┼ )«á Al∞ variable≤ declareΣá iεá ß ì
functioεá o≥á procedurσ arσ LOCA╠ t∩ tha⌠ block╗á tha⌠ is¼á the∙ canno⌠á bσ ì
accesseΣ b∙ an∙ othe≥ blocδ iε thσ program¼á unles≤ i⌠ i≤ calleΣ froφ ¿ anΣ ì
therefore¼ iε somσ wa∙ "nesteΣ in"⌐ thi≤ block« So¼ iε Functioε Exists¼ a≤ ì
sooε a≤ thσ functioε i≤ exited¼á thσ memor∙ useΣ b∙ thσ variablσ ╞ whicΦ wσ ì
havσá declareΣá here¼á a≤ wel∞ a≤ Namσ iε thσá forma∞á paramete≥á list¼á i≤ ì
releaseΣ b∙ thσ compiler¼ anΣ i≤ availablσ fo≥ useΣ again«
Thi≤á als∩á mean≤ that¼á iµ wσ havσ ß variablσ labelleΣ ╪ iε thσá maiε ì
program¼ ß variablσ labelleΣ ╪ caε als∩ bσ declareΣ here¼ a≤ i⌠ exist≤ iε ß ì
differen⌠ par⌠ oµ memory.
Iε thσ nex⌠ part¼á wσ wil∞ talδ abou⌠ Paramete≥ passinτ t∩ Procedures¼ ì
whicΦ i≤ aε extensioε oµ wha⌠ wσ havσ talkeΣ abou⌠ here«
è MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-
Thi≤á montΦá see≤ thσ changσ oµ thσ organization'≤ namσá froφá ApplieΣ ì
Technolog∙ t∩ microbeσ System≤ Ltd«
Wσ stil∞ ge⌠ enquirie≤ abou⌠ thσ dynamiπ RA═ machines¼á namel∙ thσ 64δ ì
anΣá thσá 128k«á ┴ numbe≥ oµ peripheral≤ caε no⌠ bσ connecteΣ oεá t∩á thesσ ì
microbee≤á becausσ therσ i≤ n∩ 5░ wa∙ expansioε there«á Thσ reasoε fo≥ thi≤ ì
iµá yo⌡á arσá unawarσ i≤ thσ disδ controlle≥ i≤á mounteΣá oεá thσá microbeσ ì
coreboarΣá insteaΣ oµ insidσ thσ disδ drivσ case«á Thσ 3┤ wa∙ expansioεá oε ì
thσá bacδá oµá thesσ machine≤ wil∞ pluτ int∩ an∙á shugar⌠á compatiblσá disδ ì
drive« Thσ 5░ wa∙ expansioε i≤ availablσ fo≥ thesσ machine≤ a≤ ß kit« I⌠ i≤ ì
mounteΣ underneatΦ thσ baseboard«á Therσ i≤ onσ probleφ though¼á user≤ witΦ ì
thσ microbeσ colou≥ optioε caε no⌠ fi⌠ thi≤ kit« Thi≤ i≤ becausσ thσ 5░ wa∙ ì
expansioε i≤ mounteΣ wherσ thσ colou≥ boarΣ is.
Now¼á thi≤á par⌠á oµ thσ columε wil∞ bσ dedicateΣ t∩ thσ modeφá users« ì
Telecom'≤ mem∩ system¼á Telemem∩ whicΦ ha≤ beeε u≡ fo≥ ß whilσ ha≤ releaseΣ ì
(quitσ somσ timσ ago⌐ aε informatioε account«á T∩ acces≤ thi≤á account¼á iµ ì
yo⌡ havσ ß 30░ bauΣ modeφ dia∞ 01921¼ o≥ 0192▓ anΣ 0192│ fo≥ 1200/120░ bauΣ ì
anΣ 1200/7╡ bauΣ respectively«á Yo⌡ shoulΣ hea≥ thσ familia≥ carrier«á Wheε ì
yo⌡á do¼á fli≡ contro∞ t∩ you≥ modem«á Yo⌡ shoulΣ seσ thσ Austpac'≤á signoε ì
comσá up«á Thσá followinτá i≤ wha⌠ yo⌡ shoulΣ get¼á pleasσá notσá tha⌠á thσ ì
character≤áá printeΣá iεá bolΣá arσá character≤á transmitteΣá b∙á Telecom'≤ ì
computer.
Austpac
?.memo
COM
User Name? austpac.news
Password? austpac
... try, and find out what comes next!!!
Raymond K.L. Han
Victorian Technical Support Manager,
Microbee Systems Ltd.
DEEPDENE 3103.
MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-COLUMN-MS-
PLEASE NOTE
NOTHE╥problem with CHECKSU═s relatinτ t∩ thσ 16δ versioε ha≤ beeε founΣ b∙ ì
ApplieΣ Technology. Please change line 120 as follows:
0012░ POKE 226,╖ ║ FOR ┴ ╜ 17╕ T╧ 18╕ STE╨ ▓ ║ POK┼ A,4╕ ║ POK┼ A+1¼ 11╖ ║ ì
NEXT A : POKE 226,1
should read
0012░ POKE 226,╖ ║ FOR ┴ ╜ 17╕ T╧ 18╕ STE╨ ▓ ║ POK┼ A,152 : POK┼ A+1¼ 58 ║ ì
NEXT A : POKE 226,1 áHINZ
è QUICK.MWB
I⌠á i≤ recommendeΣ thatÖ BEFOREé yo⌡ typσ iε thi≤ listinτ yo⌡ reaΣ thσ entirσ ì
listinτ first«á Thi≤ wil∞ givσ aε ideß oµ wha⌠ need≤ t∩ bσ donσ t∩ makσá i⌠ ì
worδ properly« Therσ arσ n∩ checksum≤ oε thi≤ listing≤ a≤ the∙ d∩ no⌠ coun⌠ ì
anythinτ tha⌠ come≤ afte≥ ß RE═ statement« Ö ED.
00010 REM ## FIRST BLOCK ##
00020REM#PABCDEFGHIJKLMNOP
00030REM~ Q U I C K Q U I C K Q U I C K Q U I C K Q U I C K
00040 REM~ (used to get text quickly onto the screen, from BASIC)
00050 REM~ THIS SOFTWARE WAS DEVELOPED BY WESTGATE SOFTWARE
00060 REM~ 02/07/1985
00070 REM~REM#BAC
00080 REM~REM ~HI
00090 REM~REM ~there
00100 REM~ The first REM has a # which tells the M/L program to get ready
00110 REM~for commands, the first letter (ie. B), says that there is
00120 REM~ASC("B")-64 lines of text (ie. 2 lines). While the next letter
00130 REM~is the line ASC("A")-64 (ie. line 1) for the text to be written.
00140 REM~The next REM has a ~ which indicates to the M/L program that
00150 REM~that text is to follow.
00160 REM~So,"HI"will be printed on line 1, and"there"will be printed on
00170 REM~line 3. The text can be any typable characters.
00180 REM~ NOTE: COMMMANDS MUST BE IN UPPER CASE
00190 REM ## SECOND BLOCK ##
00200REM#IABCDEFHIK
00210 REM~To call this routine, you use the USR command from BASIC in the
00220 REM~form of USR(address where poked, line number of command REM#).
00230 REM~The line no. of the command REM#, must be included, IT IS NOT
00240 REM~OPTIONAL. All the data for the M/L program, must be in blocks,
00250 REM~consisting of COMMAND LINE (ie. 10rem#------), followed by the
00260 REM~lines of text. NOTE: THE COMMAND LINE SHOULDN'T HAVE ANY SPACES.
00270 REM~The M/L program in the DATA, may be POKEd anywhere in memory, as
00280 REM~only relative branches are used in the M/L program.
00285 REM~ LIST THIS PROGRAM AS AN EXAMPLE
00290 REM *** BASIC PROGRAM ***
00300 CLS:CURS14,7:UNDERLINE:PRINT"POKING M/L PROGRAM INTO MEMORY":NORMAL
00310 FORT=0TO72:READF:POKE5*4096+T,F:NEXTT
00320 CLS:USR(5*4096,20)
00330 D=USR(8*4096+6):REM ** WAIT FOR KEYPRESS **
00340 CLS:USR(5*4096,200)
00350 D=USR(8*4096+6):REM ** WAIT FOR KEYPRESS **
00360 CLS
00370 REM ## DATA FOR M/L ROUTINE ##
00380 DATA 33,0,9,120,190,35,32,251,121,190,32,247,35,35,62,161,
190,32,240,62,35,190,35,32,252,126,214,64,71,229,126,35
00390 DATA 254,126,32,250,209,19,213,26,214,64,221,33,0,240,
17,64,0,61,40,4,221,25,24,249,126,254,13,40,8,221,119,0
00400 DATA 221,35,35,24,243,16,215,241,201 áHINZ
FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FO
Multiprom Boards assembled and tested. $85.00 with Wordbee.
(EDASM/DISSASSM/PASCAL also avialable) Phone Peter 434-5583
BEEMODEM 300 bd Any reasonable offer. Phone 560-3487
WANTED to buy: A printer to suit the Bee. Phone Geoff M. 211-1247
FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FOR-SALE-$$-FO è BACK-U╨ YOU╥ PROGRAMS
===================== Mark Bishop
Wσá woulΣá al∞á likσ t∩ kee≡ backu≡ copie≤ oµá ou≥á importan⌠á prograφ ì
tapes¼á o≥ wheε ou≥ disδ systeφ finall∙ arrive≤ transfe≥ thosσ program≤ t∩ ì
disk« Bu⌠ caε wσ ?
Ou≥á 'homemadeºá program≤á arσá eas∙ t∩á backup¼á bu⌠á mos⌠á recentl∙ ì
produceΣá commercia∞á machine-codσá program≤á havσá somσá forφá oµá copyinτ ì
protection«á Program≤ sucΦ a≤ 'Backupº b∙ Johε Buxtoε anΣ Jiφ Loble∙á wil∞ ì
makσá ßá 'mirro≥á imageº oµ man∙ M/├ program≤ includinτá thei≥á protection« ì
Unfortunatel∙á the∙ d∩ no⌠ worδ iε al∞ cases¼á anΣ arσ n∩ hel≡á iεá gettinτ ì
program≤ t∩ disk.
Thσá onl∙á completσá answe≥ i≤ t∩ removσ thσ protectioεá anΣá ge⌠á thσ ì
prograφá bacδá t∩á it'≤ origina∞ un-protecteΣ form«á Froφ therσá makinτá ß ì
backu≡ i≤ easy«á Removinτ protectioε caε sometime≤ bσ ß lonτ task¼ bu⌠ iµ ì
yo⌡á arσá thσá typσá tha⌠ like≤á puzzles¼á caεá bσá quitσá interestinτá anΣ ì
challanging.
Thi≤á articlσá i≤ no⌠ designeΣ t∩ hel≡ woulΣ bσá prograφá pirates¼á a≤ ì
prograφá piratinτá oµá tape≤ i≤ a≤ eas∙ a≤ connectinτá tw∩á tapσá recorder≤ ì
together«á A⌠á somσ timσ ever∙ compute≥ owne≥ ha≤ t∩ makσ hi≤ owεá ethica∞ ì
stanΣá oε prograφ stealing«á Iµ distributor≤ anΣ programmer≤ d∩ no⌠ ge⌠á ß ì
reasonablσá returε froφ thei≥ efforts¼á the∙ wil∞ sto≡ supportinτá Microbeσ ì
softwarσ production« eτ MYTEK.
Firs⌠á somσá backgrounΣá information«á Commercia∞á M/├á program≤á arσ ì
designeΣ t∩ bσ loadeΣ froφ basiπ witΦ thσ 'loadº command¼á autostar⌠ a⌠ thσ ì
prograφá entr∙ point¼á theε deletσ o≥ changσ an∙ pointer≤ t∩ tha⌠á address« ì
Copyinτá ßá M/├ prograφ withou⌠ knowinτ thσ entr∙ poin⌠ i≤ ß wastσ oµá timσ ì
anΣá i≤ likσ tryinτ t∩ finΣ you≥ wa∙ witΦ ß ma≡ withou⌠ knowinτá wherσá yo⌡ ì
arσ oε thσ ma≡ t∩ star⌠ with« Man∙ program≤ arσ designeΣ t∩ bσ eraseΣ wheε ì
yo⌡ g∩ t∩ basiπ o≥ ß monito≥ program« T∩ removσ an∙ protection¼ wσ mus⌠ bσ ì
ablσ t∩ loaΣ thσ prograφ int∩ memory¼ WITHOU╘ i⌠ auto-starting.
A⌠á thσ star⌠ oµ an∙ prograφ tapσ i≤ ß heade≥ whicΦ tell≤ thσ compute≥ ì
thσ prograφ name¼á length¼ star⌠ addres≤ iε memory¼ entr∙ point¼ bauΣ rate¼ ì
autostar⌠ yes/no¼ anΣ ß sparσ bytσ whicΦ ma∙ bσ useΣ fo≥ protection« Wheε ì
thσ prograφ tapσ i≤ loaded¼ thesσ detail≤ arσ loadeΣ int∩ ß memor∙ 'scratcΦ ì
padºá (SPAD⌐ iε RAM¼á t∩ bσ storeΣ unti∞ thσ prograφ ha≤ finisheΣá loading« ì
Basic¼á thσá editor/assemble≥ monitor¼á thσ wordbeσá monitor¼á thσá networδ ì
monito≥á anΣ thσ disδ monito≥ al∞ usσ differen⌠ SPA─ RA═ locations«á Thesσ ì
arσ listeΣ below¼ anΣ wh∙ the∙ arσ importan⌠ wσ wil∞ seσ later.
Wheε ß M/├ prograφ i≤ loadeΣ b∙ thσ Basiπ 'loadº command¼á thσ prograφ ì
entr∙ poin⌠ i≤ als∩ loadeΣ int∩ anothe≥ RA═ location¼ thσ 'machinσ languagσ ì
executσ address'« Thi≤ addres≤ i≤ wherσ thσ prograφ wil∞ EXECutσ froφ usinτ ì
thσ basiπ commanΣ EXEC.
Iµá yo⌡ wan⌠ t∩ loaΣ ß specifiπ prograφ eg«á LOA─ "FILEó (basic⌐ o≥á ╥ ì
"FILEóá (monitor⌐á theεá thσ filenamσ yo⌡ wan⌠ loadeΣ i≤ placeΣá iεá ßá RA═ ì
locatioεá thσ 'cassettσ namσ comparσ buffer'«á Iε thσ monitor≤ thi≤á buffe≥ ì
als∩á store≤ thσ star⌠ oµ RA═ addres≤ (optional⌐ tha⌠ yo⌡ wan⌠ thσá prograφ ì
t∩á loaΣá into«á Memor∙ location≤ iε RA═ tha⌠ arσ importan⌠ arσá thσá 'warφ ì
star⌠á jum≡ address'¼á whicΦ i≤ thσ addres≤ tha⌠ thσ compute≥ wil∞ jum≡á t∩ ì
froφ AN┘ prograφ iµ RESE╘ i≤ presseΣ anΣ providinτ thσ 'initia∞ checδ byteº ì
i≤á set«á Iµ 'init«á cδ byteº i≤ no⌠ set¼á theε thσ 'Beσ wil∞ d∩á ßá 'colΣ ì
startº wheε rese⌠ i≤ pressed«á è Thσ 'init«á cδ byteº i≤ se⌠ wheε thσ 'Beσ i≤ colΣ starteΣ anΣ al∞á thσ ì
basiπá defaul⌠á seting≤ havσ beeε made«á Furthe≥ discussioεá assume≤á somσ ì
knowledgσ oµ He° addresse≤ anΣ usσ oµ thσ monito≥ commands.
MEMOR┘ LOCATIONS
================
00A0-▒ To≡ oµ memory« initializeΣ oε 'colΣ start'(LSB,MSB)
00A▓-3 Warφ star⌠ jump« wheε RESE╘ pressed (LSB,MSB)
00A4-╡ Initia∞ checδ bytes« 55A┴ iµ initialized
00A6-╖ Mach« lang« EXE├ Basiπ 'EXECº commanΣ jump (LSB,MSB)
SCRATCH PAD LOCATIONS
=====================
BASIC EDASM-MON WB-MON NET-MON DISK-MON FUNCTION
00F1-6 0314-9 0537-C F7CA-F DF17-C File name, max. 6 chrs.
00F7 031A 053D F7D0 DF1D File type (Bas=B, M/C=M
SRC=S, WB=W)
00F8-9 031B-C 053E-F F7D1-2 DF1E-F File length (LSB,MSB)
00FA-B 031D-E 0540-1 F7D3-4 DF20-1 Load address (LSB,MSB)
00FC-D 031F-20 0542-3 F7D5-6 DF22-3 Entry point (LSB,MSB)
00FE 0321 0544 F7D7 DF24 Baud (0=300,non 0=1200)
00FF 0322 0545 F7D8 DF25 Autostart (0=N,non 0=Y)
0100 0323 0546 F7D9 DF26 Spare (protection ?)
-- 0300-1 0533-4 F7BC-D DF09-A Load pgm.from (LSB,MSB)
0562 0304-9 0547-C F7C0-5 DF0D-12 File name to load
-- DF75 D4C5 EED6 EC42 Go address for backup
-- DE6C D3C7 EDD5 EB45 Go addr.for offset load
Topmem 03A4 07E1 003E DED0 Top of stack
A≤á mentioneΣá earlier¼á thσ prograφ mus⌠ bσ loadeΣ int∩á RA═á withou⌠ ì
auto-starting«á T∩á d∩á thi≤ wσ mus⌠ usσ ß monito≥ program¼á a≤á wσá can'⌠ ì
inhibi⌠á thσ auto-star⌠ functioε wheε loadinτ froφ basic«á Froφ thσá tablσ ì
above¼á wσá caε seσ tha⌠ W┬ MO╬ SPA─ i≤ froφ 0533-055▒ anΣ it≤ stacδ build≤ ì
dowε froφ 07E1«á Thi≤ mean≤ tha⌠ effectivel∙ wσ can'⌠ loaΣ an∙ prograφ int∩ ì
RA═ belo≈ 07E2« Thσ figure≤ fo≥ EDAS═ MO╬ arσ 0300-032│ anΣ 03A5.
Therσá arσ way≤ arounΣ this¼á anΣ thesσ arσ mentioneΣ late≥á (3)¼á bu⌠ ì
notσ thσ detail≤ fo≥ NE╘ MO╬ anΣ DIS╦ MON«á Thσ SPA─ i≤ iε thσ bacδ halµ oµ ì
screeεá RA═á o≥á higΦ memory¼á anΣ i≤ aε areß seldoφá useΣá fo≥á commercia∞ ì
programs«á Thσ stacδ i≤ iε aε areß oµ RA═ eithe≥ to∩ lo≈ o≥ to∩ higΦ t∩á bσ ì
useΣ fo≥ loadinτ programs¼ anΣ s∩ caε no⌠ bσ overwritten.
Iµ available¼ NE╘ MO╬ o≥ DIS╦ MO╬ arσ thσ one≤ t∩ usσ iµ program≤ loaΣ ì
int∩ RA═ belo≈ 8000H¼ anΣ W┬ o≥ EDAS═ MO╬ fo≥ program≤ abovσ 07E▓ anΣ 03A5« ì
Mos⌠á experienceΣ M/├ programmer≤ havσ ß selectioε oµ tapσ loadeΣá monitor≤ ì
runninτ iε differen⌠ area≤ oµ RAM¼ s∩ asδ around.
┴á usefu∞á hardwarσá modificatioεá i≤ t∩ connec⌠á ßá 1╦á ohφá resisto≥ ì
(approx.⌐ anΣ switch¼á acros≤ thσ tapσ recorde≥ outpu⌠ socket« Thi≤ enable≤ ì
yo⌡ t∩ hea≥ thσ tapσ a≤ i⌠ i≤ beinτ loaded.
(1⌐ Backu≡ unprotecteΣ program« (als∩ fo≥ B,W,╙ filetypes)
Star⌠ loaΣ usinτ MO╬ 'Rº command¼ abor⌠ usinτ RESE╘ afte≥ filσ detail≤ ì
arσ oε thσ screen«á (E)xaminσ SPA─ fo≥ loaΣ addres≤ anΣ checδ tha⌠ MO╬ SPA─ ì
o≥ stacδ wil∞ no⌠ bσ overwritten« LoaΣ prograφ usinτ 'R'« Froφ table¼ finΣ ìèappropriatσ 'g∩ addres≤ fo≥ backup'«á Ne≈ tapσ iε recorder¼ pres≤ Record¼ ì
froφ MO╬ (G)∩ t∩ address.
(2)« Falsσ Header.
Basiπá wil∞ onl∙ loaΣ (B)asiπ o≥ (M)achinσ codσ filetypes¼á wherea≤á ß ì
MO╬ wil∞ loaΣ an∙ filetype«á ┴ falsσ heade≥ i≤ sometime≤ placeΣ beforσ thσ ì
norma∞ header¼ filetypσ no⌠ ┬ o≥ M¼ witΦ detail≤ designeΣ t∩ causσ thσ loaΣ ì
t∩á abor⌠á witΦá ß checksuφ error«á Iµ yo⌡ pla∙ thσá tapσá witΦá aux«á pluτ ì
removed¼ yo⌡ caε sometime≤ picδ thσ greate≥ (2x⌐ heade≥ length.
Therσá arσá tw∩ way≤ t∩ overcomσ thi≤ problem«á Thσ 'quicδ anΣá dirtyº ì
solutioε i≤ t∩ pres≤ 'Rº bu⌠ don'⌠ pres≤ RETUR╬ unti∞ jus⌠ afte≥ thσ heade≥ ì
starts«á Thi≤á work≤á mos⌠ times¼á bu⌠ ß bette≥ solutioε i≤ ß MO╬á iεá RA═ ì
modifieΣ t∩ ignorσ al∞ filetype≤ excep⌠ 'M'« Asδ around.
(3)« Offse⌠ loaΣ program.
Iµá yo⌡á wan⌠á t∩ backu≡ ß prograφ loadinτ belo≈ 07E2/03A╡á bu⌠á don'⌠ ì
havσ NE╘ MO╬ o≥ an∙ RA═ MO╬ available¼á al∞ i≤ no⌠ lost«á Yo⌡ caε loaΣ thσ ì
prograφá int∩á RA═á abovσ 07E▓ o≥ 03A5¼á anΣ appenΣ ß modulσá t∩á movσá thσ ì
prograφ t∩ it'≤ correc⌠ locatioε beforσ running«á Usσ 'R'¼á anΣ abor⌠á loaΣ ì
afte≥á detail≤á oε screen«á Takσ ß notσ oµ thσ namσ displayed«á Checδá thσ ì
prograφá namσá SPA─ (╢ bytes⌐ fo≥ an∙ number≤ les≤ thaε 20╚á o≥á abovσá 7F╚ ì
(contro∞ codes)« Iµ therσ arσ an∙ oµ thesσ seσ (4).
Typσ ╥ "FILNAMó ZZZ┌ <RETURN>¼á wherσ FILNA═ i≤ thσ prograφ namσá yo⌡ ì
noteΣ froφ thσ screen¼á anΣ ZZZ┌ i≤ thσ ne≈ addres≤ fo≥ thσ prograφ t∩ loaΣ ì
abovσá 07E2/03A5«á Pla∙ tapσ anΣ loaΣ program«á (A)lte≥ memor∙ beforσá thσ ì
prograφ a≤ showε below¼ t∩ adΣ thσ appropriatσ offse⌠ module«
Offse⌠á modulσ (a⌐ start≤ a⌠ thσ ne≈ addres≤ (ZZZZ⌐ theε transfer≤ thσ ì
prograφá bytσá b∙á bytσ iε ascendinτ memor∙ order¼á startinτá a⌠á thσá loaΣ ì
address«á Thi≤ modulσ caε onl∙ worδ iµ thσ loaΣ addres≤ i≤ AFTE╥ thσ enΣ oµ ì
thσ prograφ a≤ loadeΣ int∩ thσ ne≈ addres≤ startinτ a⌠ ZZZZ¼ o≥ iµ thσ loaΣ ì
addres≤ i≤ lowe≥ thaε thσ offse⌠ modulσ start«á Otherwisσ thσ prograφá wil∞ ì
bσá overwritteε b∙ itselµ durinτ thσ move«á Offse⌠ modulσ (b⌐ start≤ a⌠ thσ ì
EN─ oµ thσ prograφ a≤ loadeΣ a⌠ thσ ne≈ addres≤ ZZZZ¼á theε transfer≤á bytσ ì
b∙ bytσ iε descendinτ order¼á commencinτ wherσ thσ prograφ END╙ wheε loadeΣ ì
a⌠ thσ correc⌠ loaΣ address«á Thi≤ modulσ i≤ onl∙ useΣ wheε (a⌐ cannot¼á a≤ ì
i⌠á involve≤á somσá calculation≤á iε HEX¼á (ver∙ eas∙ t∩á makσá aεá error)« ì
Addresse≤á havσ t∩ bσ changeΣ t∩ sui⌠ thσ prograφ loaded¼á anΣ arσá iεá LS┬ ì
theε MS┬ order.
(a⌐ Offse⌠ module¼ ascendinτ blocδ move.
2▒ 3┤ 1▓ 1▒ 7╕ 5╢ 0▒ 3┤ 1▓ E─ B░ C│ 5╢ 34
í í í í í í í í !
Ne≈ LoaΣ Filσ ascendinτ Entry
addres≤ addres≤ lengtΦ block move point
(ZZZZ)
(b) Offset module, descending block move.
21 34 12 11 78 56 01 34 12 ED B8 C3 56 34
! ! ! ! ! ! ! ! !
End of End of File descending Entry
program program length block move point
loaded loaded from
from ZZZZ Load Address
= ZZZZ = Load addr.
+ file len. + file len.
- 1 - 1
Thσ offse⌠ modulσ anΣ prograφ arσ no≈ backeΣ up.è ─á "FILNAMó ═ XXX╪ YYY┘ XXX╪ wherσ XXX╪ i≤ thσ star⌠ addres≤ oµá thσ ì
offse⌠ module¼á anΣ YYY┘ i≤ thσ enΣ oµ thσ maiε prograφ jus⌠ loadeΣ a⌠ ZZZ┌ ì
(YYY┘ ╜ ZZZ┌ ½ filσ lengtΦ -1).
(4)« Offse⌠ loaΣ prograφ - Contro∞ character≤ iε name
Contro∞á character≤á arσá placeΣá iε thσ prograφ namσá a≤á ßá forφá oµ ì
protection«á Thi≤á i≤ t∩ sto≡ offset-loadinτ oµ program≤ tha⌠ loaΣ ove≥ MO╬ ì
SPA─á o≥á stack«á The∙á caε bσ seeε a≤ unusua∞á character≤á displayeΣá wheε ì
loading¼ ß shorteneΣ filenamσ ¿ <╖ letter≤ ª space≤ beforσ filetype)¼ o≥ b∙ ì
(E)xamininτá thσá SPA─ filσ namσ fo≥ value≤ <20╚ o≥ >7FH«á The∙á canno⌠á bσ ì
entereΣá froφ thσ keyboard¼á anΣ thereforσ thσ namσ entereΣ wil∞ no⌠á matcΦ ì
thσ prograφ filename¼ s∩ thσ prograφ wil∞ no⌠ load.
Thσá wa∙ arounΣ thi≤ i≤ t∩ se⌠ u≡ thσ 'cassettσ namσá comparσá bufferº ì
manuall∙ b∙ usinτ thσ MO╬ (A)lte≥ command¼á theε (G)∩ t∩ addres≤ fo≥ offse⌠ ì
load« Thσ easies⌠ wa∙ t∩ se⌠ u≡ thσ cas.namσ c≡ bff≥ i≤ t∩ type
╥ "FILNAMó ZZZ┌ <RETURN>¼á wherσ FILNA═ i≤ thσ filσ t∩ loaΣ bu⌠ paddeΣ ì
ou⌠á t∩ ╢ character≤ witΦ space≤ insteaΣ oµ thσ contro∞ codes¼á anΣ ZZZ┌ i≤ ì
thσ offse⌠ address« Abor⌠ usinτ RESET¼ theε (A)lte≥ thσ space≤ (20H⌐ t∩ thσ ì
contro∞ characters«á (G)∩ t∩ addres≤ fo≥ offse⌠ load¼á pla∙ tapσ anΣá loaΣ ì
program« AdΣ offse⌠ modulσ anΣ backu≡ prograφ a≤ iε (3).
Therσ arσ man∙ othe≥ method≤ oµ prograφ protection¼ bu⌠ the∙ requirσ ß ì
disassemble≥ anΣ mos⌠ oµ all¼á ß gooΣ knowledgσ oµ machine-codσ programminτ ì
anΣá thσá Microbee«á Thσ possibilitie≤ arσ onl∙ limiteΣ b∙ thσá programmer≤ ì
imagination«á Thσá bes⌠ i≤ thσ 'protectioε iε depthº witΦ severa∞á system≤ ì
useΣ iε thσ samσ program¼ hopinτ yo⌡ wil∞ givσ u≡ beforσ success.
Thσ 'weaδ pointº iε al∞ protectioε i≤ tha⌠ a⌠ leas⌠ thσ firs⌠ par⌠á oµ ì
thσá prograφá ha≤ t∩ loaΣ usinτ thσ basiπ 'loadº anΣ therσ arσá wel∞á knowε ì
way≤ arounΣ this« Thσ followinτ arσ example≤ onl∙ anΣ specifiπ detail≤ arσ ì
no⌠ mentioned.
(5)« Prograφ appendage.
Afte≥á thσá prograφ load≤ froφ basiπ i⌠ autostart≤ anΣ read≤ thσá tapσ ì
AFTE╥ thσ program«á ┴ patterε oµ bytes¼ specifiπ byte¼ o≥ thσ REA╠ prograφ ì
entr∙ addres≤ i≤ reaΣ froφ thσ tape«á Thi≤ forφ oµ protectioε caε bσ hearΣ ì
b∙á 'load'inτ thσ tapσ froφ basic¼á anΣ listeninτ t∩ hea≥ iµ therσá i≤á an∙ ì
prograφá afte≥ thσ loaΣ finishe≤ witΦ thσ 'beep'«á Thi≤ tapσ i≤ madσ b∙ thσ ì
programme≥á usinτ ß specia∞ M/├ program¼á anΣ canno⌠ bσ duplicateΣ usinτá ß ì
MON.
Thσ prograφ mus⌠ bσ disassembled¼á thσ forφ oµ protectioε workeΣá out¼ ì
anΣá thσá prograφ modifieΣ beforσ backinτ u≡ (timσ consuming)«á Therσ i≤á ß ì
hardwarσá forφá oµ thi≤ protectioε useΣ fo≥á disks¼á (PROLOK⌐á wherσá eacΦ ì
productioεá disδá ha≤á ß physica∞ identificatioε mark¼á whicΦá thσá prograφ ì
check≤ beforσ operation.
(6)« Pre-loader
┴á pre-loade≥ i≤ ß shor⌠ M/├ prograφ tha⌠ i≤ loadeΣá b∙á basic¼á auto-ì
starts¼á theεá load≤ thσ maiε prograφ int∩ memory«á I⌠ attempt≤ t∩ overcomσ ì
thσ lacδ oµ securit∙ b∙ thσ basiπ 'load'« ┴ pre-loade≥ i≤ recognizeΣ b∙ thσ ì
loaΣá finisheΣá 'beepº theε somσ indicatioε tha⌠ thσá loaΣá i≤á continuing¼ ì
usuall∙ ß messagσ oε thσ screen.
Thσá pre-loade≥ usuall∙ erase≤ an∙ SPA─ contents¼á anΣ set≤ thσá 'warφ ì
star⌠á jumpº t∩ thσ maiε prograφ rese⌠ addres≤ o≥ t∩ ß routinσ tha⌠á erase≤ ì
thσá wholσ prograφ froφ memory«á Anothe≥ optioε i≤ t∩ replacσ thσ 'initia∞ ì
checδ bytesº witΦ 0's¼á whicΦ cause≤ thσ 'Beσ t∩ executσ ß 'colΣ startºá iµ ìèRESE╘á (o≥ RESE╘ M⌐ i≤ pressed«á Thσ maiε prograφ i≤ usuall∙ encrypted¼á t∩ ì
sto≡á loadinτá b∙á mean≤ othe≥ thaεá thσá pre-loader¼á anΣá thσá pre-loade≥ ì
decrypt≤á thσ prograφ whilσ loadinτ i⌠ int∩ RAM«á Thσ prograφ entr∙á poin⌠ ì
ma∙ bσ iε thσ pre-loade≥ o≥ thσ las⌠ ▓ byte≤ oε thσ encrypteΣ tape.
Thσá pre-loade≥á ma∙á writσá o≥ changσ ß bytσ iε somσá othe≥á par⌠á oµ ì
memory¼á anΣ thσ maiε prograφ check≤ thi≤ bytσ whilσ running¼ t∩ seσ iµ thσ ì
origina∞ pre-loade≥ wa≤ used«á Iµ thσ bytσ i≤ no⌠ detecteΣ theε thσ prograφ ì
wil∞ no⌠ run.
Thσá pre-loade≥ mus⌠ bσ disassembled¼á thσ forφ oµá protectioεá workeΣ ì
out¼ anΣ thσ prograφ modifieΣ beforσ backinτ u≡ (timσ consuming)« Thσ pre-ì
loade≥á ha≤á thσ mos⌠ protectioε option≤ available¼á bu⌠ thσ timσ takeεá t∩ ì
creatσá i⌠ ma∙ riva∞ tha⌠ fo≥ thσ maiε program«á Thσ weaknes≤ iε thσá pre-ì
loade≥ i≤ tha⌠ i⌠ mus⌠ bσ loadeΣ b∙ basic.
S∩á back-u≡ you≥ owε programs¼á bu⌠ pleasσ don'⌠ pas≤ thσá unprotecteΣ ì
program≤ around¼ o≥ wσ ma∙ no⌠ ge⌠ an∙ more« HINZ
VIDEO.MWB
continued from page 4
00105 INVERT X,Y:IF J<>-1 THEN INVERT(J,O) [083]
00110 A1$=KEY$:IF A1$="" THEN 100 [018]
00115 IF C=1 THEN SET X,Y ELSE RESET X,Y [088]
00120 IF A1$="W"THEN LET Y=Y+1 [239]
00125 IF USED>126 THEN 200 [240]
00130 IF A1$="Z" THEN LET Y=Y-1 [245]
00135 IF A1$="F" THEN LET C=2:PLAY 15 [033]
00140 IF A1$="A" THEN LET X=X-1 [219]
00145 IF A1$="O" THEN LET C=1:PLAY 1 [245]
00147 IF A1$="T" THEN GOSUB 1550 [016]
00150 IF A1$="S" THEN LET X=X+1 [236]
00151 IF A1$=CHR$(127) THEN RUN [009]
00152 IF A1$="D" THEN GOSUB 1500 [247]
00155 GOTO 1000 [149]
00160 IF A1$="K"THEN 170 ELSE GOTO 100 [066]
00170 A1$=KEY$:IF A1$="" THEN 170 [031]
00180 IF A1$<>"Y" THEN GOTO 115 [212]
00200 CLOSE 6:OPEN "O",6,D1$:GRSAVE 6:CLOSE 6 [130]
00210 RUN [136]
01000 IF C1$="H" THEN 1010 [162]
01004 IF X>127 THEN LET X=127 [199]
01006 IF Y>47 THEN LET Y=47 [109]
01010 IF X>511 THEN LET X=511 [190]
01015 IF Y>255 THEN LET Y=255 [207]
01020 IF X<0 THEN LET X=0 [239]
01030 IF Y<0 THEN LET Y=0 [242]
01040 GOTO 160 [149]
01500 IF K=2 THEN PLOT J,O TO X,Y:J=-1:K=1:O=0:PLAY 7 ELSE LETJ=X:
O=Y:K=2:PLAY 1,4 [114]
01520 RETURN [168]
01550 IF PEEK(229)=4 THEN LET A=INT(FLT(X)/8)+1:B=INT(17-(FLT(Y)/16))[255]
01560 IF PEEK(229)=8 THEN LET A=INT(FLT(X)/2)+1:B=INT(17-(FLT(Y)/3)) [202]
01570 POKE 220,111:CURS A+1,B:INPUT ""Z1$:POKE 220,220:RETURN [101]
04000 LET A1$=D1$ [021]
04005 CLOSE 6 [117]
04007 ON ERROR GOTO 4020 [241]
04010 OPEN "I",6,A1$:CLS:GRLOAD 6:CLOSE 6:GOTO 100 [215]
04020 PRINT "NEW FILE":PLAY 0,6:CLS:GOTO 90 [155] áHINZè MUSIC.MWB
There are two parts of this listing. One each for tape and disk.
00100 REM Written in Microworld Basic Ver 6.22e for Microbee. [145]
00110 CLS:CURS 20:INVERSE:PRINT" M U S I C M A K E R ":NORMAL [162]
00120 PRINT \ "By Lang Stuiver. 4th Feb 84" [230]
00130 PLAY 0,15:CURS 1,3:PRINT [A40 32]:CURS 1,3 [035]
00140 PRINT"INSTRUCTIONS ? "; [149]
00150 A1$=KEY$:IF A1$="Y" OR A1$="y" THEN GOSUB 450 ELSE IF
A1$="" THEN 150 [156]
00160 CLEAR:DIM Q(200),Z(200):B=5:I=0 [141]
00170 CURS 6,B:PRINT [A11 32]:CURS 1,B:INPUT "NOTE="D1$ [048]
00180 W=ASC(D1$(;1,1)) [008]
00190 IF D1$="DELETE" OR D1$="delete" THEN GOSUB 520:GOTO 170 [181]
00200 IF W>64 AND W<72 THEN 240 [180]
00210 IF D1$="" AND I<>0 THEN GOTO 390 [006]
00220 IF D1$="0"THEN 240 [050]
00230 IF W<97 OR W>103 THEN 170 [184]
00240 CURS 27,B:PRINT [A8 32]:CURS 20,B:INPUT "LENGTH=";L1$ [055]
00250 L=INT(VAL(L1$)) [049]
00260 IF L<1 OR L>30 THEN 240 [051]
00270 IF B<15 THEN LET B=B+1 ELSE PRINT [243]
00280 IF D1$="0"THEN LET W=0:GOTO 370 [088]
00290 IF W>64 AND W<72 THEN LET U=1:GOTO 310 [214]
00300 W=W-96:GOTO 320 [034]
00310 W=W-57 [024]
00320 RESTORE [185]
00330 FOR X=1 TO 10:READ A:IF W>A THEN LET W=W+1 [216]
00340 NEXT X [046]
00350 DATA 1,4,6,9,11,13,16,18,21,23 [112]
00360 IF D1$(;2,2)="#" THEN LET W=W+1 [220]
00370 I=I+1 [197]
00380 Q(I)=W:Z(I)=L:PLAY W,L:GOTO 170 [027]
00390 FOR K=1 TO I:PLAY Q(K),Z(K):NEXT K [107]
00400 PRINT TAB(1):INPUT"DO YOU WANT TO <1> PLAY AGAIN <2> CONTINUE
WRITIN╟ O╥ <3╛ STAR╘ ┴ NE╫ TUN┼ <4╛ SAV┼ TUN┼ <5╛ LOA─ ┴ ì
TUN┼ (1/2/3/4/5)?";E [222]
00420 PRINT CHR$(15);CHR$(15);CHR$(15);[A165 32];CHR$(15);CHR$(15);
CHR$(15);CHR$(15) [194]
00430 IF B>14 THEN LET B=11 [000]
00440 ON E GOTO 390,170,110,600,650 [090]
00445 GOTO 390 [114]
0045░ CUR╙ 1,3:PRINT"Thi≤ i≤ ß prograφ fo≥ peoplσ t∩ writσ music« I⌠ ì
firstl∙ ask≤ yo⌡ wha⌠ notσ yo⌡ wan⌠ (NOTE=⌐ theε yo⌡ caε repl∙
witΦ eitheró [012]
00460 PRINT"a letter from a-g in lower OR upper case. The lower case `a'
is the lowest note while the upper case G# is the highest." [254]
00470 PRINT"You can have an optional sharp(#) after the note. If you
hit just return on it's own then your tune will be played.
You can also type 'DELETE' (upper or lower case)"; [065]
00480 PRINT " and this allows you to retype the last note. If you
type 0 then the note played will be a pause." [235]
00490 PRINT"You will next be asked the length of the note (LENGTH=).
You can reply with a number from 1 to 30 (1 being shortest and
30 being longest)." [242]
00500 PRINT " HIT ANY KEY TO CONTINUE" [036]
00510 A1$=KEY$:IF A1$="" THEN 510 ELSE CLS:RETURN [064]
00520 IF I<1 THEN CURS 6,B:PRINT "ALL DELETED":PLAY 0,4:RETURN [225]
00530 I=I-1:CURS 1,B:PRINT [A30 32]:IF B>1 THEN LET B=B-1 [016]
00540 CURS 27,B:PRINT " ":RETURN [210]è This part of MUSIC.MWB is for a disk system:
00599 REM This is for a disk system [167]
00600 CLS:INPUT "NAME OF COMPOSITION:",A1$ [140]
00605 CLOSE 6:PRINT "SAVING" [026]
00610 OPEN "O",6,A1$+".MUS" [018]
00615 OUT#6:PRINT I:FORK=1 TO I:PRINT Q(K)\Z(K):NEXT K:OUT#0:CLOSE 6 [248]
00620 PRINT "FINISHED":RUN [226]
00650 CLS:INPUT "NAME OF COMPOSITION:",A1$ [145]
00655 CLOSE 6:PRINT "LOADING" [085]
00660 IN#6 ON:OUT#0:OUT#0 OFF [014]
00665 I=0:ON ERROR GOTO 700 [136]
00667 OPEN "I",6,A1$+".MUS" [024]
00668 INPUT A [117]
00680 I=I+1:INPUT Q(I),Z(I) [158]
00690 GOTO 680 [118]
00700 IN#0:OUT#0:CLOSE 6:IF ERRORC=45 THEN PRINT "NOT FOUND":
PLAY 0:RUN [100]
00710 I=I-1:CLS:E=1:GOTO 440 [217]
This part of MUSIC.MWB is for a tape system:
00599 REM This is for tape systems [167]
00600 CLS:INPUT "NAME OF COMPOSITION:",A1$ [140]
00605 PRINT "SAVING" [052]
00610 OUT#2:PRINTA1$ [065]
00615 FORK=1 TO I:PRINT Q(K)\Z(K):NEXT K:PRINT INT(0)\INT(0):OUT#0 [114]
00620 PRINT "FINISHED":PLAY 0,10:RUN [015]
00650 CLS:INPUT "HIT RETURN TO LOAD:",A1$ [015]
00660 PRINT"SEARCHING":IN#2:OUT#0:OUT#0 OFF [012]
00665 I=0:INPUT A0$ [182]
00669 OUT#0:PRINT \"LOADING "A0$:OUT#0 OFF [074]
00680 I=I+1:INPUT Q(I),Z(I) [158]
00685 IF Z(I)=0 THEN GOTO 700 [146]
00690 GOTO 680 [118]
00700 IN#0:OUT#0 [006]
00710 I=I-1:CLS:E=1:GOTO 440 [217]
Thσ followinτ i≤ calleΣ FILE.MU╙ anΣ i≤ ß modifieΣ listinτ oµ ß saveΣ file« ì
T∩ usσ thi≤ lis⌠ yo⌡ mus⌠ ente≥ thσ followinτ iε WordSta≥ » Wordbeσ iεá thσ ì
following manner.
1)«á Iµ usinτ WordSta≥ usσ non-documen⌠ modσ anΣ ente≥ thσ number≤ onσ (1⌐ ì
per line.
2). If using Wordbee do as above and when finished SCRUB and REN FILENAME.
Under CP/M A>SCRUB FILE.WBF then REN FILE.MUS=FILE.WBF <CR>
81 9 1 10 1 8 1 16 2 8 1 16 2 8 1 16 5 16 1 18 1 19 1 20 1 16 1 18 1
20 2 15 1 18 2 16 4 0 2 6 1 7 1 8 1 16 2 8 1 16 2 8 1 16 4 0 2 13 1
11 1 10 1 13 1 16 2 20 1 18 1 16 1 13 1 18 4 0 2 6 1 7 1 8 1 16 2 8
1 16 2 8 1 16 5 16 1 18 1 19 1 20 1 16 1 18 1 20 2 15 1 18 2 16 4 0
2 16 1 18 1 20 1 16 1 18 1 20 2 16 1 18 1 16 1 20 1 16 1 18 1 20 2
16 1 18 1 16 1 20 1 16 1 18 1 20 2 15 1 18 2 16 4
FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--
SKETCH PAD with manual on casstette $8.50 Call Peter on 434-5583
FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--FOR-SALE--$$--èRCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM
Unfortunatel∙ thσ bulletiε boarΣ ha≤ beeε dowε fo≥ thσ pas⌠ fe≈ weeks¼ ì
bu⌠ fortunatel∙ i⌠ i≤ no≈ goinτ again«á Thσ reasoε fo≥ thσ interruptioεá t∩ ì
norma∞ operation≤ i≤ tha⌠ thσ harΣ disδ controlle≥ ha≤ beeε replaceΣ witΦ ß ì
ne≈á onσ tha⌠ allow≤ u≤ t∩ ge⌠ ß furthe≥ 2.╡ Meτ oε thσ disδ (abou⌠ 600δ oε ì
eacΦ logica∞ drive)« Thi≤ changeove≥ shoulΣ onl∙ havσ takeε abou⌠ tw∩ days¼ ì
bu⌠ duσ t∩ ß faul⌠ iε thσ ne≈ controlle≥ i⌠ ha≤ takeε considerabl∙á longer« ì
Fo≥ thosσ interesteΣ iε ho≈ lonτ i⌠ take≤ t∩ bacδ ß harΣ disk¼ i⌠ tooδ ove≥ ì
┤ hour≤ t∩ cop∙ al∞ thσ file≤ ont∩ 5ó disk≤ witΦ verification«á Iµ thσ disδ ì
wa≤ ful∞ thσ backu≡ woulΣ havσ takeε abou⌠ 1░ hours!
Beforσá wσ changeΣ disδ controller≤ wσ haΣ ß ver∙ nast∙ disδ crasΦ anΣ ì
6δ oµ thσ director∙ wa≤ destroyeΣ (actuall∙ thσ crasΦ onl∙ causeΣ ß los≤ oµ ì
4δ anΣ ß buτ iε DU▓ causeΣ thσ othe≥ 2δ t∩ bσ lost)«á Thi≤ mean≤ tha⌠ abou⌠ ì
10░ file≤ werσ lost¼ s∩ iµ yo⌡ noticσ tha⌠ ß filσ yo⌡ uploadeΣ i≤ n∩ longe≥ ì
oε thσ systeφ pleasσ fee∞ freσ t∩ uploaΣ i⌠ again.
Sincσá wσ havσ stoppeΣ batcΦ modσ filσ transfers¼á thσ numbe≥ oµ call≤ ì
pe≥ da∙ ha≤ riseε froφ abou⌠ 1░ t∩ 17« Wheε thσ timσ limi⌠ i≤ introduceΣ wσ ì
hopσá thi≤ figurσ t∩ rise«á Sincσ thσ introductioε oµ 1200/7╡ bauΣá caller≤ ì
havσá beeεá gettinτ ofµ thσ systeφ sooner¼á s∩ al∞ yo⌡á peoplσá complaininτ ì
about not being able to get on the system should have fewer problems now.
╔ havσ noticeΣ ß fe≈ problem≤ witΦ peoplσ tryinτ t∩ loτ oε a⌠á 1200/7╡ ì
(╔ havσ experienceΣ thσ probleφ ß couplσ oµ time≤ myself)« Iµ yo⌡ loτ oε a⌠ ì
120░ anΣ yo⌡ ge⌠ lot≤ anΣ lot≤ oµ garbagσ cominτ u≡ oε thσ screeε theε jus⌠ ì
bσá patien⌠á anΣ kee≡ hittinτ RETUR╬ ever∙ │ o≥ ┤ seconds«á Iµá thi≤á fail≤ ì
after about 25 to 30 seconds then just hang up and redial.
┴á lo⌠á oµá peoplσá havσ beeε complaininτ abou⌠á spendinτá 2╡á minute≤ ì
downloadinτ ß filσ onl∙ t∩ finΣ tha⌠ i≤ doesn'⌠ work«á So¼á wσ havσ decideΣ ì
removσá al∞ downloadablσ file≤ froφ thσ system¼á sor⌠ ou⌠ whicΦ one≤á don'⌠ ì
worδ theε deletσ theφ forever«á Don'⌠ bσ surpriseΣ tha⌠ therσ wil∞ ver∙ fe≈ ì
files on the system when you next log on.
Richard, Mike & Grant.
RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM-RCPM
How to convert Pak5 ROM into Pak5 RAM in a series 3 Microbee
NEEDED: 1 only 6264 Static Ram
1⌐ Slightl∙ benΣ pin≤ 20,22,27,2╕ outward≤ s∩ the∙ si⌠ nex⌠ t∩ thσ socke⌠ ì
which is used as Pak5.
2) Insert ram chip in socket.
3) Follow the schematic to complete wiring.
Note║ Thσ inverto≥ showε i≤ ß sparσ onσ Availablσ iε IC3│ oε thσ Coreboard.
_____________________________
| 8k x 8 RAM CHIP |
|20 22 26 27 28|
-----------------------------
cs oe cs we vcc
Pin 9 of IC29 ________| | | | |____To pin 24 of any
This is C000 | | | battery backup
select | | | 2k RAM (ensure
| | | battery backup)
To RD Pin 9 IC34 ____________| | |
| |_____To XWR (Pin 1-IC21)
* Spare gate from IC33. Needed to | *
invert signal from Pin 10 as Pin 26 |--<|--To Pin 10 IC31
from RAM is CS active high.
Note║á Iµ yo⌡ executσ ß PAK╡ yo⌡ wil∞ ge⌠ ß NO╘ FITTE─ ERROR«á Don'⌠ worr∙ ì
your RAM is selected but the lack of C3 at C000h causes the message.è TIMER.BAS
1 REM BASICODE 2 ROUTINES BY HENK WEVERS. FURTHER INFORMATION ABOUT BASICODE
3 REM NOS, HOBBYSCOOP HILVERSUM. TRANSLATED FROM DUTCH BY:
5 REM Joe Schramp,
6 REM for use by UBUG Australia.
9 PRINT CHR$(26);:WIDTH(255)
10 GOTO 1000
20 GOTO 1010
100 PRINT CHR$(26);:RETURN
110 REM
111 IF HO>51 THEN HO=51
112 IF VE>23 THEN VE=23
113 PRINT CHR$(27);"=";CHR$(VE+32);CHR$(HO+32);
115 RETURN
120 HO=PEEK(&HEF5A):VE=PEEK(&HEF5B)-&HF0
121 VE=VE*2
122 IF HO>127 THEN HO=HO-128:VE=VE+1
123 VE=VE-PEEK(&HEF62):IF VE<0 THEN VE=32+VE
124 RETURN
200 IN$=INKEY$:RETURN
210 GOSUB 200:IF IN$="" THEN 210
211 RETURN
250 PRINT CHR$(7);:RETURN
260 RV=RND(1):RETURN
270 FR=FRE(2):RETURN
300 SR$=STR$(SR)
301 Q7=LEN(SR$):IF Q7=0 THEN RETURN
302 IF RIGHT$(SR$,1)<>" " THEN 304
303 SR$=LEFT$(SR$,Q7-1):GOTO 301
304 IF LEFT$(SR$,1)<>" " THEN RETURN
305 SR$=RIGHT$(SR$,Q7-1):GOTO 301
310 Q4=SR:IF CN<>0 THEN 316
312 SR=INT(SR+.5):GOSUB 300:GOTO 330
316 Q5=SGN(SR):SR=ABS(SR):Q8=INT(SR):Q9=SR-Q8
318 FOR Q6=1 TO CN:Q9=Q9*10:NEXT Q6
320 Q9=INT(Q9+.5):SR=Q9:GOSUB 300
322 Q9$=RIGHT$("00000000000000000000"+SR$,CN)
324 IF Q8=0 AND Q9=0 THEN Q5=1
326 SR=Q8:GOSUB 300:IF Q5=-1 THEN SR$="-"+SR$
328 SR$=SR$+"."+Q9$
330 IF LEN(SR$)<=CT THEN 334
332 SR$=LEFT$("********************",CT):GOTO 340
334 SR$=RIGHT$(" "+SR$,CT)
340 SR=Q4:RETURN
350 L PRINT SR$;:RETURN
360 L PRINT:RETURN
1000 A=500:GOTO 20
1010 GOTO 6000
1020 GOSUB 100:GOSUB 5000
1030 PRINT " Astable multivibrator":PRINT
1040 GOSUB 3000:PRINT:PRINT:GOSUB 4000
1170 GOSUB 100:GOSUB 5000
1180 PRINT " Give the required duty-cycle from the"
1190 PRINT " Output at point 3. this"
1200 PRINT " must be between 50% en 100%."
1210 HO=3:VE=9:GOSUB 110
1220 PRINT "Duty-cycle in % ";
1240 INPUT D
1250 IF D>0 THEN 1280è1260 PRINT "* Duty-cycle is not allowed to be negative! *";
1270 GOTO 1210
1280 IF D>50 THEN 1310
1290 PRINT "* pick a duty-cycle larger than 50% ! * ";
1300 GOTO 1210
1310 IF D<100 THEN 1340
1320 PRINT "* Make duty-cycle smaller than 100% ! * "
1330 GOTO 1210
1340 D=D/100
1350 HO=1:VE=10:GOSUB 110
1360 FOR I=0 TO 1
1370 PRINT " "
1380 NEXT
1390 PRINT " Give now the required output- "
1400 PRINT " frequency. This has to be between"
1410 PRINT " 0.1 Hz en 100 kHz."
1420 HO=3:VE=16:GOSUB 110
1430 PRINT "Output Frequency in Hz ";
1450 INPUT F
1460 IF F>.1 THEN 1520
1470 PRINT "* pick frequency higher than 0.1 Hz * "
1480 GOTO 1420
1490 PRINT "* pick frequency lower than 100 Khz *"
1500 GOTO 1420
1510 GOTO 1350
1520 IF F<10 THEN C=.00001:GOTO 1560
1530 IF F<1000 THEN C=.000001:GOTO 1560
1540 IF F<100000! THEN C=1E-08:GOTO 1560
1550 GOTO 1490:REM frequency TO HIGH
1560 PRINT " "
1570 FOR I=0 TO 8:PRINT " Ok";:NEXT
1580 K1=LOG(2):K2=1/(K1*F*C)
1590 RB=K2*(1-D)
1600 RA=K2-2*RB
1610 R=RB:GOSUB 2000:RB=R1
1620 R=RA:GOSUB 2000:RA=R1
1630 GOSUB 100:GOSUB 5000:GOSUB 3000
1640 K$=""
1650 IF RA>10000 THEN R1=RA/1000:K$="kilo-"
1660 PRINT "R1=";R1;K$;"ohm"
1670 K$="":R2=RB
1680 IF RB>10000 THEN R2=RB/1000:K$="kilo-"
1690 PRINT "R2=";R2;K$;"ohm"
1700 PRINT " C=";C*1E+06;"microfarad"
1710 PRINT "frequency=";1/(K1*(RA+2*RB)*C);"Hz"
1720 PRINT "Duty cycle=";100*(RA+RB)/(RA+2*RB);"%";
1730 GOSUB 4000
1740 GOSUB 100:GOSUB 5000
1750 PRINT "This was an P2000 BASICODE program,"
1755 PRINT "Translated from Dutch by Joe Schramp,"
1756 PRINT "For MBUG AUSTRALIA INC."
1760 END
1770 :
2000 F=0:REM NOT OUTSIDE REACH
2010 K=0:REM EXPONENT COUNTER
2020 IF R<.1 THEN F=1:REM TO SMALL
2030 IF R>1E+07 THEN F=1:REM TO BIG
2040 R1=R
2050 REM LOOK FOR VALUE IN TABLEè2060 IF R1<=1 THEN 2100
2070 R1=R1/10:REM SHIFT COMMA
2080 K=K+1:REM COUNT DISPLACEMENT
2090 GOTO 2060:REM STILL WITHIN REACH ?
2100 B=1:REM POINTER TO ARRAY-START
2110 E=25:REM POINTER TO ARRAY-END
2120 M=INT((B+E)/2):REM POINTER IN THE MIDDLE OF THE USEFULL AREA
2130 IF M=B THEN 2170
2140 IF R1=A(M) THEN 2200
2150 IF R1<A(M) THEN E=M:GOTO 2120
2160 IF R1>A(M) THEN B=M:GOTO 2120
2170 IF (R1-A(B))<(A(E)-R1) THEN R1=A(B):GOTO 2190
2180 R1=A(E)
2190 REM TAKE CLOSE BY
2200 R1=R1*10^K
2210 IF R1>10 THEN R1=INT(R1+.5)
2220 RETURN
2230 :
3000 PRINT " +-----------------+"
3010 PRINT " ! !"
3020 PRINT " +5V-+-----8 3---OUTPUT"
3030 PRINT " ! ! 555 !"
3040 PRINT " +-----4 1---+--GND"
3050 PRINT " ! ! ! !"
3060 PRINT " ! +--7--------6--2--+ !"
3070 PRINT " ! ! ! ! !"
3080 PRINT " ! +----+ ! +----+ ! ! !!C !"
3090 PRINT " +-! R1 !-+-! R2 !-+--+--!!--+"
3100 PRINT " +----+ +----+ !!"
3110 RETURN
3120 :
4000 HO=15:VE=23:GOSUB 110:PRINT "\ENTER\...";:GOSUB 210
4010 RETURN
4020 :
5000 PRINT:PRINT:PRINT:PRINT:RETURN
6000 DIM A(25)
6010 FOR I=1 TO 25
6020 READ A(I)
6030 NEXT I
6040 GOSUB 100:GOSUB 5000
6050 PRINT " - - - DE ELECTRONICA DESIGNER - - -"
6060 PRINT
6070 PRINT " **** *** *** *** ***"
6080 PRINT " * * * * * * * * * *"
6090 PRINT " * * * * * * * * *"
6100 PRINT " **** * * * * * * *"
6110 PRINT " * * * * * * * *"
6120 PRINT " * * * * * * * *"
6130 PRINT " * ***** *** *** ***"
6140 PRINT
6150 PRINT "Astable multivibrator with the NE-555."
6160 PRINT:PRINT "This program calculates the resistances"
6170 PRINT:PRINT "and the capacitor values in the following scheme"
6180 GOSUB 4000:GOTO 1020
6190 :
30000 REM STANDARD VALUES
30010 DATA .1,.11,.12,.13,.15,.16,.18,.2
30020 DATA .22,.24,.27,.3,.33,.36,.39,.43
30030 DATA .47,.51,.56,.62,.68,.75,.82,.91,1è MBUG_AUSTRALIA_INC._TAPE_LIBRARY
P.O. BOX 75, AVONDALE HEIGHTS 3034 Victoria.
ADVENTURE_GAMES GENERAL_PROGRAMS GENERAL_GAMES
ADVENTURE LAND AUST ** AROUND/DOUBLE TRIANGLE
BLACK FRIDAY * BIORHYTHMS etc ASTEROIDS *
COLDITZ CHATTERBOX BACGAMMON *
FRANKENSTIEN CHPLUS BRICKS **
KIN COMPAT ** CAMEL
KUNG FU COMPOSER BEE * CHASE/WUMPUS1
MATHS ADVENTURE DECISION MAKER * CHESS
MISSION IMPOSSIBLE DOMESTIC ACCOUNTS * CHOPPER *
PIRATE EDUPACK1 CONCENTRATION
SCHMOO CITY * EDUPACK2 COSMIC JS
SURVIVE LCG/3D-PLOT * DEFENDER *
THUNDER ROAD LEAGUE LADDERS * DRAUGHTS
WUMPUS2 LOGO * EMU JOUST *
LUCKY DIP GALAXY JS
UTILITY_PROGRAMS MAD LIB GHOST MUNCHER *
MATHS RACE GOBBLE/ASTRO *
DEBUGGER 16/32k * MINDREADER * GOLF **
DISEMBLER 16/32k MONKEY MATHS HURKLE/CRICKET
ESKEY 16/32k MULTI GRAPHER* INVADERS JS
HEXDUMP * (inc source) PCG GENERATOR * KILOPEDE *
LOADER v1.1/v1.3 PCG TUTOR KING KONG *
MEMORY DISPLAY 16/32k PILOT LOGIC DICE *
SOURCE GENERATOR 16/32 PSYCHO ** METEOR RESCUE *
TRS-BEE/TAPE DOCTOR * RECORDS PROGRAM * MISSILE JS
SPELLBOUND * ROBOTMAN JS
TYPING/SOLITAIRE SKI SLALOM *
SQUARES/TRIANGLES
SUBTERRA
** New programs this month (max 2 per member) TANKS
* New programs this year TARGET
TERMITE
TIC-TAC-TOE/FOUR
UFO ATTACK
ZTREK
LIBRARY RULES
1. Library members must be financial members of MBUG AUSTRALIA INC.
2. Membership of the tape library is $10. ($5 is held as security deposit)
3. Loans are made for a maximum period of 1 calendar month.
4. A maximum of 5 tapes per member per month can be lent.
5. Hiring fee is $2 per tape per month.
6. Loans can be arranged by mail through the above address.
7«á Postagσá withiεá Australißá i≤ $▒ fo≥ ▒ o≥ ▓ tape≤ ª $1-5░ fo≥ │á t∩á ╡ ì
tapes.
8. Tapes may reserved.
9. Reservations will only be held until the next 2nd Wednesday meeting.
HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??
Q║á Ha≤ anyonσ fixeΣ thσ prograφ iε Wildcard≤ Vo∞ │ Pagσ 4▒ calleΣá CHANGE┐ ì
Everythinτá work≤ wel∞ unti∞ thσ prograφ bomb≤ ou⌠ oε thσ 15tΦá entry«á Al∞ ì
DIMention≤á seeφá t∩á bσ arrayeΣ properl∙ anΣ therσ i≤ n∩ mistake≤á iεá thσ ì
listing. P. FORD. "THE LOCAL COMPUTER SHOP" 572-2156
HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??-HELP-??è BAZAAR*SALES**BAZAAR*SALES**BAZAAR*SALES**BAZAAR*SALES**BAZAAR*SALES
CODE DESCRIPTION PRICE
"The Catcher"
BC02 Volume 2 (Oct.83-Sept.84) $15.00
BC03 Volume 3 (Oct.84-Sept.85) $15.00
TC01 Back Issues (single) $ 1.50
TC02 Back Issues (Vol 2 Nos. 6/7) $ 3.00
CS30 Blank C-30 Cassettes $ 1.50
CB30 Blank C-30 Cassettes (20 per box) $25.00
DSS5 Blank 5.25" Disks (Xidex DSDD) $ 4.00
DSB5 Blank 5.25" Disks (10 per box) $35.00
SSD5 Blank 5.25" Disks (SSDD) $ 2.00
SS35 Blank 3.5" Disks (FUJI SSDD) $ 6.00
SB35 Blank 3.5" Disks (10 per box) $55.00
DB35 Disk Storage Box 3.5" (holds 35) $26.00
DB70 Disk Storage Box 5" (holds 70) $18.00
DB10 Disk Library Box 5" (holds 10) $ 3.00
WC04 WILDCARDS 4 $13.00
BB01 Basic for Beginners (D. Kenney) $15.00
DC01 Dust Covers for 'BEE $ 6.00
MB01 Magazine Binders (for Online etc.) $ 7.00
PR80 Carbon Printer Ribbon
(suit xyz.80/100 printers) $ 9.00
**PP05 500 sheets cont. printer paper
(240mm wide (2.5Kg)) $10.00
** not normally available for postal purchase
All postal orders to be sent to: MBUG AUSTRALIA SALES
P.O.BOX 253, COBURG
VICTORIA 3058
T∩ avoiΣ delay≤ al∞ order≤ mus⌠ includσ cheque¼á posta∞ orde≥ o≥ BankcarΣ ì
authorizatioεá fo≥á thσ tota∞ amoun⌠ (inc«á posta∞ ªá handlinτá charges)« ì
Pleasσá allo≈á 1┤á day≤ fo≥ thσ returε oµ goods¼á o≥ pick-u≡á a⌠á thσá nex⌠ ì
meeting«
Good≤ arσ onl∙ availablσ t∩ cluΓ members.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ì
Please charge my Bankcard: No.___ __ ___ ______
Expiry Date __/__/____ Signature.................
Members Name :____________________________ Membership No. ______
Address :_______________________________________________________
Code Item Quantity Price Total Cost
____ _____________________________ ________ _____ __________
____ _____________________________ ________ _____ __________
____ _____________________________ ________ _____ __________
POSTAL FEES (within Australia) Sub-Totals Items $_________
$10 to $20 order :$2.50 Postage & handling Fee $_________
$20 to $50 order :$5.00
greater than $50 :P.O.A. Total Order $_________
CertifieΣá Mai∞á adΣ $0.9░ RegistereΣá Mai∞á adΣ $3.65
MINIMUM POSTAL ORDER AMOUNT $10.00 è THE MEMBERSHIP SECRETARY #
MBUG AUSTRALIA INCORPORATED.
P.O. BOX 157 / /
NUNAWADING. Victoria. 3131.
NAME:______________________________________________________
ADDRESS:___________________________________________________
POST CODE:___________ TELEPHONE:______________________
IF STUDENT - AGE:____ NAME OF SCHOOL:______________________
If RENEWIN╟ membership¼ attatcΦ olΣ MAILIN╟ labe∞ above¼ or,
If NE╫ membership¼ pleasσ fil∞ iε above¼ read¼ anΣ sigε below.
Please find enclosed my remittance of $________
being for (tick applicable box below)
Find enclosed cheque/money order, or,
Charge my Bankcard / Visa No.____ ____ ____ ________
Expiry Date __/__/____ Signature.................
Receipt sent only on request.
YEARLY FEES
FULL (City) @ $20.00 [ ]
OVERSEAS @ A$20.00 [ ]
COUNTRY @ $17.00 [ ]
STUDENT @ $15.00 [ ]
RBBS ONLY @ $10.00 [ ]
TAPE LIBRARY @ $10.00 [ ] (Payable once only)
╔ DESIR┼ T╧ BECOM┼ ┴ MEMBE╥ O╞ MBU╟ AUSTRALI┴ INCORPORATED¼ ╔ AGRE┼ T╧ ì
B┼ BOUN─ B┘ TH┼ RULE╙ O╞ TH┼ ASSOCIATIO╬ FO╥ TH┼ TIM┼ BEIN╟ I╬ FORCE.
SIGNATURE: _____________________ DATE: ________
*********************************************************************
COMMITTEE USE ONLY.
I¼ ____________________________________▀ NOMINAT┼ TH┼ APPLICANT¼ ì
FOR MEMBERSHIP TO THE ASSOCIATION.
SIGNATURE:_____________________________________
I¼á _________________________________▀á SECON─ TH┼ NOMINATIO╬á O╞ ì
THE APPLICAN╘ FO╥ MEMBERSHI╨ T╧ TH┼ ASSOCIATION.
SIGNATURE:_____________________________________
DATE ACCEPTED_________ MEMBERSHIP NUMBER_________ CLASS_________