post

Focal-65 V3D for TIM and KIM-1

Focal on the 6502, a page on this small language, originating for Digital Equipment.
A small interpreter (about 5K) for a convenient interpreted language. Floating point 9 digit accuracy. At least two versions were distributed around 1977, one by Aresco, called “Focal V3D” and another by the Program Exchange as representative of the Denver 6502 Group, often called “Focal-65E”

Latest addition is a reconstruction of the source, by Wayne Wall of the Denver 6502 Group in 1977, of Focal V3D for the TIM to binary, and a port to the KIM-1.
Based upon a listing of the TIM Focal-65 from 1977 and a Focal-65 User manual, repaired and cleaned up.
And that enabled the reconstruction of the soource Focal-65 V3D as distributed by Aresco!

Read all about Focal-65 here!

post

Focal-65 V3D for TIM and KIM-1

Focal on the 6502, a page on this small language, originating for Digital Equipment.
A small interpreter (about 5K) for a convenient interpreted language. Floating point 9 digit accuracy. At least two versions were distributed around 1977, one by Aresco, called “Focal V3D” and another by the Program Exchange as representative of the Denver 6502 Group, “Focal-65″ or FCl_65” or “FCL-65E”

Information from the German 1981 article in MC Magazine, see the articles, indicates the existence and sale of Focal versions by the 6502 Program Exchange:

  • FCL-65 and FCL-65E with Mini userguide
  • My version from Aresco Focal V3D, 1-oct-1977 binary and userguide
  • Focal V3D for TIM, listing known and available on this page
  • Focal-65 V3E 1-oct-1979, Apple II, source listing known at MC Magazine in 1981
  • V4 for Apple, listing known and in possession of Wayne Wall, not public available

I suppose this list is incomplete, other versions may have existed. None but my binary of Aresco Focal-3D, the Aresco V3D Userguide, a User Guide by the Denver 6502 group and a listing of Focal-65 V3D for the TIM survived and is available.

Latest addition to this page is a reconstruction of the sources, of Focal V3D for the TIM to binary, and a port to the KIM-1. Also the Aresco version source is reconstructed and identical to the tape dump of 1978.

On this page you will find:

  1. My experience with Focal-65 as started in 1979
  2. Reference material: User manuals, listings
  3. Magazine articles about Focal-65
  4. Reconstructed sources of Focal-65 for TIM and KIM-1
  5. Reconstructed source of Focal-65 for the KIM-1 Aresco version
  6. On the origin of Focal-65

My experience with Focal-65 started in 1979

In 1979 my good friend Anton Muller, at a meeting of our Dutch 6502 KIM Club, surprised me with a package Anton had imported from the U.S.A. : Focal V3d by Aresco.
The package came with a cassette tape and a user manual. We installed it on the KIM-1 and played with it. Impressive what was done in about 5K!
Floating point, string handling, a trick to suppress the hardware echo of TTY input.
After an article in our club magazine more members of the club became Focal-65 users and published articles about it.

This version of Focal-65 has survived. I have dumped a working version from cassette in 2004 (not the original alas, but a working copy with a bit too much) and scanned the user manual.
Manual and binary version have been available on this website now several years. Also I added DEC Focal manuals, Digital Equipment Corp. developed and sold Focal as a product for the PDP computers. In the KIM/6502 User notes articles were published on making Focal even more interesting, also published here.

When the KIM Simulator became usable, I tested Focal and saw that suppressing the TTY echo worked, but the wait for keyboard input loop preceding the read character routine did not. So I added a setting to let Focal-65 survive that loop. So Focal-65, Aresco version, runs unaltered on the KIM-1 Simulator!

The FOCAL programming language

In 2023 a source listing appeared, thanks to Paul Birkel, of Focal-65, programmed by Wayne Wall and friends in 1977. Target system is a TIM such as Jolt or Superjolt. I typed in that listing exactly with modern assembler syntax and made that version operational.
Here I present several reconstructed versions, for TIM (653-004) such as Jolt and KIM-1 based systems.
– A TIM/Jolt/Superjolt system needs minimum 8K RAM in lower memory.
– The KIM-1 needs memory, minimum 8K, from $2000 and up.
See below for the TIM version and a port to KIM-1. These are 90% identical to the Focal-65 V3D Aresco version, so that was the start to recreate that source too .


