Giter Club home page Giter Club logo

cpm-65-for-apple-ii's Introduction

CPM-65 APPLE II Port
===========
Dietrich Lausberg <[email protected]>
https://github.com/dietrich-l

This repository contains the Apple II Port of CPM-65,
a CP/M-80 analogue operating system for 6502 based microcomputers


Apple II-1

System Requirements

Apple II 80 Column card in Slot 3 min 1 Floppy drive

My system is a vanilla Apple II clone

Emulation

AppleWin emulator, APPLE IIe emulation due to the 80 col card

CPM-65 Apple II Version

  System Structure

CPM-65 consists of 3 layers:

  • BIOS Basic I/O system - Drives can be A-D non consecutive.
  • BDOS Basic disc operating system - this is the CPM-65 kernel. Size 2 kB
  • CCP Console command program - a simple console which only allows to invoke CPM-65 programs.
    No resident commands. Size 1 kB

    In track 0, sector 0 resides a 256 bytes BOOT program, which loads CPM-65 to memory
    and starts the CCP.

    The system can boot from Slot# 6 or 5 (Drives A: or C:)


      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 $0800 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 an actual version as parameter 'extentsize 4096' is needed.
For the transfer of larger files, see separate documentation.

The Disc format is 35 tracks/ 16 sectors/ 256 byte/sector.
It is defined in the BIOS. The BDOS operates on sector numbers.


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
0.7
APPLE II CPM-65 BIOS
BOOT
0.4
APPLE II CPM-65 BOOT program in track 0, sector 0
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, 8 breakpoints, stepping, disassembler,...
DUTIL
1.5
disc sector editor
EDIT
1.1
Simple editor for text files & FORTH screens
ERASE
1.5
erase files
FDISK
1.0
Converts a DOS 3.3 disc to a bootable CPM-65 disc
FORTH
1.6
FIG FORTH including module for standalone applications
RENAME
1.1
rename files
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



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.

Documentation

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 DISCUSSION

Errors

The Apple port of CPM-65 is currently work in progress. Expect errors and crashes.

The CPM-65 system itself 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

Other related systems

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

Redistribution

Source code, and all documents, are freely redistributable in any form. Please see the the COPYRIGHT file included in this Repository.

cpm-65-for-apple-ii's People

Contributors

dietrich-l avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

greghol

cpm-65-for-apple-ii's Issues

Request: make D.COM show the directory without the query

The D.COM directory program asks for confirmation/offers the user the opportunity the chance to change the disk before displaying the actual directory, then quits back to the prompt.
If you just want to see the directory of the current disk, this mandatory step could be annoying in the long run. In addition, if you want to go through a stack of disks that don't contain D.COM, you have to go back to the system disk to run the utility again.
A solution could be to introduce a parameter that explicitly specifies you want to view a different disk's directory, or an interactive mode like vanilla CP/M's PIP has to load the DIR utility with a bespoke prompt that you then only quit when you're done.

System won‘t boot on a real Apple II+

When trying to boot the image on a real Apple II+ clone, the system boots track 0, steps to track one and then hangs in a read sector loop forever. Reason is unclear - in AppleWin it works perfectly in Apple IIe mode and also in Apple II+ mode, but there without the 80 col mode.

Disk change not working properly

When changing from drive A: to C: and executing a program there which accesses the directory, on changing back to A: the directory buffer is not updated and no more files are found on A:

Can't boot in an emulator like Applewin

For now I can't boot in an emulator. It displays the loader msg only.
Also, it seems that ordinary CP/M-80 can't find any files. If the file system is fully CP/M compatible, they should be displayed.

image
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.