PicoSYM, a SYM-1 emulator on a Raspberry Pico

Emulation of a Synertek Sym-1 on a Raspberry Pi Pico 1 (W).

By andysa on the emulation forum on 6502.org

Here is the archive with source, documentation and the binary .uf2 file ready to run on a Pico,

It is based on Jonathans Fouvers “pico-6502 emulator” and “Fake6502”.
You will need this archive to compile the source of PicoSYM.

picoSYM Memory Map

  • 32K RAM (0000 – 7FFF)
  • Supermon V1.1 (8000 – 87FF)
  • 1541DOS (9000 – 9FFF)
  • VIA (A000 Block)
  • System Ram (A600 – A67F)
  • RAE assembler (B000 – BFFF / E000 – EFFF)
  • Basic (C000 – DFFF)
  • Basic Trig functions (F5C0 – F6EE)

PicoSYM emulates a SYM-1 with the Supermon V1.1 Monitor, Basic, RAE Assembler & Editor and 1541DOS at the typical addresses. The 1541DOS implementation uses “Port A” of an emulated VIA to connect to SD2IEC style floppy disk emulator modules. It has been tested with reasonable success with both the UIEC-SD and pi1541.

These SD2IEC type modules need to be connected to the RPi Pico GPIO ports via a suitable 3.3v/5v level converter and 7416 open collector inverter. (Refer SYM-1 1541 DOS manual and connection diagram within the ZIP file or the 1541 DOS page here)

The 1541DOS relies heavily on the VIA Timers, which required much experimentation with the emulator code in order to get operational. As such, the reliability has not been fully confirmed, however Loading, Saving of files and directory listings does appear to be functional and repeatable at this stage.

The only noticeable bug is with the Directory Listing reporting of “Blocks Free”, which contains erroneous characters. This is due to the 1541DOS simplistic decoding of the received IEC filesize data. This worked fine back in the day given the 170KB storage capacity of a floppy disk.

With the larger capacity of modern SD cards however, the reported free block size is larger than what the 1541DOS routines can accommodate. Partitioning SD cards to a smaller capacity should get around this problem in the short term, however andysa is in the process of patching the necessary subroutines in 1541DOS.

Usage
——-
To use the emulator, put the Raspberry Pi Pico in bootloader mode, by holding the ‘BootSel’ button while connecting it to a computer.
The Pico will appear as a drive. Drop the UF2 file to it.
Open a comms utility such as Putty, at 115200 baud (or use 2400 for a real SYM-1 experience!).

KIM-1 Mod. A real KIM-1 in portable format!

Small enough to take with you traveling, battery powered and thanks to the FRAM the contents of RAM are kept when powered off.
The FM1808 used is a non-volatile RAM (32Kx8), used here for ROM and RAM. Datasheet here.

This design appeared in the Google group devoted to the PAL-1 and PAL-1 (and the KIM-1 of course). The design is by Voyageur.

Read all about the KIM1Mod here.

post

Amazing it works!

After publishing the photos of the transistors used in the KIM-1 a discussion started on forum64.de in the ‘Instandsetzung und Nachbau eines Kim-1’ thread about some transistors were placed wrong in later revisions. And the KIM-1 involved functions well.

The User manual states:

 --------+-------------------+------+---------------------------------------
 | ITEM  | PART              | QTY. | DESCRIPTION                          |
 +-------+-------------------+------+--------------------------------------+
 |  18.  | Q7                | 1    | NPN Transistor B>20, VCE>12 - 2N5371 |
 |  19.  | Q1 through Q6     | 6    | PNP Transistor B>20, VCE>6  - 2N5375 |
 --------+-------------------+------+---------------------------------------

which are quite generic general purpose transistors.
MOS Technology used those parts in the first edition, Rev A and Rev B. Commodore then took over and parts used changed to equivalents.

In my KIM-1 collection I have found (see also the list in this page, Q1..Q6 also have this quirk on some KIM-1s)

Transistor Q7

Rev D 2N3904
Rev E 2N3904
Rev F 2N4401
Rev G 2N4401
Rev G 2N4401

which are functionally equivalent, but have a different pinout. But are placed exactly like the 2N5371.

My first KIM-1, Rev F has a BC239C, which is OK, my trusty old KIM-1, functioning perfectly over the serial interface with thsi CBE transistor.

The 2N5371 pinout is CBE, Collector Base Emitter. The 2N3904 and 2N4401 are EBC.

2N5371 pinout


The actual pinout of the 2N5371 is CBE. The letters in the image are beneath the actual wire, and the Base wire is bent to the back.

2N3904 pinout

2N4401 pinout

BC338 pinout

Those are EBC pinouts. But they are placed exactly like the 2N5371, which is CBE. It should be the other way around. But it works!

On the Rev D Replica by Eduardo Casino and the Nachbau KIM-1 by Ralph02 the BC327(2N5375) and BC338(2N5371) are used. These have the same pinout.

How does that work?

