3112

From NDWiki
Jump to: navigation, search

3112 is the 8 inch and 5.25 inch floppy controller + streamer controller card.

Introduction

It is a controller for floppy drives (8 and 5.25 inch) and a tape streamer. This is a microprocessor-based controller/formatter which performs control functions and data transfer between the CPU and a floppy disk drive or a streaming tape drive. The controller/formatter consists of an interface towards a ND-100 bus, a complete floppy disk controller, and a QIC-02 streaming tape cartridge, all based on an 8 bit microprocessor (Z80A).

A maximum of four Streaming Tape Drives and four Floppy Disk drives may be connected to the controller.

The FLOPPY DISK CONTROLLER can read/write on single/double density and single/double sided diskettes. Data transfer and exchange of commands/status are performed with DMA (Direct Memory Access).

The controller is compatible with previous single sided controllers. For "stand-alone" use, a new version of FLO-MON (FLOppy-MONitor-2010F or newer) must be dumped on the diskette.

Switches and indicators

  • thumbwheel switch - device number selection
    • 0 - device number 1560
    • 1 - device number 1570
    • 2 - 15 - not used

Connectors

The A and B connectors are used for I/O, the C connector is used for the ND-100 Bus.

Floppy drives are connected via a daisy chain from connector A (unit 0 - 3) and streamer cartridge drives are connected via a daisy chain from connector B (unit 0 - 3).

I/O Devices on the card

Read data

address: device address + 0

Read Status

address: device address + 2

Load Control Word

address: device address + 3

Read Status

address: device address + 4

Load Pointer High (Bit 16-23)

address: device address + 5

Load Pointer Low / Load Data

address: device address + 7

Unused IOXs does not give an IOX error.

Note: Reading either status gives the same result. They are duplicated to make it possible for microprograms in the ND-100 CPU to perform both Binary Format Load and Mass Storage Load (1560& and 21560).


The IOXs devno + 5 and devno + 7 are used to form the pointer to the location in the ND-100 memory where the controller finds the Command block. In tests, these IOXs are given direct meaning in different tests.

Floppy Formats

Octal numbers.

  • 0 IBM SYS-32-II 512 bytes / sector, single side, single density
  • 1 IBM 3600 256 bytes / sector, single side, single density
  • 2 IBM 3740 128 bytes / sector, single side, single density
  • 3 Illegal
  • 4 non IBM 512 bytes / sector, double side, single density
  • 5 non IBM 256 bytes / sector, double side, single density
  • 6 non IBM 128 bytes / sector, double side, single density
  • 7 Illegal
  • 10 non IBM 512 bytes / sector, single side, double density
  • 11 IBM SYS-34 256 bytes / sector, single side, double density
  • 12 Illegal
  • 13 non IBM 1024 bytes / sector, single side, double density
  • 14 non IBM 512 bytes / sector, double side, double density
  • 15 IBM SYS-34 256 bytes / sector, double side, double density
  • 16 Illegal
  • 17 non IBM 1024 bytes / sector, double side, double density
  • 20 Illegal
  • 21 Illegal
  • 22 Basic 5.25 inch 128 bytes / sector, single side, single density
  • 23 - 33 Illegal
  • 34 IBM PC
  • 35 - 57 Illegal
  • 60 - 77 User specified

Error Codes

Error code in octal. These error codes are given in bits 9-15 of status word 1 . The codes are also shown in the digit display on the rear edge of the controller.

  • 00 OK
  • 01 - 04 not used
  • 05 CRC error
  • 06 Sector not found
  • 07 Track not found
  • 10 Format not found (indicates that the diskette has not been formatted)
  • 11 Diskette defect (impossible to format)
  • 12 Format mismatch
  • 13 Illegal format specified
  • 14 Single sided diskette inserted
  • 15 Double sided diskette inserted
  • 16 Write protected diskette / cartridge
  • 17 Deleted record
  • 20 Drive not ready (no diskette in drive, diskette inserted upside down, power failure, no drive with this number)
  • 21 Controller busy on start
  • 22 Lost data (over or underrun)
  • 23 Track zero not detected
  • 24 VCO (voltage controlled oscillator) frequency out of range
  • 25 Microprogram out of range (if the Z80 tries to execute a program from inexistent memory, it will fetch FF hex - the bus is terminated high. This instruction is RST 038H, which gives the error code Microprogram Out of Range.)
  • 26 Timeout
  • 27 Undefined error
  • 30 Track out of range
  • 31 not used
  • 32 Compare error (during compare of data)
  • 33 Internal DMA errors
  • 34 - 37 not used
  • 40 ND-100 Bus error command fetch
  • 41 ND-100 Bus error status transfer
  • 42 ND-100 Bus error data transfer
  • 43 Illegal command
  • 44 Word count not zero
  • 45 Illegal completion (cont. transf.)
  • 46 Addr-reg error
  • 47 not used

autoload errors

  • 50 No bootstrap found on diskette
  • 51 Wrong bootstrap (out of date flo-mon version)
  • 53 - 57 not used

Streamer errors

  • 60 Streamer handshake error
  • 61 Streamer status transfer error
  • 62 Bad cartridge
  • 63 No cartridge installed
  • 64 End of tape, cartridge full
  • 65 Streamer drive error
  • 66 Unidentified exception
  • 67 Illegal command to streamer

Self test errors

  • 70 PROM checksum error
  • 71 RAM error
  • 72 CTC error
  • 73 DMA CTRL error
  • 74 VCO error
  • 75 Floppy controller error
  • 76 Streamer data register error
  • 77 ND-100 register error

ND sales number

  • ND-317

See also

Reference

Norsk Data Document ND–11.021.01 FLOPPY AND STREAMER CONTROLLER 3106/3112