Address | R/W | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FCh | R/W | Disk subsystem I/F 8255 port A In the standard state, it is a data reception port from the subsystem. |
||||||||||||||||||||||||||||||||||||||||||||||||||
FDh | R/W | Disk subsystem I/F 8255 port B In the standard state, it is a data transmission port to the subsystem. |
||||||||||||||||||||||||||||||||||||||||||||||||||
FEh | R/W | Disk subsystem I/F 8255 port C
|
||||||||||||||||||||||||||||||||||||||||||||||||||
FFh | W | Disk subsystem I/F 8255 control |
Label | Address | Function | |
---|---|---|---|
N88 | N | ||
PUTCOM | 37CCh | 017Ch | Send the contents of the A register as a command to the subsystem |
PUTDAT | 37D2h | 0183h | Send the contents of the A register to the subsystem |
GETDAT | 3847h | 01E9h | Return the data received from the subsystem to the A register |
<Drive number> | 0..1 |
<Track number> | 0..79 |
<Sector number> | 1..16 (2D) |
Command number | 00h |
---|---|
Function name | Initialize |
Command format | Host ¨ Sub: <00h> |
Function |
Turn on the drive motor, reset the FDC, return the head to the initial position, and do not change the drive operation mode (duplex/single-sided) and read-after-write check mode. |
Command number | 01h |
---|---|
Function name | Write Data |
Command format | Host ¨ Sub: <01h> <Number of sectors> <Drive number> <Track number> <Sector number> <Data stream...> |
Function | Write data sent from the host to disk. |
Command number | 02h |
---|---|
Function name | Read Data |
Command format | Host ¨ Sub: <02h> <Number of sectors> <Drive number> <Track number> <Sector number> |
Function |
Read data from the specified sector and stores it in the subsystem's buffer. To obtain the data, the host must execute the Send Data command in succession. |
Command number | 03h |
---|---|
Function name | Send Data |
Command format |
Host ¨ Sub: <03h> Sub ¨ Host: <Data stream...> |
Function | Transfer the data of the size read by the previous Read Data command to the host. |
Command number | 04h |
---|---|
Function name | Copy |
Command format | Host ¨ Sub: <04h> <Number of sectors> <Drive number 1> <Track number 1> <Sector number 1> <Drive number 2> <Track number 2> <Sector number 2> |
Function | Copy sector contents sector by sector. |
Command number | 05h |
---|---|
Function name | Format |
Command format | Host ¨ Sub: <05h> <Drive number> |
Function | Format the disk. |
Command number | 06h |
---|---|
Function name | Send Result Status |
Command format |
Host ¨ Sub: <06h> Sub ¨ Host: <Status> |
Function |
The execution result of the command sent just before is transmitted to the main side. If the 0th bit of the result status is 1, there is an error. If the 6th bit is 1, there is data in the read buffer. If the 7th bit is 1, the I/O operation is finished. |
Command number | 07h |
---|---|
Function name | Send Drive Status |
Command format |
Host ¨ Sub: <07h> Sub ¨ Host: <Status> |
Function | Bits 7 to 4 of the drive status indicate the connection status of the drive. |
Command number | 08h |
---|---|
Function name | Test Memory |
Command format |
Host ¨ Sub: <08h> Sub ¨ Host: <Status> |
Function |
Perform subsystem memory tests: 80h: OK 81h: Not good |
Command number | 09h |
---|---|
Function name | Send Memory |
Command format |
Host ¨ Sub: <09h> <Start address H> <Start address L> <End address H> <End address L> Sub ¨ Host: <Data stream...> |
Function | Transfer subsystem memory content to host. |
Command number | 0Ah |
---|---|
Function name | Outmargin Support |
Command format | Host ¨ Sub: <0Ah> <Data> |
Function | Output specified data to the subsystem I/O port F7h (no use value). |
Command number | 0Bh |
---|---|
Function name | Send Memory 2 |
Command format |
Host ¨ Sub: <0Bh> <Start address H> <Start address L> <Number of bytes H> <Number of bytes L> Sub ¨ Host: <Data stream...> |
Function | Transfer subsystem memory content to host. |
Command number | 0Ch |
---|---|
Function name | Receive Memory |
Command format | Host ¨ Sub: <0Ch> <Start address H> <Start address L> <Number of bytes H> <Number of bytes L> |
Function | Transfer data from host to the subsystem memory. |
Command number | 0Dh |
---|---|
Function name | Execute |
Command format | Host ¨ Sub: <0Dh> <Start address H> <Start address L> |
Function | Start execution in the subsystem from a specified address. |
Command number | 0Eh |
---|---|
Function name | Load Data |
Command format | Host ¨ Sub: <0Eh> <Number of sectors> <Drive number> <Track number> <Sector number> <Start address H> <Start address L> |
Function | Read data from disk and store it at a specified address in the subsystem. |
Command number | 0Fh |
---|---|
Function name | Save Data |
Command format | Host ¨ Sub: <0Fh> <Number of sectors> <Drive number> <Track number> <Sector number> <Start address H> <Start address L> |
Function | Writes data to disk from a specified address in the subsystem. |
Command number | 10h |
---|---|
Function name | Load & Go |
Command format | Host ¨ Sub: <10h> |
Function | After initialization, load 256 bytes of data from drive 1, track 0, sector 1 into 5000h in the subsystem memory and execute it. |
Command number | 11h |
---|---|
Function name | High Speed Write Data |
Command format | Host ¨ Sub: <11h> <Number of sectors> <Drive number> <Track number> <Sector number> <Data stream...> |
Function | Same as 01h write data except that the data stream is transferred using high-speed handshake. |
Command number | 12h |
---|---|
Function name | High Speed Send Data |
Command format |
Host ¨ Sub: <12h> Sub ¨ Host: <Data stream...> |
Function | Same as 03h send data except that the data stream is transferred using high-speed handshake. |
Command number | 13h |
---|---|
Function name | Error Info |
Command format |
Host ¨ Sub: <13h> Sub ¨ Host: <Command> <ST0> <ST1> <ST2> <C> <H> <R> <N> |
Function | Transfer the last command executed by the FDC and the FDC status to the host. |
Command number | 14h | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Function name | Sense Device Status | ||||||||||||||||
Command format |
Host ¨ Sub: <14h> <Drive number> Sub ¨ Host: <Status> |
||||||||||||||||
Function |
Returns FDC status to host side
|
Command number | 15h |
---|---|
Function name | Fast Send Memory |
Command format |
Host ¨ Sub: <15h> <Start address H> <Start address L> <Number of bytes H> <Number of bytes L> Sub ¨ Host: <Data stream...> |
Function |
Same as 0Bh send memory except when fast handshaking is used to transfer data. The number of transferred bytes must be an even number. |
Command number | 16h |
---|---|
Function name | High Speed Receive Memory |
Command format | Host ¨ Sub: <16h> <Start address H> <Start address L> <Number of bytes H> <Number of bytes L> <Data string...> |
Function |
Same as 0Ch receive memory except when fast handshaking is used to transfer data. The number of transferred bytes must be an even number. |
Command number | 17h |
---|---|
Function name | Set Surface Mode |
Command format | Host ¨ Sub: <17h> <Mode H> |
Function |
Specify whether each drive should be in simplex or duplex mode Bit 3 to Bit 0: 0: Single-sided 1: Double-sided At startup, all drives are in single-sided mode. |
Command number | 18h |
---|---|
Function name | Send Surface Mode |
Command format |
Host ¨ Sub: <18h> Sub ¨ Host: <Surface mode> |
Function | Send surface mode to host. |
Command number | 19h |
---|---|
Function name | Set Read After Write |
Command format | Host ¨ Sub: <19h> |
Function |
Perform a read-after-write check after executing this command, a read-after-write check will be automatically performed after executing a command that involves writing to the disk. If an error is detected, the error bit in the result status will be set. |
Command number | 1Ah |
---|---|
Function name | Reset Read After Write |
Command format | Host ¨ Sub: <1Ah> |
Function | Disable read-after-write checks. |
Command number | 1Bh |
---|---|
Function name | Resume |
Command format | Host ¨ Sub: <1Bh> |
Function |
Resume execution of the subsystem stopped at a previously set breakpoint. It is also possible to change the PC using the set register command and execute from that address. |
Command number | 1Ch |
---|---|
Function name | Set Breakpoint |
Command format | Host ¨ Sub: <1Ch> <Address H> <Address L> |
Function |
Set a breakpoint at the specified address. Breakpoints can only be set at one location. Reset when stopped at breakpoint. |
Command number | 1Dh | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Function name | Set Register | ||||||||||||||||||||||||||||
Command format | Host ¨ Sub: <1Dh> <Register ID number> <Data H> <Data L> | ||||||||||||||||||||||||||||
Function |
Specify a register content when restarting execution with the resume command (1Bh).
|
Command number | 1Eh |
---|---|
Function name | Send Register |
Command format |
Host ¨ Sub: <1Eh> <Register ID number> Sub ¨ Host: <Data H> <Data L> |
Function | Send a register content to the host when the subsystem is stopped at the breakpoint. |
Command number | 1Fh | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Function name | Set Disk Mode | |||||||||||||||||||||||||||
Command format | Host ¨ Sub: <1Fh> <Drive number> <Disc code> | |||||||||||||||||||||||||||
Function |
Set disc mode according to specified disc code. Disc code:
|
Command number | 20h |
---|---|
Function name | Send Disk Mode |
Command format |
Host ¨ Sub: <20h> <Drive number> Sub ¨ Host: <Disc code> |
Function | Send disk mode to host. |
Command number | 21h |
---|---|
Function name | Set Boundary Mode |
Command format | Host ¨ Sub: <21h> <Boundary Mode> |
Function |
Set boundary mode. 0: Limit read/write range to 1D/2D disks 1: Limit the read/write range to disks with a sector length of 256 bytes (including disks with 1HDs/2HDs) 2: Allow read/write of all disks that can be supported by the subsystem |
Command number | 22h |
---|---|
Function name | Send Boundary Mode |
Command format |
Host ¨ Sub: <22h> Sub ¨ Host: <Boundary mode> |
Function | Send boundary mode to host. |
Command number | 23h |
---|---|
Function name | Drive Ready Check |
Command format |
Host ¨ Sub: <23h> <Drive number> Sub ¨ Host: <Status> |
Function |
Disk insertion check. 00h: Disc inserted FFh: No disc inserted |
Command number | 24h |
---|---|
Function name | Expanded Format |
Command format | Host ¨ Sub: <24h> <Drive number> <Data> |
Function | Format the disk with initialization data. |
Address | R/W | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F4h | W | Drive control
|
||||||||||||||||||||||||||||||||||
F8h | W | Motor control
|
||||||||||||||||||||||||||||||||||
R | FDC ƒÊPD765A TC input When this port is read, the TC signal is input to FDC. |
|||||||||||||||||||||||||||||||||||
FAh | R | FDC ƒÊPD765A status register read
|
||||||||||||||||||||||||||||||||||
FBh | W | FDC ƒÊPD765A data register write | ||||||||||||||||||||||||||||||||||
R | FDC ƒÊPD765A data register read | |||||||||||||||||||||||||||||||||||
FCh | R/W | Disk subsystem I/F 8255 port A In the standard state, it is a data reception port from the host. |
||||||||||||||||||||||||||||||||||
FDh | R/W | Disk subsystem I/F 8255 port B In the standard state, it is a data transmission port to the host. |
||||||||||||||||||||||||||||||||||
FEh | R/W | Disk subsystem I/F 8255 port C
|
||||||||||||||||||||||||||||||||||
FFh | W | Disk subsystem I/F 8255 control |
0000h +---------------+ | System ROM | 0800h |---------------| | Vacant | 4000h |---------------| | Write Buffer | 5000h |---------------| | Read Buffer | 6000h |---------------| | Unused | 7F00h |---------------| | Work Area | 8000h |---------------| | Vacant | FFFFh +---------------+The M series system ROM is 8K bytes (0000h to 1FFFh).