CPM-65 =========== Dietrich Lausberg <[email protected]> https://github.com/dietrich-lThis repository contains CPM-65,
a CP/M-80 analogue operating system for 6502 based microcomputers
Elektor Junior Computer - system setup6502 processor 12 kByte RAM (not tested) 6532 I/O chip for the system timer (could be replaced by a 6522 or other) min 1 Floppy drive Serial-I/O
My system is a heavily modified and expanded Elektor Junior Computer with 57 kB RAM.
For system components and memory map see separate docsCPM-65 consists of 3 layers:
- BIOS Basic I/O system - currently 3 kB, could be reduced to 2kB
by removing SCSI and I2C drivers. Drives can be A-H non consecutive.
I/O console is serial TTY 1200 - 9600 Baud - BDOS Basic disc operating system - this is the CPM-65 kernal. Size 2 kB
- CCP Console command program - a simple console which only allows
to invoke CPM-65 programs. No resident commands. Size 1 kB
File & Disc Format
Filenames are CP/M-style d:filename.ext with d <Drive A-H> Programs must have .COM as extension and are loaded to $0200 and started there.
The directory structure is nearly CP/M-compatible. Disk images can be read with appropriate tools
like CPMTOOLS, CIFE (CPM Image File Explorer) or CpmtoolsGUI.
A disdefs file is in the IMAGES section.
Please use a recent version because parameter extentsize 8192 is needed.
The Disc format is typically 40 tracks/ 16 sectors/ 256 byte/sector. It is defined in the BIOS.
The BDOS operates on sector numbers.
Maximum sector number is $800 blocks with $20 sectors = 65536 sectors � 256 bytes = 16 MBytes
Software List
Program |
Version |
Description |
ALLOC |
2.9 |
shows
disc allocation map |
ASM |
2.8 |
native
6502 Assembler |
BASIC |
1.5 |
Microsoft
BASIC interpreter |
BDOS |
2.4 |
CPM-65
BDOS |
BIOS |
3.2 |
CPM-65 BIOS |
BOOT |
1.7 |
CPM-65
BOOT program in track 0, sector 0 |
BOOTPROM |
3.2 |
Junior
Computer BOOT EPROM |
BROWSE |
1.2 |
text
file browser |
CCP |
1.5 |
CPM-65
CCP |
COPY |
1.4 |
multi
file copy utility |
D |
2.3 |
show
directory alphabetically sorted |
DEBUG |
1.8 |
Debugger
with breakpoint capability |
DRUCKER |
1.0 |
Drucker
Utility to control EPSON FX-80 printer |
DUTIL |
1.5 |
disc
sector editor |
EDIT |
1.1 |
simple
screen editor for text files and FORTH screens |
EPROMMER |
1.2 |
Utility
to program 2716&2732 EPROMS with the ELEKTOR Eprommer |
ERASE |
1.5 |
erase
files |
FORMAT |
2.4 |
Disc
formatter |
FORTH |
1.6a |
FIG
FORTH including mudule for standalone applications |
HEXMON |
1.1 |
simple
HEX monitor Elektor style |
I2C-UTIL |
1.3 |
Utility
to handle I2C devices, esp. DS3231 RTC and AT24C32 EEPROM |
RENAME |
1.1 |
rename
files |
RFILE |
1.1 |
reads a
file through serial I/O |
SCSIMGR |
1.1 |
Utility
to control and test SCSI devices |
STEP |
1.0a |
Utility
to set the steprate of ral floppy drives |
SUPERTAP |
1.4 |
Cassette
I/O with 3600&7200 baud |
SYS |
1.6 |
puts
code for BOOT, BIOS, BDOS, CCP into the system tracks |
SYSGEN |
1.0 |
copy
operating system to another disc |
TYPE |
1.6 |
prints
text file to screen |
XMODEM |
2.3 |
File
transfer through serial I/O, max. 38400 Baud |
All software is supplied as assembler files to be assembled with the CPM-65 assembler.
In case you wish to use a different assembler, the syntax has to be adapted accordingly.Currently the documentation of CPM-65 is sparse and only for my personal needs.
I plan to write appropriate docs over time. If there are any whishes, please open a DISCUSSIONThe CPM-65 system has now seen more than 30 years of service. Currently there are no known errors.
However, since an error free software does not exist, please report any errors in the ISSUE section
When I started the development of cpm-65, I was blissfully unaware of any other aproaches.
However there are some, most notably:
- DOS/65 by Richard Leary. There is a limited compatibility
- OUP/M by Jiang - Xiong Shao. Published 1983, no further development
- CPM65 by David Given, published 2022
Source code, and all documents, are freely redistributable in any form. Please see the the COPYRIGHT file included in this Repository.