Micro_Cornucopia_#24_Jun85 Micro Cornucopia #24 Jun85

Micro_Cornucopia_#24_Jun85 Micro_Cornucopia_%2324_Jun85

User Manual: Micro_Cornucopia_#24_Jun85

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

DownloadMicro_Cornucopia_#24_Jun85 Micro Cornucopia #24 Jun85
Open PDF In BrowserView PDF
$3.00

No. 24

June-July 1985 .

TABLE OF CONTENTS
C'ing Into Turbo Pascal .......................................
Soldering: The First Steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Eight Inch Drives On The Kaypro ..............................
Kaypro BIOS Patch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Alternative Power Supply For The Kaypro . . . . . . . . . . . . . . . . . . . . . ..
48 Lines On A BBI ........ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Adding An 8" SSSD Drive To A Morrow MD-2 ...................
Review: The Ztime-I .......................................... .
BDOS Vectors (Mucking Around Inside CP 1M) ................. .
The Pascal Runoff

4
36
38
40
42
44
50
55
62
77

Regular Features

The S-100 Bus
In The Public Domain... ..
C'ing Clearly ............ .
The Xerox 820 Column ... .
The Slicer Column ........
The KayproColumn ..... .
Pascal Procedures ........ .
FORTH words
On Your Own ........... .

9
13
16
19
24
33
57
61
68

Technical Tips ........... .
Culture Corner. . . . . . . . . . ..

70
76

Future Tense
Tidbits. . . . . . . . . . . . . . . .. ..
68000 Vrs. 80X86 .. . . . . . ...
MSX In The USA . . . . . . . ..
The Last Page ............

79
83
84
88

NEW LOWER PRICES!

NOW IN "UNKIT"* FORM TOO!

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

$795 ASSEMBLED & TESTED

$545 "UNKIT"*

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

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

• 64K Dynamic RAM + 4K Static CRT RAM +
24K E(E)PROM or Static RAM

$245 PC BOARD WITH 16 PARTS

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

"Big Board II" has three memory banks. The first memory bank has eight 4164 DRAMs
that provide 60K of user space and 4K of monitor space. The second memory bank has
two 2Kxa SRAMs for the memory-mapped CRT display and space for six 2732As, 2Kxa
static RAMs, or pin-compatible EEPROMS. The third memory bank is for RAM or ROM
added to the board via the STD bus. Whether bought as a bare board, an "unkit"*, or
assembled and tested, it comes with a 2732 EPROM containing Russell Smith's superb
Monitor.

With a Z8D-A SIO/O and a ZaD-A CTC as a baud-rate generator, the new Ferguson
computer has two full RS232-C ports. It autobauds on both.

• Multiple-Density Controller for
SS/DS Floppy Disks

The new Cal-Tex single-board computer has one parallel port for an ASCII keyboard
and four others for user-defined 1/0.

The new Cal-Tex single-board computer has a multiple-density disk controller. It can
use 1793 or aa77 controller chips since it generates the side signal with TTL parts. The
board has two connectors for disk signals, one with 34 pins for S.2S" drives, the other
with SO pins for a" drives.

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

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

• DMA

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

CAL·TEX COMPUTERS, INC.
780 E. TRIMBLE ROAD #504· SAN JOSE. CA 95131 • (408) 942·1424

• Two Synchronous/Asynchronous Serial Ports

• A Parallel Keyboard Port + Four Other Parallel
Ports for User I/O

• Two Z80-A CTCs = Eight Programmable Counters/Timers
The new Ferg uson computer has two ZaD-A CTCs. One is used to clock data into and
out of the ZaO-A SIOIO, while the other is for systems and applications use.

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

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

* The "unkit" is a fully-socketed, wave-soldered "Big Board "". It requires
NO soldering. All an "un kit" purchaser must do is carefully insert the
prime ICs we supply in the proper sockets and systematically proceed to
bring up and test the board.
"CP/M is a registered trademark of Digital Research.

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

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

IICIO COINUCOPII
June-July 1985

The Micro Technical Journal

No. 24

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

On Your
Mark!

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

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 and additional entries. 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

A Contest To Start All Contests
Usually people announce contests to
end all contests. This one is a beginning.
We've been sitting around trying to decide how best to do it and, meantime,
nothing has happened.
We kicked around the idea of leaving it
open. You know, anyone can use any
language, create any length program, on
any subject.
"Too general," was the reaction from
all the reactionaries in the office. (What
else are they good for?)
We kicked around the idea of specifying the language, the version of the language, the subject, the program length,
and the color of the programmer's eyes.
"Too specific," was the reaction (from
you-know-who).
It was immediately obvious that we
were going to have to compromise on
this contest (or get rid of the reactionaries). So we're specifying the language
(Turbo Pascal), but not the version.
We've sort of narrowed program length,
but not the subject. As for eye color,
we've chosen "bleery red streaks" so all
inveterate hackers will qualify easily.
Check out the contest article in this issue. (Dr. Dobb's just held a contest and
had four entries. Let's see what we can
do.)
10,000 Subscribers
I remember when Lifelines magazine
announced they had 5,000 subscribers. I
was green with envy because Lifelines
and Micro C started about the same time.
We had around 500 circulation at that
time (5,000 seemed an impossible
dream), and I was still working at Tektronix. I figured that about the time we
hit 1,000 I could quit Tek and cut my
workday back to 20 hours.

When we printed labels for the AprilMay issue this year we had over 9500
subscribers, and we celebrated the
10,000 mark in mid-April. We hit 5,000
almost exactly a year ago. (Now, if you'd
all come to SOG IV ... )
Speaking Of SOG IV
Don't forget to send in your SOG registration form. Let us know if you're
coming (or at least maybe coming), even
if you're not planning on rafting, dining,
staying in the dorms, or feeding the
chipmunks. (The dorm has been full
since mid April, but you'll find plenty of
space in local motels and camp
grounds.)
There is an Experimental Aircraft Association meet every year. During August, every home-built, antique, and
non-antique private aircraft that isn't
cruelly tethered, takes its family and flies
to Oshkosh.
The airplanes park on a grass field next
to the airstrip, and the families camp for
a week under the wings of their craft (everyone wanders around meeting everyone else).
I'd like to make the SOG into a similar
event. All I need to do is find an appropriate field and equip it with basic necessities, and we could make SOG a real experience (not that a lot of families don't
already camp out when they come to the
SOG).
In fact, the EAA brags that it has the
largest collection of porta-potties in one
place, at one time, in the world. They
might even have 5,000 of them. (Of
course, 5,000 potties seems like an impossible dream for Micro C, but ... )
32032 Support
The National 32032 and 32016 chips
have been languishing in the shadow of
the 8088/8086 and the 68000. Well,
Trevor Marshall, well known among the
Micro C crowd for his BBI winchester designs, has spent the last year working on
a 32032 based co-processor board.
Trevor not only designed the system
(with the help of two friends), but he has
also written two articles (hardware de(continued on page 72)

LITTIRS
Rebuttal For Kamas
I write to take friendly but spirited exception to Jack Rodenhi's lukewarm review of Kamas (by Kamasoft, formerly
Compusophic Systems). My disagreement is mostly on the degree of usefulness of an outline maker. In the few
months I've had Kamas, it's been a huge
help in getting me started on writing
projects.
To illustrate how I've integrated Kamas into my own writing process, here's
my list of steps:
1. Make my outline with Kamas.
2. Enter as much text as I want into
text leaves.
3. Rearrange, fix stuff, and do general
editing.
4. Output a WordStar compatible file
to disk.
5. Call up WordStar for correcting and
final editing.
6. Call up The Word + for checking
spelling.and typos.
7. Switch back to WordStar and print
the thing out!
One other thing: Kamas is the only
outline making program available right
now for the CP/M-80 Kaypro. It's not as
if we had a choice. It's either Kamas for
my Kaypro II or nothing.
Lucian W. Minor
Box 1101
Wellfleet MA 02667

