3112: Difference between revisions
(added a "see also" section) |
(→Firmware: add picture of the EPROM) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 16: | Line 16: | ||
**0 - device number 1560 | **0 - device number 1560 | ||
**1 - device number 1570 | **1 - device number 1570 | ||
**2 - 15 - not used | |||
==Connectors== | ==Connectors== | ||
The A and B connectors are used for I/O, the C connector is used for the [[ND-100 Bus]]. | The A and B connectors are used for I/O, the C connector is used for the [[ND-100 Bus]]. | ||
Line 42: | Line 44: | ||
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. | 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== | ==Floppy Formats== | ||
Octal numbers. | |||
*0 IBM SYS-32-II 512 bytes / sector, single side, single density | *0 IBM SYS-32-II 512 bytes / sector, single side, single density | ||
*1 IBM 3600 256 bytes / sector, single side, single density | *1 IBM 3600 256 bytes / sector, single side, single density | ||
Line 53: | Line 56: | ||
*11 IBM SYS-34 256 bytes / sector, single side, double density | *11 IBM SYS-34 256 bytes / sector, single side, double density | ||
*12 Illegal | *12 Illegal | ||
*13 non IBM 1024 bytes / sector, | *13 non IBM 1024 bytes / sector, single side, double density | ||
*14 non IBM 512 bytes / sector, double side, double density | *14 non IBM 512 bytes / sector, double side, double density | ||
*15 IBM SYS-34 256 bytes / sector, double side, double density | *15 IBM SYS-34 256 bytes / sector, double side, double density | ||
Line 65: | Line 68: | ||
*35 - 57 Illegal | *35 - 57 Illegal | ||
*60 - 77 User specified | *60 - 77 User specified | ||
==Error Codes== | ==Error Codes== | ||
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. | 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 | *00 OK | ||
*01 - 04 not used | *01 - 04 not used | ||
Line 72: | Line 76: | ||
*06 Sector not found | *06 Sector not found | ||
*07 Track 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 | *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 | autoload errors | ||
*50 No bootstrap found on diskette | *50 No bootstrap found on diskette | ||
Line 101: | Line 133: | ||
*[[3027]] | *[[3027]] | ||
*[[3106]] | *[[3106]] | ||
== Firmware == | |||
The firmware (microcode ?) for this card is held in a 2764 EPROM (AM2764). [[File:3112 34300G firmware IMG 20230417 220540864.jpg | thumb | right]] | |||
Firmware dump. The file has been compressed with bzip2. | |||
* 34300G: [[File:34300G.bin.bz2]] | |||
==Reference== | ==Reference== |
Latest revision as of 21:43, 17 April 2023
3112 is the 8 inch and 5.25 inch floppy controller + streamer controller card.
This article is a stub. You can improve NDWiki by expanding it. |
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
Firmware
The firmware (microcode ?) for this card is held in a 2764 EPROM (AM2764).
Firmware dump. The file has been compressed with bzip2.
- 34300G: File:34300G.bin.bz2
Reference
Norsk Data Document ND–11.021.01 FLOPPY AND STREAMER CONTROLLER 3106/3112