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 style 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 requires 6530-002 and -003 RRIOTs, which are not available anymore (or use the Retrospy Technologies 6530 replacement boards).

ZIPtape for KIM-1

Glen Deas sent me an article about the Ziptape cassette interface, 1978, by the late Lew Edwards. Glen made a PCB for it.

The article about the Fast Cassette Interface is part of my CW Moser Assembler/editor package. Scanned by me in 2010 to the file kimfastcassette.pdf and on my website with the CW Moser package for years now .
Glen Deas knew it was designed by Lew Edwards and entered the source in modern assembler format.

My retro toolchain

Development for my old 8 bit retro SBC’s has become much easier with fast PCs and good tools. All cross development.

What took hours on my KIM-1: load editor form tape -edit source – save on tape (multiple tape files if big) – assemble form tape to tape – load binary from tape – run
can now be done very fast.
Powerful text editors, cross assembler, KIM-1 Simulator, seconds per iteration.

The only slow part remains: me!

More on my favorite toolchain here.

post

PC Tools

Updated December 2020, Linux compilation checked, bugs fixed, online program for comverting binary to wave file.

To aid in the handling of KIM-1 program and dataformats I have written some programs for Windows and Linux (Raspbian), sources included.

KIM-1 simulator
Convert 8 bit hex formats
KIMPaper
KIM Tape WAV to BIN conversion
KIMPoser Tape Convert hex to WAV online
KIM Tape Convert WAV to BIN and BIN to WAV
Pascal-M cross compiler

All programs come with source (Free Pascal Lazarus), compiled for Windows but thanks to Freepascal and Lazarus also compiled and tested on Linux (Ubuntu and Raspberry PI OS).

Convert 8 bit hex formats

A general purpose utility to convert common 8 bit hex and binary formats, such as Intel HEX, Motorola S records, MOS Papertape, hex format, and binary files.

Sources (Freepascal Lazarus).
Convert8bithexformat Setup for Windows, Executables for Ubuntu and Raspberry PI OS
Available formats:
– BIN binary, raw data, no formatting, no information on start address.
– HEX formatted as hex numbers raw data, no start address included.
– IHEX Intel hex 8 bit format, multiple memory block, start address included.
– PAP MOS Technology papertape format, multiple memory blocks, start address included.
– SREC Motorola 8 bit S record, contiguous memory block, start address included.
– A1hex Apple Woz monitor hex format, start address included.
– KIM Tape as used in the KIM-1 Simulator as emulation of audio tape files.

KIM-1 simulator

6502/65C02 CPU emulation, disassembler, TTY, KIM-1 keypad and LEDs.

See the KIM-1 Simulator page for more information.

KIM Paper

Note that the Conver8bitHexFormat program is also capable of converting to and from Papertape format from many more formats.
Originally written for the launch of the MicroKIM, an older version is on the support CD.

When you attach a serial device like the teletype or a modern PC with Hyperterminal you can use the TIM monitor of the KIM-1. One of the functions is loading from and saving to a papertape device on the teletype. Now since this is a way to load and save data as a textfile this is in fact quite useful.
The Micro-KIM triggered me to modernize my conversion utility for MOS Technology papertape format dating from 1983, VAX/VMS and Turbo Pascal. A Windows and a commandline/console version are available.

KIMPAPER for Windows

A program for Windows to convert between papertape and binary format.

Windows setup KIMPAPER
Sources (Freepascal Lazarus, build also on Linux)

KIMPAPER V1.1 for DOS

Not too modern, but handy, a commandline utility. Does exactly the same as the Windows program KIMPAPER. Runs fine in a commandline DOS box. Can also be compiled for Linux with Freepascal. In the KIMPAPER DOS archive the program, source and information on the program and papertape format can be found.

C:\MICROKIM\kimpaper
KIM-1 MOS Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1

