MCS6500 Microcomputer Family Programming Manual

High-res quality typeset manual by Pickledlight. Local copy. Check to original for updates!
MCS6500 Microcomputer Family Programming Manual
MCS6500 Microcomputer Family Programming Manual Hardcover

Pocket calculator for the KIM-1

Siep de Vries Westvries Computing The Netherlands 1977

Simple calculator (integer 6 digits positive) + – / *

I/O via TTY or keypad/LED display, the same method as used by the KIM-1 monitor.

Two versions (scans included): a special publication from the first days of the KIM Club in a traditional 6502 assembler and a later version for the Micro ADE assembler editor.

The versions are functionally identical, the memory layout of zeropage is different.

Sources included of both versions (TASM 32), with resulting listing and papertape and Intel hex files.
As close to paper original, changes due to assembler quirks.

– Load papertape
– choose TTY or keypad/LED via switch

– Input is given by entering a decimal number followed by a function key
(only + – / * seems to work)

Functions (first KIM-1 keypad, second TTY keyboard)
A = + = add number to result
B = – = subtract number from result
C = * = multiply result by number
D = / = divide result by number
E = c = clear input number
F = A = clear result
AD = r = remainder of last division
DA = i = number stored in memory
+ = c = number from memory
PC = % = calculate percentage
GO = C = clear result

? displayed means integer arithmetic error (overflow or negative)

Hans Otten, 2021 – 2022
Tested and Screenshots made with theKIM-1 Simulator

KIM-1 Simulator Version 1.0

KIM-1 Simulator Version 1.0, out of beta, all planned functionality implemented. Console has now ANSI color mode subset implemented.

Convert hex formats and KIM-1 Simulator KIM-1 audio tape support

Both Convert 8 bit hex formats and the KIM-1 Simulator now support the emulation of KIM-1 audio tapes. All available and tested on Windows, Ubuntu and Raspberry PI OS.



KIM-1 Simulator, another update

I keep on working on this program, so much fun letting the old KIM-1 experience come alive again.

0.13.1 brings tape support in the KIM-1 way: you enter the start address, end addres and tape ID and strat the tape save at location 1800, load from 1873.

A popup appears to choose file to laod/save form, while the KIM-1 waits for the laod and save to finish. Success or failure is reported as the KIM-1 monitor does: 0000 (OK) or FFFF (not OK) as address.

Also the main screen has seen some updates, the console is bigger and one can choose fore and background colior.Many VT100 cursor control works now, more to come.
Tasting and building now on Windows, Raspberry PI OS and Ubuntu.

Work planned:
– color managing in Console to allow reverse video, coloured characters, more VT100/ANSI ESCape support.
– add tape file support to the general memory laod and save routines, also in the Convert 8 bit hex formats program.
– thinking how to add 6532 timer support

Enjoy and tell me what you think!

KIM-1 Simulator updated to V0.11.0

A ‘profiler’ has been added. Now you can see how often an instruction is executed in a program.

KIM-1 Simulator register and stackpointer watchpoints added

The KIM-1 Simulator is updated to version 0.10.2.

Changes in this version are an extension to the “Run to” execution

Registers and Stackpointer watchpoints added.

‘Run to’ now stops if the value of the register is equal to the watchpoint value.

‘Run to’ also stops if the stackpointer is equal or lower than the watchpoint value. A method to detect stack underrun.

KIM-1 Simulator breakpoints and watches

The KIM-1 Simulator is updated to version 0.10.1.

Changes in this version are an extension to the “Run to” execution

    • up to 10 breakpoints are now possible instead of one
    • up to 10 watch points addresses. When the CPU accesses the watch point execution stops
    • Save file to memroy bug fixed (thank Nils!)

Watch and breakpoints can be enabled or disabled at will, even while the program is running.

Serial terminal emulation software

Serial terminal emulation software, essential when working with SBC’s like the KIM-1.

I started working with computers long long ago. I loved the Digital Equipment devices, the VT100 (1982!), the excellent VT220, the VT340. All serial, the base of the ASCII control codes.

A wide selection is available of programs that work with the serial line.

    • Most implement a subset of the ASCII control codes, VT100 and more. for SBC’s a subset is sufficient
    • Some have strengths in debugging and showing what is sent or received (hex view, control characters etc).
    • Also important is flow control (off, hardware/software).
    • Sending/receving files (text or binary) is also often the only way to get data to/from the SBC. Simple character based (includes hex formats like Intel, S records Motorola, MOS papertape) or with a protocol (Xmodem, Ymodem. Zmodem etc).
    • TCP/Ip protocols like SSH are a bonus
    • And last but not least the ability to wait/delay after sending a character or Line end (Enter key) to let the slower SBC handle the incoming data. For example the KIM-1 MOS papertape format receive, but at higher baud rates needs delays

I found a page on Sparkun that has an excellent description what is essential in dealing with serial communication on a PC, be it Windows, Linux etc.

Also this page names good free terminal emulation programs, running as GUI programs, for serial I use myself.
– Coolterm (croos platform)
– Tera Term (Windows)
– Realterm (Windows)
– YAT (WIndows)

Not named in this list

– Putty (linux and Windows)
– Minicom (Linux console mode)

KIM-1 and clones

Most programs allow character and line delay for sending to slow devices. The KIM-1 with its bit banging serial routines is one of them.

For me 9600 baud, 5 msec character delay and 100 msec line delay worked for me to upload papertape format, this also applies to the clones like PAL-1, Corshams KIM Clone and the Micro KIM.
For Microsoft Basic text file uploads of program sources a line deay of 200 msec may be required.

Serial ports

Nowadays serial ports are only available with USB devices. Work fine in general.

On my other website I have information on USB serial communication and how to write programs (Lazarus of course).

PL2303HX misery
USB serial adapter testing

Elektor Junior Paperware 3 in German!

Thanks to Martin Seine I have added the Paperware 3 in German book to the Junior book collection.