Micro_Cornucopia_#21_Dec84 Micro Cornucopia #21 Dec84

Micro_Cornucopia_#21_Dec84 Micro_Cornucopia_%2321_Dec84

User Manual: Micro_Cornucopia_#21_Dec84

Open the PDF directly: View PDF PDF.
Page Count: 84

DownloadMicro_Cornucopia_#21_Dec84 Micro Cornucopia #21 Dec84
Open PDF In BrowserView PDF
$3.00

December-January 1985

No. 21

TABLE OF CONTENTS
Analog to Digital Interface.............................................

4

Communication Between High..Level and Asse~bly Language ..... 10
Pascal Procedures ....................................................... 14
Installing Turbo Pascal ................................................. 16
Xerox 820 Column ...................................................... 20
C'ing Clearly ............................................................ 24
Low Intensity BB I Video .............................................. 26
Slicer Column .......................................................... 31
Saving Money on Quad Density Disks ............................... 34
Three Keyboard Translators ........................................... 36
Kaypro Column ........................................................ 40
KAMAS, An Outline Processor ....................................... 47
FORTI-Iwords .................. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 48
SBASIC Column ......................................................... 52
Cooling a Hot Computer .............................................. 55
No Fault Power ......................................................... 61
On Your Own: Turbo Pascal, the Early Days ........................ 63
Technical Tips .......................................................... 76

"THE ORIGINAL BIG BOARD"
OEM - INDUSTRIAL - BUSINESS - SCIENTIFIC

SINGLE BOARD COMPUTER KIT!
Z-80 CPU!

64K RAM!

(DO NOT CONFUSE WITH ANY OF OUR FLATTERING IMITATORS!)

tiw
::J

ow
a:

z

o

>

Q.

o

o
w
w
a:

IL

>=

IZ
~

a:
a:

~

~

c
w

!::

:E

::l

~
c
o
en

a:

::J

o

IL

o

rn

:E

a:
w
Iw

THE BIG BOARD PROJECT: With thousands sold worldwide and over two years of field experience, the Big
Board may just be one of the most reliable single board computers available today. This is the same design that
was licensed by Xerox Corp. as the basis for their 820 computer.
The Big Board gives you the right mix of most needed computing features all on one board. The Big Board was
designed from scratch to run the latest version of CP/M·. Just imagine all the off-the-shelf software that can be
run on the Big Board without any modifications needed.

FULLY SOCKETED!

FEATURES: (Remember, all this on one board!)

(64K KIT
BASIC I/O)
SIZE: 8'12 x 13'/. IN.
SAME AS AN 8 IN. DRIVE.
REQUIRES: +5V @ 3 AMPS
+ - 12V @.5 AMPS.

64K RAM

24 x 80 CHARACTER VIDEO

Uses Industry standard 4116 RAM's. AII64K Is available to the user, our VIDEO
and EPROM sections do not make holes In system RAM. Also, very special care
was taken In the RAM array PC layout to eliminate potential noise and glitches.

With a crisp, flicker-free display that looks extremely sharp even on small
monitors. Hardware scroll and full cursor control. Composite video or split video
and sync. Character set Is supplied on a 2716 style ROM, making customized
fonts easy. Sync pulses can be any desired length or polarity. Video may be
Inverted or true. 5 x 7 Matrix - Upper & Lower Case.

~

Z-80 CPU

o

Running at 2.5 MHZ. Handles all 4116 RAM refresh and supports Mode 2
INTERUPTS. Fully buffered and runs 8080 software.

FLOPPY DISC CONTROLLER

SERIAL I/O (OPTIONAL)

Uses WD1771 controller chip with a TTL Data Separator for enhanced reliability.
IBM 3740 compatible. Supports up to four 8 Inch disc drives. Directly compatible
with standard Shugart drives such as the SA800 or SA801. Drives can be
configured for remote AC off-on. Runs CP/M" 2.2.

Il-

t>
..,w
III
::J

rn
w

c

~

:E

rn
w

Full 2 channels using the Z80 SIO andtheSMC 8116 Baud Rate Generator. FULL
RS232! For synchronous or asynchronous communication. In synchronous
mode, the clocks can be transmitted or received by a modem. Both channels can
be set up for either data-communication or data-terminals. Supports mode 21nl
Price for all parts and connectors: $39.95

BASIC I/O
Consists of separate parallel port (Z80 PIO) for use wlth.an ASCII encoded
keyboard for Input. Output would be on the 80 x 24 Video Display.

TWO PORT PARALLEL I/O (OPTIONAL)
Uses Z-80 PIO. Full 16 bits, fully buffered, bl-dlrectlonal. Uses selectable hand
shake polarity. Set of all parts and connectors for parallel I/O: $19.95

I

REAL TIME CLOCK (OPTIONAL)
Uses Z-80 CTC. Can be configured as a Counter on Real Time Clock. Set of all
parts: $9.95

..J

~

rn

..J
..J

~

BLANK PC BOARD - $89.95
The blank Big Board PC Board comes complete with full
documentation (including schematics), the character ROM,
the PFM 3.3 MONITOR ROM, and a diskette with the source
of our BIOS, BOOT, and PFM 3.3 MONITOR.

CP/M* 2.2 FOR BIG BOARD
The popular CP/M' D.O.S. to run on Big Board is available for $139.00.

DOUBLE DENSITY ADAPTER BOARD - $149.95 (A&T~
Requires no cuts or MODS to an existing Big Board. Gives up to 670K storage on
a Single sided 8 In. diskette. With software to patch your CP/M" 2.2.

PFM 3.3 2K SYSTEM MONITOR
The real power of the Big Board lies In Its PFM 3.3 on board monitor. PFM commands Include: Dump Memory, Boot CP/M", Copy, Examine, Fill Memory, Test Memory, Go To,
Read and Write I/O Ports, Disc Read (Drive, Track, Sector), and Search PFM occupies one of the four 2716 EPROM locations provided. Z-80 Is a Trademark of Zilog.

Digital Research Computers
(OF TEXAS)

P.O. BOX 461565 • GARLAND, TEXAS 75046 • (214) 225-2309.

TERMS: Shipments will be made approximately 3 to 6 weeks after we
receive your order. VISA, MC, cash accepted. We will accept COD's (for the
Big Board only) with a $75 deposit. Balance UPS COD. Add $4.00 shipping.
USA AND CANADA ONLY

*TRADEMARK OF DIGITAL RESEARCH. NOT ASSOCIATED WITH DIGITAL RESEARCH OF CALIFORNIA, THE ORIGINATORS OF CPM SOFTWARE
**1 TO 4 PIECE DOMESTIC USA PRICE.

MICRO CORNUCOPIA
P.O. Box 223
Bend, Oregon 97709
503-382-8048

IICIO CDIRVCDrll
December-January 1985

Editor & Publisher
David J. Thompson
Operations Manager
Myron Pogue
Assistant Editor
Rebecca Ozrelic

I See
Spots

Graphic Design
Barbara Smiley
Technical Department
Dana Cotant
Eric Roby
Tony Ozrelic Laine Stump
Advertising Director
Alice Holbrow
Staff Assistants
Dorcas Dsenis Tracey Braas
Carla Miller
Cary Gatton
Secretary
Christina Donaldson

MICRO CORNUCOPIA is the systems journal supporting systems programming languages and builders of single board and 5-100
systems.
MICRO CORNUCOPIA is published six
times a year by Micro Cornucopia Inc. P.O.
Box 223, Bend, Oregon 97709.
SUBSCRIPTION RATES:
$16.00
1 yr. (bulk rate)
1 yr. (first class)
$22.00
1 yr. (Canada & Mexico)
$22.00
1 yr. (other foreign)
$30.00
Make all orders payable in U.S. funds on a
U.S. bank, please.
ADVERTISING RATES: Available on request
(call Alice Holbrow).
CHANGE OF ADDRESS: Please send you old
label and new address.
SOFTWARE, HARDWARE, AND BOOK
VENDORS: We would very much like to review your software, Single Board, and 5-100
products. Send materials to the Review Department, Micro Cornucopia.

CP/M is a trademark of Digital Research, Inc.
Copyright © 1984 by Micro Cornucopia
All rights reserved

Putting Ink On Paper
Those of you who have been with Micro C over the years and those of you
who have waded through most of the
back issues have followed the growth of
Micro C from a 16-page light-weight to
this 70+ page catalog. (At least they feel
like catalogs when we're hauling more
than 3,000 pounds of them to the post
office.)
Well, we're still going and growing
thanks to a strong core of contributors
and a very responsive group of Kaypro
owners who are just as excited about the
technical details of their system as us
"old" timers. Well, as you will see, there
will soon be another new group of Micro
C subscribers. Many of these, however,
are already "old" hands.
Microsystems

Microsystems magazine, begun in 1979
by Sol Libes, has had the same kind of
supportive readership that we have had.
Originally the magazine was called 5-100
Microsystems and it helped guide the 5100 system through its infancy and toward its current maturity. In the process,
5-100 Microsystems attracted a loyal following of very technical people.
As the computer market moved away
from the 5-100 bus, Sol dropped the 5100 prefix and began shifting the emphasis from hardware to operating systems
(CP/M 80, CP/M 86, MSDOS, and UNIX) and systems software. He was hoping to expand the audience (there are only a limited number of really technical
folks) and remain viable in this rapidly

No.21
changing marketplace.
During this period along came ZiffDavis, a giant publisher looking for ways
to make inroads into the burgeoning
computer market. Microsystems seemed
just the ticket, and Sol, well, he was
much more interested in writing and
teaching than in publishing, anyway, so
he sold the magazine. (We magazine
types don't need offspring; we have our
publications which are just as ornery and
spiteful and fun as kids ever dreamed of
being.)
Ziff-Davis installed some new (expensive) talent and made Microsystems a
real high-class operation complete with
salesmen, bingo cards, and special subscription deals. Its goal was a total circulation of 100,000 (newsstands and subscribers).
It turns out that per-copy printing
costs drop dramatically when you run
100,000 copies. At that number, a fourcolor, 120-page magazine costs about 60
cents per copy. That's less than it costs
us per copy to print a 72-page black and
white Micro C.
Anyway, Microsystems' circulation
peaked at about 50,000 (which may be
two copies for every 5-100 system in the
country), so the December issue will be
the last. (Sol was devastated when they
told him.)
The Wall Street Journal just reported
that Ziff-Davis has put 25 of its business
and consumer magazines up for saleincluding: Car and Driver, Popular Photography, Travel Weekly and Stereo Review. The article indicated that Ziff was
not selling any of its computer magazines (what's left of them).
So Ziff-Davis appears to be putting its
corporate house in order and in the process the computer community is losing an
institution. I'm very sorry to see it go.
But:
New Columns In Micro C
Just when you thought that Micro C
was already chock-full of columns
(nuts), we announce two new ones. Sol
Libes has agreed to do a column for us.
He will be writing about public domain
software, and he should certainly know
(continued on page 70)

1

LITTIRS
D_ear Editor,
We want to thank you for the mention
in Issue 20, "On Your Own." We're sorry
you don't approve of the name of our
company (BEE. MaR Enterprises). Our
name is our names: Linda Bee and Gary
Morris, and fortunately we didn't shell
out $40,000 to name our company
BEE.MOR. We have been marketing peripheral products and systems for Kaypros, and operate a disk drive service
center. Fortunately, our business is
MaR, not less, than last year because we
ship a good product.
We are avid readers of Micro C and appreciate the wealth of knowledge you
provide.
Linda Bee
Gary Morris
BEE.MOR Enterprises
22182nd Ave. E.
Sumner WA 98390

Editor's note:
Thanks for the letter, Linda and Gary. The
response to that "On Your Own" column
was immediate and very interesting. Some
people loved it, some had mixed feelings, and
others thought I was off base (I won't repeat
how far off).
Picking on someone's business name is
about as bad as picking on his personal name
(perhaps worse since he didn't have any
choice over his own name).
Before I wrote the column, I told the outfit
that distributes Dulmonts what I thought
about the name (to their face). The distributor
indicated that it too had tried to get the name
changed but that the Dulmont company insisted: "That's always been our name, we're
successful, and we're not going to change
it!!!!!!!!!!" The Dulmont company was definitely not interested in a new name.
The Integrand folks responded immediately with a beautifully written reply. Their
name was derived from the mathematical
term "integration," and at the time, they
thought it was appropriate for a small cabinet
company (and from what I've heard they are
not all that small any longer). And, to answer
Integrand's question, "If you make pianos
like you make your cabinets, yes , I'd definitely
be interested in a piano."
Jim Tanner also called to say that according
to his recollection, the name "Big Board" was
his idea. One afternoon while going over
prices for producing the Big Board circuit

2

board someone commented that the run
would be expensive because it was such a "big
board." No too long afterwards he was tuned
to the stock market report while driving
home. They announced the number of shares
traded on the "Big Board" and bingo.
Dear Editor,
I have enjoyed your magazine very
much and I have found the articles to be
very informative. I own a KayPro 10 and
I would love to see more on what makes
it tick and how to improve upon it.
I work for a KayPro dealer and I have
had fun speeding up the II's and the 4's
to run at 5mhz.
By the way, I have found that with a
standard II or 4, I could only go up to
2400 baud when using MODEM7 between a slow Kaypro and a different
brand 4 MHz machine. After speeding
up the Kaypro, 9600 baud was no problem.
And now I have the same problem
with my 10. I can only go up to 2400 baud
before I start getting errors. I wrote a letter to KayPro about this and they called
me back to get further information, but
as of yet there has been no solution.
There is so much out there in the way
of add-on's for the II and 4 but nothing
for the 10. I would like to ask everybody
out there if they have heard of any way
to do the following.
1. Add a clock (with software) onto a 10.

2. How about a 6mhz upgrade? (I have
the Z80-B's)
3. Adding an 8088 board and MSDOS
andCP/M86.

4. RAM disk (might use 8088 board
memory).
5. ZCPR type modifications to CCP.
6. Add an 8" drive. This I would like a
lot. I already have UNIFORM for my 5";
with an 8" I wouldn't have to use MODEM7 to transfer my programs.
7. A 30011200 modem card.
8. Screen dump routine, one that could
dump the graphics as well would be
nice. (I have Prowriter 8510).
9. I have just read the article on how to
turn your KayPro II or 4 into an 8. How
about this mod for the 10?
I want the world, but why not?
David R. Meyers
6390 Rancho Mission Rd. #208
San Diego, CA 92108

Dear Editor,
Back in August I sent a check for $20
for your new Kaypro 4-84 schematics.
My check hasn't been cashed yet, so I'm
not angry, but I sure would like to have
those schematics. Did the check get
washed down the river when you were
shooting the rapids? Just write a note on
some toilet paper and let me know.
Chuck Weingart
2152 W. Iowa
Chicago IL 60622

Staff reply:
You're right. It did get washed down the
river but we finally fished it out. We decided to
wait until it dried out before we sent it,
though, so that's why it took so long. As for
toilet paper, we ran out last week.
Actually, we finally got the darn things
finished and shipped, so if you haven't received yours by now, please let us know.
Editor's note (to the staff):
A shortage of toilet paper could be disastrous (not even the software press releases
work very well for this purpose).
Dear Editor,
I could not let J. Wytsma's comments
in Micro C issue 19 about the dearth of
BBII articles go without rebuttal. One of
things I" enjoy most about Micro C is its
informal approach coupled with varied
information. I also enjoy the occasional
minor errors. The whole format of Micro
C makes it more personal and, for me,
more readable than many of the "biggies" I no longer subscribe to. While
Wytsma's point is well taken, I don't
know how Micro C will continue to offer
so much information on so many subjects for so little without changing a lot.
It's a rotten shame that progress is a reality rather than just a theory.
Dick Schaffer
5138 W. Olive Ave.
Glendale AZ 85302

Editor's note:
Thanks, Dick. I have really been struggling with idea of Micro C and change and
it's been one of the most difficult parts of being
editor. Other publications are facing the same
changes and it doesn't look like very many
have found any real direction. Some are just
floundering better than others.

Micro Cornucopia, Number 21, December-January 1985

LITTIRS
Dear Editor,
I see all of the interesting things that
some people are doing with the Big
Boards and start getting the urge to try
some of them.
Would it be possible to get one of the
Big Boards, and by using your improved
PROM, generate a system that would
use the Kaypro software and read the
same disks in the same format?
The Big Boards might have the advantage that I would be able to have more II
o and the possibility of having an 8" disk
to access some of the CP/M software.
Some time ago I put together a SWTP
6800 system and have had some limited
experience in assembly language programming. I do not have much spare
time and am somewhat afraid that I
might be getting into a lot more than I
can cope with.
Can the disk controller on the Digital
Research Computers be changed to one
that will controlS" floppies?
Would the BB II be a better choice as an
answer to this problem?
Albert P. Van der Klott
Wahl-Henius Institute, Inc.
4206 N. Broadway
Chicago 1160613

Editor's note:
We're working on that Kaypro/BB modification but it could be as much as six months
down the road. Even then, you will need to
perform some non-trivial details to use the
software.
To date we haven't completed the modification that would allow the DRC controller to
run 5" but SWP has a package. However this
package will only allow you to run 8" or 5",
not both.
The BB II will run both 5" and 8" with
Andy Bakker's software but lack of support
and documentation (as well as installed base)
for that system make it a difficult project for
all but heavy-weight engineering types.

Dear Editor,
I received my blank PCB for the BB I
about a year ago along with a sample
page from Micro C. So I sent for a subscription and have enjoyed every issue.
After admiring my blank board for a
couple of weeks, I finally started soldering sockets.

I could only go for about 2 hours at a
sitting before those neat rows of pins
turned into a sea of waving spears. But I
finally got them all in.
The caps and resistors were added; the
connectors, crystals, etc., were soldered
in; and then the long careful job of inserting the IC's was done. I went over the
board with a magnifying glass a million
times it seems and everything looked
good.
I built a box, a 24-volt power supply,
bought a Shugart from Cascade and a
solid state switch from Phenix, wired it
all together, flipped the switch on, hit return on the keyboard, opened my eyes,
and beheld a glorious spectacle of every
character in the English and Greek character alphabets flashing on and off.
Going over the board I found 4 IC's
with bent out pins and the display
changed to alternate zero's and colons.
So I got out my stack of Micro C's and
found a good article which discussed a
similar problem.
Trying everything the article suggested made things no better or worse, so I
began to substitute IC's and found a
flaky 74LS123.
The monitor went blank when I
turned it on and PFM signed on, my wife
thought I had been electrocuted from all
the jumping and hollering that went on.
To make a long letter longer, I'd like to
say it's all been fun and to thank you for a
good magazine and thanks to the many
suppliers that advertise in it. They have
all been prompt and their products excellent.
I have three Kaypro II's at work and
have ordered disks and ROM's for them
from Micro C. Being at a government
agency, I have been amazed at the speed
in which you have delivered the items. I
hope you have received payment at least
in a reasonable time. Many companies
will not accept a government purchase
order at all.
Now stop laughing and get my subscription renewed.
Stuart Eason
3 Cotswold Rd.
Benton AR 72015

Editor's note:
The tears weren't from laughing, they
really weren't!

Micro Cornucopia, Number 21, December-January 1985

Dear Editor,
Your magazine is full of ecstatic reports from people who apply power to
their BB II and two seconds later hear the
bleep which means all is okay.
Let the record show it is not always so
fast. I first applied power to my BB II on
19 Dec., 1983, but the "two seconds"
ended 24 Feb.,1984.
Only a fraction of those "two seconds"
were used fixing solid errors; solder is
quicker that the eye.
One short took a bit longer. It measured 0 ohms pin to pin on the IC's, but
disappeared as soon as I turned the
board over to check it. It came back again
only under power. Eventually, this
problem just went away.
But the real hassle was a poor IC socket contact. Evidently the pressure of ohm
meter probe was enough to make it look
good on the static test, but it wasn't making contact otherwise. I found that one
only after borrowing a logic analyzer.
Before I could make any sense of that,
however, I had to find someone to list
out the EPROM and disassemble some
of it by hand. Thus I got by with a lot of
help from my friends, but the ecstatic
items in Micro C were no help at all.
Couldn't you have a department
"What to do while waiting for the
bleep"? Among other things you could
print listings of EPROM's.
Now I start scraping up money for a
keyboard and disk drives. But looking
ahead, I see things I don't understand.
CAL TEX sent me a disk which I hope I
can still find, but I didn't (yet) buy CP/M.
Are the User Disks which you sell
"stand alone," or do they assume CP/M?
If the latter, is there no way to proceed
without spending $1S0? I mean legally,
of course.
R.W. Hartung
408 Orchard
East Lansing MI 48823

Editor's note:
All of our disks assume CP /M. I mean, either we have·to spend the $150 or you have
the spend the $150. At $12 to $15 per disk, it
wouldn't make much sense for us to spend
$150 each to put CP/M on them.

(continued on page 72)

3

Analog To Digital Interface
By Don Fletcher

I developed an incubator data acquisition system this summer using my Big
Board as a bed for testing different analog to digital convertors (ADCs). I'm the
designer, technician, assembler, janitor,
and everything else for a hatchery equipment company (called Egg-tronics, of
course). (Editor's note: probably owned
by a very gentle holding company.)
I hate to waste any effort, so I've taken
the results of my design research and
written this article. I've tried to include
enough information on analog to digital
conversion so you can come up with
something which will work with your
own system.
The circuit and driver provided should
work on either the Big Board or the Xerox
820-1, since development work in our
shop was done on both computers. (A
slight change would, no doubt, make
this work on a Kaypro or any other system with similar port hardware.)
Background
Analog to digital conversion, as the
name suggests, is a process of converting analog signals (from detectors or other instruments) into the digital1s and Os
that computers can understand.
Some examples of things you could
monitor include: voltage, current, heat,
humidity, light, sound, velocity, force,
etc. Since ADCs can only convert an
electrical signal into its digital equivalent, all inputs must first be converted into voltages.
Conversion Speed: The time required
to convert an analog input to a digital
number. Faster is better but more expensive.
Resolution: The number of binary
states an analog voltage range can be reduced to. For example, if an 8 bit ADC is
used, there are 256 different binary numbers that it can output (00 to FF Hex). If
the desired input range is 0 to 2.55 volts
the voltage per step would be 2.55V/255
steps (zero doesn't count here), or 0.01
volt per step. The more bits you have,
the smaller the steps will be.
Accuracy: A measure of how closely
the calculated binary output of the ADC
matches the voltage input. Usually
measured as .+1- some fraction of the
least significant bit (LSB).
'

4

Rt 1 Box 216
Pleasant Hill MO 64080
816-869-3472

SACs And DSICs
There are two major families of
ADCs-the successive approximation
convertor (SAC) and the dual slope integration convertor (DSIC), each suited to
different applications. When speed is
important, the choice is the SAC, which
can complete a conversion in 100 microseconds. In contrast, the DSIC requires
100 milli-seconds, which is 1000 times
longer. The SAC is sensitive to noise, requiring good bypassing and board layout. In contrast, the DSIC is virtually immune to noise. If you need a lot of steps
(increased resolution) the DSIC is best
because it can give you up to 41/2 digits
(19999 steps) resolution. The SAC is limited to 12 bits (4096 steps). Both types of
convertors are in the same price range.
I used the ADC0804 SAC from National Semiconductor. It has a conversion
time of 100 micro-seconds and 8-bit (256
step) resolution.
ADCs differ in the available accuracy
and cost; the higher the accuracy, the
higher the cost. The ADC0804 has an accuracy of + 1- 1 LSB. There are 10 and 12
bit convertors available that are pin for
pin compatible with the ADC0804 (the
extra bits are handled in software), but
they are expensive and hard to get at this
time.
If you would rather use an integrator
ADC, Intersil has several types available

(best buy is the 12 bit ICL7109). Intersil
data books and parts are available from
JAMECO and several other suppliers. A
good second choice is the Motorola
MCl4433 31/2 digit ADC.
Theory Of Operation
ICI-CA4051: Eight channel analog
MUX used for input scaling. (See Figure
2.) An analog voltage is supplied to the
negative input (Vin-) of the ADC. PIO A
bits 3-5 determine which input (0-7) on
IC1 is passed through to Vin-. The 1K
scaling resistors should be as close to the
saine value as possible. Use either a resistor pack, or 1 % parts.
This circuit increases the resolution of
the ADC, providing 256 steps for each of
the 8 voltage ranges. This yields the
equivalent of an ll-bit ADC. If you don't
need this much resolution, leave this circuit off and connect the negative input of
the ADC (pin 7) to ground or whatever
minimum voltage you require.
Since under worst case conditions, 8
conversions must be made to develop
the ll-bit binary output, the conversion
time required will increase to 800 microseconds. If this is too slow, use an ADC
with increased resolution.
IC2-CA4051: Eight channel analog
MUX used to provide 8 analog input
channels to the ADC. Each channel is selected the same way that reference volt-

Figure 1 - Display Routine In BASIC

05 REM
INIT-SETS UP THE PORTS INPT-INPUTS DATA
10 INIT=&HFA80
20 INPT=&HFAAB
25 REM
FIRST SET UP PORTS, RESET CHANNEL COUNTER
30 CALL INIT
40 CHAN%=O
50 A%=CHAN%
55 REM
GET DATA FOR CHANNEL NUMBER A%
60 CALL INPT(A%)
65 REM
PRINT IT WITH SEPERATION SPACES
70 PRINT A%;" ";
75 REM
DO IT AGAIN WITH THE NEXT CHANNEL
80 CHAN%=CHAN%+1
85 REM
UNTIL THE 8TH, THEN GO TO NEXT LINE
90 IF CHAN%=8 THEN GOTO 200
100 GOTO 50
200 PRINT
205 z=o
206 REM
DELAY, WAIT FOR A WHILE
210 FOR 1=1 TO 300
220 Z=Z+1
230 NEXT I
240 GOTO 30
250 END

Micro Cornucopia, Number 21, December-January 1985

ages are passed through ICI. If you only
need a single channel, leave out IC2.
Each input channel is tied high
through a pull up resistor for noise reduction. Be sure to include these since
CMOS ICs get strange when their inputs
float.
IC3-LM336-(2.5V): This is a precision
voltage reference, so don't use a Zener
diode, a resistive voltage divider, two
chipmunks in series or any other substitute. The accuracy of this reference determines the accuracy of the whole circuit.
IC4-ADCOB04: An 8 bit ADC. The analog inputs are provided by ICI and IC2
as described above. The binary outputs
are connected to PIO Port B. The start
conversion (WR-, pin 3) input is connected to Port A bit 6. The conversion
starts on the rising edge of this input.
Since the ADC is isolated from the micro processor by the PIO, the read and
chip select inputs (pins 2 and 1) are
grounded. This means that data is immediately available at the end of the conversion cycle.
The end of conversion is signaled by a
negative transition of INTR-. This line is
connected to the B Strobe input, which
triggers a processor interrupt. The INTR
output is reset after a read. (A read occurs automatically at the end of each
conversion cycle since the read input is
grounded.)
Rl and Cl determine the clock frequency. Analog and digital grounds
(pins 8 and 10) are connected to a common point.
Vref/2, developed from IC3, determines the voltage range of the ADC.
This voltage should be adjusted to one
hqIf of the required voltage span.
Keep the analog inputs as far away
from the digital outputs as possible.
Connect the ADC bypass capacitor as
close to the chip as possible. The
ADC0804 is accurate only to the LSB so
this bit may twitch randomly.
The resistor and ca-pacitor on the input
line are there to reduce noise. Additional
noise reduction is possible by increasing
the value of either part. If the parts get
too large, it will take too long to charge or
discharge the capacitor and you will lose
information.
If you are sampling each input as rap-

36K

I C3
lM336
(2.SV)

10K (I 0 TU R N )

+5V

I·IUF

>-----'
PIO A4 > - - - - - - '
PIO A3 >-_ _ _ _ _.-1
PIOAS

9

~CONV
~

STARTS

20
Vee
ClKR

19

PIOA6>--------------~--------___~

10K
ClK 4
IN

IC4
ADC

PIO

150 pf

I

~804

B2>------------------------~

BSTB>-------------~--------~~

-:-1

SENSOR

4 7
0--______2
=-1 6

~_.....;5~ 5
o---~I 4
0--_"";""'"1
2
15 3
0---~2

14 I

t

I C2

6 VIN+

10K

3
VOuTF

------NlI'--_------'

CA·
4~51

I
8
7

*

.~0IuF

CONNECT
2.4K PUll-UPS
TO ALL 8 INPUTS

idly as possible, leave the values as they
are. If you are sampling each channel at a
slower rate, try increasing either R or C if
you have a noise problem.
Connect input sensors with either
shielded or twisted pair wire. If the sensor is high impedance, additional input
filtering may be required. Sometimes
this problem can be reduced by the
choice of sensors. For example, if meas-

Micro Cornucopia, Number 21, December-January 1985

r:-

CONV ~ L...-..J~ AFTER
FINISHED
DATA IS
READ

16

uring temperature, two sensor choices
are:
1) A thermistor (high impedance)
2) An LM335 (low impedance)
The proper choice is the LM335.

(continued next page)

5

ANALOG TO DIGITAL INTERFACE (continued)

Software
I've provided an example driver for
my ADC card, and a simple program in
BASIC to print out the value of the 8 inputs on the console at periodic intervals.
The driver must be loaded first since it
resides in high memory. After loading
the driver, load BASIC (or the language
of your choice) and program away.
If you develop a good application for
my ADC circuit, take a few moments and
send it to Micro Cornucopia. It's funtry it.

•••

HIGH PERFORMANCE VIDEO
MONITOR

Figure 3 - A DC Driver Routine
Big Board - Xerox 820-1 ADC0804 driver

Board is connected to the General Purpose PIO, port A as output
controlling the scaling MUX, the channel select MUX, and the
start of conversion input into the ADC0804. Port B is set to
read the binary data output from the ADC. Port B's strobe is
also used as the end of conversion interrupt out of the ADC.
Connect the following jumpers on JB3 on the Big Board
, the Xerox) - (3-4), (9-10), and (17-18).

MONITOR ONLy .•.••....•.... $62.50

PLASTIC ENCLOSURE
as pictured above. Size 17x14x12". Room inside for
mounting above monitor, power supply, & S.B.C.
• PERFECT FIT FOR XEROX 820-1 BOARD!
NEW, SHIPPING WEIGHT 12 LBS

ENCLOSURE ONLY ....••....• $40.00

KEYBOARD & ENCLOSURE

80-key x-v scanned microprocessor controlled ASC II
encoder kit. ROM source code supplied. 17x8.5x3".
New, with schematics, weight 8 Ibs
KEYBOARD, ENCODER KIT, ENCLOSURE ......$60.00
Regulated power supply; 6 outputs: 5v @ 4 A, +/- 12 v
@ 0.2 A, +24v @ 1.2 A, -24v @ 0.2A, +15v @ 2.6 A.
14x4x3", 10 Ibs, New.
REGULATED POWER SUPPLY ............... $35.00

ARKON ENGINEERING
PO Box 1390, Palm Bay, FL 32905
(305) 676-5153
TERMS: Prepaid or UPS COD (CASH OR CERTIFIED
CHECKS ONLY.)

6

on

.Z80
ADATA
AOCNTRL
BODATA
BOCNTRL
MODOO
MOD01
MOD03
AOINTR
BOINTR
ITOCTL
LOAD

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

8
9
10
11
OFH
4FH
OCFH
1CH
1EH
87H
OFA80H

BDOS

EQU

5

ASEG
ORG

100H

///

BALL BeX-2DD HP Monitor

