post

VKIM

VKIM is a KIM-1 emulator written for the Palm OS.

A Basic KIM-1 is emulated. With tape I/O, program load or save. Source included.

I do not own a Palm. But a PALM can be emulated. An excellent browser based one is CloudPilot .

You need a Palm OS ROM and VKIM. I packed PALM OS 5 ROM and the application VKIM in this archive.



The vKIM program emulates a M6502 processor with approximately the resources of a KIM-1: it has a keypad and display, 4 Kb of RAM (the standard KIM-1 had 1 Kb), 2 Kb of ROM containing a patched version of the ROM on a KIM-1 (more on that in a bit), 128 bytes of RAM at $1780-$17FF, and a simulated TTY. The I/O and timer resources of the two 6530 support chips are not emulated.

The interface that is implemented on the keypad is identical to the actual KIM-1 interface — because it is implemented by the KIM-1 software.

As a convenience the NMI vector at $17FA-$17FB and the IRQ vector at $17FE-$17FF are automatically set to $1C00 when vKIM is initially started, and when the “Clear all RAM” menu option is selected.

Emulated RAM is cleared only by explicit action — when vKIM is exited all RAM is saved, and restored when vKIM is restarted.

THE KEYPAD INTERFACE

The standard KIM-1 keypad is the interface that vKIM displays when started up. Since the use of this keypad is entirely a matter for the KIM-1 documentation, I will mention only the differences here. First, the SST switch has been replaced with a checkbox. When checked, SST mode is active; unchecking the box is equivalent to turning the SST switch to the “off” position. Further, as a convenience the locations $00EF-$00F5 are fomratted and displayed to the left of the keypad when SST mode is active.

Finally, there is a button labelled “TTY”. When this button is pressed, the keypad disappears and the TTY interface is displayed.

TTY INTERFACE

When TTY mode is selected (by pressing the “TTY” button on the keypad screen) a “TTY” emulator is displayed. This display includes “CR”, “LF”, and “Rubout” buttons, since these are not readily available through Graffiti input. All other input, however, is to be entered in the Graffiti area. As a convenience to the user (and to emulate the limitations of a real TTY) lower-case alpha input is translated to upper-case before being sent to the emulated KIM-1. As a result, it is not possible in the current version of vKIM to enter lower-case data to the emulated KIM-1. Feedback on whether this is a hardship will be taken into account for future releases.

Also, as a convenience a Rubout character is automatically generated when entering TTY mode. Thus, the “KIM” prompt will appear as soon as TTY mode is entered, without requiring the user to press “Rubout” first (as on a real KIM-1).

Finally, there is a button labelled “Keypad” which will return the program to the keypad interface.

THE MENU
Under the “File” menu (press the Keypad label e.g.) are:

* “Create vTape…”
Saves which saves a copy of a specified range of addresses to a simulated or “virtual” tape;

* “Load vTape…”
Restores saved data from a vTape back into RAM (at the same location it was saved from);

* “Delete vTape”
Deletes a saved vTape;

* “Import…”
Loads data into RAM from a Memo Pad entry. The memo bust begin with “; vKIM”, and be followed by data in either dump format, or the paper tape format described in Appendix F of the KIM-1 User Manual. (Samples of both formats are shown below.)

Under the “Edit” menu are:

* “Copy block…”
Copies a block of data from one location in memory to another (no special provision is made for overlapping source and destination);

* “Clear block…”
Sets a specified range of addresses to $00;

* “Clear all RAM”
Sets all of RAM (including the block at $1780-$17FF) to $00, except for the IRQ and NMI vectors, which are set to $1C00;

* “Restart”
Emulates a processor restart.

Under “Ref”

* “Locations”
Lists system-use locations in page zero.

Under “Options”

* “Preferences”
Does nothing. Essentially a placeholder for options that may be implemented in the future.

* “About vKIM”
Gives information about the version of vKIM, and distribution information.

Import formats

Sample of of a memo pad item in “dump format”:

;vKIM BAGELS from First Book of KIM
0200 E6 16 20 40 1F D0 F9 D8 A9 0A 85 18 A9 03 85 10
0210 38 A5 13 65 16 65 17 85 12 A2 04 B5 12 95 13 CA
0220 10 F9 A6 10 A0 C0 84 11 A0 06 C5 11 90 02 E5 11
0230 46 11 88 D0 F5 18 69 0A 95 00 C6 10 10 D2 C6 18
0240 30 7A A9 00 A2 0C 95 04 CA 10 FB 20 CE 02 F0 FB
0250 20 CE 02 F0 F6 A5 08 F0 08 29 60 49 60 F0 A9 D0
0260 DD 20 6A 1F C9 10 B0 E3 C9 0A 90 DF A8 A6 10 E6
0270 10 B9 E7 1F 95 04 98 D5 00 D0 03 E6 0E 8A 95 0A
0280 A5 07 F0 31 A0 03 B9 0A 00 29 18 F0 12 B9 00 00
0290 A2 03 D5 0A F0 05 CA 10 F9 30 04 E6 0F 16 0A 88
02A0 10 E4 A2 01 B4 0E B9 E7 1F 95 08 CA 10 F6 20 CE
02B0 02 E6 0F D0 F9 20 CE 02 D0 FB F0 8F A2 03 B4 00
02C0 B9 E7 1F 95 04 CA 10 F6 A9 E3 85 08 D0 E0 A0 13
02D0 A2 05 A9 7F 8D 41 17 B5 04 8C 42 17 8D 40 17 E6
02E0 11 EA EA 88 88 CA 10 EF 20 40 1F 60