Reference material for download

First some downloadable reference material.

DEC-08-AJAB-D PDP-8-I FOCAL Programming Manual.
Focal by DEC is the beginning of all Focal implementations. A typical DEC manual, easy to read, complete, well organized.
DEC-08-AJBB-DL Advanced FOCAL Technical Specification April 69
This manual is where Wayne Wall got his design. From the flowcharts and labels, similar names and concepts can be found in the Focal-65 source
Focal-65 users guide V3D, by Aresco
Focal-65 Users Guide V3D by the Denver 6502 Group.
Cleaned up version made by me.
TIM Focal-65 V3D source listing
Cleaned up version made by me.

Articles on Focal-65

KIM/6502 User notes
Articles from the magazine, Focal corner

  1. Introduction to FOCAL, 6502 User Notes 12
  2. Improve on echo problems with KIM TTY, 6502 User Notes 13
  3. Make room for enhancements, extend to 8K, User Notes 14
  4. Speed it up, 6502 User Notes 15
  5. Cassette save/write an LED display listing, 6502 User Notes 16

KIM Kenner
Introduction to FOCAL, how to program, Dutch

Compute II
Modify and Move FOCAL 65-E into EPROM, Compute II Issue 3

MC Magazine
German article on Focal-65, has interesting information on versions

Working versions, reconstructed from sources

Denver 6502 Group Focal for TIM

In 2023 a listing of Focal-65, by Wayne Wall, for a Focal-65 version for the TIM, showed up, thanks to Paul Birkel.
A low low quality scan, so I cleaned it up, improved contrast, removed artefacts and cropped it. The result is readable, but not fit for OCR.

TIM Focal-65 V3D source listing
Original printed listing 1977 by Wayne Wall. Cleaned up version.

I typed this source in, exactly as the listing: uppercase, same comments, same line numbers.In this way I honor the original author and also enable checking of the binary result.
I did change the assembler syntax to a modern assembler. The original was written for PAL-65, an assembler by Wayne Wall in PDP macro assembler format.
When it assembled I compared the binary out to the binary in the listing by hand. Of course typos and the curse of direct addressing, the #!, caused some extra work.
The result was a binary with the same length. as shown in the listing.

Then the binary was loaded in my TIM Simulator, with a small external patch for the ‘no echo’ input character routine in the source. The TIM has ‘software echo’ hardcoded in the monitor for reading a character from TTY, so the monitor code is copied with optional echo.
It runs!


Focal-65 for the TIM, here the source as typed in, listing, binaries in Intel hex and Papertape format and the TIM Simulator patch.

Denver 6502 Group Focal for the KIM-1

