Memory Map - retrotruestory/M1DEV GitHub Wiki

When M-1 boots, it comes up in supervisor mode, paging off and interrupts disabled. When paging is off, all memory accesses are done to device memory, and code and data addresses map to the same physical address space (0x0000 through 0xFFFF). From 0x0000 to 0x3FFF is either ROM or RAM, depending on a front panel switch. From 0x4000 to 0x7FFF is always RAM. The top 128 bytes are decoded into 16-byte device control blocks. They are allocated as follows:

  • 0xFFF0-0xFFFF: UART #0
  • 0xFFE0-0xFFEF: UART #1
  • 0xFFD0-0xFFDF: Real time clock
  • 0xFFC0-0xFFCF: 2-digit hex display
  • 0xFFB0-0xFFBF: IDE interface
  • 0xFFA0-0xFFAF: Front panel switch block
  • 0xFF90-0xFF9F: unassigned
  • 0xFF80-0xFF8F: unassigned