Delta Tau GEO BRICK LV ユーザーズマニュアル
Turbo PMAC User Manual
Writing a Host Communications Program
399
I93 is an 8-bit value that specifies ISA bus address bits A23 – A16 for the DPRAM. Usually, it is
specified as a 2-digit hexadecimal value, and these two digits are the same as the first two digits of the
six-digit ISA hexadecimal address, $0D in the default case.
specified as a 2-digit hexadecimal value, and these two digits are the same as the first two digits of the
six-digit ISA hexadecimal address, $0D in the default case.
I94 is an 8-bit value that controls the addressing of the DPRAM over the ISA bus. If only a 16k x 8 block
is reserved for DPRAM, it also specifies ISA bus address bits A15 – A14. I94 usually is specified as a 2-
digit hexadecimal number.
If a 16k x 8 block of memory on the ISA bus is to be used for DPRAM, the first digit should be set to
equal the third digit of the six-digit base address. It can take a value of $0, $4, $8, or $C. For the default
base address of $0D4000, it should be set to 4. If a 64k x 8 block of memory is to be used, the first digit
should be set to 0.
The second digit represents the addressing mode. It should be set to 5 to use a 16k x 8 address space on
the ISA bus. It should be set to 4 to use a 64k x 8 address space.
is reserved for DPRAM, it also specifies ISA bus address bits A15 – A14. I94 usually is specified as a 2-
digit hexadecimal number.
If a 16k x 8 block of memory on the ISA bus is to be used for DPRAM, the first digit should be set to
equal the third digit of the six-digit base address. It can take a value of $0, $4, $8, or $C. For the default
base address of $0D4000, it should be set to 4. If a 64k x 8 block of memory is to be used, the first digit
should be set to 0.
The second digit represents the addressing mode. It should be set to 5 to use a 16k x 8 address space on
the ISA bus. It should be set to 4 to use a 64k x 8 address space.
For example, to use a 16k x 8 block of memory from $0EC000 to $0EFFFF on the ISA bus, I93 should be
set to $0E, and I94 should be set to $C5. To use a 64k x 8 block of memory from $0C0000 to $0CFFFF
on the ISA bus, I93 should be set to $0C, and I94 should be set to $04.
set to $0E, and I94 should be set to $C5. To use a 64k x 8 block of memory from $0C0000 to $0CFFFF
on the ISA bus, I93 should be set to $0C, and I94 should be set to $04.
To implement these settings and to hold them for future use, these I-variable values must be stored to
non-volatile flash memory with the SAVE command, and the card must be reset ($$$ command).
Resetting the card copies the saved values of I93 and I94 back into the I-variable registers in RAM, and
then into the active control registers at X:$070009 and X:$07000A, respectively.
non-volatile flash memory with the SAVE command, and the card must be reset ($$$ command).
Resetting the card copies the saved values of I93 and I94 back into the I-variable registers in RAM, and
then into the active control registers at X:$070009 and X:$07000A, respectively.
If a 16k x 8 block of memory has been used for the larger (32k x 16) DPRAM, the PC can view only one-
quarter of the DPRAM at a time. Following the instructions given above, this will be the first quarter
(lowest addresses on the PMAC side). To get at other parts of the DPRAM, a “bank select” process must
be used.
quarter of the DPRAM at a time. Following the instructions given above, this will be the first quarter
(lowest addresses on the PMAC side). To get at other parts of the DPRAM, a “bank select” process must
be used.
I94 can control the bank select with bits 1 and 3, but it is used only at power-on/reset, so it is not
appropriate for dynamic bank selection. Therefore, it is better to use the active control register at
X:$07000A directly. With the suggested M-variable definition of M94->X:$07000A,0,7, and I94 set as
suggested above to select Bank 0 at power-on/reset, the following equations can be used to select each of
the 4 banks (the vertical bar ‘|’ is the logical bit-by-bit OR operator):
appropriate for dynamic bank selection. Therefore, it is better to use the active control register at
X:$07000A directly. With the suggested M-variable definition of M94->X:$07000A,0,7, and I94 set as
suggested above to select Bank 0 at power-on/reset, the following equations can be used to select each of
the 4 banks (the vertical bar ‘|’ is the logical bit-by-bit OR operator):
M94=I94 | $00
; Bank 0 (PMAC addresses $060000 - $060FFF)
M94=I94 | $02
; Bank 1 (PMAC addresses $061000 - $061FFF)
M94=I94 | $08
; Bank 2 (PMAC addresses $062000 - $062FFF)
M94=I94 | $0A
; Bank 3 (PMAC addresses $063000 - $063FFF)
VME Bus Setup
The address setup of the DPRAM on the VME bus is integrated with the general VME setup, including
the mailbox registers, using variables I90 – I99.
the mailbox registers, using variables I90 – I99.
I90 controls the VME address modifier. It should be set to $39 for 24-bit addressing, or $09 for 32-bit
addressing.
addressing.
I91 controls the don’t care bits in the address modifier. Usually, it should be set to $04.
I92 controls the VME address bus bits A31 – A24 when using 32-bit addressing for both the mailbox
registers and the DPRAM. Usually, it is specified as two hex digits, and it should be the same as the first
two hex digits of the 32-bit address. For example, if the base address of the DPRAM were $18C40000,
I92 would be set to $18. When 24-bit addressing is set up, I92 is not used.
registers and the DPRAM. Usually, it is specified as two hex digits, and it should be the same as the first
two hex digits of the 32-bit address. For example, if the base address of the DPRAM were $18C40000,
I92 would be set to $18. When 24-bit addressing is set up, I92 is not used.
I93 controls the VME address bus bits A23 – A16 for the mailbox registers. Although it is possible for
these address bits to be the same for both the mailbox registers and the small DPRAM, usually they are
different.
these address bits to be the same for both the mailbox registers and the small DPRAM, usually they are
different.