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
-----------------------------------------------------------------------------------------

New scans of KIM-1 manuals

I found new high quality scans of KIM-1 manuals on the Retro Commodore website.
That website is filled with high quality scans of Commodore publications.

High quality scans of the User, Programming, Hardware manuals. Also scans of KIM-5 related manuals like Assembler and Editor (a new one for me!).

The originals are from a German distributor, there is a sticker on the frontpage.

I thank Carsten Jensen for his invaluable work!

Manuals are added also to the KIM-1 manuals page, which did get a cleanup too.

Known 6530 variants

6530-002 $1C00-$1FFF KIM-1 listing in KIM-1 Users manual
6530-003 $1800-$1BFF KIM-1 listing in KIM-1 Users manual
6530-004 $7000-$73FF TIM Terminal Monitor, see the TIM page
6530-005 According to this OSI appnote this is an unprogrammed version of the 6530 TIM
I have only seen ads for this part without further description of what this is.
It has the 16 I/O lines, 64 word RAM and the timer, which can generate an IRQ. One can assume the ROM is empty.

6530-006 Allied Leisure pinball version 1 (IC6)
6530-007 Allied Leisure pinball version 1 (IC3)
6530-008 Allied Leisure pinball version 1 (IC5)
6530-009 Allied Leisure pinball (IC5)
6530-010 Allied Leisure pinball (IC6)
6530-011 Allied Leisure / Fascination pinball (IC3)

6530-012 Gottlieb System 1 sound board (R3014-12)
6530-013 Gottlieb System 1 sound board (R3014-13)
6530-014 Gottlieb System 80 series sound board (R3016-11)
6530-016 Used in Gottlieb system 80/80A/80B sound boards

6530-024 Commodore Chessmate (based upon Peter Jenning’s MicroChess)

6530-241 MIOT in pinball machines
6530-243 MIOT in pinball machines

Commodore diskdrives ROM at $FC00-$FFFF

901466-01 6530-??? 2040 DOS 1.0 Shugart SA390 2040, 3040 and 4040
901466-02 6530-028 4040 DOS 1.2 Shugart SA390 2040, 3040 and 4040
901466-04 6530-034 8050 DOS 2.0 DOS 2.1 Shugart SA390
901483-02 6530-036 8050 DOS 2.5
901483-03 6530-038 8050 DOS 2.5 Micropolis 1006-II (8050)
901483-04 6530-039 8050 DOS 2.5 Tandon TM100-3M (8050)
901884-01 6530-040 8X50 DOS 2.7 Tandon TM100-3M (8050) Tandon TM100-4M (8250)
901885-01 6530-044 8X50 DOS 2.7 Micropolis ???
901885-04 6530-047 8X50 DOS 2.7 Micropolis 1006-II (8050) Micropolis 1006-IV (8250) Micropolis 1106-II (Safari, mit Garagentor, 8050) Micropolis 1106-IV (Safari, mit Garagentor, 8250)
901869-01 6530-048 DOS 2.7 M.P.I. 101SM (8050)M.P.I. 102?? (8250)
251256-02 6530-050 8250 DOS 2.7 Matsushita JU-570-2 (8250LP)
251257-02A 2716 DOS 2.7 Matsushita JU-570 (SFD-1001) Matsushita JU-570-2 (SFD-1001)
251474-01B 2716 DOS 2.7 Matsushita JU-570-2 (8250LP)

Replacing the 6530-002 and -003 in a KIM-1 has become quite easy. See this page on replacements with a 6532, some glue logic and a (E)EPROM.

The RRIOT in CBM disk drives are only different in the ROM contents The rest is as follows:

– Pin 18 is PB6 (no CS1).
– Pin 19 is CS2 (noPB5) .
– Pin 17 (PB7/IRQ) has no Pullup.
– ROM is in $FC00 bis $FFFF (RS0=0, CS1=X, CS2=1).
– RAM is in $0000 bis $003F (RS0=1, CS1=X, CS2=0, A9=,0 A8=0, A7=0, A6=0).
– I/O is on $0080 bis $00BF (RS0=1, CS1=X, CS2=0, A9=,0 A8=0, A7=1, A6=0).

Logic of addressing:

 	RS0	CS1	CS2	A9	A8	A7	A6
ROM	0	X	1	-	-	-	-
RAM	1	X	0	0	0	0	0
IO	1	X	0	0	0	1	0

Via an adapter board Commodore reused older 6530’s with new firmware by disabling the built in ROM and adding a 2716.
See Zimmers Commodore archive. Note that not just any 6530 can be used in this way, only the 6530’s from the Commodore diskdrives. A more general approach with a 6532 is described here.

Most if the information on this pages is also found on the pages of Martin Hoffman Vetter

Micro Technology Unlimited MTU pages enhanced

Dave Plummer (Dave’s Garage) received lots of documents on the MTU products with his KIM-1 in a cage system and scanned them for us.

Dave Williams (devilishdesign, vintagetech) has a MT-130, a standalone 6502 system sold by MTU with MTU cards and also scanned documents and imaged floppies.

On the internet I also found a stash of MTU products documents for the PET computer, like PET versions of the K-1008, a KIM-1 bus adapter and more.