Sample of of a memo pad item in “paper tape format”:

;vKIM sample ptape format
;180000ffeeddccbbaa0099887766554433221122334455667788990afc
;0000010001

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)

The last book of KIM

On his blog Nils has posted for download ‘The last book of KIM’:

Ich habe in letzter Zeit Energie in dieses kleine (auf Deutsch geschriebene) Heftchen gelegt.

Es ist allen Enthusiasten gewidmet, denen, die es werden wollen, und denjenigen, die es waren. Es soll einen in der Computerhistorie bislang unterrepräsentierten Mikrocomputer ins rechte Licht rücken und seine Rolle bei der Entwicklung hin zum modernen Heimcomputer beschreiben.

Viel Spass

Webdoktor

Funkschau 1979 KIM-1 AIM 65 6502 articles

Funkschau 1979 KIM-1, AIM 5 and 6502 articles. German, scanned by Matthias, SBC at VzEkC e. V. forum

post

Funkschau

1979 KIM-1, AIM 5 and 6502 articles. German, scanned by Matthias, SBC at VzEkC e. V. forum

KIM als Morse-Trainer 79/19/1128
KIM als Nf Frequenzzähler 79/6/334
KIM als Siebensegment Fernschreiber 79/14/836
KIM decodiert Morsezeichen 79/15/889
KIM spielt Lotto 79/24/1420
KIM- und SYM-Monitor-Unterprogramme 79/11/652
Kapazitätsmessung mit dem KIM-1 79/12/715
Kassetten-Probleme beim KIM-1 79/5/260
Interrupt-Uhr mit dem KIM-1 79/11/657
Lernen mit KIM 79/18/1073
KIM-Monitorprogramm für Baudot-Fernschreiber 79/26/1425
Eine Morseschreibmaschine 79/14/834
< Gebrauchsanleitung für den KIM-Timer 79/8/466
Digitalvoltmeter mit KIM 79/17/1925
AIM-65 Erweiterungsplatine für Funkamateure 79/16/963
AIM-65 als Morseschreibmaschine 79/16/98
Fernschreiber als AIM-65-Drucker 79/19/1124
AIM-65 empfängt RTTY 79/15/884
AIM-65 sendet RTTY 79/16/953
Der Mikrocomputer AIM-65 79/10/581
Videoausgabe beim AIM-65 79/25/1474
Von A bis Z Sortieren 79/17/128
6502 Rechenroutinen79/17/128
Textausdruck mit Baudot-Fernschreiber 79/16/958
6502 simuliert 8080 79/25/1467
Zusätzliche Befehle beim 6502 79/2/109
Baudot-Ausgabeprogramm für den 6502 79/1/53
Binär-Dezimal-Umwandlung 79/18/1078
Druckerprogramm für den µP 6502 79/5/264
Maskenfehler im 6502 79/10/582
Operationscodes (Mikro-Poster) 79/11/657
ASCII-Eingabe – so ganz nebenbei 1979/7/102
Ein Software-Tondecoder 79/8/470
Plotter für das Speicher-Oszilloskop
So einfach ist es …

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

Small update to KB-9 V1.2 and KB-6 V1.2

Small update to KB-9 V1.2 and KB-6 V1.2: the NULL command is back, to ensure binary compatible tokenized saved Basic programs.
Now the USR location is the same in KB-9 V1.1 and V1.2, 2040 and 2041 (see Nils’ blog KIM-1 Basic and the use of assembler subroutines – netzherpes).

In KB-6 V1.2 it is 8254, 8255.

If you downloaded these , please do it again

post

Replace both 6530s in KIM-1

Eduardo Casino has designed with modern tools, like Kicad and image software Inkscape a PCB for the KIM-1 which is as close as he could get to a Rev D.

This of course brought up the issue of how to get the 6530-002 and 6520-003 for this board, since those are unobtainable since a long time.
That can be solved with a FPGA. Or with a fast microcontroller like the Teensy, that is already proofed to be a good 6502 and more emulator (MCL65+).

As a first step Eduardo designed a PCB that is placed on top of the KIM-1. The 6530-002 and -003 need to be replaced with IC sockets, the PCB inserts in these sockets. It is like the Corsham 6530 replacement board, but now for both 6530s.

The style of the PCB is adapted to the syle of original KIM-1 and Eduardo’s reproduction, with curved lines.

Details, gerbers, Kicad project, at Eduardo Casino’s github page.


KIM-1, MTU Visable Memory, and Memory Tests

post

KIM-1 rev D PCB redesign Eduardo Casino

Eduardo Casino has designed with modern tools, like Kicad and image software Inkscape a PCB for the KIM-1 which is as close as he could get to a Rev D.

Based upon images on the Revisions pages on this site.

On this forum64.de thread he published the design, and made all available on his github pages.


The PCB is an exact PCB replica of the KIM-1. It therefore require s6530-002 and -003 RRIOTs, which are not available anymore.

Dual 6532 adapter board

Replacing the 6530 with a 6532 and ROM and some glue logic is a well known method nowadays.
Eduardo designed a PCB that replaces both 6530-002 and 6530-003 on a standard KIM-1 and of course his replica with a PCB that fits in the IC sockets of the 6530’s. That makes a KIM-1 completely operational!

See this github page for the design.

KIM-1 keypad replacement

See the description here