// Registers according to Ultimate 64 Command Interface description, // https://1541u-documentation.readthedocs.io/en/latest/command%20interface.html // and ultimate_dos_v1.0.pdf and command_interface_v1.0.pdf by Gideon Zweijtzer // Command interface registers .label U64_CONTROL_STATUS = $DF1C // write = CONTROL, read = STATUS .label U64_COMMAND_DATA_IDENTIFY = $DF1D // write = COMMAND_DATA, read = IDENTIFICATION .label U64_RESPONSE_DATA = $DF1E // read only .label U64_STATUS_DATA = $DF1F // read only // Constant for U64_IDENTIFICATION register .const U64_MAGIC_ID = $C9 // Constants for U64_CONTROL register .const U64_CTRL_BIT_PUSH_CMD = $01 .const U64_CTRL_BIT_DATA_ACC = $02 .const U64_CTRL_BIT_ABORT = $04 .const U64_CTRL_BIT_CLR_ERR = $08 // Constants for U64_STATUS register .const U64_STAT_BIT_CMD_BUSY = $01 .const U64_STAT_BIT_DATA_ACC = $02 .const U64_STAT_BIT_ABORT_P = $04 .const U64_STAT_BIT_ERROR = $08 .const U64_STAT_MASK_STATE = $30 // two bits! .const U64_STAT_BIT_STAT_AV = $40 .const U64_STAT_BIT_DATA_AV = $80 // Interface targets .const U64_TARGET_DOS1 = $01 .const U64_TARGET_DOS2 = $02 // DOS command codes .const U64_DOS_CMD_IDENTIFY = $01 .const U64_DOS_CMD_OPEN_FILE = $02 .const U64_DOS_CMD_CLOSE_FILE = $03 .const U64_DOS_CMD_READ_DATA = $04 .const U64_DOS_CMD_WRITE_DATA = $05 .const U64_DOS_CMD_FILE_SEEK = $06 .const U64_DOS_CMD_FILE_INFO = $07 .const U64_DOS_CMD_CHANGE_DIR = $11 .const U64_DOS_CMD_GET_PATH = $12 .const U64_DOS_CMD_OPEN_DIR = $13 .const U64_DOS_CMD_READ_DIR = $14 .const U64_DOS_CMD_COPY_UI_PATH = $15 .const U64_DOS_CMD_LOAD_REU = $21 .const U64_DOS_CMD_SAVE_REU = $22 .const U64_DOS_CMD_ECHO = $F0 // DOS file opening constants .const U64_FA_READ = $01 .const U64_FA_WRITE = $02 .const U64_FA_CREATE_NEW = $03 .const U64_FA_CREATE_ALWAYS = $04