(J11

This routine requires M80 to assemble.

~t:t/

12", P31 Green, Non Composite, Separate Sync Required, 27 MHz Video Bandwidth, 12 VDC @ 1.5 A.
• Vertical Sync: 47-82 Hz
• Horizontal Sync (Jumper Selectable):
• PERFECT FOR BIG BOARD II
WHEN USING 9x11 CHARACTER SET
NEW with schematic shipping weight 10 Ibs

('

ADC:

LD
LD
LD
LDIR
RET

jLoad the program above the monitor
DE,LOAD
HL,ADC
BC,ADCEND-ADC-1

.PHASE

LOAD

jReturn to CPM

jFIRST SET UP INTERRUPT HANDLER
SETUP:

LD
LD
LD
LD
LD

HL,INTR
(OFF1CH),HL
(OFF1EH),HL
A,O
(LSTRDY) ,A

;SET LIST READY FLAG

jTHEN SET UP PORTS
LD
OUT
LD
OUT
LD
OUT

A,MODOO
(AOCNTRL),A
A,O
(AOCNTRL),A
A,07
(AOCNTRL),A

jSET A TO OUTPUT MODE 3

LD
OUT
LD
OUT
LD
OUT

A,MOD01
(BOCNTRL),A
A,BOINTR
(BOCNTRL),A
A,ITOCTL
(BOCNTRL),A

jSET B TO INPUT MODE 1

Micro Cornucopia, Number 21, December-January 1985

EZPROMMER
EPROM PROGRAMMER
FOR THE BIG BOARD
AND XEROX 820
LD

A,40H
(ADATA) ,A

jGET CHANNEL NUMBER
jSAVE POINTER FOR LATER STORAGE

FEATURES:
• Supports 2716, 2732, 2732A,
2764, 27128, 27256
• Easily installed with only two
connections
• No external supply needed, all
power derived from +5 Volts

ADCIN3: OUT

07H
B,A
(ADATA),A

jOUTPUT CHANNEL NUMBER, STROBE LOW

• All power controlled by
software

OR
OUT

40H
(ADATA),A

jSTROBE HIGH

CALL
CP
JP

ADCIN1
OFFH
NZ,ADCIN2

LD

A,B
A,OBH
B,A
3BH
Z,ADCIN2
A,B
ADCIN3

OUT

jSET STROBE HIGH

RET
SUBROUTINE TO INPUT DATA FROM ADC, CHANNEL NUMBER IS POINTED TO
BY HL. NUMBER IS RETURNED TO MEMORY POINTED TO BY HL AND HL+1
(MSB IN HL+ 1)
ADCIN:

LD
PUSH

A, (HL)
HL

AND
LD

ADD
LD

AND
JP
LD

JP
ADCIN2: POP
LD

LD
RRA
RRA
RRA
AND
INC
LD

HL
(HL) ,A
A,B

07H
HL
(HL) ,A

• Extensive MENU driven software to Read, Program, Save,
Load, Verify CRC check,
Dump, Erase check complete
with source code
• Over one year of troublefree
use.

jTRY NEXT SCALE
jCHECK FOR OUT OF RANGE

jRECOVER POINTER
jSTORE LSB

APL
CHARACTER GENERATOR
FOR XEROX 820-ll

jRECOVER MSB
jSTORE MSB

RET
ADCIN1: LD
OR
JP

A, (LSTRDY)
A
Z,ADCIN1

jWAIT FOR INTERRUPT

LD
LD

A,O
(LSTRDY) ,A

jRESET READY FLAG

IN
RET

A, (BODATA)

jGET DATA

LD
LD
EI
RET I

716-377-0369

A,OFFH
(LSTRDY),A

r

JDATA STORAGE
LSTRDY: DB

0

.DEPHASE
ADCEND: END

Micro Cornucopia, Number 21, December-January 1985

Upgrade kit allows the 820-II to
display all the standard characters and attributes while permitting the display of all APL characters. Kit includes ROM and
software.
APL UPGRADE KIT ... $49.95
NY RES. ADD LOCAL TAX. POSTAGE
AND HANDLING $2.00
VISA, MC, CHECK or COD

jINTERRUPT HANDLER-SETS READY FLAG
INTR:

EZPROMMER
A&TwlHarness, Disk .... $125
Kit with Disk ............ $90

End of Listing

JOPTRONICS
TECHNOLOGY
P.O. BOX 81
PITTSFORD, NY 14534

7

IJ

Colonial Data

58-80- II

The "Better Board" Gets BETTER!

Standard Features Include:
•
•
•
•
•

For the past 4 years, Colonial Data has been supplying
thousands of its original SB80 "Better Board" computers to the
O.E.M. market. Now, the "Better Board" is even BETIER with the
introduction of the SB80-1I. More Standard Features at a NEW
LOWER PRICE!

SIZE: 1 2" x 13"
POWER: +12V, -12V, +SV
WARRANTY: 90 days Parts and Labor

• ZSOA PIO PARALLEL PRINTER INTERFACE

• 4MHz ZSOA CPU WITH NO WAIT STATES

Centronics compatible printer interface is Standard!

Enhanced BIOS uses mode 2 interrupts.

• SASI HARD DISK INTERFACE CIRCUITRY
ON-BOARD!

• 64K MEMORY STANDARD (EXPAND TO 128K)
Parity checked RAM utilizes 4164
Up to 8K of EPROM (4K is standard)
Accepts Pin-compatible EPROMS from 2716 thru 2764

SASI interface provides access to hard disk.
Compatible with XEBEC and other controllers.
Just populate with TIL and add connector.

• NUMEROUS FLOPPY DISK STORAGE OPTIONS

• 4 CHANNEL COUNTER TIMER-STANDARD!

Uses the advanced NEC765A controller chip
Supports 8" and 5%" drives simultaneously
Automatic Density Selection (Single/Double/Quad)

Allows custom software applications.
User accessible 125Hz interrupt.
Provides system date/time clock.
4th Channel used for the NEC 765 interrupt.

• 4 SERIAL I/O PORTS (2 STANDARD)
Software selectable baud rates to 19,200
Uses Z80 SIO/O and SMC 8116 baud rate generator.

SBSO-II SYSTEM OPTIONS:

PRICE

ADDITIONAL 2 SERIAL PORT (INSTALLED)
ADDITIONAL 64K MEMORY (INSTALLED)
SASI INTERFACE OPTION (INSTALLED)
XEBEC HARD DISK CONTROLLER
CP/M 2.2 OPERATING SYS W/MANUAL

$ 60.00
$ 60.00
$ 35.00
$290.00
$ 75.00
$275.00

CP/M 3.0 OPERATING SYS W/MANUAL

4M Hz Z80A Processor
64K Memory (Expands to 128K)
Supports 8" and S1/4" drives simultaneously
Auto Density Selection (single/double/quad)
2 Serial Ports/1 Centronics Parallel Port

• CP/M 2.2 BIOS ENHANCEMENTS
Allows flexible device assignments, baud rate selection,automatic density detection, a system date and time clock and hard
disk support.

• OPTIONAL CP/M 3.0 (CP/M PLUS)
Extensive disk buffering speeds system throughout.

II

Z80'· - ZILOG

, . . . . - - - - - - - - - - - - - II

CP/M'· -

DIGITAL RESEARCH (Calif.)

Colonial Data Services Corp.

HOW TO ORDER:
Call or Write Colonial Data-Orders paid with bank
card or cashier's check are shipped within 3 working
days. Allow 3 weeks for Personal Checks.
Shipping: Add $5.00 for UPS Shipping (Brown)
Within the United States.

8

lffiJ

j_ W]
VISA'

80 Pickett District Road,
New Milford, Conn. 06776
Telephone (203) 355·3178
Micro Cornucopia, Number 21, December-January 1985

11-:1 Colonial Data
S8-80-11
Dimensions
13'/l"W x 53fs"H x 17" D
FULL 90 DAY PARTS & LABOR WARRANTY

MODEL IIA-2/380K DSDD DRIVES
MODEL lIB - 2/780K DSQD DRIVES
MODEL lIe -10 Meg H/Disk w/380K Floppy
MODEL lID - 10 Meg H/Disk w/780K Floppy

*

$ 895.00
$ 995.00
$1895.00
$1995.00
$ 298.00

SBSO-II (Board Only) Wired and Tested
SBSO-II SYSTEM OPTIONS
All Models:

PRICE

Additional 2 Serial Ports (installed)
Additional 64K Memory (installed)
CP/M 2.2 Operating System w/Manual
CP/M 3.0 Operating System w/Manual

$ 60.00
$ 60.00
$ 75.00
$275.00

Models IIA and lIB only
SASI Interface Option (installed)
XEBEC Hard Disk Controller

$ 35.00
$290.00

Colonial Data
Cabinet Kits (Build Your Own Systems!)

PICK YOUR SYSTEM!
CHOOSE YOUR
OPTIONS!
The Original "Better Board" SB80 from
Coloni~1 Data has just gotten BETTER YET!
More on-board features like SASI interface
circuitry,4 Channel CounterTimer, Memory
Expansion to 128K and MORE! All made to
run the most popular programs under the
CP/M Operating System.

zao'· - ZILOG
CP/M'· - DIGITAL RESEARCH (Calif.)

Shugart
5%" Disk Drives

MODELCKPI
Metal Cabinet will accept Single Boards up to 12"x16"
complete with fan, RFI filter with power switch, front panel
and mounting for two 5%" half-height floppies. Pre-punched
for 4 DB25 and 1-50 pin. Ineludes 60 watt power supply
with ±12V, + 5V.

MODEL 455
DSDD Floppy
Over 380K Capacity

$225.00

MODELCKX
Cabinet only with fan, RFI filter,
power switch, pre punched connector holes. No Power Supply.

$195.00
$370.00

MODEL 465

MODELCKP2
Same as Model CKP1, but includes 90 Watt Power Supply to
power half-height Winchester
5%" hard disk and single 5%"
half-height floppy.

2 For

DSQD Floppy
Over 780K Capacity

$425 00

$225.00
2 For $430.00

•

$139.00

·-----------1••III
HOW TO ORDER:

Call or Write Colonial Data-Orders paid with bank
card or cashier's check are shipped within 3 working
days. Allow 3 weeks for Personal Checks.
Shipping: Add 2%(uptoa maximum of $20.00) for UPS
(Brown) shipping within the United States.

Micro Cornucopia, Number 21, December-January 1985

IAIJ]
Zi

Colonial Data Services Corp.
80 Pickett District Road,
New Milford, Conn. 06776
Telephone (203) 355·3178
9

Communication Between High-Level
And Assembly Language
By Christian Phaneuf

P.O. Box 1107
972 Guillaume Boisset
Cap-Rouge Quebec Canada GIY 3E4

How many times have you wished
you could write complex assembly language programs as easily as you write
programs in C, Pascal, or PLII. After all,
you need the control or speed of assembly language, but writing floating point
(or even fixed point) routines in assembly language is a royal pain.
Perhaps, instead, you should be writing in a high level language and then,
where necessary, calling assembly language subroutines.
This article includes two simple PLlI80 programs, each with an assembly language subroutine. Both programs pass
an ASCII character (*) to a subroutine
which outputs the character to the console using CP/M's CONOUT function.
The subroutine then reads a character
from the console (using CP/M's CONIN)
and passes it back to the main program.
High Level Languages Differ
Though there are differences at the detail level, the principles discussed here
apply to most high level languages that
let you include low-level routines.
However, no matter which compiler
you use, the variables will always be
passed through either the stack, the registers, the memory, or a combination of
these. Therefore, the concepts illustrated in the PLlI-80 programs that follow
can be adapted to any high level language compiler capable of generating relocatable code.
Passing Data Back And Forth
In the first program (Figure 1),
DEM01 illustrates one way that parameters can be passed from the main program to the called routine. It also shows
the implicit "returning" of values from
the subroutine to the calling program.
Note that the assembly subroutine
(CONSOLE1) is declared with entry and
character(l). This tells the compiler that
whenever the subroutine is called, a single ASCII parameter of length '1' will be
passed to the called program. If several
different parameters were to be passed,
the type of each would be listed separately in the declaration of the procedure. For example:
dcl entry

(c~ar(3),fix~d

1st par

10

(1S),

2nd par

~

•• ),

etc •••

The instruction "call CONSOLE1
(PARAM1);" tells the compiler that the
variable PARAM1 is the actual parameter that will be passed. PARAM1 must be
of the same data type (character(l» as
that declared in the entry procedure.
Thus, an ASCII string of length 1 (the '*'
remember) will be passed to CONSOLE1.
PL/I Details
PLlI-80 passes parameters to a subroutine by leaving the address of a pointer in register pair HL. The pointer contains the real address of the first
parameter. If several parameters are
passed, they must occupy successive
memory locations.
The number of parameters and length
of each parameter must be determined
implicitly by agreement between the
calling program and the called subroutine. Sound complicated? Well, if you
can understand the man who saw the
man who saw the bear, you should have
no problem with this.
Returning Data To PLII
Since the locations of the passed variables are known, CONSOLE1 can alter
the contents of these locations, thereby
returning data to the calling program.
Figure 1 demonstrates this.
CONSOLE1 first prints the '*', then
CONIN is used to read a character from
the console. Finally, the subroutine places the new character into the memory location called PARAM1 (by PLlI) and returns control to the calling program.
Figure 3 shows the results of running
DEMOl.
An alternate method, used to return
data to the calling program, is very useful for simple routines when there is no
entry variable or when you don't want
the subroutine tampering with the main
program's data.
As shown in Figure 2, assembly language subroutine CONSOLE2 is declared with both entryO and returnO attributes. This double declaration tells the
compiler that instead of the general parameter passing protocol used in
DEM01, the alternate method will be
used. Here, PLlI-80 stipulates that the
subroutine must place data on top of the
stack and the length of the data must be

left in the accumulator before control is
returned to the calling program. Note in
the execution of DEM02 that the variable PARAM1 has not been altered by
CONSOLE2.
The type of data to be returned will determine which method you use. For instance, fixed binary numbers with precision 1-7 are returned in the accumulator,
while precision 8-15 are returned in HL.
Bit string data is returned the same way
but fixed decimal data is returned on the
stack as a 16-decimal digit value in nine's
complement form (8 bytes are used).
No matter which method you use, parameter passing can be an easy way to
have the advantages of high-level language productivity and low-level language control and speed in the same
program.

• ••
Figure 1 - Returning Data Via Globals
DEM01:
procedure options (main);

declare
CONSOLE1
PARAM1

entry ( cbaracter (1) ),
cbaracter (1);

PARAM1 = '.';
put skip list
put
list
put skiPi
call CONSOLE1
put skip list
put
list
end DEM01i

('Before calling: ')i
('PARAM1 =', PARAM1)i
(PARAM1);
('After calling: ');
('PARAM1 =', PARAM1)i

CONSOLE1 :
.zao
iZaO mnemonics used
PUBLIC CONSOLE1 ;Program will be reco;gnised by LINK
BDOS EQU OSb
CONIN EQU 01 b
CONOUT EQU 02h
PUSH HL
;Original HL saved
LD
E, (HL)
,
INC
HL
iAdress of Parameter in
LD
D,(HL)
;register pair DE
EX
DE,HL
iSave parameter adress
PUSH
HL
ion stack
LD
E,(HL)
;Parameter must be in E
LD
C,CONOUT ibefore calling CP/M
CALL
BDOS
;console output funct.
LD
CALL

C,CONIN
BDOS

i

iRead a character using
iCP/M console input fn.

;

iThe cbaracter read from the console
;will now replace the parameter from
itbe calling procedure in memory
POP
LD

HL
(HL),A

POP
RET
END

HL

i

iParameter adress in HL
;New parameter now in
imemory
iOriginal HL restored
iReturn to calling
i procedure

Micro Cornucopia, Number 21, December-January 1985

PROGRAMMER/4+

Figure 2 - Returning Data VIA Stack

DEM02:
procedure options (main)j
declare
CONSOLE2 entry
returns
PARAH1, PARAM2 )

character(l) )
character(l) ),
character(l)j

PARAH1 = '-'j
put skip list ('Before calling: ')j
put
list ('PARAH1 =', PARAH1)j
put skipj
/- here, subroutine is called by -/
/- invocation, "CALL" keyword not -/
/- required. -/
PARAM2 = CONSOLE2 (PARAH1)j
put skip list ('After calling: ')j
put
list ('PARAH1 =',PARAH1)j
put
list ('PARAM2 =',PARAM2)j
end DEM02j
CONSOLE2:
.zao
jZaO mnemonics used
PUBLIC CONSOLE2 jProgram will be recojgnised by LINK
BDOS
EQU 05h
CONIN EQU 01 h
CONOUT EQU 02h
PUSH
HL
jOriginal HL saved
LD

E,(HL)
HL
D, (HL)

j

EX
LD
LD
CALL

jAdress of Parameter in
jregister pair DE
DE,HL
jexchange registers
E, (HL)
jParameter must be in E
C,CONOUT jbefore calling CP/M
BDOS
jconsole output funct.

LD
CALL

C,CONIN
BDOS

jRead a character using
jCP/M console input fn.

POP
POP

HL
BC

LD
PUSH
LD

E,A
DE
A,Olh

PUSH

BC

jOriginal HL restored
jReturn adress in BC
jAs per PL/I parameter
ipassing convention
jplace char on stack
jand string lenght in
jaccumulator
jReturn adress back on
jtop of stack
jReturn to calling
jprocedure

INC
LD

j

j

RET
END

Figure 3 - Results Of Running DEM07

A LOW COST ALTERNATIVE
TO EPROM PROGRAMMING
Reads and programs 2716, 2732, 2764, and 27128 EPROMS.
Reads 2·16K ROMS.
Direct connect to any RS232C terminal or computer.
Plug selectable as either a data set or data terminal.
All voltages made on board, (no power supplies needed).
(User supplies power Xformer, 25.2 to 30 VAC C.T.1 Amp.).
Power electronically switched, (can't damage EPROMS).
Zero insertion force socket for EPROM.
Programs, verifies, and dumps in both ASCII and hex.
Edit buffer (like DDT).
Saves hex and/or image files to and from disk.
Saves or loads all or partial buffer.
Completely menu driven for ease of operation.
Commands of Test, Read, Display, Save, Load, Program and more.
Check sum calculation.
All software on disk including well commented source code.
Detailed owners manual including schematic
All chips socketed.
Not a kit! Completely built and tested.
48 hour dynamic burn·in and test before shipment.
90 day limited warranty on parts and workmanship.
24 hour return policy on repairs.
Delivery from stock.
NOTICE TO PREVIOUS CUSTOMERS: Send us your old disk and a
suitable S.A.S.E. for your free copy of our new software, ver. 1.6.
PROGRAMMER 4+ WITH OWNERS MANUAL AND DISK. $199.95

A>demo1
Order from

Before calling: PARAH1 = -0
After calling: PARAH1 = 0
End of Execution

Rperipfico

~i
.~~ 1659 Scott Blvd., Suite 1
~I ~V Santa Clara, CA 95050
V

(408) 244·5214

VISA and MASTERCARD telephone orders welcome.

A>dem02

Please specify Disk format
CP/M 8" IBM format, KAYPRO II, XEROX 820, OSBORNE I, others.

Before calling: PARAH1 = -

-9
After calling: PARAH1 = - PARAM2
End of Execution

9

Micro Cornucopia, Number 21, December-January 1985

Please specify method of shipment, UPS or Postal Service.
California residents'add 6"" Sales Tax. Dealer Inquiries invited.

11

BORLAND
INTERNATIONAL
GIFI'PACK

ONLY

$999S

A SAVINGS OF $301

What a gift for you and your friends! The extraordinary TURBO
PASCAL compiler. together with the exciting new TURBO TOOLBOX
and new TURBO TUTOR. All 3 manuals with disks for $99.95.
TURBO PASCAL Version 2.0 (reg. $49.95). The now classic program
development environment still includes the FREE MICROCALC
SPREAD SHEET. Commented source code on disk
• Optional 8087 support available for a small additional charge
NEWf TURBO TOOLBOX (reg. $49.95). A set of three fundamental utilities that work in conjunction with TURBO PASCAL.
Includes:
• TURBO-ISAM FILES USING B+ TREES. Commented source code
on disk
• QUIKSORT ON DISK. Commented source code on disk
• GINST (General Installation Program)
Provides those programs written in TURBO PASCAL with a terminal
installation module just like TURBO'S!
• NOW INCLUDES FREE SAMPLE DATABASE
NEWf TURBO TUTOR (reg. $29.95). Teaches step by, step how to
use the TURBO PASCAL development environment-an ideal
introduction for basic programmers. Commented source code for all
program examples on disk.

30 DAY MONEY BACK GUARANTEE
These offers good through Feb. 1. 1985
For VISA and MASTERCARD order call toll free:

1-(800)-255-8008 1-(800)-742-1133
(Lines open 24 hrs .. 7 days a week)
Dealer and Distributor inquiries welcome (408) 438-8400
CHOOSE ONE (please add $5.00 for handling and shipping U.S. orders)
_ _ All Three-Gift Pack
$ 99.95 + 5.00 SPECIAL!
_ _ All Three & 8087
139.95 + 5.00 SPECIAL!
_ _ Thrbo Pascal 2.0
49.95 + 5.00
_ _ Thrbo Toolbox
49.95 + 5.00
_ _ Thrbo Thtor
29.95 + 5.00
_ _ Thrbo 8087
89.95 + 5.00
Check _ _ _ Money Order _ _ _ VISA _ _ _ MasterCard _ __
Card #:
Exp. date:
Shipped UPS
My system is: 8 bit _ _ 16 bit __
Operating System: CP/M 80 __ CP/M 86 __ MS DOS __ PC DOS
Computer:
DIsk Format
Please be sure model number & format are correct
NAME: _________________________________
ADDRESS _____________________________
CITY/STATE/ZIP: _____________________

California reSidents add 6% sales tax. OutSide U.S.A. add $15.00
(if outSide of U.S.A. payment must be by bank draft payable in
the U.S. and in U.S. dollars). Sorry. no C.O.D. or Purchase Orders .

• » BORlAnD
INTERNATIONAL

.»

4113 Scotts Valley Drive
Scotts Valley, CA 9S066

TELEX: 172373

12

Micro Cornucopia, Number 21, December-January 1985

THE LITTLE BOARD®
OEM -

INDUSTRIAL -

SCIENTIFIC

SECOND GENERATION SINGLE BOARD COMPUTER KIT!
4 MHZ Z80* CPU!
64K RAM!
DOUBLE DENSITY!
FREE CP/M* 2.2111
A $139 VALUEI A FREE
5-1/4 IN. CP/M 2.2
DISKETTE IS INCLUDED
WITH EACH KIT.

~~/
•

$25 9 ~~OMPLETE

KIT)

MINI-SIZE:
ONLY
5-3/4 x 7-3/4 INCHES

A. & T. UNITS
$319

FULLY SOCKETED! PERFECT MATE TO OUR ZRT-80 TERMINAL BOARD. THROUGH SPECIAL ARRANGEMENT
WITH AM PRO COMPUTERS, WE ARE PLEASED TO OFFER THEIR LITTLE BOARD® IN KIT FORM.
FEATURES:
4 MHZ

I

IDOUBLE DENSITY (5-1/4 IN.) FLOPPY CONTROLLER I

zao CPU!

USES +5VDC @ .75 A. AND +12VDC @ SOMA.

CENTRONICS STYLE PARALLEL PRINTER PORT

TWO RS232 SERIAL PORTS

I

64K DYNAMIC RAM!

SAME SIZE AS A MINI FLOPPY

- -t aI R esearc h C ompu t ers
D 191

2732 BOOT EPROM

(OF TEXAS)

TERMS: Shipments will be made approximately 3 to 5 weeks after we
receiveyourorder.VISA,MC, cash accepted.Wewili accept COD's witha
$75 deposit. Balance UPS COD. Add $4.00 shipping.

P.O. BOX 461565 • GARLAND, TEXAS 75046 • (214) 225-2309

USA AND CANADA ONLY

LITTLE BOARD® -

Mini Z80B

AMPRO

Z80'M -

•
•
•
•
•
•
•
•
•
•
•
•
•

SERVO 8
HIGH PERFORMANCE
SINGLE BOARD COMPUTER

•
•

ZILOG

CP/M'M DIGITAL RESEARCH (CA.)

6 MEGAHERTZ Z80B CPU - No Wait States
5.75" x 8" mounts directly to Minifloppy
5 Volts only @ 1.4 Amps
On Board Advanced Floppy Disc Controller Controls, four 5.25" or
31h" & four 8" or 1.6 Megabyte Minifloppy Drives.
Compatible with Kaypro II Format for Software Exchange
2K Eprom Debugger/Monitor - Examine and change Memory
I/O Ports, CPU Registers; Set Breakpoint, Control Disk Selection
64K 150 NS DRAM; Expandable
SASI Bus Controls 10 Meg Winchester
Expansion Bus-Z80 Terms Plus Additional Signals
2 RS232 Ports - 150 Baud to 153.6K Baud, Software Selectible
Standard Centronics Parallel Port
Disk I/O Buffers Timed for Flushing with Real Time Clock
Clock Counts Available to Programmer
CP/M V2.2 BIOS Sources Available - $50; includes
ROM Bootstrap & Automatic Disk Selection
In Stock - $495
CP/M add $70
Visa M/C COD
Piggy-Back Expansion Board Available;
128K RAM, Two Serial Ports, Real/Time Clock Calendar with
Battery Backup, $384

SERVO COMPUTER CORPORATION
360B N. ELLENSBURG ST. BOX 566
GOLD BEACH, OREGON 97444
(503) 247·2021

Micro Cornucopia, Number 21, December-January 1985

13

Pascal Procedures
By John P. Jones

By the time you read this, advertisements for Borland's Turbo Toolbox
should be in the magazines. The package
consists of three utilities-an indexed
file system, a sort utility, and a general
installation program.
GINST.COM generates an installation
program and the associated files necessary to customize a Turbo Pascal generated COM file to the end user's terminal.
Without this utility, applications written
in Turbo would either have to be written
for each specific terminal or be distributed as source so the user could customize
it. The Toolbox licensing agreement permits distribution of the generated installation files and even lets you include relevant sections of the Turbo Pascal
manual with your programs without
copyright problems.
The other portions of the package are
of more general interest. Both the sort
and indexed file routines are distributed
as source for $Inclusion in application
programs.
Turbosort
The sort utility, which uses the quicksort algorithm, can be used for most sorting applications. Because the routine is
written to be general purpose, and sorts
are extremely dependent on the structure of the data, the user must write
three routines to interface to Turbosort.
These are forward declared in th~ sort
module and must match these declarations.
INP is called once by Turbosort and it
must acquire successive data items. INP
then calls SORTRELEASE (in the sort
module) for each item. OUTP, which is
also called only once, must call SORTRETURN to retrieve the sorted data items
for output. The function SORTEOS is
provided to let OUTP know when all records have been accessed. Since the user
writes these routines, the data can be
from any source.
Though it's most likely that you'd input from a file and output to another file,
you might also, for instance, input from
the keyboard and output to a file.
The third user-provided routine,
which is called repeatedly by turbosort,
is the boolean"function LESS. It is in "this
routine that you determine sort order
(ascending or descending), and whether

14

6245 Columbia Ave.
St. Louis MO 63130
314-645-1596

your program will check single or multiple fields. LESS receives two parameters, X and Y, which are the addresses of
the variables to be compared. The routine must declare two variables of the
type being sorted on top of the actual
variables in memory by declaring them
absolute at locations X and Y.
var

variable1 :
variable2 :

dat~type
dat~type

absolute X;
absolute y;

Turbosort can be used to sort data files
that are too large to fit into memory,
since it can automatically set up temporary disk files as virtual memory. I tested
the sort routines by generating a file of
1000 records, each 82 bytes long, with a
20 character random sort field. I sorted
various parts of the file and output the
results to the screen. Timing was from
the Run command to the time the first
sorted record was output to the screen. I
used a 4 MHz Big Board with SWP dual
density 8" disk controller using 1024
byte sectors.
# Records sorted
100
200
250
300
400
1000

Time min: sec
00:05.6
00: 10.9
00:38.8
02:30.8
03:59.2
20: 13.4

The times are quite respectable until
you start using disk space. I did not have
any other sorting utility for comparison
but the results seem to be reasonable.
The sort is easy to use and flexible
enough for any application.
Turbo Access
Turbo Access is the B-tree indexed file
handler. It is NOT a database manager
like dBase II, but it provides the file interface to allow you to write your own database handler. Using Turbo Access is not
a trivial task since you need to understand B-tree structured indexes. The
manual contains enough information
about B-trees for the intermediate or advanced programmer.
Turbo Access uses separate index and
data files. The data file is a standard sequential file, with the first record reserved for Turbo Access use. The index

file(s) contains the B-tree structure along
with pointers to records in the data file.
Index and data files are updated by independent routines within the Turbo Access system. This makes the system flexible but you have to make sure that all the
relevant files get updated as the data files
are changed. Basically, however, the
Turbo Access routines can maintain a data file and the index file or files associated
with it.
First, a record is added to the data file.
Then the index file is updated based on
the contents of the key. Although the
key does not need to be part of the data
record, it is a lot easier to reconstruct a
trashed index if it is.
Updates and deletions are performed
in the opposite sequence. You access the
index in order to locate the record. Then
you can retrieve the data. It is never necessary to access the data file more than
once to get a record. And depending on
the memory available and the application, you might not have to access at all
when you are searching the index.
I did not construct a large test database
for performance testing but did set up a
program for maintaining a club's membership records. I had been maintaining
those records using the key-index facili~es of JRT Pascal V 3.0. The Turbo Access
system is slightly slower than the JRT
system but significantly more flexible.
Turbo Access allows for duplicate keys
and multiple-index files.
This way, you can construct "a very
complex database. For instance, a magazine article database could be cross referenced using indexes for subject, author,
source language, processor, and the like.
The example program BTREE is, by itself, worth the price of the package. If
you are at all familiar with programming, I highly recommend that you take
a close look at the source for this program.
The program is well written and you
can learn a lot about Pascal programming by spending some time analyzing
the techniques the Turbo folks used. I
was able to set up the club database by
making minor modifications to this program. (And it only took one evening.)
In a future column I'll spend some
time on pointers, linked lists, and trees.
After that we can take a closer look at

Micro Cornucopia, Number 21, December-January 1985

how Turbo Access works.
The Toolbox manual is of the same
high quality as the Turbo Pascal manual.
You get all the information you need to
effectively use the utilities.
Turbo Toolbox is available from
Borland International, 4113 Scotts Valley
Dr., Scotts Valley, CA 95066. It is $49.94.
Turbo Tips
Input filters are used to insure that input data falls within a specific range. The
example program, included with Turbo
Toolbox, uses a particularly good method to filter character input from the console. (See Figure 1.)
By defining a set type that includes the
ASCII character set, it is then possible to
pass a subset as a procedure or function
parameter. So you can define exactly the
range of values that can be returned by
the procedure or function.
It is this type of capability which gives
Pascal much of its power.

Soap Box
If you are familiar with Jerry
Pournelle's column in Byte, you know
his opinions about software prices and
piracy. I agree with most of what he
says, and would like to add a few
thoughts.
In order to be successful, a software
house has to have at least four factors
working in its favor. First, there must be
a large market. This means that the

product must have general appeal and
run on a lot of machines. Next, the product has to be good. Poorly written, "buggy" software has little chance for success.
Third, the program has to be marketed
at a reasonable price. The best word
processor ever written for microcomputers would sell poorly at $1000 a shot.
What is a reasonable price? That, of
course, depends on the product. Any
software of direct utility in a business application will command a higher price
than something like a game since the
business can expect to profit from using
the product.
Finally, the software publisher has to
be able to fill orders There are many cases
in this young industry of companies
with good products that have failed because they have been unable to keep up
with demand.
As the number of small computers expands, the price of software should continue to fall. However, the software publisher can still expect to make a
reasonable profit.
Borland International may be the first
company to fit all of the above criteria.
Their products are all well written, reasonably priced, promptly shipped and
run on a broad base of computers. I ex-_
pect Borland to be around for some time
with a growing line of products.
Regarding piracy, quality software offered at a reasonable price should be

purchased, not stolen. Only through
sales of its products can a company be
successful, and every company that fails
is a loss to us all. I won't strain my own
credibility by telling you that I've never
gotten an unauthorized copy of a program. On the other hand, anything I've
looked at and have felt was necessary or
useful, I've purchased. The copy of
dBase II someone gave me has not been
used since I tried it out. For what I'm doing, I can't justify the price.
For those of you on a tight budget,
there are megabytes of public domain
software available for minimal copying
fees. Much of it is poor, but there are a lot
of excellent programs available, some
better than the equivalent commercial
product.

