PC utilities KIM Simulator Convert hex etc

To aid in the handling of KIM-1 program and dataformats I have written some programs for Windows and Linux (Raspberry Pi), sources included.

Convert 8 bit hex formats
KIM-1 simulator
Pascal-M cross compiler
KIM Tape WAV to BIN conversion
KIM Tape Convert BIN and BIN to WAV
KIMPaper
KIMPoser Tape Convert hex to WAV online

All programs come with source (Free Pascal Lazarus), compiled for Windows but thanks to Freepascal and Lazarus also compiled and tested on Linux (Ubuntu and Raspberry PI OS).

Convert 8 bit hex formats

A general purpose utility to convert common 8 bit hex and binary formats, such as Intel HEX, Motorola S records, MOS Papertape, hex format, and binary files.
Version 2.9, June 2024. Define assembler output and bugfix MOS papertape format, PRG Commodore file format, TIM papertape format

Convert8bithexformat source files (Freepascal Lazarus).
Convert8bithexformat Setup for Windows, Executables for Ubuntu and Raspberry PI OS
Available formats:
– BIN binary, raw data, no formatting, no information on start address.
– HEX formatted as hex numbers raw data, no start address included.
– IHEX Intel hex 8 bit format, multiple memory block, start address included.
– PAP MOS Technology papertape format, multiple memory blocks, start address included.
– SREC Motorola 8 bit S record, contiguous memory block, start address included.
– A1hex Apple Woz monitor hex format, start address included.
– KIM Tape as used in the KIM-1 Simulator as emulation of audio tape files.
– assembler formatted bytes as .byte or your prefix text
– PRG files (binary with start address)
– TIM papertape format (MOS Papertape with simple end record)

KIM-1 Simulator

6502/65C02 CPU emulation, disassembler, TTY, KIM-1 keypad and LEDs.

See the KIM-1 Simulator page for more information.

KIM Paper

Note that the Conver8bitHexFormat program is also capable of converting to and from Papertape format from many more formats.
Originally written for the launch of the MicroKIM, an older version is on the support CD.

When you attach a serial device like the teletype or a modern PC with Hyperterminal you can use the KIM monitor of the KIM-1. One of the functions is loading from and saving to a papertape device on the teletype. Now since this is a way to load and save data as a textfile this is in fact quite useful.
The Micro-KIM triggered me to modernize my conversion utility for MOS Technology papertape format dating from 1983, VAX/VMS and Turbo Pascal. A Windows and a commandline/console version are available.

KIMPAPER for Windows

A program for Windows to convert between papertape and binary format.

Windows setup KIMPAPER
Sources (Freepascal Lazarus, build also on Linux)

KIMPAPER V1.1 for DOS

Not too modern, but handy, a commandline utility. Does exactly the same as the Windows program KIMPAPER. Runs fine in a commandline DOS box. Can also be compiled for Linux with Freepascal. In the KIMPAPER DOS archive the program, source and information on the program and papertape format can be found.

C:\MICROKIM\kimpaper
KIM-1 MOS Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1