Syntax is:
KIMPAPER [-[b|p] filename [startaddress]
C:\MICROKIM\kimpaper -h
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Syntax is: KIMPAPER [-[b|p|h] filename [startaddress] first parameter switches
-h help
-p convert to papertape
-b convert to binary
second parameter (first if no parameters, assumed binary to papertape)
name of file to convert
.BIN for binary, forces conversion to PAPertape
.PAP for papertape, forces conversion to BINary
third parameter (assumed 0000 if not present)
startaddress for BIN to papertape conversion
Files of type .BIN wil force conversion to papertape.PAP
Files of type .PAP wil force conversion to binary .BIN

Examples:
C:\MICROKIM\kimpaper mastermind.bin 0200
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
C:\MICROKIM&amp;amp;amp;amp;amp;amp;amp;gt;kimpaper mastermind.pap
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Start address 0200 in file mastermind.BIN

Convert KIM tape to text


KIM Tape to Text is a utility to convert between binary format of a KIM-1 tape dump to a DOS text file.
The KIM tape dump is a binary file and is just a dump of part of the memory of the KIM-1.
This binary file can be a text file as used in editors Micro Ade or CW Assm/TED.
By using the tape write routine in the KIM-1 one can write an audio file on cassette.
When this audio file is captured on a PC as WAV file (22K, mono) this can be converted back to a binary memory dump with ED’s Utility KIMTape
These text files can be converted to DOS text files with this utility.

First open the binary file. If this is recognized as Micro Ade or CW Moser format, the Save as text file can be used.

Windows program.
Full source for Freepascal and Lazarus, no Windows dependencies. Compiled on 64 bits Windows 10 as 32 bit application.

Note on detection of assembler editor type
1. Micro Ade file must start with CR: when present this is Micro Ade
line nr follows 2 byte
line ends with $0D
file ends with $40
2. Assm/Ted by CW Moser starts with line number $10 $00
end of line is high bit set
There may be rare situations that a file starts with a $0D or a different line nr. You can force CW Mose detection by changing this to a sequence of $10 $00 $0D and if necessary blanks $20 to make it consistent. If in doubts: use an editor that shows the file in hex (Ultra Edit, or the free Notepad ++, Text editor PRO) and study the tape file.

Methods to get the binary file out of a Junior or KIM-1.
Read the record tape into a binary with Ed’s KIMTAPE conversion *see below). It is MS-DOS and runs fine in VDOS (https://www.vdos.info/) or DOsbox (slow).
Make a note of start address as shown by KIMTAPE.
Non-printing ASCII characters are filtered out of the resulting text file.

KIM Tape Convert WAV to BIN and BIN to WAV

Not my program, but so handy!

KIMTAPE v0.5 – tape conversion utility for KIM-1 and SYM-1 (2004-05-17) Local copy of http://dxforth.mirrors.minimaltype.com/#kimtape)

KIMTAPE allows programs stored on cassette tape to be decoded to a program file. It handles both MOS Technology KIM-1 and Synertek SYM-1 tape formats including HYPERTAPE. The reverse process – converting a program file to an audio wavefile is also possible, allowing one to produce perfectly regenerated cassettes. KIMTAPE works with 8-bit mono WAV, VOC or RAW audio files recorded
at 22050 samples per second.

Download: kimtap05.zip (MS-DOS) It is MS-DOS and runs fine in VDOS (https://www.vdos.info/) or DOSbox (slow).

The binary files in the KIM-1 program archives have been reproduced, from the original cassette recordings, with the tool KIMTAPE on a PC in a DOS box. See Eds DX-Forth and Utilities Page for this and other nice programs.
This program also makes it possible to reproduce the original cassette recordings that can be read by a KIM-1.

The files were made as follows: The KIM-1 cassette audio was connected to the PC audio input and (with e.g. Audacity) recorded as a wave file (mono 22KHz).
For example: qchess.wav
The wave file was then converted with KIMTAPE to a binary file (the exact content of of the KIM-1 memory when recorded).
And the KIMTAPE utility then displays load address (for example and tape ID

c:\kimtape qchess.wav qchess.bin
KIMTAPE version 0.5 17-May-04
infile: qchess.wav
outfile: qchess.BIN
Program 01 address 0200 checksum OK xxxx bytes done

This .bin file (any extension is fine!) is NOT a wave file! It contains the exact content of the KIM-1 memory when recorded. The size is exactly the number of bytes as stored in the memory of the KIM-1 and much smaller than the wave file. This binary file can be converted back to a wave file with KIMTAPE or converted to a papertape file with KIMPAPER:

C:\kimtape -M -A0200 -D01 -B2 qchess.bin qchess.wav 

As you can see: you have to specify the load address and the program ID. The B parameter indicates hypertape speed (2 here, slow)
The resulting wav file should be acceptable for the KIM-1. It is (as I have tested) acceptable as input for KIMTAPE!

All command parameters can be seen by typing KIMTAPE without parameters:

Pascal-M Cross compiler

Executables of cross compiler, workflow, sources, command line utilities.

PRDIS, Printing Disassembler

In 1982 I wrote/composed a program to have disassembled code on paper, with page numbers. Read more about it here.

The core routine of the disassembler is the well-known Steve Wozniak/Allen Baum 1976 article A 6502 Disassembler from Apple
The program is a TTY program. I build it with the then current hardware and software of my KIM-1:

  • 32K RAM from $2000
  • Video terminal uppercase 24×32 on the KIM TTY serial in/output
  • A parallel ASCII keyboard connected to the second 6532 RIOT port
  • A serial connected, at 9600 baud, Heathkit H14 matrix printer
  • Dual audio cassette records under motor control
  • MICRO ADE assembler/Editor, extended and with video TTY as output, parallel keyboard as input and could print at the H14 printer