post

New KIM replica PAL-1, Corsham pages enhanced

PAL-1 A new KIM replica, in fact a clone of the Micro-KIM with improvements.

Corsham KIM Clone pages enhanced. At first sight the Corsham pages looked fine, But when I tried to find things I quickly got lost between Product Descriptions, TechTips, Documentation and the Corsham Github page. Old and new, curuent and obsolte, a bit of a mess.
Also most documents are in Word format and I prefer PDF format for reading on my tablet PC’s.
So the Corsham pages are now enhanced for all hardware products I have acquired.

PAL-1

A new KIM-1 clone kit in 2021, the PAL-1. In fact, this is a Micro-KIM clone, which is a KIM-1 clone .. Look and specs are like the Micro-KIM, with some improvements like larger keys and a very affordable price. Motherboard, 32K RAM, second 6532 board, RAM board, ROm board, Cassette board, a full KIM-1 and more compatible system.

Designer and seller is software engineer, Liu Ganning, KJXZZ, from Shenzhen, Guangdong, China

The PAL-1 has its own discussion platform at google groups.
For software: se the KIM-1 software page, as the PAL-1 is a KIM-1 with lots of memory!
PAL-1’s difference
First, PAL-1 is a kit, you can assemble it, test it and run it all by yourself —— an unique experience!
The PAL-1 addressing mode is completely implemented in accordance with the design of KIM-1, so it is compatible with most programs developed on KIM-1.
PAL-1 has 2K bytes ROM (complete KIM-1 Monitor), 5K bytes RAM, one 6532 RIOT chip on board, provides two 8-bit bidirectional I/Os, these I/Os are mainly used to support 23-key keyboard input and drive 6 seven-segment LED displays. In addition, PAL-1 also provides RS232 serial port to support terminal operation and 40-pin expansion port for future upgrade. The TTY/RS232 interface and expansion interface pinout uses the design of Rich Dreher and Vince Briel (MicroKIM compatible).
Besides the PAL-1 also a 6 slot motherboard, a 32K RAM board and a RIOT board (the second 6532 making it a complete KIM-1) and a cassette interface baord are available. A ROM boards adds many programs like programming languages Basic, Forth etc.

The main differences between PAL-1 and KIM-1 are illustrated by the following two figures in the “KIM-1 User Manual”.
PAL-1 absence half I/O and Timer (red) Picture 11 (see the RIOT board how to add this!)

PAL-1 onboard RAM increased to 5K (all green spaces are available) Picture 10

What is included
The PAL-1 Kit includes mainboard PCB, ICs, pre-programmed ROM, passive components, sockets & headers.
Print version BOM, Pinout, Schematic.

/tbody>

User Manual PAL-1
Schematic PAL-1
Bill of Materials
Motherboard
32K RAM expansion manual
32k RAM board schematic
RIOT expansion manual
RIOT board schematic
ROM expansion manual 1.0
ROM expansion manual_v1.2 (28C256)
Operation guide PAL-1 EPROM Expansion Card
ROM board 1.0 schematic
ROM board schematic V1.2
ROM PAL-1 ROM image
Cassette expansion manual
Cassette board schematic
Cassette board BOM

Modification for TTL USB interface

The two following images show how to adapt the PAL-1 to a TTL USB interface instead of RS232. also supplying power from USB.

Modification of ROM board 1.0 for 28C256 EEPROM

The ROM card v1.0 is designed for using 27C256 and 27C512 EPROM, but these UV-erase chip will need much patient when you’re doing a lot of ROM program. So the PAL-1 got a new version ROM card, v1.2, to support the more convenience EEPROM, the 28C256.

Even the v1.0 ROM card designed for the 27Cxxx, you can also use the 28C256 on it. Just one soldering work need to do, populate the high 32K switch using a switch (like K3-2235D-F1) or 3-pin 2.54mm pin header (solder at the inner side of the high 32K switch).

When you need to using a 28C256, you can set and keep the low 32K switch to HIGH, then using the high 32K switch/jumper to select the low 16K bank or the high 16K bank of 28C256 just like normal.


