Version 0.92 of the MOS is clearly much revised since 0.10. As the number suggests, it is closer to the official 1.00 release. There is an effort to minimise the size of the code to fit more features in. For example where 0.10 just included the OSBYTE routines pretty nearly in numerical order, here there is an effort to share code, making one routine fall through into the next routine where it can. Similarly data is shared with more tables overlapping each other to minimise size.
Changes from MOS 0.10 to MOS 0.92:
- ● Speech buffer added
- ● RS423 buffer decreased from 256 bytes to 192 bytes [to make room for the speech buffer?]
- ● Event numbers rearranged
- ● Removed clock time reached Event
- ● Removed output buffer insert event
- ● Added input buffer full event
- ● Added RS-423 error event
- ● Added Econet event
- ● Added User event
- ● Added ROM service calls (with reason codes)
- ● Added Tube service calls (with reason codes)
- ● Addresses of zero page and OS variables changed
- ● Bits in FS Status byte swapped around
- ● Vectors added for: - Events - User printer - Keyboard - Character insert - character remove - count/purge
- ● OSHWM calculated dynamically, not hardcoded
- ● Soft key consistency flag added (resets soft keys if BREAK pressed in the middle of them being written)
- ● Added OSBYTE 1 - Read/Write user flag
- ● Added OSBYTE 2 - select input stream
- ● Added OSBYTE 3 - Select output stream
- ● Added OSBYTE 13 - Disable events
- ● Added OSBYTE 14 - Enable events
- ● Added OSBYTE 17 - Start ADC conversions
- ● Added OSBYTE 18 - Reset soft keys
- ● Added OSBYTE 19 - Wait for vertical sync
- ● Added OSBYTE 20 - 'Explode' soft character definitions
- ● Added OSBYTE 21 - Flush specific buffer
- ● Added OSBYTE 118 - Set keyboard LEDs based on keyboard status
- ● Added OSBYTE 119 - Close Spool / Exec files
- ● Changed OSBYTE 120 - Write key pressed data (was OSBYTE 120 - Close any files being SPOOLed or EXECed)
- ● Added OSBYTE 121 - Keyboard scan from value in X
- ● Changed OSBYTE 122 - Keyboard scan from 16 decimal (was OSBYTE 122 - Set CAPS/SHIFT LOCK LED state)
- ● Changed OSBYTE 123 - Warn OS about printer going dormant (was OSBYTE 123 - Generate BRK)
- ● Changed OSBYTE 136 - Execute code via User Vector (*CODE) (was OSBYTE 136 - Do nothing)
- ● Changed OSBYTE 138 - Put byte into buffer (was OSBYTE 138 - Display filing system catalogue)
- ● Changed OSBYTE 141 - Select TAPE file system (was OSBYTE 141 - Insert byte A into buffer X)
- ● Changed OSBYTE 142 - Enter language ROM (at $8000) (was OSBYTE 142 - enumerate *KEY definitions)
- ● Changed OSBYTE 143 - Get number of *KEY definitions
- ● Changed OSBYTE 145 - Get byte from buffer (was OSBYTE 145 - Do nothing)
- ● Added OSBYTE 146 - Read a byte from FRED
- ● Added OSBYTE 147 - Write a byte to FRED
- ● Added OSBYTE 148 - Read a byte from JIM
- ● Added OSBYTE 149 - Write a byte to JIM
- ● Added OSBYTE 150 - Read a byte from SHEILA
- ● Added OSBYTE 151 - Write a byte to SHEILA
- ● Added OSBYTE 152 - Examine buffer status
- ● Added OSBYTE 153 - Put byte in input buffer
- ● Added OSBYTE 154 - Write to Video ULA's Video Control Register
- ● Added OSBYTE 155 - Set palette value
- ● Added OSBYTE 156 - Update ACIA Control Register and OS Copy
- ● Added OSBYTE 157 - Fast Tube BPUT
- ● Added OSBYTE 158 - Trigger Event
- ● Added OSBYTE 159 - Write byte to speech processor
- ● Added OSBYTE 160 - Read byte from speech processor
- ● Changed OSWORD 5 - Read a byte from I/O memory (was 5 - Read system clock B)
- ● Changed OSWORD 6 - Read a byte from I/O memory (was 5 - Read system clock A)
- ● Added OSWORD 13 - Read last two graphic cursor positions
- ● Many and substantial changes to the TAPE filing system
- ● Error 'Eof' changed to upper case 'EOF'
- ● System for extended vectors added (allowing e.g. filing system ROMs to intercept FS calls into their ROM)
- ● Removed OS entry points .BDSTRI/.BDADDR/.BDCOMM/.RSTIME/.CNTAPE/.OSEXEC/.OSSPLL/.OSINSE/.OSFLUS/.OSEXBF/.OSRDBF/.OSDBUG/.OSFSC, if indeed they were entry points.
- ● Added OS entry points .VDUCHR/.OSEVEN/.NVRDCH/.NVWRCH