post

Convert to Papertape V2.2

On the Utilities page I have two programs to convert to MOS Technology papertape format: KIMpaper, a command line utility, and ConvertHexFormat, a GUI app.

All in Freepascal/Lazarus source format, and tested on Linux (Raspberry PI OS) and Windows 10 64 bit. So the programs will run everywhere Lazarus is available (MS DOS, WIndows, Linux Mac OS).

KIMPAPER  is written at the time the Micro-KIM appeared. CLI utility.  Supports Binary to/from Papertape.  Still runs fine on all platforms supported by Freepascal (Windows, MS DOS, Linux etc) after a recompilation, source available.

ConvertHexFormat is a more recent GUI utilitilty with many more 8 bit hex formats as input and output.

There were some bugs of course in older versions. V2 added the ability for multipart hex formats, records having a non-consecutive load address. That seems to wok fine since V2.1
In 2.2 a bug in MOS Papertape format for bigger files is fixed, the end-of-file record (record type 00, total line count) had a bug in the checksum calculation. KIMPAPER is and was correct in the calculation.
But in ConvertHexFormat it was wrong (as it still  is in the well known srec utility in the Unix world!).

post

PC utilities updated

The PC utilities page has seen an update of th4 Conversion hex formats utility.

Programs to manipulate the binary and hex formatted files of interest for SBC owners. Intel hex, MOS papertape, Motorola S-record, binary, hex conversion fort eh 8 bit world.
Runs on Windows, Linux, Mac due to Lazarus and Freepascal. Source included.

Microsoft Basic 6502

Written in 1976, Microsoft BASIC for the 8 bit MOS 6502 has been available for virtually every 6502-based computer. Also for the SBC’s on this site: KIM-1, SYM-1, AIM 65 and as a port of Applesoft on the Apple 1.

Binary versions and manuals are on the pages dedicated to these machines:

Sources of early Microsoft Basic on 6502 are available on pagetable blog by Michael Steil

Build binaries from source on a Linux system (Raspberry PI OS)

First install CC65 package, the assembler and linker are required.

You need the CC65 package, a C and Macro assembler and linker for the 6502.

https://github.com/cc65/wiki/wiki is broken, https://cc65.github.io/getting-started.html is fine.

git clone https://github.com/cc65/cc65.git
cd cc65
make
sudo make avail

Now get the MS Basic source and assemble the binaries

https://github.com/mist64/msbasic
git clone https://github.com/mist64/msbasic
cd msbasic
./make.sh
cd tmp
ls

and you will see a directory of binaries (.bin), symbol table (.lbl) and object files (.o)

Compare the binary files with the binary files in the msbasic/orig folder and you will see hopefullyy they are identical!

It is not only nice to see the source, now you are able to customize a Microsoft Basic to your likings.

Steps as advised in the pagetable description:
1. Create a .cfg file by copying an existing one.
2. Adapt the make file for the new target.
3. Change the platform specific source files

and assemble again.

For example, the KB9 Basic can be changed:

  • Character in//out to a serial device
  • Control-C handler update
  • Remove the ROR workaround
  • Save/load to another storage device
  • See the KIM Kenner articles for patches on KB9 Basic

An example is this post by Gordon Henderson who made a serial interfaced Commodore Basic by creating a new variant and tweaking some conditionals, replacing the screen editor with the line editing interface of older versions.

KB-9 stands for Microsoft Basic V1.1 for the KIM-1  with 9 digits precision. .
Scanned manual
The original KIM-1 KB9 Microsoft Basic V1.1, audio wave, binary and papertape format

post

New SYM-1 document: KIM/SYM : First Book of KIM appendix

Thanks to Larry:

New SYM-1 document: KIM/SYM : First Book of KIM appendix

post

SerialTester

A program, SerialTester,  a guide and test results.

Also updated Prolific PL2303HXA driver misery solution.

Serial USB adapters testing


So I have a collection of those USB to serial adapters, some with cables and DB-9 connectors, some with cable and Dupont connectors, and some USB TTL type connectors on a PCB with male or female Dupont pin connectors for USB-A, mini or micro USB. Most not documented or unsure if the voltage levels are 3.3V or 5V ..