Well, it seems that it does not matter here. An NPN transistor can be wired this way, exchanging Collector and Emitter. It functions the same, but the specs are much worse like the amplification factor. Since this is an emitter follower and the input voltage can be (via a limiting resistor to be added) go to 5V it works reliable.

Part of the KIM-1, the TTY serial interface

Amazing it works: transistors placed wrong and they still work in the KIM-1

After publishing the photos of the transistors used in the KIM-1 a discussion started on forum64.de in the ‘Instandsetzung und Nachbau eines Kim-1’ thread about some transistors were placed wrong in later revisions. And the KIM-1 involved functions well.

The User manual states:

 --------+-------------------+------+---------------------------------------
 | ITEM  | PART              | QTY. | DESCRIPTION                          |
 +-------+-------------------+------+--------------------------------------+
 |  18.  | Q7                | 1    | NPN Transistor B>20, VCE>12 - 2N5371 |
 |  19.  | Q1 through Q6     | 6    | PNP Transistor B>20, VCE>6  - 2N5375 |
 --------+-------------------+------+---------------------------------------

which are quite generic general purpose transistors.
MOS Technology used those parts in the first edition, Rev A and Rev B. Commodore then took over and parts used changed to equivalents.

In my KIM-1 collection I have found (see also the list in this page, Q1..Q6 also have this quirk on some KIM-1s)

Transistor Q7

Rev D 2N3904
Rev E 2N3904
Rev F 2N4401
Rev G 2N4401
Rev G 2N4401

which are functionally equivalent, but have a different pinout. But are placed exactly like the 2N5371.

My first KIM-1, Rev F has a BC239C, which is OK, my trusty old KIM-1, functioning perfectly over the serial interface with thsi CBE transistor.

The 2N5371 pinout is CBE, Collector Base Emitter. The 2N3904 and 2N4401 are EBC.

2N5371 pinout


The actual pinout of the 2N5371 is CBE. The letters in the image are beneath the actual wire, and the Base wire is bent to the back.

2N3904 pinout

2N4401 pinout

BC338 pinout

Those are EBC pinouts. But they are placed exactly like the 2N5371, which is CBE. It should be the other way around. But it works!

On the Rev D Replica by Eduardo Casino and the Nachbau KIM-1 by Ralph02 the BC327(2N5375) and BC338(2N5371) are used. These have the same pinout.

How does that work?

Well, it seems that it does not matter here. An NPN transistor can be wired this way, exchanging Collector and Emitter. It functions the same, but the specs are much worse like the amplification factor. Since this is an emitter follower and the input voltage can be (via a limiting resistor to be added) go to 5V it works reliable.

Part of the KIM-1, the TTY serial interface

Which transisors are used in the KIM-1?

Even a microprocessor based computer as the KIM-1 required some simple transistors.
To drive the LEDs some extra current is needed, so there are 6 PNP transistors there.
And in the serial circuit an NPN transistor is used.

I investigated which types are used in my KIM-1s and clones.

post

Transistors in the KIM-1

Even a microprocessor based computer as the KIM-1 required some simple transistors.
To drive the LEDs some extra current is needed, so there are 6 PNP transistors there.
And in the serial circuit an NPN transistor is used.

The User manual states:

 --------+-------------------+------+---------------------------------------
 | ITEM  | PART              | QTY. | DESCRIPTION                          |
 +-------+-------------------+------+--------------------------------------+
 |  18.  | Q7                | 1    | NPN Transistor B>20, VCE>12 - 2N5371 |
 |  19.  | Q1 through Q6     | 6    | PNP Transistor B>20, VCE>6  - 2N5375 |
 --------+-------------------+------+---------------------------------------

which are quite generic general purpose transistors.

This is what I found in my KIM-1s. The first ones, made by MOS Technology, to Rev B, used the 2N5371 and 2N5373. Thereafter it seems any useable and available transistor was used.

Q1 tot Q6 LED drivers PNP general purpose transistors

First edition 2N5375
Rev A 2N5375
Rev B 2N5375
Rev D B564 MI58 (which actually is a 2SB564)
Rev E B564 MI58
Rev F 2N5375
Rev F BC327
Rev G 2N4403
Rev G 2N5375

Q7 serial circuit NPN general purpose transistor

First edition transistor missing in action, only a socket!
Rev A 2N5371
Rev B 2N5371
Rev D 2N3904
Rev E 2N3904
Rev F BC239C
Rev F 2N4401
Rev G 2N4401
Rev G 2N4401

On the Rev D Replica by Eduardo Casino and the Nachbau KIM-1 by Ralph02 the BC327(2N5375) and BC338(2N5371) are used.
The Micro-KIM and PAL-1 and PAL-2 use the 2N4401 and 2N4403.
The KIM-1 Reproductions by Dave Williams a BC338 and MPSA92.

Last KIM-1 production date: KIM is Dead!!! Long live KIM!!!

While we may date the first commercial shipping of the KIM-1 to January 1976 (date of the first edition of the User Manual), we can date the end of KIM-1 production to mid 1981.

50 years of KIM-1: a demo to celebrate

A demo by friend Nils

