Micro_Cornucopia_#23_Apr85 Micro Cornucopia #23 Apr85

Micro_Cornucopia_#23_Apr85 Micro_Cornucopia_%2323_Apr85

User Manual: Micro_Cornucopia_#23_Apr85

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

DownloadMicro_Cornucopia_#23_Apr85 Micro Cornucopia #23 Apr85
Open PDF In BrowserView PDF
$3.00

April...May, 1985
TABLE OF CONTENTS
Automatic Disk Re..logging With CP/M 2.2 ........................
Interrupt Driven Serial Print Driver..................................
Review: Microsphere RAM Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Do It Yourself Smart Video Controller..............................
In..line Object Code In Turbo Pascal.................................
An Inspired Turbo Tutor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New Strokes for KSTROKES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Low Cost EPROM Eraser .................................... . . . . . .
Pascal and C Compilers Benchmarked ~..............................
Running CP/M's TPA .................................................
Ready To Use Files .. _........... :t~,- ........ ; .. <' .. :.: ...... : ..............

4
18
41
43
51
60
63
63
65
67
81

Regular Features

The S.. 100 Bus...............
In The Public Domain.......
The Xerox Column..........
C'ing Clearly.................
The Slicer Column..........
The Kaypro Column. . . . . . . .
Pascal Procedures............
FORTHwords ...............

9
13
21
25
32
35
52
58

On Your Own............... 72
Technical Tips............... 74
Culture Corner ........ .. .. .. 82
Future Tense

Tidbits ..........-. . . . . . . . . . . . . . 83
Review: Epson PX..8 ........ 84
The Last Page .. .. .. .. .. .. .. .. 88

They said it couldn't be done.
Borland Did It.Turbo Pascal ao
TURBO

The industry standard

3.0

With more than 250,00Q users worldwide Turbo
Pascal is the industry's de facto standard. Turbo
Pascal is praised by more engineers, hobbyists,
students and.professional programmers than any
other development environment in the history of
microcomputing. And yet, Turbo Pascal is
simple and fun to use!

TURBO
2.0

The best just got better:
MS
, PASCAL Introducing Turbo Pascal 3.0
We just added a'whole range of exciting new
features to Turbo Pascal:
• First, the world's fastest Pascal compiler just got
faster. Turbo Pascal 3.0 compiles twice as fast as
Turbo PascaI2.0! No kidding.
• Then, we totally rewrote the file 110 system, and .
.we also now support 110 redirection.
• For the IBM PC versions, we've even added
'turtle graphics" and full tree directory support.
• For all 16 Bit versions, we now offer two additional options: 8087 math coprocessor support
for intensive calculations and Binary Coded
Decimals (BCD) for business applications.
• And much much more.

,,:"

COMPILATION SPEED
EXECUTION SPEED
CODE SIZE
BUILT-IN INTERACTIVE EDITOR

The Critics' Choice.

ONE STEP COMPILE

Jeff Duntemann, PC Magazine: "Language

(NO LINKING NECESSARY)

COMPILER SIZE
TURTLE GRAPHICS
BCD OPTION
PRICE

Portability
Turbo Pascal is available today for most computers
running PC DOS, MS DOS. CPIM 80 or CPIM 86. A
XENIX version ofTurbo Pascal will soon be announced.
and before the end of the year, Turbo Pascal will be
running on most 68000 based microcomputers.

(*) Benchmark run on an IBM PC using MS Pascal version 3,2 and
the DOS linker version 2.6. The 179 line program used is the "GaussSeidel" program out of Alan R. Miller's book: Pascal programs for
scientists and engineers (Sybex. page 128) with a 3 dimensional
non·singular matrix and a relaxation coefficient of 1.0.

An Oller You Can't Reluse
Until Jl:me 1st, 1985, you can get Turbo Pascal 3.0 for
only $69.95. Turbo Pascal 3.0, equipped with either the
BCD or 8087 options, is available for an additional
$39.95 or Turbo Pascal' 3.0 with both optiotls for only
$124.95. As a matter of fact, if you own a 1"6 Bit
computer and are serious about programming, you
might as well get both options right away and save
almost $25.
•

Update policy
As always, our first commitment is to our customers.
You built Borland and we will always honor your
support.
50,'to make your upgrade tathe fl)«;iting new version of
Turbo Pascal 3.0 easy, ,we will accept your original Turbo
Pascal disk (ina bend-proof container) for a trade-i!'""~ c .
credit of $39.95 and your Turbo87 original disk for
$59.95. This trade-in credit may only ,be applied toward
the purchase of Turbo Pascal 3.0 and its additional BCD
and 8087 options (trade-inoffer isonly vand directly
through Borland and until Juneist, 1985),
',' ,

I I.

BORlAnD
INTERNATIONAL

_Software's Newest Direction
4113 ScottsValleyDnve
Scotts Valley, Califorma 95066
TELEX,' 172373

deal of the century . .. Turbo Pascal: It
introduces a new programming environment and
runs like marjic."
Dave Garland, Popular Computing: "Most
Pascal compilers barely fit on a disk, but Turbo
Pascal packs an editor, compiler, linker, and runtime library into just 29K bytes ofJandomaccess memory."
'Jerry Pournelle, BYTE: 'What I think the
computer industry is headed for: well
documented, standard, plenty of good features,
and a reasonable price."

MICRO CORNUCOPIA
P.O. Box 223
Bend, Oregon 97709
503-382-5060 Orders Only
503-382-8048 Tech. 9 - Noon

111110 1101111110.11
April-May 1985

The Micro Technical Journal

Editor & Publisher
David J. Thompson
Operations Manager
David Pogue
Assistant Editors
Rebecca Ozrelic Gary Entsminger

April
Fool

Accounting
Sandra Thompson
Graphic Design
Craig Lannes
Michael Odell
Technical Department
Dana Cotant
Eric Roby
Bruce Berryhill
Laine Stump
Advertising Director
Alice Holbrow
Staff Assistants
Dorcas Dsenis
Tracey Braas
Cary Gatton
Carla Miller
Laura Pendley
Secretary
Christina Donaldson
Typography
Patti Morris & Martin White
Irish Setter
MICRO CORNUCOPIA supports systems
programming languages and builders of single
board and 5-100 systems.
Application to mail at second class postage
rates is pending at Bend, OR 97701. Published
bimonthly by Micro Cornucopia Inc., 155 NW
Hawthorne, Bend, OR 97701. Postmaster:
Send address change to Micro Cornucopia
Inc., PO Box 223, Bend, OR 97709.
SUBSCRIPTION RATES:
1 yr. (2nd Class)
$16.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 your
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.
Copyright 1985 by Micro Cornucopia Inc.
All rights reserved

ISSN 0747·587X

SOGIV
If you saw the list of folks who have
already signed up for the SaG this year,
you'd be surprised (we're certainly surprised).
Ezra Shapiro, West Coast technical editor for Byte, will be our keynote speaker. His talk will be titled "The Demise of
Innovation." Ezra will be sharing with us
his very definite ideas about the 'me-too'
designs.
Slicer will be having a board construction party again (they'll throw in a bare
expansion board free if you build one
this year), plus they'll be bringing all the
rest of their new products to demonstrate and selL Call them to reserve a
board.
The Ampro folks will be bringing up
their Little Board and they are going to
be holding a construction class (at special
prices). In fact, you'll be able to put together a complete Little Board system
complete with Integrand cabinet and
drives, right at the SaG. they'll have
something new to demonstrate. The little Board folks will also be giving a talk
on designing with the Z80. (Actually the
Ampro folks think they are giving it.)
Integrand will be here displaying their
Little Board cabinet (if you're surprised,
go back and reread the previous paragraph). They'll also be doing a presentation on cabinet design and system cooling.
We've invited Philippe Kahn back,
this time to talk about Modula-2 (Turbo
style), and to toot his own horn (he plays
a mean sax). We're still waiting to hear if
he can come.
Speaking Of Music
In fact, we have a very musical group
working at Micro C. Gary and Craig play

No. 23

guitar (semi-professionally); Bruce plays
the flute; Jean (his other half) plays fiddle, and I have one of those fancy Yamaha synthesizers (the DX7), so I can pretend to be just about anything (even an
editor).
My little MSX computer also contains
a pretty decent synthesizer (rhythm anyone?), so we should be be able to come
up with something interesting.
In fact, we will have a jam session
Thursday evening after the Kickoff
Cookout. You are all encouraged to bring
your woodwinds, bongos, strings,
horns, synthesizers, kazoos, speech
generators, Integrands, tin ears, everything .... If we come up with something
that even approximates music, maybe
we'll have a lunch-time performance on
Saturday.
White Water Rafting
This year we'll have the 21/2 hour raft
trip (just like last year), plus an all-new,
all-day affair. The all-day white water
trip will feature a total of 41/2 hours on
the McKenzie River (not counting the
one-hour lunch on the bank). There will
be an incredibly beautiful P/2 hour van
ride to the starting point through some
of the most beautiful alpine terrain in the
Northwest.
Reservations
There are limitations on the number of
people we can accommodate in the dorm
(there are only 25 double rooms). The
rafting trips shouldn't be any problem
because the guides will run as many
groups as necessary. But please call us to
verify space if you want to stay in the
dorm.
Trenton
The 10th annual Trenton Computer
Festival will be held April 20 and 21 at
Trenton State College, Trenton NJ. They
say it's the oldest computer fair in the
country. I've also heard they have one of
the best flea markets going (a whole
parking lot full of tables and tractor trailers). When I mentioned that I would be
attending, Sol Libes suggested that I
come in a truck.
(Continued on Page 77)

LETTERS
Go Winnie!
I have enjoyed your publication very
much during the past year. In fact, I recently changed my subscription to first
class and submitted two gift subscriptions.
I have a comment on the closing paragraph of your Kaypro column for October.
We have had three Kaypro lOs with
this same 'status 02' error over the last six
months. Each time the error occurred,
the hard disk was not up to speed when
the Kaypro 10 tried to read it. In all three
cases the problem stemmed from the
hard disk controller board. After the
boards were replaced, the 'status 02' error problem was resolved.
StanleyD. Watson
4745 Convention Street
Baton Rouge LA 70806

Editor's note:
I also got a call from a local dealer about this
problem. He had contacted two of the drive
manufacturers and found out that some of the
drives Kaypro is using are the low current
versions which start very slowly. (In fact,
they often won't start at all if the head gets
left somewhere other than in the safety position and is resting on the disk.)
He has found that if he lubricates the winchester's stepper arm with a little silicon
spray, the head will return to the safety position between data fetches and the drive will
start properly the next time the system is
turned on.
ZCHESS & Ticks
I certainly wouldn't begin to complain
about the value of your users disks. But I
would like to point out a bug or two.
First, on ZCHESS from K3 there have
been several occasions when the computer playing black thinks it's entitled to
move two pawns two spaces at once
from other than the second rank. This
wouldn't bother me so much except that
it won't let me cheat in the same way.
Now, there's certainly twelve bucks
worth of other stuff on that disk, but it
would be nice if the main attraction for
, me didn't have that bug. (The CRC
checks out, by the way, although I guess
there could be some obscure memory
problem in my machine causing this
slip.) Anyway, I wonder if there's a ver-

2

