Package libsidplay

Klasse C64.ZeroRAMBank

Umschließende Klasse:
C64

protected class C64.ZeroRAMBank extends Bank
Area backed by RAM, including cpu port addresses 0 and 1. This is bit of a fake. We know that the CPU port is an internal detail of the CPU, and therefore CPU should simply pay the price for reading/writing to 0/1. However, that would slow down all accesses, which is suboptimal. Therefore we install this little hook to the 4k 0 region to deal with this.
Autor:
Antti Lankila
  • Feldübersicht

    Felder
    Modifizierer und Typ
    Feld
    Beschreibung
    private static final long
    $01 bits 6 and 7 fall-off cycles (1->0), average is about 350 msec
    private byte
     
    private boolean
    indicated if the unused bits are in the process of falling off.
    private boolean
     
    private byte
    State of processor port pins.
    private byte
    Value read from processor port.
    private boolean
    indicates if the unused bits of the data port are still valid or should be read as 0, 1 = unused bits valid, 0 = unused bits should be 0
    private boolean
     
    private long
    cycle that should invalidate the unused bits of the data port.
    private long
     
    private byte
    Value written to processor port.
    private byte
    Tape motor status.
    private byte
    Tape write line status.
  • Konstruktorübersicht

    Konstruktoren
    Modifizierer
    Konstruktor
    Beschreibung
    protected
     
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    byte
    read(int address)
    Bank read.
    void
     
    private void
     
    void
    write(int address, byte value)
    Bank write.

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Felddetails

    • dir

      private byte dir
      Value written to processor port.
    • data

      private byte data
    • dataRead

      private byte dataRead
      Value read from processor port.
    • dataOut

      private byte dataOut
      State of processor port pins.
    • C64_CPU_DATA_PORT_FALL_OFF_CYCLES

      private static final long C64_CPU_DATA_PORT_FALL_OFF_CYCLES
      $01 bits 6 and 7 fall-off cycles (1->0), average is about 350 msec
      Siehe auch:
    • dataSetClkBit6

      private long dataSetClkBit6
      cycle that should invalidate the unused bits of the data port.
    • dataSetClkBit7

      private long dataSetClkBit7
    • dataSetBit6

      private boolean dataSetBit6
      indicates if the unused bits of the data port are still valid or should be read as 0, 1 = unused bits valid, 0 = unused bits should be 0
    • dataSetBit7

      private boolean dataSetBit7
    • dataFalloffBit6

      private boolean dataFalloffBit6
      indicated if the unused bits are in the process of falling off.
    • dataFalloffBit7

      private boolean dataFalloffBit7
    • oldPortDataOut

      private byte oldPortDataOut
      Tape motor status.
    • oldPortWriteBit

      private byte oldPortWriteBit
      Tape write line status.
  • Konstruktordetails

    • ZeroRAMBank

      protected ZeroRAMBank()
  • Methodendetails

    • reset

      public void reset()
    • updateCpuPort

      private void updateCpuPort()
    • read

      public byte read(int address)
      Beschreibung aus Klasse kopiert: Bank
      Bank read. Default throws a RuntimeException, so you probably should override this method, except if the Bank is only used in write context.
      Setzt außer Kraft:
      read in Klasse Bank
      Parameter:
      address - value to read from
      Gibt zurück:
      value at address
    • write

      public void write(int address, byte value)
      Beschreibung aus Klasse kopiert: Bank
      Bank write. Default throws a RuntimException. Override this method if you expect write operations on your bank. Leave unimplemented if it's logically/operationally impossible for writes to ever arrive to bank.
      Setzt außer Kraft:
      write in Klasse Bank
      Parameter:
      address - address to write to
      value - value to write