source@github: https://github.com/netzherpes/KIM1-Demo

Why the KIM-1? Jim Butterfield has a good explanation

Jim Butterfield
Aug 19, 1999, 9:00:00 AM
to
Joe Forster/STA wrote:
>
> Can you, please, explain me in short what this KIM-1 machine
> is: CPU, RAM, video, sound, periphery, lookout, startup
> screen, programming? A URL would also be fine, I guess…
> I haven’t seen a KIM-1 before… Thanks in advance!

Shortly after MOS Technology, Inc. developed the 6502 processor chip,
they designed a single-board computer called the KIM-1 to show off the
capabilities of the chip family, and to allow engineering prototyping.

Apart from the obvious things that a computer must have (CPU, RAM, I/O
chips), they threw on the board just about anything that they thought
someone might like to have as an interface. For example: the basic
monitor program allowed a hex keypad input (hey, KIM stands for Keyboard
Input Monitor) and 6-digit LED display; it had a bit-banger audio output
which could be used to store programs on a cassette tape unit; it had a
corresponding PLL audio input line that would read back from such a
cassette tape; and it had teletype input/output facilities (again,
bit-banger). Its basic RAM was 1K, supplemented by a little extra RAM in
the 6530 I/O chips.

A feature of the board that many users never realized, perhaps, is that
all on-board devices were selectable via external connections. What that
means is that you could plug the KIM-1 board into a mother housing, which
could, as desired, disconnect any or all of the peripheral circuits, I/O
chips, RAM, or the ROMs containing the monitor.

It’s likely that MOS Technology designed the board as a tool for
engineers, with the message “Hey, design your own system and copy the
things you like from this board”. I suspect they were quite amazed when
sales started to approach the 100,000 mark!

Here’s my take on what happened: computer hobbyists discovered that, for
the first time, there was a standard preassembled board that would be the
same for all users. Back in those days, most computers came as a printed
circuit board and a bag of parts which you had to assemble yourself.
More, everybody made a slightly different system: some had a CRT
display, some had LEDs, some had teletype; varying amounts of memory were
fitted, mapped to a variety of addresses; and operating systems were
whatever you could scare up.

But suddenly there was the KIM-1. It was fully assembled (although you
had to add a power supply). Everybody’s KIM-1 was essentially the same
(although the CPU added an extra instruction during the KIM-1’s
production life).

And this created something that was never before part of the home
computer phenomenon: users could quite happily exchange programs with
each other; magazines could publish such programs; and people could talk
about a known system.

We knew the 6502 chip was great, but it took quite a while to convince
the majority of computer hobbyists. MOS Technology offered this CPU at a
price that was a fraction of what the other available chips cost. We
faced the attitude that “it must be no good because it’s too cheap,” even
though the 6502, with its pipelined architecture, outperformed the 8080
and the 6800.

The arrival of the KIM-1 and its user group was, I think, a landmark in
early personal computer history.

–Jim

Post from here

50 years of KIM-1 and me

With any product it is not always easy to establish a ‘day of birth’.
For the 6502 it is the WESCON trade show in San Francisco beginning on September 16, 1975.

For the KIM-1 no introduction event is known. The first publications in magazines about the KIM-1 were in the second quarter of 1976, so press releases and first products must have come from MOS Technology in the first quarter.
Design of the KIM monitor (the ROM in the 6530-002) happened at the same time as development of the TIM monitor (the ROM in the 6530-004) in 1975. The ICs became available end of 1975, see the Hardware manual.

The KIM-1 computer development, with 6530-002 and 6530-003 (the ROM with the audio tap routines), most likely was done in the second half of 1975.

The only real date I can pinpoint is the publication date of the User Manual, January 1976. So I date the ‘birth’ of the KIM-1 computer in January 1976.

I have collected some KIM-1’s over the years. The first KIM-1 in 1978 I bought and sold many over the years. Now I have nine original KIM-1s, from first edition to Rev A, B, D, E , 2x F, 2xG.
The KIM-1 replica by Eduardo Casino (still building, I have original 6530-002 and -003 for it), and a Digitus Sweden clone.
And several reproductions with 6532’s as replacements.


Top row : first edition, Rev A, Rev B, Rev D, Rev E
Middle row: Rev F, REV F, Rev G, Rev G, Digitus
Botton row: Rev D Eduardo Casino, KIM-1 Ralph, KIM-1 Dave Williams, KIM-1 Dave Williams (not shown an unbuilt blue Dave Williams KIM-1).

KIM-1 clones! (Briel MicroKIM, Corsham KIM clone, PAL-1, PAL-2).
Vince Briel was the first to design and sell a KIM-1 clone, the Micro-KIM. Essential was the replacement of the 6530 RRIOT with a 6532 RIOT and an external ROM. The idea came from Ruud Baltissen. The PAL-1 and PAL-2 are still available as kit. The design files for the Micro-KIM are on github.

Top row: Briel MicroKIM, Corsham KIM Clone and PAL-2.
Bottom row: PAL-1 , Corsham breadboard