•••

XEROX 820 USERS
NEED MORE I/O??
2 PIO'S
1 SIO
SASI INTERFACE
SOUND GENERATOR
REAL TIME CLOCK
USES THE NATIONAL 58167
REAL TIME CLOCK

Figure 1 - Pascal Input Data Test Function
tl'pe
charset

= set

of char;

function get_Char (allowed
charset)
char;
var
ch : char;
begin
repeat
read (kbd, ch);
{ input from kbd needs no  }
until ch in allowed;
get_Char := ch;
end;

TI 76496 COMPLEX SOUND
GENERATOR

BARE BOARD $54.95

++++++++++++++++
COMPOSIT VIDEO INTERFACE
BARE BOARD $19.95
CHECK

WE ACCEPT
MONEY ORDER

MASTER CHARGE
select := get_Char ( ['N', 'Y', 'n', 'yl] );

VISA

GRO TECHNIQUES
PO BOX 6383
BRIDGEPORT CT 06606
203-374-3660

Micro Cornucopia, Number 21, December-January 1985

15

Installing Turbo Pascal
By Laine Stump
Turbo Pascal is one of the most innovative packages to hit the market in a
long time. With its built-in, full-screen
editor and the ability to automatically
find runtime errors in the source, you
can have debugging sessions that rival
the speed of an interpretive language
like MBASIC (yuck!).
And, because it compiles to machine
code, you can have execution speed that
is as fast as C or any other 'systems' language and nearly as fast as the same program written in assembly language.
However, the full potential of TURBO
can only be realized if you use the internal editor for your debugging.
Terminal Condition
Before using the TURBO editor, it is
necessary to configure it for your terminal. This is trivial if your terminal is in
the list given in TINST's (S) option; as a
matter of fact, almost anybody reading
this can choose'ADM3A' and the editor
will work.
However, if you want it to work as efficiently as possible, you should create
your own definition. This is done by selecting the CREATE NEW DEFINITION
option and answering approximately 20
questions about your terminal. This is
covered in appendix K; I will briefly go
over what is given there adding more detail on the subtle (but important!) points
that aren't explained well enough in the
manual.
The Inquisition
There are three types of questions
asked by TINST. The simplest asks for a
YIN response; just type a 'Y' for yes or
'N' for no and DO NOT follow it with a
CR> carriage return. The second type of
question asks for a single number. You
can enter this number either as decimal
by just typing the number, or as hexadecimal by preceding the number with '$.'
When entering a number, you can edit
your entry with the (BS) or (DEL) key. To
end entry of the number, type (CR).
The third type of question asks for a
command string to perform some function such as clearing the screen. TINST is
more convenient than many other installation programs because you can enter
the command string directly rather than
having to enter a list of decimal or hexadecimal numbers.

16

Micro C Staff

If a command sequence is '(ESC)=,'
you can type the escape key followed by
the '=' key and a (CR) carriage return
(ODh) to indicate the end of the sequence. Any control characters typed
this way are echoed as 'ctrl-cc' with the
exception of (BS)-(ctrl-H), (DEL)(7Fh), (CR)-(ctrl-M), and (ESC)-(ctrl0, which are echoed as shown here. All
other characters are echoed normally.
One of the most difficult things, about
entering command strings is that there is
no such thing as backspace-once a key
has been hit there is no return. If you forget and type a (BS) or (DEL) it will be
taken as part of the command you are
entering.
So, it is a very good idea to get out the
reference guide for your terminal and go
through the list of questions given on
pp. 231-233 of the manual (for terminal
installation) and pp. 11-13 (for editing
command installation). Write down the
answer to each question on a sheet of paper so that you will be ready and make
no mistakes; if you slip up just once, you
have to do the entire installation over
again.
It is also helpful to STOP after each
prompt and read the question. Some
questions aren't asked if others are left
blank, so you can't count on being able to
type in your prepared answers exactly as
you have written them down.
Some characters must be entered as
strings of numbers (see p. 230 of the Turbo manual). The most obvious example
of this is (CR). TINST interprets (CR) as
its 'end of line' command, just like CPI
M. To get around this, you must type
'$OD' (OD hex) or '13' (decimal) instead.
Note: if you enter part of a command
in decimal, you must enter all of it the
same way! For instance, the Kaypro 10
and the new II-84 and 4-84 have a bug in
the terminal driver that causes the 'insert
line' command to behave strangely.
When the command is given, the current
line is broken into two lines at the cursor
position. TURBO expects the entire line
to be moved down by one positi<:m and a
new line to be inserted above it.
This difference of opinion means that
the file and the screen won't necessarily
agree. To cure this problem, you must
tell TINST that the command to insert a
line is '(CR)(ESC)E' instead of a simple
'(ESC)E.' Since you can't directly type a

(CR), the way to do it is to reply to
TINST's query for an insert line command with the following:
INSERT LINE command: $OD $lB
$4S(CR)
or 13 27 69(CR)
(Notice the spaces between the numbers.)
When entering numbers for commands, you are allowed a backspace of
sorts. If you type a wrong digit you can
start the current number over again by
typing another '$.' It doesn't work, however, if you have already typed the terminating space. Also, you can't enter a ', (for 'none') after doing this.
One last thing about entering commands before we start talking about specific questions: you can change an existing definition by selecting its number
and answering 'Y' when asked "Do you
want to change this definition?" You are
then asked the same questions used
when creating a new definition, except
the old answer to every question is displayed. If you just type (CR), the answer
is left unchanged. If you want to change
it, type in the new command as described before. If a command isn't supported by your terminal, type a '-' (minus sign) and the answer will be
changed to 'Nothing.' This will only
work if it is the first character on the line,
so be careful what you type.
Terminal Commands
The only command that must be defined for the editor to work properly is
the CURSOR POSITIONING command. The screen lines and columns
must also be defined, but the other commands simply make it run faster and
more efficiently. The questions asked
follow a general order of most to least
important, with the exception of STARTI
END HIGHLIGHTING. Without these
commands, you cannot see what block
of text the block commands are going to
affect, most inconvenient but still passable.
If your terminal cannot highlight characters, then you can substitute the command for entering and leaving any other
'alternate video' mode, just be aware

Micro Cornucopia, Number 21, December-January 1985

that normal text is printed in 'highlighted' mode and special things (like marked
blocks of text) are shown as 'normal.'
This means that if you have a terminal
with reverse video, you should give the
command to return to 'normal' video for
START HIGHLIGHTING and the command to enter reverse video as the END
HIGHLIGHTING command. This
seems a bit backwards, but if you do it
the other way, the entire program you
are working on will be displayed in reverse video, except for the marked block
of text and any special characters that
happen to be in the file. See Figure 1 for
more help.

Figure 2 - Kaypro 1/-84 Video
Command Worksheet

Terminal Type: Kaypro II-84

(4-84, 10)

Send Initialization String? N
Send a Reset String? N
CURSOR LEAD-IN command:  =
CURSOR POSITIONING COMMAND
between row and column: Nothing
CURSOR POSITIONING COMMAND
after line and column: Nothing
Column first? N
OFFSET to add to LINE:
$20
(32)
OFFSET to add to COLUMN: $20
(32)
Binary address? Y
CLEAR SCREEN command: ctrl-Z
Does CLEAR SCREEN also HOME cursor? Y

Figure 1 - What It Really Means
They Say

means

END HIGHLIGHTING
START HIGHLIGHTING

Set Alternate Video Mode
Return to Normal Video

The DELETE and INSERT LINE commands speed things up by making it
possible to add and delete lines and
scroll through the file without repainting
the entire screen every time. The effect of
adding these commands is especially obvious when scrolling toward the beginning of the file one line at a time. ERASE
TO END OF LINE also cuts down the
time needed to update the screen by
eliminating the need to type spaces all
the way out to the end of a line that
doesn't fill the entire width of the screen.
Example
The following is a worksheet that has
been filled in for a Kaypro II-84. If you
, have a Kaypro then you should use this
definition rather than the one given in
the terminal menu of TIN ST. If you have
an older Kaypro, you should enter nothing (-) for the START HIGHLIGHTING
command (the END HIGHLIGHTING
command will then automatically be assumed to not exist). The definition supplied for Kaypros will not work totally
correctly for any of the Kaypros, because
it has highlighting commands not supported by the older models and it doesn't
handle INSERT LINE correctly in the
newer models, as mentioned before. '

DELETE LINE command:  R
INSERT LINE command: $OD $1B $45
«CR>  E)
ERASE TO END OF LINE command: ctrl-X
START HIGHLIGHTING command:  C 1
< Nothing for older Kaypros
END HIGHLIGHTING command:
 B 1
number of line on your screen: 24
number of columns on your screen: 80
Delay
Delay
Delay
and

after CURSOR ADDRESS: 0
after CLEAR, DELETE, and INSERT: 0
after ERASE TO END OF LINE
HIGHLIGHT On/Off: 0

Is this definition correct? Y
(I certainly hope so •• )
Operating frequency of your
microprocessor ill MHZ: 4

Editing Command Installation
If you happen to use WordStar, you
can ignore this section. If you are used to
some other set up of editing commands
then you can save yourself a lot of grief
by changing Turbo's editing commands
to match the ones of your normal editor.
To do this, select the C> option on the
main menu of TINST and answer the 40
or so questions that follow. All these
questions are of the same type as the
'command string' questions in the
screen installation section and the same
rules should be followed for en tering
them.
You should make up a work sheet for
answers to these commands, too. If you
want to, you can use the one on pp. 1113 of the Turbo manual (along with the

Micro Cornucopia, Number 21, December-January 1985

update for vrs. 2.0 if you have it). The
questions asked are sometimes confusing and inconsistent; for instance, did
you know that Paging down takes you
the same direction in the file as Scrolling
up? To help overcome the confusion, see
Figure 3.
Figure 3 - WordS tar Worksheet
They Say

means

---->
------>
---->

Scroll up
to end
Scroll down --> to beginning
Page up
to beginning
Page down
to end

Other than this, the only confusing
part of installing editing commands is
that you cannot have two commands
that are the same (if you do, you have to
do the ENTIRE installation procedure
over again), and you cannot have ambiguous commands. For instance, if you
have said that the Page up command will
be '(ESC)F', you can't define the End Edit command as '(ESC)'.
The Bottom Line
Turbo Pascal is the greatest thing I
have found since root beer floats. (Editor's note: Actually, root beer doesn't
float, ice cream floats.) Its capabilities for
addressing absolute memory and I/O
ports directly make it indispensible for
trying out new ideas. With a little work,
its built-in editor can be customized to
run efficiently and appear almost identical to your usual editor.

•••

17

MODEL 2000
4 MHz Z80-A COMPUTER WITH HARD DISK INTERFACE
AND UP TO A MEGABYTE OF RAM
ASSEMBLED
AND TESTED
BOARD WITH
64Kof RAM

o

o

o

o

o

o

o

o

o

PROCESSOR:
A Z80-A cpu running at 4 MHz with no added wait states and supporting
mode 2 interrupts. Sockets are included for the optional DMA controller and
a 9511 or 9512 arithmetic co-processor.
MEMORY:
Up to 1 megabyte of main memory may be plugged in to give the Z80-A
phenomenal performance (4 banks of 64K or 256K rams). Bank selecting is
in16K segments so that there is no wasted memory. Any 16K segment may
be placed into anyone or more of the four 16K banks that the Z80 directly addresses. A 65th segment contains the 4K video ram and 8K 2764 eprom.
Any 16K segment may be write protected.
DISK DRIVE INTERFACE:
The floppy disk controller is a WD 2797 and will run four 5.25" or 8" drives,
single or double sided, single or double density and up to 255 tracks per
side.
The HARD DISK port is designed to accept a Western Digital hard disk
controller.
VIDEO:
A high quality 80 x 24 character display is produced by an SMC 5037 and
8002A video chip set using 7 x 9 dot character in a 9 x 12 field. Video attributes include: reverse, blink, blank, underline and strike-thru. Two graphics
modes are supported and may be displayed along with text. The final output
is composite video for easy connection to most monitors.
KEYBOARD PORT:
I
An interrupt driven serial port for the keyboard provides a true type ahead
buffer and allows for a simple coiled cord connection to a detached
keyboard.
INPUT.OUTPUT:
The RS232-C serial port comes complete with a D-SUB connector and
will communicate at 110 to 19.2K baud. The parallel printer port uses full
handshaking and has a Centronics style connector. Optional ports include
two additional RS232-C serial ports or a 800Kbit networking port and one
RS232-C port.
POWER REQUIREMENTS:
5Vat 1.5 amp and + 12V at 0.1 amp
SIZE:
8.5" x 13"
SOFTWARE:
ETOS II operating system (CP/M 2.2 compatible)
BIOS for 5.25" drives (Kaypro II & 4 format) and a HARD DISK.
CP/M is a registered trademark of Digital Research

TERMS: We ship C.O.D. inside the U.S.A. Prepaid Orders: inside California
add 6% sales tax, freight extra, company and personal checks, please allow
3 weeks to clear. Mastercard and Visa accepted.

18

PRICES
Assembled and tested board with 64K ram ..................... 498.00
Keyboard ........................................................................... 75.00
Main case ... ........................................ ............................. 100.00
Keyboard case ..................-....................... .......................... 25.00
Drives single sided ................... ........................................ 150.00
Drives double sided .................................. ........... ............ 175.00
Video display, green ........................................................ 100.00
5V 3 amp power supply ...................................................... 30.00
12V 2 amp power supply ...................................... ............. 30.00
Quiet fan ...... ........................................................... ........... 16.00
Cable-floppy disk 5.25" .................................................... 16.00
Cable-5 & 12V power ........................................................ 8.00
10MB half high drive ....................................................... 575.00
Hard disk controller .................. .................... .............. ...... 250.00
Hard disk cable kit .............................................. ............... 50.00
Networking port ............................................................... 100.ob
2 extra serial ports .......................................................... ;.. 50.00

-W::==:·
8161 BROADWAY
LEMON GROVE, CA 92045
(619) 466-1671

Micro Cornucopia, Number 21, December-January 1985

Micro Cornucopia, Number 21, December-January 1985

19

Xerox 820 Colutnn
By Mitchell Mlinar

Although most of my mail (2 out of
the 3 letters) poses questions regarding
the Xerox 820-1, there was some interest
by the Xerox 820-11 user. The last time an
820-11 was even mentioned in Micro C
was WAY back in December of 1982 (you
do save your back issues, don't you?). At
that time, John Marlin presented a cursory tour of the 820-11 system (sort of a
quick test drive). But being an engineer,
instead of "driving" it, I tore it apart to
see what makes it tick. (At the end of this
column there is information on a very
deluxe, but inexpensive operating system so that you don't need to purchase
CP/M.)

1013 W. 210th St.
Torrance CA 90502

1982. The monitor code started with version 4.00 and is now up to 4.04. For only
6k of code, it is packed with features.
Upon startup, a RAM test and ROM
Hardware
I hate to use a cliche, but "where's the
CRC test are performed followed by the
beef?" Oh sure, you now have a hot 4
high memory monitor portion move
MHz machine with 6k of ROM (up to 8k
from ROM to FOOO-FEFF. The upper
available) and a new fangled disk conmonitor entry (at FC55H in v4.01) checks
for the type of disk controller and, if floptroller capable of double density. There
is also a cute piezoelectric crystal which
py, the type of disk drives; this informacan produce a wide frequency range at
tion is used to configure the disk I/O
one volume - annoying. But since one
drivers.
evening and $100 will get you all of the
The monitor in the -II offers 18 comabove on a 820-1, there must be more.
mands as shown in table 1 out of which
There is.
three or four are truly useful. Unlike the
-I monitor which loads itself into high
For a start, extra video hardware permits four screen attributes: flashing, inmemory never to return, the -II makes
A Little History
verse video, low-intensity and graphics.
extensive use of the ROMs during norThe 820-11 was born BEFORE the first
Although the graphics are nice, no commal execution. All of the 18 commands
820-I was ever commercially sold (1980
mercial programs make use of them. The
are located in ROM and overlayed into
inverse video "sea of light" requires
memory (at FC55H again) before executimeframe) since Xerox knew that time,
tide, and computer technology wait for
tion. (In contrast, all of the user CALLawelding goggles, and flashing characters
no" man (or company). When the 820-11
send my dog into convulsions.
ble monitor routines are present in high
was finally introduced to the public early
I like the low intensity mode so I am
memory with the exception of the video
driver. It remains in ROM and is called
in 1982, few eyebrows were raised; after
currently modifying my 820-1 to switch
between £lashing and low-intensity.
all, it wasn't that different from the -I.
directly.)
Couple the ho-hum greeting with Xe(More on that in a later issue.) Besides
This approach saves space since only
rox's public information policy (read:
the usual four ports on the back, there is
the command being executed needs to
be moved into memory. Although most
___n-,ot:l_~)_,!!"!d t~~ 8~-=!I guickly enteredoba connector for the disk controller
scurity.
------- ---------daughter--board -anaa:-separate Dlls-[or--- '-of the command -routines were loca.tion
Most of you -II owners know Xerox
future expansion (the 16/8 upgrade
independent (only JRs and CALLs to
"fixed" routines from FOOO-FC54), some
does not sell a technical manual for the
board plugs here).
820-11, so I recommend purchasing the
A choice of disk controllers was availof them are self-modifying so they have
to run in RAM. Of course, the overlay
manual for the 820-1, as there are many
able for the -II: floppy or hard. The floparea can be used for disk I/O after system
characteristics which the -I and -II share.
py controller is a FD1793 capable of double density operation; the hard disk
boot. See Figure 1 for monitor cominterface is merely another PIO which
mands.
Contact:
BOOT SYSTEM: This can be accom.operates as a SASI interface. Although
Xerox Corporation
plished by A or L or LA for loading thethis seemed like a nice approach, it was
1341 West Mockingbird Lane
system from drive A. To boot drive B,
limited. A floppy controller could run eiDallas TX 75247
type LB etc.
ther 5.25 or 8 inch drives, but no hard
COpy MEMORY: Copies memory
disk. The hard disk interface worked
Order:
block at (start address to end address) to
with a SA1403 which only operates hard
820 Information Processor
destination address.
Software Development Guide
disks or 8 inch floppies. (Compare that to
DISPLAY COMMANDS: Gives a
Reorder # 9R80368
the BBII which offers all three capabiliquickie help menu.
ties.) Since I don't have a hard disk (yet),
Cost was $35 in 1982
DISPLAY MEMORY: Dumps memory
my discussion will focus on the floppy
in standard DDT format from start adThe only other source of information is
configured -II.
dress to end address. Just like DDT, the
the reference section in the CP/M 2.2
start and end values are optional and
Software
documentation that Xerox provides to
successive segments can be dumped by
buyers. However, since the 820-11 is no
Compared to the -II, the -I software
just typing D.
longer made except for limited internal
looks like the stuff I hand-coded for a
FILL MEMORY: Same as DDT: start
production, and bare boards do not have
PDP-8 ten years ago! All of the 820-11
address, end address, and value all rethis documentation, I will assume many
specific software (Monitor, BIOS, CONof you do not have that either. (Editor's
quired.
FIGURCOM, SWAP.COM, INIT.COM,
GOTO: Calls subroutine at address;
and SYSGEN. COM) was written by
note: I received a call from Xerox marketup to three values can follow the addre~s
Balcones Computer during 1981 and
ing about a month ago and they say that

20

the 820-11 and the 16/8 are still being
manufactured and actively marketed.)

Micro Cornucopia, Number 21, December-January 1985

I

which are loaded into HL, DE, and BC in
order. Any registers not set contain nonsense values.
HOST TERMINAL: Dumb terminal
that stores screen lines into memory.
These can be accessed by scrolling with
the CTRL + up/down arrow keys. Other
commands include:
Toggle local echo CTRL + DEL
Toggle local line feed CTRL + LINE
FEED
Toggle remote echo CTRL + 1 (keypad)
Transmit break CTRL + . (keypad)
(Break will end when any char is
pressed)
Abort CTRL + ESC
INPUT: Display value of input port.
After display, press SPACE BAR to display same port again, RETURN to display the next port, or ,_, to display the
previous port. Any other key exits.
MEMORY TEST: Extended memory
test with 256 possible patterns.
MODIFY MEMORY: Modify memory.
After display, touching the RETURN
will leave the contents alone and advance the address, ,_, does the same except backs up the address, any hex value
entered replaces the current value, and
typing a quote "' accepts the next char
ASCII value as the location's new value.
Any other key exits.
OUTPUT PORT: Same is input port
except writing to it. Note that the Reference documentation errs here - the scroll
register reads its data from the normal
data lines, NOT the high address lines.
PRINTER PROTOCOL: Xon/Xoff is a
flag: 1 = enabled, 0 = disabled. Status
mask is mask to read register 0 of the
printer (SIO-B). Status value is value after masking to see if printer is available
for output (not busy). Next to useless
unless you change printers as often as
you change disks.
SET BAUD RATE: Sets the baud rate
on channel B (unless channel is A) codes
include: 05 = 300 baud, 07 = 1200 baud,
and OE = 9600 baud. Codes are sent to
port 0 for channel A or port OC for channel B. All values are in Hex.
TYPEWRITER: Worthless.
READ SECTOR: Disk drive is 0
through F (corresponding to drives A
through P). Reads one physical sector re-

gardless of size.
VERIFY MEMORY: Gives a display of
all locations that do not match.
WRITE SECTOR: The first time you
execute this after turn-on or cold boot,
just type W This will give you a nifty copyright message from Balcones. The next
time (and thereafter), the write command will work normally. Use caution
with this command!
Next time, I will discuss all the monitor entry points-especially those that
Xerox told us to avoid.
QP/M
QP/M, a replacement for CP/M 2.x, is
now available. QP/M is fully compatible
with CP/M but is much more powerful.
Like ZCPR you can setup a common user
area (where the system searches for unfound programs).
Overlay files (such as those used by
Wordstar, SuperCalc, etc.) can be accessed from ANY user area, provided
they exist in the common user area. QP/
Muses Z-80 code and optimized disk
routines for increased speed. Several
utilities are supplied, including IN-

STQPM, PIPQ and STATQ. Also supplied is a compatible copy of ZCPR (a
public domain program), complete with
source code.
The primary benefit of QP/M is automatic time/date stamping of files. By using the built-in real-time clock in your
820, BB, or Kaypro, QP/M will stamp
each file with the current date and time
whenever written. The BACKUP utility
backs up ONLY those files which have
been modified or created since the last
BACKUP. Also supplied is a 2k DIR program which can be toggled to display
time/date information and .LBR directories.
The complete package, including documentation which describes all aspects
of each QDOS call, is available for only
$40.001 Send a current address label from
Micro C, and get a $5.00 discount. Specify disk format when you contact:
MicroCode Consulting
1013 W. 210th
Torrance CA 90502

•••

Figure 1 - 820-1/ Monitor Commands

Command
Boot drive A
Boot system
Copy memory
Display commands
Display memory
Fill memory
Goto location
Host terminal
Input port
Memory test
Modify memory
Output port
Printer protocol
Set baud rate
Typewriter
Read sector
Verify memory
Write sector

Format
A

L
C  
@

D[start addr] [end addr]
F  
G [HL DE BC registers]
H[channel]
I
X 
M
O 
P [status mask] [status value]
B [channel]
T[baud rate code]
R   
V  
W   

NOTE: Parameters within <> are necessary;
parameters within [] are optional.
All parameters and values are assumed to be hexadecimal.

Micro Cornucopia, Number 21, December-January 1985

21

DOUBLE SIDED,
DOUBLE DENSITY
FOR YOUR XEROX 820-1!

Powerful Single Board Computer
Includes CP/M Plus™ on Disk

5599
Assembled. Tested

Includes CP/M 3.0 on disk

NOW YOU CAN HAVE DOUBLE SIDED, DOUBLE DENSITY
FOR YOUR XEROX 820-1 OR BIG BOARD I, AND RUN BOTH
8" AND 5 1/4" DISK DRIVES AT THE SAME TIMEl

ZSO. as Its main CPU. MSC-ICO runs at 4 MHZ without

any wait states. The whole system is Incorporated Into a
high quality four layer PC board measuring only 145mm
X 250mm (10" x 61. The system requires only 1.2 Amps
at + 5 Volts and 0.1 Amps at ± 12 Volts.

ADD $3.00 FOR SHIPPING AND HANDLING; $6.00 FOR COD:
VISA/MASTERCARD ADD 3% (INCLUDES S&H).

(EMERRLD ~~
(MICROJ,JRREj
P.o. Box 6118 Aloha, OR 97007
(503) 642-1860

22

Two RS2JZC Portl
MSC-ICO communicates With printers, modems. plotters, and other standard RS232C devices through its
two serial ports. These ports are independently programmable for baud rates. stop bits. data format and
parity. SynChronous communication on Port A Is
jumper selectable.

Banked CP/M Plus Included

Centronics Parallel Port

CPIM Plus 13.0 banKed) is Included on disk wIth all
manuals. CP/M Plus is upwardly compatible with CP/M
2.2 and includes the SID debugger. the MAC and RMAC
macro assemblers and the LINK-SO loader. MSC-ICO's
custom BIOS provides support for multiple disk formats
and 1/0 device control. System specific software for disk
formatting. disk copying. defining function keys and
modifying screen attributes is also included.

A standard Centronics parallel port allows MSC-ICO to
communicate wrth printers and other parallel devices.

1Z8KbRAM
One 64K bank of memory is devoted to CPIM and rts
disk cache blocks, while the other 64K bank is devoted
to applications programs. This arrangement not only
provides more memory for programs, but It SignifiCantly
increases the speed of disk 110.

Interna' Floppy Disk Controller
MSC-ICO handles Shugart/ANSI standard floppy disk
drives in a variety of sizes and formats:

·8" SSSD. 243Kb
·8" DSDD.I.2Mb
• 5-1/4" DSDD. 320Kb
• 5-114" DSQD. 800Kb
• 5-114" QHD.I.2Mb
Up to four drives of any density or size can be connected to MSC-ICO. Both 51/4 and 8 inch connectors are
on-board to make disk drive conneaions easy.

High Speed CRT Controlle'
MSC-ICO contains an 80 x 24 line memory mapped CRT
controller. Video output is composite or separate to
match any monitor. Attributes such as insert and delete
line, reverse video. and semigraphics are supported.
Cursor escape sequences are an extension of DECs
VT52 and can be easily reprogrammed to emulate most
standard terminals.

Par.lle' Keyboard Port
MSC-ICO connects to any ASCII parallel keyboard of
positive or negative polarity with a negative strobe. A
type-ahead buffer and programmable function keys are
provided by MSC-ICO's custom BIOS.

16 Bit TTL 110 Port
This port allows you to access printers. relays. LED's.
DAC's. ADC's. switches. EPROM programmers and
many other devices.

C'ock ~Iendar
The b<.'lttery backed up clock calendar provides time and
date information to CPIM for file stamping. The clock
can also be accessed from applications programs.

External Bus
MSC-ICO's 50 pin bus connector provides expansion for
a hard disk controller, RAM disK. graphics or a 68000
system. Please call or write for more information on
theseoptrons.

MSC·'CO Savel Time .nd Money
With MSC-ICO's low cost and quality worksmanship.
why spend time. energy and money to design. debug
and test your own system. Whether you require Single
units or large volume quantities we can meet your
needs. Order your evaluation unit tOdayl
Manufac[Uredby

Southern Pacific Limited
1 3 18 Tsurumrchuo Tsuruml Yokohama JAPAN 230
C 045-501 8842 Telex 3822320 SPAClF J
USA

DI~tnbutor

ARTISOFT,lnc.
POBox 41436 Tucson Arrzona 85719 .... 1602)327 4305

CPfM plus™orOgltal Research. Inc

X120 DOUBLE DENSITY CONTROLLER BOARD
DESIGNED FOR USE WITH THE XEROX 820-1
(CAN BE USED ON THE BBI) USING THE WD2791
DISK CONTROLLER CHIP
- RUNS ANY COMBINATION OF 51/4" AND 8" DRIVES,
BOTH AT THE SAME TIME
- CAN USE ANY SHUGART COMPATIBLE DRIVE
- 50 AND 34 PIN SHUGART TYPE DRIVE INTERFACE
~~-~--CONNECTORS ONTHE X120 BOARD
- CAN USE DRIVE CONNECTOR ON M,A:tf.rBb-ARD--~------- DRIVE SELECT LINES DECODED FOR FOUR DRIVES
- COMPOSITE VIDEO ADAPTOR ON X120
- PLUGS INTO 1771 (U109) AND U1'17 ON THE XEROX
BOARD, WITH SIMPLE MODIFICATIONS

$180.00
$ 72.00
$ 49.95
$ 26.00
$140.00
$115.00
$ 15.00
$ 64.95

68000 Coprocessor
BOX24 LCD Driver
Hard/RAM Disk
3 !fl· Single Board

Video. 128Kb. CP/M PIUS™. and more
Z80CPU
MS(-ICO uses the most popular microprocessor, the

XPRO ROM SET BY MICRO CORNUCOPIA
COMES WITH ROMS, CUSTOM BIOS, INSTALLATION
PROGRAMS, DISK FORMATTER, AND MANUAL
- RUNS 63K CPM FOR BIGGER AVAILABLE TPA
- USES PARALLEL KEYBOARD AND FAST VIDEO
- CENTRONICS AND SERIAL PRINTER SOFTWARE
INCLUDED, SELECTABLE WITH 10BYTE
- 98% SOFTWARE COMPATIBLE WITH THE KAYPRO
-INCLUDES FIRMWARE MONITOR FOR DIRECT
MEMORY AND PORT ACCESS
- BOOTS FROM 5 1/4" OR 8" DISKS
- FORMATS, READS, AND WRITES:
KAYPRO 11-191K, SSDD, 48 TPI, 51/4"
KAYPRO 4 - 390K, DSDD, 48 TPI, 51/4"
KAYPRO 8 - 784K, DSQD, 96 TPI, 5 1/4"
8" SSSD (IBM 3740 STANDARD) - 241K
8" SSDD (BB II) - 596K
8" DSDD - 1.212M
XEROX 820-1 SSSD 5 1/4" ~ fR ONLy)
- AUTOMATICALLY DETECTS DISK FORMATS
- TRUE DOUBLE SIDED OPERATION
- SYSGEN & SOURCE FOR CBIOS INCLUDED

PRICING
XPRO ROM AND X120 BOARD A&T ..........
XPRO ROM AND X120 BARE BOARD '" ......
XPRO ROM SET ...........................
X120 BARE BOARD ........................
X120 BOARD ASSEMBLED & TESTED ........
X120 BARE BOARD AND KIT ................
XEROX DISK DRIVE CABLES ................
UNIFORM BY MICRO SOLUTIONS ...........

•
•
•
•

Mountain Side Oomputer

OUR STANDARD DISK FORMATS ARE COMPATIBLE WITH
THE KAYPRO, XEROX, AND BIG BOARD II, WITH THE
OPTION OF RUNNING UNIFORM BY MICRO SOLUTIONS,
TO ACCESS OVER 70 OTHER DISK FORMATS.

UNIFORM BY MICRO SOLUTIONS
UNIVERSAL DISK COMPATIBILIBY PROGRAM.
RUNS ON THE MODIFIED XEROX 820, TO GIVE YOU
ACCESS TO DISKS WRITTEN FOR OVER 70 OTHER
COMPUTERS SUCH AS THE IBM-PC, MORROW,
OSBORNE, AND MANY OTHERS.

New Items:
• MSDQS Coprocessor

CP/M EPROM
PROGRAMMING SYSTEM
2516 ~
2732A
27128
27256
27CXX

2708
2758
2716
2732
2764
-

STAND ALONB BOARD - BLBCTRONIC SWITCHING OP BPROM TYPBS
USBS 24 VOLT XPMR POR POWBR - ALL SUPPLIBS/TIMING ON BOARD
DBSIGNBD WITH BASY TO GBT PARTS - COMPRBHE'.NSIVB 30 PG MANUAL
WORKS WITH ANY CP/M SYSTBM
- SOPTWARB INSTALL UTILITY

* * INTERPACE TWO WAYS * *
1 - ONB 8 BIT INPUT PORT AND ONB 8 BIT OUTPUT PORT - 16 WIRBS
AND A GROUND - NO HANDSHAKB LINBS RBQUIRBD
2 - CBNTRONICS PRINTBR PORT - 8 OUTPUT DATA BITS AND ONB INPUT
DATA BIT (BUSY LINB) - 9 WIRBS A)\() A GROUND

* * CONTROL PROGRAM COMMANDS * *
-

PROGRAM BPROM(S) PROM DISK
- SAVB BPROM(S) TO DISK
RBAD DISK PILB IN1"O RAM
- PROGRAM BP~OM(S) PROM RAM
RBAD BPROM(S) INTO RAM
- COMPARB BPROM WITH RAM
VBRIPY BPROM IS BRASBD
- COPY BPROM
DISPLAY /MODIPY RAM - (MONITOR MODB) WITH 11 SUB COMMANDS
PILL-DUMP-XPBR-BXAMINB-MODIPY -BIA5-PROGRAM-VBRIPY, BTC)

BARB P.e. BOARD WITH COMPLBTB DOCUMBNTATION
AND SOPTWARB ON 8' SINGLB DBNSITY DISKBTTB
$69
(ABOVB WITH COMPLBTB PARTS KIT - $169)(AciT - $189)
SOPTWARB AVAILABLB POR OSBORNB, KA'YPRO AND O'l'HBR 5 1/4 PMTS
TO ORDBR SBND CHBCK, MONSY ORDSR, WRITS OR CALL

ANDRATECH
P.O_ BOX 222
MILPORD,· OHIO 45150
(513) 752-7218
CALL OR WRITS POR MORB INPORMATION -- ADD $300 POR SHIPPING
OHIO RSS. ADD 55% TAX -- VISA/Me. ACCBPTBD -- $300 POR COD

Micro Cornucopia, Number 21, December-January 1985

The Culture
you'll be
Once upon a midnight dreary, while I pondered, weak and weary,
O'er a quaint and curious program I had written long before;
While I nodded, nearly sleeping, suddenly I heard a beeping
From my Big Board; bugs a~creeping, creeping where I would deplore!
Twas some misstroke I had entered, errant thumbstroke not well centered,
Just a typo, nothing more.
Ah, distinctly I remember, it was in the bleak December
When my hard disk files were listed; that was really quite a chore.
Eagerly I wished the 'morrow. With the dawn I'd seek to borrow
Program guides to ease my sorrow, from the dumps piled on the floor.
My small glitch had thus created endless loops of cosines, fated
To be rooted evermore.
Deep into my green screen peering, long I sat there wond'ring, fearing,
Doubting, dreaming dreams of programs I had dreamt so oft before;
That some subroutine, much needed, had my RAM space just exceeded,
And was therefore rudely weeded, banished from the system's store;
Exiled t'where none can forage, software limbo: federal storage.
There to languish evermore.
Had I brought a curse upon me? More key pounding soon would tell me.
Missing code, programmer's bain; I knew I must explore.
CHESS and CHECKERS, BLKJACK, CARDDECK, even secret Fortran STARTREK,
All these files I quickly queried. To the last they came up poor.
One last hope, a final member: biorhythms for November,
Only this and nothing more.
But I knew there was insurance for my toil and hard endurance.
Nervously I sought assurance, hopefully I did implore.
Daily, hourly, every second, when my Big Board II had reckoned,
I had backed up all my labors safe on floppies, quite a chore.
For eons it did cogitate, then printed out that fateful date:
Quoth the green screen, "Nevermore."

Tony Dowden
780 EI Solyo Heights Drive
Felton, CA 95018

THE ULTIMATE SOFTWEAR IS IN ...
ORDER YOUR
MICRO C
T-SHIRT TODAY!
These user-friendly tan shirts
are formatted in mahogany border
with black enhanced mode design.
The fully integrated system is compatible to size 5, M, L and XL, for
only $6.95 ppd. ($8.50 all foreign).

MICRO
CORNUCOPIA

C'ing Clearly
with our
cheap
c source code
$15.00

gets you a disk
full of c code and
. com files from your
favorite column

C'ing
Clearly
graphics
sorting
software tools
and more!!
send $ 75 plus $5
postage & handling
to:
tony ozrelic
p.o. box 5246
bend or 97708

please specify
kaypro II or
8" sssd format

with apologies to e.e. cummings

P.o. Box 223

Bend, Oregon 97709

Micro Cornucopia, Number 21, December-January 1985

23

C'ing Clearly
By Tony Ozrelic

Philippe Kahn, father of Turbo Pascal, is quoted in the October 1984 issue of
Dr. Dobbs' Journal as saying, "c is a disease." He goes on to say that "in Europe,
C is seen as an American disease, and
here people are trying to spread it."
That's a pretty strong statement, and I
wonder how C'ing Clearly readers react
to it. To me, such words as "disease" are
nonsensical; this is a programming language, not herpes. But then I don't have
a Computer Science background (oh,
you didn't notice?). I came into software
by necessity (so I could make the hardware work), and so I see programming
languages as tools rather than religions.
Get a hold of the DDJ article and send me
a letter.

Micro C Staff

with the Manx Aztec C compiler, and, if
my notes are correct, he is deaf. That
makes it difficult for him to call someone
up and ask enlightening (or any other)
questions. The following are some of his
more interesting questions.
Q Is For Questions
1. What is a library?
2. How do I take a function and build a
library out of it?
3. How do I call this library function?
4. When is the extern command used/
required?
5. What defines a standard keyword?
Is it in the compiler?
6. Can I redefine the standard keywords?
7. When and what do I #include in a
*.hfile?
8. What do I stick into a library?

L Is For Letters
Speaking of letters, I am finally beginning to get some feedback from you
folks, most of which has to do with getA Is For Answers
ting small-c to do something useful; my
1. A library is a set of pre-compiled
heart bleeds for you! Eric Sosman has
routines that do something useful. An
figured out a way to compile small-c proexample of this is the runtime library,
grams faster: you take out the comments
which is linked with your program after
in the .ASM files #included with your C
it is compiled.
_____ ~_code.~Also,_he foundthaLCALL.ASM ___ ~_2._To~build~a~function Jibrary, ~_youindents each line with eight spaces incompile it without the mainO program,
stead of a tab, making the file quite large.
'but with whatever .h(eader) files you
After stripping comments and replacing
need. This gives you a .REL (sometimes
eight spaces with tabs, the compiles got
called .OB}) file, which you then link
two minutes faster and the ASM file was
with your main program.
20K smaller to boot.
3. Functions are called when you use
them. If you forget to include the library
Eric's comment-stripping program is
shown in Fig. 1; he wrote it in MBASle.
which has the function you called during
Ok, now who's gonna send me a C verlinking, the linker usually complains
sion? The first one to send one in gets a
that it can't find an address, or that it
can't find some "name." (The "name"
Micro C T-shirt!
will be that of the missing function.)
4. Extern declarations tell the compiler
100 INPUT "Input file: ", F$
110 OPEN WI", #1, F$
that the variable you have declared is not
120 INPUT "Output file: ", F$
in your program, but is in some library
130 OPEN "0", 12, F$
you will link to your program later.
140 IF EOF(1) THEN 240
150 LINE INPUT 11, L$
Functions are, by default, externs. That
160 I% = INSTR(L$,";")
is, if the function you are calling isn't in
170 IF I% <=0 THEN I% = LEN(L$) + 1
your main program, the compiler does
180 I% = I% - 1
190 IF I% <=0 THEN 140
not complain-it just assumes it will ap200 IF MID$(L$,I%,1) = " " THEN 180
pear when you link your program with
210 IF MID$(L$,I%,1) = CHR$(9) THEN 180
220 PRINT 12, LEFT$(L$,I%)
the libraries.
230 GOTO 140
5. Keywords are words like if, for, do,
240 END
while, switch ... and they are definitely
built into the compiler! These words tell
HIsForHelp
the compiler that you want to do a "for"
Scott Rich of 1640 E. 1140 N., Logan,
loop, or a "switch" or an "if".
Utah 84321, is confused. He is working
6. Obviously, if you could alter this

24

list, you would not have a C compiler anymore! No, you can't alter it (at least that
I know of. You could use DDT I guess,
but why would you want to do that?).
7. *.h files are called header files, and
they provide commonly used #defines,
variables, and data structures for your
program. For example, the stdio.h file
contains C's standard input/output routine.s, and defines commonly used numbers like zero (NULL) or -1 (usually
used as an ERROR indicator, as in
if(x= = ERROR) exitO;). By defining constants, we alleviate much grief when it
comes time to transport our code to another machine or compiler. It also makes
life easier since we can attach a name to
the number (pi = 3.14159, for instance).
8. Generally speaking, you put routines you'll be using in many programs
into libraries. You can also split a large
program into separately compiled segments to make the debug/compile process go faster.
E Is For Example
For example, I was working on a C
program to do PC layout on a hi-res vid~eo graphics interface. It has a mouse and.
(soon) a plotter for I/O. To make debugging faster, I split the program into three
parts-the graphics I/O (GIO), which
handles drawing lines, fetching coordinates from the mouse, and driving the
plotter-the graphics package (GP),
which did windowing, transformations,
and scaling-and the actual drafting
package, which did the menus and handIed the database management necessary to add, delete, redraw lines, and
move from component side to solder
side.
Once I had the GIO running, I made it
into a library. Then I got the GP working,
which went quickly because I didn't
have to re-compile the GIO every time I
made a change-I just linked the GP
with the GIO library. After the GP was
done, I could concentrate on the actual
drafting package. I had a bunch of functions to open and close windows, scale
objects, send text to windows, etc. Real
neat stuff. Needless to say, during the
development process, I decided that
some of the library functions could be ex(continued next page)

Micro Cornucopia, Number 21, December-January 1985

CP/M-80 C Programmers . ..
panded (gee, wouldn't it be nice if I
could just ... ). A quick trip to the source
of the library and a quick recompile and I
was back on the air again.
T Is For Ta-ta
That's it for now. Next issue Bert
Berlin will show us how to make our
printers do spiffy things with a few simple characters and the printfO function.
P.S. Don't forget to write!

•••

IISMON"
Software In-Circuit Emulator
Links your CPIM computer with any Z80
based computer or controller that you
may develop. All that is needed is BMON,
12K of ROM space, and a handshakeable
bi-directable liD port (either RS232 or
Parallel).
Features:
-Full program development debugger
with Breakpoints, Snaps, Stops, &
Waits.
-Single Step program execution.
-Download file from CPIM system to
development Ram.
-Upload Memory from development
RAM to CPIM disk.
-Two versions: Master BMON runs in
your CPIM system, Slave BMON runs
in your target system.
Note: Requires Microsoft's M80 & L80
assembler & linker to setup Slave
BMON.
8" SSSD Disk containing Master
aMON, Slave aMON, GONSOL,
aMONIO, GONSOL/O, and Users
Manual ................................. $49.95

Save time
... with the 8DS C Compiler. Compile, link
and execute faster than you ever thought
possible!

Reviewers everywhere have
praised BOS C for its elegant
operation and optimal use of
CP/M resources. Above all, BOS C
has been hailed for it's remarkable
speed.

If you're a C language
programmer whose patience is
wearing thin, who wants to spend
your valuable time programming
instead of twiddling your thumbs
waiting for slow compilers, who
just wants to work fast, then it's
time you programmed with the
BOS C Compiler.
BOS C is designed for
CP/M-80 and provides users with
quick, clean software
development with emphasis on
systems programming. BOS C
features include:

"I reconunend both the
language and the implementation
by BDS very highly."
Tim Pugh, Jr.
in I nfoworld
"Performance: Excellent.
Documentation: Excellent.
East of Use: Excellent. "
Info World
Software Report Card

• Ultra-fast compilation, linkage and
execution that produce directly
executable 8080/Z80 CPIM command
files.
• A comprehensive debugger that
traces program execution and
interactively displays both local and
external variables by name and
proper type.
• Dynamic overlays that allow for runtime segmentation of programs too
large to fit into memory.
• A 120-function library written in both
C and assembly language with full
source code.

" ... a superior buy ... "
Van Court Hare
in LifelinesIThe Software
Magazine

BYTE Magazine placed BOS
C ahead of all other 8080/Z80 C
compilers tested for fastest
object-code execution with all
available speed-up options in use.
In addition, BOS C's speed of
compilation was almost twice as
fast as its closet competitor
(benchmark for this test was the
Sieve of Eratosthenes).

Plus ...
• A thorough, easy-to-read, 181-page
user's manual complete with
tutorials, hints, error messages and
an easy-to-use index - it's the
perfect manual for the beginner and
the seasoned professional.
• An attractive selection of sample
programs, including MODEMcompatible telecommunications,
CPIM system utilities, games and
more.
• A nationwide BDS C User's Group
($10 membership fee - application
included with package) that offers a
newsletter, BDS C updates and
access to public domain C utilities.

Don't waste another minute on
a slow language processor. Order
your 80S C Compiler today!
Complete Package (two 8" SSDD disks,
181-page manual): $150
Free shipping on prepaid orders inside
USA.
VISA/MC, COD's, rush orders accepted.
Call for information on other disk
formats.

Shipped Via prepaid UPS
-No COD or P.O. BoxCheck or Money Order to:

Barnes Research & Development
750 W. Ventura St.
Altadena, CA 91101
(818) 794-1244
CP/M is a trademark of Digital Research Inc.
MBO & LBO are trademarks of Microsoft Inc.

80S C is designed for use with CP/M-80
operating systems, version 2.2. or higher. It is
not currently available for CP/M-86 or MS~OS.

Micro Cornucopia, Number 21, December-January 1985

BO Software, Inc.
P.O. Box 2368
Cambridge, MA 02238
(617) 576-3828

25

Low Intensity BBI Video
L

By John P. Jones

6245 Columbia Ave.
St. Louis MO 63139

I have been using the SWP dual-density disk system for some time and both
the hardware and software work extremely well. One of the functions added
in the software is the ability to set/reset
the attribute bit in the video memory.
When I began using Borland's Turbo
Pascal, which has built-in support for reduced intensity video, I decided to alter
the BBI hardware to provide highllow
intensity in the video display ..
Changes
1. Remove U37, bend out pin 11 and
reinstall. This disconnects the blink clock
from the video circuit.
2. Connect U25 pin 2 to U25 pin 7
(ground) to re-enable the normal scan
line blanking.
3. Jumper U37 pin 12 to U74 pin 11.
This latches the attribute bit and makes it
available during the dot output portion
of the video cycle.

4. Jumper U74 pin 10 to U94 pin 13.
The latched attribute bit is now available
on U94 pin 11.
5. If you want the attribute bit to cause
reduced intensity, connect U94 pin 12 to
U94 pin 14 (+5V), for high intensity connect to pin 7 (gnd).
At this point, the hardware changes
are different for composite video and
separate video.

Separate video
6. Remove R21 to eliminate any effect
of the composite video circuitry on the
TTL level video.
7. Cut trace from U94 pin 8 to J6 pin 2.
8. Connect 47 ohm resistor between
U94 pin 8 and J6 pin 2.
9. Connect 220 ohm resistor between
U94 pin 11 and J6 pin 2.
10. CHECK YOUR WORK.
Characters with bit 7 set will now be
displayed with altered intensity. De-

Only $95 with FULL SOURCE CODE!

pending on your CRT, you may need to
adjust contrast and brightness and/or try
different resistor values in steps 8 & 9
above.

Composite video
6. Connect a 3K to 5K resistor between
U94 pin 11 and the base of Ql.
7. CHECK YOUR WORK.
NOTE: I did not have a composite video monitor of high enough band wid th to
test the composite video mod. Results
not guaranteed!
Cursory Search
One additional problem remains.
How do you find an altered intensity
cursor character in an altered intensity
video field?
Since there is no easy hardware fix, the
solution is in software. Figure 1 is a routine to use interrupts from CTC channel
oto toggle the high order bit of the cursor

fl~M~~ Liteks

"HackerS""itch
RS232 Configurable Interface Switch

" ... an incredible learning tool." Byte
For only $95, O/C is a ready-to-use C compiler for CP/M with complete source code. Here's what BYTE (May 1984) said: "O/C ... has
a portable library and produces good code quality. If you want to
learn compiler construction techniques or modify the standard language, O/C is the obvious choice."
• Source code for compiler and over 75 library functions.
• Strong support for assembly language and ROMs.
• No license fees for object code ..
• Z80 version takes advantage of Z80 instructions.
• ale is standard. Good portability to UNIX.
O/C has casts, typedef, sizeof, structure initialization, and function
typing. It is compatible with UNIX Version 7 C, but doesn't support
long integers, float, parameterized #defines, or bit fields. Call about
our new products: O/C profiler, Z80 code optimizer, and Z80 assembler and virtual linker, all with full source code!

THECODE
WORKS

Hollister, Suite 224
Santa Barbara, CA 93111

5266

(805) 683-1585

A sanitary alternative to dealing with, cables
82
83
8X

switches between 2 devices
switches between 3 devices
swaps 2 x 2 devices

59.95
79.95
79.95

R8-232 (and parallel) interface accessaries
are available starting at 20.00
(
Dealer inquiries invited
for brochure.

LITEK

4326 Fish Hatchery Road
Grants Pass, OR 97527

Q/C, CP/M, Z80, and UNIX are trademarks of Quality Computer Systems, Digital
Research. Zilog. Inc,. and Bell Laboratories respectively,

26

Micro Cornucopia, Number 21, December-January 1985

character at about4 Hz. The major disadvantage of doing blink this way is that
the cursor blink rate drops significantly
during periods of high disk activity. This
is because interrupts are disabled during
diskread/writes. It is setup to be run as a
program which copies the interrupt routine to an empty area in PFM and initialize CTC channel 0 for blink timing.
On my system, I modified the PFM
overlay that is loaded from disk to include the routine. It could also be included in the BIOS. For BIOS use, put the
CTC 0 initialization in the cold boot routine and the interrupt routine anywhere.
If you are still using PFM, a simple
patch allows you to send characters with
the intensity bit set to the display. At location OF523H is a RES 7,A instruction (2
bytes). Replace these bytes with Naps
and any char with bit 7 set will be displayed with altered intensity. If you
have a PROM burner, patch locations
533H and 544H in the PROM. Alternatively,the patch can be made manually or in the CTC 0 init routine.
This works more than 99% of the time.
The remaining problem is that if the final
CTC 0 interrupt occurs after the character under the cursor has been replaced
but before the cursor pointer (CURSOR)
has been updated, the old cursor location can be left with incorrect intensity.
This happens very rarely and PFM
would be difficult to patch for the problem. If you are using the SWP monitor
overlay the easiest fix is to reset the blink
counter near the beginning of the CRTOUT routine, just after the input char
has been saved in register C. This gives
CRTOUT about 250 mS. to do its thing.

Blink Counter Reset
ld c, a
ld a, blnkval
ld (blnklk), a

jexisting
jadded·
jinstructions

It's surpnsmg how effective screen
displays appear when areas can be emphasized or de-emphasized with high or
low video.

Figure 1 - Blinking Cursor Routine

software cursor blink routine (uses ctcO)
j

blnktim
ctcvec
ctcO
cursor
bitdat

equ
equ
equ
equ
equ

15
Off10h
18h
Off73h
1ch

org

100h

jfor 4 MHz processor, about 250mS
jaddress for interrupt vector table
jctcO address
jcurrent absolute cursor address· storage
jbank bit port address

first move interrupt routine to final location
and initialize vector
ld
ld
ld
ex
ld
ldir

hl, blink
(ctcvec) ,hl
de, source
de,hl
bc, length

jsource of data to move
jhl is source, de destination
j number of bytes to move

ld
ld
ld
otir

b, 3
c, ctcO
hl, initbl

jthree bytes to output
to ctcO
from initialization table

jmp

0

equ

$

org

Of800h

; i f using M80, .phase Of800h

ld
ld
push
push
ld
dec
jr
ld
ld
in
push
set
out
ld
xor
ld
pop
out
noblnk: pop
pop
ld
ei
reti
j
length equ

(blnksp) ,sp
sp,blnksp
at
hl
hl,blnklk
(hl)
nz, noblnk
(hl), blnktim
hl, (cursor)
a,(b1tdat)
af
7,a
(b1tdat),a
a, (hl)
80h
(hl),a
af
(b1tdat),a
hl
af
sp, (blnksp)

jswitch to local stack

defs
blnksp: defs
blnklk: defb

10
2
blnktim

j
source

jvector address and destination of routine

back to CP/M

;

blink:

jmodify no registers
jupdate blink clock
jnot time to swap yet
jreset timer
jpoint to cursor absolute location
j get and save bank bit
jenable crt bank
jtoggle bit 7 @ oursor location
jrestore bank bit
jtidy up before exit

i-blink

;

in1tbl: defb
defb
defb

Oa7h
0
ctcvec

timer mode, divide by 256 prescaler
256 counts before interrupt
vector low order

end

•••
Micro Cornucopia, Number 21, December-January 1985

27

SWP's CQ-POWER-88 makes Z80, CP/M
microcomputers IBM-PC compatible!
CO-POWER-88 is a 16-bit 8088 coprocessor for Z80 CP/M
computers. Both versions of CO-POWER-88, 128k and
256k RAM, include both MSDOS, and RAM drive soft.
ware,complete with MSDOS, IBM-PC
compatibility.
l.

Simple commands move system control
between the Z80 ar.ld 8088 processor. COPOWER-88's RAM can be used in CP/M as a
RAM drive! Currently available for Kaypro,
Bigboard, Zorba, Xerox 820-11, Actrix,
Osborne, and ATR8000 computers.
128k CO-POWER-88 w/MSDOS & RAM Drive ........... ; ... $400.00
256k CO-POWER-88 w/MSDOS & RAM Drive ............... $500.00
CP/M-86 ........................................ '.' ..... $70.00

ATR8000: SWP's $499.95 CP/M Computer
SWP's ATR8000 is a 64k RAM,Z80A, 4 MHz computer that includes double density CP/M 2.2.
The ATR-8000 runs up to four disk drives that are any mixture of size (5114" and 8" ), type
(single-sided and double-sided), and density (single, double and quad). The ATR8000 has an
RS-232 port for a modem or serial printer and includes software for both. There's also a
parallel port with a parallel printer driver. The ATR8000 interfaces to an RS-232 terminal or to
_______ aoAIARLhomecomputer..Softwareincludes a program that allows the ATR8000 to use CP/M
disks from other computers. The ATR8000 can be upgraded to also run CP/M-86 and MSDOS
by adding CO-POWER-88.

Bigboard Dual Density

We've just released a new version!

Hardware

Software V#061983

• A daughter board that plugs into the
1771 socket. With this board the system
employs automatic density select.

• One 8" version includes the code to
. make a 60k double density CP/M for:
8" SS 2.5 MHz
8" OS 2.5 MHz
8" SS 4 MHz
8" OS 4 MHz
51f4" SS 2.5 MHz

• Instructions tell how to run 51f4" drives.
A 50-34 pin· disk drive adapter board is
included with 51f4" disk orders.

• Printer drivers are built-in, selectable in
the IOBYTE.
• Easy to change port parameters.

For Orders: We accept MasterCard, Visa. Money Orders or·
checks. Shipping charges and applicable taxes will be added.
Call or write for delivery time. Prices and specifications sub·
ject to change without notice.

• Includes OOINIT for SO and DO initializing and OOSYSGEN for DO sysgening.
• Special features have been added including a deluxe pause, screen print
and clock.
• Source code is available for $25 after
you sign a disclosure agreement.

Trademarks: CO·POWER·88, ATR8000, SWP. Inc.: Z80, Zilog: CP/M, CP/M·86. Digital Research. Inc.: IBM·PC,
IBM: MSDOS, Microsoft: Kaypro, Kaypro Corp.: Zorba. Mod Comp .. Inc.: Xerox, Xerox Corp.: Actrix, Actrix
Corp.: Osborne. Osborne Computer.

~"_III
.MICROCOMPUTER PRODUCTS, INC.

28

• 8" SSOO disk storage is 674k; OS is
twice as much! 51f4" is 183k.

2500 E Randol Mill Rd. - 125
Arlington, Texas 76011
817/469-1181
817/861-0421

Micro Cornucopia, Number 21, December-January 1985

FORTRAN GRAPHICS For EPSON MX-SO
on CP/M-SO Systems
MicroG Iyph/Sci Plot (TM) Graph ics Libra ry.
A set of FORTRAN callable low-level
graphics primitives for scientific and
engineering applications.

• Presentation quality high
resolution graphics with
120 by 216 dots/inch.
• Softwa re generated text
fonts, data centered
symbols, uniform or
proportional spacing,
string plotting with
rotation and size scaling capability, 14 sets.
• Linear or Log scaled axes.

A

A

A

B

B

B

SI~PLEX

CO~PLEX

COTHIC

DUPLEX

A

B
TRIPLEX

• Vector graphics, point
to point plotting with
user selectable origin
and data scaling.
• Multiple plot frame processing.

..-.
Of)

.,

-o

>

~

SYSTEM REQUIREMENTS:

'0
:J

0.0

-a.
CP/M 8-bit system and MICROSOFT F80
FORTRAN with EPSON MX-80(GRAFTRAX
PLUS) interfaced on 8-bit parallel port.
8" SS SD I BM format disks. 44K TPA
(Transient Program Area) minimum.

E

~

-.'

2

Time

(ms)

TERMS:
$69.95 plus $3.00 shipping. Mass
residents add 5%. Allow 3 to 6
weeks for delivery. Check or
M.O. USA and CANADA only.

MicroG Iyph Systems
P.O. Box 1066
East Arlington, MA 02174

Trademarks are: EPSON of EPSON America, GRAFTRAX PLUS of EPSON America, CP/M of Digital Research, MICROSOFT of Microsoft, IBM of International
Business Machines.

Micro Cornucopia, Number 21, December-January 1985

29

SLICER. • . Growing to meet your needs!
The Slicer

The Slicer
System Ex ansion Board

REAL 16-BIT POWER ON A SINGLE BOARD
Featuring the Intel 80186
• Complete 8 MHz 16-bit microprocessor on
6"x 12" board
• 256K RAM, plus up to 64K EPROM
• SASI port for hard disk controller
• Two full function RS232C serial ports with
ind ividually programmed transm ission rates
50 to 38.4K baud
• Software compatibility with the 8086 and 8088
• 8K of EPROM contains drivers for peripherals,
commands for hardware checkout and software
testing
• Software supports most types and sizes of
disk drives
• Source for monitor included on disk
• Bios supports Xebec 1410 and Western Digital
WD 1002 SH D controller for hard disks
Fully assembled and tested only . . . . . . . . . . $995.00

The Slicer
PC Expansion Board

---------.-----.-~~-~.----"-~--------~------ -----~-

_. --"--

-

~.

FOR EXPANDED MEMORY, ADDITIONAL
PORTS, AND REAL TIME CLOCK
•
•
•
•
•
Fully

up to 256K additional dynamic RAM
2 RS232C asynchronous ports with baud rates to
38.4K for serial communication
2 additional serial ports for asynchronous RS232C
or synchronous communication (Zilog 8530 SCC)
Real Time Clock (with battery backup) for
continuous timekeeping
Centronics type parallel printer port
assembled and tested only . . . . . . . . . . $750.00

The }.L Slicer 188