A second RAM board can be modified to add 16K extra.
Modify a 32K RAM card for the upper RAM area. Just need to cut 1 wire and solder 2 jumper wires like below:


The KIM ROM needs the highest area of 64K for the vectors, so the Exxx to FFFF cannot be decoded with the second 32K RAM card.
We can use $A000~$DFFF (16K) more RAM with the second RAM card installed.

Some pictures of the two RAM card system running.

RAM test:
















KIM Clone software

Applications

Look at the KIM-1 software page for a wide offer of KIM-1 software, suitable also for the KIM Clone.

KIM Monitor

The Corsham variant of the KIM Monitor is for the most part made up of the code in the 6530-002 ROM. The 6530-003 (audio cassette save/load) ROM was removed.
Placed in the main ROM of the KIM Clone.

List of changes to the original KIM-1 ROMs:

  1. Removal of the (6530-003) code to save/load from cassette tape.
  2. Lunar Lander (First Book of KIM) added.
  3. Farmer Brown (First Book of KIM) added.
  4. New X command from TTY to enter the Corsham Technologies xKIM extended monitor.
  5. L command also loads Intel hex file (from input, send file in terminal emulator, like you can do with papertape files)

There is no technical reason why you could not load the original KIM 6530-002 and 6530-003 ROMs into the KIM Monitor EPROM. The Corsham KIM Monitor is a bit more convenient.

Source of Corsham KIM Monitor

xKIM Monitor
Placed in the extra EEPROM

Extra commands in teletype mode.

  ? ........... Show this help
  D ........... Disk directory
  E xxxx ...... Edit memory
  H xxxx xxxx . Hex dump memory
  J xxxx ...... Jump to address
  K ........... Go to KIM monitor
  L ........... Load HEX file
  M xxxx xxxx . Memory test
  P ........... Ping disk controller
  T ........... Type disk file
  ! ........... Do a cold start

Source of Corsham KIM Monitor
a>

Corsham eXtended KIM Monitor Manual
Source of Corsham KIM Monitor

Microsoft 8K BASIC
Download the original KB9 binary, dumped from official Micro-soft (no typing error, original name!) cassette audio tape, and documentation from this site.

Or build your own version from the pagetable blog (for which my KB9 was the KIM-1 version as input!) Install the CC65 package, then run the make.sh command, then look at the file tmp/kb9.bin, You’ll need to convert that raw binary image to a file suitable for downloading to the KIM, see the KIM-1 tools for a utility. All of these needs at least 12K of RAM starting at $2000 in the KIM-1

Binaries of KB9

Here is a file suitable for downloading onto a KIM-1. It loads at $2000 but to run it you’ll need to start at $4065. Use the L command in KIM-1’s monitor, then upload the file. I strongly suggest that you change your terminal emulator so it adds a 200 ms pause at the end of each line. Once it loads, run it by going to 4065 and running it.
4065 G
To see the easter egg, answer “A” when it asks for memory size.

Original KIM-1 Microsoft BASIC KB9

This is still experimental but I have a version which uses functions in the xKIM monitor (present on the KIM Clone or on the 60K RAM/EPROM board) to save/load from the SD Card System. It also has a DIR command. This is an Intel HEX file and must be loaded from the xKIM “L” command:

Download hex file xkim

This loads and runs at $2000.

Tom Pittman’s Tiny BASIC
Tom distributed a very small BASIC that needed about 3K to run, and was available on paper tape for $5!!! He has quite a bit about it at:
http://www.ittybittycomputers.com/IttyBitty/TinyBasic/

Here is the source code, listing, and binary to my disassembly which includes a lot of comments and notes from Tom Pittman:
Tiny Basic source
Tiny Basic listing

A ready-to-run binary which loads at $0200 and should have RAM up to $13FFL
Tiny Basic hex file

Bob’s Tiny BASIC
by Bob Applegate

