OCR’ed August 6, 2003 by Ian Matthews – Sourced from early 1977 Kilobaud Magazine. Original formatting has been maintained as much as possible.
cations F800-FFF8 and were written so they could be used with any 650Xbased system – not just KIM. The subroutines include code for addition, subtraction, multiplication, division, square roots, logs, exponents, tangents and arctangents. All the other trig functions can be generated through the use of trigonometric identities. A subroutine is also provided for evaluating user-specified polynomials, so any continuous function can be approximated.
The KIMath ROM should be available by the time you read this. If you don’t want to pay $50 for the ROM, the Programming Manual for KIMath is available for $15 and it includes a complete listing of both source and object code. The manual also contains thirtyseven pages of information on using the subroutines, including a worked-out sample application. If you want to use the ROM but balk at paying $80 for the KIM-5 board to hold it, you’ll be happy to know that the 6540 ROM can be attached directly to the KIM address and data busses, although you’ll need a couple of extra ICs to send the right signal to the KIM-1 Decode Enable line. I’ll provide an interface schematic for this in a future issue of the KIM forum.
To create any large-scale software on a microcomputer, an assembler is a necessity. Industrial microcomputer users can use the crossassemblers available on several commercial timesharing systems, but the expense of going this route is too much for any but the most affluent hobbyist. Thus, the introduction of the KIM resident assembler should facilitate user software generation and make a lot more software available. The assembler and text editor are available as a set of three MCS6540 ROMs – a total of 6K of code. The $150 which MOS charges
for the set may seem exorbitant until you realize that you don’t have to buy 6K of RAM to store it in (which would cost as much or more) and you’ll never have to load it or have it clobbered by errant statements in the program you are developing. Like KIMath, the Assembler/ Editor will work on any 650X-based system. Since the program has to do terminal I/O, locations are reserved in memory page zero to contain the address of the terminal input and output routines. These locations are automatically initialized for KIM owners; users of other 6500 systems (JOLT, TIM, Apple, Baby!, OSI, etc.) can preset those locations with the addresses for the device service routines of their own system. The Editor/Assembler occupies the memory space from E000 to F7FF; thus the editor, assembler, and KIMath fit together in the top 8K of memory.
The text editor is a standard line-numbered text editor; it provides much the same editing capability you would find in a BASIC system. You can enter or insert new lines, replace old lines, resequence the line numbers, dump the text file to audio cassette or paper tape, list out lines in the file, and locate lines in the file which contain any specified text string. There is also a special command (actually, any command which begins with an X) to allow you to jump to a user-written subroutine so that you can extend the editor’s capabilities to meet your own needs. Naturally, both the editor and assembler require that you have a terminal connected to the serial port on the KIM-1.
The assembler is a singlepass assembler; if your source text is on paper tape or audio cassette, you only have to feed it through once. Normally your source text will be in memory and the assembled code is always written to memory. The source code, symbol table, and object code can
continued on page 19
314 Second Avenue Haddon Heights NJ 08035
Here’s the beginning of a monthly feature for all you folks with KIM-Is … and for those of you thinking of getting one. As a matter of fact, there is a great deal of information here which will be of interest to owners of any 6502-based system. (We may just change the name to the 6502 FORUM sometime in the future.)
I would be more than happy to set aside more pages in Kilobaud for similar monthly features on other systems. – John.
As Manager of Product Support for MOS Technology’s KIM Products for the last year, I obviously have an emotional attachment to KIM, but why should Kilobaud devote a forum to the products of one manufacturer’? I think there are several good reasons. First, with over six thousand units sold, it is one of the most popular microcomputer systems introduced so far in this infant industry. Second, although the owner of an 8080-based system can find a constant stream of articles which relate to his system, relatively little has been offered for the many owners of 6502-based hardware. Third, during my time with MOS Technology I had the pleasure of talking with hundreds of KIM owners around the country, and this forum is an ideal way for us to stay in contact and continue the exchange of information and ideas which is at the heart of our hobby.
Where is KIM Going?
One of the questions most frequently asked me was “what are the future plans for KIM?” Most KIM owners are aware that MOS offers a KIM-2 4K RAM expansion board and a KIM-3 8K RAM expansion board. Either of these can be attached directly to a KIM-1. To expand further, a motherboard (KIM-4) must be added and MOS has planned a KIM-5 ROM expansion board, which will hold up to eight MCS6504 (2K by 8) mask-programmed ROMs (the ROMs are not provided with the KIM-5 but must be purchased separately). At present, there are two sets of software which are planned for release in ROMs – KIMath and a resident assembler/editor.
KIMath will occupy a single ROM and consists of a set of subroutines for doing floating-point arithmetic. All calculations are done in BCD to avoid the round-off errors which are inherent in binary floatingpoint routines. The subroutine user can specify the precision (in decimal digits) of any calculation. The more precision specified, of course, the longer the computation time. The package will handle a maximum of sixteen decimal digits of precision plus a two digit exponent so numbers in the range of ±1 times 10E±98 can be handled. The subroutines occupy memory lo
from page 4
be located anywhere in memory you wish. You may have several different source files in memory simultaneously. If you have insufficient memory space to store a large source program, you can break it into several segments, store each segment on audio tape, then bring back one segment at a time for assembly. The assembler will assemble the successive segments until it encounters an “END” statement. It will then put out the symbol table and terminate assembly.
Although the editor is fairly limited (it has no capability to edit within a given line, for instance) it is quite sufficient for editing assembly language programs. The assembler is very fast and with good error diagnostics. Perhaps its only serious fault is that the printed symbol table is not sorted alphabetically and no crossreferences are given.
When I left MOS Technology they had just produced the first samples of a new 4K static RAM. It would be reasonable to guess that they will incorporate it into the KIM line later this year, perhaps as a 16K (byte) RAM board.
I have heard rumors that other companies are planning to offer EROM boards, A/D converters, and video display modules compatible with the KIM motherboard bus structure. I saw a flyer the other day for a motherboard for KIM which would accept Altair bus boards. STM Systems is developing a floppy disk package for their BABY! which should be transferrable to KIM. If you hear of KIM-compatible units, drop me a line and I’ll mention them in future editions of the forum. In the next issue I’ll cover some of the software available for KIM.
The User Group
As a final note, every KIM owner should subscribe to the KIM User Group Newletter. This publication (which is not connected with MOS Technology) is issued every 4-6 weeks and is filled with programs and useful information. A recent issue contained a program to allow KIM to read and write cassettes at six times the standard speed with no hardware modifications. Send five dollars for six issues (and ask that your subscription start with the back issues) to: Eric Rehnke, 425 Meadow Lane, Seven Hills, OH 44131.
I would enjoy hearing from you too.