DDP-516 Minicomputer Simulation: Moving Head Disc

  • Home
  • The Honewell Series 16 minicomputers support 3 types of moving head discs:

  • Model 4623 (10 surface, single spindle, 8 units max, 7,2 Mbyte per spindle max.)
  • Model 4651 (2 surface, dual spindle, 2 units max, 1,5 Mbyte per spindle max.)
  • Model 4720 (20 surface, single spindle, 8 units max., 15 Mbyte per spindle max.)
  • The moving head disc control unit can be connected to either a DMC or DMA channel and each control unit supports up to 4 to 8 disc spindles (unit 0 .. 7).

    Hardware and programming details for each type can be found in the Honeywell document: "Honeywell Series 16 Moving Head Disk Options 4623, 4651 and 4720 programmers' reference manual".

    A driver is made for the 4651 to test the moving head logic as implemented by the SIMH H316 simplator. The driver supports multiple units and is designed for a control unit connected to the Multiplexer (channel 0 is used). Drive constants are defined as parameters, so it should be not too complex to change the driver for another disc type. SIMH + driver are tested with a testprogram.

    Before the disc software can be used, a disc pack must be defined and formatted. A disk pack can be formatted with geometric or sequential sector addresses. The driver currently is designed for the use of sequential addresses. The other parameter to choose with formatting is the sector length. For the test is chosen for a sector length of 128 words (which provided 12 secros per track).

    A disc pack is created and formatted with SIMH commands as follows:

    ATTACH DP0 <filename> (create: attach moving head disc unit 0 to the specified file)
    SET -S DP0 FORMAT=128 (format with blocks of 128 words and use sequential addresses to write the block addresses)
    The SET is a one-time action to initiate the disk pack for further usage; for subsequently use only the ATTACH DP0 <filename> is required.

    The driver

    The driver supports 3 subroutine calls: Read block, Write block and Initialization.

    * CALLING SEQUENCE READ/WRITE:
    CALL DP$W / DP$R (W=WRITE BLOCK, R=READ BLOCK)
    DEC UNIT NUMBER (0..3)
    DEC BLOCK NUMBER (0..4799)
    DAC BLOCK BUFFER ADDRESS (POINTER TO 128 WORD BUFFER)
    ERROR RETURN (A=STATUS NE 0)
    NORMAL RETURN (A=0)

    * DRIVER INITIALIZATION:
    CALL DP$I
    OCT RESULT
    NORMAL RETURN

    * RESULT IN BITS<9:16>
    UNIT 3 BIT9 =1 UNIT NOT AVAILABLE ELSE 0
    UNIT 3 BIT10 =1 SEEK ERROR ELSE 0
    UNIT 2 BIT11 =1 UNIT NOT AVAILABLE ELSE 0
    UNIT 2 BIT12 =1 SEEK ERROR ELSE 0
    UNIT 1 BIT13 =1 UNIT NOT AVAILABLE ELSE 0
    UNIT 1 BIT14 =1 SEEK ERROR ELSE 0
    UNIT 0 BIT15 =1 UNIT NOT AVAILABLE ELSE 0
    UNIT 0 BIT16 =1 SEEK ERROR ELSE 0

    Status

    The moving head disc control unit supplies a status showing the result of a disc operation. The status work can be read for the control unit after supplying a OCP '1125 (get status). The meaning of the bits of the status work is as follows:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    bit 1 = Controller busy
    bit 2 = Data ready for transfer
    bit 3 = Requested address not found
    bit 4 = Attemp to format for index mark
    bit 5 = Heads not loaded on selected unit
    bit 6 = Requested unit not available
    bit 7 = Seek Error (Attempt to seek track outside -3 to 202 limits)

    bit 11 = Write operation requested while in protect mode
    bit 12 = Data unsafe
    bit 13 = Checsum error
    bit 14 = Data transfer rate failure
    bit 15 = Error, logical OR of bits 3-7 and 11-14
    bit 16 = End of Record mark found

     

    The code of the driver and the program to test the moving head disc with SIMH and this driver can be found in the Software Archive

     
     

    Page last updated on: October 13 2007 | Contact: Info@theoengel.nl