dBASE Advice
I read Issue 22 and wanted to comment on your problems with using
dBASE II to print your mailing labels. I
have been programming in dBASE for
about 21/2 years, but the version numbers you mentioned were new to me.
Are they Kaypro dBASE version numbers? CP/M-80 dBASE II is currently up
to version 2.41. Version 2.3B was full of
bugs. 2.40 was a good improvement,
and 2.41 added a little more. If you're not
using at least 2.40, I'd suggest you get it.
It could be your problem. I wouldn't use
2.313 for anything!
I am about 90 percent finished re-writing The Master Check Register program.
(Version 2.0 will ·be called "Turbo
Cheques.") I started programming in
Turbo Pascal last summer, and saw the
advantages of switching over from

2

dBASE to Turbo P. I decided to re-write
the entire program in Turbo Pascal. The
speed improvement is unbelievable! In
addition, there are many things Turbo P
has that dBASE II lacks: Procedures and
Functions, no 32 field limit, no 64 memory variable limit, etc. I feel free to be more
creative in my programming designs.
The 8-bit CP/M Compiler from WordTech is a flop! It is far too slow to compile
and link, and the finished application
runs SLOWER than in dBASE II. It is
worth the effort to learn to program in
Turbo Pascal to do 8-bit CP/M programming. The speed improvements over
dBASE II are enough by themselves.
And remember, Turbo P only adds 8K to
your total applications file size! (For the
RunTime library.)
Ralph E. Freshour
7 Silver Eagle Road
Rolling Hills Estates CA 90274

Editor's note:
Thanks for the comments, Ralph. The version numbers were errors (mine). I am using
2.3b and 2040. I know that 2.3b is buggy, but
it leaves a little more space for memory variables so some of my programs run under it that
won't run under 2040. For instance, adding a
record to a large indexed file is much faster
under 2 .37 than under 2 040. Also, my copy of
2040 won't recognize the decimal point in the
picture clauses, so the gals prefer entering receipts under 2.37.
We're currently futzing over all our
dBASE routines to Turbo. I'll keep everyone
posted on how it works out.

Composite Video Update
Last week one of the local dealers sent
me to the Kaypro service clinic. You just
can't stay on top of things in this biz.
Since submitting my "Composite Video" article (see Issue #22, page 50), I
have found that you can't use that approach on the 10. Now I've delved into
the 2-84/4-84 boards and the new "universal" board and found the same video
circuits as the 10. The graphics are nice,
but the hi-res method of achieving them
nukes my cheap video approach. However, my board does work on Xerox 820s.
Richard Bugg
2703 N.W. 20th
Oklahoma City OK 73107

Kaypro Goes Arabic
This is in response to a question in Issue 22 about Arabic capabilities for the
Kaypro. Zadian Research has an Arabic
conversion package which runs on the
Kaypro 2, 2X, 4, and 10. The package includes software to convert CP /M, WordStar, CalcStar, and other programs to
Arabic. It also comes with a set of programs for Arabic text processing and
printing and full documentation.
Zadian Research has also developed
an arabization kit for the Prowriter dotmatrix printer. It allows the Prowriter to
print Arabic without losing any of its
English capabilities. Interspersed Arabic
and English and enlarged Arabic are also
supported.
The bilingual Kaypro models and the
arabization kit for the Prowriter printer
are available from the International Marketing Department of Kaypro Corporation, 533 Stevens Avenue, Solana Beach,
CA 92075.
Zadian Research
1749 Jonathan Avenue
San Jose CA 95125

Selling Prototypes
I'm wondering if there is some way to
profit from my ideas without having to
do everything myself. Is Micro C, or
some company that advertises in Micro
C, interested in buying working hardware prototypes to be finished (e.g.
packaging, purchasing volume parts,
making PC boards, and writing software) in exchange for royalties or something? Frankly, a $15 diskette of software
is poor compensation for several days
worth of work. Is there some other possibility I haven't thought of?
Phil Hunter
655 S. Fair Oaks #E-317
Sunnyvale CA 94086

Editor's note:
Sure, we'd be glad to look at any projects
you are working on. Give me a call and let's
discuss what you're doing. Maybe we can do
a combination article, circuit board, etc. It
could also be a straight product.
Also, the disk is not the only payment for
an article. When we receive an article we send
out a disk, pronto. Then when we print the
article we send out additional goodies: the

Micro Cornucopia, Number 24, June-July 1985

LITTIRS
special feature for each issue is worth $75, five
copies of Micro C, and an author's T-shirt
(great for wearing at the SOG). The regular
articles are worth $25, three magazines, and
the author's T-shirt.
Tri-Flow Triumphs
I am in a group of nine engineers
working for Xerox, providing technical
hardware and software support to about
1300 technicians in four states for our
copier and duplicator lines.
A while back, in your Kaypro Column
of Issue 15, you stated that Xerox Service
Centers use WD-40 to lubricate disk
drives. To bring you and Micro C readers
up to date, in early 1984, Xerox cancelled
the use of WD.:.40 and began using TriFlow in its products.
There were some good reasons for this
decision. Several fires in our copier/duplicators were caused when WD-40
spray came in contact with a high voltage
component, created an arc, and ignited.
In addition, we felt that although WD-40
did a good job of washing the old lubricant from a bearing, its own lubricating
properties were very short lived.
The only good application I can think
of for WD-40 in any of our products is to
clean nasty, dirty drive chains
I am very much in favor of lubricating
the lead screws and slides with Tri-Flow.
The standard CP/M-80 that comes with,
the 820-11,8" SS, is configured for a head
step rate of ISms, which is too slow.
Any 8" drive in good shape will step
reliably at 10,6, or even 3 ms. I have seen
cases where new 8" drives out of the box
would not read at 6ms, but after the lead
screws were lubricated with Tri-Flow I
could change this time to 3ms and boot
99+ percent of the time.
It wquld be wise, however, to keep a
disk in the archives with the step rate left
at ISms just in case the drives get gummy and you can't boot. All of my working disks have been at 3ms since I did the
Tri-Flow trick over a year ago.
Another tip: the oilite bearings found
in most drives should not be lubricated.
This is a porous metal which is impregnated with oil during manufacturing. Adding oil will free the bearing for a
short time, but will cause the pores to
clog and accelerate the wear of the bearings.

The best way to remove dirt and gum
from these bearings is with a clean, dry,
lint-free cloth.
If an oilite bearing is properly manufactured and, more importantly, stored
correctly prior to drive assembly (paper
or other absorbant packaging materials
will leach the oil from the bearing),
enough oil will remain after the bearing
is cleaned.
Doug Felton
1215 Oxley Rd.
Columbus OH 43212

Arizona Kaypro Users Group
As owner of a Kaypro dealership in
Phoenix and sponsor of the Arizona
Kaypro Users Group, I wrote to tell you
what tremendous success I've had with
the mods and upgrades for Kaypro suggested in Micro C. I did nearly 100 5MHz
upgrades last year, and installed more
, than 30 disk drives behind Pro-8 ROMs
just last month. I find the instructions for
the upgrades very complete and quite
clear.
During this month's AKUG meeting
the club's officers demonstrated their 4drive Kaypros. Two of our officers (John
and Sharon Wertz) have 'his-n-hers'
Kaypros, each sporting four Mitsubishi
quads.
Our RBBS/RCPM is tagged "Lost
Dutchman's Gold Mine #2" and is devoted exclusively to Kaypro support and
utilities. The number is (602) 863-1435.
The board operates 30011200 baud, 24
hours a day. There is no fee, and our only request is that users log on with real
names, not handles.
Kelvin Paul Giles
13829 North 19th Ave.
Phoenix AZ 85023
TPA Program Fix
In Issue #23 Tom Geldner (in "Running In CP/M's TPA") gave a programming example in SBASIC that was suppose,d to dynamically size an array
according to available memory. His example works, except that the way he did
it, the array will always have a maximum
size of 32767 even if more room is available.

Micro CornucopIa, Number 24, June-July 1985

The problem lies in the way SBASIC
uses the signed value of INTEGER variables when dealing with FOR. .NEXT
loops. (FOR. .NEXT uses signed integers
rather than unsigned integers like
WHILE.) The solution is to use a
WHILE .. DO structure.
x =0
WHILE x <> max. memory DO BEGIN
x =x + 1
sample.array(x) = 0
END

Richard Levine
3105 Meadow Grove Dr.
San Diego CA 92110

Packet Power
Maybe you already know this, but the
820 is becoming the standard for packet
radio mailbox systems. WORLI has written an excellent package that includes,
among other things, automatic forwarding of mail to other mailboxes based on a
table of users for each mailbox. There's
also an add-on HDLC chip board to allow using it for a TNC. In our area the
packet users have grabbed about 20 of
them for various types of experiments.
Fun stuff!
Jon Pearce, WB2MNF
109 Pine Cone Trail
Medford NJ 08055

U.S. Robotics Modems OK
While leafing' through your Kaypro
Users C;atalog, I noticed on page 11 there
is a statement written about the U.S. Robotics modems being unreliable for dialing from preloaded directory files.
I have two U.S. Robotics modems, an
AUTODIAL 212A and a PASSWORD,
and in the past six months I have not experienced any difficulties in dialing from
the phone directories of TELPAC,
MDM712, KM300, KM1200, NDM730,
PHONE.001, etc. This is true for the
Kaypro 2-83 and Kaypro 2X.
George J. Parker
P. O. Box 14911

3

C'ing Into Turbo Pascal
By Ron Miller

Like a great number of hackers, I am
convinced that for really getting down to
manipulating the system, C is the only
way to fly.
Not only does C offer the means to attack a problem at the byte level, but C
syntax is also more elegant, more
straightforward, and more readable the
morning after than any of the alternatives.
When Not To C
However, the complex sequence of library searching, compiling, assembling,
and linking that gives such hands-on
control when writing a utility program in
C becomes a genuine pain when crafting
an inventory system or typing out a loop
to average grades. And reading and
writing records to a random-access file is
not something one does casually in C
straight out of the box.
The answer for me, and apparently for
lots of people, is Turbo Pascal.
It's good, it's fast, and it's inexpensive. Debugging can actually be fun
when the full screen editor places the
cursor right on the trouble spot.
Absolute Addressing & More
I remember opening my package from
Borland over a year ago, wondering if I'd
been a fool to buy something with such a
silly name. Well, for 50 bucks, what can
you lose? Your cynicism, for one thing.
My prior Pascal experience with JRT
didn't prepare me for the delights to follow. These folks, I immediately recognized, think like C programmers.
There were structured constants
(read: initialized variables); free placement of variable declarations, functions,
and procedures (read: libraries); absolute addressing (read: pointers to the operating system); interconversion among
scalars (read: casts); and bit manipulations (read: packed fields, tagging, and
all the rest).
Turbo has never threatened to replace
my beloved C/80 for getting down eyeball-to-eyeball with my Z80. Pascal's
syntax is just too cumbersome when I get
serious about manipulating bytes.
Incrementing A Character Pointer
For examp,le, to increment a character
pointer in C after printing the current

4

1157 Ellison Drive
Pensacola FL 32503

character, all one writes is:
putchar(*charptr++);

Whereas in Pascal the best one can do is:
write(charptr A ) ;
charptr := PTR(SUCC(ORD(charptr»);

But Turbo does give you the transfer
functions to do the job.
At times, I'm even willing to put up
with ORDs, SUCCs, PREDs, CHRs, ADDRs, and PTRs rather than give up Pascal's set variables, arithmetic-style string

operations, interactive debugging, and
compilation in the twinkling of an eye.
And there are even lower-level tricks
lurking in Turbo Pascal.
Beginners may find these sample routines an encouragement to get a little
closer to their operating systems. Experts will undoubtedly see better ways
and assure themselves smugly that
FORTH or C or assembly language does
it better. I can only echo Dr. Johnson'S
comment on dogs walking on their hind
legs: it's amazing not that it's done well,
but that it's done at all.

Figure 1

PROGRAM directory;
CONST
ADDRESS = $bOOO;
fcb:array[1 •• 13] of char=IOO'Z??????????'IOO;
{wlldcarding fcblock}
VAR
i,j:byte;
charptr:"char;
BEGIN
bdos(26,ADDRESS);
{setting the dma}
bdos(17,ADDR(fcb»;
{ftseek firstft; structured consts have addressesl}
charptr := PTR(ADDRESS); {setting the char ptr to beginning of dma}
FOR i:=O TO 127 DO
BEGIN
IF i mod 16 = 0 THEN writeln;
{rows of 16, ddt-style}
IF (i mod 32) IN [1 •• 11] THEN write(charptr A , ' , ) {if in filename}
ELSE
{write out hex numbers for other chars}
BEGIN
j := ORD(charptr A ) div 16; {high nibble of hex byte}
IF j < 10 THEN
WRITE(CHR(j+ORD('O'») ELSE WRITE(CHR(j-10+0RD('A'»);
j := ORD(charptr A ) mod 16; {low nibble}
IF j < 10 THEN
WRITE(CHR(j+ORD('O'»,' ') ELSE WRITE(CHR(j-10+ORD('A'»,' ');
END;
charptr := PTR(SUCC(ORD(charptr»);
END;
END.

Figure 2

(Contents of ARGREAD.LIB}
CONST {Don't let ·CONSTft fool you: these are initialized statics. See below.}
argv:array[l •• ~] of string[15]=(",",",");
argc:byte=1;
{the COM file itself is number 1}
PROCEDURE argread;
CONST
place:byte=$82;
{simply the initial memory address in the dma}
BEGIN
WHILE(mem[place] <> 0) DO
{just as in C: loop until a null}
BEGIN
{since a blank/non-blank pair always begins a new argument}
IF (mem[PRED(place)] = 32 ) AND (mem[place] IN [33 •• 126]) THEN
argc := SUCC(argc);
IF mem[place] <> 32 THEN .
argv[PRED(argc)] := argv[PRED(argc)] + CHR(mem[place]);
place := SUCC(place);
{See? These CONSTs act just like VARs.}
END;
END;

Micro Cornucopia, Number 24, June-July 1985

Looking Into File Block Allocations
Let's practice a little Pascal string work
by applying it to a common enough lowlevel operation-the extraction of directory information by using a BDOS
"seek" function.
Suppose I want to examine the file
block allocations within the first directory sector listing a file beginning with the
letter Z. I would read a 128-byte sector
into an unused spot in memory and then
scan the sector to extract the file names
and locations (in hex) from the 32-byte·
file records. (See Figure 1)

With a little gymnastics, even Pascal
can speak hex (better than Post Office,
anyway).
The address here is noteworthy. I
would ordinarily use the 80H junk area
for this sort of work, but Turbo won't let
me. It "Y'rites over that convenient
dumping ground from 80H+20H onward. This can be quite disconcerting if
you are using BIOS read and write functions.
Extracting Directory Info
Move the DMA address to some area

Figure 3
BEGIN
mem[3] := mem[3] AND $3f; {setting IOBITE to serial}
ConOutPtr := LstOutPtr;
{CON: file pointer becomes LST: pointer}
END;
REPEAT
READ(dumpfile,c);
WRITE(UPCASE(CHR(ORD(c) AND $7f»);
{first strip off parity bits}
UNTIL EOF(dumpfile);
{50 UPCASE works: Wordstar, maybe?}
CLOSE(dumpfile);
END.
PROGRAM toggle;
{$I ARGREAD.LIB}
{Using the code above as a library file}
VAR
c:char;
dumpfile:TEXT;
{An unstructured ASCII file}
BEGIN
argread;
ASSIGN(dumpfile,argv[1]);
RESET(dumpfile);
IF(argv[2] = '>LST:') THEN

{possible redirection with second argument}

Figure 4
PROGRAM disker;
TYPE
param=RECORD
SPT:integer; {sectors per track}
BSH:byte;
{block sh1ft--actually, 3+log@-(2)(block size in k's)}
BLM:byte;
EXH:byte;
DSM:integer;
{one less than the block count on disk}
DRM:integerj
AL:integer; {allocation field for directory blocks}
CKS:integer;
OFF: integer; {number of reserved tracks}
END;

VAR
dpbptr:"param;
reserved,disksize,blocksize,allocptr,i:integer;

BEGIN
allocptr := bdoshl(27,0);
dpbptr := PTR(bdoshl(31,0»;
WITH dpbptr" DO
BEGIN
blocksize := 1 shl (BSH - 3); {i.e. 2@+(BSH-3)--in k's}
reserved := 0;
FOR i:=O TO 15 DO reserved := reserved + (AL shr i) AND 1;
disksize := blocksize*(DSM + 1 - reserved);
writeC"M"J'Disk size = ',disksize,'k"s --- I);
FOR i:=reserved TO DSM DO disksize := disksize blocksize*( «mem[allocptr + i div 8] shl (i mod 8» AND $80) shr 7);
END;
writeln('Room left = ',disksize,'k"s');
END.
(Listing continued on page 7)

Micro Cornucopia, Number 24, June-July 1985

in free memory and you can extract directory information, and read tracks,
sectors, and the like with abandon.
Leave the DMA at 80H and you'll either
become hopelessly hung up, or find
you've just crashed back into the operating system.
To load a COM file, CP/M puts the
command line arguments into a string
beginning at address 82H in the default
memory area. Unlike C, Turbo doesn't
offer readymade facilities to extract the
string or strings so they can be used by
the program. But they can be extracted.
The trick is to trot through Turbo's
predefined "mem" array (consisting of
all the 64K bytes in memory) from 82H
onward until a null is located, reading
the non-blank bytes into strings within
your applications program. Imagine it's
a library file (see Figure 2).
I could pull it off more elegantly in Cbut then in C, I wouldn't need to pull it
off at all. What we are creating is essentially a standard-issue C program written in Pascal.
Notice I allow only four arguments. I
could have allocated them one by one
with NEW. But if I'm that crowded for
space, I wouldn't be putting up with
Turbo's 7K+ of overhead. Besides, if the
command line is more than 30 bytes long
(see above on Turbo's treatment of the
DMA), the CCP's calling card is trimmed
along its edges.
Redirecting 110 Unix-style
Unix-style redirection doesn't work
unless the runtime package is prepared
to channel the standard I/O to and from
files and devices. Turbo lets you approach this. Like C, it treats peripherals
as files that can be reassigned.
Suppose you occasionally want to divert CRT output to a printer. You could,
of course, write a dual set of "write(x)"
and "write(lst,x)" routines with an attendant array of "IF" statements. But
that can be a pain and often means a larger source file. There's a better way.
Turbo contains a set of predeclared I/O
pointers that can be redirected with a
simple equals sign.
The example in Figure 3 reads a file indicated by the command line, strips the
(continued on page 7)

5

The industry standard
With more than 250,000 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
3.0

TURBO
2.0

The best just got bener:
Introducing 7ilrbo Pascal 3.0
We just added awhole range of exciting new
.features to Turbo Pascal:
.
• First, the world's fastest Pascal compiler just got
faster. Turbo Pascal 3.0 (16 bit version) 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
'1.urtle graphics" and full tree directory support:
•. For all 16 Bit versions, we now offer two. additional options:. 8087 math coprocessor. support·
··'forintensive calculations and Binary Coded' ." .
. .. Decimals (BCD) for business applications.
. . ..• And· much much more.

C'ing INTO TURBO PASCAL
(continued from page 5)

high bits off, and then capitalizes the
characters before sending them to the
console. Easy redirection to the serial
printer.
In this case, the space saved is trivial,
but it looks like Unix. Moreover, since
this is a text file, we don't even have genuine binary stream 110. Things will halt
with the first ASCII 26. To scan a binary
file byte by byte in Turbo, the file must
first be read into a buffer sector with
BLOCKREAD and then scanned by
" mem" or a character pointer. Things
just aren't as easy as in C.
Manipulations And The Operating
System
Suppose you wanted to test the capacity of a disk-perhaps as a warning to
the operator of a database.
The disk information is stored in two
places:
1. Disk information is stored in the
disk parameter block (the address of
which is returned in the hI register after a
BDOS 31 call).
2. Disk information is stored in the allocation vector bit field (the address of
which is returned by a BDOS 27 call).
The parameter block itself is a string of
bytes defined in the "type" listing in Figure4.
Turbo provides both the system calls
and the tools necessary to extract the information. The resident bitfields are
scanned by Turbo's shift functions and.
bitwise-ANDing.

The rather complex left and then right
dance while scanning the allocation vector is necessary because the allocation
field length is not necessarily a multiple
of eight bits. Therefore, we may need to
test only the leftmost bits on the last
byte.
Note that in the last loop, "i div 8" is,
the displacement in bytes past the beginning of the array; "i mod 8" is the bit in
question on that byte.
Bitfield Operation Solution
Actually, there's an even neater,
though not so general, solution for bitfield operations.
Since a set on the stack is nothing
more than a 32-byte bitfield, the "IN"
operator will scan any bitfield of up to
256 bits if a pointer to a numerical set is
directed toward the beginning of that
field. Figure 5 shows what the program
becomes, using this kludge.
In either case, Pascal syntax hardly
gets in the way at all.
The C version of the more general bitfielq, operation is only minimally cleaner:

«

I%8 & Ox80)

»

7);

Irritations And Impossibilities
The inelegance forced upon the programmer by Pascal's strong typing remains little more than an irritation as
long as low-level work is a minor portion
of a program. I find string operations the

(continued from page 5 ) - - - - - - - - - - - - - - - - - - - - - - - _
Figure 5
TYPE
f1eld=set of 0 •• 255;
param=RECORD
{see above}
END;
VAR
dpbptr:"'paramj
f1eldptr:"'f1eld;
reserved,d1sks1ze,blocks1ze,1:1nteger;
BEGIN
dpbptr.:= PTR(bdoshl(31,O»;
blocks1ze := 1 shl (dpbptr .... BSH - 3);
reserved := OJ
f1eldptr:=PTR(ADDR(dpbptr .... AL»;
FOR 1:=0 TO 15 DO IF 1 IN f1eldptr'" THEN rese~ved := SUCC(reserved);
d1sks1ze := blocks1ze.(dpbptr .... DSH + 1 - reserved);
wr1te("'H"'J'D1sk s1ze = ',d1sks1ze,'k"s --- ,);
f1eldptr := PTR(bdoshl(27,O»;
FOR 1:=reserved TO dpbptr .... DSH DO

Micro Cornucopia, Number 24, June-July 1985

most consistently frustrating, since I've
become accustomed to C's delightful increment and decrement operators and
its treatment of characters as short integers.
But Turbo's "byte" variable definition
gives you partial relief if you juggle
things a bit to subvert Pascal's attempts
to protect the programmer from typological confusion. At times I'd give anything to be able to do something useful
inside a control structure rather than
having to waste time with booleans.
Considerably more limiting is Turbo's
way of requiring you to enter assembly
language routines in machine code.
Now there's entertainment that rivals
Howard Cosell.
The other day I was working up a
"mail merge" program for Perfect Writer. I needed a routine in high memory to:
1. Load the printer program at the bottom of the TPA.
2. Read addresses byte by byte from a
mailing label file.
3. Feed them into a formatted letter
that is printed repeatedly by Perfect
Printer running at 100H.
A bit of tinkering with raising the origin and lowering the stack of my C/80
runtime package generated the driver,
program, along with the necessary diversions for Perfect Printer's attempts to
call the BIOS and terminate with a warm
boot. With a little help from a dozen-byte
assembly language LDIR and JP routine,
I was up and running at OAOOOH.
Try doing that with Turbo. But then
again, have you ever tried to write a set
variable routine in C?

•••

7

WARNING:

THE WORLD'S FASTEST

S-100 Z-80 SLAVE PROCESSOR

Do NOT read this flowchart:

TurboS/ave I
•

8 Mhz Z-80H

• 128k Ram with parity

•

Data transfers to 1

• 2 RS-232 Ports.

mbyte/second

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

• *.* ••••• *. * *.... I----:::::::::::::::::---------~1.•
••••••••••••
•
•
*
.••-- - .
*
*
*
*
No

:•••:::::***:----->:.................:------->:.................:--->.... .•. ...
*

Meet

v

• Choose a bank

accomplices

and

·

• Yes

.:<----..........
.
<---:
.................
..... .................
••••••••••••••• **

••

the
•
<----------: looti~n~pliye
•

Take

No

Was

.......

••

•

getaway..

.... .....

•

.

:
:

EARTH COMPUTERS

Registered trademarks: Z·SOH, Zilog Inc.; TurboDOS Software 2000, Inc.
••• IBM PC VERSION COMING SOON •••

AtTENTION S·IOO

USERSI
We'd like to introduce you to ADS'
complete line of S-100 products:

Handles eight drives, 5~", 8" SS/DS & SO/DO.
Synthetalker - Speech synthesis card,
uses Votrax SC-Q1.
Promblaster - programs 19 different eproms
from software.
And much morel Call or write today for
more information.

Ackerman Digital Systems, Inc.
216 West Stone Court • Villa Park, IL 60181
(312) 530-8992

8

>:*

•

•

Serve time

:
•

• •••••••••• * •••••

!

.* .•.•.
•• Have ••
••
I been
•• Yes

••

...

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

•

rehablll- •• ----).
•• t a t e d ? · ·

* •.•

__________________________________________ 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.
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. EasyFlow 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.
•
•
•
•
•
•
•
•

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:

OctafIoppy - Disk controller card.

•

•••••

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

CALL: (714) 964-5784

guards

:
___
police:.

•• Was ••
Yes ••
bribe
•• No
----•••• ::cePte~: •••• ---

---

•

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

...•...

--

FOR MORE INFORMATION AND QUANTITY DISCOUNTS

A~~y~tt~~

:

:

• No

•

•

Get money

J........

Run from

<------:

........~........
.................
!

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

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

Yes

••• ~ucce~sful •••

INTRODUCTORY PRICE $495

* ••

~o Off: •••••

'.

••

...

•• Did alarm • • •

--------~:~I ~es
••

~ -======-....•

- ••

:an~K~oo: ••••

it

....

• GUARANTEED COMPATIBLE WITH ALL S·100 SYSTEMS
RUNNING TURBODOS

·00---------

C~~~k

Does

$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 mao
chines on 8" SSSD and most soft
sectored 5" formats. Check, money
order, VISA or company P.O.

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

Micro Cornucopia, Number 24, June-July 1985

The 5-100 Bus
By Dave Hardy

One of the most frustrating things
that can happen to a small computer is
the notorious "dead box" problem. If
you own or use any kind of machine, it
has probably happened to you.
What Is A Dead Box?
"Dead box" is a composite termkind of a cross between dead machine
and black box, and is a perfect description of what can happen to a computer
that has no (or very little) self-diagnostic
ability. A good example of this is a machine that auto-boots from a floppy disk,
and simply gives you a blank screen if it
is unable to read the disk.
I usually solve these problems with a
small axe or short-handled sledge. However, if you would like to confront your
dead box problems in a more constructive manner, the following circuits may
come in handy.
Many of the older 5-100 machines
have LEDs on their front panels so you
can monitor, examine, and modify the
machine's memory. In the days before
floppy disks, the purpose of these front
panels was to help you bring up the machine. But the front panel indicators are
also a valuable debugging tool. By
watching the lights, you can tell, more or
less, what's going on in the machine.
Normally, these flashing lights on the
front panel of an 5-100 machine are almost useless. Unless your machine has
features like a run/stop switch, an examine circuit, and a few other things, all the
lights can do is indicate some kind of bus
activity. But, if your machine is dead, the
lights can at least let you know if there's
SOMETHING going on.
Bus Line Monitor
For that reason alone, you many find
the circuit in Figure 1 useful. It is a general purpose bus line monitor that can be

736 Notre Dame
Grosse Pointe MI 48203

attached to any address or data line in an
5-100 machine, and most of the status
and control lines. For 25 cents, you can't
go wrong.
If you have an X-Y oscilloscope and
want to see a more descriptive picture of
what your computer's bus is up to, try
the circuit in Figure 2. Using two inexpensive 1408-L8 digital to analog converters, this circuit will provide a twodimensional display of your machine's

address bus activity. Although it is not as
sophisticated as a $10,000 state analyzer,
it isn't as expensive, either. By watching
the display when the machine is working properly, you can get a pretty good
idea of what part of RAM the machine is
operating in, and also see areas that the
machine "hangs" in, or where the PC
spends most of its time.
Dead Software
Almost as bad as a dead box is a program that makes your machine act like
one. If you write your own programs, especially in assembly language, you have
probably, at one time or another, loaded
up some code that sent your machine's
program counter into another galaxy,
far, far, away.

Micro Cornucopia, Number 24, June-July 1985

Figure 3 shows a circuit that won't
help after the program blows up, but it
will at least tell you if your program has
reached a certain address. The circuit is
the equivalent of DDT's "break" command, only this is implemented in hardware. It is from the book "Interfacing to
5-100/IEEE-696 Microcomputers" by Sol
Libes and Mark Garetz, and it will stop
an 5-100 system if a hardware error occurs on one of the slave processors.
Multiple Processing
The future of the IEEE-696 (5-100) bus
seems most promising in the field of
multi-processing. Operating systems
like TurboDos, that allow up to 16 slave
(but functionally independent) processors to exist in a single frame, are making
the 5-100 bus a much-used base machine
in many multi-processor applications
that were formerly restricted to minicomputers or expensive networking systems.
Ironically, the thing most users object
to (the high cost of an 5-100 machine) is
the biggest advantage of an 5-100 multiprocessing system. Although the initial
cost of starting an 5-100 system is relatively high compared to an equivalent
"starter" machine (e.g., Kaypro or Xerox), the benefits of multi-processing
quickly become apparent when additional users are added to the 5-100
frame.
After setting up the main 5-100 frame
with the required operating system, the
net cost of each additional user in a
multi-processing 5-100 system can be as
low as $300, which is significantly cheaper than anything else around.
Unlike many popular multi-user systems (that is, systems that share a single
processor among all of its users). multiprocessing systems don't bog down with
heavy user demand. Each processor is
available exclusively to its user, so no
CPU time-sharing is necessary.
The only thing that can slow down a
multi-processing 5-100 machine is
heavy use of its shared resources, especially its disk drives. In my experience,
this has not been a problem with TurboDos-based machines.
There are great advantages to being
(continued on page 77)

9

CALL WREN AND SAVE!
- - - D DY§£llJ . DISKS: - - -

AUTOMATIC
TIME/DATE
STAMPING
OF FILES
WITH

5'/4
5'/4
8
8

SSDD
DSDD
SSDD
DSDD

Dysan $2.30
Dysan
2.95
Dysan
3.10
Dysan
3.50

Disk Mailers
10 for $5.00,
100 for $40.00
5V.' or 8"

_ _ _ OK' PRINTERS: - - -

~.

OKI Mate 20 IBM color
182
P IBM 8.5 Carr.
182
S SER 8.5 Carr.
83A
S&P 13.6 Carr.
I~. 84P
P
13.6 Carr.
~
84S
S
13.6 Carr.
192P
P
8.5 Carr.
~
1925
S
8.5 Carr.
13.2 Carr.
193P
P
1935
S
13.2 Carr.
2410P
P
13.6 Carr.
2410S
S
13.6 Carr.

--.- ~
rJlII. . . . .

•. y.

c:....r -

QP/M FEATURES
100% compatible with CP/M 2.2
Uses your computer's hardware/software clock
10-15% faster disk read/write
Resides in same space as CP/M 2.2
User-selectable default drive/user area
Works with Z-80-based systems (32k or higher)
Completely replaces BDOS and CCP
Efficient backup utility
Requires CP/M 2.x (except Xerox/BigBoard-l)
9 powerful new transient commands
5 new system calls

•
•
•
•
•
•
•
•
•
•
•

MPI
MPI
MPI
MPI
MPI
Toshiba
Alps
Shugart

MICROCode offers a custom BIOS for Xerox/BigBoard owners
(including SWP Dual Density users), on a bootable QP/M disk.

QPIM STANDARD PACKAGE Includes

QBACKUP
QINSTALL
QSTAMP
QPATCH

Sorted DIRectory program. Displays time/date,
system files, and .LBR directories.
Copies and verifies only those source files updated
since last QBACKUP.
Installs QP/M on system tracks.
Prepares disk for time/date stamping.
Modifies default parameters of D and QBACKUP.

QPIM COMPLETE PACKAGE includes
D (4K)
QPIP
QSTAT
QSUB

ALL STANDARD utilities, plus ...
Same as 2k D, plus shows files by date range, and
shows files In any or all user areas on any or all
drives.
All PIP functions, plus copies files with current or
existing time/date.
All STAT functions, plus shows or changes file
date(s), archive bit, and MORE.
Replaces SUBMIT and XSUB. Has nesting
capability, internal command set (including
conditionals), embedded XSUB, plus many other
great features.
QBIOS

Available for the Xerox 820-1, Xerox 820-11, BigBoard-1 and SWP
Dual Density (820-I/BB-I). QP/M bootable disk will be shipped if
QBIOS is ordered with the STANDARD or COMPLETE packges.
PRICES
STANDARD QP/M .......................................................$40.00
COMPLETE QP/M .........................................................$60.00
QBIOS FOR QP/M ............................... ;.........................$20.00
When ordenn~, please specify your computer system and media
preference (8' IBM 3740 or 5.25" Xerox/Kaypro format).
Please add $2.50 shipping/handling (U.S. & Canada) for shipment
via U.P.S., or $7.50 for foreign air mail. CA residents please add
your local sales tax (6% or 6.5%). VISA and MasterCard are
accepted. FREE information packet available upon request.

(ell:

MICROCode Consulting
~
Department M2
VISA'; • . ••
Box 9001
i ;
Torrance. CA 90508-9001
~-=--'
(213) 212-5877 (24 hour recorder)

10

$229.
229.
269.
529.
669.
770.

379.
449.
585.
660.
1829.
1889.

_ _ _ _ DRIVES: _ _ __

A TTENTION XEROX AND BIGBOARD OWNERS-NO NEED TO BUY CP/M!

D

G'

.&.

by MICROCode

180 CPS
120 CPS
120 CPS
120 CPS
200 CPS
200 CPS
160 CPS
160 CPS
160 CPS
160 CPS
350 CPS
350 CPS

Shugar~

$ 90.
51
105.
91S
105.
92S
105.
102S
98.
502
98.
0202A
AP-68 IBM 105.
105.
SA-460
180.
860

Tandon
Tandon
Tandon
Tandon
Tandon
Tandon
Tandon
Tandon
Teac

65-2
65-4
100-1
100-2
100-3
100-4
848-1 E
848-2E
55B

$135.
155.
150.
128.
99.
99.
292.
375.
129.

CALL TOLL FREE J-800-S43-WREN
except In OhIo, 513-931-7160
Minimum Order S30.00

":i aHI
~

880 Reynard

CIncinnati. OhIo 45231

TARBELL'S DUAL
CPU BOi86/Z80H
DOES A LOT MORE!
• Runs PC-DOS, CP/M-BO, CP/M-B6 and
CCP/M-86
• Floppy interface, 8 and 5-inch
• Two CPU's: 80186 and Z80H, both at
8 MHz speed
• Two serial parts: RS-232
• PROM: 4 kilobyte with monitor
• Memory Management: 16 Megabytes
• Interrupt Handler
• S-100 bus
Price: $1100 including manual and CP/M 2.2
Concurrent CP/M·B6. CP/M·B6. CP/M 2.2. and MP/M·" are trademarks of
Digital Research. Inc. PC-DOS is a trademark of IBM.

TARBELL

--ELECTRONICS

1 082 E. Artesia Blvd.
Suite C
long Beach. CA 90805
(213) 422-7081

Micro Cornucopia, Number 24, June-July 1985

+5 V

+5 V

hao

lrap

THE 5-100 BUS

~OOless

AClClress

SWI,enes

Sw,tches

(continued from page 9)

able to perform multiple jobs at the same
time, even in a home computer. If you
have an 5-100 machine and want to expand your computing power without
taking out a new mortgage, look into
multi-processing.

Next Time
In the next 5-100 Bus, we'll continue
examining multi-processing, and look at
some alternatives to it that can run in an
5-100/IEEE-696 environment, including
some ways to simultaneously run different types of processors in the same 5-100
box.
I look forward to reader mail with
questions, suggestions, hints, and tips
about the 5-100 Bus.

TRAP

Open SWItch to 1 rao
74LS38

o
-:-

a

7&LS74
CI(

a

CLR

74LS04

24
~~~-------or~--------~
pSYNC D.;..:76:...-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _~

____________________________________________

POC,C>9~9

~

Figure 3 - An 5-100 Breakpoint Trap Circuit

•••
IISMON"
Software In-Circuit Emulator
Links your CP/M computer with any ZOO
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).
Features:

Eco-CRelease
Compiler
3.0
We think ReI. 3.0 of the Eco-C Compiler is the
fastest full C available for the Z80 environment.
Consider the evidence:

Benchmarks*
(Seconds)

-Full program development debugger
with Breakpoints, Snaps, Stops, &
Waits.
-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.
Note: Requires Microsoft's M80 & L80
assembler & linker to setup Slave
BMON.
8" SSSD Disk containing Master
BMON, Slave BMON, GONSOL,
BMONIO, GONSOL/O, and Users
Manual ................................. $49.95
Shipped Via prepaid UPS
-No COD or P.O. BoxCheck or Money Order to:

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

*Times courtesy of Dr. David Clark
CNC - Could Not Compile
NIA - Does not support floating point

We've also expanded the library (120 functions), the user's manual and compile-time
switches (including multiple non-fatal error
messages). The price is still $250.00 and
includes Microsoft's MACRO 80. As an option,
we will supply Eco-C with the SLR Systems
assembler -linker -librarian for $295.00 (up to
six times faster than MACRO 80).
For additional, information,
call or write: •

l.o.~

(317) 255-6476

6413 N. College Ave. • Indianapolis,

11

Toll Free Order Line

EPIC SALES

Order Line: 1-800-223-EPIC
8AM-8PM CST

132 Walnut-Plano Center
Oarland. Texa. 75042

EPIC SALES WINCHESTER SUB SYSTEMS
Featuring Drives By Seagate
8-100

XEROX S20,S20-II,BIGBOARD I,KAYPRO IIIIV
•

Supports CPM 2.2 operating system

•

•

Host board plugs Into Z-SO socket

• Host board plugs Into S-100 BUSS

Supports CPM 2.2 operating system

•

WD 1002 controller board external In cabinet

• XEBEC S-1410 controller board external In cabinet

•

Boot CPM from S" or 5 114" floppy

•

Boot CPM from floppy (8")

•

Easy Installation

•

Easy Installation

a

Complete documentation package Is available for $35.00.

Fa.t

This package Includes all manuals and software on a diskette (If required).

All orders are expedited as a matter of our regular polley.

The $35.00 Is refundable with the purchase of a Winchester sub-system

We are proud to have achieved our goal of shipping most orders

from EPIC SALES.

within 24 hra. of receipt.

T,pe of
8,.tem

Efficient Servlcel

8eagate ST-212

CMI-8818

Seagete ST-2 2 5

1/2 High (Low Power)

Full High

1/2 High

10 MEG
Internal

10 MEG
External

Dual10 MEG
External

Erwin 110
Tape Backup

15 MEG
Internal

18 MEG
External

20 MEG
Internal

20 MEG
External

Internal

External

IBM-PC.
COMPATIBLE8
TI PC •
COLUMBIA

$749

$976

$1475

$949

$1175

$1149

$1376

$849

$899

$799

$1026

$1525

$999

$1225

$1199

$1425

$849

$899

APPLE

N/A

$999

$1499

N/A

$1199

N/A

$1399

N/A

N/A

XEROX S20.
KAYPRO

N/A

$1049

$1549

N/A

$1249

N/A

$1449

N/A

N/A

S-100

N/A

$1099

$1599

N/A

$1299

N/A

N/A

N/A

N/A

TECH SERVICE HOTLINE

1-YEAR FULL WARRANTY

8ATISFACTION GUARANTEED:
Order your EPIC Winchester S,stem now -

•

Every unit I. throughl, te.ted before shipping and our

test It for 30 days, If not aatlsfled, return for

•

If you have a que.tlon or a problem

Call our service technicians.

warranty Includes both parta and labor.

Immeclate refund!

6 1/4" HALF HIGH DRIVES

EPIC SALES SPECIAL

8"FLOPPY DRIVES

For IBM PC, TI PC, Xerox S20,

6 1/4" SEAGATE

Slemen. FD200-S
DSDD S"FlopPr Drlva.

and other.
TEC or Pana.onlc Drive.

WINCHESTER DRIVES

(Shugart 850 Compatible)

ST-212 10 MEG 1/2 HIGH

$229 NEW

ST-225 20 MEG 1/2 HIGH

8" DRIVE SUB-SYSTEM

5 MEG FULL HIGH

Include.: (2) FDD - 200-8

(8A-455 Compatible)

$549
$949
$179

DSDD

$119 NEW
Ca . . . PIS for (2) 5 1/4·
Half High Drl....

DSbD Drive., Vertical
Ca.e end Power 8uppl;

WINCHESTER CONTROLLER & HOST BOARDS

$629 NEW

DTC 5150BX IBM Wlnche.t.r Controller ••••••••• '278

POWER SUPPLIES

XEBEC 1410 Controll.r ........................ '285

IBM-PC R.plac.ment 135 Watt

S-100 Ho.t (X.b.c) ............................. '150

DI.k Drlv •• Cabl •• 5 1/4·••••••••••• 20
DI.k Drlv. Cabl. S· ••••••••••••••••• '30
S/8 Multlpl.xer Bo ••••••••••••••••• 148

(Run S· • 5 1/4· drlv ••• lmultaneou.I,)

$72

ZOBEX TI PC Wlnch••ter Controller... •••••••••• '350
Appl. Ho.t (X.b.c) .............................. '125

XEROX 820-1 & II

Tech. Info. (214)272-5724

40 Track, 4S TPI

Multlbu. Ho.t (X.b.c) ........................... '185
Software •••••••••••••••••••••••••••••••••••••••••• .38
X.rox • Big board Ho.t (Epic) ••••••••• ............ '85

$149
Bo.h.rt XLS1-5830R
S1 Watt. Maximum
• 8/SA,+12/5A, -12/1A

W••t.m Digital 1002-o5HDO .................... '285

~ TOLL FREE ORDER LlNEI 1-800-223-3742
Ma.ter Card, Visa, American Expreaa add 3'110 aervlce charge. Allow 10 days for

TERMS:

$39
Store Hour.:
8-8 M-F. ••8-1 S8t.

checka. $4.00 Minimum UPS charge. $1.85 for COD. Texas Realdents 8 118'110 Sales Tax.

12

'Micro Cornucopia, Number 24, June-July 1985

In The Public Domain
By Sol Libes

Call me crazy. I'm back in the magazine publishing biz-something I swore
I would never do again. After Ziff-Davis
closed Microsystems magazine I was depressed for weeks. Countless letters and
phone calls from subscribers (there were
over 31,000 plus another 25,000 news-'
stand) made me feel even worse. Everyone kept urging me to start it up again.
I kept remembering what my wife,
_Lennie, and I went through when we
started Microsystems in late 1979, and I
thought, "No, not again." After all, we
wanted to live normal lives. But there
has been something missing from my life
the last several months. The passing of
Microsystems left a void. There was no
other magazine catering to advanced micro users the way Microsystems did.
Ziff-Davis would not sell Microsysterns back to us, so we decided to start all
over again at square one-down in the
basement, on the ping-pong table.
This means, I regret to say, that this is
my last column in Micro C-for a while,
I at least. I think Micro Cornucopia is a terI rific magazine. However, publishing
and editing my own magazine is very
Itime consuming, so I must withdraw
from other commitments wherever I
can.
Adventures In Publishing Land
Let me tell you about some of my adventures in the world of big time magazine publishing.
Six years ago I realized there was a
need for a magazine for users of CP/M
and S-100 systems (this was long before
Kaypro, Xerox, and Osborne entered the
marketplace). I tried to interest several
magazine publishers in the idea, but
they all just laughed. I believed in the
need for such a magazine, however, so I
decided to do it myself. The first issue of
Microsystems came out in January 1980.
In late 1980, it was apparent that the
magazine was becoming a big business. I
decided to sell it to Creative Computing
and remain as the editor. Microsystems
was published six times a year, and thus
left me with time to pursue my other interests. My wife and I returned to our
primary occupations at the community
college where I teach electronics and she
teaches math.
My avocations included being founder

Box 1192
Mountainside NJ 07092

-how many advanced micro users are
and president of the Amateur Computer
there?) But this was just not enough for
Group of New Jersey (1,400 members
Ziff-Davis, and in late '84 they decided to
strong), and being active in the SIG/M
close Microsystems down.
and PC/Blue Public Domain Software Libraries. I also kept myself occupied by
Have You Ever Wondered About ...
writing a column in Byte magazine and
Having spent two years in the world of
writing a few books (e.g., Interfacing To
big magazine publishing, I have learned
the S-100/IEEE-696 Bus, published by
something about the publishing biz. I
Osborne McGraw-Hill).
could probably write a book on the subIn late 1981, Ziff-Davis, which pubject, but I thought I would give you a few
lished 60 magazines at the time, bought
insights here.
out Creative Computing, and as part of
Have you ever noticed that many
the deal acquired Microsystems magamagazine publishers offer huge diszine. Microsystems had a circulation of
counts to get new subscribers, and then
about 25,000 and was a small (but prestiseldom, if ever, offer discounts to subgious) book in an organization in which
scribers who renew? In other words,
most magazines had circulations of well
once they suck you in they zing it to you.
over 100,000 and as high as 600,000 (e.g.,
Also, do you realize how far in advance
"Popular Electronics," which changed
you've been receiving your renewal nonames last year to "Computers & Electices? I recently got a magazine renewal
tronics," and which Z-D also canceled
notice 12 months before it was due to exthis year).
pire!
Z-D decided to invest in Microsystems
to try and make it into another "big selJ.- A Few Other Tidbits
er." We went monthly, and our staffHave you ever wondered why so
went from two people (myself, working _
many publishers say "allow 6-8 weeks
part-time, and an assistant) to ten people
before you receive your first issue"? And
(four of whom sold advertising). We
why so many have a subscriber address
continued to grow in circulation and
in Boulder, Colorado, while their offices
size. From a 90-page issue published biare actually somewhere else? Let me tell
monthly, we expanded to 180 pages
you some of the reasons.
monthly, and reached a circulation of
over 55,000. (I was amazed that we
reached this high a circulation. After all, (continued next page)

Micro Cornucopia, Number 24, June-July 1985

Ever Wondered What Makes CP/M

®

TIck?

Source Code Generators
by C. C. Software can
give you the answer.
"The darndest thing
I ever did see ••• "
" .•. if you're
at
all interested in
what's going on in
your system,
it's
worth it."
Jerry Pournelle,
BYTE, Sept '83

'S.C.G. programs produce
fulLy- commented and labeled
source code for your CP/M
system
(the CCP and BOOS
areas).
To modi£y the system to your liking,
just edit and assembie with ASM.
CP/M 2.2 -$45,
CP/M+ $75, + $1.50 postage (in Calif add 6.5%).
~he

C. C. Software, 1907 Alvarado Ave.
Walnut Creek, CA 94596 (415)939-8153
CP/M is a registered trademark of Digital Research, Inc.

13

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

First of all, most of these publishers
use a subscription service. This turns out
to be much cheaper for them (if they
have 100,000 or more readers) and relieves them of the problem of dealing
with subscribers.
The largest such company is A. C.
Neilson, located (as if you didn't know
already) in Boulder, Co~orado. They are
highly automated, dealing with hundreds of millions of subscriptions annually. They are more concerned with providing low cost service to publishers
than they are with providing good service to subscribers. A publishing executive once told me that they can live with a
20% subscriber complaint rate from the
subscription service they used.
Most large subscription services send
the subscription cards they receive out of
the country (typically to the Far East) for
keyboard entry. This usually introduces
a 2-3 week turnaround time, causing
most of the 6-8 week delay. Also, since
most of the operators keying in the data

InClosing
For a sample copy of my new magazine, Micro/Systems Journal, send me $3
(cover price is $3.50) and I'll send it out
first class. You will not have to wait .6-8
weeks. A subscription is $18 (1 year/6 issues) or $32 (2 years/12 issues). I, like
Dave Thompson, do not use any pub-

\

THE LITTLE BOARD®

..:en

w
a
w
a:

::l

Z

~

::l

AA
F

lisher's gimmicks. Dave and I are publishers, not because we're out to make
our first million, but because we believe
there is a need for our magazines;

are unfamiliar with our language, they
make a lot of data entry errors. Needless
to say, the data is rarely checked for accuracy.
Thus, if you want to avoid problems,
type your name and address on the subscriber card, or print very clearly, and do
not write any messages on the cardthis just confuses the operators.
If your address label is incorrect, don't
try dealing with the subscription service.
Instead, write directly to the publisher.
His or her name and address is usually
on, or right after, the table of contents
page. Always write to a specific person
and complain loudly.

So long ... and keep hacking!

David Thompson's note: I have mixed feelings about Sol's disappearance from Micro C.
I've really enjoyed his interesting and easyto-edit offerings, and he is definitely an authority on public domain software. However,
Micro C is not Microsystems-they are different animals, both in style and content.
There is still a need for Microsystems, espe- .
dally as Sol moves strongly into MS-DOS
and UNIX. You have only to read PC Tech
Journal to see the need for another magazine
in this arena.
I wish Sol and Lennie the very best.

•••

.JI, •
OEM - INDUSTRIAL - SCIENTIFIC
'II~ SECOND GENERATION SINGLE BOARD COMPUTER KIT!
4 MHZ Z80· CPU!
64K RAM!
DOUBLE DENSITY!
.A

~

o
u

w
w
a:
u.

~

Z

c(

a:
a:

~

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

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

$22 9 ~C~MPLETE
DISK DRIVE SPECIAL:

o

~

i

:i

~
o

A. & T. UNITS'
$299.95

KIT)

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

PRICE
CUT!

MITSUBISHI #M4853
OS-DO 5-1/4 IN. 80 TRACKS PER SIDE - $130 EA
(HALF HEIGHT) (96 TPI) 2 FOR $245

i

BOTH DRIVES WORK FINE WITH THE LITTLE BOARDI

a:

::l

o
u.
o
en
~

a:

~
w

i!:

o

~

t;
w

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

I

f DOUBLE

ZSO CPUI

DENSITY (5-1/4 IN.} FLOPPY CONTROLLER

CENTRONICS STYLE PARALLEL PRINTER PORT

TWO RS232 SERIAL PORTS

~

I

I

64K DYNAMIC RAMI

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

SAME SIZE AS A MINI FLOPPY

2732 BOOT EPROM

::l

en
en
w

...
...~
~

Digital Research Computers
(OF TEXAS)

P.O. BOX 461565 • GARLAND, TEXAS 75046 • (214) 225-2309
zeD TM OF ZILOG. CP/M TM

OF D.R.I.

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

256K
RAMDISK
KIT
Now Only

$69. 00
•

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

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#9foradescription and MC#11
for a review of dynaDlsk.

For $69. You Get:
00

8~" by 6~" bare PC board
Software on 8" SS SD floppy
(SOURCE INCLUDED)
Assembly & Operation Manual

Bare Board Only: $39 95

820 OWNERS
820-11 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.

CP/M-80 C Programmers . ..

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

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

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

"I recommend both the
language and the implementation
by BDS very highly."
Tim Pugh, Jr.
in Infoworld
"Performance: Excellent.
Documentation: ExceUent.
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 BOS
C ahead of all other 8080/Z80 C
compilers tested for fastest
object-code execution with all
available speed-up options in use_
In addition, BOS C's speed of
compilation was almost twice as
fast as its closet competitor
(benchmark for this test was the
Sieve of Eratosthenes).

Plus ...
• A thorough, easy-to-read, 181-page
user's manual complete with
tutorials, hints, error messages and
an easy-to-use index - it's the
perfect manual for the beginner and
the seasoned professional.
• An attractive selection of sample
programs, including MODEMcompatible telecommunications,
CPIM system utilities, games and
more.
• A nationwide 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.

Don't waste another minute on

a slow language processor. Order
your 80S 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.

Send check or money order to:
P.O. Box 5246
Bend, Oregon
~

L.A. SO.ltware

97708
503/389-3452

CA residents add sales tax
CPI M is a trademark of Digital Research

Micro Cornucopia, Number 24, June-July 1985

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

DOS.

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

15

C'ing Clearly
By Gary Entsminger

C'ing Clearly will take a slight detour
this time from its usual path to examine
computer recreation with a practical
twist. Next trip we'll return to C'ing seriously.
Two subjects: "The C Puzzle Book" by
Alan Feuer and pre-processor macros.
Macroing In The C Puzzle Book
Tony mentioned he'd be reviewing
The C Puzzle Book but he didn't get to it, so
here goes. Obviously, the book is not
new-it's been around since 'S2, but it
still offers insight into this high-level,
low-level language, and illustrates the
use of the macro.
To sum it up quickly, it's a fun workbook for "The C Programming Language',' by Kernighan and Ritchie. It's
written in a very similar style, which
means it's a little stiffer than it needs to
be, but very informative. And recreational. (If you like puzzles, you'll love
this.)
The puzzle in Figure 1, entitled "The
Pre-processor Doesn't Know About C,"
should give you a feeling for the book's
flavor and illustrate the dangers of parameterized macro processing. But first, a
little background on macroing (or how to
keep yourself in knots while eating
brown rice).
Macro Processing
Every C compiler has a pre-processing
phase that alters source code before
passing it on for compilation. Its two
most important functions are macro substitution and file inclusion.
Macros can improve a program's readability and efficiency, and can be handy
as building blocks for parsing command
line arguments, debugging large programs, and writing compilers.
The fundamental macro allows no arguments, and simply substitutes a token
fora name:

Micro C Staff

Argumentative Macros
It's harder to write a macro processor
that allows arguments. Neither the Code
Works' Q/C, Small C, nor Software
Toolworks' C/SO supports parameterized #defines (Aztec C does). But since
all three of these compilers provide compiler source code, you could expand
them to allow arguments. Here's the
form:
'define indentifier(indentifier,
indentifier) token-string

...

'define then
Idefine begin {
'define end
;}
and then
if (i

> 0)

then
begin
a
b

,

end

But beware! Parameterized #defines
are tricky.
When the compiler sees a macro call, it
places the name and definition (or translation) into an evaluation area.This area
looks like a stack. All arguments to the
macro are also placed in this area unless
the argument is itself a macro. (This is a
nested macro-note that macros rarely
nest in captivity.)
When the compiler sees a nested macro it creates a new stack, and the inner
(new) macro is evaluated completely. Its
output is then placed on the original
stack, and work is resumed on the outer
macro. The outer macro never sees the
inner one, just its translation. Of course,
the inner macro may have called other
macros. (This process of calling oneself is
called recursion.)
Conditional Macroing
A third level of macro processing allows conditional #defines of the form:
'ifdef indentifier
'else (optional)
lendif

'define X 25

A conditional #define checks to see
whether a name has been defined, and if
it has, compiles designated parts of the
program. (Q/C, C/SO, Small C, and Aztec C permit conditional #defines.)

where "X" is the name and 1/25" is the
token (or substitution). On this level a
macro isn't much different from a constant definition, except both name and
token are character strings.

C'ing Pascal Clearly
Macros have few grammatical restrictions, so if you were a Turbo Pascal programmer by nature and wanted to retain
your favorite stylistics, you could by
# defining.

16

For example, you could use Pascal
block delimiters in C.

= 1;
=2

Compiler controllin,es of the form:
linclude ""filename"

are also available in C. The call, #include, replaces the line with the contents
of the file "filename."
Turbo Pascal includes a similar compiler directive also called "include"
which performs a similar substitution.
Included files cannot be nested in Turbo
Pascal, but can be with some C compilers-Aztec C is the only CP/M-SO compiler I know of that comes with #include
nesting.
The Wrap Up
If you prefer textbooks with a serious
bent (as opposed to seriously bent textbooks) then The C Puzzle Book is probably
not your cup. But if you want to try your
hand at some serious C play this might
be for you. It's a reasonably priced
$12.95, and a terrific learning tool. Available from Prentice-Hall.
The Challenge
An expanded pre-processor that handles macros would be a great addition to
the Small C compiler-a great Micro C
community project. Anybody up for it?

•••

Micro Cornucopia, Number 24, June-July 19S5

Figure 1 - The Puzzle
What does this program print?
'inolude 
'define FUDGE(k)
k+3.14159
'define PR(a)
printf("a= %d\t",(int) (a»
'define PRINT(a)
PR(a); putohar('\n')
'define PRINT2(a,b)
PR(a); PRINT(b)
Idefine PRINT3(a,b,0)
PR(a); PRINT2(b,0)
'define MAX(a,b)
(a
tor divide by 256 
tor falling edge 
tor rising edge 
tor automatic start ot timer
tor CLK/TRIG pulse to start timer
it no time constant tollows (rare)
it time constant tollows (usual choice)
tor continued operation (rare)
tor sottware reset (usual choice)
tor vector (Channel 0 only)
tor control word (usual case)

Micro Cornucopia, Number 24, June-July 1985

1000K RAM disk Plus
+ 8.5" x 13.75"

FOR BB-I and XEROX 820: 2·piece system using Z·80 daughter board
expansion board for on·the·bus memory and I/O at 2.5 or 4 + MHz.

BANK-SWITCHED MEMORY: Add 4 rows of 64K or 256K dynamic RAMs +
32K (four 8K x 8) EPROMs qr CMOS battery· backed static RAMs. FAST "HOLE"
memory mapping. High·performance "delay· line" memory timing.

Again using bit designation, we enabled interrupt for this channel (to tell the
rest of the computer about the one second tick); counter mode (the signal
comes from the CLK/TRG pin connected
to the ZC/TO pin of the previous channel); pre-scalar 16 (does not apply); falling edge (could also be rising edge in this:
case); automatic trigger (does not apply);
time constant follows (the counter value); software reset; and control word.
The value of 93 is the counter value.
A full-blown interval timer is now active which flags the microprocessor every second. This flag is known as an interrupt, and I'll talk more about that next
time.

•••

110 PORTS: 1 SIO, 1 CTC, 2 PIO, MM58167 real·time clock, ADC0808 8·bit,
8·channel ADC, two DAC0800 8·bit DACs, AY·3·8910 sound chip.
EASY TO B(JJLD AND INSTALL: Easy to get parts. Complete documentation + full
schematics are included. Piggyback or side·by·side mounting; no modifications needed
for BB·I or 820 installation. Versatile connection scheme allows for further expansion.
SOFTWARE INCLUDED: RAMdisk software, 250K and 436K RAMdisks for SWP DD &
standard CP/M also patches in the real·time clock. Utility programs included.
OPTIONAL SOFTWARE: 11] Upgraded RAMdisk driver supporting 244K through 1000K
drives, with built·in ZCPR 1.1 and keyboard translator that uses static RAMs for alternate
character or string storage. RAMdisk is drive A: Uses SWP DD or standard CP/M. 12] Public
domain computer music play/compose program uses DAC for output; great sound quality
and fun to use! Includes printed installation gl!ide.
Bare daughter and main boards (silk·screened and solder·masked);
full documentation, 8" SSSD software disk
Delay line (required for RAMdisk)
New RAMdisk software with ZCPR + keyboard translator
Computer music program: program + songs (2 disks)
above + source (3 disks)

$99.95
16.95
24.95
15.00
20.00

Shipping add $5.00 (U.S.A.), $8.00 (Canada); no other exports. Check or MO only; no
CODs. CA residents add 6% tax. Delivery: stock to 8 weeks. NOTE: All proprietary
software comes with fully commented source code. Please enquire about compatability
with BB·I\ and other computers. Software furnished on 8" SSSD; 51f4" (Xerox) for extra
charge. User's group discounts available.
See review in MicroCornucopia Issue #22 (Feb 1985).

For free 6-page spec sheet, please write or call.

Rivendell Audiocomp

P.O. Box 28937

San

Die~~9~~I~~l~~

TMcP/M is a registered trademark of Digital Research

NOW FOR XEROX 820
BB & BBII

h.elps compare evaluate and find products. Get answers.
SERVICE: FREE LITERATURE

LOW COST
DISK CONTROLLER
SAVE WEAR AND TEAR ON YOUR DISK DRIVES
AND FLOPPIES WITH THE MODEL 38~1 ALL
SOLID STATE RELAY.
SMALL ENOUGH TO FIT
EASILY INSIDE YOUR DISK DRIVE, THE 38~1
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.4~ X
0.35
FAST INSTALLATION - DIAGRAM
INCLUDED
ZERO
CROSSING - ELIMINATES
ALL SWITCHING NOISE
TRIAC OUTPUT - NO MECHANICAL
PARTS
DVDT FILTER - INCLUDED
LOW COST - ONLY $8.8~ EACH
1 YEAR WARRANTY
3~ DAY MONEY BACK GUARANTEE

lP_____
COMPANY OF CALIFORNIA
1619 SOUTH MINNIE STREET
SANTA ANA, CALIFORNIA 9~7()7

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

[

One free call covers all programmer's software. Ask for a
"Packet" on: "AI", BASIC, c, COBOL, Debuggers, Edi·
tors, FORTH, FORTRAN, Libraries, PASCAL, UNIX/PC or
30 "addons" for "C".

UC"

OUR
PRICE
call
call
279
call
495
' 275
275
275

Language

MSDOS: C86 - 8087, reliable, 286
Lattice C - the standard
Microsoft C 3.(}onew
Mark Williams - debugger
Instant C Interpreter, fast, full, debug
CPM80: Ecosoft C-now solid, full, faster
MAC: Megamax - fast, full. tight
Consulair's MAC C

1~'JnUifj
BRIEF - Intuitive, flexible
PMATE - powerful
VEDIT - full, liked
XTC - Multi tasking

Runson
PCDOS
8080/86
8080/86
PCDOS

195
185
119
95

MSDOS
8086
MSDOS

239
249
525

Ijni"j"':'
MS Fortran - Improved
DR Fortran-86 - full"7?'
RM Fortran - large arrays

emilia;
Greenleaf Library (plus free
Greenleaf "PCTalk in COO)
- 200 + functions - fast
for MWC, C86, Lat, or
CWare PCDOS $159.

Recent Discovery
FASTER C - Lattice users eliminate Link Step. Normal
27 seconds, FASTER C in 13 secs. MSDOS $95.
OUR
ARTIFICIAL INTELLIGENCE Runson PRICE
call
IQ LISP - full1000K RAM
PCDOS
PCDOS
$95
INSIGHT 1 - Expert Sys., decent
MSDOS
250
TLC LISP - with' 'classes", nice
275
MicroProlog - by Logic Prog. Assem. MSDOS
125
MSDOS
PROLOG-86 - standard, Learn fast
295
EXSYS - Expert System - thorough
PCDOS

SUPPORT PRODUCTS
LIBRARIES: BTRIEVE ISAM
Clndex+ -ISAM, source, no royall.
CSHARP Realtime - source, full
CUtil by Essential
DATABURST - Screens-C, BAS
GraphiC - 4200 x 3100, source
Greenleaf Communications
HALO Graphics - fast, full
TOOLS: CODESMITH - debug, visual
Polylibrarian-thorough
Poly MAKE-manage, compiles
Profiler-86-easy to setup, symbols
SCIL - Source librarian

Call for a catalog and solid value

800-421-8006
THE PROGRAMMER'S SHOp™
Visa

128- Rockland Street. Hanover. MA 02339
Mass: 800·442-8070 or 617·826-7531
MasterCard

MSDOS
8086
MSDOS
MSDOS
MSDOS
MSDOS
MSDOS
PCDOS
PCDOS
MSDOS
PCDOS
MSDOS
MSDOS

215
375
600
139
215
250
140
145
139
89
89
125
349

Note: All prices subject to
change without notice.
Mention this ad. Some prices
are specials.
All formats available.
Ask about POs, COD.

I-J

Colonial Data

S8-80- I I

The "Better Board" Gets BETTER!

Standard Features Include:
•
•
•
•

4M Hz 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

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 BETTER with the
introduction of the SB80-1I. More Standard Features at a NEW
LOWER PRICE!

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

• ZSOA PIO PARALLEL PRINTER INTERFACE

• 4MHz ZSOA CPU WITH NO WAIT STATES

Centronics compatible printer interface is Standard!

Enhanced BIOS uses mode 2 interrupts.

• SASI HARD DISK INTERFACE CIRCUITRY
ON-BOARD!

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

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

• NUMEROUS FLOPPY DISK STORAGE OPTIONS

• 4 CHANNEL COUNTER TIMER-STANDARD!

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

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

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

SBSO-II SYSTEM OPTIONS:

PRICE

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

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

CP/M 3.0 OPERATING SYS W/MANUAL

• 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'" - ZI LOG

. . . - - - - - - - - - - - - - - II

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

Colonial Data Services Corp.

HOW TO ORDER:
CalLor 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.

[EEl
i~1
_I

I

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

u ~=-II.J Colonial Data

S8-80-II
Dimensions

13%"W x 53Js"H x 17" D
FULL 90 DAY PARTS & LABOR WARRANTY

MODEL IIA-2/380K DSDD DRIVES
MODEL lIB - 2/780K DSOD DRIVES
MODEL IIC-10 Meg H/Diskw/380K Floppy
MODEL lID - 10 Meg H/Disk w1780K Floppy

*

$ 895.00
$ 995.00
$1895.00
$1995.00
$ 298.00

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

PRICE

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

$ 60.00
$ 60.00
$ 75.00
$275.00

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

$ 35.00
$290.00

Colonial Data
Cabinet Kits (Build Your Own Systems!)

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

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

Shugart
5%" Disk Drives

MODELCKPI

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

MODEL 455

$225.00

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 CKP1, but includes 90 Watt Power Supply to
power half-height WinchesterTT
5%TT hard disk and single 5V4
half-height floppy.

2 For

DSOD Floppy
Over 780K Capacity

$425 00

$225.00
2 For $430.00

•

$139.00

-----------111II
HOW TO ORDER:

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

_
•
~

.;;~~i

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

The Slicer Column
By Laine Stump

I was amused by Dave's admission in
the February issue to listening to music
while typing. For some time now, I have
been listening to music while writing.
There isa slight difference, though.
While Dave is listening to crashing
waves and harps, I am typing to the
sound of decadent punk rock on the
campus FM station (that's the only thing
they play at 3 in the morning). And you
all wondered what was wrong with me
Give Me A Break
Finally, some first hand news about
great new toys. After spending three
days in Yellowstone Park in the middle
of a snowstorm (spring break), I packed
up my Slicer, my PC Expansion Board,
and my Memory Expansion Board (and a
genuine IBM keyboard and monitor borrowed from the local computer store)
and holed up in a spare bedroom to play.
I came out of the room with four things:
an opinion, a Pascal program that uses
the SC2681 UART chip to send and receive files, a story to tell, and a big, fat
smile.
MS Is NOT A Disease
I don't know if I should admit this, but
I played around with MS-DOS quite a
bit, too. I'm not sure what to make of the
current trend toward badmouthing MSDOS. It has a few inconsistencies, but
the concept is just wonderful. Besides,
every mother's dog is using it, and that
makes it a great development environment if you want to make a lot of money
(open your eyes and smell the royalty
checks, people ... ).
Anyone who has ever used UNIX long
enough to get used to tree'd directories
(like a tree'd raccoon, only not quite as
cute), command search paths, and byte
oriented files can appreciate my frustration with CP 1M and my interest in MSDOS. On the other hand, anyone who
has ever tried to read the MS-DOS Programmer's Reference Manual (Hebrew I
American edition) can understand why I
still have reservations about MS-DOS.
Half of the manual is filled with documentation of version 1.x function calls
that are annotated with "Don't use this
function, use function z instead." If you

24

Micro C Staff

want to do any assembly language programming for MS-DOS, you'll first have
. to spend $85 extra to buy MASM (or figure out where to get CHASM, a
"freeware" assembler) and then take
about a month off from everything else
to decide which system call you REALLY
want to use to open a file. I think I'll just
stick to C and Pascal on MS-DOS (at
least for now).
Back to my defense of MS-DOS. I
haven't noticed any glaring problems
with it (although I've heard others say
they have), and it DOES exist and must
be dealt with. The Slicer implementation
is clean and ·well done (although disk accesses are 'slightly slower than a Slicer
running CP 1M-86), and I can think of no
better way to ease the pain of entering
the real world (you know, the one where
you actually get paid money for your
work) than to use MS-DOS on the Slicer
as a development system.
Touchy subject. I won't say any more
for fear of bodily injury.
The Problem
I have evaluation copies of several
programs (editors, compilers) written
for the IBM and wanted to spend my
time "in hiding" checking out just how
compatible the Slicer video board is. As
luck would have it, all the programs
were for MS-DOS and, although I have
MS-DOS, all my pre-written source
code is on CP/M disks. My commitment
to the "never type anything twice" philosophy meant that I needed to transfer
the files onto MS-DOS electronically,
but I had no communications programs
for MS-DOS and no utilities for reading
CP 1M disks on MS-DOS (or the other
way, either).
The Solution
Since my Big Board was sitting sadly
in the corner and I had Turbo Pascal for
MS-DOS, I decided to write a simple
communications program called SHIP
(Figure 1) to send files out a serial port
and receive files from a serial port. It
would show a complete lack of spirit and
enthusiasm to use one of the ports on the
Slicer board that is already supported in
the Slicer ROM, so I decided to use Port
A of the SC2681 on the Expansion Board.

The Weapons
Some of you may balk at my choice of
Pascal for writing a hardware control
program, and I would agree if this were
any old Pascal. But it's not. Turbo has a
predefined array of type BYTE called
"port." This is the programmer's gateway to the 8086 110 space. It works very
simply; to output a byte to an 110 port,
just use the Statement:
port[x] := y;

To input a value from a port use:
z := port[x);

Using Turbo Pascal and the port array
makes writing 110 type routines trivial
and allows you to easily add lots of bells
and whistles (since you have all those
predefined procedures for positioning
the cursor, formatting output, etc.). I
have used this feature of Turbo extensively for experimenting with new chips
and have found it nearly invaluable. I almost always convert the final result to
assembly language and put it in ROM,
but Turbo shortens the investigation
stage quite a bit.
SHIP includes the standard "Big
Four" routines of interfacing: initialization, read, write, and status. Other than
these four procedures, the rest of the
program is totally hardware independent. This means that I can compile and
run it without modification on the Slicer
under CP/M-86 or MS-DOS, and I have
to change only four procedures to run it
on my Big Board.
Details Of The Quest
Before blindly spitting characters out a
,port, you must set it up for the mode of
operation you want to use (bits/character, stop bits, interrupts, etc.). The
SC2681 has more modes and features
than I could describe in two columns, so
I'll just talk about the important ones.
The first thing I do in the InitPort routine is tum off all interrupts. This is done
by sending a byte of all Os to the Interrupt
Mode Register (IMR). Each bit in the IMR
indicates that the SC2681 should generate an interrupt on a certain condition.
Interrupts would just cloud the issue, so,
for now, I'm not using them.

Micro Cornucopia, Number 24, June-July 1985

After turning off the interrupts, I set
the number of bits/character, stop bits,
and type of parity. These, and other
modes, are controlled by the SC2681's
two "mode registers." These registers
are accessed by first setting the "mode
pointer" to mode register 1 with a command sent to the command register,
then outputting the two mode bytes in
sequence to the mode register.
Finally, I set the baud rate. This involves two steps-selecting the baud
rate set, and then selecting the baud rate
within that set. The function of all the
registers is covered in the SC2681 spec.
sheet (you received a copy with your
Slicer), so I won't go into any more detail
here.
Due to time limitations, I chose to
"hardwire" all of the initialization except
for the baud rate. But the stop bits, etc.
could all be set when running the program, just like baud rate. I leave this enhancement as an exercise for the reader
(oh, how I Love to say that!).
On Speaking Terms
Once the port is initialized, input and
output are simple. You just wait until the
TxRdy (Transmit Ready) or RxRdy (Receive Ready) bit goes on in the status register, then output to or input from the
data port.
To test these routines, I put in the Terminal procedure to allow the Slicer to be
a dumb (?) terminal to the Big Board. After some fooling around with the initialization mode bytes, I had the Big Board
and the Slicer talking.
Wait ForMe
The Send and Receive procedures
were simple extensions of the existing
routines. Send worked with MODEM740 on my Big Board right away,
but Receive lost characters while it was
busy writing to the disk. Fortunately,
MODEM740 has options for using XON/
XOFF protocol during informal file
transfers. I took advantage of this in Receive by saving each line of the file in a
buffer, sending an XOFF, writing the
line, then sending an XON to start the
Big Board up again.
First I tried stopping every 128 bytes
instead of every line, but I still lost char-

acters, so I had to use a special mode of
MODEM740 that automatically stops at
the end of every line, waiting for XON.
After I did this, I got perfect transfers every time.
.
Just to be consistent, I put XON /XOFF
checking in Send, too. I automatically
stop and wait for an XON at the end of a
line. This is because I know the other end
wants to stop at the end of the line anyway. If I didn't anticipate this, I could
send some characters that would arrive
after Receive had sent the XOFF, but before Send had received it. Receive would
assume that it had stopped all transmissions and would then probably lose the
extra characters. Not good.
The Finished Product
SHIP has a few problems. The worst
are:
1. I must type at both keyboards to get
anything done.
2. It only works with text files.
3. It has no error checking.
Since I need an MS-DOS modem program anyway, I'll probably end up adding XMODEM file transfer capability to it
someday. For now, though, it does ev. erything I need. I wanted to transfer
source files from CP/M to MS-DOS, and
I can. I have used it at 9600 baud without
dropping characters.
As written, SHIP runs on port A of the
expansion board, but this can be
changed to any other SC2681 port by just
changing the port address equates. I
have used it on port A of the Slicer ($80$8A), and nothing should prevent it
from running on port B of either board.
Sidelines
Doing all this fooling around gave me
a good chance to check out the Slicer PC
Video Board. I tried out three different
editors written specifically for the IBM
PC, and all of them ran. There was a minor problem when scrolling backwards
with the Turbo Pascal editor and Z (a VI
clone included with Aztec C), but that
problem will be corrected long before
you read these words.
The real shining light of editors was
the PC version of VEDIT, though. It is
incredibly fast. The other editors took a
small, though noticeable, period of time

Micro Cornucopia, Number 24, June-July 1985

to repaint the screen after a "page" command; VEDIT seemed to respond instantly (like mashed potatoes, but more·
impressive and less filling). Rather then
relying on ROM calls, VEDIT places
characters directly into video memory.
This makes the program very hard ware
specific, but using ROM calls is hardware specific, too. The best way to output a character is through an operating
system call, but that isn't nearly as fast,
and we must outdo the competition,
mustn't we?
Of course, the main reason VEDIT is
so fast is that the memory on the video
board has a 16-bit data bus and is running at 8MHz. This makes it considerably (about 2 times) faster than any of the
PC clones around. After three days I was
thoroughly spoiled.
Out Of The Blocks
The first time I plugged everything in,
I couldn't get the video board to sign on
as the console device. But for once I had
read the manual (several weeks earlier)
before diving in. I remembered something about needing a jumper somewhere, so I took a quick scan back
through the manual. I found I had to
jumper pins 1 and 2 of JB2 (and UNjumper pins 3 and 4) on the main Slicer board
in order to allow using the video board as
the console device. After I made this
change, everything worked just fine.
The manual states incorrectly that
ESC> E clears the screen and homes the
cursor. This is not so. The screen is
cleared, but the cursor remains in the
same place. The cursor must then be
homed with ESC> H. This may seem
like a trifling point, but if you tell SETUP
only about ESC> E, many of the programs using ROM calls to clear the
screen (e.g., SLIFORM and SETUP itself) will not work properly. I asked
about this when I told Earl (Hinrichs)
about the scrolling problem, and he said
the clear command originally did home
the cursor, but it turned out to be much
more useful to allow clearing without
homing, so he changed it. Anyway, remember to tell SETUP that the clear
screen command is ESC> E ESC> H.
(continued on page 27)

25

Figure 7 - SHIP.PAS

begin
ReadPortStat := «port[statusreg] and RxRdy)
endj
{ReadPortStat}

Purpose: To allow simple communications between the Slicer and
another system capable of sending and receiving characters
on an RS-232 port.
Method: In Receive mode, SHIP accepts characters from port A
of the Expansion Board and puts them into a file. This
continues until a key is struck (on the Slicer). The
file is then closed. No error checking can be done with
this primitive method, so you should check the file for
errors after you have received it.
In Send mode, SHIP simply opens the requested file and
sends it out port A of the Expansion board, one character
at a time until the entire file has been sent.
Terminal mode is mainly for debugging and making sure that
both ends are cooperating. Terminal mode just gets
characters from the keyboard and sends them to the other
end while receiving characters and displaying them on the
screen.
PROGRAM ship (input, output, workfile)j
CONST
XON
XOFF

= AQj
= AS;

modereg
statusreg
baudreg
commandreg
datareg
ACRreg
!HRreg

{ codes for stopping/starting character stream }
$200;
$202j
$202j
$204j
$206j
$208j
$20Aj

TxRdy = 4j
RxRdy = 1j
IHRBYTE
COHBYTE =
MODEBYTE1
MODEBYTE2
SET2
BAUD300
BAUD1200
BAUD4800
BAUD19200

SC2681 mode }
status
baudrate }
" command
}
"
data
}
" baudrate
set
"
" interrupt mode

{-----------------------------------------------}
{-----------------------------------------------l
FUNCTION ReadPort : charj

{ read a byte from port and return it to caller 1

begin
REPEAT UNTIL (ReadPortStat)j
wait for char }
IF bits7 THEN
ReadPort := chr(port[datareg] and $7F)
ELSE
ReadPort := chr(port[datareg])
endj
{ReadPort}

{-----------------------------------------------}
{
write a byte to port
}
{-----------------------------------------------}
PROCEDURE WritePort ( thisbyte : char )j
begin
REPEAT UNTIL (port[statusreg] and TxRdy) <> 0;
IF bits7 THEN
port[datareg] := ord(thisbyte) and $7F
ELSE
port[datareg] := ord(thisbyte)
end j
{ Write Port }
{ - - - beyond here is hardware independent

{-----------------------------------------------}
prompt for a baudrate and init the port
}
{-----------------------------------------------}
PROCEDURE SetBaud (var baudrate : integer)j
{

var yn : char;
begin
writeln;
write ('Baudrate: I);
readln (baudrate);
InitPort(baudrate)j
write ('Strip high bit? ')j
read (kbd,yn); writeln (yn);
bits7 : = (upcase (yn) = 'Y I)
end;
{SetBaud }

status mask for Transmit Ready }
status mask for Receive Ready }
$00;
$15;
$93;
$1F;
$80;
$44;
$66;
$99;
$CC;

turn off all interrupts }
pOint to HR1, enable Tx & Rx }
use RTS/CTS, no parity, 8 bits
2 stop bits }
select baudrate set 2 }
BAUD600
BAUD2400
BAUD9600

$55;
$88;
$BB;

YAR
workfUe : text;
{ ct & ct2 are global so they will be static variables
{ this is because static variables are sometimes faster
ct, ct2 : integer;
buffer : array[1 •• 2048] of char;
baudrate : integer;
bits7
: boolean;
selection : char;

{---------------------------------------}
send chars typed at console to port }

{
{

26

}

YAR done
boolean;
ch
: charj
begin
writeln('Terminal Mode, baudrate is ',baudrate);
writeln('Type control+_ to end');
writelnj
done := FALSE;
REPEAT
IF (KeyPressed) THEN
{char typed ? }
begin
read(kbd, ch)j
IF (ch = A_) THEN
done := TRUE
ELSE
WritePort(ch)j {send it }
endj
{if keypressed }

{-----------------------------------------}
{-----------------------------------------}
PROCEDURE initport ( baudrate : integer );

{-----------------------------------------------}
{
return TRUE if char ready, FALSE if not
}
{-----------------------------------------------}
FUNCTION ReadPortStat : booleanj

while echoing received chars

{---------------------------------------l
PROCEDURE Terminal;

{ initialize port for reading and writing }

begin
port[IHRreg]
:= IHRBYTE;
turn off ints }
port[commandreg] := COHBYTE;
point to modebyte1
port [modereg]
:= MODEBYTE1;
set modes I
port[modereg]
:= MODEBYTE2j
port[ACRreg]
:= SET2j
{ use baudrate set 2
CASE (baudrate) OF
{ set requested baudrate
300
port[baudreg]:= BAUD300;
600
port[baudreg]:= BAUD600j
1200
port[baudreg]._ BAUD1200j
2400
port [baudreg] ._ BAUD2400;
4800
port[baudreg]._ BAUD4800j
9600
port[baudreg]._ BAUD9600j
19200
port[baudreg]:= BAUD19200
end
{ case baud rate }
endj

<> 0)

IF (ReadPortStat) THEN
write(ReadPort)
UNTIL (done);
endj
{terminal}

{ char received ? }
{ display it }

{----------------------------------}
receive a file from the port
}
{----------------------------------}
PROCEDURE Receive;
{

var filename: string[80]j
begin
write('Name for Received file: ')j
readln(filename)j
assign(workfile, filename);
rewrite (workfile)j

Micro Cornucopia, Number 24, June-July 1985

write ('Start sending from other end, ,);
writeln ('press a key on this keyboard wben done');
ct := 0;
WHILE (not Keypressed) DO
IF (ReadPortStat) THEN
begin
ct := ct + 1;
buffer[ct] := ReadPort;
save in buffer }
IF (buffer[ct] = ~M) THEN
begin
WritePort(XOFF);
turn off other end}
FOR ct2 := 1 to ct DO
{dump buffer to f1le
write (workfile, buffer[ct2]);
ct := 0;
WritePort(XON);
{ turn back on }
{if received char = ~M }
end;
end;
{if character ready }
IF (ct > 0) THEN
{ write out partial line
FOR ct2 := 1 to ct DO
write(workf1le, buffer[ct2]);
close (workfile)
end;
{Receive }

{--------------------------------}
{
send a f1le out the port
}
{--------------------------------}
PROCEDURE
Send;
var ch : char;
filename: str1ng[SO];

THE SLICER COLUMN

begin
write('Name of File to Send: ');
readln(f1lename);
assign(workf1le, filename);
reset (workf1le);
write ('Set up other end to receive, ,);
writeln ('press a key on this keyboard when ready');
REPEAT UNTIL (Keypressed);
WHILE (not EOF(workfile» DO
begin
IF (ReadPortStat) THEN
{ check for XOFF }
IF (ReadPort = XOFF) THEN
REPEAT UNTIL (ReadPort = XON);
read (workf1le, cb);
{ get a char }
WritePort (ch);
{ send it }
{ IF eoln wait for XON
IF (ch = ~M) THEN
REPEAT UNTIL (ReadPort = XON)
end;
{ while not eof }
close (workf1le)
end;
{Receive }
{---- main ----}

begin
SetBaud (baudrate);
REPEAT
writeln;
write ('audrate, erminal, end, eceive, uit: ,);
read(kbd,select10n); writeln(selection);
CASE (upcase(selection» OF
'B' : SetBaud (baudrate);
'T' : Terminal;
'R' : Receive;
's' : Send;

'Q', 'E', 'X' : ;

(continued from page 25)

CSick
The underlying reason for writing
SHIP (besides giving the PC board and
the expansion board a workout) was to
send over some C programs that I had on
CP/M to compile them with different C
compilers on MS-DOS. Unfortunately, I
spent so much time writing SHIP that I
never got the time to do any C work.
Next time for sure, though. I have been
having too much fun writing C programs
lately to pass up such a great opportunity. Yes, that's right. I have (gasp!) C Sickness! (That's it, Martha! Pack up the
kids, we're getting OUT of here!!) I'm
sorry, Philippe ...
Now that I have an expansion board to
play with, I would also like to figure out
how to use its other two serial ports (Zilog Z8530). Naturally, this chip isn't included in the Zilog manual I have, and
for some reason, I didn't get any sheets
for it with the expansion board. Maybe I
can get some info on that soon, though.

Self Congratulations
About the time you're reading this, I'll
be graduating from college. I would like
to take this opportunity to tell myself
what a fine job I've done and wish myself
well in the future. (Thank you.) (You're
welcome.) I just hope I don't lose my humility after I leave school. (Editor's note:
I'm speechless.)

•••
Micro Cornucopia,Number 24, June-July 1985

ELSE
writeln ('Bad Option, Try Again');
end
{case selection }
UNTIL (upcase(selection) in ['Q','X','E']);
writeln ('Bye now, have a good afternoon.')
end.
End of Listing

HARDWARE SPOOLER and INTERFACE CONVERTER
• 128 K PRINT BUFFER
• CENTRONICS OR SERIAL
INPUT/ OUTPUT
• MULTIPLE PROTOCOLS
• 53/4 X 7112 INCH BOARD
• +5Voltsat.75Amp
± 12 Volts at .1 Amp
The L-BAND SYSTEMS hardware spooler is a Z80 based unit that
provides a 128 K byte buffer and interface conversion between Centronics and serial. Input and output may 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
1037 E. Lemon Ave.
Monrovia, CA 91016
(818) 357-0566
"Not available for export.

27

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 FJAM, plus up to 64K EPROM
• SASI port for hard disk controller
• Two full function RS232Cserial 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
~.

FOR EXPANDED MEMORY, ADDITIONAL
PORTS, AND REAL TIME CLOCK
• 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
Fully assembled and tested only .... April Special $650

The J-L Slicer 188
~\~

~e

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

~.

•

~e

GIVES YOUR SLICER HIGH PERFORMANCE
VIDEO CAPABILITY
•
•

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

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

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
Fully assembled and tested only ..... ... . ... $700

All products are available in several kit forms:
Operating Systems are:
CP/M-a6 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.

SLICER Special April Prices!
(Continued through June 30)

Slicer Single Board Computer

NeWt!

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 .............. $650!
Full Kit ......................... $450!
Memory Board Kit . . . . . . . . . . . . . . . .. $300'
3-Port Kit. . . . . . . . . . . . . . . . . . . . . . .. $200!
Bare Board .. . . . . . . . . . . . . . . . . . . . . .. $75!

The Slicer
PC Expansion Board
Assembled and Tested ...............
Full Kit ..........................
Easy Kit ..........................
Not-So-Bare Board ..................

$600
$550
$400
$200

New!!

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

Newll

The }J, Slicer 188
Assembled and Tested .......... Only $700!

Slicer Enclosure System
Enclosure (alone) ...................
with 135W Power Supply ...........
with P.S. and two 80 track
5%" Disk Drives ..................
10MB (formatted) 1/2 height
5%" Hard Disk .....................
PC Compatible Keyboard ..... 'f' • • • • • •
PC Compatible Amber Monitor ........

$125
$245
$695
$700
$150
$175

New!!

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

8087 Math
Co-Processor Board
New!!

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

Try our New SLICER Bulletin Board System 300/1200 Baud at (612) 788-5909

SLICERT.M

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.

MeRE Listing _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
This is the listing that was left out of Issue 23's Slicer column. MORE was written by Laine Stump as an example
8086 assembly language program. It lists a file to the screen a page at a time.
; . . . . . . . . . . . . . . . . . . . . 11 ••••••••••••••••••••••••••••••••••••••••••••••• It ••••

;'
I'
;'
I'
I'
I'

MORE.A86 - print a tile to the console 1 page at a time
s1m1lar to UNIX's 1D0re.
AsselDble witti:
A)alllD86 1D0re
A)genCIDd 1D0re
•
La1ne StUlDP 2/6/85

LDlES

equ
equ
equ
equ
equ

;

•

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

CR
LF
ESC
EOF

24
'H'-611
'J'-64
,[ '-611
'Z'-64

I lines per page
I carriage return
I line teed
I escape

t·············································tI•...••..••.••.•..•..•..••
send 1211 characters flCB to cOlUlole, keeping track ot lines

rnE128:

TYPE2:

Detine a 'BDOS' instruction to save

Coc1eMacro
DB
DB
DB
DB
ENDH

BDOS
OB1h
FTHNUM
OCDh
2211

typi~

and trees

FTHNUM:Db
lHOV CL,
lINT
Ito BDOS

TYPEIl:

BDOS funotions
COlfIHF
COKOUTF
PRIHTF
OPElfF
READF

equ
equ
equ
equ
equ

1
2

9
15
20

linput trolD console to register AL
loutput DL to console
; print string @DI until '. '
;open tile with FCB IDI
lsequential read trolD tile w/FCB IDI

OPEN:

.

CMP
JHZ

FCB+1,' ,
OPEN
DI,ottset IHFO
PRIHTF

lIF no tileDalDe
lTHEN give cOllllland line syntax
I and return to CCP

HOV
BDOS
CMP
JHZ

DI,ottset FCB
OPElfF
AL,255
TYPEFILE

lattempt to open the tile

HOV
BDOS
RETF

DI,ottset KOFILE
PRIHTF

1255 it unsucoessful
lIF we can't open
lTHEN say so
land return to CCP

type out the tile 211 lines at a time

TYPE1:

DOHE:

HOV
BDOS
OR
JNZ
CALL
JMPS

DM!
AL,EOF
TYPE5

1get a byte trOlD DM! into AL
lIF oharacter is EOF (AZ)
lTHEN we are done with tile

LIlfECT, LINES-1
DI,ottset FeB
READF
AL,O
DONE
TYPE128
TYPE1

RETF

lreset line count
lread a record trolD the tile
I see it EOF yet

I IF not, THEN type these 128 chars.
land go get sOlDe 1D0re
ldone with tile, go back to CCP

"CIBO.

HOV
DL,AL
PUSH 11 I PUSH ex f PUSH SI
BDOS
COKOUTF
POP SI f POP ex f POP 11

lPut character into DL tor BDOS
I save important registers

loutput the charaoter
lrestore registers
I IF character is LineFeed

AL,LF
TYPE4
LIlfECT
TYPEIl
PAGE
TYPE2

CMP
JNZ
DEC
JNZ
CALL
LOOP

,

;THEN upc1ate line oounter
lIF done with page THEN wa1t
19o output another

RET

;

wa1t tor character trolD console, then reset LIHECT

ISH it they typed a tileDalDe

HOV
BDOS
RETF

TYPEFILE:
HOV

CLD
LODS
CMP
JZ

I CI is LOOP oounter
lSI points to data to output

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

TYPES:

;. AGE:

CSEG
START:

CI,128
SI,ottset DM!

lend ot tile character
TYPE3:

.

HOV
HOV

PAGE1:

PUSH
HOV
BDOS
BDOS
HOV
CMP
JZ
HOV

ex

f PUSH SI
DI,ottset HORMSG
PRIHTF
COlfIHF
LIHECT, 1
AL,CR
PAGE1
LIHECT, LIHES-1

HOV
DI,ottset COVER
BDOS
PRIHTF
POP SI f POP CI
RET

I save evel'1th1ng important

lsay ' - More - '
lwa1t tor a character
lIF CR THEN Just show 1 more line
lELSE show an entire new page
lerue -

More -

lrestore evel'1th1ng

.I·····················································..................
DSEG

5Ch

ORG
RB

36

ORG

80h

DM!

RB

128

ORG
RB

100h

LINECT
IHFO
HOFILE
HORHSG
COVER

DB
DB
DB
DB

FeB

ldetault CPIH FCB
I detaul t DM! address

1
'Usage: HORE d:tid.ext$'
'File does not exist$'
CR,ESC, '80- More - ' ,ESC, 'CO.'

CR,'

',CR,'.'

END

. the best software buy in America!"

Now available in MS-DOS

-MICROSYSTEMS
In
reviews
published
worldwide
the amazing $49.95
Other technically respected publications like Byte
and Dr. Dobb's have similar praise for The Software C/BO from The Software Toolworks has consistently
Toolworks' $49.95 full featured IC' compiler for CP/M® scored at or near the top -even when compared with
compilers costing ten times as much!
and HDOS with:
The optional C/BO MATHPAK adds 32·bit floats and
• 110 redirection
longs to the CIBO 3.0 compiler. Includes 110 and trans·
-command line expansion
cendental function library all for only $29.95!
• execution trace and profile
• initializers
CIBO is only one of 41 great programs each under
• Macro-80 compatability
sixty bucks. Includes: LISP, Ratfor, assemblers and
- ROMabJe code
over 30 other CP/M® and MSDOS programs.
• and much more!

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

we use."

30

- Dr. Bruce E. Wampler
Aspen Software
author of "Grammatik"

For your free catalog contact:

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

Micro Cornucopia, Number 24, June-July 1985

Z sets you FREEl

Integrated BIOS
for BB II

Z - yes! Synergistic combination of ZCPR3 and ZRDOS2 produces

This BIOS adds special features
for floppy and winchester users.

flexible state-of-the-art Z80 operating system with tremendous productivity features.

Floppies

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.

Read and write almost any 5"
and/ or 8" disk format
40 formats included
(Kaypro, Osborne, IBM ... )
Use any type of 5" and/ or 8" drive
(SS, DS, 40- 77- or 80-tracks)
New SYSGEN works directly
between 5" and 8" disks.
May be configured for our new
256K RAM disk, ZCPR2,
Centronics, CP/M in ROM, etc.

Winchester

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

Winchester formatter and new
Winchester SYSGEN (can make
the Winchester drive A:)
Supports XEBEC and
ADAPTEC controller.
Subdivides into any specified
number of drives.

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

Also includes code for
the New BB II monitor

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 value •..•.•.....•..••.•••••..•..•..•• $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
Sysllb3 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.)

[E iJ Echelon, Inc.
101 First Street. Los Altos, California 94022 • 415/948-3820
Micro Cornucopia, Number 24, June-July 1985

(with all known bugs fixed)
Price:

$99.95

BIGBOARD II
256K RAM card
less memory chips
includes test software
Price:

$99.95

SASI Interface for
BB I and Xerox 820 I
Includes pcb with components,
BIOS, Formatter. and Sysgen.
Winchester formatter automatically
assigns alternate track(s) for track(s)
with bad sector(s). Using the Xebec
controller version F.
Price:

$99.95

Ask us about a biosfor CP/M 3.0!!!
Banked version plus time and date
clock for the Bigboard II.

Meet me at SOG for a systems
generation workshop and good
deals on software.

ANDYBAKKERS
De Gervelink 12
7591 DT Denekamp
The Netherlands
(,,31-5413-2488)
Please pay with US-$ Money Order.

31

Create graphics masterpieces with •••

()~mCranJt

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.
KGRAPH™ enables quick and easy creation of business
KBOARD™ is the full-screen graphics editor for your
graphics including horizontal and vertical bar charts, pie
Kaypro computer. Create graphic screens, save and recall
charts and xy plots (scatter-graphs) - KGRAPH uses hand
them to and from disk. Layout forms, design logos, draw
entered data or reads numerical data from just about any
pictures. It's easy and fun to use!
source including dBase II, spreadsheet, Mbasic and
Wordstar files.
KBRIEFTM produces electronic on-screen "slide shows" with absolutely
no programming required! KGRAPH and KBOARD files are
easily sequenced using nine special effects!

REMBRANDT is complete with printer routines so graphics can be reproduced on virtually every
dot-matrix or daisy-wheel printer.
REMBRANDT, the Complete Business Graphics Toolkit costs Just 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 SZ9.951
READ, WRITE and FORMAT _ore Ihan 25 different
types of disks ,Including IBM PC-DOS/MI-DOSJ with

wamv MJiailM

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

Are you tired of trying to find your favorite software package in K.-ypro format? Would you like to use your
K.,..ro generated Wordstar files, dBase II data and spreadsheet files on the IBM-PC at work (and vice-versa)?
Do you want to trade public domain software with a friend who owns an Osborne?

M.DIA MASTER gives your KilJpro instant access to program and data files in over 25 disk formats including:
Osborne SO & DO
IBM PC-DOS 1.0 & up
IBM PC-DOS 2.0 & up
IBM CP/M-S6
Morrow MD2
Systelll

LNW-SO
TRS-SO with Omlkron CP/M
TR5-80 III w/Memory Merchant
TRS-SO IV with CP/M+
Heath ZI00
Heath w/Magnolla CP/M

Cromemr:o w/lnt'l Term
Cromemcl.l COOS SSDD
Cromemco COOS SSSD
TI Professional CP/M-86
Actrlx
Lobo Max-SO

Xerox S20 I SO
Xerox S20 II DO
Zenith Z90
DECVT1S0
NEC PC-SOOIA
Kaypro II

Now available for Kaypro 2 land III: All other models soon I
ORDERING INFORMAnON:

JII!i!!IiIiII

~

r,.~

G~. - ..

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

call TOLL FREE 24 hours:

800-8Z4-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

-

aM

_

_

'w _ _

~

T E C

H

N

0

LOG

I E S,

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

INC.

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

Kaypro Column
By Dave Thompson

William Fankboner stirred up a good
deal of controversy with his letter in Issue #21. A number of folks suggested
that if he didn't like our documentation,
then he should do something about it.
Well, he did. Very nicely, I might add.
Figure 1 is a copy of the illustration that
he drew to show the II t04 modifications.
We have put it in the latest Pro-8 manual
and we are publishing it here.
Is It A 11-831
Before you start digging into your
board, make sure your Kaypro II-83 is
really a II at heart. Remove the top from
your Kaypro and look closely at the
board. There will be two 20-pin ICs with
paper stuck on top. The one nearest the
front of the computer will be marked 81149 or 81-232. 81-149 means you have all
board. 81-232 means you have a 4 board.
(If you have neither, then you have an 84
board.)
If you have a 4-83 board you don't
need to modify or purchase anything to
use two 390K drives (double-sided, double density). Just get a formatter from
someone who has a 4-83, and you are on
your way. Or you can purchase a Pro-8
ROM and run any mix of single-sided,
double-sided, or quad density disks. If
you purchase or build a decoder board,
then you can use three or four drives
rather than just two. (See our ad for info
on the Pro-8 version 2. Dana's made it
even better.)
If you have a II-83 board (81-149) you'll
need to do the II to 4 upgrade before you
can use the Pro-Monitor 4 or the Pro-8.
\Ve have the 74504 ICs for $1.50 each,
postpaid.
5MHz Revisited
This is another spot where a picture is
worth at least a thousand words. Most
people who are planning on speeding up
their 83 Kaypro II or 4 get a plug-in board
from someone, and off they go. The
boards usually cost between $75 and
$100.
Otherwise you can add the jumpers
shown in Figure 2 (or Figure 3 if you are
unsocketed) and spend your money on a
faster ROM (only needed if you really
have a II, see above) and Z80B. We have
the Z80Bs for $12. For a faster ROM you
have your choice of the Pro-Monitor II,

Pro-Monitor 4 (if you have a 4 or are doing the II to 4 upgrade in Figure 1), or
Pro-8.
Double Duty
A lot of folks do the speedup and the
Pro-8 at the same time, since the Pro-8
ROM is a fast part. I highly recommend
that you do the II to 4 upgrade (if necessary) first. Connect your board to the
power supply, drives, etc. to check out
your work.
Once you've verified that the Pro-8 is
running, then do the speedup. If there's
a problem, you won't have to check both
mods to find it.
One part of the speedup that many
people leave out (including the speedup
kit manufacturers) is the CAS-MUX
change. You could do the CAS-MUX
change even if you aren't speeding up
your system. Your Kaypro will run more
solidly at 2.5MHz after this simple
change.
IBM's Kaypro Clone
I understand that at a Washington,
D.C. show during the first week of
March, Kaypro displayed its 286i AT
clone. IBM had a very large booth, but no
ATs to demonstrate. Some people (wise
guys, no doubt) stopped at the IBM
booth asking to see the Kaypro clone.
IBM didn't see any humor in the question, no humor at all. However, the story
is definitely generating some chuckles
around Kaypro.
A lot of anxious people placed orders
for the 286i contingent on delivery within 90 days. It seems they had tried placing orders with IBM, but the delivery
dates were too far out (and who knows if
an IBM will work-what with their reputation and all ... ).
The rumor I'm hearing is that IBM has
warehouses full of XTs because sales of
the 8088 system with a winnie died when
the AT was announced. So, hoping to
clean out the XTs, IBM stopped shipping
the hard disk version of the AT. But dealers were adding winnies to the floppybased ATs, so the XTs still sat.
Finally, IBM simply shut down all AT
shipments in hopes that within nine
months the XTs will disappear. Those
warehouses full of XTs might be just the
medicine for Kaypro's financial ills.

Micro Cornucopia, Number 24, June-July 1985

286i
Speaking of Kaypro's AT clone, I
thought you'd like some details. The 286i
retails for $4550. It comes with 512K of
RAM expandable to 15 meg. (Yeah, I
know, there is absolutely no way anyone
could ever use or afford 15 meg of RAM,
but then I felt that way about 256K just a
year ago.) The system comes with color
graphics standard (it's not standard on
the AT), MicroPro software, and 8 slots,
5 of them empty.
It comes with two floppies, 1.2 meg
each. The drives can supposedly read
360K disks, but as far as I understand
they can't write them. A number of
shops have started offering to "upgrade" your AT to 360K drives so you'll
have total compatibility with PCs and all
those warehoused XTs.
The 286i comes with a built-in hard
disk controller card. Kaypro is refusing
to get into the hard disk battle, so it is
letting you add your own. I'll be taking a
look at the drive market to see if there are
any reasonably priced drives that are also dependable.
I saw Kaypro's AT clone at the West
Coast Computer Faire and was surprised
at how close a copy it is to the real AT. If
you saw both of them with their lids off,
you'd be excused for not knowing which
one was which. The physical design of
the 286i appears identical to the AT.
Kaypro has already shipped about 500
units (as of early April) with major shipments scheduled for June 1.
Kaypro Sales
Kaypro sales says that its number one
product (about 60-70 per day) is the 2X
Business Pack. The second most popular
product is the K16. They announced that
the K16/2 (has two 360K floppies, no
winchester) is $2550 vrs. about $3200 for
the K16 with one floppy and a 10 meg
winnie.
K16 Problems
A number of K16s, both winchester
and floppy based units, have video circuits that go to lunch on random occasions (we're not talking short coffee
break here). Those displays that are flaky
appear to be very sensitive to static elec(continued on page 35)

33

,...w:
.....
,-- .. -- --

...
- --.
-- . ...
- ........
-.- -...., - --

y . . . . . . . . ., . . . . . , . . . . . . .

.... •

••

u '-"'':'

-,-..
•
,

__

....

_

£,J.&,. ~u.:.

~

_

'J

_...

SUPPLY STORE

_

.:w.:w;.".,:'

SPECIALS

FOR YOUR KAYPRO
Electronic RAM disk and Printer Buffer Combination-the
ultimate add..on for Kaypro 11,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.$e5:OO"" $395.00
512K
470K RAM disk 32K printer buffer -ese.CO- 545.00
512K
430K RAM disk 64K printer buffer ~ 545.00
1mb
942K RAM disk 64K printer bufferJ.;2ee.OO 795.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:
4M'IJen K aypro
Floppy Disk
RAM Disk
Recalc 14K Perfect Calc
9:31.25
1:17.78
9.38*
2.12*
Load LADDER. COM
Load Printer Buffer
24.61 *
20k file, 11 pages, 2586 words, usmg
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
Poly Spiral 1
17
4
11
PolySpiral2
out of stack
7
out of stack
Square Test
27
10
41
Four Bugs
78
6
NIA
(req. 4 turtles)
Times provided by The Lisp Company ... (note: out of stack indicates
inadequate implementation offttail 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 ..~ 199.95
A NEW DIMENSION FOR KAYPRO COMPUTERS: Color
Graphics Board. Features 16 colors, 32 sprites, 256x192 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 II, 4, 2 ..84, 2X, 4 ..84,
10 &. Robie, ............................................. ~ 145.00
INSTANT GRAPHER 2.1 (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 ptjmef ............................ ....$59.eo- $40.00

Mag Media Disks:
SSDD ...................... $20.00 box of 10
DSDD ..................... $24.00 box of 10
100 SSDD Bulk ........................... $160.00
These are great disks! You will love them! We
have run the SSDD on DSQD without a problem.
64k Dynamic RAM Chips:
2ooNS ................................ $1.75 ea.
TMS 9918 Color Chip
& Crystal............................ 29.95
Infocom ADVENTURE Games
Kaypro or CP/M 8" Available
2
3
3
4
4
4
2
2
2
3
3
1
2
2
3

Zork 1 ...................................... $34.95
Zork 2 . .. . .. .. . .... . .. .. . .. .. ... .... . ... . ... 39.95
Zork 3...................................... 39.95
Deadline................................... 44.95
Starcross................................... 44.95
Suspended................................. 44.95
Witness.................................... 44.95
Planetfall................................... 44.95
Enchanter ................................. 44.95
Infidel...................................... 39.95
Sorcerer.................................... 39.95
Seastalker.................................. 34.95
Cutthroats................................. 34.95
Hitchhikers ............................... 34.95
Suspect..................................... 39.95
LEVELS: 1=Jr., 2=Standard,
3=Advanced, 4=Expert
Invisiclues ................................ $7.95 ea.

6MHZ ZSO Support Chips
Z80B CPU ........ , ........................... $12.00
Z80B PIO ................. ~ . . . . . . . . . . . . . . . . . . . 12.00
Z80B SIO/O ... ...................... ,. . . .. .. 20.00
RF Modulator for Color Board
and TV operation ................ , ....... $25.00
MicroSphere's Composite video generators
allow connection of a STANDARD external
monitor to the Kaypro Computer. Custom
moni tors or modifications are not required.
Composite video generator:
Kaypro II and 4 ....................... $49.95
Kaypro 2,84, 4,84,
~~
2X and 10 ........................... $89.95

~ IBM,TTL Compatible Monitor Adapter, Kaypro
2,84, 4,84, 10 and 2X ............. $49.95

Zenith Monitors
ZVM 122 Composite Amber ....... $119.00
ZVM 123 Composite Green ....... $114.00
ZVM 124 IBM,TTL Amber ........ $179.00
ZVM 135 Composite Color IRGBIGreen
Hi Res. . ...................... $500.00

~.

Micro~~

~.

MicroSphere, Inc.
..,.
-

p.o. Box 1221
Bend, Oregon 97709
503 ..388.. 1194
9 ..5 Pacific Time
Dealer inquiries invited.

r==l

L:::Z:J

THE KA YPRO COLUMN _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 33)

tricity. If you shuffle across the rug and
touch any part of the K16-keyboard,
cabinet, printer cable-the screen image
disappears.
Kaypro purchased a static zapper and
installed it at the end of the assembly
line. Now that they're zapping all assembled units, it should stem the flow of
defective ones.
If you have the problem, as MicroSphere did, Kaypro will send you a new
video board. That swap didn't totally
cure MicroSphere's K16, but it made the
unit a lot less sensitive to static, and the
screen doesn't go away nearly as often.
Kaypro 2000
Just when you thought that Kaypro
had released all their new systems they'
surprise you with another (actually, this
is one they've been working on for well
over a year, so I can't say I'm too surprised).
Anyway, this one is an 11 pound system that's very similar to the Data General. Like the Data General it has the Citizen 31/2 inch drive and an 80 by 25 LCD
display. It runs 123 and flight simulator
and comes with the Star Burst software
package (whatever that is). Screen contrast (a real problem for the LCD units) is
supposed to be better than on the early
Data General displays.
The 2000 comes with batteries (4 hrs.
per charge), charger, 256K of RAM, and
a removable keyboard for $1995.

They are finishing up a separate base
unit that will include a power supply,
standard video, and a 360K 51/4" drive,
and they will also offer a built-in 1200
baud modem.
84 Video Fix
The Kaypro 2-84 and 4-84 have a very
slow video scroll because the processor
is readdressing video RAM every time it
sends it a character. This is slow. So
slow, in fact, that some can't display serial data at 1200 baud without dropping
characters. Plus, an original Kaypro II
running at 4MHz is a lot snappier than
the new 2s because the new processor is
spending so much of its time dinking
around in screen memory. (Let's see
now, tell the 6845 that I'm going to send
a character to RAM, send a couple bytes
of address, and send the character. Now
tell the 6845 that I'm going to send a
character to RAM ... )
However, the 6845 video controller (or
pin compatible 6545) is very smart. It
knows how to automatically increment
the video RAM address so the processor
can dump characters into video RAM
just as fast as it can output them. So why
didn't Kaypro take advantage of this feature? Bad timing.
Some video controllers work just fine
in this auto-increment mode. Others get
out of step, seem to lose track of what
the processor is doing, and characters
'start showing up in strange places. It's

Figure 2

f

MONITOR

ROM

Z808

• ••

Figure 1 - Kaypro /I To Kaypro 4 Upgrade

12:3 4 5

FAST

this timing problem that Kaypro was
trying to avoid when they wrote the very
slow video code.
Remember the slow disk write code on
the old 11-83 and 4-83? That was another
example of a hardware timing problem
that they tried to solve by slowing down
the software. They fixed the hardware
with the modification to U87 (see issue
#11), but the only way to get around the
slow code is with a Pro-Monitor.
Anyway, there is still a video timing
problem on the 84 boards, which makes
the choice of video controller very important. On the Pro-884 Max ROM we
give you a choice of fast or slow video. If
your controller and processor work well
together, then you can use the fast video
(the system acts like it's running
10MHz). If not, then you use the slow.
You'll see garbage on the screen if fast
doesn't work (though the file you are editing will be clean).
With all this in mind, you'll understand why I was excited when Chuck
Weingart called to say he had fixed his
garbagy video. Cold.
He replaced his original 6845 with a
faster 6545A. Then he replaced the Z80A
with a Z80B. Separately, neither helped,
but together they work flawlessly. No
guarantees, of course, but when you see
how responsive the Kaypro becomes
with the fast scroll you'll understand
what drove Chuck to find a solution.

uu~iuu
\

(Make these changes if your original monitor ROM is marked 81-149.)
Heavy solid lines show the three jumpers you need to add on tht top
of the board. The dotted line is a jumper that goes underneath the
board from U73 pin 6 to /6 pin 32. There are asterisks ( ..) next to
the three pins that must be pulled up before you connect jumpers
to them. (Don't forget to change U73 from a 74L504 to a 74504.)._

CUT PINS

Figure 3 - If U66 is soldered

un

P74LS24

ZI' PI"

f __. . .

34

u5· ....

32

-----_.•

U5I L..f_ _-I

,",
3 4

5

\

~e_:u_B

U47 '"--_ _ _ _--' un!L_ _ _

Micro Cornucopia, Number 24, June-July 1985

---'I""

___

lf_7~_~

fL.___

_ _ _ _....I

35

Soldering: The First Steps
535 NW 15th
Corvallis OR 97330

By Lewis Sternberg

One of these days you'll want to do
an upgrade, and good soldering techniques will save you time and money.
What You'll Need
Solder
Soldering iron·
Sponge
Forceps
Knife
Diagonal wire cutter
Wire stripper
Desoldering tool
Isopropyl alcohol
Small stiff plastic brush
Luck

Solder
The solder should be 60/40 with multiple core rosin flux. (Flux facilitates flowing.) Don't use acid core solder-the
acid will corrode the joint.

Editor's note: Cheap solder (i.e., 50150),
large old irons, corroded tips, and tins of flux
(even radio flux) are no-no's. The only thing
wrong with this article is that Lewis can't
take a bit botter to you (it's a baseball bat with
spikes commonly used to straighten out programmers who write buggy code) when you
use acid flux and a plumber's torch on your
board.
When you purchase a new soldering tool,
read the instructions on tinning the tip. Tinning the tip properly is almost as important
as using the correct solder. I prefer an iron tip
instead of copper, as they don't corrode as
quickly. But with either tip, you must tin the
tip (coat it with solder) the instant it is hot
enough to melt the solder.
Irons, Not Guns
For $10 you can get a 15 watt pencil
iron or one with a 15/30 watt switch.
More watts heat the iron faster and can
handle heavier soldering jobs, but most
professionals use 15 watt units (or soldering stations) exclusively.
If you can afford it, a Weller soldering
station is the best. It has a built-in stand,
interchangeable temperature controlled
tips, and an isolation transformer.
Soldering guns are too hot, too clumsy, and they are dangerous to ICs. Guns
are for old Heathkit radios and subway
riders, not for PC boards.

36

Sponge, Etc.
Use a clean, damp sponge to remove
old solder and burned flux, which prevent new solder from flowing properly.
You'll also need hand tools-forceps
(hemostats), an X-acto type knife, diagonal cutting pliers, and a wire stripping
tool. Also, a little vice is handy for holding small parts. (A little vice might be
kinda fun if they don't put the clamps to
you.)
If you never make mistakes and never
change circuits, then you won't need a
desoldering tool. I do. My favorite is a
"Solda-pullit" desoldering pump. The
conductive model doesn't hold a static
charge, so it won't zorch those spendy
little ICs.
Wire
You'll need two kinds: stranded and
solid. Solid wire is easier to use, but
stranded wire is best if the wires will be
flexed.
Insulation
You can buy wire insulated with either
enamel, plastic, or teflon. I strongly recommend teflon. It doesn't scratch off,
isn't too expensive, and doesn't smell
bad. My favorite is Wire-Wrap wire.
Surface Preparation
Soldering involves a strange alchemy
of several metals (copper, tin, lead) and
flux.
There's no room for dirt, oxidized solder, or burned flux on the tip of your iron
or on your circuits. Quickly wipe the
iron's tip across a damp sponge when it
first reaches soldering temperature and
then immediately coat the tip lightly
with solder. You will need to repeat the
wiping and coating process while you
are working so that the tip remains
bright and shiny.
Clean up the circuit with isopropyl alcohol and a stiff plastic brush. Isopropyl
alcohol evaporates readily so you won't
need to dry off the board, but this alcohol
is not good to breathe, so work in a well
ventilated place, preferably outdoors. If
the joint you're soldering is really corroded, it may be necessary to scrape it
clean with a knife or small file.
Remember, the first thing that gets
soldered is the iron. When it gets hot

enough to liquefy the old solder, clean
the tip with the sponge.
Also, solder is miserable glue. Make
sure the pieces being soldered don't depend on the solder to stay together.
Surgery
Assemble your tools and parts on a
clean work surface (Formica is very
good) in a well-lit area. Prepare the surfaces for soldering. (For your first few
solder joints try something disposable,
like two pieces of wire.)
While the soldering iron is heating up,
cut off a piece of solder 5" to 50" long.
Wrap it around your index finger so it's
firm but doesn't cut off your circulation.
Extend it about an inch from your finger.
Test the temperature of the iron by
touching the tip with the end of your solder. The solder should melt immediately
on contact. If it doesn't, wait a bit.
As soon as the tip's hot enough (and
it's bright and shiny), touch the tip of the
iron to the surface to be soldered. Take
your strand of solder and touch it to the
tip of the iron as close to the soldering
surface as possible. As soon as the liquid
solder wicks onto the surface, remove
the soldering iron and inspect your
work. The solder should be hard already, and should look like the wax
around the wick of a newly lit candle.
You shouldn't be able to tell where the
solder ends and the wire begins.
If a solder blob is just sitting on top of
the joint, then the joint didn't get hot
enough. This situation is called "the cold
solder joint." Experts ruin their eyes
looking for cold joints before (or sometimes after) they apply power to newly
assembled boards.
Unsoldering
The trick to unsoldering ICs is to get
the joint good and hot (even use a little
added solder to help conduct the heat
AND KEEP YOUR TIP CLEAN AND
SHINY). Then force the Solda-pullit
(solder sucker) down over the top of the
iron, jerk the iron out of the way, and hit
the button on the sucker. Once you get
your timing down on this operation you
can sometimes lift 16-pin ICs off the
board with your fingers after you've finished. Usually a couple of pins will still
stick after the first pass, and you can ei-

Micro Cornucopia, Number 24, June-July 1985

ther heat the holes and try to wiggle the
chip out, or res older the stubborn pins
and then use the solder sucker again.
If you don't plan to reuse the IC, you
can cheat by simply cutting all the pins
off the chip and then remove the pins
one by one by heating them and then
pulling them out.
Heat Damage
ICs, transistors, diodes, and plastic of
all kinds can be damaged by high temperatures. If you know that it's going to
take more than one second to solder a
joint-for example where a semiconductor lead is soldered to a large ground
line-then "heat sink" the semiconductor's· leads by clamping a forceps between the component and the joint.
Finally
Now that you've read all this you're
probably wondering if soldering is totally beyond you. You've got to get a tiny
joint hot enough to take solder without
cooking a delicate board or Ie.
.
But are you going to hang up your new
iron and trudge down to your local computer shop for that long-anticipated 5
MHz speed-up? Of course not! At least
not without a fight.
You just need a little heat and a little
practice (which is what they told you
when you bought the yogurt maker last
year). Just get a surplus PC board with
ICs soldered to it ($5 max at a swap meet)
and away you go. Try adding components to the board. Try pulling up single
pins and running jumpers to other pins
or pads. Then, for your final exam try
unsoldering several ICs from the board
without damaging them and without
lifting runs on the board. Pretty soon,
you'll be an expert.

•••

/

~ ~.

DIABLO ~ (H-P 2602)
RS-232
STORE DEMO LETTER QUALITY
25 CPS WITH SERVICE MANUAL
TRACTOR FEED WITH 620 PURCHASE

$495.00
$ 49.00

DIABLO ~ 45 CPS
RS-232
STORE DEMO
45 CPS LETTER QUALITY

$995.00

Z-12S 9X9 DOT MATRIX 10, 12, 13.2, 16.5 CPI
RS-232 150 CPS WITH BLOCK GRAPHICS
95 ASCII CHARACTERS STORE DEMO
$495.00
KEYBOARD 113 KEYS B BIT ASCII
PARALLEL OUTPUT WITH CASE
AND COMPLETE DOCUMENTATION

$40.00

SABOO-2 DISK DRIVE
CLEAN - USED
$65.00
SA8S0 DISK DRIVE
CLEAN - USED
$149.00
STANDARb MOUNTING - GUARANTEED 60 DAYS
CABINET FOR ABOVE HOLDS TWO DRIVES
POWER WIRING COMPLETEED FOR TWO SABoo
TWO FANS AND INPUT AC WIRING DONE
20 X 9 1/2 X 17 DEEP

$60.00

POWER SUPPLY FOR TWO DRIVES (SWITCHING)
WILL POWER DRIVES AND SBC 6 X B X 2 1/2
5VDC @ 8 AMPS, +12VDC, -12VDC, -5VDC @
$60.00
.5 AMPS EA AND 24VDC @ 2 AMPS
SHUGART ~ DRIVE PARTS
SABOO HEAD
SABOO STEPPER
SABoO-2 LOGIC BRD NON-WORKING
SABOO-2 LOGIC BRD WORKING
SA850 HEAD AND STEPPER ASSY (BI OR TRI)
SAB50 LOGIC BRD NON-WORKING (BI OR TRI)
SA850 LOGIC BRD WORKING (BI OR TRI)
SABOO OR SA850 SPINDLE BEARINGS (SET)
SABOO OR SAB50 INDEX LED (SET)
OTHER PARTS ON REQUEST

$15.00
$10.00
$10.00
$35.00
$60.00
$30.00
$70.00
$ 3.00
$ 3.00

SA800 ALIGNMENT AND CLEANING
SAB50 ALIGNMENT AND CLEANING

$15.00
$25.00

.ZBOA PARTS CPU, CTC, SIO/1, 1771, 2716

$ 2.00

DIABLO PRINT WHEELS
COURIER, 10, ELITE 12, COURIER 72
$ 3.00
6 FOR $15.00
CASCADE ELECTRONICS
ROUTE 1 BOX B
RANDOLPH MN 55065
507-645-7997

FREE
SHIPPING
ON OVER $40.00

/ .~
//

COD ADD $2
CREDIT CARD ADD 5%
MN ADD 6%
LIMITED TO STOCK ON HAND
EVENING CALL OK

Micro Cornucopia, Number 24, June-July 1985 ' - - - - - - - - - - - - - - - - - - - - - - - - - -.....

Eight Inch Drives On The Kaypro.
By Dana Cotant
I've received numerous requests for
an eight inch adapter board for the Kaypro. A couple of boards are already available, but they're limited to single density, and usually support only one eight
inch drive. I wanted a system that would
support two eight inch drives-singlesided single and double density, and
double-sided double density. And I
wanted to make the same upgrade available for Big Board users, so they could
use five and eight inch drives simultaneously. Well, I've done it.
Why Eight?
There's only one "standard" format in
floppy disk drives-an eight inch single
density called IBM 3740. CP/M public
domain software is almost always distributed in this format (SIGM and CPMUG software is distributed only in IBM
3740), and anyone marketing CP/M software provides it first in IBM 3740. So if
your computer can read and write the
standard, you can obtain virtually any
CP /M software.
More Storage
Another advantage of eight inch
drives is storage capacity. Until the recent development of high density five
inch drives, eight inch drives offered the
highest capacity of any floppy disk
drives. On a single-sided disk, single
density offers only 241K, but double
density increases that to about 600K.
Double-sided double density disks have
a capacity of over 1200K (1.2 Meg.).
Disk I/O is faster on eight inch drives.
Five inch double density drives transfer
data to and from the processor at a rate of
250 Kbits per second. Eight inch double
density do it twice as fast. The faster
transfer rate provides a dramatic speed
improvement in disk operations.
Hardware
The most unusual feature of the board
is the two sets of drivers for the interface
lines. One set powers the five inch
drives, and the other set powers the
eight inch drives. For this reason, both
types of drives have their own terminators. This eliminates compromises in the
terminator's position on the cable. It also
allows the Kaypro to be disconnected
from the eight inch drives for easy portability.

38

Micro C Staff

The heart of the board is an SMC 9229
which handles data separation, write
precompensation, and head load timing.
I chose it because of its similarity to the
9216 data separator used in standard
Kaypros. It is 100 percent digital, so
there is no chance of drift from analog
components. Its digital design also lets
you change write precompensation
without an oscilloscope.
The board can be installed with no soldering, and provides all the signals for
the eight inch and five inch interfaces as
well as four drive select signals. Drives
A: and B: are the Kaypro five inch drives,
and C: and D: can be either five inch or
eight inch drives.
The eight inch drives you use can be
any kind, but they'll need their own
power supply because their requirements cannot be met by the Kaypro's
supply.
Software
The software is ROM based and Pro-8
compatible.
The single-sided double density format uses 16 512 byte sectors for a total
data capacity of 596K. This format is also
compatible with the Big Board II and the
Slicer.
The double-sided double density format has the same sector configuration as
the single-sided double density, but every other track is on the opposite side of
the disk. This "cylindrical" configuration is the fastest method of implementing double-sided operation since it reduces the amount of track to track
seeking required. All formats including
eight inch are automatically determined
when the disk is accessed.
The ROM
The ROM for the Big Board is much
closer to the Kaypro ROM than to the
PFM monitor. Most of the low and intermediate device drivers are located and
executed in ROM. Thus Big Board owners ca~ have a 63K CP/M system even
with double density and multiple drive
types.
Both the Big Board software and the
Pro-8 support the same disk formats.
Five inch 48 tpi drive capacities are 191K
(single-sided) and 390K (double-sided).
Five inch 96 tpi drives have a 784K capacity.

The eight inch formats are the same as
previously described. The drive types
can be mixed and in any order. CP/M can
be booted from either five inch or eight
inch in any of the six formats.
Operation
At reset, the monitor sets up the keyboard and the floppy disk controller for
interrupts. Then the processor waits for
the first interrupt. If there's a disk in
drive A:, the monitor autoboots CP/M. If
you hit any key before a disk is inserted
into drive A:, a debugging monitor is
loaded into RAM and executed.
The debugger is a subset of PFM with
memory dump, edit, and port I/O commands. You also have access to all the
ROM based functions from the RAM
based debugger.
The BIOS supports interrupt mode 2
including CTC disk drive time out and
interrupt driven keyboard operation. It
also implements the I/O byte. Other options include serial or parallel printer
drivers and function key translation on
keyboards that send special characters
with bit seven set.
Sy~tem

Requirements
New Kaypros (2-84, 4-84, or 2X) are
ready to run the board and software
without any modifications. Old Kaypro
4s or Kaypros that have already been upgraded to a Kaypro 8 can run the board
with no modification for single density
eight inch, but will need to be sped up to
4 or 5MHz to run eight inch double density. Kaypro 2s will also need to be upgraded to Kaypro 4. Instructions for the
upgrades are included with the board.
Big Boards will also need to be running
at 4MHz or faster to run double density
eight inch. Since the adapter board has
its own 16MHz oscillator, it is very easy
to upgrade to 4MHz.
The system will reside in the first two
ROM sockets. If you want, you can plug
a modified PFM ROM (that will run with
the adapter board in place) into the third
ROM socket. It will be available soon
from Micro C. It will operate single density eight inch only. ZCPR 1 in ROM will
also be available for the fourth ROM
socket.
The modifications are outlined in the
system manual.

Micro Cornucopia, Number 24, June-July 1985

PROGRAMMER/4+
Other Considerations
The market is swamped with inexpensive disk drives you can use with this
system. Eight inch single-sided drives
are selling for less than $100, and double-sided for about $200. All of the five
inch drive types go for around $100. Stay
away from Remex and Tandon 100-4
drives.
You can pick up a switching power
supply for less than $50, but make sure
you know the power requirements of
your drives before you buy the power
supply. Tandon 848 drives require more
+24V than other eight inch drives. If you
are a novice at putting together disk
drive subsystems you might want to
purchase an enclosure with the power
supply and cables included.
Micro Cornucopia cannot possibly
support the large number of different
double density formats. According to
Brian Garrison of Emerald Microware,
Micro Solutions is working on a version
of their UNIFORM program to support
some other eight inch formats, but it is
not yet available.
In the meantime, if you are transferring software between different eight
inch computers, go to IBM 3740 single
density format. After all, that's the reason for having a standard format.

•••

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

Micro Cornucopia, Number 24, June-July 1985

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

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

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

_III

39

Kaypro BIOS Patch
By Ray Rizzuto

I recently bought a quad-density,
double:"sided drive and installed it as my
A drive, leaving my B drive single-sided.
I had previously modified my Kaypro for
new drives, and had been using the Pro8 ROM for several months.
Once I had the system all SYSGENed,
I started transferring information from
my single-sided disks to the quad drive.
Trouble. Occasionally, the drive "locked
up" while accessing the single-sided
drive. I checked out back issues of Micro
C, and found that someone had written
about the same problem (Issue 21, Tech
Tips).
I couldn't find the pattern-but I did
notice that it locked up only on drive B. I
even had the problem while using Wordstar to edit a file on drive B.
Later I surmised that my Kaypro was
getting stuck trying to read the back of
the single-sided drive. I put my logic
probe on the side select signal (E40) during a file transfer, and found that .the

450 Forrest Ave. Apt. N311 '
Norristown PA 19401

lock-up occurred after the system accessed the back side of drive A and then
tried to write to drive B. Although the
disk in B is single-sided, the side select
was still set for the back side. So the system looks on the back side of a singlesided disk for the next sector, and not
finding it, simply times out (15 seconds),
and then resets the drive .. Once the drive
is reset, the controller looks on the front
side of the disk and away it goes.

correct track and sector before doing a
read or write and selects the back if the
correct sector is on the back side.
The patch does slow down the first access to a reselected drive if the wrong
side is selected (e.g., A bottom = > B top
= > Atop), butthedelayisn'tanywhere
near the 15 seconds you get otherwise.
The following listing is the patch I
used. It also contains the LISTST patch
which is already present in the CP/M
configured by PRO-8SET.

Fix

I patched CP/M's BIOS (basic input/
output system) to always select the front
side when it accesses a drive. If the track
and sector are not there, then the system
looks on the back, side. So I patched the
BIOS call SELDSK (select disk) so it always selects the front side of the disk.
Of course, if you really need to read or
write the back side of a disk, this BIOS
patch might seem counter productive,
but'the drive controller checks for the

•••

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
desolderlng·and are compatlble,wlth the Kaypro's existing hardware and software.
.
.
With the AT-1 installed, the video control codes are
compatible with those of the Kaypro 2, 3, and 10
models, the popular Televideo 925 terminal and the
IBM PC (Co Power 88). A patCh program is also
provided to automatically upgrade the standard
software that comes with the Kaypro to use these
new attributes.
The AT-1 comes ready to install, complete with
connectors; ,programs to upgrade the operating
system; demo, test, and configuration programs, plus
a detailed instruction booklet. The AT-1 and GR-1
package is only $179.95. The AT-1 alone is $149.95
and the GR-1 alone only $49.95. California residents
add appropriate sales tax. Order yours today.
DEALER INQUIRIES INVITED.

JFN

Industries

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

40

Micro Cornucopia, Number 24, June-July 1985

Kaypro LISTST BIOS and ProB Disk Patch (KPA TCH.ASM)
The Kaypro IV has a bug in the BIOS function 14, L1STST.
This bug causes the print buffer function in "D"7nn not to Nork
properly.
According to the DRI Alteration 6uide, this function is
supposed to return a value of OFFH in regi ster A if the printer
is available, and 00 if it is busy. The Kaypro BIOS (Nhich in
turn calls the RO") does not return the zero in A, but it does
return Nith the zero FLA6 set. This can be fixed by the BIOS
patch .hich folloNs:
The di sk patch forces the selecti on of the top surface of a di sk
Nhenever the drives are selected through bios call SELDSK. This
should fix the problel of a single sided drive (or a single sided
, disk in a double sided drive) "hanging the systea .hen transferring
; data frol a double si ded dri ve,
;
; 1/8/85 Ray Rizzuto
FAOO =

BIOS
EQU
OFAOOH; Beginning of BIOS jUlP vectors
; THESE 2 EQUATES ARE SPECIFIC TO THE CP" FOR A KAYPRO 11/4
L1STST
EQU
BIOS + 165H
SELDSK
EQU
BIOS + 180H
;
; BIOSO = BOOT (COLD BOOTI
;
EQU
BIOS15
BIOS + 3 • 15
EQU
BIOS9
BIOS + 3 • 9

FB65 =
FB80 =

FA2D =
FA1B =
FA2D
FA2D C3EEF9

OR6
J"P

BIOS15
PATCH

FAtB
FA1B C3F4F9

ORG
J"P

BIOS9
DSKPAT

; Put jUlp to patch here

; PATCH IS PUT AT THE END OF THE CCP. IF A TRANSIENT PROGRA" MKES USE' OF
: ALL OF THE CCP AREA, THESE PATCHES "AY BE DESTROYED. THIS IS AT BEST A
; "KLUDGE".
F9EE =

SPARE

EQU

F9EE
F9EE
F9Fl
F9F2
F9F3
F9F4
F9Fb
F9F8
F9FA

ORG
PATCH:
RNZ
IRA
RET
DSKPAT:
ANI
OUT
J"P

SPARE
CALL

CD65FB
CO
AF
C9
DB1C
E6FB
D31C
C380FB

A
IN
OFBH
lCH
SELDSK

BIDS - lB ; Hole for patch
LISTST
; Call the RO"
I OK except IIhen zero
; Clear accululator
; And return
lCH
; GET SYSTE" PORT
; LoliER SIDE SELECT
; RETURN TO SYSTE" PORT
; CONTINUE IIlTH NOR"AL DISK SELECT

Since the bug is in the BIOS, the patch requires
generating a nell version and placing it in the systea
tracks of your disk. To accolplish this, take the
follolling steps:
(1) Asselble the code above using AS" or "AC. The
output lIill be KPPATCH.HEX. Note that this file has all
text cOllented out, so it should asseable lIithout
; editing.
;
; (2) Use SYSGEN to get a copy of CP/" in lelory.
; To do this, insert a disk containing both SYSGEN
; and DDT into dri ve A. Then type:
;
•. SYSGEN

IIhen SYSGEN prolpts IIi th
SOURCE DRIVE NA"E lOR RETURN TO SKIP),
respond with an A. This lIill cause SYSGEN to
generate a copy of the systel tracks in 1011 RA".

IF YOU HAVE TWO

(3) When SYSGEN prolpts for the destination drive,
an slier lIith a RETURN to reboot. The CP/ft copy lIill
renin in RA".

OR MORE KAYPROS*

(4) Save the copy of CP/" to disk by typing:

THEY SHOULD TALK!

SAVE 36 CPft. CO"

(* & MORROWs OR XEROX 820-115 ALL IN THE SAME OFFICE.)

CONNECT THEM WITH THE LAN/ROVER™
The ADEVCO LAN/Rover is a full-feature Local Area Network system which enables KAYPRO CP/M computers to
work together. Information from disk drives (including
hard disks) can be exchanged with other computers (as
many as 60 computers on a network.)

• TRANSFER FILES TO OR FROM REMOTE DISK
DRIVES AND USE OTHER PRINTERS OVER
3,000 FEET AWAY.
• FULL SECURITY AVAILABLE WITH ENCODED
PASSWORDS AND USER PRIVILEGES.
• FIELD·PROVEN TECHNOLOGY IN OVER 1000
INSTALLATIONS.
Each system includes hardware. software. cabling.
full documentation and network management tips.
The LAN/Rover provides a low cost. finely engineered and reliable network for your KAYPRO and
other computers. Phone or write for details.

J.\

ADEVCO, INC.
3790 EI Camino Rea\. Palo Alto. CA 94306.415/493-7466
Kaypro. Morrow [,. Xerox are regIStered trademarks of the KAYPRO Corp.. MORROW DESIGNS. (" XEROX.

Micro Cornucopia, Number 24, June-July 1985

(5) Type the follolling cOllands exactly as they
appear:
;
;
;
;
;
;
;
;
;
;
;
;

,

DDT CP". CO"
IKPPATCH.HEI
R2580
Thi s causes DDT to load CP", CO", then overlay it
IIi th the patches. The "2580" is the offset required
to cOlpensate for the fact that lie are using a copy
loved to 1011 RA". Just to be sure, typer
LlFAD
and E
LlF?
You should see JIIP F9EE at the first address, and
the short subroutine at the second.
(6) Exit DDT lIith GO (that's a zero) or "C.
The patched copy IIi 11 renin in RA".
(7) NOli run SYSGEN again. This tile, respond to the
first prolpt lIith a RETURN (the systel is already
in RAil). At the second prolpt, you can either respond
lIith an "A", IIhich will load the systel onto the
systea tracks of the sue disk, or ·8· to load it onto
any disk you dl!sire to put in drive B.
End of Listing

41

Alternative Power Supply For The Kaypro
By Eric J. Tomey

7 Hart Street
San Rafael CA 94901

Micro Cornucopia Issue 16 contained
a letter asking about alternative power
supply requirements for a Kaypro. I read
this with interest since my electricity had
been off for three days straight.
I can read by the light of a kerosene
lantern, and the fire burns whether or
not there is electricity. I was ready to
work, but my Kaypro just gave me a
blank stare.
Your note about a battery powered
Kaypro stuck in my mind all through the
rest of the year, and just in the past few
weeks the power failed again. I immediatelyordered +12 volt 5 amp, +5 volt 5
amp, and -12 volt 1 amp voltage regulators. I scrounged around through the
basement to see what I had on hand:
some 12 gauge romex house wire with
three conductors, some aluminum sheet
metal from an old panel, a metal electrical box, some wire nuts, miscellaneous
pieces of wire, wire clamps, two heat
sinks, a matched 4-conductor plug set
(disk drive power type), and miscellaneous hardware and capacitors.

Getting Started
I hooked up a charger to myoId boat
battery, and then got to work designing
a battery backup power supply.
When the voltage regulators arrived I
started assembling. It took just an hour
to make a cover for the wiring box. Then
I used a mica insulator and heat sink
grease as I mounted the -12V regulator
and its heat sink to the cover. (Editor's
note: Most +5V and + 12V regulators can
be mounted directly to grounded heat
sinks without an insulator since their
cases are normally grounded.)
Hooking Up the Batteries
Since I needed two batteries, I took my
newly charged boat battery and hooked
it up to my car battery via jumper cables,
yielding a + 12 volt, common, and -12
volt contact.
I nervously connected the romex
house wire from the batteries to the voltage regulators, still remembering the last
automotive/microchip circuit design I
made that turned into a burning glob.

Then, testing the connection with my
voltmeter, I was pleased to find + 12, +5
and -12 volts, right where they were
supposed to be.
Kaypro Connections
I took the cover off my Kaypro and
found a good connection point for splicing into the power lines. These contacts,
conveniently labeled +5, ground, +12,
and -12, were easy to solder to.
With short lengths of 16-gauge multistrand wire I carefully connected a female plug to these contacts, using the
same plug configuration that the disk
drives have for +5, ground, and +12.
The -12 was input to the otherwise unused location.
Then I assembled the output from my
power supply to the male plug to match.
I chose the male/female plug arrangement to avoid inadvertently inserting
the wrong plug into a disk drive.
I left the Kaypro end of the plug loose
inside my system, meaning that I have to
take off the cover to connect up. It would

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" SSSD, Kaypro, Osborne Formats ........... $49
For other formats (sorry, no 96 TPI) add $5.
Shipping and handling ........................ $3
California residents add 6% sales tax
MasterC~rd

and Visa accepted

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

Write or call for further information

(Plu·Perfect SystemS)
BOX 1494 • IDYLLWILD, CA 92349 • 714-659-4432

be easy, though, to mount a connector
on the rear of the system so it is accessible from the outside.

added the cost of the parts I had around
the house, it probably wouldn't have
topped $40, excluding the batteries.

Testing My Work
After carefully examining all the battery connections, I took a deep breath
and made contact with the plugs. In a
few seconds I was rewarded with a message to insert a disk. After putting a disk
in, I made a few commands to fill up the
screen.
Unfortunately, the screen was all distorted and the display warped during
disk activity. I measured the voltages on
the main board and found +9. 5V on the
+12V contact, +5V and -12V supplies
were okay.
I had about 50 feet of wire between the
battery and the voltage regulators.
When I shortened the wire to approximately 10 feet, the + 12V supply increased to 11 V and everything worked
fine.
After finishing the project, I found that
my costs totalled $32.50. Even if I had

Parts List
1. 1 + 12 volt 5 amp voltage regulator
with heat sink
2. 1 +5 volt 5 amp voltage regulator with
heat sink
3. 1 -12 volt 1 amp voltage regulator
4. 3 0.33 mFd capacitors
5. 3 0.1 mFd capacitors
6. 1 male, 1 female 4-contact plug (disk
drive type)
7. several feet of 12 gauge (or heavier)
wire
8. wire nuts for #12 solid wire
9. length of #16 multi-strand wire for
connection to plugs
10. misc. hardware and metal box with
aluminum cover
11. two 12 volt batteries

•••

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 WordS tar or
dBASE II! Unlike other "keys", there's no limit on definition length.* Plus our advanced
XShift feature lets individual keys have up to 16 meanings.
XtraKey can also talk to your printer or video display. Change from pica to
elite while working on a spreadsheet. Address an envelope while in a document. Or call
up your own custom help or menu screens (almost like having windows!)
There's more! Built-in screen dump**, keypad redefinition**, clear screen, printer
on/off, definition chaining, program chaining, input pause and batch processing. All in
one, neat little package that uses less memory AND disk space than the leading program.
Now, for $39.95, aren't you ready for real key power?
* to available CP/M TPA ** XtraKey Custom versions for Kaypro (all models) & Gnat 10 only

X~ ~

XtraKey will run on CP/M 2.2 based computers. To order, send check or
money order for $39.95 ($49.95 for XtraKey Custom for Kaypro or Gnat 10)
plus $3.00 shipping (U.S. & Canada). California residents MUST also add 6%
sales tax. Specify make and model of computer and disk format. VISA and
MasterCard accepted.
CP/M, dBASE 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

Micro Cornucopia, Number 24, June-July 1985

It's like having a friend to help:
Customize WordSta~ for
- Faster screen response
- Optimal printer output
- Custom patches
Get started with Communications
- Transfer files across the country or
across the room
- Communication Software on disk
with Examples
Connect Equipment
- RS-232 & Handshaking explained
- Cable Connection Examples for
over 70 printers
FastFacts Command Reference
- Quick access to commands for
common programs
Learn CP/M® Shortcuts
- Commands with examples
- Turn your Kaypro into an electronic
typewriter with PIP
- Modify programs with DDT
Understand the great Public Domain
Software included on disk
- Catalog and Organize disks
- Time and Date stamp files without
a clock
- Writers & Disk Utilities
Programmers Reference
- Software & Hardware Interface
points
SLIPCASED KAYPRO COMPANION
BOOK AND DISK PACKAGE $35.00
PLUS WORDSTAR!l RECOVERY
PROGRAM TO SAVE FILES WHEN
DISK IS FULL OR WHEN OTHER
SAVE PROBLEMS OCCUR
WSFIXCOM a $30 value

r-l~::T,~~~~~~
2990 ATLANTIC AVE.
Penfield, NY 14526
716 377-0369
Master Card and Visa Accepted
$3.00 Postage, NY residents add local
tax

43

48 Lines On A BBI
By David Griesinger

Lexicon
60 Turner St.
Waltham MA 02156

This mod is lots of fun and results in a
computer which is wonderful for programming. The mod requires extensive
hardware changes, a bunch of software
patches, a reconfigurable editor (I use
PMATE), and a medium or high persistence monitor (an Amdec amber or any
P39 green). If your green monitor smears
badly when you scroll, it's P39. If it
doesn't. you'll need a different monitor.
Note: P4 and P31 are the standard short
persistence phosphors.
Background
The idea for this modification began
with some observations about my Amdec.
The horizontal scan lines were painfully noticeable. With full vertical height
all the letters were too high, and in normal mode (amber characters on black
background) each character was composed of small disconnected dots. In
black on amber mode the characters
looked fine, but the background was full
of disconnected lines. It seemed my

choice was either dotty or caged characters. I wanted a better solution.
I turned down the vertical height to
compress the scan lines, but the text
filled only a little more than half the
screen. I wondered if I could use interlaced scan to fill the missing scan lines.
Interlacing
Interlace doubles the number of vertical scan lines by slightly displacing the
scan pattern on alternating scans. In other words, instead of writing every horizan tal line every time down the screen, it
writes half the lines (1,3,5,7,9 ... ) on the
first pass, and then the other half (2,4,6,8
. .. ) on the second pass.
Interlace reduces effective scan rate
from 60Hz (60 times per second) to 30Hz,
which is why it shouldn't be attempted
with a short persistence monitor. If the
alternate frames are identical, the interlace simply fills out the missing space between scan lines, considerably improving the display.
You can interlace by adding 74LS157

to control the extra section ofUS1.
This puts an adjustable extra delay in
the vertical sync pulse every other
frame. This modification is simple, and
highly recommended before you tackle
"48 lines."
I work from the top of the board by
lifting pins and soldering jumpers to the
ICs themselves. This is fast and reversible, but it requires a temperature controlled soldering iron.
Assuming you have a fully socketed
BBI, the will, and the equipment, you
can make this modification.
Preliminary Instructions
I'll describe which pins to lift and
which connections to make by using a
table, beginning with U10, and working
from the front to the back of the board.
As you go, you'll find many of the
changes have already been done. So the
table is only about half as long as it looks.
Any pin which needs to be lifted
(pulled out of the socket) will be flagged
with an L. Connections are shown by "_"

oetween entries. The piggyback chips
get the same U numbers as the chips beneath them (but the piggyback's number
has an apostrophe appended to it).
If you're fast at stripping hook-up
wire, you can make these changes in an
evening.
24 Lines Interlaced
Piggyback a 74LS1S7 on usa, connecting pins 8 and 16 only. This chip is now

usa'.

If you follow Figure 1 and you're
lucky, you'll have adjustable interlace.
Set the pot so the scan lines just disappear in the middle of the screen.

48 Lines
The real pay-off to interlace is to use
every scan line, and display 48 lines of
text. You'll need to add more video
memory, and change the character ROM
addressing, the scroll register, and the
software.
The extra screen memory is simply
piggybacked on the existing screen

memory, and mapped from 2000h to
3800h. If you're using two or more 2716
ROMs in the BBI you'll have to copy
them to 2732s, since the remapping affects the ROM sockets. 2732As are a
good idea at4MHz anyway.
The monitor software can be patched,
but even without changing the ROM,
you can use the screen. Most editors can
be re-configured to use the whole
screen. PMATE is easy to reconfigure
and quick to scroll using the BBIOPATCH from Sage Microsystems. The
new system runs most old programs
without any changes-Pacman, Aliens,
and Games simply run in the top half of
the screen.
You need four more 2114 screen memories, two 74LS1S7s, and one 74LS138.
The lS7s piggyback on U49 and USO
(connected only to power and ground),
and the 138 piggybacks on U47. The
screen memories should be soldered (every pin except pin 8) to the chip underneath. The combination runs quite hot,
but seems to work. I tried CMOS 6514s

as screen memories, but they don't
work.
The Mod
Figure 2 is the complete 48 line modification including the changes for interlace.
(continued on page 47)

.....

GRAF 20

~ 64K Memory Chips!
~~~~¥ ~
150 nanosecond

GRAF 2.0 allows you to create amazing graphics on your dotmatrix printer. Features include:

*

Automatic bar chart and line graph generation

* Automatic scaling and labeling of both axes
* Ability to plot floating-point data obtained from most

*

4116 200ns
ONLY $.55

spreadsheets, word processors, or languages.
Extensive, 60-page illustrated User's Manual includes
examples showing how to do graphics from SuperCalc,
dBASE 11, MBASIC, and Turbo Pascal.

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

400.0

~t

TERMINAL CITY

GAMES BOOK

THEORY vs EXPERIMENT

~

Only $1.99 each!

3130.0

V

:00.0

.. .. only

$16.95! ....

11210.0

Z80A Support
tim.

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

(sec:onds)

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

MSC
301 North Harrison Street

Microcomputer
Systems
Consultants

CN 5279. Suite 228

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 5V•• 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

~

Princeton. New Jersey 08540

(7141895·5033

~.·'I

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

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.
f,"""",

Th. '~lIo",,", an ,red. . . . . . . .
tr.......... or 11'1. lroclLca'''' C~"'""'_ C,./lil. 0\'"1II11hwan:h• • I"SIC _ M,croSorl.
!lupere.lc - ~1 •• T.n. ' ..cal - 1I.x1aN1 1n1_' __ I, dlUl n • hhl(M'l_T.". lila ~ Zll~. It .. , , " ....." . . :.,..... 1101'1

203·928·3654

G reywolf MARKETING
NEW Computers with

800-2
Will

RUIl.

The Sanyo Video Boud

Software Features:
•

Clock/Calendar Board
($139.95 Value)

Plus Free
2561{ of Mcrnory
($120 Valuc)

$1395.00 Complete

Two Z·80A CPUs (main and secondary) with no·walt
mode and large 64KB RAM/4KB ROM memory
capacity lor last execution
High-resolution 640 )( 400·dot matrtX display with lull
graphics functions
ChOice of 33-hne or 40-hne text mode
CP/M operating system with editor. assembler and
all 'ilandard utllilles.
, Easy-Io·use Sanyo GraphiC BASIC
One (MBC 1200) or two (MBC 1250) Inlernal doubleSided. double-denSity. double-tracj(. 5',." slim-type
mini floppy disk drtves with 640KB formatted

PLUS FREE
Plus Free
Vidf'O Di~f>la.y Monitor
($125.00 Value)

for Sanyo MBC 550

$799

B-Bit Integrated Computer with
High-Resolution Display

100% disk compatibility across MS-OOS and
PC-DOS. including ability to read. write and

Ha.rdware ,Features:

format disks from many computers including Operates as a standard 555-2 with two 360K
the IBM PC,the OEC Rainbow, and Tandy cirives

2000
•

Flip a swilch ;u1l1 rtln your Stlper Sanyo System
Built-in RAM disk program offering disk with dual 811 K drives
access which is hundreds of times faster W k ' h S
•
or S WI'
anyo s New Video Graphics
than floppies
Board

capacity

•

Speclally·deslgned detachable keyboard with cOiled
cable for casler op~rallon
Interfaces for one CentrOniCs prtnter and
one RS·232 port

SortDir program to alphabetize and sort the Runs both MS· DOS 1.25 and MS-DOS 2.11
large directories that these drives can hold operating systems

•

ASCII Screen Dump program

*CASH PRICE ONLV*
Check '" advanc •. Add 3% lor VlSAlMC. No A.'ums.
ShlPClI"9 & H.I'(!II"V ch.rg. . win be Idded 10 tlcII Of'def.

j

ForcGmpl,I' lech"Ic.III1,,.Iure ••I'(! 'I" 10:
P.o. 1101 " '
PHONE OADEAS ONLY:
PulNlm. CT De:leO
2O~t2l-3&S4.

I
46

928-6555

SUPER SYSTEM

WORDSTAR 0 MAILMERGE
SPELLSTAR 0 CALCSTAR
INFOSTAR 0 BASIC

M Be 1200

or

•
•

nuns copy protected software. such as
Calendar Program. a personal datebook which Michtron's Demon Seed and Cash Man
displays a two-month calendar on the screen

Clock/Calendar Board

Certificate to purchase a top-selling data
Sanyo Software:
base. Personal Pearl. for only $99.95. a
savings of $200.00. Personal Pearl is a product Wordslar. Easywriter. Calcstar, Sanyo Basic.
of Pearlsoft. Inc.
MS-DOS 1.25. MS-DOS 2.11
EasyPac or StarPac (optiona')

Micro Cornucopia, Number 24, June-July 1985

Figure 1 - Chip Changes For An Adjustable Interlace

48 LINE VIDEO _ _ _ __

U10

(continued from page 45)

U11

P13L P12 solder
P3L -

U23P5 (or P11) ;this modifioation speeds up the display
U11P3L
15k in parallel with r5
U10P12

Test and readjust your monitor before oontinuing.

WrapUp
Plug in your new or old ROM in U68
and boot. If you use SWP you should
have already made the patches to the
video, and you'll be running right away.
If not, I'm making a new ROM available
which fits in the lower half of a 2732a.
You can plug it into socket U68.
The SWP monitor should be patched
as shown in Figure 3.
The steps with comments indicate
what to look for if you want to change
the source code in CRTOUT. You must
also change CRTBAS = 20h, CRTEND=38h, and CRTMEM=2000h.
Once you finish this mod, you'll have
a much friendlier programming environment.

•••

U21

P11 - U50'P1
P13L - U38P12

U37

P6 - U51P10

U38

P10L - U50'P4
P12 - U21P13L

U50'

P8
P1
P2
P3

U51

P5 - U50'P3
p6 - P8 - P9
P7 - .001uFd to P8
P7 - 6.8k + 10k trimpot to P16 (mount on top of ohip)
P10 - U37P6
P12 - U50'P2

-

P15 ;74LS157 solder P8 to U50P8 and P16 to U50P16
U21P11
U51P12
U51P5

Figure 2 - Interlace Wiring From The Interlace Modification

U9:

P1L-U10P4L-U21P1

U10: P3L-U21P4
P4L-U21P1-U9P1L
P12-U11P3L
P13L-U23P5
U11: P3L-U10P12
P5L
P6L

HIGH PERFORMANCE VIDEO
MONITOR

U21: P1-U10P4L-U9P1L ;character address reassign
P2-U22P12L
P4-U10P3L
p6-U22P10L
P11-U50'P1
P13L-U38P12
U22: P9-U37P5L-U36P3L ;LC5
P10L-U21P6
P11L-U23P9
P12L-U21P2
U23: P5-U10P13L
P9-U22P11L

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

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 BOARDI
NEW, SHIPPING WEIGHT 12 LBS

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

KEYBOARD & ENCLOSURE

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

Micro Cornucopia, Number 24, June-July 1985

U34: P10L-U49'P3

;soroll register re-wire

U35: P3-U49'P2
P6-U83P6
P7-U36P2L
P11-U48P5L
U36: P1L-P12-U37P2
P2L-U35P7
P3L-U37P5L-U22P9
P8-P11
P10-U48P6
Pll-P8
P12-P1L-U37P2
P15L-U37P3
U37: P2-U36P12-U36P1L
P3-U36P15L
;LC5
P5L-U36P3L-U22P9
P6-U51P10
U38: P10L-U50'P4
P12-U21P13L
U47: NO CHANGE
U47' :P1-U49' P4
P2-U50P4L
P4-P5-P8

;74LS138 MEMORY ENABLES

(Listing continued)

47

~~
CALENDAR/CLOCK

Windowing for CP/M!
$49.95 Basic Compiler

MTBASIC

$69

Features:
Multitasking Windowing
Handles interrupts Interactive
Fast native code Compiles quickly
Floating point No runtime fee

KIT

- WORKS WITH ANY Z-80 BASED COMPUTER
- PIGGYBACKS IN Z80 SOCKET
- USES NATIONAL MM58167 CLOCK CHIP,
AS FEATURED IN ~AY '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, KAYPRO 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
$29
BARE BOARD AND SOFTWARE

MTBASIC is a true native code compiler. It runs Byte's Sept. '81
sieve in 26 seconds; interpreters take over 1400 seconds! Because
MTBASIC is multitasking, it can run up to 10 Basic routines at the
same time, while displaying ten separate windows. Pop-up/down
menus are a snap to implement.
The MTBASIC package includes all the necessary software to
run in interpreter or compiler mode, an installation program (so
any system can use windowing), three demonstration programs
and a comprehensive manual.
AVAILABLE for CP/M (Z-80), MS-DOS, and PC-DOS systems.
ORDERING: Specify format when ordering. We accept Visa, MC,
checks and COD. Send $49.95 plus $3.50 shipping and handling
($10 overseas) to:

N.Y. STATE RESIDENTS ADD 8% SALES TAX
MASTERCARD. VISA. PERSONAL CHECKS,
MONEY ORDERS. PURCHASE ORDERS AND
C.O.D.'S ACCEPTED.

P.O. Box 2412 Columbia, MD 21045 -1412
301/792-8096

". .' ."':.
;: :•..r,••••• ::.".

~'. ~
" .,' ::.

..~

• ',' .:"

fu..

KENMORE
COMPUTER
TECHNOLOGIES

P.O. Box 635, Kenmore, New York 101217 (716) H77·0617

Coming Soon to a SOG Near You:
"Project X"
- A NEW Single Board Computer with
the following features:
•
•
•
•
•
•
•
•
•
•

8MHz or 10 MHz 80186 16 Bit Microprocessor - FASTI
256K to 1M Zero Wait State DRAM
SASI Hard Disk/Tape Controller Port.
5 1/4" Floppy Disk Controller, 40 Track, 80 Track, Single Sided,
Double Sided and/or PC-AT Type. - Up to 4, Any Type.
PC-Type Keyboard Port, Peripheral Chips and ROM BIOS.
Five PC-Type Cardslots - Pick Your Own Video Card.
Numeric Co-Processor Port.
IF================tI
PC Motherboard Size: 8.5" x 12"
INTRODUCTORY
Designed by Dean Klein and Earl Hinrichs
SPECIALS
OEM Inquiries Welcomed
$300
Bare Board
Full
Kit
Call
Contact:
Assembled & Tested - Call
PRINTED CIRCUIT TECHNOLOGY

PC IEeH

904 N. 6th St.
Lake City, MN 55041

(612) 345·4555

MasterCard, VISA, Certified Funds or C.O.D.
Allow 6-8 Weeks for Shipment

48 LINE FIGURE 2 _ _ _ _ _ _ _ _ _ _ _ _ _ _-..,
(continued from page 47)

P7-U61P8
ithis is under U61' - solder carefully
P9-U63P8
P10-U62'P8-U63'P8
P11-U61'P8-U64'P8
U48: P5L-U35P11
P6-U36P10
U49: P1-U49'P1
P15-U49'P15

isolder pins 1&15 as well as 8&16
iwhen you piggyback these chips

U49':P1-U49'P1
P2-U35P3
P3-U34P10L
P4-U47'P1
P15-U49P15

i74LS157

U50: P4L-U47'P2
U50' :P1-U21P11
P2-U51P12
P3-U51P5
P4-U38P10L
P6-P8-P15
P7-U73P8L

i74LS157 - interlace delay select + inverter

iP6&P7 act as an inverter for the alternate
iframe signal from U21P11 - applied to char ROM

U51: P5-U50'P3
i15K IN PARALLEL WITH R51 (sweep speed-up)
P6-P8-P9
P7-(.001uf to P8)-(6.8k in series with 10k trimpot to +5 P16)
P9-P8-P6
P10-U37P6
P12-U50'P2
ivideo RAM
U61,U62,U63,U64 - solder all pins but 8 to U61',U62',U63',U64'
pin 8 as above to U47'
U73: P8L-U50'P7

icharacter ROM

U68: P21L-U70P21L-U83P2 imonitor ROM (low half 2732a)
U68P21 can be left high (not lifted) if you wish to use the old
2716 monitor ROM or a 2732a with the monitor in the upper half.
The old monitor ROM can still be used (with some difficulty)
with the 48 line display, especially if you patch the SWP
software to overlay the old monitor when you boot. The old
monitor must go in socket U68. Sockets U67 and U69 are not
useful after the changes to U84.
U70: P21L-U68P21L-U83P2 imonitor ROM #2 if used
U83: P2-U68P21L-U70P21L ;addresses for ROMS and video memory
P6-U35P6
U84: P1L
;This re-maps the memory space
P10-Ul04P12L
Ul04:P12L-U84Pl0
Figure 3 - Patching the SWP Monitor

Do ddsysgen to get the image in RAM.
28b9
28bb
299c
29aO
29a3
29a9
2geO
2ge3
2geb
2gee
29f5
2a16
2a65
2a69
2a6b

Now use DDT to change:

Of-lf f2b9 ;a little insurance
30-20
30-20
30-20
Oc-18 ;24-128
17-2f iLD A,23
30-20
3b-37
3c-38
30-20
If-3f ;LFEED: AND 1FH
If-3f ;AND lFH
18-30 ;sub 24
18-30 iadd 24
60-40 f46b

Now use ddsysgen to restore on disk.

CP/M86
8" CP IM-86 Disk

$15.00 each

DISK 86·1 - Di.k Utilitie.
D.CMDI A86.
SD.CMDI A86.
XDIR.CMDI A86: Three extended directory pro·
grams. 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. Dis·
plays 24 lines at a time.
PRINT.CMD/ A86: File printing routine. Puts a
header at the top of each page along with page number
and file name.
MUCHTEXT.CMD/ A86: Counts words and
lines in a text file.
ERQ,CMDI A86: Seh:ctive file erase program.
Dispfays al\ selected files and then asks you one at a
time for a YIN.
INUSE.CMD/ A86: Prints "In Use" on your
terminal and asks for a password. It will not release
the console until you enter the password.
FlNDBAD.CMD/A867. Finds and collects bad
sectors on a disk. If there are no bad sectors,
information on the disk is unaltered.
Di.k 86·2 - DU and Modem Prolram.
DU.V75.CMD/A86/DOC: This is the popular
disk utility from CP 1M 80. It lets you read, write, and
modify disk sectors.
MODEM4.CMD/ A86: This is a modem program
set up for the Slicer. This program includes a built-in
help file.
MODEM7SLCMDI A86/DOC: No modem disk
would be complete without this standard. This is
modem7 set up for the Slicer. It displays a menu when
it is called.
.
Di.k 86·3 - Small C
C86.CMD: This is the original Small C compiler
which appeared in Dr Dobbs Journal in 1980. It runs
under CPM-86 and generates 8086 source for the
ASM86 assembler.
C86. COM: This is the C86 compiler which runs
under CPM-80. This 8080 program produces 8086
assembly language.
C86L1B.A86: This is the C86110 library.
SMALLC86.DOC: Documentation on Smal\ C.
C?????C: Source of the C86 compiler.

DISK 86-4 -

IBM Mainframe Interchange/
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.
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.
META86.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 8'" Drives
Andy Bakkers is making this special software package
available through Micro C. Complete source, HEX,
&. documentation files on an 8'" SS SD disk. Also
outlines on disk the hardware changes needed.
$29.95

Micro Cornucopia
P.O. Sox 223
Bend, OR 97709
503-382-8048
9-5 PaCifiC Time

Monday-Friday

End of Listing

Micro Cornucopia, Number 24, June-July 1985

49

Adding An 8" SSSD Drive To A Morrow MD-2
By Mark Sihlanick

As popular as the smaller disk drives
are becoming, eight inchers still reign, at
least in the CP/M world. I'm a satisfied
owner of a Morrow Micro Decision MD2 with 5" drives, but I couldn't stand the
thought of being locked out of all that
public domain software on 8" disks. So I
modified my MD-2 to allow the addition
of a single density 8" drive as drive C.
Types Of MD-2s
There are two revIsIons of MD-2s.
While the following modification should
work on either, it has been verified only
on Revision 1. Significant changes in
board layout and circuitry will make my
instructions incorrect for REV 2 boards.
To help you tell which machine you
have, the Revision 1 board has an expansion drive connector on the rear and is
marked (strangely enough) REV 1.1. The
REV 2 board replaces the drive expansion connector with a Centronics printer
port and signs on with REV 2.x or 3.x at
turn-on.
Hardware Modification
The stock MD-2 uses an NEC 765
(same as Intel's 8272) with an external

50

121 Twin Creek Terrace
Forest VA 24551

TTL data separator. Rather than modify
the existing data separator, I used a new
one from Western Digital's FD179X Application Note. My only modification to
the original 1793 circuit was to invert the
RD DATA signal to match the 765 by using the other output on the 74LS123.
The circuit shown in Figure 1 detects
when drive C is enabled by monitoring
the HD load signal for drive C brought
out on pin 12 of the expansion drive connector. It then switches in the external
data separator and sets the 765' s clock to
the 8 MHz needed for eight inch operation.
For disk writes, the circuit forces the
MD-2's circuitry to act as though double
density 5" were being selected. The resulting 500 KHz signal to the NEC 765
WRITE CLOCK is what's needed for the
8" single density drive.
This design allows the 8" drive to be
turned off but remain connected without
upsetting the operation of the 5" system.

most certainly void anyway, so you may
as well dig in and go to it! A word of caution: believe everything you have ever
heard about static zapping expensive
electronic parts, and exercise caution
when making these modifications.

Construction
It should be obvious that this modification will void your warranty. But if you
have a REV 1 MD-2, your warranty is al-

Micro Cornucopia, Numb~r 24, June-July 1985

4 MHZ ON YOUR Z80 IS LIKE DRIVING 40 ON THE FREEWAY,

MD-2 Disassembly
1. Turn off the computer and remove
the power cord and any RS-232 cables
that may be connected.
2. Remove the four screws that hold
the cover to the chassis.
3. Remove the four screws from the
rear panel that hold the AC cord pan,
and remove the cord pan.
4. Carefully remove the three screws
that hold in each disk drive. (I do this by
dangling the computer over the edge of
the desk and carefully backing the
screws out from the bottom.)
5. As each drive is unscrewed, disconnect the DC power cable from the jack
near the power supply.
6. Disconnect the ribbon connector
from the back of the drive and carefully
lift out the drive.
7. Gently unglue the disk drive ribbon
cable from the PC board, disconnect it
from the main board, and put it aside.
8. Do not worry about keeping the A
and the B drives separate since they are
strapped identically and can be interchanged.
9. Disconnect the main power cable
from the PC board.
10. You now have gone too far to back
out, so stand the unit on end and remove
the four screws that secure the PC board
to the chassis.
11. Remember every warning you
have ever read about static.
Daughter Board
I chose to mount the board containing
the new circuitry in place of the cord pan
on the rear of the computer. The cut-out
in the rear panel gives room to bring out
the 50 conductor cable to the 8" drive
and the 34 conductor cable to the expansion drive connector. See Figure 2.
The circuit is constructed on perfboard
using point to point wiring.
MD-2 PC Board Changes
These changes allow the external
74LS157 to select between the internal
data separator, the NEC 765 clock
source, WRITE CLK, and the external 8"
equivalents.
Refer to Figure 1 and carefully cut the
traces as indicated by the Xs. Take your
time and be sure you have the right
point. Then carefully scrape off some of

GO 60 INSTEAD!

SERVO 8 HIGH PERFORMANCE 6 MHZ SINGLE BOARD COMPUTER
•
•
•
•
•

•
•
•
•
•
•
•
•

6 MHZZ80B CPU - RUNS AT FULLSPEEDWITH NO WAIT STATES
FOUR LAYER BOARD (5.75" x 8") CAN MOUNT DIRECTLY TO MINIFLOPPY
POWER REQUIRED 5 VOLTS AT 1.4 AMPS. NO OTHER VOLTAGES NEEDED
UNIQUE FLOPPY CONTROLLER WITH AUTOMATIC SELF·ADJUSTMENT (NO POTS)
FOR; 3.5" DRIVES, 5.25" DRIVES, 8" DRIVES, 1.6 MB 5.25" DRIVES
CONFIGURATION MANAGEMENT UTILITY INCLUDED ALLOWS EASY MENU·DRIVEN
SELECTION OF OVER 50 DIFFERENT FLOPPY AND WINCHESTER FORMATS AS
WELL AS BAUD RATES, PRINTER PORT SELECTION AND TURN·KEY AUTOLOAD
S.A.S.1. (SCSI) BUS FOR WINCHESTER CONTROLLER (XEBEC 1410)
TWO RS232 PORTS WITH SOFTWARE SELECTABLE RATES 300 TO 153.6K BAUD
STANDARD CENTRONICS TYPE PARALLEL PRINTER PORT
2K EPROM WITH AUTO SELECTION FOR BOOTSTRAP (FLOPPY OR WINCHESTER)
64K 150NS DYNAMIC RAM WITH 128K EXPANSION AVAILABLE
50 PIN SYSTEM EXPANSION BUS WITH Z80 TERMS PLUS ADDITIONAL TERMS
REAL TIME CLOCK, TENTHS OF SECONDS, SECONDS, MINUTES, DAYS, WEEKS
NOT A TOY, SERVO USES MIL·SPEC OR INDUSTRIAL GRADE PREMIUM PARTS

• A &T SERVO 8 COMPUTER - $389 FOR CP/M ADD $70
VISA M/C COD
• CP/M V2.2 CBIOS SOURCES - $50; INCLUDES WINCHESTER FORMATTER,
EPROM, CBIOS (Z80 CODE), CONFIGURATION UTIliTY (TURBO PASCAL CODE)
• SERVO EXPANSION BOARD WITH 128K ADDITIONAL RAM, CLOCK/CALENDAR
WITH BATTERY BACKUP, TWO ADDITIONAL SERIAL PORTS, - $384
• SERVO CONTROL INTERFACE WITH 24 ANALOG INPUTS AND 8 ANALOG OUTPUTS
(12 BIT ADC, DAC) PLUS 16 DIGITAL INPUTS, 64 DIGITAL OUTPUTS - $495

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

the solder mask to allow connection to
the runs.
When the daughter board is installed,
check the wiring and reassemble the
computer. You do not need the modified
software to access the 5" drives.
Jumper Settings For Shugart SA-BOO I
801
The disk drives used with an NEC 765
must have the stepper energized continuously. Therefore, be sure that jumper
positions HL and DS are open. In addi-

Micro Cornucopia, Number 24, June-July 1985

tion, the remaining jumper positions
are:
T1,T3,T4,T5,T6
OS1
OS2,DS3,OS4
RR,RI
HL,DS
Y
Z
C

A,B,X

PLUGGED
PLUGGED
OPEN
PLUGGED
OPEN
OPEN
PLUGGED
OPEN
PLUGGED

(continued next page)

51

8" DRIVES ON A MORROW _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 51)

Software Modifications
There are three areas of the MD-2 BIOS that must be patched: the Disk Parameter Header (DPH), the Disk Parameter Block (DPB), and what Morrow calls
the MTAB (which contains the constants
associated with the disk drive). Plus, you
need to add a sector translation table
(XLT) for 8" disk drives. We will first locate the patch (and add) areas, discuss
the contents of the patch, and finally
make the changes (and addition).
Finding The Patch Area Locations
First make a new copy of the Morrow
CPM distribution disk. Follow all the
steps outlined in the instructions, but
answer '3' when asked the number of
drives to be used. You must have DDT.COM and SYSGEN. COM on this disk.
Use this new disk for the rest of software
modification.
Morrow sets aside a portion of the BIOS to be used for foreign drive translation tables as well as terminal configuration space. This is the area that
Morrow-supplied programs such as
XER.COM or OSB.COM use. Its position varies depending also on how much
patch area was required to set up the BIOS for the particular terminal you are using. It is easiest to find this area by
snooping around with DDT.
Start looking at about FA80 and you
should see something like Figure 3. (The
symbol (R) signifies pressing RETURN.)
Write down the address of the FF that
just precedes the Room Left Byte (in this
case FB08) and the value of the Room
Left Byte (BE).
To find the location of the DPH and
DPB in the BIOS we will use Figure 4, a
program that uses the CPM SELDSK
function to return the address of the
DPH for disk C. Since the program is
short it will be keyed in directly in HEX
under DDT, then run, and the registers
examined.
Now that you've perused Figure 4,
let's have a quick recap. In this example
we have found for drive C, the DPH
starts at F76E, DPB is at F7CB, CSV starts
at F98B, ALV starts at F972, the Translate
Table starts at FB08, and MTAB starts at
F845.
Translate Table Patch
Morrow has a specific way of entering

52

extra sector translation tables. The first
byte is a designator for the type of drive
format, and the next word is the length
of the table. The table itself comes next,
followed by an FF and then a space remaining byte.
For SD 8" with six sector interleave,
the translation table for the Morrow MD2 is found in Figure 5.
DPBPatch
The DPB for 8" single density is:
HEX FOR PATCH
1AOO
DW
03
DB
07
DB
00
DB
F200
DW
3FOO
DW
CO
DB
00
DB
1000
DW
0200
DW

DESCRIPTION
026 isec per track
3
iBlock shift
7
iBlock mask
o
iExt mask
242 idsk size-1
63
idirect.size
192 ialloc 0
o
ialloc 1
16
icheck size
2
itrack offset

Note: The HEX patch data is in form
to be patched in, IE low byte
first for all DWs.

If you wish to change the constants for
different step rates, for example, refer to
a 765 or 8272 data sheet. Remember that
the switch to the 8" drive occurs after all
the head positioning. Therefore, SRTI
HUT and HLT should be figured for a 4
MHz clock rate.

Making The Patches
The symbol (R) signifies pressing RETURN. Use SYSGEN to create the disk
image of the CBIOS shown in Figure 7.
Now swap the disk from drive B into
drive A, press RESET, and reboot the
system. With the 8" drive hooked up,
and with a formatted disk in it, try to pull .
a directory listing. If there are problems,
reinspect the wiring. Use STAT, STATUS, INFO, or DUU to inspect the disk
parameters to confirm they were
patched correctly.
Other Sector Sizes
By changing the appropriate locations
in MTAB and changing the XLT and DPB
to match, single density 256, 512, and
1024 byte sectors can be supported.

For a full discussion of these parameters see Digital Research's CP 1M 2.2 Reference Manual.
DPHPatch
The DPH must be patched to show the
address for the new XLT, and the size of
the ALV must be increased by 7 to account for the larger number of 1K sectors
used in 8" SD.
Since the CSV space is larger than
needed, we can steal from it for the ALV.
This will change the CSV address in the
DPH from F98B to F992 (F98B + 7).
The new XLT address to be put into
the DPH is the address of the first sector
in the new table. Since the first three
bytes in the XLT are used for identification and table length, the first byte begins at FBOB (FB08 + 3) in this example.
(Be sure and use the value you found for
your system in place ofFB08.)
MTABPatch
Morrow packs a lot of information
about the disk drives in the table entitled
'MTAB.' Take a look at the distribution
copy of the BIOS that came with your
machine. You will note that there are 9
bytes for each drive. Figure 6 shows
what these bytes become for SD 8".

Formatting
The standard Morrow FORMAT. COM
will not format 8" disks. This means you
will have to buy formatted disks, or use
those formatted on another machine.
(One bright note: disks formatted with
either a 1771 or 1793 will work with the
NEC 765.) Single density 8" disks are
normally sold pre-formatted so the lack
of a formatter is not usually a problem.
Double Density 8"
The approach used in the Morrow to
access the disk is not fast enough to keep
up with the higher data rates associated
with double density 8". The simple data
separator described here will not work
for double density anyway.
Operation
After using the 5" drives, the 8 incher
seems painfully slow and noisy. Changing the sector size to 1K bytes brings the
speed up to parity with the five inchers.
This modification, in conjunction with
the use of a multiple format disk program such as Uniform, allows maximum
interchangeability of software.

•••

Micro Cornucopia, Number 24, June-July 1985

Figure 3 - Finding Terminal. Configuration Data

NOW ONL Y $79.951

Room Left in Bytes
Figure 4 - Locating DPH and DPB in the B(OS

The current values are unimportant
-S100
0100 XX 2A
The program used is:
0101 XX 01
0102 XX OO
jGET WARM BOOT ADDR
LD
HL,( 1)
0103 XX 01
jOFFSET TO SELDSK
LD
BC,018
0104 XX 18
ADD HL,BC
0105 XX OO
jSELECT DSK C:
LD
BC,02
0106 XX 09
LD
E,1
0107 XX 01
CALL JUMPHL
jINDIRECT JUMP
0108 XX 02
jROOM FOR BREAK
NOP
0109 XX OO
jPOINT
NOP
010A XX 1E
JUMPHL: JP
(HL)
jINDIRECT JUMP
010B XX 01
JTO SELDSK
010C XX CD
010D XX 11
010E XX 01
010F XX OO
0110 XX OO
0111 XX E9
0112 XX .
THIS RUNS THE PROGRAM AND HALTS AT 010F
-G100,10F
·10F
DUMP THE REGISTERS, ADDR OF DPH IS IN HL
-X
COZOMOEOI1 A=10 B=F74E D=F7CB H=F76E S=0100 P=010F NOP
NOW INSPECT THE DPH FOR C:
-DF76E
F76E C3 FA ••
F770 00 00 00 00 00 00 60 F8 CB F7 8B F9 72 F9 C3 FA
This gives us the following information for drive C:
DPH ADDR F76E (Also addr of XLT pointer)
DPB ADDR F7CB
CSV ADDR F98B
ALV ADDR F972
HTAB is easy to find since Morrow places its address right
after the CPM jump table ••• so get warm start address ••
Warm Start
(Start of BIOS is Warm Start-3 or F200)
-DOO,04
0000 C3 03 F2 00 00
-HF203,041
F244 F1C2
-DF244,F245
F244 33 F8

ADD OFFSET TO HTAB(41H)
HTAB POINTER IS AT F244
HTAB FOR DRIVE A STARTS AT F833 BUT WE WANT
HTAB FOR DRIVE C SO MUST ADD 18 BYTES TO THIS
ADDRESS SINCE EACH MTAB ENTRY IS 9 BYTES LONG

-HF833,012rofessional. qualitycontrolled product that you deserve. That product is none
other than the critically acclaimed ConlX Operating System.
ConlX can provide any 48K+ CP /M-80 or compatible system
with I/O Redirection and Pipes (uses memory or disk).
perfected User Areas. Command and Overla~ Path Searching.
Auto Screen Pa$ing. 8Mb Print Buffering. 22 new SysCalis.
Function Keys. 'Virtual" disk system. Archiver (saves over
50% disk). extensive command language. 300;- variables. 100+
commands. pull-down menu. and much more! Uses as little as
1/2K RAM! Runs with CP/M for true data and software
compatibility. Installs easily without any system modsl
The ConlX package lists at $165 and has been advertised and
sold internationally to man~ enth usiastic customers since
October 1983. As a s~ecial limited offer. we've lowered the
~rice of the complete ConlX system by 50% to only S79.951
Don't miss this opportunity to bring your 8-bit micro back into
the software revolution. Order your copy of ConlX today 1
Price includes manual. 8" disk. and user sup,port. &14" conversions
available. Cootact ySYSGEN
SOURCE DRIVE NAME (OR RETURN TO SKIP)A
SOURCE ON A, THEN TYPE RETURN
FUNCTION COMPLETE
DESTINATION DRIVE NAME (OR RETURN TO REBOOT)
A>SAVE 48 CPM64.COM
Then use DDT to find and patch the areas in the SYSGEN image.
A>DDT CPM64.COM
DDT VERS 2.2
NEXT
PC
Look for the start of CPM jump table • • •
3100
0100
D2300,2310
here it is as shown by all the C3 Jumps
2300 C3 C9 FC C3 52 F2 C3 DE F2 C3 E6 F2 C3 48 F3 C3
-HF200,2300
This calculates offset between SYSGEN and BIOS
addresses.
1500 CFOO
The offset is'CFOO
-HF76E,CFOO
C66E 286E
-S286E
286E C3 OB
286F FA.FB

Use the offset to find the DPH
This is it, now to patch, remembering that low
order bytes are first when patching words.
New XLT
ADDRESS

2870 to 2879

No changes

287A 8B 92
287B F9 .

Change size of ALV
Done with DPH patch

-HF7CB,CFOO
C6CB 28CB
-S28CB
28CB 28 1A
28CC 00 OO
28CD 04 03
28CE OF 07
28CF 01 OO
28DO 5E F2
28D1 00 OO
28D2 7F 3F
28D3 00 OO
28D4 CO CO
28D5 00 OO
28D6 20 10
28D7 00 OO
28D8 02 02
28D9 00 OO
28DA 28 .
-HF845,CFOO
'C745 2945
-S2945
2945 04 84
2946 5A 22
2947 58 01
2948 05 01
2949 6F BF
294A 03 23
294B 05 1A
294C 1C 07
294D FF .
-HFB08,CFOO
CA08 2c08
-S2C08
2C08 FF OA
2C09 B8 1A
2COA 00 OO
2COB 00 01
2COC 00 07
:
I : I
2C25 00 FF
2C26 00 A1
2C27 00 .

Calculate address of DPB
is 28CB

It

Change sectors per track
Change
Change
Change
Change

"
"

block shift
block mask
extent mask
disk size

Change directory size

Byte 0
Byte 1

84H
22H

Byte 2

01H

Byte
Byte
Byte
Byte
Byte
Byte

01H
BFH
23H
1AH
07H
FFH

3
4
5
6
7
8

Foreign Drive, Single Sided, Mot. Cont. 001
Non virtual drive, Single DenSity, 80 track
(although this makes no difference), 128 byte
per sector, single sided, drive C
Motor wait time to minimum since drive runs
continuous
Head settle time to minimum
SRT/HUT to 765
HLT/NO to 765
End of Track Sector Number
Gap Length 3
Current Track

Figure 8 - Parts List

Quantity

Description

34 conductor ribbon cable
about 8-10"
34 pin card edge ribbon
one
cable connector
34 pin header
one
34 pin ribbon cable socket
one
50 pin card edge ribbon
one
cable connector
50 pin header
one
50 pin ribbon cable socket
one
50 conductor ribbon cable
as needed
74LS74 dual D FF
one
74LS193 binary counter
one
74LS123 dual one-shot
one
74LS157 or 74LS257 quad 2 to 1 mux
one
4.7 K resistor
one
1 K resistor
two
220 Ohm resistor
one
10 K pot
one
33 pF mica capaCitor
one
.1 uFd capaCitor
four
10 uFd
one

.

Alloc 0 happens to be the same
Change check size

"

Track offset the same
Start of DPB for D: so stop.
Calculate position of MTAB
is at 2945

It

Start patching MTAB

Done with MTAB patch
Calculate position of XLT
Start patch

POWER THAT GOES ANYWHERE!
Single Board Computer
Continue patching in
the XLT until
End of table mark
Space remaining (be sure and use your value here)
Done I You may however wish to modify the
signon message (at FCOO in RAM, 2DOO in SYSGEN
image) to show the modifications.

-~C
Use Control C to exit DDT and
A>SAVE 48 CPM8.COM
Save the patched result.
And use SYSGEN to put ·the patched BIOS on a
formatted disk in drive B.
A>SYSGEN CPM8.COM
SYSGEN VER 2.0 MD1.2
DESTINATION DRIVE (OR RETURN TO SKIP)B
DESTINATION DRIVE (OR RETURN TO SKIP)
A>

54

Figure 6 - Byte Equivalents on 8" SD

FAST
POWERFUL
FLEXIBLE
SMALL

6MHz Z80B® CPU
64K to 256K RAM, 2K to 64K ROM
5)4" and 8" Floppy Controller, SASI
2 RS-232, Centronics Port
50-pin I/O Expansion Bus.

5%" x 10"

~

-------

DAVIDGE CORPORATION
292 East Highway 246
P.O. Box 1869
Buellton, CA 93427

(805) 688-9598

'zeD is a registered trademark of Zilog

Micro Cornucopia, Number 24, June-July 1985

Keeping Real Time: The Ztime-I
Review By Ron Biedenbach

One shortcoming of 8-bit computers
is their inability to time/date stamp files.
One solution is the Ztime-I calendarl
clock by Kenmore Computer Technologies.
Ztime-I is based on the National Semiconductor 58167 and is available in four
flavors: bare board, kit, assembled and
tested, and assembled, tested, and
trimmed for time accuracy.
Easy To Assemble
I assembled the kit, which includes the
PC board, all parts, instruction manual,
and support software on an 8" disk. It
was easy, and took about an hour. The
only thing that confused me was the value of the capacitors. They're marked
with the industry standard, but that's
Greek to me. Luckily, an EE friend was
nearby to translate.
When I finished the assembly, I un-

185 Hillcres t
Amherst NY 14226

plugged the Z80 from my Xerox 820-11
and plugged it into the clock board. Then
I plugged the clock board into the Z80
socket on the computer.
I turned the system on, booted (so far
so good), and ran the date configure program to modify DATE.COM and SETDATE. COM to the physical address port
to which the clock is tied. Then I ran
SETDATE.COM to set the time. From
that point on I had a battery backed realtime clock.
It's been running for over a month,
and it's lost only two minutes-about 20
seconds a week. (Editor's note: If you
find those two minutes you've lost,
please save them. You never know when
you'll need a couple of extra minutes.)

stalled and adjusted to improve the accuracy to within +- 8 seconds a month. I
haven't tried it.
Kenmore supports 8" single density,
Kaypro, Osborne, and Xerox. If you
have some other format, you can get
. support software via modem.
They also plan to develop and support
system specific programs which incorporate the Ztime board. It's rumored
that future software will include an archive program, an RCP/M-BBS system,
and dBASE II modules.
Available from: Kenmore Computer
Technologies, 20 Landers Rd., Kenmore,
NY 14217, (716) 877-0617. Prices for the
Ztime-I range from $29 to $99, depending on the package.

•••

Enhancements
Kenmore Computer Technologies
claims a variable capacitor can be in-

64K SBCs~~~$~~",.,
.Save development time and costs with
Megatel Quark® single board computers
• Select only the features you require
• We deliver your first unit in
two weeks or less
• 6MHz Z80B~
• 8088 Co· Processor
• 64K. 128K or 256K RAM
• Alpha/Graphics
Video Controller
• Floppy Disk Control
(8". 5 '/4" or 3'1.z")
• Winchester Hard
• Disk Control
• Up to 2 Full Duplex
Serial Ports

•
•
•
•

Up to 128K EPROM
E2PROM Support
Time of Day Clock
Up to 4 Parallel
I/O Ports
• Peripheral Expansion
Interface
• CP/M'" 2.2 or CP/M" 3.0
Operating Systems
• Fully configured board
less than S800."

Special Packages:

• Entry Level Quark 10 with Z80B@, 64K RAM, EPROM, Video,
Serial and Parallel 110 ................. only $295.·
• 64K SBC Package with CP/M@ 2.2 on disk ... only $375.·
• Custom designs and layouts available
To order your first unit call
our Toronto sales office today.
(416) 745·7214

Or write us: Megatel
1051 Clinton St..
Buffalo. N.Y. 14206

...___~8_P~~_':'oo'megater_n9_pr_jCe___.
Use our Order Form on page 86.
Micro Cornucopia, Number 24, June-July 1985

55

C\l)l~f?

component supply,

Hours: 10:00 am - 5:00 pm I MON-FRI

inC. 1771 Junction Ave. • San Jose, CA 95112. (408) 295-7171

VVVV

Shipping charged on all orders. Minimum order: $15.00. Please call on all orders as items are limited to quantities
on hand. Prices subject to change without notice. NO OPEN ACCOUNTS / NO FOREIGN ORDERS, PLEASE!

SHUGART SA604 HARD DRIVES
At last! here is a chance to purchase a hard disk for your system at an affordable price.
Werecently participated in a buyout of Shugart's finished goods inventory of these drives. Brand new in
the original factory packing and guaranteed by us for 90 days. These 5 megabyte drives are considered by
some to be the most reliable in the industry. These units directly replace a ST506 or similar drive.
When installing your system's first hard drive, a hard disk controller card and appropriate software are required. For an IBM-PC with a 50 or 60W power supply, you will need a 130W supply.
Functional Specifications
Performance Specifications
Formatted (33 sectors track)
Cylinders
160
Tracks
640
Per Drive
5.40 Mbytes
RW Heads'
4
Per Surface
1.35 Mbytes
Disks
2
Per Track
8.45 kbytes
Per Sector
256 bytes
Index
1
Transfer Rate
5.0 Mbits sec
DC VOltage Requirements:
Access Time
+ 12Vdc ± 5% 1.8 A typical (4.0A max. starting for 6 sec.)
Track to Track
16.2 msec
+ 5Vdc ± 5% 0.9A typical (1.5 A max.)
Average
99 msec
Maximum
215 msec
Average Latency
8.33 mesec
Start Up Time (Tvp)
12 sec
Ask about quantity pricing.

$95.00

POWER SUPPLIES:
Power One G5-35/0VP, 5V@35A, OVP
preset @6.2V, 17"x5", 181bs.
ACDC OEM 5N17-1, 5V@17A,
10"x5"x5", 141bs.
Trygon LBS6-24-0V, 4.8-6.8V@24A,
6"x17"x8", 361bs.
Tokin ST0510-S2, + 5V@10A switcher
8%"x4%"x1 %", 2lbs.
Sanyo 5V@6A Switcher
7%"x4"x1 %", 11b.
Lambda LXS-CC-5-0V, 5@16A,
5"x5"x9.25", 151bs.

DISK DRIVES:

$70.00
$45.00
$60.00
$30.00
$25.00
$45.00

• Tandon TM 502
12 megabyte unformated
$325.
• Syquest SO 306R
Remqvable 3" 5 megabyte
ST506 type interface. ECL 06
$350.
SURPlUS Tandon TM 55-2, 5 %", double sided,
48TPI40 track, 6 msec. track to track* $ 99.
SURPlUS Shugart SA455, 5 %, half height, 48TPI,
40 track,6msec., tracktotrack,dbl.sided $ 99.
NEW Remex % height with full height face
plate,48TPI,40 track,doublesided. May
be used in place of TM 100-2*
$ 80.
NEW Shu~art SA455 / Panasonic JA551 /2N
5%' , half height, 48TPI,
40 track, 6 msec., double sided. *
$124.
NEW TEAC FD55B half height, 48TPI, 40 track,
6 msec., double sided. Power: + 12V @
.25A typ., + 5V @ .38A typ.*
$139.

I C

'S·

• • •
Available for immediate delivery F-8 Single Chip Microcomputer $1.00
10101
1.00
10158
2.00
10102
1.00
10160
2.00
10104
1.00
10161
2.00
10106
1.50
10162
2.00
10107
1.50
10170
2.00
10113
2.00
10172
2.00
10117
2.00
10175
2.00
10121
2.00
10176
2.00
10130
2.00
10180
2.00
10132
2.00
10182
2.00
10133
2.00
10197
2.00
10134
2.00
10212
2.00
TID 126
Texas Inst.
1.00
TIL 111
Opto. Isolator
1.00
1400S
16K Static 55ns.
4.00
HP146818
R.T.Clock & RAM
5.00
1.00
TIL 156
Nat'l Modem Filters
5.00
AF 132CJ
TD9185030
32x8 Prom
2.50
1702
256x81ms EPROM
1.50
1793-02 floppy disk controller 18.00
2016P-7
2Kx8 Static 70ns.
3.50
ULN2032A
Sprague
1.00
2101-2
2.00
2104-4
2.00
21F02
2.00
2108-2(A6U 2.00
2104
2.00
2108-4
2.00
KR 2376 ST SMC keybd. encoder 10.00
P 2405
Intel
2.00

56

CEA CEA6A20V252, 20V@2.5A,
5"x5"x7%",11Ibs.
$25.00
Sorenson SLC20-5, 20V@5A,
5 %"x3 %"x8 %", 4lbs.
$40.00
Sorenson SSD24-8.5, 24V@8.5A
5%"x3W'x10",5Ibs.
$90.00
Astec AA11261, 5V@6A 28V@1A,
$50.00
unregulated switcher, 7W'x4 W'x2"
Compower 70040 + 5V@3A, + 12V@5A,
-12V@.1A, 5"x10%"x2"
$50.00
Osborne Power Supply
$25.00

Lambda LXS-D-5-0V, 5V@27.5A
7 W'x7 % x9 %", 22lbs.
$60.00
Sorenson SSD9-50, 9V@50A swticher,
7%"x5%"x12%",13Ibs.
$175.00
Standard Power 200 B 12, 12V@5A
unregulated4%"x8%"x5%",12Ibs.
$20.00
Dacom 2489-01-C, 12.5V@1A
unregulated 5"x5"x3", 2lbs.
$10.00
ACDC 15N5-1, 15V@5A, 10"x4"x5",6Ibs. $75.00
Standard Power2oo B 16, 16V@12.5A
unregulated 4 W'x8% "x5 %", 121bs.
$15.00
NEW TEAC FD55F, half height, 96TPI,
$169.
80 track, double sided
NEW TEAC FD35F, 3 %", 80 track,
$195.
135TPI, double sided
NEW DTC Hard Disk Controllers for PC
$250.
* All drives with asterisk are compatible with the IBM PCTM as
360K or 380K drives. Half height drives may required mounting
brackets or filler plates not supplied with the drive.
All drives carry a 9O-day guarantee.

MISC. ITEMS:
MOTORS:
$7.50
TRW 403A 117-3,24 V, 5600 RPM
Canon EN35-T101Z1A,12VDC,
$10.00
3400 RPM, 12 g/cm, 110 ma
STEPPER MOTORS:
Copal Electric SH-65, 40 60n., 12 V, 1.80 $2.00
$7.50
for Shugart 8" Drives

SCN2652A
Signetics
15.00
2708
1024x8 EPROM
2.50
2716450ns
3.50
2732A-33OOns
4.00
2764300ns
5.00
27128
300ns
16.00
2758
1024x8 EPROM 54 only
3.50
2901
bit slice microprocessor
3.50
LM 304
Adjustable Neg. Volt. Reg.
1.50
CA 3075 FM dtector,lim.,audio preamp 5.00
CA30827Hi.Cur.NPNTransistorsCom.ColI.1.00
LM 309H + 5V 200 mao Voltage Regulator 1.50
LM 310N
Linear Follower
1.50
LM 339
Linear Comparator Quad
1.00
DS 3486 Four Three State 422/423 Receiver 3.00
DS 3487 Four Three State 422/423 Receiver 3.00
4N26
1.00
4N37
1.00
MK4027N-3
4Kx1 200 NS
1.50
TMS4045-20NL
4.00
41642oonsorFoster
3.75
RM 4136 DC
Quad Linear Op Amp
1.00
14412
11.00
14516 Harris 1.25
4528
1.00
14539
1.50
4529
1.00
14553B
5.00
UCN 4810A 10 bit Fluorescent Dis. Driv. 2.00
TL 494CN Switching Regulator Circuit 3.50
COM 5016 15.00
COM 5025 15.00
MM 5204
EPROM
1.50
MM 552D
analog switch
2.00
MM 5314
Clock Circuit
4.50
MM 5316 Clock/Watch Circuit
4.50

AC ADAPTORS:
$2.00
Viewsinics VSADP-20, 9 VAC, 150 ma
Basler Electric BE24V20, 24V, 20VA
$2.00
LCD DISPLAYS:
Toshiba LT 8026-35,16 Line X 46 Column $7.50
DISKETTES: Almost New 5 %"
$ .65
DOCUMENT CARRIERS.
$1.95
2-pocket leatherette 8 %"x11
SPEAKERS,
Matsushita EAS4P15SA, 8n, 15/8" 15/$10.00
LED HOLDERS,
10/$1.00
Siemens 2004-9019 Right Angle
200/$10.00
TERMINALS, Wyse 100
$195.00
LINE FILTER/FUSE HOLDER Combination,
Corcom 6J4F1881
$5.00
MONITORS, Osborne 5" Green Screen $35.00

MM 5318
Clock Circuit
4.50
MM 5330
6.00
MM 5370
6.00
MM 5375AA
4.50
MM 5375AB
4.50
6522A Periph. Interface Adapt. 6.00
6264LP-12 BKxBStat.12U1sTestedIOesolder,d 6.00
6545A-1
CRT Controller
19.00
68OO-L
2.50
6845
12.00
68010L8 16 bitlVirtual Memory 40.00
6810
128x8 Static Ram
1.50
68450-8 DMA Controller 130.00
68452 Bus Arbitration Module 28.00
7220 Graphics Controller 36.00
74116
1.50
74LS189 8.00
74150
1.25
74LS244 2.00
74159
1.50
74LS259 2.50
74181
2.00
74LS273 1.25
74198
1.25
74LS299 1.50
74251
2.50
74LS366
.40

~~~54 ~:gg
74C193
74C89
74LS147
74LS181
74S571

~!t~~~~ ~:gg

8086
8088
81 LS97
8202
8212
8216
8251
8253
8255
8259
8275

~~i~

Octal 3 state buffer
15.00 8237A-5
1.00 8278
1.50 8284A
4.00 8286'
6.50 82S123
4.00 82S130
6.00 82S137
27.00
82S141
3'jfx8 Prom

82S90
~:~g
8741
27.00
8755
20.00
93453C
Fairchild 1024x4 Prom
4.50
AM9517-5PC DMA Controller 15.00
96L02
1.50
ZOO SIO (MK3887)
Mostek
9.00
~gg ~;6C(~K~~1)
Mostek
2.00
ZOO CPU (MK3880)
Z80A CPU

~~~~~~

.50
74S74
.50
4.00
74LS280 1.50
2.00
74S373
2.00
2.00
74S374
2.00
512x4 Prom
2.50
~~h6005ND5-10W Pwr. Amp.;:gg

CAPACITORS:

~~~86-3

.1 uf monolythic caps.

8080A

F~~~r1~~~1pu~~:gg
3.50

22.00
22.00
1.25
18.00
10.00
5.00
6.00
2.50
3.50
3.00
3.50

~:gg

2.50

~gg~ ~~"io

1~:gg

Z80A $!0/2
280ACID
Z80A DART

10.00
12.00'
7.00

100/$8.00
1,000/$60.00

Micro Cornucopia, Number 24, June-July 1985

Pascal Procedures
By John P. Jones

Because there's so much Pascal software in the public domain, you often
need to sift the wheat from the chaff.
If the software you find is not exactly
what you need, you are faced with the
problem of modifying the code to fit your
application. If the original was written in
Pascal/Q Version 7.342C (Infinity Vaporware, Atlantis) and you only use
Imaginary Pascal-7 (Thoughtless Products, Gotham City), you will most likely
have to translate portions of the code.
By the way, even though PascallQ is
only available on 12", half density, triple-sided diskette and requires that all
variable names be entered in Greek, at
$19,999.95 it's a reasonable buy. The
price includes shipping by Percolator
Timewarp.
'Not Getting Lost In The Translation
Here are some basics for translating
between compilers.
First, try compiling the code. If you're
lucky, the author will have used "standard" Pascal~ and it
compile correctly.
More likely, though, there will be compiler errors.
Especially if you are new to Pascal, get
a reference manual for the source compiler. It may be critical. The differences
are often subtle and difficult to find.
Getting the program to compile correctly involves changing syntax for similar but not identical procedures, writing
new procedures to emulate those your
present compiler lacks, and editing identifier names. For instance, some compilers use as few as eight significant characters in names, but an author will
occasionally use more than eight, so that
INPUTFIL and INPUTFILE may actually
be the same. You might even have to
break the source into "include" files.
Expect to find differences in file I/ O.
Some compilers use GET/PUT for sequential I/O, while others have extended READ/WRITE. Remember that GET
and PUT use a pointer variable to access
the file, so the statements:

6245 Columbia Ave.
St. Louis MO 63139

This may seem backwards, but there is
an implied GET when a file is reset, so
file input is a "look ahead" operation.
Some compilers may only allow writes to
files that have been opened with REWRITE.
More Differences
RESET /REWRITE will probably be different, and if any random file I/O is used,
expect to rewrite an entire section of the
program.
You will have to totally reconstruct
non-text data files. Text files and untyped files (which some compilers don't'
support) are the only means of transferring data between compilers, since all
other files are written using the same binary format the compiler uses for internal data storage.
String procedures are another prob-

Comparisons
JRT (now Nevada) Pascal source is
particularly difficult to translate because
of its non-standard syntax and relaxed
type checking. Translations among Pascal/MT +, PascallZ, and Turbo Pascal are
somewhat easier, but can still be a chore.
PascallM to MT + or Turbo translations
are somewhere in between. Sad to say,

(continued next page)

Figure 1 - Comm Program Rewrite

will

fA := var;

lem area because they lack a defined
standard and have unique extensions.
Some compilers allow the" +" operator
to concatenate strings, while others use
only the CON CAT procedure. The range
of allowable operations between
STRINGS, character arrays, and CHAR
variables will also differ widely.

put(f);

are equivalent to: write(f,var);

are equivalent to: read(f,var);

Uc-}
{Disable otl cbar interpretation }
program basio;
oonst
2400 baud using COH8116 }
baudrate = 10;
SIO ohannel A baud rate register
brport = 0;
SIOIA data 1/0 }
serialio = 4;
SIOIA oontrol/status
serialstat = 6;
serialctl = serialstat;
initialization values
initvals : array[3 •• 5) of byte = ($c1,$44,$ea);
for register 3-5 }
{ reoeive data available status bit }
rdabit = 1;
{ transmit buffer empty status bit }
tbebit = 4;
var
cb : obar;
function txok:boolean;
{ Read SIO status, return TRUE if xmit buffer empty }
begin
txok := port[serialstat) and tbebit <> 0;
end;
funotion rxok : boolean;
{ Read SIO status, return TRUE if receive cbar available
begin
rxok := port[serialstat) and rdabit <> 0;
end;
prooedure sioinit;
{ initialize sio registers
var i : byte;
begin
port[brport] := baudrate; {set COH8116 rate register
port[serialotl] := 0;
{ disable SIO interrupts}
for i := 3 to 5 do
begin
port[serialotl] := i;
register address
port[serialotl] := initvals[i);
register data}
end;
end;
prooedure send_to_8052;
{ send a disk file to BASIC
var
line: string[128];

longer than needed for insuranoe

(Listing continued)

Micro Cornucopia, Number 24, June-July 1985

57

PASCAL PROCEDURES
(continued from page 57)

I've had the most trouble translating
from 16-bit (MS-DOS) Turbo to 8-bit
Turbo.
Once the program compiles correctly,
it MIGHT run correctly. If not, you'll
have to look for the subtle differences
noted above. Example: for Turbo Pascal,
input from a TEXT file "looks ahead" at
the following character to determine
EOF and EOLN. Some other compilers
do not.
The final step in translation is optional. After the program is running correctly, it can be optimized for your compiler.
Procedures can often be replaced with
"built-ins" not available in the source
Pascal. Using them can save code and increase efficiency.
By this time, you may be wondering if
it's easier to just start from scratch and
write your own code. In some cases it is,
but often the algorithms and logic in the
source program are a real help.
Communications
My current project at work involves a
custom micro based on the Intel 8052. To
debug the hardware, it was cheaper for
us to use the version of the chip which
has BASIC in the mask ROM (8052 AHBASIC) since the interpreter has all the
facilities needed to directly access memory. (It uses memory-mapped I/O.) To
use the BASIC interpreter, all you need,
in addition to program RAM for the
8052, is a serial terminal.
An alternative to a dedicated terminal
is another computer running a terminal
emulator program. I first brought up the
board using a communication program
r'unning on a Kaypro 4.
As testing became more involved, we
needed to be able to load/save BASIC
programs from the Kaypro's disk. Unfortunately, the program's send/receive
facilities were incompatible with the
BASIC. Rather than try to modify the
comm program (no source) I wrote the
program in Figure 1.
A Word Of Explanation
The comments should explain most of
the program, but I should point out a
couple of things. Because of its lack of
hardware scroll assist, the Kaypro can't
run this program faster than 2400 baud.
My Big Board will run it happily at 9600

58

baud. The Save command buffers the
program in memory rather than writing
directly to disk for two reasons.
First, since the ROM BASIC does not
toggle output on and off with ctl-S, ctl-Q
the way CP/M does, writing to memory
was an easy way to avoid missing char-

acters during disk writes. Second, the
memory buffer provides an opportunity
to strip the echoed "LIST" command
and the trailing "READY" from the BASIC source. Of course, I can save the
memory file to disk once the transfer is
completed. The saved input files can be

(Listing continued)

bas-prog : text j
fn : string[14]j
i : integer;
ch2 : char;

use text files
file name}
temp storage }

begin
repeat
writeln;
write('Name of BASIC program file: ');
clreol;
readln(fn);
{ get BASIC program filename}
if pos('.',fn) = 0 then fn := fn + '.bas'j
{I don't like to type
assign(bas-prog,fn)j
{$i-}
disable I/O check since don't want to }
reset(bas-prog) j
halt program if file not there }
Ui+}
loop til get good file name }
until ioresult = OJ
repeat
readln(bas-prog,line)j
get a line of BASIC}
line := line+Amj
{ append a  as terminator}
for i := 1 to length(line) do
{ send line, char by char
begin
while not txok dOj
{ empty loop waiting for xmit ok
port[serialio] := ord(line[i])j {ship out the char}
end;
write( ,+.);
{ let us know a line was sent }
delay(500) j
{ give BASIC a chance to store the line
until eof(bas-prog)j
{ send the whole file }
close(bas-prog);
{ clear SID input buffer
while rxok do ch2 := chr(port[serialio])j
writelnj
{ signal done }
writeln('File sent')j
{ echo last char BASIC sent to screen }
ch := ch2;
write(ch) j
end;
procedure get_fro~8052j
{ capture BASIC program from a LIST command
const
buffsiz = 8191j
only have 8K ram on the beast
var
line: string[127]j
longer than needed}
bas-prog,temp : textj
fn : string[14]j
i,j : integer;
input & output capture buffer pOinters
ch2 : charj
buffer: array[O •• buffsiz] of charj
procedure getlinej
{ pull a line of source from the input buffer
begin
line := "j
{clear assembly area}
while (buffer[j] in [AJ,AM]) and
(j < i) do j := succ(j)j

{ skip leading   and }
{ check to be sure don't overrun buffer}

while (not (buffer[j] in [AJ,AM]» and (j < i) do {copy til  or  }
begin
line := line+buffer[j]j
{append the char}
j := succ(j)j
{ bump the buffer pOinter}
endj
endj

Micro Cornucopia, Number 24, June-July 1985

sent practically verbatim to BASIC.
I have since extended the program to
display the disk directory, "TYPE" files,
and dump files to the printer. The program could be further extended to become a full blown communication utility. In fact, the Borland SIG on

CompuServe has a Turbo version of
MODEM7 available for downloading
(it's specifically written for 16-bit Turbo!). A print program translation to Turbo that I mentioned in an earlier column
is also available on the Borland SIG.

begin
writeln('Reading BASIC program into memory.');
fn := 'LIST'+~m;
{ set up and send LIST command to BASIC
for i := 1 to length(fn) do
begin
while not (txok) do;
port[serialio] := ord(fn[i]);
end;
input buffer pointer }
i := 0;
repeat
char by char capture of program }
if rxok then
begin
buffer[i] := chr(port[serialio]);
i := succ(i);
if buffer[i-1] = ~m then write('+');
{if got 

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:19:51-08:00
Modify Date                     : 2011:06:14 10:44:47-07:00
Metadata Date                   : 2011:06:14 10:44:47-07:00
Producer                        : Adobe Acrobat 9.43 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:1379f1fc-24ef-4beb-aa38-3a278ec22f31
Instance ID                     : uuid:584851b4-42d6-47b6-88b2-6e02ca95f8cf
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 91
EXIF Metadata provided by EXIF.tools

Navigation menu