📄 diag.u
字号:
; dsub enrb loaddp halt; regtoti; rcslsw ptr1; ; dnop tioe tilsw; ; ; jtierr hang cstat; dnop tioe tilsw halt; titotmp; rcslsw; ; dnop tioe timsw halt; titotmp; rcsmsw; jloop ctest.A; dnop; ; ; ; dnop; ; ; ; dnop; ; ; lpreg!4ctest.B: ; dnop enra loaddp halt; tmptoti; rcsmsw; ; dnop enra loaddp halt; tmptoti; rcslsw; ; dnop; ; ptr1; ptr1- ; dnop enrb loaddp halt; regtoti; rcsmsw ptr1; lpreg- ; dadd enrb loaddp halt; regtoti; rcslsw ptr1; ; dnop tioe tilsw; ; ; jtierr hang cstat; dnop tioe tilsw halt; titotmp; rcslsw; ; dnop tioe timsw halt; titotmp; rcsmsw; jloop ctest.B; dnop; ; ; ; dnop; ; ; ; dnop; ; ; lpreg!4ctest.C: ; dnop enra loaddp halt; tmptoti; rcsmsw; ; dnop enra loaddp halt; tmptoti; rcslsw; ; dnop; ; ptr1; ptr1- ; dnop enrb loaddp halt; regtoti; rcsmsw ptr1; lpreg- ; dsub enrb loaddp halt; regtoti; rcslsw ptr1; ; dnop tioe tilsw; ; ; jtierr hang cstat; dnop tioe tilsw halt; titotmp; rcslsw; ; dnop tioe timsw halt; titotmp; rcsmsw; jloop ctest.C; dnop; ; ; ; dnop; ; ; ; dnop; ; ; lpreg!4ctest.D: ; dnop enra loaddp halt; tmptoti; rcsmsw; ; dnop enra loaddp halt; tmptoti; rcslsw; ; dnop; ; ptr1; ptr1- ; dnop enrb loaddp halt; regtoti; rcsmsw ptr1; lpreg- ; dadd enrb loaddp halt; regtoti; rcslsw ptr1; ; dnop tioe tilsw; ; ; jtierr hang cstat; dnop tioe tilsw halt; titotmp; rcslsw; ; dnop tioe timsw halt; titotmp; rcsmsw; jloop ctest.D; dnop; ; ; ; dnop; ; ; ; dnop; ; ; lpreg!6ctest.E: ; dnop enra loaddp halt; tmptoti; rcsmsw; ; dnop enra loaddp halt; tmptoti; rcslsw; ; dnop; ; ptr1; ptr1- ; dnop enrb loaddp halt; regtoti; rcsmsw ptr1; lpreg- ; dsub enrb loaddp halt; regtoti; rcslsw ptr1; ; dnop tioe tilsw; ; ; jtierr hang cstat; dnop tioe tilsw halt; titotmp; rcslsw; ; dnop tioe timsw halt; titotmp; rcsmsw; jloop ctest.E; dnop; ; ; ; dnop; ; ; ; dnop enra loaddp halt; tmptoti; rcsmsw; ; dnop enra loaddp halt; tmptoti; rcslsw; ; dnop; ; ptr5; ptr5!c_dtestsolution2 ; dnop enrb loaddp halt; regtoti; rcsmsw ptr5; ; dcmp enrb loaddp halt; regtoti; rcslsw ptr5; ; dnop; ; ; jne hang cstat; dnop halt; ; ; rtn; dnop; ; ;rdmovelp51:|* move registers at ptr5 to ptr1 ; ; regtotmp; rcsmsw ptr5; ; ; regtotmp; rcslsw ptr5; ; ; ; ptr1; ptr5+ ; ; tmptoreg; rcsmsw ptr1; lpreg- jloop rdmovelp51; ; tmptoreg; rcslsw ptr1; rtn; ; ; ptr5; ptr1+routine l.diagimm2 001110011011|* Set Reg RAM select to 110; Hang after 2nd access ; ; adtoti; imm2; jclr clp idl2; ; adtoti; imm2; ; ; ; imm2; hng; ; ; imm2; call idle1; ; ; ;routine l.diagimm3 001110011100|* Set Reg RAM select to 110; Hang after 2nd access ; ; adtoti; imm3; jclr clp idl2; ; adtoti; imm3; ; ; ; imm3; hng; ; ; imm3; call idle1; ; ; ;routine c.iadd 001110011001deyong: ; i2add enrb halt; regtoti; rcssp imm2; ; i2add; ; ptr3; ; i2add enra halt; regtoti; rcssp ptr3; call csafin; halt; regtotmp; rcssp ptr1;routine c.imult 001110011010 ; imul enrb halt; regtoti; rcssp imm2; ; imul; ; ptr3; ; imul enra halt; regtoti; rcssp ptr3; call csafin; halt; regtotmp; rcssp ptr1;routine c.tstlpreg 001001011010|* Test the loop counter ; ; ; ; lpreg!0xffftest.pt.a: hng; ; ; ; ; ; ; ; lpreg- jloop test.pt.a; ; ; ; ; ; ; ; jloop0 test.pt.b; ; ; ; ; ; ; ; hng; ; ; ;test.pt.b: hng; ; ; ; call idle1; ; ; ;|*|* Test Current User's Registers = NON-DESTRUCTIVE|*routine c.tstreg.n 001001110011 ; ; ; ; lpreg!32 ; ; ; ; ptr5!c_dSCRATCH_0 call rdmovelp15; ; ; ptr5; ; ; ; ; lpreg!32 ; ; ; ; ptr5!c_dtest call rdmovelp51; ; ; ptr5; call ctest; ; ; ; ; ; ; ; lpreg!32 ; ; ; ; ptr5!c_dSCRATCH_0 call rdmovelp51; ; ; ptr5; call idle1; ; ; ;rdmovelp15:|* move registers at ptr1 to ptr5 ; ; regtotmp; rcsmsw ptr1; ; ; regtotmp; rcslsw ptr1; ; ; ; ptr5; ptr1+ ; ; tmptoreg; rcsmsw ptr5; lpreg- jloop rdmovelp15; ; tmptoreg; rcslsw ptr5; rtn; ; ; ptr5; ptr5+routine c.jmpt 001110011101|* Jump condition test jmp checkall; ; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkall:|* Tests for =: ; ; ; ptr5; ptr5!sone ; scmp enra enrb halt; regtoti; rcssp ptr5; ; ; ; ; jeq checkeq1; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkeq1: jle checkeq2; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkeq2: jge checkeq3; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkeq3: jne faileq4; scmp halt; ; ; ; ; ; ; jgt faileq5; scmp halt; ; ; ; ; ; ; jlt faileq6; scmp halt; ; ; ; ; ; ptr5; ptr5!smone|* Now, test for Greater Than ; scmp enrb halt; regtoti; rcssp ptr5; ; ; ; ; jgt checkgt1; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkgt1: jge checkgt2; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkgt2: jne checkgt3; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkgt3: jeq failgt4; scmp halt; ; ; ; ; ; ; jlt failgt5; scmp halt; ; ; ; ; ; ; jle failgt6; scmp halt; ; ; ; ; ; ptr5; ptr5!stwo|* Now, test for Less Than ; scmp enrb halt; regtoti; rcssp ptr5; ; ; ; ; jlt checklt1; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checklt1: jle checklt2; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checklt2: jne checklt3; scmp halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checklt3: jeq faillt4; scmp halt; ; ; ; ; ; ; jgt faillt5; scmp halt; ; ; ; ; ; ; jge faillt6; scmp halt; ; ; ; ; ; ptr5; ptr5!stwo|* Now, test for tierror ; sadd enra enrb halt; regtoti; rcssp ptr5; ; ; ; ptr5; ptr5!sqnan jnotierr checkerr1; smul enra enrb halt; regtoti; rcssp ptr5; ; ; ; ptr5; ptr5!c_ssin hng; ; ; ; call idle1; ; ; ;faileq4: hng; ; ; ; call idle1; ; ; ;faileq5: hng; ; ; ; call idle1; ; ; ;faileq6: hng; ; ; ; call idle1; ; ; ;failgt4: hng; ; ; ; call idle1; ; ; ;failgt5: hng; ; ; ; call idle1; ; ; ;failgt6: hng; ; ; ; call idle1; ; ; ;faillt4: hng; ; ; ; call idle1; ; ; ;faillt5: hng; ; ; ; call idle1; ; ; ;faillt6: hng; ; ; ; call idle1; ; ; ;checkerr1: jtierr checkerr2; smul enra enrb halt; regtoti; rcssp ptr5; ; ; ; ; hng; ; ; ; call idle1; ; ; ;checkerr2: jnotierr jumpend; halt; ; ; ; ; ; ; hng; ; ; ; call idle1; ; ; ;jumpend: hng; ; ; ; call idle1; ; ; ;routine l.diag5 001110010101 ; ; ;|* Infinite in 2nd accessloop jclr clp idl2; ; ; ; call .; ; ; ;routine l.diag6 001110010110 ; ; ;|* A long 2 access instruction: jclr clp idl2; ; ; ; ; ; ; ; lpreg!0xfffstart: ; ; ; ; lpreg- ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; jloop start; ; ; ; ; ; ; ; call idle1; ; ; ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -