3010

From NDWiki
Revision as of 11:35, 26 April 2011 by TArntsen (talk | contribs) (Fixed two small typos which made the sentence problematic)
Jump to navigation Jump to search

3010 (full name: Floppy and 4 Terminals Module) is a card with four serial ports and a floppy disk controller.

Floppy interface

Base address of IOX instructions is set by thumb wheel 1.

The floppy uses 8 addresses in the IO area.

  • base+0 RDAT : Read data buffer
  • base+1 WDAT : Write data buffer
  • base+2 RSR1 : Read status register 1
  • base+3 WCWD : Write Control Word
  • base+4 RSR2 : Read status register 2
  • base+5 WDAD : Write Drive Address/Write Difference
  • base+6 RTST : Read Test Data
  • base+7 WSCT : Write Sector/Write Test Byte

Interrupt level is 11.

IOX register details

IOX Read data buffer

IOX base+0 reads one 16 bit word from the buffer. The buffer is automatically incremented.

IOX Write data buffer

IOX base+1 writes one 16 bit word into the data buffer. The buffer is automatically incremented.

IOX Read status register 1

IOX base+2

  • Bit 0 : Not used
  • Bit 1 : Interrupt enabled
  • Bit 2 : Device busy
  • Bit 3 : Device ready for transfer
  • Bit 4 : Error bit set in status register 2
If set then there has occured an error and status register 2 must be read before continuing.
  • Bit 5 : Deleted record
Set after a read data command if the sector contained a deleted data address mark.
  • Bit 6 : Read/Write complete
A read or write operation has completed
  • Bit 7 : Seek completed
This bit is set after a seek or recalibration command when the disk has finished moving the R/W head.
  • Bit 8 : Time Out
set after approximately 1.5 s.

IOX Write Control Word

IOX base+3

  • Bit 0 : Not used
  • Bit 1 : Enable Interrupt
  • Bit 2 : Not used
  • Bit 3 : Test Mode (see IOX RTST and IOX WSCT)
  • Bit 4 : Device Clear
Selected drive is deselected
  • Bit 5 : Clear interface buffer address
  • Bit 6 : Enable timeout
  • Bit 7 : Not used
  • Bit 8 : Format track
  • Bit 9 : Write data
  • Bit 10 : Write deleted data
  • Bit 11 : Read ID
  • Bit 12 : Read data
  • Bit 13 : Seek
  • Bit 14 : Recalibrate
  • Bit 15 : Control reset

Bit 8-15 are commands to the floppy disk. Bit 8-14 are the only bits that generates device busy and give interrupt.

IOX Read status register 2

IOX base+4

  • Bit 0-7 : Not used
  • Bit 8 : Drive not ready
Set if the drive door is open, wrong drive address, the disk isn't properly inserted or the drive isn't powered up.
  • Bit 9 : Write protect
Set when a write is made to a write protected floppy
  • Bit 10 : Not used
  • Bit 11 : Sector missing - no AM
Set by Read data, Write data or Write deleted data access a sector that can't be located on the disk. It might also indicate a non locatable data field address mark or ID field address mark.
  • Bit 12 : CRC error
  • Bit 13 : Not used
  • Bit 14 : Data overrun
A data byte was lost in the communication between the NORD-100 interface and the floppy disk system
  • Bit 15 : Not used

IOX Write Drive Address/Write Difference

IOX base+5 The data written is interpreted in two different ways depending on the value of bit 0 of the A register.

Bit 0=1 : Write Drive Address

  • Bit 1-7 : Not used
  • Bit 8-10 : Drive address (unit number) 0, 1 or 2
  • Bit 11 : Deselect drives
  • Bit 12-13 : Not used
  • Bit 14-15 : Format select
Bit 15=0, Bit 14=x : IBM 3740 128 bytes/sector 26 sectors/track
Bit 15=1, Bit 14=0 : IBM 3600 256 bytes/sector 15 sectors/track
Bit 15=1, Bit 14=1 : IBM System 32-11 512 bytes/sector 8 sectors/track

Bit 0=0 : Write Difference

The value written here is used for the seek command.
  • Bit 1-7 : Not used
  • Bit 8-14 : Tracks to move
  • Bit 15 : Direction
Bit 15=0 move out to a lower track address
Bit 15=1 move in to a higher track address

IOX Read Test Data

IOX base+6 This instruction is used for testing and simulating of data transfer between the ND-100 and the floppy interface. It does not transfer data into the A register, the command transfer the test byte (see Write Test Byte) into the device buffer. The data is then possible to read via the normal commands.

IOX RTST does not generate any interrupts or busy signals.

Example

% Set the interface in test mode
SAA 10
IOX WCWD
% Do the testing here

% Reset the interface to clear test mode
SAA 0
IOX WCWD
SAA 20
IOX WCWD

IOX Write Sector/Write Test Byte

IOX base+7 The data written is interpreted in two different ways depending on if the device is in test mode or not.

If in test mode, IOX WSCT loads the test byte that is used in the IOX RTST command. If in normal mode IOX WSCT writes the sector number to use in following read/write command.

Normal mode:

  • Bit 0-7 : Not used
  • Bit 8-14 : Sector to use
1-26 for IBM 3740
1-15 for IBM 3600
1-8 for IBM System 32-11
0 must not be used
  • Bit 15 : Sector auto incremented
If set then the sector register is incremented on every read/write command. It is not valid when incremented past the format limits.

Serial ports


Notes about the schematics

There is a bootstrap prom, ND prom no 007-00-A of 512 byte (74S472) and a memory bank of 1kword RAM.

Serial ports is made with an IM-6402 UART per port, same as the 8-port card.

References

  • Norsk Data Document ND–06.015.02 ND-100 FUNCTIONAL DESCRIPTION
    • Chapter 6.7 I/O system connection to the interrupt system (page 190-195)
    • Chapter 6.8 DMA (page 196-203)
    • Appendix B.4 ND-100 floppy disk programming instructions (page 286)
The end of B.4 contains garbage about card readers.
    • Appendix D.7 Switches on the floppy and 4 terminals module (3010) (page 313)