All this made me add pages to my website, devoted to MTU. Special attention to the genius behind MTU, Hal Chamberlin. Several of his articles about music and microprocessors and a clean scan of his book Musical Applications of Microprocessors .

One of the documents is the “K-1008-2L Patches to Microsoft BASIC”. Software source of the integration of the text and graphic routines into Microsoft Basic. I already did a simple integration of the K-1008 as terminal into Basic with the Graphics Software package SDTXT and VMSUP, so I have already a lot of the code. So this source wil be typed in also!

post

MTU history: Hal Chamberlin

Micro Technology was around 1980 a manufacturer of products aimed at the KIM-1 and AIM 65 and SYM-1 user. Later on they made the MTU-130 computer around the 6502 and a compact version the MT-140. After the founder and technical genius Hal Chamberlin left in 1986, it became focussed on software like Karaoke.

From the current MTU website:

In 1960 in the 7th grade, David B. Cox and Howard (Hal) A. Chamberlin, Jr. became lab partners and close friends. In 1966 as a college freshman, Hal designed his own digital computer (the HAL 4096) using scrap IBM magnetic core memory planes and logic cards. David worked with Hal to design, etch and build Printed Circuit boards, select and purchase components, wirewrap the backplane and generally support Hal’s monumental effort. The HAL4096 was demonstrated publicly at the 1968 NC State University Engineer´s Fair.

At the 1967 NC State Engineer´s Fair, Hal demonstrated a punch card deck program of Do loops tuned to play the song Daisy, Daisy, give me your answer do …. This ran on the campus IBM 1630 computer. The Radio Frequency Interference (RFI) was so intense out of the computer that Hal used it as the output signal to his transistor radio! This was one of the first public showings of a computer music synthesis program.

In 1968, Hal wrote a second synthesis program that computed audio sample voltages, giving control over the harmonic content and duration of notes and chords, based on the Nyquist Theorem of digital sampling. This ran on the Biomathematics Dept. Ambilog computer with two D/A converters used to drive an HP analog X-Y plotter to generate the analog audio output recorded to a Revox tape deck. Music synthesis pioneers had to be resourceful to get their analog outputs from early digital computers!

In February 1971, after graduating from NC State with BS degrees in Electrical Engineering, David incorporated Technology Unlimited Inc. (TUI) with Hal as Vice President. Hal continued at NCSU in Electrical Engineering and received his Masters. In 1973, for a Singer-Kearfott contract, we designed and built an 18-bit A/D converter with an Intel 8008 microprocessor controlling it. This A/D design delivered a true 18-bits (all valid and without noise) for more than five years.

On March 1, 1976, David sold TUI to Hendrix electronics, the leader in Text Publishing systems for newspapers. TUI had developed the world’s leading microprocessor-floppy disc based, display word processor system. David had independently negotiated with Olivetti and A.B. Dick Co. for 2.5 years, but neither could make up their minds to take TUI’s product to market. Eventually, A.B. Dick bought the product line in 1980 and sold over $1 billion dollars worth between 1980-84.

On March 1, 1977, while still employed by Hendrix, David and Hal started Micro Technology Unlimited. Our goal then and still today is to Bring microcomputer digital audio down to everyone. Our designs are visionary and improve the creativity, productivity and quality of audio communications. It has been a real trip through the 1968-2004 period in digital audio!

In 1979, Hal’s book Musical Applications of Microprocessors was first published. It quickly became the definitive work for digital audio. Developers worldwide visited MTU to talk with us on design concepts. In 1986 Ray Kurzweil (Kurzweil Music Systems), after three years of personal offers, hired Hal away from MTU.


Some of Hal Chamberlin’s publications:

Musical applications of microprocessors, Hal Chamberlin.
1980, First Edition.
Clean scan made by Hans Otten, 2023
Byte Magazine 1977 09
A Sampling of Techniques for Computer Performance of Music
Hal Chamberlin
Byte Magazine 1980 04
Advanced Real-Time Synthesis Techniques
Hal Chamberlin
Software Keyboard interface for the KIM-1.
Hal Chamberlin
1981 01 Simulation of Musical Instruments
Hal Chamberlin
The Computer Hobbyist Magazine, 1974 -1976
Hal Chamberlin as Contributing Editor
post

MTU CODOS

CODOS (Channel Oriented Disk Operating System) is the name of the Disk Operating System made by MTU for KIM-1, SYM-1 and AIM-65.
The DOS needs the K-1013 floppy disk controller, 8 inch disk drive(s) and optional the K-1008 Visible Memory.

CODOS V2 was the version for the MT-130/140. Lots of software was available, see the MT-130 page for manuals.
Dave Plummer (of Dave’s Garage) has a KIM-1 system with various MTU cards, including the K-1013.

CODOS Disk images

CODOS Manuals

CODOS Manual
CODOS User Manual
CODOS User Manual OCR’ed
QumeTrak 842 Maintenance Manual

Dave Williams has the following, not yet dumped by him, disks:

  • DMXMON
  • MACASM 1.0
  • MAGIC/L Language
  • MTU-C
  • MTU-FORTH79 2.1
  • WORDPIC
  • WOPDPIC 1.0 NEC 8023 Printer Version
  • MTU-130 User Group Diskette #3
  • MTU-140 User Group Diskette #5