All the early issues of Dr Dobb’s Journal discussed using using an intermediate language (IL) to write a general interpreter, then writing a BASIC interpreter using the IL language. Nobody used this except for Tom Pittman. I liked the idea and about five years ago wrote my own BASIC using that approach. It is buggy, but the sources are on the Corshams github so anyone can take them, hopefully debug things, and put fixes back in place. My version also has commands to save/load programs to/from a Corsham Technologies’ SD Card System.

Source and documentation of Bob’s Tiny Basic

And a binary version that can be run starting at address 0200

AS65 assembler

The software above was assembled with the AS65 Kingwoods assembler, a command line utility for Windows (including 10).

Download here AS65

A typical build for a bianry and hex output would be:

REM Build xKIM
as65 -l -s2 xKIM.asm
as65 -l xKIM.asm

Type “as65 ?” for help

Memory Test

by Bob Applegate
This memory test was originally based on Jim Butterfield’s memory test program in the First Book of Kim, but has grown a bit. This now tests every memory location using a rolling 9-bit pattern. Ie the pattern repeats every 9 bytes, so this will detect most shorted address line problems. I use this to test memory boards, so it will run forever unless an error is detected. At the end of each pass, a ‘.’ is printed.

This does output to the TTY port, so if you’re only using the default KIM display, the output functions will need to be tweaked. Not hard to do, but I didn’t need it.

Written February 2006 by Bob Applegate, but it uses some bits of code from Jim Butterfield, and Ross Archer
Memory test soource and hex file

Microchess Peter Jennings
Adapted for KIM clone by tennyson.neil

Source and hex file Microchess for the KIM clone

post

Corsham KIM Clone peripherals

KIM Clone Motherboard

KIM Clone Motherboard User Manual
KIM Clone Motherboard schematic

KIM Clone Proto Board

KIM Clone Proto Board User Manual

KIM Clone I/O board

KIM Clone I/O Board Manual
KIM Clone I/O board Rev 3 Schematic

KIM-1 I/O Board

KIM-1 I/O Board Manual
KIM-1 I/O Board schematic

KIM-1 60K RAM/ROM Board

KIM 60K RAM ROM Manual
KIM 60K RAM ROM Schematic
post

KIM Clone information

KIM Clone User Manual Rev 2
KIM Clone Rev 2 Circuit Diagram
KIM Clone User Manual Rev 5
KIM Clone Rev 5 Circuit Diagram
Building a KIM Clone, Tech tips

Fix for KIM Clone Single-Step Problem

Rev 1B and rev 2 boards have a problem where single-step mode does not work. It works for old 6502s but not for newer ones nor 65C02. The solution was very simple: add a .001 uf capacitor across U16 pins 7 and 8. All assembled KIM Clones now have the modification and future revisions of the board will have the capacitor on the motherboard.

post

Corsham SD card system

SD Card System.

This is a two board system that provides a very inexpensive, flexible, and long-lasting storage option for our KIM Clone , SS-50 based designs, or almost any third party system.

The main board is the Corsham SD Shield. It plugs into an Arduino Mega and provides for insertion of a micro SD card, and also includes a DS3231 based real time clock (RTC). The Arduino does the hard work of providing an interface between the host processor (6502, 6800, 6809, etc) and the SD card and RTC. It connects to the host via a ribbon cable.

The board also contains three LEDs used for status, a RESET switch, a four position DIP switch, a DS3231 RTC, backup battery, and it maintains the Arduino Mega headers so additional shields can be placed on top. Since the source code is available you can add additional drivers for whatever shields you add. Want to add an LCD shield that displays which files are mounted? Just plug in the shield and modify the user interface class in the source code. Only one of the DIP switches has a defined purpose, so the rest are free for you to add your own logic.

The protocol between the host and the SD Card System is completely defined in The Remote Disk Protocol Guide available for download below.

The source for the Arduino Mega is also available for download.

SD Card System manual
SD Card Schematic
SD drive Arduino November 2020 source
SD shield tester, set RTC time source Arduino
The Remote Disk Protocol Guide
6502 routines for KIM-1 low and high-level disk access
Also see xKIM extended KIM Monitor
post

KIM-1 clones and replica’s

The KIM-1. my first computer. Still have it, and it is still operational.

