Configuration cartridge

From NeoGeo Development Wiki
Revision as of 15:27, 26 June 2011 by Furrtek (talk | contribs) (1 revision: Import from wikkii)
Jump to navigation Jump to search

(Pointed out by ElBarto)

MVS boards are able to auto-configure theirselves by detecting and communicating with a special cartridge holding its own uPD4990, which may have been used during production to avoid tedious manual configuration through the regular MVS settings menu.

The MVS BIOS (SP-E at least), checks for the "NEO-CLN" string in the 68k program header in place of the usual "NEO-GEO" and makes various read/writes to the cartridge in the $200000~$2FFFFF range.

$280051 is used for writes:

Bit 7 6 5 4 3 2 1 0
Def STB?CLKDATA IN

Writes are 4 bits and sent serialy LSB first. STB is strobed when the 4 bits are written.

Bit 7 of $220001 is used for reads. Each new bit is clocked in using CLK.

Reading sequence

  • Send 3, wait (uPD4990 "Time Read")
  • Send 1 (uPD4990 "Register Shift")
  • Read and set BIOS_SECOND
  • Read and set BIOS_MINUTE
  • Read and set BIOS_HOUR
  • Read and set BIOS_DAY
  • Read and set BIOS_WEEKDAY, convert to BCD and set BIOS_MONTH
  • Read and set BIOS_YEAR
  • Read 4 bits
  • Copy RAM data to the board's uPD4990.

This sequence also matches the uPD4990's 52bit shift register format.

(What is that N,$00,O,$00,G,$00,O,$00 check after "NEO-CLN" ? 8bit bus ?)