;DiskBootIOCBs.bravo last edited by Jim Frandeen November 9, 1981 1:04 PM: Move the IncrementDataPgNum bit back one word ;IOCB's used for disk booting. Heads have been moved to cylinder 0 by phase 0 @100 ;data area B ;special block type, ignore FE ;word count 0 ;not used #02 0000 ;final IOCB status word, set by DiskDlion ucode 0000 ;next IOCB (should always be 0) [01 ;address of seek IOCB [25 ;address of transfer IOCB [30 ;address of verify read read parameter area [20 ;address of verify verify read parameter area #03 0000 ;header cylinder[0..15] 0000 ; 2 head[0..7],, sector[0..7] #04 0000 ;label ID[ 0..15] 0000 ; 2 ID[16..31] 0000 ; 3 ID[32..47] 0000 ; 4 ID[48..63] 0000 ; 5 ID[64..89] 0000 ; 6 page[7..22] 0000 ; 7 page[0..6],, unused[0..5]_ 0 ,, flags[0..2] 0000 ; 8 type[0..15] 0000 ; 9 bootChainLink[0..15] 0000 ; 10 ;align on 16 word boundary 0 0 0 0 0 0 0 0 0 0 0 ;verify verify read parameter area (must be 16 word aligned) #20 00 ;# sectors to write, set at run time 31 ;(number of sectors that may be skipped in ;looking for the proper sector) + 1 0432 ;control word to verify header field 1 ;word count for verify of header field [03 ;address of header template in IOCB 1C ;abort if NotReady, WriteFault or Overrun after header 3 ;skip to next sector if CRC or Verify error on header 0432 ;control word to verify label field 0B ;word count for label field verify [04 ;address of label field in IOCB 1f ;abort if NotReady, WriteFault, Overrun, CRC or ;Verify error after label 0430 ;control word to Read data field 8100 ;word count for Read of data field (256) 3 ;virtual page # for data buffer 1e ;abort if NotReady, WriteFault, Overrun or CRC ;error after data 0420 ;control word used halt hardware after each field 0426 ;control word used to find sector mark for header ;align on 16 word boundary 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;verify read read parameter area (must be 16 word aligned) #30 00 ;# sectors to write, set at run time 31 ;(number of sectors that may be skipped in ;looking for the proper sector) + 1 0432 ;control word to verify header field 1 ;word count for verify of header field [03 ;address of header template in IOCB 1C ;abort if NotReady, WriteFault or Overrun after header 3 ;skip to next sector if CRC or Verify error on header 0430 ;control word to Read label field 0C ;word count for label field read [04 ;address of label field in IOCB 1e ;abort if NotReady, WriteFault, Overrun or ;CRC error after label 0430 ;control word to Read data field 8100 ;word count for Read of data field (256) 2 ;virtual page # for data buffer 1e ;abort if NotReady, WriteFault, Overrun or CRC ;error after data 0420 ;control word used halt hardware after each field 0426 ;control word used to find sector mark for header ;Seek IOCB #01 0000 ; -(number of cylinders to move) supplied at run time 8000 0422 ;insure that Seek Complete 7 0000 ;Set the IOCBDone bit in UField and clear the ;UStatus register. Otherwise, they will return spurious ;status bits not valid for a Seek operation into the ;final status word. #06 8000 0000 8000 0000 ;Send step pulse (two words supplied at run time) 0 [01 ;increment the remaining distance, Zero yet? 2 [06 ;no, send another step pulse 6 0 0 0400 [02 ;yes, quit now. ;transfer IOCB #25 5 0 ;load the parameters. 8000 0422 ;wait for SeekComplete 800 ;yes, transfer run of pages 2 [26 ;if had error, finish anyway #26 6 0 0 0400 [02 ;finish up IOCB (0,4640)(1,7552)(2,9568)\614t2 1t0 6t3 1t0 25t3 1t0 25t3 1t0 25t3 1t0 25t3 1t0 381t2 1t0 448t2 1t0 198t2 1t0 343t2 1t0 439t2 1t0 195t2 1t0 296t2 1t0 57t2 1t0 53t2 1t0