Syntax is:
KIMPAPER [-[b|p] filename [startaddress]
C:\MICROKIM\kimpaper -h
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Syntax is: KIMPAPER [-[b|p|h] filename [startaddress] first parameter switches
-h help
-p convert to papertape
-b convert to binary
second parameter (first if no parameters, assumed binary to papertape)
name of file to convert
.BIN for binary, forces conversion to PAPertape
.PAP for papertape, forces conversion to BINary
third parameter (assumed 0000 if not present)
startaddress for BIN to papertape conversion
Files of type .BIN wil force conversion to papertape.PAP
Files of type .PAP wil force conversion to binary .BIN

Examples:
C:\MICROKIM\kimpaper mastermind.bin 0200
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
C:\MICROKIM>kimpaper mastermind.pap
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Start address 0200 in file mastermind.BIN

Convert KIM tape to text


KIM Tape to Text is a utility to convert between binary format of a KIM-1 tape dump to a DOS text file.
The KIM tape dump is a binary file and is just a dump of part of the memory of the KIM-1.
This binary file can be a text file as used in editors Micro Ade or CW Assm/TED.
By using the tape write routine in the KIM-1 one can write an audio file on cassette.
When this audio file is captured on a PC as WAV file (22K, mono) this can be converted back to a binary memory dump with ED’s Utility KIMTape
These text files can be converted to DOS text files with this utility.

First open the binary file. If this is recognized as Micro Ade or CW Moser format, the Save as text file can be used.

Windows program.
Full source for Freepascal and Lazarus, no Windows dependencies. Compiled on 64 bits Windows 10 as 32 bit application.

Note on detection of assembler editor type
1. Micro Ade file must start with CR: when present this is Micro Ade
line nr follows 2 byte
line ends with $0D
file ends with $40
2. Assm/Ted by CW Moser starts with line number $10 $00
end of line is high bit set
There may be rare situations that a file starts with a $0D or a different line nr. You can force CW Mose detection by changing this to a sequence of $10 $00 $0D and if necessary blanks $20 to make it consistent. If in doubts: use an editor that shows the file in hex (Ultra Edit, or the free Notepad ++, Text editor PRO) and study the tape file.

Methods to get the binary file out of a Junior or KIM-1.
Read the record tape into a binary with Ed’s KIMTAPE conversion *see below). It is MS-DOS and runs fine in VDOS (https://www.vdos.info/) or DOsbox (slow).
Make a note of start address as shown by KIMTAPE.
Non-printing ASCII characters are filtered out of the resulting text file.

KIM Tape Convert WAV to BIN and BIN to WAV

Not my program, but so handy!

KIMTAPE v0.5 – tape conversion utility for KIM-1 and SYM-1 (2004-05-17) Local copy of http://dxforth.mirrors.minimaltype.com/#kimtape)

KIMTAPE allows programs stored on cassette tape to be decoded to a program file. It handles both MOS Technology KIM-1 and Synertek SYM-1 tape formats including HYPERTAPE. The reverse process – converting a program file to an audio wavefile is also possible, allowing one to produce perfectly regenerated cassettes. KIMTAPE works with 8-bit mono WAV, VOC or RAW audio files recorded
at 22050 samples per second.

Download: kimtap05.zip (MS-DOS) It is MS-DOS and runs fine in VDOS (https://www.vdos.info/) or DOSbox (slow).

The binary files in the KIM-1 program archives have been reproduced, from the original cassette recordings, with the tool KIMTAPE on a PC in a DOS box. See Eds DX-Forth and Utilities Page for this and other nice programs.
This program also makes it possible to reproduce the original cassette recordings that can be read by a KIM-1.

The files were made as follows: The KIM-1 cassette audio was connected to the PC audio input and (with e.g. Audacity) recorded as a wave file (mono 22KHz).
For example: qchess.wav
The wave file was then converted with KIMTAPE to a binary file (the exact content of of the KIM-1 memory when recorded).
And the KIMTAPE utility then displays load address (for example and tape ID

c:\kimtape qchess.wav qchess.bin
KIMTAPE version 0.5 17-May-04
infile: qchess.wav
outfile: qchess.BIN
Program 01 address 0200 checksum OK xxxx bytes done

This .bin file (any extension is fine!) is NOT a wave file! It contains the exact content of the KIM-1 memory when recorded. The size is exactly the number of bytes as stored in the memory of the KIM-1 and much smaller than the wave file. This binary file can be converted back to a wave file with KIMTAPE or converted to a papertape file with KIMPAPER:

C:\kimtape -M -A0200 -D01 -B2 qchess.bin qchess.wav 

As you can see: you have to specify the load address and the program ID. The B parameter indicates hypertape speed (2 here, slow)
The resulting wav file should be acceptable for the KIM-1. It is (as I have tested) acceptable as input for KIMTAPE!

All command parameters can be seen by typing KIMTAPE without parameters:

Pascal-M Cross compiler

Executables of cross compiler, workflow, sources, command line utilities.

post

KTM-3



KTM-3 manual in PDF format

Character ROM 02-0061-A

Program ROM 02-9001-126

SYM-2

The SYM-2 was an evolution of the SYM-1.

From the press release:

Synertek has introduced the SYM-2, which offers a choice of microprocessor (6502, 6809 or 6802). The SYM-2 is software compatible with the SYM-1 and adds some hardware features: on-board power supply , eight toggle switches for input, eight LEDs to display outout in binary and cassette interface jacks. Hardware compatibility between the two SYMs ensure that RAM and disk interface devices that work with one will work with the other. Designed for learning computer hardware fundamentals, the SYM-2 sells for $249 from Synertek Inc.





post

KTM-2 & KTM_2/80

General Description
(most information on this page comes from on http://www.6502pages.com)

The KTM-2 came in two models. The standard KTM-2 with its low video frequency (2.6MHz) can use ordinary home TV as a video monitor. This helped keep the user system cost low. The KTM-2/80 has twice the displayable characters; however it must be used with a video monitor since the 80 character lines have a higher frequency (7.2MHz). The KTM-2/80 is functionally identical in every respect with the KTM-2. Throughout the remainder of this article, KTM-2 will refer to both the KTM-2 and the KTM-2/80 unless otherwise noted.

The KTM-2 keyboard consists of 54 keys which generate 128 ASCII characters and 128 graphic characters. The ASCII characters include upper and lower case alpha, numeric, special and control. The graphic and alphanumeric characters can be displayed simultaneously. This is beneficial in business and industrial applications where annotated forms or graphs are desirable. With KTM-2’s relative and absolute addressing, graphs, game pieces, etc, can be placed and/or moved about on the screen with a minimal amount of software.

The KTM-2 has two serial communications ports: the main port used primarily with a computer for information transfer and the auxiliary port used primarily with a printer for hard copy. The serial ports are full duplex allowing information to be transmitted and received simultaneously. The serial format is comprised of a start bit, seven data bits, a parity bit (for detection of transmission errors), and one or two stop bits. The bit transmission rate is selectable from 110 up to 9600 baud. The eight baud rates are selectable by three of the eight option switches. Other switch selectable features are: even, odd or no parity; interlaced or non-interlaced screen; line truncate or line wrap around (to next line); and 60Hz or 50Hz frame rate.
The KTM-2/80 has two microprocessors, a 6502 and a 6507, two 6522 VIA’s, 2K of RAM and 6K of ROM
On this page:
Upgrading a KTM2 to a KTM2-80
Upgrading the KTM System Boot ROM
Changing the Character ROM
Schematics, Manual & Binaries
Pictures of homebuilt KTM
Dutch article about the KTM-2 by Hans Otten
Dutch article about the Samson, a cased SYM-1 and KTM-2, by Hans Otten
Photos by Ray Holt

Upgrading a KTM- 2 to a KTM-2/80

With an EPROM programmer available and a little electronics know how, this article will attempt to help the reader upgrade a KTM-2 to a KTM-2/80 terminal. It should be noted that users with KTM-2’s with a serial number prior to 0733 CANNOT perform these modifications. The actual modifications will require you to cut a trace on the board, add a jumper, install 5 IC sockets and chips, and replace the existing system ROM. You will also have to change some other jumpers to accommodate the new system and character EPROM depending on what EPROM you use. I personally changed the original 2 K system ROM with a 2732, 4 K EPROM. The lower half of the 2732 contains the KTM-2 code and the upper half contains the KTM-2/80 code. I used a 2716 EPROM for the character generator and no modifications were necessary to the board. The 2716 and original character ROM in the KTM-2 have identical pin outs. U-22, the original character generator is simply duplicated for U-23. By adding a DPST switch, you would be able to switch between either the 40 or 80 KTM-2 system modes.

The files located here contain the binaries for both system and character ROMS that I currently use and the original KTM ROM’s. My ROM’s have been changed to accommodate the 60 key keyboard I currently use instead of the KTM-2’s 54 keys. The system ROM mapping for the keyboard matrix was changed to reflect these new keys and the character ROMS were also altered for these changes. NOTE – the 60 key binary files will not work with any original KTM-2 or KTM2/80 as the keyboard encoding mapping has been altered for my keyboard. You may also download the source code.txt or using the SYM Link program, download the source code.rae file and assemble the code to generate your own boot ROM. If you decide to download the binaries you can click here to find out how to re-map the keyboard matrix. Assuming you have an EPROM burner, you can always copy your original character ROM (U-22) and burn a duplicate that will be needed for U-23. If you want to change the blinking block to a blinking line, download the original binaries with the modification already made for you. You will also need four chips to complete the upgrade. They are 1 – 74166 (U-28), 2 – 2114 (U-17 & 18) and 1 – 8304 (U-35). You may also consider putting in sockets instead of soldering the chips directly into the board.

The first step will be to cut a trace on the KTM-2 board. The trace is located to the right of U-27 and should be labeled J-2. This trace goes between the marked J2 location and the number 40. Your board may have a jumper installed or the trace. After cutting the trace a jumper needs to be installed between the J2 location and the number 80 hole. If you decide you want to switch between the 40 or 80 character mode, click here or simply install the jumper. Once this is completed, it is now necessary to install the IC sockets and chips. You will have to change other jumpers to properly chip select your particular EPROM. A complete schematic, located here, will help you locate these jumpers. If you decide to copy your original character ROM, do so and then install it in the U-23 socket. Install the balance of the IC’s. The last thing to consider is what boot ROM you want. If you only want the -80 code, simply download the 2K binaries and burn the chip. If you decide to dual-ize the KTM, download the 4K version. In either case, jumpers will have to be re-arranged to accommodate the new chip.

Be sure to double check your work as I cannot be held responsible if it does not work properly. I can say that I have done the above procedure and had no problems of any kind.

The following jumper changes will complete the upgrade. I am not sure of the original jumper location default setting as I no longer have my original KTM. I do know the original character generator ROMS have identical pin outs of the 2716. The boot ROM on the other hand is a different story as pins 20 and 21 are both positive chip select and that pin 18 was grounded. The chart below will show what jumpers to change and what to make them depending on the EPROM.

Pin # 2716 2732

18 J-11 J-11 Connect to pin 8 of U-32 (should be one connection at J-19)

20 J-19 J-19 Connect to ground (should be “G” on board at J-11)

21 J-18 see note For 2716, connect to +5 volts located at J-18.

NOTE: If dual-izing the KTM connect pin 21 ( A-11 ) to common of switch as shown here. If pin 21 is low, the lower half of the 2732 is selected and if high, the upper half is selected. The lower half will be the KTM-2 and the upper half will be the -80.

Upgrading Synertek Systems KTM-2 to a KTM-2/80

With an EPROM programmer available and a little electronics know how, this article will attempt to help the reader upgrade a KTM-2 to a KTM-2/80 terminal. It should be noted that users with KTM-2’s with a serial number prior to 0733 CANNOT perform these modifications. The actual modifications will require you to cut a trace on the board, add a jumper, install 5 IC sockets and chips, and replace the existing system ROM. You will also have to change some other jumpers to accommodate the new system and character EPROM depending on what EPROM you use. I personally changed the original 2 K system ROM with a 2732, 4 K EPROM. The lower half of the 2732 contains the KTM-2 code and the upper half contains the KTM-2/80 code. I used a 2716 EPROM for the character generator and no modifications were necessary to the board. The 2716 and original character ROM in the KTM-2 have identical pin outs. U-22, the original character generator is simply duplicated for U-23. By adding a DPST switch, you would be able to switch between either the 40 or 80 KTM-2 system modes.

The files located here contain the binaries for both system and character ROMS that I currently use and the original KTM ROM’s. My ROM’s have been changed to accommodate the 60 key keyboard I currently use instead of the KTM-2’s 54 keys. The system ROM mapping for the keyboard matrix was changed to reflect these new keys and the character ROMS were also altered for these changes. NOTE – the 60 key binary files will not work with any original KTM-2 or KTM2/80 as the keyboard encoding mapping has been altered for my keyboard. You may also download the source code.txt or using the SYM Link program, download the source code.rae file and assemble the code to generate your own boot ROM. If you decide to download the binaries you can click here to find out how to re-map the keyboard matrix. Assuming you have an EPROM burner, you can always copy your original character ROM (U-22) and burn a duplicate that will be needed for U-23. If you want to change the blinking block to a blinking line, download the original binaries with the modification already made for you. You will also need four chips to complete the upgrade. They are 1 – 74166 (U-28), 2 – 2114 (U-17 & 18) and 1 – 8304 (U-35). You may also consider putting in sockets instead of soldering the chips directly into the board.

The first step will be to cut a trace on the KTM-2 board. The trace is located to the right of U-27 and should be labeled J-2. This trace goes between the marked J2 location and the number 40. Your board may have a jumper installed or the trace. After cutting the trace a jumper needs to be installed between the J2 location and the number 80 hole. If you decide you want to switch between the 40 or 80 character mode, click here or simply install the jumper. Once this is completed, it is now necessary to install the IC sockets and chips. You will have to change other jumpers to properly chip select your particular EPROM. A complete schematic, located here, will help you locate these jumpers. If you decide to copy your original character ROM, do so and then install it in the U-23 socket. Install the balance of the IC’s. The last thing to consider is what boot ROM you want. If you only want the -80 code, simply download the 2K binaries and burn the chip. If you decide to dual-ize the KTM, download the 4K version. In either case, jumpers will have to be re-arranged to accommodate the new chip.

Be sure to double check your work as I cannot be held responsible if it does not work properly. I can say that I have done the above procedure and had no problems of any kind.

The following jumper changes will complete the upgrade. I am not sure of the original jumper location default setting as I no longer have my original KTM. I do know the original character generator ROMS have identical pin outs of the 2716. The boot ROM on the other hand is a different story as pins 20 and 21 are both positive chip select and that pin 18 was grounded. The chart below will show what jumpers to change and what to make them depending on the EPROM.

Pin#  2716  2732
 18   J-11  J-11     Connect to pin 8 of U-32 
                     (should be one connection at J-19)
 20   J-19  J-19     Connect to ground 
                     (should be "G" on board at J-11)
 21   J-18  see note For 2716, connect to +5 volts located at J-18.

NOTE: If dual-izing the KTM connect pin 21 ( A-11 ) to common of switch as shown here. If pin 21 is low, the lower half of the 2732 is selected and if high, the upper half is selected. The lower half will be the KTM-2 and the upper half will be the -80.

Upgrading the KTM System Boot ROM: Changing the Keyboard Encoder

Please Read Carefully:
A 2316-B ROM contains program codes and the keyboard encoding table. Caution: pins 20 and 21 (unlike 2716’s) are positive chip-select: you need to have them at a high level in order to read the ROM. Exchanging the ROM for a 2716 EPROM requires changing the jumper settings at J-18 and J-19.

The KTM uses two input lines to check the status of the SHIFT and CONTROL keys, and an 8 x 8 matrix for checking the other keys. This lay-out requires 2 * 64 = 128 bytes of storage for decoding the keys in lower-case and upper-case mode. Not all of the 64 cross-points of the matrix are used (the KTM has 51 keys apart from SHIFT and CONTROL). These cross points are decoded by a null code. The KTM control functions ALPHA and BREAK are identified by a dedicated bit (bit 7 = 1, – 0 for all other characters). Bits 6 to 0 contain the ASCII code in reversed order! For instance, the key `8` (ASCII $38) thus encodes to $0E. The keyboard encoding table shown below starts from address $723 up to $7A2 for the KTM-2/80 and $6FA up to $779 for the KTM-2. Standard KTM lay-out is (only lower-case is shown):

     U2  (6522) PA   0   1    2    3    4    5    6   7    ROM addr.
--------------------------------------------------------------------
U2 (6522) PB 0   /   8   7    6    5    4    3    2   1    $ 723-72A
U2 (6522) PB 1   /            TAB       -    +    0   9    $ 72B-732
U2 (6522) PB 2   /   u   y    t    r    e    w    q   ESC  $ 733-73A
U2 (6522) PB 3   /            RET  LF   =    p    o   i    $ 73B-742
U2 (6522) PB 4   /   j   h    g    f    d    s    a        $ 743-74A
U2 (6522) PB 5   /           ALPHA DEL  :    ;    l   k    $ 74B-752
U2 (6522) PB 6   /   m   n    b    v    c    x    z        $ 753-75A
U1 (6522) PB 5   /                SPACE      /    .   ,    $ 75B-762

Creating an original KTM-2 boot ROM mapping table
If you are upgrading a stock KTM-2 to a /80, use the following procedure or just download the original binaries and burn them.
1. Copy your original boot ROM and note what memory address you saved it at. For this example, we will use $6000.
2. Load the binaries here and save these at $5000. This will be a 4K file which includes both KTM files. The lower half ($5000 to $57FF) for the KTM and the upper half ($5800 to $5FFF) KTM-2/80.
3. Copy the table from $66FA to $6779 and paste it into location $5F23 and $56FA. This will now contain your map and will work for both terminals. Using the SYM, type: .B 5F23,66FA,6779 (cr), which will block move everything from $66FA to $6779 to memory location $5F23. Repeat the block move except move to $56FA.
4. Burn the EPROM.

The information given should suffice to change the keyboard according to any desired lay-out. My keyboard now reads and displays the added keys on my new keyboard

Changing the Character ROM

Modifications to the character ROM are simple once you understand the map in the chip. The KTM-2/80 terminal board features a 1920 character display, 24 lines by 80 characters each. The characters – both ASCII and graphics – are represented by a ‘pixel’ of 8 bytes (= 8 * 8 bits), each bit corresponding to a dot on the screen. Since a total of 256 different characters constitutes the KTM’s character font, 256 * 8 bytes, i.e. 2 Kbytes, are needed to store the pixel patterns. The KTM uses two identical 2 K-ROMs (type 2316-B) which are switched to give the high speed necessary for a CRT display.

How are the pixel patterns coded? Page 0 of the ROMs comprises the top line of all the 256 patterns, page 1 the next line, etc., page 7 the bottom line of each. Bit 7 corresponds to the leftmost dot, bit 0, accordingly, to the rightmost one. Therefore, the pattern code for any character is to be found at a fixed lo-byte address (determined by the ASCII code), while the hi-byte of its address varies from 0 to 7. The lo-byte address is exactly the ASCII code of the character (0 to $7F ASCII, $80 to $FF graphics), read backwards! Graphic characters fill the 8-by-8 matrix completely, while ASCII characters leave the left and right margins empty and usually the bottom row, too.

Suppose you want to change the appearance of the ~ tilde ($7E) to `B` (Greek beta). You first invert the ASCII code, reading it from right to left, which gives (in that special case, only, the same code) $7E. This is the lo-byte address. Next, you look up the codes for all the pixel rows, top row first, at address $07E, $17E, … $77E:

    00 00 00 32 4C 00 00 00

Rows 4 and 5 are non-empty, resulting in the following pattern:

row 4:   ..xx..x.
row 5:   .x..xx..    See the wave-form?

Let us now devise the `B`:

row 1:   ..xxx...    = $ 38 at address $07E.
row 2:   .x...x..    = $ 44 at address $17E.
row 3:   .x.xx...    = $ 58 at address $27E.
row 4:   .x...x..    = $ 44 at address $37E
row 5:   .x....x.    = $ 42 at address $47E
row 6:   .xx..x..    = $ 64 at address $57E
row 7:   .x.xx...    = $ 58 at address $67E
row 8:   .x......    = $ 40 at address $77E

These values have to be stored to obtain a beta instead of a tilde for a $7E. Since the KTM character ROMs are pin compatible with standard 2716 EPROM’s, any user with access to an EPROM programming device can alter the screen appearance of all the KTM characters.

In case you don’t like the cursor’s blinking block and prefer a blinking line like I did (I found that block annoying), I’ll help you cheat. The KTM uses location $FE for the blinking block. If you look at your chip, locations $0FE, $1FE, $2FE etc all contain an $FF. Change all the locations to $00 except $7FE. This now changes the annoying blinking block to a blinking line.

Schematics, Manual & Binaries

The source code with binaries, manual, and schematic for the KTM-2 terminal.
NOTE: The 60 key binary files ARE NOT for a standard KTM-2. These files have been modified for a 60 key version the KTM’s 54 key keyboard.
60 Key Boot ROM – Contains altered binaries for KTM2 & 2/80. (2732 – 4K)
60 Key Character ROM – Character generator binaries for above. (2716 – 2K)
54 Key Original Boot ROM – Contains both KTM2 & 2/80 binaries. (2732 – 4K)
54 Key Original Boot ROM – Contains only KTM2/80 binaries. (2716 – 2K)
54 Key Original Boot ROM – Contains original binaries in text format.
54 Key Character ROM – Original 54 Key binaries with change made to cursor from blinking block to blinking line.
54 Key Character ROM – Original 54 key binaries in text format.
Source Code KTM2/80 – Hacked version to allow either original or new boot ROM to be generated in text format.
Source Code KTM2/80 – Same as above but in RAE format.
Complete Manual
Complete Schematic in PDF format


I have included some notes and prints showing how and where I added the extra keys for the larger keyboard that work correctly with the above 60 key code. Cross-points circled in blue are the added keys. I also needed to change the existing keys matrix with new ASCII values to correctly display the new ASCII code. Example would be on the original KTM, a shift 2 displays an “, whereas on a normal keyboard the shift 2 is an @ character. These are also shown in the schematic, but are not highlighted. Below is the mapping table showing the binary bites and the corresponding ASCII code generated for both keyboards.

KTM-2 Keyboard Encoding Table. Remember that all bytes are backwards.

IF KEYS-54 (Standard KTM)
 Lower Case Table    *NC = No Connection

    $0E $76 $36 $56 $16 $66 $26 $46
     8   7   6   5   4   3   2   1
    $00 $00 $48 $00 $5A $6A $06 $4E
     NC  NC TAB NC   -   +   0   9
    $57 $4F $17 $27 $53 $77 $47 $6C
     u   y   t   r   e   w   q  ESC
    $00 $00 $58 $28 $5E $07 $7B $4B
     NC NC  RET LF   =   p   o   i
    $2B $0B $73 $33 $13 $67 $43 $00
     j   h   g   f   d   s   a   NC
    $00 $00 $F2 $7F $2E $6E $1B $6B
     NC NC APL DEL  :    ;   l   k       (ALP = ALPHA)
    $5B $3B $23 $37 $63 $0F $2F $00
     m   n   b   v   c   x   z   NC
    $00 $00 $00 $02 $00 $7A $3A $1A
     NC NC NC   SPC NC   /   .   ,

 Upper Case Table

    $0A $72 $32 $52 $12 $62 $22 $42
     (   '   &   %   $   #   "   !
    $00 $00 $FB $00 $2A $01 $3D $4A
     NC  NC BRK  NC  *   @   ^   )
    $55 $4D $15 $25 $51 $75 $45 $6F
     U   Y   T   R   E   W   Q  ESC
    $00 $00 $03 $3F $1D $05 $79 $49
     NC  NC RET  LF  \   P   O   I
    $29 $09 $71 $31 $11 $65 $41 $00
     J   H   G   F   D   S   A   NC
    $00 $00 $5F $7D $5D $6D $19 $69
     NC  NC ALP DEL  ]   [   L   K
    $59 $39 $21 $35 $61 $0D $2D $00
     M   N   B   V   C   X   Z   NC
    $00 $00 $00 $1F $00 $7E $3E $1E
     NC  NC  NC SPC  NC  ?   >   < IF KEYS-60 (Modified KTM) Lower Case Table $0E $76 $36 $56 $16 $66 $26 $46 8 7 6 5 4 3 2 1 $08 $03 $48 $20 $5E $5A $06 $4E BS ` TAB ^B = - 0 9 (^B = Repeat Key*) $57 $4F $17 $27 $53 $77 $47 $6C u y t r e w q ESC $6F $1D $58 $28 $6D $07 $7B $4B { \ RET LF [ p o i $2B $0B $73 $33 $13 $67 $43 $00 j h g f d s a NC $00 $00 $F2 $7F $72 $6E $1B $6B NC NC CLK DEL ' ; l k (CLK = Caps Lock) $5B $3B $23 $37 $63 $0F $2F $00 m n b v c x z NC $FB $00 $00 $02 $00 $7A $3A $1A BRK NC NC SPC NC / . , Upper Case Table $2A $32 $3D $52 $12 $62 $01 $42 * & ^ % $ # @ ! $08 $3F $FB $20 $6A $7D $4A $0A BS ~ TAB ^B + _ ) ( (^B = Repeat Key*) $55 $4D $15 $25 $51 $75 $45 $6F U Y T R E W Q ESC $5F $1F $03 $3F $5D $05 $79 $49 } | RET LF ] P O I $29 $09 $71 $31 $11 $65 $41 $00 J H G F D S A NC $00 $00 $F2 $7F $22 $2E $19 $69 NC NC CLK DEL " : L K $59 $39 $21 $35 $61 $0D $2D $00 M N B V C X Z NC $FB $00 $00 $02 $00 $7E $3E $1E BRK NC NC SPC NC ? >     <

* I generate a ^B for the repeat key, but you could generate any key you want.The schematic showing the added keys for the 60 key keyboard is located here.

Homebuilt KTM-2/80

Below are some pictures showing my KTM-2/80. I built this on a Radio Shack ASCII keyboard encoder I picked up at a flea market. All that was needed was to build the KTM in the space provided above the keyboard, cut the traces for the KTM’s matrix, and install a connector between the keyboard and the KTM board.
First picture shows KTM assembled. Actual board size is 3″ x 13″.

Bottom of keyboard showing trace cuts and wires added for new matrix. What made this easy was the fact that each switch was labeled with its function.

Picture showing bottom of KTM. Point to point wiring using 30 gauge wire is used to save height space and looks much neater. I had to glue two boards together for the 13″ length. The two blue boards shown below are were the joint was made.

KTM_2 article

An article I wrote with a review of the KTM-2, in dutch, in the magazine Radio Bulletin, april 1980

KTM_2 article

An article I wrote with a review of the Samson, in dutch, in the magazine Radio Bulletin, april 1980. The ame Samson was used to name a package of SYM_1 and a KTM-2, both in a nice case, november 1980.

Current consumption of the board with all chips on board is about 270mA … that is without any external connections to VIA chips ..

There is a slight mod …looking at the above schematic ..pins 18 and 13 have to be swapped ..that is pin18 becomes !a9 and 13 becomes crtout… reason being the the default schematic for the gal chip had pin 13 as i/o pin … but it is only an input pin ..!!!

PLD file to make it all work ….

Name            SYM-1 Maxi;
Partno          0001;
Revision        ver4,monitor,basic,RAE ;
Date           23/11/17;
Designer        mc;
Company         mcoz;
Location        oz;
Assembly        manual;
Device          g22v10;

/** Inputs **/
pin [3..8] = [a15..10] ;
pin 1 = phi2;
pin 2 = rnw;
pin 9 = a9;
pin 10 = a8;
pin 11 = a7;
pin 13 = crtout;
pin 16 = crtin;

/** Outputs **/

pin 14 = !nr;
pin 15 = !nw;
pin 22 = !cs6532;
pin 18 = !na9;
pin 20 = !via2cs;
pin 21 = !via1cs;
pin 23 = !csram;

pin 19 = !ncrtin;
pin 17 = !ncrtout;

/** Declarations and Intermediate Variable Definitions **/

field ioaddr= [a15..7];
cs6532_eqn   = ioaddr:[A4XX..A7XX];  
csrom_eqn   = (ioaddr:[80XX..8FXX])#(ioaddr:[B0XX..FFXX]) ;
csram_eqn   = (ioaddr:[00XX..7FXX]) ;

/** Logic Equations **/

ncrtout=crtout;
ncrtin=crtin;
na9=a9;
nr = phi2&rnw ;
nw  = !rnw&phi2 ;
cs6532 = cs6532_eqn ;
csrom = csrom_eqn&nr;
csram = csram_eqn#csrom;

You can source all binary files from 6502.org or try this combined file that has
Monitor imaged @8000-8FFF and F000-FFFF
Basic imaged from C000-DFFF and
RAE imaged @B000-BFFF and E000-EFFF

Photos by Ray Holt

 

post

Synertek SYM-1 KTM

Synertek, Inc. was an American semiconductor manufacturer founded in 1973. The initial founding group consisted of Bob Schreiner (from Fairchild), Dan Floyd, Zvi Grinfas, Jack Balletto, and Gunnar Wetlesen. The manufacturing technology was MOS/LSI.
Initial products included custom designed devices, as well as a line of standard products (static RAMs, ROMs, dynamic and static shift registers) and then, sometime before 1979, second sourced versions of MOS Technology’s successful 6502 8-bit microprocessor, and the (less successful) Philips/Signetics 2650 processor and Zilog Z8 microcomputer.
Major customers included Atari (for its video game product line their biggest customer at a certain point of time) and Apple Computer (for its Apple II computer).
In the days leading up to the 1977 West Coast Computer Faire, Steve Wozniak chose to use a Synertek ROM chip for the Apple II, which was revealed at the event, after a chip from American Megatrends didn’t arrive on time.

Here some pages with information on Synertek, Micro Associates and my SYM-1 systems.

The Jolt from Micro Associates and initialy not a Synertek product, has its own page here.


Synertek Databook 1983 Chapter 5 Systems

My VIM-1:

My current SYM-1:



Synertek acquired Microcomputer Associates, Incorporated, consisting of engineers Manny Lemas and Ray Holt, after which it was renamed Synertek Systems, Inc. and established as a subsidiary. In 1978, Synertek Systems released a 6502-based single board computer/evaluation kit called the SYM-1, a derivative of MOS Technology/Commodore Semiconductor Group’s KIM-1.
Synertek’s semiconductor fabrication plant in Santa Clara, California operated from 1974 to 1985. Sometime after 1979, Synertek was acquired by Honeywell and set up as a subsidiary. Later, around 1983, construction began for an additional manufacturing facility in Santa Cruz, California. There was Superfund attention to pollution at the Synertek factory site. When market conditions deteriorated, primarily because of business downturns at Atari, work was stopped at the Santa Cruz facility and it was later sold. Honeywell shut down operations at Synertek in 1985 and assets were sold off (from Wikipedia).

Part of Chapter 5, systems, of the Synertek Databook 1983, note the Jolt was still available.



The end of Synertek Systems in 1985:


Photos by Ray Holt

 

 

SYM-1 6502 mini and Maxi SBC

The following article is a local copy of the site of Michael Cvetanovski, all design and ‘me’ in the text below is by and (C)  Michael Cvetanovski.
The copy here is for information and archiving only, the original is the place to go for the latest information. The following text (“I”) is by Michael Cvetanovski.

If you are interested in the PCB’s ask Michael, not me! I do not sell them!

SYM-1 6502 mini SBC
SYM-1 Maxi
SYM-1 Maxi built by Norbert Joppen

SYM-1 6502 mini SBC

Bit of History

Once upon a time .. I had a SYM-1 sbc board that I played around with. Wonderful microcomputer for its era (early 1980’s). Like most people due to non use and lack of interest I give that micro away. Since my recent eagerness to dabble with some of the older micros .. I had a go at trying to rebuild the SYM-1 to a reasonable design so I can use most of the SYM-1 features. Having a 6502 chip and a 6532 peripheral chip, I had most bits to be able to create a minimal system to say run the SYM-1 Supermon 1.1 monitor. Following is a prototype that I got working (must admit after some testing time) which is minimal in design in having basically 5 main chips and TTL-USB adapter for comms to a PC. This project is ongoing where I have also reproduced (to a reasonable degree) an imitation keypad similar to the original one from individual pcb type push button keys. Where possible I used particular IC’s (like GAL’s) to minimise the construction and size of the design.

Prototype Board

It mainly consist of the 6502 chip, 6532 peripheral chip, 2732 EPROM for Monitor, 2K 6116 Ram chip and 24pin Atmel GAL chip to provide some of the decoding and interfacing. Additional things on the board are 14pin 1Mhz crystal and an expansion socket to be able to interface to display/keypad. Flying wires are leads to a TTL to USB converter that connects to USB port of a PC. Monitor code is original version 1.1 that you can get from 6502.org. Memory map is original as per SYM-1 board for the monitor, 6532 chip and 2k RAM from 0000-07FF. Gal chip used is Atmel ATF22V10CQ/CQZ. No particular reason for this one .. but you can easily get them from RS components and not that expensive. I will provide the .pld and .jed file for the code to program these. See notes later on.

Prototype board was constructed using a vero type board with a bank of tracks to place the IC’s. Wiring was soldered point to point using wire wrap wire. After initial mounting of the components and testing for shorts etc the board was ready for use. When powered up the board draws about 220mA. See pic below.

Parts for construction

If you are an old micro buff you probably have some if not most parts to construct this mini board. In case you don’t here is few suggestions for major parts.

  • 6502, 6532 you might be lucky enough to get them from China supplies (via Alibaba or Ebay website)..be prepared to wait 3-4 weeks at least.
  • Atmel pdl (GAL chip) try RS components.. usually very quick delivery. If you cannot program pld’s I can supply the chip programmed.
  • 1Mhz crystal try element14
  • 2732 and 6116 try www.futurlec.com. If you cannot program the 2732 I can supply some Eproms as I have some spares left.
  • TTL to USB adaptor, Many supplies from China via Ebay ..take 3-4 weeks
  • Also look through some forums like this one.

Circuit Design

It basically follows from the original SYM-1 schematics, with simplification of decoding logic with a PLD chip. For minimal system you would need at least a Monitor program, some RAM and an I/O comms. Simplest would be to have RS232 type comms that you can connect to a PC and communicate to the board via terminal type program. So in that case from original design, 6532 chip did the job of communication via pins 16 and 19 to RS232 type interface. Since I was trying to use TTL to USB interface I did not have much success in interfacing the board to the PC. It wasn’t till I actually built an additional keypad to connect to the main board and played around with that I figured out the interface and comms settings. The final comms configuration involved using inverter gates for input and output to serial port (via PLD chip), and the following serial settings on comms port:

  • 4800 Baud
  • no parity
  • 8 bit
  • 1 stop bit
  • handshake none

Original notes and references to RS232 on SYM-1 refer to 3 stop bits .. which confused me initially .. hence it took a while to figure out what works properly.

Schematic and component functions

Following is a schematic of the design. It is using Diptrace software. Note I use point to point schematic (pin ID connections). It does reduce wires ..but for some people it gets bit harder to follow.

Caution: As with any circuit diagrams it is up to you to recheck and make sure it is OK before proceeding to any construction. To best of my ability this is representation of what I have used. I’ve followed other circuit diagrams on the web, only to find some info was wrong. So please check pin outs (especially against datasheets) to make sure all connections are correct. If there is any errors please email me.

Download Schematic

Looking at the schematic here is bit of explanation of some of the component functions:

  • Resistors are basically pullup resistors for inputs to CPU that are not needed.
  • R6 and D1 are just power indicator for the board.
  • S1 (on board pb switch), C5 and R5 are the reset input to 6502. Note also reset is provided from external input via terminal power block.
  • 6532 is wired similar to SYM-1 schematic: A0-A6 for on chip ram addressing. CS1 is A10 and Register Select (RS) is via  PLD chip. R/W is direct from 6502.
  • Chip selects for Rom, Ram and 6532 come from PLD.
  • CRT OUT is inverted to RxData ..so is TxData to CRT IN via PLD inverter gates.
  • PLD provides address decoding and 3 inverter gates. Phi2 and R/W are used to generate RD and WR signals for Rom/Ram.
  • 6116 and 2732 can be any brand as long as the pins are same. Also note which programming voltage is used for the 2732 chip, as they vary greatly.

PLD Function

Atmel PLD is used to provide address decoding and 3 gate inverts for A9 and serial signals. For more info see Atmel website and WinCupl software.

The code for the PLD is shown below:


Name SYM-1;
Partno 0001;
Revision 4k Mon, 2kRam, 6532 Comm;
Date 6/2/15;
Designer mc;
Company mcoz;
Location oz;
Assembly manual;
Device g22v10;

/** Inputs **/
pin [1..6] = [a10..15] ;
pin 7 = phi2;
pin 8 = rnw;
pin 9 = a9;
pin 10 = crtout;
pin 11 = crtin;

/** Outputs **/
pin 19 = !nr;
pin 20 = !nw;
pin 21 = !cs6532;
pin 23 = !csrom;
pin 22 = !csram;
pin 18 = !na9;
pin 16 = !ncrtin;
pin 17 = !ncrtout;

/** Declarations and Intermediate Variable Definitions **/

field ioaddr= [a15..9];
cs6532_eqn = ioaddr:[A4XX..A7XX];
csrom_eqn = (ioaddr:[80XX..8FXX])#(ioaddr:[F0XX..FFXX]) ;
csram_eqn = (ioaddr:[00XX..07XX]) ;

/** Logic Equations **/

ncrtout=crtout;
ncrtin=crtin;
na9=a9;
nr =phi2&rnw ;
nw = !rnw&phi2 ;
cs6532 = cs6532_eqn ;
csrom = csrom_eqn;
csram = csram_eqn;

The pinout for PLD is as follows:


View pld file

Download jed file

Testing the board

Obviously have the board connected to the PC and use appropriate comms software like Hyperterm (on XP) or RealTerm set to appropriate setting. Also set CAPS ON. (reduces errors). If all OK after pressing the RESET button …press the “Q” key on keyboard . The response should be “.” single dot …where you can give monitor commands after that. Following is snapshot of sample program that is given in Reference manual for SYM-1 that adds two numbers together from memory locations 200 and 201 and places result in 202. You can see that 202 changed from 0 to C6 which is = C1+05.

From this point on you can explore all the monitor commands. Save and Load will not work as provision is not made in this design for saving code to cassette tape. So another way of saving and loading the machine code is via SP an LP (paper tape commands).

Saving and loading code (via terminal)

Refer to paper tape format info in SYM-1 Reference manual (page D-1). So for example to save above code you would issue command

  SP 200-210

and before you press , set terminal program to capture file mode.. which will save text as it is output to the terminal.

Start capture mode and press

the listing should follow.. once character output had stopped ..Stop the capture …

To see what is captured open the captured file with Notepad..it should look like something like this …

Delete the space in first line and replace the “.” in the last line with “;00”. This creates the correct file to upload.

To retrieve the code type in

LP

and send the captured file as text using terminal program ..What you might need to do is delay the character and LF output to about 20ms so the board does not get swamped with incoming characters from the PC serial port. You can adjust the delay to smaller value till the sending of file stops working properly. 20ms+ is usually a safe bet.

Picture above shows loading of the file, listing the code, running it and then listing the result of the addition program. So there you are ..plenty of things to be able to examine ..with minimal system similar to the original SYM-1 board.

I/O via 6532 PIA chip

Ok If you are to use the mini board with RS232 interface only (that is … with NO keypad/display) then the port A (address A400) is free to use for any I/O control. The DDRA (address A401) can be set up for output or input. As a simple example using SYM monitor we can set the DDR to output on all eight PA pins (set DDRA to FF). Then changing the value of I/O Register A (A400 address) from FF to 00 will toggle output on the port A (pins 8-15) from high back to low.

If you want to use the port A as an input then set appropriate bits to 0 in DDRA. Image below shows a crude example of control via Monitor commands. Writing machine/assembly code for more complex task is possible and make the board useful as a micro controller.

Running mini @9600 Baud

It is possible to run the mini board @ 9600. Suggestions have been obtained from 6502 pages website, where following address have been changed:

8AE9 08 --> EA         '   NOP
8AEA 48 --> 60          '  RTS

8AB0 0B -->0A           ' CHANGE NUMBER OF STOP BITS

Changed binary file Supermon 1.1 file for 9600 baud can be downloaded from here. Please note as suggested, once this is changed it might not be possible to run the board at different speeds.

PCB for mini SYM-1

If you are like me I am not best at bread boarding circuits. From the mini board schematic diagram I have generated a pcb design and gerber files that you be able to make your own boards from. See link below.

Word of Caution First
I have not made any of these pcb’s so make sure you check the board out before any component mounting. In case there is any major faults let me know. One mistake that I am aware of is that the polarized caps C5,7 and 8 show the “+” on the wrong side. So make sure you mount polarized caps the correct way around. When I get time will try to correct that.

At this point I am only providing the full set of the gerber files from which you can get the boards manufactured. From more expensive pcb websites the board will work out about $30-$40 .. but if you shop around and get more than one board ..they will probably work out $10-15 each.

Top silk layout and component placement

Most of component placement is self explanatory. It is possible to power the board from TTL/USB connector (by getting +5 volts from PC USB port). But word of caution in doing that. The setup draws about 220mA, so make sure all the connection on J1 are solid. Also if you to use USB power then do not power the board from PWR/RST connector.
Bottom traces…

Top Traces ..

.

Download set of zipped Gerber files here.

SYM-1 Keyboard

Following is info about keyboard and 6 digit 7 segment display expansion prototype board that was used with mini SYM board to run monitor program from the keypad. It is similar in layout to original SYM-1 board. Keys are made up of pcb push button switches, that have 2 square caps on them. One cap clips over the switch then another CLEAR plastic cap clips over the top again. By placing appropriate size bit of paper with text on it, ANY keyboard key indicator can be made up. (see picture)

The only issue with these switches is that they had too much horizontal (rotational) play and hence keys do not look all lined up. Placing the keys close would eliminate some of that, however mounting the switches on the pcb requires some distance between adjoining pins – so it is not possible to bring the rows close together.

SYM-1 Maxi

This design follows on from the SYM-1 mini board.

  • It improves on previous design by increasing the memory size to possibly full 64K, using NVRam as both RAM and ROM with GAL chip for decoding.
  • 6532 chip is used for comms and general PIO …or possible connection to external keypad (like the original SYM-1 board).
  • There is provision for 2 extra 6522 chips to give extra VIO capabilities to the board.
  • It should be possible to implement the original Monitor software plus any other software like BASIC or the assembler/editor.
  • Communication to the board is via TTL to USB converter and a need for terminal program like REALTerm.

Following is the schematic of the design:


Following is a TOP view of the manufactured PCB ..

And image of assembled board (most of it tested ) …


Current consumption of the board with all chips on board is about 270mA … that is without any external connections to VIA chips ..

There is a slight mod …looking at the above schematic ..pins 18 and 13 have to be swapped ..that is pin18 becomes !a9 and 13 becomes crtout… reason being the the default schematic for the gal chip had pin 13 as i/o pin … but it is only an input pin ..!!!

PLD file to make it all work ….

Name            SYM-1 Maxi;
Partno          0001;
Revision        ver4,monitor,basic,RAE ;
Date           23/11/17;
Designer        mc;
Company         mcoz;
Location        oz;
Assembly        manual;
Device          g22v10;

/** Inputs **/
pin [3..8] = [a15..10] ;
pin 1 = phi2;
pin 2 = rnw;
pin 9 = a9;
pin 10 = a8;
pin 11 = a7;
pin 13 = crtout;
pin 16 = crtin;

/** Outputs **/

pin 14 = !nr;
pin 15 = !nw;
pin 22 = !cs6532;
pin 18 = !na9;
pin 20 = !via2cs;
pin 21 = !via1cs;
pin 23 = !csram;

pin 19 = !ncrtin;
pin 17 = !ncrtout;

/** Declarations and Intermediate Variable Definitions **/

field ioaddr= [a15..7];
cs6532_eqn   = ioaddr:[A4XX..A7XX];  
csrom_eqn   = (ioaddr:[80XX..8FXX])#(ioaddr:[B0XX..FFXX]) ;
csram_eqn   = (ioaddr:[00XX..7FXX]) ;

/** Logic Equations **/

ncrtout=crtout;
ncrtin=crtin;
na9=a9;
nr = phi2&rnw ;
nw  = !rnw&phi2 ;
cs6532 = cs6532_eqn ;
csrom = csrom_eqn&nr;
csram = csram_eqn#csrom;

You can source all binary files from 6502.org or try this combined file that has
Monitor imaged @8000-8FFF and F000-FFFF
Basic imaged from C000-DFFF and
RAE imaged @B000-BFFF and E000-EFFF

Download combined binary file

Following is a screen capture of SYM-1 Monitor and SYM BASIC running on maxi Board …

To explore the feature of saving a file to tape cassette do the following …


After typing in “SAVE A” and monitor the output on pin 9 of 74ls145..it should be pulsing for a while while the code is being transferred. The rest of circuitry converts the TTL pulses so they can be saved in appropriate audio signals levels for a tape input . Should be able to use any reasonably good tape recorders ..or even modern digital voice recorders ..for saving the code (basic text file) on tape. Similar procedure can be used for saving memory code from Monitor Program via S1 or S2 commands.

RAE for SYM-1

To run the RAE (Resident Assembler Editor) on maxi board ..just type in “G B000” from the monitor prompt .. see image below which shows some test editing and assembling using RAE ..Very Nice …

For more information: see the SYM-1 RAE page.

SYM-1 Maxi build by Norbert Jopppen

After some modifications to the pld file , the cassette interface, the6522’s and the 6532, Basic and RAE are working now. The problems Norbert had were oscillating circuits. Then Norbert found out that the NVRAM is quite critical. On his board a M48Z128Y-120PM1 works well. The Dallas DS1245AB was not reliable.
PLD files by Norbert for the SYM-1 Maxi

SYM-1 BASIC – more nostalgia

The SYM 1 is a 6502 based SBC and was the ‘big brother’ to the KIM 1. Largely backward compatible with the KIM-1 it offered more memory, a faster tape interface, more ports etc.

SYM BASIC
This came later and is a full featured floating point BASIC with strings and arrays. It didn’t use the built in keypad and LED display but was run from an RS232 terminal device.

The version presented here is V1.1. This version did not have built in SIN(), COS(),TAN() or ATN() but did have the hooks for them to be added by an expansion ROM. These missing trig functions were common in early BASICs and manny still had the string “WANT SIN/COS/TAN/ATN”, or something similar, embedded in them long after these functions were external.

Available here is a binary image of the V1.1 8k ROM (V1.0 was allegedly in two 4k ROMs) and a fully (almost, some bits I never finished) commented disassembled listing that assembles back into that ROM using Tass 1.31.

post

The Computerist Hardware

The Computerist was a company founded by Robert M. Tripp.

On this page information on the PLUS hardware for KIM-1, AIM 65, SYM-1.. Updated April 2022 with contributions by Friedrich Hofmann.

Memory PLus van Dirk Dral, met 8K Basic in EPROM.

MICRO the 6502 Journal

Archive of the magazine Micro here.

From apple2history.org description of MICRO 6502 Journal:
Robert M. Tripp got his start with computers in 1960 as an undergraduate in an unrelated field. He found the computer programming so interesting that he became a programmer in 1969, and started with the 6502 microprocessor in 1976, initially with the KIM-1 trainer sold by MOS Technology. He started a business, “The COMPUTERIST”, and sold the KIM-1 computers, as well as software and accessories for it. He started a magazine under the umbrella of his business, and named it Micro. It began publication in October of 1977, and was released on a bimonthly basis initially, going monthly in February of 1979. The first three issues were printed using his KIM-1 and he did the paste-up for the magazine on his kitchen table. He later began to use a local publishing company to create the magazine. By early 1980 the publisher name had changed to MICRO-INK, Inc.

The magazine covered the 6502 microprocessor (and later the 6809) in all the various computers that used it, including the KIM-1, the AIM-65, the C1P, the Commodore PET, the Ohio Scientific, the Atari 800, and, of course, the Apple II. It was an excellent source for machine level code for the 6502, eventually including more and more articles that applied specifically to the Apple II. Ultimately, about half of the articles in each issue dealt with the Apple II.

Many general-purpose machine language articles appeared in its pages, such as “Improved nth Precision” (code optimization for the 6502), “Precision Programming”, and “Computer Assisted Translation Of Programs From 6502 to 6809″. They also carried do-it-yourself hardware articles, such as “C1P To Epson MX-80 Printer Interface”, “PET/CBM IEEE 448 To Parallel Printer Interface”, and “Apple II Digital Storage Oscilloscope”.

Hardware by The Computerist

The Computerist, led by Robert Tripp, not only sold software like MicroChess,  published the Micro Magazine, also designed and sold hardware.

The Dutch company, Ing. Bureau Koopmans (a one man company, active in the early years with KIM-1, OSI Scientific and such) represented The Computerist in the Netherlands, and he showed me in 1979 some of the Plus hardware series for the KIM-1, SYM-1 and AIM-65 systems:
– MEMORY PLUS: 8K RAM, 8K ROM, VIA 6522, 2716 EPROM programmer
– Proto Plus, a DIY board
– VIDEO PLUS, a glass teletype video card

I did a review of the Memory Plus in May 1979, see also the dutch magazine Radio Bulletin page.

PLUS Hardware

A range of hardware was developed and sold by the Computerist, under the brandname PLUS.

 

 

Motherboard Plus

A backplane for KIM-1/SYM-1/AIM 65. Accepts the Plus boards described below.

Memory Plus

The MEMORY PLUS board is a RAM/ROM expansion board for  KIM-1, SYM-1 or AIM65. Made by the The Computerist.

With up to 8k of RAM, 8k of (EP)ROM and the ability to program EPROMs (2716) this was quite the must have upgrade for anyone who could afford it.

Here The Manual in HTML format, original OCRed by Lee Davison, corrected and enhanced with Appendix A Circuit Diagram and Application Note #1 by Hans Otten.

Scanned by Dirk Dral, high quality scan.

And here the MEMORY PLUS manual in PDF format, Appendix A, the circuit diagrams  foldout Application Note #1 is now included, added by Hans Otten.

How to decode the 8K RAM in 4K space, an article from Micro July 1979, for AIM 65 and SYM-1 

Video Plus

VIDEO PLUS is designed to work with the KIM-1, SYM-1 and the AIM 65 computers. It offers:

  • Up to 4K  display RAM and 2K Programmable Character generator
  • 2K EPROM
  • 6845 CRT controller
  • ASCII keyboard interface
  • Composite monochrome video PAL or NTSC

The following documents are available:

Video PLUS II

Video PLUS II is an updated Video PLUS, a Versatiel Video Expansion Board, with:

  • Programmable Screen format
  • PRogrammable Character Generator
  • Uo to 4K Display Memeory
  • Supports ASCII Keyboard
  • Stand-Alone Option
  • AIM/SYM/KIM Software
  • 6845 video controller, 6522 VIA, RS232

The following documents are available:

PROTO PLUS II

The PROTO PLUS II is a board to interface digital logic to a KIM-1, SYM-1 or AIM 65. A large breadboard area is available.

The board has the standard KIM-1 44 pin edge connector. A power regulator for 8V to + 5V is on the board.

The board has  address, data bus and signal bus buffering and address decoding for tom select a 8K page in memory and kIM-1 8K decoding. 3 gates of a 74LS32 is available for general use.

Here the PROTO PLUS II manual, with circuit diagram.

 

 

DRAM Plus

DRAM Plus is a Multi-purpose Expansion Board for AIM 65/SYM-1/KIM-1 with

  • 16/32K dynamic RAM
  • 8/16K EPROM 2716/2516/2732/2532/2332
  • I/O Ports and Timers VIA 2x 6522
  • Prototyping Area
  • EPROM Programmer

DRAM PLUS manual, includes circuit diagram and software

 

 

K-1002 8 bits DAC
An 8 bits DAC. For the PET userport, easily adapted for other 6502 systems.
Hardware K-1002 manual includes circuit diagram

Files for the VIDEO and PROTO PLUS: Thanks to Dave Colglazier at Original Woodworks.

Video PLUS II and DRAM PLUS: thanks to Friedrich Hofmann

Radio Bulletin

The dutch magazine Radio Bulletin (RB, RB Electronics) has a long history, going way back to the early years of electronics. The name was derived from what electronics meant for amateurs in these days: building radios yourself.
It was published by Uitgeverij de Muiderkring, a publishing company in the Amroh group of companies.

The magazine was published in large volumes in the years 1970-1985, due to the popularity of do-it-yourself electronics and audio. Also the beginning of the microprocessor revolution was adequately covered and the great years of the hobbycomputers 1980-1990 were contributing to the success. Besides the magazine Uitgeverij de Muiderkring published many books on electronics. After 1990 the success faded and the magazine left the mass market and stopped in 2003. The publishing company Uitgeverij de Muiderkring, together with Amroh, went bankrupt in 2002 (I lived closely to the last location and saw the empty offices when passing by).

In 1977 Dick de Boer joined the staff of RB and introduced the readers to microprocessors and in particular the 6502 and the KIM-1. Also the KIM Gebruikers Club and the HCC were founded that year and RB started to write articles about all this exciting new developments!
I was then already a freelance writer about electronics but Dick made me study the microcomputer such as the KIM-1 and made me join the KIM
Gebruikers Club and the HCC (member 760 member). Dick de Boer, his successor Paul de Beer and me (Hans Otten) and others wrote many articles about the KIM-1 and related 6502 based systems for Radio Bulletin. Especially Dick wrote good introduction articles and developed sophisticated hardware and software like a graphical display. After leaving the magazine he became a software engineer and helped me also to my first job as software engineer in 1980. Me and Paul de Beer concentrated more on expanding 6502 systems like the KIM-1 with memory (RAM, ROM) and I/O cards like PIA, VIA and ACIA and mass-storage such as the Mini Digital Cassette Recorder. The bus of this expansion system was the so called BEM-bus.

I did translate a book Computer Interfaces by Owen Bishop for de Muiderkring to dutch. A scanned version is presented here.

All these articles are downloadable here, as they describe my publishing history and my KIM-1 system, designs by us of which the prints sold quite well. As you can see in the long list of articles the KIM and the 6502 played a major role in the microprocessor revolution starting in 1977 and lasting until 1987 for me.

What you see about Amroh, Uitgeverij de Muiderkring and Radio Bulletin is:

Selection of my and others articles 1977 – 1987 in Radio Bulletin
the RB Specials
the Cosmicos 1802 CPU based system by H.B. Stuurman, book and articles
some bits about the long history of Radio Bulletin
Elektronica ABC, the diy magazine

See also:

– Dr Blan articles on Step-by-Step radios
– Step by Step radio by Amroh