..

.

~

~~

~e ....

REAL 8/16-BIT POWER ON A SINGLE BOARD
Featuring the Intel 80188

~.

~e

•

GIVES YOUR SLICER HIGH PERFORMANCE
VIDEO CAPABILITY
•
•

IBM c0mpatible monochrome video
Video memory provides 8 pages of text or special
graphics capability
• 2 I BM type card slots for color video, I/O
expansion, etc.
• I BM type keyboard port
Fully assembled and tested only . . . . . . . . . . $600.00

SLICER COMPUTERS INC.
2543 Marshall Street N.E.
Minneapolis, MN 55418
(612) 788-9481

Complete microcomputer on high quality
5-3/4"x7-1/2" multilayer board
• 256K RAM, plus up to 8K EPROM
• SASI port for hard disk controller
• Two full function RS232C serial ports with
individually programmed transmission rates
50 to 38.4K baud .
• Software compatibility with the 8086 and 8088
• 8K of EPROM contains drivers for peripherals,
commands for hardware checkout and software
testing
• Software supports 5-1/4" and 3-1/2" disk drives
• Source for monitor included on disk
• Bios supports Xebec 1410 and Western Digital
WD 1002 SHD controller for hard disks
Fully assembled and tested only . . . . . . . Write or Call!

All products are available in several kit forms
Operating Systems are:
CP/M-86 by Digital Research, Inc. . . . . . . . . .. $85.00
MS-DOS by Microsoft Corporation . . . . . . . . $175.00

MasterCard, Visa, Check, Money Order or C.O.D.
Allow four weeks for delivery. Prices subject to change without notice.

Slicer Column
By Laine Stump

I have undergone massive priority
changes in the last two months. Hence,
some of the products and projects I
spoke of in the last column have been
sidetracked momentarily.
But other interesting things have
emerged, so this month I will give you a
report on some of the Slicer related software and hardware. Then I will cover a
few more useful software hints, and end
with a description of a fast, cheap way of
making one of your RS232 serial ports
into a TTL serial port.
CCP/M
Concurrent CP/M has yet to see the
light of day. Although it is running, Earl
and the others at Slicer want to make certain it is running correctly before they
ship it (now that's an interesting policy.
Maybe some other firms should try it
... ). CCP/M was almost finished, but
Earl had to spend some time working
with Slicer's new model (description
coming up), so CCP/M got to wait fora
while.
CCP/M will sell for approximately
$200-$250 and be available only from
Slicer. I took a quick look through the
"other" magazine and the lowest price I
could find for CCP 1M on the IBM was
$225. Slicer's version can also be reconfigured for a different number of physical and virtual consoles, while the IBM
version is locked into a configuration of
one physical and four virtual consoles.
The Slicer implementation will not (yet)
have CCP/M's PCDOS emulation mode,
though.

MSDOS
They've finally done it. Slicer Computers is now offering MSDOS for the
Slicer; it should be in this issue's Slicer
ad. This really opens up a lot of new possibilities for the Slicer since there are
quite a few software publishers (notably
Microsoft) that do not offer a CP/M-86
version of their 16 bit packages. Even
Digital Research has some products that
they only offer in MSDOS format. Now,
for example, you can get a Fortran compiler that will run on the Slicer.
I have not yet received my copy of MSDOS, so I cannot even tell you which
version it is (I'm hoping for 2.0 or better),
but I will report on it in the next issue.

Micro C Staff

PC Board
Of course, even if you have MSDOS
you still can't run most of the popular PC
software packages that directly access
the PC's video memory. So Slicer is designing the "PC Board" (an add-on
board that gives you IBM compatible
video as well as some card slots for plugging in all those nea t PC accessories). It is
in the prototype stage right now, and the
last time I talked to the folks at Slicer,
they told me it was up and running (with
Concurrent CP/M no less), so it should
be on the market soon.
Son of Slicer
Slicer has an interesting new model
based on the 80188 (186 with 8 bit data
bus). It has all the same features of the
original Slicer, but through the use of
AVLSI (Awesomely Very Large Scale Integration) the board has shrunk to the
size of a 5" drive. This is also the size of a
winchester controller card, so you can
now stack the two boards on top of a
winchester drive, add a terminal board
and a £latpanel display, and have a complete system that fits into a briefcase (my
spare time project for 1985).
This system wasn't actually developed
for the hobbyist market; it was designed
for an overseas OEM who is going to
base a portable computer on the board.
Due to different design goals, the board
will be somewhat more expensive than
Papa. The problem is that all those new
chips (that made it possible to fit all the
features into such a small space) are very
costly. This means that most people will
probably still choose to go with the original, but at least we'll have a choice.
I haven't heard anything yet on pricing or availability. No word yet on the
8087 co-processor board that I talked
about last issue, either, but you'll know
as soon I find out anything.
Software Workshop
One of the things I need for my Z-80
emulator program (which, by the way,
has been stalled by my mandatory
schoolwork) is the ability to make direct
BIOS calls. In CP/M-80, this is simple;
just look at memory loca tion 6 to find the
address of the bottom of BDOS and use
that to compute the location of the BIOS
jump table, then CALL that address.

