Inside the Einstein: The MOS, a TatungBytes course: the MOS 1.2 start up screen on a rainbow sunburst
← Back to Modules
module
16

Appendix I: MOS 1.21 Against MOS 1.2

MOS 1.21 is MOS 1.2 with three edits. Everything from 0F4Bh onwards is 13 bytes (0Dh) higher in 1.21, and every address pointing there - in JP, CALL, LD, and the entries of FMTBL - is 0Dh larger to match. S13 tells the story; this is the full list.

The edits

MOS 1.2MOS 1.211.21.21
009Ch009ChLD A,27h (second write to port 11h at start-up)LD A,15h
0146h-0147h, 015Ch, 0166h0146h, 015Bh, 0165h-0166hMOS 1.2MOS 1.21 (banner and message)
0F4Bh-0F4Dh0F4Bh-0F50hRRA / JR NC,0F49hAND 05h / CP 05h / JR NZ,0F49h
-0F55h-0F58h-LD A,35h / OUT (11h),A
-0F61h-0F66h-PUSH AF / LD A,05h / OUT (11h),A / POP AF
1FD2h-1FFFh1FDFh-1FFFh46 unused bytes33 unused bytes

The routine at 0F48h is call 160; the second and third insertions are in call 161's routine, which starts at 0F52h in 1.2 and 0F55h in 1.21.

Table entries that differ

Call1.21.21
154015Dh015Ch
1590F5Ch0F69h
1610F52h0F55h
1621CEBh1CF8h
1631CEEh1CFBh
1741E1Bh1E28h
1751DDCh1DE9h
1800F6Ah0F77h
182-1871E8Dh, 1EA2h, 1EA7h, 1EACh, 1EB1h, 1ECDheach + 0Dh
1880FAEh0FBBh
1891E72h1E7Fh
1920F92h0F9Fh
196-2051893h ... 19B6heach + 0Dh

Entry 154 moves down one byte with the version text; entry 161 moves by three because its routine starts after the first insertion. Every other call keeps its routine's address.

Get the Newsletter

New guides, disk images and community finds, roughly once a quarter. No spam, we promise, this isn't Tatung's marketing department.
Your subscription could not be saved. Please try again.
Your subscription has been successful.

Newsletter

Subscribe to our newsletter and stay updated.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.