First some background. These are all descendants of the EIA RS232 standard in some way. Terminology, asynchronous serial format, voltage levels, start bits, stop bits, 7 or 8 data bits, hardware and software handshake, and the way it is abused in many of these devices. And so common nowadays in Arduino and ESP8268, ESP32 and even Raspberry Pi world.

If you are new to the serial world and want to use these devices and understand how, study the next chapter. You will learn and know what I am talking about: DCE, DTE, DSR, DTR, TxD, RxD, CTS, RTS, DTR, RI, CarrierDetect, UAR/T’s, TTL voltage levels being reverse to RS232 voltage levels, a ‘0’ being negative RS232 voltage up to 15V, a ‘1’ being as low as -15V.

 

RS232 asynchronous information


This picture shows where RS232 came into being about 50 years ago,


Read these PDF’s:
RS232 Protocol – Basics
EIA RS232-C Standard Protocol
EIA RS232-E Standard Protocol
Fundamentals of RS–232 Serial Communications
RS232 Physical Layer Interface Standards
RS232 (TIA/EIA-232-F)
RS-232: Serial Ports

USB Serial TTL devices

These little devices came into use to communicate with small computers like SBC’s, Arduino and ESP’s and PC’s. Throw out the overhead of the + and -15v, limit or leave out the handshake signals, (mis)use the DTR signal to reset the Arduino, use it to download firmware or collect data from sensors on the small computers and process it on bigger machines. And act as the power supply the little computer.
Based on special UAR/T IC’s, very small footprint, and dirt cheap.

Testing USB Serial TTL adapters

What you need:
– A PC, Raspberry Pi or another Linux or Windows PC. Any PC platform supporting USB ports will do.
– The program SerialTester, see below
– A small breadboard
– A collection of Dupont cables with male and female connectors
– A multimeter, a most simple one will do

SerialTester