sion of ZCHESS out there somewhere
without the bug?
The other thing I wonder about is that
the version of ZCPR on your second release of it (haven't tried the first) puts a /I'
at the end of each comment it makes, including each listing in a directory. Minor
little mark, and it's so damned useful
that it's certainly overlookable. But what
the heck is it doing there? And can the
thing be exorcised? (By the way, rm running it on an '83 II.)
Whitney Blauvelt
505 E. Denny Way #507
Seattle WA 98122

Editor's note:
Due to papular demand we changed ZCPR
to display special characters (the normal CCP
doesn't let them reach the screen, but people
wanted to display them and so we ... ). Anyway, that little tick you see on the screen is
what the Kaypro displays when it sees a null
(0) byte. Every other system I've seen simply
discards the null, but not the Kaypro (there
are a number of situations where the null can
be very irritating). So it is not without malice
of forethought that our Pro-Monitor ROMs
throwaway nulls.
Pro-8 Installation
Someone once said that the devil
dwells in the details. I found this to be
true when I recently did the Pro-8/Plus-4
upgrade on my Kaypro II, installing two
Mitsubishi half-height, quad density
drives (4853) in place of the original 'A'
drive. I would like to pass along what I
learned about some of the details of this
upgrade.
The existing screws holding the Tandon drives require a 7/64" allen wrench.
This is a size not found in most of the
common allen wrench sets.
The screws from the Tandon do not fit
the Mitsubishis. You need 3m x 1m socket head cap screws which are not available in most hardware stores.
To install two half-height drives in
place of one full-height drive the entire
drive enclosure must be removed from
the computer case and new holes drilled
in it. This is not particularly difficult, but
laying out the new holes is tedious. This
wouldn't even need to be done if only
one new drive were being installed.
The power connector for the drives is

not sold in Radio Shack or in most elec~
tronic supply houses. Nor could I find it
in most computer stores which claim to
have a service department.
The Micro C Plus-4 Decoder Board
does not go on the obvious way. The
numbers on the decoder board must correspond with those on the main board,
which means that the decoder board will
cantilever out over the drive enclosure.
When the cover is put back on, everything shorts out. This probably never
happens to the Micro C folks who never
put their covers back on. The problem
can be fixed up with some electrical tape
and cardboard, but it would be better if
the designer went back to the drawing
board.
Neither the problems nor their solutions were very profound, but resolving
them took about three quarters of the
time needed for the entire installation.
Everything is working nicely now.
WalterB. Whitcher
319 E. 24th Street
New York NY 10010

Editor's note:
You are right about our covers. They come
off when the machine comes out of the box and
they usually stay off. Forever. Now, we are
using a new low profile connector (the part
that hangs out over the drives) so folks' circuits shouldn't be so short any longer.
Xerox 820 Info
I've recently 'discovered' Micro Cornucopia and I am enjoying it. It's nice to
see a magazine that gets down to the
basics. I wrote the Apple Cart column in
Creative Computing for three years
when an author could still do some of the
things you do in your publication. Now,
if you aren't reviewing someone else's
software, no one wants your articles.
The parts of Micro C that I am most
interested in are those about the original
820 CPU. I was the senior electrical manufacturing engineer on the program
from its beginning. From that perspective I'd like to make a few comments.
A technical reference manual called
/lSoftware Development Guide" was
published to complete the only detailed
source of 820 documentation. The book
includes all the software and hardware
information available for the 820 board.

Micro Cornucopia, Number 23, April-May 1985

LITTIRS
All the schematics for PWA etches 1 and
2 are there, as are the listings for versions
1.0 and 2.0 of the monitor ROMs. There
is a wealth of other information including programming data for the SIOs,
PIOs, the CTC and the FDC chips. Perhaps you could get permission to reprint
this as a project for Micro C magazine.
About disk drives, software, and other
things. Most people know that the 820
'was designed for single-sided 51/4"
drives. Later, the double-sided drives
were added and so were single-sided 8"
drives. With the etch 1 CPU, it was not
directly possible to use DS 8" drives. For
DS 51/4" drives, version 3.0 of the CP/M
operation system was issued. This allowed the user to initialize and copy on
two-sided media.
In the process of developing test procedures and equipment for the two-sided drives, I discovered that the software
was really looking at four separate single-sided drives. Once a diskette was
initialized with the 3.0 INIT program, I
used my DS system as four drives in the
sequence A,C and B,D; worked fine, too.
I could get the equivalent of four singlesided drives in a two-drive package.
Otherwise, the original system was capable of four single-sided drives anyway. The user would only need to properly wire and encode the drive block on
the individual drives. Shugart's SA400
manuals show how to do this.
Chuck Carpenter
3714 Bishop Hill Dr.
Carrollton TX 75007
Fixing The SBASIC Sorts
In Jack Rodenhi's SBASIC column (Issue 19) there seems to be some confusion
about SBASIC's rules governing recursion. Rodenhi states, "In the manual's
example program on recursion, X2
seems equivalent to our variable ListSize. In the discussion of their program,
they claim that X2 would not be duplicated when P3 is called from P4." Jack is
correct that ListSize is equivalent to X2
and that it is indeed duplicated. However, he is incorrect in saying that this corresponds to P4's calling P3 on line 20 of
the manual's example program.
In SSSORT (Jack's procedure which
contains ListSize), it is SSSORT itself
which calls its nested procedure READ-

RECORDS (causing ListSize to be treated recursively). The corresponding call
is on line 26 of the manual's example
program, where P2 calls P3. There it
clearly shows that X2 will be duplicated.
Although the example program correctly indicates how SBASIC's recursion
occurs, the manual does not. (So what
else is new?) Recursion occurs when a
procedure calls itself or when one nested
procedure calls another nested procedure (including the situation where a
nested procedure calls the unnested procedure which contains it). Recursion will
also occur when a nested procedure is
called by the procedure which contains
it. (Anyone for Peter Piper?)
Also, arrays are treated differently
than variables in recursive calls because
arrays are not duplicated. (If the call
causes the DIM statement to re-execute,
however, the array may be reinitialized.)
This provides at least four ways for
Jack to fix his program:
1. Procedures (such as READRECORDS) which change one of the
variables he ,describes as "global in the
procedure SSSORT" could be rewritten
as subroutines.
2. Those same procedures could instead be rewritten as functions which return the value of the changed variable (in
use this might look like "ListSize =
READRECORDS (ListSize(O)").
3. The variables in question (such as
ListSize) could instead be declared as
one-element integer arrays (e.g., ListSize (0)).
4. Those same variables could be
made global to SSORT by moving their
declaration outside of the procedure (of
course, that would make them global to
the rest of the program as well).
Richard Levine
3105 Meadow Grove Dr.
San Diego CA 92110
Run CP/M On An IBM?
I need your help with a CP/M problem. I haven't been able to locate any
products that will do what I want.
I am writing software in Turbo Pascal
under MS-DOS. I want to port over finished software to run on CP/M machines. For this conversion, are there coprocessor boards I can add to my
PC-compatible system so it will look like

Micro Cornucopia, Number 23, April-May 1985

a CP/M system to a CP 1M Turbo Pascal
compiler? Are there any products for the
PC that emulate the Z80 or 8080 to do
what I want?
Please supply the names and addresses of any suppliers of suitable boards and
emulators. Many thanks for your help.
, Frank J. Mihm
Box 622
Aptos CA 95001

Editor's note:
What a refreshing request. For a while
there, I thought everyone was going in the
other direction. OK, there are several clones
(or semi-clones) that say they can run both:
Rainbow, Chameleon, and, I believe, one of
the Heath systems. However, I am not aware
of any plug-in boards that will handle this.
Any suggestions, anyone?
The obvious option would be to get a Kaypro and transfer the software over serially.
Kaypro also has a utility that is supposed to be
able to read MS-DOS disks and transfer files
to CP 1M. So far, we haven't been able to get it
to work. What are you working on, by the
way?
Speed-Up Problem
I purchased a Pro-Set II so I could upgrade my 1983 Kaypro II to 5MHz (and
then do a program for the Palm Beach
KUG). In the process, I learned a few
things.
First, my Kaypro II is really a 4 inside
so I had to exchange the Pro-Monitor II '
for a Pro-Monitor 4. Second, the Z80B
costs between $12 and $45 depending on
where you buy. Third, I'm still having a
problem because at 5MHz the system
runs for about a minute and a half and
then locks up.
Gene Klein
12775 Builford Circle
West Palm Beach FL 33414

Editor's note:
You are not the only person who has a II
with the heart of a 4. Anyone with an older
Kaypro II (pre-84-which means it has the
standard full-width Tandon drives and no
graphics) should take the top off his or her
Kaypro II and read the paper stuck to the top
of the monitor ROM (there are two chips
with paper on top-the one nearest the front
(Continued on Page 64)

3

Automatic Disk Re-Iogging With CP 1M 2.2
By Clark A. Calkins

If you've felt like resetting the parity
bit on the person who installed "BDOS
ERROR ON A: DISK R/O" in your computer's vocabulary, then you're in the
right spot. In this article we'll cover why
CP/M makes a disk "read only." Plus,
you'll find out what you're really telling
the operating system when you hit ctrlC. Doing this mod is (almost) never having to say "warm boot."
I'll show you how to modify the source
of CP/M (see reference 1) rather than
asking you to patch bits and pieces of the
executable code.

1907 Alvarado Ave.
Walnut Creek CA 94596

Figure 1 • Changes to the CCP

,J

Process command line here.

CMMND2

MVI
CALL
LXI

C,41
ENTRY
O,TBUFF

;Reset the disk re-log vector.

UNKWN8

MOV
STA
CALL
CALL
CALL
MVI

A,B
TBUFF
CRLF
STOOMA
SETCRDV
C,41
ENTRY
TBASE

;Now store the character count.

CALL
CALL

;Clean up the screen.
;Set standard transfer address.
;Reset current drive.
;Reset the disk re-log vector.
;And execute the program.

CPIM Is Smart

When the CP/M V2.2 operating system first accesses a disk, it scans the directory and makes a map showing which
spaces (or blocks) on the disk contain data and which spaces are available for use.
This map is called a bit map and is updated when space is allocated (a file is created or expanded) or when space is released (a file is erased).
The map is kept in memory, so unless
CP /M does some checking, you could
destroy data simply by changing disks.
You see, when CP/M writes data to the
new disk, it writes the data into the areas
that the bit map says are available. (Of
course, these areas might not be available on the new disk, so it would be writing over valid data.)
To prevent this, CP/M keeps a condensed record of the directory (actually,
this is a series of checksum bytes) in order to tell if the disk directory has
changed. When this occurs, CP/M will
tag this disk as 'read only,' so you can't
write to it. Nice, huh? The only problem
is that you get a "BDOS ERROR ON A:
DISKR/O."
Of course, this means you need to
type ctrl-C to let CP 1M know the disk has
been changed-after CP1M just told you
that the disk had changed. (Oh well, nobody said operating systems had to be
both smart and helpful.)
Making CPIM Helpful
The modifications described below
will force CP /M to update the bit map
(and the directory check) whenever a
disk is changed, as long as the update

Figure 2· Clearing the Re·/og Vector

,
J

BOOS function jump table.

NFUNCTNS EQU
FUNCTNS OW
OW

ow
OW
DW
DW

42

;Set function count limit.

WBOOT,GETCON,OUTCON,GETRSR,PUNCH,LIST,OIRCIO,GETIOB
SETIOB,PRTSTR,RDBUFF,GETCSTS,GETVER,RSTDSK,SETOSK,OPENFIL
CLOSEFIL,GETFST,GETNXT,OELFILE,READSEQ,WRTSEQ,FCREATE
RENFILE,GETLOG,GETCRNT,PUTOMA,GETALOC,WRTPRTO,GETROV,SETATTR
GETPARM,GETUSER,RDRANDOM,WTRANDOM,FILESIZE,SETRAN,LOGOFF,RTN
RTN,WTSPECL,CLRLOG

Figure 3 . Checking the Disk Directory
;
Routine to set or compare the directory checksum byte. If
; (C)=OFFH, then this will set the checksum byte. Else the byte
; will be checked. If the check fails (the disk has been changed),
; then this will be write protected.
; Note, changes added here will not write protect the disk unless
; the re-log vector says this cannot be re-logged (a file is open).
CHECKDIR:LHLD
XCHG
LHLD
CALL
RNC
PUSH
CALL
LHLD
XCHG
LHLO
DAD
POP
INR
JZ
CMP
RZ
. CALL
RNC
LHLO
CALL
JNZ
STC
JMP
CHKDIRl MOV
RET

CKSUMTBL
ALLOCl
SUBHL
;Ok if

(~Ksumtbl)

> (allocl), so return.

B

CHECKSUM
CHKVECT
CKSUMTBL
D
B
C
CHKDIRl
M
MOREFLS

;Else compute checksum.
;Get address of checksum table.

;Set (HL) to point to byte for this drive.
;Set or check?
;Check them.
;Return if they are the same.
;Not the same, do we care?

RELOG
JCan we re-log in this drive?
GETWPRT+3 ;Get bit for this drive.
WRTPRT
;Nope, set write protect bit then.
;Okay, set carry saying that this disk must
STFILPOS ;be re-logged. Also reset pointer to start.
M,A
;Just set he byte.

(Continued on Page 6)

4

Micro Cornucopia, Number 23, April-May 1985

EZPROMMER
EPROM PROGRAMMER
FOR THE BIG BOARD
AND XEROX 820
Figure 4 - Getting the Next File Entry From the Directory

FEATURES:
• Supports 2716, 2732, 2732A,

Move on to the next next file position within the current
directory buffer. If no more exist, set pointer to OFFFFH
and the cal~~ng routine will check for this. Enter with (C)
equal to OFFH to cause the checksum byte to be set, else we
will check this disk and set write protect if checksums are
not the same (applies only if another directory sector must
be read).

2764, 27128, 27256

Modifications here will re-log the current disk if a change has
been made and it is safe to do so.
NXENTRY:LHLD
XCHG
LHLD
INX
SHLD
CALL
JNC
JMP
NXENTl LOA
ANI
MVI
NXENT2 ADD
OCR
JNZ
STA
ORA
RNZ
PUSH
CALL
CALL
POP
CALL
RNC
PUSH
CALL
POP
JMP

DIRSIZE

;Get directory entry size limit.

FILEPOS
H
FILEPOS
SUBHL
NXENTl
STFILPOS
FILPOS
03H
B,s

;Get current count.
;Go on to the next one.
; (HL)=(DIRSIZE)-(FILEPOS)
;Is there more room left?
;No. Set this flag and return.

B

;Get file position within this directory.
;Only look within this sector (only 4 entries fit)
;Convert to relative position (32 bytes each).
;Note that this is not efficient code.
;5 'ADD A's would be better.

NXENT2
FCBPOS

;Save it as position of fcb.

A

A

;Return if we are within buffer.
B

TRKSEC
DIRREAD

;We need the next directory sector.

B

CHECKDIR
B

BITMAP

;Check this directory segment.
;Just return if no more to do.
;Wait, we must re-log this drive and then
;start from the beginning again.

This will mark the drive to prevent re-logging at a later time.
C,ls
;Compare the first 15 bytes.
FINDFST
;Get the first one in directory.
CKFILPOS· ;Any at all?

RZ

OPENITl LHLD
MOV
MOV
CALL
SHLD
CALL
MOV
PUSH
PUSH
CALL
XCHG
LHLD
MVI
PUSH
CALL
CALL
POP

APL
CHARACTER GENERATOR
FOR XEROX 820-D

NXENTRY

Open a file (name specified in fcb).

MVI
CALL
CALL

EZPROMMER
A&T w/Harness, Disk .... $125
Kit with Disk . . . . . . . . . . .. $90

B

Figure 5 - Opening a File For Reading or Writing

OPENIT

• Easily installed with only two
connections
• No external supply needed, all
power derived from +5 Volts
• All power controlled by
software
• 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.

RELOG
B,H
C,L
SETBIT
RELOG
SETEXT
A,M
PSW

;Set flag to pravent subsequent re-logging
;of this drive. We now call it unsafe to
;change.
;Point to extent byte within users fcb.
;And get it.
;Save it and address.

Upgrade kit allows the 820-11 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

H

FCB2HL

;Point to fcb in directory.

PARMS
C,32

;This is the users copy.
;Move it into users space.

716-377-0369

r

o
DE2HL
SETS2B7
o

;Set bit 7 in '52' byte (unmodified).
;Now get the extent byte from this fcb.

JOPTRONICS

TECHNOLOGY

P.O. BOX 81
PITTSFORD, NY 14534
(Listing continued)

Micro Cornucopia, Number 23, April-May 1985

5

AUTOMATIC DISK RE-LOGGING _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 4)

can be done safely.
In the following figures, it is unsafe to
alter the tables only while a file is open.
Therefore, application programs (Dbase
II, WordS tar, SuperCalc, etc.) are protected, while still allowing maximum
flexibility on disk changes.
You can enter the modifications with
any good editor (we all have our favorites). Check the listed routines against
your source code to be sure you understand which lines have been inserted or
changed. Then re-assemble the source
and combine it with the BIOS code. Finally, you can SYSGEN a new disk.
Changes To The CCP
The console command processor
(CCP) needs to be modified to clear the
disk re-Iog vector after each command
and prior to the execution of a user's program. I've added a new BDOS function
(#41) for doing this. If you are using
ZCPR or other new 'front end,' then
these changes must be placed at the appropriate locations within the code in
Figure 1. Consult local talent if you are
not sure what to do (or where to do it).
Changes To The BOOS Function
Jump Table
An added function (#41) in Figure 2
allows the re-Iog vector to be cleared
without having to reset all the disks.

Changes To The Routine CHECKDIR
The routine in Figure 3 is used to check
the disk directory against the stored
check value. If the disk needs to be relogged, the carry flag is set. (The disk will
be marked 'read only' if the check values
don't match and it is not OK to re-Iog the
disk.) Note that changes are marked
with a vertical line in the left column.

Changes To Routine NXENTRY
Figure 4 shows a routine which is
called to get the next file entry from the
directory. It will check to see if a disk has
been changed by calling the routine in
Fig. 3 (if a new segment is to be read froni.
the disk). The modifications here will
cause the disk bit map to be re-computed
if a disk change is detected and the disk
is not write-protected.

6

Changes To The OPEN IT Routine
The routine in Figure 5 will open a file
for reading or writing. When this occurs
successfully, we will mark this drive so it
cannot be 're-Iogged in the event of a disk
change. Note that there is no way to determine whether the file has been closed
(making it safe once again for re-Iogging). So, we have to issue a reset command when we close a file.
Disk Reset Function
This routine (Figure 6) resets all disks.
The result is that disk A is logged in and
all other disks are write-enabled. The
routine clears the disk re-Iog vector if it
was set.

Added Routine CLRLOG
The routine in Figure 7 has been added
to clear the re-Iog vector. It allows the
CCP to reset this without forcing the system to re-read all the disks. Use this
when you know that changing the disks
is safe. Locate this routine after the
RSTDSK routine in Figure 6.
Storage Area Changes
To accommodate the extra storage
space needed, the changes shown in Figure 8 are necessary, making the BDOS 36
bytes longer. If it is critical that the BDOS
remain the same size (as it usually is),
some space must be found. Have no
fear, there is plenty of room for improvement.

Figure 5 - Listing continued
LXI

H,l2

DAD

0

MOV
LXI

C,M
H,lS
o
B,M

~into

H

~keep

PSW
M,A
A,C

~Is

DAD

MOV
POP
POP
MOV
MOV
CMP
MOV
JZ
MVI
JC
MVI
OPENIT2 LHLO
LXI

~Now

(Cl.
get the record count byte into (B).
the same extent as the user had originally.

this the same as in the directory fcb?

M

A,B
OPENIT2
A,O
OPENIT2
A,l28
PARAMS
0,15

DAD

o

MOV
RET

M,A

;If yes, then use the same record count.
;If the user specified an extent greater than
;the one in the directory, then set count to O.
;Otherwise set to maximum.
;Set record count in users fcb to (A).
;Compute relative position.
;And set the record count.

Figure 6 - Resetting the Disks
;

Function to reset the disk system.

; Changed to also clear the relog vector.
;

RSTOSK

CALL
SHLD
SHLO
STA
LXI
SHLD
CALL
JMP

CLRLOG
WRTPRT
LOGIN
ACTIVE
H,TBUFF
USERDMA
OEFOMA
LOGINDRV

;Clear the re-log vector (returns HL=O)
;Clear write protect vector.
;Also the disk log in vector.
;Select drive A:.
;Setup default OMA address.
;Now log in drive A:.

Figure 7 - Clearing the Re-Iog Vector (again)
;

Function #41 to re-log all disks.

;

CLRLOG

XRA
MOV
MOV
SHLO
RET

A
H,A
L,A
RELOG

;Set (A) and (HL) to zero also.
;Clear the relog vector.

Micro Cornucopia, Number 23. April-May 1985

The following entry points end with a
jump instruction and may simply be
moved in front of the destination, thus
saving the three bytes for the jump. The
code for these is not shown here, but
upon examination, the section of code to
move should be apparent.

Figure 8 - BDOS Data Storage Pool

EMPTYFCB:OB
WRTPRT
OW
LOGIN
OW
RELOG
OW
USERDMA OW

SETOSK
OPENFIL
CLOSEFIL
GETNXT
OELFILE
READSEQ
WRTSEQ
FCREATE

It should go without saying that any
experimentation must be done on a
spare disk, and the resulting system
should be tested thoroughly with all
common applications before converting
all of your disks. I have tested this for a
few months now, but I still have not
changed my business disks. I certainly
don't want to chance a problem with my
main inventory and expense record disk.
The IRS just wouldn't buy it!
Editor's note: Clark Calkins wrote the utility
image. See the following References for in-

References
1. SCG22, A Source Code Generator For
CP /M V2. 2. This will generate source
code complete with labels and comments for the CP/M 2.2 operating system. Available from c.c. Software, 1907
Alvarado Ave., Walnut Creek CA 94596
for $45 plus $1 shipping ($2.50 foreign)
and 6.5% sales tax for those lucky
enough to live in California.
2. CP/M Plus, User's Guide, Digital Research, Pacific Grove, California. Refer
to Section 2 for disk change information.
3. CP/M Plus, Programmer's Guide,
Digital Research, Pacific Grove, California. Contains a good discussion of how
the CCP and the BDOS work together in
Section 1.

• ••
Micro Cornucopia, Number 23, April-May 1985

OaOH

Empty directory segment indicator.
Write protect status for all 16 drives.
Drive active word (1 bit per drive).
Drive re-log disabled vector.
User's DMA address (defau:ts to ao h).

SERVO 8
HIGH PERFORMANCE
SINGLE BOARD COMPUTER

to generate source from your CP/M system
formation on how to get this package.

OESH
0
0
0

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

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
3 Y2" & 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 - $389
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

7

With the MRS/OS Source Code,
you can see the light.

SPECIAL FREE OFFER TO
8" DISK USERS!

If you own a CP/M compatible operating system,
you've had to put up with the mistakes and quirks
of someone else's programming. Until now. Now
you can see the light with MRS/OS. In fact, MRS is
a full operating system designed to replace CP/M
2.2 or COOS and it comes with complete source
code. MRS is designed for Z80 processors, runs
CP/M software, and can interface directly to a
CP/M BIOS, saving you a lot of sysgen time.
With MRS, you get more than what you pay
for. For under forty dollars you receive fully
commented source code for standard and
extended BOOS functions, a sample BIOS, our allin-one utility package and a 130 page manual.
So if you're tired of being in the dark with some
other guy's program, here's the answer to your
prayers.

ACT NOW and receive qur ultra-fast, flexible disk
format program, FREE! FORMAT can format a 77
track 8" disk in just 25 seconds and provides you
with four of the most common disk formats
used with CP/M based systems:
• 8" SSSO 128 byte sectors, 26 sectors/track,
76 tracks
• 8" SSOO 256 byte sectors, 26 sectors/track,
76 tracks
• 5.25" SSOO 256 byte sectors, 18 sectors/track,

40 tracks
• 5.25" SSOO 512 byte sectors, 10 sectors/track,

40 tracks

.----------------------

I
I
I YFS! Please send me - - MRS/OS Source
I
I
Code(s) for just $39.9S each on D H" SSSD disk or
I
( includes shipping & handling in
I D SI/4 " Kaypro format disk. If I act right now, I'll
I
N. America;
add S12)
I receive a FREE FORMAT program included on the
orders include
sales tax
I
disk
(W' disk users ONlY).
I
I
Order by phone 24 hours a day!
I
D
VISA/Mastercard
expo
date
I
(617) 478-3102
~ I
(
circle one)
I
Tech. inquiries: 7:30pm-1O:30pm EST (Wed. ONLY)
I
I D Check
I
I D Please send more information
I Name _______________________________ I
•
I Address _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I
I
I
I City _______ State - - - - - Zip - - - - - - I
I Phone ______________________ I
I
I Send to: OCCO, Inc.
CP/M is a registered trJueffiark of Digital Research Corp.
I
.
28 Claflin St., Milford, MA 01757
I
' - -_ _ _ _ _
CD_<_>s_is_a_re.:....gis_·tc_·re_·u_tr_au_effi_a_rk_o_f(_:rI_lffi_e_ffi_':o_(_:orp..:...._ _ _ _ _ _.... _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ •
oversea~

Ma~s.

';'X.

# ----

I

8

~~I

Inc.

Micro Cornucopia, Number 23, April-May 1985

The 5-100 Bus
736 Notre Dame
Grosse Pointe MI 48203

By Dave Hardy

As we will see in future 'S-100 Bus'
columns, the IEEE-696 (S-100) bus can
do things that most other computer busses cannot. But before we get into such
exciting stuff as multi-processing, TMA,
and Master-Slave operating procedures,
we have to be familiar with the simpler
operations of the S-100 bus. Probably the
easiest thing we can do to become familiar with the S-100 bus is add some simple
I/O circuits. This month's column will
teach you how to do that.
Some Simple 1/0 Circuits
Unlike most other types of small computers, an S-100 machine offers the great
advantage of (almost) painless I/O expansion. If the user needs another printer port or a digitizer input, he needs only
to plug an additional board into the S100 bus, interface his software, connect
the wires, and go.
S-100 boards are available in several
flavors to do just about anything a computer board can do. In fact, if the user is
incredibly cheap (or frugal, which is how
I refer to myself) he can even build his
own I/O boards with a little pain, a little
grief, and very few bucks.

In fact, most S-100 users don't know
how easy it is to add additional 110 to
their machines. The circuits shown in
Figures 1 and 2 illustrate some simple
'bare-bones' parallel input and output
circuits that can be added to any S-100
machine for less than $50 (including the
cost of a prototype board and all parts).
Of course, the prototype card would
have room for a lot more than a single 1/
o port. A resourceful builder could
probably cram about 50 of these ports
onto a single board (and then he could
share the other 49 with his friends and
neighbors).
If you are confused by the circuits in
Figures 1 and 2, don't worry. If you have
any experience with TTL circuits, the
function of these circuits should be readilyapparent. If not, at the end of this column, I will recommend some books you
can buy to transform yourself into an S100 wizard in just a few hundred pages.
(Of course, it would also help to read future issues of Micro C.)
Now for the hard stuff. Following is
probably the world's shortest introduction to S-100 board design (at least, for 1/
o ports).
Figure 2 - Parallel Output

Figure 1 - Parallel Input
.5
74LSI36

.5
14LS136

IK

IK

A6~1-------l,~"""'"

A4~3~---~

AI~8~_ _ _~--......

li

_ /'

,S..ELECT)

pDBNU461.....------~

slNP

DI7----~07

E

D07M---...rn~~~

07

0064:!.!(lJ~-_~

DI6----~

015----~TRI-SrATE

014

DRIVER

013-----t
DI2----~

INPUT

DATA

39
005..:::.=-------1
004~3.:;:.8- - - - I

OCTAL
LATCH

003..::.89~--~
D02..::.aa~----I

LATCHED
OUTPUT
DATA

Still More Decoding
After determining that the I/O address
is proper, a few other things still need to
be determined by the interface. First, all
the address decoder does is read the address lines and tell the interface when
they match. In the S-100 bus, I/O addressing and memory addressing are
both done on the same lines, so the next
thing that must be determined is whether the address the decoder is seeing is an
I/O address or a memory address. This is
done by looking at the sINP and sOUT
lines, which indicate if the read or write
operation about to take place is an I/O
operation, or a memory operation.
Once the interface has decided that
the bus operation about to take place is at
its own address, and that it is an I/O operation, it then monitors the pWR* (for
output) or pDBIN (for input) line to determine exactly when to transfer the data
from or to the bus.
The following are definitions for the S100 bus lines we'll be using. These definitions should help you understand
what is happening in the examples.

OOI""'35~_ _---I

011-----1
DI~-----IO

NON-LATCHED

II 0 Addressing
In order to send data between a peripheral device like a printer or a bank of
LEDs and the S-100 bus, an interface
must monitor several of the S-100 lines
to determine when the bus is ready to
input or output a piece of data. In addition, the interface must also decide if the
data about to be transferred is to be
transferred by it, or by s~me other interface. The interface does this by reading
the S-100 bus address lines to see if its
own unique I/O port number (or group
of port numbers) is being addressed (see
the ADDRESS DECODER section of Figure 1). This procedure is called "Address
Decoding."
If the number it reads doesn't match
its own address (port) number, then it
does nothing. If the number it reads does
match its own address, then it assumes
that the S-100 bus might want to talk to
it. The address match causes the SELECT* line (shown in Figure 1) to go true
(that is, it goes to a logic 0, since SELECT* is a "low true" signal), which enables the rest of the interface.

0

DO

0~..:::.3~6----ID~

Micro Cornucopia, Number 23, April-May 1985

Q0

(Continued on Page 11)

9

No""

there is a choice I

SEND ORDERS TO:

PHOENIX ELECTRONIC DEVELOPMENT CORPORATION
618 Venice Boulevard
Marina Del Rey, CA 90291
(213) 827-2511

DEALERS AND DISTRIBUTORS WELCOME!

5-100 BU5 _ _ _ _ _ __
(continued from page 9)

Z sets you FREE!
Z - yes! Synergistic combination of ZCPR3 and ZRDOS2 produces

Line Descriptions
pDBIN (processor Data Bus IN) pin 78,
active high-A generalized read strobe,
asserted for memory read, I/O read, and
interrupt acknowledge cycles. Used to
enable a slave's data output bus drivers
to gate data onto the 5-100 bus.
pWR* (processor WRite) pin 77, active
low-A generalized write strobe, asserted for memory and I/O write cycles.
Indicates to slave that the data output
bus contains valid data.
slNP (status INPut) pin 46, active
high-Active when 5-100 bus is executing an input cycle and reading from an 1/
o port address.
sOUT (status OUTput) pin 45, active
high-Active when 5-100 bus is executing an output cycle and writing data to
an I/O port address.
Although these definitions are not
complete, and are not strictly in agreement with the IEEE-696 standard, they
should be adequate for most simple 5100 interfacing projects.
Homework
If you want to know more about the 5100 (IEEE-696) bus, I would recommend
the following book: "Interfacing to 5100/IEEE-696 Microcomputers" by Sol
Libes and Mark Garetz (Osborne/McGraw-Hill 1981, ISBN 0-931988-37-3).
You might also want to get a copy of IEEE
Task 696 (The S-100/IEEE-696 standard)
directly from the IEEE, although the preliminary standard is contained in the
book mentioned above.
Next Time
The next "5-100 Bus" will demonstrate some ways to see what your machine's bus is doing, introduce the IEEE696 concept of multiple processing, and
answer some reader questions about 5100 system expansion and troubleshooting.

•••

flexible state-of-the-art Z80 operating system with tremendous productivity features.
Z-System consists of software modules, dynamic loading segments,
and tools permitting optimum computer usage ranging from production program development to turnkey, password-controlled, end-user
installations. Facilities include: multiple commands per line, file search
paths, named directories, I/O redirection, command flow control,
screen-oriented menu generators, complete housekeeping file and
directory management, shells, alias (scripts) and nested-alias generation, and complete online help.
Seventy-six support utilities, five tool packages, and two application
programs available now! Fully upward compatible with CP/M-80.
Z can now be purchased as auto-install program (Z-Com) or as
manual-install ZCPR3 with semi-auto install ZRDOS package (ZSystem). Our latest versions, to be released this year, support Zilog
Z800 and Hitachi HD62801/64180 high-technology chips, chips run
existing 8080 and Z80 programs!
Echelon eight-bit operating systems written in Assembly Language,
using linkable macro subroutine libraries, offer performance paralleling best single-user 16/32-bit microcomputer systems.
1. Z-Com Full-up Z Operating System with input/output redirection
running under CP/M-80, online command and utility documentation
and help system ..................................... $219.95
2. Z-System Manual-install ZCPR3 and ZRDOS2, easily tailored by
programmer to custom needs; source code to core and utilities; similar
to Item 1 .................................,........... $199.95
3. Z-Tools Four software development system packages permitting
advanced, structured program design, macro relocating assembler,
linking loader, librarian, cross-reference generator, debugger, mnemonic and pseudo-op translators, and interactive disassembler. Super
$315.00 package val ue ................................ $200.00
4. DSD Dynamic Screen Debugger offers high-level features never
before found in microcomputers; simultaneous display of dual-memory
segments, stack, cpu states, and flags, with software In-CircuitEmulation ........................................ '... $149.00
5. The Libraries Linkable ZCPR31ibraries (Vlib, Z3lib, and Syslib3)
of over 400 subroutines used for Assembly Language program writing.
Simplifies structured, efficient code production; online help system
and full source code provided ........................... $45.00
Syslib3 alone ......................................... $29.00
6. Term3 New generation communication program permits menu
control of computer/modem operations between operator and timeshare services, bulletin-boards and other remote computer systems;
auto-answer to command-line prompt .................... $99.00

7. Discat Fancy file and disk catalog program running under ZSystem, menu driven and easily customized by operator ..... $49.00
Fortnighter newsletter, 24-hour BBS Z-Node System keep Z users
informed of microcomputer happenings. Write or call for brochure or
order now! State disk format desired; add $3.00 shipping & handling;
Californians please add 6-1/2% sales tax. Visa/MC, check, money or'
purchase order accepted. (Program names are trademarks of their
respective owners.)

(-= i1 Echelon, Inc.
101 First Street. Los Altos, California 94022 • 415/948-3820
Micro Cornucopia, Number 23, April-May 1985

11

~~
CALENDAR/CLOCK

THE WORLD'S FASTEST

S-100 Z-80 SLAVE PROCESSOR

$69

TurboS/ave I
•

8 Mhz Z-80H

•

128k Ram with parity

•

Data transfers to 1
mbyte/second

•

2 RS-232 Ports.
50-38.k baud

• &100 IEEE-696 compatible

•

F.I.F.O. communications

•

4k Monitor rom

•

On board diagnostics

•

Low parts count

•

Low power consumption

•

No paddle boards

•

TurboDOS compatible

- WORKS WITH ANY Z-80 BASED COMPUTER
- PIGGYBACKS IN Z80 SOCKET
- USES NATIONAL MM58167 CLOCK CHIP,
AS FEATURED IN MAY '82 BYTE.
- BATTERY BACKUP KEEPS TIME WITH
CPU POWER OFFI
- EASY TO USE SOFTWARE INCLUDED TO
SET AND READ THE CLOCK IN BDS C,
JRT PASCAL, TURBO PASCAL, AND
MICROSOFT BASIC, WITH ALL SOURCE.
- SOFTWARE IS AVAILABLE ON 8" SSSD,
5" XEROX 820, KA YPRO 2, OSBORNE,
NORTHSTAR, CROMEMCO, APPLE CP/M
DISKS AND OVER A MODEM FOR OTHER
COMPUTERS.
- PACKAGES AVAILABLE:
FULLY ASSEMBLED AND TESTED
$99
COMPLETE KIT
$69
BARE BOARD AND SOFTWARE
$29

• GUARANTEED COMPATIBLE WITH ALL S-100 SYSTEMS
RUNNING TURBODOS

INTRODUCTORY PRICE $495

. ------®

Includes TurboDOS drivers (a $100 value) and
TurboSlave I'with 128k ram.

~

....

.

~

~---

~

EARTH COMPUTERS

---

=

N.Y. STATE RESIDENTS ADD 7% SALES TAX.
PERSONAL CHECKS, MONEY ORDERS, PURCHASE
ORDERS, AND C.O.Do'S ACCEPTED.

P.O. Box 8067, Fountain Valley, CA 92728
TELEX: 9109976120 EARTH FV

KENMORE
COMPUTER
TECHNOLOGIES

FOR MORE INFORMATION AND QUANTITY DISCOUNTS

CALL: (714) 964-5784
Registered trademarks: ·Z-SOH, Zilog Inc.; TurboDOS Software 2000, Inc.
••• IBM PC YERSION COMING SOON •••

POWER SUPPLY
• + 5V
•
•
•
•
•

@ 4A + DVP. 24 V (jj; 2.5A. :t: 12V
All supplies have over-current protection
Bell circuit and Piezo speaker lor BB
Low line warning circuit - brown out
Input 105-120 VAC 50/60 Hz @ 1.0 A
4.5"H. 3.8"0. 11"L- 5 lb.

20 Landers Road - Kenmore, New York 14217 - (716)877-0617

@

S29
S59
S79

PLUS S5
S&H

.2A

KIT .nnoul
WD 2795

COMPATIBLE WITH
ANY COMPJTfR

WD

USING WPl771
OHlY$100S&H

2795
KIT .nn
DRAWINGS

•

$299

$74

$161
$199
$249

+
+
+
+

$1

Slit H

$3
$3

SIItH

$5

Slit 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

~ AstroTronics
\1IeROS'ST[\1S

PLUS $20
Slit H

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

Text to speech
•
No software required
Will run on any comDuter
•
400 character buffer
Embed phonemes in texl for those special words that don't fillhe rules. names
foreign words etc.
Programmable: vocal-traci frequency. inllection rale. duralion pitch. articluation
amplitude ... for all 64 phonemes
Can be programmed to make sound eHecls and can even be programmed it to
SING!

ff1b
12

Plus S1 S & H

The "'LA CAJA" Enclosure w/Power Supply

DEALER INQUIRIES INVITEDI

PCB lit EPROM with Instruction
Complete PCB Kit with Inslruelion
Complete Kit Including Case Speaker lit Power Supply
Completed Unit A lit T

$5

BIG BOARD

LISTEN! Your computer could be lalking to you through the BIG MOUTH
from ASTROTRONICS. True speech synthesis for ANY compuler through
your printer port. (parallel or serial). Using our BIG MOUTH speech
synthesizer with its Z80 CPU and SSI-263 third generation phonetin
speech synlhesizer.

•

WITH PINS

SOLD WITH KIT ONLY

Call (714) 734-6006

•

KIT OF .2 EACH

C"}teep!

AT LAST! DO SOFTWARE 525 .

For Orders or Demos

•

CONNECTORS
FOR YOUR
DISK DRIVE

DAUGHTER BOARD FOR THE W02795 OS DO CONTROLLER

1i'EBig Mouth

•
•
•

AMP

DOUBLE DENSITY HARDWARE

$110

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

KIT

.. La Cala" can be supplied lully wired lor the Big Board
with all ports dis k DC and timed AC lor $150.00

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

$11 9

California residents add 6% tax on all items

(714) 734-6006

1137 TOPAZ ST
CORONA. CA 91720

Micro Cornucopia, Number 23, April-May 1985

In The Public Domain
By Sol Libes

Box 1192
Mountainside NJ 07092

In my last column I gave an introduction to public domain software which included its history and some background
on the organizations which publish and
distribute PDS. In this column I'll discuss the high level languages available in
the public domain.

of BASIC including the full source code
in the PDS software libraries, I was in a
state of delight. If you are as interested as
I am in how things work, or would like to
create your own personal version of
BASIC, get a copy of these programs and
dig right in!

Latest SIG/M Releases
Before launching into the column,
however, I've listed the latest SIG/M
disk releases below (each disk is referred
to as a volume):

Eight Is Enough
I count eight different versions of
BASIC in the public domain, and most
(not all) include the source code. It is
probably best to start with the smallest
version of BASIC. It is on volume 11 of
the CPMUG library and is called "TIN1DISK." Many people refer to this as
"Tiny BASIC." It is a version of Wang's
Palo Alto BASIC originally published in
Dr. Dobb's Journal. The disk contains
.ASM and. COM versions as well as full
instructions in its use in a .DOC file. The
.COM file is only 3Kbyte in size. This
version of BASIC may be lacking the
power of more recent versions, but its
small size makes it easier to study the
structure of a high level language. Also
on the disk you 'will find a version of Star
Trek (it takes up 6K bytes) that runs under TINIDISK.

Volume-Description
210-CP/M-86 Utilities (SQ, USQ, CRC,
etc.)
211-CP/M-86 Kermit Communications
package
212-CP/M+ Utilities, Kaypro multidisk formats, C programs, etc.
213-REC (Regular Expression Compiler) Vol. 1
214-REC Vol. 2
215-RECVol. 3
216-CP/M-86 MODEM package
217-:-CP/M-80 emulator for CP/M-86,
dBase-II Toolkit, BBS security system,
CP/M-86 MODEM overlays
Language Software In The Public
Domain
BASIC holds a particular fascination
for me. I still remember the day, back in
1975, when"1 placed a paper tape containing MITS Basic (later to become Microsoft Basic) in myoid teletype (that
was when we thought 10 characters per
second was fast), toggled in a little loader
program with the switches and lights on
the front panel of my Altair 8800 computer (it contained all of 4K of memory
and ROM memory was unheard of) and
waited several minutes for BASIC to
load and execute. After several tries I
jumped for joy when the word 'READY"
appeared on the paper (who had a CRT
in those days?).
It was the first high level language I'd
ever seen, and its level of intelligence
amazed me. Always being curious about
how things worked, I immediately
wanted to know about BASIC. But I was
always frustrated because the versions I
used were only available in machine
code form, so decoding them was a horrendous task. Thus, when I saw versions

BASIC/S
A more elaborate version of BASIC in
the CPMUG library is a disk version of
Processor Technology's "BASIC/5." This
was writteh to run under CP/MV1.3 and
occupies about 8K of memory. PT manufactured 5-100 systems that were primarily cassette-based, and when the
company went out of business much of
its software was put in the public domain
and enhanced for disk operation.
Tarbell BASIC
CPMUG volumes 31 and 32 contain an
even more advanced version of BASIC
called Tarbell BASIC. Tarbell is another
5-100 manufacturer, still in business,
which has put much of its software into
the public domain. This version still has
bugs in it and its editor leaves something
to be desired. However, it does have
some very powerful features such as
WHILE .... WEND.
LL-BASIC
Probably the most popular public domain BASIC interpreter is the version of

Micro Cornucopia, Number 23, April-May 1985

Lawrence Livermore BASIC (usually referred to as "LL-BASIC") found in CPMUG volumes 2 and 10. This was written at Lawrence Livermore Labs in
California using public funding and
hence is in the public domain.
EBASIC
Another publicly funded BASIC project was EBASIC written by Gordon
Eubanks. EBASIC is a semi-compiler
with a runtime interpreter. Gordon later
created enhanced commercial versions
of EBASIC sold under the names CBASIC, CBASIC-2 and CB-80.
EBASIC is the most powerful of the
PDS BASICs, and is found on SIG/M
volume 26 with a help file on volume 14
(you will need HELP.COM on volume
13). The original source code, written in
PUM for the compiler and runtime interpreter, is on CPMUG volumes 29 and
30. Also, volume 53 of CPMUG contains
EBASIC floating point routines. EBASIC
is a structured version of BASIC in that it
does not require line numbers except in
statements that are targets for GaTOs
and GOSUBs.
An EBASIC compiler written in the
Forth-83 language is on SIG/M volumes
204 (CP/M-80 version) and 205 (CP/M-86
version).
Pascal, C And The Like
Several versions of Pascal are available
in the public domain, with a Pascal help
file found on SIGIM volume 14.
First is the Pascal compiler on SIG/M
volume 8. This disk includes a .COM
version as well as the .ASM modules and
documentation and is written in Pascal,
thus providing an excellent example of
how to use the language. This Pascal is
different than UCSD Pascal in that it
generates 8080 object code linked to a
runtime library.
SIG/M volume 82 contains the JRT
Pascal compiler. This program was first
sold commercially, became quite popular, and developed a loyal following. Unfortunately, JRT was a poorly managed
company and is no longer in business.
SIG/M volume 162 contains a concurrent Pascal compiler called PASCAL-So

(Continued next page)

13

IN THE PUBLIC DOMAIN _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 13)

C

Only one version of the C language is
available so far. This is a version of
small-C, which appeared several years
ago in Dr. Dobb's Journal, implemented
for CP/M-86. The complete source code
and documentation are included for
anyone interested in translating it to
8080 or Z80 code.
FOCAL
FOCAL is another procedure-oriented
language similar to BASIC. It was first
introduced by Digital Equipment Corporation for the early PDP-8 minicomputers. This program is found on CPMUG
volume 16.
ALGOLIM
ALGOLlM, an Algol-60 implementation, is on CPMUG volume 28. It includes full documentation, as well as a
set of test and demo programs. An Algol
help file is contained on SIG/M volume
14.
RATFOR
CPMUG volume 24 contains a version
of RATFOR (RATional FORtran), a preprocessor for Fortran source programs.
It permits structures such as IF. .ELSE,
WHILE, REPEAT UNTIL, FOR. .NEXT,
BREAK and INCLUDE and generates
standard Fortran statements. A Z80 version ofRATFOR, which runs faster, is on
CPMUG volume 49 along with the full
source code, documentation, and demo
programs. The programs produced with
RATFOR must be compiled with Microsoft's Fortran-80 compiler.
FORTH And Other Threaded
Languages
Threaded languages employ a block
structure allowing the user to define extensions to the language. The versions in
the public domain are all interactive, use
RPN (Reverse Polish Notation), and
generate fast, compact object. For these
reasons these languages are very popu1ar with micro hackers and have produced many versions in the public domain.
FORTH11
There are six versions of FORTH.
FORTH11, which is actually Fig-FORTH

14

V1.1, is found on SIG/M volume 13. Although documentation is included, the
author recommends that the user obtain
a copy of the Fig-FORTH manuals first.
SIG/M volume 70 contains an upgraded
version of this program called
FORTH110, in source form. FORTH130
is another version intended primarily for
Apple-CP/M systems, but will run on
many other systems, and is on SIG/M
volume 116.
SMFORTH
SMFORTH is a minimal version of
FORTH found on SIG/M volume 67. The
source code version is provicied without
documentation. F83, another popular
8080 version of FORTH with documentation, is on SIG/M volume 154. An enhanced version comes on volume 204,
and a 68000 version is located on volume
205 along with a BASIC Compiler written in F83. SIG/M volume 150 contains a
version of FORTH for Z8000-based machines. (Editor's note: Micro C's Bruce Berryhill is a FORTH fanatic, and he couldn't
stahd the idea that we didn't have a complete
FORTH 83-since it has a built-in editor
and all-on a Kaypro disk. So now we have
one.)
STOIC
STOIC, a FORTH-like language, is included on CPMUG volume 23, and for
many applications produces even more
compact code than FORTH. PISTOL,
wntten in BDS-C, evolved from FORTH
and STOIC and is located on SIG/M volume59.
LISP
LISP is the most popular language
used in writing AI (Artificial Intelligence)
programs. It is based on list processing.
The versions in the public domain are
limited implementations but will give
the user a good feel for the language.
SIG/M volume 71 contains a version
written in Pascal. However, no documentation is included. INITLISP, oil
SIG/M volume 148, is also written in
Pascal and includes documentation.
XLISP, complete with documentation
and examples, comes on SIG/M volume
118 with a CP/M-86 version on SIG/M
volume 153.
Another example of LISP is on SIG/M

volume 166 and is written in the REC
language, described later. Several LISP
program examples are included on the
disk.
Other Languages
ACTOR is a string processing language found on CPMUG volume 4. It includes a complete manual and sample
programs.
PILOT is used to write CAl (Computer
Assisted Instruction) programs, and is
located on CPMUG volume 12. The documentation was published in Dr. Dobb's
Journal in April and May 1977.
SAM-76, on CPMUG volume 34, is a
very powerful macro and string processing language that can be extended somewhat.
SIG/M volume 43 includes PIDGIN, a
systems programming language useful
for writing a compiler, and TINCMP, a
special purpose compiler written in
PIDGIN.
META is a CP/M-86 systems programming language and a version ofTINCMP
written with META as an example. Both
are located on SIG/M volume 159. The
documentation, however, is in Dr.
Dobb's Journal of August '81. Versions
of META written in FORTH-83 are on
SIG/M volumes 204 (CP/M-80) and 205
(CP/M-86). An 8080 version ofMETA4 is
on SIG/M volume 208.
REC (Regular Expression Compiler~
along with a very comprehensive subroutine library, is located on SIG/M volumes 213, 214, and 215 (an earlier version comes on volumes 164, 165, 166,
and 167). REC includes translators to
convert programs written in REC into
other languages such as C.
PLO, a Wirth PLIO compiler, and
some sample programs are on SIG/M
volume 163.
And, as if all this weren't enough,
there is a version of ye olde COBOL on
SIG/M volume 209. (Editor's note: Don't
let this get out-someone might try to use
it!)

In Conclusion
I think there are enough languages in
the public domain to keep a computer
language addict in a state of euphoria for
months. In all, I count nearly 40 language interpreters and compilers. It is

Micro Cornucopia, Number 23, April-May 1985

/

are
cost, quality and capability!
cnbes:
1) The physical specifications, features, and control
popular printers and plotters.
2) Printer and plotter interfacing, problem areas and how to correct them. Some are hard to interface. Most can be memory-

UPF.;tt;.~nt; ~~~;_~~~gm~p~ t!~de ~~~O~~e;.sde~tions

in the purchase

ant)p~i~~?~ ~fif~:~~~s ~~i~~iirrCHERS.

Independently switch
one/two printers or plotters to one/two computers without disconnecting either. Schematics of Centronics Parallel, RS-232C and 20

ma.5fu~~di~i~~~I"sections devoted to PRINTER TYPES, PLOTTER
TYPES, EXPANDING MEMORY, INTERFACING, ELECTRONIC
TYPEWRITERS, RIBBON RE-INKING SECRETS, PAPER, PATCH~~rC~:J.r~&s~PEED RATINGS, BUYING STR ....TEGY, and R5-

6) BUFFERS, SPOOLERS, MEMORY UPGRADES, ELECTROGRAPHIC, TRACTOR-FEED, DIP AND PANEL SWITCHES, DOTMATRIX, DAISYWHEEL, INK JET, LASER, FLAT-BED, ROLLERBED, DRUM, WORDPROCESSING, DATAPROCESSING, CAD/CAM,
TIME-OUT PROBLEM, GRAPHICS TABLET, CALLIGRAPHY, PS
TYPESETTING, ADVERTISING, PUBLICATION LAYOUTS, etc.
i ng7!t,~r~e:ia ~~~nr,r~~~(r"'ar~~le~~t!~d-i~~!~}~~ t~~~~s~efined, includ8) Cleaning, lubricating, maintaining, and repairing printers and
plotters, with actual examples.
9) The names addresses of over 100 printer, plotter buffer, interface, and photo-imagery manufacturers.
Comprehensive and exhaustive - many illustrations and photographs - ONLY $1.5.

COPIER MANUAL

---------------'!!!!!!'!~!!!!""!!!~

interesting to note that the PC/MS-DOS
public domain libraries contain fewer
than 10 high level languages, even
though the amount of overall software is
greater.
I suggest you obtain copies of the CP
MUG, SIG/M and PC/BLUE (for those
interested in MS-DOS) printed catalogs
(see below). Also, both SIG/M and PC/
BLUE furnish an information disk (labeled "Volume a") which contains an
up-to-date listing of all the software in
their libraries along with a program to
help you find which particular volume
contains the program you want. The
disk also contains a listing of the clubs
across the country that distribute the
disks.
Order the SIG/M and/or PCIBLUE
printed catalogs (each $3, $4 foreign) or
Volume-O information disk ($7, $9 foreign) from: SIG/M-PC/BLUE, Box 97,
Iselin NJ 08830. The CPMUG printed
catalogs can be ordered from the New
York Amateur Computer Club, Box 106,
Church Street Station, NY NY 10008, or
call their hot line, (212) 864-4595. The
CPMUG printed catalog comes in several volumes, and you will have to call or
write for the price.

•••
Micro Cornucopia, Number 23, April-May 1985

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 "A'
BIG VOICE KIT INCLUDES:

SPEECH
SYNTHES IZER
FOR THE BIG BOARD
AND XEROX 820

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 or XeroX
$ 130. complete kit
9910 LEAWOOD BLVD.
HOUSTON, TEXAS 77099
tel. (713) 495- 6185

15

E1

1_:1 Colonial Data
58-80-11

Dimensions
131/2"W x 5 3/8" H x 17" D
FULL 90 DAY PARTS & LABOR WARRANTY

MODEL lIA-2/380K DSDD DRIVES
MODEL lIB - 2/780K DSaD 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)
Additional64K 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
Colonial Data has just gotten BEDER 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.
Z80'· - ZI LOG
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

$225.0·0

DSDD Floppy
Over 380K Capacity

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

$195.00
$370.00

MODEL 465

MODELCKP2
Same as Model CKp·1, 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
cardorcashier'scheckareshippedwithin3working
days. Allow 3 weeks for Personal Checks.
Shipping: Add 2%(uptoa maximum of $20.00) for UPS
(Brown) shipping within the United States.

_

~I

":l~~1

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

1_:1 Colonial Data 58-80- I I
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 BElTER with the
introduction of the SBSO-II. More Standard Features at aNEW
LOWER PRICE!

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

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

III 4MHz ZSOA CPU WITH NO WAIT STATES

• ZSOA PIO PARALLEL PRINTER INTERFACE
Centronics compatible printer interlace is Standard!

Enhanced BIOS uses mode 2 interrupts.

1m 64K MEMORY STANDARD (EXPAND TO 128K)

• SASI HARD DISK INTERFACE CIRCUITRY
ON-BOARD!

Parity checked RAM utilizes 4164
Up to 8K of EPROM (4K is standard)
Accepts Pin-compatible EPROMS from 2716 thru 2764

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

ill 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.

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

SBSO-II SYSTEM OPTIONS:

PRICE

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

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

• 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

r-------------

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

II . 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.

[ffij

80 Pickett District Road,
New Milford, Conn. 06776
Telephone (203) 355-3178

Interrupt Driven Serial Print Driver
By D.l. Carlyle

1107 Horseshoe Lane
Blacksburg VA 24060

With the recent addition of a Dynadisk to my BBI, I found myself printless.
That is, the printer which used to receive
data via parallel port B was left with a
dangling IDC connector and no header
to plug it into. Since Mr. Data (or perhaps Mr. Oki) was good enough to provide both a parallel and serial interface, I
purchased a Z80A Dart (and the rest of
the serial I/O components)and implemented the SIO option.
Figure 1 shows a segment of .MAC
source for a serial output device connected to serial port B (the A port does not
support vectored interrupts). Figure 2 is
a brief description of the required SIO
option jumpering. Figure 3, as if you
haven't seen it often enough, is a stepby-step description of how to modify
and install the SIO driver into your

CBIOS, and how to install the new
CBIOS into your system.
I was unable to find a Z80B DART, although I'm sure I've seen them advertised somewhere. The Z80A DART has
, worked reliably on my 5MHz BB for the
last few weeks, however. (The Z80A
DART is identical to the Z80A SIO/o except that the DART does not support
synchronous communications. In this
application you can use either.)
A word of caution: I replaced the parallel print driver with the following SIO
driver which caused the CBIOS to grow
by about 12 or 13H bytes. When I overlayed it onto the rest of the CP/M system
and SYSGENed it back onto the diskette, I found that on reboot, the tail of the
new CBIOS was bumping into track two,
where the directory lives. In addition,

the ASCII string comprising the sign-on
message (which uses a '$' as an end of
message semaphore) became several
hundred bytes long, making for a yery
exciting sign-on message.
The remedy for this was to edit out every non-essential character in every ASCII string for such things as drive not
ready" and so forth. This shrunk.
(sounds like a programming term ... )
the CHIOS back to its original size and
eliminated the alphabet soup sign-on.
Incidentally, my CBIOS orgs at EAOO.
Those who org at E800 might not have
this problem.
1/

•••

Figure 1 - List Device Driver For The 510 B With Interrupts Added
;
I

~BDATA

saCNTRL
9AUDGN
9AUD
I:l:ITCNT
RUEI
I
I

EQU
EQU
!QU
EQU
EQU
EQU

'~:;;H

07H
~CH

07H
09H
00101000B

:SIO 9 :lATA ;JOR:
;SIO 9 CONTROL PORT
:BAUD GEN FOR SID B
;07H-1200 BAUD
:LENGTH OF ::-.IIT 7ABLE
; RST XMT BUFR EMPTY !NTRPT

PRTCHR: LD
OR
JR
XOR
LD
LD
OUT
RET

A, (INTPND)
A
Z, PRTCHR
A
(INTPND), A
A,C
(SBDATA), A

; INT PENDING
; IF YES WAIT TILL NOT
;ZERO A
;SET ;JENDING BACK
:SET CHAR
iSEND CHAR 70 SIO B DATA PORT

!NITIAL:ZAT:ON BYTE -ABLE

i!llITBT: OE1'"B
DEFB
DEFB
DEFB
DEFB
DEFB
DEFB
DEFB
DEFB
DEFB
DEFB
I
!NTPND: DEFS

SIO B INTERRUPT HANDLER
"001!000B
04H
010001019
03H
00100000B
05H
001010009
02H
00H
01H
00000010B

: CHANNEL ::lESE:
; POINT TO WR4
; 16X CLl<, 1 STIl BIT, ODD PARITY
; POINT TO WR3
; AUTO ENA FOR CTS-BUSY HANDSHAKE
;POINT TO WR5
;7 BITS, TX ENABLE
;POINT TO WRZ
;SIO B INT VECTOR IS (FF)00
;POINT TO WRl
;RX DISAB, TX INT ENABLE

IOINT: PUSH
LD
LD

AF
A,0FFH
(I!IlTPND), A

LD
OUT

A, RTBEI
(SBCNTRL), A

POP
E!
RET!

AF

;ANY NON-ZERO OK
;MAKE SURE A STRAGGLING
: INTERRUPT DOES' NT GET YOU
iAFTER LAST CHAR IS SENT

i

; INT PENDING FLAG

;
I

;

5:0 B EQUATES

INITIALIZE BAUD RATE GEN FOR SIO B

;
I
OPNPRT

EQU
LD
OUT

$

A, BAUD
(BAUDGN),A.

;SETUP FOR 1200 BAUD
;SEND TO SIO B BAUD GEN

Figure 2 - 510 B To Printer Wiring Table

;
;

INITIALIZE SIO B FOR TRANSMIT T:::J PRINTER

PUSH
PUSH
LD
LD
INITA: . LD
OUT
INC
DEC
JR
LD
LD
LD
LD
POP
POP
LD
LD

18

HL
BC
HL, INlrBT
C, !NITC!IlT
A, (HL)
(SBCNTRL), A
HL

;POINT TO FIRST CONFIG BYTE
;MOVE RIGHT NO_ OF BYTES

Notel
The J3 header !lins are not desicnated with odd Dins in one
row and even Dins in the other:
the first row has Dins 1 ';;hrouoh
~3 wh~le the sec:ond row Mas cins 14 thrl~ 26.
-

; IN IT SIO B FROM INITBYT TABLE

C
NZ. INITA
HL, SIOINT
(0FF00H) • HL
HL. PRTCHR
(OVECTR+4) • HL .
HL
BC
A.0FFH
(INTPND),A

; INTERRU;lT DEST ADDRESS
; STORE AT VEi:TOR
;CPM :::NTRY
;ALL SUBSEQUENT ENTRIES SKIll INIT

J3-2 (TxDb)
J3-:;; (CTS)
J3-1&7 (GNDS)

:; :
*

Serve time

*

********r*******

*
*
*

********1********

.•. .•.

••• *....

......

.

.* nave ••
•• I been
*. Yes
* ••• r~~t~~i- ••••

*

---->:

*

* •••• *

___________________________________________ i

• ••• **.* •• * ••••
Stop

•

***.** ••••• ** ••

No

Unless you have time to spare ... in extreme cases a few people have
found they had thirty years to spare.
You read the flowchart anyway. Why? Because flowcharts are a power·
ful graphic way of communicating ideas. The big problem is producing
them: they take a lot of time to do well and are difficult to revise or
correct.

full CBIOS:
the

ravision

~8tZ1

C8IOSn. C9!OSn=C9IOSn creates a • PRN ana. REL
from a • ;--:AC fi !e.

file

Link the naw CBIOS to create a • hEX file:
L80 CEIOSn. CBIOSn/N/X/E.
~he
",essace "Oricin aoova
loacer ~Ilemory,
;110\19 anyway?
(Yes I,r -,\10)" Wlll aooe .. r.
,yoe Y.

2. SYSGEN
a) C:nter q as source crive to br1nc 1n a CP/!'t svster. imace ,~
'300H.
..hen the cestination crive :Jromct co;;'.s 'JO, -hit
return '.;0 leave the system :,naga i.n memory.
.:.. SAVE 34 CPM64. CC!'1
a) This saves 34 (base 10) 256 byte segments on disk.

The flowchart above was produced using EasyFlow, a computer aided
flowchart generation tool. You decide how the flowchart is to be laid out
and describe the flowchart to EasyFlow using a simple command
language. Easy Flow then does the hard part of actually producing and
printing the flowchart. EasyFlow automatically centers text inside
shapes and routes lines; changes and corrections are easy since
EasyFlow re-centers text and re-routes lines as necessary!
EasyFlow is a well deSigned, thoroughly tested and comprehensively
documented package.
•
•
•
•
•
•
•
•

4. DOT
ICPM64. COM
R (Read an imagll! .~f the SAVEd CP/M into the TPA)
ICBIOSn. HEX
~3580 (Overlay a cooy of the new CBIOS over the old

cal OS)

h 1F80, org of your CBIOS (ie, EA00);
the second
set of four digits disolayed by DDT is the
offset.
Use DOT Oiso1ay to ,"ake sure that the new
e.varlayed the old CBIOS at the correct address.

FAST: Produces a typical flowchart in 12 seconds.
EASY: The command language is straightforward and easy to learn.
POWERFUL: Automatic text centering and line routing.
PRINTERS: Works with all printers.
SIZE: Flowcharts up to 5 shapes across by 11 shapes down.
SHAPES: 18 standard shapes. User defined shapes easily added .
LINES: User selectable line-drawing characters.
MANUAL: Complete, comprehensible and over 100 pages long. Also
included is a reference card and ten demo flowcharts.

EasyFlow:

Notel
3:580 is a load offset 'Jsed to overlay
thll! new CBIOS at the correct memory address.
If your CEIOS orgs at .~ther than EA00, 'J.e the
DOT heM command to find the correct offset I

CBIOS

has

,-,C (Warm Boot)
S. SYSGEN

a) Hit return in resoonse to the source drive promot.
Hit A
in resoonse to the destination drive ;Jromot to write a
bootable cooy of C!'/M on disk.
The codas for se1ectino baud rates other than 1200 are listed
~n
the document at ion :Jac~_age that can,e ",i th your BB.
Edit the. MAC
source accordingly,
"ol1ow the steos listed above and you should
be uo and I"lJnning with a fully interrlJot cr1ven pr1nt routine.

Micro Cornucopia, Number 23, April-May 1985

*.

.........._-_ ....

-·-No

** ••• *•• ~ •• *•••• *
*

Figure 3 - Creating And Installing a Modified CB/OS

tJ)

Yes

*******.1********
.* Was *.
*
•* qetaway *.
* Run from
*. successful • *<-------*
guards
*. * •• ? • *..
:•• ** •••••••••••:

Albuquerque, New Mexico 87112

lS

'* ••••

!**•• ***** •••••• :

Yes

• * Was *.
Yes
••
bribe
•• No
----* ••• a*ccepted?*.*---

Term.:

a) Assemole C3!CSn ••~AC after ecits where n
level of the CSIeS:

.

* *. * •• *.*. *

--------~:~I. *~es

Plu •• hlpplng .nd handling charge

Phone (505)-294-0552

:---->*.

Choose a bank *
and c~~~k 1 t
_ •••• _ •••• ___ ._._

:*•...•:*~~*..*.:

*

To Order:

'*.*
*. ••
•• Does
*. ban~JI:~OO: ••• *

:------->:

*

SOFTKEY SERVICES _ _ _ __

1. C,-eate a • HEX file of the new.

accomplices

•• -..............
. *.*. *.
• •• *•• *.~ •• *•••
•
*
*
•
* Take the
*
No
.* .*Did alarm*. *.
'*
•
(-----------* loot1and live *(-------*. go off? .*(----* Get lIoney :

*

$159.95

:----->:

I----:::::::::::::::::----------:~l. *No

••
* v
'*

Meet

_ •• e ___ ••••••••••

64K banked RAM burter and bUI axpander I.
.hlpped completely a.. embled and te.ted.
The bu. expander provide. external I/O control
to allow offboard Interface to future SOFTKEY
product. or u.er de.lgned equipment.
The SK-RB64E Include. printer buffer and RAM
dl.k .oftware.
SK-RB64E BOARD W/O" SSSD DISK

•

$49.95

Minimum memory: MS-DOS/PC-DOS 96K;
CP/M·80 48K

EasyFlow·PLUS is an advanced version of EasyFlow which contains all
the features and capabilities of EasyFlow plus the following
enhancements:
•
•
•
•
•

Huge flowcharts; up to 16 by 16 shapes in size:
Wide charts can be printed in strips; big charts from small printers.
Text blocks can be placed anywhere in chart; comment your chart.
Arbitrary lines can be drawn anywhere in the chart.
Can also be used to produce organization charts.
Chart can be previewed on graphics screen.t

• Subject to available memory.
Requires 18M/PC or compatible with color/graphics adapter.

EasyFlow-PLUS:

$89.95

Minimum memory: MS-DOS/PC·DOS
128K; CP/M-80 64K

Available for MS·DOS/PC-DOS
machines on IBM/PC format 5"
diskettes; for Z80 CP/M·80 machines on 8" SSSD and most soft
sectored 5" formats. Check, money
order, VISA or company P.O.

HavenTree Software Limited
R.A. #1, Box 198
Seeley's Bay, Ontario
Canada, KOH 2NO
(613) 542-7270 Ext 601

19

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 S312 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 w/power 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
4.00
820-1 power connector w/pins .................................................................... .
820-1 I BIGBOARD-1 ASCII keyboard, w/cable, NEW! ................................................. . 95.00
BIGBOARD-1/11 dual-drive 8" disk cable, 17" long .................................................. . 35.00
Assembled and tested Xerox 820-1 computer boards ................................................. . 125.00
Bigboard dual 8" drive cable ..................................................................... . 30.00
Bigboard serial 110 cable ........................................................................ . 15.00
.75
AMP 8" drive AC connector w/pins ................................................................ .
AMP 8" drive DC power connector w/pins .......................................................... .
1.50
1.10
AMP 5.25" drive DC power connector w/pins ....................................................... .
7.50
CP/M Primer (Xerox CP/M handbook) .............................................................. .

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
81 7 -640-0207
P.O. BOX 300085 ARLINGTON, TEXAS 76010

20

• Uses Z80,Z80A, or Z80B family of components
• Dual RS232 serial 1/0 W/Currentioop 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 110 assignable on 4 bit boundaries,
W/Strappable Handshake Polarity (2xZ80-PI0)
• 4 Channels of counter-timer, 4 inputs, 3 outputs
• 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 110 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 add 3°,«), money order, certlfled checl<. UPS cash COD. Allow
2 weel prints current time and
••
time s
---> enter time set routine
••
••
•• This program is designed to be used with an

date

auxiliary printf routine
•• (prntf) to minimize program size. (printf may be substituted for prntf)
••
(fas)

••

·1

linclude 
Ide fine CLEAR 26
Idefine BACKSP 8
Ddefine SPACE 32
Idefine VERTAB 11
Idefine L1NS1Z 18
1·ldefine HEM 65369
Ddefine MEM 65366

pointer to first time byte for the 820-1

.1

I. pOinter to first time byte for the 820-11 ·1

char a~ray[L1NS1Z];
int num[6];
int lolim[]
{1, 1, 84, 0, 0, O};
int hilim[] = {31, 12, 99, 23, 59, 59};
main(argc,argv) int argo, .argv; {
ohar .entry;
argv++;
I. point to option .1
entry = .argv; I· set up 2nd indireot pointer

·entry

= .·argv ·1

switoh (·entry) {
oase 'P':
if(lgudtim(gettim(») settim();
if(gudtim(» prntim();
break;
case'S' :
if(settim(» prntim();
break;
default:
argo = 0;
break;
}
if

(argo 1= 2){
prntf(" usage: time p ··'-··"-"':·'····-)·\\

I!

l" /
1//

For only $95, OIC is a ready-to-use C compiler for CPIM 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/G is the obvious choice."
•
•
•
•
•

SERIES

1.1f';t

,,I _." .._ ..... -"'. \ \~\

\\ \\

Souar. WnR Appro", ",oOt, on

\11

II!

\"

.

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.
OIC is standard. Good portability to UNIX.

OIC 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: OIC profiler, Z80 code optimizer, and Z80 assembler and virtual linker, all with full source code!
THECODE

WORKS

System Requirements Any Z80 computer running 60k CP/M and
driving an Epson, Gemini, or C. Itoh dot-matrix printer.

MSC

5266 Hollister, Suite 224
Santa Barbara, CA 93111
(805) 683-1585

301 North Harrison Street

Microcomputer
Systems
Consultants
Princeton, New Jersey 08540

eN 5279. SUite 228

Terms Send check or money order for $29.95 + $5.00 s/h to
MSC at the address above. You MUST state your computer
and printer make and model. NJ residents add 6% tax.

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

T~ rOuowV\f an trW .........

"1''''''''

Of'
vm.""". of ,"', UW:hU'N compana'': C,/tII .. 0.11",.1 ',,,, ...e".... ,,51' .. "lcroSoh •
lLlo,. hypnt .. "'''''"' :::O\'lI«'IIDfi
.... plTC.le .. s.orcl., TIIftIo '.lCal .. 1.land 1"'1t"".1I_1•• 1"Sf 11 .. ,hllton_h,.,

THE LITTLE BOARD®

. ,~fIV" •

I;;

\

~

~A

~

A

no ..

~J"

OEM -

INDUSTRIAL -

SCIENTIFIC

SECOND GENERATION SINGLE BOARD COMPUTER KIT!
4 MHZ Z80* CPU!
64K RAM!
DOUBLE DENSITY!

~
>-

Q.

o
o

w

w
a:

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

FREE CP/M· 2.2!!!
A $139 VALUE! A FREE
5-1/4 IN. CP/M 2.2
DISKETTE IS INCLUDED
WITH EACH KIT.

I&.

~

Z

cI:

a:
a:

;

$2599~OMPLETEKIT)
DISK DRIVE SPECIAL:

oW

l-

i

A. & T. UNITS
$319

::::i

~

o

g

NATIONAL (PANASONIC) J551
OS-DO 5-1/4 IN. 40 TRACKS PER SIDE - $125 EACH
(HALF HEIGHT) (48TPI) 2 FOR $240

PRICE
CUT!

MITSUBISHI #M4853
OS-DO 5-1/4 IN. 80 TRACKS PER SIDE - $130 EA
(HALF HEIGHT) (96 TPI) 2 FOR $245
BOTH DRIVES WORK FINE WITH THE LITTLE BOARDI

a:

~

o

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:

I&.

o

I/)

::I!
a:
w

IW

4 MHZ

l:

I

I-

o

I-

b
w
..,

m
~
I/)
I/)

W

...I

cI:

..

~

CENTRONICS STYLE PARALLEL PRINTER

TWO RS232 SERIAL PORTS

PORT~

64K DYNAMIC RAM!

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

SAME SIZE AS A MINI FLOPPY

2732 BOOT EPROM

--------------------------------------------------,-------------------------------------------------~.

Digital Research Computers
(OF TEXAS)

I/)

...I

IDOUBLE DENSITY (5-1/4 IN.) FLOPPY CONTRO~

zao CPU!

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

TERMS: Shipments will be made approximately two weeks after we
receive your order. VISA, MC, cash accepted. We will accept COD's with
a $75 deposit. Balance UPS COD. Add $4.00 shipping.
USA AND CANADA ONLY

Z80 TM OF ZILOG. CP/M TM OF D.R.I.

26

Micro Cornucopia, Number 23, April-May 1985

--

C'ing CLEARL Y _ _ _ _ __

-

HARDWARE SPOOLER and INTERFACE CONVERTER

(continued from page 25)

cedure for putting together a C Compiler
Disk. This package is available as a user
disk. (Editor's note, actually it's two
disks. The compiler fills one-and the library, which normally fits on two disks,
has been squeezed onto another.)
Recommendations
1. Purchase "The Small C Handbook."
2. Obtain reprints or back issues of Dr.
Dobbs which deal with the Small-C
Compilers.
3. Read over the document files that
come on the disk with the compiler.
4. Experiment.
If you don't have M80 and L80, take
heart. I recently received a Z80 version of
Small C, but haven't hada chance to look
it over yet. In the near future I hope to
have a version available which will be
compatible with the CWA Assembler/
Linker/Librarian. (It's available from the
Code Works for $35.)
I got hooked on C almost as soon as I
started using it. Small C is an excellent
way to get started and can be used very
effectively. There has been a lot done
with it, and I believe it will grow to be
competitive with many of the commercial compilers. (Most of them began as
Small-C.)

TIME.C
I wrote a time.c program for the 820/
820-II. It is a good example of some of
the features of Small C and shows how
to interface to system memory locations.
(The date and time values.) This program compiles, assembles, and links to
produce an object file that's less then 4k.
I use a modified printfO routine called
prntfO. You can substitute printfO for
prntfO. See Figure l.
Editor's note: Fred very graciously agreed
to do this column at the last minute after
Tony bowed out. Fred's strong interest in
Small-C is a big plus in the Micro C community. I'd like to see the Micro C community
continue to expand this famous compiler.
How about you?

eee

1
••. J

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 be 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:

L-BAND SYSTEMS
'Not available for export.

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

IT'S EASY TO USE!
Just enter "SPELLSYS", select which
disks you'll use, and file you're checking.
Then SpeliSys takes over. Everything is
self-prompting-so sit back and relax.

Are you signing your name with an X
because spelling doesn't come easily?

Then you need SpeliSys!
With this full-feature package, you can
write prose with the pros. SpeliSys features a 42,000 word dictionary and all
the bells and whistles of those expensive
checkers-including rhyming, crossword
search, letter unscrambling, etc.
SpeliSys is made up of a group of individual programs which you can use together or separately. With SpeliSys you can
setup and maintain your own custom
dictionary (in addition to the main dictionary). These are real dictionaries, not
hash tables, so you edit or remove words
from your own dictionary at will.

•

Micro Cornucopia, Number 23, April-May 1985

• 128 K PRINT BUFFER
• CENTRONICS OR SERIAL
INPUT/ OUTPUT
• MULTIPLE PROTOCOLS
• 53/4 X 7112 INCH BOARD
• + 5 Volts at .75 Amp
± 12 Volts at .1 Amp

Word Review Operations
C .. show Context in file
L .. Lookup word in dictionary
M .. Misspelled (correct file to ..... )
o .. put in user Dictionary
I .. Ignore
N .. Next word
P .. Previous word
E .. Exit review
? .• (or any other key) displays menu
ORDER AT NO RISK!
Check out the manual
agree that SpeliSys is
just return the package
opened within 30 days
your money.

and if you don't
a super bargain,
with the disk unand we'll refund

$29.95 ppd. in US & Can
Other Foreign add $5.00
Requires 32K CP/M*
Formats: 8" SS SO or
5" SS DO for KayPro

SPELLSYS

·CP/M is a trademark of Digital Research

P.O. Box 65
Bend, OR 97709
MC
(503) 382-8048
Visa

27

CP/M-80 C Programmers . ..

256K
RAMDISK
KIT

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

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
80S C Compiler.
80S C is designed for
CP/M-80 and provides users with
quick, clean software
development with emphasis on
systems programming. 80S C
features include:

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

$69. 00
•

dynaDlsk makes your spelling
checker, assembler, or compiler
programs run 35-300 percent
faster.
•

"I recommend both the
language and the implementation
by BDS very highly."
Tim Pugh, Jr.
in Infoworld
"Performance: Excellent.
Documentation: Excellent.
Ease 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 80S
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, 80S 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 80S C User's Group
($10 membership fee - application
included with package) that offers a
newsletter, 80S C updates and
access to public domain C utilities.

Now Only

Don't waste another minute on
a slow language processor. Order
your 8DS C Compiler today!
Complete Package (two 8" SSSD 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.

dynaDlsk is a 256k ram board
that uses 5V at 1hA and plugs into
BB1 's parallel interface (J5) .. It
comes with auto-patching software that makes it look like an 8"
SS SD disk drive to CP/M. It uses
4164 ram chips, regular TTL, and
transfers data 8-10 times faster
than a regular floppy. See Micro
C #9 for a description and MC #11
for a review of dynaDlsk.

For $69. 00 You Get:
B~" by 6~" bare PC board
Software on 8" SS SD floppy
(SOURCE INCLUDED)
Assembly & Operation Manual

Bare Board Only: $39 95

820 OWNERS
820-// OWNERS
• Your hardware will work with
minor modifications. Software
patches are included in the manual for 820-11 owners. See MC #17
for info on adapting Dyna to the
Xerox 820.
ALL ORDERS: Please add 55.00 for
postage and handling. All orders shipped
first class. Satisfaction guaranteed.
Please, no COD's, PO's, or plastic money.
QUANTITY PURCHASES: Buy five of
one item at one time and get one free! Buy
ten, get two free, etc.
Send check or money order to:
P.O. Box 5246
Bend. Oregon

BOS 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.

28

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

.e.
97708
503/389-3452
L .A ..Soltware
CA residents add sales tax
CPI M is a trademark of Digital Research

Micro Cornucopia, Number 23, April-May 1985

~ C'ing CLEA RL Y LISTING - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,
(continued from page 25)

case 2:
prntf("February");
break;
case 3:
prntf( "March") ;
break;
case 4:
prntf("AprU");
break;
case 5:
prntf("May");
break;
case 6:
prntf("June");
break;
case 7:
prntf( "July") ;
break;
case 8:
prntf("August");
break;
case 9:
prntf("September");
break;
case 10:
prntf("October");
break;
case 11:
prntf("November");
break;

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

- FEATURES -

*

SMALL SIZE - 1.75 X 1.40 X
0.35
* FAST INSTALLATION - DIAGRAM
INCLUDED
* ZERO CROSSING - ELIMINATES
ALL SWITCHING NOISE
* TRIAC OUTPUT - NO MECHANICAL
PARTS
* DVDT FILTER - INCLUDED
* LOW COST - ONLY $8.80 EACH
* 1 YEAR WARRANTY
* 30 DAY MONEY BACK GUARANTEE

zz

p ___

COMPANY OF CALIFORNIA
1619 SOUTH MINNIE STREET
SANTA ANA, CALIFORNIA 917117

(714) 547-4316
CALIF. RES. ADD 6% SALES TAX
ADD $1.00 EA. POSTAGE & HANDLING
PLEASE SPECIFY BBI, BBII OR XEROX

case 12:
prntf("December");
break;
default:
abort('?');
}

clkmem-;
prntf(" %d, 19%d

%02d:%02d:%02d",*clkmem++,*++clkmem,*++clkmem,
*++clkmem,*++clkmem);

1* Routine to set time and date *1

settim(){

int i;
char c, *clkmem;
clkmem = HEM;

1* Display the time set header *1
putchar(CLEAR) ;
prntf("Enter the time and date as dd/mm/yy hh:mm:ss\n");
prntf("\n ego for 1:45 P.M. on August 12, 1984\n");
prntf("
Enter ---> 12/08/84 13:45:00\n");
prntf("
dd/mm/yy hh:mm:ss");
prntf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
1* Get the input string *1
i

= -1;

while «(c = getchar(» 1= CR) && i++ < 17)
if (c == BACKSP)
if (i == O){
i = -1;
putchar(SPACE);}
else
i = i - 2;
else
array[i] = c;

1* Convert the characters to integer values *1
for (i = 0; i <= 18; i = i + 3)
num[i/3] = «array[i] - '0') • 10) + (array[i+1] - '0');
prntf("\n\n");

1* Store the values to memory if they're valid *1
if (gudtim(» {
for (i = 0; i <=5; i++)
*clkmem++ = num(iJ;
return(TRUE) ;
}else{
prntf(" Incorrect data entered - time not updated");
return(FALSE) ;

gudtim(){
1nt 1;
for(1 = 0; 1 <= 5;1++)
1f (num[1] < lolim[i] II num[i] > hi11m[1]) return(FALSE);
return( TRUE) ;
gettim(){

1* Rout1ne to get time data from memory to an array *1

int 1;
char *clkmem;
clkmem = HEM;
for (1 = 0; 1 <=5; 1++)
num[1] = *clkmem++;
End of Listing

Micro Cornucopia, Number 23, April-May 1985

29

SLICER Special April Prices!
Slicer Single Board Computer

NeWU

April Specials!
Assembled and Tested 8 Mhz . . . . . . . .. $895!
Full Kit ......................... $715!
Easy Kit . . . . . . . . . . . . . . . . . . . . . . . .. $400!
Bare Board ....................... $125!
DOS KIT includes Bare Board,
CPU and choice of
MS-DOS or CP/M-86 ............... $295!

The Slicer System
Expansion Board

April Specials!
Assembled and Tested .. 0 0 0 0 0 0 0 0 0 0 0 0 $650!
Full Kit . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $450!
Memory Board Kit 0 0 . 0 . 0 0 0 0 0 0 0 0 0 0 o. $300!
3-Port Kit 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $200!
Bare Board 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $75!

The Slicer
PC Expansion Board
Assembled and Tested 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $600
Full Kit 00000000000000000000000000 $550
Easy Kit 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 $400
Not-So-Bare Board 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $200

New!!

Western Digitall002-SHD
Hard Disk Controller
Assembled and Tested 00 0 0 0 0 0 0 0 0 Only $200!

New!!

The Jl Slicer 188
Assembled and Tested 0 0 0 0 0 0 . 0 0 0 Only $700!

Slicer Enclosure System
Enclosure (alone) 0 0 0 0 0 0 0 0 . 0 0 0 . 0 0 0 0 0 0 $125
with 135W Power Supply . 0 0 0 0 0 0 0 0 0 0 $245
with PoSo and two 80 track
5%" Disk Drives 0 00 0 0 0 . 0 0 0 0 0 0 0 0 0 0 0 $695
10MB (formatted) 1/2 height
5%" Hard Disk 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 $700
PC Compatible Keyboard 00 000 0 000. 0 0 0 $150
PC Compatible Amber Monitor 000 0 0 0 0 0 $175

New!!

Super Enclosure System
Enclosure, Power Supply, 1/2 height
80 track floppy, 10MB (formatted)
5%." Hard Disk, Western Digital
1002 SHD Controller
All for Only 000 0 0 0 0 000 0 000 . 0 0 0 0 0 0 $1395!

8087 Math
Co-Processor Board
New!!

(Requires removel of CPU socket)
This board requires a C-Step CPU and an
8 Mhz 80870 Kit with all parts except
CPU and 8087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $3001
8 Mhz 8087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Call

Try our New SLICER Bulletin Board System 30011200 Baud at (612) 788-5909

SLICEKM

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

PAYMENT METHOD: Mastercard, Visa, check, money order; or COD
(certified funds or cash). Please allow 4 to 6 weeks for delivery ARO.
Minnesota residents please add 6% Minnesota sales tax. Normal shipping
within the continental USA (via standard U.P.S. service) is now included
on all boards and software.

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

The Slicer
System Expansion 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
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 most types and sizes of
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 .... April Special $895

The Slicer
PC Expansion Board
J~'

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

The }J, Slicer 188
~\~

~e

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

~e

•
•
•

GIVES YOUR SLICER HIGH PERFORMANCE
VIDEO CAPABILITY
I BM compatible monochrome video
Video memory provides 4 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

•
•

•
•

SLICERT.M

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 .... April Special $650

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

•
•
•
Fully

Complete microcomputer on high quality
5-3/4" x 7-3/4" 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
assembled and tested only . . . . . . . . . . . . $700

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

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

The Slicer Column
By Laine Stump

Dave, this column isn't quite the trip on the data
bus to the CPU that the last column was. It is intended more for people who don't have a 16-bit machine yet, or who have just gotten one and have
been paranoid about 8086 assembly language. I
hope it will be read by a lot of 8-bitters who are
scared of big bad 86. (Now, life in the fast Laine

... )

Well, you finally did it. You just
dropped your entire food budget for the
spring of '85 on a cute little 16-bit machine that should really kick the diodes
off your Z80. You bring it home, proudly
set it up on the workbench, tum it on,
and suddenly remember that you don't
know a thing about 8086 assembly language. Your hands tremble as paranoia
sets in. You muffle a low scream and
reach for the CP/M-86 manual. HELP,
MR. WIZARD, HEEELLLLLLPPPP!!!!
Eightysixophobia
Many people are initially scared by the
apparent complexity of 8086 assembly
language compared to Z80. It really is
nothing to be frightened of. If you are
used to writing in 8080 code, all you have
to do is change the name of a few registers and add a CSEG or DSEG here and
there.
Even the interface to the operating
system is very similar. If you have been
using Z80 code you will have to replace
all your LDs with MOVs (I still forget
quite frequently) and give up some of
those old tricks with the alternate registers, but most of the same old instructions are still there (plus quite a number
of new ones). Only the names have
changed.
To help along those souls who are still
troubled by the idea of learning a 'whole
new language,' I have written a short
CP/M-86 assembly language program
(Figure 1) that shows the similarities between 8086 and Z8U programming,
while also giving examples of some of
the more powerful 8086 instructions that
have no direct Z80 counterpart.
More, You Say?
MORE doesn't do anything complex;
it just types a file to the console a page at
a time. After each screenful, the message
'- More -' is displayed. The program
will not display another page until you

32

Micro C Staff

type a key. This is similar to the program
of the same name that comes with MSDOS and UNIX.
This isn't much of a job, but it is
enough to show how to use CP/M -86 to
open a file, read from the file, output
characters to the screen, and input characters from the console. MORE can be
assembled with the ASM86 assembler
included with CP/M-86.
I will examine each section of the file,
pointing out unique features along the
way.
Constants, Labels, And Variables
The first section of the program defines some frequently used constants.
Although Z80 assembly language treats
constants, labels, and variables identically, ASM86 thinks they are totally separate beasts. This becomes apparent
when you discover that the instruction:
HOV

DX,ESC

has two different meanings depending on how ESC is defined. If ESC is a
constant (defined with EQU), DXis loaded with the value ESC. If it is a label (defined by following it with ':') or a variable
(defined by placing it at the beginning of
a DW, DB, RW, etc.), DX is loaded with
the contents of memory location ESC. To
MOV the value ESC into DX if ESC is a
label or a variable, you must use:
HOV

DX,ofrset ESC

OFFSET instructs the assembler to use
a variable's 'offset address' within its
memory segment as a constant. I know
all this seems confusing, but it really
does work out nicely, since most of the
time you use the contents of a variable,
not its address. Think about it for a minute,and you'll see that this is how constants and variables are handled in most
high level languages. See now, if ASM86
is inconsistent, then so is Niklaus Wirth.
(I'm not telling him, are you?)
CodeMacros
The next section of MORE uses
ASM86's CodeMacro facilities to define a
new instruction called 'BDOS'. This instruction takes the form:
BDOS

FTNNUM

where FTNNUM is the number of the
BDOS function you want to use. This
'macro instruction' expands into the following instructions:
MOV CL,FTNNUM
INT 224

;put funct. I in CL
;call BOOS

This is how BDOS is accessed in CP /
M-86. Any arguments that need to be
sent to CP/M-86 are placed in the DX
register. This is very similar to CP/M-80
where arguments are placed in the DE
register and BDOS is called with:
LD
CALL

C,FTNNUM'
5

All the function numbers supported
under CP/M-80 perform the same operation under CP/M-86. There are also several new functions that I may discuss at
some later time.
WhereAmI?
The next interesting thing to occur in
the program doesn't. There is a CSEG
statement to tell the assembler we are in
the code section of the program, but
where is the ORG statement? It turns out
that CP/M-86 programs start at location
oin the code segment, and ORG 0 is assumed by the assembler. Makes things
easy, doesn't it?
The Stack
Most well written programs start by
setting the stack pointer. This one
doesn't. I chose not to set up my own
stack because MORE doesn't use much
stack space and SS:SP already points to a
96-byte stack in the CCP when the program begins. This avoids having to discuss all the clutter that occurs when setting up a different stack pointer. The
clutter (trick code) is necessary because
an interrupt occuring after the Stack
Segment (SS) register has been set and
before the Stack Pointer (SP) has been
set could create catastrophic results. This
is all explained in Appendix B of the CPt
M-86 manual.
The Body
There are several instructions in the
body of the program that deserve a close
look. Notice, for instance, the CMP instruction that compares the contents of
memory with a constant value. No more

Micro Cornucopia, Number 23, April-May 1985

clobbering the accumulator every time
you want to compare two values!! Most
of the 8086 instructions offer greater flexibility than those of the Z80. Any of the
general registers can be used for arithmetic operations; you can even directly
use a memory location as an accumulator. The only constraint placed on MOV
and the arithmetic instructions is that at
least one operand of the instruction must
be either a general register (no segment
registers) or a constant.
BDOS calls are made in several places
using the BDOS instruction we defined
earlier. Notice that when an address is
needed (for instance the address of FCB,
the File Control Block), it is placed in DX
by using the 'offset' directive. It is sometimes useful to think of offset as meaning
'the address of.'
The TYPE128 routine contains two
helpful instructions. The first is the
LaDS instruction. LaDS moves a byte
or word (depending on the operand
type) from memory pointed to by register 51 (Source Index) to register AL or
AX. 51 is then automatically incremented or decremented by the proper
amount (1 for byte, 2 for word). There is
no direct counterpart to this instruction
on the Z80. The LDI instruction is close,
but it moves only bytes and only from
memory to memory (memory to memory moves are done on the 8086 with the
MOVS instruction).
Another instruction in TYPE128 is
LOOP, which decrements register CX
and jumps to the designated address if
CX is not yet O. This is the same as the
Z80's DJNZ instruction except that it
uses a 16-bit register (CX) and therefore
can control the repetition of loops that
need to repeat up to 65,536 times.
Farther down in the listing is the
PAGE routine that waits for a key to be
typed and resets the line count. Another
feature of the 8086 shows up hereLINECT can be directly loaded with a
constant value, without using a register.

look just like the base page of memory in
CP/M-80. This means that the two default File Control Blocks (FCBs) are
placed at 5Ch and 6Ch, the command
line trailer is placed at 80h, and the Disk
Memory Access (DMA) address is initialized to address 80h. If I were not going to use any of the data provided by
CP/M, I could just start the program's
data at location 0; since I do use the data
from CP/M, I start the program's data at
100h, just above the base page.
All data looks nearly the same in any
assembly language, so there isn't much
more about the data section that is worthy of mention. One thing you should
notice is the RB directive at LlNECT. RB
means 'Reserve Bytes' and is identical to
the Z80 DS (Define Storage).
Also notice that none of the labels (actually they are 'variables' according to
the ASM86 manual) in the data section is
followed by':'. Doing so generates an error message from ASM86. ASM86 is
very strict about where colons are
placed. Lab,els MUST be followed by a
colon; variables and constants MUST
NOT be followed by a colon. Contrast
this to the M80 assembler where constants (equates) MUST NOT be followed
with colon, and variables and labels
MUST. Now try working with both systems at the same time and see how long
it takes before confusion subsides.
The BO and CO, by
the way, turn video highlighting on and
off on my souped-up Big Board. Unless
you are using a new Kaypro (or a Big
Board with my super-duper ROM) as a
terminal, you will want to change or remove these.
Object Code Size
i pointed out earlier that the more versatile moving and arithmetic routines let
you do the same operation with fewer
instructions. An interesting sidelight to
this is that the single 8086 instruction:
HOV

Data
Following the PAGE routine is the data section of the program, indicated by
the DSEG directive. You notice I have
put ORG statements here. This is because CP/M-86 initializes the first 100h
bytes of the program's data segment to

LINECT,1

jC6 06 00 01 01

takes 5 bytes, exactly the same number
of bytes it would take to do the opera tion
on the Z80 with:

It appears that these more powerful
instructions don't directly lead to a
smaller object file. But let's assume that
the value in the A register must be preserved. This does not change the size of
the code for the 8086, since it doesn't use
any registers. It does change the size for
the Z80, however, since now we must do
the following:
PUSH
LD
LD
POP

Micro Cornucopia, Number 23, April-May 1985

A,1

i3E01

(LINECT),A

i32 00 01

A,1
(LINECT),A

j3E 01
j32 00 01

AF

jF1

Now it's 7 bytes! (and it requires four
more memory accesses). Of course, most
Z80 programmers avoid keeping permanent values in the A register, so the extra
code wouldn't be needed very often.
Even so, this forces us to keep one less
value in a register, leading to more memory accesses and slower execution (along
with longer instructions somewhere
down the line).
8080 Translations
All this talk of object code length and
program efficiency brings to mind another subject: converting 8080 assembly
language programs to 8086 assembly
language with XLT86 (a source code
translator available from Digital Research). Let's see what happens to a typical sequence of 8080 code when translated to 8086. The following two statements
check to see if register DE contains a 0 (a
very common need):
LD
OR

A,D
E

j7A
jB3

When XLT86 translates this to 8086
code we get:
HOV
OR

AL,OH
AL,DL

iSA c6
JOA C2

The object code is 100 percent 'larger!
Now you know why all the public domain programs for the 8086 are so bigmost of them are just 8080 programs
worked over with XLT86.
The extra code size can be avoided,
however. A good way to check for DX=O
in 8086 assembly language is:
OR

LD
LD

jF5

AF

DX,DX

jOBD2

(Continued next page)

33

THE SLICER COLUMN _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 33)

Back to two bytes again. See what a
little human intervention can do?
Now let's look at execution times of
the real 8086 code versus the 'rehashed
8080' code. According to my 8086 microreference chart, OR DX,DX executes in
three clock cycles. Its double instruction
counterpart takes five cycles. Not only is·
the code twice as large, but it also takes
nearly twice as long to execute! I must
admit, however, that it is still faster than
a Z80 running at the same clock speed (it
takes the Z80 eight cycles).
These may all seem like nit-picky, minor little points, and since the program
in question is just XDIR or something,
program size and speed are rather inconsequential. But if you are considering
moving over a real, professional package
from 8080 by using XLT86, don't consider it. Forget it. Translate it by hand; you
will be much happier in the end.
I Know, I Know
I said last time I would talk about the
Signetics 2681 UART chip. I still will, but
not this month. Next time. It's just that I
got a request for this topic, and it's so
rare that I-get a request to do anything
(other than be quiet and go away) that I
just had to do it.
I should also have a firsthand report
on the Slicer PC board by next time,
along with notes on a C compiler or two.
I spent an evening toying with Small C
and found that it is a great learning tool,

but lacks some important features
(struct, for example) that I can't do without (I've been spoiled by UNIX C). I have
heard that The Code Works is coming
out with Q/C for MS-DOS. Ifitisasinexpensive as the Z80 version it might be
worthwhile.
Speaking of requests-I have finally
received some responses to my column
(a whole two letters and a comment on a
renewal slip). Just to encourage more of
the same, I am going to give you my address at school. I don't give this to just
anyone, so you should feel privileged.
(You Kaypro people turn the page now!
This isn't for you.) I must warn you that I
will only be at this address until June 15,
when I graduate (cross your fingers everyone). After that, I may be anywhere.
Please send any suggestions for future
columns, public domain software, care
packages (no peanut butter cookies,
thank you), products to review (no data
bases or Apple products), donations, hot
software tips, bribes, threats, citations,
phone numbers (brunettes only), death
threats, and fan letters to:
Laine Stump
1819 S. Rouse
Bozeman, MT 59715
And, yes, we do have a lot of clowns
up here.

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 com·
patible to size S, M, L and XL, for
only $6.95 ppd. ($8.50 all foreign).

MICRO
CORNUCOPIA
P.o. Box 223
Bend, Oregon 97709

•••

Finally. a real time calendar/clock for the 820'=~----------,iiiiiiiiii;----82011 and Big Board. Time stamp files. document
I-------orintouts. Your computer need never ask YOU t h e - - - - - - - - - - - - ,
me again. We use an OKI clock chip with a lithium
1-------1-..~ttery backup. Crystal controlled to time resolution------------...J~~:~~-----I - - - - - - - o f one second. 12/24 hr. format. even keeps track -------------~1:
I -_ _ _ _ _,UJ leap year. Board simply plugs into parallel
I -_ _ _ _ _,Il comes with software on disk and manual.
I -_ _ _ _ _,ru:::a:st:' state type of system and 5 1,4 or 8 inch disk. _ _ _ _ _ _ _ _ _ _ _-1

--------------1

~~~~~~~~t MICRONCRON put time out of mind. into

~

memcIJV,----------11IiIIWII

iiiiiiiiiiiiiiiiiiiii~~§~~~

MC - 1 with disk .............................. $ 69,j.
MC. VISA COD. CHECK.
P Ii> H $2. NYS ADD TAX
• Xerox 820. 820 II trademark of Xerox

34

'-------

716-377-Q369

PO BOX 81
PITTSFORD. NY 14534

Micro Cornucopia, Number 23, April-May 1985

The Kaypro Column: An Adventure In Trouble Shooting
By Dr. Ralph E. Chatham

It was on a Monday that my Kaypro II
died. This was the same trusty machine
that had worked perfectly for over a year
and a half. I had hauled it across country
and had wheeled it on a little cart
through the halls of the Pentagon. This
was my good friend, who corrected my
spelling without making snide remarks
and with whom I had struggled through
the first release of Perfect Software.
Imagine my dismay when my writing
companion first began to slow down and
then refused even to read a disk.
Up to that time, my experience with
computer hardware had been limited to
learning what an op-amp was, and to
knowing which end of a soldering iron to
hold. But with my little ohmmeter and a
lot of advice, I learned more about my
Kaypro in six days than I had in the previous year and a half.
About a year ago I subscribed to Micro
Cornucopia. I wasn't sure I would understand enough of it to make it worthwhile, but I had hopes for the 5MHz mod
and an interest in the schematic and theory of operation package. As each Micro
C came, I found that I understood about
half of its contents, was thoroughly baffled by the rest, but enjoyed everything.
My Kaypro had had some trouble
reading a few disks a week or so earlier,
but I had attributed it to the 5MHz speed
up.
Monday
On that dreadful day, I hauled the
Kaypro into my office and was trying a
new program to change the tab spacing
default. I had written half a copy of
PW.SWP to my B: drive by mistake. Every time I tried to run Perfect Writer I got
nasty notes about a bad swap file until,
by accident, I started from disk A:. Then
the disk accesses began to get very slow.
Swapping crept along, and the return to
menu took what felt like forever. Things
seemed to get even slower as the system
tried to access the disks to format and
then print my file.
"Well," I thought, "there must be
something else wrong with my newly
generated copy of Perfect Writer." So I
removed the disk, put the old copy in,
and pushed the reset button. Drive A:
just spun. I tried every other disk I had in
the office, and all drive A: would do was

8527 Betterton Ct.
Vienna VA 22180

light up and turn, while the screen kept
saying, IIPlease put your diskette in
drive A."
There are few things more frustrating
than a computer that can't even read its
own system. I called my computer store.
A recording said they were all busy, but
they would call back as soon as they
could.
On My Own
In the face of such prompt dealer support my first step was to open up the case
and look for any lose sockets or cablesanything that might have wiggled during transit that shouldn't have. Nothing.
Next, I suspected the 5MHz mod I had
just installed. Maybe if I took it completely out that would fix it. The Radio
Shack I called had never heard of those
chips whose pins I had bent and soldered jumpers to, but they suggested an
electronics supply store which carried
things like that.
I remembered a note in Micro C about
a transistor that might be needed to
sharpen up the rise time of the timing
pulses. A call to Dana at Micro C was
next on the agenda. He assured me that
if the 5MHz mod had worked once, then
the transistor was not the problem. He
suggested I look for loose things.
He also suggested I swap drives, and
explained how: remove them, change
the shunts, and be sure that the blue terminator is on the end of the line. "If that
fixes it," he said, "the original A: drive is
bad, and you might as well buy another
one since it would cost more to fix than to
replace."
That night I pulled out all my back
copies of Micro C and re-read the Kaypro
columns. I found a discussion of removing drives and swapping them that was a
bit more detailed than my memory of
Dana's directions. I tried it. The 'new'
drive A: just spun. I put the drives back
and systematically undid every trace of
the 5MHz mod, testing at each stage.
Drive A: hummed, and the monitor
blinked its cursor. I stared at the Micro C
schematic and the theory of operation
that had come with it. I went to bed.
Tuesday
Once again at the office (in between
answering questions from Congress,

Micro Cornucopia, Number 23, April-May 1985

and defending my next year's budget) I
called Dana again. I mentioned the pre-·
vious problems with the printer. He had
another idea: some printers ground pin
18 of the parallel port, but some put 5
volts across it.
The older Kaypros (mine was one of
the very first with horizontal drives and
the Perfect Software package) had a 10
Ohm resistor from pin 18 to ground. This
resistor, R21, had burned out on him
once and pulled down the rest of the
power supply, causing funny things to
happen to the drives, one of the systems
most sensitive to bad power regulation.
"Try cutting out R21," he suggested. The
newer Kaypros deleted it altogether.
This suggestion had all the elements of
the right solution.
I drove home joyously, and just before
a family outing, I snipped the wire to
R21.

"Please insert your disk into drive A:."
Flash, flash, flash.
I was poor company that evening.
Wednesday
Back to Congressional statements and
telephone calls. I called Dana again and
was lamenting my lack of an oscilloscope
when he began telling me some of the
virtues of a multimeter. The 4MHz signal, for example, will show on a dc voltmeter as somewhere between 1 and 5
volts. One can trace it from its source to
the drive and insure that it gets that input. He explained that there was good
reason to trace the 4MHz line, since it is
important to the proper timing of the
drives.
Then I called Kaypro, but found the
support number is just for software. Only dealers can get technical support by
phone. After listening to me spout chip
numbers I had discovered only that
morning, the person I spoke to was kind
enough to transfer my call to the hardware department. They were busy, but
promised to call me back. (Where had I
heard that before?)
That evening I called back Kaypro
technical and talked to a man who had
never seen a Kaypro as old as mine. Pretending to be a dealer, but without actually lying to him, I mentioned all the
(Continued on Page 37)

35

Create graphics masterpieces with •••

()l'mfranm

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.
KGRAPHTM 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
them to and from disk. Layout forms, design logos, draw
charts and xy plots (scatter-graphs) - KGRAPH uses hand
entered data or reads numerical data from just about any
pictures. It's easy and fun to usel
source including d8ase II, spreadsheet, Mbasic and
Wordstar files.
KBRIEFTM produces electronic on-screen "slide shows" with absolutely
no programming required! KGRAPH and K80ARD files are
easily sequenced using nine special effectsl

.aMBRANDT is complete with printer routines so graphics can be reproduced on virtually every
dot-matrix or daisy-wheel printer.
• a.BRANDT, the Complete Business Graphics Toolkit costs just S79.95.
A demonstration disk is just S5.00 applicable to the purchase price.
See your K.-ypro 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 $29.951

Now
available
for the IBM-PC
75 formats
just $39.95

READ, WRITE and FORMAT more than 25 dlHerent
types of disks "nclud'ng IBM PC-DOS/M5-DOSJ with

iiii»P~M

Are you tired of trying to flnd your favorite software package in K.-ypro format? Would you like to use your
K.-ypro generated Wordstar flies, dBase" data and spreadsheet flies on the IBM-PC at work (and vice-versa)?
Do you want to trade public domain software with a friend who owns an Osborne?
MBDIA MASTB. gives your Kilypro Instant access to program and data flies in over 25 disk formats including:
Osborne SD & DD
IBM PC-DOS 1.0 & up
IBM PC-DOS 2.0 & up
IBM CP/M-86
Morrow MD2
Systelll .

LNW-80
TRS-80 with Omlkron CP/M
ms-so III w/Memory Merchant
TRS-80 IV with CP/M+
Heath Zl00
Heath w/Magnolla CP/M

Cromemco w/lnt'l Term
Cromemco COOS SSOD
Cromemco COOS SSSD
TI Professional CP/M-86
Actrlx
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 Iand III: All other models soon I
ORDERING INFORMAnON:
~
~

[tll~

. - ..

Include S3 per order for ppstage/handling. Overseas airmail add SID.
California residents add 6% tax (LA County. add 6.5%).
To place COD or credit card orders.

call TOLL FREE 24 hours: 800-824-7888 ,Ask for Operator 409)
Alaska, HawaII: 800-824-7919 ,Ask for Operator 409)
Technical questions: call (818) 716-1655

---.....---- -- ..--..------

For more information, a free brochure (Including sample printouts and reviews), or to order, contact:
formerly
DG/SYSTEMS

T E C H

36

N

0

L

0

G

I

E 5,

I N

22458 Ventura Blvd., Suite E
Woodland Hills, CA 91364
C.

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

THEKAYPROCOLUMN ____________________________________________________
(continued from page 35)

things I had done, concluding that I
could "Easter-egg" parts, but would
rather have some rationale to my approach.
"Why don't you swap boards with a
good one?" he asked. My identity as a
dealer became rather shaky when I had
to admit I had no spare boards. ("I'm a
rather small outfit.") He suggested I try a
blank formatted disk. I already had.
Then he suggested it could be the disk
controller chip. I thanked him and wandered down to the basement to try tracing 4MHz with a dc ammeter as Dana
had suggested.
In the process of tracing, I realized
there were buffers in the circuits. Many
of them inverted signals from one source
or another before they went to the disks.
I could easily measure the input and output to see if the inverters did the right
thing.
I made some measurable progress that
night as I reread the theory of operation
and studied the schematic. I went to bed
a bit more hopeful than the night before.
Thursday
I now had a list of about eight chips
that were connected to the disk drives
and might be doing bad things. My
problems had to be in one of them. I tried
to find which of these chips were available. Once again I heard the dreadful
words: "Are you a dealer?" or "What
company are you with?" I learned quickly that nobody who had the parts I needed sold to people, only to firms. I finally
told them I worked for DARPA. "How
do you spell that?" they asked. I was
obliged, but failed to mention that it
means Defense Advanced Research Projects Agency, and I was a program manager, not a computer technician.
Schwebbers had a minimum. They referred me to Capital Radio, which suggested Pioneer of Gaithersburg, to Tinker, to Evers, to Chance. Even so,
nobody had ever heard of a 1793 chip.
Back To The Dealer
I began to speCUlate that the only place
that had the parts I needed was a dealer.
So I called my dealer again and got the
same recorded message that they would
get back to me as soon as possible. I told
the recording machine that I did not con-

sider three days as soon as possible in
anybody's time scale.
I tried another dealer. He would have
helped me, but he didn't have another
board himself to swap with me. In any
case, he didn't do troubleshooting by
chip, but by replacing boards and sending the defective one back to Kaypro to
repair.
The Xerox 820 is similar to the Kaypro,
according to the Micro C articles; I figured maybe they could find a disk controller for me. After a call to a Xerox dealer who referred me to a central repair
facility, I found that even they send their
whole boards away forrepairs. "Nobody
repairs at the chip level," they said. "We
will be able to do Kaypros in a few
months, however, and it will cost $75
plus parts."
A final call to Micro C: Dana tells me
the Floppy Disk Controller occasionally
has a prefix FDC, and they were made
mostly by Western Digital. Byte advertisers sell them, he says. The data separator also sometimes goes by the name of
FDC. I didn't have a copy of Byte, but
armed with the FDC designator, I made
another round of calls to the local suppliers. I could get an SMC 1793-02 in "plastic, $44; ceramic, $76.90; or surdip (?),
$54.30 each." (Is 'surdip' anything like
sheep dip?) But as luck would have it,
they were out of stock and had a backlog
of 26 weeks for delivery. Moreover, they
had a minimum, and was I a dealer, anyway? ..
Kaypro Calls Back
Back to answering Congress (with
pencil and paper, and no Perfect Writer).
Then came a call from Kaypro technical
support; my message had not been lost.
It just took some time to get to it.
"Sounds like the problem is on the
board," she said. The metal angle support bracket next to the video board had
occasionally picked up stray currents
from the field of the CRT and could mess
up the drives. Kaypro had been using
plastic brackets there for some time now.
She suggested I first remove the metal
bracket. After that, I should try to trace
the baud rate chip and related ones, then
check for shortings and opens in the cables, and finally try another data cable
and check for more shorts.

Micro Cornucopia, Number 23, April-May 1985

I felt pretty good when I finally went to
bed that night. I hadn't fixed anything,
but I had eliminated all but two chips
from the possible bad ones, since every
line driver and hex inverter worked fine.
Five volts or ground applied to the input
had the correct effect on the output.
(Beware, however, if you check the
unused portions of some chips. Some inputs are hard grounded, and trying to
put a wire with 5 Volts onto that pin will
get you unpleasant sparks and possibly
damage your power supply. I was lucky
and only got the sparks. Another note
for those who are as ignorant as I: two of
the pins, usually on a corner or two, are
used for power and ground. They are
not mentioned on the schematic.)
Friday
On the bus that morning I reviewed
what I had done. My problem either had
to be in the floppy disk controller (FDC
1793) or the data separator (FDC 9216).
Everything else either clearly did what it
was supposed to do, or when replaced
did not improve anything.
I called a Micro C advertiser (Microprocessors Unlimited), and although
they didn't have the parts, they looked
up the distributor in my area. It was
someone I had already called, but when I
told them that they were supposed to
have it, they checked again. Sure
enough, the 9216 was in stock for $11.50,
and a 1793 was in Florida for $33.75, and
because the order totaled more than $25,
I didn't even have to be a company! Iordered both.
Later that morning I got a call from my
dealer who gave me the phone number
of his computer fixer. A few hours later, I
was talking to Dave Means, describing
my symptoms, and offering my conclusion that they were probably due to the
disk controller.
"Oh yes," said Dave. "How about the
data separator. In my experience, whenever this happens, nine times out of ten
it is the date separator. The 1793 is less
likely." If he had told me that on Monday, he would have gotten my $30 for
the first hour, plus parts, but by then he
and I agreed it would be a waste of my
money. I had already found the problem
(Continued on Page 39)

37

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?

.
XW,

* to available CP/M TPA ** XtraKey Custom versions for Kaypro (all models) & Gnat 10 only

Kt,

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 .5. & 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 II, 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

NETWORKING
THEKAYPRO
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!TM
SOME LAN/ROVER 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.

/.\

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

38

Micro Cornucopia, Number 23, April-May 1985

THEKAYPROCOLUMN ____________________________________________________
(continued from page 37)

("and, by the way, did I know of a source
of data separator chips?").
Friday, A Week
The data separator arrived! I never
thought I would be so pleased with the
whirr-chunk of my noisy drive A: as it
ran through its loading paces and gave
me the A>. "My problems are over!" I
thought. Then I tried a disk in the B:
drive. Whirr-whirr-whirr, but no chunk.
I looked at the back of the drive enclosure and saw that the drive select shunt
which was supposed to tell the drive that
it was drive B: had been knocked loose.
Out came the drives, in went the shunt,
and back went the drives. I finally got the
raggedy whirr-chunk from both drives.
Metamorphosis
So here I am and things will never be
the same. I have no (well hardly any) fear
of the inside of the Kaypro. And I can
never again just assume it is my fault
when something doesn't work. My
trusty Kaypro isn't so trusty anymore.
When a disk fails, is it a faulty disk, or is
my drive subtly out of order due to my
messing with it? And I still don't know
what caused the data separator to fail in
the first place.

(Editor's note: Kaypro got a huge batch of
flaky SMC data separators, and for several
months, many systems were dying before
they could get off the dealers' shelves. I assume that Ralph's system got one of the flaky

chips. His next problem will probably be with
the Tandon drives, but replacement with
good quality half-wide Japanese drives is easy
and quite inexpensive.)
I do, however, have a great feeling of
achievement over the all-tao-animate
object. Moreover, I re-learned some
rules of trouble-shooting:
1. First, you can do a lot with very simple tools: screwdrivers, a few alligator
clips, bits of wire and a cheap meter.
There is even some advantage to using
such tools; it makes you think about the
problem. (Those of you who used to use
slide rules but now use calculators may
recognize the phenomenon.)
2. Keep trying. There were two fronts
to my effort. One was the daytime effort,
confined to phone calls to dealers, parts
suppliers, non-linear, and of course, Micro C. The night shift was trial and error
with screw driver, multimeter, and schematic. Both fronts were necessary to my
developing a final solution.
3. Get out the telephone and call everybody you can think of. Some of them
may be a big help. (Micro C only takes
technical calls between 9 a. m. and noon
Pacific time.)
4. Read everything you can get hold
of.
5. Suspect things that have changed
recently on your machine.
6. Test everything as you do it.
Change one thing and then test. Otherwise you don't know what did what.

7. Don't be afraid of trial and error.
Probe test points. When something
changes, try again.
8. Try to make an exhaustive list of the
parts possibly affecting the problem
area, and then cross out the ones that
definitely or probably don't contribute to
the difficulties.
9. Beware of damaging things while
working. I was strongly tempted to fiddle with drive alignment even though I
knew I had no way of aligning them.
Fortunately, the alignment setting
screws were hard to move, and that provided enough resistance to keep me
from more than just half heartedly twisting at them. I was also lucky that I had
not dislodged the drive select shunt on
drive A: (as I had on B:). Otherwise, I'd
never have known that the data separator had fixed the problem.
10. Finally, when in doubt, don't just
sit there-MEASURE something.

• ••

"CIBO . .. the best software buy in America!"
-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 HOOS with:

•
•
•
•
•
•
•

110 redirection
command lin'e expansion
execution trace and profile
initializers
Macro·BO compatability
ROMabie code
and much more!

"We bought and evaluated over $1500
worth of 'C' compilers . .. CIBO is the one

we use."

- Dr. Bruce E. Wampler

Aspen Software
author of "Grammafik"

Micro Cornucopia, Number 23, April-May 1985

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

For your free catalog contact:

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

39

Do you own a CP/M-in-a-Iunchbox cOInputer? If so ...
..

*

.Suminon~
"Thanks for another
unbelievable issue, this one
wore out two ribbons." "My
MX-aO is still panting. Wow, 131
pages!"

*
...

'·Big enough to break the
coffee table ... I love it!"

,

e.

...

*

·'Including software is an excellent idea."

*

*

"I have never read a more
readable or more useful (or
printed a bigger) periodical on
microcomputers. "
"My wife and I are programmers (5 and 17 years respectively) and :are not easily )rn-:
pressed, but the Oracle of Zeus .
has left us slack-jawed!"
"Once again I was overwhelmed at the quantity and
quality in the Oracle.'·

"Utterly dazzling"
"I hear nothing but rave
reviews of the Oracle."

'·1 learned more from the
Oracle than from some college
courses I've taken."

*
"Easily the best microcomputer newsletter in North
America. "

*

*

*

..

Read the Oracle of Zeus! It's the best CP/M oriented newsletter in North
America--but don't take our word for it, read what our readers have said.
The Oracle is the newsletter of the

Zorba Equipment Users' Society
Published bimonthly on disk and
now available in KA YPRO 4 format.
Volume 1 (1984) was more than 600
pages crammed with useful information and ready to run programs. In it
you'll find reviews that really tell you
how to separate the roadrunners
from the turkeys, programs or
hardware·- reviews of up to 20 pages
each. And ...

FORUM (letters):
questions
answered and experiences shared,
REGULAR COLUMNS:
hardware,
telecommunications, funnies etc.
HARDWARE REVIEWS: modems,
printers, RAM disks, hard
disks ... SOFTWARE REVIEWS:
languages, editors, utilities... you
name it!

Plus:
interfacing information, tips on how
to get the most out of your programs
(dBASE, WordStar etc.) and hardware, book reviews, FREE classified
ads and subscriber discounts.

Subscribe to the Oracle, it's like a great bulletin board without the phone bills!
Trial issue: $5. Volume 1 (6 issues): $20.1985 Subscription: $25

ZEUSLIB: Now in Kaypro 4 format and on 8-inch disks
We have compiled 15 volumes (388k each) of the best public domain software you can find anywhere.
Many of the files are compressed, so some of our disks have more than half a megabyte on them, yet they
only cost $5 each ($12 on two 8" disks). Free catalog on request.

ZEUS, P.O. Box 40165, San Francisco, CA 94140

The MicroSphere 256K RAM Disk
By Sven Erlandsson

W hen I discovered that installing a
RAM disk could prevent a lot of wear
and tear on my disk drives, I decided to
invest in Microsphere's 256K version.
The installation was simple. I removed
U52 (74LS24) and replaced it with a
jumper block (included with the shipment). Then I mounted the power supply plug on a rear vent opening, and
connected the grabbers to +5V and
OV(ground). No soldering was required.
The parallel port is normally a oneway port, sending data to the printer,
and U52 provides buffers on the signal
lines between the Z80 Pia and the printer. The RAM disk requires two-way
communication (write and read), and
the buffer (U52) has to be removed for
direct contact between the Pia and the
RAM disk.
Once the short, sturdy parallel ribbon
cable and the power supply cable are
connected between the Kaypro and the
RAM disk, everything is ready for operation. The ordinary printer cable, formerly connecting the Kaypro and the printer, now connects to a second parallel
connector on the RAM disk enclosure.
Software Installation
The RAM disk comes with a floppy
containing initialization programs, but
the CP/M system first has to be changed
from a 64K to a 63K system. MOVCPM. COM handles the change, but ZCPR
gets lost in the process. 4INSTALL. SUB
on Micro C's K22 disk reinstalls ZCPR on
the 63K system for the RAM disk.
Immediately after setting up the 63K
CP 1M system, I tested the RAM disk by
initializing it with the DYNA42.COM
program.
The RAM disk works exactly like a
floppy disk drive, but much faster, and
without the grinding sound of the old
disk drives. DYNA42 provides a 215K
drive, while DYNA42S provides a 191K
drive. The latter is the way to go if you
plan to use the diskcopy program for
copying the RAM disk to a 191K floppy.
With a 'DIR F:' command, one can toggle the RAM disk to be either drive A: or
drive E: (conversely, the real A: drive becomes E: or A:). On power-up initialization, the RAM disk is E:. A diskcopy program is included, which will copy the
complete disk A: to E: (track by track),

3268 Leon Brisebois
He Bizard Quebec Canada H9C 1W2

but you can also do file by file copying
using PIP.
The 32K printer buffer part of the RAM
disk works beautifully, and keeps the
printer chugging along even during read
and write activities.
Problems
Initially I had problems getting some
programs to run on the RAM disk. Perfect Writer hung up just after sign-on
and the only way out was to reset the
system.
Perfect Calc printed a distorted matrix
on the screen (starting with row 1, but
with column 'c', rather than 'a') and
went to a warm boot as soon as I asked
for a da tafile.
SBASIC generated a lot of error messages when displaying the 'print' file,
and the compilations were aborted.
A Little Sherlocking
Trying to figure out the bugs listed
above, I did the tests below:
I replaced the MOSTEC Z80 Pia with
a ZILOG Z80A Pia (the shop didn't
have any Z80B in stock).
I moved 'MUX' to pin 3 of U66 and
'CAS' to pin 4 (according to a recommendation in Micro C #12).
I exchanged U33, U34, U39, and U48
to faster chips (good for speed-ups, according to Micro C #18) .
I installed ZCPR to work on the RAM
disk setup. (I was lucky to find
'ZCPR4S. HEX' fitting the 63K CP 1M system on Micro C's K22 disk. Otherwise I
would have had to get hold of a macroassembler.)
I temporarily installed a separate 5V
power supply for the RAM disk.
A Pattern Emerges
I discovered some interesting things
during my testing.
First, the problems with Perfect Writer
and Perfect Calc repeated themselves
time after time. CRC consistently gave
the same 'Mismatch' result each time a
floppy had been copied over to the RAM
disk.
If 'pc. COM' was moved to another
location on the RAM disk, it worked perfectly. However, the copy program used
with its 'verification' option didn't give
any error messages. 2DISKTST. COM

Micro Cornucopia, Number 23, April-May 1985

didn't find anything wrong with the
RAM disk drive.
I noticed that the problems occurred
with the program file in 'Memory Bank l'
of the RAM disk. I used the 'COMPARE'
program (from MICRO C's K2 disk) to
find out where the file differed from the
original on the floppy, and I used
'XAMN' (from my original System-Disk)
to study the differences. I found that if I
corrected the faulty bytes (using
XAMN), they would remain correct for a
while, but then change back to the same
faulty value. That's why the verification
program and the drive test didn't find errors.
I See The Light
Byte #20H on track #16, sector#26
contained 28 hex rather than the 2A hex
it was supposed to contain. Byte #20H
on track #21, sector#22 contained FD
hex rather than the FF hex it was supposed to contain. With this information
in hand, I called Microsphere.
They were very responsive. Within
minutes I learned that the same memory
chip contained both bits. I also learned
about the memory bank layout, and that
I should replace either memory chip #6
or #2 in the second memory bank.
Although Microsphere mailed me a
new RAM chip, I couldn't resist a quick
trip to the local parts house for a Mostek
4264.
Now everything's working perfectly.
The RAM disk is more than fulfilling my
expectations, and I had a great time doing the detective work. In the process, I
learned to appreciate the Micro C series
of well supported Kaypro disks. And
now that I have 256K, I'm ready to speed
up t05MHz.

•••

41

-

- .. - -

AT
..... y'Ftr'!"'!t
.. --.. -.- P!~_
--.. .~
U' ~• .&. ~JL ~~• .&. ~~.&.J'
FOR YOUR KAYPRO
... •

••

.,

__

......
~

-

-

l'

_...

_

_

Electronic RAM disk and Printer Buffer Combination-the
ultimate add-on for Kaypro II, 4, 2-84, 4-84 and 2X Computers.
Incredible speed and efficiency are offered using MicroSphere's dual
operation Electronic RAM disk and printer buffer. No longer will
you need to wait for your Kaypro to slowly finish mundane tasks
such as running a printer or waiting for floppy drives to turn when
you have better things to do.
RAM disk size
Configuration
price
256K
215K RAM disk 32K printer buffer ~$395.00
512K
470K RAM disk 32K printer buffer ~ 545.00
512K
430K RAM disk 64K printer buffer ~ 545.00
1mb
946K RAM disk 64K printer buffer l;2Se.eo- 995.00
U.S. add $5.00 shipping
International add $15.00 shipping
When ordering, please include the model of Kaypro to be used.
Boards can be upgraded should yours need change.
Typical speed increases you can expect to see using MicroSphere's
RAM disk:
4MHz Kaypro
Floppy Disk RAM Disk
Recalc 14K Perfect Calc
9:31.25
1:17.78
Load LADDER.COM
9.38*
2.12*
Load Printer Buffer
24.61 *
20k file. 11 pages. 2586 words. using
PIP to the LST device

*Time in seconds
Comes complete with cabinet, cables. software and connectors.
TLC LOGO for Kaypro Computers. Easy and exciting language for
all ages.
TLC LOGO is an exceptionally complete logo with vectors. multiple
turtles, full floating point decimals and extremely fast program
execution.
TWO versions offered:
STANDARD version using only internal graphics of Kaypro 2~84,
4~84, 2X and 10; no hardware additions or modifications are
required; 16,000 pixel resolution.
DELUXE version for all Kaypro Computers that have the Micro~
Sphere Color Graphics board. Features 16 colors, 32 sprites, 49,000
pixel resolution and utilities such as screen dump to printer or disk.
Time comparison of 3 common Logo programs currently
offered:
DR LOGO
TLC LOGO Apple LOGO
320k IBM PC
64k Z80
64k Apple lIe
Circle test
10 seconds
3 seconds
22 seconds
PolySpirall
17
4
11
PolySpiral2
out of stack
7
out of stack
Square Test
27
10
41
Four Bugs
78
6
N/A
(req. 4 turtles)
Times provided by The Lisp Company . . . (note: out of stack
indicates inadequate implementation of "tail recursion") DR LOGO
is copyright Digital Research Company, Apple Logo is copyright
Apple Computer Company, and TLC Logo is copyright the Lisp
Company.
Standard Version ofTLC Logo ....................... ,........ , ........... 99.95
Deluxe Version ofTLC Logo ...................... , ........ , ............... 129.95
Special: Color Board and Deluxe TLC Logo .....• ~99.95 199.95
A NEW DIMENSION FOR KAYPRO COMPUTERS: Color
Graphics Board. Features 16 colors, 32 sprites. 256x 192 bit mapped
graphics. 16K of RAM on the color board itself allows creation of
graphics without losing internal memory of the Kaypro.
Software includes 3 editors. drivers and routines to access graphic
system. Utilities include screen dump to disk and printer. Dual
screen operation features internal Kaypro screen for text and
commands. external graphics screen for results. A TV set can be used
with addition of RF Modulator.
Color board/Kaypro 11,4,2-84, 2X, 4-84, 10& Robie,~
145.00
INSTANT GRAPHER 2.0 (For use with Color Graphics Board)
Creates bar charts, stacked bar charts, hi/low. line graphs from
keyboard. Perfect Calc, CalcStar or text files. Single and Double size
dumpscreen to printer, each color prints a different pattern on a
standard dot matrix printer ................... ;.............$se.ee
$40.00

- . MicroSphere, Inc.

~
_

K

'=
"'=
-

42

P.O. Box 1221

Bend, Oregon 97709
503-388-1194
9-5 Pacific Time

Dealer inquiries im'ited.

_
VISA'

[i~~1
--,'---./

~ 64K Memory Chips!
~~~f\f~ ~
150 nanosecond
4116

200ns

ONLY $.55

Only $1.99 each!

ADVENTURE
GAMES BOOK
Written by Kim Schuette
over 300 pages of maps,
listings and general hints
on almost every computer
game on the market. Like
Zork I. II, & III, Adventure,
Ultima, Secret Agent, Dark
Crystal, etc. - Over 75 in all.
... ... only

$16.95! ......

Z80A Support
Z80A DMA
$3.95
Z80A eTe . . . . . $2.50
Z80A PIO
3.50
Qume Trak 242 - 8" half-ht.
double-sided double-density
$349.00 ($659.00 List)

TERMINAL CITY
Televideo 921 ............. '495 00
Televideo 925E ............ '669 00
Televideo 950 ............. '935 00
Televideo 970 ............ '1129 00
Wyse 50 ................. '545 00
Wyse 75 ................. '739 00
Qume QVT 108 ............ '695 00
ADDS Viewpoint· your're choice·
A1, A2, or 3A+ ............ '569 00

HARD DISK SPECIALS
Miniscribe 5'1• • 10 Megabyte Half Height. (As
used in the Eagle PC and Televideo PC) ,.
1 Year Parts & Labor!
12.8 Megabytes unformatted with an
18 msec. track-to-track access time.
This is the 10 meg used by IBM for
the PC-XT version. Standard ST-506
interface. IN STOCK $~

Sale Price $539.00

ORANGE COUNTY COMPUTER

~

~.'I

(7141895·5033

. ------ "'5122 Balsa Avenue, #108
Huntington Beach, CA 92649

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'f.lSIVB 30 PG MANUAL
WORKS WITH ANY CP/M SYSTBM '
- SOPTWARB INSTALL UTILITY

* * INTBRPACB TWO WAYS * *
1 - ONB 8 BIT INPUT PORT AND ONB 8 BIT OUTPUT PORT - 16 WIRBS
AND A GROUND - NO HANDSHAKB LINBS RBQUIRED,
2 - CBNTRONICS PRINTBR PORT - 8 OUTPUT DATA BITS AND 0N8 INPUT
DATA BIT (BUSY LINB) - 9 WIRBS Ar'-[) A GROUND.

* * CONTROL PROGRAM COMMANDS * *
-

PROGRAM BPROM(Sl PROM DISK
- SA VB BPROMfSl TO DISK
RBAD DISK PILB INT'O RAM
- PROGRAM BPROM(Sl PROM RAM
RBAD BPROM(S) INTO RAM
- COMPARB BPROM WITH RAM
VBRIPY BPROM IS BRASBD
- COPY BPROM
DISPLAY /MODIPY RAM - (MONITOR MODBl WITH 11 SUB COMMANDS
PILL-DUMP-XPBR-BXAMINB-MODIPY -BIA5-PROGRAM-VBRIPY, STe.)

BARB P,C, BOARD WITH COMPLBTE DOCUMBNTATION
AND SOPTWARB ON 8' SINGLB DENSITY DISKBTTS
$69
(ABOVB WITH COMPLETB PARTS KIT - $169)(AciT - $189)
SOPTWARB AVAILABLE POR OSBORNE, KAVPRO AND OTHER 5 1/4 PMTS

--------------------------------------------------------TO ORDER SEND CHECK, MONEY ORDER, WRITS OR CALL
ANDRATBCH
P.O. BOX 222
MILPORD, OHIO 45150
(513) 752-7218
CALL OR WRITE POR MORE INPORMATION -- ADD $300 POR SHIPPING
OHIO RES, ADD 5.5% TAX -- VISA/Me. ACCEPTBD -- $3.00 POR COD

Micro Cornucopia, Number 23, April-May 1985

Do It Yourself Smart Video Controller
By Roger C. Linger

Editor's note: Many of the newer, smaller,
computer boards don't contain terminal
hardware. These boards are very compact and
portable, but if you're stuck hauling around a
monstrous terminal so you can see what
you've done, then you haven't gained much.
You can build the following smart terminal
and package it just about any way you wish,
even in the same cabinet as the computer.
Then, by golly, you'll have all the benefits of a
Big Board. Plus a few:
Some terminals work well with some computers and some software, while other terminals have problems. Your computer's designer (or your text editor's author) may well
have used this terminal with his product. If
you are at all concerned about compatibility
you might do a little checking before doing
this project.
As computer hardware and software
technology increases, more and more capability is required of video terminals.
Terminals need to be flexible in operation, upgradeable, easy to configure (this
does not mean dip-switches on the
circuit board), able to process all data
without the need of handshaking, and
capable of enhanced visual and communications functions.
Here's a 16-chip circuit that can be implemented into an existing "bare bones"
terminal or used separately with a keyboard and monitor to give the video and
communications capabilities supported
by many popular software packages. It
will directly interface to the Xerox 820,
Big Board, Little Board, and Slicer, or
any other computer offering console operation through an RS-232C compatible
port.
Only 700mA at 5V and about 20mA of
+ and -12V are required to run this cir-·
cuit.

Linger Enterprises, Inc.
P.O. Box 5783
Newport News VA 23605
804-244-3874

video terminals. Because of this and its
growing acceptance by applications programmers, ANSI was chosen as the default mode of operation for the 65/9028
VT.
While the ADM-3 emulation basically
performs as a "bare bones" terminal,
many attributes and functions are available while under control of the ANSI or
H19 emulation. These include: access of
a non-scrolling status line, programming of soft (programmable) keys, control of visual attributes and graphics,
screen editing and erasing functions, full
cursor control, etc.
Handshaking protocol, XON/XOFF, is
provided but typically not required since
a Video Terminal Logic Controller frees
the on-board processor of the time-consuming video tasks, thus allowing it
more time to service incoming data.
Set-ups
An on-screen set-up method is used to
configure this terminal. When the set-up
function is selected, the 24th (bottom)
video row becomes non-scrolling and

The 65/9028 VT
The 65/9028 VT (Video Terminal) functions as the communications and video
controller circuitry for a stand-alone video terminal. There are three terminal
emulations within its firmware (monitor
ROM). These are ANSI (American National Standards Institute) X3.64-1979,
Heath H19, and Lear Siegler ADM-3.
ANSI X3.64 specifies reliable control
sequences for almost any function of

Micro Cornucopia, Number 23, April-May 1985

displays a bit pattern of 1s and as. You
select attributes and operating parameters setting these bits.
For example, the logical state of the
first (left-most) bit determines whether
the terminal is to perform smooth or
jump scrolling ('1' selects smooth scroll,
'0' is jump scroll). All selections are
stored in battery backed-up memory so
they remain during power-down. Figure
1 describes the set-up selections.
7 Vrs. 8-bit Keyboards
Figure 2 lists ten functions that can be
performed only from the keyboard, thus
preventing inadvertent alteration of system status by on-line equipment.
Either a 7-bit or 8-bit code can be used
to call local functions. If your keyboard
generates 7-bit characters, a 'Null' (ctrl@) entry alerts the on-board processor
that a local function request is in progress. This special 'lead-in' character is required to keep the following character
from being sent to the computer. If you

(eo-nt/hued on Page 47)

Linger Figure 1 - Set-Up Selections
Jump or Smooth scroll
System Status display (on or off)
XON/XOFF protocol (on or off)
Underline or Block cursor
Solid or Blinking cursor
15 I/O Port baud rates (50-9600)
15 Printer Port baud rates (50-9600)
ANSI, H19 or ADH-3 term. emulation
Line Feed on receipt of  (on/off)
 on receipt of Line Feed (on/off)
Inverse or Normal Video Screen
I/O Port data formatting
Printer Port data formatting
Full or Half duplex
Online or Local
60 Hz or 50 Hz Vertical Sync
Linger Figure 2 - Local Keyboard Functions

a bit

7 bit
keybd

keybd

NULL 1
NULL 2
NULL 3

B1
B2
B3

NULL 4

B4

NULL
NULL
NULL
NULL
NULL
NULL

5
6
7

B5
B6
B7

9
0

B9
BO

a

Ba

On-Screen Set-Up
Display System Status on non-scrOlling row.
Transmit through Printer Port screen contents
from top to cursor.
Transmit through I/O Port screen contents from
top to cursor.
Display control characters.
Display in hexidecimal.
Store first 12 rows of screen for later use.
Recall previously stored screen.
Local/Online operation.
Configure Programmable Keys.-

- Each programmable key can contain a string of up to 32
characters which can be programmed from the keyboard or host
computer. Ten keys (hexidecimal CO-C9) can be used.

43

SMART VIDEO CONTROLLER SCHEMATIC

2

3

4

I

'1,

5

NOTE:

A

!
!
I

I

~ROUNO

.,1 :~ill~D

:20

VIDEO RAM

PROCESSOR IUIDIIIUS

24
Vee

ACIA

\

1-=2=--_ _.,

2 RXD

<
UJ

0

23

z

~

~

<0

UJ

UJ

..J
U

~

LO

OCD

II

U

0

..J

RiD

2

~

i=

~

+D

UJ
U

UJ
~

C\J

8

VIDEO

OUTPUT

A

017

+15

'f'X'i)

3

10

US AND U6 ARE 74LS86 PARTS.

U4"MCI41111

UD

DTR

9

EXAMPLE:
CENTRAL

U!"MC1411

8

ALL 74 SERIES CHIPS ARE 'LS' PARTS.

U16 (SYSTEM RAM) IS SHOWN STRAPPED FOR 2K (5115) OPERATION.
U17 (SYSTEM FIRMWARE) IS SHOWN STRAPPED FOR 4K (2732) OPERATION.

r---~-;;TECTIVE

7

6

u..

UJ

~~

fiC1i

<0

VIDEO
II

10

VIDC!:O
2
HSYNC
4

B

VSYNC

AID

IN

CTS

CO,",POSITE
AO 8
7
AI
AZ
All
A4
A5
AI
A7
AB
All

IB

c

C
IY3 7 $CX VC: L.:1...:
4_:..:..:_ _./
12
IY"
'"
r
XgT: 4 $OX; AllIl-'l..:;lI_=_ _./
2YI!)12

$iiX; AI4t=2:..........;.;.~_..J
1/1

2Y210 $AX

I

D

PROTECTIVE
r---lClROUNO

~

...
IY2 6

71·GROUND
SIG.V"

AIS II

BI

G2

i21"1_~1«I)4I"'-J

$00-'fF G2
GND

CD

ID

'"

SYSTEM

(\J

DECODER

a
m
ln:

.....

+IZ--

Till

•

BELL GND RETURN

G

I

\

SCANNED KEYBOARD INTERFACE!

2 FI RMWARE TO DRIVE

I

E

III

VIDEOi~T------~

+---J

_ _ _ _ _~ _ _~ _ _

..

POWER

Strap
1 to 2
3 to 4
S to 6
7 to 8

1-+12

I~TERFACE CIRCUITRY

CONNECTIONS

TO

U4,U15,U6,UllandUI2 ARE:

POWER CONNECTIONS

TO

Ull ARE:

For

NEG. STROBE (ENCODED KEYBOARD)
POS. STROBE (ENCODED KEYBOARD)
SCANNED KEYBOARD OPERATION
ENCODED KEYBOARD OPERATION

+

12
GND
- 12

TO
TO
TO

+D TO PIN 14
GND TO PIN 1

PIN 14
PIN 7
PIN I

UNUSED

/

AUTO

9

~

RESE~ CIRCUITRY

~

UNLESS OTHERWISE
CAPACITOR RATINGS

\

~

NEWPORT
65/9028

OWO

4

5

6

114 WATT,

5% TOL.

G

NEWS, VIRGINIA
VIDEO

TERMINAL

TLMlIlI9

ENTERPRISES, INC.

3

ARE

TITLE:

SHEET

2

SPECIFIED, ALL RESISTORS
ARE 12 VOLT, 20% TOL.

r---------------------------------------------------~
LINGER ENTERPRISES, INC.

H
LINOER

VIDEO AND SYNC POLARITY SELECT

VIDEO TERMINAL LOGIC CONTROLLER
(VTLq

CONNECTIONS NOT SHOWN'
PIN Z OF UII SOCKET TO AI2
PIN 27 OF UI1 SOCKET TO +D

GATES
UI2

UJJIO.

F

J4

L....,.;;:============:::==========~,\\====:-::====:7

THIS INTERFACE HAS NOT BEEN D'EVElOPED:- - - - - - : BATTERY
, _________________________ ]'t!I~ C1RSll!1.~~SL.H.9~E.Yt.R,_R!~Q..E.9~ l.H§ E..C~<2.A.E12.: J

> U 3 and oil

44

~

Z 12

L.._ _::.G:;.N;.O_ _.... VIDEO SELECT
4

'.ELL OUT)

.....

U611uD

B6

19

4_-12

COPyRIGHT

II

I

CSYNC:~20~4-

KEYBOARD SELECT (35)

5 -UIZ-II

UCI

88

VSYNC:~19~~_ _ _ _--+--~_..J

\ DO

7. NO CONNE CTION

6

HSYNC:~IB~_ _ _ _ _--+-~

I

,

B. NO CONNECT ION \

4 2

B _ _ _-"
IN TOU Tt::.....

,------------'

POWER I U S "
CONNECTOR
\

F

u

1*....

-12?
+DI:.....25
26

014

CD

ADDRESS

I~

E

D

::>

7

I

OF

N0'PLHR84100

8

SCALE

H

NONE

DRN

REV.

R.
9

10

45

NOW IS THE TIME
KAYPR04·84
At last, the real time clock in the 4·84 IS
good for something the complete
TIMEPRO system is available as single
programs, or as a complete set:
SEEI1ME.COM continuously displays the
time and date (in either standard or military
time) on the 25th line of the screen - all the
time you use your Kaypro. Does screen
dump.
ID.COM time and date stamps your disk
files. Automatically detects which files have
been added or modified since TO was last
run and updates the time and date only for
those files. Does automatic backup of
updated files.
APPT.COM maintains calendar of appoint·
ments and other reminders for up to 20
people. Includes archiving capabilities and
several utilities.
....4l
LOG.COM designed mainly
--i'~l:-~"
to aid Kaypro users in
complying with the new IRS
requirements regulating computer use. Can
be used for tracking time spent doing any
type activity. An easy and convenient
method of time keeping!

KAYPRO 2·84, 2X·84
As you probably know, the main computer
board of these two systems is identical to the
4·84, except that Kaypro left out the
components for the real time clock and
modem. We have the forgotten real time
clock components, complete with
instructions, ready to install.
KAYPRO 0, 4 (Pre '84)
Time and speed are yours with our easily
installed SPEEDPRO·5RTC 5 megahertz
speedup board with real time clock.
Shipped complete with the full TIMEPRO
series of 12 programs - a whole disk full
(192K) of software.
All packages are accompanied by programs
for setting the real time clock and by source
. code in several computer languages to
demonstrate the use of the real time clock in
your own programs.

KAYPROIO
Now TIMEPRO can be yours too! Available
now with clock kit TIMEPRO software is fully
compatible with Z TIME· 1 calendar/clock kit
from Kenmore.

mE BOtTOM UNES
SEETIMECOM ..•........•••.... $ 24.95
TD.COM ..................•..... $ 24.95
APPT.COM ........••..•.•....... $ 24.95
ALL ABOVE, PWS SEVERAL
ADDmONAL PROGRAMS •.•... $ 64.95
LOG.COM ....................... $ 24.95
TIMEPRO DOCUMENTS ON DISK
(credited toward complete
TIMEPRO system) ...•.......... $ 9.95
2/2X/10 .REAL TIME CLOCK KIT .. $ 49.95
CLOCK KIT & TIMEPRO ..•....... $104.95
SPEEDPRO·5RTC & TIMEPRO ..... $129.95
SPEEDPRO·5+ SPEEDUP
OOARD .......•........•...... $ 89.95
SHIPPING .....•.......... Software $ 2.50
Hardware $ 4.00
M/C, Visa, COD, Check

ry.namics
Digital Dvnamics (206) 627-0797
P.a: Box 5~53

46

Tacoma, WA 98405

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
Order from

Rperipfico

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

(408) 244-5214

VISA and MASTERCARD telephone orders welcome.
Please specify Disk format
CP/M 8" IBM format, KA YPRO II, XEROX 820, OSBORNE I, others.
Please specify method of shipment, UPS or Postal Service.
California residents add 6% Sales Tax. Dealer Inquiries invited.

Micro Cornucopia, Number 23, April-May 1985

SMART~DEO

________________________________________________________

(continued from page 43)

have an 8-bit keyboard that can output
characters between BO through B9 hex,
the extra lead-in character is not required.
Even if you have a 7-bit keyboard (as
opposed to a 2-bit model) you can add a
switch to force the eighth bit high (connect to +5V to the high bit line through a
1K resistor). Then characters 0 through 9
appear to the terminal as hexidecimal BO
through B9.
Connect the switch between the high
bit line and ground. Opening the switch
causes the entire keyboard set to be shifted up 128 decimal since the most significant bit is being held high.
The Display
The screen display contains 80 characters by 24 rows. When the 24th row is
non-scrolling, the top 23 rows are used
for text display. All 24 rows are used for
text display when the 24th row is set to
scroll.
Character Display
This terminal can display 128 characters, plus simple graphics. The 128 characters include: special characters for the
32 control codes, upper case, and lower
case (with descenders). There is a 7by 10
matrix for each character.
Character attributes include normal,
reverse, intensified, underlined, and
blank. You can also select a normal or reversed screen.

handshake line to see if it is OK to send
data to the terminal.
Meanwhile, the terminal checks the
CTS (Clear To Send) line on}2 or}3 when
it is ready to send characters. If this
handshake line is high, then the terminal
knows it is OK to send data to the computer (or printer or whatever else is connected to the port).

CPU
The CPU, or processor, has overall
charge of the system. It is supported by
U13 (decoder), U16 (RAM), and U17
(ROM).
The scratch pad memory, processor
stack, data buffers, set-up variables, and
screen and function key information all
reside in RAM. The RAM is contained in
a 2K by 8 (2048 byte) CMOS device and is
upgradeable to 8K by 8. The ROM (Read
Only Memory) is a 2732 (4096 byte) device.
The Battery Circuit
The battery circuit preserves the contents of U16 when the terminal is turned
off. This circuit detects a power-up or
power-down transition and switches in
or out the system battery. Zener diode
D3 and resistor R26 generate the reference voltage for this circuit.

Circuit Description
Data from the RS-232C ports, }2 and
}3, is routed through voltage level converters U3 and U4 to the ACIA (Asynchronous Communications Interface
Adapter), U2. The ACIA is a smart interface between the processor and the serial
world. (Editor'S note: ACIA is the 6502
world's name for an 510.)
The ACIA gets its instructions (baud
rate, bits per character, and interrupt info) from the processor.
The baud rate clock comes from pin 17
of the VIA (Versatile Interface Adapter),
Ul. The VIA also performs clock interrupts, keyboard interfacing, and tone
generation.
The DTR (Data Terminal Ready) pin of
}2 is set 'high' when the terminal is
ready. The computer can check this
Micro Cornucopia, Number 23, April-May 1985

Pin 3 of voltage comparator U14 is
high impedance (open circuit) when the
+5V bus exceeds 4.60V (the power is
on). When the 5V bus is below 4.60V
(power-down time) U14 pin 3 will short
to ground.
When U14 pin 3 is high impedance,
transistors Q2, Q3, and Q4 are turned on
by the current through R29 and R30. In
this condition, Q2 supplies +5V, and Q3
allows the processor to select U16 for
read or write operations.
Two seconds after power-up, capacitor C15 charges enough to cause U14 pin
13 to tum off so that R27 can pull the
processor's reset pin (40) high. The diode tied to the comparator side of the capacitor discharges it when power is removed.
The Video Terminal Logic Controller
The VTLC (Video Terminal Logic Controller), U18, is the reason this terminal is
so simple. This device provides all video
timing, character and graphics generation and display, visual attribute logic,
and data transfers between the CPU and
V!deo RAM, un. The horizontal sync
frequency supplied by the VTLC is
15.75KHz. It can generate either 60Hz or
50Hz vertical sync.
(Continued next page)

Top view of terminal circuit board

47

SMART~DEO

___________________________________________________________

(continued from page 47)

Data transfers to and from the CPU are
handled through the processor data bus,
DO through D7. The VTLC READ and
WRITE pins determine the data direction. Resistors R18 and R19 keep these
pins biased high (and data bus drivers in
a high impedance state) when the processor isn't talking to the VTLC.
You can address the VTLC's internal
registers by using its AID input, pin 24.
Select a data register by pulling pin 24
high, pulling the WRITE input low, and
then writing the register address on the
data bus. The addressed register will be
available for the next read or write operation (the AID pin must be low during the
read or write).
All data transfers between the Video
RAM and VTLC are performed video
blanking, thereby giving a totally flickerfree display.
Attributes
You can select an attribute for each

character. When the VTLC writes a byte
to Video RAM, the first 7 bits of that byte
represent the ASCII character to be displayed. The state of the 8th bit indicates
whether or not the character has a special attribute. If it has, the current attribute will be used when the character is
displayed.
Video Out
You select the polarity of video and
sync signals by strapping the exclusiveOR video buffers, U5 and U6. Strapping
an input low gives true output data,
while strapping it high gives inverted
output data.
Scanned Keyboard
The hardware can handle scanned
(undecoded) keyboards. Vl, U9, and
UI0, resistors R6 through R12, and keyboard header J6 provide the scanning interface. However, many of these components are not installed in our board,'

because our ROM does not support the
scanning.
Building The 65/9028 VT
Here are a few tips that will help if you
wish to wire-wrap your own version:
Incorpora te more bypassing on your
wire-wrap board than is listed here. A
bypass capacitor of 0.1 uF per I. C. socket
is not too much. These capacitors should
be soldered directly to the appropriate
socket pins on the underside of the
board.
You may not want to incorporate all or
any of the personality jumpers on your
board. If so, tie pin 16 of Ul to ground for
encoded keyboard operation. Tie pin 15
of Ul to ground if your keyboard supplies a negative strobe, or tie it high for
positive strobe operation.
Hard To Get Parts
Listed below are the hard to get parts
and their source. You can probably find a

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, plws
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

48

Micro Cornucopia, Number 23, April-May 1985

HIGH PERFORMANCE VIDEO
MONITOR

local distributor for the first two items
listed.

VT. They can be converted to parallel for
$3 worth of parts. Keyboard and schematic for the conversion cost $15.

1. CRT9028-000-Standard Microsysterns Corp., 35 Marcus Blvd., Hauppauge NY 11788.
2. 10.920 MHz crystal (He-18/U case,
10pF load)-Seiko Instruments, 2990 W.
Lomita Blvd., Torrance CA 90505.
3. 1N748 diode, 200 Ohm 1 % resistor,
Lithium battery and holder, 8 pole
P.C.B. Terminal Strip-Digi-Key Corp.,
phone 1-800-344-4539.

•••

~I::f/

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

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

Packages Available
There are four packages available from
the author. The ROM with manual is
$44. The PC board (only) is $39. Complete kit will manual, board, parts, and
sockets is $219. Assembled and tested
board is $259.
We've got some serial 67-key keyboards that provide the ten programmable .function keys used by the 65/9028

BO-key x-v scanned microprocessor controlled ASC II
encoder kit. ROM source code supplied. 17xB.5x3".
New, with schematics, weight Bibs
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 •.....•....... $25.00

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

When did we
print that letter?
Has the mailing
list been updated?
Which is the
latest version?

DateStamper™ keeps your CP1M computer up-to-date.!
• avoid erasing the wrong file
• back-up files by date and time

• keep dated tax records of computer use
• simplify disk housekeeping chores

OPERATION: DateStamper extends CP/M 2.2 to automatically record the date and time a file is created, read or
modified. DateStamper reads the exact time from the real-time clock, if you have one; otherwise, it records the order in
which you use files. Disks initialized for datestamping are fully compatible with standard CP/M.
INSTALLATION: Default (relative-clock) mode is automatic. Configurable for any real-time clock, with preassembled code supplied for popular models. Loads automatically at power-on. UTILITIES:· Enhanced
SuperDirectory - Powerful, all-function DATSWEEP file-management program with date and time tagging - Diskinitializer -Installation and configuration utilities PERFORMANCE: Automatic. Efficient. Invisible. Compatible.
Requires CP/M 2.2. Uses less than lK memory. Real-time clock is optional.

When ordering please specify format
8" SSSO, Kaypro, Osborne Formats ........... $49
For other formats (sorry, no 96 TPI) add $5.
Shipping and handling ........................ $3
California residents add 6% sales tax

Write or call for further informatioJl

MasterC(Lrd and Visa accepted

(Plu·Perfect Systems]

Specialized versions of this and other software available for the Kaypro.
CP/M is a registered trademark of Digital Research. Inc.

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

Micro Cornucopia, Number 23, April-May 1985

49

CP/M86
8" CP IM-86 Disk

$15.00 each

DISK 86-1 - Disk Utilities
D.CMDI A86,
SD.CMDI A86,
XDIR.CMDI A86: Three extended directory programs. Each does it differently, so we included all
three.
FlLE-EXT.CMDI A86: Disk status program with
good display format.
PAGE. CMDI A86: A text paging program. Displays 24 lines at a time.
PRINT.CMDI A86: File printing routine. Puts a
header at the top of each page along with page number
and file name.
MUCHTEXT.CMDI A86: Counts words and
lines in a text file.
ERQ.CMDI A86: Selective file erase program.
Dispfays all selected files and then asks you one at a
time for a YIN.
INUSE.CMDI A86: Prints "In Use" on your
terminal and asks for a password. It will not release
the console until you enter the password.
FINDBAD.CMDI A867. Finds and collects bad
sectors on a disk. If there are no bad sectors,
information on the disk is unaltered.
Disk 86-2 - DU and Modem Proarams
DU-V75.CMD/A86/DOC: This is the popular
disk utility from CP 1M SO. It lets you read, write, and
modify disk sectors.
MODEM4.CMDI A86: This is a modem program
set up for the Slicer. This program includes a built-in
help file.
MODEM7SL.CMDI A86/DOC: No modem disk
would be complete without this standard. This is
modem 7 set up for the Slicer. It displays a menu when
it is called.
Disk 86-3 - Small C
C86.CMD: This is the original Small C compiler
which appeared in Dr Dobbs Journal in 19S0. It runs
under CPM-S6 and generates SOS6 source for the
ASMS6 assembler.
C86. COM: This is the CS6 compiler which runs
under CPM-SO. This SOSO program produces S086
assembly language.
C86LlB.A86: This is the CS6 110 library.
SMALLC86.DOC: Documentation on Small C.
C?????C: Source of the CS6 compiler.

IBM Mainframe Interchangel
RESOURCE 8086
XBIOS.A86: A new BIOS that supports a real time
clock.
RES86.CMD: A disk management program for
transfering files between CP/M-86 and IBM 374X
mainframe environments.
SDI86.CMD: An 8086 version of the RESOURCE
disassembler.

You Can't Afford
Not To Have
A(rchivist) !
A(rchivist) gives you total control over
all of your disk file needs in one convenient program. Just some of the
features include:
• Backup files that are larger than your
floppy disk can hold (e.g., copy a 1
megabyte file to 250 kilobyte floppies). Try that with PIP!
• True copy of random files (virtual vs.
actual).
• Copy between user areas.
• Start-end command lets you copy
contiguous files in a directory.
• Ambiguous renaming of files.
• DIR, STAT, ERA, TYPE, LIST, and
VERIFY.
• Copy or erase with the following
flags off or on:
e (exists) do not overwrite if file
already exists.
r include system file if they exist.
w write over a read-only file.
s sort the files before writing.
v do or don't verify the copy.
• Commands are available to set the
printer tabs, lines per page, and line
width for program listings.

"I don't think we need to run
any back·up today."

• There is even a batch mode for batch
processing of file maintenance, including a pause and reset command
for changing disks in the middle of a
batch job if necessary.
• Complete user's manual included.
A(rchivist) requires CPIM60, version 2.0
or later using a Z60 CPU (it will not run
on an 6060) and an 60x24cursor-addressable terminal. To order, call or write:
New Lower Price

Ecosoft Inc.

~ 6413 N. College Avenue

~ Indianapolis, IN 46220

$4995

! VISA

(317) 255-6476

i.

DISK 86-4 -

DISK 86-5&6 - FIG Forth
Disks 5 and 6 are a complete two disk set of FIG
Forth 83.
F83.CMD: The standard Fig Forth 83.
MET A86.CMD: The Forth compiler.
More ROMS: Fast monitor ROMs for speed freaks
and our famous 'better than Texas' character ROM
(V2.3) for screen freaks.
Fast Monitor ROM BBI .............. $29.95
Deluxe Character ROM BBl .... : ..... $29.95

BBIIDRIVEINTERFACE
For 51,4" and S.. Drives
An?y Bakkers is making this special software package
available through Micro C. Complete source HEX
&. documentation files on an S.. SS SD disk Als~
outlines on disk the hardware changes needed:
$29.95

Micro Cornucopia
P.O. Box 223
Bend, OR 97709
503-382-8048

It's a real bargain! Here's why:
• Only $49.95 plus shipping
• 8080 to Z-80 Source Code
Converter
• Generates Microsoft compatible REL files or INTEL
compatible hex files
• Compatible with Digital
Research macro assemblers MAC & RMAC
• Generates Digital Research
compatible SYM files
• Full Zilog mnemonics

• Separate data, program,
common and absolute program spaces
• Customize the Macro
Assembler to your requirements with installation
program
• Cross-reference
Generation
• Z-80 Linker and Library
Manager for Microsoft compatible REL files available
as a total package with
Macro Assembler for only
$95.00plus shipping
• Manual only is $15

---

• INCLUDE and MACLIS files

9-5 PaCific Time
Monday-Friday

50

Micro Cornucopia, Number 23, April-May 1985

Inline Object Code In Turbo Pascal (CRC For BBII)
By Cliff Nunnery

This may seem trivial to some, but my
training as a fighter pilot didn't include
CRC checking. I did loads of instrument
and proficiency checks, but those didn't
help much in getting my BBII to come up
after I'd changed a few bytes in the monitor EPROM. The obvious solution was
to remove the CRC check from the monitor, but instead, I chose to try my hand at
a little inline code in Turbo Pascal.
The instruction at "INITI:" in the
monitor routine carries the comment
I/;LOOP FOREVER IF BAD CRC."
Changing code in the monitor EPROM
changes the CRC result and, sure
enough, it loops forever. The volumes of
documentation supplied with· the BBII
don't mention this problem. (Inside
joke.)
The Solution
My CRCGEN routine stops two bytes
from the end of the EPROM. Then the
contents of the H register are loaded into
the next byte, and the contents of the L
register are loaded into the last byte.
These values will return HL = 0 when
the ROM's CRCGEN routine is called
during initialization.
First, move an image of the new ROM
code to 9000H, then use my modified
version of CRCGEN to check this code
from 90000H to 9FFDH. Load the contents of the H register into 9FFEH, and
the contents of the L register into 9FFFH.
This code can then be used by PROG32.COM (User Disk #14) or moved to
0100H and saved to a . COM file for use
by PRORAM. COM on the same disk.
Figure 1 shows how I used a combination of Turbo Pascal and object code
(with assembly language mnemonics as
comments). The program modifies the
last two bytes of code in a file, ROM.COM, and writes it to disk with the
same file name. The modified code will
then pass the CRC check during BBII initializatiqn. This should save someone
sometime.
I sent Cal-Tex a 2732 EPROM about a
year ago with a request for a de-bugged
monitor program. I followed up with a
letter two months later. I have yet to get a
reply. Besides that, they kept the
EPROM. What gives, guys? Even a super computer needs a little support!

•••

313 Vaughn Street
Fort Walton Beach FL 32458

Pascal Procedure For Checking The BBII
SET CRC
Program SetCRC:

Var
RomArray
RomFile
InCh

{Program to set CRC in last two bytes of
BBII monitor file, ROM.COM
File ROM.COM must be on same disk as
this program}

Array[l •• $1200] of Byte Absolute $9000:
File;
Char:

Begin
Writeln:
Writeln{ 'Program will modify CRC bytes in File: ROM.COM'):
Writeln{ 'Proceed?
');
Writeln:
Repeat
Read(Kbd, InCh)
Until
UpCase{ InCh) In ['y', 'N']:
If UpCase{InCh) = 'N' then Halt:
Assign{RomFile, 'ROM.COM'):
($1-) Reset(RomFile) (1+):
If IOResult <> 0 then
Begin
Writeln( 'File: ROM.COM not found'):
Halt;
End:
BlockRead(RomFile, RomArray, 32):
InLine {$11/$00/$90/ {
LD
DE,9000
ilST BYTE OF ROM IMAGE}
HL,OFFEH
iNa. OF BYTES TO CHK }
$2l/$FE/$OF/ {
LD
}
$19/
{
ADD
HL,DE
}
$ES/
{
PUSH HL
$2l/$FF/$FF/ {CRCGEN:LD
HL,OFFFFH }
B,B}
$06/$OB/
{CRCGl: LD
}
A, (DE)
$lA/
{
LD
}
$4F/
{
LD
C,A
}
$79/
{CRCG2: LD
A,C
}
$AC/
{
XOR
H
}
$07/
{
RLCA
}
$ED/$6A/
{
ADC
HL,HL
}
$OF/
{
RRCA
NC,CRCG3 }
$30/$OB/
{
JR
$7C/
{
LD
A,H
}
lOH
}
$EE/$lD/
{
XOR
$67/
{
LD
H,A
}
$7D/
{
LD
A,L
}
$EE/$20/
{.
XOR
20H
}
$6F/
{
LD
L,A
}
$CB/$ll/
{CRCG3: RL
C
}
$lO/$EC/
{
DJNZ CRCG2
}
$Cl/
{
POP
B,C
}
}$CS/
{
PUSH BC
DE
}
$13/
{
INC
A,B
}
$78/
{
LD
D
}
$BA/
{
CP
NZ,CRCGl :TEST FOR ENDING PG}
$20/$El/
{
JR
$79/·
{
LD
A,C
}
E
}
$BB/
{
CP
NZ,CRCGl iTEST FOR ENDING BYTE}
$20/$DD/
{
JR
A,H
}
$7C/
{
LD
(DE),A :STORE H REG HERE}
$12/
{
LD
$13/
{
INC
DE
}
A,L :STORE L IN LAST BYTE}
$7D/
{
LD
(DE) ,A
}
$12/
(
LD
$Cl) i
(
POP
BC
}
Close(RomFile) i
Rewrite(RomFile)i
BlockWrite(RomFile, RomArray, 32):
Close(RomFile):
Writeln;
Writeln{ ,
CRC bytes modified in file. '):
Writeln( ,
Code should now pass CRC check'):
End •

Micro Cornucopia, Number 23, April-May 1985

51

Pascal Procedures
By John P. Jones
While talking to Dave Thompson a
couple of months ago, I learned that both
the FORTH and C columnists would be
doing 'typewriter' or keyboard to printer
programs for Issue 22. I figured I might
as well do one, too, but for Issue 23.
I normally get my copy of Micro Cone
or two weeks after I submit my column
for the following issue, so there was no
chance of seeing what Tony and Arne
had done before writing this. I didn't
want to get into a 'me too' kind of situation anyway, so I started from scratch by
analyzing what a typewriter program
needs.
Basic Requirements
The simplest form is similar to the 'T'
command on the original Xerox 820. In
this mode, keyboard input is sent verbatim to the printer. See Figure 1 for an example. This minimum program is use-

6245 Columbia Ave.
St. Louis MO 63139

11. Status indicators-ruler line, current cursor pos and text length
12. Printer configuration
13. Continuously variable tab stops
14. Imbedded printer controls for
boldface, underline, etc.

ful, but not very.
A full-featured typewriter program is
basically a one line text editor and should
have at least:
1. Variable line width (right margin)
2. TAB stops (fixed)
3. Append characters to input
4. Insert characters in input
5. Display current input
6. Delete characters from input
7. Move cursor back and forth on input line

The program in Figure 2 implements
all of these features except 13, 14, cursor
movement by word, and word delete.
The code is not confined to 'standard'
Pascal.
Much of the efficiency of Turbo Pascal
is due to its wide variety of built-in features, many of which were used in the
program. The Turbo specific features
used are indicated in the comments for
those who may need to translate for another compiler. The program requires an
X-Y cursor addressable terminal or terminal emulator as in the Big Board or
Kaypro.

These features are desirable but not
necessary:
8. Input line wider than display width
9. Large scale cursor movement-beginning/ end of wordlline
10. Large scale delete-word/end of
line

Figure 1 - Bare Bones Program
YAR
ch : char;
linelen : integer;
tabgap, sh1tt~t : integer;
ruler, txt11ne : anystr;
help : boolean;
pOsit10n : integer; {pos1t1on in input text}
crsr-llOS : integer; {position on display line }

{$o- Do not interpret oontrol char input }
PROGRAM eoho_to-llrinter;
{ Assumes typewriter connected as CP/M LST: devioe }
YAR
ch, ctl....;: : char;
BEGIN
ctl....;: := ohr(26);
REPEAT
read (kbd, ch);
it ch <> otl....;: then write(lst, ch);
UNTIL ch = ctl....;:;
writeln(lst) ;
END.

PROCEDURE write-l'uler; {display ruler line below text input line}
BEGIN
10wv1deo;
{ Turbo spec1f1c }
gotoxy( 1 ,rulerline); {screen coordinates start /J 1 for Turbo}
wr1te(copy(ruler,sh1fLamt+l ,disp~aY..:.len»;
{ signal text beyond d1splay if necessary }
IF (length(txtl1ne) > d1splayJen) AND (position
THEIf write ( '+ I) ;
clreol;
{ Turbo spec1f1c }
h1ghv1deo;
{ Turbo speoif1c }
END;

Figure 2 - Full-featured Program
{$u-}
{$o-}

{no user interrupts }
{no ctl char interpretation}

PROGRAM typist;
{ Author John P_ Jones - January, 1985 }
{ Written tor Turbo Pascal, CP/M-80 but should run without
change on other operating systems }
CONST
rulerline = 15; {screen display positions tor ruler, }
textline = 14;
(input text and prompt/status line. }
promptline = 23;
tab = -I;
bs = -hi
movl!J't = -d;
moveJft = S;
deUft = 1127;
deLcrnt = -g;
deLeol = -y;
moveJtrt = -a;
move_end = -C;
tol'lllJd = -1;
cr = . . m;
stop_char = -z;
displayJen
TYPE
anystr

52

= 79;

( Control character constants, use Turbo
( specif1c representation of charaoter
(constants. For other compUers wUl
( have to declare as YAR's and ass~n.

< length(txtline»

PROCEDURE clr-llrompt;
BEGIN
gotoxy( 1 ,promptline);
clreol;
END;

{clear prompt/status line, }
{ leave cursor at beginning of line }

PROCEDURE beep;
BEGIN
write(-g) ;

{ Wake upl or I don't understand I }

END;
}
}
}
}

PROCEDURE prompt (msg:anystr); { d1splay new prompt, ready for input}
BEGIN
clrJrompt;
wr1te(msg) ;

END;
PROCEDURE config;
YAR i, J : integer;
ctl : ARRAY[l •• 10] OF char;
BEGIN

(screen display w1dth -1 }

= STRING(255];

REPEAT
( get pr1nt line length 1n proper range }
beep;
prompt( 'Characters per pr1nt 11ne (1-132)1 ');
read(linelen) ;
UNTIL linden IN (1 •• 132];

(Listing continued)

Micro Cornucopia, Number 23, April-May 1985

How It Works
The main program first calls INIT,
which clears the screen, highlights the
prompt/status line, and calls CONFIG.
CONFIG prompts for and gets values for
print line length and tab spacing, then
prints the ruler line. A printer initialization string of up to ten characters is then
requested. Special printer modes can be
set up at this time.
For instance, the string ESC> +
'B' +ctrl-B sets up my printer for 12 CPI.
The INIT string cannot contain a CR>
code, so if you need it, change the program to use another character to terminate input. Finally, CONFIG will display
a brief help menu on request.
The major routine 'in the program is

INPUTSTR. When called, input is initialized, and keystrokes are input and processed in a REPEAT loop. INPUTSTR
maintains three pointers: POSITION indicates where in the input string characters are to be inserted, CRSR-POS is
the correspondin'g location on the screen
display line, and SHIFT-AMT is the
magnitude of horizontal scroll needed to
keep the cursor on the display.
INPUTSTR contains two routines ..
SET_CURSOR first saves the current
horizontal scroll status, then calculates
the new cursor position and scroll
amount based on entry position and current length of input. The cursor always
points to the character position following POSITION except when the string is

full and the pointer is at the end of the
string. Since ORD(TRUE) = 1 and ORD
(FALSE) = 0, addingthevalueORD(POSITION  enda) : ,);
i := 1;
REPEAT
read(kbd,ch) ;
IF ch <> cr
{  signal:s end of input
THEN BEGIN
ctl[i] := chi
IF ch < "
{control char? }
THEN write( ,", ,chr(ord(ch)+64»
{if ctl char, display 1n
CP/M standard "ch format
ELSE write ( ch) ;
write(' ,);
{space between chars on d1splay}
1 := :succ(1);
END;
{  ends 1nput }
UNTIL (ch = cr) OR (1 > 10);
IF 1>1
{ i t any 1nput, send to printer}
THEN
FOR j : .. 1 TO pred(i) DO
write(lst,otl[j]) ;
prompt( 'Do you want tile help menu? ,);
read(kbd, ch);
help := ch IN['Y','Y'l;

{ want to clutter up screen? }

{init1alize status line d1splay and globala }

VAR i : integer;
BEGIN
clracr;
lowv1deo;
gotoxy( l,promptline -1); (outline prompt/statua line with - ' s
FOR i : = 1 TO displayJen DO
write( '_') ;
gotoxy( 1 ,promptline +1);
FOR 1 : = 1 TO displayJen DO
write( '-');
:sh1ft_amt : = 0;
contig;
highvideo;
END;

{ get global vars, :setup ruler, etc. }

PROCEDURE 1nputatr(VAH textJtr
VAH tc
: char

anystr;
);

VAH
ch : ohar;
remainder : 1nteger; { amt of display :spaoe remaining }
PROCEDURE seLcur:sor;

{Where are we now?

VAH
laatJhitt : integer;
BEGIN
laat_shitt := :shitLamt;

{keep track of horizontal scroll :status

IF poaition <= (displayJen) {within unacrolled display area?
THEN BEGIN
yea, reaet :scroll and bump curaor unlesa at max input }
:shitLamt : = 0;
crsr-poa := poaition + ord(poaition I) ;
write( 'Move begin = "A
Move end = -F
I);
wr1 teln(lDelete prevo = DEL
Space to I = TAB');
write( 'Eject page (it text empty) = -L
I);
writeln( 'Del to end 11ne = "'Y Exit
-Z');
h1ghv1deo;
END;
END;

=

Micro Cornucopia, Number 23, April-May 1985

IF shitt_amt <> la:st_:shitt {change 1n :soroll status? }
THEN
BEGIN
write-ruler; {refresh ruler line and rewrite entire text display}
gotoxy( 1 ,textl1ne) ;
write ( copy( textJtr, :ShitLamt+1, d1:splayJen) ) ;
END;
.
remainder := d1:splayJen - crsr-po:s +1; { caloulate remaining d1:splay :space
END;

(Listing continued)

53

DSDBO
FULL SCREEN SYMBOLIC DEBUGGER

\ IHE SINGLE BESI
DEBU
R
FOR CP/M-aO.

AIRULY

P.ODUCI~I
,.,

NG

LEORZOLMAN
AUTHOR OF 80S C

D Complete upward compatibility with DDT
D Simultaneous instruction, register, stack &
D
D
D
D

memory displays
Software In-Circuit-Emulator provides write
protected memory, execute only code and
stack protection.
Full Z80 support with Intel or Zilog Mnemonics
Thirty day money back guarantee
On-line help & 50 page user manual

P.O. BOX 49473

54

AUSTIN, TEXAS 78765

(512) 478·4763

Micro Cornucopia, Number 23, April-May 1985

PASCALPROCEDURES ____________________________________________________
(continued from page 53)

Using TYPIST
After you have answered the setup
questions, the screen will display a 'ruler'line on screen line 15. The ruler shows
tab stops as' ',left margin with 'L', and
the right margin with 'R'. If there is entered text beyond the right side of the
display, the last ruler position will show

'+'.
Text entry is all on line 14. As each
character is input, it is displayed on the
screen, the cursor is moved, and the status line is updated.
The cursor can be moved forward with
ctrl-D, back with ctrl-S or < BS>, to the
end of the entered text with ctrl-F, and to
the beginning of the line with ctrl-A.
< DEL> deletes to the left of the cursor, ctrl-G deletes under the cursor and·

ctrl- Y deletes to end of line. < TAB>
(ctrl-I) inserts spaces to the next tab stop.
If an input line length greater than the
display width has been specified, the
display is automatically scrolled left or
right to keep the cursor on the screen.
Line entry is terminated with ,
which causes the input text to be printed
on the LST: device. If the input line is
empty, the page can be ejected with ctrlL (form feed). Finally, the program is
ended with ctrl-Z, which also prints the
current line.

stants DISPLAY_LEN, RULERLINE,
TEXTLINE, and PROMPTLINE. DISPLAY_LEN should be set to one less
than the actual display width, and the
line positions to whatever you like. The
maximum input length of 132 is hardcoded in CONFIG but can be changed
up to a maximum of 255. If your typewriter is not the CP/M LST: device, the
WRITELN statement in the main program will have to be changed.
Final Thoughts
I am sure many of you realize that if
you are running Turbo Pascal, this program is totally unnecessary! Turbo has a
full-screen text editor which handles in-

Customization
If you don't like the choice of control
characters, change the values in the constants. Display configurations other than
80 x 24 are accommodated with the con-

(Continued on Page 57)

(Listing continued)

PROCEDURE 1nsrt_ch (ch : char);

ELSE IF po:s1tional1nelen
THEN

{ 1nsert char 1nto 1nput str1ng }

BEGIN
{ 1t l1ne butter tull, delete last char ot text}

IF length( text_str) = l1nelen
THEN
delete(text_str,l1nelen,1) ;

{ bump char po1nter and plug 1n char }
pos1tion := pos1t1on + 1;
1nsert( ch, text_str, pos1t1on);
END;

(at max 1nput pos ? )

BEGIN (yes, show char, then replace ch 1n 1nput )
wr1te(ch) ;
text~tr[lengthCtext_str)l :a ch;
END;
bs, movutt: IF pos1tion > 0 {baclc up 1t anywhere to go }
THEN
pos1t10n := posit1on - 1;
IF pos1 t10n < length( text_str) { move twd 1t we can }
THEN
pos1tion := pos1tion + 1;
mov~strt

: pos1tion := 0;

txtl1ne := " ;

clear input }

mov.e.-end

: pos1tion := lengthCtexutr);

pos1 t10n : = 0;
sh1tt-&mt : = 0;

{ reset po1nters }

del-crnt

: IF pos1t1on < lengthCtexUtr)
{ delete under cursor and refresh d1splay }

clr-prompt;
lovv1deo;
wr1te( 'Cursor:
h1ghv1deo;

{ statu:s l1ne labels}

BEGIN

{ 1nputstr

THEN

{clear poss1ble prev10us d1splay }
deUtt

•

IF po:s1tion > 0
( delete @ current entry pos 1f is text
THEN

REPEAT

BEGIN
delete( text~tr, pos1t10n, 1 ) ;
IF po:s1 tion=l1nelen
THEN wr1te( 1 t)
{1f @ max, just wr1te blank }
ELSE
{ else backspace, refresh r1ght, :space }
wr1te( Ah,copy(text_str,Pos1tion,rema1nder), 1 I);
po:s1t1on := posit1on - 1;

set..,.cursor;
{calculate d1splay POls ana retresh d1splay to r1ght }
gotoxy( crsr-po:s, textl1ne) ;
wri tee copy( text_str, :succ (pos1 tion) ,rema1nc1er) ) ;
gotoxy(g,promptl1ne); {update :status l1ne }
vr1te(pos1t1on+Ord(po:s1t1on
del-eol

CASE' ch OF

,

(set to end of text}

BEGIN
delete(text_str,pos1t1on + 1,0;
{ retresh r1ght, kill prev10usly d1splayed'last ch }
wr1te(copy(text_str,pos1t10n + 1 ,rema1nc1er), 1 I);
END;

Input text length: I);

gotoxy( 1, textl1ne);
clreol;

{reset to start of text}

IF posit1on < l1nelen {pr1ntable and w1th1n text?
THEN
BEGIN
{ yes}
insrt_ch(ch); ( plug 1t 1n & refresh to r1ght
wr1 tee copy( text_str, pos1 t10n, remainder) ) ;

: BEGIN
{ delete to enc1-of-l1ne }
clreol;
delete(tex1;Jtr,pos1t10n + 1,l1nelen);
END;

END

(Listing continued)

Micro Cornucopia, Number 23, April-May 1985

55

CALL WREN AND SAVE!

IISMON"

---WORKSTATION---

Software In-Circuit Emulator

Computertone by Wren
• Z-80 4MHZ
• 5'/4,8 or hard drives
• Uses BBII CPU
• CPM, CPM86, MS DOS
• Defineable keys
Starting at $ 1955.00

_ _ _ _ OlSKS: _ _ __
G\

Features:

_ ~'V.
~

c...:J

~

""7

5'/4
5'14
8
8

SSDD
DSDD
SSDD
DSDD

Dysan 52.30
Dysan 2.95
Dysan 3.10
Dysan 3.50

Verbatim 52.70
Verbatim 3.75
Verbatim 3.40
Verbatim 3.80

-Full program development debugger
with Breakpoints, Snaps, Stops, &
Waits.

Disk Mailers 10 for S5.00, 100 for S40.00

_ _ _ _ PRINTERS: _ _ __
182 P
182 S
82 A
83A
84 P
84 S
92 P
92 S

IBM
SER
S& P
S&P
P
S
P
S

8.5' Carr.
8.5 Carr.
8.5 Carr.
13.6 Carr.
13.6 Carr.
13.6 Carr.
8.5 Carr.
8.5 Carr.

120 CPS S 229.
269.
120 CPS
120 CPS
287.
120 CPS
529.
669.
200 CPS
200 CPS
770.
160 CPS
379.
160 CPS
449.

Shugart 810
Shugart 860
Tandon 848-1 E
MPI
51

5300.
310.
282.
94.

Tandon
Tandon
Tandon
Tandon

100-1 5
100-2
100-4
848-2E

-Single Step program execution.
-Download file from CP/M system to
development Ram.
-Upload Memory from development
RAM to CP/M disk.
-Two versions: Master BMON runs in
your CP/M system, Slave BMON runs
in your target system.

_ _ _ _ ORIVES: _ _ __
SPECIAL
PRICES:

Links your CP/M 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 I/O port (either RS232 or
Parallel).

155.
199.
125. Iwhen availablel
375.

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

CALL TOLL FREE 1-800-S43-WREN

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

Minimum Order $30.00

Barnes Research & Development

.. ac

except in Ohio, 513-931-7160

~

,

~

,.:';J?f , I

880 Reynard
Cincinnati, Ohio 45231

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.

FOR THE BEST OF US.

THE CYPHERT.M.
A COMPLETE 68000 & Z 80
SINGLE BOARD COMPUTER SYSTEM
WITH ULTRA-HIGH-RES GRAPHICS!!
FREE
68000 FORTH

FREE
68000 FORTH

CYPHER-DOS

CYPHER·DOS

AND

New64KSBC
Only

$375.

AND

4''x(i'

• 68000 & Z80 DUAL PROCESSORS (BEST OF BOTH
WORLDSI).
• 256K to 1 MEGABYTE MEMORY. (4164 OR 41256 DRAM).
• DOUBLE DENSITY FLOPPY DISK CONTROLLER (8",
5'1." OR 3'1," 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. (9'1." x 143f4').
• RUNS Cp·M·80 2.2, Cp·M·80 3.0, Cp·M·68K

.MANUAL .......... ' .................................. $20.00
• BARE BOARD, EPROMS, Z80 BIOS, 68000 BIOS, Z80
MONITOR, 68000 MONITOR
AND CYPHER DOS ................................ $399.95
• MINIMUM OPTIONED "CYPHER" WITH 68000/Z80,
SERIAL 110, 128K DRAM, 4K S RAM AND DISK
CONTROLLER, ASSEMBLED AND TESTED
$1,099.95
PARTS KIT .
.. ............ $999.95

I.

• EXPANDED MEMORY OPTIONS-INOUIRE'

..=..
-

"

L. _

56

-

,_

~

~~~:~~E~~~~~~S~S DOLLARS
SHIPPING, 8% SHIPPING. EXCESS WILL BE REFUNDED
PRICESSUBJECTTOCHANGEWITHOUTNOTICE
CP-M IS A TRADEMARK OF DIGITAL RESEARCH.

• ULTRA HIGH RESOLUTION GRAPHICS, 128K,
PROGRAMMABLE UP TO 1024 x 1024 RESOLUTION
(NEC 7220, GREAT FOR CAD SYSTEMSI).
• REAL TIME CLOCK (MULTITASKING CAPABILITY!).
• TWO CHANNELS OF DIA AND AID, 12 BIT
RESOLUTION (MUSIC! ROBOTICS! LAB WORK!).
.16K TO 64K MONITOR EPROM.
.4K TO 64K STATIC RAM .
• PROGRAMMABLE BAUD RATE GENERATOR .
• PARALLEL ASCII KEYBOARD INPUT.
.FULL 68000 EXPANSION BUS (60 PIN HEADER,
BUFFERED).
.COMPLETE "CYPHER" WITH 256 K DRAM, 128 K VIDEO
DRAM, NEC 7220, REAL TIME CLOCK, ND D/A DISC
CONTROLLER, SERIAL 110,
ASSEMBLED AND TESTED ...................... $1.499.95
PARTS KIT
................ , $1,379.95
• KEYBOARD.. .. .. .. .. .. .. .. .. .. .. .
.. .. $94.95
.SWITCHING POWER SUPPLY. .
.. ...... $154.95
• CASE ......................................
.. .. $94.95
.HARD DISC HOST INTERFACE PLUG·IN
CARD
... $150.00

MOTOROLA

IlL

• Requires no terminal. Includes
Video Controller and CP/M® 2.2
• Runs any size floppy drive.
• Other models include Hard
Disk Controller, CP/M® 3.0,
128K or 256K RAM, and 8088
64K SBC includes:
• 6MHz Z80B®
• Video Controller
• 2 Serial Ports
• 4 Parallel Ports
• 1/0 Expansion

INTEL

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

CP/M is a registered
lrademark 01

~88~?sl~~!~?~~7~~C

trademark ot Zilog Inc.

• Source Code and Drivers
included
• CP/M® 2.2
Call our Toronto
office today.
(416) 745-7214
Or write: Megatel
1051 Clinton St.,
Buffalo, N.Y.
14206

Substantial
OEM- Discounts Available
Micro Cornucopia, Number 23, April-May 1985

PASCALPROCEDURES ____________________________________________________
(continued from page 55)

put lines of up to 127 characters. You
need only enter the text into a file with
the Turbo editor, then PIP it to your
printer. The Turbo editor even lets you
imbed control characters in your text
(ctrl-P command) so that any special
printer functions you have can also be
used. The methods in the program could
be useful for other applications, such as
data entry.

(Listing continued)

Next Time
There are a lot of useful Pascal programs in the public domain (see Pascal
Procedures in Micro C, Issue 22). Next
time we'll look at some of the things you
have to watch out for while translating
between Pascal dialects (dialectic
translationism?).

tab

: IF po:Sition < l1nelen
{ in:sert space:s to tab :stop or end ot text }
THEN

REPEAT
in:srt_ch(' .);
write(' '>;
UHTn. (po:s1tion=l1nelen) OR (:succ(po:s1t1on) HOD tabgap .. 0)
tor'lll..td : IF length(texutr) • 0

( i t l1ne 8IIIpty, eject page)

THEN
write(l:st,tor'lll..td) ;

ELSE IF NOT(Ch IN [cb,:stop-char])
THEN beep;
{ot case}

(invalid input, dUlmllyl )

END;

UNTn. cb IN [cr,:stop_cbar]i
tc := cb;
END;
( input:str )

BEGIN ( typi:st )
in1ti
REPEAT
input:str( txtl1ne,cb);
. writeln(13t, txtl1ne);
UNTn. cb=stop_cbar;

(both = EOL )

( get input)
( ship it out )
( untll get AZ )

END.

•••

End of Listing

The

ConIX LibraryTM
Volume 1- XCC Utilities

UNIX™ Technology for CP/M™
ConlX can provide any 48K+ CP/M-SO compatible system
with many advanced capabilities of UNIX. You'lI be amazed
at what your 8-bit micro can do now! ConlX features include:
I/O Redirection and Pipes (uses memory or disk). multiple
commands per line. full upper/lower case and argument
processing. Auto Screen Paging. Programmable Function Keys.
Improved User Area Directory manipulation. Command and
Extension (Overlay) Path Searching. "Virtual" disk system.
8Mb Print Spooler. extensive preprocessed "Shell" command
programming. language. 300+ variables. over 100 built-in
commands. Math Package. 22 new BOOS SysCalis. Archiver
(compacts files for disk space savings of over 50%). On-Line
Manual System. and much more! Uses as little as l/2K RAM!
Runs with CP/M for true data and software compatibility.
Installs quickly and easily withou t any system modifications.

The ConlX Operating System
List Price: $165
Price includes Instructional Manual. 8.·· SSSD disk. and free support.
5114·· format conversions available. To order. contact your local dealer.
or buy direct and add shipping: $4.50 UPS. $10 Canada: $25 overseas ..
COD $2 extra (USA only). NY State residents add sales tax.

@

Computer Helper Industries Inc.

P.O. Box 680 Parkchester Station. NY 10462
Tel. (212) 652-1786

Dealer inquiries invited!
UNIX: AT&T Bell Labs. CP /M: Digital Research. ConIX: Computer Helper Ind.

Micro Cornucopia, Number 23, April-May 1985

The ConIX Library is a collection-ri1 software designed
Operating System.
exclusively for use with the ConIX
Volume I contains over 20 general purpose utilities written
in the ConIX XCC Command Language, such as:
• MKDffi, RMDIR, CD, PWD, LS: Uses user areas to
implement a complete hierarchical directory structure.
• MKUSER, CU, PWU: Similar to the above, assigns a
user-supplied name to any user area number.
• BACKUP: A simple hard-disk to floppy backup utility.
• CHMOD: Change file modes and attribute bits.
• DEBUG: Interactive Debugging Tool provides low-level
access to memory for program development. Loads
without modifying data stored in TPA memory.
• MV, CP, LN: Move and copy multiple files between user
areas and disks and link files on the same disk.
• PR: Prints files with pagination control, headers, line and
page numbering, and single sheet feeding.
• REVIEW: Processes files to optionally be examined,
erased, or renamed. Useful for cleaning up directories.
• TYP: Powerful TYPE replacement allows you to read all
or part of a file with automatic page-pause.

The ConIX Library I

List: $50

Price includes 8" SSSD diskette (conversion available), Instructional
Manual, On-Line Manual, and fully commented source code for all
utilities I Contact your local dealer or add: $2.50 UPS, $10 foreign.

Another line product 01:

Computer Helper Industries InC.
PO Box 680 Parkchester Station, NY 10462
Tel. (212) 652-1786

ecnIX and The ConIX Library are trademarks of em Inc.

57

FORTHwords
By Arne A. Henden

This has been a hectic two months for
me. I finally defended my dissertation
(after years and years), and am madly revising and making figures, trying to turn
it in on time. Beware! Don't go for your
doctorate unless you really want it!
Glenn Dixon recently sent me a letter I
want to share with you. In the letter,
Glenn analyzes FORTH, points out its
weaknesses, and suggests improvements. He is a strong advocate of the language, but feels it is time to change.
Rather than reprint his entire 4-page letter, I've taken excerpts and allowed
room for a reply.
The Letter
" ... When you look at FORTH columns in magazines (not just Micro C,
but any magazine still brave enough to
have a FORTH column) they are talking
about how to make a menu, or how to
swap an integer with a double precision
integer on the stack.
"Good grief! Stuff like this should be
so trivial that it doesn't even need mentioning. It is trivial in other languages,
but not in FORTH. We're finally settling
on a sort of standard for floating point
numbers, but still can't decide whether
to keep them on a separate stack or not.
"What happens when FORTH finally
gets all the data types it needs (string,
character, multi-dimensional string,
etc., etc.)? Are we going to make a separate stack for each one? Are we going to
have a + for integers, a 2+ for double
precision, an M + for matrices, a C + for
complex numbers (whoops, that's for
bytes), and a $+ for strings?
"What words do we use when we
want to pop a floating point number
from the floating point stack, use it as a
scalar on an integer matrix, then store its
ASCII equivalent on the string stack?
Can you imagine the garbage that would
come forth from FORTH (no pun intended)?
"No, there was a time when FORTH
made a lot of sense (back when memory
wasn't cheap) but unless something
changes, it will die a slow and ignominious death (it has already started).
"Here are some suggestions to one
who may be brave enough to go against
the FORTH purists and make something
really useful:

58

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

1. Start from scratch. Hide the FORTH
standards. Don't even keep them in the
same room with you.
2. Separate the address list from the
headers and data, and the primitives
from both. The headers have no business being embedded in the address
lists. Variables should have dynamic
space available.
3. Where possible, implement NEXT
in hardware. A simple circuit could be
devised that searches for the next primitive while the CPU is executing the last
one. This implies an address list in an
auxiliary memory.
4. When deciding whether or not to
increase complexity and ease of use at
the expense of efficiency, go for the increase. This will kill FORTH purists, but
make the language usable. A utility can
be provided to pull out unnecessary error handling and other overhead once
the program is debugged. By the same
token, let the user start with a full blown
system with all data types and utilities,
and let him trim excess, instead of having him start with bare bones and add
meat.
5. Get some real debugging toolsword definitions and comments in a random file, menus to display words by category, helps, real time stack display, etc.
6. It is too late to make a significant
contribution with applications such as
word processing, spreadsheet, data base
management (in some areas), so go after
the applications where FORTH can
shine: scientific number crunching, artificial intelligence, communications, extremely large data base management,
really smart real time control, etc.
7. Provide a programming environment that is comfortable. I'm sick and
tired of hearing that the drawbacks of
FORTH are inherent in the language.
They are inherent in purists' heads.
"The only way FORTH can do what it
is really able to do will be when it is released from the customs and conventions that bind it down and is made into a
real, honest, mature programming language."

My Reply
Glenn's letter was valuable to me for
two reasons: not only did he point out
bad features, but he also gave sugges-

tions to improve them. I'm happy to receive any letter, complimentary or not,
but ones that offer solutions are my favorites.
I have never considered myself a
FORTH fanatic. I developed UNIFORTH
because of my interests as an astronomer. When you have to do consulting on
a dozen processors and work with companies developing single-board computers based on state-of-the-art hardware,
you need a consistent language that can
be quickly ported to a new processor.
UNIFORTH is the perfect language for
my applications, but that is not to say it is
the language of choice to write a word
processor, spreadsheet program, ortyping tutorial.
FORTH's strong points are: it is extremely compact; it is faster than any interpreted language; it provides an interactive environment ideal for program
development; it is usually the first language available on any processor, so you
can stay up with the times; it is extensible, so you can add new data types and
other language extensions with ease;
and it is cheap.
Vendor Blues
From the standpoint of a vendor, the
major problem with FORTH is that it is
readily available in the public domain.
Vendors must act as "value added" merchants, providing more features than
available in the freeware. Such features
include floating point, strings, video editors, assemblers, documentation, and
support. The nature of FORTH implies
that these features are given in full
source code. You don't get the source
code for dBASE II or Turbo Pascal!
Therefore, vendors are often possessive.
FORTH must be sold by merchants if
the language is to be adopted by businesses, as they need the support of an
established firm. At the same time, vendors are constantly asked why the customer should pay $100 or more for UNIFORTH when he can get FORTH-83
free. You can't have both worlds.
Is FORTH Dying?
Getting back to Glenn's letter, I completely disagree with him when he says
-that FORTH is dying out. I see more and
more customers using FORTH, with the

Micro Cornucopia, Number 23, April-May 1985

variety of applications growing daily.
The purpose of this column is to
present a library of applications and to
teach some of the fine points of the language. Utilities such as forms generation
and plotting packages written in FORTH
have not been presented in any magazine. In fact, I have only seen such utilities in BASIC: other languages such as
Pascal and FORTRAN require you to
reinvent the wheel.
Inherent Problems
The problem with new data types is
inherent (there'S that word!) in FORTH if
you want extensibility. If you create a' +'
word that works with integers and floating point numbers, then it won't work
with that new data type you just created.
That is why each new data type has a
separate (but consistent) set of operators.
The reason for the controversy on
multiple stacks is due to speed and hardware considerations. The 8087 is a stack'oriented floating point processor, and
should be used as such for optimum
speed. The 68881 and 32081 are not. You
can't have compatibility and speed at the
same time, and so differences such as
these will remain.
You can't hide standards. Just as
OEMs won't use a hardware chip that
isn't second-sourced, the commercial
world won't use a language that is

unique to one vendor or one CPU. There
are certain applications where speed or
compactness is important, and specialized forms of FORTH would be valuable.
I don't like FORTH-83, but that is what is
being demanded by the consumer, so
UNIFORTH will support that standard
in the near future.
Symbol table, data, and machine code
separation is a feature that is useful on
many processors. The 8088 is a prime example, where segmentation permits
more than 64K bytes of memory to be accessed quickly if such separation is performed.
Implementing NEXT in hardware is
not a software issue. I will discuss
FORTH engines in the next column. Creating a CPU that uses a language as its
instruction set creates the fastest possible execution of that language. The Pascal Engine on the 5-100 bus and the Lillith machine for Modula-2 are two such
examples. The new FORTH machines
beat the socks off many mainframe computers for certain dedicated tasks.

during program development without
slowing down execution of the final ver- .
sion. I looked at adding error checking
that could be removed once the program
was debugged, but I don't think it's possible without either doubling the source
code size or slowing the system down by
a factor of two.
Much of what Glenn says is true. My
company is drastically revising UNIFORTH, not only to support FORTH83, but also with a radical marketing departure. Release is anticipated in April.
We will continue this experiment for six
months before making any final decisions, so place your vote now!
Coming Next Time
Next issue I'll finally get around to reviewing 'Thinking FORTH.' If you are at
all interested in FORTH, this book is
highly recommended. Also, I've received a new single-board FORTH computer and have some other FORTH-engine news. Keep in touch-don't put off
writing suggestions and comments!

Looking Ahead
I agree that increasing user friendliness is important, but memory is expensive ..My feeling is that the FORTH im. plementation needs to be solid (no bugs)
and the word names consistent so that
programming is easy. A good debugging
utility can handle most error checking

Editor's note: Bruce has finished FORTH83 for the Kaypro, so check out disk K32.

•••

GENERAL UTILITIES PACKAGE
Rolland Management Systems Utilities Package offers maximum access to files for CP/M· users
Sort System· Organize and reorganize any file
Batch List Utility· Ust many files with one command
$39.95

* optional page heading, page number or date

* fixed or variable length records
* unrestricted sort keys

$19.95

* skip or include records or blocks

Dump Utility - Decode and display entire file contents

Menu System - No need to "chain" back to menu

* show hexadecimal, integer or RAD50 value

* unrestricted construction of menus

$29.95

* output to printer or another file
* configure for any printer

* restrict user modification of menus
* enhanced batch processor under the menu

$1 9.95

* dump to screen, printer or disk file
* begin at any block and dump any number

FREE with purchase of any Utility - Base Conversion Utility - decimal to binary to hexadecimal to RAD50
All 4 Utilities: $79.95
Mastercard or Visa call (919)276-6070
Rolland Management Systems, Inc.
Rt 5, Box 135
Laurinburg, N.C. 28352
• CP/M Is a registered trademark of Digital Research. Inc.

Micro Cornucopia, Number 23, April-May 1985

59

An Inspired Turbo Tutor
Review By Gary Entsminger

In many companies, documentation
is done by an apprentice scribe who has
been relegated to some obscure, cobwebbed corner. At Borland International, home of Turbo Pascal, that's obviously not the case, since Frank Borland
himself wrote "Turbo Tutor." I think
you'll like him.
"I live up in the mountains with my
family, my dogs, and my burro, Lotus. It
is peaceful here. Just the kind of place
where a person can sit around and think
and put things into proper perspective.
Once in a while, when I really want to
think through a problem, I take Lotus
and hike a few miles from home. It was
while camping under the stars that I got
the idea to write Turbo PascaL"
How can you doubt the word of a burro driver who writes with an informal
wit that's as fun as it is informative.
"It will help you in your learning to
have a quiet and comfortable spot to
place your computer. There should be
room around it for you to place this book
and your Reference Manual, and
enough light for you to read them easily,
as well. Learning anything new is hard
enough; you should stack as many
things in your favor as possible."
Dissecting A Tutor
He divides "Turbo Tutor" into three
parts:
1. Turbo For The Absolute Novice
2. Turbo For The Programmer
3. Advanced Topics
Part 1 covers all those little (and big)
details that other language manuals ignore. These are the start-up, get-into-it
sorts of things that befuddle first-time
programmers.
1. Start your Turbo Pascal program by
following the instructions in your reference manual. Press Y for messages.
2. Press Wand answer MYNAME
when asked for the name of your
workfile. (Don't forget to press RETURN.)
Any seriously interested novice
should be able to learn programming
with Turbo Tutor.

Micro C Staff

The Programmer's Guide
Part 2 is called the Programmer's
Guide, and glides topic-by-topic
through Pascal. This is where computer
literates (though unfamiliar with Pascal)
can jump in. The topics are clearly separated into short (4-17 page) chapters and
include:
The Basics Of Pascal
Program Structure
Predefined Data Types
Control Structures
Procedures And Functions
Declared Scalar Types
Arrays
)Strings
Records
Sets
Pointers And Dynamic Allocation
Files

Assign(ShipFile, 'SHIPS.OAT'):
Rewrite(ShipFile):
Write(ShipFile,Ship):
Close (ShipFile) :

Pointing And Filing
The construction of a 'Trek' game,
with many ships, stars, and bases, helps
tie these topics together. For example, if
the number of ships in existence during
the game varies, you might create a variable "Ships" which equals an array[l .. MaxShips] of (Ptr)AShip.
The pointer, (Ptr)AShip, is an address, and points to records of type,
AShip. In order to point the pointer (to
assign an address to it), use the prede-

f8~TALOG

"

AND
SIGNAL PROCESSING BOOKLET

CIRCUIT ANALYSIS
•
•
•
•
•

Fast Machine Code
Complete Circuit Editor
Free Format Input
Worst Case/Sensitivities
Full Error Trapping

ACNAP
•
•
•
•

'.r

Version
2.0

S69.95

Any Size Circuit
Input / Output Impedances
Monte Carlo Analysis
Transients (with SPP)

DCNAP

S59.95

• Compatible Data Files
• Calculates Component Power
• 30 Nodes / 200 Components

"Simple, isn't it?" encourages
Borland. "With a single Write statement,
you have sent all the ship records out to
the disk."
But why can an array be written to disk
without a loop?
"Because Pascal differs from BASIC,
FORTRAN, and several other languages
in that it writes data files as binary files,
rather than text files. Pascal stores a twobyte integer value as a two-byte integer
value, not as a character string several

AFFORDABLE
CP/M ENGINEERING TRSDOS
MSDOS
SOFTWARE peDOS
'.

SIGNAL PROCESSING

GRAPH PRINTING

SPP

•
•
•
•
•
•

•
•
•
•
•
•
•
•
•
•
•

S59.95

Linear/Non-Linear Analysis
FFT/Inverse FFT
La Place Transforms
Transient Analysis
Time Domain Manipulation
Spectra Manipulation
Transfer Function Manipulation
Editing and Error Trapping
Free Format Input
ASCII and Binary Files
Fast Machine Code

Linear/Logarithmic
Multiple Plots
Full Plot Labeling
Auto/Forced Scaling
Two Y-Axes
ACNAP/SPP Compatible

PLOT PRO

S49.95

• Any Printer
• Vertical/Horizontal

PC PLOT
~

VISA. MASTERCARD

lIm ~~~!~~~~~g2200
60

clared procedure "New", which allocates the necessary amount of memory
and sets the pointer to the appropriate
address. "New" makes sure that the address the pointer contains represents an
area of memory not being used by anything else. Pascal worries about those
details for you.
When the game ends, as it sooner or
later must, you can save your ship info in
a file.
Assuming you have already created a
type "ShipArray" which equals an array[1..5hipMax] of AShip, and Ship is a
variable of type "ShipArray," save Ship
by writing:

S59.95

• Screen Graphics
• Pixel Resolution
• Epson Printer

~"

i"""

B"i,,,, W,y. Swle 207. R

ide. CA 92501 • USA

~

(714) 781·0252

Micro Cornucopia, Number 23, April-May 1985

•

bytes long, with spaces and carriage returns as delimiters. This results in smaller data files and faster disk 110. This also
allows you to do things like read in or
write out an entire array with a single
command, rather than having to use intricate loops and heavily formatted 110
statements."
If you're not already an expert Pascal
programmer, you'll learn a few things
from "Turbo Tutor." And if you are, you
still might.
Turbo And Standard Pascal
Turbo is based on Standard Pascal,
and Frank and his co-writer (who writes
most, if not all, of Parts 2 and 3) are good
about pointing out the differences between Turbo and Standard Pascal. A
brief history of Pascal pinpoints some of
the reasons for Pascal creator Niklaus
Wirth's omissions from the language.
"When Niklaus Wirth designed Pascal, he did so in a punched-card/mag
tape/mainframe environment, where
fixed-length data was the rule. At least,
that's probably the reason he was satisfied to store a string as an array[l..n] of
char. At any rate, Standard Pascal does
not (currently) have a predefined data
type for strings."
But Where's The Index?
"Turbo Tutor;'like other Borland products, is an exceptional value ($30 with a
disk of programs) with few shortcomings. In particular, there's no index
(Dear Frank, for a small fee, I'll gladly .. ),
and I hate rummaging through text for
info I need now. This weakens Tutor's
usefulness as a reference, but shouldn't
create too many problems for students .
. Future editions, I hope, will correct this
deficiency.
"Turbo Tutor"takes its place just behind
Leo Brodie's "Starting Forth" as one of
the finest programming language introductions I've read. Other language tutorials can learn much from Brodie's and
Borland's informal, informative style.
"Turbo Tutor," the Turbo Pascal Reference Manual, the Turbo Pascal Compiler, and your system are really all you
need to learn good Pascal programming.

•••

•

Finally, the integrated programming environments you
deserve from Pascal Power.
TurboPower!

TurboPower adds UNIX· like program development functionalTurboPower is highly
ity to the Turbo 2.0 Pasc.al compiler
graphic you operate w.ith a single keystroke on objects that TurboP ower places on your screen You never have to type long command names. With TurboPower you can erase files. rename, copy,
backup. find differences. look for patterns and more! All operations
can be performed on a single file or on a lis t of files If a change in
your program causes it to break. TurboPower will tell you what you
changed. TurboPower helps you organize all of the pieces of a
software project. All of this functionality is integrated into the I
Turbo Pascal environment. TurboPower is currentlv available for
CPM/80 Turbo 2.0 Pascal 5 1/4" disk format;. (MS/DOS.
<;PM/86 versions available soon.)
TurboPower
$24.95

o

JRTPoWeT!

Our original product makes developing JRT 3.0 Pascal programs a breeze ' A full screen menu development environment automates the edit. compile and tes t cycle. The PascalPower Environment uses your editor. so you don't have to learn a new editor If
you use JRT Pascal powerful external subprogram facilities. you'lI
appreciate PascalPower's Module Manager The Module Manager
helps insure consi stent type. const and procedure declarations
between JRT modules by doing type chec king across module boun
daries.
J RTPower
$24.95

•

Pascal Power is dedicated to saving
the
most
valuable
computing
resource: your time.

r---------------------------~
Yes, I want TurboPower for Turbo Pascal 2.0. $24.95

0
0

Yes, I want JRTPower for JRT Pascal 3.0 '24.95
Name: ______________________
Address:

----------------------------------

City /Stale/ Zip: _ _ _ _ _ _ _ _ _ _ _ _ _ __
Telephone: _________________________________
CP/M-SO 5 1/4" disk format: _ _ _ _ _ _ _ _ __

L

Send chec k or money order to Pacal Power. 5666 La
Jolla Blvd. Suite 136. La Jolla. CA 92037. California
residents add 6% sales tax .
___________________________
~

SOG IV The Technical
Conference For
The Whole Family
It's registration time again and this
year's Semi· Official Get·together will
be grander than ever. Like last year,
there will be two days of top notch
technical presentations sandwiched
between two days of fun. This year,
however, there will be more things to
build, more sessions to attend (not
that the schedule wasn't full last year)
and special events Friday and
Saturday for non·technical family
members.
SaG IV is being held at Central
Oregon Community College in Bend,
Oregon. The dates are Thursday,
July 25 through Sunday, July 28.
Free Conferences
Friday and Saturday: Two full days
of free technical conferences,
demonstrations, workshops, and
forums (plus the new·product
displays and swap meet). You'll have
a great opportunity to exchange ideas
with the Micro C editorial and
technical staff, columnists, as well as
other leaders in the micro industry.
You'll get to talk with the main folks
from Slicer, Ampro, Integrand, and

Byte. Plus, you'll get the inside scoop
from the book authors about the trials
and tribulations of publishing.
Thursday Rafting
Once again we are kicking off the
SaG with whitewater rafting followed
by the Kickoff Cookout. If you are
interested in safe thrills then sign up
for one of these professionally guided
trips.
The all day trip includes transpor·
tation from the college, box lunch, 4Y2
hours of whitewater (up to class 4),
and the Kickoff Cookout. The
Mackenzie River is famous for its
whitewater and the road to the river
winds along alpine wilderness.
The 2Y2 hour trip includes
transportation from the college, 1Y2
hours on the river (up to class 3), and
the Kickoff Cookout.
Or, you can choose to attend only
the Kickoff Cookout (with the
victorious rafters).
Thursday Evening
Following the Kickoff Cookout
we'll adjourn to the college for a
musical jam session. Bring your
instruments and tin ears (or at least
stop by for a laugh).

Saturday Evening
We're holding our SOB (Semi·
Official Banquet) on Saturday
evening. Our keynote speaker, Ezra
Shapiro· technical editor for Byte, will
follow the food (not just desserts).
Transportation
The nearest commercial airports
are Redmond . ROM (15 miles),
Eugene (120 miles), and Portland (165
miles). Shuttles run between Bend
and the Redmond and Portland
airports. Trailways Bus Lines also
serves Bend.
If you need travel information, call
Bend Travel, 503·388·3824 (they are
really helpful folks).
Finally
If you haven't SaGged, then you
haven't sogged. So don't miss this
year's extravaganza. You'll have a lot
of fun and learn a lot without getting
soaked (unless you raft, of course).
If you're even considering coming,
get this form filled out and in. We'll
send you a free packet of information
about the area. Also, if you're
interested in staying in the dorm
(holds two per room) you'll need to
call Micro C to verify your
reservation. We're limited to 25
rooms and they'll probably go fast.

adult und.12 number

o

Please send me the FREE SaG IV info pkg.

o

I plan to attend the FREE conferences and
activities
_ _ Number of people in my party

Please list any special (non·computer) interests
you have, i.e. fishing, hiking, rock climbing, sky
diving, etc.

Thurs.
All day raft trip j65
Thurs.
2Y2 hr. raft trip $25
Thurs.
Cookout only $10
Saturday
Dinner $15
Dorms
Double room only $75
For the nights of 7/24·7/27
Food Ticket 3 meals on Friday $20
Breakfast & Lunch on Saturday
All you can eat at COCC Cafet.!!
SOG IV T-Shirt Indicate sizes: $650
SO MO LO XLO

total

j60
$20
$7
$8

$1250

TOTAL $

Make check or money order payable to: Micro Cornucopia

Dr VISA
o•

.

JCard#------.---.--Signature _ _ _ _ _ _ _ _ Exp. date _ _

Name ___~___________________ Ph.#(

Address __________________________________________
City _______________________ State ____________ Zip _________

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

New Strokes For KSTROKES: Novice Programming
By David L. Hawkins

The sequence of events went like this:
my wife and I bought a Kaypro 2X, read
the copy of Profiles that came with it,
subscribed to Micro Cornucopia, and ordered one of Micro C's Kaypro users
disks.
When I received my copy of
KSTROKES on disk #24, I was frustrated because it wouldn't do what I want. ed. I could find no way to convert a nonshift character into a tilde -. The tilde is
used: (1) to indicate the beginning and
end of a special function command, and
(2) to invoke an already defined special
function. I tried different combinations
of KSTROKES and CONFIG, but nothingworked.
The reason I wanted a tilde is because I
am a very bad typist, and I don't like using the shift key any more than I have to.
For my convenience, I wanted to define
number keys with special functions and
didn't want to be constantly shifting to
get a tilde (to end the definition). So
what was the solution?

751 Page St. Apt. 2
San Francisco CA 94117

language I could understand. Those of
you who have been using assembly language for a while may take for granted
such simple matters as entering a program, but those listings had always baffled me. (Actually, when I got my first
copy of Micro C, I almost gave up ever
understanding what was going on.)
First, I learned that .ASM files were
readable. (I had thought that an .ASM
file was like a .COM file and couldn't be
read with a word processing program.)
So I opened KSTROKES.ASM (with
WordStar), and found that I needed to
make only two changes to get exactly
what I wanted.
Since I have a Kaypro 2X, or 284, I had
to change the BDOS location. Fortunate-

ly, this is easy since the changes are in
lines 7 through 9. I just had to change the
TRUE to FALSE for old 2 or 4, and
change the FALSE to TRUE for new 2 or
4. (See Figure 1.)
The other change was in line 537.
Since the period is the last one on the
chart of changeable keys, I chose it to
make my tilde. That way, if! ever change
the keys I can change it or leave it a tilde.
So, while in non-document mode, I altered the 017h to a 07Eh. Actually, I went
ahead and altered all the keys, lines 535
through 537, but that was just for fun.
(See Figure 2.)
I assembled my new KSTROKES
(Continued on Page 65)

Figure 1 - Lines 1 - 9 KSTROKES.ASM
;

FALSE
TRUE

EQU
EQU

o

NOT FALSE

;

KAYPR02 EQU
KAY484 EQU
KAYTEN EQU

Discovering Assembly Language
Micro C had mentioned "Soul of CPI
Mil by Mitchell Waite and Robert Lafore.
What a find! At last a book in assembly

TRUE
FALSE
FALSE

; TRUE, IF YOU HAVE AN OLD 2 OR 4
; TRUE, IF YOU HAVE A NEW 2 OR 4
; TRUE, IF YOU HAVE A 10

Figure 2 - Lines 535 - 537 KSTROKES.ASM

NUKEYS: DB
DB
DB

OOBH, OOAH, 008H, OOCH
01AH, 018H, 006H, 004H, OOSH, 001H, 013H
011H, OOFH, OOBH, 019H, 014H, 007H, 017H

A Low Cost EPROM Eraser
972 Guillaume Boisset
Cap-Rouge Quebec Canada G1Y 3E4

By Christian Phaneuf

H ere is a low cost homemade
EPROM eraser for those who don't want
to spend the $90 or more required for a
good commercial unit. Of course, it can't
brag of such features as a digital timer or
a low friction ball bearing drawer for
easy introduction of ICs in the erasing
room, but it erases EPROMS pretty well.
A Light Can
First, get an ultraviolet lamp. I used a
GE model 64 511, but any ultraviolet
bulb can be used. Next, you'll need a tin
can measuring approximately 4" high by
4" in diameter (the kind used for roasted
nuts is perfect).
Place the EPROM to be erased at the

IIOv.

rv

bottom of the can, and insert the bulb
down into the can until it is about 1/2"
above the EPROM's window. A 20-min-

Micro Cornucopia, Number 23, April-May 1985

ute exposure is enough to completely
erase a 2716 EPROM. Different bulbs,
however, yield different levels of radiation, so it's a good idea to check for complete erasure and adjust the time accordingly.
The wiring must be done according to
Figure 1, with a 40 Watt light bulb in series with the ultraviolet lamp. This
serves as an important ballast. Failure to
do this could cause the lamp to shatter.
Also, be sure to shield your eyes from
the ultraviolet rays (they could be damaged).

•••
63

LETTERS
is the monitor ROM) before ordering a ProMonitor.
If the paper has 81-149 written on it (it
may have a letter also), then you really have a
II. If the paper has 81-232 on it, then you
have a 4 board, and you don't have to change
monitors to speed up your system to 5MHz
(although disk accesses are faster with the
Pro··Monitor 4).
The lockup problem could be the Z80 510
or it could be that your RAM isn't quite making it. Try getting a Z80A 510 or Z80B 510
(the /0 version). The keyboard connects to the
processor through the 510, so if the 510
quits, it makes the system look like it's locking
up. RAM is usually not a problem if you do
the CAS and MUX change on U66. (The
MUX line usually comes from U66 pin 4. Tie
that line to U66 pin 3. The CAS line is usually tied to U66 pin 5. Tie it to U66 pin 4.)
If these changes don't fix the problem, then
you might have gotten a marginal processor,
or you might have a slow Z80 PIa. In either
case, try the Z80A PIa as a substitute. Going to 5MHz shouldn't force you to add a fan
unless a part is marginal. Use an ice cube in a
plastic bag and see if cooling one of the above
parts helps. If so, then that's probably your
problem.
We have Z80B processors for $12 each
postpaid. We don't advertise them because we
aren't competitive with the big parts houses,
but if you need some, we've got them.
PX-8 Support
I'd like" to see you expand your coverage to include the new Epson Geneva
PX-8 portable CP/M-80 computer. We're
impressed with the one we have because
it has a subset of WordStar. It works well
and holds more than ten pages of text
without add-on memory.
It seems to us that the Geneva fits your
editorial purpose as a "single board"
computer (no room for much else!), and
by virtue of its CP/M operating system, it
should be of interest to S-100 users.
Roger W. Brucker
21 Murray Hill Drive
Dayton OH 45403
RAM Disk & EPROM Programmer
I have purchased a Microsphere 512K
RAM disk and am very pleased. It reduces the editing time necessary for
working my MICROPAS program by
one third and reduces the processing

64

time by half or more. I think it is a great
tool. (Now all I need to do is team this up
with an Arithmetical Processor.) I experienced a few problems when using a
twisted pair 26 conductor cable when
connecting it up; only a short flat cable
seems to work properly.
I tried to make the EPROM programmer. I can get it to read and verify
EPROMS but can't get it to program one.
I don't have a good 'scope so I'm lost trying to trace the problem. Any tips?
Eric J. Torney, Architect
7 Hart Street
San Rafael CA 94901
Recovering From Bad Edits
Your (our!) magazine is, as ever, fascinating and helpful. Perhaps the following will help others.
To recover after a crash with Perfect
Writer or WordStar, I create a disk file of
the dumped memory or of a non-editable disk file, e.g., PW.SWP. To write to
disk, I use a very nice program, SPOOL,
which diverts one device output to another, e.g., console to disk. It is available
from the Smartkey people-SRT, 3757
Wilshire Blvd, Los Angeles CA 90010,
and Nick Hammond (author of
Smartkey), 16 Coles PI, Torrens, ACT,
Australia.
Of course, I want only the ASCII part.
Problem: How to strip the HEX. On long
files-a 64K PW.SWP becomes about
300K-the column erase of WordStar
runs the risk of generating a disk full error. The MBASIC listing in Tony Ozrelic's last 'column suggested an MBASIC
answer to a friend (see Figure 1).
Still better would be a program that
could be loaded into memory to strip the

HEX from what is going to disk. Can
someone help?
Michael Stocker
Philosophy Department
Oberlin College
Oberlin OH 44074
Software Copy Protection
I recently purchased 'PERT and Critical Path Techniques' from Lionheart
Publishers. It seemed to be a good buy at
$75. However, when it arrived, I discovered it was copy-protected and 'official
back-ups' were available for an additional $25.
It seems underhanded to me not to put
all your cards on the table before making
a deal. Software companies which insist
on this after-the-fact disclosure encourage the development and dissemination
of sophisticated copy-protectionscheme breaker programs, and indirectly aid the less sophisticated pirates by
the availability of the code-breaking software.
I don't mind the reasonably priced
copies required to have a working backup, but I do mind not being told up front!
Philip E. Burke
P.O. Box 90864
Nashville TN 37209-0864

•••

Figure 1 - Stocker Listing

10 REM MBASIC PROGRAM TO STRIP HEX FROM DUMPX, SAVED DDT ETC
20 REM LEAVING ONLY THE ASCII
30 REM WRITTEN BY EROL MARTIN, 5 JAN 1985
100 INPUT "INPUT FILE (USE CAPITAL LETTERS): ", F$
110 OPEN "I", 11, F$
120 INPUT "OUTPUT FILE (USE CAPITAL LETTERS): ", F$
130 OPEN "0", 12, F$
140 IF EOF(1) THEN 210
150 LINE INPUT 11, L$
160 M$ = RIGHT$(L$,17)
170 N$ = LEFT$(M$,8)
180 PRINT #2, N$;
190 PRINT '2, RIGHT$(M$,8)
200 GOTO 140
210 END

Micro Cornucopia, Number 23, April-May 1985

Pascal And C Compilers Benchmarked
By Luis Basto

When the Turbo Pascal compiler was
introduced, I felt the ad claims were exaggerated and suspected the benchmark
times shown were derived from a system
running 6MHz with a 256K RAM disk. I
wanted to find out how fast it really was
and compare it with some high level language compilers.
I used the "Sieve of Eratosthenes"
program from BYTE, Jan. 1983, as a starting benchmark. Turbo can do its compilation entirely in memory (the fastest
way, but there is a limit to program size)
and to disk.
Compilation in memory takes less
than a second, but for comparison purposes I compiled it to a disk. I used a stop
watch with hundredths of a second resolution. Timing started when the RETURN key was hit, and ten runs were
made to average out my inaccuracies. I
calibrated myself with a time-response
machine which measured the time it
took me to react to a flashing light (about
1110 second). So the results should be accurate to within 1110 of a second.
The Competition
One of the compilers in my test was
Pascal-Z from Ithaca Intersystems. This
Pascal has been quite popular and has
one of the largest public domain libraries
I know of.
I also compared Turbo with two C
compilers. Turbo's bit manipulation
functions and built-in BDOS and BIOS
calls make C and assembly language
programming pretty much unnecessary.

12707 Poquoson Dr.
Austin TX 78759

Figure 1 - Comparison of Times

Turbo Pascal

Pascal-Z V4.0

C/SO V3.0

Compile
Time

10.53

1:36.16

1:25.72

1:21.50

Run
Time

27.16

2:29.40

28.22

41.10

8K

4K

12K

17K

Size of
.COM file

(Of course, if speed were critical you
might be forced to slug it out in assembler.)
I timed the Turbo compiles from the
Turbo menu, then added the compiler's
load time (6.26 seconds). With the other
compilers, I let EX14 (the public domain
submit utility) direct the compiling, assembling, and linking (as needed). That
way there were no delays for typing.
The benchmarks were taken right out
of BYTE with no modifications. All fourcompilers ran without any burps.
The times in Figure 1 were obtained on
a Kaypro II running at 4MHz.
The smallest object file size that Turbo
generates is 8K, even if you have a one
line program. Turbo does not generate
any extraneous disk files, while Pascal-Z
and the C compilers create anywhere
from 3K to 10K of relocatable assembly
source files. These extra files are necessary since these compilers have separate
assembly and link steps. Of course the
separate assembly means that you have
your choice of assemblers. (And Pascal-

KSTROKES _____________________________________
(continued from page 63)

.ASM with ASM, and used LOAD to
create a .COMfile. I ran it, and it worked
like a charm.
Why Not CONFIG?
Why didn't I disable the new keys part
of the KSTROKES program and use
CONFIG? Because I like KSTROKES'
flexibility. My wife uses a different number pad configuration on both of her editing disks. This way I can PIP the new
KSTROKES.COM (renamed Kl.COM)
back and forth as we experiment with
our different tastes in pad configura-

tions.
On my games disk I can have one version of KSTROKES just for playing CASTLE. A 'tilde l' calls up MBASIC CASTLE, while the number pad can give me
some of the the other commands- I use
often. Since CASTLE uses directions a
lot, I can have the '8' be North, the '4' be
West, etc. I may not be getting better as a
typist but I'm sure having fun learning
how to use our Kaypro.

Micro Cornucopia, Number 23, April-May 1985

Aztec C V2.0

•••

Z produces ROMabie code.) So, these
other compilers are more powerful than
Turbo in these respects.
Intermediate Files
If you are writing large programs these
extra files could create disk space problems. The one pass compilation and single object file output of Turbo certainly
account for its short compile times.
To see if Turbo generates (and then
erases) some intermediate files, I filled a
disk with 170K of files and then compiled
the Microcalc example which came with
Turbo. MC. COM is 21K long, so if any
extra files were created they would have
overfilled the 191K disk.
Well, MC COM was generated, and
OK was left on the disk. So much for the
possibility of "erased files."
Installation
The editor is a little difficult to set up.
The Kaypro selection from the terminal
configuration menu does not understand Kaypro's cursor keys, which I
found indispensable in editing. It also ignores the TAB and DEL l-+{ o-t....
I

I

EXTERNAL,
PROGRAMMING

V~~T~~

I
I

! Y'

>--+t

I
I

Vee

"PROGRAM" ON/OFF

I

I

0
'- ____ .1
_ SI

(Vpp)

r--,
/0

I

I

to eOIlee1on

: 0-+- of 05 iii 04
L __ J

Adventure Words
Desperate for a competitive edge over
ADVENTURE, one night I decided to do
some exploring through my BB- I' s RAM.
Sure enough, after ending the game, the
look-up table containing the game's vocabulary was right before my eyes. In alphabeticalorder, even!
To make a permanent copy of the
word list, follow this procedure:
1. After quitting a game, reset the computer.
2. While in PFM, copy the list to 100H
using the command 'C273,C6E,100'.
3. Boot CP/M.
4. Save the words to a file by typing
'SAVE 10 WORDS.ADV'.

52

Richard Bugg
2703N.W.20
Oklahoma City OK 73107

A Little Less Drive In An 820-1
I would like to share some info rela ting
to the 820-1 and II. The October issue of
Micro C carried a letter by A. W. Gustafsson in .which he described a problem
with a vertical line appearing on the video monitor.
I experienced the same problem using
a Motorola DS-3000. It was solved by installing a 2K carbon pot across the horizontal drive and groun-d (slider to the
monitor). It may be that there is too
much drive for some monitors.
I also installed the disk drive modification explained in Issue #19 by Mitch
Mlinar. I didn't like the idea of bending
out pin 23 of the controller, so I isolated
the pin by cutting the bus to it on the foil
side of the board. You also have to cut
the trace to pin 14 ofUl19 on the component side. This is the trace which is at a 45
degree angle. It's tied to pin 23 of the
controller, and 5 volts on U119. The 5
volts required by U119 will be supplied
by the trace on the foil side.
Anthony J. Gasbarre
23 Centre Street
Sullivan NH 03445

The words can now be easily accessed
with a BASIC program. Open WORDS.ADV as a random file with a field
length of 6 bytes.
Purists needn't worry-no real secrets
are given away. The main advantage to
this is that you save time by knowing
what words NOT to try. Be forewarned
that indiscriminate use of certain words
can be hazardous to your health.
Hal Vikks
Address withheld by request

Modifying An 820-1 To Use A BBI
Monitor
As a user of both BBI and Xerox 820-1
for general hacking around, I soon
learned that the 820-1 monitor was a liability. Software that places any kind of
routine above CP 1M will probably overlay the monitor and crash unless you reconfigure to avoid the big 820 monitor.
Examples of these kinds of software include: Dyna Disk, Graphtec, Scrndump,
and many others.
The steps below take approximately
two hours, and modify your 820-1 to use
the BBI monitor, thus circumventing
compatibility problems.
1. Open trace (solder side) connecting
to pin 1 of U107.
2. Add a pullup resistor (1000 Ohms)
from pin 16 of U107 to pin 1 of U107 (solder side).
3. Open trace to U92 pin 19 (solder
side).
4. Add a jumper between pins 19 and

Micro Cornucopia, Number 23, April-May 1985

21 of U92 (solder side).
5. Jumper pin 4 of Ul04 to your AC
motor control. I recommend the unit described in Micro C, Issue 8, page 25 and
Issue 10, page 32.
6. Install the stepping rate modification described in Micro C, Issue 19, pages 34 and 35.
7. Install an IC socket in location U117.
8. Bend out straight or cut off pins 1, 2,
3,4, 12, and 13 of a 7406 before installing
in Ul17.
9. Install a 16-pin IC socket in the
spare location (between U34 and U36).
10. Connect the following jumpers on
the solder side between Ul17 and this
new IC socket.
U117
1

SPARE
13

13

14

3
4

15
1

12

2

11. Jumper pin 12 of the spare to pin 7
of U34 (solder side). NOTE: Pins 3 and 4
of the spare IC are available to implement DVSEL for drives C and D, if needed.
12. Jumper pin 10 to pin 11 on Ul05
(solder side).
13. Jumper J2 pin 8 to J2 pin 19 (solder
side).
14. Remove R65 (150 Ohm) and replace it with a 220 Ohm resistor. Add a
330 Ohm resistor from the data side of
R65 to ground.

15. Install a 7445 in the spare IC socket.
16. Remove the Xerox ROMs from locations U63 and U64.
17. Install a BBI monitor ROM in U64.
18. Power up, hit 'B' < cr> and PFM
3.3 will sign on.
D. L. Hedin
4210 Morris Road
Hatboro PA 19040

Kaypro Cursor Mods: The Assembly
Language Version
Enclosed you will find a disk with a
very small program on it called Flashoff.com. I realize it isn't much, but some
readers with Kaypros might find it helpful. It simply stops the cursor from blinking on the 1984 2s, 4s, and lOs.
Kent R. Mason
4009 NW 24th Street
Oklahoma City OK 73107

REPAIR SERVICE

CUSTOM PROTOTYPE WORK
NEW fUSED 820 EQUIPMENT
DISK DRIVES
CASES
PWR SUPPLIES
LETTER QUALITY PRINTERS
IBM PC BOARDS
FOR

•••

Kaypro Cursor Mod - Turbo Version

XEROX 820-1111 SYSTEMS
BIGBOARD I
PC BOARDS

CALL

Kaypro Cursor Mods: The Turbo
Version
I recently stumbled upon a way to
change the cursor on my Kaypro 4-84.
Send 10 (decimal) to port 28 to select
the cursor blink rate register. Then send
the number that selects the cursor to port
29. Not only does this register control the
cursor blink rate, but it also controls the
vertical size of the cursor.
I have included a sample program
written in Turbo Pascal. Note that there
are ranges of numbers that turn the cursor off. These ranges occur between the
ranges where the cursor appears in the
upper right corner of the screen.
Bill Tuck
Rt.1 Box 222
Alberta VA 23821

PRICE LIST

THE DA TA MILL
12 CRESCENT CT.
MONTGOMERY, IL 60538
312-892-6573

Micro Cornucopia, Number 23, April-May 1985

vatdata : i l'"lteger;
key : chat-;
begin
data := 0;
clrscr;
pc.t-t C28J := 10; pc.rt C29J := data;
gotoxy(1,1); writeln(' 1 -) decrement cursor data');
writeln('2 -) increment cursor data');
writeln('* -) exit to system');
wri tell'"l;
writeln('data sent to port 29D to create present cursor -)
t-epeat beg in;
gc.toxy(S0,S); write(' ',data,'
');
gotoxy(80,1);
read(kbd,key) ;
case key of
'"1' : data := data - 1;
'2' : data := data + 1;
el'"ld;
pc.t-tC28J := 10; pc.rtC29J := data;
el'"ld; unt i 1 key = '*';
el'":d.

.);

Kaypro Cursor Mod - Assembly Version

.:Jrg
r"vi
.:Jut
r"vi
(Jut
("vi
.:al
.:?nd

100h

a.

111)

28
a.i/)
29
c.0
1

5

start program at 100 hex
put HHdecir"al) in A re9istar
send value. in A re9istar (10) to cursor re9istar
put 0 in A re9istar
send value to cursor re9istar
set UP bdos for warm boot
ca 1 1 bdcls
stop prog ra-tll

75

More Goodies From
82~R! ~!O Co rn uCO pia
BB I, BB n, and XEROX

The following are full 8"" disks of software. Each program has a .DOC
(documentation) file and many come with source.
USERS DISK # 1
4-Two disk formatters
I-Two fast disk copiers
2-The manual for Small C+ 5-Modem 7
6-0thello
3-Crowe ZSO Assembler
7-Serial print routine-Port B
USERS DISK #2
I-Two single disk drive copy programs, both with
source
2-Crowe ZSO Assembler source
3-New Crowe. COM file, debugged version
4-New CBIOS with parallel print driver &. other
extensions for CP/M 1.4 &. 2.2
5-Disk mapper with source
USERS DISK #3
I-EPROM burning software for BB 1
2-Reset bit 7 (unWordStar a file)
3-Disk file CRC checker
.
4-New fast copy program &. source
5-DU77, disk inspector/editor
6-ANDBAD, isolates bad disk sectors
7-Print fancy page headings
USERS DISK #4
l-CBIOS, custom bios for Tandon drives
2-ZCPR, dynamite CCP checks drive A for missing
.COM files; improved commands
3-ZCPRBLOC, identifies CCP location
USERS DISK #5
I-CAT, disk cataloging routines
2-Modem 7 for Port A
3-Modem 7 for Port B
4-PACMAN, the arcade game
5-FAST, buffers the disk to speed up assemblies
6-NOLOCK, removes BB 1 shift lock
7-VERIFY, cleanup &. verify a flaky disk
B-DUMPX, enhanced for BB 1
9-UNLOAD, create .HEX file from .COM file
USERS DISK #6
1-REZ, BOBO/ZSO disassembler, TDL mnemonics
2-PRINTPRN, prints Crowe listings
3-RUNPAC, run-time utility package for B080 assembly language programs. Has 51 functions. Includes
source which assembles under ASM.
USERS DISK #7
1-CHNGPFM, PFM monitor mods
2-TERM, terminal routines let you set up BB as
simple terminal, as a file receiver, or as a file sender
3-Checkbook balancing package
4-Disk Utilities - copy to memory, from memory,
and dump.
USERS DISK #8
1-BDSCIO, custom BDSC 110 for BB 1 (both .h
and .c)
2-YAM, Yet Another Modem program in source &.
.COM form. Turns BB into paging intelligent
terminal, complete with printer interface, baud
rates to 9600.
3-ROFF, text formatter
4-SIGNS, prints large block letters
USERS DISK #9
I-ADVENTURE, expanded 550 pt version
2-Keyboard translation program
3-CBIOS, serial &. parallel printer interface
4-EPROM programming package for BB II, for 2732s
only
USERS DISK #10 - Lots of Disk Utilitiea
I-REBOOT, sets up the CP/M auto load
2-SWEEP, directory/file transer routine
3-A, Lets BB I recognize a double sided drive as one
drive with 494K of usable space
4-FIX, super disk utility, does everything, much
easier to use than DU77
5-Compare files routine
6-UNERA, retrieve erased files
7-AND, check all drives on system for a file
B-MENU, menu program for CP/M
9-NEWCAT, enhanced disk catalog program
to-Single drive copy program that does track by track
copies rather than file by file
. USERS DISK #11 - Printer Utilities
I-Microline 92 printer routine
2-Graphics display package for MX-BO with Graftrax,
very fancy
3-Epson MXBO setup for BB 1 with 59.5K CP/M
4-Eps.on MXB setup for any CP /M,lets you set print
modes.
5-Micro Tek print driver, Ports A &. B

8" Users Disks

USERS DISK #12 - Games for BB I
I-ALIENS, a fast, exciting arcade game
2-ZCHESS, chess with a 1-6 level look ahead
3-MASTERMIND, match wits with the computer
4.BIO, Biorhythm charts complete with graphics on
the BB I
5-LIFE, so fast it's real animation!
6-CRAPS, see how much you'd lose in Vegas
7-WUMPUS, a caver's delight, kill the Wumpus or
be killed
B-PRESSUP, similar to Othello
9-Games, 7 games in one program, includes blackjack,
maze and animal
USERS DISK #13· General Utilities, BB 1
l-ZZS0URCE, disassembles to real Zilog mnemonics
2-EX14, superset of submit or supersub
3-MOVPATCH,lets you use MOVECPM on other
copies of CP/M
4-XMON, 3K expanded BB I monitor, use in ROM
or as overlay.
5-CURSOR, prompts you for cursor char you want
6-UMPIRE, very fancy RAM test
7-ZSIDAX, display improvement for ZSID
B·PIPPAT, modify PIP so you can reset system from
within PIP
9-@, Lets you use the BB as a calculator, including
HEX
10-S0RT, sort package written in CBO.
USERS DISK #14 - BB II Software
I-PR032, latest 2732 reader &. programmer
2-SMODEM2, lets BB II talk to Hayes Smartmodem
3-GRAFDEMO, demonstrates BB II graphics (in
BASIC)
4-ATTRTEST, demonstrates BB II graphics (inJRT
Pascal)
5-INITSIO, initializes port B for 300 or 1200 baud
6-MENU, displays menu of .COM files, enter number
to run file
7-SETCLK, sets realtime clock built into BB II
B-PRINT2, modified print which accesses BB II clock
9-BOX, draws a thin line box on screen determined
by HLand BC
10-ALIENS, space invaders arcade game
ll-LISTSET, printer interface, auto-enables RTS,
ignores DCD.
USERS DISK #15 - Word Proceasina
I-EDIT, very fancy line editor similar to EX (Unix).
Includes help menu, programmable key, and full
'
manual on disk.
2-TED, simple minded line editor, easy to learn &.
use. Very fast.
3-TTYPE, typing training program written in BASIC
4-TlNYPLAN, very simple-minded spreadsheet.
Whets your appetite for a fancy one .
5-CBO Text Utilities
6-CHOP, cuts off file after N bytes
7-ENTAB, replace spaces with tabs where possible
B-MS, double or ttiple spaces a file to output
9-RTW, removes trailing spaces from file
10-TRUNC, truncates each line to specified length
ll-WRAP, wraps at column BO, plus pretty pretty
printing, page #s ...
USERS DISK #16 - BB I Modem Software
l-RCPM27, list of U.S. bulletin boards
2-SMODEM, interfaces BS I with Hayes Smartmodem
3-PLINK66, easy to use with non-CP/M host, for
portA
4-BBPAT, menu selection of BAUD rate, bits/char,
parity, &. stop bits
5-MODEM 7+, Modem 7 plus BBPAT,lets you talk
to anything from port A

$15.00

each

USERS DISK #19· BB I Double Density
New BB I Monitor, BIOS, character ROM, Winchester Interface, ZCPR, and formatter from Trevor
Marshall. See BB I expansion article in Issue #11.
USERS DISK #20 • Allemblen
CROWEASM: This is the Crowe assembler modified so that it runs on any CP/M system (including
the BB I, BB II, Xerox ... ). Includes .COM .ZSO and
.DOCfiles.
LASM: This assembler is similar to the ASM that
comes with CP/M except that it can link files at
assembly time.
PRINTPRN: Print routine for CROWEASM .PRN
files.
LIBRARY: Utilities which let you combine many
files into one, then you can run, type, or extrace any
file within the larger system.
USERS DISK #21· Wincheater Utilitiel
BACKUP: Helps you back.up the winchester onto
multiple floppies. Creates a catalog of the files on
each disk and includes the date of the latest backup.
Will not back-up an unchanged file more than once.
Plus many more super features.
FLOPCOPY: Lets you make floppy copies (with
only one floppy drive) by using the winchester as a
buffer.
BIGBURST: Backs up a very large winchester file
onto multiple floppies. Joins the copies to recreate
the original file.
MULTCOPY: Use this like PIP but it prompts you
to change disks. Accepts ambiguous file names.
MDIR: Displays files in all user areas on selected
drive. Many features.
MAKE. MOVE: PIP-like utilities that make it easy
to move files between user areas.
SWEEP: The famous disk cleanup and transfer
routine that does just about everything you can do
with TYPE, ERA, DIR, and PIP.
UNSQ; This is the latest, greatest file unsqueezer.
Enter UNSQ *. * and it will check every file on the
disk. All squeezed files will be unsqueezed.
USERS DISK #22 • Pascal Compiler
This is a real Pasql compiler. It supports only a
subset of the language (no records, pointers, booleans, reals or complex) but it generates a real .COM
file. Everything is on this disk: the compiler, its
source, example programs and documentation.
USERS DISK #23 - Xerox Utilities
This disk contains Xerox specific utilities including a
. screen dump fromWayne'Sugai(with source); modifications for the SWP package including ZCPR, a new
monitor, and a clock/calendar from Mitch Mlinar;
and Jim Mayhugh's new monitor (see issue 19). A
very special disk for Xeroxers.
USERS DISK #24· Prowriter Graphice
This is a complete Prowriter printer graphics package
written by the same Micro C subscriber who wrote the
MX·80 graphics package. Plot points, lines, circles, boxes,
and more. Examples, documentation.
USERS DISK #25 - ZSO Macro Assembler
This is a real ZSO macro assembler! Syntax closely follows
RMAC and MAC. Also includes pseudo·ops to support
conditional assembly etc. No phase or relocatable code.
USERS DISK #26 - BBII CP1M 3.0 Banked BIOS I
Winchester Support
CP 1M 3.0 Banked BIOS implementation for the BBl. Roy
Epperson's software to support the Adaptec ACB·4000
SCSI and the Rodime R204 5· Winchester on the BBll
(see issue #19). Plus more Winchester programs.

USERS DISK #17 - Small C venion 2
SMALLC2, this substantially expanded version of
Small C now includes for, goto, label, switch (case);
external declarations; new preprocessor commands;
expanded 110 includes redirection; initializers; plus
12 new expressions. The 110 and runtime libraries
have been greatly expanded (including print£). Source
&. documentation on one full disk.

USERS DISK #27 - BYE Remote CP/M SYltem
BYE programs to run your BBI, BBll, or XEROX 820·1 as
a remote CP 1M system using a Hayes Smart modem
compatible modem. Includes programs to allow restricted
access.

USERS DISK #18 - FORTH
IFORTH, this is Idaho FORTH which can be burned
into ROM or loaded from disk. It replaces the PFM
monitor &. handles all the monitor functions. See
issue #11 FORTH column for more info about
IFORTH and this disk.

USERS DISK #28 - VFILER and
Extended Sinille Density
VFlLER is a screen·oriented file manipulation utility,
similar to SWEEP, CLEAN, and DISK. Also, Larry
Blunk's documentation and software for implementing
extended single density (334K) on eight inch disks .

. .- - - - - - - - MICRO CORNUCOPIA· P.O. Box 223· Bend, Oregon· 97709 - - - - - - - - -

76

APRIL FOOL (continued from page 7) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
"You really think you're going to get
all those bargains in a suitcase?" he
asked.
Well, I'll do the best I can, and let UPS
handle the rest. While I'm there I'll be
giving a talk entitled "The Big Board, Xerox, and Kaypro: Early Single Board
Clones." Plus, I'm going to have a small
booth in the commercial display area.
David Chasen and his Trenton Kaypro
Users Group will be helping me man the
booth (thanks, David). If you're in the
area, stop by and say hi.
Definitely April
By the time you read this it will be
April. If you see anything at all strange in
this issue ...
On the other hand, if you don't see
anything strange in this issue, maybe
you should be reading something a little
more humorous (the federal tax code,
perhaps).
Gary Entsminger
Every magazine should have its Gary.
We finally do and I'm tickled. Gary is so
excited about this and that and the other-that I'm having trouble constraining
him. (Actually I'm having trouble constraining him because I'm excited, too.)
Anyway, Gary has suggested two
new projects for Micro C: "The Last
Page" and "Tidbits."
The "Tidbits" section gets all those interesting new bits and pieces that I haven't really had a spot for in the past, and it
should make interesting reading. In fact,
Gary just went dashing by waving a
press release with "Borland" emblazoned across the top. I guess I'll have to
take a short break here, and see what
Philippe is up to. Be back in a couple.
OK, Gary will tell you about Borland's·
new packages for the Epson (oops, I'm
letting it out), and he'll also explain "The
Last Page" on the last page.
Remex Drives
In the last issue I reported the deal on
Remex drives. Well, I can't resist a bargain myself, so I bought six of them for
$300.
I think I know why the Remex drives
are so cheap. They aren't very good'
drives. Out of the six, two are still running fairly well. (One was DOA, and
three more died within days.) I understand these drives were left over from
the Zorba debacle, and these could well

have contributed to Zorba's demise.
Bruce and I took a very close look at
the units to see if we could figure out
why they have trouble reading track 0,
why they are noisy, and why other
drives have trouble reading disks formatted or written by these drives.
Well, first we checked out alignment.
That seemed to be within reason. Then
we discovered that the head assembly
didn't run smoothly over the rails (it
really dragged), and that the stepper
motor has a long, unsupported shaft.
Between the shaft length and the drag on
the head, there's little chance the motor
could consistently hit the track properly.
Also, they appear to be very heat sensitive. When they're cold, they won't
boot; when hot, sometimes the spindle
motor loses its speed control (it sounds
like you've put your foot down on a sewing machine control). I can't really blame
the motor for the overspeeding; the oscillator that drives the motor was no
doubt going wild.
Anyway, if you have any Remex
drives, try lightly lubing the rods that the
head assembly runs on. Use silicon lube
orWD-40.
If you haven't bought your drives yet,
then check out the prices on the Mitsubishis and Shugarts. I've seen Shugarts
for $109 each, and they are really quiet in
our Kaypro. (Shugart is no longer in
business, by the way. Another tombstone has replaced a cornerstone.)
Florida
I spent two very interesting weeks in
central Florida this last January. During
that time I met with the officers of the
Central Florida Computer Society.
Founded in 1977, it's the oldest computer society in Florida.
Anyway, these folks are old S-100
hands who have also dabbled in other
systems like Kaypro and Osborne. Many
of them still have at least one S-100 system, but I wonder now if they're keeping
them because they use them, because
they're antiques, or because they're toomonstrous to move. It turns out that it's
a bit of all three.
I expected to hear strong appeals to
keep Micro C a CP/M only magazine. I
heard a little bit of that, but it was very
muted, almost apologetic.
What I did hear was that folks hated
IBM, but they were buying them, and
the purchases seemed to be within the

Micro Cornucopia, Number 23, April-May 1985

last few months. Often the reason was
the company they worked for, or the
need for a specific piece of software that
wasn't available anywhere else. They
were very practical reasons, but they
went against the grain.
"My (CompuPro/Kaypro/Morrow ... )
outperforms the IBM, but I needed to
have a PC at home so I could (use programs that I use at work/interchange data with the office system/do a specific
graphics project)." Even after Comdex, I
wasn't ready to hear a bunch of diehard
CP/M freaks talk openly about going
over to the other side.
One Friday evening I attended an informal officers' meeting. At that meeting
I asked each person to pretend he were
in my shoes. Where would Micro C be
heading if he were at the helm?
One stated that he wouldn't be caught
dead in my shoes (I guess he knows
what the hours are like). He doesn't like
IBM because they're slow, but he is buying a second XT because it is cheaper
than adding on to his S-100 board.
General Suggestions:
1. Add an S-100 column.
2. Continue very strong support of the
Kaypro and Big Board.
3. Provide regular information on Turbo Pascal, C, and FORTH.
4. Increase information on public domain software.
Well, this is the easy part. We're already doing these. Some other suggestions include:
5. Micro C should carry more hardware design and construction projects.
These projects should include controllers, I/O interfaces, printer buffers, terminals, local area networks, batterybased power supplies, and 5-100
boards, to name a few.
6. Micro C should take close looks at
the insides of different operating systems, starting with CP/M, CP/M 86, CPt
M 68K, and then move on to some of the
new single and multi-user systems.
7. Micro C should add a regular feature aimed at beginners. Subjects would
include hardware, assembly language
programming, and CP/M 80.
Great ideas. I'm looking forward to
these articles already, so if you are working on anything resembling these, keep
us in mind. In fact, give us a call or drop
(Continued next page)

77

APRIL FOOL ____________________________________________________________
(continued from page 77)

us a card if you have an idea. Direct your
inquiry to Gary or Becky (or even me).
Be sure to let us know what disk you
want, as well as your shirt size when you
submit your article or tech tip. We'll send
the disk right away and the shirt if it
runs. (Actually, our shirts aren't supposed to run, but you never know. It all
comes out in the wash.)
Surplus Information Wanted
I'm interested in the latest info from
the surplus folks. It doesn't have to be
big surplus folks (skinny, short types are
OK, too), but there are a lot of little
batches and big batches of super deals
that people just stumble onto. These
deals could go into the "Tidbits" column, or they might get their own "Surplus Tips" section.
If you find something incredibly incredible, drop us a note or call with the
particulars on the product, the price, the
address/phone number, and how to get
it.
Xerox
Those of you who have been following
this column for the past few years know
that Xerox Corp. and I (actually Xerox
and everybody, it turns out) have had a
sort of standoffish relationship.
I had called them about supporting the
820. One department said OK, but engineering treated me like I was the Boston Mangler (without even seeing one of
the boards I'd modified).
A couple of issues ago, Mitch Mlinar
mentioned that Xerox had dropped the
820-II. That produced an immediate call
from Xerox marketing (East Coast) saying they were still selling the 820-II, and
would I please straighten things out for
our readers.
"Sure," I said.
When he called back to make sure I'd
done it, I started to wonder if maybe
there wasn't more to the story than just a
simple misunderstanding.
Now I'm beginning to hear some other
interesting things. Computer marketing
is on the East Coast because it's no longer in Dallas (seems simple enough). In
Dallas they say that the 820-II is not a
current product. Obviously the Southwest mouth knoweth not what the East
mouth sayeth.
So, I called the local Xerox dealer and
tried to order an 820-11. The lady I spoke

78

with sounded surprised that I wanted an
820-11.
"Are you sure you want an 820-II?"
"Yes," I said, trying my best to sound
casual-it's not every day I order a dinosaur by phone.
"You wouldn't consider a used one,
would you?" Her voice quavered. "We
have a number of customers who would
love to sell theirs."
"No, I want a new one." I said, determined to get to the bottom of this.
"I'll have to call our main store in Eugene, and see if they can still order it."
Later that afternoon, I got a call.
"We can't get the 820, but we can
probably order the 8/16. It's an upgraded
version of the 820."
I resisted the temptation to ask if the 8/
16 were PC compatible (it isn't), and then
mentioned I had placed the order to
check up on Xerox.
Her general feeling was that it
wouldn't make much difference whether or not Xerox still stocked the 820 (or
the 8116); there just wasn't much demand. (No question, it's all very simple.)
ATs And Drives
Kaypro is coming out with a new AT
compatible (it's being FCC tested now). I
wonder if that means it will have flaky
winchesters (IBM's are).
I understand that IBM refused to pay
IMI $360 per 10 meg drive (they insisted
that IMI reduce their price to $280 per
drive to match the price they could get
from Japan), so IMI simply closed its
doors when the contract with IBM expired. It turned out that something like
80% of the Japanese drives have been
dying within a few hours.
So Old Blue has egg foo yong on its
face and ATs in its warehouse. Up until
now IBM has been pretty much invulnerable in the business community because it has such a reputation for quality.
That reputation is getting nailed by this
drive problem (IBM suddenly looks a lot
less invulnerable).
Not only has its reputation for quality
been nailed, but other companies are
suddenly very leery of IBM contracts.
They've realized that they are literally
betting their companies when they sign
on the old dotted.
DTACK Grounded
I don't know why DTACK Grounded

isn't D'TACK Sharp, but then I don't
know why Dr. Dobb's doesn't make
house calls. Anyway, DTACK
Grounded is an interesting gossip rag
that covers just about everything in the
industry: IBM, Apple, Macintosh, etc.
It's sort of a stream of consciousness
thing.
I just received my first copy and have
read it cover to cover-excuse mefront page to back page, there are no covers. This 28-page piece is probably what
people first expected us to produce for
the Big Board-reduced dot matrix,
quick-printed, and stapled in the corner.
It's not fancy, but it's fun all the same.
Some of the material isn't very intelligible or very useful, but the rest of it is
pretty interesting.
For instance, the following:
"Remember Jean Claude Cornet,
whom Intel yanked back from France to
fix the 186 mask? He is working on the
386, a 32-bit micro which will maintain
upward compatibility with the 8088,
8086, 186, and 286. How this will get
pulled off is going to be interesting to
see: software compatibility requires a
64K segmented architecture ... Segmented architectures STINK when attempting to work with multimegabyte
memories. G. Gordon Bell, DEC's former VP of Engineering, has repeatedly
asserted that the biggest mistake a computer architect can make is to use too
small a linear address space. Intel has
not yet ventured beyond 64K-and neither does the Zilog 80000 (five zeros)honest!."
I'm not sure I count five zeros in 80000,
but I am sure I'll be mentioning more
from DTACK. Also, I agree completely
with their feelings about segmented addressing. Intel made a bad boo-boo
when it limited itself to 16-bit registers in
the 8086, and now its future products are
locked in by the need for compatibility.
(Their 8080 was also limited by the architecture of the 8008.)
DTACK Grounded
1415 E. McFadden, Ste. F
Santa Ana CA 92705
$15 for 10 issues, U.S.
Turbo Tutor
In every training package that's come
across my desk (or through my computer) there has been one major flaw. The

Micro Cornucopia, Number 23, April-May 1985

flaw is that they haven't exorcised the
steps. (But steps are good exorcise, you
say.)
The problem with steps is that they become impossible hurdles for people who
can't quite pull themselves over the top.
What these packages need are ramps,
steadily rising paths that take students
from 0 to wherever they're going. No
steps.
Well, I have yet to find a Pascal course
that wasn't full of steps. I learned Pascal
at Tektronix, and that course had all
kinds of steps. The biggest step was logging onto the time-share system (and
then there was the impossible text editor
and the two-day wait for a printout). Finally, the instructor and the book added
more than a few steps of their own.
When Micro C staffers took Pascal at
the local college, they faced a lot of steps
even though they got permission to use
the Kaypros in the office. I wanted them
to learn Pascal before they learned the
negative mind set that comes free with
BASIC, but the class was really aimed at
·people with some programming (BASIC) experience.
Anyway, to make a long story short, I
looked very closely at the Turbo Tutor
when it arrived from Borland International. With this package, Borland had a
chance to teach Pascal in a very defined
environment. They knew the version of
Pascal they were teaching, and they
knew the editor people would be using.
And they did it right! No steps! This
package should teach you Pascal if
you're at all interested (and it's so well
written that you'll be interested). This
disk and book contain a very easy ramp
that starts at 0 and goes a very long way.
You simply step onto the ramp at the leve"t that's comfortable and you're off. I
highly recommend Turbo Tutor for people who have never programmed before,
as well as for people who are old hats at
the language. Borland gets a 10+ on this
one. (Before I steal any more of his thunder, see Gary's detailed look at the Turbo
Tutor in this issue.)

lar Electronics during the Altair period.
On February 19, Alice called ZiffDavis (recognize the name?) to get the ad
rates and deadlines for Computers and
Electronics. What she got was the grand
shuffle through the advertising department, but no information. Then Dave
Pogue tried calling, and he wound up in
the editorial section (advertising was not
available). No one knew anything about
deadlines or rates.
Finally we got a call back from advertising. The caller indicated she had just
found out the magazine had been shut
down. The April issue will be its last.
We quickly ran down to the library to
see what had happened to the pub.
What we found was a mere shadow of its
former self. Advertising was noticeably
scarce (at $12,000 for a full page, I'd be
scarce, too), and most of the articles were
shallow reviews. I guess we should have
guessed it was coming. Another magazine ziffed in the end.

Computers And Electronics Folds
Another cornerstone of the computer
community has bitten the dust. Just over
10 years after they announced the Altair
8800, the first affordable computer kit,
Computers and Electronics ceased publieation. The magazine was called Popu-

Micro Cornucopia, Number 23, April-May 1985

Programmers:
Support over
150 VDTs and
micros with
this manual!
We spent over a year tracking down the
information necessary to effectively utilize
over 150 video display terminals and microcomputers. We can save you the trouble.
A Programmer's Guide to Video Display
Terminals is now available for just $30, a
fraction of what it would cost you to gather
the same information.
Useful to the casual programmer as well
as the professional software developer, this
335-page paperback contains tips and instructions on programming for VDTs, including clear-screen, cursor positioning,
erasure, video attributes and more.
Also included are 145 data sheets containing everything you need to know to
program for over 150 VDTs, including:
Manufacturer
Terminal
Number of rows
Number of columns
Top row number (0 or 1)
Left column number
Scroll at bottom?
Cursor addressing:
Lead-in sequence
Row or column first
Form of data
Row offset
Column offset
Separator sequence
End sequence
Sample addressing
Delay after positioning
Cursor home
Erasure:
Entire screen
Cursor-end of scr~en
Home to cursor
Cursor-end of line

Beg. of line-cursor
Entire cursor line
Erasure delays
Video attributes:
Blinking
Reverse video
Underline
High intensity
Half intensity
Occupy position?
Cumulative?
All attri butes off
Cursor control keys
Up
Down
Right
Left
Character set
Bell sequence
Conform to ANSI X3.64?
Terminals emulated
Program function keys
Notes

Spend your time programming instead of
wading through VDT manuals. Order A
Programmer's Guide to Video Display
Terminals today!
DATA ON DISKI
Put the data to work immediately. Order the data on
disk. The 8" SSSD CP/M~ diskette contains all the
information on the manual's data sheets except notes
and emulations. Complete file formats and instructions allow you to extract the data you need and load
it directly into your terminal customization program.

A Programmer's Guide to Video Display Terminals
by David Stephens
Atlantis Publishing Corporation 1985
ISBN 0-936158·01-8 $30 335 pages, paperback
Atlantis Publishing Corporation Dept. 201
P.O. Box 59467, Dallas, Texas 75229
Please send A Programmer's Guide to Video
Display Terminals and Data on Disk for $80.
Please send A Programmer's Guide to Video
Display Terminals for $30.
Texas residents add 6~% sales tax. Publisher pays shipping on
prepaid orders. Shipping will be added to credit card orders.
~nreign buyers remit in US currency, specify shipping method and
add appropriate shipping for two pounds (one kilogram).
Name _ _ _ _ _ _ _ _ _ _ _ __

o
o

Company _ _ _ _ _ _ _ _ _ _ __
Address _ _ _ _ _ _ _ _ _ _ _ __
City, State, Zip _ _ _ _ _ _ _ _ _ __

David J. Thompson
Editor & Publisher

•••

o Check or money order
o MasterCard 0 Visa

Amount Enclosed _ _ __
Exp. Date _ __
Card Number _ _ _ _ _ _ _ _ _ __

x
SIGN HERE. Credit card orders invalid unless signed.

79

lilT IDS
The following folks are reaching you for only 20
cents per word. If you would like to reach the same
audience, send your words and 20 cents for each to
Micro Cornucopia.
Big Board II system. BBII in Ferguson enclosure
with super duty power supply, Siemens 8" DSDD
drive, 10 MEG RODIME Hard Disk (new) & XEBEC.
Amdek 12" amber monitor with cherry keyboard in
enclosure. CP/M 2.2, FRIDAY! + users disk #21 utilities. $2295 .. Verbatim Datalife Diskettes 8" SS/SD$25/box, 8" DSIDD-$34/Box. Wade Noxon, Players
Computer Systems, 10014 Rodney Parham Road,
Little Rock, AR 72207. (501) 225-3908.
Ferguson 256K RAM Board for Xerox 820-11 BBI.
Assembled, tested and burned in. Personally
checked out by Jim Ferguson. Asking $220 OBO,
Tom Coyle, 1848 Roseglen Avenue, San Pedro, CA
90731. (213) 616-5876 or (213) 831-0083.
Disk Service Manual, disk drive tutorial, printer &
plotter manual, copier manual, computer phreaking!! Much more! FREE information. Consumertronics Co., Attn: Computers, 2011 Crescent,
Alamogordo, NM 88310.
HP 3000 Users: Vitamin Kay is a terminal emulator
which will run VPLUS applications using your Kaypro (any model). Supports all features of our MuNet
product plus block mode and simplified upload/
download. Only $100. Line drawing set EPROM is
$25. MuNet customers send your master disk for full
credit towards purchase of Vitamin Kay. IBM PC
version available soon. Write for details. Attn: John
Beckett, Computer Service Dept., Southern College, Box 370, Collegedale, TN 37315.
Simple Simple Simple-Here'S a data file simple
enough to be truly useful for general notes, receipts,
daily reminders, schedules or almost any information you need at your finger tips. Bigger and better'n
a 3 x 5 card. Full screen editing. No menus, no complicated formats. Just two words right from the system prompt tells the computer what you want, and
there it is on the screen! Change it, re-arrange it or
print it. Quick and easy. It's the simplest data file in
town! Diskette and manual only $34.95 plus $2 S &
H. Calif. add 6% tax. CP/M-80 only. Specify computer disk format. Many CP/M-80 formats available.
VISA/MC OK. MYSOFT COMPUTER SOFTWARE,
P. O. Box 417, Arroyo Grande, CA 93420. (805) 4813992 or (805) 481-5687.
Data Analysis, Statistics, Matrix Algebra. Antana is
a package of programs for statistical examination of
data and for general matrix algebra. There are several modules that work together to manipulate and edit data and to perform univariate and multivariate
analyses including multiple regression, polynomial
regression, box plots, t-tests, rand q mode factor
analysis, non-metric multidimensional scaling,
cluster analysis, discriminant functions and others.
Matrix programs include matrix divide, matrix invert, spectral decomposition of general real matrix,
singular value decomposition. Several graphics utilities are provided with source in C and Pascal so that
they can be customized for your terminal or printer.
This package was written to be modular, simple,
and to extract as much power as possible from microcomputers (e.g. non-metric scaling will handle 40
objects on a Kaypro II). We use it for both university
teaching and for research. Available for CP/M-80 in
several 5.25" formats and for MS-DOS, the price is
$200, manual only $25 (refundable with purchase.)
Dundee Software, 1080 Cypress Road, Bosque
Farms, NM 87068. Phone 505-869-3595 evenings
and weekends.

80

Xerox 820-1 Stuff: completely populated working
board purchased new from Xerox but never used or
tested; new blank PC board, ROMs, schematics &
data from B.G. Micro; new keyboard & case never
used; Xerox AC cable plus drive cable for two 5.25";
Xerox software development manual plus Xerox
troubleshooting manual for 820-1 & II. Everything
for $260 shipped. Steve Scriba, Box 399, FPO Seattle,
98761.
Xerox 820-1 with power supply, 12" monitor, cherry
keyboard, Seimens FDD-200 115V 8" drive including power supply and diskettes. Comes with CP/M
and documentation. No case. Duane Wilson (714)
796-1518.24715 Lawton Avenue, Lorna Linda, CA
92354.
Keyboards for Computer Builders-83 keys, full
ASCII; upper/lower case, all control characters, numeric pad, CAPS-LOCK, REPEAT, self test! Brand
new, hundreds sold already to builders of Apples,
Big Boards, Xerox 820s. Parallel output, positive TTL
logic, strobe. Uses only 106mA of +5 volts. Custom
case available. 90 day warranty unmodified. Keyboard $35. Documentation (21 pgs.)/cable package
$5. Spare custom CPU /ROM $4. UPS included. Call/
SASE for detailed spec sheet. Electrovalue Industrial Inc., Box 376-MC, Morris Plains, NJ 07950. (201),
267-1117.
Xerox 820-11, Dual 8" Disk Drives. Diablo 630 Printer. Many Extras. $3700/0ffer. (304) 725-6122.
SUPERB MAILING LIST PROGRAM stores and
manages names and addresses that can be revised at
any time. Its size is limited only by the disk storage
available. The address labels may be code selected
and printed in five different formats on your computer paper or on label rolls. In addition to the name
and address fields there are four additional fields in
each record for telephone number, date, and two
amount fields if desired. At any time the entire roster
may be printed out. For CP/M 2.2 based systems
with two disk drives and printer capable of 132 columns for maximum usage. Terminal installation
program module included. Supplied on 8" SSSD,
5.25" Kaypro and many others (please write). Special introductory offer by ABLE DATA SOFTWARE
INC. PO Box 86923, StationC, North Vancouver, BC
V7L 4P6. Only USA $19.95 postpaid check or moneyorder.
Keyboards for Computer Builders 83 keys, full ASCII, upper/lower case, all control characters, numeric pad, CAPS-LOCK, Repeat, self test! Brand new,
hundreds sold already to builders of Apples, BBs,
Xerox 820s. Parallel output, positive TTL logic,
strobe. Uses only 106ma of +5V. Custom case available. 90 day warranty unmodified. Keyboard $35.
Documentation (21 pages)/cable package $5. Spare
custom CPU/ROM $4. UPS included. Call/SASE for
detailed spec sheet. Electrovalue Industrial, Inc.,
Box 376-MC, Morris Plains, NJ 07950. (201) 2671117.
BBI, All Options, two 8" Siemans FD-100s, Hall Effect keyboard, 12" green screen "Le Monitor" monitor, several user disks. BBI main clock out. $200. 808733-7855, 1263 Hudson Circle, Honolulu, HI 96819.
Information wanted on the MicroPro '110 Master'
interface board or similar and hardware, connections, etc. to interface a Qume Q30 Daisy Wheel
printer to the Big Board using WordStar. The printer
uses an interface similar to Diablo Hy-Type 11 1300
Series and NEC Spinwriter 55000 (I believe) and
uses a 24 bit parallel interface. Please write Ray
Evans, P.O. Box 36, Iluka, N.S.W. 2460 Australia.

Bulletin Board Software for the Kaypro 2, 4, or 10.
K-NET84 (tm) is a full featured message exchange
system under modem control. Allows for both ASCII and binary file transfers between two computers
over modem using XMODEM protocol. SECURE.
Easy to install, use, and maintain. Comes with 50+
page user manual, telephone support from the author. For more information call or write: DATACOM
SYSTEMS, INC., P. O. Box 115, Blue Ridge, GA
30513. (404) 632-2676. Kaypro is a (tm) of The Kaypro
Corp.
Tandon Disk Drive Latch for Kaypro II, IV. Latch
broken on your Tandon 100-1 or 100-2 5" disk drive?
Replace the weak plastic latch pivot block with our
improved aluminum piece machined from solid bar
stock. Aluminum pivot block, 2 stainless steel pivot
pins and instructions for only $15. Add 6% tax in
California. Elmo Enterprises, 9955 Wild Grape
Drive, San Diego, California 92131. (619) 271-1225.
Teeny-Weeny Basic-A 1K BASIC interpreter/editor. How much power can fit into 1K? A LOT! Full
integer arithmetic functions with 26 variables, random function, single-dimension array, parenthesis
nesting, string variable 110, abbreviated commands,
multiple statement lines, error handling. PRINT,
INPUT, IF, GOTO, LET, RUN, LIST, SYSTEM. External LOAD and SAVE. Full documentation. Sample programs show TWB's power. Source available.
Convinced? Try it! Just $17.50 postpaid (Texas add
5.25%). Specify 8" SSSD or Kaypro SSDD. Glenn
McEowen, 3801 Glenmont Dr., Fort Worth, TX
76133.

Public Domain UG Software Rental: CP/M UG Vol
1-92 on 46 8" Flippies $45, SIG/M UG Vol 1-209 on
1008" Flippies, $99.50, PICONET Vol 1-34 on 17 8"
Flippies $25, Pascal-Z UG Vol 1-25 13 8" Flippies
$25, UG Games 20 Vols of the best ones $25, UG
Modern 20 Vols of the best $25, UG Business 20 Vols
of the best $25, UG Utilities 10 Vols of the best $25.
Rental is for 7 days after receipt with 3 more days
grace for return. Credit cards accepted (preferred).
5" disk formats, 170 available. Downloading-disk
format conversions. Call. User Group Software Automatic Update Service, $7.50 per 2 volume set
PP.619-727-1015 24 hrs. 619-941-0925 info. 9-5. P.J.'s
National Public Domain Software Center, 1533 Avohill, Vista, CA 92083.
HPLOT is a plotter emulation program that works
with your dot-addressable printer to give quality
graphic images without special hardware or programming. Its syntax is compatible with HPGL, the
powerful graphics language used by Hewlett-Packard plotters. HPLOT provides full plotter emulation:
plot absolute or relative, with user-defined scaling;
create labels using characters of any size, slant, or
direction; exercise control of windowing, line types
and symbol mode. HPLOT is faster than comparable
products because it uses pointer indirection rather
than array references. No minimum memory requirement-it automatically uses disk buffers when
necessary. Plots are saved on disk in minimum
space, and may be used as the starting point for new
images. HPLOT also boasts the ability to create images in sizes from 11 by 14 to 3.5 by 48 inches. You
may use any language or text editor to create an input file for HPLOT. HPLOT is currently available on
8" SSSD for ZSO-based CP/M 2.2 systems with Okidata printers; versions for Epson/Gemini-compatible printers are under development, as is 5.25" distribution (please write). $49.95 postpaid check or
money order. Ordinate Solutions, 614 Beech St.,
Oberlin, OH 44074.

Micro Cornucopia, Number 23, April-May 1985

Ready To Use Files
By Phil Emery

Bobcat3 Disk Catalog Program. Finds lost computer
files. Allows individual file titles, hard disks, user
numbers/sub-directories. Wildcard finds. Seven report formats. 8" SSSD, popular 51/4 CP/M and PC/
MS-DOS. $49.95 US$ plus $3.00 P&H. Visa, Mastercard, or check. R&L MicroServices Inc., Box 15955,
Stn F, Ottawa, ON, K2C 3S8 (613) 225-7904.
CBASIC Users Group-newsletter with membership, $18/yr (US & Canada), $28 other. For info send
SASE to BabellCBNews c/o Ric Allan, PO Box 40690,
Cincinnati, Ohio 45240-0690. Sample and back issues available for $2.
8" Drive Cleaning Kits-12 cleaning disks and carrier jacket made by Datalife, regular price, $29.95.
Close out price just $6.00 each plus $2.00 postage.
Limit 2. P.O. Software, 1533 Avohill, Vista, CA
92083.
Big Board II, power supply, 28" Shugart disk drives
in heavy duty steel case. 15" monitor and large W/P
keyboard. $800. Call John Wytsma (207) 725-4209.
Used Heavy Duty Shugart 800-2 single drives in aluminum cabinets with power one supply, lighted
switch, surge protection. BB-I will fit case. $75. plus
shipping. (4) Recycled SSSD 8" disks $.50 each verified. Minimum 20. Mail orders only. Write D. Ayres,
308 Maple Street, Ypsilanti, MI 48197. Trades possible.
Keytronic keyboards. New. ASCII encoded $10
each. Two for $18. 30011200 autodial autoanswer
Hayes compatible smartmodem. $199. B. W. Systems, Box 9791, Austin, TX 78766. (512) 255-8350 .

There are many products now on the
market which claim to handle files, or to
even create file handlers.
The packages which create file handlers ask you to set up the entry screen
and the output forms, and then they create the programs with which you enter
and access information.
Other packages, like dCEASEd II and
OffBASE, let you write the code yourself, from scratch if you wish. These
packages require more work, but they
are much more flexible in the hands of an
expert, and the routines create the programs automatically.
No matter which way you create the
file handler, though, there is still a problem. You have no file. When you call to
tell them that they forgot to include the
file with your file handler, they kind of
snicker understandingly (so you know
who they'll be talking about over coffee).
Actually, it's they who have a problem. The sudden demand for file handlers like dCEASEd II has created a tre-

MicroC
Filing Clerk

mendous shortage of files-files of all
types.
In the early days, there were still
enough files around for people to pretty
much have their choice. Some of the
more popular included: flat files, pillar
files, square files, cant files (as opposed
to won't files), and equaling files.
Unfortunately, all files weren't created
equal, and soon companies found themselves going through the round files
looking for something that might satisfy
an abrasive customer.
The Cutting Edge Of Technology
Finally, though, one company, Fashion Pate, recognized the problem and set
up a major manufacturing facility. Fashion Pate was a natural to take on this project because it was well known for its incredibly hard software and its rigid
customer support.

•••

•••

DriveLiner
Check Floppy Drive Alignment
No tools or interfacing needed
SSSD Runs on All
CP/M* 22 or 3.1
8" Systems
Digital Diagnostic Disk&lncluded
$65 Check or MO Ppd
Other formats special order
Chandler Software
273 West Shore Dr.
Marblehead, MA 01945
(617) 631-4685
-TM Digital Researd'l Inc
&TM Oysan Corporation

Employees hammer out files in Fashion Pate's new production site. An example of ever changing
technology, this facility is a converted IC design lab. Japanese businessmen are already converting
their IC facilities in order to keep up with the U.s;

Micro Cornucopia, Number 23, April-May 1985

81

The Culture ( j
o
Confusing at Catastrophy Manor

e

Ams, it has been yet another sleepless month here at Castastrophy Manor.
MyfaithfulZSO, Beulah, began spitting out 'not ready' errors two weeks ago and
my in-house technician didn't discover until yesterday that I had not put a disk
in the drive.
During that time I was forced to use ZimblefieldJ. Rothschild, the Cray 1 that
nonnally monitors the odor level from the kitty box. What a frustrating machine!
I certainly wish someone would enlighten the Cray people on how to design a
proper keyboard. The left shift key is positioned at least a sixteenth of an inch
from the standard position on the Selectric! I call their customer service
department to complain but it doesn't do any good. This is the ftfth Craythey've
given me, and they still haven't gotten the left shift right

~

Starting At

$695.00
CO-PROCESSING
Th"e most cost effective way for Z80
system owners to obtain 16/32 bit
processing power and software
compatibility is via the HSC CO-16
Attached Resource Processor.
CO-16 is compatible with any Z80
system running CPM 2.2 or CPM 3.
A few examples include:
• KAYPRO 2/4/10· TRS 2/3/12/16
• AMPRO LITTLE BOARD
• HEATH 89. SUPERBRAIN
• XEROX 820. TELEVIDEO 802/803
• MORROW • EPSON QX-10
• LOBO· OSBORNE 1/EXEC
• CROMEMCO • Plus many more

Worthless Software
Now that my latest novel, 'Stumblefeet,' is completed, I have refocused my
attention on eating, and insulting anyone who markets a product I have not
already recommended in my column, along with those who program in anything
other than Pascal or Modula-2.
This month I received a progmm for the IBM PC that guamntees to find
enough tax loopholes to reduce your income tax to nothing. Evety year. How
ludicrous. I have never seen that in my column - I even went back and looked
(plus, I paid taxes last year, so I must not have reviewed it) To make things even
more ridiculous, it is written in C. And they expect me to open the box!? Come
now fellows, how much effort do you expect me to make?

CO-16
Every CO-16 is delivered with
• 16/32 bit micro processor • 16 bit
Operating System • 256 Kilo RAM
• Z80 interface • 16 bit RAM disk
driver • CPM80 2.2 RAM disk driver
• CPM 2.2 or CPM 3 compatibility
• sources with tools • hardware
diagrams. board level or case with
power supply.
CO-1686

High Technology
I have been saying for years that the only way for a computer company to be
successful is to design a Timex-Sinclair compatible S-100 board. I must have
said that to at least 50 people. Nobody listened. But finally, Say Co. Computers
came out with exactly what I have been waiting for, and it is truly a tribute to
high technology. It can add 200 numbers (some of them large) in under a
second, it has a real time display, and it is water resistant
I am considering using one here at Catastrophy Manor to replace the Cmys if
something isn't done about that appalling keyboard.

The only Z80 16 bit co-processor
includes • INTEL 8086 • 6Mhz no
wait states • MSDOS 2.11 • IBM
BIOS emulator • Memory expansion
to 768K • 8087 math co-processor
• 3-channel Real Time Clock • Runs
many IBM PC applications • Shares
hard disk space with CPM80 • PC
diskette compatilibility on many
systems • CPM86 • Concurrent
CPM is coming.

Free Poursmelle Software
A while back I was thumbing through the truckloads of mail, free copies of
ButpO Pascal, and free Honkubro hardware that all us famous oveIWeight
computer columnists get, when I found a request for another incredible Modula2 Star Trek game. Since I don't want to write another Star Trek game, and I don't
really pay any attention to my mail anyway, I decided to write a Pascal-to-Lisp
translator.
I have been laboring over it for several months, and it is finally done. I was
planning on selling it for $99.95 through The Softhead Foolworks, but due to a
momentaty afiliction of divine benevolence, I have decided to publish it here in
the hallowed pages of OVERBITE.
This translator avoids all the usual problems of converting inflX to preflX
notation and of moving from the domain of a sequential language to that of a
procedural1anguage. In fact, my translator is vety unusual because its output
precisely mimics the original Pascal (the process is known as LISP Sync).
My son Smartalex doesn't think that anyone WANTS to convert Pascal to Lisp
(but then he thinks that the 68000 is more powerful than the 6502).

CO-1668
The only Z80 16/32 bit co-processor
includes • MOTOROLA 68000
microprocessor • 6 Mhzno wait
states • CPM68K • Full "C" compiler with UNIX V7 library and floats
• Memory expansion to 1.25 million
bytes • NS16081 math co-processor
• Real Time Clock • Complete software development environment
• 100% file compatible with CPM80
• OS9/68 UNIX look alike coming
in February.
Dealer, Distributorand OEM's invited

By Verry Poursmelle
(As compiled By Laine Stump)

82

Hallock Systems Company, Inc.
267 North Main Street
Herkimer, N.Y. 13350
(315) 866-7125

Micro Cornucopia, Number 23, April-May 1985

Tidbits (UChoice morsels, as of food or gossip")
By Gary Entsminger

P art of the daily routine at Micro C is
sifting through a lot of press releases. By
reading between the lines we get hints of
what's going on in the computer industry. Sometimes what's going on is pretty
funny, and, obviously, we don't believe
everything we read (ALL those products
just can't be the latest and greatest!), but
we do from time to time encounter information we think you might find interesting.
You're already getting some of that info via Dave's editorial, the Technical
Tips, letters to the editor, and reviews.
So "Tidbits" will be another way we pass
information along to you. As usual,
please let us know what you're doing,
and how we're doing.
Geneva PX-8 Gets Turbo
Borland International and Epson Corporation have announced the signing of
a joint marketing agreement giving Epson the right to distribute all Epson-compatible Borland software products.
This means Borland's Turbo Pascal Series will be distributed and supported by
Epson for their Geneva PX-8 portable
and their QX-16 (IBM PC-compatible)
microcomputers. The Turbo Series includes Turbo Pascal, Turbo Toolbox, Turbo Tutor, and Turbo Graphix Toolbox.
Epson also plans ~o support and distribute other Borland software products this
year.
Imagine: a lap computer that provides
a Turbo Pascal development environment. This could be a giant step for the
little guys.
Kaypro And Xerox Surplus
Some good buys for your Kaypro from
Sabet Electronics:
9" Green Monitors ............. $45.00
Keyboards ..................... $45.00
Wiring Harness ................. $4.00
81 Series Roms ................. $10.00
K2 Motherboard, w/sockets ..... $27.50
K10 Motherboard, w/sockets .... $37.50
Sabet also has a good deal on a Xerox
820-1 single board computer. Z80 CPU,
64K RAM, 80 x 24 video display, floppy
disk cont., I/O ports, runs CP/M* 2.2!
Fully tested ...................... $65.

Micro C Staff
Future Tense Editor

Sabet Electronics
13650 Floyd Rd. Ste. 104
Dallas TX 75243
214-783-4950
More Xerox
Xerox Manufacturing Outlet is advertising 820 boards (used as-is) for $50, and
low profile keyboards for the 820-11 for
$25.
These sound like good deals, but we
haven't been able to reach the order department by phone. Bruce spent an afternoon dialing and listening to a busy
signal. Hmmm.
If you get through, let us know.
214-960-3367
1301 Ridgeview Dr. MS 503
Lewisville TX 75067
Z System (ZCPR3 + ZRDOS)
Echelon, Inc. has announced high
performance 8-bit sets of software called
the Z System. Z is operating-system
downward compatible with CP/M-80,
and works with existing Zilog Z80 and
planned Z800 microprocessors. Z comes
in three versions. The Z800 version permits easy 16-bit MS-DOS program migration to 8-bit Z.
Z was produced by combining ZCPR3
and ZRDOS, and replaces CP/M while
adding several significant enhancements: auto-login of changed disks, file
copy archiving, password write-protected files, and more.
Retail prices start at $39, but generous
discounts are available for volume users,
original equipment manufacturers, and
value-added resellers.
For more info contact:
Echelon, Inc.
101 First Street
Los Altos CA 94022
415-948-3820
MSX
It looks like the Japanese MSX is about
to descend on the American market.
Over a dozen MSX computers are now
on the market with prices generally between $200 and $400. Most models have
built-in radio frequency modulators and
composite video output, which allows

Micro Cornucopia, Number 23, April-May 1985

the use of an ordinary television set for
display. And MSX-standard computers
share common interfaces. Programs and
hardware designed for one MSX should
be compatible with all MSX.
MSX has been big for a while in Japan
(half the computers there are MSX)
where it's been primarily used to generate sound effects, and for BASIC programming and game-playing.
If you're interested in exploring this
new arena, you might check out the
Yamaha YIS503, with 2 slots and 32K
bytes of RAM for around $270, or the Casio stripped-down model which looks
like a keyboard, plugs into a television
set, and retails for around $80.
Canon, Sanyo, Pioneer, Hitachi, Fujitsu, and Mitsubishi also sell MSX computers. Looks like everybody'S getting
into the act.
Happy playing.
ACNAP2 Electronic Circuit Analysis
Program
BV Engineering has upgraded its popular ACNAP1 program which is now
available for 121 different computer systems running CP/M-80 and MS-DOS.
ACNAP Ver. 2 is a general purpose AC
Network Analysis Program which analyzes active and passive electronic circuits consisting of resistors, capacitors,
inductors, transistors, and operational
amplifiers. Circuits up to 200 components and 30 nodes may be quickly analyzed in a single pass and larger circuits
in multiple passes.
ACNAP contains a built-in full feature
circuit editor which supports addition,
deletion, and changes of components,
tolerances, and node connections. Cost
is $72.95.
For more info contact:
BV Engineering.
2200 Business Way, Suite 207
Riverside CA 92519
714-781-0252

•••

83

The Epson PX-8, CP 1M In Your Lap
Review By Gary Entsminger

Epson's PX-8 Geneva is the most recent addition to the "Lap Computer"
market. Although more expensive than
Radio Shack's and NEC's portables, it
does more, and runs CP/M.
The $995 retail price includes computer, standard keyboard, microcassette,
and display all mounted in an 8 by 11
inch durable-looking plastic box. It
weighs 5 pounds, has 64K RAM, and
four interchangeable 32K ROMs. The
ROMs contain CP/M, MBASIC, WordStar, CalcStar, a scheduler program, and
a communications program.
Unfortunately, a modem isn't included. It is, however, available as an option,
as are the 3 1h-inch disk drive and 60K or
120K memory expansion.
The PX-8 runs CP/M 2.2 on a lowpower CMOS Z80 with a clock rate of
2.45 MHz. It's equipped with 64K of
main memory which is always on, even
when the PX-8 is turned off. A maximum
of 24K (of the 64K) can be set up as a
RAM disk.
CP /M resides in 32K of ROM. It's
bank-switched over the lower 32K of
RAM when the PX-8 is turned on. Other
ROM based software like WordStar and
BASIC get loaded (slowly) into lower
RAM after CP/M is switched out.
Most simple CP/M utilities such as
DDT and UNERA will run on the PX-8,
and theoretically, so will-any CP/M software compatible with a Soroc IQ-120 terminal (the PX-8's). (Borland and Epson
have recently announced that they will
jointly distribute the Turbo Series-Turbo Pascal, Toolbox, Tutor, and Graphix
Toolbox.)
Epson says that larger and more complex CP/M programs will run, but with
minor problems. (One of the problems is
the limitation on program area whe~ the
RAM disk is being used.)
The liquid crystal display (LCD) features 5 by 7 dot matrix characters in an 8
. line by 80 character format.
The PX-8 is powered by a nickel-cadmium battery which can run about 15
hours on a full charge. The battery. recharges whenever the system is plugged
into the wall transformer.
The system is also equipped with a
real-time clock which can be used to turn
the system on and run programs.
Two serial 110 ports are located on the

84

Micro C Staff

back (one for modem, the other for printer).
WordSlar
Portable WordStaris a subset of WordStar, and can edit about 10 pages at a
time, which makes the PX-8 an adequate
portable word processing machine.
Although add-on memory would permit a complete WordS tar (some features
like hyphen-help and paragraph tabs are
omitted in Portable), Micropro chose to
go with a subset to insure portability.
Portable WordS tar works on other lap
computers as well as the PX-8.
This version of WordS tar uses the
same commands as regular WordStar. It
offers an opening menu, and performs
more or less like its big sister. Since Micropro correctly assumed that anyone
using a lap computer would likely be
transferring files to bigger machines, it
'added a transmit command to WS's
opening menu.
Unfortunately, there are a few incon-

veniences with Portable WordS tar, but
they can usually be circumvented.
Files can't be saved directly to microcassette, but can be copied to microcassette using WS's Copy command. A file
stored on microcassette can't be opened
by WS until it's copied into RAM.
CP/M
Only a subset of CP/M was included in
the CP/M ROM (PIP, STAT, SUBMIT,
and XSUB). Some familiar utilities like
DDT and ASM are not included. However, they can be loaded in from disk.
The optional disk drive package includes
FORMAT, DISKCOPY, ED, DDT, ASM,
LOAD, and DUMP.
In order to test CP/M system calls I
wrote a little program to convert decimals into hexidecimals using 8080 mnemonics. Then, using a DDT-type utility
calledhexdump, I dumped the hex code
to screen. I used the hex code as data,
and poked it into a BASIC program on
the PX-8 which called the machine lan-

£pson PX-8 Geneva: 8-line by 80-character display, built-in microcassette, WordS tar, and CP/M.

Micro Cornucopia, Number 23, April-May 1985

guage subroutine. The program used
four CP/M system calls (Console Input,
Console Output, List Out Printer, and
Read Console Buffer), and worked without a hitch. (Editor's note: There
wouldn't have been room for a hitch if
he'd needed one.)
Papers
The documentation is plentiful, but
not well organized. For example, instructions indicate the RAM disk can be
configured from. 0 to 24K. However, if it
is too large, some application programs"
like BASIC, won't run. But in order to
find out why BASIC suddenly doesn't
work, you have to look in an entirely different part of the manual. In general"
though, if you search long enough,
you'll find the information you need; it
just takes patience.

Final Details
The LCD is a minus. It can be adjusted, but the angle of the display is critical.
If you want to read the characters on this,
screen you can't squirm.
Loading programs from ROM is slow,
and writing to or reading from micro cassette is slower. But once you get your
programs into the RAM disk (assuming
they fit), things pick up nicely. You
might also purchase the optional disk
drive so you could get around the problems of the RAM disk size and tape
speed altogether.

computer, but needs to work while traveling, and can make do with 10 or so pages. Ten pages, after all, isn't that small a
chunk.
The big selling point for this machine,
though, is CP/M, which means that this
little system can run much of the software that you are currently running on
your full size CP/M system. While the
rest of the herd strlves for IBM PC compatibility, this lap computer has
achieved both portability and CP/M
compatibility. And though the basic system has some limitations, the tradeoffs
seem reasonable.

Finally
I can recommend the PX-8 for someone needing truly portable word processing, BASIC, and CP/M utilities. The
PX-8 Geneva would be handy for a writer (like myself) who has access to a larger

•••

h for the height of
. . yQ.ur .craft... ~f~~ig~~~~;l:~~!
... As an idea craftsman, you use

Then, expand the outline to devel-

then manipulate them to dis. cover, refine, convey dynamiC
new thoughts.
. Now, the tool that can strengthen
your creative grasp is well within
:. your reach.
:-.: KAMASTM a revolutionary outline
. . processor from KAMASOFT·,
.:.. supports your thinking process
. . and keeps you in touch with your
ideas. That's because KAMAS is
designed to work the way your
mind works-naturally.
Begin by brainstorming. KAMAS
enables you to jot down ideas
~~~~~ ,~~":··;.ii;·;:.if~Uli:'!'" quickly, as you think of them. If
,.. :
. you want to elaborate, you can
add text with full screen editing.
Then develop your ideas using a
=~;;~~~iil~familiar outline format. Change
the structure as easily as you
change your mind. Move an idea
KAMAS, Z80, & CP/M are trademarks of KAMASOFT', Zilog, & Digital Research respectively.
and all attached text moves
, formerly Compusophic Systems.
with it.

opBy
the
specifics and
whenexpanding
you need
to.
collapsing
portions of the outline, you can
maintain an overview and literally
see how your ideas fit together.
And KAMAS is fast. Your ideas remain at your fingertips. KAMAS
can locate and retrieve by
keyword-even a misspelled
one-in less than a second per
topic file.
Use as much of the power as you
feel comfortable with. KAMAS is
menu-driven with over 100 on-line
help screens. But you can also
open the hood to find a high
performance programming
environment with the additional
horsepower you may need to
get the job done. An active user
community and the KAMAS
Report newsletter keep you in
touch with the latest KAMAS
applications.
Achieve a commanding vantage poi nt, ..

.

"

II~~~II~~~~~"'f":: your
mind
skilled
pair of
hands.
You like
takeahold
of concepts,

I

~

Get your hands on KAMAS now. Send $147 plus $4
for StH. Or call (503) 649·3765 for VISA or MasterCard orders. KAMAS is available for many Z80,
CP/M computers. Ask about your system.

KAMASOFT·
2525 SW 224th Ave., Dept, 111
Aloha, OR 97006

Micro Cornucopia, Number 23, April-May 1985

.. .with

K&MAI~
85

ADVERTISER'S INDEX

BACK ISSUES
$3.00 each

$5.00 each

US. CAN. MEX

Other Foreign

ISSUE NO.1 (8/81)
Power Supply
RAM Protection
Video Wiggle
~PFM.PRN

16 pages
ISSUE NO.2 (10/81)
Parallel Print Driver
Drive Motor Control
Shugart Jumpers
Program Storage Above PFM
~ PFM.PRN
16 pages
ISSUE NO.3 (12/81)
4 MHz Mods
Configuring Modem 7
Safer Formatter
Reverse Video Cursor
FORTHwords begins
16 pages
ISSUE NO.4 (2/82)
Keyboard Translation
More 4 MHz Mods
Modems, Lync, and SIOs
Undoing CP1M ERASE
Keyboard Encoder
20 pages

ISSUE NO.5 (4/82)
Word Processing
Two Great Spells
Two Text Editors
Double Density Review
Scribble, A Formatter
20 pages

ISSUE NO.6 (6/82)
BB I EPROM Programmer
Customize Your Chars
Double Density Update
Self, Loading ROM
Terminal in FORTH
24 pages

ISSUE NO.9 (12/82)
BB II EPROM Program
Relocating Your CPIM
Serial Print Driver
Big Board I Fixes
Bringing Up WordStar
Cheap RAM Disk
32 pages
ISSUE NO. 10 (2/83)
Saving a Flaky Disk
Hooking Wini to BB II
The Disk Inspector
JRT Fix
Serial Keyboard Interface
Pascal Procedures begins
36 pages
ISSUE NO. 11 (4/83)
BB I Expansions
BB II Details
Dyna, RAM Disk Review
Easier Reverse Video Cursor
PlannerCalc Review
KayPro Column begins
36 pages
ISSUE NO. 12 (6/83)
256K for BB I
Bringing Up BB II
dBase II
Look at WordStar
Double Sided Drives for BB I
Packet Radio
5MHz Mod for KayPro
40 pages
ISSUE NO. 13 (8/83)
CP1M Disk Directory
More 256K for BB I
Mini Front Panel
Cheap Fast Modem
Nevada Cobo) Review
BB I Printer Interface
KayPro Reverse Video Mod
44 pages

ISSUE NO.7 (8/82)
6 Reviews of C
Adding 6K of RAM
Viewing 50 Hz
On Your Own begins
24 pages

ISSUE NO. 14 (10/83)
BB II Installation
The P-CO.

.0

~~

CO

O~
~(h

<0

AU)

1-1-

0 0

a:..J
-

I-

t=
Z


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:11:30-08:00
Modify Date                     : 2011:06:14 10:27:55-07:00
Metadata Date                   : 2011:06:14 10:27:55-07:00
Producer                        : Adobe Acrobat 9.43 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:d6a2ca9b-b06e-4cf6-9bea-40495f81699e
Instance ID                     : uuid:4d8d68b8-8638-4092-a1bf-76fd5f16c03f
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 91
EXIF Metadata provided by EXIF.tools

Navigation menu