Arcade Card info

hu, cd, scd, acd, supergrafx discussions.
Post Reply
FluBBa
Posts: 3
Joined: Mon Mar 08, 2010 8:01 pm

Arcade Card info

Post by FluBBa »

I didn't find much new info but it's good to be able to confirm what's already known.
The only unknown/undocumented register I figured out was 0x1AE5 which almost does what 0x1AE4 does but it rotates the shiftregisters instead of shifting them, eg. bits shifted out on end are inserted on the other end (without any immediate carry).
Also I couldn't get bit 7 of 0x1A09 to do anything, the bit always return 0 when read, some documents says it should toggle between byte operations and word operations.

Code: Select all

 The Arcade card is mapped to IO addresses 0x1A00-1AFF.
 It contains four sets of access registers at 0x1A00-1A0A, 0x1A10-1A1A,
 0x1A20-1A2A & 0x1A30-1A3A, a set of shift registers at 0x1AE0-1AE5 and some
 ID registers at 0x1AFC-0x1AFF which are readonly. All other addresses return
 0xFF when read.
 Bit 4 & 5 of address is which port, eg 0x1A10 has the same function as 0x1A00
 but a different port. It contains 2MByte RAM and a 32bit shift register.

 0x1A00/0x1A01 - AC_Memory access  (R/W)
  0x1A09 controls if base or offset is incremented after access, and if both
  offset and base are used to calculate address or only base.


 0x1A02 - AC_Base Address bit 0-7 (R/W)

 0x1A03 - AC_Base Address bit 8-15 (R/W)

 0x1A04 - AC_Base Address bit 16-23 (R/W)


 0x1A05 - AC_Offset Address bit 0-7 (R/W)
  (W) If bit 6 is 0 and bit 5 is 1 in 0x1A09, add offset to base.

 0x1A06 - AC_Offset Address bit 8-15 (R/W)
  (W) If bit 6 is 1 and bit 5 is 0 in 0x1A09, add offset to base.


 0x1A07 - AC_Increment Address bit 0-7 (R/W)

 0x1A08 - AC_Increment Address bit 8-15 (R/W)


 0x1A09 - AC_Control (R/W)
  Bit 7: Unknown/unused??? (some documents claim it's Data port size: 0=byte, 1=word)
  Bit 6 & 5: AC_ENABLE_OFFSET_BASE
		00: none
		01: add offset on low byte write (5)
		10: add offset on high byte write (6)
		11: add offset on write to A
  Bit 4 AC_INCREMENT_BASE, selects if base(1) or offset(0) is increased when bit 0 is set.
  Bit 3 Treat Increment reg as signed value.
  Bit 2 Treat Offset reg as signed value.
  Bit 1 AC_USE_OFFSET, use offset when accessing memory.
  Bit 0 AC_ENABLE_INC, should base/offset be increased after accessing memory.


 0x1A0A - Offset Addition (W)(Reading allways returns 0)
  If both bit 6 & 5 of $1A09 is set, add offset to base.



 0x1AE0 - Shift reg byte 0 (LSB) (R/W)
 0x1AE1 - Shift reg byte 1       (R/W)
 0x1AE2 - Shift reg byte 2       (R/W)
 0x1AE3 - Shift reg byte 3 (MSB) (R/W)


 0x1AE4 - Shift left value (R/W)
  Bit 0-3 two complent.
  Bit 4-7 allways return 0.

 When register is written all 4 bytes of the shiftreg are shifted.
 Values 1 to 7 shift the contents to the left, values 8 to 15
 shift the contents to the right (16-value).

 0x1AE5 - Rotate left value (R/W)
  Bit 0-3 two complent.
  Bit 4-7 allways return 0.

 When register is written all 4 bytes of the shiftreg are rotated.
 Values 1 to 7 shift the contents to the left, values 8 to 15
 shift the contents to the right (16-value).
 Bits shifted out of the top and bottom bytes are inserted at the other end.


 0x1AFC - unknown (R)
  Bit 0-7 Readable, allways return 0x00?

 0x1AFD - unknown (R)
  Bit 0-7 Readable, allways return 0x00?

 0x1AFE - Version number? (R)
  Bit 0-7 Readable, allways return 0x10?

 0x1AFF - Arcade card identification? (R)
  Bit 0-7 Readable, allways return 0x51?



The Arcade Card can also be access via banks 0x40-43.
Each and every byte in the bank is the same as the port of its corresponding
register (0x1Ay0). With this method you can use the TIA to transfer data from
the Arcade Card memory to the VDC(VRAM) directly and TAI from the VDC to AC
memory. You can also use this method to read from the CD directly to the
Arcade Card memory with the CD_READ function by using MPR argument with any
of the AC banks.

0x40 = Arcade Card port 0 register 0
0x41 = Arcade Card port 1 register 0
0x42 = Arcade Card port 2 register 0
0x43 = Arcade Card port 3 register 0
tomaitheous
Posts: 88
Joined: Mon Jun 23, 2008 1:58 pm

Re: Arcade Card info

Post by tomaitheous »

Do you mean this doc -> http://alexandria66.2mhost.com/~pcengin ... C_Regs.txt ???
This was taken from the source code of an ACD game and translated. The byte/word mode seems redundant as you can already setup to trigger increment/decrement on the second data port of the corresponding reg set. However, byte/word mode might effect logical access through banks $40-43. But I haven't done any tests.
Post Reply