But I fear to use it for experiments and daily use, it is too valuable for me.

So I invested in KIM-1 clones and replica’s:
– Micro-KIM by Vince Briel
– KIM Clone by Bob Applegate, Corsham Technologies
– MOS KIM-1 Reproduction by Dave Williams
– KIM Uno by Oscar Vermeulen

Each has it advantages. And not all are still for sale.
Corsham is till in business and has an awful KIM Clone, with motherboard, I/O card, experimenters board and SD file system. A real enhanced KIM-1 on real KIM-1 hardware.
The KIM Uno is also available, affordable,now an emulator on an Arduino, soon on ESP32. Fun to have a KIM-1 look and feel.

All are documented on the KIM-1 replica’s and clone page.
KIM replica’s and clones



KIM replica’s and clones

I have several KIM replica’s or clones.

The CPU is of course a 6502 at 1 MHz crystal clock frequency. The edge (Application and expansion) connectors are physically and logical identical. And they have the KIM-1 ROMs!

Since 6530 RRIOT ICs (the 002 and 003 variant) are not available anymore, the same solution as in the other clones is chosen: a 6532 RIOT with a 2K EEPROM and some logic ICs (3) to get a hardware solution that makes it look exactly the same for the KIM-1 ROM software. The PCB is of course new design, not the typical 70ties KIM-1 rounded lines PCB design.

The result is great: it feels, looks and operates as an original KIM-1 with hex keyboard and LED display.
First Book of LIM programs run, All KIM-1 sofwtare runs, Microsoft KIM-1 Basic and Microchess run, when additional RAM is connected.

Corsham KIM Clone

MOS KIM reproduction

KIM Uno

Micro-KIM

PAL-1 a clone, can be expanded with motherboard, second RIOT, RAM, ROM, Cassette interface

Pocketerm

The PockeTerm is a 4″ X 2.5″ single board terminal that uses a VGA monitor and a PS/2 keyboard for its input and output. Dual serial ports gives the user the option of transferring data to/from a PC while still connected to the host device. This terminal was designed to work with vintage computers but is compatible with most systems including Unix and Linux systems. A low cost color choice terminal that has VT-100 compatible commands for controlling cursor and screen functions. Want to program the propeller microcontroller or install an update to the firmware? No problem, just connect the PockeTerm to your PC, run the Propeller Tools software and you can program it from your PC, no expensive Prop Plug required.

The PockeTerm has a full featured screen with Function key status at the bottom of the screen. Click on the image for a full size photograph of the screenshot.

CTRL-F1 Selects Baud Rate
CTRL-F2 Changes text color of the main display section
CTRL-F3 Turns on/off the 2nd serial port that connects to a PC.
CTRL-F4 Force incoming data to 7 bit ASCII. Strips the 8th bit, required for some systems
CTRL=F5 Change cursor type. Choose from underscore, solid block, or none. Also, choose from blinking or not.
CTRL-F6 Add line-feed to carriage returns

Documents

Pocketerm Setup and Users Manual 2009
Pocketerm Setup and Users Manual V3 2009
Pocketerm Circuit diagram
Pocketerm Bill Of Materials
Pocketerm Firmware
Pocketerm CD

PS/2 keyboards

I have succesfully assembled the kit, the manual guided me just fine through the steps. Took me just over an hour.
The PockeTerm worked right away. Thanks to mfortuna’s tip, put jumpers in 1&2 and 5&6, and testing is independent of cables and computers to connect.

A standard keyboard with PS/2 worked. What did not work was my mini-USB keyboard (standard PC keyboard without numerical pad, and smaller size, like notebook keyboards) connected via an USB to PS/2 converter. The USB keyboard is ok, works with the PC’s and the Apple 1 kits via the USB-PS/2 dongle. I bought it because the smaller size looks better with the small computers and takes less desk space With the scope I found the PS/2 clock/data line (cant remember which one), to be open, as if nothing connected. So something is missing to make the USB device come alive. I googled around and found this: http://www.parallax.com/Portals/0/Downloads/docs/prod/edu/28060-PS2Adapter-v1.0.pdf
In it I saw a schematic how to connect a Parallax mini PS/2 keyboard, and it was different from the PockeTerm PS/2 interface. It has additional 10k pull-ups connected to the PS/2 clock and data. I soldered in the two 10k’s and the mini keyboard came alive!

