Skip to content

Questions/comments about rambank<n>_size parameters for Power Macintosh xx00 models #183

@fdanapfel

Description

@fdanapfel

Running dingusppc list properties shows the following properties for the Power Macintosh 8500:

Power Macintosh 8500 supported properties:

       pci_A1		insert a PCI device into A1 slot
			Valid values: Any

       pci_B1		insert a PCI device into B1 slot
			Valid values: Any

       pci_C1		insert a PCI device into C1 slot
			Valid values: Any

  adb_devices		specifies which ADB device(s) to attach
			Valid values: Any

serial_backend		specifies the backend for the serial port
			Valid values: 'null', 'stdio', 'socket'

      cdr_img		specifies path(s) to CD-ROM image(s)
			Valid values: Any

      hdd_img		specifies path(s) to hard disk image(s)
			Valid values: Any

     cdr_img2		specifies path(s) to secondary CD-ROM image(s)
			Valid values: Any

     hdd_img2		specifies path(s) to secondary hard disk image(s)
			Valid values: Any

      fdd_fmt		specifies floppy disk format
			Valid values: '', 'GCR_400K', 'GCR_800K', 'MFM_720K', 'MFM_1440K'

      fdd_img		specifies path to floppy disk image
			Valid values: Any

  fdd_wr_prot		toggles floppy disk's write protection
			Valid values: on, off, ON, OFF

 gfxmem_banks		
			Valid values: 0, 1, 2, 3

  gfxmem_size		specifies video memory size in MB
			Valid values: 0, 2, 4

       mon_id		specifies which monitor to emulate
			Valid values: Any

        vci_D		insert a VCI device 0x0D
			Valid values: Any

        vci_E		insert a VCI device 0x0E
			Valid values: Any

has_composite		
			Valid values: on, off, ON, OFF

   has_svideo		
			Valid values: on, off, ON, OFF

          cpu		specifies CPU
			Valid values: '601', '604', '604e', '750'

         emmo		enables/disables factory HW tests during startup
			Valid values: on, off, ON, OFF

rambank0_size		specifies onboard RAM bank size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank10_size		specifies RAM bank 10 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank11_size		specifies RAM bank 11 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank12_size		specifies RAM bank 12 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank1_size		specifies RAM bank 1 size in MB
			Valid values: 4, 8, 16, 32, 64, 128

rambank2_size		specifies RAM bank 2 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank3_size		specifies RAM bank 3 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank4_size		specifies RAM bank 4 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank5_size		specifies RAM bank 5 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank6_size		specifies RAM bank 6 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank7_size		specifies RAM bank 7 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank8_size		specifies RAM bank 8 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

rambank9_size		specifies RAM bank 9 size in MB
			Valid values: 0, 4, 8, 16, 32, 64, 128

Are the rambank<n>_size parmeters supposed to match the RAM slots in the real hardware?

If that is supposed to be the case, then the listedrambank<n>_size parameters don't match.

As you can see at https://support.apple.com/en-gb/112060 the Power Macintosh 8500 only has 8 RAM slots and no onboard memory.

Therefore I think there should only be rambank<1>_size to rambank<8>_size parameters for this model (only the 9x00 models had 12 RAM slots: https://support.apple.com/en-gb/112048)

Looks like the rambank_size parameters are derived from the definitions for the PowerMacintosh 7500 in

static const PropMap pm7500_settings_ ## cpu = { \

(which are also wrong; as you can see at https://support.apple.com/en-us/112073 the PM7500 also has no onboard memory and only 8 RAM slots)

By looking at the code I also found out that there is apparently a default value defined for rambank1_size:

{"rambank1_size" , new IntProperty(16, std::vector<uint32_t>({ 4, 8, 16, 32, 64, 128}))}, \

Maybe this could be mentioned in the properties, otherwise people might get confused if they set values for other rambank<n>_size parameters and then alway end up with an extra 16MB (on the real hardware it is not necessary to always have a DIMM in RAM slot 1 btw.).

Also, is interleaving supported like on real hardware. I. e. if I specify a value for rambank1_size and rambank5_size, will the OS see it as interleaved memory?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions