module
16

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.
| MOS 1.2 | MOS 1.21 | 1.2 | 1.21 |
|---|---|---|---|
| 009Ch | 009Ch | LD A,27h (second write to port 11h at start-up) | LD A,15h |
| 0146h-0147h, 015Ch, 0166h | 0146h, 015Bh, 0165h-0166h | MOS 1.2 | MOS 1.21 (banner and message) |
| 0F4Bh-0F4Dh | 0F4Bh-0F50h | RRA / JR NC,0F49h | AND 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-1FFFh | 1FDFh-1FFFh | 46 unused bytes | 33 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.
| Call | 1.2 | 1.21 |
|---|---|---|
| 154 | 015Dh | 015Ch |
| 159 | 0F5Ch | 0F69h |
| 161 | 0F52h | 0F55h |
| 162 | 1CEBh | 1CF8h |
| 163 | 1CEEh | 1CFBh |
| 174 | 1E1Bh | 1E28h |
| 175 | 1DDCh | 1DE9h |
| 180 | 0F6Ah | 0F77h |
| 182-187 | 1E8Dh, 1EA2h, 1EA7h, 1EACh, 1EB1h, 1ECDh | each + 0Dh |
| 188 | 0FAEh | 0FBBh |
| 189 | 1E72h | 1E7Fh |
| 192 | 0F92h | 0F9Fh |
| 196-205 | 1893h ... 19B6h | each + 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.
This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.