Program the Propeller Notes by Vince Briel

  1. Go download propeller tools from parallax here: http://www.parallax.com/Portals/0/Downloads/sw/propeller/Setup-Propeller-Tool-v1.2.7-(R2).exe
  2. Install propeller tools
  3. Place the firmware directory from your PockeTerm CD onto your hard drive here:
    C:\program files\parallax inc\propeller tool v1.2.7 (r2)\
  4. Connect your PockeTerm to the RS232 port labled PC and turn on your PockeTerm.
  5. Under the propeller tools program click on the section File and find the firmware directory you just copied onto your hard drive and select the file
    PockeTermV.905.spin
  6. Press F11 on your PC keyboard and the propeller tools will compile and attempt to find a Propeller chip connected to a serial port on your PC. If your
    connection is good it will program the RAM first on your Propeller chip then program the EEPROM.

The PockeTerm makes a really good development board for learning how to program the Propeller chip. For more information on programming the Propeller,
please visit the Parallax forums here: http://forums.parallax.com/forums/default.aspx?f=25
The above steps will program the Propeller with the code that is now resident on the EEPROM onboard the PockeTerm. Change step 3 to the location of the program you wish to insert onto the PockeTerm.








Micro-KIM RAM, EPROM and Expansion boards

Optional add-ons to make the Micro-KIM a real KIM-1, with the second 6530/32 and a 32K RAM card to give enough RAM to run real programs like KB9 Basic.

The expansion connector is made for this. With the expansion board up to four cards can be added.

A 40 pins male connector. Pin 1 is labeled on the board and is near the edge at the upper-left corner
of the connector.

Here he description of the expansion connector. Also see the Circuit diagram.

1 and 40 two pins for ground to give proper grounding to optional expansion boards.
2 VCC, this is a 5V signal which powers the circuit
3-14, 31-38 CPU address lines A0-A15 used to address memory or devices
11 R/W read/write signal. Low when writing, high when reading memory
12-15, 26-29 CPU data bus. Used to transfer data to/from RAM/EPROM or devices
16 Sync. This signal goes high during when an instruction is being fetched for the CPU
17 NMI. Non-Maskable Interrupt signal to the CPU. Active low to generate
18 DEN, Onboard memory decode Enable line.
Control the enabling of the onboard memory
19 IO3 is the pre-decoded signal for the 2nd optional 6532.
Attach to CS1 pin 38 on 6532
20 PHI1 Phase 1 clock signal. 180 degrees from phase 2
21 IRQ Interrupt request signal. Active low generates an IRQ.
22 PB7 is I/O port pin PB7 from 6532 required to complete cassette interface
23 SST Single step signal used to control CPU with single step
24 TAPE this signal is used to complete the cassette interface.
25 RDY used to stop the CPU in single step circuit
30 PHI2 phase 2 main clock signal to the 6502
39 RESET 6502 RESET line, when pulled low will reset the 6502

32K RAM

Circuit diagram of memory expansion

Second EPROM
The Micro-KIM is already prepared for a second 6532. The ROM for it is in place, the address decoding is also available. This card brings the second 6532 with the free I/O and timers to connector.

The revision I have needs a wire to connect the missing ground line to the 74LS04 (tip from azog, Silent Q).

Expansion motherboard

With two expansion boards, both quite essential as shown above and one expansion connector, is not enough.
So the expansion board brings the expansion connector to four connectors, just one on one connected.
As you can see on the Cassette interface for the Micro-KIM page this makes for interesting additions.
The expansion board can be placed in two ways. The first way iverhanging the Micro-KIM for a compact solution. Or hanging outside, which makes attaching wires to expansion boards less risky. Always take care of the right orientation of the expansion boards, notice the ‘1’ on the baords and the exapnsion connector on the Micro-KIM.