Micro Cornucopia, Number 21, December-January 1985

Things get a lot more complicated
when working with CP/M-86. Since
your program may be executing anywhere in the 1 Mbyte address space, you
must do a CALLF (CALL Far) to get to
the BIOS, saving both the IP (Instruction
Pointer) and CS (Code Segment) registers on the stack in the process. This
would be just fine HBIOS routines ended
with RETF (RETurn Far) instructions,
but they all end with plain RETs (short
returns, not even many happy returns)
and RET assumes that only IP was
pushed onto the stack when the routine
was called.
Apparently the folks at DR knew that
someone would want to bypass the operating system (a poor practice that
should be avoided whenever possible)
so they added a BDOS call to remedy the
situation. This is done with Function
#50 'Direct BIOS Call'.
When using this function, rather than
loading the CPU registers with the arguments that will be passed to the BIOS
routine, you must store the arguments
(along with the number of the BIOS routine you wish to execute) in a 5 byte descriptor block in memory. Then you
must place the offset address of the descriptor into register DX.
Figure 1 contains a subroutine which
makes the currently selected drive seek
track TRACKNO:
As I previously mentioned, using the
BIOS directly is NOT recommended. DR
wrote the specifications of the BIOS routines with very specific purposes in
mind; if your purposes don't resemble
theirs, you can get confused. For instance, the CP/M manual states that the
BIOS SETTRK routine may be setup to
delay the actual seek until a disk READ
or WRITE operation occurs. That means
that if you were using the preceding example in a drive test program and you
wanted to just perform random seeks,
you would have to SETTRK and then do
a READ before the head would actually
seek.
Monitor Disk Copy
The following little routine showed up
at Micro C during the SaG. It shows
how to duplicate a SSSD 8 inch disk us(continued next page)

31

THE SLICER COLUMN ( c o n t i n u e d ) - - - - - - - - - - - - - - - - - - - - - - - -

ing the Slicer's debug monitor. It is a
really neat way of showing the power
that was built into the monitor (thanks,
Earl). To copy a disk with the monitor,
you must first put the source and destination disks into their drives (say drive A
and B) and type the following command:
+DNO D? DN1 D? DTO

This tells the monitor to reset both
drives, establish the format of the disks,
and set the track pointer to O. Now that
the system knows what it is working
with, we can execute the copying loop:
+DNO DS1 DM80:0 DR1A DN1 DS1 DM80:
:0 DW1B,1A &

This command first reads a track (lAh
sectors) from drive 0 (A), then writes the
same sectors to drive 1 (B). The DW command given here tells the monitor to
write 27 (lBh) sectors on a 26 (lAh) sec-

tor track. This bumps the track pointer
up to the next track. The '&' symbol is
the monitor's REPEAT command, and
tells the monitor to repeat the preceding
command until a CTRLC is typed.
After all the tracks are copied, error
messages will start appearing on the
screen; just type CTRLC and you will be
back to the monitor prompt. If you want
to use this routine for copying other format disks, just substitute the number of
sectors per track for the occurrences of
'lA'. Then add one to that number and
substitute it for the 'lB'. Remember,
though, that you cannot do a track-fortrack copy between disks with different
formats.
Fast MODEM7
The MODEM7SL program on Slicer
disk S2 is set up to run at 300 baud. This
is done by a routine way down in the
middle of the source code near the statement IF SLICER. If you like, you can edit

that file and reassemble it to make a version of MODEM7 that runs at a different
baud rate, but if you don't want to spend
that much time on it, you can get the
same results by making the patch in Figure 2 with DDT86.
See the baud rate table on page Monitor 16 of the Slicer manual for values
needed for different baud rates. If the
number at location 1755 isn't 44h then
you don't have the same version of MODEM7SL so you can't make this patch.
TTL Serial Port
My system is a real hodge-podge of
odds and ends picked up here and there.
Since I don't have a serial terminal, I
must, unfortunately, use my Bigboard as
a terminal when I am running my Slicer.
One of my roommates has a Zenith ZT1
terminal so I hooked it up to the Slicer.
The only problem was that the ZT1 is
set up to connect directly to the phone
lines through an internal modem and the

DECEMBER SPECIALS:
--64K-DRAMs 200 NS-max-$4-each or 8/$28: Removed -from -new boards .. Tested and guaranteed
fu nctional.
AMBER SCREEN MONITORS! These monitor assemblies work beautifully with a Xerox board with
minor modifications (instructions included). Non-composite 20 MHz bandwidth. Require 12V DC
only. May have slight scratches on screen. $55 each postpaid.
COMPONENTS BY THE YARD! These components were taped for automatic insertion into computer PC boards. May include tantalum and monolithic capacitors, signal diodes resistors etc.
$3/yard or 10 yards/$25. Please buy a few yards so we don't go "buggy" sorting through them
and get a good mix of components.
MONOLITHIC BYPASS CAPACITORS: .1 uF/50V. 8/$1 or 100/$10 .
.047uF/50V. Use instead of .1 and save! 10/$1 or 120/$10.
6.8uF or 33uF or 39uF 35V tantalum capacitors. 5/$1 or 60/$10.
FANS: 3" $6

5" $7 (RFE). Asstd. Lihe filters $3 (RFE).

We plan to develop hardware/software products for the 820 and BB. Users group inquiries
welcome!
"Fine print": All items new unless removed from eqpmt (RFE) and subject to prior sale. Add $3
for postage, handling and insurance. VISA M/C or check with order. $20 minimum on credit card
orders, please. We buy surplus electronics. Finders fees paid!

SOUTHWEST COMPUTERS AND ELECTRONICS
3232 SAN MATEO NE SUITE 104 ALBUQUERQUE NM 87110 or (505) 293-8176/296-2738

32

Micro Cornucopia, Number 21, December-January 1985

only other connection is a TTL level serial port. After discovering there was
hardware modification involved in
hooking it up, I dropped the idea for
awhile. Then last week when deadlines
were looming and everyone wanted to
use the computer, I finally decided to
take action.
The modification I used involves making two little jumper boards that replace
the terminal port RS232 drivers (UI9,
U20). There are no other modifications
needed.
First, make two jumper boards using
two 14 pin DIP headers or sockets. Simply connect pin 4 to pin 6 on both boards.
This jumpers the data signal across the
socket. Call one of the boards H19 and
the other H20. Now jumper pin 3 of H19
to pin 2 of H20 and pin 11 of H19 to pin 9
of H20. These last two jumpers connect
RTS (Request to Send) output to CTS
(Clear to Send) input and DTR (Data Terminal Ready) output to DCD (Data Carrier Detect) input. You need these jumpers if the software you're running uses
these signals.
When you have put the four jumpers
on the two headers, just unplug U19 and
U20, carefully store them somewhere on
anti-static foam, and plug in the headers. Your serial port now operates at TTL
voltages.
When you make the cable go to the device at the other end, remember that pin
1 is ground, pin 2 is transmit data, and
pin 3 is receive data (on the DB25 connector, not the one on the Slicer board).
If things don't seem to be working correctly, try switching the two jumpers on
JB3 to switch the pinouts of transmit and
receive. See page Connectors 4 of the
Slicer manual for a diagram of these.
Other Serial Discussions
I recently discovered the use for one of
the jumpers on JB2. If your terminal runs
at 9600 baud, you can put a jumper between pin 1 and pin 2 on JB2 and the system will bypass the auto-baud code and
simply assume 9600 baud. This eliminates the need to type a cr> before the
system boots.
Later On
Wishing I had more I/O ports, but not
quite having the money for an expansion

board, I have been thinking of some possibilities for other ways to chunk on another parallel or serial port-ways that
involve small cash outlay. Next issue I
will discuss some of these ideas (once I
have had the chance to develop them). If
anyone has any ideas on such things,

please get in touch with me SOON (I
have to have the next column finished no
later than two weeks after you read this
one). Until then, happy trails.

•••

Figure 1 - CSEG Seek Routine

SEEK:

CSEG
LD
INT
RET

DSEG
SEEKDESC:DB
DW
DW

DX, offset SEEKDESC
224

;BIOS call descriptor
;call BDOS

10
;BIOS ftn 10 = SETTRK
TRACKNO ;reg CX
track to seek
o
;reg DX = not used

Figure 2 - Modem 7 Baud Rate Patch

A)ddt86
-rmodem7sl. cmd .
-s1755
xxxx:1755 44 66
xxxx: 1756 E6 •

;for 1200 baud, BB for 9600, etc.

-wmodem12.cmd

;save 1200 baud version

