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

AIM65-CPLD-3V3 for sale

Labu Asabu made 5 units of the AIM65-CPLD-3V3 for sale.
The price is 55,000 yen for a full set + accessories.
Shipping costs will be charged. Overseas customers will be charged customs duties for imports.
Email to info@labo-asabu.com

More info here!

post

aim65_quartus

Filippo (shinymetal6) published an alpha version of aim65_quartus, an FPGA clone on his github resource.

Forum discussion on the MisTer forum here.

Here the readme of aim65_quartus by Filippo:

This is an alpha release of a verilog Rockwell AIM65 in an Intel FPGA using the SocKIT board.
The Arrow SocKIT board is a nearly compatible TerASIC DE0 board where MiSTer runs.
This is a MiSTer port on the Arrow SocKIT, and as I have a SocKIT board I used their templates from MiSTer SocKIT FPGA page.

Behind the templates, the structures seem to me very similar, so probably a port on the MiSTer board should be relatively easy, but I don’t have such board.

Basically the aim65_quartus runs like an AIM65 at 1 MHz, has 32KBytes of ram ( who had so much ram ? not me for sure ! ) and excluding printer and tape all the peripherals are in place and runs.

The ROMs come from Hans Hotten funtastic pages, like all the other information I found there.
The 6502 core is the Arlet one, or the Hoglet67 65C02 version based on the Arlet core. This can be selected recompiling the code

The 20 AIM65 alphanumeric displays are routed to a simple video output, some ( quite bad I know ) pictures below.

The MiSTer menu can be used to have the expansion rom with basic, forth and pl/65, again some pictures below

Still with the MiSTer menu the serial port can be enabled, the characters color can be changed and the video can run at full screen

Still to do:

  • find a way to load and store programs, i’m still studying the MiSTer framework
  • fix an annoying behaviour on the serial port, tricky enough
  • find why sometimes the screen jumps
  • fix the keyboard as for now works only with US keyboard
  • a lot of more bugs I have not yet found …
  • As an additional and in my opinion useful add on, I have implemented a clear screen pressing F4, currently not used on real AIM65.
    This too needs a bit of fixing here and there, but when time will leave me to work on it again I will try to fix it

    aim65_quartus in action



    Just booted, R command in action


    Some memory dump


    Basic started


    The board where AIM65 runs …

    aim65_quartus, an FPGA clone

    Filippo (shinymetal6) published an alpha version of aim65_quartus, an FPGA clone on his github resource.

    Forum discussion on the MisTer forum here.

    Here the readme of aim65_quartus by Filippo:

    This is an alpha release of a verilog Rockwell AIM65 in an Intel FPGA using the SocKIT board.
    The Arrow SocKIT board is a nearly compatible TerASIC DE0 board where MiSTer runs.
    This is a MiSTer port on the Arrow SocKIT, and as I have a SocKIT board I used their templates from MiSTer SocKIT FPGA page.

    Behind the templates, the structures seem to me very similar, so probably a port on the MiSTer board should be relatively easy, but I don’t have such board.

    Basically the aim65_quartus runs like an AIM65 at 1 MHz, has 32KBytes of ram ( who had so much ram ? not me for sure ! ) and excluding printer and tape all the peripherals are in place and runs.

    The ROMs come from Hans Hotten funtastic pages, like all the other information I found there.
    The 6502 core is the Arlet one, or the Hoglet67 65C02 version based on the Arlet core. This can be selected recompiling the code

    The 20 AIM65 alphanumeric displays are routed to a simple video output, some ( quite bad I know ) pictures below.

    The MiSTer menu can be used to have the expansion rom with basic, forth and pl/65, again some pictures below

    Still with the MiSTer menu the serial port can be enabled, the characters color can be changed and the video can run at full screen

    Still to do:

  • find a way to load and store programs, i’m still studying the MiSTer framework
  • fix an annoying behaviour on the serial port, tricky enough
  • find why sometimes the screen jumps
  • fix the keyboard as for now works only with US keyboard
  • a lot of more bugs I have not yet found …
  • As an additional and in my opinion useful add on, I have implemented a clear screen pressing F4, currently not used on real AIM65.
    This too needs a bit of fixing here and there, but when time will leave me to work on it again I will try to fix it

    aim65_quartus in action



    Just booted, R command in action


    Some memory dump


    Basic started


    The board where AIM65 runs …