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

Appendix IV: A Map of the ROM

MOS 1.2, 0000h-1FFFh, region by region. A map is only as useful as you can trust it, so every line says how it is known:

  • run - what the region does has been established by running code: a program, a monitor command, or a changed ROM whose effect appeared.
  • read - the region's bytes are certain (the source assembles to the ROM exactly) and its purpose is read from the code or its original name, but not demonstrated in this course.
  • open - code or data whose purpose this course does not describe.
RangeWhatKnown
0000h-0007hReset: first instructions after power-onrun
0008h-000AhRST 8: JP FXMONrun
0010h-0012hRST 10h: JP OUTCrun
0018h-001FhRST 18h, PRMZ: print the text that followsrun
0020h-0033hRST 20h, RST 28h, RST 30h: short video-chip routinesread
0034h-0037hfour bytes 01 02 04 08open
0038h-003ChRST 38h: JP BREAKread
0040h-007ChStart-up: fill memory, copy SCINIT, ZDFVCT, ZBANKZ to RAM, zero the clockrun
007Dh-00EChINITM: stack, I, interrupt mode 2, the first callsrun
00EDh-0170hStart-up messages and Readyrun
0171h-01F1hMONITR: the prompt loop, reading a line, finding a command, reading its numbersrun
01F2h-0203hMONDUN, ERRORrun
0204h-0281hBREAK: saving a program's registersrun
0282h-032BhFMTBL: 85 routine addresses (Appendix II)run
032Ch-05ADhMonitor command routines (Appendix III)run (A C D F H M T Z); read (others)
0498h-04E4hDisc messages: Disc:, No Drive, Not Ready, Bad Data, Protected, No Sectorread
05AEh-05F9hThe register display's headingsrun
05FAh-08CEhCall routines: GETLN 157, KEYIN 156, KSCAN 181, and othersrun (these three); open (others)
08CFh-0A67hControl-code routines: CRET 0Dh and others; NODSPrun (0Dh); read (others)
0A68h-0AA7hVDUTBL: 32 control-code routine addressesrun
0AA8h-0F18hScreen and video routines; the character set is sent to the video chip from 0DE6hrun (that it sends the set); open (the rest)
0F1Ah-0F46hOUTC (call 158) and PRMCHRrun
0F48h-0F96hSerial and printer routines (calls 159-161), and othersread
0F97h-0FADhPSGOUT, PSGOI, PSGIN: keyboard rows and columns through the sound chiprun
0FAEh-0FC1hCall 188open
0FC2h-0FE7hFXMON, FMC1, FMUSR: the call dispatcherrun
0FE8h-0FEFhEight bytes not used by the code this course describesopen
0FF0h-1035hSCINIT: copied to FB00h - interrupt table, small RAM routines (calls 177-179), starting valuesrun (the copy, the table address, the prompt)
1036h-1040hZDFVCT: copied to 0000h - JP FC22h at 0008hrun
1041h-10C4hZBANKZ: copied to FC09h - RST 8 with RAM in (FC22h), the clock (FC47h)run
10C5h-116ChKTAB: characters for each keyrun (Q)
116Dh-186ChPGTAB: the character set, codes 20h-FFhrun
186Dh-1CEAhGraphics routines (calls 196-205; call 200 draws a line) and a table at 1C00hread
1CEBh-1FD1hFurther call routines (162, 163, 174-189)open
1FD2h-1FFFh46 unused bytes (FFh)run

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.