Download Ipso Facto Issue 33

Transcript
•
Ipso Facto
ISSUE 33
FEBRUARY. 1983
.
A PUBLICATION c:R THE ASSOCIATION c:R THE CQfPUlER-QllP ElmRD£N'JERS (ACE) 1981
•
•
Executive Corner
2
Editor's Corner
3
Meabers' Corner
4
1861 Line Drawing PrograDl
8
A "Craps" ProgralR for Quest Basic
11
Cross-Reference Chart - 1802 OP Codes
12
The EIA RS-232C Standard
13
1802 Tiny Pilot
20
Infestation II
29
A Scanning Hex Keyboard Encoder
33
Notes on Netronics Tiny Basic
35
Catalogue Sheet - ACE CPU Board
36
Club C01l1llUIlique
39
IPSO FACTO is published by the ASSOCIATION OF COMPUTER-CHIP
EXPERIMENTERS (A.C.E.), a non-profit educational organization.
InforlRation in IPSO FACTO is believed to be accurate and reliable.
However, no responsibility is assulRed by IPSO FACTO or the ASSOCIATION
OF COMPUTER-cHIP EXPERIMENTERS for its use; nor for any infringelRents of
patents or other rights of third parties which lRay result from its use •
1982/1983 EXECUTIVE OF THE. ASSOCIATION OF COMPUTER-CHIP EXPERIMENTERS
President:
Tony Hi 11
416-689-0175
Treasurer:
Ken Bevis
416-277-2495
Directors:
Bernie Murphy
Fred Pluthero
John Norris
Mi ke Frank 1i n
Mike Frankl in
Fred Feaver
Tony Hi 11
416-878-0740
Advertizing:
Fred Pl utero
416-389-4070
Publication:
Dennis Mildon
John Hanson
Hardware &
R. and D.:
CLUB MEETINGS
John Norris
416-239-8567
Secretary:
Fred Feaver
416-637-2513
Membership:
Bob Sil cox
Earle Laycock
416-681-2B48
•
Program Convener:
Newsletter:
Production
Manager:
Edi tors :
Vi ce- Pres i dent:
Tutorial/Seminars:
Ken Bevi s
Fred Feaver
Software:
Wayne Bowdi sh 416-388-7116
Product Mailing:
Ed Leslie
(Publication)
Fred Feaver
(Boards)
416-528-3222
416-637-2513
CLUB MAILING ADDRESS:
Don McKenzie
Fred Pl uthero
Ken Bevi s
Mike Franklin
416-423-7600
A.C.L
c/o Mike Franklin
650 Laurier Avenue
Milton, Ontario
Canada
L7T 4R5
416-878-0740
Meetings are held on the second Tuesday of each month, September through June at 7:30 in Room B123, Sheridan College, 1430
Trafalgar Road, Oakville, Ontario. A one hour tutorial proceeds each meeting. The college is located approximately 1.0 km
north of QEW, on the west side. All members and interested visitors are welcome.
ARTICLE SUBMISSIONS
•
The majority of the content of Ipso Facto is voluntarily submitted by club members. While we assume no responsibility for
errors nor for infringement upon copyright, the Editorial staff verify article content as much as possible. We can always
use articles both hardware and software of any level or type relating directly to the 1802 or to micro computer components
periferals, products etc. Please specify the equipment or support software upon which the article content applies. Articles
which are typed are prefered, and usually printed first, while handwritten articles require some work. Please, please send
originals, not photocopy material. We will return photocopies of original material if requested. Photocopies usually will
--not reproduce clearly.
ADVERTISING POLICY
ACE will accept advertising for commercial products for publication in Ipso Facto at the rate of $25 per quarter page per
issue with the advertiser submitting camera-ready copy. All advertisments must be pre-paid.
PUBLICATION POLICY:
The newsletter staff assume no responsibility for article errors nor for infringement upon copyright. The content of all
articles will be verified, as much as possible and limitations listed (i.e. Netronics Basic only, Quest Monitor required,
require 16K at 0000-3FFF etc.). The newsletter staff will attempt to publish Ipso Facto by the first week of: Issue 31 Oct. 82, 32 - Dec. 82, 33 - Feb. 83, 34 - Apr. 83, 35 - June 83, and 36 - Aug. 83. Delays may be incurred as a result of loss
of staff, postal disruptions, lack of articles, etc. We apologize for such inconvenience, however, they are generally caused
by factors beyond the control of the club.
MEMBERSHIP POLICY:
A membership is contracted on the basis of a club year - September through the following August. Each member is entitled to,
among other privileges of membership, all 6 issues of Ipso Facto published during the club year.
•
3
Editor's Corner
•
I would like to thank the one person who cared enough about 'ACE to write
the Editor, and the four persons who sent programs for publication. All
are reproduced in this Newsletter.
CLUB BOARDS
We had a significant run on ACE boards over the last four months, with
many boards being sold out and even re-orders sold out. For those of
you who had to wait - our apologies; we hope you soon receive the board
you ordered.
For those of you who ordered the new VDU Board (ver.2) you should
receive it shortly after receiving this Newsletter.
Board projects currently underway: a modem using the new LSI chip
AH7910 - the board will be available within four months.
CLUB CONFERENCE
•
RCA have agreed to assist ACE in holding another conference this year probably in late August or early September. The conference will be held
on a Saturday, either in Oakville or WeIland.
More information will be given in the next issue.
gives out lots of goodies)l
•
•
Plan to attend (RCA
4
Members' Corner
•
FOR SALE:
B. Willem, R.R.12, Fisherville, Ontario. NOA IGO (416) 779-3057.
1
Aluminum Card Rack wi th
Plastic Guides with ACE
Backplane ver. 1 mounted
on it, c/w sockets.
1
ACE 64K Dynami c Memory Board
1
ACE 8K Eprom Board
1
ACE Kluge Board
1
ACE VDU Board, rev.l, MC6847
Complete Set of Instructions.
s
1
TEC CPU Board with IC's
1
TEC IFI Board with IC's
1
TEC 6K Memory Board
1
Keyboard
1372
COMPLETE LOT:
$300.00 or BEST OFFER
W. Steiner, 1204 2725 Melfa Rd., Vancouver, B.C. V6T IN4 (688) 228-1733
ACE NAB (Netronics - Ace Adapter Board) BOARD
Never been used. Partially socketed with 2 86 pin connectors.
with schematics and documentation.
$20.00.
•
Complete
O. Hoheisel, Hermann-Bossdorf-Str.33, 2190 Cuxhaven, {lest Germany
a) Netronics Video Display Board (300 Baud max.), assembled,
all ICs in sockets, includes dip headers and switches for
quick characters/line change US$ 70 (Can$ 84)
b) Netronics 4k static BAH Board assembled by Netronics
(i.e. without sockets), with DIP switch US$ 45 (Can$ 55)
c) Same as b), except nedds troubleshooting (probably
74C902 chip) US$ 30 (CanS 36)
d) Quest Super Monitor Ver. 1.1 in 2708 EPROM, runs at
address COOO with stack page D800 (not 8000 and 9800
as in Quest system). No manual or other info available
US$ 12 (Can$ 15)
e) Integrated circuit MC 3480 1 US~ 8 (Can$ 10)
f) Integrated circuit MC 3242 AP US$ 7 (can$ 9)
All prices include shipping (to US or Canada) and
(except d) ) all original documentation. Payment by
bank draft, order cheque, etc. or money order (preferred).
•
5
•
•
•
Thomas E. Jones
Ber1inerstr. 20
6944 Hemsbach (FRG)
Even though the ACE COSDOS is being released, I suspect we
can still use sophisticated cassette based O.S. 's as well. this
paper describes an expanded version of Steve Nies's MONITOR and
TEXT EDITOR, reviewing them a bit, and introduces UPII which adds
value to both of them. Each section will run in a 2716.
The 6K package offers a good full screen text editor for
all terminals, and now includes for the 6847 an upper/lower case
emulation (like the TRS80 Color) and auto-scrolls a "window" accross
80 columns of text. Cassette motor controls are now-included.
The major advance is the use of device independant I/O.
Existing programs can now be linked to "Logical Channels" in the
Monitor, and then your device drivers assigned to that channel by
using the command: IASsign N=dv~. Compatible drivers can be swapped at will,(video and printer, for example.) There are selected
devices assigned to the channels, also, on a cold start of monitor.
Judicial selection of channels when installing a program will
allow "load and run" ability without use of AS commands. The AS
command can still over-ride any of these initial defaults.
In fact,
programs can be written to change output (input) devices directly,
and since Monitor also uses I/O channels for it's services, even
it's console devices can be re-assigned.
The basic monitor provides a means of: running programs,
continuing after a break, examining/modifying both memory and registers R2-RF, stepping through memory, setting breakpoints in both
RAM and ROM, tracing programs, filling blocks of memory with any
hex code, searching blocks for hex strings, copying blocks of memmory to other areas, and file handling on cassettes. Named files
can be saved, loaded and verified either to the original memory it
was recorded from, or the memor[ block specified.
The Text-Editor commandTE 'NAME' 10001' will start the cassette motor, find the file labeled 'NAME' and load it, stop the cassette, reserve 1000 (hex) bytes for the text buffer,
and display
the first page of text ready to edit. The text-ed Save, Load, Move,
Copy, etc. commands use a pointer on screen to define the start and
end of blocks of text they op~rate upon •... not hex addresses.
UPII has a BOot command to execute non-SCRT programs with
X=O, P-O on entry. It also features Netronics Elf II format Save and
Load commands. If the load does not finish, the last location of
memory loaded to will be displayed on the screen.
A disassembler command will generate full mneumonic lists,
with addresses and codes, and also has options for formatted hex
listings and legal-ascii only lists. This command is based. on the
work of Harley Shanko, Van Nuys, Calif.
The HEX command is a data entry service to allow quicker
entry of hex programs from dumps, using the hex keypad while displaying in the hex-dump format on screen as you enter. The TYPE
command uses the printer and ascii keyboard as a typewriter to add
footnotes, corrections, etc. to hardcopy.
6
•
Device drivers presently included in the UPII eprom include
a hex-pad driver, uart driver, printer driver, and paper-tape Rdr
driver. The Monitor contains the 6847 driver and ascii keyboard I/O.
The initialization sets up. the ACE Vid-Bd. The PTR DRVR will read
Intel hex-ascii tapes and output hex only.
Since the listings for UPII alone run 30 pages, I think it
will be best for anyone interested to contact me direct and we can
arrange for listings, tapes, eproms, etc. I also have patches for
installing other programs to the monitor. For Elf II serial VID-BD
users I have some patches and serial drivers for Monitor that were
developed thanks to work by Fred Hannan, of East Lyme, Ct.
This operating system does have some hardware associated with
it, of course. It is possible that I could arrange to produce a
System Monitor Board containing the Cmos Uart, memory mapped decoders,
special break/trace interrupt circuit, cassette relays, and a
parallel I/O port. ACE or Elf II buss. Let me know if you want it.
Residents of the USA can write to me easier to this address;
Tom Jones
c/o 295th AVN CO., SFTS DET.
APO N.Y.,
09028
December 20, 1982
FRET')
HAr...;NAN.
10 Filosi ?oad
East Lvme~ Conn. 06333
Dear Mi ke:
I think Wes Steiners comment in IF #32 is appropiate.
The small cadre of authors submitting articles are those most deeply
interested in "High Tech" modifications~ disk ooerating systems~ etc.
which~ I believe~ are beyond the desires and understanding of the
majority of the membership. Since the "High Tech" trend has been going
on for quite some time, it may account for the decline in general
interest articles and~ possibly, membership.
Speaking only for myself~ I found nothing in IF #32 that I wanted to
read twice. The last articles I really dug into were yours on your
EPROM BURNER and SYMON. Again, echoing Wes~ if I wanted or needed a
disk system~ I wouldn~t bother trying to kludge up an 18lZ12 but would
buy an Apple or Lobo or Morrow or some such. I wouldn~t be too much
surprised if most members keep their 1802s because they are easy to
program and simplistic in design. Asking the average member to hang
disks on his system or replace his motherboard is just driving him
away. Not too many of us have really realized the full potential of
the original system and have been left behind by the "High Tech" group.
I don~t know what the membership count is at oresent but selling
ONLY 70 copies of Forth to a membership that used to number in the
neighborhood of 500 seems to illustrate mv point. Those of the members
that are fortunate enough to be able to attend the meetings in person
can iron out ~heir problems together, patch UP Forth together, etc ••
but where does that leave us who cannot attend?
•
.7
•
I believe you once stated that you did not wish to put large code
listings into IF. This was a good idea when the trend of the articles
was still fairly elementary. Now~ it might be the only way to get
usable~ working, programs out to the members and start raising our
programming abilities, as well as raising the interest level of members.
As far as I can recall~ the various monitors have been the only large
code articles in the past year or so that might be called "General
Interest". When was the last time a game article was printed? Any utility
program?
In memory serves me right~ the last membership survey showed that the
vast majority of members owned ELFs - either Netronics or Quest. Most
of these members are probably happy with their system as it is and are
not "High Tech" hardware tinkerers~ in spite of the fact that they
joined a club named "Association Of Computer-Chip E>:perimenters".
I guess what I am trying to say is that the FEW "High Tech" members are
leaving the MANY "Low Tech:' members behind and may be the only ones
left in the club in time.
I hope I have not offended you or anyone else but this is how I feel.
Dear Fred:
••
Thank you for your comments. I appreciate the time you took to write the only letter I received in response to my editorial.
You may be right, that most of our members don't appreciate "High Tech"
and need "Lo Tech" articles - but where do those articles come from?
HoW do people learn to be "High Tech"? I print what I get, wi thin an
issue or two of receiving it, and after I have verified that it works
I write what interests me and at my current level - as do most of oxu:
members. The sad truth is that few of our members care enough about the
Club to contribute anything to it, and quite possibly this will be the
last year we have a publication to turn to.
One of the great joys of being part of something is contributing to the
organization, and being recognized by others as contributing. I will
print anything and just about everything from the Membership. ACE came
into existence in response to a need for an information exchange on the
1802. We have been quite possibly the most prolific and diverse club
anywhere - we had to be, for there was no one else to support the 1802.
Perhaps the time has come for the club to fold and for you to go your
own way •••• I will be saddened by its passing.
Mike Franklin
•
8
1861 Line Dra..ring Program
- by J. Munch, 20228 Clark Street, Woodland llills, Ca. USA 91367
I h r s pr o q r em demonstrates a
LINE DRt\WING program on the. ubiq,uitous 1861.
•
A subroutine (0016-0024) generates random values for a
zig-zag display. Inputs
XO, X1. YO and YI are used for the current line. ,Xl and Y1 are saved in RB to be
used the second time around as beginning points for the next line.
Many variations for inputting
a register and a d v artc i n q (4NL Then
as many lines as memory available/4
the range for X=OO to 3F, and for Y
the lines are possible,such as loading via
by storing each line (XO, Xl, YO, Yl> in a reg.
can be drawn. For the 1861 (in the lK mode)
the range is 00 to 7F.
The program has also been used with the 6847 chip in the Resolution Graphics Two
made, with but slight adJustment in the plot routine to account for the grid.
This mode has 128 pixels horizontally by 96 vertical where each dot is the size
of the c h ar-a c t e r-v p e r-Lo d " in the standard alpha-numeric mode.
On a standard TV set the pixels are square, an~ the available dots are six
times that of the 1861 operating with a 64 X 32 display.
Some background:
A search for a plot routine led me to an article in EON, May 27,1981, where
the RS Color Computer,also using the 6847, was discussed. Some 6809 machine code
showed how the plotting of points were performed. This code was then laboriously
~onverted to "1802".
Being able to plot dots on the screen, ur ib h Tinys VSR calls
Le d to a search for a line routine. Another article in the August 81 Byte,
Programming Guickies, by Mike Higgins, showed how to use his Form of the DDA,
(Digital Differential Anal~Jzer). A sample Basic p r-o q r am. where lines of any
•
slope between -1 and 1 !ould be drawn was given. Converting to Tiny was easy.
~1any evenings were spent playing around with variations of this Basic line
drawing method. The lina draw routine, now a proven program,was then written
in 1802 code, ~nd then made part of the code that the USR called.
From Basic it was then possible to generate lines by prOViding four inputs:
beginning points XO,Yl and end points X1,Y1.
(If XO=X1 and YO=Yl a single point is plotted)
******** THE 1861 IN THE HI-RESOLUTION MODE, 64 HOR 128 VERT. ************.llThe program uses one page for the code and four pages Tor th e display.
4
5 6 7
A B C 0 E F
0
1 2
3
8
9
. . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . . . ..................................................
0000
90 131 B2 B3 D4 B7 B8 F8
FF A2 F8 27 1\3 F8 17 A7
FE 52 FE F3 FE 89 7E A9
0010
F8 El Ai B9 D3 00 03 99
F8 00 A4 F8 04 BA F8 FF
0020
99 7E B9 30 16 00 00 EA
0030
AA F8 00 73 9A 3A 31 lA
E2 69 D7 37 3B 84 FB iF
0040
01 AE BF 9B 52 A8 99 FA
32 27 14 F8 00 BE AF F8
3F BB F7 DO 33 5C FD 00
BD F8 FF 13F 8B 52 AA 89
0050
00 AD F8 FF AE 9D 52 80
FA 7F AB F7 AD 33 60 FD
0060
AD 9F BE 8E AF F8 00 AE
F5 33 81 90 AC 80 BD 8e
0070
73 88 73 F6 F6 F6 F9 F8
0080
BF 90 F6 BC Fe 01 AC 8A
F8
FO
07
A8
20 BA 8A FE AA 9A 7E BA
FC
52 88 FA
0090
04
52
F8
9A 75 BA 08 52 OA F1 5A
AA
OOP-,O
313 9A 8A F5
8C
52
90
F5 3B BD 3A 38 88 52 9F
AA
60
72
A8
FO
00130
52 80 F4 BC 1C 52 90 F5
F4 AS 8A 52 SF F4 AA 9C
OOCO
8A 52 BE F4 AA 30 87 72
3B 87 DC 88 5;::! 9E F4 1'.8
OODO
F8 01 130 F8 00 AO 30 OF
70 C4 22 78 22 52 E2 E2
OOEO
00 00 00 00 00 00 00 00
80 40 20 10 08 04 02 01
OOFO
•
Ex e c u t e
•
REGISTER:
Rl
R2
R.3
R4
RS
.
. .
01
00
00
00
.
.
. .
00
El
FF
27
00 00
'-l"
i-.'::l
R7
R8
R9
RA
RB
RC
RD
RE
RF
Ple-ase refer to
OESeR IPTION:
VALVE:
.
f~O
Pres~ing INPUT KEY halts motion.
INP 1(69) @ 0039,
0000,
i~
00 17
00 <X )
El
01 (Y)
XX YY
{D3
(DX
(S1
(AI
Nt>
DY)
52)
A2)
..
.............
1861-DI'1A
INTERRUPT PTR
TOP OF STACK
START OF MAIN
R4. 1 NOT USED, R4.0=LINE CTR, (Us,er can adjust @ 003F)
SPARE REGISTER
SPARE REGISTER
RANDO!"l SUBROUTINE PTR.
RB. I=P IXEL P.~GE, R8. O=-=X COORDINATE
RANDOM REG, SEEDED WITH NON-ZERO (El>
RA. l=SCREEN PAGE{ 01 TO 04) , RA.O=:Y COORDINATE
RB. l=TEMPORARY X, RB.O=TEMPORARY Y, NEW BEGINNING PTS
LINE DRAWING REGISTERS.
"
II
II
II
"
II
LINE DRAWING REGISTERS .
. . . . . . . . . . . . . ..
flow chart.
....... ...... . ..
. . .
If this routine is to be modified for some other application it should noted
that HOt-1E is at; the lower left corner of the screen, 1st quadrant.
•
7F
1
I
I
1
1
I
1
.
Center:
..20,40 H
X
Y
I
I
I
I
1
I
I
I
00..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :>3F
==================================================:=============================
new sub J ec t ...
T. Hills WINDOW
is a program that should have been delivered with any new
s'Jstem. Thank you ..
When bringing up Window, a usually flawless tape recorder, gave me a lot
of trouble. The problem was traced to a faulty lever arm inside the recorder,
The end result was to put WINDOW in EPROM. Some spare space ?? at 03F3 -03FF
and 04F2-04FF was used for a specific routine to down load Window to RAM @
{in my case)2000 H. Even if this space is used in Window, having it in RAM
should present no problems. Now that WINDOW is resident it is being put to good
use, probably more so now, than if it had been on tape.
Even if it takes a 6847, or similar display generator, to use WINDOW,
Comments on the line drawing program would be appreciated.
•
do it!
LINE DI2AwIN6~ p>CJINr PLCJT-
10
U5JNc;
S B/7 VALUES
:D7=
SIGN EIT
_._.
~-'---"-'------------
A~
Fg#¢rh l B E
J
S 2. A5
I lF7,
B'D
FS x¢
F B )( I
~.YES
~
ta070
Al
•
BF
9
:J~ LII----,
RI
..
nx = -t>X
t:,080
FS;l!,¢I. A~
R.4
=-1
~ F5!'{r!J
15L, AA
Fa YI F7,AlJ
YE'5
-"bY
.1 S'2.= - I
DY=
~/CJD
(;;/1
D
'->
fAtlO
,.DX =DY
N::. :D)(
DY; N
A'Z.= S2.
~/?lo 140
~/50,~O
(g I ~/I 70/70
,
~2.00
D~
1::,1../0
NI= I
, £l :: AI
, 52=0 AI =0
....
-:-
YESEXi?
~,
n:
RcsrOf(E.
REG/S1EES
~
)(0= ~O+AI
~
YO;:YO+AZ
ll.
D'3;D.,+:DY
~
R.
])3
NO)
FB#f=F , AE
R1J D'A
lJ'T
C
R. E 5/
'JD
sz
f<..,F
AI
Bb FE
~j
3D
It--------r
Ac;,
BlJ,
IJ:D, '1F BE ) 8£ AF
F8 ¢¢ I AE BF
a<
8])
52
AZ
•
~!)3i= D
LU
'-....,
FD ¢¢ , AD
-,(ES~
ct
~
l!.J
RB
Y (coR.
NI::NI+ I
~
S
SCREEN
4BA 73 98 73
'oS
~
Ir--~
PIX PIPE X Caie
=.DXjZ-
-
100
3~ I
R. ~
R. 9
R. A
••
~\
~
NO
D'.:>=DS-:DX
')(0.::)(0 +51
Yb =YO+S2.
•
___ ....-J
•
10
20
30
40
50
60
70
80
90
100
no
120
130
140
150
160
170
180
190
200
210
220
230
235
240
250
260
270
280
290
300
310
320
330
340
350
CLS: PRINT"
CRAPS" : PRINT
360
B=100
370
PRINT" A TOTAL OF 7 OR lION THE "
380
PRINT "FIRST THROW WINS. YOU CAN ALSO"
PRINT "WIN BY THROWING A 4, 5, 6, 8, 9, 10" 390
400
PRINT "AND MATCHING IT BEFORE THROWING"
410
PRINT "A 7. IF ON THE FIRST THROW A 2"
420
PRINT "3 OR 12 COMES UP, YOU LOSE."
430
PRINT "HIT LINE FEED TO CONTINUE";
440
X=INP(l)
450
IF x <>HOA GOTO 100
460
C=O:CLS
470
PRINT "ACCOUNT=$";B," "
480
INPUT "BET"B1
490
IF Bl>B GOTO 120
500
D1=INT (6*RND)+1
510
D2=INT (6*RND)+1
520
T=D1+D2
530
FOR N=l TO 10: PRINT : NEXT N
540
GOSUB 480
550
C=C+1
560
IF C>l GOTO 310
570
TO=T
580
WAIT (200)
590
IF T=7 GOTO 360
600
IFT=ll GOTO 360
610
IF T<4 GOTO 400
620
IF T=12 GOTO 400
630
CLS
640
PRINT "ACCOUNTO=$" ;B," ", "BET=" ;B1
650
GOTO 160
660
IF T=7 GOTO 400
670
IF T=TO GOTO 360
680
PRINT "TRYING TO MATCH" ;TO,C~ "ROLLS"
690
WAIT (250)
•
•
GOTO 280
B=B+B1
PRINT "********** YOU WIN **********"
PRINT"YOUR TOTAL=$";B:IF B>1000 PRINT"LET'S SEE THOSE DICE,YOut"
GOTO 440
B=B-B1
~.
PRINT " --------- YOU LOSE --------- YOU LOSE ------,---"
t1
PRINT "YOUR TOTAL =$";B
g'~
t1 t1
IF B<=O PRINT "THROW THE BUM OUT I "
o
INPUT "TYPE E'E' TO EXIT "E$
~i
l:7'CD
IF E$="E" END
..
Ul
rt
GOTO 120
a>tlIf
END
rt
V=@E065:D=D1: GOSUB 510
~ ....
.... n
V=@E072:D=D2: GOSUB 510
o .....
• w.....
RETURN
•o
FOR N=O TO 8
POKE (V+N,H43)
NEXT N
FOR N=l TO 4
Q=V+32*N
POKE (Q,H4F): POKE (Q+8,H4F)
NEXT N
Q=V+128
FOR N=l TO 7
POKE (Q+N,H43)
NEXT N
IF D>2*INT(D/2) POKE (V+68,H2E)
IF D=l RETURN
POKE (V+34,H2E): POKE (V+102,I2E)
IF D<4 RETURN
POKE (V+38,#2E): POKE (V+98,H2E)
IF D<6 RETURN
POKE (V+66,#2E): POKE (V+70,#2E)
RETURN
=
12
Cross Reference Chart - 1802 OP Codes to User Manual Page Number (MPC201C)
- by Derek Claridge, Nelson B.C.
•
ox
IX
2X
3X
4X
5X
6X
7X
8X
9X
AX
BX
ex
DX
EX
FX
38
16
16
31
18
20
16
41
17
17
17
18
35
39
39
19
42
41
36
21
32
19
35
22
33
20
36
22
i
18
33
I
; xo
I
!I xi
I
X2
'X3
I
i
34
26
38
25
i X4
34
28
38
27
; X5
34
24
37
23
x6
34
30
38
30
X7
32/37
'40
35/37
19
X8
34
41
36
21
X9
33
40
36
23
XA
33
39
36
22
XB
34
27
38
26
XC
34
29
38
28
XD
34
25
37
24
XE
34
31
37
30
XF
i
•
•
13
THE EIA RS-232-C STANDARD
•
AN INTERFACE BE'IWEEN mTA TERMINAL EQUIPMENr
AND
D!\TA <:Xlt1MUNlCATION EX;XJIPMENr
EMPIDYIliG SERIAL BINARY DATA INTERCHANGE
Published by
ELECIroNIC INOOSTRIES ASSOCIATION
Engineering Deparbnent
2001 Eye Street, N.W., Washington, D.C. 20006
August 1969
•
The following excerpts from the above Standard are provided to assist
yoo in applying RS-232-C canmunications on your micro.
Signal
D..1ring the transmission of data, the marking condition shall be used to
denote the binary state ONE and the spacing condition shall be used to
denote the binary state ZERO.
For timing and control interchange circuits, the function shall be
considered ON when the voltage (VI) is more positive than plus three
volts with respect to signal ground. The function is not uniquely
defined for voltages in the transition region between plus three volts
and minus three volts.
Signal Voltage
Binary State
•
Signal Condition
Function
Negative (-12v)
Positive (+12v)
1
Ma:r:king
OFF
0
spacing
ON
EIA RS-232-C STANDARD
14
Interchange Circuits (defined by pin number of a Db 25 connector).
pins 1 to 7 and 20 form the "typical micro-computer circuit".
1.
DB25
•
Pin 1 - Protective Ground
Direction: Not applicable
This conductor shall be electrically bonded to the machine or
equipment frame. It may be further connected to external grounds
as required by applicable regulations.
2.
Pin 2 - Transmitted Data
Direction: TO data ccmnunication equipment (canputer to device).
Signals on this circuit are generated by the data terminal
equipment and are transferred to the local transmitting signal
converter for transmission of data to remote data terminal
equipment.
The data terminal equipment shall hold transmitted data in marking
condition during intervals between characters or words, and at all
times when no data are being transmitted.
In all systems, the data terminal equipment shall not transmit data
unless an ON condition is present on all of the following four
circui ts, where implemented:
1.
2.
3.
4.
•
Request to Send
Clear to Send
Data Set Ready
Data Terminal Ready
All data signals that are transmitted across the interface
Transmitted Data during the time an ON condition is maintained on
all of the above four circuits, where implemented, shall be
transmitted to the canmunication channel.
3.
Pin 3 - Received Data
Direction~ FROM data cammunication equipment (device to computer)
Signals on this circuit are generated by the receiving signal
converter in response to data signals received from remote data
terminal equipment via the remote transmitting signal converter.
Received Data shall be held in the binary ONE (Marking) condition
at all times when Received Line Signal Detector is in the OFF
condition.
On a half duplex channel, Received Data shall be held in the Binary
Q1.e (Marking) condition when Request to Send is in the ON condition
and for a brief interval following the ON to OFF transition of
Request to Send, to allow for the completion of transmission.
•
15
EIA RS-232-C STANDARD
•
4.
Pin 4 - Request to Send
Direction: TO data communication equipment (computer to device)
This circuit is used to condition the local data communication
equipment for data transmission and on a half duplex channel, to
control the direction of data transmission of the local data
communication equipment.
On one way only channels or duplex channels, the ON condition
maintains the data communication equipment in the transmit mode.
The OFF condition maintains the data communication equipment in a
non-transmit mode.
On a half duplex channel, the ON condition maintains the data
communication equipment in the transmit mode and inhibits the
receive mode. The OFF condition maintains the data communication
equipment in the receive mode.
5.
•
Pin 5 - Clear to Send
Direction: FROM data communication equipment (device to computer)
Signals on this circuit are generated by the data communication
equipment to indicate whether or not the data set is ready to
transmit data.
The ON condition, together with the ON condition On interchange
circui ts Request to Send, Data Set Ready and, where implemented,
Data Terminal Ready, is an indication to the data terminal
equipment that signals presented on Transmitted Data will be
transmitted to the communication channel.
The OFF condition is an indication to the data terminal equipment
that it should not transfer data across the interface on
interchange Transmitted Data.
The ON condi tion of Clear to Send is a response to the occurrence
of a simultaneous ON condition on Data Set Ready and Request to
Send, delayed as may be appropriate to the data communication
equipment for establishing a data communication channel (including
the removal of the MARK HOLD clamp from the Received Data
interchange circuit of the remote data set) to a remote data
terminal equipment.
6.
•
Pin 6 - Data Set Ready
Direction: FROM data communication equipment (device to computer)
Signals on this circuit are used to indicate the status of the
local data set.
EIA RS-232-C STANn.2W>
16
1he ON condition on this circuit is presented to indicate that a)
the local data communication equipment is connected to a
canrmmication channel ("OFF HOOK" in switched service),
AND b)
the local data communication equipment is not in test (local or
remote), talk (alternate voice) or dial* mode.
AND c)
the local data communication equipment has completed, where
applicable:
1.
any timing functions required by the switching system to
canplete call establishment, and
2.
the transmission of any discreet answer tone, the duration
of which is controlled solely by the local data set.
7.
Pin 7 - Signal Ground or Cammon Return
Direction: Not applicable.
8.
Pin 20 - Data Terminal Ready
Direction: TO data canmunication equipnent (canputer to device)
Signals on this circuit are used to control switching of the data
communication equipment to the communication channel. The ON
condi tion prepares the data communication equipment to be connected
to the communication channel and maintains the connection
established by external means (e.g., manual call origination,
manual answering or automatic call origination).
~
~
When the station is equipped for automatic answering of received
calls and is in the automatic answering mode, connection to the
line occurs only in response to a combination of a ringing signal
and the ON condition of Data Terminal Ready. However, the data
terminal equipment is normally permitted to present the ON
condition on Data Terminal Ready whenever it is ready to transmit
or receive data, except as indicated below•.
The OFF condition causes the data communication equipment to be
removed from the canmunication channel following the completion of
any "in process" transmission. The OFF condition shall not disable
the operation of Ring Indicator.
*
The data communication equipment is considered to be in the dial mode
when circuitry directly associated with the call origination function
is connected to the communication channel. These functions include
signalling to the central office (dialing) and monitoring the
communication channel for call progress or answer back signals.
..
W'
17
EIA RS-232-C STANDARD
•
The following signals are typically implemented in a modem installation:
1.
Pin 8 - Received Line Signal Detector
Direction: FROM data communication equipment (device to computer)
The ON condition on this circuit is presented when the data
communication equipment is receiving a signal which meets its
suitability criteria. These criteria are established by the data
communication equipment manufacturer.
The OFF condition indicates that no signal is being received or
that the received signal is unsuitable for demodulation.
The OFF condition of Received Line Signal Detector shall cause
Received Data to be clamped to the Binary One (Marking) condition.
The indications on this circuit shall follow the actual onset or
loss of signal by appropriate guard delays.
•
On half duplex channels, Received Line Signal Detector is held in
the OFF condition whenever Request to Send is in the ON condition
and for a brief intervai of time following the ON to OFF transition
of Request to Send.
2.
Signals on this circuit are used to provide the data terminal
equipment with signal element timing information. The data
terminal equipment shall provide a data signal on Transmitted Data
in which the transitions between signal elements nominally occur at
the time of the transitions from OFF to ON condition of the signal
on the circuit. When this circuit is implemented in the DCE, the
DCE shall normally provide timing inf~rmation on this circuit
whenever the DCE is in a POWER ON condition. It is permissible for
the DCE to withhold timing information on this circuit for short
periods, provided Data Set Ready is in the OFF condition. (For
example, the withholding of timing information may be necessary in
performing maintenance tests within the DCE).
3.
•
Pin 15 - Transmitter Signal Element Timing (DCE Source)
Direction: FROM data communication equipment (device to computer)
Pin 17 - Receiver Signal Element Timing (DCE Source)
Direction: FROM data communication equipment.
Signals on this circuit are used to provide the data terminal
equipment with received signal element timing information. The
transition from ON to OFF Condition shall nominally indicate the
center of each signal element on Received Data. Timing information
on the circuit shall be provided at all times when Received Line
Signal Detector is in the ON condition.
4.
Pin 21 - Signal Quality Detector
Direction: FROM data communication equipment (device to computer)
18
EIA RS-232-C STANDARD
Signals on this circuit are used to indicate whether or not there
is a high probability of an error in the received data.
•
An ON condition is maintained whenever there is no reason to
believe that an error has occurred.
An OFF condition indicates that there is a high probability of an
error. It may, in SOme instances, be used to call automatically
for the retransmission of the previously transmitted data signal.
Preferably the response of this circuit shall be such as to permit
identification of individual questionable signal elements on
Received Data.
5.
Pin 22 - Ring Indicator
Direction: FROM data communication equipment (device to computer)
The ON condition of this circuit indicates that a ringing signal is
being received on the communications channel.
The ON condition shall appear approximately coincident with the ON
segment of the ringing cycle (during ri ngs) on the communi cation
channel.
The OFF condition shall be maintained
r Lngfng cycle (between "rings") and at
is not being received. The operation
disabled by the OFF condition on Data
6.
during the OFF segment of the
all other times when ringing
of this circuit shall not be
Terminal Ready.
•
Pin 23 - Data Signal Rate Selector (DTE Source)
Direction: TO data communication equipment (computer to device)
Signals on this circuit are used to select between the two data
signalling rates in the case of dual rate synchronous data sets or
the two ranges of data signalling rates in the case of dual range
non-synchronous data sets.
An ON condition shall select the higher data signalling rate or
range of rates.
The rate of timing signals, if included in the interface, shall be
controlled by this circuit as may be appropriate.
7.
Pin 23 - Data Signal Rate Selector (DeE Source)
Direction: FROM data communication equipment (device to computer)
Signals on this circuit are used to select between the two data
signalling rates in the case of dual rate synchronous data sets or
the two ranges of data signalling rates in the case of dual range
non-synchronous data sets.
An ON condition shall select the higher data signalling rate or
range of rates.
The rate of timing signals, if included in the interface, shall be
controlled by this circuit as may be appropriate.
•
19
EIA RS-232-C STANDARD
•
8.
Pin 24 - Transmitter Signal Element Timing (DIE Source)
Direction: TO data communication equipment (computer to devi ce)
Signals on this circuit are used to provide the transmitting signal
converter with signal element timing information.
The ON to OFF transition shall nominally indicate the center of
each signal element on the Transmitted Data. When the circuit is
implemented in the DTE, the DTE shall normally provide timing
information on this circuit whenever the DTE is in a POWER ON
condition.
It is permissible for the DTE to withhold timing
information on this circuit for short periods, provided Request to
Send is in the OFF condition.
(For example, the temporary
withholding of timing information may be necessary in performing
maintenance tests within the DTE).
The following signals are typically a duplicate or secondary circuit.
1.
•
Pin 12 - Secondary Received Line Signal Detector
Direction: FROM data communication equipment (device to computer)
This circuit is equivalent to Received Line Signal Detector except
that it indicates the proper reception of the secondary channel
line signal instead of indicating the proper reception of primary
channel received line signal.
2.
Pin 13 - Secondary Clear to Send
Direction: FROM data communication equipment (device to computer)
This circuit is equivalent to Clear to Send except that it
indicates the availability of the secondary channel instead of
indicating the availability of" the primary channel. This circuit
is not provided where the secondary channel is useable only as a
circuit assurance or an interrupt channel.
3.
Pin 14 - Secondary Transmitted Data
Direction: TO data communication equipment (computer to device)
This circuit is equivalent to Transmitted Data except that it is
used to transmit data via the secondary channel.
4.
Pin 16 - Secondary Received Data
Direction: FROM data communication equipment (device to computer)
This circuit is equivalent to Received Data except that it is used
to receive data on the secondary channel.
•
5.
Pin 17 - Secondary Request to Send
Direction: TO data communication equipment (computer to device)
This circuit is equivalent to Request to Send except that it
requests the establishment of the secondary channel instead of
requesting the establishment of the primary data channel.
TINY PILOT V1.0
UTILITY SUBROUTINES
1
2
=
RC1802-V01D
00 00
20
PILOT.RCA
07-NOV-82 11:58:15
.ORG
10000
.TITLE TINY PILOT V1.0
3
;
;
4
5
6
7
1 802
TIN Y P I LOT
PAGE
•
ORIGINAL AUTHOR: R. W. PETTY
REVISION HISTORY:
8
9
10
11
12
13
14
15
16
17
18
19
20
21
;
;
;
22
23
24
25
26
27
28
29 0000 30 16
30 0002 30 33
31
32
;
-;
SEP./82 W. BOWDISH - REARRANGED CODE TO CONSOLIDATE FREE
T. HILL
SPACE AND MADE MINOR CODING CHANGES
- ADDED EDIT MODE REPLACE LINE COMMAND
- ADDED EDIT MODE COMMAND TO PRINT THE
ADDRESS OF THE LAST USED BYTE IN THE
TEXT BUFFER
- ADDED PILOT CALL TO SCRT CALLABLE
MACHINE LANGUAGE SUBROUTINES
TINY PILOT HAS 2 ENTRY POINTS ( COLDST AT 10000 AND WARMST AT
10002 ). IF THE PROGRAM IS ENTERED AT 'COLDST', THEN THE SCRT
REGISTERS AND STACK POINTER ARE INITIALIZED AND THE DATA PAGE
AND TEXT BUFFER ARE INITIALIZED. IF THE PROGRAM IS ENTERED AT
'WARMST' THE SCRT REGISTERS AND STACK POINTER ARE ASSUMED TO
BE SET UP AND THE CONTENTS OF THE TEXT BUFFER ARE PRESERVED.
*NOTE* TINY PILOT USES A MODIFIED SCRT CALL/RETURN TECHNIQUE
TO SAVES/RESTORES REGISTER-7 ACROSS A CALL AND RETURN
;
COLDST: BR
WARMST: BR
PILINZ ; COLD START ENTRY POINT
PILWRM ; WARM START ENTRY POINT
•
BRANCH VECTORS FOR EXTERNALLY DEFINED SUBROUTINES
33
34
35
36
37
38
39 0004
40
41 0007
42
43 OOOA
44 OOOD
45
46 0010
47
48 0013
49
50
;
;
;
THE FOLLOWING TABLE CONTAINS LONG BRANCHES TO ROUTINES WHICH
MUST BE SUPPLIED BY THE USER. THESE ROUTINES ARE CALLED USING
THE SCRT CALL/RETURN TECHNIQUE. BEFORE USING TINY PILOT THESE
BRANCH VECTORS MUST BE MODIFIED TO POINT TO YOUR SUBROUTINES.
CO 07 70
TTYOUT: LBR
CO 07 69
TTYINP: LBR
CO 00 F6
CO 81 A4
CRLF: LBR
CASOUT: LBR
CO 81 40
CASINP: LBR
CO 10 00
MONXIT: LBR
.SLW
OUTCHR ;
;
INPCHR ;
;
$CRLF ;
181A4 ;
;
18140 ;
;
11000 ;
;
TERMINAL CHARACTER OUTPUT ROUTINE
( CHARACTER PASSED IN D-REG. )
TERMINAL CHARACTER INPUT ROUTINE
(CHARACTER RETURNED IN D-REG. AND RF.HI)
<CR><LF> OUTPUT ROUTINE
CASSETTE CHARACTER OUTPUT ROUTINE
( CHARACTER PASSED IN D-REG. )
CASSETTE CHARACTER INPUT ROUTINE
(CHARACTER RETURNED IN D-REG. AND RF.HI)
ENTRY POINT TO SYSTEM MONITOR ( EDIT
MODE "M" COMMAND EXITS VIA THIS LBR)
•
1
TINY PILOT V1.0
UTILITY SUBROUTINES
.~
3
;
4
5
;
RO-R6
R7
R8
R9
RA
RB
RC-RE
7
8
9
10
11
.~
28
29
30
31
32
33
34
35
36
37
38
39
40
41
•
PILOT.RCA
REG 1ST E R
6
12
13
14
15
16
17
18
19
20
21
22
23
24
25
21
RC1802-V01D
RF
;
;
;
07-NOV-82 11:58:15
USE AGE
STANDARD
SAVE/RESTORE REGISTER
SCRATCH
GENERAL PURPOSE COUNTER
TEXT POINTER
LINE POINTER
RESERVED FOR I/O AND PASSING PARAMETERS TO
MACHINE LANGUAGE ROUTINES ( VIA S: COMMAND )
RF.HI HOLDS I/O ASCII CHAR. AND D-REG FOR SCRT
NOTE: NUMERIC VARIABLES ARE SINGLE BYTE ENTRIES IN THE VARIABLE
PAGE WITH OFFSET EQUAL TO THEIR ASCII CODES. IE. VARIABLE
A <+41) IS AT ADDRESS +XX41 AND VARIABLE Z (+5A) IS AT
ADDRESS tXX5A
FOR ASSEMBLY, THIS SYMBOL SHOULD BE REDEFINED
=
;
00 20
TOPMEM: •EQL
120
HIGHEST RAM PAGE AVAILABLE FOR TEXT BUFFER
ERROR CODES
;
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
01
02
03
04
05
06
07
08
09
OA
OB
OC
OD
OE
OF
.ERDZRt
.ERCMDt
.ERFUL:
.ERNNV:
.ERNTVt
.ERBNV:
.ERBTV:
.ERNRT:
.EREXP:
.ERNVR:
.ERNEQ:
.ERNLBt
.ERBLB:
.ERUSRt
.ERMXtt:
.EQL
.EQL
.EQL
.EQL
.EQL
.EQL
.EQL
.EQl
.EaL
.EQL
.EQL
.EQL
.EQL
.EQL
.EQl
.SLW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
DIVISION BY ZERO
INVALID COMMAND
MEMORY FULL
BAD NUM. VAR. SYNTAX IN TYPE STATEMENT
CAN'T FIND (OR BAD SYNTAX) TEXT VAR. IN TYPE
BAD NUM. VAR. SYNTAX IN ASK STATEMENT
BAD TEXT VAR. SYNTAX IN ASK STATEMENT
UNDEFINED RETURN STATEMENT
BAD EXPRESSION SYNTAX
NO VAR. NAME IN COMPUTE STATEMENT
NO 1:1 SIGN IN COMPUTE STATEMENT
CAN'T FIND lABEL OF JUMP OR USE
BAD STATEMENT lABEL SYNTAX
NO ADDR. OR SYNTAX ERROR IN lSI COMMAND
ERROR IN MAX. MEMORY SPECIFICATION
PAGE
22
PILOT EDIT MODE C01MANDS
•
COMMAND
SYNTAX
FUNCTION
BEGIN
B
move text po irit.er to start of
display current ( first ) line
CLEAR
C
clear text buffer ( Le , delete all program lines
currently in the text buffer
Dam
Dnnn
move text po i.rrcer down 'nnn' lines and display new
current line. If there were less than 'nnn' lines
of text after the text po inter then the text
podrit.er is pos Lt.Loned immediately after the last
character of the last line.
END
E
move text p:>inter to end of text. The text p:>inter
is left pointing to the byte past the last entered
program byte.
HIGH
H
display the address ( in hex ) of the last byte
used in the text buffer. This is useful if you are
going to use a monitor cassette dump routine to
write out the contents of the text buffer. Note
that the text buffer starts at address #0900.
INSERT
I<text>
insert one line of <text> in front of the curre.
line.
KILL
Knnn
kill ( delete ) 'nnn' lines of text, starting at
the current line, and display the new current line.
LOAD
L
load text from cassette. The text lines are
appended to the text currentlyy in the text buffer.
MONITOR
M
return to the system monitor
PILOT
P
execute the pilot program
REPLACE
R<text>
replace the current line with the line <text>
STORE
S
store entire
cassette.
UP
Unnn
move text pointer up , nnn' lines and display new
current line. If there were less than 'nnn' lines
of text above the text pointer, then the pointer is
p:>sitioned at the start of the first line.
WRITE
Wnnn
write 'nnn' lines to the tenninal starting with the
current line. The position of the text po irrt.er' is
not changed.
•
note:
nnnn
represents a number in the range 0 to 255
<text>
represents a line of text up to 60 characters long
contents
of
the
text
text
buffer
buffer
and
on
23
PILOT INSTRUCTIONS
•
COMMAND
SYNTAX
FUNCTION
ASK
A:
Request input from the tenninal. The input is not
saved in a variable but is available for matching
( see the M: canmand ).
A:#v
request numeric input from tenninal and store in
numeric variable 'v'
A:$v
request string data
string variable 'v'
CCMPUTE
C:n=exp
compute the value of the expression ' exp'
assign the value to numeric variable 'n'.
END
E:
stop execution of program. This canmand may be
placed anywhere in the program Where execution
should logically stop.
JUMP
J:exp
jump ( branch ) to statement with the same label
number as the value of the expression 'exp'.
CONTROL
K:exp
output the ASCI I equ i valent of the value of 'exp ,
to the tenninal. The control canmand may be used to
output any ASCII character to the tenninal.
from
tenninal
and
store
in
and
ex. K:13 outputs a carriage return to the tenninal
MATCH
M: sl ( , s2 ••• )
compares the strings 'sl'
's2'. •• to the
response from the previous ask canrnand. If a match
is found the match flag is set 'yes' otherwise the
match flag is set 'no'.
NO
cN:xxx
if the match flag is set to 'no' then the command
c:xxx is executed. 'c' represents any pilot canmand
and ' xxx' represents any text required by the
canmand. for example:
IN:123 will jump to the statement labeled %123 if
the match flag is set to 'no'. If the match flag is
set to 'yes' the jump canmand will not be executed
and the next sequential statement will be executed.
RETURN
•
R:
Return from subroutine ( see USE canmand )
SCRT CALL S:laddr(,al,a2,a3) calls a machine language subroutine using
the S.C.R.T. technique. 'addr' is the address of
the machine language subroutine in hex. ' an ' are
optional arguments of the fonn #v or $v ( Le ,
either numeric or string variables). The addresses
of the arguments are passed in registers RC, RO,
and RE.
24
TYPE
T:(text) (:jf:v)($V)(i) type text and/or variables on the
terminal. Text and variable may be present on the
cannand line in any order. A carriage return and
line feed are output at the end of the line unless
a semi-colon I i ' is placed at the end of the line
in WhiCh case the carriage-return/line-feed are
suppressed.
USE
U:exp
call a pilot subroutine with a label number equal
to the value of the expression 'exp I . Subroutines
can be nested to a depth of 24.
EXAMINE
X:exp
sets match flag to 'yes' if 'exp' evaluates to 0
otherwise the match flag is set to 'no'
•
X:v«>=exp) sets the match flag to 'yes' if the condition is
true, otherwise the match flag is set to 'no'.
YES
cY:xxx
if the match flag is set to 'yes' then the canrnand
c:xxx is executed. 'c' represents any pilot command
and ' xxx' represents any text required by the
command. for example:
JY:123 will jump to the statement labeled %123 if
the match flag is set to 'yes'. If the match flag
is set to 'no' the jump command will not be
executed and the next sequential statement will be
executed.
RANIXM Z
Z:exp
assigns a randan number in the range 0 to 'exp'-l
to the numeric variable Z.
note:
exp
represents an expresion consisting of constants
and/or numeric variables with operators + - * and
/. Expressions are evaluated fran left to right and
must evalute to a value in the range 0 to 255.
(xxx)
represents an optial part of a statement
tv
represents a numeric variable
$v
represents a string variable
v
variable names are the upper case letters A to Z
%nnn
line labels consist of a number in the range 0 to
255 preceeded by a percent sign. Statements need
not be labeled but if they are the label must
preceed the command. For example:
%123 T:HI
•
•
25
•
•
•
03
B6
86
5F
D5
00
OA
70
F8
9A
D4
3F
D4
3C
49
02
03
83
A3
AF
F8
04
F8
CO
lC
A4
00
D4
01
42
02
68
03
A6
72
F8
09
30
OD
07
A3
F8
D6
00
6E
0'')
.:.
6E
53
9F
46
A7
00
BA
El
D4
69
90
BO
D4
04
D4
2D
4B
02
D3
B3
72
2F
F8
D4
00
CO
93
A5
()O
D4
01
43
03
94
BF
46
B7
5F
00
00
04
00
D3
F8
£9
00
01
00
4A
55
E2
A3
38
01
89
99
00
F4
68
D4
FB
F8
32
D4
EA
C5
30
0".:.
lB
CO
B9
B7
04
B9
52
00
04
20
74
00
F8
F8
D9
D5
OB
03
F8
D4
D5
D5
46
07
32
5B
30
OA
03
01
93
D4
FB
03
64
01
89
F8
20
D5
D4
17
52
01
Fa
FB
17
lB
87
6E
32
32
46
01
89
32
B8
01
F8
19
D4
D5
D5
08
00
32
03
FB
73
D4
97
01
9F
D4
32
3A
01
OA
4A
FB
OA
5F
03
03
FB
00
FB
13
5A
02
F7
E6
F6
FF
57
03
D5
FB
30
3A
02
D6
03
38
FB
34
2A
lA
9A
41
17
32
D4
OE
04
73
3A
4A
32
lA
03
48
OA
D4
58
3B
FB
43
03
3A
F8
9A
82
87
Bl
9A
3A
FB
FB
02
0000
0010
0020
0030
0040
0050
0060
0070
0080
0090
OOAO
OOBO
OOCO
OODO
OOEO
OOFO
30
CO
FF
D4
32
00
A7
45
00
CB
97
BF
AE
00
D5
44
16
81
A2
00
51
F8
4B
01
13
03
73
E2
F8
D6
46
49
30
40
93
CF
D4
3E
D4
13
50
03
87
12
08
F8
32
54
33
CO
B4
D4
01
D4
01
48
03
03
73
96
BF
03
EO
00
CO
10
B5
00
21
00
D8
03
FB
03
93
B3
F8
5A
D4
30
07
00
F8
Cl
F8
04
30
3D
0100
0110
0120
0130
0140
0150
0160
0170
0180
0190
01AO
01BO
01CO
01DO
OlEO
01FO
D5
61
D5
99
89
19
AF
OC
FB
00
B9
00
46
32
32
D3
D4
AB
F8
30
F9
F7
89
Fa
15
04
87
04
B7
D7
E6
D4
01
D5
00
41
30
33
52
00
32
30
FA
30
46
lA
17
01
OC
D4
A8
A9
D4
50
30
A7
B9
74
03
74
A7
30
17
5A
0200
0210
0220
0230
0240
0250
0260
0270
0280
0290
02AO
02BO
02CO
02DO
02EO
02FO
F8
48
00
9A
04
30
D5
B7
02
OD
97
98
FB
9A
D5
3A
08
BA
D5
B8
30
4A
D4
8A
57
3A
D4
2A
OA
B8
D4
E7
B8
08
F8
8A
34
FB
01
A7
2A
73
00
D5
32
8A
03
29
D5
AA
01
A8
D4
03
CO
4A
72
D5
OD
D4
B8
A8
23
89
co.')
iJ.:.
AF
5:8
94
17
94
30
F3
D5
0::"")
.:I.:.
~S8
08
08
8"7
\)4
32
F8
D5
07
EC
t)2
18
~)
")
"-"-
03
FE!
23
51
01
FB
17
F8
FE!
FB
B"7
03
02
30
CO
08
D4
01
D4
B7
8F
AA
OA
F8
F6
F8
OC
D4
OA
93
CF
4C
02
96
30
A6
3A
Fa
D4
OA
05
AF
33
3A
57
46
BF
32
FB
00
74
OD
8"7
FB
AS
FE
D5
F8
F8
3F
F8
52
FO
A8
3£
04
27
5B
F3
03
D8
:;2
F8
08
OA
88
00
Fa
5F
fB
3').:.
87
2:8
D4
32
32
4·7
F8
08
:8F
D4
32
A9
00
8A
OA
3A
OE
32
29
A9
20
02
FF
OE
58
FF
D5
5B
DS
43
D1
3A
03
FB
4B
27
97
FB
03
29
2A
F8
D1
33
D1
48
0').:..
51
56
07
5A
87
F8
D4
23
89
OA
03
~O
D5
32
32
D5
'/2
")1:
.:..:1
32
30
89
D4
32
57
A7
3A
32
D1
EO
F6
~~A
44
02
El
73
98
FO
C'l
02
00
D4
D~5
10
B9
FB
Fa
00
D....
Fl
B3
OF
..I
8:1.
B2
00
19
01
Fa
02
B3
A4
Fa
O~
86
9F
B6
D5
5A
El
00
00
5A
67
47
4D
02
73
113
30
Dft,
lA
45
04
B13
OF
01
46
9"7
30
D4
32
4B
3E
08
OA
97
47
4"7
F4
F8
A9
33
18
38
67
01
B4
D4
32
D4
D5
F3
F3
A3
A8
0:1
F6
F8
D6
00
30
2A
9A
F8
FB
9C
30
10
EO
D4
OD
D4
57
22
00
D4
51
38
EA
52
lA
3A
OA
00
32
3A
FB
SA
26
0300
0310
0320
0330
0340
03S0
0360
0370
0380
0390
03AO
03E<0
03CO
0300
03EO
03FO
01
OF
F8
32
9A
03
97
FE<
OA
30
32
30
OA
7E
01
OS
SA
B9
01
2B
D4
S6
E<A
07
DS
66
AC
66
F3
38
CO
D4
03
89
DS
87
OS
D4
87
32
lA
1A
FE<
D4
3A
lA
3D
01
[IS
FE
D4
3A
EC
02
AA
82
OA
9A
29
01
E<S
OA
00
SA
B9
FE
01
3E<
8A
30
ItS
F8
[14
B7
32
13
DS
FB
3A
OA
FF
S2
OC
99
D4
[IS
38
0400
0410
0420
0430
0440
04S0
0460
0470
0480
0490
04AO
04E<0
04CO
0400
04EO
04FO
Cl
01
FB
E<7
00
30
01
00
55
F8
02
lS
07
03
32
24
04
CO
4E
F8
38
D4
32
4B
OS
3F
00
3A
OS
E<2
ES
SA
02
3A
32
65
2A
00
19
05
3D
04
04
B8
lA
3A
lA
lA
04
03
5D
A7
OA
E9
30
SE
58
00
01
OA
9A
EC
30
98
OSOO
OSlO
OS20
0530
0540
0550
0560
0570
0580
0590
05AO
05BO
05CO
05DO
05EO
05FO
D4
27
OA
DS
02
32
05
OA
8F
01
FB
B4
01
SA
A7
F6
06
1A
D4
F8
FC
59
3A
FE<
lB
04
2C
4B
65
05
89
D4
OS
OA
02
00
01
FF
67
OD
OB
01
32
32
5F
F8
FE
05
3A
04
04
A9
04
01
89
32
FE<
65
AA
E<1
B7
00
A9
F6
3B
F4
00
OD
EC
E<7
OA
81
3A
114
D4
01
SA
02
D4
01
20
FE
A9
3A
30
8A
FB
OA
CS
03
00
CO
04
04
06
tiA
99
AC
lA
04
20
F6
{IS
30
89
F8
FE<
OS
9A
1A
32
15
A7
OA
D4
01
32
1A
D4
D4
3A
OA
99
FE<
D5
OE<
40
06
04
CO
04
E<7
9A
09
SA
01
51
FE<
D4
02
D4
41
OS
84
04
23
01
8A
E<7
04
lA
13
04
S9
01
32
01
04
68
SA
01
OD
60
A7
8A
02
F8
lA
02
32
D8
4Il
19
90
52
05
6E
3A
OS
07
A7
2S
03
F8
04
S5
[14
OA
01
43
05
AB
1.14
E<7
D4
04
27
97
5A
03
26
03
F8
4A
01
04
04
8F
00
01
47
B9
04
A7
97
60
89
04
00
04
65
01
00
D4
3A
OS
52
FA
06
97
F6
FO
E<7
3A
DS
03
02
65
04
01
7C
9B
48
01
05
32
B7
FA
D4
2C
[14
04
04
02
05
OC
04
B8
F3
52
3A
E9
30
OF
00
D4
01
32
05
DS
F8
9A
01
88
32
99
Dl
FA
D5
FC
18
02
8A
ti2
A'7
2C
7E
A7
OD
04
on
e;
B"
O'~
24
30
02
os
OB
2A
on
01
FB
32
03
4C
03
01
1A
01
02
OA
BA
£14
06
05
5A
34
00
D4
00
B7
CO
A8
9A
FE
04
()1
87
30
FF
99
38
19
D4
It4
3 r"-l
00
D4
JA
30
03
7£
lS
3A
})S
3A
F4
17
89
03
02
7E
04
01
CE<
9C
3A
04
3A
FO
04
33
A9
4B
05
23
51
FB
30
ln
lA
97
C4
01
Fl
97
00
20
F8
D'1
D4
32
D4
29
66
D4
OA
BA
07
5A
4A
04
D6
99
00
03
01
5A
OA
B9
19
OD
OB
Dl
53
03
CO
D4
5A
lS
FE<
87
01
04
FB
04
()O
3A
.30
02
20
02
32
lA
19
03
06
3A
03
AA
01
J'"l
e:
D4
D4
OD
32
OD
OB
If.:
D4
61
54
03
32
OA
D4
07
£S
01
02
D4
31
OC
2A
32
01
04
SA
2C
07
D5
3B
01
32
A9
52
01
97
OS
2A
58
5A
01
A7
on
FB
D4
BE
47
El
05
FO
CO
52
D4
D5
D4
08
65
[14
3')s:
00
01
FC
99
87
73
39
25
89
01
04
01
D5
01
05
6F
32
19
01
D4
52
F6
02
4~
06
03
:~4
4:~
19
0'·)
C5
03
OD
23
ItS
<.
Bn
52
02
"7')
\J ':.
04
01
FE<
87
52
0::,
E<7
01
D4
HI
D4
D4
01
4n
03
03
C2
D4
01
BH
FE<
1 ~~
6E
O;~
F3
Sn
01
19
04
38
96
ns
AA
5F
F3
01
89
F6
CF
FA
D5
0<1.
13
D4
25
92
00
21
OD
AA
lA
30
04
60
00
D4
OA
93
02
02
1<7
05
65
03
04
02
5_
04
27
F8
ItS
3A
3A
OD
19
02
06
lA
32
F8
07
3A
D4
65
F4
F6
FC
•
27
•
'.
•
00
32
32
02
It5
OA
32
52
30
31
52
01
Bl
BS
AC
32
04
43
OA
15
97
OA
71
89
OA
32
89
It4
30
04
04
F7
05
FB
FB
32
A9
04
27
F5
04
B8
F5
01
AO
07
07
BE
FS
31
06
53
FS
01
S7
30
06
FB
32
65
04
01
29
8F
00
32
B3
B7
S9
33
BC
33
04
20
15
04
01
30
S7
97
B7
FB
97
FS
32
FC
SF
FC
05
07
FE
lA
3A
9A
S7
'FS
20
FA
50
FS
99
00
50
4C
04
3B
Fl
OA
26
Bl
AA
9F
5C
3F
05
20
lC
FB
20
SF
07
26
AF
FB
4A
SA
9F
AD
9F
5C
FS
5F
30
E2
FS
lF
06
FF
FC
24
AF
A7
CS
FS
FB
lC
FF
lF
99
32
El
9C
33
06
00
32
FS
D4
Fa
OS
OS
9C
BF
9F
SC
(lC
50
FB
26
33
05
49
OS
03
00
BIt
32
FB
FS
FB
FA
FB
10
4A
26
FF
OA
BF
B2
FC
1\ It
BB
E2
00
E2
EO
E2
FS
.3A
0600
0610
0620
0630
0640
0650
0660
0670
06S0
0690
06AO
06BO
06CO
0600
06EO
06FO
07
FB
FB
OA
FS
A7
27
81
S9
0700
0710
0720
0730
0740
0750
0760
0770
07S0
0790
07AO
07BO
07CO
0700
07EO
07FO
co
E2
3~)
s:
OA
00
lA
32
81
05
02
AA
01
01
33
33
AE
B7
43
4S·
04
115
A9
77
(14
3A
32
3B
U5
co
FC
FC
9S
FF
FC
00
FB
30
:~A
00
BC
FB
32
AF
3A
AC
BC
EO
FO
A7
FB
FB
03
F8
.30
27
05
B3
BA
BO
27
21
AS
32
86
38
01
0"7
04
01
50
30
D2
FS
lA
27
30
06
05
23
62
26
05
OIt
05
DE
AC
BO
SC
3B
FC
01\
lA
lA
3C
AC
32
F8
FS
30
FC
FO
t~C
BC
SF
BF
AC
~~S
OD
\)4
F7
8S
:~A
lA
32
32
32
C8
04
7I:1
89
00
89
S'7
17
3A
07
BIt
A6
OA
13
4B
::iA
F8
05
97
FB
FB
FB
D4
02
31
5.2
~30
81
A7 OA
B7 [14
32 Bl
30 99
FC 1(\
29 33
SF . Afl
))5 04
20
03
05
01
C8
S7
89
D4
FB
06
F8
17
01\
FC
26
OA
01
26
OA
9A
69
9F
C4
::iF
02
99
20
30
FS
9F
FF
3B
FE
OD
D4
15
AF
7F
32
32
:iIt
EO
FB
tj2
co
lA
It4
BF
69
FB
FB
5C
5F
2C
3B
99
20
BC
OA
SF
2C
OA
02
8A
F(.)
OC
07
8C
F8
9C
09
BC
AC
30
D4
01
52
CS
FS
BO
32
32
32
5A
F8
32
F4
01
on
05
00
30
0'7
32
0'/
5A
19
FE
3t-l
02
3A
97
O~j
A2
99
2D
BF
[IF
9C
FS
00
00
OA
43
4E
09
03
6B
30
47
32
3A
30
AA
01
F7
29
OE
FF
FE
64
15
26
BA
C4
F8
9F
9C
BC
3A
7C
EO
AF
00
OUT F' 1...1 T
'.; 'I
'J
-r
F F=- > !<:1:2/
T
p ::;' :::' p
J. J. J.
~::
T:f'F'F'
-rtF'
F'
U:20/
TOP
F'
U:20/
T:F'F'F'F'
U:20./
T~F'
.
L.
TTTTT
T
I
I-
T
I
L
I
L
r.L
L
I
L
'.,}
III
X:·~:O
o
o
o
a
LLLLL
0
T
0
T
0
T
0
T
000
•
T
" ..:..... /
J::LO
:.:~20
1
.L
II' '7'0,1
T i is .
U:20/
T" c·
u120
T
:
I I + ,••) t\
28
C:T=150
--------
CiT::::T-l
X~T=O
,IN: 30
R:
r i'···~ RC :1\: 0 C
L '.'
~. :::
I:' R'"\
.: f. .:: 2
; tJ i
l~
:It- 6 -4
..
'"\
... '.... R
:Jl:2 I:'...
i:~
f::' F R .::J
I
i\
*n "
;~
~1
'",'
•
%10 r:WHAT DAY IS IT ~
t~: $[1
M:MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SA1UR11~Y,SUNDAY,TODAY
TN: $:0 IS NUT (.1 D:1Y .- fRY fHUF:SD;lY
E:
1.10
T:HI. WHAT'S YOUR NAME;
AaN
T:HI SN, LETS PL~Y AN ADDING GAME
T:I'LL PRINT 2 NUMBERS AND YOU TYPE THE SUM
Z:10
C:A=Z
Z: 11.
C:B=Z+l
C:A+B
T:WHAT IS tA + tB ;
A: :I\:D
X:C:::[1
~IN:
30
t~ : :1\:
D
T:THAT'S RIGHT SN. LETS TRY ANOTHER ON~.
J:10
%30 T:OOPS, THATS NOT RIGHT. lRY AGAIN;
%20
/:C=D
JV:20
T'T~~TQ
~OT
RIPHT
fITY~R
T: TI~~' cOF:i~:Ec'r ANEI")~:b:
• .1 :
10
'ro '!:A
+
'~:B IS :Il:C
•
•
Infestation II - A Simulation Game in Quest Basic
- by P.B. Liescheski III, Dept. of Chem., U. of Texas, Austin, Texas 78712
INFESTATION II is a computer modeling algorithm which simulates
the propagation of disease in a forest. It is similar to the LIFE
algorithm except that it models disease propagation instead of
growth. This program was inspired by an article written by Frank C.
Hoppensteadt (1). The basic idea and rules were obtained from this
article.
This program simulates disease propagation in a forest according
to certain rules. Each tree which is loosely defined as a unit of
vegetation, can exist in one of three states. These three states are
green, infested and defoliated. The state of a tree for the next
season or generation is determined by applying the four basic rules:
•
1) A green tree remains green as long as it is not
infested.
2) An infested tree becomes defoliated in the next
season.
3) A defoliated tree becomes green in the- next season.
4) An infested tree can infest its eight nearest neighbors
with a seventy percent chance.
These rules determine the manner in which the disease travels in the
forest. It should be noted that Rule #4 introduces chance into the
algorithm, so the rules are not deterministic in nature. As a result
of this, the same initial forest pattern will produce different
results on every run.
In order to give the program some color, it has been written
with the Quest Gremlin color video board in mind. The graphics
generated by the program is not at all sophisticated. A healthy tree
is represented merely by a green square. An infested tree is
displayed as a red square while a defoliated tree is a yellow square.
Since the graphics is quite simple, it can be adapted for other
video boards including black-and-white boards. This adaptation can
be implemented by modifying the video memory parameters (line #13)
and the graphics color-codes (lines #22-24). For example, INFESTATION II can be adapted to the Solid State Music VB1B video board
by the following modifications:
13 B=@FOOO: W=64
and:
•
22 G$="*": G=ASC(G$)
23 1$="0": I=ASC(I$)
24 D$="+": D=ASC(D$)
30
•
In this case, the VBlB video memory begins at address FOOO, so B=@FOOO. In the
VBlB, 64 bytes of memory are alotted to a line; eventhough, only the first 32
are displayed on a conventional television screen, so w=64. Also a green tree is
represented by an asterisk. An infested tree is displayed as an 0, while a defoliated
tree is a plus sign. If one is interested in a forest of different size, the value
for N can be changed (line # 9). Using this as an example, the modification of
INFESTATION II should pose no problems.
INFESTATION II has been written in Quest Super BASIC V3.0. To use this program,
one must boot-up the 1802 system with the Quest Super BASIC interpreter. For proper
operation, the Gremlin video board must be set for the Alphanumeric/Semigraphics-4
mode. After the BASIC program has been typed and executed, it will display the
initial forest pattern as a N by N color grid (N=9). This grid is updated about
every half-minute for each season (generation). The program will continue until the
pestilence has past (if it does). With this, the message: "DISEASE HAS PAST" will
be displayed on the screen.
The initial forest pattern is stored in DATA statements (lines #61-69). The
initial pattern can be changed by modifying these DATA statements or by exchanging
the READ with an INPUT statement (line #85). This will allow the operator to enter
the initial pattern interactively. It should be stated once again that one need not
change the initial pattern to get different results, since the rules of the game
contain some element of chance. As the symbol table indicates, the letter G
represents a healthy tree in the input string of the initial forest pattern. The
letter I indicates an infested tree, while D is a defoliated tree.
The operation of INFESTATION II is quite simple. Basically, the initial f o r e s .
pattern is read into matrix F. The program checks for errors in the initial forest
pattern. Next the video screen is cleared (CLS) and flag T is checked to see
whether the infestation has past. If not, then the contents of F are transferred
to matrix L and matrix F is refreshed. The contents of L are displayed on the
Gremlin video memory via the POKE command. With this, the four basic rules are
applied to determine the state of the forest for the next season. After this, the
process is repeated until the pestilence has past or until the 1802 system is
unplugged. Finally to simplify the logic, the boundaries of the forest are avoided.
This is the reason for dimensioning the matrices Land F as N+2 by N+2 (where N=9).
INFESTATION II is based upon a simple modeling algorithm. Its major flaw is
its speed. Since the algorithm is simple, the task of writing it in a faster,
low-level language, such as machine code, should not be too difficult. In a faster
language, the program can operate faster with larger forests. INFESTATION II is
meant to demonstrate the basic principles behind population simulation. Like LIFE,
it will also produce very interesting and colorful patterns.
Reference
1
C "M thematical Aspects of Population Bio 1 ogy. "
Hoppensteadt, Frank •
a
1
297-320. Edited by Lynn Arthur
In Mathematics Today: Twelve Informa Essays, pp.
Steen. New York: Springer Verlag, 1978.
•
31
REM '**
REM ** INFESTATION - VERSION 2
3
REM **
REM '** PHILLIP B. LIESCHESKI III ** 12/17/82
Ii
REM **
GREMLIN VIDEO BOARD IS USED FOR COLOR GRAPHICS
DEFI NT Z
1
REM *
REM * FOREST GRID SIZE AND INITIAL PARAMETRERS
8
CJ
N=9: T=1
10 DIM LCN+2,N+2),FCN+2,N+2)
11 REM *
12 REM * VIDEO MEMORY PARAMETERS - STARTING ADDRESS, SCREEN WIDTH
13 B=liEOOO: W=32
V=B+«16-N)/2+1)*W
14
20 REM *
REM * GREMLIN GRAPHICS COLOR CODE
21
22 G=#8F
23 I=ffBF
24 D=n9F
30 REM **
35 REM ** ENTER INITIAL FOREST PATTERN
38 REM '*
40 REM * SYMBOL TABLE:
G-GREEN=LIVING TREE
45 REM *
I-RED=INFESTED TREE
50 REM *
TREE
D-YELLOW=DEFOLIATED
55
REM *
60
REM *
61 DATA "GGGGGGGGG"
62 DATA ,. GGGGGGGGG"
DATA ,. GGGGGGGGG' ,
63
64- DATA • 'GGGGGGGGG' ,
65 DATA . . GGGG IGGGG"
66 DATA "GGGGGGGGG't
67 DATA "GGGGGGGGG' ,
69 DATA "GGGGGGGGG' ,
69 DATA . . GGGGGGGGG"
10 REM *
AD FOR R=2 TO N+l
READ L$
85
FOR C=2 TO N+ 1
90
99
REM *
REM * REQUEST EACH TREE STATE
100
AS=MIO$(LS,C-1,l)
110
IF AS="I" THEN F(C,R)=I: GO TO 160
120
IF A$="D't THEN F(C,R)=D: GO TO 160
130
IF A$="G" THEN FCC,R)=G: GO TO 160
140
PRINT
"ERROR IN FOREST PATTERN": END
150
NEXT
C
160
170 NEXT R
180
REM **
181 REM ** CLEAR THE SCREEN AND BEGIN
190 CLS
20A REM **
209 REM ** CHECK IF INFESTATION IS GONE
IF T()O GO TO 217
210
211
REM **
212 REM ** DISEASE HAS PAST
213 PRINT "DISEASE HAS PAST": END
217 T=O
220 REM **
221 REM ** DISPLAY FOREST PATTERN
1
2
.~
•
•
230
240
241
242
245
248
249
250
258
259
260
270
278
279
280
290
300
310
311
312
313
320
330
338
339
3" 0
348
349
350
355
358
359
360
369
370
375
380
390
400
410
420
"30
""
0
"50
460
470
480
999
FOR R=2 TO N+l
32
FOR C=2 TO N+l
Rl::M ..
REM * TRANSFER NEW GENERA1ICN PATTERN
LCC,R)=FCC,R)
REM *
REM .. REFRESH TEMPORARY FCREST MATRIX
F(C,R)=G
REM •
REM * CALCULATE VIDEO MEMORY ADDRESS
X=C-l+(32-N)/2
Y=V + CR-2)*\J
REM .•
REM * PUSH COLOR CODE I NT C VIOEO MEMORY
POKE(X+Y,L(C,Rl)
NEXT C
NEXT R
REM **
REM ** DETERMINE PATTERN FOR NEXT GENERATION
REM ** ••• BOUNDARIES OF FOREST ARE AvrOOED TO
REM **
SIMPLIFY THE LOGIC •••
FOR R=2 TO N+l
FOR C=2 TO tHl
REM·
REM" IF DEFOLIATED, MAKE GREEN
IF LCC,R)=D THEN F(C,R)=G: GO TO 460
REM ..
REM * IF NOT INFESTED, LEAVE IT ALONE
IF LCC,R)(>I GO TO 460
T=1
REM *
REM * IF INFESTED, DEFOLIATE •••
FCC,R)=D
REM"
REM * ••• AND INFEST NEIGHBORS WITH 70% CHANCE
P=70: H=100
IF L(C+l,R+l)=G IF RNDCH)(P THEN FCC+l,R+l)=I
IF L(C+l,R-l)=G IF RNOCH)(P THEN FCC+l,R-l)=I
IF L(C-l,R+l)=G IF RNOCH)(P THEN FCC-l,R+l)=I
IF LCC-l,R-l)=G IF RNOCHl(P THEN FCC-l,R-l)=I
IF LCC,R+l)=G IF RNOCHl(P THEN FCC,R+l)=I
IF LCC,R-l)=G IF RNOCH)(P THEN FCC,R-l)=I
IF LCC+l,R)=G IF RNOCH)(P THEN FCC+l,R)=I
IF LCC-l,R)=G IF RNOCH)(P THEN FCC-l,R)=I
NEXT C
NEXT R
GO TO 210
END
•
•
•
33
•
A
HEX KEYRO.~~D mfCODER
-by Grant Thomson, 3793 The Boulevard, Westmount, Quebec H3Y lT3
SC.~WNING
Here is a scanning hex keyboard circuit that I think is eleg~~t
and economical. It is adapted from 'A Scanning ASCII Keyboard
Encoder' from Don Lancaster's CMOS Cookbook o Only four IC's
make up the scanning and encoding circuitry. Two four-bit latches,
a flip-flop, and a Schmitt trigger (here I used a spare 4050 with
feedback) are also needed. Here's how it works.
The two 4011 gates form a 4 kHz clock that is gated. If the clock
is allowed to run, the 4520 binary counter continuously cycles
through its counts.
•
The top two bits of the counter are routed to a 4051 which is used
as a one-of-four selector that sequentially connects rows of the
keyboard to ground. Meanwhile, the lower two bits of the counter,
which are cycling faster, are routed to a second 4051 which is
monitoring sequential columns of characters. When a key is
pressed, the output through both selectors goes to ground and
stops the gated oscillator and holds the count. The output of the
counter is the binary representation of the key that is pressed.
A Schmitt trigger prOVides a keypressed output which is used to
latch the binary data and to clock a flip-flop that alternately
selects high and low four-bit latcheso(The flip-flop is reset when
either the INPUT or CLEAR IDL~OR key is pressed.)
When the key is released, scanning resumes until a new key is
pressed. If a second key is pressed while one is already down,
nothing happens right away. But, when the first key is released,
scanning resumes and then stops at the second key location. This
is called "two-key rollover" and helps to minimize errors.
The keyboard is fully debounced by the 0.47}4F capacitor and .the
Schmitt trigger. I used a spare 4050 gate and two resistors to
make a Schmitt trigger. I found the values of the resistor~ and the
capacitor were quite critical for proper gating of. the oscl.~at~r.
It may be necessary to experiment with the values l.n your cl.rcul.t.
•
. . '0"
C.LEA~
E ~OI2..
~71:.
..L
I~PO-r-
.J;O
14
13
12.
-ll-
---
10 +I5V
_A.±C,- -.
~.l
~~---'i
-
1 jj~~
1
I
1
31
-u-t5V
(
4!>20
2.
4
4TST
~
otrrpol'
Ef...IAeLE
4013
_12
Q
-
6
U-'-
_.
i _ I J2
-::L
JV\Iv
''-
IO~
--.
6,7':1-
~
-.
4oSo
,",EX K.EyBoA,RD-
Key
W\lc~ES
SHca~
Of..!Deg II
CDS F
8 9 A 6
4 5" 6 7
o I 2- 3
~,IO
...~"
3
,4
I
1~I
405
:2.
1~4J
407b
~
E
C.
I"-J!OU"(
--.
D3
t::'
D
;2.
0\
DO
10
B
'3 0
•
~
1/2-
a our
Ell
12.
-.
~6
',~
7
JI EW
L ......+-t-.... 1J...l
0r;b.
.3
•
c:
~
IlOK..
~AC."
3
9
(}
l-
-
•
•
Notes on Netronics Tiny Basic
- by o. Hoheisel, Herm. - Bossd. - Str. 33, 2190 Cuxhaven 1, W. Germany
Vlhile experimenting with Netronics Tiny Basic, I found the ro l l.owi ng
very interesting capRbility. Type or lORd a program that at some time
stops and enters the command mode. RUN it to test it and then execute
a POKE 1897,167 command. The program will run as if you entered a RUN
command, and when it reaches an END statement (or an error occurs),
it will automatically start at the beginning again. This Can be very
useful if only a small amount of memory is available, but you want to
write large programs, because now you can store several parts of a program
on cassette, and at the end of a part the following lines will load
and start the next part.
30000
30010
30020
30030
300 Lt0
•
PRINT "PRESS 'PLAY' ON TAPE DECK, PLEA,SE"
REH TURIJ ON .~ UTO-RUN
POKE 1397,167
REM NO';! LOAD NEXT PART
LOAD
With cassette 'motor control, this could be done completely automatically. By the way, if you want to turn auto-run off again, use
a POKE 1897,39 command or use your monitor to write a (hex) 27 into
(hex) address 0769. This is also a great tool to make your programs
fail-safe for all users since error stops and even a break will just
s t a r t the urogram over.
While looking at Tiny's command table, I found that Netronics' version
has an additional function not mentioned in any of their manuals.
The syntax is FLG(X), and it will return the logic value (0 or 1) of
the EF-flag determined by X. This X Can be any valid expr-e suto n from
to 4, but FLG(0) will always return -256, because there is no such
flag. The following example will wait for the user to press the 'I'
switch to continue.
o
30000 PRINT "PRESS ' I' ro CON'['INUE"
30010 IF FLG(Lt)=0 GOTO 30010
30020 REM CONTINUE: H'~RE
•
36
•
ACE CPU Board
Size:
6" x 9.5"
Function:
Power:
to provide - a system micro computer ( 1802 -04 -05 -06)
- control logic, power on reset, fully decoded
INTERUPT, DMAIN and DMAOUT.
selectable BOOT to any PAGE ADDRESS
- 4 JEDEC EPROM/RAM sockets, with DUAL ADDRESS
decoding for 2 locations or sizes of memory.
- INPORTand OUTPORT
- UART with selectable baud rate
- RS 232 C with 2 Db 25 connectors
- extensive prototype area (1.5" x 8.5")
CPU Board is designed to be a system or standalone micro
controller board.
+5 v. Gnd.
Documemtation:
+12v for RS 232C circuit.
assembly and test instructions, software for UART.
•
PROTO TYPE AREA
22
<:> 8Y
Fl.SS CAP
ACE CPU BOARD
PARTS PLACEMENT
•
OJ
C
37
Vl'
(flO
IV
Vl
~fTl
r
.....
(">
-0
C
.....
•
0
o~
0
"0
-0
~
.....
~
Il
C\tv
;;:
t'1
::::
::::
t'1
"':l
oo
'"
~
0
:>
o
--O--V'l
.
t'1
0
::0 0(')
><:
"
t'1
o
g
....
Z
Cl
~
....:ICj\(J'1"'"
c:::
.~
t:I
::0
0
If)
Vl~
~l
0
-:>
~O-N
#'o060~!0600 ~
fTl ....
r:
<P
tv
~
'"
-D
C1'
(J1
•
tv
IV
X"
DMA ---r--~
OUT
ACE CPU BOARD
CPU and CONTROL CIRCUITS
A7.
•
:
:
AO'
D7.
9x2, k
DO'
N2
1
NO
~
MFlO
MEF 82.10
:
~
1m
ACE CPU IlOI\RD PARIS LIST
CPU Control , Boot
IC •
1 4013
IC •
8 4042
2
4013
9
4042
3
4011
10
4556
4
4093
11
4556
5
4556
17
EPRCM/lW4
6
4077
18
7
1802/4/5/6
19
12
74C244
20
13
4073
14
15
4073
2
10 - 22K 1/4 watt 5\
1 - lOOK 1/4 watt
1 - 10 Hffi 1/4 watt
Capacitors
1 - 2.2 mf tantalum
2 - 20 p.f. ceramic
22K 1/4 watt 5\
flr~
C
o
~
=
...,
I
L]~
-
en
<:P
~
w
~ ~I~I
~
-J1Jl1TI I
I L4
L~
t-:::I~C;
wL..:_:~--;-'-;80
CP
(.oJ
'"--J
1854
22
SMC-ooM 8116 (P)
23
1852
24
1852
~
__
_
tJ'''''~
~;;;
-<
"1l
--'O~
1 - IN914
Diodes
7 - IN 914
VJ
IV ' "
\D
O.tJ1
I
II
I
I
...,
-x-
.
VI
I I I
0
_I.DI
ClO
::....
N'
.....
~
W~IJlIO"-..1o;\!)cn
s
~
----
N""
tl
C'l
.--
:=l
w
-
~
...,X
N
'-
"
e-
-< ""
""O.&"-
-
0
....
--
;p
>,j
()
()
00
to..>
::0
0
>-i
r.l
...
0
....
r.l
o o
c:::
.... c:::
(Jl
'"
0
;p
5.0688 meg.
MHg2""MJ
ulof-c.rC"CO-IVt..oJ....
~
Connectors
Db25 Female
•
~ ~
mE
tl:l
El
~
(wire BOlder type)
s-:
• -ltV
N-C~ --"W
(J'1- I
r:::",_Q"l~COCIt
i':::
9 x 22K SIP or 9-22K 1/4 watt
r-..J
:.0
22K 1/4 watt 5\
4
VI - 0
a>
~:-:::
::0
-
tn
1489
Diode
•
II
.~~
1488
25
I
VI
-<00
"tJ
~
21
j
nlVl
I I
1853
16
2
~
t.AJW ~.fl\ U"ItV-"
,
Switch
""
~I-
;;:;1
w"""
.~T",I.Q
... °1
-0 r
0
...,
m::o
o
yt=J~I~
IC t
Resistors
•
'-
o
Port, UART, RS232C
3 - 10 mf tantalum (buss filters)
1 - 8 position dip
...,-0
~-o
8 pe6ition dip
6 - 0.001 mf ceramic (bypass ceps .)
1 - 1.0 meg to 5.0 meg
n
N
,-"
Ci
,
0
26
~
~
~
rrr
IIW:.u'~1 ~r~:
9lIitch
2
2 - 9 x 22K SIP or 18-22K 1/4 watt
0'
Resistors
4073
Resistors
~~
Mes1Pry
...... :;
~
tv U1
rrr II I
S"'-
O\~ ~(7\.&"-
~
*
t.n
N
ota::O/ :";1:;
n
Vl
l.nj _..
-<
::0.
--<
V'I
~
Vl
c>
~s::;jo);-..i~~~
::;;~
....
c·
.-1
•
.0
."
CLUB COMMUNIQUE
NAME:
•
---------------
PRODUCT ORDER
CPU Board
Backplane and I/O Board, Ver. 2
Front Panel (with EPROM Burner, Clock)
I/O Adapter for Backplane, Ver. 1
64K Dynamic (4116) Board
EPROM (2716/32) Board
Kluge (wire wrap) Board
8" Disk Controller Board
Netronics - Ace Adapter Board
Netronics - Quest Adapter Board
DMA Adapter Board (ELF II)
VDU Board
DATE:
QUANTITY
_
UNIT PRICE
TOTAL
$40.00
40.00
35.00
20.00
50.00
40.00
25.00
40.00
25.00
20.00
3.00
40.00
Software
Fig FORTH
•
- Netronics Cassette
format (6K)
Tiny Pilot - Netronics Cassette
format (2K)
$10.00
$10.00
Back Issues
"Defacto" Year 1 - 3 (Edited)
Year 4 Reprint
Year 5 Reprint
$20.00
10.00
10.00
Membership
Current Year - Sept. '82 - Aug. '83
includes 6 issues of Ipso Facto
Canadian
American
Overseas
$20.00 Cdn.
20.00 U.S.
25.00 U.S.
PRICE NOTE
•
Prices listed are in local funds. Americans and Overseas pay in U.S.
Funds, Canadians in Canadian Funds. Overseas orders: for all items add
$10.00 for air mail postage. Please use money orders or bank draft for
prompt shipment. Personal cheques require up to six weeks for bank
clearance prior to shipping orders •
SALE POLICY
We guarantee that all our products work in an A.C.E. configuration
microcomputer. We will endeavour to assist in custom applications, but
assume no liabili ty for such use. Orders will be shipped as promptly as
payment is guaranteed.
NAME:
MAILING ADDRESS:
•
PHONE NO.:
Note:
Ensure mailing address is correct, complete and printed.
Please ensure payment is enclosed.
ASSOCIATION OF COMPUTER-CHIP EXPERIMENTERS
c/o M.E. FRANKLIN
690 LAURIER AVENUE,
MILTON, ONTARIO
L9T 4R5
•
•