//************************************************************************************** //*** UTVFC6.TST //*** Rev.H May 29.1979 //*** Rev. F February 8,1979 //*** Rev.B August 4.1978 //*** V. Vysin //************************************************************************************** //************************************************************************************** //To include the following definition files in the compilation get "tester.d" get "UTVFC.d" //************************************************************************************** //{ODataM: Odata.00, Odata.01, Odata.02, Odata.03, Odata.04, Odata.05, Odata.06, Odata.07} //{ODataL: Odata.08, Odata.09, Odata.10, Odata.11, Odata.12, Odata.13, Odata.14, Odata.15} //{OData0: Odata.00, Odata.01, Odata.02, Odata.03} //{OData1: Odata.04, Odata.05, Odata.06, Odata.07} //{OData2: Odata.08, Odata.09, Odata.10, Odata.11} //{OData3: Odata.12, Odata.13, Odata.14, Odata.15} //{T0: T0D0, T0D1, T0D2, T0D3} //{T1: T1D0, T1D1, T1D2, T1D3} //{T2: T2D0, T2D1, T2D2, T2D3} //{T3: T3D0, T3D1, T3D2, T3D3} //{Buf0: Buf0B0, Buf0B1, Buf0B2, Buf0B3} //{Buf1: Buf1B0, Buf1B1, Buf1B2, Buf1B3} //{Buf2: Buf2B0, Buf2B1, Buf2B2, Buf2B3} //{Buf3: Buf3B0, Buf3B1, Buf3B2, Buf3B3} //{CTask: CTask.0, CTask.1, CTask.2, CTask.3} // to test the Diagnostic Register let Test61() be [ Start() {CTask}=#0 SetCAddr(#17) ; //allimportant;mustrestore MyTask &ICompar Compare("MyTask",{MyTask},1,"no chance ",1) for a=0 to #77 do [ ClearNBlock() OddLine() XeroData() WriteAll() ] for a=0 to #77 do [ ClearNBlock() EvenLine() XeroData() WriteAll() ] // to clear the data buffer again ClearNBlock() OddLine() // to write the even buffer XeroData() WriteBuf(0) for i=0 to 3 do [ EvenLine() // to read the Even buffer {ODataM}=#200 EClock() ClkStart() NClk(3) //loads AAR,next loads T2,T3,next loads T0,T1 Switch() // loads SCR,also loads CR & DR NClko(#150)// EvenField=0,PreVS=1,both BlackBgds=1 MLpulse() // should make VS=1 NClk(1) // part of ML pulse {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR ClkCR() // will load DR NClk(1) // sets SendControl Compare("SendControl",{SendControl},1,"went bad ",1,i ) NClk(2) //loads all 2+2 T regs Compare("T0 register",{T0},4*i +1,"faulty ",2,i) //VS=1 Compare("T1 register",{T1},4*i +1,"faulty ",3,i) Compare("T2 register",{T2},4*i +1,"faulty ",4,i) Compare("T3 register",{T3},4*i +1,"faulty ",5,i) SetControlPhase() {ODataM} = #200 ; // this replaces HS subroutine ClkStart() NClk(1) {OData3} = #4 WriteHorCont() {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) // HS is up now {OData3} =0 WriteHorCont() {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) // loads T2,T3 and terminates HS,exNibClk=1 Compare("T2 register",{T2},4*i +3,"faulty ",6,i ) // VS=1,HS=1 Compare("T3 register",{T3},4*i +3,"faulty ",7,i ) Compare("T0 register",{T0},4*i +1,"faulty ",8,i ) //still the old one Compare("T1 register",{T1},4*i +1,"faulty ",9,i ) {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) Compare("T2 register",{T2},4*i +1,"faulty ",10,i )//returns to the old one Compare("T3 register",{T3},4*i +1,"faulty ",11,i ) Compare("T0 register",{T0},4*i +3,"faulty ",12,i ) // now it gets there Compare("T1 register",{T1},4*i +3,"faulty ",13,i ) Switch() NClko(#140)// EvenField=0,PreVS=0,both BlackBgds=1 MLpulse() {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) // resets VS;now only ExtraNibClk=1 //Compare("GOTCHA",{RUN},0,"DR ",100) {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) // ExtraNibTime=0 & loads T2,T3 Compare("T2 register",{T2},4*i ,"faulty ",14,i ) Compare("T3 register",{T3},4*i ,"faulty ",15,i ) Compare("T0 register",{T0},4*i +1,"faulty ",16,i ) //still the old one Compare("T1 register",{T1},4*i +1,"faulty ",17,i ) {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) // resets SendControl Compare("T2 register",{T2},4*i ,"faulty ",18,i ) Compare("T3 register",{T3},4*i,"faulty ",19,i ) {ODataM} = i + 4*i + 16*i + 64*i ; //contents of DiagR NClk(1) Compare("T0 register",{T0},4*i,"faulty ",20,i ) Compare("T1 register",{T1},4*i,"faulty ",21,i ) ] // DR is OK with me //and the SendControl switching (p.12). Stop() ] and SetCAddr(arg) be [ for caa=0 to 3 do [ let cab=arg & 1 {SRIn'}=cab SRClock() arg=arg rshift 1 ] ] and let ClearNBlock() be [ {ODataM} = #100 ClkStart() ClkIAR() {ODataM} = #000 ; // blocks counting ClkStart() ]