public class REU extends Cartridge
16 MB RAM Expansion Unit emulation. No REU of this size was ever produced, but 1541U and VICE nevertheless can emulate one.
The real REUs that were manufactured had the following sizes:
We are not emulating the wrap-around features of the REU chips yet. We are emulating a fictional REU with full 8-bit wide BANK register. We do emulate the verify-related bugs.
REU images are pure RAM dumps with no internal structure.
Modifier and Type | Class and Description |
---|---|
protected class |
REU.DMAEvent |
Cartridge.CRTType
Modifier and Type | Field and Description |
---|---|
protected byte |
addrControl
Misc.
|
protected boolean |
ba
Current state of the bus available signal
|
protected int |
baseAddr
DMA operation C64 address
|
protected byte |
command
Misc.
|
protected boolean |
dmaActive
REU currently actively performing DMA
|
protected Event |
dmaEndEvent |
protected REU.DMAEvent |
dmaEvent |
protected short |
dmaLen
DMA operation length
|
protected boolean |
ff00
Is FF00 REU DMA trigger enabled
|
protected byte |
interrupt
Misc.
|
protected byte[] |
ram
REU RAM region (max. 16 MB)
|
protected int |
ramAddr
DMA operation REU address
|
protected libsidplay.components.cart.supported.REU.Command |
reuOperation
Currently active command
|
protected int |
shadowBaseAddr
DMA operation C64 address
|
protected short |
shadowDmaLen
DMA operation length
|
protected int |
shadowRamAddr
DMA operation REU address
|
protected byte |
status
Misc.
|
protected static int |
wrapAround
AND mask depends of the RAM expansion size.
|
Constructor and Description |
---|
REU(DataInputStream dis,
PLA pla,
int sizeKB) |
Modifier and Type | Method and Description |
---|---|
protected void |
beginDma() |
void |
changedBA(boolean state)
Callback to notify cartridge of current state of BA signal on the system bus.
|
Bank |
getIO2()
Acquire the IO2 bank.
|
void |
installBankHooks(Bank[] cpuReadMap,
Bank[] cpuWriteMap)
If the cartridge needs to listen to write activity on specific banks, it can
install the requisite hooks into the bank here.
|
protected void |
interrupt()
REU interrupt enable/disable
|
void |
reset()
Bring the cart to power-on state.
|
String |
toString() |
changedIRQ, changedNMI, create, doFreeze, freeze, getIO1, getRomh, getRoml, getUltimaxMemory, nullCartridge, read, readCRT, setIRQ, setNMI
protected static int wrapAround
protected boolean dmaActive
protected byte[] ram
protected boolean ba
protected boolean ff00
protected byte status
protected byte command
protected byte interrupt
protected byte addrControl
protected int baseAddr
protected int shadowBaseAddr
protected int ramAddr
protected int shadowRamAddr
protected short dmaLen
protected short shadowDmaLen
protected libsidplay.components.cart.supported.REU.Command reuOperation
protected final REU.DMAEvent dmaEvent
protected final Event dmaEndEvent
public REU(DataInputStream dis, PLA pla, int sizeKB) throws IOException
IOException
protected void interrupt()
public void reset()
Cartridge
public void changedBA(boolean state)
Cartridge
public void installBankHooks(Bank[] cpuReadMap, Bank[] cpuWriteMap)
Cartridge
installBankHooks
in class Cartridge
protected void beginDma()
Copyright © 2018 Ken Händel. All rights reserved.