Testing USB serial adapters is not that difficult, you need a terminal emulator, which are available in lots of formats and capabilities. Putty, Minicom etc all allow to choose a serial port, set baudrate and other parameters like hardware handshake, software handshake, number of data and stop bits. With a loopback test (which means connecting serial out TxD to serial in (RxD) you can test the serial connection by typing characters and seeing the characters appear on screen.

What I miss in these programs is a way to inspect the modem control lines. So I wrote a little program for that.
SerialTester allows to do the loopback test and shows the state of the modem control lines.
You can change the DTR and RTS lines since these are set of cleared by the USB serial port. The other lines are read from the USB serial adapter.

Get the program here:
Windows 10 installable executable
source (Lazarus + Freepascal) and executable for Windows, Linux and executable for Raspberry Pi

Use the program as follows to completely test and document (write down test results on the next steps!) the adapter.

1. It is a GUI/Windows program, so start as usual on your operating system. Raspberry runs this program fine, but Linux is not so forgiving in plug and play of USB devices, so expect some hangs and reboots. CH340 chipsets can have a temper, and SerialTester sometimes fails, where Minicom succeeds.

2. Insert the USB adapter, do not connect anything yet to the adapter
For the USB-A types it is handy to have an USB-A male -female cable to bring the adapter to the table

– Check if the USB adapter is recognized by the operating system
For Windows start Device Manager and look for COM Ports, like COM8 in the example below
On Linux start a terminal and type “lsusb”, insert the USB serial adapter and look for added USB device serial adapter, in the screenshot an FTDI adapter.
The command “ls -l /dev/ttyUSB*” will show devices like “ttyUSB0”.

3. Click Port settings and click in the field Port drop down button. A list of serial adapters will be shown, pick one. Note that on a Raspberry the serial port ttyAMA0 on the GPIO connector will be shown also. Here we want the ttyUSBxx device.

Select 300 baud as baud rate, this will help seeing the transmit with the multimeter., leave the rest default.

Press OK

4. Open the Port by clicking the button Open Port. Look at the status displayed, it should tell the port is opened. If not opened, you might have a driver problem, see the sections below on CH34x, FTDI and Prolific 2303HX devices.
You will also see the DTR and RTS fields light up red, as opening also sets the DTR and RTS pin high.

5. Switch on the multimeter and read the prints on the USB or the color of the wires.
– First find Gnd. Indicated with the label GND or a black wire.
– Now find Vcc, indicated with VCC or the red wire. Measure the voltage, should be 5V, 3.3V. Some adapters have a jumper to select the voltage. Some adapters also change the voltage on the other lines, some do not. Measure!

6. Find the TxD pin. Connect the multimeter to the TxD pin. It should be +3.3V or 5V. Also check if changing VCC to +3.3V or 5V makes any difference, some adapters do, some do not change the voltages on the pins.

7. Enter a long string in the Send field, and press Send (or Send CR for a line ending). Observe the readout on the multimeter, it should be lower than the value in rest. Nothing will be shown in the received fields.

If not, then this is not the transmitting pin. Check RxD if that is the transmitting pin, for all my adapters it was TxD, but who knows what manufacturers do ..

8. Inspect the adapter for a DTR line if any. Connect the multimeter to the corresponding pin and measure the voltage. Press the DTR button in SerialTester and check if the voltage changes on the pin.


9. Repeat for the RTS line.

10. Locate the RxD line. Connect this line to the TxD pin and send a string again. Now you should see the Receive and Receive hex fields filled with the send string.

11. Now if any pins are not tested yet, they have to be the other modem control lines. The labels on the adapter will tell or experiment and measure. Connecting to ground or VCC with a 2k2 resistor (to be safe) will show on the display of the SerialTester program the corresponding level.

Chipsets: FTDI, Prolific, Silicon Labs, CH340

The USB Serial adapters contain a UAR/T IC, made by a small group of manufacturers.

1. FTDI. Comes with the highest recommendations. Many types. Well supported in Linux and Windows.
Due to fake IC’s made in China the current drivers check and try to make a fake inoperable.
If you encounter in Windows a non-working FTDI adapter, you cna only use it in Linux, after ‘repairing it. See here how to do that

2. Prolific. Supported in Linux and Windows.
Also due to fakes, older (not fake!) IC’s made by Prolific are not supported by the current Prolific driver in Windows. Device manager shows PL2303HXA PHASED OUT SINCE 2012. PLEASE CONTACT YOUR SUPPLIER.

Easy to solve with an older version of the drive, like in this archive. Unpack in a folder, Update driver, Look on this PC, Have disk, Browse to the folder.
Windows may ‘update’ the driver again, just rollback the update in Device Manager. For permanent fix, see also this page how to enable group Policies on Windows 10 Home and prevent any updates.

3. CH34x. I sometimes encounter problems under Linux with this chipset. Windows runs fine.

Reports

‘Blue’ closed connector with cable
Prolific PL2303
Male Dupont connectors
Black Gnd
Red +5V
Green Tx (sending data) 3.3V
Yellow Rx (receiving data)
Betemcu CH340
Status LED red, send LED blue
Edge pin connector maleGND Gnd
VC +3.V or 5 V slide switch
TX 5V Sending
Rx 5V receiving
DTR 5V
CTS connect ground for ‘on’
Button switch of Vcc
D-Sun-V3.0 CH340
Status LED red Send blue led Received blue led
Edge pin connector male
GND Gnd
RxD receiving
TxD sending at 3.3V or 5V
3V3 3.3V
Vcc jumper to +3.3V or 5V (no jumper 3.3 V)
5V 5V
Tienu ZX2H1911A1 PL2303HXA
Status LED red Sending green LED Receiving Yellow LED
Edge pin male
5V 5V
3.3V 3.3V
TxD sending 3.5V
RxD receiving 3.5V
Gnd Gnd
FTDI DCORSO FTDI 232
Red status LED send receive green LEDs
Edge pin male
Jumper +5V Vcc +3.V
Jumper 5V – Vcc – 3.3V
All modem signals to edges RI CTS RTS
110 baud not supported
DTR 5V or 3.3V following jumper
TX sending 5V or 3.3V following jumper
RX receiving 5V or 3.3V following jumper
VCC 5V or 3.3V following jumper
CTS 5V or 3.3V following jumper
Gnd Gnd
4D Programming Cable CP2102
Dupont female
RES ?
Gnd Gnd
Tx Sending 3.4V
Rx Receiving 3.4V
+5V 5V
FTDI cable no ident,
lights in cable red (receive) green (send)
Dupont female
Black Gnd
Blue CTS 3.4V
Red +5V
Green Sending 3.4V
White Receive 3.4V
Yellow RTS 3.4V
Tienu FTDI232H
USB-A FTDI edge pin red status LED green send, yellow receive
GND Gnd
RXD Receive at 3.5V
TXD Sending at 3.5V
3.3V 3.4V
5V 5V
FDTI basic Sparkfun female dupont bottom
Mini USB
GND Gnd
CTS 5V
5V 5V
TxD sending 5V
RXI receive 5V
DTR 5V
Square CP210X Red status
LED Red LED send Red LED receive
Micro USB Male Dupont Edge
3V3 3.3V
DTR 3.4V
RXD sending 3.4 V
TXD receive 3.4V
GND Gnd
+5V 5V
FTDI232 Mini USB
Jumper 5V – Vcc – 3.3V
All modem signals to edges. Voltages follow Jumper setting.
MBC2 cable Prolific 2303
black GND
red 5V Vcc
Green TX sending at 3.4V
White Rx
UC-2102 Cable CP210X
Male edge pin connector
DTR 3.4V
RxD
TxD sending 3.4 V
+5V +5V
GND
GND

 

post

SYM-1 KTM photos added

Thanks to Ray Holt (Microcomputer Associates, Synertek Systems) I have added photos of SYM-1 and KTM to the Synertek pages. 

post

Large update!

While I was working on my KIM-1 emulator, I did a lot of research in my own archive and the internet and found this website was not showing all I have offline.
So lots of updates, enhancements, scans, software, magazines added, before the programming continues on the emulator!
Read More

KIM-1 Magazines

A page devoted to magazines that paid much attention to the KIM-1.

The first two magazines are of dutch origin, in which I was a major contributor and (chief) editor.

KIM/6502 Kenner

The KIM/6502 Kenner magazine, published by the dutch KIM user Club, has of course many articles on the KIM-1.
I contributed many articles and was (chief) editor of issue 10 to 25.
Here the indexed archive.

Radio Bulletin

From 1977 to 1986 Radio Bulletin published many articles written by me and others about the KIM-1.
Here the archive of relevant articles.

MICRO The 6502 Journal

Published by Robert M. Tripp, The Computerist
Published from 1977 tot 1983. The first years many KIM-1/SYM-1/AIM-65 articles, slowly faded to Apple Atari etc in later years, and ended in 1984.
The whole archive is here.

Compute!

A magazine devoted mostly to 6502 computers. Apart from the Compute II period, before and afterwards also the small SBCs like IM-1 got attention of Compute!
Nearly all of Compute! lives here.
The Internet archive has all issues

Compute II

Compute II was a short lived split-off of Compute! and also a continuation of the KIM-1/6502 User Notes. Three issues and it was merged back with Compute! again.

HTML version of Issue 1
PDF of Compute II Issue 1
HTML version of Issue 2
PDF of Compute II Issue 2
HTML version of Issue 3
PDF of Compute II Issue 3

KIM-1/6502 User Notes

KIM-1/6502 User Notes is a publication about the KIM-1, slowly evolving to other 6502 systems like SYM-1 and AIM 65.
Editor was the famous Eric Rehnke. After issue 17 it merged with Compute II.

          KIM-1 / 6502 USER NOTES INDEX BY SUBJECT VOLUME 1(Issues 1 till 6)

APPLICATIONS FOR KIM             GENERAL INFORMATION
Application suggestions   1        Correction To Memory Map -------- 2
Calculator--Interface     4        Defective 6502 chips------------- 3
            Interface     6        Discussion of Memory Allocation - 5
          --T.I.5050      5        DISPLAY (on board)
Chess Clock Program       4           red filter for-----------------5
CONTROLLING                      Use of------------------------------1,5
 --- Function Generator   1        EXPANSION OF SYSTEM
 --- Light Intensity      4           KIMSI--------------------------4
 --- Motor Speed          4           MEMORY
 --- Touch tone encoder   1            Adding memory to KIM-1--------5
Degree Dispatch Computer  5            Diagnostic------------------- 2,5
Frequency Counter         3            Expansion---------------------4,3
                                  OSI Memory-------------------------3
GAMES                             Using SD Sales 4K RAM Board        3
  Bagels----------------- 5       Hardware tips
  Battleship--------------6          Packaging KIM-1 --------------- 6,3
  Horserace-------------- 3          Power Supply for KIM ---------- 4
  Hunt the Wampus-------- 2          Red Filter for Display----------5
  Jotto------------------ 5       INTERVAL TIMERS :
  Kimmaze---------------- 4          The Other Timer-----------------2
  Microchess------------- 3          and cassette                    2
  Mastermind------------- 5          Use Of--------------------------5,5
  Moon Lander-----------1,3       MIKIM------------------------------5
HEDEX Program             1       OPERATION TIPS
MATH TEST Program         4          Using SST  ---------------------2
Mini-l Loran-c            6          Using ST   to start programs----4
MUSIC:KlugeHarp     3,2,6,6       Page 1 Programming Problems--------6
Real Time Clock        4, 5       Packaging your KIM-1---------------3
Square wave generator     5       Power Supply-----------------------4
Stopwatch Program         2       Presetting 00F1, 00F2              4
Telephone Dialer        4,4         System Architecture              3
                                  Packaging your KIM-1---------------3
CASSETTE PROBLEMS/SUGGESTIONS     Presetting 00F1, 00F2              4
Certification of tape     6       System Architecture                3
Copying Cassette tape     3       TABLES for KIM-1
Fast tape problems        6          Interval Timer Table------------3
Hypertape               2,6           Relative Branch table----------2
Interval timer/cassette   1          OP Code table-------------------4
Notes on cassette         6       Techniques
PLL set program           5          Mnemonic Improvement------------41
PROBLEMS with Cassette    3                   BIT Data---------------41
Software control of tape         Top Down Programming                4
  reading                 4      Modifications/ IMPROVEMENTS
Speed up                  4         Crystal Stabilization------------5
Supertape                 2         Factory Mods. -------------------4
Supertape improvement     4         6502 Register Monitor Apparatus  4
Tape Certifying           6         74Ls145 ------------------------ 3,4
Tape Dupe                 4      6502 Microprocessor Board-----------6
Using Cassette            6         POWER ON RESET CIRCUIT           3
Varification of Data      4         NOTES FROM THE FACTORY           5
Vutape                    2      

                         INDEX Issue 13
                                                                     
SOFTWARE FEATURE                                                         1
     KIM Hexpawn (your KIM can learn to win)        Robert C. Leedon

6502 OP CODES (arranged logically for easy look up) Jim Butterfield      6

CASSETTE INTERFACE STUFF                                                 7
     Tape Verify II                                 Dr. Barry Tepperman
     Radio Tape Feedback                            Daniel Gardner
     Reliability Hint                               John Watney
     Help Relay Package Fixit                       Mike Firth
     Tape File Recovery Routine                     Loel Swank
     KIM Software On Cassette

LANGUAGE LAB                                                             10
     Focal
          I/O Mods                                  Editor
          Functions                                 Editor

     Basic
          I/O Mods                                  Marvin De Jong
          A Basic Question                          Editor
          Basic Timing Comments                     F. E. Kempisty
          KIM Basic Hint                            Micro-Z Company
          Basic Renumber Program                    Harvey Herman

     Tiny Basic
          Two Tiny Basic Mods                       Michael Day
          Ramblings About T.B.                      Lew Edwards

     Forth
          Forth Comments Example                   John P. Oliver

     Assemblers
          Two Pass Patch To Aresco Assembler        John Eaton
          Mods To MSS Assembler                     Richard M. Bender

DESSIGN CORNER                                                           16
     A 6522 I/O Board

KIM-4 BUS PINOUT                                                         18

VIDEO  GRAPHICS                                                          19
     Video Displays                                 Editor
     Comments On Visible Memory                     Lew Edwards
     TVT-6 Adventure                                Dennis Chaput
     TVT-6 RAM Expansion                            Michael Allen
     Polymorphics Video Board Mods                  Editor

DEBUG                                                                    21
     Slow Stepper IV                                Lew Edwards

LETTERS  COMMENTS                                                        22

SOFTWARE LIBRARY
     Multi-Mode Adder                               Jim Butterfield
     Pseudo-Random Number Generator                 H. T. Gordon
     ASCII Dump Program                             Jim Zuber
     Keyboard Debounce Routine                      Thomas J. Rubens
     Sound Effects Program                          Bob Carlson
     Melodies For The Music Box                     Douglas Lyon
     'Do Loops'; For KIM                            Dave Skillman

INTERFACE                                                                26
     Camera Speed Tester                            Mike Firth
     Low-Cost Modem Possibility                     Editor
     RPN Calculator Chip Interface                  Editor
     Power-On Reset                                 George Hawkins
     The Outside World Connection                   Editor
     More On The Opto-Isolator                      Dwight Egbert

NEW PRODUCTS                                                             28
     Video Driver Package
     Price Decrease On Jolt Boards
     A 8080 Simulator For The 6502
     Eprom Programmer



                         INDEX Issue 14

INDEX
EDITORIAL
SOFTWARE FEATURES                                                         1
     KIM BANNER PROGRAM                             JIM ZUBER
     6KIM DISASSEMBLER
     CHECK-OUT                                      ROBERT LARRABEE


LANGUAGE LAB                                                             12
     BASIC
          MOD AND PROGRAMMING HINT                  HEINZ JOACHIM SCHILLING
          OUTPUT PAGING MOD                         DICK GRABOWSKY
          RENUMBER ADDENDUM AND SOME MODS           HARVEY HERMAN
          AUTOMATIC LINE NUMBER ENTRY MOD           SEAN MCKENNA
          A NEW COMMAND                             DICK GRABOWSKY
          PRODUCT ANNOUNCEMENT
          'USR' FUNCTION INFO                       C. KINGSTON
     FOCAL
     TINY BASIC
     FORTH
     XPL0


SYM SECTION                                                              18
     ACCESSING THE SYM DISPLAYS                     A.M. MACKAY
     SYM NOTES & KIM-4 COMPATIBILITY                C. KINGSTON
     WUMPUS   MUSIC BOX MODS                        JIM ADAMS


AIM SECTION                                                              19
     MANUAL CORRECTIONS                             JODY NELIS


VIDEO   TVT-6                                                            23
     POLYMORPHICS VIDEO/KIM INTERFACE               MIKE FIRTH
     TVT-6 NOTES & RAM EXPANSION                    MILAN MERHAR
     INTERFACING TO THE TVT II                      JOHN M. RENSBERGER

CASSETTE STUFF                                                           25
     MAKE A SHORT CASSETTE                          TED BEACH
     CASSETTE DIRECTORY PRINTOUT PROGRAM            CHRIS MCCORMACK

ANNOUNCEMENTS  REVIEWS
KIM-1 User Notes Volume 0, July 1976
KIM-1/6502 User Notes Volume 1, September 1976
KIM-1/6502 User Notes Volume 1, other version
KIM-1/6502 User Notes Volume 2, November 1976
KIM-1/6502 User Notes Volume 2, other version
KIM-1/6502 User Notes Volume 3, Januari 1977
KIM-1/6502 User Notes Volume 3, other version
KIM-1/6502 User Notes Volume 4, March 1977
KIM-1/6502 User Notes Volume 4, other version
KIM-1/6502 User Notes Volume 5 May 1977
KIM-1/6502 User Notes Volume 5 May 1977
KIM-1/6502 User Notes Volume 6, July 1977
KIM-1/6502 User Notes Volume 6, other version
KIM-1/6502 User Notes Volume 7/8, September November 1977
KIM-1/6502 User Notes Volume 7/8, Other version
KIM-1/6502 User Notes Volume 9/10 January March 1978
KIM-1/6502 User Notes Volume 9/10 other version
KIM-1/6502 User Notes Volume 11 May 78
KIM-1/6502 User Notes Volume 11 other version
KIM-1/6502 User Notes Volume 12
KIM-1/6502 User Notes Volume 12 other version
6502 User Notes Volume 13
6502 User Notes Volume 13. incomplete other version
6502 User Notes Volume 14
6502 User Notes Volume 15
6502 User Notes Volume 16
6502 User Notes Volume 17

PC utilities hex formats

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.

KIMPaper
KIM Tape WAV to BIN conversion
Convert 8 bit hex formats
KIMPoser Tape Convert hex to WAV online
KIM Tape Convert BIN and BIN to WAV

KIM-1 simulator
All programs come with source (Free Pascal Lazarus), compiled for Windows but thanks to Freepascal and Lazarus also compiled and tested on Linux.

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>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 8 bit hex formats V2

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.

source files (Freepascal Lazarus, Windows, Linux, binary for RPI OS).
Convert8bithexformaSetup for Windows
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.

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:

KIM-1 simulator

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