**8085 Memory 0000 ROM 4000 Scratchpad RAM (8155) 4000 shadow value port $78 4001 shadow value port $7C 4002 shadow value port $74, multibus upper address 4003 dma timeout flag, TRAP interrupt 4004 ptr, error handler function 4006 WUB, byte 0, extension 4007 CIB operation status 4008 CCB, Channel Control block address 400B CIB, Controler Invocation block address 400E IOPB address 4011 IOPB -> 8 4011 Device 4013 Unit 4014 Function 4015 Modifier 4017 Cylinder 4019 Head 401A Sector 401B Data buffer offset 401D Data buffer segment 401F Requested transfer count 4023 General address pointer offset 4025 General address pointer segment 4027 Error status buffer 4027 Hard Error status 4029 Soft Error status 402A Desired Cylinder 402C Desired Head and Volume 402D Desired Sector 402E Actual Cylinder and Flags 4030 Actual Head and Volume 4031 Actual Sector 4032 Number of Retries Attempted 4033 Extended Error Status (00-1F Hard error, 20-2F soft error byte 0, 30-3F soft error byte 1) 4034 winchester active unit ID 4035 winchester disk parameters (active unit), 0x11 bytes 4035 total number of cylinders 4037 fixed heads 4038 sectors per track 4039 number of alternate cylinders 403A disk class parameters, 6 bytes 403C cylinder threshold for Port C bit 3, precomp 403E cylinder threshold for Port C bit 2, reduced write current 4040 current cylinder and flags 4042 current head 4043 4046 winchester disk parameters (previous), 0x11 bytes 4057 floppy active unit ID 4058 floppy disk parameters (active unit), 0x10 bytes 2300 01 0F 01 DC05 4B 1E 32 04 00D0 00 00 FF 4058 total number of cylinders 405A heads 405B sectors per track 405C 00 single density, 01 double density 405D motor on delay time 405F head load time 4060 track step settle time 4061 seek settle time 4062 precomp cylinder threshold 4063 flags and current cylinder 4065 current head 4066 desired cylinder 4067 flag 4068 floppy disk parameters (previous), 0x10 bytes 4078 Sector ID 4078 Current Cylinder 407A Current Head, bits 2-0 407B Current Sector 407C Flags, bits 7-4 bits 7-6, track type 00 normal 01 assigned alternate 10 defective 11 invalid bits 5-4, bytes per sector 00 128 01 256 10 512 11 1024 407D R/W controller timeout count ? 407F delay count before drive select deasserted after command 4081 unit seek busy flags ? 4082 QIC2 Tape status, 6b bytes 4088 tape error status code 4089 tape status flags ? bit 0, tape unit present bit 1, read in progress ? bit 2, write in progress ? bit 3, write in progress, Online needs to be released when done bit 4, file mark detected ? bit 5, set when sending Space Reverse command bit 6 408A Data buffer (used for WUB, CCB, CIB, IOPB commands) for read/write 408A sector size 408C request transfer count, sectors requested 4090 request transfer count, sectors remaining 4094 request transfer count, partial sector size (read) 4096 partial sector, fill size (write) 4098 sectors per track - 1 4099 sector buffer offset, start, transferred bytes - sector size 409B sector buffer offset, end, for error status, ECC/CRC 409D R/W controller retries 409E R/W controller error status 409F 40A0 flag, sector increment/decrement 40A1 original Port A settings for read/write 40A2 current attempt, ECC/CRC bytes 40A6 previous attempt, ECC/CRC bytes 40AA sector buffer offset, bits, correction 40AC bytes for correction 40AF transfer pending flag 40B0 ptr to dma transfer function 40B2 even/odd flag of multibus address (40C2) 40B3 alignment, transfer size bit 0 ^ multibus address bit 0 40B4 multi block transfer flag, (40BC) != 0 40B5 last partial block transfer flag, (40B8) != 0 40B6 first partial block size (multibus buffer) (bytes) to boundary (40BA) block 40B8 last partial block size (transfer size (40C5) remainder) 40BA page / buffer size for transfer 40BC number of (40BA) size blocks for transfer 40C0 transfer block size of 8000 byte multibus page addressing limit 40C1 transfer block size of last multibus page 40C2 multibus address for DMA channel 1 40C5 requested transfer size 40C9 log2 of 40BA 40FF top of stack 5000 unmapped (?) 6000 Read/write controller 6000 write, sector ID (?), start command from Port A, bits 2-0 (?) read bit 2, sector error, error recovered (?) bit 1, tape (?) bit 0, busy (?) 6001 write, head (floppy) or flags and cylinder high (winchester) 6002 write, cylinder low 6003 write, head (winchester), flags (floppy) 7000 7000 tape interface data bus 7-0 8000 Multibus I/O access **8085 Interrupts TRAP, 8155 timer count RST7.5, multibus I/O / Wake Up (Start 01) RST6.5, tape exception RST5.5, unused/unhandled RESET, multibus I/O triggered (Reset 02) **8085 I/O 0x 8237 registers 1x 20 bit 7 bit 6, write protect, floppy bit 5, floppy, track 0 signal bit 4, floppy, index or drive status/ready (?) bit 2, write protect, winchester bit 1, track 0 signal, winchester bit 3 and bit 0, seek complete / unit ready 3x 4x 8155 registers 5x 60 buffer read/write data (?), post increments 64,68 (?) 64, 68 buffer dma address ? 6C, 70 buffer port 2 address ? 70 read, W6 jumper, inverted ? 7 not from jumper, tape interface, Ready 6 5 4-2 1-0 74 write, upper bits of Multibus address 78 bit 5, CR2 LED, inverted bit 4, CR1 LED, inverted (reset wake up address pointer for serial input?) bit 3, multibus address bit 15 bit 2, multibus interrupt pulse bit 1, multibus word alignment, set for partial word transfer, clear for transfer on word boundary bit 0, set for Read/Write Data, not set for Read/Write Buffer and Verify 7C bit 7, tape interface, Online bit 6, tape interface, Request bit 5, tape interface, Reset bit 4, R/W controller, write enable (?) bit 3 bit 2 bit 1, tape interface, XFER, cpu controlled or dma controlled (?) bit 0, tape interface, XFER (?) 8x 9x Ax Bx Cx Dx Ex Fx ** 8155 port A - Read/Write Controller, PLL write bits 7-6, sector size bit 5, used with command 6 bit 4, used with command 6 bit 3, used with command 6 bits 2-0 command/function 7, ? used disk command 40 6, controller self test 5, write deleted sector (?) 4, write sector 3, read deleted sector (?) 2, read sector 1, read sector ID / error status (?) 4 byte response floppy byte 0, cylinder byte 1, head byte 2, sector byte 3, flags, track/format type, sector size winchester byte 0, bits 7,6 track/format type bits 5,4 sector size bits 3-0 cylinder byte 1, cylinder byte 2, sector byte 3, head 0, format read bit 7 bit 6 bit 5 Data ECC / CRC error (?) bits 4,3, used as index for timer count (60, 1219, 29, 1218) bit 4 bit 3, 0 for floppy (set sector FF on new track), 1 for winchester (set sector 00 on new track) (?) bit 2, tape interface, ACK signal (?) bit 1 bit 0 port B bit 7, floppy motor on bit 6 bit 5, floppy, drive status/ready (?) bit 4, floppy, head/side select bit 6-4, write, head select (winchester) bits 3-0, write, drive select bit 3, floppy disk 1, seek in progress bit 2, floppy disk 0, seek in progress bit 1, winchester disk 1, seek in progress bit 0, winchester disk 0, seek in progress port C bit 7 bit 6 bit 5, pulse to clock next bit of wake up address (W7,W9) on serial input bit 4, cleared before write to port A, set after write, possible tape / rwc dma access sync. ? bit 3, precomp bit 2, reduce write current or head select 3, if available bit 1, direction in bit 0, pulse to step head timer signal TRAP interrupt on timeout/TC with TIMER OUT pin 8237 dma channel 0, used for tape interface read/write dma channel 1, used for multibus read/write, uses I/O 64,68 buffer dma address