Main Index

  +---------------------------------------------------------------------------------------------------------
  |
  | RapidLok6 Memory Index
  |
  +---------------------------------------------------------------------------------------------------------
  |
  | Zeropage:
  |
  |   $00-$05       1541: Command code for buffer 0-5
  |   $06-$11       1541: Track and sector for buffer 0-5
  |   $12-$13       1541: Disk ID, drive 0
  |   $15           Default offset to start of file data in [$0400] buffer
  |   $16-$17       1541: Header block: ID
  |   $1D           Synchronization value (Track-to-Track / Track 36)
  |   $22           1541: Current track for drive 0
  |   $23           ID of sector to find & read
  |   $24-$26       Temp variables for decryptions
  |   $29-$2A       Data byte read from $6B data sector
  |   $30-$31       Buffer pointer for file transfer
  |   $38-$39       1541: Constants 7/8, ID mark for start of data/block block
  |   $3A           1541: Parity for data buffer
  |   $3E           1541: Active drive ($FF, if not active)
  |   $77-$78       Start track & sector ID of file to find & read (encrypted)
  |   $79           Number of parameters to copy in $0587 routine (negative, usually $FD=-3)
  |   $7A           Offset pointer for file transfer parameters
  |   $7B           File transfer of very first data sector starts in buffer [$7B*$100]
  |   $85           Loop variable for Key decryption
  |   $9D           1541: Pointer: Next byte in buffer 0-5 [0300-0700]
  |   $B5-$B6       "M-W" body; Number of bytes left to be transferred to C64-client
  |   $B7           "M-W" body; File transfer complete / additional shadow files there?
  |   $B8-$BA       "M-W" body, dummy
  |   $BB           "M-W" body; Control byte for head recalibration onto Track
  |   $BC           "M-W" body, dummy
  |   $BD           "M-W" body; Value =6 when used for locating DOS reference sector
  |   $BE-$BF       "M-W" body; Tries to find $6B data sector & Track 36 Key decryption loop variables
  |   $C0-$C1       "M-W" body, dummy
  |   $C2           "M-W" body; Start/working/end Track of file to read & transfer
  |   $C3-$C4       "M-W" body, dummy
  |   $C5           "M-W" body; Number of tries to find short extra sector on Track (usually $18)
  |   $C6           "M-W" body; Number of tries for head repositioning onto Track (usually 9)
  |   $C7-$C9       "M-W" body; Keys for RapidLok routine decryption [$039C-$07FF]
  |   $D4           Max errors before loader dies (initial value 4)
  |   $D5           Temp storage for $6B data sector parity calculation (& Track 36 decryption)
  |   $D6-$D7       Start track & sector ID of file to find & read
  |   $E7           Number of tries to find $6B data sectors (usually 9)
  |
  | Extended Zeropage:
  |
  |   $0150         Synchronization value (Track-to-Track) / Track 36 Key Sector length
  |   $0151         1st file to be loaded from disk: [$0151]=0, else summary of "Header block ID"
  |   $0152-$01D1   Track 36 Key Sector
  |   $0290         1541: Directory sector
  |   $0294         1541: Current buffer-index
  |   $02A9         ???
  |   $038A-$038B   ??? (not used?, RL6 code area)
  |   $038C-$03FF   C64-client: Exit routines + general loading loop
  |   $071F-$0722   Number of steps for Step motor movement
  |   $0723-$0724   ??? (not used?, RL6 code area)
  |
  | VIA 1 (Serial Bus):
  |
  |   $1800         Data Port B (ATN, CLOCK, DATA, Device #)
  |   $1805         Timer 1 High-Byte (Timeout Errors)
  |
  | VIA 2 (Motor and Head Control):
  |
  |   $1C00         Data Port B (SYNC, Motors, Bit Rates, LED)
  |   $1C01         Data Port A (Data to/from head)
  |   $1C05         Timer 1 High-Byte (IRQ Timer)
  |   $1C07         Timer 1-Latch High-Byte (IRQ Timer)
  |   $1C0C         Peripheral Control Register
  |
  +---------------------------------------------------------------------------------------------------------