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

📄 eribld_aqpcs.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
📖 第 1 页 / 共 3 页
字号:
	cnd[6] = elrp->el_body.el_aqpcs.idreg == 0x21;	cnd[7] = elrp->el_body.el_aqpcs.idreg == 0x22;	cnd[8] = elrp->el_body.el_aqpcs.idreg == 0x23;	cnd[9] = elrp->el_body.el_aqpcs.idreg == 0x24;	cnd[10] = elrp->el_body.el_aqpcs.idreg == 0x25;	cnd[11] = elrp->el_body.el_aqpcs.idreg == 0x31;	cnd[12] = elrp->el_body.el_aqpcs.idreg == 0x32;	cnd[13] = elrp->el_body.el_aqpcs.idreg == 0x41;	cnd[14] = elrp->el_body.el_aqpcs.idreg == 0x42;	cnd[15] = elrp->el_body.el_aqpcs.idreg == 0x51;	cnd[16] = elrp->el_body.el_aqpcs.idreg == 0x52;	cnd[17] = elrp->el_body.el_aqpcs.idreg == 0x53;	cnd[18] = elrp->el_body.el_aqpcs.idreg == 0x54;	cnd[19] = elrp->el_body.el_aqpcs.ricpem.ric.rcreg & 0x01;	cnd[20] = elrp->el_body.el_aqpcs.ricpem.ric.rcreg & 0x02;	cnd[21] = elrp->el_body.el_aqpcs.ricpem.ric.rcreg & 0x04;	cnd[22] = elrp->el_body.el_aqpcs.ricpem.ric.rcreg & 0x08;	cnd[23] = elrp->el_body.el_aqpcs.ricpem.ric.rcreg & 0x10;	clear_sips();	sip[0] = DD$aqpcs_hwsrega_1;	sip[1] = DD$aqpcs_hwsrega_2;	sip[2] = DD$aqpcs_hwsrega_3;	sip[3] = DD$aqpcs_hwsrega_4;	sip[4] = DD$aqpcs_hwsrega_5;	sip[5] = DD$aqpcs_hwsrega_6;	sip[6] = DD$aqpcs_hwsrega_7;	sip[7] = DD$aqpcs_hwsrega_8;	sip[8] = 0;	qualified_translate(PCS.ricpem.ric.hwsrega, qt_hwsrega);  /* Hardware Status Register B */	os_std(&PCS.ricpem.ric.hwsregb, OS$gen_tiny, DD$aqpcs_hwsregb);	clear_conditions();	cnd[1] = elrp->el_body.el_aqpcs.idreg == 0x11;	cnd[2] = elrp->el_body.el_aqpcs.idreg == 0x12;	cnd[3] = elrp->el_body.el_aqpcs.idreg == 0x13;	cnd[4] = elrp->el_body.el_aqpcs.idreg == 0x14;	cnd[5] = elrp->el_body.el_aqpcs.idreg == 0x15;	cnd[6] = elrp->el_body.el_aqpcs.idreg == 0x21;	cnd[7] = elrp->el_body.el_aqpcs.idreg == 0x22;	cnd[8] = elrp->el_body.el_aqpcs.idreg == 0x23;	cnd[9] = elrp->el_body.el_aqpcs.idreg == 0x24;	cnd[10] = elrp->el_body.el_aqpcs.idreg == 0x25;	cnd[11] = elrp->el_body.el_aqpcs.idreg == 0x31;	cnd[12] = elrp->el_body.el_aqpcs.idreg == 0x32;	cnd[13] = elrp->el_body.el_aqpcs.idreg == 0x41;	cnd[14] = elrp->el_body.el_aqpcs.idreg == 0x42;	cnd[15] = elrp->el_body.el_aqpcs.idreg == 0x51;	cnd[16] = elrp->el_body.el_aqpcs.idreg == 0x52;	cnd[17] = elrp->el_body.el_aqpcs.idreg == 0x53;	cnd[18] = elrp->el_body.el_aqpcs.idreg == 0x54;	clear_sips();	sip[0] = DD$aqpcs_hwsregb_1;	sip[1] = DD$aqpcs_hwsregb_2;	sip[2] = DD$aqpcs_hwsregb_3;	sip[3] = DD$aqpcs_hwsregb_4;	sip[4] = DD$aqpcs_hwsregb_5;	sip[5] = DD$aqpcs_hwsregb_6;	sip[6] = DD$aqpcs_hwsregb_7;	sip[7] = DD$aqpcs_hwsregb_8;	sip[8] = 0;	qualified_translate(PCS.ricpem.ric.hwsregb, qt_hwsregb);  /* Hardware Status Register C */	os_std(&PCS.ricpem.ric.hwsregc, OS$gen_tiny, DD$aqpcs_hwsregc);	clear_conditions();	cnd[1] = elrp->el_body.el_aqpcs.idreg == 0x51;	cnd[2] = elrp->el_body.el_aqpcs.idreg == 0x52;	cnd[3] = elrp->el_body.el_aqpcs.idreg == 0x53;	cnd[4] = elrp->el_body.el_aqpcs.idreg == 0x54;	clear_sips();	sip[0] = DD$aqpcs_hwsregc_1;	sip[1] = DD$aqpcs_hwsregc_2;	sip[2] = DD$aqpcs_hwsregc_3;	sip[3] = DD$aqpcs_hwsregc_4;	sip[4] = DD$aqpcs_hwsregc_5;	sip[5] = DD$aqpcs_hwsregc_6;	sip[6] = DD$aqpcs_hwsregc_7;	sip[7] = DD$aqpcs_hwsregc_8;	sip[8] = 0;	qualified_translate(PCS.ricpem.ric.hwsregc, qt_hwsregc);  /* Hardware Status Register D */	os_std(&PCS.ricpem.ric.hwsregd, OS$gen_tiny, DD$aqpcs_hwsregd);	clear_conditions();	cnd[1] = elrp->el_body.el_aqpcs.idreg == 0x51;	cnd[2] = elrp->el_body.el_aqpcs.idreg == 0x52;	cnd[3] = elrp->el_body.el_aqpcs.idreg == 0x53;	cnd[4] = elrp->el_body.el_aqpcs.idreg == 0x54;	clear_sips();	sip[0] = DD$aqpcs_hwsregd_1;	sip[1] = DD$aqpcs_hwsregd_2;	sip[2] = DD$aqpcs_hwsregd_3;	sip[3] = DD$aqpcs_hwsregd_4;	sip[4] = DD$aqpcs_hwsregd_5;	sip[5] = DD$aqpcs_hwsregd_6;	sip[6] = DD$aqpcs_hwsregd_7;	sip[7] = DD$aqpcs_hwsregd_8;	sip[8] = 0;	qualified_translate(PCS.ricpem.ric.hwsregd, qt_hwsregd);	os_std(&PCS.ricpem.ric.hwsrege, OS$gen_tiny, DD$aqpcs_hwsrege);	os_std(&PCS.ricpem.ric.hwsregf, OS$gen_tiny, DD$aqpcs_hwsregf);  /* Power Fail Register */	os_std(&PCS.ricpem.ric.pfreg_1, OS$gen_short, DD$aqpcs_pfreg);	clear_conditions();	/* cnd[1] follows cnd[20] */	cnd[2] = (elrp->el_body.el_aqpcs.ricpem.ric.pfreg_1&0x8) == 0x0;	cnd[3] = elrp->el_body.el_aqpcs.idreg == 0x11;	cnd[4] = elrp->el_body.el_aqpcs.idreg == 0x12;	cnd[5] = elrp->el_body.el_aqpcs.idreg == 0x13;	cnd[6] = elrp->el_body.el_aqpcs.idreg == 0x14;	cnd[7] = elrp->el_body.el_aqpcs.idreg == 0x15;	cnd[8] = elrp->el_body.el_aqpcs.idreg == 0x21;	cnd[9] = elrp->el_body.el_aqpcs.idreg == 0x22;	cnd[10] = elrp->el_body.el_aqpcs.idreg == 0x23;	cnd[11] = elrp->el_body.el_aqpcs.idreg == 0x24;	cnd[12] = elrp->el_body.el_aqpcs.idreg == 0x25;	cnd[13] = elrp->el_body.el_aqpcs.idreg == 0x31;	cnd[14] = elrp->el_body.el_aqpcs.idreg == 0x32;	cnd[15] = elrp->el_body.el_aqpcs.idreg == 0x41;	cnd[16] = elrp->el_body.el_aqpcs.idreg == 0x42;	cnd[17] = elrp->el_body.el_aqpcs.idreg == 0x51;	cnd[18] = elrp->el_body.el_aqpcs.idreg == 0x52;	cnd[19] = elrp->el_body.el_aqpcs.idreg == 0x53;	cnd[20] = elrp->el_body.el_aqpcs.idreg == 0x54;	cnd[1] = (cnd[3] || cnd[4] || cnd[5] || cnd[6] ||			cnd[7] || cnd[8] || cnd[9] || cnd[10] || cnd[11] ||			cnd[12] || cnd[13] || cnd[14] || cnd[15] || cnd[16] ) ;	clear_sips();	sip[0] = DD$aqpcs_pfreg_1;	sip[1] = DD$aqpcs_pfreg_2;	sip[2] = DD$aqpcs_pfreg_3;	sip[3] = DD$aqpcs_pfreg_4;	sip[4] = DD$aqpcs_pfreg_5;	sip[5] = DD$aqpcs_pfreg_6;	sip[6] = DD$aqpcs_pfreg_7;	sip[7] = DD$aqpcs_pfreg_8;	sip[8] = 0;	qualified_translate(PCS.ricpem.ric.pfreg_1|(PCS.ricpem.ric.pfreg_2<<8),				qt_pfreg);		/* scs register */	os_std(&PCS.ricpem.ric.scsreg, OS$gen_tiny, DD$aqpcs_scsreg);	if(		(PCS.idreg >= 0x11 && PCS.idreg <= 0x15) ||		(PCS.idreg >= 0x21 && PCS.idreg <= 0x25) ||		PCS.idreg == 0x31 ||		PCS.idreg == 0x32 ||		PCS.idreg == 0x41 ||		PCS.idreg == 0x42 	)		os_std(&PCS.ricpem.ric.rcreg, OS$gen_tiny, DD$aqpcs_rcreg);	if(format_type == 1){#define PF1 elrp->el_body.el_aqpcs.ricpem.ric.fmt.fmt1		os_std(&PF1.mgnreg, OS$gen_tiny, DD$aqpcs_mgnreg);		os_std(&PF1.measure, OS$gen_short, DD$aqpcs_measure);		os_std(&PF1.low, OS$gen_short, DD$aqpcs_low);		os_std(&PF1.high, OS$gen_short, DD$aqpcs_high);		os_std(&PF1.reg0cur, OS$gen_short, DD$aqpcs_reg0cur);		os_std(&PF1.reg1cur, OS$gen_short, DD$aqpcs_reg1cur);		os_std(&PF1.reg2cur, OS$gen_short, DD$aqpcs_reg2cur);		os_std(&PF1.reg3cur, OS$gen_short, DD$aqpcs_reg3cur);		os_std(&PF1.reg4cur, OS$gen_short, DD$aqpcs_reg4cur);		unpackval("MEASURED VOLTAGE = %c%3d.%03d",			PF1.measure, measure_str, DD$aqpcs_measure_1);		unpackval("LOW LIMIT VOLTAGE = %c%3d.%03d",			PF1.low, low_str, DD$aqpcs_low_1);		unpackval("HIGH LIMIT VOLTAGE = %c%3d.%03d",			PF1.high, high_str, DD$aqpcs_high_1);		sprintf(reg0cur_str, "REG 0 CURRENT = %4d AMPS", PF1.reg0cur&0x0fff);		os_std(reg0cur_str, OS$gen_asc_52, DD$aqpcs_reg0cur_1);		sprintf(reg1cur_str, "REG 1 CURRENT = %4d AMPS", PF1.reg1cur&0x0fff);		os_std(reg1cur_str, OS$gen_asc_52, DD$aqpcs_reg1cur_1);		sprintf(reg2cur_str, "REG 2 CURRENT = %4d AMPS", PF1.reg2cur&0x0fff);		os_std(reg2cur_str, OS$gen_asc_52, DD$aqpcs_reg2cur_1);		sprintf(reg3cur_str, "REG 3 CURRENT = %4d AMPS", PF1.reg3cur&0x0fff);		os_std(reg3cur_str, OS$gen_asc_52, DD$aqpcs_reg3cur_1);		sprintf(reg4cur_str, "REG 4 CURRENT = %4d AMPS", PF1.reg4cur&0x0fff);		os_std(reg4cur_str, OS$gen_asc_52, DD$aqpcs_reg4cur_1);	}	if(format_type == 2){#define PF2 elrp->el_body.el_aqpcs.ricpem.ric.fmt.fmt2		os_std(&PF2.tempa_1, OS$gen_short, DD$aqpcs_tempa);		os_std(&PF2.tempb_1, OS$gen_short, DD$aqpcs_tempb);		os_std(&PF2.yellowa_1, OS$gen_short, DD$aqpcs_yellowa);		os_std(&PF2.reda_1, OS$gen_short, DD$aqpcs_reda);		os_std(&PF2.yellowb_1, OS$gen_short, DD$aqpcs_yellowb);		os_std(&PF2.redb_1, OS$gen_short, DD$aqpcs_redb);		os_std(&PF2.open_1, OS$gen_short, DD$aqpcs_open);		os_std(&PF2.shortsensor_1, OS$gen_short, DD$aqpcs_shortsensor);		unpackval_b("TEMPERATURE A = %c%3d.%02d DEG C",			PF2.tempa_1|(PF2.tempa_2<<8),			tempa_str, DD$aqpcs_tempa_1);		unpackval_b("TEMPERATURE B = %c%3d.%02d DEG C",			PF2.tempb_1|(PF2.tempb_2<<8),			tempb_str, DD$aqpcs_tempb_1);		unpackval_b("YELLOW ZONE A = %c%3d.%02d DEG C",			PF2.yellowa_1|(PF2.yellowa_2<<8),			yellowa_str, DD$aqpcs_yellowa_1);		unpackval_b("RED ZONE A = %c%3d.%02d DEG C",			PF2.reda_1|(PF2.reda_2<<8),			reda_str, DD$aqpcs_reda_1);		unpackval_b("YELLOW ZONE B = %c%3d.%02d DEG C",			PF2.yellowb_1|(PF2.yellowb_2<<8),			yellowb_str, DD$aqpcs_yellowb_1);		unpackval_b("RED ZONE B = %c%3d.%02d DEG C",			PF2.redb_1|(PF2.redb_2<<8),			redb_str, DD$aqpcs_redb_1);		unpackval_b("OPEN VALUE = %c%3d.%02d DEG C",			PF2.open_1|(PF2.open_2<<8),			open_str, DD$aqpcs_open_1);		unpackval_b("SHORTED VALUE = %c%3d.%02d DEG C",			PF2.shortsensor_1|(PF2.shortsensor_2<<8),			shortsensor_str, DD$aqpcs_shortsensor_1);	}  } else if( format_type >= 4 && format_type <= 7 ) {    /* psreg */	os_std(&PCS.ricpem.pem.psreg, OS$gen_short,		DD$aqpcs_psreg);	clear_conditions();	cnd[1] = PCS.idreg == 0;	cnd[2] = PCS.xcpid == 0;	cnd[3] = PCS.xcpid == 1;	cnd[4] = PCS.xcpid == 2;	cnd[5] = PCS.xcpid == 3;	cnd[6] = PCS.xcpid == 4;	cnd[7] = PCS.xcpid == 5;	cnd[8] = PCS.xcpid == 6;	cnd[9] = PCS.xcpid == 7;	cnd[10] = PCS.xcpid == 8;	cnd[11] = PCS.xcpid == 9;	cnd[12] = (pem_stcreg>>10&0xf) == 0;	cnd[13] = (pem_stcreg>>10&0xf) == 1;	clear_sips();	sip[0] = DD$aqpcs_psreg_1;	sip[1] = DD$aqpcs_psreg_2;	sip[2] = DD$aqpcs_psreg_3;	sip[3] = DD$aqpcs_psreg_4;	sip[4] = DD$aqpcs_psreg_5;	sip[5] = DD$aqpcs_psreg_6;	sip[6] = DD$aqpcs_psreg_7;	sip[7] = DD$aqpcs_psreg_8;	sip[8] = DD$aqpcs_psreg_9;	sip[9] = DD$aqpcs_psreg_10;	sip[10] = DD$aqpcs_psreg_11;	sip[11] = DD$aqpcs_psreg_12;	sip[12] = DD$aqpcs_psreg_13;	sip[13] = DD$aqpcs_psreg_14;	sip[14] = DD$aqpcs_psreg_15;	sip[15] = DD$aqpcs_psreg_16;	sip[16] = 0;	value = elrp->el_body.el_aqpcs.ricpem.pem.psreg;	qualified_translate(value, qt_psreg);	if((pem_stcreg>>10&0xf) == 0) {	  os_std(&PCS.ricpem.pem.pwr1reg, OS$gen_tiny, DD$aqpcs_pwr1reg_a);	  os_std(&PCS.ricpem.pem.pwr2reg, OS$gen_tiny, DD$aqpcs_pwr2reg_a);	} else {	  os_std(&PCS.ricpem.pem.pwr1reg, OS$gen_tiny, DD$aqpcs_pwr1reg_b);	  os_std(&PCS.ricpem.pem.pwr2reg, OS$gen_tiny, DD$aqpcs_pwr2reg_b);	}	os_std(&PCS.ricpem.pem.stcreg_1, OS$gen_short, DD$aqpcs_stcreg);	os_std(&PCS.ricpem.pem.connreg, OS$gen_tiny, DD$aqpcs_connreg);#define PF4 elrp->el_body.el_aqpcs.ricpem.pem.fmt.fmt4#define PF5 elrp->el_body.el_aqpcs.ricpem.pem.fmt.fmt5#define PF6 elrp->el_body.el_aqpcs.ricpem.pem.fmt.fmt6#define PF7 elrp->el_body.el_aqpcs.ricpem.pem.fmt.fmt7	if( format_type == 4 ) {	  if((pem_stcreg>>10&0xf) == 0) {		os_std(&PF4.keyabreg, OS$gen_tiny, DD$aqpcs_keyabreg_aq);		os_std(&PF4.keybcreg, OS$gen_tiny, DD$aqpcs_keybcreg_aq);	  }	  if((pem_stcreg>>10&0xf) == 1) {		os_std(&PF4.keyabreg, OS$gen_tiny, DD$aqpcs_keyabreg_ar);		os_std(&PF4.keybcreg, OS$gen_tiny, DD$aqpcs_keybcreg_ar);	  }	  os_std(&PF4.ricavarsb[0], OS$gen_short, DD$aqpcs_ricavarsb_1);	  os_std(&PF4.ricavarsb[1], OS$gen_short, DD$aqpcs_ricavarsb_2);	  os_std(&PF4.ricavarsb[2], OS$gen_short, DD$aqpcs_ricavarsb_3);	  os_std(&PF4.ricavarsb[3], OS$gen_short, DD$aqpcs_ricavarsb_4);	  os_std(&PF4.ricavarsb[4], OS$gen_short, DD$aqpcs_ricavarsb_5);	  os_std(&PF4.ricavarsb[5], OS$gen_short, DD$aqpcs_ricavarsb_6);	  os_std(&PF4.ricavarsb[6], OS$gen_short, DD$aqpcs_ricavarsb_7);	  os_std(&PF4.ricavarsb[7], OS$gen_short, DD$aqpcs_ricavarsb_8);	  os_std(&PF4.ricavarsb[8], OS$gen_short, DD$aqpcs_ricavarsb_9);	  os_std(&PF4.ricavarsb[9], OS$gen_short, DD$aqpcs_ricavarsb_10);	  os_std(&PF4.ricavarsb[10], OS$gen_short,DD$aqpcs_ricavarsb_11);	  os_std(&PF4.ricavarsb[11], OS$gen_short,DD$aqpcs_ricavarsb_12);	  os_std(&PF4.ricavarsb[12], OS$gen_short,DD$aqpcs_ricavarsb_13);	  os_std(&PF4.ricavarsb[13], OS$gen_short,DD$aqpcs_ricavarsb_14);	  os_std(&PF4.ricavarsb[14], OS$gen_short,DD$aqpcs_ricavarsb_15);	  os_std(&PF4.ricavarsb[15], OS$gen_short,DD$aqpcs_ricavarsb_16);	  os_std(&PF4.ricavarsb[16], OS$gen_short,DD$aqpcs_ricavarsb_17);	  os_std(&PF4.ricavarsb[17], OS$gen_short,DD$aqpcs_ricavarsb_18);	} else if( format_type == 5 ) {		os_std(&PF5.bbureg, OS$gen_tiny, DD$aqpcs_bbureg);	} else if( format_type == 6 ) {		os_std(&PF6.ocpswreg, OS$gen_short, DD$aqpcs_ocpswreg);		if(PF6.ocpdisreg[0] || PF6.ocpdisreg[1] || PF6.ocpdisreg[2])		  os_std(&PF6.ocpdisreg[0], OS$gen_long, DD$aqpcs_ocpdisreg);	} else if( format_type == 7 ) {	  if((pem_stcreg>>10&0xf) == 0)		os_std(&PF7.bscreg, OS$gen_tiny, DD$aqpcs_bscreg_aq);	  else		os_std(&PF7.bscreg, OS$gen_tiny, DD$aqpcs_bscreg_ar);	}  } }  /*   */	if( status == EI$FAIL )		return(EI$FAIL);	else		return(EI$SUCC);}clear_conditions(){	int i;	cnd[0] = 1; /* condition 0 is always true */	for(i=1; i<=MAX_CONDS; i++)		cnd[i] = 0;}clear_sips(){	int i;	for(i=0; i<=MAX_SIPS; i++)		sip[i] = 0;}qualified_translate(value, qt_table)unsigned long value;char *qt_table;{	unsigned long v;	struct qt_entry *qt;	int next_si = 0; /* index into sip of next std item to use */	cnd[0] = 1; /* condition 0 is always true */	for(qt=(struct qt_entry *)qt_table; qt->qcond1 != -1; qt++) {			/* check qualifying conditions */		if( !cnd[qt->qcond1] || !cnd[qt->qcond2] || !cnd[qt->qcond3] )			continue;			/* get the field */		v = value;				/* knock off left bits */#define BITS_IN_LONG 32		v = v << (BITS_IN_LONG-1) - qt->field_leftbit;		v = v >> (BITS_IN_LONG-1) - qt->field_leftbit + qt->field_rightbit;			/* test field against test value. */			/* -1 for test_value means any non-zero v matches */			/* -2 for test_value means any non-0xf v matches */		if( (v != qt->test_value) &&		    !(qt->test_value == -1 && v ) &&		    !(qt->test_value == -2 && v != 0xf ) )			continue;			/* use the string */		if( !sip[next_si] )	/* no standard item pointer? */			break;		os_std(qt->translate_string, OS$gen_asc_52, sip[next_si++]);		if( next_si == MAX_SIPS )			break;	}}/* unpack a special numeric format using given format   and given buffer and std_item */unpackval(fmt, val, buf, std_item)char *fmt;unsigned short val;char *buf;int std_item;{	sprintf(buf, fmt,		(val&0x8000?'-':'+'), val>>10&0x1f, val&0x3ff);	os_std(buf, OS$gen_asc_52, std_item);}/* unpack, but use slightly different pack format than unpackval */unpackval_b(fmt, val, buf, std_item)char *fmt;unsigned short val;char *buf;int std_item;{	sprintf(buf, fmt,		(val&0x8000?'-':'+'), val>>8&0x7f, val&0xff);	os_std(buf, OS$gen_asc_52, std_item);}

⌨️ 快捷键说明

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