Skip to content

tom-seddon/acorn_mos_disassembly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

450 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Updated versions of Acorn MOS for Acorn's 8-bit Master series and derivatives.

new versions of the MOS

There some experimental new versions of the MOS available, for use at your own risk. These can be used in an emulator, or programmed into a EPROM (or similar) and used in real hardware.

All new versions of the MOS are experimental. Should you actually use your 8-bit 1980s Acorn computer for anything important, please proceed with appropriate caution.

Refresh versions of MOS 3.20, MOS 3.50 and MOS 5.10, cover Master 128, Master Compact and Olivetti PC128S, including bug fixes, performance improvements and new features.

MOS 3.20(NT) and MOS 3.50(NT), for Master 128 only, have had the bare minimum of changes required to remove the Terminal ROM, allowing the MOS code to be contained entirely in ROM 15 and the OS area. All existing OS behaviour is (hopefully) maintained, but creation of new MegaROM images is much simplified.

For any feedback or suggestions, please post in the stardot thread or add a GitHub issue.

MOS disassembly

This project is a work in progress.

The code covers 6 released versions for Acorn systems, 3 released versions for non-Acorn systems, and 1 unreleased version for Acorn systems. For more details, see the versions list.

Prebuilt listing files are available from the latest release page: https://github.com/tom-seddon/acorn_mos_disassembly/releases/latest - download the -lst zip.

I also occasionally upload updated copies to GitHub: https://github.com/tom-seddon/acorn_mos_disassembly/tree/master/dist (the files there may be outdated as this step is not automated).

Alternatively, you can create them yourself, following the building instructions.

Some notes about the listing files.

The goals of the disassembly are:

  1. Produce a useful listing file from the assembler, that's got all addresses and bytes listed, and enough comments that you can follow along

  2. Rationalize the (currently numerous) version checks in the code; initially added as needed to make all the versions build from the same source, ultimately they should be mostly replaced by feature flags, each version then choosing its own set

  3. Produce source files that are actually modifiable, with all label references and data-dependent constants located, and current assumptions documented with error or warning directives, facilitating addition or removal of code

history/contributors

The starting point was J. G. Harston's MOS 3.20 disassembly here: http://mdfs.net/Info/Comp/Acorn/Source/MOS.htm - this provided comments for several sections, identified many of the tables, and convinced me that this sort of project might actually be feasible.

https://tobylobster.github.io/mos/ has provided most comments and symbol names for the bits that haven't changed (or haven't changed much) since OS 1.20.

https://tobylobster.github.io/GXR-pages/index.html has provided symbol names for some of the bits similar to the the GXR ROM.

Robert Smallshire investigated the Master Compact joystick handling, documented here: https://blog.smallshire.no/blog/compact-joystick/acorn-bbc-master-compact-joystick/

the other MOS parts?

As well as the MOS code, the Master series ROMs usually included some additional software. Disassemblies or source code available for some versions of some of these.

About

WIP disassembly of Acorn MOS, operating system for Acorn's 8-bit Master series

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages