56 lines
2.1 KiB
ArmAsm
56 lines
2.1 KiB
ArmAsm
|
|
// 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
|