Acorn MOS

Versions 0 to 2 of the MOS were 16 KiB in size, written in 6502 machine code, and held in read-only memory (ROM) on the motherboard.

Versions 3 to 5 were still restricted to a 16 KiB address space, but managed to hold more code and hence more complex routines, partly because of the alternative 65C102 central processing unit (CPU) with its denser instruction set plus the careful use of paging.

The original MOS versions, from 0 to 2, did not have a user interface per se: applications were expected to forward operating system command lines to the OS on its behalf, and the programming language BBC BASIC ROM, with 6502 assembler built in, supplied with the BBC Micro is the default application used for this purpose.

MOS version 3 onwards did feature a simple command-line interface, normally only seen when the CMOS memory did not contain a setting for the default language ROM.

Application programs on ROM, and some cassette and disc-based software also, typically provide a command line, useful for working with file storage such as browsing the currently inserted disc.

[4] Alternatively, the OSCLI routine may be invoked directly using the CALL keyword after initialising the relevant BASIC variables.

The lower 16 KiB of the ROM map (0x8000 to 0xBFFF) is reserved for the active Sideways address space paged bank.

The Sideways system on the BBC Micro allows for one ROM at a time from sockets on the motherboard (or expansion boards) to be switched into the main memory map.

The MOS permits textual output intended for the screen to be directed instead to the printer, or both at once, allowing for very trivial printing support for plain text.

Other graphic functions – such as horizontal line fill bounded by a given colour – were available by use of undocumented or poorly documented command codes.

This allowed a programmer to allocate a block of memory from BASIC – for example to load machine code routines into – by lowering the value of HIMEM at the start of a program, and still be free to switch screen modes without deallocating it as a side effect.

Switching video resolution will not affect the shape, size or position of graphics drawn even with completely different pixel metrics in the new mode, because this is all accounted for by the OS.

OSASCI forwards all characters directly to OSWRCH except for carriage return, which triggers a call to OSNEWL instead.

The precise code for OSASCI and OSNEWL – five lines of 6502 assembler – is documented in the BBC Micro User Guide.

There is only one waveform for melodic channels; the supported note parameters are pitch, duration, amplitude, envelope selection and various control options.

The BBC Micro had support for a second processor connected via the Tube, which allowed direct access to the system bus.

The driver code for the Tube interface is not held in the MOS, usually being supplied by an external service ROM.

The OS has calls to handle reading and writing to all I/O (ports and screen memory) and programmers are strongly advised to use these by the Acorn documentation.

However, for the sake of performance, many apps including many games, write directly to main address space for I/O, and hence crash or give a blank screen if a 6502 second processor is attached.

Second processor units were expensive and very little software was written to make use of them, so few people bought them, and those who did have them could simply switch them off or unplug the cable if a problem arose.

They feature a rudimentary copy protection mechanism where a file with a certain flag set cannot be loaded except to execute it.

This version is for the BBC Model B+, essentially the same as MOS 1.20 except with the addition of support for the sideways and shadow RAM present on the B+.

[12] The full text of the ASCII credits string in MOS 1.20 is as follows; no spaces occur after the commas to save memory: (C) 1981 Acorn Computers Ltd.Thanks are due to the following contributors to the development of the BBC Computer (among others too numerous to mention):- David Allen,Bob Austin,Ram Banerjee,Paul Bond,Allen Boothroyd,Cambridge,Cleartone,John Coll,John Cox,Andy Cripps,Chris Curry,6502 designers,Jeremy Dion,Tim Dobson,Joe Dunn,Paul Farrell,Ferranti,Steve Furber,Jon Gibbons,Andrew Gordon,Lawrence Hardwick,Dylan Harris,Hermann Hauser,Hitachi,Andy Hopper,ICL,Martin Jackson,Brian Jones,Chris Jordan,David King,David Kitson,Paul Kriwaczek,Computer Laboratory,Peter Miller,Arthur Norman,Glyn Phillips,Mike Prees,John Radcliffe,Wilberforce Road,Peter Robinson,Richard Russell,Kim Spence-Jones,Graham Tebby,Jon Thackray,Chris Turner,Adrian Warner,Roger Wilson,Alan Wright.In interviews in 1993 and 2001, Acorn cofounder Hermann Hauser recounted that Microsoft's Bill Gates had tried to sell MS-DOS to Acorn, but Hauser considered that adopting MS-DOS would have been a "retrograde step" compared to retaining Acorn's system.