Acorn Cassette Operating System - COS

"This is a 2K byte program providing support for other programs by dealing with peripherals and allowing programs to be filed on cassette tape. It supports Acorn's Teletext VDU, a parallel ASCII keyboard and a Centronics style parallel printer via a VIB."

(VIB refers to the Versatile Interface Board)

I have an original COS ROM and have in the past disassembled this and recently converted it to .ca65 format.

 

The original ROM was for use with the 40x25 (Teletext) VDU, it automatically detects if the 6845 CRTC is an early MC6845 type or later MC6845*1 type or equivalent and configures the CRTC appropriately, I have called this COS40.  When an MC6845*1 or equivalent is detected 'Interlaced Video and Sync Mode' is used which I have found produces a better result.  It is difficult to find an actual MC6845*1 type device, equivalent Hitachi parts are more widely available e.g. HD6845R/S or HD46505SP* beware though that there are many fake parts around particularly those 'marked' HD46505SP-2 from China which I have found behave just as plain old MC6845 !

 

 I have modified the source code to also include CRTC configurations for the 80x25 VDU, there is a choice of two configurations:
The first, COS80A, uses the register values as detailed in the System 5 Manual.  This works however I have produced a slightly modified configuration, COS80B, which works better with some monitors and VGA/HDMI video converters.  It has a corrected Horizontal Sync Pulse Width, closer to the PAL standard (4.7uS), a shorter Vertical Sync Pulse Width (the same as the BBC Computer's Mode 3) and the screen is moved slightly to the right so that it matches the 40x24 (Teletext) VDU avoiding the need to adjust monitors/video converters when switching computers.


Here are the differences:
Register R2 'Horizontal Sync Position': original value $66, modified value $60 - moves the screen right.
Register R3 '(Horizontal) Sync Pulse Width': original value $62, modified value $28 - Horizontal Sync Pulse Width 4uS, Vertical Sync Pulse Width 128uS.


As the code for only the 40x25 configurations or one of the 80x25 configurations will fit in the EPROM a 'switch' allows a version to be assembled to suit.
 

Source code (ca65 format)

 

Manual (see chapter 6)

 

COS40 for the 40x25 (Teletext) VDU

Listing file

Object code (binary)

Object code (Intel HEX)

 

COS80A for the 80x25 VDU, original System 5 configuration

Listing file

Object code (binary)

Object code (Intel HEX)

 

COS80B for the 80x25 VDU, modified configuration

Listing file

Object code (binary)

Object code (Intel HEX)

Oracle Microsystems COS

Whilst a student in the early 1980's I produced my own add-on for the System 2 COS:

Source code (ca65 format)

Listing file

Object code (binary)

Object code (Intel HEX)

Manual (to follow)

Home