User manual
114 Register-Based Programming  Appendix B 
 /* Open a device session for the E1460A at laddr 112. */
 e1460a = iopen(E1460A);
 /* Map in the A16 registers */
 dev_ptr=(DEVICE_REGISTERS *) imap(e1460a, I_MAP_VXIDEV, 0, 1, 0);
 /* Check card ID */ 
 id=dev_ptr->>devtype_reg;
 if(id==0x0100)
 printf("Card identified as E1460A\n");
 else
 {
 printf("Card not an E1460A - ID code: %hu\n",id);
 }
 /* Open all relays */
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank0_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank1_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank2_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank3_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank4_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank5_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank6_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank7_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0); dev_ptr->>bank99_reg=0x000;
 while(((dev_ptr->>statcntl_reg)&BUSY)==0);
 /* Close control relays 0992, 0993 & 0995 for 2X64 2-wire mode. */
 while(((dev_ptr->>statcntl_reg)&BUSY)==0);
 dev_ptr->>bank99_reg=0x02c;
 printf("Scanning bank 0, channels 0-7\n");
 rly = 1;
 for(i=0; iL8; i++)
 {
 while(((dev_ptr->>statcntl_reg)&BUSY)==0);
 dev_ptr->>bank0_reg=rly;
 printf("Scanned bank 0 channel %d\n",i);
 rly = 2 * rly;
 }
 printf("Done\n");
 exit(0);
 }










