[sebhc] 64K memory
Carroll Waddell
CarrollWaddell at sc.rr.com
Sun May 16 23:39:09 CDT 2004
That would be interesting to try. Meanwhile, my H8 is just taking baby
steps. I hope it will learn to run in time.
CW
Lee Hart wrote:
>Carroll Waddell wrote:
>
>
>>I hadn't thought about that. If we could find out the commands for the
>>H47, might be able to swing it. I've heard that the 47 interface was
>>serial with all the smarts in the 47 drive.
>>
>>
>
>No; it is an 8-bit parallel interface with handshaking -- much like
>SCSI. In fact, I think the two are (nearly) interchangeable.
>
>I have the Heath H47 documentation. I can copy it if anyone needs it.
>Briefly, the States are:
>
>- Master Reset mode
> computer sets /MRST line low
> H47 unconditionally ends all operations and enters Ready state
>- Ready mode
> /BUSY line high, /DTR line low, /DDOUT line high, and the
> /ERROR line indicates H47's status. When the computer sets
> the /DTAK line, the H47 will read the data bus, clear the
> /DTR line, exit the Ready mode and attempt to execute the
> given command.
>- Bootstrap command
> computer sends command word 0000h
> H47 sends 2 sectors of data bytes (one byte at a time)
> from unit 0, track 0, side 0, sectors 0 and 1
>- Read Main Status command
> computer sends command word 0001h
> H47 sends its ERROR status byte
>- Read Auxilary Status command
> computer sends command word 0002h, and side/unit/sector
> number on the bus.
> H47 sends its Auxiliary status byte, and sets the next
> side/unit/sector number to be read/written.
>- Load Sector Count command
> computer sends command word 0003h, and number of sectors
> to be transferred
>- Read Last Track/Side/Unit/Sector command
> computer sends command word 0004h
> H47 sends the last accessed track/side/unit/sector number
>- Read Unbuffered Data command
> computer sends 0005h, track# byte, and side/unit/sector byte.
> H47 finds the requested data and transfers it to the computer,
> without buffering it (i.e. each byte is sent as it is found,
> about 1 every 16usec for a double-density disk).
>- Read Buffered Data command
> computer sends 0007h, track# byte, and side/unit/sector byte.
> H47 finds the requested data and transfers it to the computer,
> buffering it in the H47's RAM (i.e. bytes can be received at
> any speed the computer can handle).
>- Write Unbuffered Data command
> computer sends 0006h, track# byte, and side/unit/sector byte.
> H47 finds the requested sector, and writes the data to it,
> using a sector data mark of FBh. Data is transferred without
> buffering; the computer must be able to transfer a data byte
> every 16usec for a double-density disk.
> or computer sends 0009h, track# byte, and side/unit/sector byte.
> H47 writes as for 0006h, but using sector data mark of F8h.
>- Write Buffered Data command
> computer sends 0008h, track# byte, and side/unit/sector byte.
> H47 finds the requested sector, and writes the data to it,
> using a sector data mark of FBh. Data is transferred via the
> H47's RAM buffer, so the computer can transfer at any speed.
> or computer sends 000Ah, track# byte, and side/unit/sector byte.
> H47 writes as for 0006h, but using sector data mark of F8h.
>- Copy command
> computer sends 000Bh, track# byte and side/unit/sector byte
> for the start of the source data, and the track# and
> side/unit/sector byte for the destination.
> H47 copies sectors from source to destination until the
> number of sectors specified in the last Load Sector Count
> command is reached.
>- Format command
> computer sends 000Ch, 000Dh, 000Eh, or 000Fh (selects density
> and sector size), then a byte defining the number of sectors
> per track, unit#, and side#.
> H47 formats the specified side/unit with the specified format.
>
>There's lots more about the individual bit assignments etc. but this
>should give you the general idea. This is a pretty high-level format,
>with very little that needs to be done by the H8/H89 itself.
>
>
More information about the Sebhc
mailing list