; Chained write test. ; ; Write zeros to block 0 for 8 blocks. ; Write pattern to block 0 for 8 blocks using record-mode chained writes. ; Read block 0 for 8 blocks. ; Compare read data with pattern data. ; Repeat with burst-mode chained writes. ; Load DUS-III from the tape. ; Set up the log(s). set -N console debug=CHAINWRITE-debug.log set -N console log=CHAINWRITE.log set imba debug=csrw;data set gic debug set cpp debug set dc debug=cmd;inco ; Establish the initial environment. echo echo Configuring the simulation environment. set CPU 512K,CIS set console DEL=177 set IMBA ENABLED break delay 30 milliseconds attach DC0 scratch.7933.disc echo echo echo ----------------------------- echo Diagnostic Utility System III echo ----------------------------- echo echo Loading DUS-III. ; Cold load the DUS-III tape. attach -e -r MS0 DUS-III.tape boot MS0 echo echo Configuring the diagnostic. deposit SWCH 2 ; Load and start the diagnostic. ; ; The diagnostic loads from tape and then waits for a . echo echo Starting the diagnostic. reply "\r" delay 2 seconds go until "\r\n:" ; reply "AID\r" ; do chained writes on device 0 unit 0 ; ; CC( 0) = --0DH (Request Status opcode) ; CC( 1) = --18H (Set Length opcode) ; CC( 2) = 0000H \ ; CC( 3) = 0800H / 2048 bytes ; CC( 4) = 1000H \ ; CC( 5) = 0000H | Set Address 0 ; CC( 6) = 0000H / ; CC( 7) = 0002H (Locate and Write opcode) ; CC( 8) = 3C01H (Set Burst Last opcode, 1 block) ; CC( 9) = --18H (Set Length opcode) ; CC(10) = 0000H \ ; CC(11) = 0800H / 2048 bytes ; CC(12) = 1000H \ ; CC(13) = 0000H | Set Address 0 ; CC(14) = 0000H / ; CC(15) = 0000H (Locate and Read opcode) ; ; Line 10 go until "\r\n> " ; reply "DB BB,10,0 . STATUS ARRAY\r" go until "\r\n> " ; reply "DB CC,16,0 . COMMAND ARRAY\r" go until "\r\n> " ; reply "DB DD,1024,0 . PATTERN ARRAY\r" go until "\r\n> " ; reply "DB EE,1024,0 . FIRST BUFFER ARRAY\r" go until "\r\n> " ; reply "DB FF,1024,0 . SECOND BUFFER ARRAY\r" go until "\r\n> " ; reply "ASSIGN CC(0),!0D,!18,!0000,!0800,!1000,!0000,!0000,!0002,!3C01\r" go until "\r\n> " ; reply "ASSIGN CC(9),!18,!0000,!0800,!1000,!0000,!0000,!0000\r" go until "\r\n> " ; reply "ASSIGN DD(0),(256),!1111\r" go until "\r\n> " ; reply "ASSIGN DD(256),(256),!2222\r" go until "\r\n> " ; reply "ASSIGN DD(512),(256),!3333\r" go until "\r\n> " ; reply "ASSIGN DD(768),(256),!4444\r" go until "\r\n> " ; reply "LET CHANNEL:=11,DEVICE:=0\r" go until "\r\n> " ; reply "BSIO ZZ\r" go until "\r\n> " ; reply "DSJ 150\r . QSTAT REPORTING\r" ; Line 150 Request Status go until "\r\n> " ; reply "WR !5,CC(0),1,,R . REQUEST STATUS COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "RR !E,BB(0),20 . REQUEST STATUS EXECUTION\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 200\r . QSTAT REPORTING\r" ; Line 200 Write zeros to blocks 0-7 go until "\r\n> " ; reply "WR !5,CC(1),13,,R . LOCWRITE COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "WR !E,FF(0),2048 . LOCWRITE EXECUTION ZERO BUFFER\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 250\r . QSTAT REPORTING\r" ; Line 250 Write pattern to blocks 0-7 record mode go until "\r\n> " ; reply "WR !5,CC(1),13,,R . LOCWRITE COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "WR !E,DD(0),512,DC=3 . LOCWRITE EXECUTION (CHAINED RECORD)\r" go until "\r\n> " ; reply "WR !E,DD(256),512,DC=2\r" go until "\r\n> " ; reply "WR !E,DD(512),512,DC=1\r" go until "\r\n> " ; reply "WR !E,DD(768),512,DC=0\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 330,330 . QSTAT REPORTING\r" ; Line 330 Read blocks 0-7 into first buffer go until "\r\n> " ; reply "WR !5,CC(9),13,,R . LOCREAD COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "RR !E,EE(0),2048 . LOCREAD EXECUTION FIRST BUFFER\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 380\r . QSTAT REPORTING\r" ; Line 380 Write zeros to blocks 0-7 go until "\r\n> " ; reply "WR !5,CC(1),13,,R . LOCWRITE COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "WR !E,FF(0),2048 . LOCWRITE EXECUTION ZERO BUFFER\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 430\r . QSTAT REPORTING\r" ; Line 430 Set Burst mode go until "\r\n> " ; reply "WR !5,CC(8),2 . SET BURST 1 COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 460\r . QSTAT REPORTING\r" ; Line 460 Write pattern to blocks 0-7 burst mode go until "\r\n> " ; reply "WR !5,CC(1),13,,R . LOCREAD COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "WB !E,DD(0),512,256,DC=3 . LOCREAD EXECUTION (CHAINED BURST)\r" go until "\r\n> " ; reply "WB !E,DD(256),768,256,DC=2\r" go until "\r\n> " ; reply "WB !E,DD(640),256,256,DC=1\r" go until "\r\n> " ; reply "WB !E,DD(768),512,256,DC=0\r" go until "\r\n> " ; reply "JUMP 540 . END ON EOI\r" go until "\r\n> " ; reply "JUMP 470 . END ON BURST\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 560,560 . QSTAT REPORTING\r" ; Line 560 Read blocks 0-7 into second buffer go until "\r\n> " ; reply "WR !5,CC(9),13,,R . LOCREAD COMMAND\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "RB !E,FF(0),2048,256 . LOCREAD EXECUTION SECOND BUFFER\r" go until "\r\n> " ; reply "JUMP 610 . END ON EOI\r" go until "\r\n> " ; reply "JUMP 570 . END ON BURST\r" go until "\r\n> " ; reply "WAIT\r" go until "\r\n> " ; reply "DSJ 630\r . QSTAT REPORTING\r" ; Line 630 go until "\r\n> " ; reply "IN H\r" go until "\r\n> " ; reply "RSIO\r" go until "\r\n> " ; reply "CB DD(0),EE(0),1024\r" go until "\r\n> " ; reply "PRINT \"RECORD BUFFER COMPARE INDEX is \";INDEX\r" go until "\r\n> " ; reply "CB DD(0),FF(0),1024\r" go until "\r\n> " ; reply "PRINT \"BURST BUFFER COMPARE INDEX is \";INDEX\r" go until "\r\n> " ; reply "END\r" go until "\r\n> " ; reply "RUN\r" ; Exit go until "\r\n> " ; reply "EXIT\r" go until "?" ; reply "YES\r" go until "\r\n:" exit