Out "keys" the
competition!
Thinking about buying a "key" program? (You know, the names all start with words
like "smart", "magic", "pro", etc.) Looking for a faster, easier
way to calc? Process words or databases? Yes? Then
you owe it to yourself (and your computer) to check
out XtraKey. Quite frankly, we think it's the best. At
any price! (And wait 'till you see our price.)
Just like those other "keys", XtraKey lets you
redefine your regular keyboard keys to be anything you want. A word, a paragraph, a series of
commands ... whatever you hate to type over
and over again! Change or make up new definitions anytime. Even while running a favorite program like WordStar or
dBASE II! Unlike other "keys", there's no limit on definition length.* Plus our advanced
XShift feature lets individual keys have up to 16 meanings.
XtraKey can also talk to your printer or video display. Change from pica to
elite while working on a spreadsheet. Address an envelope while in a document. Or call
up your own custom help or menu screens (almost like having windows!)
There's more! Built-in screen dump**, keypad redefinition**, clear screen, printer
on/off, definition chaining, program chaining, input pause and batch processing. All in
one, neat little package that uses less memory AND disk space than the leading program.
Now, for $39.95, aren't you ready for real key power?
• to available CP/M TPA

*. XtraKey Custom versions for Kaypro (all models) & Gnat 10 only

X~ ~

XtraKey will run on CP/M 2.2 based computers. To order. send check or
money order for $39.95 ($49.95 for XtraKey Custom for Kaypro or Gnat 10)
plus $3.00 shipping (U.S. & Canada). California residents MUST also add 6%
sales tax. Specify make and model of computer and disk format. VISA and
MasterCard accepted.
CP/M. dBASE n. WordStar and Kaypro are trademarks of Digital Research.
Ashton·Tate. Micropro and Kaypro respectively.

Xpert Software. 8865 Polland Avenue. San Diego, CA 92123 • (619) 268-0112

Micro Cornucopia, Number 21, December-January 1985

33

Saving Money on Quad Density Disks
By David Thompson
If you are planning to upgrade to a
Kaypro 8 (or are just interested in getting
the best possible disk for your dollar)
then you're no doubt interested in locating double density (DO) 5" disks that
will work dependably in a quad density
(QD) drive.

Good Disks vs Bad Disks
The difference between disks is primarily in the way their surfaces are coated, in the way they are polished
(burnished) and in the way they are tested. Many different manufacturers use
the same raw materials.
Manufacturers can make up for problems in manufacturing by ri~orous testing (resulting in high rejection rates).
However, when their disks are barely
passing double density tests, they are
not good candidates for quad density
service (or for long term double density
service for that matter).

Manufacturing Problems
It is difficult to manufacture a good
quality, high density disk. The thinner
the magnetic coating, the better the disk
records and keeps data. (The thinner the
coating, the less the magnetic flux from
one bit is able to spread out and effect an
adjoining bit-called flux migration.)
However, the thinner the coating, the
greater the chance of having a dropout (a
spot whether the media is missing or is
defective).
Iron oxide is the material that stores
the information, but iron oxide is very
hard and abrasive. Manufacturers add a
lubricant to the binder (the oxide particles are suspended in a binder), coat the
base material with the oxide and binder
and then they polish the surface of the
disk. Some disk surfaces are so smooth
that you can see your reflection in them,
others like Maxell, are rough and abrasive.

Testing
Disk manufacturers grade their disks
by testing them. The highest grade is
double sided quad density, the lowest
grade is single sided, single density.
Just because a disk is only tested on
one side (single sided) doesn't mean you
can't use both sides. They just haven't
checked the back side and they don't
guarantee that the back side will work.
Otherwise they are the same (single sided are polished on both sides just like the
double sided).
Just because a disk has passed a double density test, doesn't mean that it
wouldn't have passed a quad density
test (again it depends a lot on the basic
quality of the untested product).
We have had success formatting and
using some standard double density
disks in 96 tpi applications. When disks
work perfectly in quad density it means
they should work more than perfectly in
double density (at least that seems reasonable to me).

Enhance Your KAYPRO®
... CP/M 2.2E .
Enhances any version of CP 1M 2.2. Includes
FASTCOPY, improved TYPE command, PUBLIC
features, type-ahead buffer and more.

Plu*Perfect Writer
Enhancements for the Perfect Writer editor
(versions 1.03 and 1.20). Set swap file size, change
disks while editing, use keypad for one-touch
commands, etc.

The Backgrounder™
-with definable keys-

All keys fully definable in any program. Suspend any
program to print the screen, write background notes,
and use built-in CP1M commands. Now comes with
Print Spooler.

e

DateStamper

Software that automatically stamps a file with the
dates it was created, last read or modified. If your
Kaypro has a real-time clock, exact times will also
be recorded. Brings big computer file organization
to CPIM 2.2.
Includes utilities to:
• give directory showing when your files were
created, last read and modified.
• initialize disks for date and time stamping
• mass transfer date-tagged (and other) files.
Sophisticated display features.
I

Bring your Kaypro up-to-date! Only $39.
(Currently requires CP/M 2.2E.
General CP/M 2.2 version available soon.)

(Requires CP/M 2.2E to run.)

-----------------------------------K-1
K-2
K-3
K-6

Plu·Perfect Writer & CP/M 2.2E

$39
$45
CP/M 2.2E
$32
DateStamper
$39
Please check which Kaypro(s) you own:
Deduct $5 if ordering 2 or more disks
II D 2-84 D 2X D 4 D 4-84 D 10 D
Subtotal
10~84 D Robie D 4X D 12X D
California sales tax (6%)
Trademarks: Kaypro (Kaypro Corporationl. CP/M (Digital
Ship'ping & handling
(Orders outside N. America, $5 shipping per disk. ...._ _ _R.e.se.ar.ch.l.•p.er.fe.ct.W.ri.te.r(.pe.rf.ec.t.so.ft.w.ar.el,'
TOTAL
Any checks should be drawn on U.S. bank.)
~

See Your Dealer or Purchase Direct
Call or write for further information.

The Backgrounder

3.00

"'----------1 Plu·Perfect 5

BOX 1494 • IDYLLWILD. CA 92349 • 714-659-4432

34

Micro Cornucopia, Number 21, December-January 1985

DD Disks That Should Work in QD
The MAG MEDIA disks have been
amazingly good. We've tested over 500
of them, both double sided double density and single sided double density, and
they have all been absolutely solid despite continuous use.
I haven't tested any of the Dysan 5"
disks (I can't afford them) but they have
such an excellent reputation for reliability that I am comfortable recommending
them in any application. Dysan is really
the standard in the industry, both for
polishing and testing.
Maxell disks have a very good reputation for data reliability but they are abrasive. Tektronix stopped using them because drive heads were being chewed up
in less than a year. I cringe when someone sends me an article on a Maxell.
DD Disks That Won't Work in QD
Elephants don't work, period. Their
double density disks don't even work
well in the standard double density Kaypros. I understand from the rumor mill
that they are trying to upgrade their
product, but the word, so far, is that "Elephants always forget." (Try to remember that.)
DD BASFs don't work very well QD.
They usually format but the latest batch
we've gotten don't hold data very long in

quad density. BASF, of course, only
guarantees them to work double density
and they work pretty well in that mode.
Scotch disks might work all right.
They had some real problems with quality a year or so ago and I quit using them
then. I understand that they are better
now but I haven't tried any of the new
ones to verify this.
Finally
As far as the rest of the disks, try them
for yourself. We test double density 5"
disks by formatting them in quad density and then copying back and forth numerous times. Then we go back to double density and try to wear them out by
using them as masters for many, many
copies.
If you find some that work particularly
well, send in a short letter to the editor;
we'll pass the word along.

•••

LINK

YOUR
GANG
TOGETHER

Control up to 4 AC devices at
one dme with your Kaypro*
computer.
• Without tying up either your RS232 or Centronics Port
• 750011 Isolation between computer and controlled
devices
• No moving parts
• Simple plug in installation to your computer
• Requires no soldering or cutting In your Kaypro·
• Software examples In Basic and Z80 Assembly
Language
• Easy to create your own specialized programs

INCLUDES:
• Fully assembled and tested printed circuit board
• 5%" diskette with software examples and documentation
• plug In adapter and cable for the Kaypro· II and IV
(Ask about versions for Kaypro· 10 or Kaypro· 4/84)
ONLY 539.95 (plus $2.00 shipping &. handUng)
30 day Money Back Guarantee
Send checJc, money orders. or InqulrtesforTH£MASTtJt SWlTOt tol

ZIPPE SYSTEMS
6520 Selma Ave., Box 528
Los Angeles, California 90028
·Kolypro Is A trAdemArk of Kolypro CorporAdon

"CIBO . .. the best software buy in America!11
-MICROSYSTEMS
Other technically respected publications like Byte
and Dr. Dobb's have similar praise for The Software
Toolworks' $49.95 full featured 'C' compiler for CP/M®
and HDOS with:
•
•
•
•
•
•
•

1/0 redirection
command line expansion
executiontrace and profile
initializers
Macro-80 cornpatability
ROM able code
and much more!

"We bought and evaluated over $1500
worth of 'c' compilers . .. CIBO;s the one
we use."
- Dr. Bruce E. Wampler
Aspen Software
author of "Grammalik"

M'icro Cornucopia, Number 21, December-January 1985

In reviews published worldwide the amazing $49.95
C/SO from The Software Toolworks has consistently
scored at or near the top - even when compared with
compilers costing ten times as much!
The optional C/SO MATHPAK adds 32-bit floats and
longs to the C/80 3.0 compiler. Includes 1/0 and transcendental function library all for only $29.95!
C/80 is only one of 41 great programs each under
sixty bucks. Includes: LISP, Ratfor, assemblers and
over 30 other CP/M® and MSDOS programs.
For your free catalog contact:

CJhe Software Cfoolwork$'
15233 Ventura Blvd., Suite 1118,
Sherman Oaks, CA 91403 or call 818/986·4885 today!
CPIM is a registered trademark of Digital Research.

35

Three Keyboard Translators
Review By Philip Bond

In an effort to make my Kaypro easier
to use, I have tried several translation
programs which can redefine my keyboard characters. CONFIG, the freebie
distributed with the Kaypro, was useful
enough to convince me that keyboard
translators could be very handy.
(For more on using CONFIG, see ProFiles Magazine, Vol. 1 No.2 or Vol. 1 No.
4.) I might add that KSTROKES on Micro
C disk K24 was not available when I was
trying out the three commercial programs described below. I still do not
have a copy of KSTROKES, so I cannot
make a relative judgement. However, it
sounds like a good compromise between
CONFIG and one of the more expensive
commercial programs.
The three programs I will describe are
The Backgrounder, WORDPAD, and
XtraKey. Each cost between $40 and $50.
All three of these translation programs
do one job fairly well, and in about the
same way.
All the programs contain a translation
table ~nd a small amount of code which
accesses the table. The code and table are
moved up to the top of the available

27 Sharon Dr
Spring Valley NY 10977

removed to make room for an enhanced
TYPE function.
Because the BIOS is altered, any program which makes direct BIOS calls may
not work. Perhaps for this reason, a
number of old reliable" programs get
flaky under CP /M 2. 2E. Among these are
such programs as MODEM7, WordStar,
UNIFORM and PIP. The PPS manual also indicates that 2.2E will not work with
hardware modifications such as ROMs,
speedups, or graphics enhancements.
This incompatibility is the main reason I
am no longer using The Backgrounder.
Anyway, The Backgrounder does
much more than key translation. In the
background mode, it lets you run DIR,
ERA or TYPE while in the middle of a
program like PIP. You can also add other
modules such as a screen dump, note. pad (simple online editor for notes while
in another program). I did not install
these modules often, because of the erratic way WordStar worked when they
were in memory.
The Backgrounder is easy to use but
the setup is not for the casual operator.
1/

any. To remove the layouts entirely, you
have to RESET the computer.
The master diskette contains versions
for the model 10 as well as for 2 and 4.
You get a master layout called
WORDKEY. COM, sample layouts for
WordS tar and Perfect Writer (with a set
of key top labels), and SETKEY.COM.
You use SETKEY to create your own layouts.
XtraKey
XtraKey is the best translation program I've seen, and is the one I now use.
XtraKey by Xpert Software, is apparently compatible with all the CP/M programs I have, and according to the manufacturer it should work properly with
most hardware modifications (specifically 5MHz speedup kits, video attribute
and graphics kits, and the Micro C ProMonitor ROM). They thought a RAM
disk might have problems, depending
on how it was implemented. (However,
other key translation programs are likely
to have problems with a RAM disk, too,
so there is no real disadvantage here.)
XtraKey is also the only low cost pro-

~~_m~em~o~T~)whereilieyr_em~a_~~u_n_-~~W~O~R_D~P_~_D~~~~~~~~~~~~_gramI'vetr~dwhich~oomp~ili~with

molested by programs or warm boots.
When the operator hits a key that is
supposed to be translated, the program
gets the replacement character or characters from the table and substitutes them
for the keystroke.
The Backgrounder
The Backgrounder is a product of PluPerfect Systems (PPS), which also sells
the PluPerfect Writer enhancement for
Perfect Writer. The Backgrounder must
run under a special version of CP/M
written by PPS called CP/M 2.2E. Therein lies The Backgrounder's greatest
strength and weakness.
CP/M 2.2E is really a series of patches
to standard Kaypro CP/M 2.2" in the
CCP, BIOS, and BDOS. A complex (but
completely documented and prompted)
session copies your master CP/M disk
onto a blank disk, then patches CP/M
and certain utilities. Since some standard Kaypro utilities do not work correctly with 2.2E, new utilities are provided to
replace FORMAT, COPY, BAUD and
CONFIG. The replacement for CCP is
based on ZCPR, but with some functions

36

My next attempt to find the best low
priced translator program led me to
WORDPAD by Wordtech Systems. For
the capabilities, WORDPAD might seem
a little overprice~, but the concept i~
beautifully simple and it is virtually immune to hardware and software con£licts. The only problems I had were with
programs like UNIFORM and DDT,
which also relocate themselves into high
memory. Loading such programs can
lead to strange halts or runaways.
There are several potential limitations,
which may not be a problem for many
people. Only the keypad and cursor
keys may be programmed, but the keypad hyphen key is used as a shift so you
can define up to 35 strings. Each string is
limited to 15 characters and defined
strings can contain only those characters
which can be input from the keyboard. If
your application needs special characters (for instance, with bit 7 set) this program will not handle it.
Each keyboard layout is a small independent .COM file, occupying 2K on a
Kaypro 4. Calling up a layout displaces
the one which was previously in effect, if

machines other than Kaypro.-(Hear th-a--:-t-,~~~
Big Board users?) In addition to versions
for existing models of Kaypro, the master diskette contains a version for other
CP /M machines. If you order the universal version only, the price is $39.95. The
Kaypro version for $49.95 includes a
screen dump routine and a special keypad and cursor key translation routine.
(Editor's note: there is also supposed to
be a Big Board version that adds the
screen dump to the universal version for
$49.95.)
Strings of one or more bytes (any HEX
value) can be assigned to ANY key,
though it is easiest to use the keypad
keys. There is no theoretical limit to the
total number of bytes assigned to keys,
but the practical limit is dictated by the
amount of disk space and TPAyou want
to reserve for definitions.
XEDIT, the XtraKey editing program,
has certain limits for individual strings,
depending on how much memory you
have, but longer strings may be created
without XED IT. The layout can be created directly using an editor, or an existing
ASCII text file may become a long string.

Micro Cornucopia, Number 21, December-January 1985

Figure 1 - Translation Table
#

Keys may also be temporarily redefined
on the fly within any program.
Since the output from Kaypro keypad
keys is distinctive, those keys do not require any special prefix key to have an
assigned string sent to CP/M. If you are
going to redefine the keys on the main
keyboard, you must also define a special
"shift" key if you also want to be able to
use those keys to output their regular
characters. You must enter your special
shift key before a key will be translated.
For this reason, I suspect Kaypro users
will probably want to program keypad
keys almost exclusively.
Both the Kaypro and general versions
of XtraKey have some unique features.
You can turn your printer on and off
from within any program, you can clear
the screen, you can prevent certain characters from going to the screen (nulls, for
instance), and you can directly translate
all keys on the keyboard to a different
single character, with no shift key needed. This makes possible a complete keyboard rearrangement, such as the famed
DVORAK layout, for which a definition
file is included. Of course, you might
want to use this feature only to change a
few keys on the keyboard, which is possible by redefining only the keys you
want to move.

Backgrounder #

WORDPAD

I

XtraKey

1

================#===============#===============#===============#
Price (list)
#
$50.00
I
$40.00
# $39.95/$49.95 #
================#===============1===============1=====
==========#
Manual (pages) #
96
#
12
#
78
#
================#===============#===============#===============#
Define Keypad? '#
yes
#
yes
#
yes
#
================#===============#===============#===============#
Other Keys?
1
yes
I
no
#
yes
#
================#===============#===============#===============#
Shift keys
#
1
#
1
#
7
#
================#===============#===============#===============#
String length #
255
#
15
#
unlimited
#
================#===============1===============#=====
==========#
Extras? (*)
#
yes
#
no
#
yes
#
================#===============#===============#===============#
(*)

"Extras" refers to features not directly connected with
basic keyboard translation.

A POWERFUL 68000 DEVELOPMENT
ENVIRONMENT FOR YOUR Z80 SYSTEM
C01668 ATTACHED RESOURCE PROCESSOR

•
•
•
•

Summary
Figure 1 compares the three translation programs I have discussed. All three
are good values, with only a few flaws
here and there. Most differences are
probably a matter of personal opinion.
The price for The Backgrounder includes
the CP/M 2.2E enhancement package.
PluPerfect Systems
Box 1494
Idyllwild, CA 92349
Word tech Systems
PO Box 1747
Orinda, CA 94563
Xpert Software
8865 Polland Avenue
San Diego. CA 92123

•••
Micro Cornucopia, Number 21, December-January 1985

68000 Assembler
C Compiler
Forth
Fortran 77

•
•
•
•

6MHZ68000

CP/M-68K

Pascal
BASIC-PLUS
CBASIC
APL.68000

768KRAM

4 x 16081 MATH CO-PROCESSORS CPM80 RAM DISK
Develop exciting 68000 applications on your current Z80 based CPM system using
powerful mini-frame like 32 bit programming languages. And then, execute them at
speeds that will shame many $100K plus minicomputer systems.
The C01668 ATTACHED RESOURCE PROCESSOR offers a 280 CPM system owner a
very low cost and logical approach to 68000 development. You have already spent a
small fortune on 8 bit diskette drives, terminals, printers, cards cages, power
supplies, software, etc. The C01668 will allow you to enjoy the vastly more powerful
68000 processing environment, while preserving that investment.
C01668 ATTACHED RESOURCE PROCESSOR SPECIAL FEATURES:
• 68000 running at 6 Mhz
• 256K to 768K RAM (user partitioned between
CPU and RAM Disk usage)
• Up to four 16081 math co· processors
• Real time clock, 8 level interrupt controller
& proprietory I/O bus
• Available in tabletop cabinet
• Delivered wi sources, logics, & monolithic
program development software

• Easily installed on ANY 280 CPM system
• CPIM·68K and DRI's new UNIX V7 compatible
C complier (wi floating point math) - standard
feature
• Con be used as 768K CPM80 RAM Disk
• Optional Memory parity
• No programming or hardware design required
for installation
• Optional 12 month warrantee

• PRICES START AS LOW AS $899,00 for a C01668 with 256K RAM, CPM68K, C Complier, Sources,
Prints, 200 page User Manual, 280 Interface, and 68000 System Development Software.

For further information about this revolutionary product or our Intel 8086 Co-Processor, please send $1
(no checks please) or call:

/HSG/

Hallock Systems Company, Inc.
262 East Main Street
Frankfort, New York 13340
(315) 895-7426

RESELLER AND OEM
INQUIRIES INVITED.

37

Over 40% of all failures in transportable computers are caused by
mechanical failure of the floppy drives. Does not need any additional
equipment. You may test any Kaypro® portable as fast as you can
make an omelette.
BE SAFE!!
Our kit will help you keep your drives in top shape!
*48 TPI or 96TPI, Full or Half Size

SHEEPSHEAD SOFTWARE™
P.O. Box 486
Boonville, CA 95415
(707) 463-1833 • (707) 468-8717

38

Phone orders Mon.-Sat., 9 a.m. to 9
p.m., Pacific Coast Time. Check,
Money Order, MASTER/VISA Card or
C.O.D., add $2. Calif. add 6%, UPS
Blue Label add $5.

Micro Cornucopia, Number 20, October 1984

A NEW TWIST

NETWORKING

THE KAY PRO
FAT JACK
READING RACK

* SEE
COPY-SCREEN/KEYBOARD
AT THE SAME TIME.
* EASILY
ATIACHED TO
ANY KA YPRO'u
* FULLY
16" WIDE - AND STRONG
SUPPORTS - BOOKS
MAGAZINES. REPORTS
WITH UNIQUE PAGECLlP'u
Dealer and group inquiries invited.

ONLY $17.95 +S1.50ShiPPi·ng
(Continental U.S.A.)
Washington Residents Add $1.45 Sales Tax.
Cashier Checks & Money Orders Shipped Promptly.
(Personal Checks Must Clear - 2 Weeks.)
(Price & Configuration subject to change without notice.)

Since December 1983, Adevco has been shipping the
"WEB" networking system for Kaypro computers. We have
thousands of satisified users worldwide. Now Adevco introduces a new Kaypro local area network system that is 100%
compatible with the Web -

meet the LAN/ROVER!'"
SOME LAN/ROYER FEATURES:

- A complete. easy-to-install system. for any Kaypro model. including pre-configured software.
- Network can extend beyond 3000 feet without repeaters,
- Optimized for highest performance with Kaypro computers.
- Full security system with encoded passwords.
- Log on. run programs. save files to any disk drive on the network.
- Printout to any printer on the network from inside any applications
program.
- Low cost per computer.
Write or phone for more information or the name of the nearest dealer.
We will send article reprints describing an Adevco on-site installation of a 200 megabyte
network system using more than 20 Kaypro 10 computers. Full technical specs included.

j.~

The Best Accessory
You'll Ever Buy For Your
KayproTM

ADEVCOI INC.

ORDER FROM:

TWIST, INC.
P.o. Box 1406, Renton, WA 98057

3790 EI Camino Real. Suite 329 • Palo Alto, CA 94306 • (415) 493-7466
• Kaypro is a trademark of Kaypro CorporatIOn

JFN Industries' new AT-1 VIDEO ATTRIBUTE BOARD adds badly needed REVERSE VIDEO • REDUCED INTENSITY •
BLINKING. REVERSE SCREEN. and SCREEN-TO-PRINTER DUMP. The new GR-1 Graphics Upgrade adds Zenith Z-19
CELL SCREEN GRAPHICS and SCREEN DUMP CHARACTER TRANSLATION. Both install in minutes with no component
desoldering and are compatible with the Kaypro's existing hardware and software.
With the AT-1 installed, the video control codes are
compatible with those of the Kaypro 2, 3, and 10
models, the popular Televideo 925 terminal and the
IBM PC (Co Power 88). A patCh program is also
provided to automatically upgrade the standard
software that comes with the Kaypro to use these
new attributes.
The AT-1 comes ready to install, complete with
connectors; programs to upgrade the operating
system; demo, test, and configuration programs, plus
a detailed instruction booklet. The AT-1 and GR-1
package is only $179.95. The AT-1 alone is $149.95
and the GR-1 alone only $49.95. California residents
add appropriate sales tax. Order yours today.
DEALER INQUIRIES INVITED.

JFN

Industries

361 North Fuller Avenue, Los Angeles, California 90036
(213) 939-4105

Micro Cornucopia, Number 21, December-January 1985

39

The Kaypro Column
By Alan Barlow

So you've read the articles in Micro C
about adding extra drives and souping
up your CPU, and now you want to be
the first kid on your block with a S MHz
mill and double-sided quads growling
under the hood. Here is a summary of
the steps involved, including corrections, reader suggestions, and a few
ideas of my own.
While you're at it, you can also make
the drive select lamps do what they are
supposed to do-light up only when a
drive is (a) selected and (b) running.
The mods are independent. You can
speed up your CPU or add disk drives or
do both. To speed up an older Kaypro II
from 2.S MHz to S MHz will cut processing time in half-a remarkable improvement if you are recalculating spreadsheets, reformatting text files, or creating
a program. (See "Benchmarks" in Micro
C issue 19, p. 44.)
Disk Drives
The older Kaypro lIs came with two
full-height, Single-sided, double-density, 40-track, 191K drives. Track spacing
was 48 TPI (tracks per inch), so 40 tracks
would occupy S/6". There are three ways
to increase total disk capacity.
You could use double-sided drives,
which read and write both sides of each
disk, giving you a total of 80 tracks per
disk (40 on each side). This is the Kaypro
4 format.
Or, you could use 96 TPI drives (commonly called quad density). They pack
80 tracks per side into the same S/6" of
media, so a double-sided drive reads
and writes 160 tracks. (Kaypro 8)
Third, you can use half-height drives,
like the newer Kaypros. This allows you
to stuff up to four drives into your machine. If the drives are also half-power
models (most are), four will load your
existing power supply no more than the
two original drives.
Or you can do all three. If you plug in
four half-height, double-sided, 96 TPI
drives you get more than 3 Megabytes
total usable capacity (for about $S40 if
you purchase TEACs from Califo.rnia
Digital, see the back of BYTE). I replaced
just one of my Tandon drives with two
half-wides so I have three units in my
system.
You can do the speed-up and add the

40

692155th Ave. S
Seattle WA 98118

extra drives yourself. All you need is information, tools, parts, and a little skill.
Useful Back Issues
For background information, read the
following issues of Micro Cornucopia.
For the actual wiring, I suggest following
the steps below.
Issue 12, page 24: "The Kaypro Column" (the original speed-up article);
Issue lS, page 14: "Great Eight Kaypro" (converting your Kaypro II to a 4,
and the 4 to an 8);
Issue 18, page 3: Letter from Greg DeHoogh (2732 chip select), page 24: "The
Kaypro Column" (cutting traces and soldering on the speed-up), and page 26:
The "PRO-8 Plus-4" (MC's monitor
ROM and 4-drive decoder).
You should also get a copy of the Kaypro schematic from Micro C ($20.00).
In addition, a useful instruction booklet comes with Micro C's Pro-8 Monitor
ROM. More about the ROM later.
Not For Beginners
If a lot of monkeys on a lot of typewriters will eventually produce a "Hamlet,"
then it seems to follow that if you keep
hooking up wires and parts, you could
eventually wind up with a Cray 2. Sadly,
this could require a great deal of time.
Although no technical wizardry is involved' you should not make this your
first electronics project. Static electricity
that you can't even feel will ruin MaS
chips (the big ones). Excess heat from
soldering will lift traces (foil strips) and
make a hell of a mess to repair. Other
things can also go wrong go wrong.
(SIC)
You will need the right tools. A soldering gun and acid core solder won't do it.
You should have the following:
Recommended Tools
Soldering pencil: 15 to 25 watt, 3-wire
grounded (to kill static)
Solder: 22-guage rosin core (I insist on
Ersin Multicore)
Desoldering tool: spring-loaded Soldavac
Needle-nose pliers, 41!z" to 5", smoothjawed (to avoid nicking wire)
Diagonal cutters, semi-flush cutting,
41!z" to 5"

Wire stripper: for 30-guage wirewrap
wire
Stripper/crimping tool: for stripping
larger wire and crimping terminals
Allen wrentch: 7/64" for disk drive mtg
screws
Socket: 3/16" for serial connector mtg
screws
Exacto knife for cutting traces
Screwdrivers, miscellaneous hand tools
Electric drill for mtg holes for new
drives
Gooseneck lamp with magnifier
Speed-up
This is the easiest mod you can make.
You route the 2.SMHz and SMHz taps
from U86, pins 4 and S respectively, to a
toggle switch on the back panel. A third
line from the switch delivers the selected
clock signal back to the CPU board. The
switch is useful because a few programs
run best (or run only) at 2.SMHz.
You'll need a faster CPU chip, a Z80B,
in U63. The B means it will operate up to
6MHz.
You'll also need a faster Monitor
ROM, U47. The selection you make depends on your intentions regarding disk
drives. If you're sure you'll never be
adding extra drives, or replacing the
present ones with higher-capacity models, then you could scrimp by buying a
blank 2716 rated at 3S0 nanoseconds or
less, and having someone copy the code
from the original ROM into the faster
part. Or you could buy the Pro-Monitor
II from Micro C (it is a 2S0 ns 2732 which
is burned to look like a 2716).
However, if you plan to increase drive
capacity, either now or later, I recommend replacing U47 with Micro C's Pro8 ROM. It should satisfy all your present
and future requirements. It will run at
SMHz, and it will allow your CPU to access up to four S 1/4" drives, single- or
double-sided, 48 or 96 TPI, in any combination. In addition, it contains some fancy features. The Pro-8 plugs right into
the U47 socket; you'll merely have to cut
two traces and add two wires (see below).
Also pick up a small connector to wire
in-line between the switch and the CPU
board (so you won't have to unsolder
wires every time you decide to remove
the CPU board in the future).

Micro Cornucopia, Number 21, December-January 1985

Parts
1. Z80B CPU chip. Get a Zilog or Mostek part. Leave the chip in its anti-static
foam until ready to use!
2. A faster Monitor ROM for U47
3. SPDT (3-terminal) toggle switch
4. Three-terminal connector (male
and female pair)
5. 30-gauge wirewrap wire, to make
the changes under the CPU board
6. 20-gauge stranded, tinned hookup
wire, to connect between the CPU board
and toggle switch (get red, white, black,
and green if you plan to add extra drives
later. These are the colors used in the
drive power cable).
Procedure
Unplug your computer from 120 VAC.
Then decide where you want to mount
the toggle switch. The back panel is recommended, because you won't be using
it very often. (Also, if you try to shift
gears during operation, the logic will
hang up and you'll have to reset, losing
everything in memory.) A convenient
place is in a ventilation slot, near the reset switch. (I moved my reset switch up
front and mounted my toggle switch in
the hole it left.)
Remove 10 screws from the sides and
top and remove the cover.
Unplug the four connectors on the
board: Jl (video), J5 (power), J6 (drives),
and J7 (reset switch and LED). Be careful
not to bend the pins when removing the
disk drive ribbon cable. Use a large flattip screwdriver to gently pry up each end
of the connector, a little at a time.
On the back panel, use a 3/16" socket
to remove the mounting bolts from the
serial connector, J4. With a small phillips
head screwdriver remove the mounting
screws from the parallel connector, J2.
Two more screws on the back panel secure the CPU board. Two remaining
screws secure the board to the long spacers. After removing these two, put them
back into the spacers to keep them apart
from the others.
Remove the copper shield from the
bottom of the CPU board. After removing the two screws, put them back into
the brackets to keep them separated.
Glance at Figure 1 for a review of IC
pin-numbering. Counting always starts
at the notch. (On some ICs a dimple

marks pin 1.) When you're looking at the
component side of the board, the pins
are numbered counter-clockwise from
the notch.
Orientation
In the following directions let's assume you are holding the CPU board in
your hands like a book, looking at the
component side, with the keyboard connector upward. Locate the 20MHz crystal (in a silver-colored can) at the bottom
of the board, near the center. Directly
above the crystal is U67. Left of U67 is
U66. Right of U67 is U86. Between U67
and U86, and slightly upward, are blank
outlines for C6 and Ql (Kaypro decided
these two components were not necessary).
The C6 outline contains two platedthrough holes. The bottom hole (nearest
the edge of the board) makes a convenient tie-point for the switched clock signal returning to the board. Using your
soldering pencil and solder sucker (on
opposite sides of the board), open the
hole.
Run a 4" 20-gauge stranded wire from
this hole to the center pin of the female
in-line connector. From the center pin of
the male section, run a 12" wire of the
same color to the common terminal of
the toggle switch (usually the center terminal).
Temporarily remove U86 from its
socket (use a small, flat-head screwdriver at one end and carefully pry it out).
With your needle nose pliers bend pins 4
and 5 outward just enough so they won't
go into the socket when you replace the
chip. (We're talking about the bottom
row of pins, 4th and 5th from the left
end, viewed from the component side-right?) These are the 2.5MHz and
5MHz clock signals.
Solder 4" wires to these two pins and
run them to the two outside terminals of
the female connector. Now run two 12"
wires from the male connector to the two
remaining terminals of the toggle
switch.
NOTE: These are the only two IC pins
which you will have to bend out or solder to! All other wiring can be done quite
neatly (and out of sight) on the foil side.
Turn the board over and look at the foil
side. The keyboard connector is still up-

Micro Cornucopia, Number 21, December-January 1985

ward, as before. The disk drive ribbon
cable connector, J6, is now on your left.
Hints
When you cut a trace, use your exacto
knife and make two cuts a fraction of an
inch apart. Scrape away the foil in between. If you accidentally cut the wrong
trace, don't try to drop a blob of solder
between the broken ends. Instead, lay a
short piece of 30-gauge wire across the
break and tack-solder it to the foil.
Use the 30-gauge wire wrap wire to
add jumpers on the foil side of the board.
When adding a wire, strip little more
than 1/16" insulation from each end, to
avoid shorting to nearby terminals or
traces. To connect to an IC pin, make a Jshaped hook with your needle nosed pliers. To connect to a foil solder pad, lay
the wire flat and tack-solder to the pad.
Don't ever keep the iron on any trace,
solder pad, or IC pin more than 5 seconds MAXIMUM. With good solder and
clean, shiny surfaces you shouldn't need
more than 2-3 seconds to do the job. Too
much heat for too long will lift traces.
Remember-on the foil side, IC
notches are on your right, and pins are
numbered clockwise. U66-4 means pin 4
ofU66.
Cut trace from U66-4 to solder pad
near bottom end of C65.
Add wire from U66-3 to the previous
solder pad.
Cut trace from U66-5 to solder pad below U49-2.
Add wire from U66-4 to the previous
solder pad.
If you are replacing your 2716 Monitor
ROM (U47) with a 2732 (like the Pro-8),
then perform the following steps:
Cut trace from U59-2 to U60-1 (address line AllB).
Cut trace from U47-21 to U47-24-.
Add wire from U59-2 to U47-21 (address line AllB).
Add wire from U60-1 to U60-8
(ground).
That's all the wiring for the speed-up.
Now replace the Z80 CPU (U63) with the
Z80J3, and the 2716 Monitor ROM (U47)
with the faster part-either the faster
2716 which you had burned with the old
code, or the Pro-8 2732.
(continued next page)

41

KA YPRO COLUMN (continued) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

Caution
Before handling the CPU or ROM
chips, always discharge yourself by
touching"some bare metal on your machine. This puts you and your Kaypro at
the same potential and helps prevent
zapping gates on the MaS wafer (you
need good eyes and tiny tools to repair a
gate). All the larger chips (and memory)
are MOS. Be especially careful in low humidity. Assembly line workers keep
themselves grounded with a wrist strap
to the chassis of whatever they are workingon.
More Disk Drives
I bought two Mitsubishi M4853s for
only $175 each. They are half-height,
half-power, double-sided, quad density
(784K each), with DC brushless, directdrive motors. They claim track-to-track
access time of only 3ms. When these little hummers go out looking for data,
they really rip-snort! The only complaint
I have so far is that the disk does not always eject when I pop the door open. I
just pull the upper latch down part way
and let it snap up a second time.
Adding Extra Drives Requires The
Following:
1. Drilling holes in the bracket and
physically mounting the new drives
2. Installing address jumpers on all
drives and terminators on the last drive
3. Adding connectors onto the ribbon
cable for data and control lines
4. Extending the drive power cable
and adding connectors
5. Installing a new Monitor ROM,
such as the Pro-8 (the original 2716 can
address only two single-sided, 48 TPI
drives)
6. Adding a four drive decoder on or
nE~ar the CPU board (the existing hardware can address only two drives)
7. Modifying your CP1M to a 63K system
Parts
1. The drives themselves
2. One 34-pin edge connector for each
drive. (Examples: Ansley #609-3415Mi
Alpha #FCC-170-34i 3M #3463-0001.) If
you add both connectors now, you can
easily add up to four drives later. (For
TEAC drives, see note in Micro C issue
17, p. 19.)

42

3. One 4-pin power connector for each
new drive, AMP 1-480424-0. You also
need pins, AMP 60619-1, four per connector. (The Mitsi's come with a connector and pins.) Get four extra pins, for
daisy-chaining the wires (explained later).
4. One 3/16" (.188") female push-on
connector for each new drive, for the
ground wire (AMP 60972-1). Get one extra for daisy-chaining.
5. A new Monitor ROM to replace the
2716 in U47. See discussion under
Speed-Up Parts, above. Recommended:
Micro C's Pro-8.
6. One 74S04 to replace the 74LS04 in
U73
7. 20-gauge and 30-gauge wire (see
Speed-Up Parts)
8. Socket-head screws, 6-32 X 3/8",
and flat washers. Four each to mount
new drives.
9. Four-drive decoder. You can buy
Micro C's Plus-4 Decoder Board or you
can buy a 7445 chip and a 16-pin socket
and make your own.
Procedure
Unplug your computer from 120 VAC.
Decide how you want to configure your
drives. I made my Mitsi's A: and B:, and
my remaining original Tandon C:. This
gives me room for all of my most-used
programs on A:, lots of data storage on
B:, and C: for backup. With A: and B: the
same type, I can use fast COpy programs. However, I can no longer use my
original version of UNIFORM, which
was written for a single-sided, 48 TPI
drive in B:. (A number of folks used Kaypro 4 drives in A and B and quad density
drives in C and D so they can continue to
run everything.)
Remove the CPU board. (Pretty soon
you'll be able to do this in your sleep.)
Remove the ribbon cable from the
drives.
Unplug the power cable from the
drives. On the Tandons, it'll be as tight
as a barnacle on a rock. Grab the connector by its little ears and rock it downward.
Remove the socket-head screws. Pull
the drives out the front.
On the bottom of the computer remove the four screws that secure the
drive mounting bracket. Note that the

bracket goes in only one way; keep this
in mind when you measure and drill the
new mounting holes. If there is a possibility of running four drives in the future, you may as well drill all the holes
now. I had to notch my front diagonal
brace to get one of the screws to fit.
See Figure 2 for mounting hole pattern. The Mitsi drives seem to be a hair
wider than the Tandons. They wouldn't
quite squeeze into the top of my mounting bracket, so I simply put the Tandon
on top and the two Mitsi's on the bottom.
Be sure to remove all burrs and filings
after drilling. (Disk drives are noisy
enough as it is.)

Jumpers
Install the address jumpers in your
drives according to the instructions that
came with them. In your Tandon 100-ls,
you have to cut out the jumpers you
don't want. Locate the DIP (Dual In-line
Package) with the jumpers, near the
edge connector. Leave the first jumper
(nearest the edge of the board) intact.
The second jumper intact = A:; the third
jumper intact = B:; etc. If you want your
Tandon to be named C:, then you should
have the first and fourth jumpers intact;
no others. (You may have to bridge a
previously cut jumper to set the address
you want.)
Some manufacturers specify drive selection as DSO, DS1, DS2, DS3; this is
equivalent to the Kaypro's A:, B:, C:, D:.
You have other jumper choices to
make. The Mitsubishi drives, for example, have a head-loading solenoid. The
heads load (contact the disk) only when
the solenoid is energized. If you install a
jumper in position HM (not HS), the
heads will load whenever the motor
runs, and unload when the motor stops.
This is normal operation.
Terminators
The drive you decide to install at the
bottom (farthest down the ribbon cable
from the CPU board) must have terminators installed. No other drive should
have them. Most new drives come with
terminators installed-remove them
from all but the last drive.

Micro Cornucopia, Number 21, December-January 1985

My Tandon terminators are contained
in a single blue-colored DIP. The Mitsi's
use a soldered-in DIP terminator, with 7
individual plug-in jumpers right next to
it. To disconnect the terminators, simply
remove the jumpers.
Data/Control
To install your newly purchased 34pin connector onto the ribbon cable, pull
off the back and then press the back and
front together with the cable in between.
You can take your ribbon cable into the
shop and have them do it with their special crimping tool, or you can do it yourself with a small vise. Be sure to align the
connector carefully with the wires in the
cable. The hardest part is getting the
connector separated. It takes two people-one to probe with a small, pointy
tool in the latch holes, and another to
cuss (or discuss).
Power
Note the double wires in the power
connector for your uppermost existing
drive. To daisy-chain power to your new
drives, remove the last connector (with
single wires), discard the pins, and install new pins with two wires crimped in
each.
Be sure to get the right wires to the
right pins. When you copy the existing
wiring, note that the connector is keyed
to mate only one way.
Daisy-chain the green ground wire in
the same way. Cut off the last push-on
connector and install a new one with two
wires crimped in it.
Circuit Board Wiring
Side Select: Locate the pad labeled E40
(on the component side, it's at right of
U73). Now flip the board over to the foil
side.
Cut trace from U73-5 to ground bus.
Add wire from U73-5 to solder pad E40
(Side Select). Add wire from U73-6 to J632.
NOTE: J6 pins are even-numbered
from bottom to top on the inside column.
(Labeling is on component side.) J6-32,
therefore, is the second pin from the top,
inside column.
See directions under Speed-Up for installing a 2732 Monitor ROM. If you
haven't done it, do it now.

Add wire from U75-12 to U75-8
(Ground)
Add wire from U75-1 to J6-6 (Select D)
Add wire from U75-2 to J6-12 (Select
B)
Add wire from U75-3 to J6-10 (Select

Now you need to add a four-drive decoder. If you've bought one from Micro
C, follow the instructions and install it.
If you're rolling your own decoder,
this is your big chance to make the drive
select lamps behave the way they always
should have.
Locate the blank DIP outline labeled
U75, near J6. It's made to order for this
application.
Use your solder sucker to clean out the
16 holes. Install a 16-pin socket, orienting the notch like all the other ICs. Solder pins 5,6, 7,9, 10, 11 and 16 to hold it
in place. Wire it according to Figure 3
and the following table:

A)

Add wire from U75-4 to J6-14 (Select
C)

If you have already installed the Micro
C decoder board, you can still make the
drive select lamp modification. Simply
remove the ground from pin 13 of the
7445 on the decoder board, and wire it
instead to pin 16 of the ribbon cable connector. This will duplicate the circuit in
Figure 3.
Plug the 7445 into U75. Replace U73
with the 74504. Install your new Monitor
ROM in U47, ifyou didn't do so already
in the speed-up mod.
Put it all back together, and connect
the power, ground and data cables to the
drives. Don't forget the copper shield
under the CPU board (copper side away
from the board).
Read the instructions with your Pro-8
Monitor ROM for creating a 63K CP 1M.
Plug it in, turn it on and stand back!

Wiring Table
Cut trace from U71-6 to J6-12 (Old
Drive B Select)
Cut trace from U71-8 to J6-10 (Old'
Drive A Select)
Add wire from U71-6 to U75-14 (Drive
Decode 0)
Add wire from U71-8 to U75-15 (Drive
Decode 1)
Add wire from U81-2 to U75-13 (Motor
On)
Figure 1 - Pin Numbering On IC
8

9

10

II

12

13

14

7

6

~

4

3

2

I

r: :,:p;: :]

•••

Foil Side
16

I~

14

13

12

II

10

2

4

3

~

6

7

I~

,6

14

9

[ : :6-~'N:IC: : : I
I

,8
U71

U75

U71
13

U81

f

8

Component Side
Side View Of Drive Mounting Bracket

r

:

:

I

I

I

I

~---------~--

-<;>- - - - - - - - - - ,(,- - I
I

tl~"~

:
I

:

~~---- 4 re"---~>I

Micro Cornucopia, Number 21, December-January 1985

2

12 SELECT B

3

10, SELECT A

II

6

SELECT D

I

--

-t-------- --1---- -- --1-

'RONT 0'
COMPUTER

14 SELECT C

.-

-:----------t--- ------1
I

J6
14

7445

M'Tif"ON

,2

I

JV

I

--t

51~6"

Figure 3 - Four-Drive
Decoder With
MOTOR ON Monitor

4j!4"

I

"i}

o/e"

_:..k

"'6"

1

2

\

Figure 2 - Dimentions For
Half-Height Drives

43

Create graphics masterpieces with •••

(;.~mfranJt

Complete Business Graphics ToolkifM
NEED GRAPHICS? You don't need a new computer. You need REMBRANDT. The software
package that unleashes all the graphics power built into your Kaypro Computer.
Until now, accessing Kaypro graphics required advanced programming efforts. Now the
REMBRANDT Business Graphics Toolkit gives you three easy-to-use tools that allow even the
most inexperienced user to quickly master Kaypro graphics.
K6RAPH™ enables quick and easy creation of business
KBOARD™ is the full-screen graphics editor for your
graphics including horizontal and vertical bar charts, pie
Kaypro computer. create graphic screens, save and recall
charts and xy plots (scatter-graphs) - KGRAPH uses hand
them to and from disk. Layout forms, design logos, draw
entered data or reads numerical data from just about any
pictures. It's easy and fun to usel
source including dBase II, spreadsheet, Mbasic and
Wordstar files.
KBRIEFTM produces electronic on-screen "slide shows" with absolutely
no programming requiredl KGRAPH and KBOARD files are
easily sequenced using nine special effectsl

REMBRANDT is complete with printer routines so graphics can be reproduced on virtually every
dot-matrix or daisy-wheel printer.
REMBRANDT, the Complete Business Graphics Toolkit costs just $79.95..
A demonstration disk Is just $5.00 applicable to the purchase price.
See your Kaypro dealer for a demonstration.
For Kaypro 2-84, 2X, 4-84, 4E, 4X, 10, 12X and Roble.

Make your KAYPRO computer IBM-PC compatible
for $Z9.95I
READ, WRITE and FORMAT more than Z5 diNerent
types of disks lincluding IBM PC-DOS/M5-DOSJ with

JUt~M

y

Are you tired of trying to find your favorite software package in Kaypro format? Would you like to use your
Kaypro generated Wordstar flies, dBase II data and spreadsheet files on the IBM-PC at work land vice-versa)?
Do you want to trade public domain software with a friend who owns an Osborne?
MEDIA MASTER gives your Kaypro Instant access to program and data files in over 25 disk formats Including:
Osborne SO & DO
IBM PC-DOS 1.0 & up
IBM PC-DOS 2.0 & up
IBM CP/M-86
Morrow MD2
Systelll

lNW-80
TRS-80 with Omikron CP/M
ms-ao III w/Memory Merchant
TRS-80 IV with CP/M+
Heath Z100
Heath w/Magnolia CP/M

Cromemco w/lnt'l Term
Cromemco COOS SSDD
Cromemco COOS SSSD
TI Professional CP/M-86
Actrix
lobo Max-80

Xerox 820 I SO
Xerox 820 II DO
Zenith Z90
DEC VT180
NEC PC-8001A
Kaypro II

Now available for Kaypro 2 land III: All other models soon 1
ORDERING INFORMATION:

~
~

r-~

Include S3 per order for postage/handling. Overseas airmail add SIO.
California residents add 6% tax ILA County, add 6.5%).
To place COD or credit card orders,

•.• •

Call TOll FREE 24 hours:

800-824·7888 ,Ask for Operator 4071
Alaska, Hawaii: 800-824-7919 'Ask for Operator 4071
Technical questions: call (818) 716-1655

n== . -.c:..--.c===--==:?:.?..c
:" : --=-

For more Information, a free brochure (Including sample printouts and reviews), or to order, contact:
-

-

- . . . . . : aM

_

_

_-

23145 Bigler Street
Woodland Hills, CA 91364

All programs also available for OSBORNE and DEC RAINBOW computers. Dealer inquiries invited.

44

Micro Cornucopia, Number 21, December-January 1985

...------INTRODUCING - - -..............--...

IiL

EE/EPROM PROGRAMMERS & UV ERASERS

AV:RrBLE PAL PROGRAMMERS

IiL

THE CYPHER

TM
. .

A COMPLETE 68000 & Z 80
SINGLE BOARD COMPUTER SYSTEM
WITH ULTRA-HIGH-RES GRAPHICS!!

See us at COMDEX SPRIN
UV ERASERS
QUV-TB/1

$49.95
·HOBBY

QUV-TB/2N

$68.95

·INDUSTRIAL
QUV-TB/2T

$97.50

·WITH TIMER

& SAFETY SWITCH

GANGPRO-8'·

$995.00

(GANG
PROGRAMMER)

~,

,,,#'r:l

.68000 & Z80 DUAL PROCESSORS (BEST OF BOTH
WORLDS').
.256K TO 1 MEGABYTE MEMORY.
• DOUBLE DENSITY FLOPPY DISK CONTROLER (8" OR
5V.", WD 2793)
• DMA CONTROLLER FOR FAST IMAGE TRANSFERS TOI
FROM VIDEO MEMORY. (INT 8237)
.2 RS232 SERIAL PORTS (ZSIO).
• 24 BIT ADDRESS MANAGEMENT FOR Z80.
.4 LAYER P.C.B. (9V. X 14 3/.")
• RUNS Cp·M·80 AND CP-M·68K

Add Shipping

Money Back Guarantee

RS-232 serial, STAND ALONE, INTELLIGENT
·EASY DUPLICATION ·USER FRIENDLY "128K BUFFER

SUPPORTS: MOST 8K, 16K, 32K, 64K, 128K, 256K EPROMS
PROMPRO-8: KEY PAD OPTION, EPROM SIMULATION MODE
Microcomputer Chips: 8748 (H), 8749H, 8750, 8751,8741,8742, 8755A
SOFTWARE DRIVERS: MDS ISIS, TEKTRONICS 8002, IBM PC, ATARI,
APPLE II, CPM, FLEX, TRS-80
DIRECT HOOK UP TO ANY DUMB TERMINAL OR COMPUTER.

AFFORDABLE

(80286 CPU AND HARD DISC INTERFACE PLUG·IN CARD AVAILABLE SOONI)
MANUAL ............................................ 5
20.00
BARE BOARD EPROMS Z80 BIOS 68000 BIOS Z80 MONITOR
68000 MONITOR AND UTILITIES : ............. : .... 5 399.95
BASIC ASSEMBLED SYSTEM TESTED WITH 68000/Z80.
SERIAL 110. 128K DRAM. 4K S RAM AND DISK CONTROLLER
.. ............................... .. .. 51,099.95

* RELIABLE * AVAILABLE
1-800- EE1- PROM

DISTRIBUTOR INQUIRY WELCOME.

-=-

TO ORDER

-

LOGICAL DEVICES INC.

.

1321 N.W.65 Place, Ft Lauderdale, FL33309 For Info: (305) 974-0967

POWER SUPPLY
- + SV @ 4A + OVP. 24 V (jj; 2.SA. :t 12V
- All supplies have over-current protection
• Bell circuit and Piezo speaker for BB
- Low line warning circuit • brown out
-Input 10S-120 VAC So/6o Hz @ 1.0 A
- 4.S"H. 3.8"0. 11"L - Sib.

@

COMPLETELY ASSEMBLED "CYPHER" WITH 256K DRAM.
128K VIDEO DRAM. NEC 7220. REAL TIME CLOCK. ND DIA
DISC CONTROLLER, SERIAL 110 ................... 51,499.95
KEYBOARD ........................
.. .... 5
94.95
SWITCHING POWER SUPPLY. .
. ..... 5 154.95
CASE....
.. .. ... . $
94.95

MOTOROLA
ALL PRICES ARE IN U.S. DOLLARS

~~:~~~~!~C~~~~~E~xP~~~X:;~:L~~E;~~DED

WEEKS AFTER WE RECEIVE YOUR ORDER VISA. MC..

CAS~RICES SUBJECT TO CHANGE WITHOUT NOTICE.

•

CP-M IS A TRADEMARK OF DIGITAL RESEARCH

S29
S59
S79

.2A

KIT .rtnaul
WO 2795

COMPATIBLE WITH
ANT COMPJTER

WO

USING WO 1771
ONLTS100S&H

2195

DISK DRIVE

("h eer :

KIT .,1n
DRAWINGS

LINTEL

AMP
CONNECTORS
FOR YOUR

DAUGHTER BOARD FOR THE W02795 OS DO CONTROLLER

PLUS S5
S&H

I.

MOTEL COMPUTERS LIMITED
174 BETTY ANN DRIVE, WILLOWDALE,
TORONTO, ONTARIO, CANADA M2N 1 X6
(416) 221-2340

DOUBLE DENSITY HARDWARE

$110

For the BIG BOARD and other SBC's
Assembled. tested and burned-in 48 hours

• ULTRA HIGH RESOLUTION GRAPHICS. 128K,
PROGRAMMABLE UP TO 1024 X 1024 RESOLUTION
(NEC 7220, GREAT FOR CAD SYSTEMS') .
• REAL TIME CLOCK (MULTITASKING CAPABILITYl)
• TWO CHANNELS OF DIA AND NO, 12 BIT
RESOLUTION (MUSIC! ROBOTICS').
.16K TO 64K MONITOR EPROM
.4K TO 64K STATIC RAM .
• PROGRAMMABLE BAUD RATE GENERATOR.
• PARALLEL ASCII KEYBOARD INPUT
• ~~~~~~~g~ EXPANSION BUS (60 PIN HEADER,

KIT OF Z EACH
WITH PINS

AT LAST! DO SOFTWARE 525

$5

SOLD WITH KIT ONLY

BIG BOARD

f.c~~
\~~

lilEBig Mouth

Plus S1 S & H

a~~~fi..·c:.
~~~
s

The" LA CAJA" Enclosure w/Power Supply

$299

CALL MORNINGS
FOR DEMO

STANDARD FEATURES INCLUDE
• Power Supply
5V (f.i. 4A + OVP. 24V (f.i. 2.5A. ± 12V (jt .2A
IN STOCK!
All voltages are current protected
• Reset Switch
• Fan
• Key-lock Power
• Solid State AC Rela,!.y......IIfIIII• • • • •
• Bell Circuit and Piezo Speaker
• 2 AC Outlets. One Switched
• Color. Beige and Chocolate
.6" H x 12" W x 16" 0 24"W for 2 Drive Unit

LISTEN! Your computer could be talking to you through the BIG MOUTH
from ASTROTRONICS. True speech synthesis for ANY computer Ihrough
your printer port. (parallel or serial). Using our BIG MOUTH speech
synthesizer with its Z80 CPU and SSI·263 third generalion phonetin
speech synthesizer.
Text to speech
Will run on any comouter

No software required
400 character buffer

Embed phonemes in text for those special words that don't fit the rules. names
foreign words etc.
Programmable: vocal·tract frequency. intlection rate, duration pitch. articluation
amplitude ... for all 64 phonemes
Can be programmed 10 make sound eHects and can even be programmed it to
SING!

PCB. & EPROM with Instruction
Complete PCB Kn wnh Instruction
Complete Kit Including Case Speaker & Power Supply
Completed Unit A & T

559
5129
5159
$199

+ 51
+ 53
+ 53

+ 55

S&H
S& H
S& H
S& H

Coming next month a 56K smart Printer Buffer, order your own 'son of a buffer'
Kit for only $99 plus + $3 S & H

;11 AstroTronics

U'1b

PLUS S20
S& H

\lICROSYSTE\fS

Micro Cornucopia, Number 21, December-January 1985

., La Cala" can be supplied fully wired for the Big Board
With all ports disk DC and timed AC for $150.00

NAKED! Yes now you can buy the LA CAJA stripped for only
fans, line fliers, etc. available. $15 S & H.

$119

California residents add 6% tax on all items

(714) 734-6006

.

.

1137 TOPAZ ST
CORONA, CA 91720

45

WHAT IF
THE TORTOISE COULD
ALWAYS BEAT THE ,HARE
ELECTRONIC RAM DISK
fired of spending so much of your computer time waiting for
)rograms to load. compile. recalc or sort? Check these time
:omparisonsll! Now a lowly Kaypro II or 4 running at 2.5mhz
alias Tortoise) can even out run a 4 mhz Kaypro 10 with
Winchester Hard Disk (alias Hare),
'Benchmark test data (see below)
(ou'll find SUPERSPEED for all disk access
Lction with this multiprocessing Electronic
tAM Disk. Comes with memory space
Iser selectable from 256K to 1 mb; has
lual centronics connectors; optional
:xternal power supply design. This RAM
lisk can be configured as drive A or Dj runs
It 6mhzj operates as printer buffer while
imultaneously storing and retrieving data to
he RAM. This add-on will be a real time
aving asset to your Kaypro 2. 4, 2-84. 4-84
jocketed without RAM chips •••••••••• $199.00
\.ssembled & Tested 256K. 512K. 1mb
•• ~ •.•••• ; • . • • • • • • .• $CALL for current price
JS Add $5.00 shipping
nternational Add $15 shipping

?

•

TLC@ LOGO is also available for all Kaypros with internal graphics
(2,84. 4-84. 10). No modifications required. This
Standard Version uses the internal screen, has
16.000 pixel resolution, multiple turtles, multiprocessing. vectors and many LISP commands ••. $99.95
COMPOSITE VIDEO GENERATOR -Allows connection of a "
Standard Composite Monitor. An absolute necessity for those who
,
need a larger screen or bigger characters. ,
Kaypro II, 4 - $59.95
Kaypro 2-84.4-84. 10 - $89.95*
*Includes a new character set which
generates a character'cell size readable bya,
:
standard composite monitor. All graphics included.,
, COLOR GRAPHICS SYSTEM FOR KA YPRO ,
COLOR BOARD - for Kaypro II, 4, 2-84. 4-84, 10
& Robie. 256xl92 Pixel resolution, 16 colors; 32
sprites. Software includes three editors. drivers. screen"
dump to printer and disk. six-month subcription to
Micro Cornucopia. Generates standard composite
color. RF modulator is required for color TV
operation. Plug in installation. " .$245.00

w

COLOR BOARD SOFtWARE - TLC LOGO
featuring multiple turtles. multiprocessing mode~ fast,
easy to use and easy to learn. This is the graphics
the schools rave about. There are m~yJac.~~,

, ,', '," "toTI..qLOG()incl\ldillgLl~l,)commilnds. $129.95;:

;SPECIAL!! Coio~B~a~d;~d ri~1~x~V~rsi~~'~fL.6GO :"~-:-$299.95f
INSTANT GRAPHER 2.oi"allows bar cnitrtS,itacked barcnaits"aiid",

Time in Seconds
2.5 MlU Kavpro
Floppy Disk RamDUk

4 MlUKavpro

4 MlU Kaypro 10

Floppy Disk RamDl.k Winchester Hard Disk

Load
Perfect Writer

8.37

2.46

7.64

1.76,

6.57

Load
Perfect Calc

10.35

3.16

9.#

1.87

7.19

3:33.26

10.48.00

1:51.08

6:20.37

10:19.00

2:27.36

9.31.25

1:17.78

5:30.53

25.24

8.01

22.49

4.32

17.55

10.90

3.3l

9.38

2.12

6.60

load
12:04.01
Perfect Calc + 14KFile
Recale 14K PC File
, Pagedown
PC File

Load
LAOORR.CQM

line graphs. Accepts up to 24x24 arrays or 180 points per plot. Reads
numbers directly from Perfect Calc, CalcStar or other standard disk print
files. Screen dump to printer program on color board disk also works
... $50.00
SUPPLY STORE SPECIALS;
ECHO LIFETIME WARRANTY DISKETTES
10 Echo Disks w!Box
SSDD
10 Echo Disks wlBox
DSDD
SPECIAL SALE!!!!!
100 GENERIC DISKS
,DSDD
$150.00/100 w/sleeves

41\.1

(

"

WARM BOOT

2.82

.64

2.22

.46

2.69

Load
MBASIC

5.79

1.64

5.43

1.12

2.55

INFOCOM ADVENTURE GAMES
(Kaypro format)
,
lORI< 1; ZORI< II. or lORI< III
$45.00 ea.
,STAR CROSS
$45.00 ea.
SEASTALKER (beginner ages 9 51. up)
, $45.00ea;
$55.00 ea.
$55.00 ea.
$55.00ea.
,PLANETFALL
$55.00 ea.

" >,,'

As you can easily see even a 2.5 mhz Kaypro with RAM disk is faster
than a Kaypro 10 using a hard disk. A 4 mm KaYl'ro with RAM disk
is significantly faster.

$20.00/oox
$24.00/OOx

MicroSphere; I~c.
POBox 1221
Bend, Oregon 97709
503..388-1194
9 ..5 Pacific',Tune

KAMAS, An Outline Processor
Review By Jack Rodenhi

I have long been intrigued with the
slightly mystical appearance of mind
amplification ads, so at SaG III, I attended the KAMAS lecture. After hearing a
straightforward talk by Adam Trent and
his associate, Anne Hickman, I offered
to do a review on KAMAS for Micro C.
KAMAS Programming Language
One cannot review the KAMAS program without first discussing the KAMAS programming language.
A fully developed application development environment, the KAMAS language has some interesting variable
types, several good control structures,
and runs interpreted code quickly. But it
is complex.
A detailed review of this language
would require a whole series of articles.
Compusophic Systems, developers of
KAMAS, publish a newsletter that goes
into considerable depth on this FORTHlike language. The language is also thoroughly covered in the two manuals that
come with the program.
Also included in the package is a small
book which serves as an introduction to
outline processing, the major function of
KAMAS.
Outline Processing
Outline processors, which have recently become quite popular, basically
help you create or work from an outline.
So what should the computer user expect from the KAMAS outline processor? It has a pretty decent text editor with
commands similar to those of Perfect
Writer. You can enter and edit text from
the one or two line descriptions KAMAS
uses for keys (for leaves, branches, and
stems of the outline).
KAMAS helps you create an outline in
two ways. First, it allows the outline to
be compressed or expanded so you can
zoom in for detail on a leaf or particular
branch or back off to view the entire tree.
Second, KAMAS lets you reorganize
the outline any way you wish. I believe
this is the most important thing an outline processor can do. Word processors
allow reorganization, but outline processors go even farther by letting units of
text be linked together logically.

1317 W. College Ave.
Lompoc CA 93436

The Bottom Line
So how did I like KAMAS? On the
negative side, the flexibility and full
blown language capabilities that KAMAS includes have been achieved at the
cost of simplicity. You could spend a lot
of time exploring parts of the package
you won't really use.
On the other hand, if I spent as much
time working with KAMAS as I do with
Wordstar, I would feel very comfortable
with its complexity, I'm sure. KAMAS
has an excellent on-line help facility, and
the best way to learn any program is to
use it.
Another thing I didn't particularly like
about the program was that the delete
key is not handled consistently within
the program. Within the outline editor,
the delete key will back up and delete
one character from the entered text. At
the ROVE prompt, however, the delete
key echoes the deleted key and the backspqce key has the desired backup and

delete effect.
Owners of Kaypro lOs may not be jubilant with KAMAS. On my Kaypro 4, I
get excellent scrolling speed, but my 10
reads a little data and prints it and reads
a little more and prints it and so on. It
only prints about four lines per second,
whereas my 4 probably prints a screenful
a second. When I asked Adam about
this, he was at a loss to explain it. I suspect that the KAMAS files are spread
around on my hard disk and the head is
spending a lot of time seeking records.
This inconvenience could be solved by
unloading some of the clutter before
loading KAMAS.
Other than these problems, I found
the program dependable, and if you feel
that an outline processor would help you
in your work, you might want to give
KAMAS a hard look.

•••

Knowledge And Mind Amplification System.
A unique blend of familiar productivity tools with dynamic new ones:
Outline Processing lets you organize your ideas in a familiar outline form.
o Infonnation Retrieval keeps your thoughts at your fingertips with astonishing speed.
o Word Processing fills out the structure of your ideas with text.
o Telecommunications lets you set up a structured, electronic bulletin board.
o Programming Environment lets you get under the hood and extend your horizons.

o

It all adds up to awesome Knowledge Processing power. Your chance to join the next
wave of the integrated software revolution.
Available for CP1M, Z80 systems. Special introductory offer: $147. Send now for your free
copy of The KAMAS Report.

COMPUSOPHIC
SYSTEMS

Dept. 112 • 2525 SW 224th Ave.
Aloha. Oregon 97006 • (503) 649-3765

KAMAS is a trademark of Compusophic Systems. CP1M is a registered trademark of Digital Research, Inc. 280 is a registered trademark of Zilog, Inc.

Micro Cornucopia, Number 21, December-January 1985

47

FORTHwords
By Arne A. Henden

EON magazine is one of those engineer's freebies that I recommend getting. About once a month, EON publishes a feature article on some aspect of
microcomputers, such as floppy disk
drives, laser printers, etc. The July 26,
1984, issue covered pointing devices
(joysticks, mouses, etc.). I thoughtit was
a very succinct review and I learned a lot
about what pointer I want in my next
computer.
Back At The Ranch
I bet you are wondering what all this
has to do with FORTH! The above article
mentioned that Microtouch Systems,
Inc. produces a continuously conductive
touch panel that uses the Rockwell 65Fll
FORTH chip for its control. Many of
these pointing devices are becoming
"smart," and the use of FORTH as a controller sounds like a good marriage.
Big Board II Graphics
I've always felt that BBII owners have
gotten shortchanged. Since one of my
friends finally bought a BBII, I've had a
chance to customize UNIFORTH to support the special features of the BBII.
This column will discuss implementing a'rudimentary graphics package for
the BBII, interfacing with hardware usingFORTH.
I approach hardware/software projects with a basic goal in mind, first familiarizing myself with the hardware, then
designing' the software package to support it. The steps taken in bringing such
a project to fruition are listed below.
Have A Goal In Mind
I know this is obvious, but when you
sit down at your computer, you should
have a goal. It directs your investigation
and makes your time much more productive. For our example, the goal is to
create a basic graphics package that
makes optimum use of the BBII's built-in
video.
Look At The Hardware Architecture
Each chip manufacturer publishes a
product data book detailing the chip
specifications and programming considerations. If you own a Big Board, I highly
recommend obtaining a copy of the Zilog
and Standard Microsystems Corpora-

48

7415 Leahy Road
New Carrollton MD 20784
(301) 552-1295

tion data books.
The BBII uses a CRT8002 Video Display/Attributes Controller (VDAC) to
provide the actual dot data to the 6845
CRT controller. The CRT8002 has 4
modes of operation: an internal 7x11 dot
character generator for the 128 ASCII
characters; wide or block graphics; thin
line graphics; and external input for an
off-chip character generator.
I'm going to be using block graphics
for this application. This mode divides
each character cell into a 2x4 matrix, assigning each "pixel" to an input bit. A
diagram of this assignment is shown below.

I b7 I b3 I

1-----------1
b6 I b2 I
1-----------1
I b5 I b1 I
1-----------1
I
I

I

I b4 I bO I

Note that block graphics gives you a
160x96 dot resolution, quite adequate for
most situations. For all you non-BBII
owners, block-mode graphics are· not
unique to the 8002. The TRS-80 and other computers and printers also use block
graphics. And this particular graphics
package should be usable for other systems, besides the BBII.
Study The Hardware Interface
We now know not only how the
CRT8002 works, but also how it is incorporated into the computer. This means
looking at the schematics and reading
the BBII documentation to find port addresses, supported functions, etc.
The CRT8002 uses two normal sources
of data input: a RAM array of ASCII
codes to display, and a RAM array of attributes for each displayed character.
The BBII has bankswitched memory,
switching the lower 32K between
RAM-ROM and CRT -and the STD
bus. In the ROM/CRT bank, addresses
6000-6800H are used for the display
codes, and addresses 7000-7800H are for
the attributes. You may access these di-

rectly by manually switching banks from
a routine residing in the upper 32K, or
you may use the monitor calls.
Study The Software Interface
Software interface deals with how the
monitor interfaces with the 8002, and
what kind of function calls it makes
available to the programmer. If you look
at your scant documentation, you will
find some single control-character and
escape sequences that control the 8002.
First, send a 26 code (CRTL-Z) to clear
the screen. Control characters are sent
by prefixing the code with a 31. Escape
sequences provide cursor addressing,
graphics mode selection, and character
attribute coritrol. You will find on screen
1 the FORTH words to provide these
functions.
Design The Graphics Package
By now we've read the documentation, played with programming and initializing the chip, and feel confident with
this new knowledge. The next step is to
decide what functions we want to implement, and to name routines to implement those functions. For most projects,
the design phase ranges from 5 to 50 percent of the total development time. Because of the simplicity of this project, the
lower percentage figure is more reasonable.
Write down the functions you want
the package to perform. In this case, simplicity reigns: I just want to be able to
enter an x, y pair and have a dot plotted
on the screen. Then break up each of
these functions into building blocks.
In our example, you must initialize the
graphics generator (such as clearing the
screen)-you must get the user to input
the X,Y coordinates-you then break
the X, Y pair into a character cell (and the
position within that cell)-and you must
actually display the points on the screen.
Your breakdown should continue until each block is one short FORTH word.
Then carefully assign the name for each
block so you can read the final program
and understand it.
I tend to program "quick and dirty."
While there may be an easy way to use
the row/column offset to pick an 8-bit
code that will plot that pixel, I decided to
use the offsets as indices into a lookup

Micro Cornucopia, Number 21, December-January 1985

SCR II 1
o ( BBII Graphics Package -- 1
100784AAH)
1 BLOCK-MODE (set graphics mode)
2
27 EMIT 77 EMIT 48 EMIT ;
3 ASCII-MODE (set ascii mode)
4
27 EMIT 77 EMIT 52 EMIT ;
5 NORMAL-GRAPHICS (set graphics attribute)
6
27 EMIT 71 EMIT 56 EMIT ;
7 NORMAL-TEXT (set normal ascii attribute)
8
27 EMIT 71 EMIT 48 EMIT ;
9 NO-SCROLL (turn off scroll function)
10
27 EMIT 46 EMIT 50 EMIT ;
11
SCROLL (turn on scroll function)
12
27 EMIT 46 EMIT 48 EMIT ;
13
GOTOCR (col row -- •• move cursor)
14
27 EMIT 6'1 EMIT 32 + EMIT 32 + EMIT
15 -->

table to select the correct bit pattern. I
added a byte matrix defining word because this new data type was needed,
and might be useful later.
Code And Test The Package
You can see what names I chose and
how I broke the package down by looking at screens 1-3. The monitor commands are straightforward. The word
PAGE provides the clear-screen function, and XYTRANS performs the x, y to
character cell/offset form. But why is
that SHADOW array there? And why do
I precede each graphics character output
with a 31 code?
When I first coded the routines, I
started with the words in screens 1 and 2
and then played with outputting characters on the CRT. You can switch to
graphics mode and then just send characters with EMIT. Patterns such as 1, 4,
20H, etc. each turn on one bit of a character cell.
This kind of rough experimentation is
useful (not to mention crucial) before
you do much planning. Such interactive
testing is where FORTH excels. In our
case, the testing demonstrated that the
monitor masked off bit 7 of each character, preventing codes such as 80H from
plotting correctly. In addition, all control
codes (such as 1, 4, 9, etc.) are not plotted. However, preceding codes with a
"31" will bypass the monitor's stripping
function.
, Problems And Solutions
The SHADOW array also arose from
this preliminary testing. The problem is
this: what if you want to plot two dots,
bu t both dots fall within the same character cell? The BBII monitor does not permit fetching a character from the CRT
memory so that you can OR in a second

SCR II 2
100784AAH)
o ( BBII Graphics Package -- 2
1 GRAPHICS (enter graphics mode)
NO-SCROLL BLOCK-MODE NORMAL-GRAPHICS
2
3 TEXT (enter text mode)
SCROLL ASCII-MODE NORMAL-TEXT;
4
5
6 CMATRIX (ncols nrows -- •• create byte matrix)
7
CREATE OVER, • ALLOT DOES>
DUP 2+ SWAP @ ROT • + + ;
8
9
crt shadow array)
10 80 24 CMATRIX SHADOW
character/dot bitmap)
11 2 4 CMATRIX BITMAP
12
0440 O· 1 BITMAP
13 HEX 0880 0 0 BITMAP
0110 0 3 BITMAP
14
0220 0 2 BITMAP
15 DECIMAL -->

SCR II 3
o ( BBII Graphics Package -- 3
100784AAH)
1 PAGE (clear screen and clear shadow array)
2
0 0 SHADOW 24 80 • ERASE 26 EMIT ;
3 XYTRANS (x Y -- col off rowoff col row)
4
4 /MOD >R SWAP 2 /MOD >R SWAP 2R> ;
5 ADD-DOT ( coff roff col row -- •• dot to crt & shadow)
2DUP SWAP GOTOCR SHADOW ROT ROT BITMAP C@ OVER
6
7
C@ OR DUP 31 EMIT EMIT SWAP CI ;
8
IDOT (x y -- •• store dot on screen & shadow)
9
XYTRANS ADD-DOT ;
10 ;S

dot and re-output the character.
There are several solutions to the
problem. You could bankswitch and directly access the video RAM, requiring a
routine resident in the upper 32K of
RAM so it is not also switched out. Second, you could keep a 1-line buffer in
memory, set all bits in that line, and then
output the entire line at once. This method requires some fancy footwork and
prohibits real-time plotting of acquired
AIr;> ~a!a, etc.
The solution I chose was a generalization of the second method. A 24x80 byte
array is kept in RAM, exactly duplicating
(sh,adowing) the CRT display. Each time
you EMIT a character, you also store it in
SHADOW. When you need to OR a bit,
you fetch the shadow byte, OR the bit,
EMIT and store it back. Did I invent
shadow screening? Heavens, no. It is a
common trick in track buffering schemes
for disk controllers and is even found in
RAMIEEROM chips. Shadow screening
works quite well in this graphics application, but at the cost of 2K bytes.
If I were building this package for sale,
I would probably directly access video
memory as it is faster and does not require the 2K RAM array. However, us-

Micro Cornucopia, Number 21, December-January 1985

ing a shadow screen gives the package
more portability, does not require any
assembly language programming, and
does not limit the physical location of the
graphics package in memory.
Follow-up
There you have it. The !DOT word is
the only primitive you need to start
building a full-blown graphics package.
Line drawing algorithms can be found in
many articles; the graphics primers now
appearing in many bookstores give BASIC routines that can be adapted to implement lines, circles, filled boxes, pie and
bar charts. The rest is up to you.
One More Thing
Unfortunately, I wasn't able to attend
the FORTH Interest Group annual meeting in November or the FORTH Modification Laboratory (FORML) meeting.
I'm certain some of you attended, and
hope that someone will send me a summary so I can pass it along to other Micro
C readers.

•••
49

IN SEARCH OF THE PERFECT TERMINAL

• • • • • •

Refer to Micro Cornucopia Review; October 1983. Page 7.

It took some probing, but we located the Falco T5-1 terminal as described by David Thompson
last year in his article, "In Search Of The Perfect Terminal", and we have them in STOCK!

Why by a dumb CRT when you can buy a SMART
CRT for the same money? ? ? Through an
exceptional purchase. we have obtained a large
(but limited) quantity of this fine terminal. The Falco
T5-1 is the type of CRTwhich will allow you to GROW.
Give us a call today to reserve your new CRT!

When you buy from CHA you can buy with
Confidence. With years of experience in the
peripheral marketplace we are proud of our two
Guarantees: First. a 9O-day product guarantee on
parts and labor; and. second. a 10-daymoneybock
guarantee.

We also have a supply of seagate ST-412 Winchester Drives (IBM compatible for ... $275
IBM Winchester SUb-system; shugart 712 with controller and cables for only .. $749

COMPLETE REPAIR DEPOT
COMPUTERS
IBM PC.Xl
Comp Auto
Kaypro
Commodore
Xerox II

FLOPPY/WIN

PRINTERS

HARD DISC

TERMINALS

Tandom
Shugart
MPI
Sea gate

Printronix
Centronics
C.ltoh
Diablo
NEC

Pertec
Diablo
CDC
Century

Lear Siegler
Hazeltine
GTC
Falco
Televideo

We are a full service Sales Organization

(714) 850-9191

Call us with your peripheral requirements

C. HOELZLE ASSOCIATES. INC.
1399 Logan Ave.
Costa Mesa. California 92626

50

Micro Cornucopia, Number 21, December-January 1985

HARDWARE SPOOLER and INTERFACE CONVERTER
• 128 K PRINT BUFFER
• CENTRONICS OR SERIAL
INPUT/ OUTPUT
• MULTIPLE PROTOCOLS
• 53/4 X7Y2 INCH BOARD
• + 5 Volts at . 75 Amp
± 12 Volts at .1 Amp
The L-BAND SYSTEMS hardware spooler is a· Z80 based unit that
provides a 128 K byte buffer and interface conversion between Centronics and serial. Input and output may b~ either parallel or serial at
various baud rates and with several protocols. Multiple copy and single
sheet feed are supported.
BARE BOARD with EPROM (2732) and program listings ..... $ 39.95
DISK with program source, 8-inch SSSD .................. , 10.95.
MINI KIT board, EPROM, headers, crystals (less disk) ....... 59.95
*PARTIAL KIT all parts EXCEPT RAMS .................... 109.95
*ASSEMBLED and TESTED BOARD (128 K) ............... 259.95
WALL MOUNT POWER SUPPLY ......................... 39.95
California Orders Add 6.5% Sales Tax
Shipped via UPS - Check or Money Orders to:

KEEP AN EYE OUT
FOR DETAILS OF
SOG '85

Plan on visiting us
at the end of July

L-BAND SYSTEMS
"Not available for export.

1037 E. Lemon Ave.
Monrovia, CA 91016
(818) 357-0566

GRAF 20

PRINTER GRAPHICS

MSC is proud to announce an extensive upgrade of the public domain program GRAF 1.0 (available on Micro
Cornucopia disks K5, K19, and B11). Unlike the original GRAF, however, GRAF 2.0 is a fully professional
graphics program, allowing the user to plot floating point data on graphs with arbitrary horizontal and
vertical scales. Features of GRAF 2.0 include:

* Simple interface allows GRAF 2.0 to plot data

obtained from most spreadsheets or any CP/M
programming language
* Examples showing how to do graphics from MBASIC
and Turbo Pascal are included
* Graphs can be downloaded from MicroSphere's Color
Graphics Board for the Kaypro and BigBoard I
* Point-plotting symbols include • + x and 0
* Any number of graphs may be overlaid
* Written by Dr. Donald L. Brittain, author of the
original GRAF program and all of the editors
and utility programs included with MicroSphere's
Color Graphics Board

* Extensive User's Manual with many
examples

* Line, box, arc, and circle plotting
functions
* Fast execution (much faster than

GRAF 1.0!)
360 x 360 pixel resolution
Vastly improved user interface
Labels for both axes
Graphs may be stored on disk
GRAF 1.0 upward compatible
* Source code (in C) available for an
additional fee

*
*
*
*
*

System Requirements Z80 CPU with 60k (or greater) CP/M 2.2 driving one of the following printers (or any
printer ~ compatible with one on this list): Epson MX-80 with GRAFTRAX, Epson RX-80, Epson FX-80, IBM
Graphics Prlnter, Gemini lOX, C. Itoh ProWriter, or any OkiData dot-matrix printer having the OkiData Plug
'n' Play chips installed. (Unmodified OkiData printers are NOT supported!)
ORDER AT NO RISK:
When you recelve GRAF 2.0, check out our extensive,
illustrated User's Manual. If you don't think GRAF
2.0 satisfies your requirements, return the manual
and the unopened disk to MSC within 21 days for a
full refund of the purchase price.

MICROCOMPUTER SYSTEMS CONSULTANTS

301 North Hanison Street
eN 5279, Suite 228
Princeton, New Jersey 08540

Terms: Send check or money order for $29.95 + $5.00 shipping/handling per coPy of GRAF 2.0 to MSC at the
address above. Be sure to state what printer you own and what disk format you want (Kaypro SSDD 5 1/4" or
standard SSSD 8"). NJ residents add 6% sales tax. Outside US and Canada, add additional $5.00 for postage.

Micro Cornucopia, Number 21, December-January 1985

51

SBASICColumn
By Jack Rodenhi

This will be the last regular SBASIC
column I will be writing. I have just
opened my own CPA office and it seems
things that were easily done a month ago
take lots of extra attention this month. I
have also become a fairly rabid (and rapid) Turbo Pascal user.
Background
I bought my Kaypro in August of 1983.
I had had a little experience programming in Microsoft BASIC, dBase II and
Apple Pascal, and was convinced that
compilers in general and Apple Pascal
compilers in particular were a real drag.
However, when I got my Kaypro, I discovered it came with a compiler that
would let me write real CP/M .COM
files. That compiler used words and concepts that were similar to MBA SIC and
dBase II.
Working with SBASIC, I discovered
what a heady experience it was to create
a subroutine and call it anything I
wished. No GOSUB 25110 in my SBASIC programs. If I thought it was appropriate to repeat a process "Until Miller
Time," then that's what I did. SBASIC
introduced me to the joys of local variables and modular code. I also learned to
appreciate "information hiding" (one of
the main strengths of Modula-2).
SBASIC has given me much, but I
think it is time to leave it behind. SBASIC is a good transitional language between BASIC and Pascal, but it's not
portable. Also, you will have to learn
many things about SBASIC that you
won't be able to apply to other languages.
Compared to Turbo Pascal, which
comes with its own application development environment, writing and debugging in SBASIC is tedious. In fact, I have
written most of my recent SBASIC 'programs (for this column) in Turbo and
then translated them into SBASIC after
they were fully debugged.
Creepy Crawly Thing
While putting together the program
for this column, I ran across what I be'lieve is a significant bug in the language.
The procedure ReadRecords ends by
assigning the value 10 to the variable
ListSize. ListSize is a variable global in
the procedure sssort.

52

1317 W. College Ave.
Lompoc CA 93436

In the main routine" of the procedure
sssort, there is a call to procedure ReadRecords, the last line inside the procedure prints the value of ListSize (10). On
returning to sssort, the value of ListSize
is again printed; This time it is 0 even
though ListSize is declared as a global
variable. Apparently ReadRecords has
set up its own undeclared local version
of the variable ListSize. The compiler has
mutinied!
This particular bug, quirk, aspect, or
(depending on your point of view) feature of SBASIC seems to be undocumented. In the section on Scope of Recursion in the SBASIC manual, there is
some talk of variables changing values
randomly or not changing values when
expected to.
But the manual seems to suggest that
recursion would not occur in our pro'gram. In their examp~e program on recursion, X2 seems equivalent to our variable ListSize. In the discussion on their
program, they claim that X2 would not
be duplicated when P3 is called from P4.
Of course, although their program is executable, it does not contain enough
code to reveal anything about recursion
in SBASIC. I think our program illustrates the point.
This suggests that you should be
VERY careful when using nested procedures in SBASIC.
This program is not fully debugged
but a major clarification for it is to unnest the procedures Order, LesserOf,
ReadRecords, and WriteRecords. This
means you will have to move them as a
block to a point before the beginning of
the procedure sssort. You will then have
to pass variables to ReadRecords and
,WriteRecords.
I've tried this and found that the program works better but it still has a few
problems. To use the module in one of
your own programs, you would read the
User Supplied Procedures into your program and follow the comments found
there. I borrowed some of the ideas in
this section from the Sort. Box approach
used in Turbo Toolbox.

Figure 1 - Test Program

var i = integer
var a = char
files R( 10)
create "UNSORTED.DAT"
open 10;"UNSORTED.DAT"
i

= 100

write 10,0;1
for 1 = 1 to 100
a = chr$(f1x(rnd(1).26)+65)
pr1nt a
wr1te 10,1;a
next

unofficial documentation.
Speaking of this library, David tells me
that Micro C receives more material on
SBASIC than any other language. They
have amassed a good deal of code and
commentary on the language, and it
seems that many people who have spent
time on SBASIC see the need for a good
tutorial. I would imagine that soon
David will be putting much of it on users'
disks.
So long for now. See you at SOG IV!

Editor's note: It's been great Jack, we'll
miss having you in Micro C but we'll still
look forward to seeing you and Wickie here in
Bend next July.

•••

Finally
I hate to leave you with an unfinished
program but I believe this discovery belongs in the growing library of SBASIC
Micro Cornucopia, Number 21, December-January 1985

Figure 2 - User Supplied Procedure For Sort Routine
REM-------------User Supplied Procedures For Sort Routine-----------------$constant MaxSize = 10
REM •• the higher the better but not more than 255·.
dim string: 9j List(HaxSize + 1)
Comment
Dimension an array for each record element such as:
dim string:25j Name(HaxSize + 1)
dim string:25j Address(MaxSize + 1)
dim string:25j City(HaxSize + 2)
and so on •••
End
dim
dim
var
REM

integer NextPtr(MaxSize + 1)
by.te Vacancy(HaxSize + 1)
InfilePtr,OutfilePtr = integer
Just include these three statements as is.

var ImpossiblyBig = string:9
ImpossiblyBig = 'z'
Comment
ImpossiblyBig should be a variable of the same type as your comparison
string and impossibly big.
end
procedure ReadFile(Infile, i = integer)
read IInfile,InfilePtrj List(i)
Comment Be sure to have this read each of your record elements such as this:
read IInfile,InfilePtrj List(i), Name(i), Address(i), City(i)
end
end
procedure WriteFile(Outfile,i = integer)
write IOutfile,OutfilePtriList(i)
Rem Set this up like ReadFile
end
function Less(item1, item2 = integer) = byte
var Less = byte
if List(item1) < List(item2) then Less = nTn else Less = nFn
Comment This is where you get to tell the program which element is bigger.
If you don't your sort based on List, then use your own variable such
as Name, City or whatever.
end
end =. Less
REM-----------End of User Supplied Procedures------------------------------procedure sssort(Infile, Outfile, UnsortedMasses = integer)
var Smallest, Current, LastOne, LastItem, RunSizej
ListSize, RecordsIn, RecordsOut, RecordsToRead, i, j
procedure Order(NewItem = byte)
procedure SearchAndInsert
while Less(Current, NewItem) do begin
LastOne
Current
Current = NextPtr(Current)
end
NextPtr(NewItem) = NextPtr(LastOne)
NextPtr(LastOne) = NewItem
LastItem = NewItem
end
if Less(NewItem,LastItem) then begin
if Less(NewItem,Smallest) then begin
NextPtr(NewItem) = Smallest
Smallest = NewItem
end else begin
Current = NextPtr(Smallest).
LastOne = Smallest
SearchAndInsert
end
end else begin
Current :' NextPtr(LastItem)
LastOne = LastItem
SearchAndInsert
end
end
function LesserOf(var1, var2 = integer) : integer
var Lesser : integer
if var1 < var2 then Lesser = var1 else Lesser = var2
end: Lesser

Micro Cornucopia, Number 21, December-January 1985

integer

procedure ReadRecords
for i = 1 to RecordsIn
ReadFile Infile, Vacancy(i)
InfilePtr = InfilePtr + 1
Order Vacancy(i)
print
••••• Run number: "jij" ••••• n
print n
for j
to i
Smallest then print nSmallest ______ >n j \
if
else print n
nj
print j,List(j),NextPtr(j)
next j
next i
$TRACE
ListSize = ListSize + Recordsln
print "ListSize per the procedure ReadRecords is "jListSize
rem •• ListSize contains 10 here ••
end
procedure WriteRecords
for i = 1 to RecordsOut
WriteFile Outfile,Smallest
OutfilePtr = OutfilePtr + 1
Vacancy(i) : Smallest
Smallest: NextPtr(Smallest)
next i
ListSize = ListSize - RecordsOut
end
Write OOutfile,OjImpossiblyBig
RunSize = fix(MaxSize/2)
repeat begin
for i = 1 to HaxSize
Vacancy(i) = i
next i
Smallest = 0
List (Smallest)
ImpossiblyBig
LastItem = 0
ListSize = 0
InfilePtr = 15
OutfilePtr = 1
RecordsToRead = UnsortedMasses
Recordsln = LesserOf(HaxSize,RecordsToRead)
ReadRecords
rem ReadRecords sets ListSize to 10
print nListSize per the main procedure is njListSize
rem •••• ListSize contains 0 herel ••••
RecordsToRead = RecordsToRead - RecordsIn
repeat begin
print nListSize = njListsizejn RunSize = njRunSize
RecordsOut = LesserOf(ListSize,ListSize - RunSize)
print nRecordsOut : njRecordsOut
WriteRecords
RecordsIn = LesserOf(RunSize,RecordsToRead)
ReadRecords
RecordsToRead = RecordsToRead - RecordsIn
end until (RecordsToRead = 0)
WriteRecords
Infile : Outfile
UnsortedMasses = UnsortedMasses - RunSize
end until UnsortedMasses = 0
end
var i
var a

= integer
= string:

9

files r(10), r(10)
open 10jnUNSORTED.DATn
open #1jnSORTED.DATn
print n
sssort 0,1,100
print n
for i = 1 to 100
read 11,ija
print a
next i

Sorting the Data File n
The Sorted File n

END OF LISTING

53

NEW LOWER PRICES!

NEW LOWER PRICES!

NEW LOWER PRICES!

"BIG BOARD II"
4 MHz Z80·A SINGLE BOARD COMPUTER WITH "SASI"
HARD·DISK INTERFACE

$545 ASSEMBLED & TESTED
Jim Ferguson, the designer of the "Big Board" distributed by Digital
Research Computers, has produced a stunning new computer that
Cal-Tex Computers has been shipping for a year. Called "Big Board II", it
has the following features:

• 4 MHz Z80-A CPU and Peripheral Chips
The new Ferguson computer runs at 4 MHz. Its Monitor code is lean, uses Mode 2
interrupts, and makes good use of the Z80-A DMA chip.

• 64K Dynamic RAM + 4K Static CRT RAM +
24K E(E)PROM or Static RAM
"Big Board II" has three memory banks. The first memory bank has eight4164 DRAMs
that provide 60K of user space and 4K of monitor space. The second memory bank has
two 2Kx8 SRAMs for the memory-mapped CRT display and space for six 2732As, 2Kx8
static RAMs, or pin-compatible EEPROMS. Thethird memory bank is for RAM or ROM
added to the board via the STD bus. Whether bought as a bare board
or
assembled and tested, it comes with a 2732 EPROM containing Russell Smith's superb
Monitor.

• Multiple-Density Controller for
SS/DS Floppy Disks
The new Cal-Tex single-board computer has a multiple-density disk controller. It can
use 1793 or 8877 controller chips since it generates the side signal with TTL parts. The
board has two connectors for disk signals, one with 34 pins for S.2S" drives, the other
with SO pins for 8" drives.

• Vastly Improved CRT Display
The new Ferguson SBC uses a 684S CRT controller and SMC 8002 video attributes
controller to produce a display rivaling the display of quality terminals. There are three
display modes: Character, block-graphics, and line-graphiCS. The board emulates an
ADM-31 with 24 lines of 80 characters formed by a 7x9 dot matrix.

• STD Bus

$145 PC BOARD WITH 16 PARTS
SIZE: 8.75" x 15.5"
POWER: +5V @ 3A, +-12V @ O;1A
• "SASI" Interface for Winchester Disks
Our "Big Board II" implements the Host portion of the "Shugart Associates Systems
Interface:' Adding a Winchester disk drive is no harder than attaching a floppy-disk
drive. A user simply 1) runs a fifty-conductor ribbon cable from a header on the board to
a Xebec controller that costs only $29S and implements the controller portion of the
SASI interface, 2) cables the controller to a Sea gate Technology ST-S06 hard disk or
one compatible with it, and 3) provides power for the controller-card and drive. Since
our CBIOS contains code for communicating with hard-disks, that's all a user has to do
to add a Winchester to a system!

• Two Synchronous/Asynchronous Serial Ports
With a Z80-A SIOIO and a Z80-A CTC as a baud-rate generator, the new Ferguson
computer has two full RS232-C ports. It autobauds on both.

• A Parallel Keyboard Port + Four Other Parallel
Ports for User I/O
The new Cal-Tex single-board computer has one parallel port for an ASCII keyboard
and four others for user-defined 1/0.

• Two Z80-A CTCs

= Eight Programmable Counters/Timers

The new Ferguson computer has two Z8G-A CTCs. One is used to clock data into and
out of the Z8G-A SIOIO, while the other is for systems and applications use.

• PROM Programming Circuitry
The new Cal-Tex SBC has circuitry for programming 2716s, 2732(A)s, or pincompatible EEPROMs.

• CP/M 2.2**
CP/M with Russell Smith's CBIOS for the new Cal-Tex computer is available for $1S0.
The CBIOS is available separately for $2S.

The new Ferguson computer has an STD Bus port for easy system expansion .

• DMA
The new Ferguson computer has a Z8G-A DMA chip that will allow byte-wise data
transfers at SOO KBytes per second and bit-serial transfers via the Z8G-A SIO at 880 Kbits
per second with minimal processer overhead. When a hard-disc subsystem is added,
the DMA chip makes impressive disk performance possible.

CAL·TEX COMPUTERS, INC.

12788 HWY. 9 • BOULDER CREEK, CA 95006 • (408) 338-2572

54

"CP/M is a registered trademark o( Digital Research.

Terms: Orders paid for with a cashier's check or bank card will be shipped within three
working days. Orders paid for with a personal check will be shipped within three weeks.
Add $S for packing & shipping in North America.

Micro Cornucopia, Number 21, December-January 1985

Cooling A Hot Computer
By Kenneth J. Grymala

P.O. Box 2540

Manassas VA 22110

In Issue 19 of Micro C, David Thompson discusses problems with the Morrow MOll. In that article he says,
"MOlls are becoming famous for going
to lunch before noon, reportedly due to
the very critical timing between the TTL
parts and the 280 during data transfers."
He also discusses power supply problems in the MOll, and I suspect these
same problems are showing up in the
Morrow M016 and M034.
Heat-The Real Culprit?
I believe the problems are due to overheating. Excessive heat causes equipment to start acting strangely, go into a
tighter and tighter tailspin, and finally
crash. My MOll began showing these
classic symptoms when its internal temperature exceeded 140 F degrees.
Because of the heat, the clocks and
timing circuits changed frequency-capacitors, regulators, rectifiers, and ICs
began dying of heat exhaustion.
The power supply might fail repeatedly but the real culprit is probably heat.
Obviously, this problem is not exclusive
to the MOll. The following discussion is
applicable to any system which is having
heat problems.
As a designer of equipment for the
government, military, and industry, I
am all too familiar with the problems
caused by heat. In government terms,

the MTBF (Mean Time Between Failures)
takes a real nose dive as temperature rises. Power supplies, oscillators (timing
clocks), and PC board traces are usually
affected first.
History
About two days after I got the MOll,
an old-time hacker friend paid me a visit.
While tinkering with the computer, he
noticed that the floppies were coming
out of the drive very warm. The next day
I put a thermometer inside the MOll
and monitored the temperature between
the hard disk and the power supply. After about four hours the internal temperature reached 140 degrees Fahrenheit in
an office that was 68 degrees, and I'm
sure the power supply components were
much hotter.
Six months before I read Micro Cornucopia's description of the problem, I began to look for ways to cool my system.
The most vulnerable component appeared to be the Shugart SA-455 disk
drive with a maximum operating temperature of 115 degrees. With this plus a
safety factor in mind, I set my target for a
maximum internal operating temperature of 100 F, or 20 F above an 80-degree
office temperature.
I dug out some test equipment and
measured the power consumption with
a calibrated meter (traceable to NBS). It

turned out that my MOll was drawing
(dissipating) approximately 85 watts
(Morrow specification is 50 watts). This
may not seem like much, but think about
sticking even a 60 or 75 watt light bulb in
a box the size of an MOll. It'll get darned
hot!
Then I took an ALNOR air velocity
meter and found that the small MOll fan
pulled only a little more than 3 Cubic
Feet per Minute (CFM). An early brochure I have on the MOll says it is supposed to have a 12 CFM fan. But I discovered that even a 12 CFM fan is really not
big enough to adequately cool 85 watts.
Thermal Analysis Formula
When doing thermal analysis, I use a
common rule of thumb formula (converted to degrees Fahrenheit) that I
learned many years ago in an engineering seminar:
1.76 X Watts

(CFM)

= -------------------Rise in Temp (deg C)

+

25%

At 85 watts, this results in a minimum
airflow of approximately 17 CFM for 20 F
above room temperature. At 12 CFM you
could expect an approximate rise of 29 F.
(Of course, that's assuming your 12 CFM
fan is delivering 12 CFM once it's installed.)
(continued next page)

PUT TIME OUT OF MIND, INTOMEMORY.WITH•. ~
MICROCRON
r------Finally. a real time calendar/clock for the 820':~-----------iiiiiiiiii----and Big Board. Time stamp files. document
I------printouts. Your computer need.never ask YOU t h e - - - - - - - - - - - - ,

82011

time again. We use an OKI clock chip with a Iithiu::m.~.~.-----------~~~;~i'-----­
I - - - - - - o..... - ttery backup. Crystal controlled to time resolutl
1 - - - - - - - 0 1 one second.
hr. format. even keeps track -------------~
I-_ _ _ _ _ouf leap year. Board simply plugs into parallel port. _ _ _ _ _ _ _ _ _ _ _ _
r-_____ It comes with software on disk and manual. _ _ _ _ _ _ _ _ _ _ _ _ _-{
1-_ _ _ _ _ _ rJJca;:>c: state type of system and 5 1/4 or 8 inch disk. _ _ _ _ _ _ _ _ _ _ _.....
1 - - - - - - - L E ' t MICRONCRON put time out of mind. into memory.----------llliiiitilliti "iIiiIii. .- - - - -

12/24

~~~~~~MC - 1with disk

..............................

VISA COD. CHECK.
PMC.8? H
$2. NYS ADD TAX
• Xerox 820. 820 " lrademark of Xerox

~

$69~iiiiiiiiiiiiiiiiiiii~i~~~~~i:

716-377 -0369
PO BOX 81
PITTSFORD.
NY 14534

Micro Cornucopia, Number 21, December-January 1985

r

JOPTRONICS
TECHNOLOGY

55

COOLING A HOT COMPUTER (continued) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __

I pulled out the original fan and discovered it moved only a little more than 3
CFM. So I reversed the wiring and the
impeller, and put the fan back in. That
increased the air flow to almost 4 CFM,
but after about an hour the temperature
was up to 130 degrees, still much too
high for dependable operation.
Testing Your Own Machine For Airflow
Before you cool your computer, make
sure it needs it. To check, turn on your
system and hold a facial tissue about 3
inches behind the air intake. If the tissue
doesn't get pulled hard against the fan
intake, you've got a problem!
When the tissue is directly against the
front of the hard disk or the door opening to the floppy disk drive you should
see about a 30-degree (off vertical) deflection of the tissue. This air flow is a
little more subtle than the air intake because of all of the other holes in the case,
but you definitely want air coming out
through the disk drives (and the power
supply).
Cooling The Morrow
There are ventilation holes on the back
of MDl1s (Morrow used standard MD
series cabinets)'. As a consequence, even
'when enough air does go into the rear
fan opening, it goes right back out the
ventilation holes on the rear panel, taking very little heat with it.
To solve this problem cover the rear
panel holes from the inside with a 1-1/2"
X 9" thin sheet of plastic.
Now, if you don't have adequate air
flow into the rear, I suggest you temporarily operate your MDl1 (or other system) without its case until you can replace the fan.
Choosing a Fan
I first decided to replace the present
fan with a higher velocity unit of the
same size and voltage. It's a plastic 12
volt DC fan, 21/4 inches in diameter, and
it looks like it belongs in a child's toy.
I scoured all my catalogs, fliers, and
magazines for a suitable replacement
that did not cost a fortune. It didn't exist.
So I chose a standard 3.125",25 CFM axial style 115 VAC fan in a 4" X 4" X 2"
aluminum box chassis, mounted outside
of the MD11 on the rear panel over the
fan opening. The fan and the chassis are
both available in most good electronic

56

supply houses and in ads in the back of
electronic hobbyist magazines.

low the air intake of the fan housing so I
could control power to the fan and the
computer. Now the power cord comes
into the box to power the fan and it
leaves the chassis box to power the
MD11. The computer's power switch is
always left on, and main power is controlled by the new toggle switch.

MOll Installation Instructions
To get power to the fan I used the original MD11 power cord and ran it through
the fan housing (you could also purchase
a new power cord if you don't want to
destroy the original-they're about
$5.00). I cut the cord about 8" from the
end that normally would connect to the
computer, and ran both pieces of the
cord into the side of the chassis box
through clamping grommets.
I also mounted a new toggle switch be-

The Chassis Box
Make sure that one dimension on your
new chassis box is no greater than 4",
otherwise it will not fit between the top
of the MDl1 and the auxiliary RS-232
connector. Conversely, the box also

C01686 ATTACHED RESOURCE PROCESSOR
MS-DOS 2.11
8086

CP/M-86

CP IM-80 RAM DISK

8087

768KRAM

For ANY Z80 Based CPM System
"THE 16 BIT CO-PROCESSOR TO BE MEASURED BY THE COMPANY IT KEEPS"
Kaypro 2, Osborn I,
Televideo S03, Eagle I,
TRS-SO/I, Bigboard,
Epson QXI0, Lobo
MaxSO, Heath HS, Altos
SOOO-10, Lanier E21, 20rba
Dynabyte, Xerox S20-I,
TRS-SO/II, North Star
Horizon, Heath HS9,
TRS-80/III, Monolithic
Systems, Multitech,
Convertable, BMC, Ithaca
Kaypro 4, Osborn Exec,
Intersystem, Televideo S02,
Compupro, Altos SOOO-12,
Teletek, Cromemcro,
Morrow MD3,
DEC VTlS0,
Discovery, Exidy Sorcer,
Kaypro 10,
Wave Mate Bullet,
TRS-SO/4,
Portabrain,
Xerox S20-1I,
TRS-SO/12,
Altos Series 5,
Microengine, Magic,
TRS-SO/16A,
--.....:...::
Sierra, Vector,
Superbrain, Morrow MDll,
Davidge, Northstar
,
Advantage,
and many other 2S0 systems owners are all extremely satisfied with the C016S6
ATTACHED RESOURCE PROCESSOR.
And why shouldn't they be. Look at these impressive features:
• A True 16 Bit 8086 Processor

• 256K to-768K RAM
• MS-DOS 2.11 & CPM86
• Emulation of 80% of "PC" ROM BIOS
• Thousands of CPM86, MS-DOS, & "PC"
Applications will run
• MS-DOS & CPM disk files can be co-resident
on the sames device (including harddisk)
• Can be used as 768K of high speed CPM80
RAM Disk

• Easily installed on any Z80 based system
• Available in an external cabinet wi power supply
• Optional 8087 Math Co-Processor, Real Time
Clock, 8 Level Interrupt Controller,
& Proprietory I/O Bus
• Delivered with Logics and Sources
• Optional 12 month warrantee
• Full money back guarantee that it will function
on your Z80 system
• A Quarterly Newsletter

PRICES START AT A LOW $495.00.
For additional information about this revolutionary product, or our Motoroal 68000 Co-Processor,
contact your favorite dealer, send $1 (no checks please) or call:

/HS@/

Hallock Systems Company, Inc.
262 East Main Street
Frankfort, New York 13340
(315) 895·7426

RESELLER AND OEM
INQUIRIES INVITED.

Micro Cornucopia, Number 21, December-January 1985

must be at least 4" in two dimensions to
allow room inside for the switch, power
cord, and fan.
On a 4" X 4" X 2" box, such as an LMB
#143, the air intake and outlet are not
centered, but are offset to allow for proper mounting of internal parts and for
mounting on the MOll. The air intake is
cut for the fan mounting, and the air outlet from the chassis box is cut to exactly
match the fan and fan mounting holes on
the MOIL
After the holes are cut, and before you
mount the fan inside the box, make a filter and impeller protector. I used some 1/
4" hardware cloth and two layers of window screen mounted inside the fan
housing on the air intake hole.
Opening Up The MD11
First, remove the power and power
cord. Then slide the case off the front of
the MDll after removing the four phillips head screws that hold it in place.
Remove the four screws that hold the
old fan, and, once the fan is loose, clip
the power wires. Insulate the wires with
tape, and mark them with a label or
masking tape so a couple of years from

now when you have the. MOll disassembled for some other reason, you'll remember what they were for.
N ext, install a 1-1/2" X 9" piece of cardboard or plastic over the MOll rear panel ventilation holes. Place some foam
rubber weather stripping on the exhaust
side of the new fan housing to make a
good seal.
With four #4 screws mount. the new
fan housing over the old fan hole.
Do not plug the short end of the power
cord into the back of the MD11 yet, but
plug the other end into an AC outlet.
Turn on the switch on the fan housing to
see if the fan works.
Using another tissue, make certain
that the air is entering from the rear and
blowing into the MOll. This slightly filtered air must blowout of the front of the
disk drives rather than pull dust in.
Assuming this worked, turn the
switch off and plug the short end of the
cord into the back of the MOIL Turn on
the switch. If everything was wired
properly, you should be back in business. Replace the cover and operate a
cool computer!

Results
With this arrangement the temperature between the hard disk and the power supply reaches a maximum of 28 F degrees above room temperature-a far
cry from the 70-degree rise before. And
the rest of the computer stays at about 10
degrees above room temperature. The 25
CFM fan pulls about 22 CFM.
Since I added the fan six months ago,
my MOll has been used an average of 10
hours a day, and so far, I wouldn't trade
it for twice the price.
If anyone out there knows of a direct
replacement 20-30 CFM 12 VOC fan for
the MOll at a reasonable cost, please do
the other MOll owners a service and
send the part number and supplier information to either me or Micro Cornucopia.
Below is a list of parts you will need to
cool your system. And if you'd rather
not search for everything yourself, I'll
sell you the complete kit for $52.95. Write
to the address at the top of the article to
order or for more information.

•••

MOlT Top View With Fan Installed

A ir Intake Panel

II

REAR

MO-II

TOP

~~~~----2~1------~

41

Parts List
Quantity

Item

1 3.125" axial style fan. 25 CFM, 115 VAC
(Such as ETRI model 126LF or Rotron Sprite series)
4" X 4" X 2" box chassis. LMB '143 or equiv.
power cord. Belden 17742 or equiv.

Micro Cornucopia, Number 21, December-January 1985

1 SPST 3A 125 VAC toggle Switch. (Radio Shack 275-602)
heavy. duty screen)
1 3.5" X 3.5" hardware cloth (1/4"
2 3.5" X 3.5" pieces of window screen
2 power cord grommets
.
16" 1/4" or 3/8" foam weather stripping
1 1-1/2" X 9" piece of stiff cardboard or thin plastic
4 6-32 X 3/4" fan mounting screws, washers, nuts
4 4-40 X 3/8" fan housing mounting screws, washers, nuts

57

EXPAND YOUR BIG BOARD
GIVE YOUR BBI A PRESENT: EXPAND IT!
This versatile expansion system features a Z80 daughter board for direct "on the bus"
expansion of memory and I/O. The main board allows you to add on the most popular Big
Board accessories all on one board:
BANK-SWITCHED MEMORY: 64K to 1 Mbyte of dynamic RAM with "delay
line" timing and 8K to 32K of EPROM or battery-backed STATIC RAM.
Advanced "HOLE" memory mapping for ultra-fast RAMdisk operation.

ENGINEERING SOFTWARE
CPM-80 • MSDOS • 'lRSDOS • PCDOS·

Z80 I/O: One 510, two PIOs, and one eTC. The 510 and PIOs are fully
buffered with the same header connections as the BB I.
OTHER I/O: One ADC0808 8-input 8-bit A/D converter, two DAC 800 8-bit
0/ A converters, one AY-3-8910 programmable sound generator, and one
MM58167 battery-backed real-ti me clock.

*

SIMPLE PIGGYBACK INSTALLATION - NO MODIFICATIONS TO BB I NEEDED!
Main board is the same size as the BB I and runs at 2.5 or 4 MHz
Versatile connection scheme allows for further expansion

*

RAMdisk software provided (.COM and .MAC) for SWP DD or standard DRC CBIOS
It installs a 250K drive M: and patches the MM58167 as the clock display. The patch can
be easily modified for other types of CBIOS. Also included are system checkout and
utility software.
All parts (except delay line) are easily obtainable. We provide source lists. Pro-quality
schematics on two large blueprints for easy reference.
$99.95

Bare daughter and main boards (solder-masked and silk-screened),
documentation, and 8-in. SSSD software disk
$16.95
Delay line
Shipping and handling, add: U.S.A., $5.00; Canada, $8.00. Sorry, no other exports.
Check or money o~der only; no COOs. Delivery: stock to 6 weeks.

Dealer Inquiries Welcome

Free catalog

Professional - Affordable
PLOTPRO - SCientific Graph Printing Program
$49.95
ACNAP - Electronic CirCUit Analysis Program
$49.95
SPP - Signal Processing Program
$59.95
* 96 computers and formats including IBM look-alikes.
8087 co-processor (slightly more). and Apple with
CP/M. Include $3.00 ($9,00 Foreign) Shipping and
handling with each program. California add 6%.

BV Engineering
Box 3429 • Riverside, CA 92519 • (714) 781-0252

For free 5-page spec sheet, please write or call:
Rivendell Audiocomp, P.O. Box 28937, San Diego, CA 92128

Rivendell Audiocomp
Custom Audio and Computer Design

619-451-3424

BIG VOICE KIT
1400 BUILT - IN WORDS PLUS
UNLIMITED PHONETIC SPEECH
CAPABILITY
DATA RATE: 3.5 bytes/sec typical
(2 bytes/word or phoneme)
PLUGS DIRECTLY ONTO GPIO ''1\'

NOW FOR XEROX 820
BB & BBII
LOW COST
DISK CONTROLLER
SAVE WEAR AND TEAR ON YOUR DISK DRIVES
AND FLOPPIES WITH THE MODEL 3B~1 ALL
SOLID STATE RELAY.
SMALL ENOUGH TO FIT
EASILY INSIDE YOUR DISK DRIVE, THE 3B~1
CAN BE INSTALLED IN MINUTES.
YOUR BIG
BOARD WILL THEN TURN YOUR DRIVES ON AND
OFF AUTOMATICALLY AS THEY ARE NEEDED.

BIG VOICE KIT INCLUDES:

SPEECH
SYNTHE SIZER
FOR THE BIG BOARD
AND XEROX 820

58

HIGH QUALITY BARE BOARD
• 1400 WORDS IN EPROM
USER/ASSY MANUAL w/schem.
SOFTWARE: WORD SOURCE,
, DEMO & SUPPORT PROGRAMS,
ON 8" sssd FLOPPY DISK
$70. kit / $150. ass'd & tested
all ppd. (Texas res. add 6%)
state whether BIB ~r XeroX
$130. complete kit
9910 LEAWOOD BLVD.
HOUSTON, TEXAS 77099
teL (713) 495- 6185

- FEATURES -

*
*
*
*
*
*
*
*

SMALL SIZE - 1.75 X 1.4~ X
0.35
FAST INSTALLATION - DIAGRAM
INCLUDED
ZERO
CROSSING - ELIMINATES
ALL SWITCHING NOISE
TRIAC OUTPUT - NO MECHANICAL
PARTS
DVDT FILTER - INCLUDED
LOW COST - ONLY $B.B~ EACH
1 YEAR WARRANTY
3~ DAY MONEY BACK GUARANTEE

____lIZ
COMPANY OF CALIFORNIA
1619 SOUTH MINNIE STREET
SANTA ANA, CALIFORNIA 9~;07

(714)

547-4316

CALIF. RES. ADD 6% SALES TAX
ADD $1.~~ EA. POSTAGE & HANDLING
PLEASE SPECIFY BBI, BBII OR XEROX'

Micro Cornucopia, Number 21, December-January 1985

FERGUSON ENGINEERING
81 7 -640-0207
820-1 Schematics, 18" x 24" set of six, very legible ................................................... $ 18.00
STD BUS connector for BBII .................................................. '. . . . . . . . . . . . . . . . . . .. 12.50
Crydom 8312 solid state relay, 120 VAC,2 A, 0 volt switch ............................................ . 10.00
Complete 820-1 Documentation package ........................................................... . 15.00
820-1 CBIOS source, ROM monitor source, and 5.25"-or-8" formatter all in source code,
M80· compatible, 8" SSSD .. ; ............................................................... . 35.00
820-1 dual drive disk cable for two 5.25" drives wlpower conn ......................................... . 20.00
820-1 dual drive disk cable kit for eight inch drives ................................................... . 45.00
Composite video adapter kit for 820-1, produces true RS-170 campatible video ............................ . 25.00
Serial console monitor program for the 820-1, gives your 820-1 the PFM style serial console,
M80 source, 8" SSSD ....................................................................... . 35.00
820-1 power connector wlpins .................................................................... .
4.00
820-1 I BIGBOARD-1 ASCII keyboard, wlcable, NEW! ................................................ . 95.00
BIGBOARD-1/11 dual-drive 8" disk cable, 17" long .................................................. . 35.00
Assembled and tested Xerox 820-1 computer boards ................................................. . 100.00
Bigboard dual 8" drive cable ..................................................................... . 30.00
Bigboard serial 1/0 cable ........................................................................ . 15.00
AMP 8" drive AC connector w/pins ................................................................ .
.75
AMP 8" drive DC power connector wlpins .......................................................... .
1.50
AMP 5.25" drive DC power connector wlpins ....................................................... .
1.10
CPIM Primer (Xerox CPIM handbook) .............................................................. .
7.50

GENERAL PURPOSE INDUSTRIAL CONTROLLER

LB-1

$75 00
IMPROVED!
Bare Board & Doc

UNINTERRUPTABLE POWER SUPPLY

UPS 5-200

$195 00

+5V @ 8.5 AMPS, + 12V @ 7.5 AMPS - 12V @ .5 AMP
TWO + 24 VOLT OUTPUTS @ 1.5 AMPS EACH (2A PEAK)

This supply is designed to power entire computer systems with
Winchester and floppy disk subsystems. When the AC power
fails, power can be maintained by a single 24V battery. The
switchover time from AC to battery is zero, power is never
interrupted.
24V 4.5 AH Panasonic LCR series battery ......... $65.00
•
•
•
•
•
•
•
•
•

High Reliability (1 year limited warranty)
High Efficiency (75% typ)
New design is very quiet.
Quick response OVP
Fold-Back current limiting
Drop-out immunity for up to 250 mS (without battery)
Uninterruptable (with addition of battery pack)
Built-in battery charger
Very Small 3.5"H, 10.0"L, 4.25"W

FERGUSON ENGINEERING
817-640-0207
P.O. BOX 300085 ARLINGTON, TEXAS 76010
Micro Cornucopia, Number 21, December-January 1985,

• Uses Z80,Z80A, or Z80B family of components
• Dual RS232 serial 1/0 WICurrent loop option on the "A" channel (both strappable as terminal or modem in the RS-232
mode)
• 16 programmable Baud rates on each serial channel
• 32 bits of buffered parallel 1/0 assignable on 4 bit boundaries,
W/Strappable Handshake Polarity (2xZ80-PI0)
• 4 Channels of counter-timer, 4 inputs, 3 outputs
I
• Accommodates 16K mix of RAM or ROM or EEPROM on 2K
boundaries in 2716 or 2016 or Xicor EEPROM
• 2.3" x 10" sea of holes prototyping area on .1" grid
• All 1/0 is mode 2 interrupt compatible
• Watchdog timer for long-term unattended operation
ROM monitor and source listing ................. $ 35.00
Assembled and tested 4 Mhz LB-1 .............. , 250.00
TERMS: Master

Card~,!ISA

818

add 3%, money order, certlfled checl<, UPS cash COD. Allow
2 weel

,

FERGUSON ENGINEERING
-

,

81 7 -640-0207

Get CP/M+ power with PDQCache
(without much cash)
POaC(ache) and the 820-256K RAM card are now linked to provide a dramatic difference in system throughput. poac is a disk
buffering applications program, designed especially for the Xerox 820-1 and the Bigboard-1 with the 820-256K RAM card. With
poac disk-intensive operations execute MUCH FASTER:
up to 20X faster than single density 5%",
up to 1OX faster than single density 8",
and up to 5X faster than double density 8" (1024 x 9).
poac significantly reduces delays associated with rotational latency, head-load, disk turn-on, and seek time. poac enhances
the life expectancy of your disks and your drives, as well as decreaSing the frequency of disk errors.
A synopsis of poac features:
• easy to install
• built-in printer spooler
• fully compatible with the newest version SWP double density
• functions are transparent to the operator
• TPA size is not affected
POOC is NOT a memory drive program. There is no need to transfer your files to some imaginary drive. There is also no need to
configure your programs to operate on an alternate drive. As you operate your computer, poac buffers the data for you
automatically.
poac - The most significant system enhancement since 4 Mhz.

BIGBOARD-1 I 820-1 256K
RAM EXPANSION MODULE

BIGBOARD-1 /820-1 256K RAM
EXPANSION CARD
Give your Bigboard-1 or 820-1 a quarter-megabyte of RAM.
This card can be used as a RAM disk, a spooler buffer, a disk
cache or anything that requires more memory than the basic 64K.
The flexible architecture will accommodate a wide variety of
applications such as MP/M, CP/M+ and a host of high-speed
data acquisition tasks. This card plugs in to five device sockets
below the existing RAM array as a daughter board.
•
•
•
•
•
•

Easy installation WITHOUT wires, cables or jumpers.
Uses none of your precious 110.
This RAM upgrade works beyond 5 Mhz.
Adds only 112 inch to the overall height.
Interconnect hardware provided.
Small (4.5" x 6.75").

This product comes with complete schematics and a full theory
of operation. Assembly, installation and test procedures are
thoroughly documented.

J.,!"

!.E.'!C:~,~~N
(c." •• '40'.0

XDRIVE: a Ram disk.
We have modified XDRIVE, a public-domain RAM disk software package, to run with the 820-256K, for the
Bigboard 1 and the 820. Provides a 192K RAM disk for lightning speed operation. Can be run with almost any BIOS,
with the exception of the SWP double density distribution BIOS. Source code is included.
BARE BOARD & DOCUMENTATION ................................................................ . $ 67.50
KITW/O RAM ...................................................................................... .
95.00
Assembled and tested 820-256K (4 Mhz parts) ..................................................... .
295.00
95.00
PDaC disk cache and spooler software............................................................. .
45.00
New monitor ROM source & XDRIVE software ...................................................... .
4.65
64K DRAM (good at 4 Mhz) ........................................................................ .
10.00
820-1 modified monitor ROM ....................................................................... .
10.00
Bigboard-1 modified monitor ROM ................................................................. .

,

FERGUSON ENGINEERING

.

81 7 -640-0207
P.O. BOX 300085 ARLINGTON TEXAS 76010
,

TERMS: Master

Card~,!ISA

1538

add 3%, money order, certlfled checl<, UPS cash COD. Allow
2 weeks for personal or company
checl
Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2011:06:14 08:05:38-08:00
Modify Date                     : 2011:06:14 09:52:06-07:00
Metadata Date                   : 2011:06:14 09:52:06-07:00
Producer                        : Adobe Acrobat 9.43 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:50e473c6-42b9-4bd0-b486-414749af7605
Instance ID                     : uuid:06c312ab-ee8d-43ce-a974-bbe4e72327f6
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 84
EXIF Metadata provided by EXIF.tools

Navigation menu