Coder Social home page Coder Social logo

acorn_1770_dfs_disassembly's Introduction

Disassembly of several versions of Acorn 1770 DFS. This project is based on Greg Cook's disassembly of DFS 2.24.

Goals

Goals:

  • size up feasibility of adding additional stuff to Greg's ROM: B/B+ compatibility (including utils commands, Tube host, and fancy B+128 boot message), and any fixes or whatever from later DFS versions that would be good to have. (These updates would be expressed as additions to Greg's DFS 2.24 disassembly, similar to the existing build options)

Non-goals:

  • particularly readable source code (sorry!) - I just added in .ifs as required, hopefully the minimum number necessary
  • discovery of feature flags or code progression between versions - the various versions are selected by individual bools
  • addition of significant additional comments not already found elsewhere

Versions covered

Greg's disassembly covers the DFS supplied with the Master 128:

  • DFS 2.24 (part of MOS 3.20)

I've added some additional stuff for the B+ version. The DFS code is largely similar to DFS 2.24, and there's also some additional code for Tube (previously investigated - see links in source), UTILS (comments and labels copied from original DFS 1.20 code), and B+ fancy startup message.

  • DFS 2.26 (last B/B+/B+128-compatible version)

I also filled in some code to make it build the following other versions, which were supplied (whether on disk or ROM) with official Acorn hardware. These versions are a lot scrappier, but hopefully code vs data and all relevant labels and references have been captured.

  • DFS 2.25 (supplied on Master Compact welcome disk)
  • DFS 2.29 (patched version supplied on Master 128 welcome disk)
  • DFS 2.45 (part of MOS 3.50)

Build

Prerequisites

  • Python 3.x

On Unix:

  • 64tass (I use r3120)
  • GNU Make

(Prebuilt Windows EXEs for 64tass and make are included in the repo.)

git clone

This repo has submodules. Clone it with --recursive:

git clone --recursive https://github.com/tom-seddon/acorn_1770_dfs_disassembly

Alternatively, if you already cloned it non-recursively, you can do the following from inside the working copy:

git submodule init
git submodule update

(The code won't build without fiddling around if you download one of the archive files from GitHub - a GitHub limitation. It's easiest to clone it as above.)

Build steps

Type make from the root of the working copy.

The build process is supposed to be silent when there are no errors.

The output is 5 ROM images, as per the list above:

  • build/dfs224.bin - DFS 2.24
  • build/dfs225.bin - DFS 2.25
  • build/dfs226.bin - DFS 2.26
  • build/dfs229.bin - DFS 2.29
  • build/dfs245.truncated.bin - DFS 2.45 (incomplete - additional MOS and ADFS code is not included)

The repo includes original ROM images for all of the above and the build process checks that the build output matches.

More DFS versions

List of DFS versions: https://mdfs.net/System/ROMs/Filing/Disk/Acorn/versions

dir-locals.el

((nil . ((compile-command . "cd ~/beeb/acorn_dfs_2.26_disassembly && make tom_laptop"))))

acorn_1770_dfs_disassembly's People

Contributors

tom-seddon avatar

Watchers

 avatar

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.