Carson | X-10NB Chassis | August-September 1985

$3.00
August-September 1985
TABLE OF CONTENTS
Why I Wrote A Debugger .......................................
Xerox Monitor Modifications ....................................
Direct BDOS Calls in CP 1M .....................................
RS-232C: The Interface .........................................
Review: Media Master ..........................................
Color Speedometer For The Kaypro ..............................
The 32-Bit Super Chips .........................................
The Definicon DSI-32 Co-Processor ..............................
Programming The 32032: Setting Out ............................
Turbo Memory Assignments ............................. : .......
Modula II (excerpts from a talk by Niklaus Wirth) .................
Cheap DC To DC Converter .....................................
Extending RATFOR ...........................................
4
26
30
35
45
49
50
52
58
74
76
81
85
Regular Features
The S-100 Bus ..............
In The Public Domain .......
C'ing Clearly ...............
The Xerox 820 Column ......
86 World ...................
The Kaypro Column ........
FORTHwords ..............
Pascal Procedures ...........
11
13
16
21
38
46
63
70
On Your Own .............. 86
Technical Tips .............. 90
Culture Corner. . . . . . . . . . . . . . 97
Future Tense
Tidbits ................. ~ ... 98
The Last Page ............. 104
NEW LOWER PRICES!
NEW LOWER PRICES!
NEW LOWER PRICES!
"BIG BOARD II"
4 MHz Z80·A SINGLE BOARD COMPUTER WITH "SASI"
HARD·DISK INTERFACE
$145 PC BOARD WITH 16 PARTS
$545 ASSEMBLED & TESTED
Jim Ferguson, the designer of the "Big Board" distributed by Digital
Research Computers, has produced a stunning new computer that
Cal-Tex Computers has been shipping for a year. Called "Big Board II", it
has the following features:
• 4 MHz Z80-A CPU and Peripheral Chips
The new Ferguson computer runs at 4 MHz. Its Monitor code is lean, uses Mode 2
interrupts, and makes good use of the Z80-A DMA chip.
• 64K Dynamic RAM + 4K Static CRT RAM +
24K E(E)PROM or Static RAM
SIZE: 8.75" x 15.5"
POWER: +5V @ 3A, +-12V @ 0.1 A
• "SASI" Interface for Winchester Disks
Our ""Big Board II"' implements the Host portion 01 the ""Shugart Associates Systems
Interface." Adding a Winchester disk drive is no harder than attaching a lIoppy-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 $295 and implements the controller portion of the
SASI interface. 2) cables the controller to a Seagate Technology ST-506 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 2Kx8 SRAMs for the memory-mapped CRT display and space for six 2732As, 2Kx8
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
or
assembled and tested, it comes with a 2732 EPROM containing Russell Smith's superb
Monitor.
With a Z80-A SIOIO and a Z80-A CTC as a baud-rate generator, the new Ferguson
computer has two full RS232-C ports. It autobauds on both.
• 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 8877 controller chips since it generates the side signal with TTL parts. The
board has two connectors for disk signals, one with 34 pins for 5.25" drives, the other
with 50 pins for 8" 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 80 characters formed by a 7x9 dot matrix.
• STD Bus
• Two Synchronous!Asynchronous Serial Ports
• A Parallel Keyboard Port + Four Other Parallel
Ports for User 110
• Two Z80-A CTCs
= Eight Programmable Counters!Tlmers
The new Ferguson computer has two Z80-A CTCs. One is used to clock data into and
out of the Z80-A SIOIO, while the other is for systems and applications use.
• PROM Programming Circuitry
The new Cal-Tex SBC has circuitry for programming 2716s, 2732(A)s, or pincompatible EEPROMs.
• CP!M 2.2**
CP/M with Russell Smith's CBIOS for the new Cal-Tex computer is available for $150.
The CBIOS is available separately for $25.
The new Ferguson computer has an STD Bus port for easy system expansion .
• DMA
The new Ferguson computer has a Z80-A DMA chip that will allow byte-wise data
transfers at 500 KBytes per second and bit-serial transfers via the Z80-A SIO at 880 Kbits
per second with minimal processer overhead. When a hard-disc subsystem is added,
the DMA chip makes impressive disk performance possible.
CAL·TEX COMPUTERS, INC.
12788 HWY. 9 • BOULDER CREEK, CA 95006 • (408) 338-2572
··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 $5 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
IICID CDllaCD.11
Aug. -Sept. 1985
The Micro Technical Journal
No. 25
Editor & Publisher
David J. Thompson
those of you whose sensibilities have
been battered.
Operations Manager
David Pogue
86 World
We have renamed and revised the
Slicer Column to "S6 World." Actually, the column has been changing for
quite some time. Laine has written
some really interesting stuff on 8086
assembly language and operating systems, but since they've been hidden
under the name of Slicer, very few of
you have noticed them. (Watch for the
new 801S6-based systems coming to
the SOG.)
So we've taken Laine out of the
closet and turned him loose on the
whole field of S086, 80186, S0286, and
S0386 ... operating systems, assemblers, compilers, boards, you name it.
86 World is a particularly appropriate name for this column. You see,
Laine's off to see the world. Right
after SOG IV, he'll be spending a
couple of years in Turkey where he
will be designing computer systems to
help automate agriculture. He'll continue doing his column during his stay
there.
I'm sure he'll welcome cards, letters,
and visits from anyone - especially
visits from mobile hackers of the
feminine set.
Assistant Editors
Rebecca Ozrelic Gary Entsminger
Short And ...
Accounting
Sandra Thompson
Graphic Design
Craig Lannes
Graphic Production
Michael Odell
Tracey Braas
Technical Department
Dana Cotant
Eric Roby
Bruce Berryhill
Laine Stump
Larry Fogg
Advertising Director
Alice Holbrow
Staff Assistants
Dorcas Dsenis
Cary Gatton
Laura Pendley
Carla Miller
MICRO CORNUCOPIA supports systems
programming languages and builders of
single board and S-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, 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 S100 products. Send materials to the Review
Department, Micro Cornucopia.
Copyright 1985 by Micro Cornucopia Inc.
All rights reserved
ISSN 0747-587X
•••
You may notice that this editorial
is unusually short (at least for me).
No, it isn't that Gary and Becky have
finally found their delete keys; it's
just that I've been very busy. I've
spent a good deal of time speaking to
groups around the Northwest - the
Piper Cherokee that I rent has been
getting a workout. (It's so old that its
radio has a hand-crank.)
Plus, I've spent a number of hours
poring over turgid tomes (not morbid
gnomes) on Modula II. The language
is downright neat. Niklaus Wirth has
done himself proud.
The Modula II article in this issue is
really a chat with Niklaus Wirth
rather than a dry review of the
language.
If you're familiar with Pascal, you
should really enjoy Niklaus' ideas
about it and Modulas. Even if you're
just getting started with programming, I think you'll come away with- a
better understanding of computer languages in general. (A special thanks to
Ken and Pam Benedict - plus all you
Sacramento Micro C readers who
invited me to come down for Niklaus'
talk.)
New Processors
This issue has really turned into a
new-processor issue. We have three
articles covering the new 32-bit processors (mostly the 32032). Arnie
Henden takes a close look in the
FORTH column at how these fancy
devices are designed. Plus, the Slicer
column is broadening to cover the
whole gamut of Intel chips (see below).
Of course, Tidbits is still playing the
"what's new" game. Only the editorial
remains aloof - a quiet haven for
Running Off Is Running On
The response to the Pascal Runoff is
absolutely super. A week after the
first announcement of the contest, we
had six entries - neat stuff, too and submissions (proj ects for the
underwater Navy) are continuing to
roll in.
So take your keyboard in hand and
submerge yourself in that one great
program to end all programs. (Get a
picture of your family to take with
you so you'll be able to recognize them
after you've finished.)
A Thorne By Any Other Name
Thorne EMI has found out what
happens when you take reasonably
good software packages and shoot
them in the feet.
(continued on page 94)
LBTTBRS
In Defense Of Well Written Prose
Ever since the Issue 22 editorial,
I've been thinking about how thoroughly hung up one can become over
some absurdly simple thing. I believe
we readers could have eventually
deduced the Thompson Algorithm for
the half-fold then three-fold for reducing 8 112" X 11" sheets to fit small
envelopes, but I really can't claim
credit for brilliance. As a matter of
fact, I remembered how to do it.
I'm 73 years old, and when I was
young there were no Size 10 envelopes
(not where I worked, anyhow). If you
didn't half-fold-three-fold, you
couldn't mail a letter, so most of us
puzzled out some solution to this
environmental challenge. The Thompson Algorithm for Insertion Procedure, though, certainly does clear up
what could be a tricky problem for
someone younger.
This leads to another topic. One of
the biggest defects in the documentation of computer programs is an
assumption on the part of the writer
that the user actually knows something. Simple directions do not have
to be given in a condescending or a
cutesy-pootsy manner. A little simple
expository prose about the most elementary things is often received with
great appreciation, even by the cognoscenti. I am not one of that elite
group, but, as I said above, I'm 73,
and I've been at this since cardsorters and the IBM 650. I spend a lot
of time calling long-distance about
things that should have been put in
simple English in the first few pages
of the manual.
Even in my professional work, I am
surprised how often I am hung on
some simple matter and can't find the
answer in books which ought to
contain the information. The following
happened just a few nights ago as I
was writing a report about a patient.
I came across a respiratory rate of
18 breaths per minute in the record.
That's pretty fast breathing for a
patient lying quietly in bed, I
thought, so I wrote "tachypnea."
That's medical hog-Graeco-Latin for
fast breathing. Then I got to thinking,
2
this report is for a nonphysician. I
ought to document the normal range
of respiratory rate. I looked in two
brand-new textbooks of medicine
(which I had just recently purchased
for $75 each), but the information was
not there. I looked in a two-volume
loose-leaf text of medicine for which I
annually pay $100 for monthly updates. No luck. I used to teach
physiology. I looked in three fat
textbooks of human physiology. No
go. There was lots of talk about
tachypnea in all of these works, but
not word one about a formal definition
of what IS tachypnea, in numbers,
that is.
(Just so you won't lie awake all
night wondering, I found the following in a German textbook: mean
respiratory rate, men, resting: 11.7
breaths per minute; 95% range: 10.113.1; Fruhmann, G., Zeitsch Exp Med,
1964;138:1.)
I suppose if you can't find some of
the elementary facts of life in six
medical textbooks, it's too much to
hope to find the simple but necessary
facts in a program document.
George R. Meneely, MD
514 Southfield Rd.
Shreveport LA 71106
Editor's note:
Thanks, George. Your letter is a
breath of fresh air (11.7 times a
minute).
Using WordStar With Patches
I have WordStar version 3.3 and
found a piece of public domain software called ANYCODE which is a
patch that steals calls to W ordStar' s
print routine and allows a custom
interpretation of printer control codes
imbedded in your text. However, I
found that the area the patch was
designed to go into was already being
used in some way to support the
Kaypro 4. I then tried to add the
patch outside of W ordStar and enlarge the W ordStar load module to
include it. WordStar, being much
brighter than I, knows how big it is
supposed to be. Hence, the patch
works only under certain circumstances and is entirely destroyed under other conditions.
. How do I arbitrarily increase the
size of WordStar to include patches?
Or is there a better way?
Roger G. Fordham
4050 E. Sacaton St.
Phoenix AZ 85044
High On Micro C
It was with great joy that I greeted
the arrival of Issue 23. I leafed.
through it and read the articles of
immediate interest, then tucked it into
my bag for the flight home. The flight
was delayed (something about not
being able to screw the right wing
back on properly), so much so, that by
the time we queued up for the takeoff,
we had already been in the plane three
hours. Out of kindness (or perhaps to
keep from getting lynched) the flight
attendants opened up the bar. When
we arrived we were so well lubricated
that we had not only forgiven, but
forgotten everything.
I awoke with a jolt that night when
I remembered my issue of Micro C
was still in the seat pocket on the
airplane, between the plastic safety
card and the funny little bag with the
twist tie across the top.
I had a lousy weekend.
I come to you now with a tear in my
eye and a check in my hand and ask
that you send me another issue #23.
I will never drink and read Micro C
again.
Julian R. Bryttan
1926 Prairie Square #311
Schaumburg IL 60195
Editor's note:
It staggers me to think what Micro
C drives some folks to do. If you are
now subscribing because of an issue
#23 you found in an airline pocket,
you might send Julian something as a
thank you (anything but a drink).
Kaypros In Zaire
I have found your publication very
interesting and most helpful, but a
Micro Cornucopia, Number 25, August-September 1985
LETTERS
little overwhelming at my present
stage. I suppose this would be true of
anyone who read 11 issues in a little
over a week. Much of it is way over
my head, but I have found that just
reading, even when I do not completely understand, is a great help in
expanding my horizons. I have
learned a lot about my Kaypro II
from the tips and suggestions in
Micro C, and have even done a few of
the modifications.
There are about 10 Kaypro users
here in Kinshasa, Zaire, and all are as
new to computers as I am. We have a
very informal Kaypro users group,
but only one of us is technically
oriented and he's leaving soon, so we
are really hurting. It's kind of like the
blind leading the blind.
Most of what I get now is from
manuals, but as you have pointed out,
manuals are not the best way to learn
about computers or programs. So I
have a question for you. I would like
to upgrade my Kaypro II to a 4 and
install the Pro-8 ROM for possible
future expansion. Since I already have
the Pro-Monitor II on the machine, do
I have to do the 4 mod first before I
install the 8, or can I go directly to the
8?
Gordon L. Bottemiller
C.B.Z.O.
P.B.4728
Kinshasa II, Rep. of Zaire
Editor's note:
You obviously have an 83 Kaypro II
(with a real Kaypro II processor
board). You will have to do the II to 4
upgrade in order to run the Pro-8
monitor. You won't have to change
your drives right away, however.
Also, don't let your problems with
Micro C drive you to drink. It'll only
make things worse (see the previous
letter).
Disk Box Stash
I recently replaced two full-height
SSDD drives with two half-height
DSQD TEACs (you guessed it: from
Cal. Digital). This left a large empty
cavern where drive B used to be. I
found this space to be a perfect place
to stash two boxes of diskettes during
transportation. Furthermore, by using
a blank drive bezel (leftover from an
IBM PC upgrade) which snaps perfectly into place, everything can be
hidden away safe and sound (kind of
like an Osborne pocket).
Roy Trevino
709 Kofa Avenue
Parker AZ 85344
Editor's note:
Look closely at your screen, Roy. If
the letters are really tiny and the
system displays only 52 columns, I'd
take out the disk holder.
Turbo Utilities For CP/M·80
I am programming in Turbo Pascal
under CP/M 80. I would like to
contact others who are using CP/M 80
so as to exchange ideas, tips, and
utilities. There seems to be a flood of
IBM Turbo utilities, but very little for
CP/M 80. Thanks for your help.
Ralph E. Freshour
Box 7000-309
Redondo Beach CA 90277
Editor's note:
There's also a Turbo section on the
Micro C bulletin board. There isn't
much there yet, but if you'll log on
and share ideas and programs, there'll
be more. The number is 503-382-7643.
It's 300 and 1200 baud, 8 bits per
char, no parity, 1 stop bit, 24 hours.
Kaypro Lockup Problem
Last year I managed to speed up
myoid (1982) Kaypro II from 2.5 to
5MHz, with a toggle switch between
the two speeds. I even added a muffin
fan in the back.
For many months all went well. But
yesterday, while in Perfect Writer/
PluPerfect at 5MHz for less than an
hour, I got keyboard lockup! No way
could I save the partial letter in
memory. I toggled to 2.5MHz, reset,
and everything seemed to be OK
again.
Today, it's locking up on both
Micro Cornucopia, Number 25, August-September 1985
speeds. What could it be??
I can't remember all the mods I've
made with your help, so what I'm
asking for is a list of all the new chips
in best "final" configuration - what
you have learned from subscribers and
experience to be the best new components. For example, U67 should have
a Z80B SIO made by Zilog, etc., etc.
I'm sure I have installed most of
these, but perhaps not all, and such a
list would enable me to see what
remains to be modified.
Harald S. Gibson
444 - 36th St.
Manhattan Beach CA 90266-3208
Editor's note:
Your problems don't seem to be
speed sensitive (at least your computer-related problems). A number of
people have written to us about
problems with power connectors (e.g.,
between the power supply and the
main board, the drives, and the video
monitor). Some good contact spray
cleaner and exercising of all the plugs
(pushups) wouldn't hurt at all.
Also, you might want to try firmly
seating (or reseating) all the socketed
chips on your board, especially the
larger ones. (Keep your seat and read
the following letter.)
In Search Of Exo
I have recently purchased a used
Exo single board computer and did
not get the wiring and interface
documentation with it. It also had an
excellent set of business programs
(AP, AR, GL and Payroll) for which I
would like to get the source code and
documentation. The programs were
written in C-BASIC and are the best
I've seen. I wonder if any readers
might know how to contact Exo, if
they are still around, or might have
the documentation.
J. E. McMurray
P.O. Box 6772
Columbia SC 29260
(continued on page 88)
3
Why I Wrote A Debugger
By Richard Amyx
If you are using a Z80-based CP/M
system and are programming in assembly language (or you plan on
trying your hand at this sport), then a
debugger should be part of your
toolkit.
What Is A Debugger, Anyway?
"Debugger" is the slang term for a
program monitor, a special routine
that lets you interrupt the execution
of a program and observe the condition of the CPU registers - examine
the contents of memory - modify the
contents of the CPU registers and
memory - and perform other tests to
help you find the source of programming errors.
Why Use A Debugger?
When you're writing and testing a
program in a high-level language and
you encounter unexpected results or
strange answers, it's usually easy to
track down the problem. In many
cases, the language provides you with
messages that tell you the kind of
mistake you've made and its location
in the program.
With an interpreted language such
as MBASIC, for example, you can
break into the program at any point
and display the values of variables.
. With a compiled language, the compiler will usually indicate syntactic or
structural errors, and you can easily
include "print" or "write" statements
in your source to check the progress of
your program.
But with assembly language programs, you don't get any help beyond
identification of language errors that
prevent the assembler from doing its
job.
Once you begin executing your
assembled program, you're on your
own. Sometimes, you may simply get
unexpected results. Other times,a
program may get "lost." That is, it
may be misdirected to an area of
memory that does not contain an
executable instruction, and the results
can be bizarre, amusing, or destructive (usually it's all three).
You could write diagnostic messages into the program, but that's
quite tedious to do in assembly code,
4
994 N. Second Street
San Jose CA 95112
408-287-8572
even if you knew exactly where to put
the diagnostic message.
Why Not DDT?
After all, it comes with every CP/M
system. There is one strong reason
against using DDT: a debugger must
be written specifically for the system
CPU. DDT was written for the 8080
and is of limited use in Z80 systems.
In particular, the Z80 has more registers than the 8080 and it instruction
set is quite a bit larger. What you
need is something that will do for the
Z80 what DDT does for the 8080.
Enter DEBUG!
Shortly after I began using Micro
C's CROWECPM assembler to do
some experimenting with the video
controller chip in my Kaypro 4-84, I
wished I had a Z80 debugger to help
with the task. I shopped around and
quickly decided that, as a hobbyist.
just wanting to experiment, I could
not justify the cost of one of the
professional assembler/debuggers. After mulling the situation over for a
while, I decided that writing a debugger shouldn't be too difficult and that
it might be an interesting exercise.
The results of my efforts - called
DEBUG! - serve as illustration for
the remainder of this article.
The Assembled Listing
In order to use a debugger effectively, you must have an assembler listing
of the program you're debugging.
Figure 1 shows the assembler listing
for a short demonstration program.
First, let's take a look at the
information you get from the assembled listing. The leftmost column
shows the addresses at which the
instructions or storage areas are located. The second column shows the
assembled machine code for the mnemonic instruction, with addresses in
low byte-high byte order (for example,
312401, the first executable instruction (31), is the Z80 machine code
meaning "put the value 0124H into
the SP register"). The third column
contains labels. The fourth and fifth
columns contain the source code instructions, and anything to the right
of a semicolon is a comment.
Following the source code is the
symbol table which shows the location
of all the labels. (Labels are to assem. bly language what line numbers are to
BASIC. They are places you can
access or jump to.)
The line-by-line comments (they follow the semicolons) describe what
happens in each step of the program.
If you can't yet read assembly code
well enough to be able to understand
Figure 1 - Assembled listinu. of demonstration program
0000
0100
0100 312401
0103 FF
0104 AF
0105 3Ell
0107 013322
010A 115544
0100 217766
0110 C5
0111 05
0112 08
0113 09
01143E02
0116 010300
0119 81
011A C30000
0110
0110
0124 00
0000
TITLE
ORG
LO
RST
XOR
LO
LO
LO
LO
PUSH
PUSH
EX
EXX
LO
LO
ADD
JP
OEFS
STACK: OEFB
END
'DEBUG DEMO'
100H
SP,STACK
38H
A
A,llH
BC,2233H
OE,4455H
HL,6677H
BC
DE
AF,AF'
A,2
BC,3
A,C
0
7
0
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
USE OUR STACK, NOT CP/M'S.
INVOKE DEBUG.
THIS SETS Z(ERO) FLAG.
PUT SOMETH ING
VISIBLE IN THE
REGISTERS,
THEN SHOW
BC AND DE ON THE
STACK, TOO.
NOW EXCHANGE
THE REGISTERS,
THEN ADD 3 + 2 SO
THE RESULT WILL
SHOW IN A~
THAT'S ALL WE WANT
TO DO; WARM BOOT.
A 4-WORD STACK
START! NG HERE.
OF OBUGDEMO.
STACK 0124
Micro Cornucopia, Number 25, August-September 1985
all the details, don't worry about it.
The point of the program is this: the
load (LD) instructions put hex values
11, 2233, etc., into the A, BC, etc.,
registers. We fill them with these
values so they are easy to spot when
we use DEBUG! to look at the
register status.
Similarly, the two PUSH instructionsput (push) the contents of the
BC and DE register pairs onto the
stack so the stack will contain something easy to identify.
Then the EX and EXX instructions
exchange the Z80's regular and prime
registers. This moves the previously
loaded values to the second (prime) set
of registers. This second register set
appears in the upper portion of the
register display. (Note: We will specify
the the main register set as letters
such as A and F, while the second, or
prime set will be followed by single
quotes such as A' and F'.)
Next, 2 is loaded into the A register
and 3 into the BC register pair.
Loading 3 into BC puts the 3 in C and
a 0 in B - kind of a cheap trick to
make the 3 stand out. Finally, the
ADD instruction combines the contents of the A and C registers and
places the result in A. So, if all goes
well, the DEBUG! display will show 5
in the A register.
Displaying DEBUG!
Figure 2 is a screen dump of the
DEBUG! display with execution halted at address OllAH, just after the
addition and just before the jump to a
warm boot. The RST 38H, the second
instruction in the program, halted
program execution and invoked DEBUG! More about that later. While it
was stopped, I set a breakpoint
(roughly equivalent to a STOP in
BASIC) at OllAH, then issued a
"Go" command to have the program
continue execution to the breakpoint.
What It Means
The upper portion of the display
shows the contents of the CPU registers and the register indirects. The
contents of the addresses are displayed next to the addresses in the.
registers.
For example, DE contains the value
F8AEH. Address F8AEH contains
the value 08H, address F8AFH contains the value EDH, address F8BOH
contains the value 7BH, and so on,
through the end of the l6-byte line
following each register. The stuff to
the right of the numbers is the ASCII
representation of the memory contents.
A period indicates that a byte does
not have an ASCII representation.
Figure 2 - DEBUG! Screen Display
AF : 05 00 --x-x--BC : 00 03->81 00 C3 06 E8 FF FF FF
DE : F8
HL : FF
AF': 11
BC': 22
DE': 44
HL': 66
IX : FF
IY : FF
SP : 01
PC : 01
AE->08 ED 7B 40 F9 DB 14 CB
FB->C5 F8 F2 F6 00 C3 03 F6
44 -Zx-xP-333->FF FF FF FF FF FF FF FF
55->58 20 3A 20 24 49 59 20
77->00 00 00 00 00 00 00 00
FF->OO C3 03 F6 81 00 C3 06
FF->OO C3 03 F6 81 00 C3 06
20->55 44 33 22 00 00 00 00
lA->C3 00 00 AD lB 01 55 44
0100->31 24 01 FF
0110->C5 05 08 09
0120->55 44 33 22
=> 0130->00 00 00 00
0140->00 00 00 00
0150->00 00 00 00
0160->00 00 00 00
0170->00 00 00 00
Breakpoints: 011A 0000
FF FF FF FF FF FF FF FF
BF 03 14 08 C9 E3 7E 23
81 00 C3 06 E8 FF FF FF
FF FF FF FF FF 00 00 00
3A 20 24 53 50 20 3A 20
00 94 FF FF FF FF FF FF
E8 FF FF FF FF FF FF FF
E8 FF FF FF FF FF FF FF
00 00 00 00 00 00 00 00
33 22 00 00 00 00 00 00
AF 3E 11 01 33 22 1155
3E 02 01 03 00 81 C3 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
0000 0000 0000 0000
44
00
00
00
00
00
00
00
21
AD
00
00
00
00
00
00
Convnand?
Micro Cornucopia, Number 25; August-September 1985
77 66
lB
00
00
00
00
00
00
•• IM •••••••••••,
•••••••••••••••
X: SlY
: SSP:
••••••••••••••••
•••••••• ~ •••••••
UD3" ••••••••••••
•••••• UD 3" ••••••
1$ ••• >•• 3".UDlwf
01 •••• >•••
00 UD3" ••••
00
00
00
00
00
This kind of display is the same for all
the registers except AF and A'F'.
(Note: the contents of a register pair
may not be an address, e.g., if you are
using the B and C registers to hold
two 8-bit integers, you wouldn't care
what l6-bit "address" BC was pointed
to, or the contents of that "address.")
In this example, BC contains
0003H, a value for calculation, as
explained above. The special registers
SP and PC, however, always contain
addresses, and the interpretation of
the contents of the addresses (the
indirect values) is special to those two
registers.
Stack Pointer
The SP (Stack Pointer) register
shows the current address of the
stack. Our program loads the stack
pointer with 0124H, but we've pushed
four bytes onto the stack so the SP
shows 0120H (the address at which
the next byte pushed will be stored).
Because the SP decrements with
each push, the addresses above its
current value show what's on the
stack. And, sure enough, the display
shows the contents of the BC and DE
registers, now on display as the
alternate register set (stored low byte
first).
Program Counter
The PC (Program Counter) register
shows the address of the next instruction to be executed. The breakpoint is
set at OllAH; the PC shows OllAH.
According to the assembled program
listing, the instruction at OllAH is JP
o (C30000), and the indirects following
the PC display are C3 00 00.
The AF Registers
The AF and A'F' registers are not
register pairs in the same sense as the
others.
The A (Accumulator) register is a
one-byte register whose contents can
be manipulated in a variety of ways.
Conversely, the F (Flag) register is a
special register used by the CPU to
indicate conditions resulting from cer(continued on page 7)
5
Attention Modem Buyers!!!
We Guarantee Lowest Price
and Best Support Around!!
VOLKSMODEM
1200 BAUD
• 300-1200 baud smartmodem
• Hayes compatible
• auto-dial/auto-answer
• 5 year warranty
NOW ONLY:
$179.95
•••
SIGNALMAN "EXPRESS"
This modem is an EXACT to the
Hayes 1200. PLUS ... has storage
ability of 10 number of 48 digits. Anchor Automations "top-of-the-line" ...
for those who will only have a Hayes!
TODAY ONLY: $299.95
•••
SIGNALMAN MARK 12 WESTRIDGE 64/20
This 300-1200 baud Hayes comThis 300 baud auto-dial/autopatible smartmodem comes with RS- answer modem is designed for Com232 cable, 12v power supply and modore 64 computers. It comes comphone cable.
plete with software on disk and phone
SPECIAL: $219.95 cable.
NOW ONLY: $59.95
•••
SIGNALMAN MARK 10
This 300 baud smartmodem is
Hayes compatible and comes with
RS-232 cable, 9v power supply and
phone cable.
NEW PRICE: $99.95
•••
VOLKSMODEM 300
Now at its lowest price ever this
300 baud answer/originate modem
only needs a cable and battery and
it's ready to communicate!
LOWEST PRICE: $55.95
•••
FREE!!
To First 100 Buyers
SIGNALMAN MARK 7
A 300 baud auto-dial/auto-answer
modem which comes with RS-232
cable, RJ-11 cable and power supply.
DISCOUNTED: $79.95
•••
VOLKSMODEM CABLE
Needed for Volksmodem 1200 and
300. Available for most computers ...
price may vary with computer type.
MOST ONLY: $9.95
of the Month!!
$50.00 WORTH
of Time on
NEWSNET!!
(Must purchase by
the 20th day of the month)
•••
CASE R1224
(2400 baud now in stock!!!)
This top-of-the-line modem meets
the new 2400 baud CCITT V.22 standard and is Asychronous/sychronous
2400/1200/300 bps. We have these in
stock ready to deliver upon request!!
2400 BAUD TO DELIVER
TODAY: $599.95
Call
Now Toll Free:
1-800-922-2329
IN KANSAS: (316) 264-5068
TECHNICAL SUPPORT: (316) 264-5589
We Service What We Sell!!!
•
We Will Match Any Price!!!
SPECIALIZING IN DATA COMMUNICATIONS
OMNICOM440 MAPLE
•
WICHITA, KS
•
67213
TERMS: C.O.D. acceptable. add $1.90. Personal checks require two weeks for clearance. Visa and MasterCard accepted. All prices reflect 3% cash discount.
Add 3% for shipping and handling. Kansas residents add 3% sales tax. All orders returned or refused are subject to a 10% restocking fee. Prices subject to
change without notice.
6
Micro Cornucopia, Number 25, August-September 1985
WHY I WROTE A DEBUGGER _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 5)
tain CPU operations. The numbers
following the AF and A'F' register
names show their contents.
Note that the A register does indeed
contain 5, the result of adding 2 and 3.
But the 44 in the F' register cannot be
interpreted so quickly. Therefore, the
letters (or dashes) to the right of the
numeric values are used to show the
status of· the bits (flags) in the F
register. Performing an exclusive OR
on the A register (now the A' register,
with the registers exchanged) created
a zero result; hence, bit 6, the zero (Z)
flag, was set to 1.
Also, beca~se the exclusive OR
resulted in an even number of bits
(zero) in the accumulator, the parity
(P) flag was set. Other flags indicate
Sign, Half-carry, Negative, and Carry.
The "x" in bits 5 and 3 means that
those bits are not used by the CPU; a
dash means that the flag for that bit
is not set (is 0).
If you're just getting started· in
assembly language programming,
some of this explanation may border
on gobbledygook. (Maybe more than
border.)
Fortunately, there are two books
that spell everything out in detail and
that I highly recommend: "The Z80
Microcomputer Handbook" by William Barden, Jr. (Howard W. Sams. &
Co., Inc.), and "Z80 and 8080 Assembly Language Programming" by
Kathe Spracklen (Hayden Book Company, Inc.). The Spracklen book is
especially helpful to CP/M users because it presents 8080 code and Z80
code side by side, and even if you do
have a Z80 system you will inevitably
run up against 8080 code somewhere
along the line.
Back To Figure 2
The clump of numbers toward the
bottom of the display ~hows the
contents of a 128-byte "page" of
memory (and what's on display here is
the demo program, starting at
010()H). Below the memory display is
a line showing the breakpoints that
are set; the last line is used for
command entry and error message
reporting. There are a number of
things you can do with DEBUG!
when the display is active:
- Page memory display forward or
back
- Continue from the current breakpoint
- Single-step through the program
under test
- Clear all breakpoints or a specified breakpoint
- Set a breakpoint
- Display a specified area of memory
- Perform hexadecimal arithmetic
- Jump to a specified address
- Fill an area of memory with a
specified byte
- Modify the contents of a specified
address
- Change the value in any register
pair
- Search memory for a string of
bytes
- Move the contents of one area of
memory to another.
These functions let you see exactly
the condition of the CPU and memory
at any time and make changes for
"what if" testing. The single-stepper
is a particularly powerful tool when
you're not sure what's happening in a
program.
A debugger is an extremely valuable instructional aid. When I first
began working with assembly programming, I found it quite abstract in
comparison to high-level language programming. I read and reread explanations of what the various instructions
did, but for a long time I was left with
a "so what?" feeling. Sure, I could
understand what happened with any
instruction, but I had a tough time
relating that to what I wanted to do.
My bro~her, who has dabbled with
assembly language, dropped by while
I was working on the debugger. When
I finished explaining to him what I
was doing, he remarked, "Gee, I wish
I'd had this when I was fiddling with
the assembler. It sure makes things
clear."
How Does A Debugger Work?
So what's the big mystery about
debugge:rs? Actually, there isn't much
of a mystery, or I wouldn't have been
able to write one.
Implementing DEBUG! involved
one trick, one standard procedure, and
Micro Cornucopia, Number 25, August-September 1985
one item of caution throughout. The
trick is to make the program "selfcalling," a misnomer in itself. While
there are several ways a debugger
could be invoked initially, there has to
be a way for it to call itself for
breakpoints or single-stepping (which
is an internally set breakpoint at each
executable instruction).
The Z80 provides eight one-byte
reset (RST) instructions, which CP/M
has chosen not to implement. The
reset instructions direct the CPU to
preset addresses, with the additional
characteristic of pushing the address
of the next program instruction onto
the stack, just as a call does.
RST 38H, the one I chose to use,
transfers program execution to address 38H, the same address DDT
uses. The initialization portion of
DEBUG! overwrites the jump-toDDT instruction at 38H with a jump
to DEBUG!. In this way, the RST
38H (OFFH) coded into the program
invokes DEBUG!.
After that, any time a breakpoint is
set, the program code byte at the
breakpoint address is replaced by
FFH, and when that instruction is
encountered, DEBUG! becomes active
(and the substituted code byte is
restored). Thus, DEBUG! is not really
self-calling: the user program code is
altered to create the call. The standard procedure is to "preserve the
user's environment."
Protecting The User
What this means is that the absolute first thing DEBUG! does is save
the user's SP, PC, and contents of the
PC (the return address pushed onto
the stack by the RST instruction) and
push all the user's register values onto
the DEBUG! stack. This is exactly
the same thing that's done in any
interrupt-driven program. Once the
user's environment is preserved, DEBUG! can skitter around and do
pretty much whatever it wants, as
long as it doesn't mess up the user's
program or the system.
The caution throughout is to be
very sure that the stack is restored
upon completion of any action. The
last thing DEBUG! does before re(continued on page 9)
7
PSComputers Presents the ...
PS Turbo 640
For those of you that mistook me for Bill
Gates from Microsoft, let me clarify things.
I'm Dave Carlin of PS Computers in Palm
Springs, California. The differences are
pretty basic. Bill reads the Wall Street Journal, wears glasses and writes great soft"
ware. I read USA Today, wear soft contacts and build great hardware.
The specs. 640 K of memory (the maximum contiguous memory that the PC can
address - and they're all 150 nanosecond
chips). A keyboard that is very similar to
the Key Tronics 5151 (yes all the horror
stories about the keyboards that come.
stock with IBM PCs are true). Two serial
ports, a parallel printer port and a game·
port (you can't beat that). Battery powered
Now that you know who I am, or at least clock (keeps track of the time and date
who I am not, let's get to the point.
while the computer.is off). A monochrome
graphics card that gives you crisp
Problem. Since I got into computers two monochrome text and lets you use color
years ago they have been a constant and graphic software on a monochrome
monitor displayed as sixteen shades of
source of fascination and frustration.
grey (amber). An amber monitor (very
chic).
Two 360 K disk drives (AKA Half
Fascination due to the immense power
and control that the personal computer Height Double Sided Double Density).
has allowed me over my daily business Two front panel LEOs (one to indicate that
activities; frustration due to the hundreds you left the computer on from the night
of hours I've spent making hardware and before [it's ok, that doesn't hurt it] and the
other to tell you if the processor is in the
software cooper~te with one another.
high speed mode or just going IBM
No doubt about .it, once you get all the speed). Eight expansion slots (two are
pieces put together correctly you have at used by the multifunction card and monitor
your command an incredible tool. There is card, four full sized and two short slots are
absolutely no limit to the number and type available) Five available ROM sockets and
of tasks that you can accomplish with two buss connection pOints (load progreater speed, better accuracy and grams stored on your own ROMs). 135
stronger impact; all with far less effort. The watt power supply ~ready for upgrading to
trade off however has been the time, ener- a hard disk). User s book and complete
gy and uncertainty involved in finding the. technical information (the user's part is
best buy on the right equipment, then get- easy - the tech part is very technical).
ting all the parts to function as one.
A computer without software is basically a
Because I have personally gone through solid state boat anchor and a rather poor
hours of long distance phone calls to hard- .one at that. When you buy the Turbo 640 I
ware manufacturers and waited days for want you to be able to start using it the
call backs that never happened. Because moment you take it out of the box.
I have found myself so many times in front
of a screen filled with meaningless greek All this and software too. First there's
characters at 2 AM unable to get the com- Microsoft DOS. DOS is the program that
puter to print a simple business letter. Be- brin9s the computer to life. Typically some
cause I would not wish this type of agony version of it is run on all IBM PCs prior to
on anyone. This is why I have put together running application programs. "And it
came to pass that this was called booting
the PS Turbo 640.
the computer". I'm not crazy about the
Solution. What happened was ... a few term, but everyone does it. The full DOS
months ago I discovered a source of com- manual from Microsoft is included.
puter mother boards that run IBM type'
software faster than the IBM PC. They're a There is complete software for the multigenuine product of Taiwan and they are function card that allows you to partition
beautiful. I bought cases, keyboards, your memory into RAM disks and a printer
cables and disk drives; built the Turbo 640 buffer.
and put it to work. Right now I have three
PS Turbo 640s linked as a network running Perhaps you've heard about Sidekick from
Dbase III and Lotus day in and day out in Philippe Kahn at Borland. InfoWorld voted
my business. The PS Turbo 640 works, it it the Software Product of the Year. Well it's
works well and it works faster than the IBM good code but I'm not including it with the
Turbo 640. What I am including is a prodPC.
uct that I like better, has essentially the
An oral surgeon friend saw my network same functions but in my opinion is easier
and asked me to build one up for him. One to use - PopUps from Bellsoft. Regardless
of the Turbo 640's on the network is in his of how deep into your spreadsheet, dataoperatory. It runs a program I wrote in Tur- base or master's theSIS (revisions) you
bo Pascal for his anesthesia records - not a might be, two key strokes will put a notesingle glitch. (The 640 seems totally im- pad, calculator or any of 5 other utilities on
your screen. Make notes, perform calculamune to the effects of Nitrous Oxide.)
tions, set an alarm, check your calendar or
More than compatible. Though I have a perform DOS functions. When you're
private pilot's license and quite a few finished just hit the escape key; the Pophours flYing high performance aircraft, I've Ups disappear from the screen and you're
never taken the time to learn to use the back into your program. This is the PopUp
Flight Simulator program from Microsoft. Deskset from Bellsoft, it's potent software
Some of my friends have and it runs and it's part of the PS Turbo 640 system.
beautifully on the 640.
Don't wait. If you're ready for this kind of
The phrase "IBM compatibility" is an computing then the PS Turbo 640 is the
understatement with my computers; the machine you need. Call me with your
PS Turbo 640 is just flat out a better ma- American Express Card account number
or mail me a cashier's check. I will perchine.
sonally see to it that a Turbo 640 is shi pped
Peter Norton publishes a program that to you via UPS the next business day.
rates computers as to speed and com- Open the box, plug the monitor and the
patibility with the IBM PC. In the normal keyboard into the computer then plug the
mode of operation the PS Turbo 640 rates computer into the wall socket. Turn the
a 1.0 which indicates a 1 to 1 equivalency. computer and monitor on, stick in any softIn the high speed mode (selected with two ware designed to run on the IBM PC and
keystrokes, no switches or rebooting) the go to work. No chips to put in backwards,
640 scores a 1.4; that's 40% faster than an no little multicolored wires to push onto the
IBM PC.
wrong connector and no switches to set.
Money back. If the PS Turbo 640 doesn't
perform like I've said then return it to me.
Just put one copy of your invoice in the box
and send it back. I will make sure that
credit is issued on your credit card or a
cashier's check is mailed out to you, the
same business day that we receive the'
unit.
I've told you quite a bit about what you get
when you buy the Turbo 640; now let me
tell about something you won't get. You
won't get put on hold if you have occasion
to call the technical support division number. That's because there isn't a technical
support number. Once the machine is on it
looks like, acts like and runs like a properly
configured IBM PC, just a little faster.
This is the part where I have to get a little
tough. I've sold you what I feel is the ideal
configuration of an IBM type PC. You have
gotten the absolute best buy for your
money on earth. I can not however, learn
how to use it for you. Follow the directions
in the book, remember that no matter how
much you pay for your software it's probably not perfect, and most of all don't give
up - whatever time it takes to get proficient
at your particular software application will
ultimately be all worthwhile.
Warranty. The warranty on the Turbo 640
is simple. If anything goes wrong in the first
six months, send it back. The unit will be
repaired and shipped back to you two
days after we receive it.
In case of an out of warranty hardware
problem (how many million dollars does it
cost for the space shuttle to place defective satellites into random orbit?) or if
you have a question concerning operation
(that isn't answered by the manual), you
have three options:
One, write me a card or letter. These are
answered the same day as received via
MCI Mail. Two, sign onto the PS Computer
24 hour bulletin board, post your message
and then sign on later for the answer.
(admittedly hard to do if you didn't decide
to get a modem or the computer I sold you
broke \see option onel) Or three, find out
where live (probably tlie least convenient
for both of us).
National Order Line
800-654-7650
PS Computers
California Order Line
800-231-8701
200 West San Rafael Road
Palm Springs, CA 92262
PlaCing your order. The 800 number puts
you in touch with an operator here at PS
Computers whose function is to take the
necessary information, quickly and-accurately, period. I've given you the highlights
of the system in this ad. If you need to know
more about specific features drop me a
line. Sure it seems like it might be a bit
more trouble than calling; but you won't be
reaching a busy signal and your answer
will be in writing.
You have my word that the PS Turbo 640
has been accurately represented on this
page and is in fact the absolute best buy
for your dollars. If for any reason you don't
like the 640 then you also have my word
that upon our receiving the system, those
dollars will be returned to you, immediately.
Safe bet. If you want to know for sure if
the 640 is the computer for you, buy it. The
local book is 100 to one that after you use
the PS Turbo 640, you'll never part with it.
PS Turbo 640 System
51,700
P S Turbo 640 System
with 10 Meg Internal Hard Disk
52.200
The (really) fine print:
Microsoft OOS and Flight Simulator are trademarks of Microsoft Corporation. lotus is a trademark of lotus Oevelopmeni
Corporation. Dbase III is a trademark of Ashton-Tate. Turbo
Pascal and Sidekick are trademarks of Borland International.
The PopUp series of software are trademarks of Bellsoft. IBM
is a trademark of a company called International Business
Machines.lnfoWorld, The Wall Street Journal and USA Today
are nationally distributed publications.
Local Order Line
619-325-4856
Modem Line 3001 t 200
619-323-4962
S100
BARE BOARDS
DEBUGGER _______________
ANY COMBINA TlON OF
3 BARE BOARDS
(continued from page 7)
turning control to the user program is
restore the user's environment to the
registers and the stack.
Otherwise, virtually everything DEBUG! does is just various arrangements of memory moves or standard
algorithms. Single-stepping is interesting in that it is a software emulation of CPU action. DEBUG! looks
ahead one step to see what the CPU's
going to do next, then sets a breakpoint at the appropriate address. A
bit tedious to code, perhaps, but
hardly magical or mysterious.
DEBUG!, which takes up 3042
bytes, is completely relocatable above
address ODA6H. This means that if I
am working on a program that will
reside at the bottom of memory,
DEBUG! can sit at the top of memory
(I usually keep it just below EOOOH,
the top of the TPA in the 4-84). If I'm
working on a program that runs in
high memory, I can move DEBUG!
down to a spot where it will be out of
the way.
For example, I used Micro C's
DUMP484 to make the printed display used in Figure 2. DUMP484
resides at the top of memory, and the
demo program is at the very bottom.
So I relocated DEBUG! to end at
5000H, well below DUMP484 and well
above the demo program. I also made
the maximum possible use of standard
CP/M calls in writing DEBUG! so it
would run on any CP/M system with
an addressable cursor. It is customized for the Kaypro to the extent of a
few cursor locations and the cursor
positioning routine - elements that
can easily be changed.
DEBUG! was written for CROWECPM, which makes use of only
standard Z80 instructions, so a macro
is not required to assemble it. Yes,
DEBUG! could contain many more
features and functions. A debugger
seems to be one of those programs
onto which you could add bells and
whistles until there was no memory
left for a program to use it. What I've
got now suits my (current) needs and the price was absolutely right.
Editor's note: DEBUG! (along with
other goodies) will be on Micro C User
Disk K37.
•••
$150
B/B
KIT
256K DYNAMIC MEMORY
64K TO 256K TO 1 MEGABYTE
CAPACITY ..............................
$75
256K/510
64K/360
FDC-1 FLOPPY DISK CONTROLLER
8" & 5114" DRiVES ........................
$70
$245
N/A
Z80 CPU
4 MHZ/2 MHZ SELECTABLE ............
$65
$245
N/A
USES 8251 US ART .....................
$65
N/A
N/A
S100 CLOCK/CALENDAR WITH
ON BOARD BATTERY BACKUP .........
$50
$99
$135
1.0. BOARD - 4 SERIAL PORT
ACT
SOURCE CODE MONITOR ON STANDARD 8" DISK
USED WITH CPM 2.2 .................................................
MONITOR IN PROM - 2716
$25
..... ~ .................................... $25
BUY ANY COMBINATION OF 4 BOARDS & RECEIVE
FREE MONITOR PROM
All Manuals Included· All Parts Available· CA Residents Add Sales Tax· $4 Min. Shipping· Add $1.65 COD
We Accept Credit Cards
I
COMPUTIME
8614 HAMILTON AVE., HUNTINGTON BEACH, CA92646 • (714) 536-5000
Business Hours 10-5 Monday through Thursday
THE WORLD'S
FASTEST
MOST
POWERFUL
8080
RELOCA TING MACRO
ASSEMBLER
5L · "Ae
ONLY
lM
$49 •95
AT THIS PRICE, SHOULD YOU BE WASTING
YOUR TIME USING SOMETHING ELSE?
This is what they said about
Z80ASM, our Z80 assembler. Now
the same features and performance
are available in our Intel Mnemonic
product. SLRMAC is compatible
with M80 in .8080 mode, with many
extensions. Too many features to
list here.
To order or to find out more
about our complete family of
development tools, call or write:
..sLR__'ystems_.
1622 N. Main St., Butler, PA 16001
(800) 833-3061, (412) 282-0864
Telex 559215 SLR SYS
I.) ~
t.iiii!Il
C.O.D., Check or
Money Order Accepted.
Add $3 shipping .
Z80 CPIM compatibility required.
Micro Cornucopia, Number 25, August-September 1985
a breath of fresh air •. "
Computer Language, Feb. 85
u •• in two words, I'd say speed &
flexibility",
Edward Joyce, Nov. 84
Microcomputing
u •.•
NORMALIZED PERFORMANCE
1.0
Assemble
ZCPR3
to create a
HEX file.
1'"-
.75 ~
0
~
:E
a:
.50- •
...J
(J)
0
C!
.25--
....
0
~
:E
t--
0
co
:E
C'4 N
_C'4
n
1:10 4:24 5:19
2Mhz
8"SS/SD
~
0
<
:e
a:
-'
(J)
~
.,...
0
0
:E
:e
~
~
co
N
""':
I I
:05 :41 :42
8Mhz
RamDisk
9
ERAC co.
Ie BL W UTI
CPU/SUPPORT
MC68000-8 CPU ............. $16.00
l80 CPU ..................... 1.00
l80 PIO ...................... 3.50
l80 SID ...................... 7.50
l80A CPU .................... 2.50
l80A PIO ..................... 3.50
l80A SID .................... 10.00
l80A DMA ................... 10.00
8088 ....................... 19.00
08742 CPU/EPROM 1'2 MHz ..... 20.00
08288 ...................... 22.00
4164-15 ...................... 1.50
MODEM/DIALER
TMS 99532 (Modem) ......... $12.00
TMS 99531 (Dialer) ............. 8.00
FLOPPY CONTROLLER
WD 1791 .................... $9.00
WD 1793 ..................... 9.00
WD 1797 .................... 16.00
BAUD GENERATOR
WD 8116 .................... $8.00
MISCELLANEOUS
WD9216 Synch - Sep ........... $7.50
MM58167A Clock Chip .......... 8.50
CA301 Op Amp ............... , .35
CA083 Op Amp " ............. , .45
2N3055 ...................... 1.00
Voltage Regulators
LM323K + 5V - 3A .......... 4.50
LM78H12 +12V-5A ........ 5.00
6116 2Kx8 Static Ram, .......... 3.00
VIDEO CONTROLLER
6545 ............... , ...... ,$7.00
6545A-1 ...... , .............. 8.00
6845 ... , ............ , ....... 6.00
EPROMS
2716 .............. , ........ $3.50
2732 ........... ,.,., ........ 3.75
2764 .. , .... , .. , . , ... , ....... 4.00
2764-25, ..................... 5.00
8280 Clairemont Mesa Blvd., Suite 117
San Diego, California 92111
,(619 569-1864
KAYPRO EQUIPMENT
9" Green Monitor ............ $35.00
81 Series ROM's ............... 7.00
Keyboard (new) ............... 65.00
KAYPRO MAINBOAROS
K2 With Sockets ............. $20.00
K2 Populated - Tested ......... 175.00
K2 with PR08-2 Mod .......... 299.00
MISC. CABLES
9" 50 Pin - 50 Pin Header ...... $2.50
14" 40 Pin - 40 Pin Header ...... 2.25
9" Hard Disk - 20 Pin Header ..... 2.00
14" Duallnline 16 Pin Male (2) ... 2.00
I/O Connector for Keyboard ...... 1.25
5V-5A, 12-3A, 12-2A, -12-.5A .. 65.00
5V - 6A .................... $20.00
5V - 10A .................... 25.00
28V - 1.3A ................... 25.00
FLOPPY DISK CABLE
FLOPPY DISK DRIVES
19" 2x51J4 " to 34 Pin Header .... $5.00
RS232 CABLE
36" M-M, M-F ............... 15.00
- 112 HEIGHTMitsubishi M4851 DSDD ....... $99.00
Mitsubishi M4853 OS Quad .... 158.00.
Dume Trak 142 51J4" DSDD .... 125.00
Tandon TM 848-1 8" SSDD .... 175.00
Tandon TM848-2 8" OS DO ..... 275.00
- STANDARD HEIGHT Pertec FD200 51J4" DSDD ..... $100.00
Shugart SA850 8" OS DO ...... 225.00
Persci 277 2x8" ............. 425.00
All Instruction Manuals ......... 10.00
This one runs at 2.4 & 5 MHz. up to 4
drives SS. DS. or Quad drives. New ROM
has screen dump and step speed select.
With manual & software. tested and
guaranteed 30 days,
K2 PR08-2 Mod. EXCHANGE ... 149.00
We will update your K2 or K4 as above,
Mail working Main board.
We can install double or quad drives
and check complete package ..... CALL
K10 Populated - Tested ........ 250.00
LOW PROFILE IC SOCKETS
8 Pin
14 Pin
16 Pin
18 Pin
20 Pin
24 Pin
40 Pin
50 per Tube
25 per Tube
25 per Tube
25 per Tube
20 per Tube
20 per Tube
10 per Tube
........... $2.50
........... $1.50
........... $2.25
...... , .... $2.50
............ $2.00
........... $2.50
........... $1.60
••••••••••••••••••••••••••••••••••••••
74LS SERIES
CONNECTORS
S100 - 100 Pin ............... $3.75
S100 - Extension Board ......... 25.00
S100 - Termi nator Board ..... , .. 33.00
PRINTERS
Centronics 703 '.,., ... ,., .. $395.00
Centronics 588 "., ... ,., .... 225.00
Centronics P1 ..... , .. ,., .... 105.00
Teletype 43KSR ...... , . , ... , .300.00
NEC 2000 with Single Bin
Cut Sheet Feeder, .... , .. , .1500.00
Transtar 315 Color ... ,., ..... 375.00
10
SWITCHERS
We Carry Standard TTL, LS, S, ECL
TERMINALS
InterTube II Smart (B&W) ..... $225.00
InteColor 3602 Smart (Color) ... 395.00
X·y PLOTTERS
11 x 17 ............... from $300.00
MISCELLANEOUS
BATTERIES
Gates or equivalent
POWER SUPPLIES
WALL PLUG-IN TYPE
13.5VDC - .5A Regulated ....... $4.25
12VDC - .3A .................. 2.15
6VAC - .95A .................. 1.35
LINEAR
Condor Model CP731 DC Power Supply
+ 14V-4A, + 5V-7A, ± 15V-.5A .. 16.00
Condor Model CP573 DC Power Supply
. + 5V-6A, ± 25V-3A .' ........... 7.50
14KV DC/DC TV Power Supply .... 4.50
+5V/1A, -5V/.2A, + 12V/1A,
-12V/.2A, - 24V/.05A
Regulated 21J2x4x5" ......... 15.00
LS 125 ............. , ........ $ .40
LS 373 ...... , ............... , .95
LS 375 .......... , ........ , . , .. 60
4073 ... , ........ , ............ 35
Nicad 4 Pack AA .. , ....... , ... $3.25
Lead Acid 0 Cell 2V - 2.5A .. , .... 1.50
S100
CCS 2200 12 slot MF ........ $375.00
CCS 2810A CPU ............. 210.00
2065 64K RAM .... " ........ 250.00
2422 FDC 51J4" & 8"' ......... 325.00
2718 I/O 2 Ser., 2 Par ......... 225.00
Cl..(I.lFd,MDtH MESA L:LlJI::p
\
NIII" "I<' L,'N[)
Soldering Irons - 30W .......... $5.95
5 Blade Muffin Fans ............ 7.50
Joystick 4 Switches 1" Knob ..... 5.50
Part Boxes - 6 Compartments .... ,2.00
NLS 41J2 Digit Panel Meter LCD
5VDC Power ..... , ........ 25.00
Elgar 400W Uninterruptable
Power Supply ... , ....... 425.00
Varactor Tuner
All Band 24VDC Power. , .... , .10.00
Handheld 3112 Digit DMM LCD
KD55C .......... , .. , .. , .. ,50.00
KD615 .... , ........ , ...... 56.00
lM-11U LCR Bridge ....... , .. 125.00
VIDEO ARCADE GAME
Naughty Boy ................ $40.00 .
Micro Cornucopia, Number 25, August-September 1985
The S-100 Bus
By Dave Hardy
As I mentioned last month, multiprocessing is probably the greatest
advantage of the S-100 (lEEE-696)
bus. The S-100 bus performs its multiprocessing magic by using something
called Temporary Master Access
(TMA).
An integral part of the IEEE-696
standard, TMA is the process that
lets another processor take over the
system to perform data transfers
between itself and other devices attached to the S-100 bus.
How The Magic Works
The S-100 bus is designed to support up to 16 processors, and it selects
between them by using a simple
Request/Acknowledge/Transfer protocol. The whole process works like this:
First, the processor that wants to
take temporary control of the bus
issues a request by asserting the S100 bus's HOLD* line. It then waits
for the permanent bus master to
finish its current bus cycle and respond with the Hold Acknowledge
signal, called pHLDA.
Once it sees the pHLDA signal, the
requesting processor turns off the
permanent master's bus drivers, and
turns on its own drivers to take
control of the address, data, control,
and status busses. After it has done
all that, it is in total control of the S100 bus, and can function exactly as if
it were the only processor on the bus.
At this point, the requesting processor is called the Temporary Master
because it controls the entire S-100
bus, but it must return control to the
Permanent Master when it has finished using the bus.
The point of all of this (in case you
missed the June/July issue), is that
TMA makes it possible for several
separate computers to operate in the
same S-100 box at the same time, and
share all of the S-100 frame's peripherals, including hard disks, printers,
modems, and just about anything else
that can be plugged into the S-100
bus, without any hardware conflicts.
Several manufacturers make temporary master processor boards designed to operate in the S-100 TMA
environment. These complete single-
736 Notre Dame
Grosse Pointe MI 48203
board computer systems are called
slave boards, because of their relationship to the S-100 master processor.
Virtually all of these slave boards
are designed to run a CP/M-like
operating system called TurboDos
that allows each of the slave processors to appear to its operator as a
single-user CP/M machine. Because of
the low cost of these boards (typically
$300-$600), a powerful multi-user system can be built in the S-100 bus at a
fraction of the cost of any other
method.
using a pencil eraser on a gold-plated
connector used to make me cringe, not
only because of the damage to the
gold plating, but also because of the
oily residue left behind by the eraser.
But about a year ago, I discovered
that one eraser, the Mars Staedtler
Rasor 52730, not only cleans the
connector without damage to the gold
plating, but also leaves no residue.
Since that time, I have used the
Mars eraser with excellent results,
and have decided to make it a permanent resident in my S-100 toolbox.
Some Alternatives
If you don't like multi-processing,
the S-100 bus can also be set up as
part of a network. Unlike multiprocessing, where several CPUs live in
the same S-100 box, networking requires just one processor, and lets
your S-100 machine share files and
data with other computers that may
be miles away.
There are several networking
schemes that can be used on an S-100
machine. Probably the most versatile
is EtherNet, a high-speed coaxial
network used on many large computers. Although it is more expensive
than multi-processing, EtherNet has
the advantage of letting your machine
talk to other computers that are not
plugged into the S-100 bus.
Handy Circuits
Readers have sent me a few examples of simple circuits that can be
used to trouble-shoot sick S-100 machines. Future columns will be devoted to these suggestions, but the
following circuit is mentioned here
because it is so simple that I have
overlooked it in the past (just assumed that everybody has one, I
guess).
S-100 Toolbox
Like all bus-oriented, plug-in systems, S-100 boards and frames have
connectors that sometimes get dirty.
In fact, about 50 percent of all of the
S-100 problems I have had in the last
10 years have been because of dirty
edge connectors on S-100 boards, or
damaged sockets in an S-100 frame.
There's not much you can do about
a bad socket (except replace it), but
edge connectors can be cleaned with
some isopropyl alcohol and a rag.
Because the pads on most edge connectors are plated with a few mils of
gold, it is not a good idea to simply
rub off the dirt and tarnish with an
eraser.
Having been the victim of bad edge
connectors that had been erased by
well meaning users, even the idea of
Micro Cornucopia, Number 25, August-September 1985
Figure 1 shows a super-simple
"pulse catcher" that you can use to
see a pulse on any TTL line. To catch
a negative-going pulse, just connect
an inverter in front. I have logic
probes and analyzers all over the place
here, and have just never thought of
mentioning what is probably the simplest piece of test equipment around.
In spite of its simplicity, this circuit
(or any pulse catcher/logic probe) is
often invaluable.
Next Time
Next time, we're going to get into
the technical aspects of mUltiple processors on the S-100 bus, including
the IEEE-696 bus arbitration procedure, and a circuit that will let older S100 boards use bus arbitration; plus, a
simple battery backup circuit for an S100 machine, and some reader feedback.
•••
11
PC WEEK'S PRODUcr OF THE YEAR
PC MAGAZINE'S AWARD FOR TECHNICAL EXCELLENCE
Borland Introduces
the Laws of TURBO DYNAMlCS™
Laws That Work Like Magic. Whether considering /~~;j:~=!~·i~~.~~;~,:'::-~:~"
.
Turbo Dynamics Applies to Turbo Pascal.
:~::c~c~ ~~~~~~ce:~~r~in:~ov:~OT£,c: ~;yr·'ill~r;;A~.'" "1,~r~~;:~-!:~~o~~:;~~~~
not copy-protection,
.0Z)~~1?~~::.
licensing agreements,
NOTCOPY~PROTECTED:"
site licenses, 60 day : ","SQFrivARiLt\N~,:,<:,:'7<
money-back guarantee ' RFASQNABLEt;lC~~~,
AG~ENTS.,·,
y
-Borland is cthlearl ' copy-protected.versio.iis
W,e WillalWa)'Soffer:noi' ' , '
of oll,r.
recognl'zed as e
,
.
software industry
software:A1so,our:iicehsinlr>
,agreement is now sosimple "
leader, The following
that even achild can under-'
three laws of "1ltrbo~dil;
","<
DynamicS' ™ exemplify\~;;Jl:r~~!ff:~!I'r:'Ip,",:;~~~ ,;
our pledge for excellence.
TURBO PASCAL™ $69.95
The /nduslryslandarrJ. With more than 3SO,(XX)
users worldwide Thrbo Pascal is the industry's de facto standard. Thrbo Pascal Is
U,t'~';'.,','~;jf"1~."':~~ praised. by more engineers, hobbyiSts,
~l..~;;.;;;;;:;;,~.:;;t students. and professional programmers
than any other development environment
.
in the history of microcomputing. And yet,
_""~~:."'.oi.," ••"~.M. Thrbo Pascal is simple and fun to use. Free
spreadsheet included on every Thrbo disk with ready-tocompile source code. Options: We offer the exciting Binary
Coded Decimal (BCD) option for your business applications as
well as an 8087 option for your number-crunching applications at a very low charge. Please refer. to the coupon.
Portability. Turbo Pascal is available today for most computers
running PC-DOS, MS-DOS,. CP/M-80 orCP/M-86.Jeff"
Duntemann,PC Magazine: "In its simplicity it achieves an
elegance that no other language compiler has ever displayed, "
',';
:~Y',~;:5Rl2:: LAWi. ',.:~
. .
,',
"
ra::.
You can now join
hundreds of thousands of users
~"
and enter the
"~,
,t '
,':;'
sU.'
r~~.,a,·.t..,~,O~Willlove. ',ur,."" .., ~ '~ ~"." "
,0.
'
'that
. all ,of our
"pro":.,:,;l
',
, ,software
' d' .••. ' : b' k dlth ~)"
",' ucts'now come. ace w ill'.'
' .'::
.a 66, daYJuoney-back"<., ~';::,
~~anmt""N.~?!,,~:~/
'c
world'program
of Thrbo
Pascal
m,.ing. And
remember, all
three laws of
."''"~I'~~I''! ; •.ilt'".iiIlX.,.1 ;.,.J" ..". ......... Thrbo Dynamics
apply to all Borland products.
1M
$34.95
TURBO GRAPHIX TOOLBOX™$54.95
TURBO TUTOR
High resolution monochrome graphics and
Window management/or tbe IBM PC. The
Thrbo Graphix Toolbox will give even a
beginning programmer the expert's edge,
It's a complete library of Pascal procedures
and functions. Tools thatwill allow you to
draw and hatch pie charts, bar charts,
circles, rectangles. and. a full range of
geometric shapes. Procedures that will save and restore
graphic images toandJrom disk And much, much, more.
You. may incorp~rate part. or aU of. these tools "in 'your"
programs and yet we won't charge you any royalties. Best of
all, these .'. functions and procedures come complete with
commented source code on disk ready to compile. .
1'1• • • •
From stsrt to finish In 300 pS,'$, Thrbo
Thtor Is for everyone from novice to expert
Even if you've never programmed before
Thrbo Thtor will get you started right away.
Amust. You'll fmd the source code for all
the examples in the book ori the accompany~
lng· disk ready to compile. .Thrbo Thtor
might be the only reference on Pascal and
programming you'll ever need;
Describe your
carefUlly
system!
computer
,
Mine is, -
8 bit _ 16 bit S.DOS
PC·DOS ~P/M 86
I Use : : cP~~:~e~det is'
My computers
~O"
03 05
112"
'~"
•
8
In The Public Domain
By Stephen M. Leon
Following Sol Libes' footsteps is
hard enough. Writing a column in an
area of computing he created is doubly difficult. But following Sol and
disagreeing with him rather vehemently - that's really tough!
By Way Of Introduction ...
I came into the world of computing
with the TRS-80 model one. I never
had an Altair or an Imsai, so I have to
use a special calculator to add or
subtract in hex. My TRS-80 is still
sitting in the den with its Omikron
mapper, eight inch drives, Holmes
speedup, and 58K of memory. That
58K modification was made very early
in the game so I could learn Pascal.
Next to the TRS-80 is a CompuPro
with 512K of memory, two eight inch
and two five inch drives, and the
ability to run CP/M 80, CP/M 86 and
MS-DOS. A Wyse 100 terminal sits on
the desk for the CompuPro, and on
the other side of the desk is an IBM
PC with 640K, a 20 meg hard disk,
two floppies, an Everex color board,
and a black and white monitor. A
fourth monitor in the den seemed out
of place, so a Sears color TV-monitor
combination gives the PC its color.
In mid-1982, I volunteered to help
Hank Kee edit the SIG/M library. We
were then doing volume 65. Today we
are up to volume 230. That comes out
to about 40 megs of software since I
started the job! I try to test every
program we release, and when I can't
get one to work, I indicate that in the
documentation. If you consider that
we release only 25 percent of what is
submitted, one might call me a nonprofessional professional software
tester.
What Comes In And Goes Out
Not all of our programs come directly from the authors. Some of them are
sent to us by sysops from almost
every country.
How do we decide what goes into
the library? First, the program has to
work, or be an interesting enough
attempt to justify its release so
perhaps someone else can get it to
work. It doesn't have to be perfect.
200 Winston Drive
Cliffside Park NJ 07010
N or does it have to meet a test of
universality (or we never would have
released an eight volume Yale Bright
Star catalog, SIG/M 31-38). It should
be, at least, semi-professional. It can
be copyright protected and released to
the public domain, but we do not issue
anything that has a copyright without
the author's release.
A distinguished writer, Herbert A.
Simon, defined a management philosophy that I consider the goal of SIG/M
software. We aim not to be perfect,
but to satisfy. Much of our software is
excellent, but some of it could certainly use improvement! We try to provide source code with the program so
users can upgrade. More in another
column on those who carry upgrading
to the edge of sanity.
I disagree with Sol and Hank with
respect to distribution of freeware. A
lot of people put considerable time
and effort into SIG/M. We are not
paid. In fact, it costs us both time and
money to do this job. If someone
wants to engage my services in a
commercial venture, I expect to be
paid for it. The same holds true for
SIG/M. Therefore, SIG/M does not
knowingly release any software for
which the author seeks a donation or
any kind of payment for registration
or a manual, etc. We suggest to the
author that he go someplace else for
free distribution. More on this in
subsequent articles.
Enough background. Let's get down
to serious business.
Our Mcintosh Is A REC
The winner of the 1985 Cqmputer
Hobbyist of the Year award was
Professor Harold V. McIntosh of the
Microcomputer Applications Department of the Institute of Science at
Puebla University, Puebla, Mexico.
If you use either CP/M 80 or CP/M
86 and do your homework, you'll know
why the Trenton Computer Festival
committee honored him. McIntosh
developed a tool called REC - Regular Expression Compiler . . ;. . which can
perform mind boggling tasks.
REC is currently spread over eight
volumes (SIG/M 164-167, 173 and 213-
Micro Cornucopia, Number 25, August-September 1985
215). It is a compiler-compiler. In any
area of formula or regularity, you can
have it write a program to perform an
assigned task. One of the samples
that Prof. McIntosh provided included a program that translates CP/M 80
ASM code to CP/M 86 A86 code.
Another converts ACT assembly language to A86 code. McIntosh rewrote
the string find program FIND, gave
us a whole series of DUMP and binary
compare programs, redid DDT, created a new version of HELP, allowed us
to run squeezed or unsqueezed programs from inside a library, etc., etc.,
etc.
At the Trenton show Rich Conn (an
award recipient from another year)
offered 50 volumes of software for
public domain release. We told him to
hold off. Why? Because, while these
volumes include everything from word
processing on up, they are all in ADA
and require a micro computer compiler
that's not available yet.
McIntosh has programs to translate
LISP and C to REC and then to 80 or
86 code. With REC, an ADA programmer can translate ADA to any other
language. With REC, you can translate dBASEII or III into C or some
other language without using the high
priced conversion programs that are
starting to appear on the market. The
possibilities of REC are limited only
by the skill of its user.
dBASE Applications As Learning
Tools
The SIG/M library contains a
wealth of tools for the experienced
programmer. It also contains lots of
help for the rest of us. dBASEII
programs are very popular. Our first
dBASE release was a demonstration
mailing list program based on Adam
Green's book (SIG/M 110).
In a later volume we released the
operational mode of this mailing list
program (SIG/M 199). To keep track
of disk orders and shipments we wrote
a dual data base dBASE program
(SIG/M 129). We later released updating modules to the inventory data
(continued on page 15)
13
Do it yourself ...
A new magazine for publishers, graphic artists, editors,
writers and othe'rs interested in using personal computers
to publish information electronically or on paper.
you~ve
Ifhis is the magazine
been ~aiting for. Issues contain
File
Edit
tutorials on using page make-up
software, techniques for
.
integrating text and graphics, tips
on producing more appealing
graphics and typography, and
helpful information about data
communications and electronic
pUblishing.
The bi-monthly magazine covers
the latest products for the
newly-emerging desktop
publishing market, including
laser printers, scanning
equipment, page make-up
software, archival storage
devices, and topics of interest to
people who do their own
electronic or paper publishing.
Style
Font
Fill
Layout
Lines
Pen
A new magazine for publishers, graphic artists, editors,
writers and others interested in using personal computers ......
to publish information electronically or on paper.
~isi~them~geZine:\lOU've)
:
)
:
\
:
)
:
.
:
:
:
.
:
:
:
.
:
:
:
.
i
..........~~.El~. rf.Eli.tiDlI.19.r:· .. I.~1l.l!~.!! .. : ........ : ........ : ........ : ........ : ........ : ........ : ........ : ..... .
:contei n tutoriBls on using:
:PBge make-uti :softwere.:
:techniaues fof. int
ling:
The cover price is $5, but you can save $11
by ordering a subscription for $24 and paying
with your order. You'll get seven issues
for the price of six! And there's no risk -- you
can cancel after the fIrst issue for a full refund!
D
D
D
DESKT<F PlBJSHIr-.G
$24
USER'SGUIDETOCPIM
$22
PCUSER
$22
~----------------------Address _________________
City---_ _ _ _ _ _ __
We also publish User's Guide to CP/M,
devoted entirely to CP/M computer users, and
PC USER, a new magazine for users of
PC-compatible computers and MS-DOS
software. Each magazine is $22 for a
six-issue subscription. Send payment now
and get seven issues for the price of six!
State, Zip _ _ _ _ _ _ _ _ _ __
MCNisa ____________
Exp. Date __________
2055 Woodside Rd. #180,
Redwood City, CA 94061
415-364-0108 BBS: 415-367-1029
Me
Mel Mail: Tony Bove
CompuServe: 70105,722
The Well: t-c
DESKTOP PUBLISHING: for anyone who publishes Information using computers.
14
Micro Cornucopia, Number 25, August-September 1985
IN THE PUBLIC DOMAIN _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 13)
base for dBASE version 2.4 (SIG/M
155). The inventory program is an
excellent tutorial as well as a working
program.
A different inventory program was
released on SIG/M 155. On that same
disk are checkbook, mailing list, and
periodical tracking programs. On volumes 199 and 200 we put the SIG/M
Property Manager, a 320K dBASE
program for tenanted real estate. It
does everything from sending rent
bills to preparing financial statements.
SIG/M 223 contains programs to do
your genealogy, balance your check
book, and manage your church. Our
latest dBASE release is a series of
three programs for scholars and others to keep track of reference material
(SIG/M 230).
I have written many of the SIG/M
dBASE programs to meet specific
needs of my office or of SIG/M. But in
the code, we try to show users how
they can modify the programs for
their own applications.
The PC·DOS/MS-DOS Crowd
The dBASE programs run under
CP/M 80, CP/M 86 or MS-DOS.
Property Manager is available in IBM
format (PC/BLUE 75) as are Mail
Manager (PC/BLUE 34) and Inventory Manager (PC/BLUE 43).
While I'm on the subject of the PC/
BLUE library, let's take a look at
volume 73. There are no programs on
it, just 68 articles on "Tips, Notes and
Techniques for the IBM PC." One day
you may be looking for just the
information in one of those articles
(see Figure 1).
SIG/M and PC/BLUE printed catalogs can be ordered from SIG/M, Box
97, Iselin, NJ 08830. The price is $3
each ($4 foreign). SIG/M disks are $6
each ($9 foreign) from SIG/M. PC/
BLUE disks are $7 ($10 foreign) from
the New York Amateur Computer
Club, Box 100 Church Street Station,
New York, NY 10008. Software is also
available via the world wide public
domain software distribution network.
Next Month
Next issue the topic will be how to
generate your own nuclear power i.e. public utilities. In the meantime, if
you have written some software that
others may find helpful, useful, or
interesting, why not contribute it to
the SIG/M or PC/BLUE libraries?
•••
Figure 1 - PC/BLUE Volume 73
Name
Description
Name
ALBERT • NL
BARBER .NL
BECKLEY.NL
BRIDGER • NL
BRIDGES.NL
CHERTOK.NL
CHIMENE • NL
CONSIGLO.NL
CORTESI.NL
CREBS
.NL
CRL
.BAS
CRL
.COM
CRS
.BAS
CRS
.COM
CUMMING.NL
DAVIS
.NL
DIXON
.NL
EXPNDTAB.ASM
FOULGER1.NL
FOULGER2.NL
GASTON .NL
GLASS
.NL
GYNN
.NL
HAMMOND.NL
HARRINGT.NL
HARRIS .NL
HERZFELD.NL
HO
.NL
HOSKINS.NL
JEWELL • NL
JORDAN .NL
KRUGGEL.NL
LAURINOL.NL
LAVIGNE.NL
Personal Editor
Why Join A User Group
Processing TAB Characters
Interfacing BASIC & Machine Code
Defaulting ECHO Off - Batch Files
Microprocessor Comparisons
A Programming Language Approach
Using The BasiC FIELD Statement
Organizing Pascal Diskettes
BASIC Screen Input Routines
Change CURSOR Shape in DOS
/
Change CURSOR Shape-4 Lines Thick
/
Quick Start - DOS 2.0+ - IBM PC
Running DOS Commands in BASIC
IBM Pascal Compiler v2.00
Expand TAB Character Into Blanks
WP in Personal Editor
Understanding LOGO
Tracking Time Spent Programming
Determining BASIC Environment
Focus on Word Proof
Convenient Timing in BASIC Programs
Using the MORE Filter Command
Color in Hi Res Graphics
Shaping Your Cursor in DOS
Focus on Word Proof
Extended Keyboard Control Device
Disk Copying on the IBM XT
XModem Protocol
Text Mode Display Compatibility
Installing Half Height Drives
Cleaning Disk Drive Heads
LEHRMAN.NL
MACK
• NL
MARKS
.NL
METZGER.NL
MINASI • NL
NIEHOFF.NL
NISLEY .NL
PCKEY
.BAS
PELTO
.NL
PINTE
.NL
REED
.NL
RICE
.NL
RICHTER.NL
ROHDE
.NL
ROSE
.NL
SCHIEVE.NL
SCHNELL.NL
SCHNELL1.NL
SCREEN .BAS
SCRIPTPC.NL
SHARP
• NL
TARNOFF.NL
TESTTAB .PAS
THOMAS .NL
TODD
.NL
WATKINS.NL
WEBER
.NL
WElL
.NL
ESTENDP.NL
WHITE
.NL
WHITHEAD.NL
WOLPERT.NL
WORDPROC.MAC
YOUNG
.NL
Micro Cornucopia, Number 25, August-September 1985
Description
The IBM PC Color Display
Using Random Files In BASIC
Recovering Data From Bad Directory
Super Color From IBM PC
Dumping Screen GRAPHICS in BASIC
BASIC COMMON Statement
Don't Degauss Your Diskettes
referenced by Hoskins.Nl
Using The CTTY Command
Installing Memory Chips in PC
Windowing in BASIC
Storing Numbers in Random Files
Word Proofing Review
COBOL Software Review
Making Life Easier with Macros
Computer Based Instruction
Alternate Colors in Medium Res Mode
Graphics on the PCjr
referenced by Crebs.Nl
Words from the Author
PCjr - First Impressions
A View of APL
referenced by Beckley.Nl
POKing Around on the Fixed Disk
Purpose of User Groups
DOS 2.0 Butfers
Review of PFS File
On Eternal Golden Braid
BASIC Sort Using A RAM Disk
An Introduction to PC Diskettes
Disabling Break in a BASIC Program
The Modem Package
referenced by Rose.Nl
Notes on Decathlon
15
C'ing Clearly
By Ron Miller
1157 Ellison Dr.
Pensacola FL 32503
You hear lots of reasons for
switching to the C language: program
speed, structured programming, portability (mainly of interest to software
designers), ease in building libraries,
adaptability, and code efficiency.
I'd like to add another reason to the
list. ·C is a language that lets you slice
right through the syntax and the
commands and specify bits, bytes,
addresses, and ports.
You can program merrily along with
variables and structures defining your
reality until you have to do something
that isn't prescribed in the book. Then
you're forced to step back and start
thinking of strings as arrays of bytes
beginning at certain memory locations, and of integers as 16-bit sequences, perhaps in reverse-byte format.
Though the assembly language programmer doesn't have a chance to
forget what really is happening, he is
often so busy rewriting loops, designing tests, and planning elementary
routines that it's hard for him to keep
track of the bigger picture.
That's where C comes in. Writing in
C is like being an assembly language
programmer with a crackerj ack secretary.
The secretary takes care of the
routine correspondence and filing so
you can concentrate on the really
critical issues.
Such is true, of course, for all
compilers and interpreters. C, however, never lets you forget that your
secretary is there and that the daily
schedule doesn't appear on your desk
by spontaneous generation.
Bailing Out
To illustrate the literal-mindedness
of C and offer a technique to use for
your own programs, let's use C to
divert character-in (conin) calls in CPt
M.
Suppose you wanted to test every
new character from the keyboard for a
certain input, and when that character
appeared, you made something special
happen.
You'll need to test all characters as
they come into the CPU, before Microsoft, DRI, Aztec, or whatever you're
running gets its mitts on them.
To keep things practical, let's consider a "longjump" routine that lets
you bail out of a complex program,
when going on means disaster and
cold booting means starting over from
scratch.
Wouldn't it be nice to be able to
leap tall nested loops in a single
stroke, landing at some safe point in
the program?
You could test all characters read
from the keyboard; if one is ASCII 27
(ESC), reset the stack pointer and the
CPU and - voila! - you're back
again at your safe point. It would be
like beaming from here to there in
Star Trek.
Pulling off this feat involves two
separate projects: designing the long. jump routines and crafting the diversionary routine. Let's do the diversion
first.
Diverting Conin
At the head of our program we will
do a little pointer work that depends
upon two characteristics of CP/M
systems known to all hackers: first,
that the BIOS routines in high memory are headed by a series of three-byte
jump statements (called a jump table).
The second jump is to warm boot; the
fourth jump is to the conin (get a
character) routine.
Second, we also know that the
address of the warm boot jump is
stored at address 01R.
Since this is C, we can treat the
BIOS routines like functions we have
written ourselves. We can use pointers
to alter the parameters in the functions and even use a function pointer
to alter the flow of a BIOS call. As
any C programmer knows, a pointer is
"CIBO . .. 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 'C' compiler for CP/M® scored at or near the top - even when compared with
compilers costing ten times as much!
and HOOS with:
The optional C/BO MATHPAK adds 32-bit floats and
• 1/0 redirection
longs to the CIBO 3.0 compiler. Includes 1/0 and trans• command fine 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-BO compatability
sixty bucks. Includes: LISP, Rattor, assemblers and
• ROMable code
over 30 other CP/M® and MSOOS programs.
• and much more!
"We bought and evaluated over $1500
worth of 'c' compilers . .. CIBO is the one
we use."
16
- Dr. Bruce E. Wampler
Aspen Software
author of "Grammatik"
For your free catalog contact:
en,.e 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 25, August-September 1985
CP/M-80 C Programmers . ..
just a shorthand way to hilVe somebody else - the compiler - access
bytes in the memory.
We're going to change the conin
jump address so a jump to conin will
actually jump to our own little character checking routine. Then our routine
will call the real conin and it will
return the character to our little check
routine. We, of course, check to see if
conin sent us the character we want.
If so, we do whatever devilment we've
planned. Otherwise, we simply return
the character to the routine which
called conin in the first place.
It's only in this character check
function (called "swerve" below) that
a bit of assembly language must be
used, since CP/M expects console
characters in the A register. Notice
how casually the patch is made. (I
knew that an ordinary return wouldn't
(continued next page)
Save time
... with the 8DS C Compiler. Compile, link
and execute faster than you ever thought
possible!
If you're a C language
programmer whose patience is
wearing thin, who wants to spend
your valuable time programming
instead of twiddling your thumbs
waiting for slow compilers, who
just wants to work fast, then it's
time you programmed with the
80S C Compiler.
80S C is designed for
CP/M-80 and provides users with
quick, clean software
development with emphasis on
systems programming. 80S C
features include:
Reviewers everywhere have
praised 80S C for its elegant
operation and optimal use of
CP/M resources. Above all, 80S C
has been hailed for its remarkable
speed.
"I recommend both the
language and the implementation
by BDS very highly."
Tim Pugh, Jr.
in Infoworld
"Performance: Excellent.
Documentation: Excellent.
Ease of Use: Excellent."
Info World
• Ultra-fast compilation, linkage and
execution that produce directly
executable 80801Z80 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.
Software Report Card
"... a superior buy ... "
Van Court Hare
in LifelinesIThe Software
Magazine
BYTE Magazine placed 80S
C ahead of all other 8080/Z80 C
compilers tested for fastest
object-code execution with all
available speed-up options in use.
In addition, 80S C's speed of
compilation was almost twice as
fast as its closet competitor
(benchmark for this test was the
Sieve of Eratosthenes).
Plus ...
C-8UNDLE
$99
VIEW: CRT Based Disk Diagnostic
EZZAP: ROM Burning Utility
includes schematic
C-PACK: Utilities in C
C-Games: User Modifiable Maze Game
All are written in C, include Source Code,
and available separately.
lex TOOLKIT
• 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 BDS 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.
lex: ISIS to CP/M or MS-DOS exchanger
for MDS and iPDS
ISE: ISIS Emulator for CP/M
'-
Wes~ern Wares
each
303-327-4898
Box C • Norwood. CO 81423
$89
$89
80S C is designed for use with CP/M-80
operating systems, version 2.2. or higher. It is
not currently available for CP/M-86 or MS~OS.
Micro Cornucopia, Number 25, August-September 1985
80 Software, Inc.
P.O. 80x 2368 .
Cambridge, MA 02238
(617) 576-3828
17
C'ing CLEA RL Y
(continued from page 17)
work because playing with C has
taught me that HL is the return
register in Z80 implementations of C.)
Booting Yourself Back In Line
Tinkering with the warm boot jump
statement is just good manners. We
need to restore the conin jump statement after the program is finished, or
else we'd continue our checking right
into the next program.
To do this 1 simply change the
warm boot jump address so it really
jumps to a routine that patches the
conin jump back to its original state.
So any jump to address OOH restores
the table before you actually get the
warm boot. Figure 1 shows the details.
Notice that a global variable "conback" is just an address for the
assembler and can be treated as such
in an assembly language routine.
Automatic variables (variables within
functions) can't be seen by other
functions.
The Longjump Routines
The functions which alter the jump
table are written in assembly language. Since we are operating in C,
including assembly language is pretty
easy.
Figure 2 illustrates the process for
Software Toolworks C/80. C/80 creates
8080 code and passes variables by
pushing them in reverse order onto
the stack. (Slight alterations may be
needed to load the DE and HL
registers in other versions of C.)
Please note that the compiler takes
care of the addresses, the origin, etc.
What 1 did was devise a function
("setjmp") that stores the present
stack and CPU data in a six-byte
array. A call to setjmp can be placed
at the point or points in the program
to which we wish to beat our hasty
retreat.
Another function ("longjmp") reads
the array and 'restores the stack and
CPU to the prior condition. Since I'm
not evangelizing on assembly language, I'll just offer the routines. My
apologies for not writing in Z80
mnemonics, but C/80 can't digest
18
Figure 1 - Patching the BIOS jump Routine Back to its Original State
#define OOPS 27
'.or wbatever you wisb to use.'
#define CLRSCR 26
'.clear screen: Kaypro tbis time·'
#define WBOOT 1
#include <printt.c>
'.<stdio.b> in otber implementations·'
#include <scant.c>
unsigned wbadd,.utllptr,*wbptr;
cbar conback,jbuf[6],swerve(),(.tunct)(),restore();
,.........,
maine)
(
cbar 11ne[80];
utilptr = WBOOT;
'.get addr of warm boot jump statement·'
wbptr = 1+.utilptr;
'.get tbe pointer to the warm boot routine in bios·'
wbadd = *wbptr;
'.squirrel away pOinter tor restoration later .,
*wbptr = restore;
'.assure tbat all boots go tbrough restore() .,
utilptr = 7+.utilptr; '.get tbe pointer to conin routine in bios.'
funct = .utilptr;
'.direct tbe function pointer to conin routine.'
.utilptr = swerve;
'.assure that all console calls pass tbrough swerve()·'
setjmp(jbuf);
'.store CPU state, stack pointer, and top ot stack.'
printt(nJcDump and return\n\n\nn,CLRSCR); '.trivial: bere's wbere tbe real.\
printt(nEnter sometbingl\n W);
'.program belongs instead.'
wbile(1) scant(nJsn,line); '.scanf calls bdos, wbicb calls bios;
program loops until AC.,
,...........,
char swerve()
'.test tbe conin cbaracters tor wOOPS·.'
(
(·tunct) () ;
#asm
'.call (not jump to) conin so it returns tbrough bere.'
A·,
STA
conback
'.return by conin is in register
#endasm
if(conback==OOPS) longjmp(jbut); '.it OOPS, tben longjump.'
else{
#asm
LDA
'.since bdos expects tbe cbaracter in
con back
#endasm
A·,
}
,.........,
}
cbar restore()
'.restore bios jump table before warm boot.'
{
*wbptr = wbadd;
'.restore warm boot pointer·'
·utilptr = funct;
'.restore conin pointer·'
funct = wbadd;
'.redirect function pointer to warm boot routine·'
(·tunct)();
'.call--i.e., jump to--warm boot·,
}
setjmp(buf)
cbar .but;
them so 1 fool it with "DB" declarations. If you aren't into assembly
language you'll have to take this
section on faith.
If Software Toolworks wonders
whether 1 resent having to use 8080
code -·1 do, 1 do, 1 do.
Applications
The program is pretty trivial, designed merely to demonstrate the
jump routines. This type of diversion,
however, has numerous applications.
A public domain screen dump program from Micro C uses an assembly
language variant of this technique. 1
assume that Borland's Sidekick does,
too. CPIM BDOS does it with certain
control characters.
A C program can easily be designed
to run in high memory to act as a
filter for any piece of commercial
software. I've patched Perfect Writer
and Perfect Calc to display directories
Micro Cornucopia, Number 25, August-September 1985
CP/M86
" '8" CP IM .. 86 Disk
Figure 2 - Assembly Language retreat for Software Toolworks'
el80
'.argument is a global array of length 6 for storing CPU and stack state .,
{
lasm
POP
POP
PUSH
PUSH
LXI
DAD
PUSH
PUSH
DCI
DCI
DCI
DCI
LXI
H
D
jreturn address popped
jbuffer address into DE
D
H
H,O
SP
H
B
H
j(SP) now at bottom of stack--to go to buf[4]&[S]
jSP into HL
jSP below (SP) on stack--to buf[2]&[3]
jBC below that--to buf[O]&[l]
jgetting HL pOinter to new bottom of stack
H
H
H
B,6
DB
OEDH,OBOH
POP
POP
B
jload 6 chars
jZ80 LDIR--fllling buf from the stack
jrestore stack
H
lendasm
,......................,
$15.00 each
DISK 86-1 - Di.k Utilitie.
D.CMDI A86,
SD.CMDI A86,
XDIR.CMDI A86: Three extended directory programs. Each does it differently, so we included all
three.
FlLE-EXT.CMDI A86: Disk status program with
good display format.
PAGE. CMDI A86: A text paging program. Displays 24 lines at a time.
PRINT.CMDI A86: File printing routine. Puts a
header at the top of each page along with page number
and file name.
MUCHTEXT.CMDI A86: Counts words and
lines in a text file.
ERo.CMDI A86: Selective file erase program.
Dispfays all selected files and then asks you one at a
time for a YIN.
INUSE.CMDI A86: Prints "In Use" on your
terminal and asks for a password. It will not release
the console until you enter the password.
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 Prosraml
DU.V75.CMDI A86/DOC: This is the popular
disk utility from CP1M 80. It lets you read, write, and
modify disk sectors.
MODEM4.CMDI A86: This is a modem program
set up for the Slicer. This program includes a built-in
help file.
MODEM7SL.CMDI A86/DOC: No modem disk
would be complete without this standard. This is
modem 7 set up for the Slicer. It displays a menu when
it is called.
}
longjmp(buf)
char .buf;
lasm
POP
POP
PUSH
PUSH
HOV
INI
HOV
INI
HOV
INI
HOV
PUSH
IU
HOV
IU
HOV
PUSH
POP
DB
POP
PSW
H
(AP)
H
PSW
C,H
jrestore BC from buf[O]&[l]
H
B,H
H
E,H
IBM Mainframe Interchange I
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-4 -
jput SP into DE
H
D,H
D
H
E,H
H
D,H
PSW
H
OD9H
H
SPHL
DB
PUSH
;present return into PSW
jbuffer address into HL
Disk 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.
C86LlB.A86: This is the C86110 library.
SMALLC86.DOC: Documentation on Small C.
C?????C: Source of the C86 compiler.
;SP onto stack
jreturn address into DE
ipresent
;present
;Z80 ElI
jget old
iand set
DISK 86-5&6 - FIG Forth
Disks 5 and 6 are a complete two disk set of FlG
Forth 83.
F83.CMD: The standard Fig Forth 83.
META86.CMD: The Forth compiler.
return to stack
return into HL
-- save registers
SP off stack
SP to old value
OD9H
;EII again
D
;pop return
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
lendasm
}
Of course, there's nothing special
using a diversion.
about conin. With a bit of ingenuity,
practically anything can be redirected
almost anywhere else. BDOS doesn't
have to know that it's not getting
those characters from the file it called.
The point is that the C programmer
can tinker with the BIOS about as
easily as he can write a standard
program. It's the physically-oriented
nature of C that encourages him to
remember that there is a machine
under there.
I remember about two years ago
when, with fear and trembling, I first
started looking into Basic. I played
with PRINT for at least three weeks
without thinking much about the
difference between real numbers and
integers. But no one could use C for
13 seconds without being aware of the
difference.
Micro Cornucopia, Number 25, August-September 1985
•••
BB 11 DRIVE INTERFACE
For 5W" and 8' Drives
Andy Bakkers is making this special software package
available through Micro C. Complete source, HEX,
& documentation files on an 8' SS SO disk. Also
outlines on disk the hardware changes needed.
$29.95
Micro Cornucopia
P.O. Box 223
Bend, OR 97709
503-382-8048
9-5 Pacific Time
Monday-Friday
19
FLOPPY CONTROLLERS, DISK EMULATORS, SOFTWARE
WE HAVE THEM FOR YOUR XEROX 820. BBl. OR KAYPRO
EMERALD MICROWARE BRINGS YOU THE SUPPORT THAT YOU NEED TO GET THE BEST VERSATILITY
AND EFFICIENCY FROM YOUR SINGLE BOARD MICROCOMPUTER.
X120 DOUBLE DENSITY CONTROLLER BOARD
Unsurpassed double density operation, designed for easy mounting on the Xerox 820-1 (or BBI). Uses the 2793 double density
disk controller.
• Runs any combination of 5 V4" or 8" disk drives, up to four at
a time
• Standard 34 and 50 pin Shugart compatible disk drive connectors on board, as well as returning signals to connector on
main board
• On board circuitry handles clock and data separator switching
from drive select
• Composite video adaptor on X120 board
• 3 1/2" X 4 1/2" high quality, solder masked, double sided board
with manual and schematic
Bare board ...................................... $ 26.00
Board assembled and tested ....................... $120.00
Board with full kit ................................ $ 95.00
WD2793 controller chip ............................ $ 24.00
Hard to find parts set ............................. $ 12.00
See below for board with rom packages
XPRO ROM SET by Micro Cornucopia
Turns your Xerox 820-1 into a Kaypro compatible with superior
speed and versatility.
• Runs 63K system for more available TPA
• Fast video and parallel keyboard drivers
• Auto-boot capability, boots from 8" or 5 V4"
• Rom monitor functions with menu of options
• Centronics and serial printer drivers included, selectable using
10BYTE
• 98% software compatible with both Xerox 820 and Kaypro
• Automatically selects disk formats for:
Kaypro II - 191 K, SSDD, 48TPI, 5 V4"
Kaypro 4 - 390K, DSDD, 48 TPI, 5 V4"
Kaypro 8 - 784K, DSQD, 96 TPI, 5 V4"
Xerox 820-1 - 82K, SSSD, 48TPI, 5 V4"
IBM 3740 - 241K, SSSD, 8" (standard Xerox 8")
8"SSDD - 596K (same as BB II)
8" DSDD - 1.212M
• True double sided operation
• Can be operated with a terminal for console device
• Includes disk format program, sysgens, CBIOS source, easy
install files, manual, and 2716 roms
• Works with X120 board for double density
XPRO Rom Set .................................. $ 49.95
PLUS2 ROM SET by MICROCode Consulting
Upgrades your Xerox 820-1 to 820-11 compatibility
• Adds inverse and low intensity video capability
• Logical to physical drive mapping
• Enables real time clock
·Has Xerox rom monitor commands
• Works with the X120 board for double density
PLUS2 Rom Set ................................. $ 49.95
Board and Rom Set Package Prices:
X120 Board A&T with rom set (specify) ............... $160.00
X120 Bare Board with rom set ...................... $ 72.00
X120 Full Kit with rom set ......................... $139.95
Call for other package prices
UNIFORM by Micro Solutions
The solution to the diskette incompatibility problem. This program allows files to be run or transferred back and forth between close to one hundred different computer formats, including
96 TPI-5 V4", and 8" diskettes. Lists computers by name, with
no special technical knowledge required. Transfers between
CP/M, MS-DOS, PC-DOS, and TRS-DOS formats .
Versions available from stock for Kaypro, Xerox 820-11, and
Xerox 820-1 with XPRO rom set; others available
Uniform ........................................ $ 64.95
QP/M by MICROCode Consulting
At last an inexpensive replacement for CP/M, with full CP/M
compatibility, and many enhancements. Includes 5 new system
calls, and 9 new transient commands including time/date stamping of files, backup utility, and menu driven configure program.
Runs on Z80 systems, in the same space as CP/M 2.2.
Available as bootable disk (does not require CP/M!) for the
Xerox 820-1, 820-11, or the Xerox 820-1 with XPRO rom set.
QP/M for the Xerox with XPRO rom ................. $ . 64.95
QP/M for the Xerox 820-1 or 820-11 ................... $ 80.00
QP/M without BIOS (not bootable) ................... $ 60.00
SEMIDISK 2 MEGABYTE DISK EMULATOR by SemiDisk Systems
Tired of waiting? The Semi Disk ram based disk emulator board
is the single, most significant speed improvement that you can
make to your system. And it's BIG enough to get both your pro91am AND your working files on the Semi Disk at the same time,
no waiting for one or the other to be accessed from a disk drive.
Print buffer software included. Low power consumption - picks
up its power directly from your system, with and optional battery
backup package available. Works on Xerox 820, Kaypro, or any
other Z80 based system.
2MB SemiDisk Board-assembled .................... $995.00
Optional battery backup unit ....................... $150.00
HALF HEIGHT DISK DRIVES
The finest new half height, 5 V4" disk drives
Panasonic JA551 - DSDD, 48 TPI ................... $ 99.00
Panasonic JA561 - DSQD, 96 TPI ................... $114.00
XEROX CABINETS AND ACCESSORIES
Our stock changes frequently due to quantities and availability
of these items, please call to check stock and get shipping
charges before ordering.
Xerox standard computer cabinet w/monitor frame ..... $ 95.00
Xerox 5 V4" disk drive cabinet ...................... $ 18.00
Xeron 5 V4"disk drive cable ........................ $ 12.00
Power connectors for 820 board or PS ............... $ 2.50
Switching power supply for 8" drives ................ $ 69.00
Xerox 820-1 boards, working ........................ $ 95.00
Parallel ASCII keyboard (not Xerox) made by
Keytronic, typewriter keys only .................... $ 25.00
SHIPPING AND HANDLING (orders under 2 pounds)
Shipping and handling ............................ $ 3.00
C.O.D. orders ................................... $ 6.00
Bankcards (includes S&H) ......................... add 3%
QUANTITY DISCOUNTS AVAILABLE
(EMERRLO ~~
(MICROWRRE)
P.o. BOX 6118 ALOHA, OR 97007
(503) 642-1860
•
Xerox 820 Column
By Mitch Mlinar
Hold the presses! Xerox has resumed production of the 16/8 computer. The old reliable 820-11 with the
8086 card has been re-introduced as
Xerox's low-end word processor (Spellbinder is the word processor included).
The computer is an 820-11 with 16bit capability, and Spellbinder is a
pretty decent WP, so this "low-end
WP" is adequate for most people.
This means that the 820-11 will be
around for awhile.
The "new" system now has a disk
expansion module (which finally adds
support for 5.25" rigid disks) and a
low-profile keyboard. Unfortunately,
it looks like a bundled system: you
can't buy just the 820-11 8-bit system.
I don't have prices; contact Xerox for
more information.
Spare Parts
It looks like sources for 820 and
820-II boards are drying up fast.
Since 820 production has stopped,
that supply is expected to diminish.
However, 16/8s (upgraded 820-lIs
made in-house) should keep that supply going, right? Wrong! The story
I've been hearing is that the Xerox
manufacturing outlet (XMO) will be
closed before year's end. With the
XMO doing such a booming business,
the question is "why are they closing?"
Xerox has a policy of destroying
key parts of a system, so even if you
had all the spare pieces, you still
couldn't build an identical system.
(The only 820 item I've never been
able to purchase from XMO is the 8"
disk drive case.)
Evidently, word has reached the
upper echelon that complete 820s
(among other products) can be assembled from the surplus pieces at a big
savings. Judging from the XMO's
large volume, obviously there are still
many people eager to buy. An 820-11
now costs about $2800, but you can
buy parts for a complete system for
under $400. So is it any wonder why
the manufacturing outlet is doing a
booming business?
Real-Time Clocks
I've had several inquiries about real-
1225 Fonthill Ave.
Torrance CA 90503
time clocks, so I'll deviate from my
intended column for a moment to
discuss two of them I recently purchased: the Ztime-I and the Optronics
MC-I.
Ztime-I
Ztime-I: By Kenmore Computer
Technologies (KCT), this real-time
clock is based on the National Semiconductor MM58167 A. The chip is
directly interfaceable to microprocessors and offers timing down to 1000th
of a second, (it is certainly not
accurate at that level since the system
uses a standard 32,768 Hz crystal).
There's no year register in the clock,
but with a bit of fancy programming
using a couple of the 8 latches
available, you can get around this
problem.
KCT offers a neat little board for
$69 in kit form and $99 assembled.
The easy-to-assemble kit comes with 4
chips and a small collection of resistors, capacitors, and diodes. I recommend the kit over the assembled
version.
The assembled board plugs into the
Z80 socket, and the Z80 plugs into the
Ztime-I board. With no trimming
capacitor, it is easy to gainllose a few
seconds a day. If you build the kit, get
a trimmer - you will not regret it.
Operation of the Ztime-I is simple:
all necessary programs, including
source, are included for reading and
setting the clock. An assembly language programmer will have little
trouble, as all clock registers have
their own ports (as well as some other
control) which sit across 32 Z80 110
ports.
Optronics MC-!
Optronics MC-l: The MC-l is a realtime clock based on the Oki
MSM5832. The MC-l comes assembled and is plugged into the parallel
port inside the 820. $69 buys you the
works. Although it lacks the manual
for the ';Chip (KCT includes one), the
disk is full of software slanted towards 820 and 820-11 users.
Among the date and time programs
for the 820 series there is one which
acts like an alarm clock on the 820-11
Micro Cornucopia, Number 25, August-September 1985
(or 16/8). It is cute, although I have
yet to find a use for it.
One feature I do like is the writeprotect jumper on the board; one
cannot accidentally (through an errant
program or system crash) change the
time in the clock. Just install the
jumper when setting the clock and
remove it when you are done.
Summing Up
Both boards do the job, and will
keep doing it for about three years
with the lithium battery. The Ztime-I
is easier to install, does not require
power supply cables, and does not eat
up the parallel port (important if you
already have a parallel printer there).
However, the MC-l costs less, has a
write-protect jumper, and does not eat
up 32 110 ports. If you have or plan
any expansions to your Z80 bus, 32
lost ports could hurt.
QP/M users will also find that
Ztime-I requires conversion from BCD
to binary, whereas the MC-l does not.
If you pinned my shoulders to the mat
and asked me which one I would buy
again, I'd say the Ztime- I. Although
my pocketbook favors MC-l, that
parallel port is already· taken on my
last non-real-time clock system.
629A Vrs. 644A
820 owners should be aware that
there are two versions of the 820
board floating around: etch 1 and etch
2. Look at the part number on the
edge of the board: if the last three
digits are 629, then you have an etch
1. If the digits are 644, then you have
an etch 2.
Etch 1 is the earlier board which has
funny video to support Ball monitors
and a faulty parallel port (they forgot
to ground the odd-numbered pins something you will have to do before
you plug in a printer). Etch 2 added
true double-sided support for the
5.25" drives, changed the floppy disk
data/clock circuitry, fixed the video
and parallel port layout, and cleaned
up power distribution.
(continued on page 23)
21
EXTRA ... EXTRA ...
EXTRA ... EXTRA
• • •
According to leading publications, the PC market Is In the midst of a fullblown shakeout. IBM, KAYPRO, OSBORNE and
most other PC manufacturers are Initiating cutbacks and layoffs due to slumping sales. Their Increasing advertising
dollar brings less & less results. At the same time sales for the ZORBA portable computer, the computer that Is only
advertised In a few choice periodicals and relies heavily on satisfied user testimonials, are showing a steady Increase.
It's no secret, the public Is learning what Industrial users have known for years. That Is: that for dally operation of wordprocessors, spreadsheets and databases, the trendy options are rarely used and the flashy machines that house them
are really no faster, no more reliable and much more expensive.
THE PUBLICS LEARNING WHY THE ZORBA IS STILL AND ALWAYS HAS BEEN
THE EXPERTS CHOICE.
ZORBA
PORTABLE COMPUTER
FEATURES:
OPTIONS:
• 9" GREEN OR AMBER CRT
• 16 BIT 256K RAM UPGRADE
• 19 INDEPENDENT, 55 PROGRAM·
ABLE FUNCTION KEYS
(8088 CPU) $600.00
• TWO 400K DSDD DRIVES
• aOOK DSQD 96TPI DRIVES
$150.00
• 64K BYTES 150 NS RAM
• COMPOSITE VIDEO OUTPUT
• C BASIC COMPILER
$100.00
• IEEE 488 BUS MASTER PORT
• SOFT VINYL CASE $25.00
• 24.6 LBS
• TUTOR KIT; $15.00
.
• CPM 2.2 OPERATING SYSTEM
:'
.
,.
~
-..
• M80 (L80, LlB80, CREF80)
• SOURCE CODE OF THE BIOS
, ..,..
...
...
-...-
.:
:-
.
j
..
\
~
..
,
!
~
....
'"
".'
....-
- -- - "'
(CPM, WORDSTAR, CALCSTAR)
¥
•
• SCHEMATIC SET $10.00
-
• 10MB HARD DISK DRIVE
$2149.00
AVAILABLE JUNE 15th, 1985
PLUS UTILITIES
• DATA COMMUNICATIONS
SETUP PACKAGE
BUNDLED WITH
WORDSTAR, MAIL MERG, SPELLSTAR,
DATA STAR, REPORTSTAR, CALCSTAR
• SERIAL & PARALLEL
PRINTER PORT
• DATA COMMUNICATION PORT
$849.00
DEALER INQUIRIES INVITED
$1049.00
W/O Bundle
With Bundle
General Specifications
Keyboard
ZORBA is the lowest cost full featured
portable computer. This light weight computer is ruggedly packaged in a convenient carrying case. The case surrounds
a strong inner chassis which further protects the Z80A based computer with its
two double sided double density disk
400K drives, large easy to read 9"
display screen and well designed
detachable keyboard.
Keyboard communicates serially with CPU
Detachable with 2 foot coiled cord
95 keys in standard QWERTY format
13 Key Numeric pad
Independent Caps Lock and Shift Lock
55 Software programmable function keys
All keys auto-repeat after 1 second delay
All Standard cursor and terminal control
keys
Disk System
Controller:
Drives:
ZORBA uses CP/M, the industry standard
operating system, which means that a
wide range of existing software is readily
available to the user.
The ZORBA users manual covers operation of the unit. all suppllied software and
all interface and internal information. A
system diskette is supplied with all
system files and utilities. A second
diskette contains the sources for all ZORBA software including BIOS, SETUP,
FORMAT, and PATCH.
WD1793
5.25 Double Sided,
Double Density, 400K
48 TPI
Specifications
General Mechanical
and Electrical
Width
Height
Depth
Weight
Power
-17.5 inches (44.45 cm)
- 9.0 inches (22.86 cm)
-16.0 inches (40.64 cm)
-24.6 pounds (11.1 Kg)
-80-130 VAC or 190-245 VAC
50/60 Hz
170 watts max
Display
Display Tube:
9' diagonal, Green or Amber
High resolution display circuitry
60 Hz refresh rate
CPU Board
Z80A CPU running at 4 Mhz with
no wait states
64K bytes of 150 ns RAM (5bl\ after
CP/M loaded)
16K bytes of EPROM (2732)
can be switched in and out by software
12K available for user EPROMS
8275 CRT controller, DMA driven
1793 Floppy disk controller, SMC data
separator
Bipolar proms configure 10 addresses
Fully structured interrupts prioritized by
bipolar proms
Interfaces
• Full asynchronous RS232 port with
Display Format:
modem control. Baud rates and data
25 lines x 80 columns
translation and protocol programmable
5x7 Character Font with full descenders • Full asynchronous full duplex RS232
128 ASCII Characters
port with hardware handshake (for
8x9 32 Characters Graphic Font
printers). Baud rates and protocol
(Expandable to 82 Formats)
2K Memory Mapped Display Buffer
programmable. (Serial Printer Port)
• One 8 Bit parallel port with independent strobe and ready lines. Supports
Centronics interface with an available
adaptor cable.
• IEEE 488 Bus Master Port (ie: General
Purpose Instrumentation Bus) not Software Supported.
• 21 Standard Software Programmable
130 Baywood Avenue, Longwood:-florida 32750
Baud Rates: 45.5 to 19.200 BPS
800-321-7182
305-830-8886
Built-in disk interchange formats: Xerox
820 (SO, DO), Kaycomp (DO), DEC
VT-180 (SO), Osborne (SO) and IBM-PC
(eg. CPM/86) and Televideo 802
(ReadlWrite and Format compatibility)
HIBlI.IJH.. u.~
XEROX 820 COLUMN _ __
(continued from page 27)
When buying 820 parts, be conscious of possible "etch version" specific hardware. The Xerox 820 Software Technical Manual contains both
sets of schematics and can be helpful
in determining if there are any conflicts.
Thanks to Dan Costello for suggesting this insert and including a beautiful set of "difference" schematics.
Although I have schematics for both
versions, the hardware differences are
not always clear. I have included a
description of the differences in a file
called 820DIFF.12 on the RQP/M.
RQP/M
What? Did he say RQP/M? Yes,
folks. After a long delay due to
moving (and destroying) some computer hardware, my RQP/M is finally
on-line. Disk space is still limited (the
20-Mbyte system was one indirect
casualty), but there is a disk rotation
order until full storage capability is
restored.
Besides 820 stuff, there is space for
Kaypro, Big Board, Little Board, and
QP/M users. The number to call is
(213) 320-9309; it will answer aroundthe-clock except when being used by
yours truly. I hope many will call with
questions, answers, and CONTRIBUTIONS. Of particular interest are
sources for 820/820-11/16-8 parts and
prices; a file called 820COST.LST
contains the latest prices and places
that users have submitted on the BBS
or I have found in magazines.
POWER THAT GOES ANYWHERE!
Single Board Computer
FAST
- 6MHz Z80B'~' CPU
POWERFUL - 64K to 256K RAM, 2K to 64K ROM
FLEXIBLE
5~" and 8" Floppy Controller, SASI
2 RS-232, Centronics Port
- 50-pin I/O Expansion Bus.
SMALL
- 5%" x 10"
-
r~~
------
DAVIDGE CORPORATION
292 East Highway 246
P.O. Box 1869
Buellton, CA 93427
(805) 688-9598
'zao is a registered trademark of Zilog
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)
Interrupts
Sorry, but I've run out of space this
time. N ext time I'll make sure to
interrupt (sic) any tidbits until after
interrupts are discussed.
•••
*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: •
I VISA I
E~
•caBa;;;J;l.
(317) 255-6476
••
l_
6413 N. College Ave. • Indianapolis, Indiana 46220
Micro Cornucopia, Number 25, August-September 1985
23
AUTOMATIC
TIME/DATE
STAMPING
OF FILES
WITH
GRAPHICS FROM YOUR
DOT MATRIX PRINTER
/
f
~
HPLDT
~
......
,...,
••• P'.
~
~.-~
a
A PLOTTER EMULATION PROGRAM
FOR YOUR OKIDATA, PRO~RITER,
GEMINI, OR EPSON PRINTER.
CD
+
'"
by MICROCode
*
QP/M FEATURES
•
•
•
•
•
•
•
•
100% compatible with CP/M 2.2 and resides in same space
Uses your computer's hardware/software clock
10-15% faster disk read/write
User-selectable default drive/user area
Completely replaces BDOS and CCP
Efficient backup utility
Requires QBIOS or CP/M 2.x
9 new transient commands,S new system calls
A TTENT/ON XEROX AND BIGBOARD OWNERS-NO NEED TO BUY CP/M!
***SOON AVAILABLE FOR KAYPRO***
MICROCode offers a custom BIOS for Xerox/BigBoard owners
(including SWP Dual Density users), on a bootable QP/M disk
Kaypro owners, send us your name, address and model number,
and we will notify you when QBIOS is available for your model.
V
*
*
*
ifiI
n
r
.
~
*
*
+
I
~
*
*
PO~ERFUL HP-GL PLOTTER SYNTAX:
SCALING, LINETYPES~ ~INDO~S,
ETC; LABELS ANY S.J.. Z E , ~.ISW"r.
OR ~OIT0371Ia.
FASTI GRAPHS IN FOUR MINUTES.
HI-RES MODE: UP TO 136x144 DPI.
PLOT SIZES 11"x14" TO 7"x48".
80+ PAGE ILLUSTRATED MANUAL.
SOURCE CODE IN C FORe ~
PROGRAMS THAT USE
HPLOT TO MAKE PIE
CHARTS, GRAPHS, ETC.
REQUIRES 54K Z80 CP/M 2.2.
OTHER PRINTERS AND OS'S SOONI
AVAILABLE IN 8" SSSD AND MOST
5.25" 48 TPI FORMATS.
$49,95
o
CD
PPD. OH RES ADD 5% TAX
q
/
COMPLETE QPIM PACKAGE Includes
Sorted DIRectory program. Displays time/date,
D
system files, and .LBR directOries.
Copies and verifies only updated source files
QBACKUP
Installs QP/M on system tracks.
QINSTAll
All PIP functions, plus copies files with current or
QPIP
existing time/date.
All STAT functions, plus shows or changes file
QSTAT
date(s), archive bit, and MORE.
Replaces SUBMIT and XSUB. Has nesting
QSUB
capability, internal command set (including
conditionals), embedded XSUB, and more.
Creates time/date initialization module (supports
TDCNFG
software clock, Z-Time or Optronics clock).
plus COMPLETE documentation.
/
ORDINATE SOLUTIONS
MAIN P.O. BOX 0308, OBERLIN, OH 44074
/
TN.?'> ~p N'~'> ,DRE,D~REP .?h' ~h' .?A'.?P~T~ .P.R.
/
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 QP/M.
***NEW PRODUCTS NOW AVAILABLE***
KEYMAP: Not just another keyboard configuration program!
Written exclusively for the Xerox 820/820-11. Full ON-SCREEN
keyboard image while editing. Up to 8 custom keyboards can be
created, executed and toggled.
SMARTROMS: Add 820-11 features to your 820-IIBigBoard-1.
Provides real-time clock, screen dump, screen/program pause,
reset with CTRLlESC, CRT blanking after 10 minutes of idle time, 7
or 8-bit keyboard mode, serial/parallel prinTer routines, 820-11
(4.0x) compatible vectors, and MUCH MORE! Replaces your
socketed ROMs (no soldering I).
PRICES
QP/M .................................................................................560.00
QBIOS FOR QP/M .............................................................520.00
KEY MAP...........................................................................520.00
SMARTROM SET ..............................................................530.00
When ordering, 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.
~i~~~~a:;t ~~sulting
I
WSK
Torrance,CA 90508-9001
(213) 212·5877 (24 hour recorder)
24
j
~.,
.·call or write for quantity discounts
• Guaranteed In"writing for 120 days ".
DUIII Power Supplle.
•
•
•
•
•
•
•
Horizontal - 12x12x3~ ........•• $69.95
Vertical - 7x12x6 .............• $69.95
Single Horlz. PIS - 6x12x3~ .... $44.95
2-D rive Cable •.•..............•.$21.00
4-Drlve Cable ...................$32.00
Dual Cas., Horlz. or Vert. (w/o PIS) .$29.95
Single Case, Horlz. (w/o PIS) •..... $21.95
Terms: Personal checks allow 14 days, COD, MO
Certified Checks. Credit Cards add 3.5%
Shipping and Handling: $2 plus current UPS or
Parcel Post rates.
ORDERS ONLY 1-800-351-0295
IB COMPUTERS
503-297-8425
1519 S.W. MARLOW, PORTLAND, OR 97225
Micro Cornucopia, Number 25, August-September 1985
Introducing
GRAF 3.0
the complete BUSINESS and SCIENTIF1Cprinter graphics program
CP/M-SO
SQUARE WAllE APPROXIMATION
SALES by DIVISION
I.~~----------------------------------------~
'II
1.0
40- ..
..
~
MS-DOS / PC-DOS
o.~
~
o. O+-------------------=\---------~__________.I
20-
S
··\~··~~···I//
'.J..;<''-~.Yj
................ ~ ........ .
-1.0
1984
1982
@
E8!)
~
Dl"l.lon A
-1. ~I+.........~....-._.,._.,.......,-.-.......-.-...,......,,.............;........-.--.--,.............-........_._.........~....-............
Dl",.10n C
1.~708
0.0000
BUSINESS APPLICATIONS
3.14110
4.7124
b.2832
SCIENTIFIC APPLIC ATIONS
*
display floating point data directly from spreadsheets,
data bases, and word processors (or the keyboard) in a
wide variety of bar, pie, line, and scatter plots
*
plot and group up to 6 different variables on a single
graph, distinguished by up to 14 different "fill-in"
patterns and S different point-plotting symbols
*
menu driven operation supporting automatic graph
scaling, labeling, and legend creation
*
//;
.
-O.'!S
*
simple interface allows plotting floating-point data
obtained from all popular programming languages
*
plot any number of curves (e.g. experimental data vs.
theoretical values) on the same graph, choosing from
S different plotting symbols.
*
automatically created legends distinquish variables
*
add up to 5 different-<iensity grid lines, and choose
from a wide variety of numerical labeling options
*
high/low graphs are supported directly
program default values may be set once and for all
Fou,.t .... DHf.,..nt "Fll1-1n" Patt.,.n.
~OO.
Sampl. H1Qh/Lo.. G,.aph
00-.---------,...---------:---------------------------...,
400.00
300.00
200.00
100.00
O.OO,~-.,.-~~--~~~_.__r~~--~~_.__~~~~~~~~
0.00
200.00
400.00
1000.00
800.00
tIme
D
1000.00
(seconds)
Exp.,.l ..... tal
TERMS: We ship via first class mail. The above prices include $5.00 for s/h. (Orders outside USA require additional $5.00
for postage. NJ residents add 6% tax.) When ordering you MUST state your computer and printer make and model. We
support MS-DOS (PC-DOS) version 2.0 or later on computers with at least 192k RAM, and CP/M-SO version 2.2 or later on
ZSO computers (other than Apple) supporting a TP A of at least 54k (requires 64k of R AM). Most soft-sector disk formats
are available. (If you can read several formats, please send us a list.) GRAF 3.0 works with any printer fully compatible
with one of the following: Epson FX, RX, LX, MX (with GRAFTRAX), or LQ-1500; C. Itoh Prowriter; NEC S023A, Star
Micronics Gemini lOX, 15X, SG-I0, SG-15, IBM Graphics Printer. Okidata 192. and earlier Okidata models equipped with the
''IBM Plug 'n' Play" chips. (If you have an Okidata printer, other than the 192, the Plug 'n' Play chips are required!)
GRAF 2.0 Update Policy:
Returning your original GRAF 2.0 disk to MSC entitles you to $20.00 off the above prices.
MSC
301 North Harrison Street
Microcomputer
Systems
Consultants
CN5279. Suite 22S
Princeton. New Jersey
OS540
CP'U - DRI "!>DOS - ..cra5oIt
Xerox Monitor Modifications
By Thomas Rockwell
I would never want to take away from
the great accomplishment of either the
original or the Xerox version of the PFM80 monitor. When I think back to my initial exposure to PFM-80 (reading
through Micro C even before I got my
820 board up and running!) I thought it
was indeed Pretty F&%$# Magical, and
I'm still amazed at its abilities.
However, there were a few unexplained gremlins that bothered me. After I had hammered out all the hardware
bugs, the gremlins were still there, So, it
was time to attack the software. After
many hours of studying PFM-80 I've discovered where some of the gremlins
hide out.
Right now is a good time to dig out an
old copy of Micro C #1 and turn to the
PFM Monitor Listing on page 10. (Actually, the listing is split between issues #1
and #2.)
45 Allandale Ave.
Rochester NY 14610
these bits, take a quick look at what is
written to BITDAT (SYSPIO Port A) in
Figure 1.
Also, I noticed that the drive select
was on for the same amount of time that
the drive AC was supposed to be on after
a disk de-select. Why?
Figure 1 - Bit Changes
x
x
x
x
DEFB 00000100B
;DE-SELECT ROMS, ENABLE DRIVE 0
This will de-select the ROM bank, enable drive 0 and turn on the disk drive
AC. I do not have a Disk AC relay so this
part is theoretical but if you want TURNON to take care of turning on the AC as it
should:
DEFB 01000100B
iDE-SELECT ROMS, ENABLE DRIVE 0
;BUT NO DRIVE SEL OR DISK AC YET
After this change, I don't worry about
powering the system up and down with
the disks in the drives. I have been doing
this for over three months and haven't
had a single unrequested head load nor
have I lost even a single bit of disk data.
If you're interested in why I changed,
26
x
x
x
00= A or
01= B or
•
--->Drive Select: 10= C or
11= D or
••
0
1
2
3
-->Port B: Keyboard Port is 'Ready'
----> BB:
U.O. Unidentified Output??
I
X-820: 8/Not 5 Drives: 1=8" 0=5-1/4"
I
---> BB: Not Used
X-820: 400/460 single or double sided 5-1/4"
---> BB:
Disk AC: 1=off O=on
X-820: Alternate Character Set
---> Bank Select:
Bit 2 does the drive select. This must
be set to 1 to de-select the drives and to 0
to select them. To power up with no
drive select then line 237 should read:
x
--->Disk Access: 1 = de-select
o = select
Gremlin #1
The first gremlin I found was the infamous Drive Select on power-up. Where
did he come from?
line 237:
DEFB OOOOOOOOB
;DE-SELECT ROMS,ENABLE DRIVE 0
For some reason the system was doing
an interrupt service routine to DSKTMR
(line 973). But how did it get there? In
line 237 we were turning ON the disk AC
so it could be turned it off exactly as it
was supposed to. I spent months verifying this.
1=ROM Bank O=RAM Bank
• The Xerox 820 has the ability to handle only two drives
you add the 7445 (U109 on BB) decoding yourself.
•• This is referred to in PFM as Head Load Enable.
uses this to do sidoe select in the monitor.
unless
The Xerox 820
Figure 2 - A utoboot Routine
AU TOBT
EQU
TRUE
SIGNON: EI
CALL PNEXT
DB ' •• System monitor 3.66
DB CR,LF,O
IF AUTOBT
DLAY:
DLAY1:
MVI A,2
STA MOTOR
CALL PAUSE
LDA MOTOR
ANI OFFH
JRNZ DLAY1
;@
;@
iif you power up your system all together
iit is best to wait a couple of seconds @@
iset up for a 2 second delay @@
iuse motor countdown timer with CTC3
ias the 1 second clock, motors are off
iat this point so we won't hurt anything @@
iset flags
CALL BOOT
ido an autoboot for the sophisticated user
CALL PNEXT
iprint an error message if boot fails @@
DB CR,LF
;@
DB 'Disk in A? Enter B <CR> to boot CP/M'
DB CR,LF,O
i and then we enter the monitor@
END IF
JMP WARM
;GO ENTER MONITOR
Micro Cornucopia, Number 25, August-September 1985
Gremlin #2
I found another gremlin in the disk
drive PIO. Have you ever been computing along and suddenly your computer
does a warm boot? Where did that come
from?
If there is a boot error, you'll get an
error message and automatic access to
the monitor. I've surrounded the autoboot region of the monitor with an IF
statement. Thus, an AUTOBT EQU
FALSE will cancel this feature.
line 233:
DEFB 00011000B
;MAKE BITS 4 AND 3 BE INPUTS
This looks like a simple enough instruction. But the PIO was expecting an
interrupt vector when it got this command, and poof!, an interrupt vector to
FFI8H is born. (The number above is an
I8H and FFOOH is added to this number
on an interrupt request.) The address
FFI8 belongs to SYSVEC which is not set
to anything since we didn't expect to use
it. It is still zero from the zeroing of the
scratch RAM (line 50).
So on an interrupt request from the
PIO, the processor gets its new Program
Counter from FFI8H (OOOOH) and this
happens to be the Jump to Warm Boot
address of CP 1M. This sequence would
never start if the interrupts were disabled but the command to disable interrupts is 0110 0111B. This section of code
should read:
line 231: DEFB 4,BITCTL
line 232: DEFB 11001111B
;SET SYSPIO PORT A TO
;BIT MODE==> MODE 3
new line: DEFB SYSVEC
;INTERRUPT VECTOR
line 233: DEFB 00011000B
;MAKE BITS 4 AND 3 BE INPUTS
line 234: DEFB 01100111B
;INTERRUPTS DISABLED
I don't know why an interrupt was
generated other than to say they weren't
disabled as we thought they were and
Murphy's Law says, "If interrupts aren't
disabled, you'll probably get a few to
point out the oversight." (I really don't
buy this and I am still looking for the reason.)
Autoboot
I find that 99% of my power-ups are
destined for CP 1M and only 1 % are to
the monitor. So I've implemented the
routine shown in Figure 2 to do an autoboot after waiting 2 seconds (to give slow
power supplies time to crank up).
Micro Cornucopia, Number 25, August-September 1985
P.S. I must say "hats off" to a hometowner and his product-the EZ-PROM
from Optronics Technology. It is just
fantastic. It helped make all these ROM
changes possible.
•••
820 reset switch ............................. $ 3.00
820 composite video adapter. Generates true
RS-170 compatible video for your 820. Outputs
to RCA phono jack and plugs directly onto the
820 video connector. Assembled and tested
25.00
820 video cable. 10 pin AMP to CRT edge card
wlpower conn & provisions for brightness pot
10.00
8208" disk cable. 37 pin '0' to dual 50 pin
edge card ................................. . 45.00
8205.25" disk cable, wlpower conn ......... .
20.00
8209 pin power connector wlpins .......... .
4.00
820 9 pin PC mount power connector ....... .
4.00
8" disk DC power connector wlpins ......... .
1.50
8" disk AC power connector w/pins .......... .
.75
5.25" disk DC power connector wlpins ...... .
1.10
820 connector plate wlmtg hardware ........ .
7.50
820 "C" size schematics, set of 6, very legible
18.00
820 CBIOS source, ROM source, BOOT, and
formatter, all in source code. M 80 compatible,
conditional assembly flags for 8" or 5.25"
disk. 8" SSSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.00
820 compatible keyboard wlcable for 820,
complete wlschematics & source code for the
encoder ROM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55.00
256 K RAM expansion kit for the 820-1 or the
BIGBOARD-1. Complete with schematics,
.theory of operation, RAM DISK software,
installation and test instructions. Clean installation with no cables or jumpers. Good beyond
5 Mhz.
KIT WID RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 125.00
KIT WITH RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . .. 195.00
J.B. FERGUSON, INC.
817-840-0207
P.O. BOX 300085 ARLINGTON, TEXAS 78010
". . ","".·.,',;, ..,.;.. ""I"ir;:..~. . . .
TERMS: MasterCardNISA add 3%, money order, cer- .,
.
tified check, UPS cash COD.
Allow 2 weeks for personal or
..
~ company checks to clear. Ship~ pinglhandling extra. Texas order
add 5.125% tax.
(8
27
IJ
Colonial Data
S8-80- II
The "Better Board" Gets BETTER!
Standard Features Include:
•
•
•
•
•
For the past 4 years, Colonial Data has been supplying
thousands of its original SB80 "Better Board" computers to the
O.E.M. market. Now, the "Better Board" is even BETIER with the
introduction of the SB80~II. More Standard Features at a NEW
LOWER PRICE!
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
SIZE: 12" x 13"
POWER: +12V, -12V, +5V
WARRANTY: 90 days Parts and Labor
• ZSOA PIO PARALLEL PRINTER INTERFACE
• 4MHz ZSOA CPU WITH NO WAIT STATES
Enhanced BIOS uses mode 2 interrupts.
Centronics compatible printer interface is Standard!
• 64K MEMORY STANDARD (EXPAND TO 128K)
• SASI HARD DISK INTERFACE CIRCUITRY
ON-BOARD!
Parity checked RAM utilizes 4164
Up to 8K of EPROM (4K is standard)
Accepts Pin-compatible EPROMS from 2716 thru 2764
SASI interface provides access to hard disk.
Compatible with XEBEC and other controllers.
Just populate with TIL and add connector.
• NUMEROUS FLOPPY DISK STORAGE OPTIONS
• 4 CHANNEL COUNTER TIMER-STANDARD!
Uses the advanced NEC765A controller chip
Supports 8" and 5%" drives simultaneously
Automatic Density Selection (Single/Double/Quad)
Allows custom software applications.
User accessible 125Hz interrupt.
Provides system date/time clock.
4th Channel used for the NEC 765 interrupt.
• 4 SERIAL I/O PORTS (2 STANDARD)
Software selectable baud rates to 19,200
Uses Z80 SIO/O and SMC 8116 baud rate generator.
SBSO-II SYSTEM OPTIONS:
PRICE
ADDITIONAL 2 SERIAL PORT (INSTALLED)
ADDITIONAL 64K MEMORY (INSTALLED)
SASIINTERFACE OPTION (INSTALLED)
XEBEC HARD DISK CONTROLLER
CP/M 2.2 OPERATING SYS W/MANUAL
CP/M 3.0 OPERATING SYS W/MANUAL
$ 60.00
$ 60.00
$ 35.00
$290.00
$ 75.00
$275.00
• CP/M 2.2 BIOS ENHANCEMENTS
Allows flexible device assignments, baud rate selection,automatic density detection, a system date and time clock and hard
disk support.
• OPTIONAL CP/M 3.0 (CP/M PLUS)
Extensive disk buffering speeds system throughout.
II
Z80'· - ZI LOG
r--~----------
•
CP/M'· - DIGITAL RESEARCH (Calif.)
Colonial Data Services Corp.
HOW TO ORDER:
Call or Write Colonial Data-Orders paid with bank
card or cashier's check are shipped within 3 working
days. Allow 3 weeks for Personal Checks.
Shipping: Add $5.00 for UPS Shipping (Brown)
Within the United States.
~
80 Pickett District Road,
New Milford, Conn. 06776
Telephone (203) 355-3178
II
Colonial Data
S8-80-11
Dimensions
1 31J2"W x 5%" H x 1 7" D
FULL 90 DAY PARTS & LABOR WARRANTY
MODEL IIA - 2/380K DSDD DRIVES
MODEL lIB - 2/780K DSOD DRIVES
MODEL lIe -10 Meg H/Disk w/380K Floppy
MODEL lID -10 Meg H/Disk w/780K Floppy
'I<
$ 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
Metal Cabinet will accept Single Boards up to 12"x16"
complete with fan, RFI filter with power switch, front panel
and mounting for two 5%" half-height floppies. Pre-punched
for 4 DB25 and 1-50 pin. 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 Winchester
5Y4" hard disk and single 5%"
half-height floppy.
2 For
DSOD Floppy
Over 780K Capacity
$425 00
$225.00
2 For $430.00
•
$139.00
.-----------I!III
HOW TO ORDER:
Call or Write Colonial Data-Orders paid with bank
card or cashier's check are shipped within 3 working
days. Allow 3 weeks for Personal Checks.
Shipping: Add2%(uptoamaximumof$20.00)forUPS
(Brown) shipping Within the United States.
•
~--
-=:-i
;.~,
Colonial Data Services Corp.
80 Pickett District Road,
New Milford, Conn. 06776
Telephone (203) 355-3178
Direct BDOS Calls In CP/M
By Thomas Geldner
Discussion among three programmers at the local watering hole:
Joe: Well, Sam, what's new?
Sam: Oh, the usual. I'm porting a
modified Phoneyx Op-Sys to the
Grumblefratch 0286 using conversational interrupt drivers and an 110
slave driver. Should be finished in a
day or two. How 'bout you?
J oe: Yeah, well, I'm doing a coflipper based on the IEEE-487 JPZ
standard for GMC multi-bus applications.
Sam: What's up with you, Bill?
Bill: Gee, guys, I just read Tom
Geldner's latest article in Micro C,
and now I can beep the console bell!
... as Joe and Sam slooowly move
away.
In issue #24, we spent our time
rehashing the memory locations of the
various parts of CP/M, and things
were pretty theoretical (at least the
practical value may not have been
immediately apparent). This month,
we'll take a small detour· as promised,
and explore something a little more
useful: Direct BDOS calls. The illustrations will be done in a variety of
ways including your first (and probably last) assembly language example.
And yes, you're going to learn how to
"beep the console bell." (Gosh,
Maude, this sounds exciting!)
Review
Programs use the BDOS and, occasionally, the BIOS to perform Input/
Output tasks. The BDOS handles all
disk drive related functions and most
console activity (keyboard input,
printer output, CRT output, etc.). The
BIOS does specific hardware related
tasks and occasionally handles console
activity, but is used primarily by the
BDOS as its window to the world.
When you write a program in a
high-level language such as Turbo,
access to CP/M is provided for you in
the form of statements such as Read
and Write. (The equivalents for BASIC include PRINT, INPUT, GET,
and PUT statements.) When you tell
Turbo to display a character on the
screen, Turbo actually tells the BDOS
to do it. BDOS in turn tells the BIOS
30
3746 29th Street
San Diego CA 92104
Figure 7 - Assembly Language program to 'beep the console bell'
; BEEP the Console bell
ORG
100H
;start where programs start
;
BDOS
EQU
CONOUT EQU
BELL
EQU
HVl
HVl
JHP
JHP
0005H
02H
07H
;BDOS entry veotor
;BDOS CONSOLE OUTPUT funotion
;ASCll bell oharaoter
C,CONOUT
E,BELL
BDOS
;load Register C with funotion number
;load register E with bell ohar
igo to address 0005
;Jump baok to op/m
o
Figure 2 - LOAD. COM
A}ASH BEEP
A}LOAD BEEP
<::
<::
oreates tile BEEP.HEX on A: Drive
oreates tile BEEP. COM on A: Drive
to do it, and then the BIOS does it.
Accessing The BnOS
Access to the BDOS takes the form
of function calls. (This is true both in
assembler and in high-level languages.) There are 38 CP/M 80 BDOS
functions available, doing such things
as resetting disk drives, deleting files.
and printing. To have the BDOS
perform one of its functions, you put
information in your 8080 or Z80's
registers (information that BDOS
needs) and then call BDOS.
Don't panic if you know nothing
about registers. Doing a BDOS call is
sort of like baking a cake. If you just
follow the recipe, everything will come
out OK (as long as you don't open the
oven door at the wrong time).
The Two Parts Of A BnOS Call
There are two main ingredients in a
BDOS call. The first is the number of
the function being called. Each of the
38 available functions has been assigned a number from OOR to 26R (37
decimal). For example, the SYSTEM
RESET function is 00, CONSOLE
INPUT is 01, CONSOLE OUTPUT is
02, etc. The function number is always
placed in the C register.
The second ingredient is optional
and is called an Entry Parameter (or
parameters). The Entry Parameter
can be a character to be sent to the
screen or printer, a memory address,
or some other value that BDOS will
use. (There is also an Exit Parameter
which we will deal with later. This is a
result, though, and not an ingredient.)
Assuming we wish to use the BDOS
to send a character to the console, we
would put the character to be sent in
Register E and put the function
number 02 (CONSOLE OUTPUT) in
register C.
Now, once the registers are loaded
your program can CALL (or JUMP) to
location 0005 (the BDOS Entry Vector). At location 0005 is a JUMP to
,the address specified at locations 0006
and 0007 (the location of BDOS).
Once the JUMP to BDOS is completed, function 2 will be executed.
When function 2 is finished, the
BDOS will do a RETURN, thus
sending execution back to where it
started.
Now, let's see how we get the
ingredients to the right places at the
right times.
Assembly Language Programming lA
As promised, Figure 1 shows our
first assembly language program
"beep the console bell" using BDOS
function 2, CONSOLE OUTPUT.
To use, type Figure 1 exactly as
shown using Perfect Writer, Word"Star, or any other word processor and
save as a file called BEEP.ASM. Use
TABS to separate the columns, and in
WordStar, use the non-document
mode. (You don't have to enter the
semicolons and the comments with
them.) Assemble using ASM.COM,
then load using LOAD. COM as shown
in Figure 2.
Micro Cornucopia, Number 25, August-September 1985
Now, you can run BEEP.COM just
as you would anything else. Simply
enter "BEEP" and hit RETURN. You
should hear the console bell ring once,
and then you will be returned to the
A> .. (See, you really do have mastery
over the little beeper.)
I don't intend to conduct a tutorial
on how to program in assembler (I
wouldn't know how, anyway), but
here's a brief explanation of what's
happening in this program.
First, the assembler is told where
the program is to ORIGINATE using
the statement "ORG IOOH". Under
CP/M, a program that will operate by
itself will normally originate at IOOH
(where CP/M places control after it
loads a .com file).
Next, we establish some EQUATES
which make the program easier to
read. In this case, the assembler is
told that the CONSTANT BELL has
the value 07, BOOS is 0005, and
CONOUT is 02. (N ote that ASM
doesn't care whether we enter a
number as 5, 05, or 0005. Programmers do this for clarity's sake. Memory locations are usually entered with
four numbers such as 0005 or OF7EF
(note the leading 0 if the first character is a letter), byte values are entered
as two digits such as 01 or 7F.
N ow we get to the meat of the
program. The things we've done previously have been instructions to the
assembler (ASM.COM). The next instructions produce the actual Z80/
8080 code. The first instruction, MVI
C,CONOUT, means to MOVE IMMEDIATE the value of CONOUT into
register C of the CPU. Since the
assembler has been told that CONOUT is always 5, this has the effect of
loading register C with a 5. The next
instruction loads register E with the
value 2. You could have loaded the
numbers directly instead of giving
them names first, but the program
would have been harder to understand.
The next instruction activates the
BOOS by JUMPing to it. BASIC
programmers can think of this as a
GOSUB where the BOOS itself is the
subroutine. After the BOOS is
through executing function 2, it will
RETURN program execution to wherever it came from, in this case, our
program.
The final instruction, JMP 0, sends
control back to CP/M.
Now let's look at our program using
OOT.
A>
DDT BEEP.COH<cr>
DDT VERS 2.2
NEXT PC
0180 0100
-d100,108
<:: you type
<:: DDT responds
.
"
"
<=: you type
This will display the first 8 byte
values in HEX and ASCII. You
should find the following:
100 OE 02 1E 07 C3 05 00 00 ••••••••
The first 6 hex bytes are the actual
machine language instructions that
resulted from our original assembler
source file! Now let's disassemble
BEEP by using DOT's List command. Just type an L and hit RETURN . You should see:
0100 HVI
0102 HVI
0104 JHP
0107 NOP
0108
C,02
E,07
0005
<:: means NO OPERATION
(all the zeros)
NOP
Recognize the guts of our assembly
listing?
Turbo, SBASIC And dBASEII Beepers
Again, since this is not an assembly
language column, let's go back to the
higher world and see how direct
BOOS calls are made.
Here's what BEEP looks like in
Turbo Pascal:
begin
Bdos($02,$07);
end;
Since Borland has conveniently provided us with a Bdos Procedure,
specifying addresses and registers is
unnecessary. (There is also a BdosHL
Function and a Bdos Function for
those BOOS calls requiring access to
the HL registers or A register. More
on this later.)
Micro Cornucopia, Number 25, August-September 1985
(continued on page 33)
256K
RAMDISK
KIT
Now Only
$69. 00
• dynaDlskmakesyourspeliing
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 #9 for a description and MC #11
for a review of dynaDlsk.
For $69. 00 You Get:
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-// 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 Cor
postage and handling. All orders shipped
first class. SatisCaction guaranteed.
Please, no COD's, PO's, or plastic money.
QUANTITY PURCHASES: Buy five oC
one item at one time and get one Cree! Buy
ten, get two Cree, etc.
Send check or money order to:
P.O. Box 5246
Bend, Oregon
L •A • S0 f tware
97708
503/389-3452
CA residents add sales tax
CPt M is a trademark of Digital Research
31
Create graphics masterpieces with. • •
.
a~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 usel
source including dBase II, spreadsheet. Mbasic and
Wordstar files.
KBRIEFTM produces electronic on-screen "slide shows" with absolutely
no programming requiredl KGRAPH and KBOARD files are
easily sequenced using nine special 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 Kaypro dealer for a demonstration.
For Kaypro 2-84, 2X, 4-84, 4E, 4X, 10, 12X and Roble.
Make your KAYPRO computer
IBM-PC compatible for SZ9.951
READ, WRITE and FORMAT mare than 25 different
types of disks ,including IBM PC-DOS/M5-DOSJ with
~~M
Now
available
for the IBM-PC
75 formats
just $39.95
Are you tired of trying to find your favorite software package In KlIYPro format? Would you like to use your
Kaypro 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?
MaDIA MASTER gives your KllJpro instant access to program and data files In over 25 disk formats Including:
Osborne SO & DO
IBM PC-DOS 1.0 & up
IBM PC-DOS 2.0 & up
IBM CP/M-86
Morrow MD2
Systelll
LNW-80
TRS-80 with Omlkron CP/M
TRS-80 III w/Memory Merchant
TRS-80 IV with CP/M+
Heath Zloo
Heath w/Magnolla CP/M
Cromemco w/lnt'l Term
Cromemc:o COOS SSDD
Cromemco COOS SSSD
TI Profe~slonal CP/M-86
Actrlx
Lobo Max-80
Xerox 820 I SO
Xerox 820 II DO
Zenith Z90
DEC VT180
NEC PC-8oo1A
Kaypro II
Now available for Kaypro 2 land III: All other models soon 1
ORDERING INFORMATION:
IIiiiiII
~ __
~.-
Include S3 per order for postage/handling. Overseas airmail add SID.
California residents add 6% tax lLA County. add 6.5%).
To place .COO or credit card orders.
call TOLL FREE 24 hours:
---- - -
800-8Z4-7888 (Ask for Operator 4091
Alaska, HawaII: 800-824-7919 (Ask for Operator 4091
Technical questions: call /818) 716-1655
For more Information, a free brochure (Including sample printouts and reviews), or to order, contact:
formerly
DG/SYSTEMS
- A_"
'"-
T E C
___ _
W'_
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.
DIRECT BDOS CALL IN CP/M _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 31)
In dBASE II things are even less
obvious. From the dot prompt enter:
• poke 52000,14,2,30,7,195,5,0
• .set call to 52000
• call
First, we select an area of memory
not normally used by dBASEII and
POKE the decimal numeric equivalent
of our
assembler produced
BEEP.COM program into it. This
statement has the form:
POKE address,
<data byte)[,(data byte) ••• ]
Then we give dBASEII the address
to be CALLed with the SET CALL
TO command. Finally, we do a CALL
that tells dBASE to go to the address
specified previously and execute the
instructions there.
Now For Something Useful!
Obviously, this hasn't been the
most constructive application for direct BDOS calls. Heck, PRINT
CHR(7) or Write(G) will work just
fine, thank you. So what IS the most
constructive application? The answer
is: anything your high-level language
doesn't allow you to do directly. And
to answer the question "What doesn't
my high-level language allow me to
do?" you'll need to know what the
BDOS functions can do.
There are two ways of finding out
what the BDOS functions are. The
first is to attempt to read the Digital
Research CP/M manual that came
with your computer. Good luck! This
little gem ranks right up there with
the SBASIC manual for the all time
worst word collection.
The recommended way is to get one
of the many books available on CP/M.
My personal favorite is Thom Hogan's "CP/M User Guide," copyright
1982, Osborne/McGraw-Hill. It's an
excellent guide for the non-assembly
programmer. There are many others,
but most are either too simple or else
intended for the assembly language
programmer. (Editor's note: "Inside
CP/M," available from B. Dalton or
Micro C, is also a good book for this
use.)
Now, as promised, here's something
practical (at least I think it's practical). For lack of anything better, let's
call this the "What is the currently
logged disk drive?" procedure.
We all know that most high-level
languages, acting through CP/M, will
automatically save a file (if you don't
specify the drive) to the currently
logged drive. There may be an occasion, however, when we ALWAYS
want to save a file or look for a file on
the disk that was logged the first time
the program was run.
For example, suppose you have an
optional help file that your program
can access. The assumption is made
that this help file will always be found
on the same disk as the main program. Once the main program is
started, if we subsequently allow the
user to change the logged disk drive,
the program may be unable to find the
help file again. One way to get around
this is to force the user to always run
the program from the A: drive. Not a
very classy solution.
A better way is to figure out which
drive was logged at the time the
program was originally run, and then
use that drive throughout to specify
the help file. We do this with BDOS
Function 19 (hex), RETURN CURRENT PISK. (The Editor again: Libraries would use this function a lot if
they started loaning floppies.) Here's
a Turbo program that does this:
This will allow us to search for a file
on the currently logged drive, and
then get back to the file even if the
logged drive has been changed.
End Of Pedantic Lecture #3
There are certainly other ways of
accomplishing the things I've illustrated in this article. Your comments
and suggestions are always welcome.
In fact, good questions and/or problems will form the basis for future
articles.
•••
NEW.oo FLOPPY DISK
CONTROLLER BOARD
FOR THE XEROX 820-11
DIRECT REPLACEMENT FOR
THE STANDARD 820-11 FLOPPY
DAUGHTER BOARD.
USES THE
FDC 1793/9229B FOR
RELIABLE
OPERATION. PERFECT FOR
SURPLUS 820-11 BOARDS
0
var DiskDrive: Char;
begin
DiskDrive := Char(Bdos($19)+$41);
Writeln(DiskDrive);
end.
Note that in this example, the
BDOS Function is used. This is
similar to, but not the same as, the
BDOS Procedure. The BDOS Function in Turbo is used without an entry
parameter, and the result returned is
the value found in the A register of
the Z80 or 8080. In this case, the
result will be 0 for the A: drive, 1 for
the B: drive, and so on. Here, we
convert the value to a drive letter
(+$41). One usage might be:
FileName :=
CurrentDrive + ':' + FileName;
Micro Cornucopia, Number 25, August-September 1985
ASSEMBLED/TESTED
$ 1 09.95
COMPLETE KIT
$79.95
BARE BOARD· w/9229B
$59.95
BARE BOARD w/DOC
$39.95
INCLUDE $3.00 SHIPPING
VISA/MC
COD ADD $ 1.50
REPAIR SERVICE
XEROX 820 1111
BIG BOARD I
CALL OUR NEW BULLETIN BOARD
312-892-3260
300/1200 Baud
THE DATA MILL
12 CRESCENT COURT
MONTGOMERY. IL 80538
312-892-8573
33
BOOKS
.................
I---:::::::::::::::::--------~1.•~o
.
....
...*
.
..
..
..
Meet
accomplices
..
v
.. Choose lJ bank ..
and C~~~k it
...
Does
:----->:
:------->:
:---->* ....
.............
....
.....*
..
•••••••••••••••••
•••••••••••••••••
.. •• *
Start
.. .
ban~K~ook .... .. Yes
•••••••••••••••••
.........
..
..
.*
•
Take the
*
No
.* Old
alarm
(----------. loot and live . ( - - - - - . .
go off?
:
*...
•
•.•.• •.•.•
:••••••••••••••••
up:
it
----:::::::I·········
.*
*.
..
•*
Was
getaway
Cet money
*••• *•••~ •• ** •• *•
*. *.
?*
••
•
•• (----.
.-I-Yes
.......~es
successful
• •• *••••~ ••••••••
guards
•
-•.• *.*
....
Run from
• *<-------*
: ••••••• ** •••••• :
~........
. .................
.........
:
--->:·
·.................
.
.................
!
.•.!
.......
.... .....- ....
*.. .... .• No
•
A~~r~~\~~
:
Yes
police
••
.-
Was
bribe
••
----* .... accepted?
.*
•• No
... *---
*
Serve time
•*
... Have
* •••
I been
:~~~~~I:
*.
Yes
111"II-IIHI111111
• •••••••••••• **
•
*
---->: ..... :::~......:
Inside CP1M •.. by David E. Cortesi
. ................... $27.95 (US, Can, Mex)
. . . . . . . . . . . . . . . . . . •. $37.95 (Other foreign)
This is one of the best books on CP1M for users
and programmers. It's divided into two
sections - a tutorial and a reference guide -to
satisfy novice and expert alike. We've been very
pleased with Inside CP/M at Micro C.
III
·No
---------------------------------______ 1
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:
$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
Volume I
~ettil1g Started
Your Fortune in the Microcomputer Business
by Victor Wild ." . '. $26.45 (US, Can, Mex)
...........•...•..... $36.45 (Other foreign)
This is the best, most complete collection of
"working for yourself" information I've found
(and I've heard nothing but good comments
from those who've received it). This two
volume set is perfect for those times when you
need a break from monitor watching.
IrYICIOIWII
The Small C Handbook •••
by James E. Hendrix $17.95 (US, Can, Mex)
•.....•.....•...••... $22.95 (Other foreign)
If you really want to solve the mysteries of the
Small C compiler, you'll want the Small C
Handbook. Includes chapters on 8080 assembly
lariguage programming, program translation,
code generation, and the Small C source.
• Subject to available memory.
Requires IBM/PC or compatible with color/graphics adapter.
t
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,
34
HavenTree Software Limited
R.R. #1, Box 198
Seeley's Bay, Ontario
Canada, KOH 2ND
(613) 542·7270 Ext 601
MICRO CORNUCOPIA
(
P.O. Box 223 • Bend, Oregon 97709
Order No. (503) 382-5060
Micro Cornucopia, Number 25, August-September 1985
RS·232C: The Interface
By Larry Kraemer
If you are like most folks, you
aren't comfortable with an RS-232
interface. Actually, many feel that if
God had intended man to understand
a serial interface he wouldn't have let
a committee design it (and there is no
question that it was designed by
committee).
To be precise, RS-232C is an interface defined by the EIA (Electronics
Industry Association) for low speed
serial data commun~cation.
The RS-232C standard is a piece of
paper issued by that committee which
defines such things as voltage levels,
loading characteristics, timing relationships, and signal responsibilities.
How do you tell if you have a serial
interface that needs understanding?
Usually you'll see a female 25-pin
connector mounted on the back of
your computer (a DB-26S). The connector will probably be marked "printer" or "modem."
DTEs And DCEs
There are two main classes of RS232C devices - DTE (Data Terminal
Equipment) and DCE (Data Communications Equipment). Terminals,
computers, and printers are usually
DTEs; modems are DCEs. The point
of all this is that the esteemed E IA
committee assumed you'd want to
connect a DCE to a DTE. They set it
up so that you could usually connect
the two together simply by connecting
pin 1 to pin 1, pin 2 to pin 2, and so
on, up to pin 25.
You can also interface DCE to DCE
(or DTE to DTE), but you must build
a special cable in which some of the
signal and control lines are crossed. A
null modem cable which allows you to
directly connect two computers is an
example of such a special cable.
RS-232C is intended for short (50
feet or less), low-speed serial communication. Low speen. normally means
19,200 baud (bits per second) or less
although 38,400 baud and higher is
becoming more and more common.
Serial communication means that all
the information is moving one bit at a
time down a single signal line. (It's
like blowing peas through a straw.)
Rt 2 Box 190
Jackson MO 63755
Most parallel interfaces send data 8
bits at a time.
Is It Simplex?
RS-232C defines simplex, half-duplex, and full-duplex communication.
A simplex channel is one way (for
example: from a computer to a printer). In half-duplex, data may travel
either direction but only one direction
at a time. In a full-duplex channel,
data may travel in both directions
simultaneously.
Standard 300 and 1200 baud modems are full-duplex, so you can see
characters on your own screen as you
enter them on your keyboard. The
characters are being echoed back from
the remote system.
The Electrical Definitions
The RS-232 interface is made up of
25 signals or lines. (A line is defined as
a continuous wire from one device to
another.) In the simplest case, an
interface may be implemented with as
few as two wires.
Pin 4: RTS - Request To Send
RTS is the signal that indicates the
DTE wishes to send data to the DCE.
When it is high (true), the DCE knows
that the DTE is ready to send.
Pin 5: CTS - Clear To Send
CTS is a signal from the DCE that
indicates it is ready to receive data
from the DTE. Normally this line will
be low (off). When the DTE raises
RTS the DCE will raise CTS allowing
the DTE to send data.
Pin 6: DSR - Data Set Ready
This signal informs the DTE that
the DCE is alive and well. It's
normally kept high by the DCE.
Pin 7: SG - Signal Ground
SG is the neutral or return line for
all the other signals. It must always
be present.
Pin 8: DCD - Data Carrier Detect
This signal from the DCE (modem)
tells the DTE (computer) that the
modem sees a carrier (is the phone off
the hook?).
Most Common Signals
The control lines go high (+ 12V)
when they are true and low (-12V)
when they are false. One the other
hand, the data lines (pins 2 & 3) go "low
for a "1" bit and high for a "0" bit,
just backward from what you might
guess. If you are checking any of
these lines, use a voltmeter, not a
logic probe.
Pin 15: TC - Transmit Clock
TC provides the clock for the transmitter section of a synchronous DTE.
I t mayor may not be running at the
same rate as the receiver clock, and
must be present on synchronous interfaces. (Very few systems are set up for
synchronous communication, so pins
15 and 17 are seldom used.)
Pin 1: CG - Chassis Ground
This is frame ground and insures
that the two devices are at the same
potential, which prevents electrical
shock to the operator. It's optional
and isn't used as the reference for any
other circuit.
Pin 17: RC - Receiver Clock
RC provides the clock for the receiver section of a synchronous DTE, and
mayor may not be running at the
same rate as the transmitter clock. It
must be present on synchronous interfaces. Both RC and TC are provided
by the DCE.
Pin 2: TD - Transmit Data
TD is the path by which serial data
is sent from the DTE to DCE.
Pin 3: RD - Receive Data
This line is the path for sending
serial data from the DCE to DTE.
Micro Cornucopia, Number 25, August-September 1985
Pin 20: DTR - Data Terminal Ready
This circuit provides the signal that
informs the DCE that the DTE is OK.
It's pulled high by the DTE at powerup and left there. Note that a typical
(continued next page)
35
RS~32~THEINTERFACE
___________________________________________________
(continued from page 35)
DCE must have an incoming DTR
before it will function normally.
Figure 1 shows the signal names of
the entire RS-232 interface.
Types Of Data Communications
There are two ways to send data
serially: asynchronously and synchronously.
Asynchronous Data
Asynchronous serial data is sent
character by character. The bits within a character are sent with very
precise timing. Once the character is
sent there is a pause or signal of some
sort to tell the system to get ready for
the next character.
Normally, during an inter-character
gap the line is at a logic 1 state. When
the character starts, a start bit (logic
0) is always first. Once the start bit
has occurred, the other data bits
follow, least significant bit first.
There are normally 7 or 8 data bits
sometimes followed by a parity bit.
When running with even parity the
parity bit will be set or reset to make
an even number of ones in each
character. In odd parity, the bit will
be set to make an odd number of ones.
In theory, parity should catch most'
bit errors because things wouldn't
come out even (or odd) if one bit gets
crunched by the phone line. However,
if two bits get crunched in the same
character, there is a good chance that
the parity check won't catch the error.
(For this reason, parity has largely
been replaced by CRCs and check
sums.)
Following the parity bit (if used) are
1, 1 112, or 2 stop bits. These stop bits
are always a logic 1 and simply insure
that the line is idle for between one
and two bit time(s) while the hardware
re-cycles for the next start bit. Of
course, the line can remain in an idle
(low) condition for an indefinite period
if another character isn't ready to be
sent. The stop bits are simply a
measure of the minimum time that the
line must remain low before the
receiving system will recognize the
start of another character.
36
Synchronous Data
Synchronous data transfer means
that the sending and receiving units
are synchronized by a constant clock
signal. This clock makes sure that the
two units won't get out of step so that
strings of characters can be sent
without stop bits or start bits. The
Figure 1 - RS-232C interface circuits
PIN
1
2
3
4
5
6
7
8
9·
10·
11
12+
13+
14+
15#
16+
17#
18
19+
20
21·
22
23·
NAME
CG
TD
RD
RTS
CTS
DSR
SG
DCD
24·
25·
XTC
EIA CCITT
AA
101
BA
103
BB
104
CA
105
CB
106
CC
107
AB
102
CF
109
SCDC
SCTS
STD
TC
SRD
RC
SCF
SCB
SBA
DB
SBB
DD
122
121
118
114
119
115
SRTS
DTR
SQ
RI
SCA
CD
CG
CE
CH
CI
DA
120
108.2
110
125
111
112
113
DTE
-»
»
==
»
»
»
»
»
»
DCE
--
«
«
«
«==
«
«
«
«
«
«
«
«
«
«
FUNCTION
Chassis Ground
TraDBm.1 t Data
Receive Data
Request To Send
Clear To Send
Data ,Set Ready
Signal Ground
Data Carrier Deteot
Pos Test Voltage
Neg Test Voltage
Not Used (usually)
Seoondary DCD
Seoondary CTS
Seoondary TD
TraDBm.1t Clock
Seoondary RD
Reoeive Clock
Not used (usually)
Seoondary RTS
Data Terminal Ready
Signal Quality
Ring Indicator
Data Rate Seleotor
Data Rate Seleotor
Ext. TC
Busy
•
Denotes rarely used
Denotes only if seoondary channel implemented
Denotes only on synohronous interfaoes
» Denotes from DTE to DeE
« Denotes from DCE to DIE
== Denotes Ground line
CCITT = International Telegraph and Telephone
Committee
+
#
Consultative
Figure 2 - Transferring an 'A'
High Strt
Low
1 -------------------0 0 0 0 0
o
stop
Figure 3 - Three ways to hook up DTE to DTE or DCE to DCE devices.
Note pin reversals, and that pin 20 may be used in a full-handshake system.
NULL MODEM
1········1
2--'---3
3-----2
4-1
5-1
1-4
1-5
7-----7
6-1
1-6
8-1
1-8
1-20
20-1
NO HANDSHAKE
1······1
u
2-----3
3------2
7--------7
5-1
6-1
8-1
20-1
1-5
1-6
1-8
1-20
FULL HANDSHAKE
1········1
2----3
3----2
4-----5
5-----4
7-----7
6---:-/-8
1-20
8-1---6
20-1
NOTE: Pin 1 is optional for Chassis Ground between Terminals.
Micro Cornucopia, Number 25, August-September 1985
strings (often called blocks) of data
usually have special beginning and
ending characters which identify the
string and contain check sums.
Synchronous data transmissions are
normally more intelligent than asynchronous (smarter operators). Packet
networks such as X.25 often transfer
data synchronously.
Final Details
The data transfer speed (baud rate)
is usually determined by the serial
clock. The number of bits per character is usually handled by the U ART or
S10 chip. (Most data communications
are done at 8 bits/character, 1 stop
bit, no parity.)
To send an ASCII "A" (41 hex), the
S10 would output 0100 0001 (binary)
with the right-hand 1 being the least
significant bit, and the left most 0
being the most significant bit. Figure
2 shows what you'd see on the data
output pin of the RS-232 connector.
Bit flow is from left to right, and note
again that the least significant bit is
sent first.
Logic 1 is low as shown.
Non-Standard Wiring Connections
There are several ways of hooking
together two devices of the same type
(DTE - DTE, or DCE - DCE).
If only one-way communication is
required, you'll need at least two
wires, one data line, and pin 7 ground.
All handshaking conditions can be
satisfied by looping back the appropriate signals on both ends of the cable
(see Figure 3 - Null Modem diagram).
The three typical connections are null
modem, no handshake, and full handshake.
Figure 3 shows the necessary wiring. Note that the manufacturer may
wire the device either as a DTE or
DCE, so you need to read the manual.
(I know, it's a last resort, but ... )
1 hope this info saves you some
time; I've spent many hours uncovering it the hard way.
•••
DriveLiner
Check Floppy Drive Alignment
No tools or interfacing needed
SSSD Runs on All
CP/M- 22 or 3.1
8" Systems
Digital Diagnostic Disk&lncluded
$65 Check or MO Ppd
Other formats special order
Chandler Software
273 West Shore Dr.
Marblehead. MA 01945
(617) 631-4685
-TM Digital Research Inc
&TM Oysan Corporation
Still Searching
For Files
Without
EUREKA!TM
??
You may not know it, but a disk cataloger can be a big
help in managing your computer files. Why not go with
the best? EUREKA! is a terrific time saver for ...
• Accountants
• Lawyers
• Researchers
• Software Developers
• Writers
• Secretaries
• Consultants
• Teachers
• Journalists
• Project Managers
People who try EUREKA! love it. ....
"Just started cataloging with comments - Great Idea" GR-MI
"Great time saver in locating material on disks." WB-NY
"Your manual is the best written I have ever seen. " MT-NS
"We finally chose E URE KA! ... largely because it has the ability
to read comments directly from a file ... EUREKA! is easy to
learn and use, has more access and report choices, finds files
by many different ways, and has an attractive price."
T. Bove& C. Rhodes, USER'S GUIDE No.11
EUREKA!. the popular CPt M® disk cataloger
Still only $50
Windowing for CP/M!
$49.95 Basic Compiler
MTBASIC
Features:
Multitasking Windowing
Handles interrupts Interactive
Fast native code Compiles quickly
Floating point No runtime fee
MTBASIC is a true native code compiler. It runs Byte's Sept. '81
sieve in 26 seconds; interpreters take over 1400 seconds! Because
MI'BASIC 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-BO), MS-DOS, and PC-DOS systems.
ORDERING: Specify fonnat when ordering. We accept Visa. MC.
checks and COD. Send $49.95 plus $3.50 shipping and handling
($10 overseas) to:
MENdociNO SOfTWARE COMPANY, INC.
Dept. MC-1
P.O. Box 1564
Willits. CA 95490
add $2.50 shipping
Calif. reSidents add 6"10 sales tax
(707) 459-9130
A EUREKA! package is designed to run on only a single system.
licenses for additional systems (for a single user~ are $15 each.
EUREKA! is a trademark 01 MendOC1no Software Company, Inc.
CP/M i! a registered trademark 01 Digital Research, Inc.
VISA & MasterCard
accepted
P.O. Box 2412 Columbia, MD 21045 -1412
301/792-8096
86 World
By Laine Stump
Hey, Wait! DON'T TURN THAT
PAGE! It's still me, only the name
has been changed to protect the
incompetent. That's right, this is the
latest incarnation of The Slicer Column. We've changed the name because many new readers have no idea
what a Slicer is ("some kinda tater
masher, huh, Joe Bob?" "Naw, Frank
Chuck, I think it's the name of that
new slash murderer down in San
Francisco.").
Along with being more descriptive
of the column's contents, the new title
will give me more latitude in my
discussions (not that I have had a
latitude problem in the past. An
attitude problem perhaps ... ).
The '86' part means that I will be
covering anything happening with
machines that use the 8088, 8086,
80188, 80186, 80286 (80386, 80486
11?) processors. I wouldn't mind covering the 68000 as well, but the line
must be drawn somewhere. Maybe
later - hint, hint. (Editor's note: Hold
on, there. Leave something for the
rest of us!)
By the way, when I say "anything"
I don't mean reviews of new spreadsheets and databases. I will restrict
my software opinions to programs
that can be considered "system" software or programmer's tools (i.e., compilers and editors, but not word
processors).
Of course, none of this means I'll be
ignoring the Slicer. Since the 86
system I have is a Slicer, the content
of the column will necessarily be
heavily Slicer-oriented. There will
probably be very little change from
the past - just a broadened perspective. This broadening will take awhile
though, since I have to get the
information before I can report on it.
Turkey Talk (Fowl Play)
"World" may seem a bit ambitious
to use in the title of a mere magazine
column, but this truly will be a "world
class" column. After months of weighing different career choices, I have
finally chosen not to make a choice.
Instead, I'll be leaving the U.S. in
mid-August for a two year stay in
38
Micro C Staff
Ankara, Turkey, where I'll be working
for The Development Foundation of
Turkey.
This will put a crimp in my telephone habits, but I hope I'll be able to
use Telex and the mail to keep on top
of new developments (anybody have a
spare satellite channel I can borrow?).
Maybe someone could come up with
an inexpensive world-wide network
system based on shortwave radios
(gotta be some dollars in that one).
DFT helps farmers in rural areas
modernize their operations. I'll attempt to put computer technology
into use in as many places as are
technically and financially feasible. If
anyone out there has been involved in
anything related to this, I would
really love to hear from you. This is
going to be the biggest challenge I've
ever faced, and aid will not go unnoticed.
Eventually, I'll be able to let you
know my address in Ankara. In the
meantime, just send any letters to
Micro C, and they'll be forwarded.
New Products
Slicer intends to release at least two
new products at the SOG this year.
The first is something they introduced
at last year's SOG, but still needed
time to mature. Yep, that's right, you
can finally buy Concurrent CP/M for
the Slicer. And it's not just plain old
vanilla CCP/M - it can window on
both the PC video board and any
serial terminal with cursor positioning
commands. You can even connect
multiple terminals and have windows
on all of them (if you're feeling really
schizophrenic).
Performance seems to be extremely
good - one person in Australia reportedly has more than six terminals
on his system, and it still performs
acceptably. They're working on the
PC-DOS emulation module, too; it
may not be ready in time for the SOG,
but very soon you'll be able to run CPt
M and MS-DOS programs concurrently.
The other product is really a variation of an existing product. Slicer will
now be selling a 1 megabyte expan-
sion board as well as the original 256K
version. I t has the four serial ports,
the printer port, and the clock just
like the 256K unit, but it uses 256K
DRAMs to fit an entire megabyte of
RAM onto a single board.
Since the 80186 can directly access
only 1 megabyte at a time, and more.
than 256K of that is already taken up
by the memory on the main Slicer
board, the RAM is split up into four
chunks of 256K. The first 256K
resides immediately above the Slicer's
256K; the other three banks of 256K
can be switched in one at a time into
the first 256K of memory space (one
of these banks is mapped slightly
differently to allow access to video
·memory at the same time). All of the
bank switching and mapping is done
with PALs, so you should be able to
easily modify the mapping for custom
applications.
Having this much memory opens
the door for some incredible multitrack disk buffering schemes. It also
may be possible to put parts of the
operating system into a bank that's
switched out most of the time, leaving
more memory open for applications.
Project X
Also to be announced at the SOG is
PC Tech's "Project X," now called
"The Scepter," I understand. This is
an 80186 board that magically fits
into the same space as an IBM
motherboard. This allows you poor
unfortunates with aging PCs to upgrade your system without giving up
that precious white cabinet and silver
emblem.
The Scepter can run at either 8MHz
or 10MHz. It has a socket for a
floating point chip (the 8087, I assume), a SASI port for connecting a
Winchester drive, and identical floppy
hardware to the IBM. There is no
onboard video circuitry, but there are
five PC-type cardslots so you can plug
in any video card you like (a Hercules
hi-res, maybe?). I haven't seen one yet
(nobody has), but it appears that the
only thing not PC compatible on the
board is the clock speed (and the
performance). More on this one after I
Micro Cornucopia, Number 25, August-September 1985
have seen it in the flesh.
Ampro will be officially releasing its
80186 Little Board at the SOG, too (it
has their SCSI/Plus multi-master bus
and runs at 8 MHz).
helps compare evaluate and find products. Get answers.
SERVICE: FREE LITERATURE
New User Disks
Since everyone else is releasing new
products, I've decided to release some
of my own. I've put together two new
CP/M 86 user disks, #7 and #8.
Disk #7 contains: VFILER, a screen
oriented SWEEP-type utility, ARCHIVE for automatically backing up
all files modified since the last backup, expansion board clock routines
written in Turbo Pascal, and several
other programs. Aside from the clock
programs, everything on this disk
should work on any CP/M 86 system.
Disk #8 has the latest Slicer BIOS,
a new STRANGE program that allows the Slicer to read both Morrow
and Kaypro format 5 inch disks, and
lots of other great stuff. The BIOS
now supports CP/M's IOBYTE feature as well as printing the current
time and date during cold boot if the
expansion board clock is installed.
Double-sided 5 inch IBM format is
supported in the BIOS, so it's no
longer necessary to use STRANGE to
read IBM disks.
We'd like to assemble more CP/M
86 disks as well as MS-DOS disks, so
send anything useful to Micro C and
get a free user disk of your choice.
By the way, I discovered the other
day that MODEM7 from disk #1
would not run on my Slicer with the
PC video board installed. Following
the advice given in the video board
manual, I made the stack larger and
reassembled; now it works fine.
[
OUR
PRICE
call
call
279
call
495
450
275
275
395
"C" Language
MSDOS: C86 - 8087, reliable, 286
Lattice C - the standard
Microsoft C3.0o(lew
Mark Williams - debugger
Instant C Interpreter, fast, full, debug
Wizard C - full. fast
CPM80: Ecosoft C-now solid, full, faster
MAC: Megamax - fast. full. tight
Consulair's MAC C
1~'hNifW
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
li'ljim":11
MS Fortran - Improved
DR Fortran-86 - full"7?'
RM Fortran - large arrays
Imill;_
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'
IQ LISP - fulll000K RAM
PCDOS
call
INSIGHT 1 - Expert Sys., decent
PCDOS
$95
TLC LISP - with' 'classes", nice
MSDOS
235'
185
MicroProlog - by Logic Prog. Assem. MSDOS
PROLOG-86 - standard, Learn fast
125
MSDOS
EXSYS - Expert System - thorough
PCDOS
295
SUPPORT PRODUCTS
LIBRARIES: BTRIEVE ISAM
Clndex+ - ISAM. source. no royall.
CSHARP Realtime - source, full
CUtii by Essential
DATABURST - Screens-C, BAS
GraphiC - 4200 x 3100, source
Greenleaf Communications
HALO Graphics - fast, full
TOOLS: CODESMITH - debug, visual
Polylibrarian-thorough
PolyMAKE-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·K Rockland Slree1. Hanover. MA 02339
Mass: 800-442-8070 or 617-826-7531
Mas1erCard
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.
Ever Wondered What Makes CP/M ® l1ck?
Half Tracked Format
To allow formatting 40 track formats on 80 track drives on the Slicer,
edit SLIFORM.A86 and change the
drive-type bytes of the 40 track
formats to indicate a "half-track"
format, then reassemble. It's better to
format 40 track disks on a 40 track
(continued on page 47)
Micro Cornucopia, Number 25,
One free call covers all programmer's software. Ask for a
"Packet" on: "AI", BASIC, C, COBOL, Debuggers, Editors, FORTH, FORTRAN, Libraries, PASCAL, UNIX/PC or
30 "addons" for "Coo.
August-Septemb~r
Source Code Generators
by C. C. Software can
give you the answer.
liThe darndest thing
~ ever did see .•• "
you're
at
" ... if
all interested
in
what's going on in
your system,
it's
worth it."
Jerry Pournelle,
BYTE, Sept 183
The ·S.C.G. programs produce
fully- commented and labeled
source code for
your CP/M
system
(the
CCP and BOOS.
area~).
To modify the system to your
liking,.
just edit and assemble with ASM.
CP/M 2.2$45,
CP/M+ $75, + $1.50 postage (in Calif add 6.5%).
C. C. Software, 1907 Alvarado Ave.
Walnut Creek, CA 94596 (415)939-8153
CP/M is a registered trademark of Digital Research, Inc.
1985
39
·SLICER. • • Growing to meet your needs!
The Slicer
The New 1- Megabyte
System Expansion Boardl
REAL 16-BIT POWER ON A SINGLE BOARD
Featuring the Intel 80186
• Complete 8 MHz 16-bit microprocessor on
6"x12" board
• 256K ~AM, plus up to 64K EPROM
• SASI port for hard disk controller
• Two full function RS232C serial ports with
individually programmed transmission rates
50 to 38.4K baud
• Software compatibility with the 8086 and 8088
• 8K of EPROM contains drivers for peripherals,
commands for hardware checkout and. software
testing
• Software supports most types and sizes of
disk drives
• Source for monitor included on disk
• Bios supports Xebec 1410 and Western Digital
WD 1002 SHD controller for hard disks
Fully assembled and tested only ............... $995
The Slicer
PC Expansion Board
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
FOR EXPANDED MEMORY, ADDITIONAL
PORTS, AND REAL TIME CLOCK
• 1- MB 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 ....•......... $800
CONCURRENT CP/M- with manuals ......... $250
without manuals •..... $200
The SLICER DOS Kit. ........................ $295
includes Bare Board, CPU and choice of
MS-DOS or CP/M-86
The SLICER Enclosure System
alone .......................•........•..... $125
with 135W Power Supply .................... $245
with 135W Power Supply and
2-80 track 5-1/4" Disk Drives ........•...... $695
PC Compatible Keyboard ..................... $150
PC Compatible Amber Monitor ................ $175
10MB (form'atted) 5-1/4" Half-Height
Hard Disk ...........................••..... $700
Western Digital 1002-SHD Hard Disk
Controller .................................. $200
assembled and tested
8087 Math Co-Processor Board. . . . . . . . . • . . . . .. $300
bare kit form
Check the SLICER Bulletin Board (300/1200 baud) at
612/788-5909 for complete set of manuals and access
to Slicer's design team.
,
SLICERT.M
SLICER COMPUTERS INC.
2543 Marshall Street N.E.
Minneapolis, MN 55418
(612) 788-9481
;'
All products are available in several kit forms:
Operating Systems are:
CP/M-86 by Digital Research, Inc. . . . . . • . . • . •• $85
MS-DOS by Microsoft Corporation . . . . . . . . • . . $175
MasterCard, Visa, Check, Money Order or C.O.D.
Allow four weeks for delivery. Prices subject to change without notice.
86WORLD ______________________________________________________________
(continued from page 39)
drive, but when you're like me and
don't have a 40 track drive, there's no
alternative.
The drive type byte is the very first
byte in each table of disk info in
SLIFORM. To indicate a half-track
format, just change bit 2 from 0 to 1.
For example: 1011B becomes IIIIB.
AT Drives
Also included on User Disk #8 is the
new code that must be patched into
the Slicer ROMs to allow proper
operation of the new drives used on
the IBM AT. These drives can look
identical to either an 8 inch or a 5 inch
drive. When in 8 inch mode, you can
use any of the Slicer 8 inch formats
(Le., you get 1.3 megs on a 5 inch
double-sided floppy!). These drives are
still more expensive than the quad
density 5 inch drives, but I have heard
of prices in the $200 range.
Both software and hardware
changes are necessary to properly use
the full capability of these drives
Without changing the software they
could be used in 8 inch mode, but that
wouldn't be nearly as nice as auto
selecting 5 or 8 inch modes.
The following description of the
hardware and software changes needed to add this capability to the Slicer
is a direct transcription (with some
editorial remarks added) of information sent to me by Brian Schieferstein
and Richard Herr of Gilford Instrument Laboratories in Oberlin, Ohio.
Thanks, guys. Hope you don't mind if
I plagiarize a little ...
Schieferstein & Herr's Auto Select
IBM PC/AT compatible 106M byte
5-114 inch (Shugart SA475 et. al.)
modifications for the Slicer To implement SA475 type drives on
the Slicer, two signals must be added
to J6 (5-114 inch floppy connector). To
add these signals, make the following
modifications to the Slicer board:
1. Open your Hymnals to page 3 of
the Slicer schematics. Say a short
prayer to the God of Cold Solder
Joints.
2. Lift U31 pin 12 out of the socket.
This removes the default ready signal
when in MINI mode.
3. Connect J7 pin 22 to J6 pin 34.
Now we can get a READY signal
from drives on J6.
4. Connect the MINI signal from
U31 pin 13 to U35 pins 1 & 2. (Note
that we are using a NAND gate as an
inverter here. The newly disconnected
(continued next page)
INEXPENSIVE CP/M PRODUCTS
..• New warranted equipment only
~,,<,~ • Full product support
e,~~
• Fix for CP 1M 8MB barrier
~
iii Special dealer and volume pricing
HARD DISK UPGRADE KITS
Internally installed
10MB ...... $ 995
40MB ...... $2,550
20M B ...... $1,550
70M B ...... $4,800
MAJOR SYSTEM UPGRADE FOR
180 COMPUTERS - CP1M 3.0
CP/M 3.0 is a powerful upgrade system to CP/M
1.0 - 22 for those who require a fast and sophisticated programming, data processing and file
serving system in stand alone or multiuser
envi ron ments.
Features include Hitachi 64180 processor with
NCR 5380 SCSI interface.
0
0
Now anyone can test and verify all vital floppy
drive alignment tests without prior training! Our new
drive test kit features the famous Dysan DDD™, our
easy to read user guide, and drive test program disk
for all models of the Kaypro 2, 4 or 10. We also
include a MEMORY test and a CRT test to help keep
your Kaypro in top shape.
0
• No additional equipment needed, full software
control.
0
0
FORBES ENGINEERING
0
0
0
Micro Cornucopia, Number 25, August-September 1985
• Includes Dysan DSDD DDDTM alignment standard.
• Works on all makes of floppy driv~s, both 48 and
new 96 TPI.
0
0
0
0
0
0
0
0
o
0
• Reliable operation even on Kaypros with modified 5 MHZ CPU.
• New low price only $99. All programs now on
one disk.
4023 N. 38th Ave.
Phoenix, Al 85019
CALL (602) 269-9514
0
• Speed, Radial, Azimuth, Index and other tests.
QUAD DENSITY FLOPPY DRIVE SUPPORT
Drives and PROM's available for any configuration including above listed hard disk kits.
NEW SHEEPSHEAD DRIVE TEST KIT!
• Call now our toll free phone, charge on your MC
or visa.
• Don't buy a "sheep" imitation, order direct from:
SHEEPSHEAD SOFTWARE
P.O. BOX 486
BOONVILLE, CA 95415
USA TOLL FREE (800) 654-9275
CA & AK (707) 463-1833
0
0
0
0
0
41
86WORLD ______________________________________________________________
(continued from page 47)
inverter on U31 could be used instead,
but that would require cutting a
trace.) (Remember: THINK first, then
do.)
5. Connect U35 pin 3 to J6 pin 2.
This is the speed control signal.
These modifications will not function properly in the 5-114 inch mode
with the current software due to the
way the READY signal is changed
(but really isn't) after the drive is
selected. This can be corrected with
the patches to the version 1.3 monitor
EPROMS in Figure 1. These changes
.will automatically select any Slicer
compatible format (8 inch or 5 inch) in
the two speed drive. To put these
changes into the EPROM code, type
them into a file and use an INCLUDE
statement to include the new code in
SLICER.A86 just after the INCLUDE PATCHES statement, then
reassemble and burn the new
EPROMS.
Video Board Bugs (And Fixes)
While we're on the subject of hardware mods, there is a slight timing
problem on some of the earlier Slicer
video boards. This mistiming causes
the "underline" attribute to work
intermittently (Le., flashing), if at all.
Slicer has corrected the problem by
changing one of the PALs, but you
can fix it yourself with just a single10pF capacitor.
Connect the capacitor between U36
pin 8 and ground. This slows the
leading edge of the BLANK signal
slightly and clears up the problem.
There is also a bug (actually an
undocumented unfeature) in the earlier video board software. The video
attribute setting commands were mistakenly put in the ROM as ESC-a and
ESC-b instead of IBM's ESC-b and
ESC-c. This was changed in later
versions of the ROM. If your manual
doesn't list these commands at all
then you probably have the version
with incorrect commands; the problem
was discovered and corrected when
the new commands were being added
to the manual. If you have the older
ROMs, call Slicer about an update.
42
Figure 7 - Patches to the Version 7.3 Monitor EPROMS
5-20-85. imple~ents drive select for dual speed
5 1/4" drives such as the Shugart SA475.
FLOPSEL and SEl.FLOP are modified.
;
PATCHNEW1 :
ORG
OFFSET FLOPSEL
;Select floppy disk.
NEWFLOPSEL:
MOV
MOV
OUT
MOV
SHR
XOR
OUT
MOV
MOV
ADD
MOV
ADD
MOV
MOV
TEST
JNZ
CALL
MOV
ADD
NEWFLOP5:
CMP
JNZ
NEWFLOP6:
MOV
MOV
MOV
MOV
SUB
SUB
NEWFLOPO:
MOV
CMP
JNZ
INC
NEWFLOP4:
OUT
SUB
LOOP
RET
ORG
NEWSELFLOP:
PUSH
MOV
MOV
POP
AND
CALL
NEWFD7: PUSH
AND
MOV
MOV
MOV
PUSH
PUSH
MOV
MOV
MOV
DX,SYSPORT+12
AL,DTYPE[DI]
DX,AL
DX,SYSPORT+14
AL,1
AL,1
DX,AL
AL,SECLOW
AH,DSTIME
AH,AL
DESELECT,AH
AL,FDTIME
FDSTOP,AL
AL,FDMOTOR
AL,DUOUT
NEWFLOP6
DUHIGH
AL,COUNT
AL,FDELAY
;Mini?
;Double density?
;Motor on for up
;Set deselect time
;and shut off time
;Turn drive on.
;Give it time
;to get up to speed.
AL,COUNT
NEWFLOP5
CX,4
AL,DISK[BX]
DX,SYSPORT+10
AH,DL
AH,AL
AH,AL
AL,O
AH,DL
NEWFLOP4
AL
;Select.
;Drive O.
;Compute lower part of
;address for selected
;drive
;Deselect all drives
;except the one that
;matches AH
DX,AL
DL,2
NEWFLOPO
OFFSET SELFLOP
BX
BX,DSKPTR
;Set xlate to do nothing
WORD PTR' 2[BX],OFFSET ROMRET
BX
DTYPE[DI],FLOPFY+MINI+DOUBLE
FLOPSEL
WORD PTR STEPRATE[DI]
;remove verify
STEPRATE[DI],NOT 4
LSTTRK[BX] ,-1
TRACK[BX],2
;calibrate then seek track 2
SIDE[BX],24H
;read address
DSKSEG
;set' disk memory
DSKMEM
;to select buffer
DSKSEG , SEG SELBUF
DSKMEM,OFFSET SELBUF
SECLEN[DI] ,6
Micro Cornucopia, Number 25, August-September 1985
CALL
JZ
XOR
CALL
JZ
MOV
MOV
NEWFDO: XOR
OUT
SUB
LOOP
XOR
CALL
CALL
JZ
XOR
CALL
JNZ
NEWFD8: MOV
CMP
JZ
CMP
JNZ
OR
MOV
CALL
JNZ
CMP
JNZ
NEWFD3: MOV
PUSH
MOV
CALL
CALL
POP
JNZ
TEST
JZ
OR
PUSH
MOV
MOV
POP
NEWFD5: MOV
AND
MOV
SHL
MOV
JMPS
NEWFDTRY
;try to read
NEWFD8
;did it work?
DTYPE[DI],DOUBLE ;if not flip density
NEWFDTRY
;if this didn't work
NEWFD8
;if double density worked
DX,SYSPORT+10
;Drive O.
CX,4
AL,AL
;Deselect all drives
DX,AL
DL,2
NEWFDO
DTYPE[DI],MINI ;try opposite speed
FLOPSEL
NEWFDTRY
NEWFD8
;did it work?
DTYPE[DI],DOUBLE ;if not flip density
NEWFDTRY
NEWFD2
;if this didn't work
AL,SELBUF
;get track number
AL,2
;at track 2? (not sure
NEWFD3
;because verify is off)
AL,1
;track 11
NEWFD4
;if not give up
DTYPE[DI],HALFTRK ;try half track.
LSTTRK[BX],1
NEWFDTRY
NEWFD4
;give up if error
BYTE PTR SELBUF, 2
NEWFD4
;or not track 2
AL,SELBUF+3
;have adr. info.
AX
SIDE[BX] ,25H
;Try side 2
DMASETUP
FLOPOP
CX
;If error
NEWFD5
;or side 1 then SS
SELBUF+1,1
;else set DS flag
NEWFD5
CL,4
BX
BX,DSKPTR
;and xlate routine
WORD PTR 2[BX],OFFSET TWOSIDE
BX
CH,CL
;sector length code in CH
CL,3
;put length in AX
AX,128
AX,CL
SECLEN[DI],AX
;and store it
NEWFD6
;
NEWFD2: MOV
MOV
JMPS
DTYPE[DI],FLOPPY
CH,80H
;disk read error
NEWFD6
NEWFD4: MOV
NEWFD6: MOV
JMP
CH,40H
SIDE[BX] ,0
PATCHNEW1
,
;can't figure it out
;finish in patch area
ORG
OFFSET PATCHNEW1
POP
POP
POP
MOV
MOV
RET
DSKMEM
;restore disk pOinters
DSKSEG
AX
STEPRATE[DI],AL ;and step rate
AL,CH
;length or error code
NEWFDTRY:
CALL
JMP
DMASETUP
PATCH8
;try to read, then return
I discovered both of these problems
on my own and was thinking, as I
dialed the phone, of how fun it was
finding new bugs and being the first
to tell the- developers about it. I told
Earl (Hinrichs at Slicer) about the
underline problem, and he said "Okay,
we found that a few days ago. The fix
is... " Then he told me about the
attribute bug before I even had a
chance to mention it. Geez, come on,
let me have a little fun, huh? Even I,
Laine Stump, need a little ego boost
now and then.
The Wini Works
Speaking of things being fixed
(don't ever say that around your male
cat - you may never see him again),
my aging 506 Winchester drive is
again functioning. The problem was
just a blown chip on the Slicer board,
probably from plugging in the first
Western Digital controller I received
(it was the wrong model). It has now
worked flawlessly for two months.
Next Please
Brian Schieferstein and Richard
Herr also sent me instructions for
using 256K DRAMs on an expansion
board to get 512K on one board. I'll
be trying to use the same technique to
put 512K on the main Slicer board. I
may have space to take a quick look
at assembly language programming
and I/O redirection under MS-DOS,
too. I/O redirection capabilities simplify many assembly programs greatly,
since there is no need to explicitly
open and close files, etc.
While I'm on the subject of things
for the future: Dave and I (and now
Earl, I hear) have been looking for
information on the MIDI (Musical
Instrument Digital Interface) standard. I've had no luck, and neither
had Dave last time I spoke with him.
Anyone who has information on this
(or any other computer/musical type
things), drop us a line.
P.S. No Commodores, please.
•••
End of Listing
Micro Cornucopia, Number 25, August-September 1985
43
... - -
.,.
____ e._e,.,..•
___ ._._
,.,.'! ...................
...............
., __
......... •- ••
. - --..
....
u '-'" 41..
-
=- - --..
-
~
'I
_
...
_
SUPPLY STORE
_
~~ ~U' ~ ~~.=..,;
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
Unstuffed board-any size; fully tested
$295.00
256K
4K or 32K printer buffer
$395.00
512K
4K, 32K or 64K printer buffer
$495.00
768K
4K, 32K or 64K printer buffer
$595.00
1mb
4K, 32K or 64K printer buffer
$695.00
U.S. add $5.00 shipping
International add $15.00 shipping
When ordering, please include the model of Kay pro to be used. Boards
can be upgraded should yours need change.
Typical speed increases you can expect to see using MicroSphere's
RAM disk:
4MHz Kaypro
Floppy Disk
RAM Disk
Recalc 14K Perfect Calc
9:31.25
1:17.78
Load LADDER. COM
9.38*
2.12*
Load Printer Buffer
24.61 *
20k file, 11 pages, 2586 words, USIng
PIP to the LST device
*Time in seconds
Comes complete with cabinet, cables, software and connectors.
TLC LOGO for Kaypro Computers. Easy and exciting language for all
ages.
TLC LOGO is an exceptionally complete logo with vectors, multiple
turtles, full floating point decimals and extremely fast program
execution.
TWO versions offered:
STANDARD version using only internal graphics of Kaypro 2~84,
4~84, 2X and 10; no hardware additions or modifications are required;
16,000 pixel resolution.
DELUXE version for all Kaypro Computers that have the Micro~
Sphere Color Graphics board. Features 16 colors, 32 sprites, 49,000
pixel resolution and utilities such as screen dump to printer or disk.
Time comparison of 3 common Logo programs currently
offered:
TLCLOGO Apple LOGO
DR LOGO
320k IBM PC
64k Z80
64k Apple lIe
Circle test
10 seconds
3 seconds
22 seconds
Pol ySpirall
11
17
4
PolySpiral2
out of stack
out of stack
7
Square Test
10
41
27
Four Bugs
NIA
6
78
(req. 4 turtles)
Times provided by The Lisp Company ... (note: out of stack indicates
inadequate implementation ofUtail 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
ofRF 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, hillow, line graphs from
keyboard, Perfect Calc, CalcStar or text files. Single and Double size
dumpscreen to printer, each color prints a different pattern on a
standard dot matrix printer ......................................... $40.00
44
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 Dvnamic RAM Chips:
150NS or 200NS ................... $ .99 ea.
TMS 9918 Color Chip
& Crystal.. .. .... ... .. . ..... ... . ... .. 29.95
Infocom ADVENTURE Games
Kaypro or CPIM 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: I=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
Z80H CPU (8MHz Z80) ................. 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
monitors 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
Quadram Amberchrome IBM~TTL
Monitor ..................................... $195.00
Zenith Monitors
ZVM 122 Composite Amber ....... $119.00
ZVM 123 Composite Green ....... $114.00
ZVM 135 Composite ColorlRGBIGreen
Hi Res. .. ..................... $500.00
E.
MicroSP-Der~
~.,
MicroSphere, Inc.
~
-
p.o. Box 1221
Bend, Oregon 97709
503 ..388.. 1194
9 ..5 Pacific Time
Dealer inquiries invited.
Micro Cornucopia, Number 25, August-September 1985
IISMON"
DG/Systems' Media Master
Review by Peter Matsunaga
I spend a lot of time on an IBM-PC
(my mainstay at work) and a Kaypro II.
Until recently, I didn't need to transfer
files between these machines. Now I
do-mostly Turbo Pascal source files,
numerical data files, and text files.
There are only a handful of transfer
programs on the market. For PC-DOS,
there's Vertex Systems' Xeno Copy
($149). For CP/M, Micro Solutions' UniForm ($70) and DG/Systems' Media
Master ($30) are possibilities.
I saw DG/Systems' ad in Micro C, and
the price was right. Delivery took one
week.
Media Master allows two-way data file
transfers between Kaypro II and 24 other
single-sided formats. It supports mass
copies and deletions, has a utility to list
disk directories on the screen or on the
printer, and can initialize new diskettes
in any of the 25 formats.
Media Master's menu offers these options:
1.
2.
3.
4.
5.
6.
7.
8.
COpy files
PRINT directory
DISPLAY directory
LOG in a new diskette
ERASE files(s)
VERIFY on write toggle
FORMAT a diskette
EXIT to CP/M
To log in a new disk, insert the foreign
diskette into the drive of choice, and
type 4, cr>, followed by a drive designation. A list of 25 format options appears
on the screen. If you make the proper
choice, voila, you get the disk's directory.
After the new disk is logged in, Media
Master can transfer files, delete files, or
write the directory to the printer. The
copy and delete commands accommodate wild card (*. *) file names. The
logged drive can also be used with other
diskettes of the same format; it is not
necessary to 10$ in each disk.
Software In-Circuit Emulator
1928 Iwaho Place
Honolulu HI 96819
Because Media Master is designed to
run on a machine with single-sided
drives, you can't read or write doublesided disks (in any format). While I have
used single-sided diskettes formatted on
the IBM without problems, the Media
Master manual advises that the safest
course is to use disks formatted by Media
Master.
Comments
The program would benefit from a few
additions like drive and format status information on the main menu screen.
(Editor'S note: The biggest problem is
that you can't just configure a drive for a
certain type of disk and then access that
disk with other programs like pip, type,
or wash. The single-sided limitation is
also a problem.)
Also, I prefer mnemonics to number
commands on the main menu, having
been brainwashed by daily exposure to
other software. Occasionally, my fingers
succumb to a vagrant compulsion to type
an 'L' to log in a disk, an 'F' to format, etc.
To Media Master's credit, nothing happens until I type a '4', the correct command. Media Master doesn't permit
syntax errors but waits instead for you to
get it right.
I have used Media Master after running Micro C's dump24 (a screen dump
program). It turns out that erasing a file
under Media Master causes a screen
dump to the printer.
Overall, I think Media Master does everything it claims to do.
•••
NOTE: Since this article was typeset, DG/
Systems has changed its name to Spectre
Technologies.
Performance
There are a few things that Media
Master doesn't do. It won't let you run
PC-DOS .COM files on the Kaypro, nor
can applications programs read or write
to the foreign disk.
Micro Cornucopia, Number 25, August-September 1985
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:
-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
aMON, Slave aMON, CONSOL,
aMONIO, CONSOL/O, and Users
Manual ................................ $150.00
Shipped Via prepaid UPS
-No COD or P.O. BoxCheck or Money Order to:
Barnes Research & Development
750 W. Ventura St.
Altadena CA 91001
(818) 794-1244
CP/M is a trademark of Digital Research Inc.
MBO & LBO are trademarks of Microsoft Inc.
NOW FOR XEROX 820
BB & BBII
LOW COST
DISK CONTROLLER
SAVE WEAR AND TEAR ON YOUR DISK DRIVES
AND FLOPPIES WITH THE MODEL 3801 ALL
SOLID STATE RELAY.
SMALL ENOUGH TO FIT
EASILY INSIDE YOUR DISK DRIVE, THE 3801
CAN BE INSTALLED IN MINUTES.
YOUR BIG
BOARD WILL THEN TURN YOUR DRIVES ON AND
OFF AUTOMATICALLY AS THEY ARE NEEDED.
- FEATURES -
*
*
*
*
*
*
*
*
SMALL SIZE - 1.75 X 1.40 X
0.35
FAST INSTALLATION - DIAGRAM
INCLUDED
ZERO
CROSSING - ELIMINATES
ALL SWITCHING NOISE
TRIAC OUTPUT - NO MECHANICAL
PARTS
DVDT FILTER - INCLUDED
LOW COST - ONLY $8.80 EACH
1 YEAR WARRANTY
30 DAY MONEY BACK GUARANTEE
JP__.az
COMPANY OF CALIFORNIA
1619 SOUTH MINNIE STREET
SANTA ANA. CALIFORNIA 9~7U7
(714) 547-4316
CALIF. RES. ADD 6% SALES TAX
ADD $1.00 EA. POSTAGE & HANDLING
PLEASE SPECIFY BBI, BBII OR XEROX
45
Kaypro Column
..
By David Thompson
A lot of people have called asking
if the 8" interface for the Kaypro
really exists. Yes, it does (in the flesh
or a facsimile), and it's available.
You get the Pro-8 version 2 features
(if you have an 83 Kaypro), or the Pro8 MAX features (if you have an 84
Kaypro). With either you can run up
to four drives on your system. A: and
B: can be any type of 5" drive; C: and
D: can be any type of 5" or 8" drive.
Double-sided 8" drives will read and
write single-sided, single density 241K
disks (like the SIG/M disks) as well as
single- and double-sided double density disks (600K and 1.2 meg). That's 16
sectors of 512 bytes per sector, 77
tracks.
If there's room in your system, the
monitor will also read and write 1024
bytes per sector in double density.
This gives you 670K per single-sided
disk and 1.34 meg per double-sided
.disk. You can make· room by moving
CP/M down lK.
The price for the 8" board is $190.
You need to specify whether your
system is '83 or '84. If you have a
Kaypro 11-83 (the monitor ROM's
paper reads 81-149), then you'll need
to do the II to 4 upgrade. See issue
#15 or #24 for upgrade information.
It's easy to install the board. Just
unplug the 1793 floppy disk controller
chip, plug in our board, and then plug
in the 5" and 8" drive cables.
You supply the 8" drive(s), cabinet,
power supply, and cables. There are
many sources for drives, and many
different types of 8" drives. Siemens
drives are the standard on the surplus
market. They aren't the best because
the stepper motors die if you use them
a lot, but they're cheap ($100 - $130
single-sided and about twice that for
double-sided).
Cascade Electronics usually has a
variety of slightly used Shugarts.
.Check with them; their drives and
service are consistently good, and
they also may have power supplies
and cabinets. Their number is 507645-7997.
If you want to go fancy, you might
consider the Mitsubishi 8" half-height
double-sided units. They look good,
and they don't require 110V AC, so
46
you can run them in portables.
Some say it's a contradiction to talk
about portable systems with 8"
drives, but you can ignore those
people.
286i
Most of the systems in our office
haven't seen their boxes or their tops
since the day they arrived (unless
they're systems we built, which means
they never had tops). However, our
second 286i sits forlornly on the floor
in its unopened box.
It's not that we don't have great
plans for the system. We do. In fact,
we've spent a good deal of time trying
to add a hard drive to the 286i. We
haven't even gotten it to select the
Winnie. The system supposedly supports a number of different hard disks
(they are numbered between 1 and 14),
but we don't have a comprehensive
list yet. The 20 meg Tulin TL200
Series, the 10 meg Shugarts, and the
20 meg Seagates work (at least in
Portland and Solana Beach). Rodime,
. High-Technology, and the Seagate ST506 have had problems. Xenix requires type 2 drives to work, and PCDOS is limited to 30 meg per drive.
(Whew.)
The Rodime drive we tried was
never selected. We checked the drive
select lines, and none corresponded
with the hard disk select light on the
286i's front panel. After we returned
our first system to Kaypro, they
called and said that it interfaced
properly with a #2 drive (type #2 in
the AT Diagnostics). If you're adding
a Winchester, you have to purchase
the AT's advanced diagnostics from
IBM ($270) in order to format the
Winnie.
Kaypro doesn't supply MS-DOS 3
with the system: you have to purchase
that from an IBM dealer (it'll cost you
$60).
When Kaypro chose to ship their
$4500 system without a Winchester,
they said it was to "allow" users to
install drives of their choice. You'd
think they could at least write a disk
formatter and supply a $60 copy of
the operating system.
~aypro says it's negotiating with
I
Microsoft for a multi-user version of
MS-DOS to include with the 286i. We
have heard rumors, however, that one
of the bugs still residing in the 80286
makes it impossible to support multiprocessing or multi-user. As for .the
formatter, I think they need to write
one.
I tried formatting some ordinary
floppies as 1.2 meg in the 286i. Our
Mag Media disks that format perfectly as quad density (784K) work very
poorly at the higher density.
1.2 meg format is 96 tpi (80 tracks
per side) like the quad density, but the
disks spin at 360 rpm instead of 300
rpm - and the data is written at
500K bits/second (like 8" double density) instead of 250K bits/second. So
the number of tracks is the same as
quad density, but there's almost twice
as much data crammed into each
track.
The double density Mag Media
disks format to about 800K usable
space after formatting. At least MSDOS automatically traps the bad
sectors, but with a disk that marginal,
I wonder how long it will take before
errors show up.
So I have to figure on spending $4
each for the high density disks. Fortunately, the system can read 360K
disks, and if you need to write data
onto these standard format disks, you
can exchange a double-sided 48 tpi
drive for one of the 1.2 meg drives.
Three 286is
The 286i is now available in three
versions - a stripped down model
with one 1.2 med drive, a rigid/floppy
controller board, 512K RAM, and·
GWBasic for $2995; a spiffier model
with two 1.2 meg floppies, controller,
512K RAM, graphics/parallel card,
parallel/series card. GWBasic and
MicroPro software for $4550; and a 20
meg hard disk model with Winchester,
one 1.2 floppy, controller board, 640K
RAM, parallel/serial card, and
GWBasic for $4795.
The internal design of all models is
very AT-like, except Kaypro is using
256K DRAMs instead of 64K chips
piggybacked (a la AT).
Micro Cornucopia, Number 25, August-September 1985
,"~
.
PROGRAMMER/4+
Kaypro 10 Hard Disk Failure
Jeff Brown, Kaypro's district manager in Oregon, says he's been seeing
a lot of hard disk failures on the
Kaypro 10's that are directly related
to heat (usually a clogged fan) or
inadequate power protection. The first
is easily remedieq.
For the second, he suggests you use
a dedicated power line (don't run your
coffee pot or air conditioner on the
same connection), and make sure that
you have good solid + 12V (+ or .35V) to the disk and the controller.
It's best to use an uninterruptable
110V source (UPS) for triple A insurance (some service companies won't
sell extended warranty contracts on
hard disk systems that don't have
UPS because of hard disk failures
from power-related accidents).
•••
SMART-PIK
NFL & USFL Football
Handicapping Program
PURPOSE: Do-it-yourself Program. For
Kaypro users interested in predicting the
outcome of professional football games.
HOW IT WOR KS: Each week, enter the
stats required by the SMART-PI K formula..
SMART-PIt< projects the number of points
that each team is likely to score (and allow)
against its next opponent.
RESULTS: Awinning record, against the
pOintspread, in each of the last 4 Pro
Football seasons. (1983 and 1984, NFL
and USFL. More than 500 selections.)
au ICK & EASY: Required stats are obtainable from any newspaper. I/O takes
about 2 hours per week. (Also, data maintenance via mail or modem is an available
option.)
VARIABILITY FEATURES: You can
easily vary the SMART-PIK selection
determinants. Further experimentation
may produce still better results.
Developed by Marty Mendelsohn and Jim
Thompson of Las Vegas Kaypro Users Group.
$49.00 includes postage and handling.
Specify what kind of Kaypro you have. MS
DOS okay, too.
Phone or Write for Free Brochure
rvrs1J
..
Marty Mendelsohn Associates
3807 Central Park Dr. #4 • Las Vegas, NV 89109
Tel. (702) 737-6256
Micro Cornucopia, Number 25, August-September 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.l Amp.).
Power electronically switched, (can't damage EPROMS).
Zero insertion force socket for EPROM.
Programs, verifies, and dumps in both ASCII and hex.
Edit buffer (like DDT).
Saves hex and/or image files to and from disk.
Saves or loads all or partial buffer.
Completely menu driven for ease of operation.
Commands of Test, Read, Display, Save, Load, Program and more.
Check sum calculation.
All software on disk including well commented source code.
Detailed owners manual including schematic
All chips socketed.
Not a kit! Completely built and tested.
48 hour dynamic burn-in and test before shipment.
90 day limited warranty on parts and workmanship.
24 hour return policy on repairs.
Delivery from stock.
NOTICE TO PREVIOUS CUSTOMERS:.Send us your old disk and a
suitable S.A.S.E. for your free copy of our new software, ver. 1.6.
PROGRAMMER 4+ WITH OWNERS MANUAL AND DISK. $199.95
Order from
Rperipfico
~i
.~-:-\ 1659 Scott Blvd., Suite 1
~I ~V Santa Clara, CA 95050
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.
--
DIABLO 620 (H-P 2602)
RS-232
STORE DEM) LEITER QUALITY
25 CPS WITTH SERVICE MANUAL
$449.00
DIABLO 630
45 CPS
RS-232
STORE DEM)
45 CPS LEITER QUALITY
$900.00
Z-125 9X9 DOT MATRIX 10, 12, 13.2, 16.5 CPI
RS-232 150 CPS WITTH BlOCK GRAPHICS
95 ASCII CHARACTERS STORE DEM)
$400.00
KEYBOARD 113 KEYS 8 BIT ASCII
PARALLEL OUTPUT WITTH CASE
AND COMPLETE DOCUMENTATION
$40.00
SA800-2 DISK DRIVE
CLEAN - USED
$65.00
SA850 DISK DRIVE
CLEAN - USED
$119.00
STANDARD IDUNTING - GUARANTEED 60 DAYS
Ifs like having a friend to help:
Customize WordStafl 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
LUS WORDSTARI!> RECOVERY
PROGRAM TO SAVE FILES WHEN
DISK IS FULL OR WHEN OTHER
SAVE PROBLEMS OCCUR
WSFIX.COM a $30 value
r-}OPTRONICS
TECHNOLOGY
2990 ATLANTIC AVE.
Penfield, NY 14526
716 377-0369
Master Card and Visa Accepted
$3.00 Postage, NY residents add local
tax
CABINET FOR ABOVE HOlDS 'lW) DRIVES
POWER WITRING COMPLErEED (AC AND DC)
FAN AND INPUT AC WITRING OONE
20 X 9 1/2 X 17 DEEP
$60.00
POWER SUPPLY FOR 'lW) DRIVES (SWI'ICHING)
WITLL POWER DRIVES AND SBC· 6 X 8 X 2 1/2
5VDC @ 8 AMPS, +12VDC, -12VDC, -5VDC @
.5 AMPS FA AND 24VDC @ 2 AMPS
$60.00
SHUGART DISK DRIVE PARTS
SA800 HEAD
SA800 STEPPER
SA800-2 LOOIC BRD NON-IDRKING
SA800-2 LOOIC BRD IDRKING
SA850 HEAD AND STEPPER ASSY (BI OR TRI)
SA850 LOOIC BRD NON-IDRKING (BI OR TRI)
SA850 LOOIC BRD IDRKING (BI OR TRI)
SA800 OR SA850 SPINDLE BEARINGS (SRI')
SA800 OR SA850 INDEX LED (SRI')
OTHER PARTS ON ~UEST
$15.00
$10.00
$10.00
$35.00
$50.00
$30.00
$60.00
$ 3.00
$ 3.00
SA800 ALIGNMENT AND CLEANING
SA850 ALIGNMENT AND CLEANING
$20.00
$30.00
Z80A PARTS CPU, C'IC, SIO/l, 1771, 2716
--6845 CRT CONTROLLER
$ 2.00
$ 2.00
DIABLO PRINT WHEEIS
COURIER 10, ELITE 12, COURIER 72
$ 3.00
6 FOR $15.00
CASCADE ELECTRONICS
ROUTE 1 BOX 8
RANDOLPH MN 55065
507-645-7997
FREE
SHIPPING
ON OVER $40.00
COD ADD $2
CREDIT CARD ADD 5%
MN ADD 6%
LIMITED TO S'IOCK ON HAND
EVENING CALL OK
Color Speedometer For The Kaypro
By Mike Sweeney
The 5MHz speed up on the older
Kaypro lIs is one of the truly great mods.
But remembering your speed setting can
be another rna tter.
I've formatted disks at 2.5MHz, and
then jumped into another application
without switching back to 5MHz. By the
time I realized things had really slowed
. down, I was in too deep to back out for a
speed change. And if I'm running too
fast (for a formatter, for instance) I've
really got problems.
Even if I do remember to check which
speed I'm at, I still don't like reaching
behind the computer to feel the switch
position or push the reset button.
Fix
I decided to experiment with a tri-color LED (light emitting diode) that
changed colors when the de polarity was
reversed. LEDs glow yellow on AC voltage and either red or green on DC voltage, depending on polarity.
I substituted the existing red DC power LED on the front of a Kaypro with a
tri-color LED. Then I replaced the singlepole double-throw speed switch with a
3-pole double-throw switch, using one
pole for the speed select and the other
two poles for reversing the DC power to
the LED.
Moving The Switch
Relocating the switch and the reset
button to the front panel ends all the
hopping up and down to reach the back
of the Kaypro, and makes the wiring
short and neat. The switch and reset button can be left in back, however, if you
don't want to drill the front panel, or if
you need the exercise.
,..
•
How To Wire (Figure 1)
Remove the old power indicator LED
by pulling off the collar inside. Then
push the LED in from the front and cut
the wires close to LED.
Solder some jumper wires on the new
LED. Then install and connect it to the
center studs of two of the poles on the
new switch. Connect the 2 wires that
previously went to the power LED, to
the top studs of the same 2 poles.
Connect jumpers (making an X) between the top stud of each pole and the
bottom stud of the opposite pole. Move
2659 Beverly Dr
Medford OR 97504
the speed select wires to the new switch
using the third pole set. Reverse LED
wires and/ or speed select wires as necessary to get the speed and color of your
choice.
Results
Now at 2.5MHz, my power light
glows red, just like a normal Kaypro, but
when I switch to 5MHz the power light
glows green. Plus the switch and reset
button are right pt my finger tips.
Tip
When drilling the front panel, stick a
piece of tape on the inside of the new
hole to catch drill chips. Silver duct tape
works well. If you really want to keep
things sanitary, turn on your vacuum
cleaner and hold the hose up next to the
drill bit.
Figure 1 - Rewiring
r----'
,...
3PDT Switch
I
I
I
-
I
I
t
I
-
I
I
t
OriQinal
LED
Wlr ..
!
I
I
I
I
I
I
I
I
:
....
-
15Mhz
/
~
I
I
I
I
0
12.SMhz
I
_-1
Parts
Both the tri-color LED #276-035 and
the 3PDT switch #275-661 are available
at Radio Shack.
Out 66Ikeys" the
<C(Q)Inl1lIPetition!
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
dBASEII! 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 lor 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 25, August-September 1985
49
The 32-Bit Super Chips
By Trevor Marshall, George Scolaro
Definicon Systems, Inc.
21042 Vintage St.
Chatsworth CA 91311
818-341-5654
Dave Rand, Tom King, and Vince Williams
Most designs come about because
of an unfilled need. That was certainly
the case when we sat down to design a
32032 co-processor system for PCs
and PC-clones. But first a little background.
During 1983 and 1984, a group of us
at Definicon developed some advanced
signal processing software.
One of our most successful algorithms used a time to frequencydomain conversion technique which
required many floating point calculations, but it gave better resolution
than a standard fast Fourier transform.
Benchmarks Vrs. Fortran
The program was written in FORTRAN and initially we ran it on a
VAX 11-780 minicomputer, but we
soon moved the program over to an
HP9000. A typical analysis took
about 15 minutes on the HP.
But the cost of the HP9000, about
$60,000, seemed a bit high. After all,
who wanted to pay that much just to
run a piece of software? So during
1985 we converted our programs to
run on IBM XTs. We ran a number of
benchmarks on an Eagle Turbo (an
XT clone) and on a real XT, and
concluded that the Eagle was about
twice as fast as the IBM. (The Eagle
runs an 8086 processor and 8087 math
co-processor, while the XT runs an
8088 and 8087 .)
In fact, the benchmarks indicated
that the Eagle's performance should
nearly equal the HP9000's. But after
we finished transferring over the
FORTRAN source, we found that the
Eagle took seven times as long as we
had predicted.
I couldn't see any reason why a
minicomputer like the HP9000 should
run that much faster than a micro,
especially considering the benchmark
times. So I investigated! (Of course, a
benchmark is just a small fragment of
code, and it's obvious that benchmark
results do not necessarily reflect performance on a larger, more complex
program.)
50
Wherein Lies The Discrepancy
If we examine the data for the Sieve
of Eratosthenes (the Prime Number
Sieve) in Table 1, we see that for
n8191 the difference in execution
speed between the XT and the
VAX111780 is about 10 to 1. However,
by increasing the size of the searched
array to 40,000 numbers (rather than
8191), the difference widens to 55 to 1.
The program flow has not changed,
but the larger size of the problem
shows some problems with the Intel
processors. (If we want to identify the
priI?les in 80,000 numbers, then compilers running on the PC-XT or PC-AT
won't work. They place a 64K limit on
the number of elements of an array.)
Floating Point Benchmarks
We devised the FLT benchmark to
exercise the floating point processors.
The benchmark consists of a few
arithmetic operations inside a loop.
The FLOAT benchmark also exercises
array handling.
The 8087 and 80287 arithmetic
processors ran about 1120 MFLOP (1
MFLOP 1 million Floating Point
OPerations per second). In fact, the
4MHz 80287 in the PC-AT ran slightly slower than the 4.77MHz 8087 in
the PC-XT!
The VAX111780 clocked in at about
1 MFLOP, or 20 times faster. The
major problem with the 8086/80286/
(80386) family is not shown in these
benchmarks, however.
64K Addressing
If we had been able to take the sieve
above 64K elements we would have
found that the Intel processors slow
down even farther. Whenever any
data, code, or stack structure exceeds
64K, you must check the segment
you're in before doing an access. Even
business programs (such as 123 and
dBASE) are slowed substantially by
segment checking.
The 68000 and 32000 series processors are not affected by this overhead,
since they can usually access many
megabytes of address without segmentation.
Consequently, late in 1984, we reluctantly accepted that 8-bit (8088) or 16bit (8086,80186,80286) processors had
significant limitations. We also accepted the fact that 32-bit microprocessors have something significant to
offer.
32-Bit World
There really is only one operational
32-bit microprocessor - the National
Semiconductor NS32032. I will not
argue this point, but merely state that
the 80386 is currently just a pipe
dream, and the bug lists I have seen
for samples of the 68020 still cover
several pages. At the time I wrote this
article, even the Intel 80286 was not
fully functional in all modes.
Bugs In The 68020 Set
1. The barrel shifter does not work.
2. The co-processor interface does
not work.
3. The data sheet AC characteristics
cannot be met.
In addition, the floating point coprocessor works only at unacceptably
slow clock speeds and does not yet
talk properly to the CPU. (If ya' want
a number, take a number, any number!)
Motorola has never demonstrated a
complete 68020/68881 system (not
even at the trade shows) and has
continued to use the 12.5MHz 68020
demo I first saw at NCC in mid-1984.
This demo, incidentally, gives vastly
different benchmark times depending
on whether you select Single Run or
Continuous mode. Try it at the next
trade show, and see if you can get an
explanation for this irregularity!
In fairness, I have seen a 12.5MHz
68020 running non-virtual UNIX in
68000 emulation mode.
Motorola does not admit having
bugs any longer. (The last official bug
list was distributed in 1984.) Still,
time will be the ultimate arbiter.
To put this all into perspective,
National made its first NS32016 in
September 1980. In December 1984, it
was sufficiently operational to release
to prod~ction.
Micro Cornucopia, Number 25, August-September 1985
..
..
\
~
en
w
o
w
a:
::l
Z
~
::l
AA
r
THE LITTLE BOARD®
.AI, •
OEM - INDUSTRIAL - SCIENTIFIC
,~fIV" SECOND GENERATION SINGLE BOARD COMPUTER KIT!
4 MHZ Z80* CPU!
64K RAM!
DOUBLE DENSITY!
A
>
D.
o
MINI-SIZE:
ONLY
5-3/4 x 7-3/4 INCHES
U
w
w
a:
I&.
~
Z
<
a:
a:
~
FREE CP/M· 2.2111
A $139 VALUEI A FREE
5-1/4 IN. CP/M 2.2
DISKETTE IS INCLUDED
WITH EACH KIT.
DISK DRIVE SPECIAL:
Q
~
i
:::i
~
Q
A. & T. UNITS'
$249.00
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 SlOE - $130 EA
(HALF HEIGHT) (96 TPI) 2 FOR $245
g
BOTH ORIVES WORK FINE WITH THE LITTLE BOARDI
a:
::l
o
I&.
o
en
:::E
a:
...ww
i!:
...o
t;
w
FULLY SOCKETEDI PERFECT MATE TO OUR ZRT-80 TERMINAL BOARD. THROUGH SPECIAL ARRANGEMENT
WITH AMPRO COMPUTERS, WE ARE PLEASED TO OFFER THEIR LITTLE BOARD~ IN KIT FORM.
FEATURES:
IDOUBLE DENSITY (5-1/4 IN.) FLOPPY CONTROLLER I
4 MHZ Z80 CPUI
I
USES +5VDC @ .75 A. AND +12VDC @ 50'MA
CENTRONICS STYLE PARALLEL PRINTER PORT
TWO RS232 SERIAL PORTS
at
::l
I
SAME SIZE AS A MINI FLOPPY
en
en
~
Digital Research Computers
-'
P.O. BOX 461565 • GARLAND, TEXAS 75046 • (214) 225-2309
~
;l
64K DYNAMIC RAMI
(OF TEXAS)
2732 BOOT EPROM
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
zeD TM OF ZILOG. CP/M TM OF O.R.1.
Availability
The full 32-bit bus version, the
NS32032, is not yet fully functional,
but we have provided fixes on the
DSI -32 for its remaining problems,
and they do not affect the performance or operation in any way. Motorola built the first 68020 in 1984, and
Intel promises the first 80386 in
December 1985.
One of the really exciting things
about the new super chips is the
enhanced instruction set. Cast into
these little pieces of silicon are all
kinds of gems. But that's also the
reason why the 32032 has taken so
long to get to market and why it will
probably be quite a while before the
80386 and the 68020 are really ready.
..
Complexity
The problem with building these
advanced processors is that they have
to do EVERYTHING. When you
program in assembler, you have to
keep track of which registers do direct
arithmetic operations, which ones will
accept memory indirection, and so on.
On the 32-bit processors, it's easy to
know which instructions allow which
addressing mode. You can use any
addressing mode with any instruction.
n~mbers, and places the result in
LAST.
For example,
EXTracts the Short bit field from the
Double precision 32-bit word at the
address in Rl plus 6, puts it into RO
(right justified), starting at bit 4 for
11 bits.
ADDD
100000,LAST
adds immediate 100,000 to the 32-bit
memory location LAST.
ADDB
8,LAST
treats LAST as a byte memory location and adds 8 to it.
ADDF
1.31978,LAST
adds immediate the floating point
number 1.31978 to LAST (treating it
as a 4-byte floating point number).
DIVL
FIRST ,LAST
divides the two memory locations
FIRST by LAST, treating them as
double precision 8-byte floating point
Micro Cornucopia, Number 25, August-September 1985
EXTSD
6(R1),RO,4,11
Making Them Work
Two problems with producing these
chips should be immediately apparent.
First, it is not a trivial matter to get
these instructions to work the first
time. Second, it is quite difficult to
adequately test all the instructions
after the chip has been manufactured.
Conversely, these sophisticated
chips make it much easier to write
efficient software. In general, anything you want to do, they can do.
In addition, compilers can do much
more optimization, and produce much
more compact code.
• ••
51
The Definicon DSI-32 Co-Processor
By Trevor Marshall, George Scolaro,
Definicon Systems, Inc.
21042 Vintage St.
Chatsworth CA 91311
818·341·5654
Dave Rand, Tom King, and Vince Williams
Once we realized the need for a
real 32-bit system and had checked
out the options (32032, 68020, and
80386) -- see the previous article by
Trevor, et. al., in this issue -- we
started to design the system.
After pricing hardware for a complete standalone system, we decided
to plug our 32-bit microcomputer (the
DSI -32) into an IBM PC clone. Not
only does the PC offer all the I/O
peripherals we needed (we even have a
1/2" magnetic tape drive on one of our
development machines), but it also
has a processor which can handle files
for the 32032.
In addition, MS-DOS (or PC-DOS) is
not unlike CP/M. It has sufficient
additional features (such as subdirec-
.,
tories and almost all of the enhancements given by programs such as
ZCPR3) to make it useful for applications development.
We were also pleased with Concurrent DOS (from Digital Research). In
addition to all the features of MSDOS, it offers multiple consoles with
up to three background tasks. This
environment makes software development a pleasure!
The DSI-32 uses a 10MHz 32032
CPU running at about 1.5 MIPS
(million instructions per second) with
a 32081 Floating Point unit (about 113
MFLOPS) and optional 32082 memory management unit for a true virtual
software interface.
Two 38.4 KBaud RS-232 serial ports
handle high speed I/O totally independently of the PC. In addition,
direct port I/O and memory access for
the 8086 environment is provided to
the 32032 through the software interface.
The host 8086 (or 8088) can access
all the 16-Mbyte logical address space
of the 32032 in addition to the added
serial ports. Data is transferred from
the DSI-32 using Direct Memory
Access, so the 32032 usually only
misses one or two 100 nsec T states
for each byte transferred to the 8086.
Writing A Program
To write a program for the DSI -32,
you first edit the source file (in C,
Pascal, FORTRAN, FORTH, Tiny
Close-up of 10 Meg. 32032
52
Micro Cornucopia, Number 25, August-September 1985
\
..;
BASIC, or Assembler) using your·
favorite MS-DOS editor (we use WordStar and Vedit). Then you run the
appropriate Definicon compiler, assembler, and linker to produce an
executable 32032 program.
For example, let's develop a program called HELLO.C which says
"Hello World." First we edit the
source (in C) using W ordStar and
compile it using
D5/-32 Co-Processor Board with 1 Mbyte of RA M
CC HELLO.C
assemble the resulting source code
with
AS HELLO
and link the object modules with
LINK IND=HELLO
Finally it is run with the MS-DOS
command.
LOAD HELLO
This invokes the 32000 loader,
which reads the 32000 executable
HELLO.E32 file off the disk, loads it
into the DSI-32 memory, tells the
·32000 tQ commence execution, and
then stays resident to service 110
requests from the 32000 program..
When execution is complete the loader
exits and passes control back to DOS.
We took a shortcut with the linking.
The command IND= HELLO means
that the linker takes its constructional
data from an indirect file called HELLO.IND. See Figure 1 for the file.
Because of the complex information
needed by the linker, it is always
easier to prepare this indirect file
when you write the application, then
invoke it automatically as you compile. This also allows a BATCH job to
run the complete compilation, assembly, and linkage process automatically.
Note that 32000 code is totally
position independent, and the linker
does not perform relocation. It builds
(continued next page)
Micro Cornucopia, Number 25, August-September 1985
53
DEFINICON D51-32 CO-PROCE550R _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
(continued from page 53)
a series of MODULE TABLES (one
for each code module) that contain
data for the CPU's static base and
control registers. These registers ate
loaded from the table each time the
. table's corresponding module is executed.
Definicon's Monitor
Finally, Definicon has a MONITOR
program for debugging. It allows inline disassembly (including full floating point operands), run to break-.
points, execution trace, display, fill
and substitute memory, display of
CPU control registers, display of CPU
data registers, display of the Floating
Point Unit's registers, and display of
the Memory Management Unit's registers. Its commands are similar to
DDT and DEBUG.
Availability
The DSI-32 is available both in kit
form and fully assembled. Call for
information about assembled and test-
ed boards. The kits are a special deal
to Micro C readers and are available
from Definicon at the address shown
at the top of this article.
Assembling The Kit
If you have never assembled a
microcomputer kit, contact your
user's group, or enlist an expert's help
before you attempt construction. And
be sure to observe static safety procedures when you handle ICs. Definicon
assumes no responsibility for replacement of components which have been
mishandled or incorrectly inserted
into their sockets. Definicon's liability
is limited solely to the replacement of
those components which were faulty
at the time of shipment.
Starter Kit
32032 CPU· - 6MHz clock rate
32081 FPU - 6MHz clock rate
256K Bytes of RAM (32, 64K chips)
Wave soldered, partially tested,
printed circuit board, fully socketed
Full set of ICs and instructions for
assembly
Diagnostic software disk
Simplified NSX compatible assemblerllinkerlloader
MS-DOS interface software, advanced debug monitor
Public Domain software disk (supplied upon request)
Cost: $995.00
Advanced Kit
32032 CPU - Full 10MHz, no wait
states
32081 FPU - Full 10MHz, 'no wait
states
1 Megabyte of RAM (32, 256K
chips)
Wave soldered, partially tested,
printed circuit board, fully socketed
Full set of ICs and instructions for
assembly
Diagnostic software disk
Simplified NSX compatible assemblerllinker/loader
MS-DOS interface software, ad-
ZENET NETWORK though twist pair
MSC~
~
• 6Mhz HD64B 180 (Z80 upward compatible 1) 512K
byte on board (256K installed, 384K RAM DISK)
• LAN:ZENETport 800K baud CSMA CD twist pair bus
type upto 500 meters
• Floppy: 3.5, 5 and 8 inch dis density, dis sided and
dis track automatic desitylformat checking
• Hard disk: SCSI interface on board
• Video: 80 X 24 characters (color) and 640 X 200
pixIes color graphic 128K byte video RAM character
set is dowloaded from disk
• Timer: battery back up calendar
• Serial: RS232C X 2 and TTL X 1
• Pararell: centronics type, 16 bit TTL, 718
bit keyboard port (32 characters FIFO)
• 0.5.: Turbo Dos, MPIM (multiuser)
banked CPIM plus (single user)
• Size: lOX 6 inch 4 layered
• Assembled and tested
• BIOS source code available
• Complete faster than other Z80SBC
RAM (128K RAM DISK)
• Serial: RS232C X 2 automatic baud rate checking
• Pararell: centronics type printer port
• Floppy: 3.5 inch micro floppy disk drive 800K byte
(option 5, 3.5 inch drive dis sided dis track. automatic
density checking)
• BIOS source code available
• Complete faster than other Z80SBC
",MSC~,-'-,-PC-,=-X":--_---:-7----:-=O-_ _---"''''''-:8088 expansion card for LAT1 soon available
MTC WORLD SMALLEST COMPUTER
• Full personal CPIM system in palm 4mhz Z80 256K
• as: CPIM plus bank version
Full assembled pcb of MTC
Under $189 in OEM quantity
Full futured CPHH pJus
system
3.5, 5
MSC-
ED
CPIM plus is a registered trademark of Digital Research Inc
~~r~~ ~~:?si~~~~~s~r:,~~rr;ra;~ea:n~~o6,'~~ftware 12000 Inc
Mountain Side Computer and ZENET are trademark of Southern Pacific Limited
Distributors
England-Quanta systems 01-253-8423
Denmark-Danbit
03-662020
Finland-BB Soft
90-692-6297
India-Betamatix PVT LId.
0812-71989
_MSC-'-_·_MJi_C/--'--p____--::aoIII~
• Z80 4mhz 128K Byte RAM
Floppy:
and
8 inch dis density, dis sided and dis track upto 4 disk
drives Automatic density/format check
• Serial: RS232C X 2
• Pararell: Centronics type, 16 bits 110, 718 bit
keyboard port
• Timer: battery back up calendar
• Video: 80 X 24 high speed CRT controller
• 0.5.: CPIM plus bank version included
• Size: lOX 6 inch 4 layered
Manufacturer and international distributer
SOUTHERN PACIFIC LIMITED
• BIOS source code available
• DRI CPIM plus manual $50
• New word word processor program for
MSC-ICO ADD $50
• Complete faster than other Z80SBC
MSC'HCS
~
.
••
ExpanSion card tor ICO
•
RAM disk (upto 2M byte) and SCSI hard disk
interface card for ICO with instal/ation program
Write For A Free Info Today.
USA distributer - - - - - - - - -
Sanwa Bldg., 2-16-20 Minamisaiwai, Nishi, Yokohama, JAPAN 220
Phone: 045-314-9514 Telex: 3822320 SPACIF J
SOUTHERN PACIFIC (USA) INC.
Advanced single board computer technology company
Dealer and distributer inquiries welcome
P.O. BOX 4427, Berkeley, CA 94704-0427 U.S.A.
vanced debug monitor
Public Domain software disk (supplied upon request)
Cost: $1495.00
(Note: The DSI-32 draws up to 15
watts (5V at 3 amps) from the PC's
power supply, so make sure you have
this much spare power capability
before ordering.)
Public domain compilers/interpreters will be available for FORTH,
Small C, Pascal, and Tiny BASIC.
The disk containing these programs
will be included free (but only if you
ask for it).
The DSI -32 is suitable for use with
any IBM PC clone (but your money
back is the only guarantee of compatibility we can offer).
Commercial Software
1. Green Hills C Compiler: Kernighan and Ritchie plus full Berkeley 4.2
UNIX extensions.
2. Green Hills Pascal Compiler: Full
Berkeley 4.2 UNIX compatible plus
many extensions.
3. Green Hills FORTRAN Compiler:
ANSI FORTRAN 77 plus full Berkeley 4.2 UNIX extensions.
4. Definicon/Computer Systems Design NS32000 Assembler/Linker: Advanced National Semiconductor NSX
syntax assembler with the GENIX
extensions required by Green Hills
compilers. Supports fully relocatable
code and "Pascal like" high level
Figure 1 - File HELLO.IND
EXEC=HELLO
;Call the executable program 'HELLO'
MODULE=CLIB/SB_START=2000,NOCOPY ;Use static base for CLIB
CODE=4000
;Program load address
RAM=O •• FFFFF
;We have 1 megabyte of RAM to use up
STACK=+4000
;Allocate 16K of stack somewhere
MOD=80
;Set the module table at 80H
[[ DT ))
constructs. Linker supports assembler
output syntax and fully relocatable
code, including named COMMON
blocks and initialized statics.
5. Definicon/Computer Systems Design NS32000 Library Manager and
Programmer's utilities: LIB32 program to form and examine libraries of
object modules, assembly and high
level language examples for direct
(OEM) interface to the Definicon MS/
PC-DOS interface.
NOTE: The C and Pascal compilers
will run in 256K in a limited way. The
FORTRAN compiler will not run in
256K.
purchase) $649; Any compiler, purchased alone, (needs assembler above)
$249.
Note: Green Hills Software is making these compilers available at prices
well below those of the identical
compilers for their original UNIX
environment. Prices in the above table
are specially discounted for Micro C
readers.
A hard disk is almost essential if
you want to run the Green Hills
compilers (which range up to 250K of
code).
The only support that Definicon can
offer to purchasers of this software is
a guarantee to check out written bug
reports promptly. We assume that
Micro C readers are proficient in the
basic programming syntax of a language, and the documentation provided reflects this assumption.
Prices of Commercial Software
Library manager/Programmer's utilities $49; Assembler/Linker purchased
separately $149; One compiler (your
choice), including assembler/linker
$299; Two compilers including assembler/linker (one purchase) $499; Three
compilers, incl. assembler/linker (one
•••
GENERAL UTILITIES PACKAGE
Rolland Management Systems Utilities Package offers maximum access to files for CP/M· users
Sort System • Organize and reorganize any file
Batch List Utility· List many files with one command
optional page heading, page number or date
* fixed or variable length records
$39.95
* unrestricted sort keys
$19.95
*
skip or include records or blocks
Menu System - No need to "chain" back to menu
unrestricted construction of menus
$29.95
*
* restrict user modification of menus
* enhanced batch processor under the menu
*
* output to printer or another file
* configure for any printer
Dump Utility • Decode and display entire file contents
$19.95
* show hexadecimal, integer or RAD50 value
* dump to screen, printer or disk file
* begin at any block and dump any number
FREE with purchase of any Utility - Base Conversion Utility - decimal to binary to hexadecimal to RAD50
All 4 Utilities: $79.95
Mastercard or Visa call (919)276-6070
Rolland Management Systems, Inc.
Rt 5, Box 135
Laurinburg, N.C. 28352
• CP/M is a registered" trademar1c of Digital Research. Inc.
MULTICOPY
Save hours of time on your Kaypro with this powerful utility!
•
•
•
•
Format, copy and verify 96 tpi disks in under 4 minutes (exact speed depends
on type of drives and year of Kaypro)
Format, copy and verify Kaypro double and single-sided disks in approximately
1 minute and 2 minutes respectively
.
Format, copy and verify any soft-sector, single or double-sided 5%" disk
format on your Kaypro at comparable speeds (e.g. Osborne SSDD in under a
minute). Large library of formats supplied, with capability of adding others.
Use any combination of Drives A, B, C or D as source or destination drives
(Not currently available for the Kaypro 10)
For further information on MULTICOPY
and other Kaypro and CP 1M software, please
write or call:
P.lease send MULTICOPY to:
Name ___________________________________________________________________
Ad dress ________________________________________________________________________________
Enclosed is $39 plus $3 shipping
(California residents add 6% sales tax)
D
D
D
Check or money order
VISA
MasterCard
Nu m be r __________________________________________________________ Ex p. - - S i gnat u re ___________________________________________________________________
[Plu*Perfect Systems)
($5 shipping charge for orders outside N. America)
BOX 1494 • IDYLLWILD. CA 92349 • (714) 659-4432
CP/M is a registered trademark of Digital Research, Inc.
CP/M EPROM
PROGRAMMING SYSTEM
IF YOU HAVE TWO
OR MORE KAYPROS·
(. & MORROWs OR XEROX 820-115 ALL IN THE SAME OFFICE.)
CONNECf THEM WITH THE LAN/ROVER™
The ADEVCO LAN/Rover is a full-feature Local Area Network system which enables KAYPRO CP/M computers to
wor~ 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~
ADEVC0 INC.
1
3790 EI camino Real. Palo Alto. CA 94306.415/493-7466
Kaypro, Morrow & Xerox are registered trademarks of the KAYPRO Corp .. MORROW DESIGNS. & XEROX.
56
2516
2732A
27128
27256
27CXX
2708
2758
2716
2732
2764
THEY SHOULD TALK!
-
STAND ALONB BOARD - BLBCTRONIC SWITCHING or BPROM TYPBS
USBS 24 VOLT XPMR POR POWBR - ALL SUPPLIBS/TIMING ON BOARD
DBSIGNBD WITH BASY TO GBT PARTS - COMPRBHBNSIVB 30 PG MANUAL
WORKS WITH ANY CP/M SYSTBM
- SOPTWARB INSTALL UTILITY
* * INTERPAC8 TWO WAYS * *
1 - ONB 8 BIT INPUT PORT AND ONB 8 BIT OUTPUT PORT - 16 WIRBS
AND A GROUND - NO HANDSHAKB LINBS RBo.UIRBD.
2 - CBNTRONICS PRINTBR PORT - 8 OUTPUT DA" A BITS AND ONB INPUT
DATA BIT (BUSY LINB) - 9 WIRBS At{) A GROUND.
* * CONTROL PROGRAM COMMANDS * *
-
PROGRAM BPROM(S) PROM DISK
- SAVB BPROMCS) TO DISK
RBAD DISK PILB INT'O RAM
- PROGRAM EP~OM(S) PROM RAM
R8AD BPROM(S) INTO RAM
- COMPARB BPROM WITH RAM
VBRIPY EPROM IS BRASBD
- COPY BPROM
DISPLAY /MODIPY RAM - (MONITOR MODS) WITH 11 SUB COMMANDS
PILL-DUMP-XPSR-BXAMINB-MODIPY -B1A5-PROGRAM-VBRIPY. BTC.)
BARB P.e. BOARD WITH COMPLBTB DOCUMBNTATION
AND SOPTWARB ON 8' SINGLB DBNSITY DISKBTTB
$69
(ABOVE WITH COMPLBTB PARTS KIT - $169lCAiT - $189)
SOPTWARB AVAILABLB POR OSBORNB. KAVPRO AND 01HER 5 1/4 PMTS
TO ORDBR SBND CHBCK. MONBY ORDBR. WRITB OR CALL
ANDRAT8CH
P.O. BOX 222
MILPORD, OHIO 45150
(513) 752-7218
CALL OR WRITB POR MORB INPORMATION -- ADD $300 POR SHIPPING
OHIO RBS. ADD 5.5% TAX -- VISA/Me. ACCBPTBD -- $3.00 POR COD
With the MRS/OS Source Code,
you can see the light.
SPECIAL FREE OFFER TO
8" DISK USERS!
If you own a CP/M compatible operating system,
you've had to put up with the mistakes and quirks
of someone else's programming. Until now. Now
you can see the light with MRS/OS. In fact, MRS is
a full operating system designed to replace CP/M
2.2 or CDOS and it comes with complete source
code. MRS is designed for Z80 processors, runs
CP/M software, and can interface directly to a
CP/M BIOS, saving you a lot of sysgen 'time.
With MRS, you get more than what you pay
for. For under forty dollars you receive fully
commented sourcetode for standard and
extended BDOS functions, a sample:BIOS, our allin-one utility package and a 130 page manual.
So if you're tired of being in the dark with some
other guy's program, here's the answer to your
prayers.
ACT NOW and receive our ultra-fast, flexible disk
format program, FREE! FORMAT can format a 77
track 8" disk in just 25 seconds and provides you
with four of the most common disk formats
used with CP/M based systems:
( includes shipping & handling in
N. America; overseao; add S (2)
Mao;s. orders include S% sales tax
Order by phone 24 hours a day!
(617) 478-3102
~
Tech. inquiries: 7:30pm-1O:30pm EST (Wed. ONLY)
(Tech. line closed August 7 & 14)
..--:::::::~~~~
•
Inc.
CP/Misaregisteredtrademarkofl>igitaIResc:an:hCorp.
coos is a registered trademark of Cromemco Corp.
• 8" SSSD 128 byte sectors, 26 sectors/track,
76 tracks
• 8" SSDD 256 byte sectors, 26 sectors/track,
76 tracks
• 5.25" SSDD 256 byte sectors, 18 sectors/track,
40 tracks
• 5.25" SSDD 512 byte sectors, 10 sectors/track,
40 tracks
.----------------------
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
..
YES!
Please send me _ _ MRS/OS Source
Code(s) for just $39.9S each on 0 8" SSSD disk or
o SI/4 " Kaypro format disk. If I act right now, I'll
receive a FREE FORMAT program included on the
disk (8" disk users ONlY).
o VISA/Mastercard # _ _ _ _ _ _ _ _ expo date ______
( circle one)
o Check
o Please send more infonnation
Nanne _______________________________________
Address ___________________________________
City ______ State _ _ _ __ Zip _ __
I
I
I
I
I
I
I
I
I
I
I
I
Phone __________________~----------------
II
Send to: OCCO, I n c . .
28 Claflin St., Milford, MA 01757
.1
--------------~----------------~------------ ---------~------------
I
Programming The 32032: Setting Out
By Gary Entsminger and Bruce Berryhill
I t looks like National Semiconductor has a winner this time, so we'll
skip the jokes. (Jokes have been a
National Pastime for years.)
The 32032 has eight 32-bit general
purpose registers and eight dedicated
registers. The contents of any general
purpose register can be used as base
pointer, index value, or data. Data can
be either 8-, 16-, or 32-bit. Take a look
at Figure 1 for details on the dedicated registers.
Integer & Floating Point Instructions
The 32032 instruction set is comprehensive enough to keep even Nik1aus
Wirth busy. Integer instructions operate on 8-, 16-, and 32-bit elements Add(ADD)
Subtract(SUB)
Negate(NEG)
Absolute Value(ABS)
Hultiply(HUL)
Divide(DIV)
Hodulus(HOD)
Quotient(QUO)
Remainder(REM)
Hove(HOV)
Compare(CHP).
by adding a length suffix: B, W, or D
to the instruction -
Micro C Staff
Figure 7 - Eight dedicated registers
Program Counter 1
;contains tbe memory address of tbe first byte
of tbe instruction currently being executed.
_______ 11
Static Base
1
;contains tbe base address of data tbat's been
allocated before program execution(updated
wbenever control is transferred between
modules.
1
1----------------1
I
1
1
1 Frame Pointer
1
1
;points to a dynamically-allocated area at tbe
beginning of a procedure.
1
1----------------/
1
1
/ User Stack Pt. 1
1
1
;points to tbe top of tbe user stack.
1----------------1
IInterrupt St.Pt.1
1----------------1
I Interrupt Base I
1
;points to tbe top of tbe interrupt stack.
;contains tbe base address of tbe interrupt
dispatcb table, wbicb contains tbe descriptors
of tbe trap/interrupt service procedures.
I
1----------------1
1Module
1
1
1
1
1
;points to tbe current module's module table
entry.
1-------1
1Status
;contains 16 mode and status nag bits.
1
1------1
<--16-->
<-----32------>
Round(ROUND)
Truncate (TRUNC)
Floor(FLOOR)
The bit field instructions are -
If you're converting a floating point
number to an integer, you need to
specify the integer width, using the
suffixes FB, FW, FD, LB, LW, LD -
ADDB, ADDW, ADDD
ROUNDFB FO, RO
HOVB, HOW, HOVD
The complete syntax for an ADD is ADDi
source,
destination
"i" represents integer length character.
Floating point arithmetic can be
either single or double precision by
adding a suffix: "f" (float) or "1" (long
float) to the general form of the
instruction. For example, a Negate
instruction would have the syntax NEGf
source, destination
The floating point instructions are Add(ADD)
Subtract(SUB)
Hultiply(HUL)
Divide(DIV)
Negate(NEG)
Absolute Value(ABS)
Compare ( CHP)
Hove(MOV)
58
rounds the single precision number in
register FO to a I-byte integer and
places the result in the low-order byte
of register RO. The remaining bytes of
RO are unaffected.
Logical, Bit, String, And Array
The Logical Instructions are And(AND)
Or(CR)
Bit Clear(BIC)
Exclusive Or(XOR)
Complement(COH)
Arithmetic Sbift(ASH)
Logical Sbift(LSH)
Rotate(ROT)
Boolean(NOT),(SCOND)
The bit instructions are (for when
you really need to get into those small
spaces) Test Bit(TBIT)
Set Bit(SBIT)
Clear Bit(CBIT)
Invert Bit(IBIT)
Find First Set Bit(FFS)
Convert To Bit POinter(CVTP)
Extract Field(EXT)
Extract Field Sbort(EXTS)
Insert Field(INS)
Insert Field Sbort(INSS)
The string instructions are Hove String(HOVS)
Compare String(CHPS)
Skip String(SKPS)
Array instructions are Bounds cbeck(CHECK)
Calculate Index(INDEX)
Logical, Bit, Bit Field, String, and
Array instructions all accept the same
length suffixes. Add B, W, or D
depending on whether you're accessing a byte, word, or double word.
Processor Control And Service
The remainder of the 32032 instruction set is made up of branches, local
procedure calls/returns, external procedure calls/returns, explicit trap instructions, trap/interrupt returns, effective address, context instructions,
register/stack manipulation, and memory management. We won't list all of
them; instead, we'll try to give you
the flavor of a couple of the more
interesting. For example, let's say
you're calling a procedure in Pascal.
Micro Cornucopia, Number 25, August-September 1985
Figure 3 - Procedure Calling Sequence
Figure 2 - The Stack
2000
2004
2008
200A
Program Main;
PROCl
BSR
The stack atter the execution of --
Prooedure PROCl (x,y:INTEGER);
Begin
1----------1
I
I (FP}
End;
IReturn Addr of Calling Prgl
I
I
I
I
IPassed Parameter(y)
I
I
I
Begin (Main Program}
PROCl (a,b);
End.
translates to--
Parameter(x)
1IPassed
______
---
The stack after the exeoution of -
ENTER [RT,R6],28
>1 contents of register 7
I
I
lFE4 >1 contents of register 6
I
I
Stack Pointer >1
lFDF
1< (FP-36}
I
_1< {FP-32}
I
I
1< {FP-28}
HOVD
(-8)(FP),TOS
HOVD
(-12)(FP),TOS
BSR
PROC1
PROC1:
ENTER [RT ,R6],28
-----II
1-I
I
lFFF
I
I
I
Frame Pointer >1 local variable
I
I
I
I
1< {FP}
.
1--------------1
I Return Addr of Calling Prgl< {FP+4}
EXIT [R7,R6]
2008
I
I
I Passed Parameter(y)
I
I
I
RET
200A
I Passed Parameter(x)
1< (FP+12}
2004
1-I
8
-------------1I
1-------------1
Four instructions handle subroutine
calls and returns (hope they're happy
ones). They are BSR, RETURN, ENTER, and EXIT.
BSR and RETURN handle the simple minded subroutine call where you
push onto the stack the parameters
you're passing and then branch (BSR)
to the subroutine. The RETURN
instruction discards the passed parameters from the top of the stack when
you're done.
ENTER and EXIT are additional
instructions you use when entering
and exiting a subroutine. ENTER
allocates space on the stack for the
subroutine's local variables and saves
any or all of the values in the
processor's registers. EXIT does the
reverse, restoring the registers and
discarding the local variable space.
Frame Pointing
A frame is a region of the stack
which contains the parameters passed
to the procedure, the procedure's local
variables, and its saved registers. The
Frame Pointer (a dedicated register)
points just below the passed parameters to the first local variable (See
Figure 2). The Stack Pointer points
just beyond the end of the frame.
Invoking A Procedure
The three instructions beginning
with MOVD (-8)(FP),TOS make up the
procedure calling sequence (see Figure
3).
A procedure's parameters are accessed by adding a positive displacement to the address in the Frame
Pointer. Local variables are accessed
with the same addressing mode but
Micro Cornucopia, Number 25, August-September 1985
Copy double-word looal variable
(a) from its looation at FP-8, and
push it onto the stack. It will become
passed parameter (x) in PROC1's frame.
Copy double-word local variable
(b) from its location at FP-12, and
push it onto the stack.
Call the local procedure at the ,address
PROC1, and push the address of the next
sequential instruction on to the stack.
Push the Frame POinter onto the stack,
and load the Frame Pointer fro~ the
Stack Pointer. Subtraot 28 from the
Staok POinter, lengthening the stack
by 28 bytes, making room for variables.
Push registers 7 and 6 onto
the stack (to save them).
pop 6 and 7, restoring those registers,
load the Stack Pointer from the
Frame POinter, and pop the Frame Pointer.
Add 8 to the Stack Pointer,
effeotively removing 8 bytes of the stack,
pop the address of the next sequential
instruction (that we saved during
BSR), and load it into the Program
Counter (Register), transferring oontrol.
use negative displacements.
In our example, we're pushing copies of the local variables (a and b)
onto the stack. These will become
parameters when the called procedure
executes. See Figure 2.
External Procedures
The 32032 supports program modules (one of its selling points) which
are accessed via a module table.
External procedures are procedures
outside the current module. To call
oneor,
CIP
; call external procedure
CIPD
;call exterpal ,~rocedure
with descriptor
RIP
;return from external
procedure
Then,
(continued next page)
59
SETTINGOUT __________________________________________________________
(contInued from page 59)
to return control to the calling procedure.
These instructions work with Module and Link Tables to locate the
called procedure. With this system the
calling procedure doesn't need to
know the absolute address of another
(external) procedure. So memory can
be used more efficiently, and memory
bookkeeping can be handled in one
place (the Link Table). Each module
takes care of itself, without knowing
where anything else is located. The
Link Table is the only part of a
module which must know absolute
addresses.
Multi-tasking
In multi-tasking operations the efficient use of memory requires that a
procedure be locatable anywhere. (Unlike single-user systems, there is no
guarantee that a specific location like
100H will be available.)
This use of "virtual memory" frees
the programmer from the restraints of
physical memory. You can think linearly even though memory is actually
being partitioned. (Partitioning is
used to divide up memory so multiple
processes can reside there at the same
time. It is not 8086-like segmenting.)
For example, let's say you've got
1000 bytes of free memory (let's say
addresses 1000-2000), but your program is larger than 1000 bytes. You
start out by loading 1000 bytes of
your program into memory and running it.
A JUMP to an address not currently in memory generates a page fault.
(A page fault means we need more of
the program). So a JUMP to program
address 1500 (would be to memory
address 2500 since we're starting from
1000) forces the system to go to the
disk and overlay the next 1000 bytes
of the program into the 1000-2000
portion of memory. Then execution
continues.
Supervisors And Users
The 32032 was designed to be a 32bit COMPUTING SYSTEM. All system-level features are designed in.
Currently the MMU (Memory Management Unit) and the FPU (Floating
Point Unit) are separate chips, but
National Semiconductor intends one
day to have the entire system on one
super chip.
Definicon's 32032-based board (DSI32) is current microcomputer state-ofthe-art (or thereabouts), and plugs
into a PC clone using th.e PC's
microprocessor (8088 or 8086) for 1/0.
By using Concurrent DOS (which
allows background tasking using MSDOS software), you can edit a file with
the 8088 for instance, while the DSI32 is executing another program. A
lot of MS-DOS software will run
under Concurrent DOS, so this really
opens up the possibilities.
Supervisor requests allow the 32032
and the 8088 (8086) to talk to each
other.
h for the height of
.YQ·ur .craft... ~~~~~~f~~~~~ril~~f
'. •
•
I
•
.•• f:>.s an Idea craftsman, you use
"""";'":--~" .. your mind like a skilled pair of
ljl~~~I~~I~~I;~: hands. You take hold of concepts,
then manipulate them to dis· cover, refine, convey dynamic
new thoughts.
Now, the tool that can strengthen
· your creative grasp is well within
:. your reach.
KAMASTM a revolutionary outline
.. processor from KAMASOFTo,
.:.. supports your thinking process
. .. ' and keeps you in touch with your
.:: . ideas. That's because KAMAS is
· designed to work the way your
mind works-naturally.
Begin by brainstorming. KAMAS
~~II;lt enables you to jot down ideas
quickly, as you think of them. If
'/f~:~~~~~~~
. you want to elaborate, you can
. add text with full screen editing.
Then develop your ideas using a
[~;;;~~~II~I' familiar outline format. Change
the structure as easily as you
change your mind. Move an idea
KAMAS, ZBO, & CP/M are trademarks of KAMASOFT', Zilog, & Digital Research respectively.
and all attached text moves
• formerly Compusophic Systems.
with it.
:<
~
~
Get your hands on KAMAS now. Send $147 plus $4
for S/H. Or call (503) 649-3765 for VISA or MasterCard orders. KAMAS is available for many ZBO,
CP/M computers. Ask about your system.
KAMASOFTo
2525 SW 224th Ave., Dept. 111
Aloha, OR 97006
Then, expand the outline to develop the specifics when you need
to. By collapsing and expanding
portions of the outline, you can
maintain an overview and literally
see how your ideas fit together.
And KAMAS is fast. Your ideas remain at your fingertips. KAMAS
can locate and retrieve by
keyword-even a misspelled
one-in less than a second per
topic file.
Use as much of the power as you
feel comfortable with. KAMAS is
menu-driven with over 100 on-line
help screens. But you can also
open the hood to find a high
performance programming
environment with the additional
horsepower you may need to
get the job done An active user
community and the KAMAS
Report newsletter keep you in
touch with the latest KAMAS
applications.
Achieve a commanding vantage point ...
...with KUlAIN
IT'S EASY TO USE!
Just enter "SPELLSYS", select which
disks you'll use, and file you're checking.
Then SpellSys takes over. Everything is
self-prompting-so sit back and relax.
If you need to write a character,
open a file, or write to a file, for
examples, send the 8088 the appropriate supervisor request by loading the
request number and other particulars
into 2 or 3 registers.
Are you signing your name with an X
because spelling doesn't come easily?
Then you need SpellSys!
Finally
The 32032 has some powerful features, so don't be surprised if coprocessor boards begin infiltrating
PCs world-wide.
Co-processors that can communicate with MS-DOS or UNIX will be
very popular, if the chips are available. Insiders claim National Semiconductor finally has it together and can
get the chips out (and we're not
talking potatoes). Let's cross our
fingers.
With this full-feature package, you can
write prose with the pros. SpellSys features a 42,000 word dictionary and all
the bells and whistles of those expensive
checkers-including rhyming, crossword
search, letter unscrambling, etc.
SpellSys is made up of a group of individual programs which you can use together or separately. With SpellSys you can
setup and maintain your own custom
dictionary (in addition to the main dictionary). These are real dictionaries, not
hash tables, so you edit or remove words
from your own dictionary at will.
• ••
MICROCOMPUTER
PROJECT
DESIGN TOOLS
PROJECT BOARDS
•
•
•
•
•
•
6502 or 6803 Processor
Up to 48K Memo~
Monitor 1 Debug PROM
Serial and Parrallel 110
Counter - Timers
Plated-Through Breadboard
area for your project.
Assembled & Tested ............ $200.00
CROSS ASSEMBLERS
6502, 6800/6801, 9900/9995 Assemble
machine language programs on your MS-DOS
system, burn PROM's andlor down-load and
run on your Project Board or other system.
Disk & Manual ................ $100.00
Write or call for information on these and
other products.
HAWTHORNE TECHNOLOGY
8836 S.E. Stark
Portland, OR 97216
(503) 254-2005
Word Review Operations
C •. show Context in file
L .. Lookup word in dictionary
M .. Misspelled (correct file to ...•. )
o .. put~n user Dictionary
I .. Ignore
N .. Next word
P .. Previous word
E .. Exit review
•• (or any other key) displays menu
ORDER AT NO RISKl
Check out the manual
agree that SpellSys is
just return the package
opened within 30 days
your money.
and if you don't
a super bargain,
with the disk unand we'll refund
5PELLSYS
$29.95 ppd. in U5 & Can
Other Foreign add $5.00
Requires 32K CP/M·
Formats: 8" 5550 or
5" 55 DO for KayPro
·CP/M is a trademark of Digital Research
P.O. Box 65
Bend, OR 97709
MC
(503) 382-8048
Visa
1000K RAJVldisk Plus
FOR BB·I and XEROX 820: 2-piece system using Z-80 daughter board + 8.5" x 13.75"
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.
I/O 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 BmLD 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 INCUJDED: RAMdisk software, 250K and 436K RAMdisks for SWP DD &
standard CP/M also patches in the real·time clock. Utility programs included.
OPTIONAL SOFTWARE: [1) 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. [2) Public
domain computer music play/compose program uses DAC for output; great sound quality
and fun to usel Includes printed installation guide.
Bare daughter and main boards (silk-screened and solder· masked);
full documentation, 8" SSSD software disk
$99.95
Delay line (required for RAMdisk)
16.95
New RAMdisk software with ZCPR + keyboard translator
24.95
Computer music program: program + songs (2 disks)
15.00
above + source (3 disks)
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·II and other computers. Software furnished on 8" SSSD; 5 1/4 II (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
TMcP/M is a registered trademark of Digital Research
Micro Cornucopia, Number 25, August-September 1985
P.O. Box 28937
San
Die~~9~~I~~~~~
.
61
62
Micro Cornucopia, Number 25, August-September 1985
FORTHwords
By Arne A. Henden
7415 Leahy Road
New Carrollton MD 20784
301-552-1295.
A FORTH Engine can be loosely
defined as any single board computer
that has FORTH built into it. There
are three main approaches to building
a FORTH Engine: FORTH in ROM,
Microprogrammed FORTH, and the
FORTH Processor. I'll cover all three
in this column.
FORTH In ROM
A general purpose microprocessor
such as the Z80 can be used in
conjunction with ROM memory to
emulate a FORTH computer. For
example, the ROM FORTH or Idaho
FORTH ROM sets that were sold by
Micro C enabled the Big Board I to
execute FORTH upon reset. This
ROM technique is not limited to
FORTH. The IBM PC, Commodore
64, and other personal computers
have BASIC in ROM. Even monitor
ROMs fit into this category, since
they accept keyboard commands.
The primary advantage of FORTH
in ROM is the ease of implementation,
since any general-purpose micro can
be programmed to execute FORTH.
But in all cases, the ROM eats into
the available program space. Since
few micros have the register set or
addressing modes for efficient
FORTH, ROM implementations tend
to be slower than the other two
methods.
Microprogrammed FORTH
Think of a microprogrammable processor as one with a limited internal
instruction set that uses short subroutines to handle the more complex
instructions. In effect, such a processor is both a processor and a ROM as
described above. The microcode resides on a separate internal bus and
controls the processor. In fact, from
the outside you only see the microcode, not the processor.
The 68000, 8086, 80186, and 80286
are examples of microcoded processors. Each clock cycle of the 68000,
for instance, consists of several internal microcycles.
Most 16-bit micros use microcode
since it's easier to develop microcode
than to do the same complex instruc-
tions in hardware. The difference
between the 8086 and the 80286 is
that more functions on the 80286 are
implemented in hardware, using fewer
microcyles for each instruction.
You can buy microprogrammable
processors, normally called bit-slice
processors. Given that such CPUs can
emulate any instruction set, it makes
sense to microcode FORTH. The
H4TH engine is a good example,
where a 4-bit processor executes
FORTH instructions. A 16-bit addition needs at least four microcycles
since only 4 bits of the result can be
obtained at once. For this reason, the
H4TH is not the fastest FORTH
engine even at its internal 14MHz
clock rate. A 16-bit chip such as the
AMD29100, or a 32-bit chip such as
the NCR/32 might be better choices.
Here again, FORTH is not the only
language that can be implemented in
microcode. The Pascal engine of the
late 1970s and the Modula II engine
are other examples. The LSI-II and
MicroVAX are microcoded processors.
The FORTH Processor
Even the bit-slice processors use an
underlying general purpose chip to
emulate FORTH. The best design
would be a custom chip with special
circuitry to implement FORTH instructions directly. NEXT best would
be a single instruction instead of
several microcycles. Obviously, this is
the fastest and most efficient method,
requiring only a single. chip with no
emulation. Unfortunately, it is also
the hardest approach. Someone has to
design such a chip and convince a
semiconductor company to invest
huge sums of money to create the
mask and produce the chip.
Charles Moore (the inventor of
FORTH) started such a project several years ago, and has recently succeeded. The March 21, 1985 issue of
Electronics Design introduced the N0vix microprocessor - a single chip
FORTH engine. The first chip to be
released, the NC4000A, will run at a
clock rate of 8MHz and is capable of
executing the Sieve benchmark in 0.4
seconds, about the speed of optimized
Micro Cornucopia, Number 25, August-September 1985
68000 assembly language. A 16-bit
processor, the NC4000A can use 64Kb
of memory for program space and can
store data in a 128Kb region.
The Novix chip is the most novel
micro to be released in years. Its
speed is such that dedicated controllers can be programmed in a high-level
language instead of assembly language. Look for the Novix in many
products in the future.
Comparing The Three
Each of the three approaches listed
above has strong points. While the
slowest and most memory wasteful,
FORTH in ROM can use available coprocessors such as the 8087, as well as
family members such as the Z80
DMA.
The microprogrammed FORTH
uses conventional techniques, with
arithmetic accelerator chips available
to speed operations. For example, the
NCR/32 has an accelerator that can
perform floating-point operations in
two clock cycles.
The FORTH processor has the most
potential in speed and compactness,
but may be more expensive, does not
have co-processors, and has limited
memory space.
Figure 1 shows benchmarks for the
three reviewed systems as well as two
common computers. Read my earlier
columns on benchmarking for information about the individual tests. The
H4TH compares favorably with the
VAX, though the latter is a 32-bit
implementation.
For further FORTH engine references, see The Journal of FORTH
Application and Research (v.2 n.l
1984) and A Bibliography of FORTH
References (1984), both available from
the Institute for Applied FORTH
Research, Inc., 70 Elmwood Ave.,
Rochester, NY 14611.
Of all the high-level languages currently in vogue, FORTH appears to be
the one targeted towards hardware
implementation; It behooves you,
therefore, to get familiar with the
language before your boss tosses a
(continued next page)
63
FORTHwords ___________________________________________________________________
(continued from page 63)
chip on your desk with the comment,
"Have this project ready for me
tomorrow. "
The Rockwell Chip
Rockwell introduced the 65F11 microcontroller chip in 1983. The chip
includes a serial port (up to 7200 baud
at 1MHz clock and 9600 baud for the
2MHz chip), two 8-bit parallel ports,
counter/timers, 3K bytes of masked
ROM, and 192 bytes of RAM. It can
address up to 16K bytes of external
memory directly, or one of the parallel
ports can be used to bank select into a
much larger memory space.
The unique feature of this controller
chip is the tiny FORTH that resides
in the ROM. Its 133 words can be
used as-is, with a primitive micromonitor or "outer interpreter" that understands numbers and can execute
Figure 1 - Benchmarks
Test
T1 (loop)
T2 (I+-)
T3 (I-I)
T4 (@I)
T5 (C@,Cl)
T6 (D+)
T7 (tlt,tix)
T8 (F-)
T9 (FI)
T10 (F+)
T12 (sqrt)
T13 (log)
T14 (exp)
T15 (atan)
T16 (sin)
T18 (amove)
Sieve
VAX
111750
5.0
17
6.3
18
19
15
9.7
16
22
16
56
113
72
64
90
95
7.1
H4TH
Engin~
4.6
15
217
10
13
49
212
1652
1534
645
12520
12660
15250
59140
22740
4.0
words. The 65F12 is functionally identical, with three additional 8-bit parallel ports.
You can implement a working
65F11 system with just the chip, a
Vesta
SBCS8
55
127
220
115
118
102
100sq
65F11
130
560
5790
333
293
280
1026
55
4910
Sampler
IBM PC
24
92
152
75
75
59
630
927
2711
525
13880
46280
33550
50910
36660
844
32
TTL latch, and up to 1K of EPROM.
However, the more normal development configuration includes Rockwell's 8K byte development ROM,
providing 200 additional words includ-
New 64K SBC
Only
$375.
4" x 6"
!!FREE!!
FLOATInG-POInT FORTH
Interested in having a FORTH-83
implementation with a video editor
and an assembler.
that will do floating-point arithmetic?
now you can have such a system for your
IBm PC or Z80 CP1m computer for free I
Look for the public domain UnIFORTH Sampler on
your local BBS, or send us just $35 for the latest disk
version in your format. The Sampler is a subset of
our more powerful Professional Series (available
for most processor/operating system combinations).
It won't cost you a penny to try UnIFORTH and see
for yourself the power of the FORTH language II
Call or write for our free 20-page catalog.
uniFIED SOFTWARE SYSTEmS
P.O. Box 2644, new Carrollton, mn 20784
(301) 552-9590
•. Requires no terminal. Includes
Video Controller and CP/M® 2.2
• Runs any size floppy drive
• Substantial OEM Discounts Available
Other models include Hard Disk
Controller, CP/M® 3.0, 128K or 256K RAM,
Time of Day Clock, E2PROM, Peripheral
Expansion
& RGB Color Video Display
.
.
64K sac Includes:
• 6MHzZ80B®
• Video Controller
• 2 Serial Ports
• 4 Parallel Ports
• 110 Expansion
• Source Code and
Drivers Included
• CP/M®2.2
CP/M is a registered trademark 01 Digital Research Inc.
Z806 is a registered trademark 01 Zilog Inc
Megatel Computer Technologies
Head Office and Technical Support Center
150 Turbine Drive, Weston, OntariO M9L 2S2
Telephone: (416) 745-7214 Telex: 065-27453 MEGATEL TOR.
U.S. Sales and Service Office
2311 South Anthony, Fort Wayne IN 46805
Telephone: (219) 745-0310
megate.
64
Micro Cornucopia, Number 25, August-September 1985
ing a line editor, an assembler, a
complete Fig-compatible FORTH system, and EPROM programming capability. The CPU/ROM set is easily
interfaced to a 1793 floppy disk
controller for mass storage.
NMI has incorporated the 65F11
into a tiny (100 millimeter square)
board of impressive power. In addition to the 65F11 and the development ROM, there are three RAM/
ROM sockets, RS-232 interface circuitry, and parallel port buffers. Only a
single 5V power supply is required.
One of the sockets can program 2764s
directly. The documentation includes
the 200+ page Rockwell FORTH
manual, data sheets, and a 33-page
hardware manual.
Rockwell has provided a useful set
of words in the development ROM.
You can target compile: headers can
be compiled separately from word
bodies. Only the bodies need be
burned for dedicated applications. Autoexecution of a word during startup
is possible by placing an A55A (hex)
pattern on a 1K boundary; the startup
software then assumes the code field
address of a word is in the next two
bytes and executes that word directly.
The ROM has all the normal disk
commands as well as the ability to
format a disk.
Both low- and high-level interrupts
are supported. A page zero location
contains an interrupt status word.
One bit is used for enable/disable, and,
1 bit indicates a pending interrupt.
The actual interrupt is processed by a
low-level word which sets the pending
bit. When NEXT is executed, it
checks the request bit and vectors to a
user-defined high-level processing routine. Anyone of 16 different interrupt
sources can be serviced, including
serial in/out, counter/timers, etc.
The memory sockets are mirrored so
they appear in more than one place in
the memory space. This permits developing code at one location, burning
the PROM, and then relocating it at a
different address either by physically
moving the EPROM or by changing a
jumper.
How The System Rates
I like the BASIC system. In a small
space you have enough interface to
the outside world to perform many
dedicated control tasks. The built-in
kernel provides run-time support, so
you can pack considerable code into
the external memory. Therefore, as a
controller the card has potential.
As a development system, however,
it is greatly lacking. It doesn't have a
good line editor, much less a video
editor. You would have to purchase
the $340 development board to have
(continued on page 67)
The
ConIX LibraryTM
Volume 1- XCC Utilities
NOW ONLY $79.951
If you think you're missing out on innovative software
developments because nobody is writing for CP/MTM-80. take
a look at us. We've adapted UNIXTM features to CP/M like
never before. and with the kind of ~rofessional. 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).
I>erfected User Areas. Command and Overlay 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 mods!
The ConlX package lists at $165 and has been advertised and
sold internationally to many enthusiastic customers since
October 1983. As a special limited offer. we've lowered the
price of the complete ConlX system by 50% to only $79.95!
Don't miss this opportunity to bring your 8-bit micro back into
the software revolution. Order your copy of ConlX today!
Price includes manual. 8" disk. and user suWort. 51.4" conversions
available. Contact your local dealer. or buy direct and add shipping:
$4.50 UPS. $10 Canada. $25 overseas. NY residents add sales tax.
~
Computer Helper Industries Inc.
P.O. Efox 680 Parkchester Station. NY 10462
Tel. (212) 652-1786 (for information/orders)
"We 're he/ping your computer work better for you!"
UNIX: AT" T Bell labs. CP/M: Dicital Research. ConIX: COIJ1)uter Helper Ind.
Micro Cornucopia, Number 25, August-September 1985
The ConlX library is a collection of software designed eX,clusively
for use with the ConlXTM Operati~g System. Volume I contains
over 20 utilities written in the ConlX XCC Language. such as:
• MKDIR. RMDIR. CD. PWD. LS: Uses user areas to implement a
complete hierarchical directory structure using pathnames.
• D. DSH: Use pathname arguments with existing software.
• MKUSER. CU. PWU: Similar to the above. assigns a meaningful
user-supplied name to any user area number.
• CHMOD: Change file mode settings and attribute bits.
• DEBUG: Interactive Debugger provides access to memory for
program devel~pment. Loads Without modifying TPA.
• MV. CPo LN: Move and copy multiple files between user areas
and disks and link files to share data on the same disk.
• PR: Prints files with pagination control. descriptive page
headers. line and page numbering. and single sheet feeding.
• REVIEW: Processes files to optionally be examined. erased. or
renamed. Very useful for cleaning up clutter in directories.
• SPLIT: Split a file by lines or bytes Into multiple files.
• UNHI. XTABS: Stril! hi-bits and expand tabs In files.
• TYP: Powerful TYPE replacement allows you to view. print.
and search through all or part of a file with auto ~age-pause.
• UNERASE: Menu-driven utility finds all erased files on a disk
and allows you to examine their contents before restoring.
The ConlX LIbrary I
LIlt: $50
Price includes ma.... at. 8"' <lsk. fully conmented source code for all
utilities. and user support. 5JJ4" conversions available. Contact your local
dealer or add $2.50 UPS. $10 foreil'1l. NY residents add sales tax."
Another fine product of:
~
Computer Helper Industries Inc.
P.O. Efox 680 Parkchester Station. NY 10462
Tel. (212) 652-1786 (for information/orders)
ConlX and The ConlX library are tr.demarits of COIJ1)uter Helper Industries Inc.
65
t\ rt (~S7
VVVV
component supplV. Inc.
Hours: 10:00 am - 5:00 pm I MON-FRI
1771 Junction Ave. • San Jose, CA 95112. (408) 295-7171
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 $95.00
MISC. ITEMS
At Illstl here is a chance to purchase a hard disk for your system at an affordable price.
We recently 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. (SEE BELOW)
TELEVIDEO 806 Boards - for Startype Televideo
Network or stand alone CP/M system.
$25.00
As is
$125.00
Working without LSI parts
$295.00
Working with all parts
Service manual $ 35.00
Users manual $10.00
Performance Specifications
Formatted (33 sectors track)
Per Drive
5.40 Mbytes
Per Surface
1.35 Mbytes
Per Track
8.45 kbytes
Per Sector
256 bytes
5.0 Mbits sec
Transfer Rate
Access Time
Track to Track
16.2msec
Average
99msec
Maximum
215msec
Average Latency
8.33
12sec
Start Up Time (Tvp)
MOTORS:
TRW 403A 117-3,24 V, 5600 RPM
Canon EN35-T101Z1A, 12VDC,
3400 RPM, 12 g/cm, 110 rna
Functional Specifications
Cylinders
Tracks
RWHeads
Disks
Index
160
640
4
2
1
DC Voltage Requirements:
+ 12Vdc ± 5% 1.8 A typical
(4.0A max. starting for 6 sec.)
+ 5Vdc ± 5% 0.9A typical
. (1.5 A max.)
Ask about quantity pricing.
DISK DRIVES:
TEAC SD510 Half height 10 megabyte requires
130W power supply for IBM PC
$410.00
NEW Microscience HH612 % ht. 10 megabyte $465.00
NEW Microscience HH725 % ht. 20 megabyte$595.00
NEW' Tulin Tl226 half ht. 20 megabyte
$630.00
SURPlUS Tandon TM 55-2, .5 %n, double sided,
4STPI40 track, 6 msec. track to track* $ 90.00
SURPlUS Shugart SA455, 5 %, half height, 4STPI,
40 track, 6msec., tracktotrack, dbl. sided $ 90.00
NEW Remex % height with full height face
plate,4STPI,40 track,doublesided. May
be used in place of TM 100-2*'
$ 80.00
NEW Shugart SA455 I Panasonic JA551/2N
5 %n, half height, 4STPI,
40 track, 6 msec., double sided. *
$124.00
NEW
NEW
NEW
NEW
NEW
NEW
TEAC FD55B half height, 4STPI, 40 track,
6 msec., double sided. Power: + 12V@
.25Atyp., +5V@.3SAtyp.*
$139.00
TEAC FD55F, half height, 96TPI,
$169.00
SO track, double sided
TEAC FD35F, 3%", SO track,
$195.00
135TPI, double sided
$250.00
DTC Hard Disk Controllers for PC
Xebec S1210A hard disk controller for
IBM PC
$250.00
* All drives with asterisk are compatible with the IBM peTM 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.
POWER SUPPLIES:
130W power supply, IBM PC compatible $140.00
I.C. 's:
Available for immediate delivery F·8
SingllChipMicrocomputer
PAL16l8
PA116R4
1.00
PAL12l6
PA116R6
1.00
APCEK88
Op 05 Proe. Op Amp
Op 08 Proe. Op A"",
10101
10158
1.00
10102
10160
1.00
10104
10161
1.00
10106
1.50
10162
10110
10101
1.50
10113
10112
2.00
10111
2.00
10115
10121
10116
2.00
10180
10130
2.00
10182
10132
2.00
10133
10191
2.00
10134
10212
2.00
TID 126
TI .. I "'"I.
Intoeh AIO Con.
110
TIL 111
Opto.lsoIltor
TIL 156
16K SlItic 55 n•.
1400S
HP1468FP
R.T.Clock & RAM
1488
RS232 Driver
RS232 Roetiver
1489
TIL 156
AF 132CJ
Nan Modem Filter.
18S030
3218 Prom
Floppy Support Logic
W01691
1102
25618 1m. EPROM
'Ioppydi.kcontroll.r
1193·02
2016f.1
2K.8 Static 10nl.
Sprigul
ULN2032A
210H
1.50
2101·2
21F02
1.50
2108·21A6l1
2108·4
2104
1.50
WD2143
Four Ph.I. Clock Gonerltor
KR 2316ST
SMCklvbd.oncodor
P 2405
Intol
25LS2513
2.50
25LS2530
25lS30
2652A
Communications Circuit
26LS30
RS4230riv.r
2513·001
SCN2652A
Signetic.
2108
102418 EPROM
2116450 ns
2116·1350ns
TMS2116450ns
2164
2132
4.00
21C64 250ns. pulll
21128300nl
".00
1.00
1.00
5.00
2.00
2.00
2.00
2.00
2.00
2.00
2.00
2.00
2.00
2.DO
2.00
2.00
1.00
1.00
1.00
4.00
2.00
1.00
1.00
1.00
5.00
2.50
1.00
1.50
11.00
3.50
1.00
1.50
1.50
1.50
1.00
10.00
2.00
2.50
1.50
'.00
3.00
'.00
15.00
2.50
3.50
4.50
3.50
4.00
1.50
13.00
1024 1 8 EPROM 54 only
3.50
2158
TronsistorArr.y
2.00
UlN2815·2
2901
bitsUclmicroproclssor
3.50
lM304
Adjuillbl. Neg. Volt. Reg.
1.50
lM3046
1.00
IrltoehChop/Amp
AJ0418
CA 3015 FM dtoetor. lim .•• udio preamp 5.00
CA 3082 1HLCur.NPNTr,,"i"torsCom.CoIL 1.00
lM 309H + 5V 200 m•. Volt.gl Regulltor 1.50
lM 310N
linl" Follower
1.50
CA3240
2.00
CA3130
1.00
LM339
LinollCGrnpalltorauad
1.00
IEEE4880river
MC3446
3.00
OS 3486 Four Thr. SII1I422/423 Roeeiver 3.00
OS 3481 Four Thr. Stili 422/423 Roetiver3.00
4N31
4N26
1.00
1.00
4K.l 200 NS
MK4021N·3
1.50
4.00
TMS4045·20NL
.10
4116200nl
1.10
4164 200nl or 'ISter
41256
US
256KI1 200nl or 'ISter
RM41360C
auad Lin.ar Op ~mp
1.00
14516 Harris 1.25
14412
11.00
4528
14539
1.50
1.00
145538
5.00
4529
1.00
UCN 4810A 10bit Fluorolcont Di •. Oriv. 2.00
TL 494CN Switching Regulator Circuit 3.50
AnlloglSwitch
2.50
5011
COM 5016 15.00
COM 5025
15.00
MM 5204
EPROM
1.50
anlloglwitch
MM 5520
2.00
MM5314
Clock Circuit
4.50
MM5316
Clock/Watch Circuit
4.50
Clock Circuit
MM5318
4.50
MM 5330
•. 00
MMS310
1.00
MM 5315AA
4.50
MM 5315A8
4.50
8K 1 8 Static 150n.
10.00
5565PL·15
NE585·9 FI. Dilpl.y Driver
1.00
1.00
NE592A Ampli'ier
6116LFP·3 2KI8 Static Flat Pack 150n. 2.00
6264LP·1281C.8S.II. 120n. TII.tdIOt.oldoredl.OO
6522A
Periph.lnter',cIAdapl.
1.00
6545Al
CRT Controll.r
11.00
6845
6800t
2.50
12.00
16bitNirtu.,Mlfll(;ry
35.00
68010L8
6810
128.8 SuticR.m
1.50
68A21
2.50
6802
1.00
3.00
6850
68450·8
DMAControlier
130.00
8u. Arbitlltion Modul.
21.00
68452
MC68661
Com.lnter'.c.
'.00
GraphicI Controller
31.00
1220
14116
14HC161
1.00
1.50
14150
14HC163
1.00
1.25
14HC114
1.00
14159
1.50
14HC115
1.00
14181
2.00
$1.00
STEPPER MOTORS:
Copal Electric SH-65, 40 60n, 12 V, 1.80
Head positioning motors for
Shugart 8" Drives
$7.50
AC ADAPTORS:
Viewsinics VSADP-20, 9 VAC, 150 rna
Basler Electric BE24V20, 24V, 20VA
$2.00
$2.00
$2.00
LCD DISPLAYS:
Toshiba LT 8026-35, 16 Line X 46 Column $7.50
DOCUMENT CARRIERS,
$1.95
2-pocket leatherette 8 %"x11
SPEAKERS,
Matsushita EAS4P15SA, 8n, 1-5/8" 15/$10.00
TERMINALS, Wyse 100
MONITORS, Osborne 5" Green Screen
$195.00
$35.00
CAPACITORS, .1 uf monolythic caps. 100/$ 8.00
1,000/$60.00
A.C. ADAPTORS:
9VAC 150ma
24VACSOOma
$ 2.00
2.00
4" SOLAR CELLS, 1.5 Amp minimum
at .45V Closed Circuit
$
GAVILAN PARTS:
Upgade of Sline to 16 line unit
32K RAM Capsules
64K RAM Capsvles (no plastic)
Thermal Paper
$200.00
30.00
75.00
3.50
3.95
Call for availability of 3 Y1" and 5 y." drive expansion units.
and many others.
14198
14HC213
1.25
1.50
14251
14HC314
2.00
2.50
14lS141
14390
2.00
1.00
14COO
14lS181
1.00
2.00
14C154
14LS189
2.00
8.DO
14lS244
14C193
2.00
.50
14lS259
14C89
2.50
4.D0
14FOO
14lS213
1.00
1.25
14F08
14LS280
1.00
1.50
14F14
14LS299
1.50
1.00
14LS366
14F151
1.50
.40
14LS314
14F280
4.00
1.00
14LS311
14HCOO
.50
1.00
14HC08
14LS319
.50
1.00
14S14
74HC20
.50
.50
14HC125
14S313
2.00
1.00
14S314
2.00
14HC148
.90
51214Prom
2.50
14S511
15491
1.00
15235
1.00
15494
1.00
5·1 OW Pwr. Amp.
4.00
SN 16005NO
1611·5 2&6.4 Prom
4.50
3.50
16411
Floppy ConI.
165A
11.00
10.00
DAC80
8Mhz16bitCPU
B5.DO
C801863
2.50
8031
21.00
8080A
18.00
8086
22.00
8088
Ram I/O. Timer
1.00
8155
1.25
81LS91
Octal 3 Ita" buffer
10.00
8202
8218
15.00
8284A
5.00
8212
1.00
8216
8286
1.00
1.50
8251
8292A
14.00
4.00
2.50
82S123
8253
1.50
825130
3.50
1.50
8253c.5
82S131
3.50
8255
4.00
82S141
3.50
8259
1.00
82S185
3.50
8215
21.00
82S16
3.50
8231A·5 11.00
32.8Prom
2.50
82S23
8304
82S90
3.50
1.50
Poly. Gen.
10.00
MC8506
8155
20.00
8141
21.00
.50
8T09
Dau s.p.lPrecomp.
9.00
FDC 9229
9502DC Fairchild 1.00 95030C flirchild 1.00
9534
Fairchild
1.00
Flirchild 1024.4 Prom
4.50
93453C
99864
96L02
1.50
T1
1.00
l80SI0 IMK38811
Mostek
B.OO
l80 CTC IMK38821
Mo.tlk
1.50
Mostek
1.50
l80 PIO IMK38811
l80 CPU IMK38801
Mostek
1.50
l80A SID/2
1.00
l80A CPU 2.00
l80A CIO
l80ADMA 1.00
11.00
l80A OART
l80A SIO/O 9.00
HO
4mhz.Paralioili0
3.50
l80A PIO
l80H CPU 8mhz. CPU 20.00
l80A CTC 3.00
$7.50
DATASPEC IIXP Series"
DATA SWITCHES
25 PIN RS232
• All pins switchable. Can be used with IBM PC parallel port.
• DB 25-S(female) connectors with gold plated contacts
AB-25 $57.00 ABC-25 $99.75
36 PIN CENTRONICS PARALLEL
• All 36 pins switched
• Female centrqnics connectors with gold plated contacts
AB-36 $95.00 ABC-36 $142.50
COMPUTER COMPUTER
COMPUTER
COMPUTER
Typical
Applications
PRINTER
MODEM
PRINTER
,FORTHwords __________________________________________________________________
(continued from page 65)
disk access. The 8K development
ROM leaves only half of the 16K byte
external memory for your program.
The 65F11 is BASICally a 6502
processor, and at 1MHz it's quite
slow.
I'd suggest using a host computer
to perform development and editing,
and then downloading to the 65F11 to
test. Note that the built-in micromonitor provides debug capability at the
customer's site with only the addition
of a serial terminal. Without case,
ROM, or power supply the system can
be purchased in quantity for $150 or
less, providing high-level control for a
custom proj ect at low cost.
'100 squared'
New Micros, Inc.
808 Dalworth
Grand Prairie TX 75051
214-642-5494
Bare board: $38
BASIC system: $250 (65Fl1) $290
(65F12)
Development system: $340 (65F11)
The Vesta SBC-88
The SBC-88 is an example of a small
single-board computer that has sufficient EPROM space to incorporate an
extensive FORTH, BASIC, or other
ROM-based high-level language.
Its 5.5x6.5" footprint includes: a
4MHz 8088, 8 or 16Kb ROM, four
additional memory sockets for up to
32Kb RAMIROM, an RS-232 serial
port at up to 9600 baud, two 8-bit
parallel ports, seven individually addressable inputs and seven outputs,
and an 8-channel AID (8 or 10-bit).
One of the RAM sockets includes
provision for programming. The sockets support 2Kx8 or 8Kx8 RAMI
EPROM devices. The AID is a National ADC0804, and has a maximum
conversion speed of about 200 microseconds. The optional power supply
includes a reset button, EPROM programming voltage, BSR transmitter,
and a 120Hz clock signal.
The board comes with 10 pages of
hardware description and a schematic.
I really like the BASIC board, and
think it's one of the best bargains in
the controller market. However, I
have several complaints about the
hardware.
The I/O and serial cables use DIP
connectors instead of the usual dual
in-line headers. In addition, the DIP
connectors aren't on the edge of the
board, but instead form the second
row of sockets. The EPROM socket
isn't Zero Insertion Force (ZIF). Power is always present at the programming socket, so you can't copy an
EPROM to RAM, remove it, and
program a duplicate (you usually
destroy the program). Ground is not
available on the parallel port DIPs.
Instead, you must run a separate lead
(why use a socket at all if this kind of
kludge is necessary?).
Two different ROM operating systems were available at the time I
wrote this: an 8K BASIC and an 8K
FORTH.
BASIC Vrs. FORTH
Vesta has spent more time on the
BASIC ROM. It includes a primitive
download capability as well as Intel
Hex file support, printer toggle, timer
wait, autostart, line editor, EPROM
programming, period measurement
from an input port transition, and
buffered AID collection. The AID data
can be plotted using crude character
graphics on the console or printer. The
documentation is 32 pages of function
description plus a partial listing of the
BIOS.
The FORTH ROM is quite primitive, supporting the Fig model with a
full line editor, EPROM programming
capability, and AID input words. Its
documentation consists of the FigFORTH vocabulary list, a few pages
of supplemental words, and a partial
listing of the BIOS.
We used the FORTH to develop an
automatic power line monitor for a
customer and were frustrated at every
tum. There are several bugs, such as
the lack of printer toggle, ordering of
timer words not following their double-precision integer convention, incor:'
rect rotation of the eight 128-byte
block buffers, and documented words
Micro Cornucopia, Number 25, August-September 1985
that were missing from the ROM. The
Fig line editor is clumsy when you are
used to a video editor. The 'C' command will insert unwanted nulls into
blocks.
After a few weeks, we quit using the
SBC88 as a development board. Instead, the source code was developed,
edited, and tested on a host computer
before downloading to the SBC88.
This method worked well enough to
get the project out the door. The serial
line is preset to 4800 baud at powerup, but when using FORTH we had to
slow the baud rate down to 1200 to
prevent character loss.
Deciding
If I had to choose between the
BASIC and FORTH ROMs I would
take the BASIC because of the additional functions. Its major deficiency
is the usual slowness of BASIC, which
can be important in controller applications. However, I like the board, and
the price is right.
I've made arrangements with Vesta
to distribute a specially configured
UNIFORTH in place of their FORTH
ROM. The SBC88 UNIFORTH is
FORTH-83 Standard and includes a
video editor, assembler, download,
autoload, printer control, timeldate
stamping, floating point, buffered AI
D, and primitive graphics (amazing
what you can fit into 16Kb when you
try!). We've also included a 200-page
manual. Check with Vesta for availability and pricing.
SBC-88
Vesta Technology, Inc.
7100 W. 44th Avenue, Suite 101
Wheatridge CO 80033
303-422-8088
Socketed board: $79.95
Full board: $169.95
Board wloperating system: $279.00
Power supply: $79.95
H4TH By Hartronix
As you might expect from the price
differences shown' below, you are iIi a
different ballpark with the H4TH
(continued next page)
67
FORTHwords __________________________________________________________________
(continued from page 67)
system. The basic 6.6xl1.0" board
includes the microprocessor, 32Kb
RAM, calendar/clock, two RS-232
ports (to 38.4K baud), a floppy disk
controller (supports two 800Kb 5"
floppies), and a 500K baud high speed
serial port. The optional case/power
supply/floppy combination includes
three expansion slots for more memory, serial channels, or CRT controller.
The system is well built though
definitely utilitarian. The box won't
win any designer awards, but everything fits well. A 2" ring binder
contains the hardware and software
documentation. My system came with
preliminary documentation that was
not user-friendly, but was almost
useable if you were a proficient
FORTH programmer. They have recently hired a technical writer and
promise better documentation Real
Soon Now.
The H4TH engine is a 4-bit processor that executes FORTH as its
native (microprogrammed) instruction
set. I t is fast, as shown in the
benchmarks, executing FORTH as
fast as a VAX 111750. It can run the
Sieve benchmark as fast as the IBM
PC can run optimized assembly language. Since the processor is microprogrammed, they have included a
virtual computer that looks like an
expanded PDP-II (if you wish to use
assembly language instead of
FORTH). They also provide an assembler to create new microprograms for
the processor (to add new instructions).
The major hardware limitation is
that you are locked into their proprietary bus. They will provide interface
information so you can wirewrap your
own cards, but I doubt any secondsource manufacturers will enhance
Hartronix's selection of peripherals.
Software
The software is impressive in some
areas, and deficient in others. You get
a full multi-user system, with memory
management, a breakpoint monitor,
tree-structured file system, local labels, and a line editor. Files are time/
date stamped, and have version num-
68
bers (though a new version overwrites
the current file).
However, the formatting program
supports only one format (presumably, so does sector r/w), so transporting software becomes more difficult.
No user protection is provided on the
formatter: no "are you sure" type
messages, and no indication of how
the formatting is progressing. An
optional floating point package is
available, but it needs work.
Perfect for the Beginner•••
Invaluable Teaching Aid•••
Quick Reference Guide for the Pro •••
AXXESS KEYBOARD TEMPLATES •••
• Improved Angle Reduces Eye
and Neck Strain.
• Windows Visually Organize
Commands for Quick Reference
• Larger, Easier to Read Type
• Most Frequently Used Commands
Listed First
• Created for Users by Users
• Easy to Understand English,
Not "Computerese"
• No special symbols or
Abbreviations to learn
• Examples Given in Key
Situations
• Immediately Provides Full Use
of Your Software
• Eliminates "MANUAL LABOR"
• Reduces Errors, Eliminates
Frustration, While Building
Confidence
AXXESS KEYBOARD TEMPLA TES ...
·Wordstar/Mailmerge/Spellstar
- Perfect Writer/Filer/Speller
-Perfect Calc
·dBase II
-M Basic
$14.95
-CP/M-80
VV-~ J::i J::!._TM
- - 8.AA.VCJeJ
The right
command
every timer
YES!
Please rush
my order!
Save COD charges by enclosing your
check or money order, or use
your Diners Club or Carte
Blanche Credit Card!
Name
Address
City _ _ _ _ _ _ _ _ _ St _ _ Zip _ _
SIGNATURE' _ _ _ _ _ _ _ _ _ __
CARD# ____________ EXP _ _ __
QTY DESCRIPTION
0
0
0
0
Check
Diners Club
Carte Blanche
M.O, 0 C.O.D.
Subtotal
6% CA Tax
C.O.D.
Shipping
Total
5.00
3.00
AXXESS SOFTWARE SUPPORT SYSTEMS
P. O. Box 40169
San Diego, CA 92104
(619) AXXESS·1
Micro Cornucopia, Number 25, August-September 1985
The TANI ARCTAN function has
bugs, the word set is not consistent
with the proposed floating point standard, numeric entry involves the use
of a separate exponent, and the IEEE
numeric format is not used. The Fig
line editor is usable, but a full screen
editor should be provided (all other
vendors do, and this is billed as a
development system). I never used the
virtual computer or the target compiler since no documentation was provided for these features.
Hartronix supports the FORTH-83
Standard for the most part. Their
division is floored - the first vendor
I've seen that really supports this
aspect of the Standard. Divide by zero
is trapped, but overflow is not. Stack
underflow is trapped, but words like
ROT that do not change the stack
depth will work even if insufficient
parameters exist. I was hoping a
microprogrammed system could implement proper stack error checking.
My major complaint with the software is that Hartronix has redefined
many standard words: CONSTANT
becomes CON, VARIABLE becomes
VAR, etc. They use word addressing
instead of byte addressing. This
means you get 128Kb address space
using a 16-bit FORTH, but must
kludge string and other byte-addressed operations.
I converted a word-addressed
FORTH on a PDP-II to a byteaddressed system and don't recommend the experience. You run across
many circumstances (such as 'I +
C@' and '1 +LOOP') where you
continually get burned in transporting
software unless you fully understand
both the source and destination systems, as well as what the application
does.
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:
If someone needed a high-speed
FORTH development system, or had
some application that needed the
multi-user features, I wouldn't hesitate recommending this system when the documentation is finished.
You may need to port your development tools (such as the video editor)
from your current system before much
programming is accomplished. I'm
harsh on the system because it has
great potential but hasn't reached full
maturity yet. Give this system another six months and it should have
excellent software and documentation
to complement the hardware.
H4TH Engine
Hartronix, Inc.
1201 N. Stadem Drive
Tempe AZ 85281
602-966-7215
Single board computer: $2000
Dual floppy system: $4200
Winchester system: $8400
Summing Up
I've examined FORTH engines in
general and three implementations in
particular. For compactness and low
cost, the ROM FORTH single-board
computers are good choices for dedicated controller and other OEM applications.
For situations where high performance is required, the microcoded
FORTH engines or the single-chip
N ovix are wise choices. Consider these
products in your next custom application. The ease of programming in a
high-level language will shorten the
development cycle and usually result
in a higher quality product.
•••
L-BAND SYSTEMS
1037 E. Lemon Ave.
Monrovia, CA 91016
(818) 357-0566
'Not available for export.
Micro Cornucopia, Number 25, August-September 1985
69
Pascal Procedures
By John P. Jones
In this column I'll give you a few
pointers on pointers. Actually, it'll be
more than a few pointers - we're
going to wade right into this nontrivial subject. As you'll see, pointers
can be a very powerful tool, but a lot
of people don't use them because they
don't understand them. We'll begin by
looking at allocation of variables, and
then we'll see what that has to do
with pointers.
Static & Dynamic Variables
Variables declared in the PROGRAM section and in non-recursive
procedures are static variables. This
means their storage is allocated and
fixed at compile time. Two mechanisms are built into Pascal for creation and use of variables at run time
- recursive procedure calls and dynamic variables.
Procedures compiled with recursion
enabled will, when called, generate
new copies of their internal variables
on the recursion stack. On return from
the procedure, their space is released
for other use. This is all transparent
to the programmer and application.
Pointers
The other mechanism for run-time
variable allocation involves pointer
variables.
A pointer is a variable which contains the address of a variable instead
of the data itself. Pointers are declared by prefixing the pointer character ('A ') to a variable type.
type
strarray = array[O •• S] of str1ng[16];
1ntptr = ~1nteger;
aryptr = ~strarray;
var
dynint : 1ntptr;
Pointers can be assigned and compared in much the same way as other
variables. The primary function of
pointers, however, is to allow for the
creation and use of dynamic variables.
Free memory is assigned to the heap,
and this area is available for newly
created dynamic variables. The statement:
new ( dynint) ;
70
6245 Columbia Ave.
St. Louis MO 63139
will create a variable of type INTEGER on the heap, assign the integer's
address to dynint, and reduce the size
of the heap by one integer's storage
space.
dyn1nt--....->
I dynint A I
Dynamic variables are accessed by
using the pointer character as a suffix
to the pointer name. So the above
says that "dynint" is the address
while "dynint is the value contained
at the address.
A
"
type
lstptr
= A11st1tem;
11st1tem = record
itemdata : datatype;
nxt~tem : lstptr;
end;
var
root, item : lstptr;
we can construct a simple linked
list. The pointer root is our anchor on
the world, and it points to the start of
the list. The list is initialized with:
root := nil;
dynint A := 3;
other1ntvar := dynint A;
{nil is the predefined value for
a null pOinter }
and items are added in this way:
Two mutually exclusive mechanisms are used for de~allocating heap
space. Your compiler will have one or
both of them.
dispose(dynint);
Dispose is the complement of New
and will do what its name implies dispose of the storage for dynint .
The other method for reclaiming
heap space is called "Mark" and it
lets you mark a variable so you can
reclaim it and everything beyond it.
Hark(dynint) ;
This places a marker on the heap at
dynint 's position. Later, when the
statement: RELEASE(dynint) is executed, all space allocated from dynint"onward will be de-allocated. If your
compiler provides both methods, results will be unpredictable if you use
both in the same program.
If this were as far as the story went,
dynamic variables would not be much
more useful than statics. Since pointers can point to records and can also
be fields of records, uses for dynamic
variables are limited only by the
imagination.
Linked Lists
Given the following declarations,
and items are added in this way:
new('item);
{ create new var }
itemA.itemdata := data;
{ the field "itemdata"
in record pOinted to
by item is assigned
contents of data }
itemA.nxt~tem := root;
{ link to prevo data }
root := item; { reestablish anchor }
Singly linked lists as shown in
Figure 1 can be useful, but they have
disadvantages. First, the components
can only be accessed serially from the
previous item. Another disadvantage
is that insertions and deletions can be
cumbersome. Also, if you use a list
like this, all procedures that access it
must be sure to check for an empty
list.
The First Shall Remain So
By using an additional reference
pointer that always points to the
oldest item, a structure called a queue
is formed. See Figure 2.
In this example, items are added
using the pointer LAST, in a way
similar to the above for a simple list.
The additional factor to consider is
that the initial item should be added
with the pointer FIRST. Removal of
items from this queue can be done as
shown in Figure 3.
A queue is thus a first in, first out
structure, while the earlier simple
linked list is a last in, first out device.
Micro Cornucopia, Number 25, August-September 1985
Double Trouble
As mentioned above, insertions and
deletions in these singly linked lists
are cumbersome. At the cost of a little
more storage, doubly linked lists have
a much cleaner implementation of
these functions.
type
dblptr
Figure 1 - A four member linked list
root --->
1 data 1
--> 1 data2 1
--> 1 data3 1
--> 1 data4 1
--1
-----1 ------1 ------1 +---1-1
1 +--1----1
1 _1----1 nil 1
item --->
------
Figure 2 - Forming a structure
= ~db~tem;
db~tem
var
first, last : lstptr;
= record
data : datatype;
before, after : dblptr;
end;
V
1 xxx
--> 1 xxy 1 --> 1 xxz 1 -> 1 xyy
----1 - - - 1 -------- 1 ------_1--1 _1-1
1 +--1--1
1 nil 1
root, crnt, nxt : dblptr;
(continued on page 73)
1
1
V
var
With these declarations, each list
item has two linkages to the other list
items. BEFORE, the backward pointer, points to the preceding item, while
AFTER, the forward pointer, points
to the succeeding item. If the forward
last
first
Figure 3 - Removing items from a queue
item := first;
{ retrieve item}
if first <> nil
{ it list not empty }
then begin
first := first~.nxt~tem; {make the second first}
if first = nil then last := nil; {executed if list now empty}
end;
·I..U·~;\~~I:I~I5Il~()·I!t~~~~~
,witIrRe."cfl'.tO,,;~~8(j,
":.M.~C)r~.\As$embler.· .
. ~FR6M:uMITEK:<
"
It's a real bargain! Here's why:
• Only $49.95 plus shipping
• Phase/dephase
• Separate data, program, common
• 8080 to Z-80 Source Code
and absolute program spaces
Converter
• Generates Microsoft compatible
• Customize the Macro Assembler to
REL files or INTEL compatible hex
your requirements with installation
files
program
• Compatible with Digital Research
• Cross-reference Generation
macro assemblers MAC & RMAC
• Z -80 Linker and Library Manager
• Generates Ditigal Research
for Microsoft compatible REL files
compatible SYM files
available as a total package with
• Full Zilog mnemonics
Macro Assembler for only $95.00
plus shipping
• INCLUDE and MACUS files
• Conditional assembly
Micro Cornucopia, Number 25, August-September 1985
71
MONITORS
I.C.'S
MODEMS,
Z-80 Support System
1- ZSOA CPU
1- ZSOA PIO
1- ZSOA SI0/1
1- ZSOA CTC
1- 2764 Eprom
$15.00 per set
Rixon T212A
300/1200 baud ,direct connect
BeH' 202 cOmp ~ R8-232, '
modular connect to phonellne
auto ana/orlg. ,- self test
$199 .. 00
12- - hi res - 1SMhz
SO' x 24 chars.
composite video
RCA video cable included
completely refurbished
wlnew CRT
mfgrd. by BMC
video thru port
$65.00 green phos (P-31)
$55.00 B&W (P-4)
Eproms
270S
2716
2732
2764
2664
POWER SUPPLY
w/case-fan-AC cable
onloff switch
9 L x 4 1 /,2 W x 3 112 H
single board
5 VOC 5amp
-5 VOC .5amp
12 VOC 2.5amp
-12 VOC .5amp
, $40.00
(pulls)
(pulls)
(new) Hitachi
(pulls)
(new) T.I.
2/$1.00
$1.00
$3.50
$2.60
$4.00
Memory
4164 - Mostek - 150ns
$30.00/Tube (27 pcs.)
4164 - Mits. - 150ns
$40.00/Tube (25 pcs.)
4164 - Inmoss - 100ns
$35.00/Tube (25 pcs.)
CABLES
IOS20/10S20 - 3' $4.00
10826/10826 - 6' $6.00
IOS34110834 - 2' $6.26
108601l0S50 - 5' $10.00
10826110E26 - 6' $7.75
10826/0B-25 - $10.00
OB-25(m/m) 25' std. serial
pins 1-S,J 5, 17 ,20J 22..l24
$10.00 ea. 3/$20.0u
parallel printer cablA
for IBM & compats. - 6'
$20.00
1S pin LP sockets 10/$1.00
2S pin Lf' socket. 15/$2.00
9- - hi res. - 1SMhz
SO x 24 chars.
composite video
RCA video cable included
completely refurbished
wlnew CRi
steel csse
video thru port
$45.00 B&W (P-4)
MISCELLANEOUS
FANS
3- - new - 12VOC $S.OO
4- - new - 115VAC $6.00
3- - rfe - 115VAC $3.00 ea.
6/$15.00
4- - rfe - 115VAC $3.00
6/$15.00
PRINT WHEELS for:
Qume 9/35. 10/35, 10/50. 11/40
Xerox 1700 series
Diablo 1600 series
PowerType
20 fonts available - call
$4.00 ea. 3/$1 0.00 12/$35.0~~
minimum order $10.00
single board switcher
S 1/4L x 4 1/4W x 2 114H
mfg. by Boschert
5VOC 5amp. 12VOC 3amp
-12VOC 1.2amp. 24VO(,. 2.6amp
brand new
$40.00
Used units
refurb & tested
mfgd. by North
115/230 VAC - 50160 cycle
320 watts
S-L x 15-W x 5-H
12VOC 3Amp. -12VOC 2Amp
5VOC 25Amp. -5VOC 4Amp.
case & AC cable
$55.00
'ea.
Shugart SOO-2
refurb & tested
$75.00
SSIO'O
MPI BRSAS-A
08/00
Shugart SOO series compo
refurb & tested
$125.00
SELECTRONICS
Dealers in new & r,efurb
electronic equiplT~ent
1229 S. Napa St.
5 1/4- DISK DRIVE
Tandon 100-4
OS/OO - 96 TPI
$ le50.00
w/o case
$380.00 ...; 2 drlv•• In
8" DISK DRIVES
Phila.,Pa. 19146
215-468-4645
a case
sorry no c.o.d •• s
RBBS 215-46S~S4S7
Vi sa & Mastercard accepted
~II
prices f.o.b. our plant
PASCALPROCEDURES _____________________________________________________
(continued from page 71)
pointer of the last item points to the
first item, and the backward pointer
of the first item points to the last
item, you get a doubly linked ring. An
empty ring can be defined as a single
dummy item with both forward and
backward pointers pointing to itself.
See Figure 4 for a doubly linked ring.
To insert nxt after crnt:
nxt~.after
:=
root
1
V
.--> 1 +---1-------> 1 +----1----> 1 +---1---.
1
1----1
1----1
1----1
1
1 <------1---+
1 <----1---+
1<-. 1
1 .--1--+
_
_
1
1
_
_
1
1
_
_
1
1
1
1
1
1
1 1_________________________________________________ 1 1
1
1
crnt~.after;
{ nxt's forward := crnt's forwrd
nxt~.before := crnt;
{ nxt's backward := crnt }
crnt~.after~.before := nxt;
{ crnt's successor points to nxt }
crnt~.after := nxt;
{ crnt's forward points to nxt }
To insert nxt before crnt:
:= crnt;
{ what comments would you make?
nxt~.after
nxt~.before := crnt~.before;
crnt~.before~.after := nxt;
{ field "after" in record pOinted
to by "before" in record pointed
to by "crnt" is assigned nxt }
crnt~.before
Figure 4 - Doubly linked ring
:= nxt;
DeletIons are even simpler. To delete crnt:
crnt~.after~.before
crnt~.before~.after
:= crnt~.before;
:= crntA.after;
Since a ring has no ends, when you
traverse a ring, you have to remember
where you start.
nxt := crnt~.after;
while nxt <> crnt do
begin
processJtem;
nxt := nxt~.after
end;
Trees
When a record contains multiple
pointers to other records of the same
type, a structure called a tree can be
formed. If the tree is constructed
(grown? no, groan) so that each node
can point to two other nodes, left and
right, the result is a binary tree.
If the insert procedure is written so
that the new item traverses the left
branch if it is less than the current
node's data or the right branch if
greater than, a binary search tree is
formed. One important characteristic
of a binary search tree is that a
traversal that always visits the left
subtree, then the node followed by the
right subtree will yield an ordered
(sorted) sequence of data.
Caution: If the data is entered into a
binary search tree in ordered sequence, the result is a linear list. For
optimum results, the data should
come in randomly.
Homework Assignment
Pull out your favorite Pascal text
and use it to expand on this brief look
at dynamic data structures - they are
one of Pascal's greatest strengths.
Especially when working with lists
and trees, it is very helpful to draw
pictures and diagrams. They will often
make the difference between "I don't
understand" and "Gee, that's clever."
Turbo Power
Shortly after sending in the column
for issue 24, I received a copy of
Turbo Power! for review. This utility
is written in Turbo Pascal and can be
either run standalone, or from within
Turbo with the eXecute command. TP
provides facilities to compare, copy,
rename, delete, and type files or
groups of files. If you are running
o
/ \
/
type
nodeptr
o
= ~node;
node = record
data : datatype;
left, right : nodeptr;
end;
\
0
/ \
\
000
/
/ \
/ \
o 000 0
Example of Binary Tree
Micro Cornucopia, Number 25, August-September 1985
standard CP/M 80, TP is well worth
the $25 price. On the other hand, if
you have ZCPR2 or ZCPR3, most of
the facilities are available as transients which can be run individually
with the eXecute command.
Installation is simple, and necessary, since the program is highly
screen oriented in its operation. For
the version I received, Turbo version 2
was required to install the program,
since my modified Big Board terminal
software did not match any of the
terminals in the standard installation.
Once installed, TP will run under
Turbo version 3.
The program works as stated in the
ads and documentation, and I found
only one problem with it. If the
overlay file, TP.OOO, is not on the
currently logged disk, the program
will abort when some functions are
attempted. It could have been written'
to check for the overlay file's absence
and lock out the functions that need
it.
The seven-page manual is sufficient,
since on-screen instructions are clear
and most of the commands are either
obvious or logical. The few places
where additional detail is needed are
covered in the documentation. I would
suggest some expansion of the manual
for novices to CP/M, especially on the
subject of wild card characters.
The program is well thought out,
and provides most of the 'bells and
whistles' that previously would have
required leaving Turbo. Recommended.
Turbo Power! is available from:
Pascal Power!
5666 La Jolla Blvd., Ste. 136
La Jolla CA 92037
•••
73
Turbo Memory Assignments
By James R. Shiflett
PO Box 1236
Stafford TX 77477
In the April 1985 issue of Micro C,
Tom Geldner mistakenly stated that
programs written in Turbo Pascal for
CP/M 80 cannot dynamically adjust
their memory usage to match the
computer's available memory.
While it's understandable that Tom
would believe this, especially in light
of the fact that even Borland's technical support staff know of no solution,
it is nonetheless quite false. The
Turbo reference manual explains that
the memory of a compiled program is
normally organized as shown in Figure 1.
The memory addresses assigned for
Figure 1 - Normal arrangement of memory
-
PHYSICAL MEMORY
TOP
BIOS
BOOS
Program
variables
STACK
-
~
Top of WORKING TPA
all variables are assigned at compile
time and they are placed right under
BDOS. If the compiling computer has
more room than the computer it will
be running on, then really bad things
happen.
The Turbo Pascal Reference Manual
suggests you lower the END ADDRESS during the compilation to
restrict the highest address the program can use. This works, but has one
major disadvantage: the memory
above the specified END ADDRESS
is unavailable to the program (unless
you know a trick).
A more reasonable solution is to
Figure 2 - Rearranging to utilize
.
full available memory
---PHYSICAL MEMORY
BIOS
BOOS
_Top of WORKING TPA
(overwriting CCP).
All variables assigned
fixed addresses at compilation
Stack starts here and
grows downward. Controlled by ST ACKPTR.
--
TOP
STACK
Free
_ _ Starting point of STACK
controlled dynamically
by programming the
STACKPTR.
Heap starts here and
grows upward.
~(HEAPPTR)
Free
Program
variables
"
Object
code
Pascal
Library
~
Heap starts here and
grows upward. Controlled by HEAPPTR.
Fixed size code of predefined procedures and
functions and such.
Variables moved down
- - t o top of object code by
using END ADDRESS
control.
Object
code
-Object code of user's
program
Pascal
Library
____ Fixed size code of predefined procedures and
functions and such
Simple Solution
The commands shown in Figure 3
are placed in the program so that
they're the first commands executed.
That's all it takes. The specific
values shown are from a program I'm
preparing for release this summer
called Le-Menu. It's a user friendly
operating shell for CP/M that's written in Turbo Pascal (with a few
assembly language subroutines for
efficient CP/M interfacing). I'm writing it specifically to demonstrate a
number of the advanced techniques
I've developed in two years of intensive Turbo Pascal programming.
(What good are neat algorithms if
they're never shared?)
During the development and debugging phase of a program I simply let
Turbo use its default END ADDRESS. When I'm ready to release a
version to the public I run Turbo in
the COM mode to create a disk file
image. This gives the following report:
Code: 19487 bytes (1FC9-6BE8)
Free: 24136 bytes (6BE9-CA31)
Data: 5640 bytes (CA32-E03A)
Page 0
Page 0
"
Address 0000.
___ Address 0000
Figure 3 - Initializing the Heap and Stacks
var
MemTop: integer absolute $6; (* Where CP/M keeps its Mem. Size info *)
begin (* Main body of program *)
StackPtr := MemTop - $826 ; (* place stack pointer below CCP *)
RecurPtr := StackPtr - $400; (* place recursive stk 1 K lower *)
HeapPtr := $840F ; (* SET COMPILER END ADDR. BELOW THIS VALUE "')
74
rearrange the structure of the memory
assignments to avoid putting the
fixed location items at the top of
memory. My solution forces Turbo to
put the variables just slightly above
the object code. Then the HEAPPTR
andSTACKPTRs can be dynamically
adjusted to utilize full available memory. Figure 2 illustrates this.
You can implement this arrangement easily, and it makes all the
machine's memory available to the
program where it needs it most - in
the Heap and Stacks.
I can now add the size of the DATA
group to the CODE group's top
address and calculate the desired
END ADDRESS to give to the compiler. For the above example I used
6BE8h + (E03Ah-CA32h). To play it
safe, I add a little and round up to the
next page. Therefore I set the
HEAPPTR to $840F (16 bytes above
the END ADDRESS). I set the Turbo
compiler option END ADDRESS to
8400h and recompile the program (no
real time lost since Turbo is so fast).
Micro Cornucopia, Number 25, August-September 1985
The report:
Code: 19487 bytes (1FC9-6BE8)
Free:
526 bytes (6BE9-6DF7)
Data: 5640 bytes (6DF8-8400)
The size of the disk program is
unchanged, but the result is a program that can execute properly on
nearly all CP/M systems while retaining optimum memory.
Turbo Pascal is such a powerful
implementation that it can be viewed
as much a revolution in language
utility as it is a revolution in quality
software marketing and pricing. I
hope others will apply the "nothing's
impossible" attitude to Turbo and.
help raise the general level of public
expertise.
•••
Att_nt~on
92/93
Ok~dGtG
own_r_._.
~1~ne
Announc~ng
FEOI.
G
font
ed~tor
Ok~d
... t ...
for
your
pr~nt_r.
FED IT 1& 8 co"plete .yate" for de.'gn,ng 8nd def,n,ng
ch8r8cter& for the do .. nl08d8ble Ch8rGcter gr8ph,c.
gener8tor <DLCG) ,n Ok,d8t8 I'l,ne 92193 ponter ... The
de.'gned font. Gre kept ,n ,nd,y,duGl fll.a on dlOk
8YGllable for ed,t,ng 8ndtor .end,ng to the ponter:
811 by FED IT ullllt,e •.
fEOIT feature.
Include:
•
laat,
•• nu-drlvan
leern and ua •.
execution.
eeay
to
•
tull-.cr •• n control 01 the character 9r Ida
ualng alngle-atrcks control cod •• like
the
popular word praces.or.
~Iand
11 nq.
•
lncludes a
predel lnad f lIe of
greek
eClentltlc characters for l ••• dllste uae.
and
•
co.plete,
t ran.parent
lneludlng backup f Ilea.
font
f 11 e
• co.plete docu •• ntatlon Includlnq deSign
and a .a.pla layout sheet.
tlp.
• •• parate Send utllity for f ln18hed fonta.
FEDI, 16 curr .. ntly 8Y8,18bl .. on 6·' SSSD CP/~" Y2.2
for B19 Boord I (u • .Lng the on-board Y.Ldeo) and Xerol
620. FED IT U
81.0 8Y8118ble on 5 1/4" CPt" tor
K8ypro (2,4,10). Coat U 519.9~ US t 525.95 CAN. F~·r
Brook_
Co_put_r
Sy_t___
Ltd
494 'th 3tr_t lNI.t
Owen :SOund, Onterl0
CAUDA
Ult 314
Sh'pp,ng 8nd H8ndllng ple8.e 8dd 52.50 (US 8nd CAN),
Check or .oney order only.
no C.O.D. ~ •. OntarIo
re"'dent. add 7 . . . 81e. tax. CPt"- u a tr8de"ark of
D,g,tal Re.earch Inc.
Pascal Povver!
5666 La Jolla Blvd., Suite 136
La Jolla, California 92037
(619) 587-0857
*** Press Release ***
The most valuable computing resource is your time.
Pascal Power, a company dedicated to providing Pascal tools
to enhance the use of popular microcomputer Pascal
compilers, proudly announces its product, TurboPower.
TurboPower provides an integrated set of software tools
to supplement microcomputer program development using
Borland International's Turbo Pascal system.
While Borland International's Turbo system is an
excellent product, it fails to provide mechanisms to
accomplish many of the complex and tedious tasks associated
with software development. TurboPower supports the
programmer in these tasks, allowing him to find differences
in files, look for patterns in files, erase files, rename files,
backup diskettes, print files, copy files and more. All
operations are performed on a single file or on a listoffiles. If
a change in the program being developed causes it to break,
TurboPower will tell the user what was changed.
TurboPower helps the user organize all of the pieces of a
software project.
With the ability to operate on an arbitrary subset of files,
the TurboPower user can quickly il1itiate compound tasks,
such as backing up those files (and o·nly those files) that have
been changed since the previous backup. The users' guide
illustrates how TurboPower can be used to quickly
accomplish many complex tasks.
TurboPower is highly graphic and simple to use with a
single keystroke, the user operates on objects that
TurboPower places on the screen.
TurboPower is currently available by sending
$24.95 check or money order to Pascal Power, 5666 La
Jolla Blvd., Suite 136, La Jolla, California 92037.
TurboPower is available for all CPM/80 versions of
Turbo Pascal in 5~" disk formats.
Micro Cornucopia, Number 25, August-September 1985
75
Modula II, An Overview
Excerpts From A Talk By Niklaus Wirth
Editor's note: On June 1, I participated in a meeting led by Niklaus
Wirth. The meeting was attended by a
small group of hard-core hackers,
most of them from the Sacramento,
California area.
Since then, I have spent quite a bit
of time reading about Modula II, and
I'm fascinated. So fascinated, in fact,
that I found it almost impossible to
write this article. After three false
starts (anyone of which could have
filled half of Micro C) I decided to go
back to my tape of the meeting and
see how Niklaus himself presented the
language. He did an admirable overview of the language, plus he covered
a number of other interesting topics.
He premised his discussion about
Modula II by noting that the language was the answer to a problem to create a single language with which
he could do all the programming on
his Lilith computer.
What follow are Niklaus' own
words, only lightly edited. (Comments
in parentheses are mine.) I think you'll
enjoy this overview of an incredible
language by a very special person.
It was 1976, 1977 and multi-user
was the big thing - time sharing,
UNIX, multi-processor systems.
I knew that the single language was
one thing that would keep the Lilith
project sufficiently simple that we
would have some hope of being able to
do it.
Which Language To Use?
Pascal would have been a favorite
choice, of course, but if you are really
serious about a single language there
are some things where Pascal, pure
Pascal at least, is not good enough.
And we wanted to build a system that
rested on clear-cut, well-defined concepts - not Pascal with things glued
on.
This resulted in Modula II, which is
basically a merger of Pascal and
Modula I. Modula I had been designed
as an experiment in 1974 - 1976. We
76
wanted to get into multi-programming, explore methodologies for designing programs that are safe, pure,
correct. .And instead of setting up
rules, we ended up formulating these
rules in terms of a language.
Modula I had the very important
concept of a module, but apart from
that it was really an elementary
language. Obviously not good enough
if you wanted to have a system with a
single language.
module bounds.
We found that the effort it took us
was drastically reduced because we
had a highly structured language with
separate compilation, which makes it
possible to work in teams.
Why? Because the separately compiled modules are first divided into
two parts, a concept that was developed at Xerox Park. And I merged
that concept into the module concept
of Modula.
What Makes Modula II Interesting?
It is in the tradition of the structured languages, Algol and Pascal. In
addition, it has those things that
Pascal lacks for writing larger systems - primarily the module structure.
A module is hard to explain in a few
sentences, but crudely said, it is a
collection of procedures and data
structures around which you build an
intransparent fence. Then you can
poke holes in the fence. Then you can
say these and these objects are visible
from the outside, and conversely you
can say these and these objects outside are visible from the inside. They
are unidirectional holes (innies or
outies) called import and export.
The Two-Part Module
There is a definition part and an
implementation part of the module. In
the definition part you declare types
and procedures which are going to be
seen from the outside. Those objects
are exported. In the implementation
part you declare all the things that
aren't exported.
That's precisely what we needed for
system design. In a large group, you
first design a system's definition modules, and the group must agree on
these modules. Then individuals can
go .and work on their respective
implementations. It sounds a bit tooideal - certainly an abbreviated
sketch of what it really is.
The language covers only the syntactic aspects. You know which procedures are exported, and how many
parameters.
The semantics are not checked.
There you need the trustworthiness of
your colleagues. For instance, you
must be able to trust that if someone
writes a mathematical routine he will
not name it 'sine' and compute the
cosine. That would not be checked by
the compiler.
Modula satisfies most of the aspects
of system design. I mean all these
things that ADA offers a solution for.
Separate Compilation
What makes this concept particularly useful is the combination of separate compilation- by no means a
minor feat.
We have a strongly typed language
(every variable must be declared). By
that we mean that the program has
quite a bit of redundancy which the
compiler can utilize to do a consistency check on types.
Think of FORTRAN which has
separate compilation.' If you call a
subroutine which you bring in from
somewhere else, and you happened to
forget one of the subroutine's parameters or the parameter's type, you
don't know this until you execute the
program.
When you have structures, all these
things are based on the concept of
type, so it's essential that you don't
lose type checking when you cross
Modula Vrs. ADA
First of all, a very significant advantage of Modula over ADA is that it is
here. We at the institute have worked
on it now for six years, and it's proven
to be useful.
Furthermore, Modula II compilers
are effective and efficient.
And last, the language can be
Micro Comucopia,- Number 25, August-September 1985
defined in a manual of not more than
30 pages. In a way, I am proud to say
it is only 30 pages, but in a way I'm
ashamed it's so much. Because when
you do significant system design you
just can't afford to have a manual
that is stacked with stuff.
I designed a new version of the
Modula II compiler in the last two
years in my spare time.
Compiler Size
This Modula is about 5,000 lines of
source code. That compares extremely
well with Mesa at 50,000 lines or
ADA with 100,000. And I must tell
you very frankly that 5,000 lines is
about the limit which I can honestly
say I understand. I got back to the
compiler a few weeks ago, and boy 0'
boy, certain things I have to study
again until I understand exactly why
I did this or that.
If someone offers you a compiler
and says it is written in its own
language, ask him how long it takes to
compile itself. Mine is now less than
two minutes on the Lilith computer.
The first Modula compiler took about
half an hour on the same machine.
Let me not extend my monologue
too much. Some of you aren't very
much interested in these details. May
I open the floor for questions and you
direct me.
(Throughout the rest of the article, the
bold-faced lines are questions from
other attendees.)
. You have no feel for Turbo Pascal or
Turbo Modula II?
Not about Turbo Modula, but Turbo
Pascal I know is a very compact
system, very handy. I think it is a
very good system. But don't make the
mistake of trying to use it for large
programs, because it is slow running.
As far as I know it is a system well
suited for introductory programming
courses and fast compilation with the
immediate integration of the editor.
Good for debugging.
I mean that is the main reason that
I did Modula, because all the compilers that were becoming available in
Pascal were fine for toy programs, fine
for introductory courses, but I would
like to show that structured programming languages are not just for the
school. Their real value comes when
you do big systems. For that you need
efficient compilation.
Are you using Turbo Pascal for
teaching?
No, we are not. For the introductory
courses we use Apple IIs. (Loud
chuckling from the group.)
You were here for a sabbatical (8 years
ago) and the result of that was Modula
II. Now you're here again. What have
you got coming?
I came here because it is a chance to
learn something new. And as a teacher in a field which expands so rapidly,
this is an absolute necessity. I came
this time to learn something about
LSI design.
I did a revision of Algorithms and
Data Structures that's coming out in
August. It's based on Modula.
We do have a new work station
under development based on the N ational 32000 processor. One of the
extra benefits of my compiler was
that I understood it completely so
could target it easily to other machines. So I did for the 32000. I will
also design an operating system for
that machine.
I got converted to Turbo Pascal. Now
I understand Borland is coming out
with Modula II. Have you heard about
this?
I have heard indirectly about this,
but I'm not sure.
Does the 32032 bother you because of
the size of the instruction set? In
other words, if you can't document it
in 30 pages, it's too big?
Micro Cornucopia, Number 25, August-September 1985
It bothers me as a compiler writer,
but as a Modula programmer, the
compiler protects you from all that. I
can compare the two compilers because the first prototype of the work
station is now operational.
The 32016 system takes 1.6 times
as long to compile, and the same ratio
holds for code length. The same
program is 1.6 times longer compiled
for the 32000. It turns out that most
of the additional code length is due to
the fact that the shortest address
length is 8 bits whereas on the Lilith
it is 4 bits. If you measure code you
see that over 50 percent of addresses
are offsets between 0 and 15.
What's the fundamental difference
between modules in Modula, and functions in C.
First of all, in a module you can
have a bunch of procedures, so the
module can have several entry points.
Furthermore, you can have types and
variables that you export.
For instance, you can define a file
system and a block that hides from
you all the administration that takes
care of allocating storage on the disk
and so forth. You explain in the
definition module only an abstraction
of the file system. Someone who is
using that file system will not have
access to the disk. Instead, he must
go through this module, so you can
guarantee that certain things are
satisfied. Data integrity is guaranteed.
.
You could write a module that
defines a type 'complex number,' and
the procedures you provide are the
basic operators. You can guarantee
that certain things are guaranteed.
When you compile an implementation module it generates code. When
you compile a definition module you
don't generate code, just a symbol
table.
Later, when you compile a module
that imports from (modules) A and B
and C and so on, the compiler goes to
fetch the symbol files that were
(continued next page)
77
MODULAII ____________________________________________________________
(continued from page 77)
generated when compiling those definition modules.
When I designed this latest compiler I found I had to make a maj or
change to the data structure. It would
be absolutely unthinkable to do that if
I had coded in assembly language,
because it would be guaranteed to
overlook some consequences. Here the
compiler tells you.
You can import a standard module
called SYSTEM, and in there you
have defined a type address that's
compatible with all kinds of pointer
types, so it works against (doesn't do)
type checking. So you better. import
things from system when you are
willing to take all the responsibility.
For instance, it is possible to program the storage allocation, garbage
collection. It's also possible to program device driv.ers because it is
possible to access specific machine
registers.
People who have written extended
Pascal have added the same things,
but here it is not indecent to do it
because the programmer is encouraged to introduce these low level
features in only one or two modules.
For instance, a device driver module.
So in all the big part of his system he
has the full type safety of Modula and
still has access to the low level
facilities.
What are the problems you face that
are unique to Europe?
The language is less of a problem
than you might think. A lot of people,
especially those in computation centers, develop their own Yiddish- a
very strange combination of German,
Swiss-German, and English. It even
,
goes into their publications.
For our students, that isn't a p.articularly big problem. I recommend that
they read English journals. You must
teach in German - in high German
which is a foreign language for us.
Certainly the big impetus in our
field is from the U.S., and that gap
continues to grow, especially in hardware. In the U.S., you do a job quickly,
and if it doesn't work you buy more
memory. It's so easy to do that.
78
What should we be watching for from
Europe?
What is your opinion of artificial
intelligence?
It's a bit presumptuous to say that
Europeans think out a problem more
thoroughly, but at least I've found
that when I develop a system it pays
off that I think very thoroughly about
the system before I start coding.
With all these personal computers
at every' desk, people forget this. I
remember 20 years ago when we
carried around card decks - you
surely thought carefully before you
put your cards in the deck. If there
was an error it cost you half a day.
I'm not saying I'd like to go back, but
resources, when they become cheap
they are wasted.
I would hope that if anything comes
out of Europe it is in the area of
systematic methodologies. I would
point out the work of Dijkstra and
Hoare which is first rate.
If I have any recommendation for
teaching programming it would be to
introduce more of that style programming. I'm afraid this is very unpopular because it means that you need
mathematics and mathematical thinking. We have, in my opinion, badly
neglected the use of mathematics in
computer science. We are always
using it the other way around. We
solve mathematical problems with the
aid of the computer, but we should
start doing it the other way around solving computing problems with
mathematical methods.
I have never written a large program where I follow Dijkstra/Hoare
in minute detail everywhere, but I
must say that by acquiring this way
of thinking about programs, the
places where the algorithm becomes
sophisticated I will write down the
variants. Making them explicit helps
me tremendously.
On the one side what makes programming safer, more effective, are
tools for programming in the large:
the module, type checking. On the
other side, for programming in the
small are mathematical methods: rigorous methods: clean, clear thinking;
and I wish people would use these
earlier.
I must say that my opmlOn of
artificial intelligence is very, very low.
Artificially low?
When I ask what is artificial intelligence I never get a clear answer. If I
ask what has artificial intelligence
produced in solid results I never get a
clear answer. They have been living
for the last 25 years on big promises
and big money from the Department
of Defense which thinks that sometime the break will happen.
Of course, they are in an unlucky
position because if they really produce
a result, it's not artificial intelligence
anymore. But by and large, it is a
euphemism for extensive searching
methods.
What are your comments about personal computing in the Soviet Union?
I know very little about it. But I'm
not deaf. The fact that you hear little
about it probably says something. I
was in Hungary 1 112 years ago, and
they are very eager to learn. Even in
the research centers they struggle
with tools that we had 10 years ago.
And to get an 8080, that is remarkable.
How do the Japanese fit into the
software field?
The Japanese are beyond the period
of just being good at copying our
things. They have recognized that
software is very important. They have
become very active, and I have had
several visitors from Japan who are
interested in Modula.
If you look at the market now in
software there isn't much there, but I
would expect to see things happening
in the next 10 years.
On the other hand, I think this
great fear by Americans that they will
be rolled over by the Japanese is
vastly exaggerated. It's a business
trick. And mind you, it's the artificial
intelligence people who make a big
Micro Cornucopia, Number 25, August-September 1985
BAR COD~S BETTER
noise about it. The fifth generation
thing.
And the poor Japanese - they've
been taken in, too. I'll bet that in
three or four years they'll come out
and say there hasn't been much
accomplished. Maybe they'll do something with multi-processing, but don't
expect too much.
How do we get increases in software
productivity to match our increases in
hardware power?
These are two different things. Surely we have made big advances in
producing software, but they are not
as big as in the area of hardware. If
you want to be fair you have to
compare how much we have learned to
develop software and hardware quicker. Not quicker hardware. As far as I
have heard, developing the 68000
processor cost more than developing
the 7090 computer which filled this
whole rooin. So hardware advances
are not all that much different than
software.
Designing a complex system is an
intensive intellectual activity. It takes
time and brains, be it software or
hardware. As a matter of fact, it's
unfair to say that hardware has made
more progress than software - chips
cost 100 times less than 10 years ago
while software costs go up, and while
we have not learned to design hardware cheaply, we have learned to
duplicate it cheaply. Copying a piece
of hardware is almost as cheap as
duplicating a magnetic tape. That
would be the fair comparison.
The design process is always expensive, even with artificial intelligence in
the offing.
I understand that Dijkstra has been
working on a method of proving the
correctness of software. Have you
heard anything about that?
He is working on a method of
developing a program with the proof
inherent. That's a significant difference.
He is working on a book which
should come out late this year. The
book which best exposes his theories
has the somewhat presumptuous title
'The Science of Programming.' I think
it is well written, but it is too heavy.
It consists of three parts, of which the'
middle one is the smallest but most
important.
The first part is a lengthy introduction into mathematical logic and predicate calculus. The middle part is the
exposition of Dijkstra programming,
and the third part tries to apply these
methods. I think the second part is
well worthwhile.
Dijkstra is now a professor at the
University of Texas at Austin. There
is a whole group at the U of Texas, so
I wouldn't be surprised if something
good came out of there. Also Professor Hoare is going there on a sabbatical next year. They are massing.
:·a
~
Accuracy, speed and security are three key
reasons to use a PERCONI!> E·Z·READER Til. It
significantly reduces the chance of human error
while providing much faster data entry usually
WITHOUT SOFTWARE MODIFICATION. Call us
today to see just how easy It Is to make your
life-and your cllents'-better with bar code.
Interface Options:
$ 595
RS 232C Serial
Quantity One
IBM PC/XT Keyboard Compatible
IBM AT Keyboard Compatible
Custom orders welcome
• Reads dot matrix. standard and high density bar
code labels accurately
• Supports Code 39. UPC AlE. I 2 of 5 and
Codabar/ABC
MS DOS bar code printing software available
Substantial discounts are available for quantity
orders and qualifying Value Added Resellers,
OEMs and Distributors.
I understand that you originally wrote
Pascal for teaching and didn't intend
it for the business environment. Is
that true?
I hear that all the time. I don't
know. Wouldn't someone be a fool if
he designed something just to use in
the classroom and afterwards it was
no good? That would be cheating the
students.
It is true that I designed it with the
classroom in mind. At the time, we
had Algol compilers, which were lousy, and a FORTRAN compiler, and I
was looking for something that people.
couldn't say was lousy.
Also, I was in the business of
writing compilers and systems soft-.
ware. I had developed Algol W in a
working group, and I wasn't happy
with what came out of there. It was a
product that had the burden of being
developed by 30 people. With Pascal I
was freed from that, and I definitely
wanted a language that was good for
systems engineering.
Commercial use is a good test of a
language, and I want Modula to be
used commercially.
Micro Cornucopia, Number 25, August-September 1985
Sidekick for CP/M!
Poor Person Software brings you
Write-Hand Man
Desk Accessories for CP/M
Suspend CP/M applications such as WordS tar,
dBase, and SuperCalc. with a single keystroke and
look up phone numbers, edit a notepad, make
appointments, view files and directories, communicate with other computers. Return to undisturbed
application! All made possible by Write-HandMan. Ready to run after a simple terminal
configuration! No installation.
Don't be put down by 16 bit computer owners.
Now any CP/M 2.2 machine can have the power
of Sidekick.
Bonus! User extendable! Add your own applications to Write-Hand-Man. All you need is MBO or
RMAC.
$49.95 plus tax (California residents), shipping
included! Volume discounts.
Available on IBM 8 inch and Northstar 5 inch disks.
Other 5 inch formats available with a $5.00 handling
charge. CP/M 2.2 required.
COD or checks ok. no credit cards or invoices
Poor Person Software
3721 Starr King Circle
Palo Alto, GA 94306
tel 415-493-3735
Write-Hand-Man trademark of Poor Penon Software,
•••
CP/M and RMAC trademarks of Digital Research, Sitkldck
trademark of Borland Internationa~ dBase trademark of Ashton·
Tate. WordStar trademark of Micropro, SuperCalc a trademark
of Sorcim, MOO trademark of Microsoft.
79
No Lower Price Anywhere
We have the lowest prices for .Sanyo
SOLVE X MARKETING 203.928.3654 PHO~~~~DERS
,
$799
•
#
#
#
#
#
#
#
#
#
#
#
#
#
Te/eVideo Portable Computers
TPC-l
TELEWRITE - Word Processing Software
TELECALC - Spreadsheet
TELECHART - Integrated Business Graphics
CP/M-80 v. 2.2
.
2-368 K / Drives Formatted
64 K RAM, Expandable to 128 K
32 K Graphics RAM
640 x 240 Bit Mapped Display
9" Yellow Non-Glare Screen
Serial Port, Printer Port, Mouse Port
IBM Style Keyboard
Easily Connected to Televideo Network Systems
Read Dozens of CP/M Disk Formats
with Mycroft Lab's COMPAT. Only $49.00
!i~~1rCJ MBC3000 $599
WWORDSTAR, SPELLSTAR,
MAILMERGE, CALCSTAR,
INFOSTAR, BASIC,
CP/M-80 v. 2.2
# L'et ter-Qua i i'ty~'''' p~'i'};'t'~r"'"
# Accepts Paper up to 13" Wide
# 14 cps Bi-directional Printing
# 10, 12 or 15 cpi Print Pitch
# 2 ips Paper Feed
# Cenronics Interface
# Tractor Feed Availabe ($125)
# DUAL 1 MB 8" DRIVES
# READS IBM 3740 DISKS
# 2.SERIAL RS-232 PORTS
# PRINTER PORT
# INTEL MULTIBUS SLOT
64K PRINT BUFFER-$89.
I!!
ALSO IN STOCK
I!!
# DUAL 8" 1 MB FLOPY: $399.
8 MB HARD DISK: $999.
(For MBC 1100 Series)
# CRX 1100 TERMINAL 8 PF'KEYS, MENU SETUP,
4 DIFFERENT EMULATIONS
PRINTER PORT -- $299. (3 or more)
80
*CASH PRICE ONLV*
Check In advance. Add 3% for VISA/MC. No Returns.
Shipping' & Handling charges will be added to each order.
For complete technical literature send $1 00 to:
P.O. Box 689
PHONE ORDERS ONLY:
203-928·3654
,Putnam, CT 06260
203-928-6555
Micro Cornucopia, Number 25, August·September 1985
Cheap DC To DC Converter
By Bob Ghormley
Old TV s used to generate their
20,000V picture tube anode voltage
directly from 110VAC. The transformer they used was huge (and expen~
sive). Now TV s use a high frequency
oscillator (t.he horizontal) running off
12VDC to do the same thing, quite
inexpensively.
With the advent of inexpensive DC
to DC converter chips (high frequency
oscillators), you too can take one
voltage (5V) and generate another
voltage (25V, for instance). The input
voltage can be whatever you have,
usually 5V or 12V - and depending
on device, the output can be anywhere
between -25V and + 25V. You probably wouldn't run an 8" drive off one of
these circuits - most are only good
for 20 to 500 milliamperes (500 mA is
112 of an amp), but they are perfect if
you need 25V for programming
ROMs, or + and -12V for an RS-232
interface.
The DC to DC converter described
below uses + 5V to provide the + 25V
needed to program most proms. It
employs a TL497 integrated circuit.
and a few other commonly available
components, fits on a few square
inches of board, and costs less than
$10 to build. The output voltage is
variable and regulated.
The rest of the article talks about
how to customize the circuit, but if
you only want + 25V, you can stop
reading here. Just turn to the schematic (Figure 1), and start building.
Designing
I found the TL497 specs in a TI
voltage regulator handbook. The section on the 497 was labeled "Bulletin
No. DL-S 112422, June 1976 - revised September 1977," but you
shouldn't need the tech data. I've
included the pinout diagram (Figure
2), the configuration I used (Figure 1),
the matching design equations (Figure
3), and the timing capacitor/on-time
chart (Figure 4).
You can use different regulator
configurations which produce negative voltage, higher current, or a
voltage lower than the supply voltage.
But you're on your own for these.
5800 Jones PI NW·
Albuquerque NM 87120
(505) 831-1991
VIN
VO-----~------
+
L
__--.AJ~~--~~~~~
_IOOph
..-4.1ft
________~13~______~1~,~IO.
~IOVr-~1_9
6
t----r-----r---o
TL497
RI
22K
I---too<"
1~3K
v OUT + 25V
1
R2
VOLT
1.2K
ADJ.
+
CF 50- 500).lf
Figure 1 - DC to DC converter schematic
Figure 3 - Design equations
Figure 2 - Pinout diagram
• IPK' 21lOAD max
V,
•
L (J,lH)
= -,-
PK
~VO:IVI
+
j
ton(J,ls)
Choose L (50 to 500 J,lH). calculate
ton (25
•
CT(pF):::: 12 ton(J,ls)
• Rt
•
to 150 J,ls)
= (VO-
1.21 kil
0.5V
RCL=-IPK
• CFW F) ""
ton~ fpK + ILOAD]
VRIPPLE (PKI
Figurt;4 - Timing capacitor/on-time chart
TIMING CAPACITOR, CT (pF)
ON-TIME (Jls)
100 150 200250 350 400 500 75.0 1.000 1500 2000
11
J5
Performing
The circuit (with my values) puts
out 35 or 40mA at 25V and varies less
than 0.1 V from no load to a 35mA
load. PROM data sheets list the
programming voltage/current requirements as 25V plus or minus IV at
30mA max for 2716s, and 25.5V plus
or minus IV at 35mA max for'2732s
(except for Intel 2732As which require
21V plus or minus 0.5V at 30mA
max). When tested at an output of
35mA continuously, the TL497 was
barely warm (it's rated at 500mA, but
that sounds awfully high).
Micro Cornucopia, Number 25, August-September 1985
19
22
26
32
44
56
80
120
180
Getting Started
Using the design equation (see Figure 3), Vsub I (the input voltage)= 5 V ;
VsubO (the output voltage)=25V; Isub
LOAD max=35mA.
Let L=100 uH (more on this in the
construction section). Let ripple voltage (VsubRIPPLE)=0.05V.
Solving the equations, we get IsubPK=0.36; TsubON (the time the chip
is on)=7.2 microseconds.
Now, exercise some engineering
judgment and scoot TsubON up to 11
(continued next page)
81
(continued from page 81)
4 MHZ ON YOUR
microseconds, then select a timing
capacitor value of 100pF from the
table (Figure 4). (I prefer picking a
value from the table to pushing a chip
to its limit.)
Next, solve the R1 and RsubCL
equations. R1=24.8K. The current limiting resistor (RsubCL)=2.8 Ohms. I
found I needed to lower RsubCL to 1
Ohm to keep the output voltage from
drooping at a 35mA load.
Finally, CsubF 23mF. Use whatever you have with a voltage rating
above 30V or so. I used a 500mF
electrolyte. The input capacitator
across the + 5v line is just for insurance (good design?) to prevent load
changes at the TL497 input from
being fed back down the line as
voltage changes to other logic devices.
N ow that we've laboriously designed
this dude, let's talk components.
Components
L, the inductor (see Figure 3), must
have a low internal resistance (less
than an Ohm, I'd guess). I used a
Radio Shack #273-102A (about $1),
100 uHenry at 2 Amps. The TL497
came from J ameco ($3.25 or so).
The resistor combination R1-R2-R3
determines the output voltage. If
these resistors heat up and change
resistance, the output voltage may
vary, so you might want to use
precision resistors with low temperature coefficients for R1 and R2. But it
shouldn't be necessary.
RS3 can be' it inultiturn trimpot, or
may be replaced with a fixed resistor.
As shown, R3 will vary the output
voltage from 21V to 30V.
CsubT isn't critical. I used a disk
ceramic.
For CsubF, a tantalum capacitor
works best, but a 200 or 300mF
electrolyte should work fine. The transient response of a tantalum is superior, and it'll last longer.
The current limiting resistor is a
garden variety carbon. (Watch out for
those cute little tomatoes in your
resistor patch.)
Constructing And Checking
I wirewrapped mine, gluing the
larger components to the perfboard
with RTV, and wire-wrapping directly
onto the leads. Gross, but effective.
And cheap.
When you complete the power supply, test it by hooking up a load
82
zao IS LIKE DRIVING 40 ON THE FREEWAY, GO 60 INSTEAD!
SERVO 8 HIGH PERFORMANCE 6 MHZ SINGLE BOARD COMPUTER
•
•
•
•
•
•
•
•
•
•
•
•
•
6 MHZZSOB CPU - RUNS AT FULLSPEEDWITH NO WAIT STATES
FOUR LAYER BOARD (5.75" x S") 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, S" 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.I. (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 12SK EXPANSION AVAILABLE
50 PIN SYSTEM EXPANSION BUS WITH ZSO 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 (ZSO CODE), CONFIGURATION UTILITY (TURBO PASCAL CODE)
• SERVO EXPANSION BOARD WITH 12SK ADDITIONAL RAM, CLOCK/CALENDAR
WITH BATTERY BACKUP, TWO ADDITIONAL SERIAL PORTS, - $384
• SERVO CONTROL INTERFACE WITH 24 ANALOG INPUTS AND S 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
resistor which will draw 35mA (680
Ohms at 1 Watt) across the output.
Leave it on for a few minutes and then
check for smoke. Monitor the output
voltage while connecting and unconnecting the load to ensure that it
doesn't vary appreciably.
Everything worked the first time
for me· (much to my amazement), so I
don't have any troubleshooting advice
to offer. If you need help, call or write
me.
A Gotcha
Pin 14 of the TL497 is B+ (+5 in
this example), but the ground pin is
pin 5, not pin 7 as we've come to
expect.
Credits
Don Black, an especially adept Air
Force hardware engineer who kept the
Airborne Laser Laboratory's instrumentation working for several years,
suggested this circuit. Thanks, Don.
J ameco Electronics
1355 Shoreway Rd.
Belmont CA 94002
415-592-8097
•••
Micro Cornucopia, Number 25, August-September 1985
Goodies From
BBl, BM!£~!?usfD2rnucopia
" are full 8'" dlsks of software. Each program has a .DOC
The followmg
(documentation) file and many come with source.
USERS DISK #1
I-Two fast disk copiers
4-Two disk formatters
2-The manual for Small C+ 5-Modem 7
6-0thello
3-Crowe ZSO Assembler
7-Serial print routine-Port B
USERS DISK #2
I-Two single disk drive copy programs, both with
source
2-Crowe ZSO Assembler source
3-New Crowe. COM file, debugged version
4-New CBIOS with parallel print driver &. other
extensions for CP/M 1.4 &. 2.2
5-Disk mapper with source
USERS DISK #3
I-EPROM burning software for BB 1
2-Reset bit 7 (unWordStar a file)
. 3-Disk file CRC checker
4-New fast copy program &. source
5-DU77, disk inspector/editor
6-FINDBAD, isolates bad disk sectors
7-Print fancy page headings
USERS DISK #4
1-CBIOS, custom bios for Tandon drives
2-ZCPR, dynamite CCP checks drive A for missing
.COM files; improved commands
3-ZCPRBLOC, identifies CCP location
USERS DISK #5
I-CAT, disk cataloging routines
2-Modem 7 for Port A
3-Modem 7 for Port B
4-PACMAN, the arcade game
5-FAST, buffers the disk to speed up assemblies
6-NOLOCK, removes BB 1 shift lock
7-VERIFY, cleanup &. verify a flaky disk
B-DUMPX, enhanced for BB 1
9-UNLOAD, create .HEX file from .COM file
USERS DISK #6
1-REZ, BOBO/280 disassembler, TDL mnemonics
2-PRINTPRN, prints Crowe listings
3-RUNPAC, run-time utility package for B080 assembly language programs. Has 51 functions. Includes
source which assembles under ASM.
USERS DISK #7
1-CHNGPFM, PFM monitor mods
2-TERM, terminal routines let you set up BB as
simple terminal, as a file receiver, or as a file sender
3-Checkbook balancing package
4-Disk Utilities - copy to memory, from memory,
and dump.
USERS DISK #8
1-BDSCIO, custom BDSC 110 for BB 1 (both .h
and .c)
2-YAM. Yet Another Modem program in source &.
.COM form. Turns BB into paging intelligent
terminal, complete with printer interface, baud
rates to 9600.
3-ROFF, text formatter
4-SIGNS, prints large block letters
USERS DISK #9
I-ADVENTURE, expanded 550 pt version
2-Keyboard translation program
3-CBIOS, serial &. parallel printer interface
4-EPROM programming package for BB II, for 2732s
only
USERS DISK #10· Lots of Disk Utilities
I-REBOOT, sets up the CP/M auto load
2-SWEEP, directory/file transer routine
3-A, Lets BB I recognize a double sided drive as one
drive with 494K of usable space
4-FIX, super disk utility, does everything, much
easier to use than DU77
5-Compare files routine
6-UNERA, retrieve erased files
7-FIND, check all drives on system for a file
B-MENU, menu program for CP/M
9-NEWCAT, enhanced disk catalog program
10-Single drive copy program that does track by track
copies rather than file by file
USERS DISK #11· Printer Utilities
1-Microline 92 printer routine
2-Graphics display package for MX-BO with Graftrax,
very fancy
3-Epson MXBO setup for BB 1 with 59.5K CP/M
4-Epson MXB setup for any CP /M,lets you set print
modes.
5-Micro Tek print driver, Ports A &. B
8"
Users
Disks
$15.00
each
_...;;,,;;;;,;;
_________
iiiii____
iiiiia
USERS DISK #12· Games for BB I
I-ALIENS, a fast, exciting arcade game
2-ZCHESS, chess with a 1-6 level look ahead
3-MASTERMIND, match wits with the computer
4-BIO, Biorhythm charts complete with graphics on
the BB I
5-LIFE, so fast it's real animation I
6-CRAPS, see how much you'd lose in Vegas
7-WUMPUS, a caver's delight, kill the Wumpus or
be killed
B-PRESSUP, similar to Othello
9-Games, 7 games in one program, includes blackjack,
maze and animal
USERS DISK #13· General Utilities, BB 1
1-ZZS0URCE, disassembles to real Zilog mnemonics
2-EX14, superset of submit or supersub
3-MOVPATCH,lets you use MOVECPM on other
copies of CP/M
4-XMON, 3K expanded BB I monitor, use in ROM
or as overlay.
5-CURSOR, prompts you for cursor char you want
6-UMPIRE, very fancy RAM test
7-ZSIDFlX, display improvement for ZSID
B-PIPPAT, modify PIP so you can reset system from
within PIP
9-@, Lets you use the BB as a calculator, including
HEX
10-SORT, sort package written in CBO.
USERS DISK #14. BB 11 Software
1-PR032, latest 2732 reader &. programmer
2-SMODEM2, lets BB II talk to Hayes Smartmodem
3-GRAFDEMO, demonstrates BB II graphics (in
BASIC)
4-ATTRTEST, demonstrates BB II graphics (inJRT
Pascal)
5-INITSIO, initializes port B for 300 or 1200 baud
6-MENU, displays menu of .COM files, enter number
to run file
7-SETCLK, sets realtime clock built into BB II
B-PRINT2, modified print which accesses BB II clock
9-BOX, draws a thin line box on screen determined
byHLand BC
10-ALIENS, space invaders arcade game
11-LISTSET, printer interface, auto-enables RTS,
ignores DCD.
USERS DISK #15· Word Proces8ing
I-EDIT, very fancy line editor similar to EX (Unix).
Includes help menu, programmable key, and full
manual on disk.
2-TED, simple minded line editor, easy to learn &.
use. Very fast.
3-TTYPE, typing training program written in BASIC
4-TINYPLAN, very simple-minded spreadsheet.
Whets your appetite for a fancy one.
5-CBO Text Utilities
6-CHOP, cuts off file after N bytes
7-ENTAB, replace spaces with tabs where possible
B-MS, double or triple spaces a file to output
9-RTW, removes trailing spaces from file
10-TRUNC, truncates each line to specified length
l1-WRAP, wraps at column BO, plus pretty pretty
.
printing, page #s . • •
USERS DISK #16. BB I Modem Software
1-RCPM27, list of U.S. bulletin boards
2-SMODEM, interfaces BB I with Hayes Smartmodem
3-PLINK66, easy to use with non-CP/M host, for
portA
4-BBPAT, menu selection of BAUD rate, bits/char,
parity, &. stop bits
5-MODEM 7+, Modem 7 plus BBPAT,lets you talk
to anything from port A
USERS DISK #19. BB I Double Den,ity
New BB I Monitor, BIOS, character ROM, Winches·
ter Interface, ZCPR, and formatter from Trevor
Marshall. See BB I expansion article in Issue # 11.
USERS DISK #20 • Auemblen
CROWEASM: This is the Crowe assembler modified so that it runs on any CP/M system (including
the BB I, BB II, Xerox ••. ).Indudes .COM .280 and
.DOCfiles.
LASM: This assembler is similar to the ASM that
comes with CP/M except that it can link files at
assembly time.
PRINTPRN: Print routine for CROWEASM .PRN
. files.
LIBRARY: Utilities which let you combine many
files into one, then you can run, type, or extrace any
file within the larger system.
USERS DISK #21 • Winc:heater Utilitiea
BACKUP: Helps you baclc-up the winchester onto
multiple floppies. Creates a catalog of the files on
each disk and includes the date of the latest backup.
Will not back-up an unchanged file more than once.
Plus many more super features.
FLOPCOPY: Lets you malce floppy copies (with
only one floppy drive) by using the winchester as a
buffer.
BIGBURST: Backs up a very large winchester file
onto multiple floppies. Joins the copies to recreate
the original file.
MULTCOPY: Use this like PIP but it prompts you
to change disks. Accepts ambiguous file names.
MDIR: Displays files in all user areas on selected
drive. Many features.
MAKE, MOVE: PIP·like utilities that make it easy
to move files between user areas.
SWEEP: The famous disk cleanup and transfer
routine that does just about everything you ca~ do
with TYPE, ERA, DIR, and PIP.
UNSQ; This is the latest, greatest file unsqueezer.
Enter UNSQ. *. * and it will check every file on the
disk. All squeezed files. will be unsqueezed.
USERS DISK #22 • Pascal Compiler
This is a real Pasql compiler. It supports only a
subset of the language (no records, pointers, booleans, reals or complex) but it generates a real .COM
file. Everything is on this disk: the compiler, its
source, example programs and documentation.
USERS DISK #23· Xerox Utilities
This disk contains Xerox specific utilities including a
screen dump fromWayne Sugai(with source); modifications for the SWP package including ZCPR, a new
monitor, and a clock/calendar from Mitch Mlinar;
and Jim Mayhugh's new monitor (see issue 19). A
very special disk for Xeroxers.
USERS DISK #24· Prowriter GraphiCi
This is a complete Prowriter printer graphics package
written by the same Micro C subscriber who wrote the
MX-80 graphics package. Plot points, lines, circles, boxes,
and more. Examples, documentation.
USERS DISK #2S • ZSO Macro Aaaembler
This is a real zao macro.assemblerl Syntax closely follows
RMAC and MAC. Also includes pseudo-ops to support
conditional assembly etc. No phase or relocatable code.
USERS DISK #26· BBII CP/M 3.0 Banked BIOS/
Winc:heater Support
CP1M 3.0 Banked BIOS implementation for the BBI. Roy
Epperson's software to support the Adaptec ACB-4000
SCSI and the Rodime R204 5· Winchester on the BBII
(see issue #19). Plus more Winchester programs.
USERS DISK #17· Small C version 2
SMALLC2, this substantially expanded version of
Small C now includes for, goto,label, switch (case);
external declarations; new preprocessor commands;
expanded 110 includes redirection; initializers; plus
12 new expressions. The 110 and runtime libraries
have been greatly expanded (including printf). Source
&. documentation on one full disk.
USERS DISK #27· BYE Remote CP/M SYltem
BYE programs to run your BBI, BBll, or XEROX 820-1 as
a remote CP1M system using a Hayes Smartmodem
compatible modem. Includes programs to allow restricted
access.
USERS DISK #18 • FORTH
IFORTH, this is Idaho FORTH which can be burned
into ROM or loaded from disk. It replaces the PFM
monitor &. handles all the monitor functions. See
issue #11 FORTH column for more info about
IFORTH and this disk.
USERS DISK #28· VFILER and
Extended Single Dendty
VFlLER is a screen-oriented file manipulation utility,
similar to SWEEP, CLEAN, and DISK. Also, Larry
Blunk's documentation and software for implementing
extended single density (334K) on eight inch disks.
...- - - - - - - - - MICRO CORNUCOPIA • P. O. Box 223 • Bend, Oregon • 97709 - - - - - - -. .
Toll Free Order Line
EPIC SALES
Order Line: 1-800-223-EPIC
9AM-8PM CST
132 Walnut-Plano Center
Garland, Texas 75042
EPIC SALES WINCHESTER SUB SYSTEMS
Featuring Drives By Seagate
XEROX 820,820-II,BIGBOARD I,KAYPRO IIIIV
S-100
•
a Supports CPM 2.2 operating system
Supports CPM 2.2 operating system
a Host board plugs Into Z-80 socket
a Host board plugs Into S-100 BUSS
•
a XEBEC S-1410 controller board external In cabinet
WD 1002 controller board external In cabinet
a Boot CPM from S· or 15 114· floppy
a Boot CPM from floppy (S·)
a Easy Installation
a Easy Installation
Fast & Efficient Servlcel
Complete documentation package Is available for $315.00.
This package Includes all manuals and software on a diskette (If required).
All orders are expedited as a maHer of our regular policy.
The $315.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 hrs. of receipt.
Typ. of
8y.t.m
IBM-PC a
1c:0MPATIBLES
TI PC a
COLUMBIA
S.agat. ST-212
CMI-5818
Saagat. 8T-225
1/2 HIgh (Low Pow.r)
Full High
1/2 HIgh
ErwIn 110
Tap. Backup
10 MEG
Int.rnal
10 MEG
Ext.rn.'
Dual10 MEG
Ext.rnal
15 MEG
Int.rnal
115 MEG
Ext.rnal
20 MEG
Int.rnal
20 MEG
Ext.rnal
Int.rnal
Ext.rnal
$749
$975
$1475
$949
$1175
$1149
$1375
$649
$699
$799
$1025
$15215
$999
$1225
$1199
$1425
$649
$699
APPLE
N/A
$999
$1499
N/A
$1199
N/A
$1399
N/A
N/A
XEROX 820a
KAYPRO
N/A
$1049
$1549
N/A
$1249
N/A
$1449
N/A
N/A
8-100
N/A
$1099
$11599
N/A
$1299
N/A
N/A
N/A
N/A
1-YEAR FULL WARRANTY
SATISFACTION GUARANTEED:
Order your EPIC Winchester System now -
•
TECH SERVICE HOTLINE
Every unit Is throughly tested before shipping and our
test It for 30 days, If not satisfied, return for
•
warranty Includes both parts and labor.
If you have a Question or a problem
Call our service technicians.
~
Immediate refund!
6 1/4" HALF HIGH DRIVES
EPIC SALES SPECIAL
8" FLOPPY DRIVES
For IBM PC, TI PC, X.rox 820,
6 1/4" SEAGATE
SI.m.n. FD200-8
DSDD 8·Floppy Drlv ••
.nd oth.r.
TEC or Pana.onlc Drlv ••
WINCHESTER DRIVES
(Shugart 850 Compatlbl.)
ST-212 10 MEG 1/2 HIGH
$229 NEW
ST-225 20 MEG 1/2 HIGH
8" DRIVE SUB-SYSTEM
5 MEG FULL HIGH
Includ •• : (2) FDD - 200-8
(SA-455 Compatlbl.)
$549
$949
$179
DSDD
$119 NEW
Ca . . a PIS for (2) 5 1/4·
Half High Drive ••
DSDD Drlv •• , V.rtlcal
C . . . and Pow.r Suppl,
WINCHESTER CONTROLLER & HOST BOARDS
$629 NEW
DTC 5150BX IBM Wlnch ••t.r Controll.r ••••••••• '278
POWER SUPPLIES
XEBEC 1410 Controll.r •••••••••••••••••••••••• '285
IBM-PC R.plac.m.nt 135 Watt
S-100 Ho.t (X.b.c) ............................. '150
DI.k Drlv •• Cabl •• 5 1/4·••••••••••• 20
Dlak Drlv. Cabl. 8· ••••••••••••••••• '30
Multlbu. Ho.t (X.b.c) ........................... '185
Software •••••••••••••••••••••••••••••••••••••••••• '35
8/5 Multlpl.x.r Box ................ 14 8
X.rox a Blgboard Hoat (Epic) ••••••••••••••••••••• '85
(Run 8· a 5 1/4· drlv.a almult.n.oual,)
Tech. Info. (214)272-5724 ~
$72
ZOBEX TI PC Wlnch ••t.r Controller ••••••••••••• '350
Appl. Ho.t (X.b.c) .............................. '125
XEROX 820-1 &: II
TERMS:
40 Track, 48 TPI
$149
Boah.rt XL81-5830R
81 Watta Maximum
+ 5/8A,+12/5A, -12/1A
W.at.rn Digital 1002-o5HDO .................... '285
TOLL FREE ORDER LINEI
1-800-223-3742
Master Card, Visa, American Express add 3'11. service charge. Allow 10 days for
$39
Store Hours:
9-8 M-F. •• 9-1 Sat.
checks. $4.00 Minimum UPS charge. $1.65 for COD. Texas Residents 6 1/8'11. Sales Tax.
84
Micro Cornucopia, Number 25, August-September 1985
Extending RATFOR
By Keith H. Bierman
I need to port software from micro to.
mainframe and that leaves out Turbo
Pascal, unless Mr. Kahn has forthcoming versions of IBM 370, CDC, UNIVAC,
and VAX. FORTRAN 77, however, is
available for everything but the Z80.
Many F77 features are available in RATFOR, a FORTRAN preprocessor.
RATFOR, Where Art Thou?
Where does one get RATFOR (not to
mention FORTRAN) for the Z80? It turns
out that The Software Toolworks has
RATFOR (rational FORTRAN) for a mere
$50 (a real buy), and Microsoft has a
FORTRAN for the Z80 (though it's not
$50). In the following piece, I'll cover a
few ideas for extending this RATFOR to
work with FORTRAN 80.
RATFOR, What For?
Nothing can be done about the lack of
CHARACTER as a native datatype-but
you can get IF-THEN-ELSE, DO-ENDDO (ala VAX), and, with a minor mod or
two, regular DO loops (the ST RATFOR
package specifically states that normal
DO loops are verboten).
The Software Toolworks package includes a nice reference guide, but the definitive work on RATFOR is "Software
Tools" by Kernighan and Plauger. It is a
classic.
Editor's note: There are two versions of
"Software Tools." The original one has examples written in RATFOR. In the later one
the examples were transliterated into Pascal.
For those of you who aren't familiar with
RATFOR, a couple of comments. At first
glance, RATFOR code looks a lot like C. In
fact, it is somewhat a cross between C and
Pascal and is quite easy to learn if you are
familiar with either language.
If I had to write code for a FORTRAN machine, I would definitely write in RATFOR so
I could see what my code was doing. Then I'd
let my system translate the RATFOR source
into FORTRAN. The one disadvantage of
RATFOR environment is that the translator's output must still be compiled before you
can test a program.
Following is Figure 1. The resulting
output will look extremely funny, but it
will work.
•••
7017 Deveron Ridge Road
Canoga Park CA 91307
"Conventional" RATFOR uses I} (like C) to delimit things
like
DO 1=1, N;I
stuff
more stuff
Adding define(ENDDO,}) to the list of standard "defines"
(primitive MACRO'S) allows us to write
DO 1=1, N; I
stuff
more stuff
ENDDO
Just like a VAX (except for
port up)
;1, which one globally deletes on
Adding
define(THEN,I) define(ELSE,} else I) define(ENDIF,})
makes
IF (condition) THEN
stuff
ELSE
more stuff
ENDIF
Which is just like standard F77.
The only fly left is the SW RAT package to insist that one
NOT use
DO 100 J=l, 199
stuff
CONTINUE
100
To allow this, we must modify the RATFOR preprocessor itself;
since the source is provided (the original authors placed it
in PD, modified versions may not be). The offending subroutine
is called "docode" if it is made to read
Figure 1 - DO Loop modification
# docode - generate code for beginning of do
#
#
MODIFIED to allow standard FORTRAN do if desired
#
subroutine docode(l~b)
integer labgen
integer lab
character lexstr(MAXTOK) itfor normal do logic
character gettok,type
# ratfor functions
character junk
# temp store
i
string dostr "do"
character dostr(4)
data dostr/LETD, LETO, BLANK, EOS/
call
call
call
lab
outtab
i space to start of line
outstr(dostr)
it write "do"
outch(BLANK) #
= labgen(2)
# make some labels
junk = gettok(lexstr,~~XTOK)
#peek at next token
call pbstr(lexstr)
it •.• put it back
# if normal a FORTRAN do
if (type(lexstr(l»
LETTER)
call eatup
call outdon
just put it out
return
}
call outnum(lab)
call outch(BLANK)
call eatup
call outdon
return
end
Micro Cornucopia, Number 25, August-September i985
it regular logic
#
85
On· Your Own
By David Thompson
I intended the following to be part
of the editorial, so it's mostly opinion.
But it is also too important to
languish in the editorial (in my opinion anyWay).
This is a discussion of freeware or
"user supported software," and I have
moved it into this column. It's a very
significant option for those of you who
are trying. to market software.
FreeW:aire?
There is lots of controversy about
freeware. First of all, what is it? Most
people define it as publicly distributed, copyrighted software which contains a plea (or pitch) for money.
In other words, national public
domain organizations, local user
groups, friends, and bulletin boards
are the. distributors. Many people are
exposed to the programs, and those
who find them valuable are encouraged to become licensed (paid-up)
owners.
In one sense, there isn't too much
difference between freeware and commercial software. People pay up front
for commercial packages and then
distribute them (despite threats of
dire consequences) to their friends.
Eventually, many users of this kind of
"freeware" pay up, so they have
licensed copies. (This usually happens
when a newer, fancier version hits the
streets and they buy a copy to share
with their original benefactor.)
In the legitimate freeware system
the original copies are free, but end
users are encouraged to buy a license.
Purchase of a license usually entitles
the user to one or more of the
following:
1. A free upgrade to a more powerful version.
2. A more complete or printed
manual.
3. Additional utilities or sample
files.
4. Source.
5. Notification of new versions or
fixes.
6. Support via phone, mail, or the
author's bulletin board.
7. A feeling of self-~ighteousness.
86
Crippled Software
Commercial software houses have
been releasing crippled versions of
their programs to get people hooked
on their products. Often the only
difference between these cheap or free
copies and their expensive brethren is
a bit of code that limits you to: 200
entries (an accounting package), or
300 baud (a modem package), or a 5K
source file (an assembler or compiler). You pay the full license fee to get the
full-blown package (or to learn how to
tum off the stifle).
Now we're seeing the same trips
from freeware houses. They are releasing crippled copies to the public
domain, and once people have invested considerable time learning how to
u~e the program, or entering data,
- bam! Pay up or else!
PC-Calc
Some of the freeware houses are
releasing partial documentation to
encourage users to buy a manual. One
that comes to mind is PC-Calc. The
documentation with their spreadsheet
tells you just enough to get started. It
even tells you where information has
been left out.
Then they threaten an aggressive
suit (much worse than double breasted
wool) against anyone who adds the
missing pieces to their documentation.
Actually, they would probably have
trouble winning a case against someone who sat down and through trial
and error figured out all the commands. As long as he hadn't seen
their printed manual (and didn't use
their words or style), they wouldn't
have copyright protection.
They came down with a really heavy
trip (sounded a lot like a chain letter)
that tried to make me feel like a scum
for not sending them $75 even though
I haven't used their spreadsheet (and
don't plan to). They even threatened
me with unknown (but terrible) things
if I removed their threats.
What a bummer. I was~orry I saw
the package.
.
Another package took a much
friendlier approach. Not only did it
put me on my honor (and of course
I'm as honorable as anyone I know),
but they told me I could send whatever I wished. I might be willing to try
that package and would send money if
I found it valuable.
What I'm finding is that freeware is
not much different than commercial
software. There are friendly folks, and
there are heavy-handed ripoffs.
Mixed Feelings
I have mixed feelings about freeware. In one sense people are taking
advantage of the public domain distribu tion channels for their own profit. A
lot of dedicated people are volunteering their time to put together quality
public domain disks (including writing
and modifying software). (A significant percentage of the disks we ship
are in exchange for software donations and articles.)
Steve Leon, head of SIG/M and
columnist in Micro C, refuses to put
freeware on SIG/M disks. He doesn't
want to donate his time (and his
organization's resources) to making
profits for commercial software writers. This is no doubt one reason why I
h{lven't seen any freeware aimed at
CP/M 80. (See Steve's column in this
issue.)
Meanwhile, PC-Blue, the MS-DOS
public domain distributor that is
closely associated with SIG/M, has
lots of freeware on its disks. It
appears that freeware makes up more
than half the new public domain disks
for the PC.
On The Other Hand
In most cases, the sources of freeware are individual hackers trying to
support themselves writing commercial (or almost commercial) quality
software. There is no other way, that I
know of, for these people to get their
software into the market place.
The top promotional agencies say it
takes over $1,000,000 to launch a new
software product. This is ju~t for the
advertising and the parties. (I'm not
sure who the parties are for - maybe
for the promotional agencies.)
A few of the freeware programs
have generated over $100,000 in li-
Micro Cornucopia, Number 25, August-September 1985
$49.95
FMT
$49.95
Text Formatting System
cense fees, which would make any
author very happy. However, a large
software house couldn't live on that
kind of return if it had spent a million
big ones for starters.
So where do I stand? I'm still
dancing around a bit (an~ I'm playing
the tune by ear), but from the authors
I will not accept:
Heavy Trips
This means no chain letters, no
threats of dire consequences, no lambasting. We all should be able to feel
good about ourselves. If we receive
something that was released for copying and passing around, then we
shouldn't feel guilty about using it.
Crippled Software
This is a little bit difficult. I have no
problem with someone coming out
with a better, fancier version to
encourage people to upgrade from the
free version, but the free version had
better be complete and usable. Forever.
Now For The Users:
You have some responsibility in
this, too. There is a lot of freeware out
there that is feature-for-feature competitive with commercial software
costing 10 or 20 times as much. If you
and I support these folks, there'll be a
steady stream of inexpensive software
out there (like Borland is doing in the
commercial sector).
We're helping ourselves when we
support these writers because over the
last 12 months a lot of software
houses have died or been swallowed
up by the large ones. In one year, the
number of software publishers that
are actively advertising their products
has dropped from 4200 to 400.
We could wind up with a few large
software houses dominating the commercial scene and charging whateveI
they wish. Freeware could keep that
from happening by making it easy for
individuals to market their software
without having to sell their souls (or
their ideas) to venture capitalists.
Quite a few people have asked me
how they can sell their programs
inexpensively. There are a number of
reasons why they can't do that in the
commercial market (unless they are
writing something that will sell millions of copies like Borland is doing).
1. Advertising is expensive. Unless
you have a very special audience that
you can reach cheaply, you will pay a
lot for space and production to reach a
lot of people who aren't interested in
your product.
2. Dealers and distributors would
rather make 60 percent of $400 than
60 percent of $40. And with display
space at a premium they are not likely
to carry inexpensive packages.
3. Software support is very time
consuming. Even if your package is
perfect (unlike Thorne) you'll spend a
good deal of time coaching new users.
("You sent me a defective program. It
won't boot on my system.")
Conclusion
So, for all these reasons, I think
freeware is worthwhile. Steve Leon
has a valid point. A lot of people
donate their time to gather and distribute public domain software.
On the other hand, they are contributing to a good cause when they help
the public get even better software
and they help programmers reap a
real benefit from their efforts.
One last thought. Freeware should
meet the same standards that we
expect from commercial software,
from the point of view of usefulness,
freedom from bugs, and documentation (on disk). Anything less constitutes abuse of those who distribute
the software and those who are asked
to pay for it.
Micro Cornucopia, Number 25, August-September 1985
FMT provides most of the features of
the high-priced Text Formatters at our
inexpensive price - and it's easier to
use, tool Note the features below:
• Easily configured to your printer. Configuration files for 20 + printer models
are provided or generate your own.
• FMT gets the most from your printers
by taking advantage of their special
features, including condensed, double
width, enhanced, double print, italics,
elite, letter quality, multiple fonts, etc.
• Multiple modes and combinations of
modes can be used on the same line
or even in the same word.
• FMT works with your favorite editorl
• FMT uses meaningful mneumonic
commands in the style of SCRIPT or
ROFF (each command appears on its
own input line), including commands
for the various printing modes.
• No embedded control codes - you
don't have to remember those strange
escape/control sequences.
• FMT runs at the maximum speed your
printer allows for each printing mode
- graphics mode is not required.
• Standard formatting features provided,
including headers and footers,
automatic page numbering, text
justification, tabs for table generation,
and embedded files up to TEN deep.
• FMT automatically builds Table of Contents, List of Figures, and three level
alphabetized Index.
• Detailed 100 + page manual profusely illustrated with examples.
• Works equally well with IBM-PC, TI-PC,
IBM clones and look-alikes (PCDOS/MS-DOS 128k). Also works with
CP/M 8080 and Z80 systems with 64k.
• $49.95 plus $2.00 shipping and
handling.
Specify system.
•••
VISA and Master Card Accepted
Dealer Inquiries Welcome
TINY TEK, INC.
Route 1, Box 795
Quinlan, Texas 75474
(214) 447-3025
87
LBTTBRS
Kaypro Power Connectors & Co-Power
88
I called you after I installed a Pro-8 and
found that my disk drives began turning
themselves on at strange times. You
were right that neither the Pro-8 nor the
decoder board was the problem.
As you suggested, I tried replacing the
PIOs, 74S04s, power supply, and virtually every other replaceable chip. Nothing helped. However, I accidentally discovered that the +5V connector on the
rnain board (from the power supply) was
dirty, causing a slow drift from 4.9V to
3.7V. At 3.7V my Mitsubishi quads got
the message to start spinning. By that
time everything was so flaky that I would
have to power down for 10 to 20 minutes
before I could run at all. All I had to do to
fix the problem was clean the connections.
My Kaypro II is one of the originals
(serial # in the 1700s). Despite the new
higher rated power supply, the screen
still twitches. I wonder if the connectors
... Also, I have a tip for Co-Power users.
If SmartKey, QuickKey, Fkey, etc. don't
run when you have the Co-Power RAM
configured as the A: drive, try the following:
1. Enter "RAMDISK A, Y" (to bring up
Disk Sale
DDY§UxlJ·
TYPE
BOX OF 10
5" -SS/DO-48 TPI
5" -OS/00-48 TPI
5" -SS/00-96 TPI
5"-OS/00-96 TPI
5"-OS/00-IBM/AT
8" -SS/SO-48 TPI
8" -SS/00-48 TPI
8" -OS/00-48 TPI
3.5" -SS/OS
19.50
25.50
29.50
37.50
52.95
23.95
25.50
29.95
32.95
Available Soft or Hard Sector
For Plastic Case Add 1.25/80x
Plus Tax & Shipping
- Cash, Visa, Mastercard, COD -
Integral Systems Corp.
2900-H longmire Drive
College Station, TX 77840
(409) 764-8017
88
the RAM disk as A: and initialize the directory).
2. Press the reset button.
3. Call up Smartkey, QuickKey, or
whatever.
4. Enter "RAMDISK A,N" so the
RAM disk locates itself below the
Smartkey, etc. and both run without
problems. (My 13-year-old son figured
this out.)
Ron Rock
P.O. Box 211
Flossmoor IL 60422
Kaypro Speed-up Compatibility
Since I bought my trusty Kaypro II in
January 1983, I have maintained a
"hands-out" attitude ("If it ain't broke,
don't fix it"), butI am fascinated with the
thought that it might run faster. So, I'm
going to try a speedup, as well as your
improved character set.
My main concern is that PluPerfect
Writer, Backgrounder, and CP/M 2.2E
may not operate properly at the new
speed. I use them heavily, and have read
conflicting reports on the success of the
speed-up with them. Can you offer the
definitive answer?
Also, please try not to ignore the older
Kaypro owners with "Perfect" software
and older hardware-we're still out
here!
Jim Chernoff
1351 Royal Way #19
San Luis Obispo CA 93401
Editor's note:
I know you are out there. In fact, the older
IIs and 4s are the most dependable systems
that Kaypro has manufactured (occasionally
the drives, data separators, and power supplies give trouble).
There is no reason that the speedup should
affect the programs you mentioned. Your disk
formatter/copier will probably not work at
5MHz, and games get too fast for mortals
(though not too fast for lO-year-olds), so you
should definitely add the 2.5 to 5MHz
switch.
Smart Answering Machine
I have considered buying an answering machine, but many of my telephone
counterparts, like my Dad, would rather
hang up than talk to a recorder (can't say
I blame them). On top of that, a growing
number of people who would like to talk
to me have computers and modems. So
how about an electronic mail answering
machine? (Great idea for some ambitious
en trepreneur.)
Rig the system to sense the number
that is calling before answering. If it's
Dad on the other line, the system doesn't
answer.
Upon answering (it's not Dad), the
system then announces that I'm not
home and allows the caller to leave a
message either by voice or by a RBBS .
style hookup. If you want to get classy,
digitize the voice message and store it on
the disk, removing the requirement for a
cassette.
This has to be a small, fairly simple
machine that my Aunt Mary can hook up
and operate. Seems to me the technology exists, but just needs to be adapted to
the application. If you fully integrate it
with the phone, as some companies are
starting to do with dumb terminals, you
might get a hot consumer item.
Rex A. Buddenberg
Naval Postgraduate School
SMC #1309
Monterey CA 93943
Editor's note: .
Hi Rex, interesting idea. I'm not sure how
the answering device could know the number
of the calling phone (although the FBI does it
on TV two or three times a week). If that were
possible, they wouldn't need call back procedures to provide security for the big mainframes.
If the caller had a special tone generator
(blue box, anyone?) into which he could enter
a code, then the system could decide how to
act based on the code received. However, before the receiving system could hear the code
it would have to "pick up the phone." Any
other ideas, anyone?
Expanding RAM On The SWP
I have a question about expanding the
RAM on the SWP co-processor board.
My board, installed in a Kaypro 4-84, is
the 256K version, and I'd like to expand
it to 512K or higher, if possible. I've read
about the expanded version offered by
SWP, and replacing my present board is
Micro Cornucopia, Number 25, August-September 1985
LETTERS
probably the best way to go. It's also
probably the most expensive considering our present US/CAN exchange rate.
Instead, I would like to buy the parts up
here and install the board myself, thus
getting my feet wet in making modifications to my Kaypro.
I've heard you can replace RAM chips
with ones of higher value. A friend told
me he did this to an IBM and had to install another DIP switch. A second friend
told me an additional ROM chip was
needed.
Obviously, there's a difference of
opinion which I hope the readers of Micro C will straighten out for me. If there's
anyone out there who would like to help
a novice computerist get started, I'd sure
appreciate the help.
Jim Dalgliesh
79 Athlone Drive
Winnipeg Manitoba Canada R3J 3K9
Editor's note:
Contact SWP and see if they would sell you
the non-memory parts and software you'd
need. Otherwise, if you are just using your
SWP board as a RAM drive you might want
to check into MicroSphere's unpopulated
RAM disk. It goes to 1 Meg if you fully stuff
it.
Simple System Patch
Could you publish a simple operating
system patch so the delete key would
duplicate the function of the backspace
key? This has got to be one of the most
frustrating problems for beginners, but I
guess most of us tend to forget about it
after a while.
Seems to me it should only involve a
single hex digit, installed with the DDT S
command. All we need to figure out is
which hex digit, and where it should go.
Installation could use SYSGEN and a
temporary file like the submit files on
your K-22 ZCPR disk.
Leon H. Braskamp
1459 Via Cortez
Placentia CA 92670
Programmers' Blues
I work for a consumer software publisher, and in case you're not aware, consumer software publishing and distribu-
tion is in shambles. Inventories have
remained high, drying up new orders for
the publishers. Add to this the fact that
now over 2000 software companies are
competing for about 100 spots on the retail shelves, and you have quite an interesting brew. This has resulted in the falling prices that we've all seen, and the
incredible failure rate of software publishers.
I wouldn't feel too bad for these guys,
though. They don't really treat us programmers all that well. We're blessed
with royalties of 5 to 15 percent payable
whenever cash flow permits, usually at
least six months after a completed program is delivered (it can take that long
just to sell into and collect from distributors and retailers). And we pay for any
marketing, management, or personnel
problems with lost sales and lost royalties.
Therefore, I've decided to start a programmer-owned software publishing
company, and I'd like to invite any interested Micro C readers to contact me.
We'll publish our own software and distribute direct. Each of us will have the
buying power and advertising clout of a
publisher, but will retain control of our
products. This type of arrangement
means that a quality program can be sold
at a very attractive price, while still providing a reasonable income for the programmer. We might even have a little
fun.
Michael Fitzgerald
1924 N. 6th Street
Concord CA 94519
Editor's note:
Good idea, Michael. I can see some problems such as documentation, support (phone
type), software quality control (so a few marginal products don't ruin the company for the
good products), sharing advertising costs,
etc. However, it could still work.
Rah, Rah, Rivendell
I recently purchased an expansion
board from Rivendell Audiocomp in Poway, CA and am now in the process of
building it.
The Theory of Operations Manual is
excellent. The Assembly Manual is not
quite of Heathkit quality, but is more
Micro Cornucopia, Number 25, August-September 1985
than adequate to build and debug the
board. Rivendell is to be complimented
on an excellent job.
Robert B. Base
7600 France Avenue South
Edina MN 55435
HSC Co-processor Compatibility
My Kaypro II has recently become a
Kaypro 8 thanks to your Pro-8 ROM. I
used TEAC 55s and traded in myoid
Tandons. I also added an HSC C0161668 co-processor, and both modifications are compatible. I thought that readers might like to know this because
apparently the SWP 8088 co-processor
will not operate without at least drive A:
being an original Kaypro part.
Also, the review of the HSC 1668 in
Issue 20 must have been of an older
model because HSC is now shipping
cross compilers and sources as part of
the original package.
Now for the questions. I've begun using the Waltz Lisp interpreter and would
like to hear from anyone out there who
has worked with it or another Z80 Lisp. I
am interested in programs (for writing
courses) that ask questions, save the answers, and then allow the student to edit
and rearrange those answers.
Second, I have an old Timex (Z80
based) computer with 16K of RAM
which I am sure can, somehow, be
turned into a print spooler for the Kaypro, but I have no idea how to do it. If
anyone has any suggestions about what
to do with an old Timex, save using it as a
high tech door stop, I would be glad to
hear about it.
Finally, now that I have this HSC
processor, I figure there is some way its
ROM can be fooled into becoming bank
switched memory for the Z80. You have
run articles in the past about bank
switching on single board computers,
but I have seen none for the Kaypro.
Robert Royar
/
1628 South Third Street
/_ ---_.
_ __ _
Louisville KY 40208
i;:p-;~. :.~.j
-
(
"
, r.·..........." ... •
, .... t••••••.•.•• 1
;.''' ..r'_'·
.•... ,I
'"
I·····~·
~
~ •.I" ... ,.".,
"~~
r •• •••
,
89
Enabling Shift Keys
I wanted a spare keyboard with lots
of keys, so I ordered the $40 job
advertised by Cascade Electronics. It
is a used Micro Switch board in a
good quality case with Hall-effect
switches and should last forever.
There is just one problem with it. You
select upper or lower case letters with
a jumper requiring removal of the
motherboard. I cobbled up the circuit
shown" below to enable UC/LC with
the shift keys.
.lUMPER POSITIONS
ON MOTHERBOARD
I
This keyboard requires nearly one
amp of + 5 volts, whereas keyboards
with mechanical switches need only
100 milliamps or so.
Turner F. Caldwell
POBox 116
Burgess VA 22432
8. Run a jumper from U10 pin 5 to
U12 pin 8.
9. Run a jumper from U9 pin 3 to
U10 pin 5.
10. Run a jumper from U10 pin 4 to
U12 pin 9.
Incidentally, the best automatic
disk drive shutoff unit I've run into
(for drives with 110V motors) is
CMR's ASU-2A. It does its job well
(auto-turnoff of drives), can also control external 110 volt appliances, and
can be controlled from an external
device, too. Write to CMR, P.O. Box
7022, Alexandria VA 22307, for more
info.
Bill Bretzius
1902 Ancilla Court
Alexandria VA 22307
Jumpering Toshiba Drives
I recently installed two new drives
in my Kaypro. I chose Toshiba
ND04D Model FDD5401-EOK01,
which are double-sided 48 tpi units. I
read in issue #21 about a mod which
would make the drive lights work the
way they were always supposed to.
This mod was part of the 4-drive
decoder circuit which I was not particularly interested in at that time, so I
tried something on my own.
The Toshiba drives have a LED
jumper option in addition to the HMI
HS head load option. The options are
LI, which gives you a drive light with
an in use signal, and LD, which gives
you a light with a drive select signal.
With the LI option jumpered, I got no
light at all. With the LD option I got
a drive light on the logged-in drive
just as always. A third option was to
jumper both the LI and the LD
option, which would give a light
whenever both a drive select signal
and an in use signal were present.
The ~aypro was not set up with an
in use signal, so I did the signal by
jumpering from U81 pin 2 (motor on)
to J6 pin 4 (in use). Actually you can
trace U81 pin 2 to a solder pad right
next to J6. That did it. Figure 1 shows
the jumper configuration and the LI,
LD, HM Table.
Ron Lokey
1020 East 12th
Colorado City TX 79512
Figure 1 • Toshiba drive jumpering options
Bringing Up Xerox To 4MHz
One of the Letters To The Editor,
Issue 3, Dec. 1981, tells how to bring
a BB up to 4MHz. I've now modified
two Xerox 820-1s, and they both
worked with no difficulty the first
time I powered them up. Following is
my little contribution to your fine
publication. I t is merely a Xerox
numbering of the original article, but
I hope it will help someone as much as
that letter helped me.
1. Change the crystal from 20MHz
to 16MHz.
2. Remove and discard U12.
3. Change U9 from 74LS04 to 7404.
4. Cut trace from U10 pin 4.
5. Cut the trace from U11 pins 4 and
TO DRIVE SELECT JUMPERS
MOTOR ON
90
~150Jl
~.5V
JUMPER UBI-2 TO J e - , 4 .
-4>02
UBI
MfRON
J6
5V
.~150J\
p~...4_i-_--......;c{>
IL..Q HM~INTERNAL
HEAD
~HD
LOAD
L-....QLoo----r\...LE~_ON
OLI~
LI
LED comes on When In Use is set to 1. If LD is shorted also, LED
comes on only when the drive is selected.
Shorted
LD
LE 0 comes on when Drive Select is set to 1. If LI is shorted also,
LED comes on only when In Use is logic 1.
Open
HM
Head loading is controlled with the Motor On signal.
HD
Head loading is controlled with the Drive Select signal.
5.
6. Connect U11 pin 3 to the trace
from U11 pin 4.
7. Connect U11 pin 4 to the trace
from U11 pin 5.
MOTOR ENABLE
,......,.
-.
SELECTED DRIVE
Shorted
Open
Micro Cornucopia, Number 25, August-September 1985
Tips On Articles In Issue 22
The Z80 to S-100 interface in Issue
22 was very interesting. I believe you
were right about there being a mistake in the RD/ logic. The circuit as
shown gates the data from the S-100
bus into the Z80 at the proper time,
but the single board system RD/ is
not disabled. I believe the circuit
should be as shown below.
The statement about no modifications to the S-100 board is also
misleading. The clock circuit must be
wsabJ ;d. If the S-100 card generates
any f:lignals from a higher frequency
than the Z80 clock and divides down
to get the clock, it may be rather
difficult to generate all the required
signals. If you choose the S-100 board
carefully you should be able to simply
pull out the clock generation chip.
The sound generator for the STD
bus was also a good article. It mentioned the WAIT/line and the conflict
with the onboard wait state generator.
The problem is caused because this
line is supposed to be an open collector line, but the Caltex mod (it may
now be a regular "feature") drives it
as a standard TTL load. The modification to the BBII suggested in the
article solves the problem on that end,
but the sound board also drives this
line as a standard TTL load. This will
work fine as long as it is the only
board driving the line. A better solution would be to add an open collector
gate to the sound board.
Jim Skinner
20435 SW Alexander
Aloha OR 97006
Excessive BDOS Errors
Otto Hiller double density users
that experience excessive BDOS errors should replace R1, the 4.7K write
pre-compensation resistor going to pin
17 of the WD2143-03 four phase clock
generator, with a lower value like
2.7K. The problem shows up at track
2CH and high tracks where bit density is high. Disks formatted with the
new value will be clean, but disks
formatted with the old value resistor
will continue to give trouble.
The circuit is very much like the one
in Micro C Issue 11, page 5. Users of
this system with· a similar problem
might try setting the pot to 2.2 or
2.7k and reformat their disks before
trying to use them.
Joseph Malik
221 Bradley Dr.
Wilmington NC 28403
Cold Solder Joints
My Kaypro 2-83 crashed and
wouldn't read disks when warm. It did
OK with the top off, most of the time,
but a fan didn't help. The problem
turned out to be a cold solder joint on
the power supply board where the
plug for the power cable is located.
The power supply had several of these
bad jo~ts, causing the drives to
occasionally get 2 volts instead of 5.
Not an obvious problem, but one
that's easy to check out and fix!
Charles H. Kuttner, M.D.
213 Water Ave. NW, Suite 300
Albany OR 97321
MITE Software Hints
I own a Kaypro 2-84 and was
impressed with the communications
package I received from Mycroft Labs
to upgrade to the MITE software.
There are two installation options (F
and G on the Portable Computer
installation menu) available for the 284. One requires that either U35 (a
Z80A PIO) be installed or pins 22 and
24 of U35's socket be jumpered. This
option uses the Z80's interrupt system to service the incoming data
stream. The other option requires no
modifications, but uses a polling
scheme and suffers from problems in
synchronizing the simultaneous display and printing of incoming data.
If one elects the option of installing
U35 (necessary if the Real Time Clock
is to be added) then the CP/M (version
Micro Cornucopia, Number 25, August-September 1985
2.2G) supplied with the 2-84 needs to
be modified to initialize the PIO.
Examination of the operating system
indicates that a functionally useless
subroutine at F87F through F88B is
called during a cold boot. Replacing
the code at these locations with:
3E 17 D3 22 D3 23 ED 4D 00 00 00 00 C9
will initialize the PIO when a cold
boot occurs and allow MITE to work
correctly.
Additionally, the code at F6BA
through F6DO initializes the Z80A
SIOs that handle the printer and
modem serial ports. All initial values
are stored in. a table extending from
F647 to F660. The modem baud rate
is at location F647, and that for the
printer at F648. The data at locations
F64A through F654 controls the configuration of the serial printer port;
that located at F655 through F65F
controls the configuration of the modem port. You'll need to change the
table entries if you want to change the
default values for the serial ports.
Information on the required values
can be found in a SIO specification
sheet.
Changes to any of the above locations can be made by using the
following procedure:
First with a system disk in drive A
save the system image by entering:
SYSGEN
A
<return>
<return>
SAVE 40 CPMGG.COM
To edit the CP/M image enter:
DDT CPMGG.COM
Make the required changes using DDT
commands -- CP/M starts at 0980
(i.e. EOOO=0980)
Enter:
AC
To install the edited image enter:
SYSGEN
<return>
A
<return>
<return>
Jim Hays
2401 53rd Ave. SW
Seattle WA 98116
•••
91
FREE
CATALOG
Write or call
for a free catalog
lalso included with each order from)
MICRO CORNUCOPIA
I
)
P.O. Box 223 •
Bend, OR 97709
(503) 382-5060
9-5 PST Monday-Friday
~
DISK 512.00 ea.
postage paid
KayPro Disk K1
Modem aoftware
KayPro Disk K2
Utllltl"
Really oodles of spiffy little
(and big) programs to help you
get full use of your KayPro.
KAYPRO USERS DISKS
DASM: A true Zilog format disassembler for 8080 and Z80 object
(.COM) flies. Now you can turn
.COM flies Into .MAC files
UNERA.COM: Simply enter "UN ERA"
followed by the name of the file you just
erased and presto, the erased file Is backl
A lifesaverl
FINDB54.COM: Checks an entire disk, reports bad sectors, and then creates a special file containing those sectors. You save a
bundle on disks.
CAT2: This is a group of programs which create and maintain a
Single directory of all the programs you have on all your disks.
Even keeps track of which programs are backed up and which
aren't.
UNSPOOL.COM: Use your Kay,Pro II and print files at the same
tlme .. Doesn't slow down system responsel
DUMPX, DU-77, COMPARE, SUPERSUB, FORMFEED, DIRDUMP, ••• and all have documentation on disk.
KayPro Disk K3
Games
KayPro Disk K4
Adventure
This disk contains one 191K game. Adventure. ADVI.COM:
This Is the latest, greatest, most cussed adventure ever devised
by half-mortals. This Is the 550-point version so the cave Is
greatly expanded and the creatures are much smarter.
KayPro Disk K5
MX-80 Graphics
KayPro Disk K8
Word Proc:eulng Utllltl"
KayPro Disk K7
Small C Version 2 Complier
KeyPro Disk K8
Small C Version 2 Source
KeyPro Disk KSI
ZCPR
KeyPro Disk K10
AsHmblers
KayPro Disk K11
LIbrary. Checkbook Programa
CHECKS: This has been a very popular group of programs.
Categorizes checks so you can keep track of which are tax
deductible and which get charged to which projects. Includes
source and example check files. Very powerful.
L1BR: This Is a complete set of library routines which let you
group files Into a single file called a library. Then CP/M sees
them as a single file, but with the library routines, you can list
them out separately, run them separately, or divide them up
again. Almost like a unix environment.
DISPLAY, VLlST, PGlST: Additional screen and print utilities.
KeyPro Disk K12
FORTH
for Kaypro II, 4 and 10
KayPro Disk K13
Source of flg-FORTH
KayPro Disk K14
Smartmoclem Program
KayPro Disk K15
Hard Disk Utllltl"
KayPro Disk K18
Pascal Complier
KayPro Disk K17
Z80 Tools
KayPro Disk K18
System Diagnosis
Just as we finished editing the routines on this disk, we
received a copy of KayPro's diagnostic disk. The memory test
and drive exercise routines on this disk are more powerful than
KayPro's versions. (Plus, It's only $12) Setup for KayPro II & 4.
KayPro Disk K19
Prowrlter Graphics
KayPro Disk K20
Color Graphics Routines
KayPro Disk K21
SBASIC Roullnes • Screen Dump
SBASIC: Finally a disk of SBASIC software. There are some
good examples of structured programming on this disk
(including one program written both ways so you can see the
difference).
SCREEN DUMP: This is a screen dump for all KayPro's new
and old. You can buy a similar package elsewhere for $60.
KayPro Disk K22
ZCPR (Again)
This disk Is filled with ZCPR files. You get ZCPR for the KayPro
II, KayPro 4, and the KayPro 1O. This version Is fixed so that you
can pass control characters from the keyboard to the printer,
and you can choose to have It recognize the semi-colon for
drive select (as well as the colon). So you can enter "B;" or "B:"
to select drive B. Super neatl
ZCPR, for those of you who don't know, makes CP/M a lot
friendlier. It searches drive A for any .COM file it doesn't find on
the current drive, the TYPE command scrolls text 24 lines at a
time, and a new LIST command outputs a file to the printer.
KayPro Disk K23
F"t Terminal Software. New BYE
KeyPro Disk K24
MBASIC Gam" • Keyboard Translator
We sifted through many, many games before coming up with
these gems. All will work on any KayPro and all come In
MBASIC source.
USOPEN shows you the fairway on the screen. You select the
club and direction for each stroke. After you reach the green
the display shifts to show details of the green and flag. For one
to four players.
DUCK Is an offshoot of aliens (pardon the pun). Huntertries to
shoot down the ducks while ducks try to bomb the hunter.
(Much fairer than real life.)
CASTLE Is an adventure In which you select your attributes
(strength, dexterity, and Intelligence), and you getto purchase
arms and protection. Great documentation and a very
Interesting game.
KSTROKES is a keyboard translator similar to Smartkey. Bill
Forbes did an excellent job creating this program. You can
create and save translation files on disk. The program even
includes a table which generates WordStar commands from
the KayPro's keypad! You can define 8 keystrokes at up to 63
characters each.
KayPro Disk K25
Z80 Macro Assembler
KayPro Disk K26
EPROM Programmer. Characler Editor
Kay Pro Disk K27
Typing Tutor
A complete typing tutor for beginners and experts. Written in
. Australia, it comes complete with source. This was customized
for KayPro II, 4 and 10 by Barry Cole of WLAKUG.
The documentation says you can learn to touch type in 8 hours
(probably a little longer for mortals).
KayPro Disk K28
Modem 730
KayPro Disk K29
Turbo Pascal Gamel 1 With Source
KayPro Dllk K30
Turbo Pascal Gamel II With Source
KayPro Dllk K31
Turbo Bulletin Board
Complete Bulletin Board Package for only $12
KayPro Dllk K32
Forth-83 Much Fancier Forth
KeyPro Dllk K33
A luper utllltle. dllkcontalnlng:
NewSweep, Nulull, Superzap, & VDO-KP.
KayPro Dllk K34
Five gamel plul lource (moltly Turbo);
includes improved Othello and Eliza.
KayPro Disk K35
Small C Complier. Source - Vers2.1;
(Requires Microsoft's M80) .
KayPro Disk K38
Small C LIbrary of 100 Function••
UPGRADES
Schematic Packages
Finally, a complete schematic for your portable Kaypro, lOgically laid
out on a single 24" by 36" sheet, plus a very complete illustrated
Theory of Operation that's keyed to the schematic. You'II get detail
information on your processor board that's available nowhere
else.
For instance, those of you with the 10 and new 84 sy.;tems get
a thorough rundown on your video section complete with
sample video control prOgrams in assembly language and
Pascal. Of course. all packages contain serial and parallel
port details and prOgramming examples as well as
co/1ll'ete coverage of the processor, clock, I/O, and
disk controller (information that is not even available in
Kaypro's own Dealer Service Manual~
~ro
Schematlc Packages
Kaypro" & 4 (pre-841 •••••••..••.•••.•• S20
Kaypro 10 (pre-84 1 .................... S20
Kaypro 84 series I" & 41 .............. S20
All prices inclucle postage.
With this nifty little plug-in board, your
Pro-8 ROM can access up to tour SW
drives. You just plug a tour-drive 34-pin cable
into this board and you can add up to t\No
additional drives.
Now you can run any mix ot 19J~ 390K. and
784K drives as drives A. 8. C. and D. You can run
your original drives as A and 8 then add 3BOK or
784K drives outboard as C and D. You can even run
tour half-wides inside your original Kayprol
The Plus-4 Decorder Board tor only '39"
Watch for 4-84 and 10-84 compatible ROMs coming
SPECIA L PRO-884 NOTE:
The Pro-884s are sensitive to the version of CP/M you
are running.
7. Neither the Pro-884 nor the Pro-884 Max will run on
CP/M, 2.2U. However, if you can locate a CP/M 2.2F or
2.2G system dilk (your dealer should have a cOpy) you
should be able to run our 884 monitors. (Don't try to boot
For G before you chunge monitors.)
2. There are two distinct versions of CP/M 2.2G. Only the
Pro-884 Max is sensitive to the version of 2.2G you have - it's
the ZCPR In ROM that's the problem. (If you have CP/M 2.2F
then you have a Normal CP/M.) So, before ordering the Max,
boot up your original system disk and read the sign-on. If it's
CP/M 2.2G then we need to know whether it is the high (normal)
version or the low (minus) version.
To determine your G version (you'/I become a G Whiz!):
A DDT cr
LS cr
(ddt's response)
The first line of the response will be a JMP 0600 or a JMP 0800. The
IMP 0600 means that you have a low (minus) version, and the IMP 0800
means that it's a normal version. When you order your Pro-884 Max, be
sure to specify whether you want the normal Max or the minus Max. Otherwise, we '/I Just guess that you need the normal Max.
EDITORIAL ____________________________________________________________
(continued from page 7)
The Perfect software packages have
always had their share of problems.
For instance, they got no awards for
speed, and creating a new printer
interface led more than a few to swear
off hard copy altogether. In addition,
Perfect's software support group got
about as many calls as their counterparts at Ashton-Tate. (Just a guess but I wouldn't be surprised if the
original Perfect writer and formatter
weren't copies of Mince and Scribble,
an editor and formatter written in
BDS C and sold for many years within
the BDS C users group.)
When the Perfect package was
dropped by Kaypro (they got tired of
all the calls, too), the Perfect people
just about disappe~ed (how many
perfect people do you know?). The
software and the name were bought
up by Thome, which rewrote some of
the code and then rereleased the
programs, aiming their ads at current
Perfect users.
But Thome added copy protection,
some of the programs ran slower than
the originals, and the new Perfect filer
couldn't read files created by the older
version. Pow, pow, pow!
They did a really bad job with the
copy protection. We got some calls
from folks who had found that the
program wouldn't run with some systems (including ones which contained
the Pro-8). They went back to their
original ROMs to make the packages
run, but after finding the other problems, they were reinstalling the Pro-8s
and returning the new Perfect packages. Pow!
If you're going to do copy protection, you do your damdest to make
sure the software is going to run when
it's supposed to. The worst thing you
can do is create a program that isn't
robust enough to work dependably.
Pow!
Anyway, I just got word that
Profiles will no longer be carrying
advertising for Thome. The staff at
the magazine is getting tired of complaints about the new Perfect. Kaboooom!!
I t would really be unfortunate if
these blunders meant that the early
Perfect series would no longer be
94
available. A lot of people wouldn't
trade their original Perfect writer for
three copies of W ordStar and a Mickey Mantle baseball card. Heck, if
Thome sold the original writer, calc,
and filer for $50 a set (without
support) they'd probably do just fine.
Kaypro 1
Speaking of the original Perfect
package, I understand that Kaypro is
again shipping it with the Kaypro 1.
Yep, the Kaypro 1 is a Kaypro 4-83
with two double-sided drives and the
original Perfect package for $995. It's
amazing what happens when a company has a warehouse full of spare parts.
On the other hand, I'd rather see
them ship systems out the front door
at cheap prices than' see them dump
parts to the tin recyclers.
Using Canons From Scratch
We just got a report that a few of
the 2/3 height Canon drives are eating
disks (for brunch). According to one
caller, a quick head load/unload cycle
can scratch a track so badly that the
disk can't be reused.
He also mentioned that BG Micro
has had only 40 drives returned out of
8000 units (not a bad average at all).
Keeping the head loaded all the time
and then turning the drive motor off
to minimize disk wear (what Tandon
has been doing all along) sounds like
the safest bet.
SOG
If you've been following Micro C for
any length of time (over five minutes),
you've become accustomed to hearing
about SOG. Well, I don't know what
to say about it this time.
You'll see this issue after the SOG
(or during the SOG if you show up in
Bend), but I haven't the slightest idea
how it turned out, since today is May
13.
I could, however, do some anticipatory journalism.
Anticipatory Journalism
Anticipatory journalists announced
that Dewey had lost to Truman. They
also announced: the Z800 (and they
are still announcing it), MicroSoft's
Windows (but we can see right
through that one), the Japanese computer invasion (actually, the Japanese
are scared to death that Commodore
will start marketing in Japan), and the
demise of CP/M.
With that kind of hysterical precedence, there is no question that I must
come up with some definitive anticipatory copy about the SOG. So here it
is:
For those of you who missed the
SOG, I'm happy to announce that the
event went off without a hitch. The
weather was clear with highs. around
85 (unless you prefer it a little cooler)
and lows in the mid 40s (that's as high
as our lows go).
Over 25,000 happy folks rafted
down the McKenzie River. We set a
new record when we stuffed 814
freaked programmers into a single
raft (or was it 814 single programmers
into a freaked raft). I understand that
it was the first time a 6-ton load of
rank beginners shot that stretch of
river without a guide (he just didn't
fit in). Next year we'll be rafting in the
Queen Mary (another first).
Philippe Kahn announced that Borland's secretly working on a BASIC
interpreter for the Apple II. He said
that after turning Z80s and 8088s into
speed freaks he had a burning desire
to see how slow a computer could go.
Plus, he's been fascinated by BASIC
ever since he discovered mazes.
Integrand announced the hacker's
cabinet. This ordinary looking cabinet
not only holds your system, drives,
and power supply, but it also holds
hundreds of tiny antennas. When you
press the interference button on the
front panel,' the top ejects, implanting
itself in your ceiling and employing
the antennas, all of them connected to
your system clock. Noone within a
radius of one mile can receive a usable
FM, AM, or TV signal.
This little gem really shuts down
Johnny Carson when you're into more
important things (like computing).
Note: this cabinet has not yet received
FCC approval.
The Ampro folks announced a big
change for the little (board) company.
It's the Jumbo Board, and it's a really
Micro Cornucopia, Number 25, August-September 1985
"Linda Barlow got the call, and it
was one of her good days, so instead
of telling him ten times the list price,
she looked up her retail prices, told
him, and bang, 10 days later here was
a check in the mail. From Jerry
Pournelle.
"Pournelle also asked for a review
machine from Morrow, but no one in
the Morrow organization recognized
the name, so they said to hell with
him.
"One time in Atlanta or San Francisco, George and I and Jerry Pournelle and a bunch of other people were
having dinner together when Jerry
asked George when he was going to
send him (Pournelle) a Morrow. Jerry
is a little hard of hearing, so George's
response was loud enough for the
whole restaurant to hear.
"George said, 'I'm not, and anyone
in my organization who sends you one
will be fired.'"
At this point, George Morrow spoke
up from the audience. "Bill, I figured
that if he bought one from you, he
could buy one from me."
hush-hush operation. Funded by the
Department of Defense, this system
should be completely secure because it
is constructed entirely out of (very)
discrete components.
They were unable to display the
system at the SOG because the main
board was too large to fit on a flatcar.
Assembly is supposed to be finished
by 1990. Debugging will be expensive
because of the long-distance phone
charges between engineers working at
opposite ends.
We had to cut SOG IV a bit short
because of reports of a worldwide
technology crisis. I t appears that
having that many hackers away from
their terminals that long has been a
major setback for mankind (and womankind).
Finally, if you believe all this,
you've been reading the editorial too
long.
Culture Corner Interrupts Serious
Meeting
The first indication anyone had that
George Morrow (you know, Morrow
Computers) had arrived at the Sacramento Micro Users Group (SMUG)
10th anniversary celebration was a
loud guffaw at the back of the hall.
While waiting to speak, he had
made the mistake of picking up a copy
of Micro C #23 and reading the
Culture Corner ("Confusing At Catastrophy Manor").
As he started his talk, George held
up the copy of· Micro C and strongly
suggested that everyone read page 82.
He said the poke at Jerry Pournelle
was "right on."
Bill Godbout (of CompuPro) also
read that Culture Corner, and during
his talk added: "I'll tell you how Jerry
Pournelle got Ezekial II."
"Several years ago we sent a computer to Byte for review. It was a
loaner, and they had it for 30 or 60
days and then sent it to Jerry Pournelle.
"One day, when the evaluation
period had just about expired, someone called and said he had an evaluation machine from us and he didn't
want to return it, so how much would
it cost to keep it.
Jerry Pournelle Gets Micro C Free
I was sitting there thinking smugly
that I hadn't given Jerry anything
(very self-righteously). However, just
weeks after I returned from Sacramento, I received a letter from Kevin
Rhoads ordering (and paying for) a 1-
raE
f
CATALOG AND
SIGNAL PROCESSING BOOKLET
r
CIRCUIT ANALYSIS
•
•
•
•
•
Fast Machine Code
Complete Circuit Editor
Free Format Input
Worst Case/Sensitivities
Full Error Trapping
ACNAP
•
•
•
•
Venlan
2.0
Civil servant
Athletic scholarship
Military intelligence
Fiduciary trust
Artificial intelligence
Postal service
Petty cash
Electrical engineer (l just stuck this
in on an impulse.)
If you come up with some of your
own - especially computer related keep them to yourself. We're confused
enough already.
David Thompson
A Sensible Oxymoron
•••
SIGNAL PROCESSING """" GRAPH PRINTING
$59.95
• Transient Analysis
• Time Domain Manipulation
$69.95
$59.95
•
•
•
•
•
Spectra Manipulation
Transfer Function Manipulation
Editing and Error Trapping
Free Format Input
ASCII and Binary Files
1'.. Fast Machine Code
VISA. MASTERCARD
•
•
•
•
•
•
linear/Logarithmic
Multiple Plots
Full Plot Labeling
Auto/Forced Scaling
Two Y-Axes
ACNAP/SPP Compatible
PLOT PRO
$49.95
• Any Printer
• Vertical/Horizontal
PC PLOT
$59.95
• Screen Graphics
• Pixel Resolution
• Epson Printer
...i\..
'-
([Em ~~2!~~~~~ 9
22008" " " "
Micro Cornucopia, Number 25, August-September 1985
Some oxymorons to think about:
AFFORDABLE
CP/M ENGINEERING TRSDOS
MSDOS
SOFTWARE PeDOS
SPP
• Compatible Data Files
• Calculates Component Power
• 30 Nodes / 200 Components
\..
Contradictions
During his talk in Sacramento, Bill
Godbout mentioned some common
phrases that are self-contradictory.
The formal term is, I believe, "oxymoron," but the term makes no more
sense than the phrases it describes
(which is, perhaps, appropriate).
• Linear/Non-linear AnalySiS
• FFT/Inverse FFT
• La Place Transforms
Any Size Circuit
Input / Output Impedances
Monte Carlo Analysis
Transients (with SPP)
DCNAP
r
year subscription to Micro C for Jerry
Poumelle.
So now Dr. Poumelle has a free
subscription to Micro C.
w". Swte 20)
• Rii,e,,'de. CA 92501 • USA
~
(714) 781·0252
95
'INTIDS
The following folks are reaching you for only 20
cents per word. If you would like to reach the
same audience, send your words and 20 cents for
each to Micro Cornucopia.
Superb mailing list program stores and man·
ages names and addresses that can be revised at
any time. Its size is limited only by the disk
storage available. The address labels may be code
selected and printed in five different formats on
your computer paper or on label rolls. In addition
to the name and address fields, there are four
more fields in each record for telephone number,
date, and two amount fields if desired. At any
time the entire roster may be printed out. For CP/
M 2.2 based systems with two disk drives and
printer capable of 132 columns for maximum
usage. Terminal installation program module
included. Supplied on 8" SSSD, 5.25" Kaypro
and many others (please write). Special introductory offer by ABLE DATA SOFTWARE, Inc.,
PO Box 86923, Station C, North Vancouver, BC
V7L 4P6. Only USA $19.95 postpaid check or
money order. Offer expires August 31185.
THE ULTIMATE
SOFTWEAR
IS IN ...
ORDER YOUR
MICRO C
T -SHIRT TODAY!
These user-friendly tan shirts
are formatted in mahogany border
with black enhanced mode design.
The fully integrated system is compatible to size S, M, L and XL, for
only $6.95 ppd. ($8.50 all foreign).
MICRO
CORNUCOPIA
P.o. Box 223
Bend, Oregon 97709
96
Keyboards for computer builders - 83 keys, full
ASCII; upper/lower case, all control characters,
numeric pad, caps-lock, repeat, self-test! Brand
new, hundreds sold already to builders of Apples,
Big Boards, Xerox 820s. Parallel output, positive
TTL logic, strobe. Uses only 106mA of +5 volts.
Custom case available. 90 day warranty unmodified. Keyboard $35. Documentation (21 pgs.)/
cable package $5. Spare custom CPU/ROM $4.
UPS included. Call/SASE for detailed spec sheet.
Electrovalue Industrial Inc., Box 376-MC, Morris
Plains, NJ 07950. (201) 267-1117.
Public Domain UG Software Rental: CP/M UG
Vol 1-92 on 46 8" flippies, $45, SIG/M UG Vol 1216 on 108 8" flippies, $125. PICONET Vol 1-34
on 17 8" flippies, $25, Pascal-Z UG Vo11-2513 8"
flippies, $25, KUG (Charlottesville) 39 disks, $25,
IBM-PC SIG 1-300 PC-DOS, $325, PC-Blue 1-110
MS-DOS, $125, directory disks $5 PP. Also
available on 209 5.25" formats. Rental is for 7
days after receipt with 3 more days grace for
return. Credit cards accepted (preferred). Downloading-disk format conversions. Call. User
Group Software Automatic Update Service, $7.50
per 2 volume set PP. 619-727-1015 24 hrs. 619941-0925 info. 9-5. National Public Domain
Software Center, 1533 Avohill, Vista, CA 92083.
8" drive Cleaning Kits - 12 cleaning disks and
carrier jacket made by Datalife, regular price,
$29.95. Close out price just $6.00 each plus $2.00
postage. Limit 2. P.D. Software, 1533 Avohill,
Vista, CA 92083.
Xerox 820-11 disk drive adaptor. Allows connection of 2 8" and 2 5" drives. Upload or download
software. Send for free color photo. Kit $50.
Assembled $70. Merit Computer, 1658 Westport
Road, Merrit Island, FL 32952. (305) 452-4655.
5.25" hard disk controller, DTC-510A, BIOS
source on 8" floppy, $125. Qume 5.25" DSDD
half height floppy, 2 for $125. Many S-100
boards. Please request listing of excess equipment. Noor Singh, P.O. BOX 807, Santa Cruz,
NM 87567. (505) 753-2211.
Xerox 820-1, complete working board with SWP
DD disk controller card & software $170.0011
Boschert power supply for dual 8" drives & two
SA801 drives $250.00IlSA1403D hard disk controller card, SA1004 8" hard disk upgrade for
820-11 $400.00I/P.D.C. Box 1217, Costa Mesa, CA
92626.
Two new universal data systems, 30011200
model 212A modems. Cost $625. Sell both for
$500 with manual & ASCOM. P.D.C., Box 1217,
Costa Mesa, CA 92626.
Xerox 820-11, complete. Two 5.25" drives,
manuals; 820-1 board with or separate. Gary L.
Smith (703) 759-9160, (703) 442-6312, 10404
Artemel Lane, Great Falls, VA 22066.
Big Board II system. In Tek 8500 series box
with power supply, 2 Shugart 8" SSDD drives,
keyboard, NO monitor (recommend Amdek 300).
Runs good. CP/M 2.2. HW documentation. Some
software extras including user's disk 9, 14, 15.
$550. J. Binkley, 1945 SW 139th, Beaverton, OR
94055. (503) 626-7720.
SE Florida BB 1 active users group. Call Mike.
Evenings 1-305-923-9934.
For Sale - BB 1 system: 5mhz, dual drives, dyna
disk, serial print driver in BIOS, serial hardware
implemented. Fully enclosed & cooled. Scads of
software includes language compilers, WP,
DBMS, dev tools. Includes Zenith green screen
and all hdw & sfw documentation. An honest
system. I'll throw in a PIOIRTC expander PCB!
$1250.00. D.L. Carlyle, 1107 Horseshoe Lane,
Blacksburg, VA 24060. (703) 639-8456 days. (703)
552-6981 eves.
New bulletin board system in Montanal Features: 300/1200 baud, software downloading
(games, utilities, languages, database, others),
classified ads, etc. For more information, call
Curt at 406-728-1097. To join the Pony Express
Bulletin Board, please send $25 annual subscription to Curt Porteus, Structured Data Systems,
211 W. Front, Missoula, MT 59802, or go online
406-728-1088.
Sloo equipment, Integrand 15 slot motherboard $65, Jade Double D disk controller (factory
assembled) with documentation $250, 32K static
RAM board $50. Also Novation Cat 300 baud
acoustic modem $50, CDC 9404 8" SSDD drive,
220v model with transformer for 117v $60. H.
Regan, Box 4486, Rockville, MD 20850.
CBASIC Version 2.38 original Digital Research
disk with manual and 1 backup copy. 8" CP/M
3740 format. Runs on Big Board ~. $52.00
includes postage. No personel checks please.
Chris Beachy, Box 4645, APO, NY; 09755
20 Megabyte 5.25" hard disk. New. Seagate
ST506 standard. Manual included. $299 each.
Limited quantities. B.W. Systems, P.O. Box
9791, Austin, TX 78766. (512) 255-8350.
12" green monitor. New Motorola with antiglare. No case. 30 Mhz band width. 110/220
power. STD TTL split video/sync. $2 complete
docs. $36 plus shipping monitor. Many available.
Bob Bruner, 10220 N. 39th Lane, Phoenix, AZ
85015. (602) 978-6252.
For Sale: Compupro CPU-Z 4mhz $125.00
6mhz $135.00. Cromemco Tuart w/cables $125.00.
PMMI-103 modem works to 600 baud $150.00.
Integrand X/5 mainframe $150.00. Any two
items less 10%. All tested & working. (219) 6659945. AI Marshall. 408 Oakwood, Angola, IN
46703.
Xerox 820-1 boards, complete and tested $95.00. Xerox ASCII keyboard with case and
cable - $55.00. (313) 974-5409. P.O. Box 4268,
Ann Arbor, MI 48106.
TBKUG/Data COM Network supports CP/M80, CP/M-86, Kaypro, 8-100, IBM, and compatible users with public domain software via modem.
We have three on-line databases holding over
40mby of CP/M and PC/M8-DOS programs
available 24 hours at either 300 or 1200 baud. We
specialize in CP/M disk utilities, ZCPR2 & 3,
ME X, DOS utilities, Turbo Pascal, word processing, RCP/M utilities, BBS software, library
utilities, catalog utilities, and much more. The
Florida systems will soon be merging into one
large multi-user system with many incoming
lines. The TBKUG has 63 specific user disk
volumes for Kaypro owners and over 5,000 files
available by mail. We sponsor a monthly magazine that is distributed electronically by various
national bulletin boards called the $R/O Read
Only. It has many product reviews, public
domain update information, Turbo Pascal column, and others of interest to CP/M and DOS
users. The TBKUG has been in existence for over
two years and has more than 600 members
worldwide. We have been mentioned in numerous
Profiles' articles and proudly support the CP/M
users of the world with high quality software. An
application may be downloaded via modem by
calling (813) 937-3608, or send a SASE to:
TBKUGlDataCOM Network, 14 Cypress Drive,
Palm Harbor, FL 33563. Annual dues are $30.00.
•••
Micro Cornucopia, Number 25, August-September 1985
~------------------------THECULTURE
Crossword #2
C
o
234
1m
13
~
IE
R
Across
1 Mitts _ _ __
6 Does nothing.
8 Any _ _ in a storm.
11 Preliminary Degree.
13 Iterative programming structure.
14 Sorrow.
17 Not well done.
18 Two bytes.
20 President of Microsoft.
22 Itinerant programmer.
23 Unusual resistance.
25 Electrical suffix.
26 A million.
28 Japanese sash.
29 Keyboard addition.
33 Stop.
35 Positive _ __
38 Seedy part of a Macintosh.
40 Aid.
411._.
42 Kid's undetailed schematic.
45 Tuberculosis.
46 Norwegian capital.
47 What we want to do with Dana.
48 Little boards.
50237 in hex.
51 Allocate a variable.
52 Iron.
53 Original equipment manufacturers.
56 SOG mass transportation.
58 Micro C staff.
60 Single user transportation.
61 Dynanlite.
62 A programming language.
65 Invert it.
66 What rock climbers do.
67 Very impressive flower.
68 On _ _ and needles.
70 Desert state university.
71 Kind of loop.
73 Secret service.
74 Letter post script.
76 Comes before AB.
78 Down'-_ ___
79 Track 2, Sector 1 (On a SD 8").
81 Kind of gate.
83 Hotshot.
84 Prosecutor.
85 (Googolplex)O
87 Light emitting device.
88 Subtrac opposite.
90 Fuss.
92 Low power display.
95 Antique operating system.
96 High _ _ __
98 Kind of gate.
99 Button of last resort.
100 Binary galaxy members.
104
mouth (with 96 across).
107 Current measurement.
108 Operating system.
1091 +3 + 4 + 5 -. _ _ __
110 Bend.
Down
1 Early language.
2 Translates .HEX to .COM.
3 Standard TTL driver.
4 Mimic.
5 Read/Write.
6 Vegas lights.
7 Digital blow torch.
8 Excutable code.
9 Output enable device.
10 Half-nibble company.
11 Surrounds the elbow.
12 Classifieds.
15 Exclamation.
19 Reds' state.
21 In a rut.
24 FORTRAN loop.
27 Easy out.
30 Assembly-language programmer.
31 Inverse DOS.
32 Micro C techie.
34 Terbium symbol.
36 On.
37 Underwater Navy group.
38 In addition.
39 Programmable array logic.
42 Warm or cold.
43 Programmer-in-chief.
44 Power plant regulator.
48 43690 or -21846.
49 Mrs. spouse.
54 Yuppie sports car (of the '60s).
55 Statistical package.
57 Related to.
58 Two complements.
59
fly.
60 Darth Vader's Lunchbox.
61 Built a better one?
63 Language of Wirth.
64 Linked _ _ __
69 What the computer industry isn't.
71 One way devices.
72 A logic gate.
75 Everything but the kitchen _ __
77 155 NW Hawthorne.
79 Captain Crunch.
80 Talking horse or word processor.
82 Aluminum symbol.
86 Electronic high school dance.
88 _ _ soon as possible.
89 Negative prefix.
91 Sandwich cookie.
93 Corn on the _ __
94 Shugart 5" or 8" _ _ __
97 High school dance.
101 Women's Air Force.
102 Post Office on the tracks.
103 PC or MS.
104 Hangs out with Pa.
105 Terminal Unit.
106 Input/Output.
Tidbits
By Gary Entsminger
Future Tense Editor
Thanks for the prompt resp:~;;;"': ,.: ·. ·~or more info:
to our Turbo Pascal programming
contest. It's going to be a lively
Poor Person Software
competition, judging from the first
3721 Starr King Circle
Palo Alto CA 94306
entries. Code and documentation have
415-493-3735
been clear as snowmelt. (What a
chilling thought.)
No doubt, Z80 romantics are alMicro C Bulletin Board
ready dreaming up uses for a 1
Thanks for your support and
megabyte RAMdisk (one of the grand
suggestions. Lots of users have been
prizes). Bruce couldn't wait (of course
patient as we work out the kinks in
he isn't eligible anyway, being a Micro
the system.
C staffer). His Kaypro already has one
If you need a fullscreen file debugof MicroSphere's 1 meg screamers
ger, we've added EDFILE.COM in
along with four drives (an 8", two 5"
the NEW directory. EDFILE has a
quads, and a 5" 48tpi) and 5MHz. He
handy search function and lengthy
connected his RAM disk to a separate
documentation (in EDFILE.DOC). We
don't have source, but it's useful as is.
power supply, so it stays loaded
Also Eric N. Skousen has contributaround the clock.
If you want to know more about the
ed a Micro C index. It'll be on the
RAMdisk contact:
bulletin board and available on a user
disk for those of you without modems.
Thanks, Eric.
MicroSphere, Inc.
Keep calling: 503-382-7643.
P.O. Box 1221
Bend OR 97709
Xerox 8" Adaptor
503-388-1194
Merit Computer is selling a disk
drive adaptor which enables the Xerox
A Write Hand Person
820-11 to run 5" or 8" drives.
It's been a good week for CP/M.
It's available in kit for $50, and
Poor Person Software has released a
semi-Sidekick, with notepad, calendar,
assembled and tested for $70. Fits on
the rear of your 820.
file and directory viewing, phonebook,
and communication programs included. Perhaps more importantly, you
Contact:
can write your own programs to be
called from Write Hand Man. Your
Merit Computer
programs need to be in assembly
1658 Westport Rd.
language, so you'll need some talent
Merritt Island FL 32952
here, but Poor Person helps by provid305-452-4655
ing a sample shell to get you started.
As is, Write Hand Man's notepad
Surplus
and view commands are useful. You
Erac Co. in San Diego is advertising
enable Write Hand Man after you
Kaypro mainboards, monitors, keyboards, and other miscellaneous parts.
boot up WHH on
Then, with a single command (that
you define) you create the Write Hand
Man window, and in a second you're
"jotting" or "reading" a note, or
viewing a directory or file. Two escapes and you're back to the file you
were editing.
One flaw - Write Hand Man
doesn't refresh the screen. Your editor
will have to take that responsibility.
But that's no big deal in WordStar or
Vedit. Costs $49.95.
98
8280 Clairemont Mesa Blvd.,
Suite 117
San Diego CA 92111
619-569-1864
Speed Tidbits
The Cray-2 has the largest internal
memory in the world with 2 billion
bytes. Its top speed is 1.2 billion
FLOPS (floating point operations per
second). It's 6-10 times faster than the
Cray-1 (you were worried?), and maybe 50,000 times faster than a Kaypro
484.
In terms of how fast we used to be
- what took about a year (and 72
dozen pencils) in the early 1950s takes
about a second now. So who needs
speed?
Simulators are current bigtime
speed users. Scientific and military
researchers play the "what if" game
and depend on oodles of details for
accuracy. Engineers can create lifelike
worlds with fast computers capable of
high resolution graphics. In theory,
our knowledge of the world increases
as we add more and more details. To a
computer, that means more data.
Two sci-fi novels I read recently
address the subjects - simulation and
speed - in rather offbeat fashion. If
you like "serious" SCIENCE fiction,
try Stanislaw Lem's "The Chain Of
Chance" and Philip Dick's "Ubik."
They're both short, thought-provoking, and depict highly-plausible futures of advanced human beings.
Lem's simulator uses a computer to
piece together the "mystery," and
Dick's characters, who have computing power of a sort, use themselves to
solve the puzzle.
Both are in paperback, and have
been around for years, so you should
be able to find them in a library or
used book store for $1 or so each.
New From Micro C
We've been working hard to improve our user disks, and have just
finished Kaypro Disks 33, 34, 35, 36
and CP/M 86 Disks 7 and 8 (see
Laine's 86 World for details on these
last two).
K33 is a utilities disk containing
some very useful programs:
NSP207.COM - an excellent file
utility written by Dave Rand.
NULU11.COM - a program for
creating, manipulating, and extracting libraries.
SUPERZAP.COM - a full screen
debugger.
VDO-KP.COM - a fast, mini-editor
that's small and easy to use.
All are well documented. (What's
this, a change in policy?)
K34 is a games disk (DB lick, Eliza,
Germs, Othello, Cribbage). This inverse video version of Othello is the
best public domain one I've seen. All
the games come in Turbo Pascal
Micro Cornucopia, Number 25, August-September 1985
library. It's chocked full of information (288 pages), and definitely written
for the knowledgeable.
Ting carefully explains F83's source
and new features, using MS-DOS for
examples.
It's not a light volume (weighs at
least two pounds), and Ting has lapses
in grammar (does the name tell you
something?), but it's FORTH. $25 in
paperback.
source, except Othello (written in
FORTRAN), so besides having fun
playing, you'll have examples of Turbo programming.
K35 and K36 are Fred Scacchitti's
upgrade of the Small C compiler
(version 2.1) and C library. He's
incorporated Jim Hendrix's additions
and added a few of his own tricks. 35
is the compiler and source (in a
library), and 36 is a library of around
100 functions (also in a library).
Thanks for the good work, Fred.
Available from:
Mountain View Press
P.O. Box 4656
Mountain View CA 94040
415-961-4103
Forth 83
C.H. Ting's "Inside F83" should be
a valuable addition to your FORTH
And that's Tidbits!
•••
Z
SETSYOU
FREE!
Starting At
$695.00
CO-PROCESSING
The most cost effective way for Z80
system owners to obtain 16/32 bit
processing power and software
compatibility is via the HSC CO-16
Attached Resource Processor.
CO-16 is compatible with any Z80
system running CPM 2.2 or CPM 3.
A few examples include:
• KAYPRO 2/4/10. TRS 2/3/12/16
• AMPRO LITTLE BOARD
• HEATH 89. SUPERBRAIN
• XEROX 820 • TELEVI DEO 802/803
• MORROW· EPSON QX-10
• LOBO • OSBORNE 11 EXEC
• CROMEMCO • Plus many more
CO-16
Every CO-16 is delivered with
• 16/32 bit micro processor • 16 bit
Operating System • 256 Kilo RAM
• Z80 interface • 16 bit RAM disk
driver • CPM80 2.2 RAM disk driver
, CPM 2.2 or CPM 3 compatibility
• "ources with tools • hardware
diagrams • board level or case with
power supply.
CO-1686
Z Operating System, an 8-bit OS that flies I Optimized HD64180/Z80 assembly language
code - full software development system with proven linkable libraries of productive
subroutines - relocating (ROM and RAM) macro assembler, linker, librarian, crossreference table generator, debuggers, translators and disassemblers - ready to free
youl
High performance and flexibility' Productivity results from dynamically customized OS environments. matching operator. tasks and machine.
Real-time control kernel option allows quick software development for industrial control
applications. other tools and utilities for office desk-top personal computing functions. local area
networks to Ethernet. AppleTalk. Omninet. ArcNet. PC-Net (Sytek) - from micro to mainframe
command. control and communications. Distributed processing application programs are easily
developed.
• Extreme organizational flexibility. each directory another environment
• Multiple Commands per line
• Aliases (complex series of commands known by simple names) with variable passing
• Named Directories with absolute password security
• Full-screen command line editing with previous command recall and execution
• Shells and Menu Generators. with shell variables
• Command-file search Paths. dynamically alterable
• Screen-oriented file manipulation and automatic archiving and backup
• 512 megabyte file sizes. 8 gigabyte disks handled
• Auto disk reset when changing floppies
• TCAP database handles characteristics of over 50 computers and terminals.
more easily added
• Tree-structured online help and documentation subsystem
• 76 syntax-compatible support utilities
Your missing link has been found - ZI Now fly with eaglesl Fast response, efficient
resource utilization, link to rest of computing world - shop floor to executive suite,
micro to corporate mainframe. Cali 415/948-3820 for literature.
~
E.!J Echelon, Inc.
.
101FirstStreet. Suite427 • LosAltos,CA 94022. 415/948-3820
The only Z80 16 bit co-processor
includes • INTEL 8086 • 6Mhz no
wait states • MSDOS 2.11 • IBM
BIOS emulator • Memory expansion
to 768K • 8087 math co-processor
• 3-channel Real Time Clock • Runs
many IBM PC applications • Shares
hard disk space with CPM80 • PC
diskette compatilibility on many
systems • CPM86 • Concurrent
CPM is coming.
CO-1668
The only Z80 16/32 bit co-processor
includes • MOTOROLA 68000
microprocessor • 6 Mhz no wait
states. CPM68K • Full "C" compiler with UNIX V7 library and floats
• Memory expansion to 1.25 million
bytes • NS16081 math co-processor
• Real Time Clock • Com plete software development environment
• 100% file compatible with CPM80
• OS9/68 UNIX look alike coming
in February.
Dealer,Distributorand OEM's invited
Hallock Systems Company, Inc.
267 North Main Street
Herkimer, N.Y. 13350
(315) 866-7125
FOR THE BEST OF US ...
WE BRING
ENGINEERS, SCIENTISTS
AND THE IBM-PC
TOGETHER
THE CYPHERT.M.
A COMPLETE 68000 & Z80A
SINGLE BOARD COMPUTER SYSTEM
WITH ULTRA-HIGH-RES GRAPHICS!!
FREE
61000 FURTH.
FREE
61000 FURTH.
CYPHER-DOS
(CPM·ao
COMPATIBLE).
68000 BASIC
AND
TEKTRONIX
AOIO
EMULATIDN.
",III;
,'!I"
I~~ I~
,1!l1
CYPHER-DOS
(CrM·IO
COMPATIBLE).
,
'iii
'iii
-
6BOOD BASIC
AID
TEKTRONIX
COlO
EMULATION.
\'
'Iii
~/LOWER PRICESll M~GABYTE CYPHER AT $1,199.95 ASSEMBLED AND TESTED WITH
;, 68000 & Z80A DUAL PROCESSORS (BEST OF BOTH
WORLDS' OPTIONAL Z80 H AND FASTER 68000)
• 1 MEGABYTE MEMORY. (41256 DRAM)
• DOUBLE DENSITY FLOPPY DISK CONTROLLER (8'.
5'1.' OR 3'1," WD 2793).
• DMACONTROLLER FOR FAST IMAGE TRANSFERS TOI
FROM VIDEO MEMORY. (lNT 8237).
• 2 RS232 SERIAL PORTS (ZSIO).
• 24 BIT ADDRESS MANAGEMENT FOR ZBO.
• 4 LAYER P.C.B. (9'1." x 14'10").
• RUNS Cp·M·80 2.2, Cp·M·80 3.0, CP·M·6BK. (NOT
INCLUDED) COMES WITH CYPHER DOS. RAM DISK,
6BOOOBASIC, TEKTRONIX4010ANDADM 3A TERMINAL
EMULATION
• MANUAL AND COMPLETE SCHEMATiCS....... '20.00
• BARE BOARD, EPROMS, zeo BIOS, 68000 BIOS,
zeo MONITOR, 68000 MONITOR, CYPHER-DOS
AND MUCH MUCH MORE.. .
. ..... 13119.85
: ~~~g~~~ .. .... POWEilsuppLY
.........~:::~
• CASE ......
..
S84.85
• HARD DISC INTERFACE PLUG·IN CARD ........ 1150.00
• INTEGRATED CASE, KEYBOARD AND POWER
SUPPLY. . . . . .. . .. . . .... .. ... ... . ... ... .. .. . ... .. 1225.00
• OEM MANUFACTURING AGREEMENT AND CUS·
TOM HARDWAREiSOFTWARE SERVICE AVAIL·
ABLE.
MOTOROLA
~ ~~~":R~gE;~~~~~SU S DOLLARS
- - . SHIPPING" 81:1b SH1PPtNG
_
• ULTRA HIGH RESOLUTION GRAPHICS. PRIVATE 128K.
PROGRAMMABLE UP TO 1024 x 1024 RESOLUTION
. (NEC 7220, GREAT FOR CAD SYSTEMS').
• REAL TIME CLOCK (MULTITASKING CAPABILITY!).
• TWOCHANNELSOFD/AANDND, 12 BIT RESOLUTION
(MUSIC! ROBOTICS' LAB WORK,)
• 16K MONITOR EPROM. (EXPANDABLE TO 64K)
• 4K STATIC RAM. (EXPANDABLE TO 64K)
• PROGRAMMABLE BAUD RATE GENERATOR. (8253)
• PARALLEL ASCII KEYBOARD INPUT."
• FULL 6BOOO EXPANSION BUS (60 PIN HEADER,
BUFFERED BUS)
PRICES SUBJECT TO CHANGE WITHOUT NOTICE.
CP.M IS A TRADEMARK OF OIGITAL RESEARCH
IlL INTEL
MOTEL COMPUTERS LIMITED
174 BETTY ANN DRIVE, WILLOWDALE,
TORONTO, ONTARIO, CANADA M2N 1 X6
(416) 229-4727
( i ) . @
01eleVideof)
The TPCI
. .
•.
CPltvl@ PORTABLE COMPUTER.
•
•
•
•
12·bit resolution
24·KHz throughput rate
16 channel SE, 8 DI
LABSTAR Software
8·bit resolution
30 KHz throughput rate
16 channel SE, 8 01
LABSTAR Software
$490.00
$690.00
FEATURING:
• 4MHz Z80A CPU • 9" yellow screen
• Detached 83 key Keyboard
• GSX·80 Graphics Driver
Memory • 64K User RAM expandable to 128K
• 32K Screen Memory • 8K EPROM
INCLUDED
* Software • CP/M 2.2 • Word Processing
WITH
• Spreadsheet • Business Graphics
SYSTEM
* Disk Drives • Dual, 5114" DSIDD 368K formatted
* 110 • Parallel Port • RS·232C Serial Port
• Mouse Port • Optional RS·422 Networking
All for the LOW price of 5995.00
with Legend 880 Printer and Cable $1175.00
MOVE-IT Communications Software is available in many formats
for downloading between your new Televideo Portable and other
systems ..............................•........ $99.95
GRAM-A-SysT II Communications package. EasyLink Access
software for Televideo, Xerox, Kaypro (over 30 formats $219.00
•
•
•
•
IEEE·488 GPIB Multifunction Board
•
•
•
•
*
Full GPIB controller capability
Three 16·bit interval timers
24 digital 110 lines
Software included $495.00
Waveform Synthesizer Board
FLOPPY DISKETTE
*WE CARRY 8" DISKETTES*
8" SSIDD House Brand ............... '25°·
8" DS/DD Texas Inst. Lifetime Warr...... '28"
Diskette Holders
Eichner 25 for 8" Diskettes ............ '18··
Flip 'n File 50 for 8" Diskettes ......... '29··
THANK YOU!
• Generates user·definable signal
• Up to 2000 points per envelop
• 200ns maximum output rate per point
$795.00
WE VALUE YOUR BUSINESS.
ORANGE COUNTY COMPUTER
F}
" ~ ~
5122 Bolsa Ave,#108 • Huntington Beach, CA 92649
714/895·5033
III
TERMS: 30 day money baCk guarantee. We accept Visa. M/C (add 4%). UPS·COD. or prepayment.
Cashler's Check or Money Order on orders over $100.00. Allow 2 weeks lor checks to clear. Prices
subject to change without notice. Prices good for month of publication only.
@)
100
@
Micro Cornucopia, Number 25, August-September 1985
The Pascal Runo-..-..-..
I'm not going to beat around the
hush about this contest (see the Editorial
for bush beating). In short, we're having
a contest, you're invited (in fact, we're
not inviting anyone else), and the prizes
are really spiffy.
This contest is intended to encourage
concise, clear programming style.
Contest deadline is November I, and
we'll announce the winners in the
February-March '86 issue of Micro C.
So Let's Get To The Prizes
The Grand Prize is your choice of a
Microsphere 1 Megabyte RAM DISK or
Trevor Marshall's 32032 Coprocessor kit.
It's the full 1 megabyte 32032 board that
plugs into the KI60r any other Pedone.
Each of the Next Five Scorers receive
the following:
Choice of two products from Borland
(including the Modula 2 Compiler) AND
... choice of $100 worth of products from
Micro C.
Scoring
Programs will be judged by Philippe
Kahn and the Micro Cornucopia staff on
a point system. Total points decide the
winner.
What To Do To Get A Prize
To enter just write a program in Turbo
Pascal and send it to Micro C. Make sure
you specify "Turbo Pascal Contest" on
the envelopes, so we'll know it's an entry.
If possible, include a listing on paper
along with your disk.
We're not looking for a magnum opus,
just something useful or interesting (or
both). It doesn't have to be long - a lot can
be said in Turbo in 100 lines.
0-15 for ALGORITHM
0-15 for READABILITY OF CODE
0-30 for FUNCTIONALITY
(induding ease of use)
0-20 for ORIGINALITY
0-20 for DOCUMENTATION
So Start Programming ... An editor, a
business application, a game, a utility,
something educational - anything that
interests you probably interests us. Just
make sure the program you submit is
original, unpublished, and wriuen by
you in Turbo Pascal during 1985.
PS Hackers in other languages, stay
tuned. Your contest is coming.
Any version of Turbo Pascal is OK - 2.0,3.0, 'CP/M, MS-DOS
.....
... ----------------------------------------------Program
,.
NOTE: I hereby release this
program to the ~ublic Domain
and give Micro Cornucopia the
right to print this listing.
Signature ____________________
'ritle:
Purpose:
Free Pascal Runoff T-shirt
Size: OS OM DL DXL
(For the first 100 entrants.)
Please list all people involved in the development of this program
Name _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Ph: (
)-----------------
Address
City _ _ _ _ _ _ _ _ _ _ _ _ _ _ State _ _ _ _ _ _ _ _ Zip
MICRO CORNUCOPIA· P.O. Box 223· Bend, Oregon· 97709
Order No. (503) 382-5060
r--------DBDIIFDII--------,
I
I
I
I
I
I
I
I
I
Micro C works because it is a central information exchange for
the doers in this crazy industry. So we encourage you to share
your trials and tribulations. That way we can invent new
wheels rather than redoing the old ones over and over.
What information would you like to see in Micro C?
What kind of exciting adventure (misadventure) are you
working on?
Quantity
Description
U5.
1yr. $16 0
2yr. $300
3yr. $420
SUBSCRIPTION (6 issues per year)
o New o Renewal
--
Price Each
Can & Mex
Other Foreign
Total
I
I
0$22
0$30
$15
$15
$15
$15
$15
$15
$12
$12
$12
I
I
o
$20
$20
$20
I
BACK ISSUES
#'s
$3
$3
$5
T·SH I RT (specify S, M, L, XL)
$6.95
$8.50
$8.50
USERS DISKS - 8" SSSD, CP/M
#'s
CP/M 86 0 I SKS - 8" SSSD
#'s
I
I
I
I
KA YPRO DISKS for the 11,4, & 10 - 5" SSDD
#'s
I
I
KAYPRO SCHEMATIC PACKAGES
01\ & 4 (pre·84)
2,4, 10 (84)
[J 10 (No Modem)
I
I
I
I
I
I
I
FREE KAYPRO CATALOG
I
OTHER ITEMS:
I
I
I
I
I
I
I
I
I
I
I
L
o Check or money order enclosed
(US funds only, payable on a US bank)
Pnces mclude postage (AIr Mall for Other ForeIgn)
CardNo._~_
o Visa
I
I
I
I
I
I
I
0 MasterCard
Make checks payable to:
MICRO CORNUCOPIA
TOTAL
ENCLOSED
_ _ _ _ Exp. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
Signature
I
Are you a current subscriber to Micro Cornucopia? OYes 0 No
NAME ______________________
I
I
I
PHONE (?) _ _ _ _ _ _ _ _ _ __
I
ADDRESS _______________________________________
I
CITY _ _ _ _ _ _ _ _ _ _ _ _ _ _ STATE _ _ _ ZIP - - - -
I
MICRO CORNUCOPIA • P.O. Box 223· Bend, Oregon • 97709
-----------------Order Number (503) 382-5060 • Technical Calls 9 - Noon PST Only (503) 382-8048
I
__ J
BACK ISSUES
$3.00 each
us
CAN MEX
ISSUE NO. 1(8/81)
Power Supply
RAM Protection
Video Wiggle
112 PFM. PRN
16 pages
ISSUE NO.2 (10/81)
Parallel Print Driver
Drive Motor Control
Shugart Jumpers
Program Storage Above PFM
112 PFM, PRN
16 pages
ISSUE NO.3 (12/81)
4 MHz Mods
Configuring Modem 7
Safer Formatter
Reverse Video Cursor
FORTH words begins
16 pages
ISSUE NO.4 (2/82)
Keyboard Translation
More 4 MHz Mods
Modems, Lync, and SIOs
Undoing CP/M ERASE
Keyboard Encoder
20 pages
ISSUE NO.5 (4/82)
Word Processing
Two Great Spells
Two Text Editors
Double Density Review
Scribble. A Formatter
20 pages
ISSUE NO.6 (6/82)
BB I EPROM Programmer
Customize Your Chars
Double Density Update
Self-Loading ROM
Terminal in FORTH
24 pages
ISSUE NO.7 (8/82)
6 Reviews of C
Adding 6K of RAM
Viewing 50 Hz
On Your Own begins
24 pages
ISSUE NO.8 (10/82)
Drive Maintenance
Interfacing Drives
Installing a New BIOS
Flippy Floppies
C'ing Clearly begins
Xerox 820 begins
28 pages
ISSUE NO.9 (12/82)
BB II EPROM Program
Relocating Your CP/M
Serial Print Driver
Big Board I Fixes
Bringing Up WordS tar
Cheap RAM Disk
32 pages
$5.00 each
Other Foreign
ISSUE NO. 10 (2/83)
Saving a Flaky Disk
Hooking Wini to BB II
The Disk Inspector
JRT Fix
Serial Keyboard Interface
Pascal Procedures begins
36 pages
ISSUE NO. 18 (6/84)
KayPro EPROM Programmer
110 Byte: A Primer
KayPro Joystick
Serial to Parallel Interface
Business COBOL
60 pages
ISSUE NO. 19 (8/84)
Adding Winchester to BBII
6MHz on the BBI
Bulletin Boards, Getting
It Together
Track Buffering on the Slicer
4MHz for the 820-1
64 pages
ISSUE NO. II (4/83)
BB I Expansions
BB II Details
Dyna, RAM Disk Review
Easier Reverse Video Cursor
PlannerCalc Review
KayPro Column begins
36 pages
ISSUE NO. 20 (10/84)
HSC 68000 Co-Processor
DynaDisk for the BBII
Serial Printer on BBI Sans SIO
Cheap & Dirty Talker for KayPro
Extended 8" Single Density
72 pages
ISSUE NO. 12 (6/83)
256 K for BB I
Bringing Up BB II
dBase II
Look at WordStar
Double Sided Drives for BB I
Packet Radio
5MHz Mod for KayPro
40 pages
ISSUE NO. 21 (12/84)
Analog to Digital Interface
Communication Between
High-Level and
Assembly Language
Installing Turbo Pascal
Low Intensity BBI Video
Turbo Pascal, The Early Days
80 pages
ISSUE NO. 13 (8/83)
CP /M Disk Directory
More 256K for BB I
Mini Front Panel
Cheap Fast Modem
Nevada Cobol Review
BB I Printer Interface
KayPro Reverse Video Mod
44 pages
ISSUE NO. 22 (2/85)
Converting a Xerox 820-11
to a KayPro·8
S-100 Expansion for Single Board
Z80 Systems
Sound Generator for the STD BUS
Reviews of 256K RAM Expansion
Boards
In the Public Domain
88 pages
ISSUE NO. 14 (10/83)
BB II Installation
The Perfect Terminal
Interface to Electronic Typewriter
BB I Video Size
Video Jitter Fix
Slicer Column starts
KayPro Color Graphics Review
48 pages
ISSUE NO. 15 (12/83)
Screen Dump Listing
Fixing Serial Ports
Playing Adventure
SBASIC Column Begins
Upgrading KayPro II to 4
Upgrading KayPro 4 to 8
48 pages
ISSUE NO. 16 (2/84)
Xerox 820 Column Restarts
BB I Double Density
BB II 5"/8" Interface Fix
KayPro ZCPR Patch
Adding Joystick to Color Graphics
Recovering Text from Memory
52 pages
ISSUE NO. 17 (4/84)
Voice Synthesizer
820 RAM Disk
KayPro Morse Code Interface
68000-Based System Review
Inside CP/M 86
56 pages
Micro Cornucopia, Number 25, August-September 1985
ISSUE NO. 23 (4/85)
Automatic Disk Relogging
With CP/M 2.2
Interrupt Driven Serial Print
Driver
Low Cost EPROM Eraser
Smart Video Controller
Review: MicroSphere RAM Disk
Future Tense begins
88 pages
ISSUE NO. 24 (6/85)
C'ing Into Turbo Pascal
8" Drives On The Kaypro
Alternative Power Supply For
The Kaypro
48 Lines On A BBI
68000 Vrs. 80X86
Soldering: The First Steps
88 pages
ADVERTISER'S INDEX
Adevco, Inc......................... 56
Andratech .•.•..•..••..••.•••••••••• 56
Axxess ••...•.••...••..••.•••..••••• 68
BD Software ....................... 17
BV Engineering .................... 95
Barnes Research ................... 45
Borland International •.••.•.•..•.••• 12
Brooke ••.•••..•••.• ; . . • . • . • • . • • • • •• 75
Cal-Tex Computers .••.•..•... Inside Front
Cover
Cascade Electronics. . .. .. . .. .. .. . •• 48
C.C. Software .••..••.••..••..••.••• 39
Chandler Software ............... ' " 37
Colonial Data ................... 28,29
Computer Helper Industries ••.••.••• 65
Computime •••.•..•••..•••.••••••••• 9
The Data Mill.. .. .. .. .. .. .. .. .... ... 33
Davidge Corp. . • . . . . . . • . . • . . . • . . . • .. 23
Desktop Publishing.. .. .. .. .. .... ... 14
Digital Research. . • . . . . . . • . . . . • . • . •. 51
Echelon, Inc. • • • . • • • • . • . . • • • . . • • . • •• 99
EcoSoft ....•....••••...•••..•..•••. 23
Emerald Microware .. • .. .. .. . . .. .. •. 20
Epic Sales .•••..•••.••..••••••..••• 84
ERAC Co .••.•...••••...••.....•..•• 10
Ferguson Engineering ...••.••.••.•. 27
Forbes •....•••...•.••...•......•... 41
Gemini .•..•••..•..••...•...••.••.•• 22
Greywolf Marketing. • . . • . . . • . . . . . • .• 80
HSC, Inc ...••.•..•.••..••.•...•••.• 99
Haventree Software.. . . . .. . .. .. .. ... 34
Hawthorne. . . . . . • . . • . . . • . • . • . • . . . •. 61
18 Computers.. .. .. .. .. .. .. .. .. .... 24
Integral Systems ................... 88
Integrand .....••...•...••..••.••..• 62
Kamasoft ..•...••...........•..•••. 60
Kenmore Computer Technologies •• Back
Cover
L.A. Software. . . • . • • . • . • . . • • • . . • . . •• 31
L-Band Systems. • . . . . . . . • . . . • . . • . .. 69
Manx Software .......••..••. , Back Cover
Megatel •...•..•.•...•...•...•..•... 64
Mendocino Software. . • • . . . • . • • . • • •. 37
MicroCode. • . . . . . . • . . . • . . . . • . • . • • •. 24
Microcomputer Systems ..•.••.••..• 25
Micro Cornucopia. 19,34,83,92,93,96
Microgroup •.•..•...•.......•.••... 61
Microprocessors Unlimited ..•. Back Cover
MicroSphere •..•..•..•...•.•.•••••. 44
Mitek ......••.....•••..•..•..••..•. 71
Motel Computers, Ltd ...•...••.•.•. 100
Occo ...••...••...•••..•..•..•.•... 57
OmniCom ••..•...•..•.•..•..•..••..• 6
Optronics Technology. . . • . . • . . • • . .. 48
Orange County Computer •.•••••.. 100
Ordinate Solutions ................. 24
Pascal Power... . . . . . • . . . . • . . . • • . • .. 75
PC Tech •..•....•••..•..•••..•....• 48
PS Computers. . . • . . . . . • . • • . . • • . . • • .• 8
Percon •.....•...••..••...•.•....... 79
Periphco . . . • . . . . . . . . • . • . . • . . • • . . • •• 47
Phenix Co. .. . . . . . • • . • . . . • . . . • • . • . .• 45
Plu Perfect Systems ••.....•........ 56
Poor Person Software .............. 79
Programmers Shop ................. 39
QuaTech ....•.....•...•.•....•..•. 100
Rivendell Audiocomp .• • . . . . . • . • • • .. 61
Rolland Management ••• . • . . . . • . . . •. 55
SLR Systems. . . . • • . • . . . . . . . . . • • . • • •. 9
Selectronics. . . . . . . . . . . • • . . . • . . . • . •. 72
Servo Computers. .. .. .. .. . .. .. . .... 82
Sheepshead Software ..•••.•.•...••. 41
Slicer .•..•..............••...••••.. 40
Smart Pik ..••..•....•...••.•.....•• 47
Soft Advances ...••...... Inside Back Cover
Softaid •.......•..••....•....••..•... 37
Software Toolworks ....•...••...•.. 16
Southern Pacific.... .. . . .. . .. .. .. ... 54
Spectre Technologies. . . •• . . . • • . • • .. 32
Tiny Tek ..............•............ 87
Unified Software .......... ..... .. ... 64
Western Wares .. .. .. .. .. .. .. .. .. ... 17
WW Components. . .. .. . .. . .. . .. .... 66
Xpert Software .•...•.•.••....•..••. 49
103
The Last Page
By Gary Entsminger
There's just enough room left in
Micro C this issue for a little logic, so
we'll close a few circuits.
Micro C Staff
Analog Or Digital?
These two systems differ in the way
they represent information. In an
analog system data are represented
by a continuously varying signal
(wavelike). In a digital system data
are represented discretely - in bits
that have set values - either Os or Is
(OFF or ON).
_ Your stereo is an analog system
(probably). Your computer is digital
(unless it's a very early Heathkit). For
information about analog systems
read RollingStone or Stereo Review.
For digital - stay in tune with Micro
Cornucopia.
between the processor and all those
inputs.
Buffers can also protect the computer from the outside world. The most
common RS-232 line drivers and receivers are simple inverting buffers
(1488 drivers and 1489 receivers). All
Kaypros, Big Boards, and Xeroxes
use these.
The 1488 drivers change the .7V
and 4V (off-on) TTL signals to the
+ 12 and -12V (space-mark) RS-232
signals. The 1489 receivers change the
+ 12 and -12V RS-232 signals back to
.7V and 4V, the standard off-on signal
levels inside the computer. The 1488s
and 1489s are also designed to shrug
off the static and other electrical
garbage that would destroy less hardy
chips.
In A Digital
Circuits open and close to control
the flow of information. A gate is a
simple circuit which originally (in the
1950s) was made up of individual
transistors, resistors, and diodes. The
big breakthrough of the early 1960s
was discovering how to combine some
of these transistors, resistors, and
diodes (which made up a gate) on one
piece of silicon. This was called SmallScale Integration (SSI), and it
changed the world.
The first integrated circuit consisted of fewer than 12 gates on a square
about the thickness of paper and the
width of a pencil lead. The gates or
circuits were connected to the outside
world via tiny wires.
By the 1970s, LSI (Large-Scale
Integration) was rolling, and as many
as 50,000 parts were squeezed onto a
single chip.
Build A Buffer
Now let's see how a simple buffer
works. (Go ahead and build it, then
use a voltmeter or LED to see what's
happening.) You can use any garden
variety NPN transistor, but the
2N2222A (or equivalent) costs about
$1 and is commonly available at Radio
Shack and other parts houses.
A transistor has an emitter, base,
and collector (E, B, and C). Before you
leave the store, make sure you know
which lead is which - lead identification may be marked on the transistor
or on the packaging, or the dealer may
have to look it up.
You can think of your transistor as
a sensitive switch. A small amount of
current flowing into the base (B) and
out the emitter (E) allows a larger
amount of current (about 100 times as
much) to flow into the collector (C)
and out the emitter (E).
Buffers
A buffer is the simplest device in
your computer. It outputs whatever it
gets for an input, either straight or
inverted. Buffers are often used when
there are lots of inputs listening to the
same signal line (say a data line or
address line). It takes a lot of output
to drive such a line, and most processors, for instance, don't have very
strong outputs. So we stick a buffer
104
.5V SUPPLY
R2
100 (112\01 OR LARGER)
INPUT
(POINT A)
OUTPUT
(POINT B)
TI 2N2222A
- SUPPLY
. Figure 1 shows how to connect up
your 2N2222 transistor (or equivalent)
and two resistors to make a standard
inverting buffer. (When the input goes
high, the output goes low.) Connect
the input to ground to force it low.
Connect it to + 5V (or whatever your
supply voltage is) to force it high.
(CONNI!CT TO BUFF'I!R OUTPUT)
INPUTo/
SOOA
Figure 2 shows how to make an
LED monitor. The LED is simply a
diode (it only conducts current in one
direction) that glows when current
flows through it. The LED will glow
when its input is high.
Circuit Theory
When the input (A) goes high (5V),
about 1/1000 of an amp flows through
R1 (5V/5000 ohms .001 amp) into the
base of T1 and out the emitter to
ground. This allows up to 1/10 of an
amp (100 times as much) current to
flow into the collector and out the
emitter to ground. This collector current must also pass through R2 which
acts like a narrow spot in the current's
path.
When the T1 is turned on (conducting) it's easier for current to get
through it than through R2. So the
output point (B) will be effectively
connected to ground (the output will
be close to OV).
When the input voltage (at A) to
this circuit goes low the current flow
through R1 stops. So there is no more
current flow into the base of T1 and
out the emitter. So the transistor
"turns off," no longer allowing current to flow into the collector and out
the emitter to ground.
Now the output (B) is completely
disconnected from ground (T1 is shut
off), but it is still connected to + 5V
by R2. So the output (B) goes high (to
5V).
All this is a long explanation of a
very simple circuit. Next, we'll try our
hand at a non-inverting buffer and
eventually build some AND and OR
gates (it only seems logical).
•••
Micro Cornucopia, Number 25, August-September 1985
DSDBO
FULL SCREEN SYMBOLl9 DEBUGGER
\ IHE SINGLE BESI
DEBU
R
FOR CP/M-aO.
alRULY
ING
paODUCI
11
_
LEOR ZOLMAN
AUTHOR OF 80S C
D Complete upward compatibility with DDT
D Simultaneous instruction, register, stack &
D
D
D
D
memory displays
Software In-Circuit-Emulator provides write
protected memory, execute only code and
stack protection.
Full Z80 support with Intel or Zilog Mnemonics
Thirty day money back guarantee
On-line help & 50 page user manual
P.o. BOX 49473
AUSTIN, TEXAS 78765
(512) 478·4763
Ie
S
SAME DAY SHIPPING (USUALLY)
$69 KIT
8087-3 MATH
$105.00
8087-2 COPROCESSORS 140.00
DYNAMIC RAM
256K
256Kx1 120 ns $ 4.49
256K
256Kx1 150 ns
3.25
64K
64Kx1 150 ns
.99
EPROM
27C256 32Kx8 250 ns $15.99
27256
32Kx8 250 ns
9.10
27128
16Kx8 250 ns
3.47
27C64
7.85
8Kx8 200 ns
2764
8Kx8 250 ns
2.50
2732A
4Kx8 250 ns
2.75
STATIC RAM
6264LP-15 8Kx8 150 ns
6116LP-3 2Kx8 150 ns
MasterCardNISA or UPS CASH COD
NO EXTRA
COSTON
F-EXSAT
DELIVERY
~~
CALENDARICLOCK
PROMPT DELIVERY!!!
Factory New, Prime Parts
.JJ
NOW WIT
DATE STAMHpFILE
ING!
• Works with any Z-80 based computer.
• Currently being used in Ampro, Kaypro
2, 4 & 10, Morrow, Northstar, Osborne,
Xerox Zorba and many other computers.
• Piggybacks in Z80 socket.
• Uses National MM58167 clock chip, as
featured in May '82 Byte.
• 8attE!ry backup keeps time with CPU
power off!
• Optional software is available for file
date stamping, screen time displays,
etc.
• Specify computer type when ordering.
• Packages available:
Fully assembled and tested
$99.
Complete kit
$69.
Bare board and software
$29.
UPS ground shipping
$ 3.
I
P
QO
MASTERCARD, VISA, PERSONAL CHECKS,
MONEY ORDERS & C.O.D.'S ACCEPTED.
N.Y. STATE RESIDENTS ADD 8% SALES TAX
MICROPROCESSORS UNLIMITED
24,000 S. Peoria Ave.,
BEGGS, OK. 74421
KENMORE
COMPUTER
TECHNOLOGIES
(918) 267-4961
Prices shown above are for July 2, 1985
Please call for current prices. Prices subject to ~. Please expect higher or lower prices on
some parts due to supply & demand and our changing costs. Shipping & insurance extra Gash
dscount prices shown. Orders received by 6 PM cst can usually be deliverEld to you by the next
morning, via Federal Express Standard Air @ $6.00, or Prtortty One @ $15.001
P.O. Box 635, Kenmore, :\ew '·ork 1-1217 (7161 K77-U617
MICBD CDBNUCDPII
le Micro Technical Journal
I
P.o. BOX 223
BEND. OREGON 97709
Full implementation of lie' with standard floating
point, library, and I/O subroutines. UNIX VER 7
compatible. Produces relocatable BOBO (optional alBa)
assembler code. Relocating assembler and linker
supplied with package or use Microsoft MBa and LBO,
,SID/ZSID debugger interface. FAST COMPILATION
AND EXECUTION.
AZTEC CII FOR CP/M
-VISA
$199
(Special price for Micro C subscribers $149)
MJ\NX
software systems
Box 55, Shrewsbury, N.J. 07701
(201) 780·4004
Also available for Apple DOS, HODS, CPIM-86, PC-DOS
Download PDF