*************************************** * * EQUATES GS/OS DIRECT PAGE * (GS/OS MANUAL P. 350) * DEV_NUM = 0 CALL_NUM = DEV_NUM+2 BUF_PTR = CALL_NUM+2 SLIST_PTR = CALL_NUM+2 CLIST_PTR = CALL_NUM+2 ID_REF = BUF_PTR REQ_CNT = BUF_PTR+4 TRAN_CNT = REQ_CNT+4 BLK_NUM = TRAN_CNT+4 BLK_SIZE = BLK_NUM+4 FST_NUM = BLK_SIZE+2 STAT_CODE = FST_NUM CTRL_CODE = FST_NUM VOL_ID = FST_NUM+2 DRVR_CACHE = VOL_ID+2 CACHE_PTR = DRVR_CACHE+2 DIB_PTR = CACHE_PTR+4 * * DRIVER ERROR CODES * NO_ERROR = 0 DEV_NOT_FOUND = $10 INVALID_DEV_NUM = $11 BAD_REQ = $20 BAD_CODE = $21 BAD_PARM = $22 NOT_OPEN = $23 PRIOR_OPEN = $24 TABLE_FULL = $25 NO_RESRC = $26 IO_ERROR = $27 NO_DEV = $28 DRVR_BUSY = $29 WR_PROT = $2B BAD_COUNT = $2C BAD_BLOCK = $2D DISK_SW = $2E OFF_LINE = $2F INV_ACCESS = $4E RANGE_ERR = $53 NO_MEM = $54 DUP_VOLUME = $57 NO_BLOCKDEV = $58 STACK_OVFL = $5F DATA_UNAVAIL = $60 * * DIB EQUATES * LINK_PTR = $00 ENTRY_PTR = $04 DEV_CHAR = $08 BLK_CNT = $0A DEV_NAME = $0E SLOT_NUM = $2E UNIT_NUM = $30 VER_NUM = $32 DEV_ID_NUM = $34 HEAD_LINK = $36 FORWARD_LINK = $38 EXT_DIB_PTR = $3A DIB_DEV_NUM = $3E * * * OFFSETS IN FORMAT OPTION TABLE * F_BLKCNT = $0E ; FORMAT BLOCK COUNT FMT_IL = $14 ; FORMAT INTERLEAVE * * SYSTEM SERVICE TABLE EQUATES (GS/OS) * DEV_DISPATCHER = $1FC00 CACHE_FIND_BLK = $1FC04 CACHE_ADD_BLK = $1FC08 CACHE_DEL_BLK = $1FC14 CACHE_DEL_VOL = $1FC18 SET_SYS_SPEED = $1FC50 MOVE_INFO = $1FC70 SET_DISKSW = $1FC90 SUP_DRVR_DISP = $1FCA4 INSTALL_DRIVER = $1FCA8 DYN_SLOT_ARBITER = $1FCBC * * EQUATES FOR MOVE_INFO CALL * MOVEBLKCMD = $0800 MOVE_SINC_DINC = $0805 * MOVE_SINC_DDEC = $0809 MOVE_SDEC_DINC = $0806 MOVE_SDEC_DDEC = $080A * MOVE_SCON_DCON = $0800 MOVE_SINC_DCON = $0801 MOVE_SDEC_DCON = $0802 * MOVE_SCON_DINC = $0804 MOVE_SCON_DDEC = $0808 * * DMA & SPEED REGISTER * SPEEDREG = $C036 DMA_REG = $C037 INT_EN = $C041 ; INTERRUPT ENABLE REGISTER * * IDE Commands * RESTORCM = %00010000 SEEKCMD = %01110000 READCMD = %00100000 WRITECMD = %00110000 SCANCMD = %01000000 SET_MULT = $C6 ; MULTIPLE CMDS RMULTCMD = $C4 ; WMULTCMD = $C5 ; * * *************************************** * * IDE REGISTERS * (MicroDrive Basic & MicroDrive/Turbo) * Add SLOT*16 for actual position of the card * in the slots * DATA_REG = $C080 ; $00 16 BIT DATA REGISTER Addr 0 & 1 BANK_REG = $C082 ; $02 ROM & SCRATCH RAM BANK SELECT DMASTART = $C083 ; $03 DMA START WRITE ONLY D_ADDRLO = $C084 ; $04 DMA ADDRESS REG LOW D_ADDRHI = $C085 ; $05 " HIGH DMA_READ = $C086 ; $06 SOFTSWITCH DMA READ MODE DMA_WRIT = $C087 ; $07 " DMA WRITE MODE DIGI_REG = $C086 ; $06 DIGITAL OUTPUT REGISTER * * IRQ_REG = $C088 ; $08 IRQ - FLAG READ ONLY (Bit 7) WPRCONTR = $C089 ; $09 Write ERRORREG = $C089 ; $09 Read SECT_CNT = $C08A ; $0A RW SECT_REG = $C08B ; $0B RW CYL_LOW = $C08C ; $0C RW CYL_HIGH = $C08D ; $0D RW SDH_REG = $C08E ; $0E RW STAT_REG = $C08F ; $0F Read CMD_REG = $C08F ; $0F Write * ***************************************