To illustrate how easy it is to adapt Focal to other 6502 systems, I ported the TIM version to the KIM-1.
Changes required:

  1. Program moved from $1000 to $2000
  2. Replaced the TIM I/O package with a KIM-1 version: IRQ/BRK vector, no echo character input (partly taken from the Aresco disassembly for character output
  3. Further no changes, same line numbers, same size

This version runs fine in the KIM-1 Simulator with the Focal V3D setting.



Focal-65 for the KIM-1, here the source as typed in, ported to KIM-1, listing, binaries in Intel hex and Papertape format

Aresco Focal-65 V3D

Here the original Aresco Focal V3D dump from cassette. Note that the dump contains a bit more than necessary. The zeropage is completely dumped, and filled in by a running Focal session.
It runs on a KIM-1 and on the KIM-1 Simulator with the Settings – Type of Break setting set to Focal V3D.

First attempt to get a source, unfinished, does not assemble, but informative.
Disassembled source by Paul R. Santa-Maria (2004) and Hans Otten (more comments) (2022).

Focal-65 users guide V3D, by Aresco

Reconstructed source of Focal-65 for the KIM-1 Aresco version

With the source of the KIM-1/TIM and the binary of the Aresco version I have since 1978, it was an easy job to reconstruct the source of the Aresco version.
By comparing the binary output of the assembled source and the binary of the tape, differences can be seen and fixed in the source.

The interpreter code is 100% identical to the tape dump (minus the extra unused bytes saved at the end). Zero page is clean.

The code runs in the KIM-1 Simulator with the Focal V3D setting. No surprise, the binary of the tape dump also runs and the binaries of the code are identical.

Focal-65 for the KIM-1, Aresco version, here the source , listing, binaries in Intel hex and Papertape

The history of Focal for the 6502

Excerpt from the history of the Denver 6502 Group.
In 1975, Denver was a hotbed of computer activities. There was a new computer club called the Denver Amateur Computer Society (DACS), and every meeting was packed with radio amateurs and hobbyists anxious to learn about this exciting new technology. DACS was dominated by Intel 8080 based computers, but there were a few people interested in the 6502. Wayne Wall was one of the first to appreciate the power and speed of the 6502, and he decided to form a subgroup of DACS for 6502 users.

Wayne was a genius assembly language and systems programmer who worked at the Colorado School of Mines. He began holding meetings every Tuesday night at the School of Mines Computing Center for anyone interested in the 6502. At first it was called the 6502 sub-group of DACS, but as time went on, it became the 6502 Group.

All told, there were probably about 100 members, but on a typical night, 30 to 40 people would crowd into the meeting room, anxious to hear Wayne’s latest ideas and see his demonstrations. He was famous for his magic shows that invariably consisted of doing something hitherto unimaginable like simulating human speech with 13 bytes of assembly code. Wayne quickly gained the well deserved reputation as a computer wizard.

Most members of the group owned Digital Group systems. The Digital Group was a local company that had a short but spectacular career manufacturing computer kits. They were powerful, easy to assemble and way ahead of their time, with memory-addressable video cards, system monitors and relatively large memory boards. In addition to the Digital Group systems, the group had a scattering of Kim’s, Tim’s, Jolt’s and even a few odd homebrew machines.

At the time, there was virtually no software available for the 6502. All programs had to be tediously hand-assembled and typed into the machines. Wayne decided that his first task was to find a way to deal with this problem.

The School of Mines had a huge black mainframe called a PDP-10, and Wayne wanted to use the power and capabilities of this computer to write 6502 code. The first possibility was to use a FORTAN cross-assembler that was available from MOS Technology, but it was slow and buggy. Instead, Wayne chose to write 6502 macros for the PDP-10’s “PAL” assembler. After a few days work, Wayne had a fast new assembler that he called “PAL-65.” Suddenly we had the ability to write relatively large assembly language programs for the 6502.

Initially, Wayne cranked out a series of assembly language games. The first was a simple text based game where you shot arrows at a mythical beast called a Wumpus. Most of our computers had between 512 and two kilobytes of memory, but as Wayne’s games grew in complexity, we struggled to keep up, spending our nights soldering memory chips onto circuit boards.

Wayne now turned his attention to a high level language. The Intel based microprocessors had a version of BASIC written by Microsoft. Wayne decided that we should have a similar language, and he chose to write a version of the DEC language called FOCAL. Even though it was a relatively obscure language, FOCAL had some subtle advantages over BASIC, the biggest was its ability to evaluate strings as expressions.

Wayne wanted FOCAL to be a group project, and one evening he showed up with a stack of photocopies of the DEC flowcharts for the language. His plan was to assign each section of the chart to one of the 6502 Group members. We were supposed to go home, write 6502 assembly code for the section, and in a few weeks, we’d have an operating version of FOCAL. Unfortunately, Wayne had overestimated our skills. Most of us had been assembling code by hand and had no idea how to work from a flow chart. In the end, Wayne and Bob Ulshafer did most of the coding.

When it was finally finished, FOCAL was a big breakthrough. Suddenly we had a true programming language. Complex new games began to appear on our computers including a version of the famous mainframe game Star Trek, written by Larry Fish. Over the next few weeks Wayne wrote a five-byte floating point package for FOCAL based on a Dr. Dobbs article. With the new floating point power, simulations and mathematical programs sprouted up everywhere.

With thanks to Paul Birkel for the scan of the listing.

End of year updates to my programs

I have made some small updates to four of my programs.
Updates are bugfixes, cosmetic changes to also to let Raspberry Pi OS versions work, a nicer looking Windows setup and in general bringing all the programs to the same level.

Convert 8 bits hex formats V 2.7
KIM-1 Simulator V 1.3.9
TIM Superjolt Simulator V 0.5
SerialTester V 1.1

post

Tiny Basic

Tiny Basic for the KIM-1 and the TIM in the Superjolt

Tiny Basic interpreter Copyright 1976 Itty Bitty Computers, used by permission

Tiny Basic on the Superjolt

On this page information how to run Tiny Basic, by Tom Pittman, for the KIM-1 or a TIM (RRIOT 6530-004) based machine, like Jolt and Superjolt, with 4K RAM at least extra.
Any 6502 machine with character I/O can run Tiny Basic, source is available with just a few changes to be made to I/O, memory layout and breaktest. Note that most of the zeropage is used by Tiny Basic!

All tests and binary file manipulation with Tiny Basic have been done with my KIM-1 and TIM Superjolt simulators.
File conversion between binary and papertape and such is done with the Convert Hex 8 bit formats utility.

On this page you find:

post

The KIM-1 family

The KIM-1 is one of the first computer systems build around the 6502 microprocessor, somewhere in 1975.
The hardware and software concepts in the KIM-1 were reused in a number of systems created later.

  • Application and expansion connector
  • KIM-1 monitor software in ROMs 6430-002 and 6430-003
  • RRIOTs in 6530 (equivalent to 6532)
  • Bitbanged serial interface
  • 6 multiplexed seven segment LEDs and hex keyboard
  • MOS Technology papertape format load and save
  • KIM-1 audiotape format

Over the years I have collected a ‘family’ of small computers with one or more concepts of the KIM-1, as shown in the figure above.

System          Connectors KIM-1 monitor Serial  LEDS + keypad Papertape KIM-1 audio RIOT
-----------------------------------------------------------------------------------------
KIM-1                X           X         X           X          X           X        X
SYM-1                X           X         X           X                      X        X
AIM 65               X                                                        X        X
MCS Alpha 1                                X           X                      X        X
Elektor Junior                             X           X                      X        X
KIM UNO                          X                     X          X                    X 
Micro-KIM                        X         X           X          X                    X
KIM Clone                        X         X           X          X                    X
PAL-1                            X         X           X          X           X        X
MOS Reproduction     X           X         X           X          X           X        X
KIM-1 Simulator                  X         X           X          X                    X
-----------------------------------------------------------------------------------------
post

Me and my KIM-1

My first computer is a KIM-1. Still have it! A life changing experience!

This is the story of me and the KIM-1.

Philips educational kits.

As a young child, at age 12, I was introduced to electronics with the Philips electronic kits. First a Pionier crystal radio. Easy to build, good instruction manual. Lots of listening pleasure!.

Two years later I bought the Philips EE8 Electronic Engineer kit. Again nice builds (the 8 stands for 8 experiments), with a good manual. Since the manual covered the expansion to the EE20 for 20 experiments, I bought the parts myself one by one at Aurora Vijzelgracht, Amsterdam.
More on the Philips electronic kits.

Radio Bulletin

In 1978 I bought my first computer, a KIM-1. It turned out to be a Rockwell rebadged Rev F Mos Technology board.

The beginning of lots of fun, learning, member of the KIM gg Club and making and publishing in the dutch electronics magazine Radio Bulletin and the KIM Kenner.

In 2014 the big KIM-1 machine was finally taken down in parts, the following photos showed the end result as in 1985 after many years of tinkering.

The KIM-1 system ended as a real production system until 1985, mainly to write articles, all Radio Bulletin and KIM Club Magazine related work was done with this system.

My KIM-1 workplace in 1979, no video terminal, no printer, hand assembly

My workplace setup in 1982: KIM-1, dual cassette, tv monitor, H14 printer, ASCII keyboard

1984, VT100 as videoterminal, what a progress!

Then a CP/M machine took over (a Spectravideo X’Press 738) with the same VT100 as terminal.

  • KIM-1
  • 8K RAM  in system case
  • 32K RAM in expansion case
  • Two ACIA 6850 serial
  • A PIA/VIA card with two 6820 PIA’s
  • Parallel ASCII keyboard with home made logic circuit
  • Video Display 32×32 uppercase characters on an analog TV
  • Dual cassette tape system with motor control
  • MDCR digtal cassette system in second expansion case
  • Radio Grafisch Display in second expansion case
  • Heathkit H14 matrix pinter, serial with RTS handshake via bitbanging RIOT port
  • VT100 Digital Equipment Video display unit VT100
  • Boot tape to load device drivers and Micro Ade (extended to 8K)
  • MICRO ADE assembler/editor, used for program development and article authoring
  • Microsoft Basic KB9 (not used often, nice study material!)
  • Pascal-M compiler and interpreter (mainly development and experiments, not for production)

First the KIM-1, I still have it, in working condition, in my private museum. Changes still visible, are a red acryl cover over the LED displays, a capacitor moved to the back to make it flat enough to fit the case I made and some supports to have it lay stable and safe on a table.

Why a KIM-1?

In 1977 I was reading in the electronics magazines about the revolution taking place: 8 bit microprocessors!
During my study I encountered Digital Equipment machines, PDP-8 in the lab, PDP-11 in the Mathematic Computer Science department, a Minc in Medical Physics group, my major.
The electronics department where I was doing an intern not only introduced to digital electronics and I helped them to introduce the Z80 to the instruments designed for laboratory experiments.
I learned assembler quickly, PDP-11 was a dream come true, the Z80 a bit of a nightmare but you could do so much with effort.

At the same time I started to write for the magazine Radio Bulletin, simple analog and digital circuits and continued to be an editor until 1987. I met Dick de Boer who was writing his famous Microprocessor articles and introduced the KIM-1 to the Dutch electronic engineers. So a KIM-1 with the very attractive 6502 was the logical choice for my first microprocessor system.

First case: memory, connectors, power supply

A KIM-1 itself was fun to learn with, but it quickly needed more; a permanent power supply, protection, easy to access connectors and interfaces for  a bus to have  more memory.
So the case seen in the next figure was built:

Power hungry, so lots of lineair power supplies with large cooling.

The first case I built from alu profiles contained the KIM-1, a backplane for 6 memory boards, a lot of power supplies (lineair, so heat was a problem!), a patch panel to access the expansion connector, cassette I/O, serial interface and various switches.

PCBs handmade, double sided!


Memory 2K RAM Card, BEM Bus Brutech Variant made by Hans Otten
Memory boards were made myself by drawing with Edding ink on the blank PCB, etching and drilling. Filled with 2102 RAM IC’s for 1K per board, it filled lower RAM of the KIM-1 $0400 – $13FF. The bus is a 31 pin DIN connector, based upon the BEM (Brutech) bus.

I bought two of this deck from Radio Service Twenthe, Den Haag, fascinating electroncis dump store!

The next thing I built was a video display unit. All TTL 74XX logic IC’s, a 2513 character generator, a AY-5-1013 character generator, an ASCII keyboard, display on TV 32×32 characters uppercase. RS232 input/output to the KIM-1.
On top of the VDU a dual cassette deck is shown. From the famous Dutch dump shop Radio Service Twente two audio cassette decks were bought, some audio amplifiers and power supply added, and a remote control circuit via a 6532 GPIO line (standard as in Micro Ade). Served me well for many years, in 2014 the decks strings were dried out and crumbled after many years of not being used.

Next was a real expansion cabinet with a long backplane for 32K memory with 8x 4K RAM card, 2114 based, Designed by me, published in Radio Bulletin and sold by Visser Assembling Electronics. BEM bus compatible.

4K SRAM card

4K SRAM card, Radio Bulletin September 1979 part 1  part 2


Production 4K RAM card


Prototype 4K RAM card, also hand drawn on the PCB!

In the expansion cabinet three slots were added for I/O. Two cards were designed by me and published in Radio Bulletin: an ACIA card for two 6850 Motorola ICs, and a PIA card for two PIAs, 6522 or 6520 or 6820 or 6821. I never used more than one ACIA and one PIA card. Shown are the prototype cards, in the article production quality PCBs were used.

PIA and VIA card design by Hans Otten June 1984 Radio Bulletin

ACIA Motorola 6850 by Hans Otten, 1983 Radio Bulletin

On one of the ACIAs a VT100 Digital Equipment terminal was connected, taking over from the bit banged serial interface and the homebuilt video display. ON the other ACIA a Heathkit H14 matrix printer was added, a mediocre but adequate printer.

Together with Micro Ade as assembler and editor, the dual cassette deck, 40K RAM In total, this was a nice machine! Until 1987, when I bought the Spectravideo X’Press 738 MSX and CP/M system, used for all my publishing activities.

A third expansion cabinet was built around 1983. It was driven by the PIA’s, the Radio Bulletin Grafisch Display was inside the cabinet, along with two MDCR Philips Digital cassette recorders, alo published in Radio Bulletin. The speed difference between Hypertape audio cassettes and 2400 baud MDCR speed was not that impressive.

Dirk Dral

EPROM card (Dirk Dral)

Original KIM-1 ROMs reproduced

I have two sets of KIM-1 ROMs. One set is the original KIM-1 dump by Dwight Elvey, in which the filler bytes (unused locations in the ROM) are filled with $00.
Alas the dumps by Dwight have a couple of bit errors and the NMI vector is wrong.

The other set is the result of assembling the source in which the assembler used $FF for the filler bytes. It makes sense to use $FF, since EPROMs can be programmed byte for byte ‘1’ later to ‘0’s.
Functionally the filler byte is irrelevant, so I present here the ROMs with filler byte 00 (corrected Dwight original KIM-1 dumps) and filler byte FF (assembly result).

6530-002 $1C00-$1FFF, filler bytes $FF 6530-002 ROM
6530-003 $1800-$1BFF, filler bytes $FF 6530-003 ROM

6530-002 $1C00-$1FFF, filler bytes $00 6530-002 ROM
6530-003 $1800-$1BFF, filler bytes $00 6530-003 ROM

post

Ruud Baltissen: Build a KIM-1

Ruud Baltissen started the whole KIM-1 Replica world by publishing a page many years ago about Building a KIM-1
All replica’s, from the MICROKIM to the Nachbau followed his design.

Replicated here the are relevant text and schematics by Ruud.

Build a KIM-1

The goal of this project is to rebuild the KIM-1. This isn’t “Just take the schematic of the KIM and go ahead!”. The KIM-1 uses two 6530s that are custom ICs and therefore cannot be bought in any shop. This project uses replacement parts.
The troubleshooter: 6530
As said, the KIM-1 has two 6530s on board. For more info about this IC, please read about the 6530 here. Anybody who is a little bit familiar with the hardware market can tell you that you cannot buy the 6530 as a regular part. And the 6530 is a custom IC: Commodore made various types but all were branded 6530. For example, the 6530 found in the CBM 4040 drive is different from the ones of the KIM. Even the two 6530s of the KIM itself are different: in this case it is the content of the builtin ROM.
Happily enough there is another IC available that can be used as replacement: the 6532.

The 6532 has 16 I/O lines, an internal timer and 128 bytes of RAM onboard, but no ROM. For this project we’ll use an external EPROM as replacement. The pin out of the 6532 is completely different but that should not be a problem.
Another difference is that a 6532 has pin PB6 available where a 6530 hasn’t. See it as a bonus as I haven’t found any reason how it could jeopardize our project.
The 6530 can generate a IRQ but in case of the KIM-1 this feature isn’t used. The main reason is that pin PA7 is needed to output the signal and it is used for other things. The 6532 has a separate IRQ output. I used two jumpers, J54 and J5, to enable someone to use this function if needed.
The last and major difference however lays in the way the registers are selected:

function:       RS:  A6:  A5:  A4:  A3:  A2:  A1:  A0:  R/W: 
                                                            
RAM              0    x    x    x    x    x    x    x    x   
                                                            
DRA              1    x    x    x    x    0    0    0    x     A
DDRA             1    x    x    x    x    0    0    1    x     B
DRB              1    x    x    x    x    0    1    0    x     C
DDRB             1    x    x    x    x    0    1    1    x     D
                                                            
PA7, IRQ off,                                               
      neg edge   1    x    x    0    x    1    0    0    0     F
PA7, IRQ off,                                               
      pos edge   1    x    x    0    x    1    0    1    0     G
PA7, IRQ on,                                                
      neg edge   1    x    x    0    x    1    1    0    0     H
PA7, IRQ on,                                                
      pos edge   1    x    x    0    x    1    1    1    0     I
                                                            
read interrupt                                              
       flag      1    x    x    x    x    1    x    1    1     E
                                                            
read timer,                                                 
       IRQ off   1    x    x    x    0    1    x    0    1     J
read timer,                                                 
       IRQ on    1    x    x    x    1    1    x    0    1     K
                                                            
Clock / 1,                                                  
       IRQ off   1    x    x    1    0    1    0    0    0     L
Clock / 8,                                                  
       IRQ off   1    x    x    1    0    1    0    1    0     M
Clock / 64,                                                 
       IRQ off   1    x    x    1    0    1    1    0    0     N
Clock / 1024,                                               
       IRQ off   1    x    x    1    0    1    1    1    0     O
                                                            
Clock / 1,                                                  
       IRQ on    1    x    x    1    1    1    0    0    0     P
Clock / 8,                                                  
       IRQ on    1    x    x    1    1    1    0    1    0     R
Clock / 64,                                                 
       IRQ on    1    x    x    1    1    1    1    0    0     S
Clock / 1024,                                               
       IRQ on    1    x    x    1    1    1    1    1    0     T

In total 5 address lines are used, meaning 32 registers. But 11 of the 19 registers have one or more mirrors.

Read:          J E J E         K E K E         J E J E         K E K E 
Write:         F G H I         F G H I         L M N O         P R S T 
R/W:           A B C D         A B C D         A B C D         A B C D         

As we can see, the last 16 registers equal the 16 of the 6530 itself. So now we have to develop some logic which will do the following:

  • The I/O of the 6532 is only visible within a range of 64 bytes
  • The first 16 bytes represent register 16 to 31
  • The next 48 bytes are mirrors of the first 16
  • Only 64 bytes of RAM are used

Conclusion:

  • Input A6 won’t be used and can be tied to GND
  • Input A4 is connected to address line A4 of the 6502 via a NAND gate.
  • The second input of that NAND gate is connected to the /CS2 input.
    The idea behind this is simple: The moment that the I/O part of the 6532 is selected, the NAND gate outputs a (H) thus selecting the wanted last 16 registers. If needed, the user can select the other 16 registers as well by connecting the second input of the NAND gate to +5V.
  • A 74LS138 enables the /RS and /CS2 lines at the right moment.

ROM and RAM
Here we have a luxury problem. We only need 2K of (EP)ROM like the 2716. The problem is that the 2716 is hard to find and more expensive then the 2764 or its bigger brothers. When we use a bigger EPROM we could tie the unused address lines to GND.
The same problem occurs with the RAM. In this case I have chosen for a 62256, a 32 KB RAM. This looks like a massive overkill but see later.
If we have to use bigger RAMs or EPROMs anyway, it is quite easy to use other parts of that chip by OR wiring the CS line with more Kx outputs of the main 74145. In case of the EPROM we also can connect switches to the surplus address lines and have the advantage of a multi-KERNAL system.

Extra address range
KIM-1 only supported an address range of 8 KB in the first place. The pin DECEN at the Userport can be used to extend that range but HAS to be connected to GND for the original configuration. The idea is that external cards can use this input to alter the range.
I added an extra 74145, IC7, and two jumpers that enable the user to make a more efficient use of the hardware. Both jumpers, J2 and J3, have to be closed to start with.
If you don’t want to use the 74145 at all, only close jumper J1.

The first thing one can do is to let the binary start at address $F800. Your self built KIM will still behave as usual. Now you can add your own RAM from address $0000 on up to $E000 and the only thing you have to do is remove jumper J2.
If you are only interested in adding RAM, a better idea is to use the original one, IC4, the 62256 32 KB RAM. You only have to remove the jumpers J13..17 and to close one or more pair of pins of jumper block J18. By closing all four pair of pins you make use of the full 32 KB.
Jumper J3 is only needed if you want to expand your self built KIM even further and want to use, for example, the $E000/$FFFF range for (EP)ROM.

Schematics of the new KIM-1

What are the major differences with the original schematic?

  • Replacement of the 6530s by 6532s.
  • Addition of two NAND gates to handle the 6532s.
  • Addition of an EPROM.
  • Replacement of the 6108 RAM ICs by a 62256 or equivalent 32K*8 SRAM.
  • Addition of a 74LS138 to decode the RAM and I/O of the 6532s.
  • The resistor for K6 has been dropped.
  • Addition of jumpers to enable the combination of other K lines.

KIM-1 PAL-1 KIM CLone KIM MicroKIM Reproduction resources

This page is a Work in Progress since November 2022!

The clones of the KIM-1 that appeared the last years have renewed the interest of the retro scene.

Old software is restored or typed in again and adapted to the current use of serial terminal emulators and cross assemblers instead of the hardcopy Teletype interface and native assemblers of the old days.

This site contains a lot of that material already. There I have tried to collect all older original material.

Here a link of current websites with relevant material. As usual, a list of external links always will suffer of bitrot, so please report dead links!

Netzherpes, by Nills. Very active PAL-1 user. Lots of older software newly typed in.

KIM IEC, Dave McMurtrie’s 1541 Routines for the KIM-1

See also the Nachbau KIM-1 IEC/RAM card page.

SD card on PAL-1 https://github.com/ryaneroth/sdcard6502

https://www.youtube.com/@masterhit1/videos masterhit Nils

https://www.youtube.com/watch?v=CovNzC3jdGo KIM Venture

https://www.youtube.com/watch?v=d88M8gFSzWE startrek

https://github.com/w4jbm Jim McClahanan
https://www.youtube.com/@W4JBM/videos https://www.youtube.com/watch?v=UThleUTNTBM

PAL- stores/tkoak/
https://www.tindie.com/stores/tkoak/
http://pal.aibs.ws/support

Debug packages
1541
Lilbug
Basic games

Tiny Basic

https://github.com/GrantMeStrength/KIM1

Jim

https://github.com/w4jbm/PAL-1-6502-SBC

KIM-1 Computing Focal etc

KIM-1 Computing

PAL-1 Hacks
https://github.com/kaveenr/PAL-1-HACKS

https://netzherpes.de/
https://github.com/netzherpes
https://www.youtube.com/user/masterhit1
https://drive.google.com/drive/folders/1-S3AI-qszLDSes50MERtx1RNl9KefTs7

KIM IEC

https://commodore.international/kim-iec/

CC65 pathches
https://github.com/davepl/cc65

Jeff Tranter
https://github.com/jefftranter/6502/tree/master/asm/KIM-1

Discussion forum for PAL-1
https://groups.google.com/g/pal6502

twitter friends

@LiuGN PAL-1 desigenr/tindie
@masterhit netzherpes
@Devilish_Design (KIM-1 clone)
MOS KIM-1 Reproduction Kit https://www.ebay.co.uk/itm/225209469024

http://www.corshamtech.com/product-category/kim-1-products/

Bob Applegate Corsham Technologies
https://github.com/CorshamTech
http://www.corshamtech.com/product-category/kim-1-products/

Focal runs on KIM-1 Simulator

KIM-1 Simulator version 1.1.6 has been published. Get it here.

It now supports Focal-V3D 12-AUG-77 (the Aresco version) from the KIM-1 Software page, see here.

Updates to the Simulator are a working echo suppression (see here for background). Available to any program.

For Focal V3D a setting has to be made in the Settings, to allow Focal to do its magic in the input routine.

By working on Focal I did add comments to the disassembly of what I found. You will find the original by Paul R. Santa-Marie and my partly commented version in the archive.