⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com.u

📁 操作系统SunOS 4.1.3版本的源码
💻 U
📖 第 1 页 / 共 3 页
字号:
	call tdmove;	;			;		;	;	;		;			;		;	;	ptr5!c_dSCRATCH_7	call tdmove;	;			;		;	;	;		;			;		;	;	ptr5!c_dSCRATCH_3	call tdmove;	;			;		;	;	call idle1;	;			;		;	;|*		move matrix at ptr1 to ptr5tdmovelp:	;		;			;		;	;	ptr5-tdmovelp2:	;		;			;		recclk;	rcsmsw ptr1;	ptr5+	;		;			;		recclk;	rcslsw ptr1;	;		;			;		;	ptr5;	lpreg-	;		;			;		recoe;	ramwe rcsmsw ptr5;	ptr1+	;		;			;		recoe recclk;ramwe ptr5;	jloop tdmovelp2;;			;		recoe;	ramwe rcslsw ptr5;	rtn;		;			;		recoe;	ramwe ptr5;|*		move data at ptr5 to ptr1tdmove:	;		;			;		recclk;	rcsmsw ptr5;	ptr1-	;		;			;		recclk;	rcslsw ptr5;	;		;			;		;	ptr1;	;		;			;		recoe;	ramwe rcsmsw ptr1;	;		;			;		recoe recclk;ramwe ptr5;	;		;			;		recoe;	ramwe rcslsw ptr1;	rtn;		;			;		recoe;	ramwe ptr1;	ptr5-|*|*		Update Shadow Registers|*routine c.update w01001110001 lnop ssub	;		;			;		;	;	lpreg!8usr.loop:	;		;			;		recclk;	rcsmsw ptr1;	;		;			;		recclk;	rcslsw ptr1;	;		;			;		;	ptr1;	;		;			;		recoe;	ramwe rcsmsw ptr1;	lpreg-	;		;			;		recoe recclk;ramwe ptr1;	jloop usr.loop;	;			;		recoe;	ramwe rcslsw ptr1;	;		;			;		recoe;	ramwe ptr1;	ptr1+	call idle1;	;			;		;	;|*|*		Load Weitek Mode Control Bits 3-0|*routine c.ld3.0 w0100011010x las ssub|		*save the value (checked in transcendentals)	;		;			;		;	;	ptr5!szero	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmp csla;		reg;		;	;	;		csuxa usp;		;		;	;	;		;			;		;	;	jlt werr;	woea;			;		;	;	;		;			;		;	;	ptr5!c_smaxmode	;		;			;		;	rcssp ptr5;	call wait3;	lbsf scmp csla;		reg;		;	;	;		csuxa usp;		;		;	;	;		;			;		;	;	jgt werr;	woea;			;		;	;	;		;			;		;	;	ptr5!c_dmode	;		;			;		;	ptr5;	;		;			opdsp dtor;	;	ramwe rcssp ptr5;	;		;			opdsp dtor;	;	ramwe ptr5;	call idle1;	lmodeusr cslmac;	;		;	;	mreg!|*|*		Load LED Register With 0x1555 And Hang|*|routine c.led155 w01001011100 lnop ssub|	;		;			;		;	;	ptr5!0x1555|	call hang;	;			;		;	;|*|*		Load LED Register With 0x2AAA And Hang|*|routine c.led2AA w01001011101 lnop ssub|	;		;			;		;	;	ptr5!0x2AAA|	call hang;	;			;		;	;|*|*		Load LED Register With 0x777|*		Set the Register Ram Select to X|*		Set the Wdata Select to X & 3|*			And Hang|*routine l.diag0 w01110010000 lnop ssub	call .;		;			;		;	;routine c.regsel0 w01001000001 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			reg;		;	ldptr;	call idle1;	;			;		;	;routine l.diag1 w01110010001 lnop ssub	;		;			;		;	;	;		;			;		;	;	jclr clp idl2;	;			;		;	;routine c.regsel1 w01001000011 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			reg;		;	ptr1;	call idle1;	;			;		;	;routine l.diag2 w01110010010 lnop ssub	;		;			;		;	;	;		;			;		;	;	jclr clp idl2;	;			;		;	;routine c.regsel2 w01001000101 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			opdmsw;		;	ptr2;	call idle1;	;			;		;	;routine l.diag3 w01110010011 lnop ssub	;		;			;		;	;	;		;			;		;	;	jclr clp idl2;	;			;		;	;routine c.regsel3 w01001000111 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			opdlsw;		;	ptr3;	call idle1;	;			;		;	;|*  double precision unimplemented instructionroutine l.diag4 w01110010100 lnop ssub	call invalid2;	;			;		;	;routine c.regsel4 w01001001001 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			reg;		;	ptr4;	call idle1;	;			;		;	;routine c.regsel5 w01001001011 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			reg;		;	ptr5;	call idle1;	;			;		;	;routine c.regsel6 w01001001101 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			opdmsw;		;	imm2;	call idle1;	;			;		;	;routine c.regsel7 w01001001111 lnop ssub	;		;			;		;	;	;		;			;		;	;	ptr5!0x777	hng;		;			opdlsw;		;	imm3;	call idle1;	;			;		;	;|*|*		Read D21 and D22 into read latch|*routine l.diag8 w01110011000 lnop ssub	;		;			opdmsw dtor;	;	;	;		;			opdmsw dtor;	recclk;	;	cdata;		;			;		;	;	jclr clp idl2;	;			;		;	;	;		;			opdlsw dtor;	;	;	;		;			opdlsw dtor;	recclk;	;	cdata;		;			;		;	;	call hang;	;			;		;	;|*|*		Initialize Instruction --|*		load bits 4 through 11 on Weitek chips.|*routine c.init w01001011110 lnop ssub	;		lmode7.4 0x6 cslmac;	;		;	;	;		lmodef.c 0x0 cslmac;	;		;	;	;		lmodeb.8 0x4 cslm;	;		;	;	call idle1;	lmodeb.8 0x0 csla;	;		;	;|*|*		Restore Wstatus Register|*  This instruction will: 1) set the valid bit, 2) reset the unimplimented|*  instruction bit, and 3) set all other bits according to bits 11:8 in|*  the operand.|*routine c.rest.wstat w01001010110 lnop ssub	;		;			opdmsw dtor;	recclk;	;	;		;			dtor;		;	;	call idle1 cstat restore;;		;		;	;|*|*		Test Current User's Registers|*  This test is designed to test the data registers for the current|*  context.  The intent is to optimize speed while catching:|*  All hard data line errors.|*  All hard address line errors.|*  Any two registers in error and most other ram errors.|*|*  To catch ram bits in error two test values are used which are|*  complimentary.  The registers are filled with the two values|*  such that the hamming distance between two addresses of|*  registers with the same data is 2:  this should check all|*  address problems.  The registers are checked twice using|*  complementary data and performing the second check in reverse sequence|*  for sequence dependent errors.  The check is performed in different|*  ways on the different checks to catch more data errors (so|*  that we will catch errors in adjoining addresses even though the|*  address hamming distance is greater than one).  The check is|*  performed with a cumulative addition for speed's sake.|*|*  The data values are:|*     A: 0 100000...00 0000000....00000|*     B: 1 011111...11 1111111....11111|*  They are stored in the following order:|*     A, B, B, A, B, A, A, B, B, A, A, B, A, B, B, A|*|*  The checking summations are:|*     0 + 1 + 2 + 3 - 6 - 7 - 8 - 9 + A + B + 4 + 5 - C - D - E - F|*  and|*     F + E - D - C + 5 + 4 - B - A + 9 + 8 - 7 - 6 - 3 - 2 + 1 + 0|*		(Notice that you can add A, B, B, A, but if you add|*		B, A, A, B, an inexact will result)|*|*|*	Test Current User's Registers - DESTRUCTIVE|*|*  Enter with:|*	ptr1 pointing at element 0 (i.e. reg_1 = 0)|*routine c.tstreg.d w01001110010 lnop ssub	;		;			;		;	;	lpreg!32	;		;			;		;	;	ptr5!c_dtest	call rdmovelp51;;			;		recclk;	rcsmsw ptr5;	call ctest;	;			;		;	;	call idle1;	;			;		;	;ctest:	;		;			;		;	rcsmsw ptr1;	;		lam csla;		reg;		;	rcslsw ptr1;	ptr1+	;		lal csla;		reg;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	ptr1+	;		lblf dadd csla;		reg;		;	;	lpreg!4	;		;			;		;	;ctest.1:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.1;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.2:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.2;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.3:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.3;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.4:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.4;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.5:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.5;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.6:|		*error if we get inexact, NaN, etc.	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.6;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!6ctest.7:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1+	jloop ctest.7;	lalf dsub csla csuxa ulsw;;		;	;|		* NO error if we get inexact	;		;			;		;	;	ptr5!c_dtestsolution1	;		;			;		;	;	ptr1-	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	;		lalf dcmp csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	;		;			;		;	;	;		csuxa umsw;		;		;	;	;		;			;		;	;	jne werr cstat;	woea;			;		;	;	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lam csla;		reg;		;	rcslsw ptr1;	ptr1-	;		lal csla;		reg;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	ptr1-	;		lblf dadd csla;		reg;		;	;	lpreg!4	;		;			;		;	;ctest.8:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.8;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.9:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.9;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.A:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.A;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.B:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.B;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.C:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.C;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!4ctest.D:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.D;	lalf dadd csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	lpreg!6ctest.E:	;		;			;		;	;	;		;			;		;	rcsmsw ptr1;	;		lbm csla;		reg;		;	rcslsw ptr1;	lpreg-	;		lbl csla;		reg;		;	;	ptr5!c_dtestsolution2	;		lam csla csuxa umsw;	;		;	;	ptr1-	jloop ctest.E;	lalf dsub csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	ptr1+	;		;			;		;	rcsmsw ptr5;	;		lbm csla;		reg;		;	rcslsw ptr5;	;		lbl csla;		reg;		;	;	;		lam csla csuxa umsw;	;		;	;	;		lalf dcmp csla csuxa ulsw;;		;	;	jwerr werr cstat;woea;			;		;	;	;		;			;		;	;	;		;			;		;	;	;		csuxa umsw;		;		;	;	;		;			;		;	;	jne werr cstat;	woea;			;		;	;	rtn;		;			;		;	;|*|*	Test Current User's Registers - NON-DESTRUCTIVE|*routine c.tstreg.n w01001110011 lnop ssub	;		;			;		;	;	lpreg!32	;		;			;		;	;	ptr5!c_dSCRATCH_0	call rdmovelp15;;			;		recclk;	rcsmsw ptr1;	;		;			;		;	;	lpreg!32	;		;			;		;	;	ptr5!c_dtest	call rdmovelp51;;			;		recclk;	rcsmsw ptr5;	call ctest;	;			;		;	;	;		;			;		;	;	lpreg!32	;		;			;		;	;	ptr5!c_dSCRATCH_0	call rdmovelp51;;			;		recclk;	rcsmsw ptr5;	call idle1;	;			;		;	;|*		move registers at ptr5 to ptr1rdmovelp51:	;		;			;		recclk;	rcslsw ptr5;	;		;			;		;	ptr1;	ptr5+	;		;			;		recoe;	ramwe rcsmsw ptr1;	lpreg-	;		;			;		recoe recclk;ramwe ptr1;	;		;			;		recoe;	ramwe rcslsw ptr1;	jloop rdmovelp51;;			;		recoe;	ramwe ptr1;	rtn;		;			;		recclk;	rcsmsw ptr5;	ptr1+|*		move registers at ptr1 to ptr5rdmovelp15:	;		;			;		recclk;	rcslsw ptr1;	;		;			;		;	ptr5;	ptr1+	;		;			;		recoe;	ramwe rcsmsw ptr5;	lpreg-	;		;			;		recoe recclk;ramwe ptr5;	;		;			;		recoe;	ramwe rcslsw ptr5;	jloop rdmovelp15;;			;		recoe;	ramwe ptr5;	rtn;		;			;		recclk;	rcsmsw ptr1;	ptr5+|*|*	Test the loop counter|*routine c.tstlpreg w01001011010 lnop ssub	;		;			;		;	;	lpreg!0test.pt.a:	hng;		;			;		;	;	;		;			;		;	;	lpreg-	jloop test.pt.a;;			;		;	;	jloop0 test.pt.b;;			;		;	;	;		;			;		;	;	hng;		;			;		;	;test.pt.b:	hng;		;			;		;	;	call idle1;	;			;		;	;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -