User manual
Register-Based Programming 109Appendix B
#include <stdio.h>
#include <chpib.h>
#include <cfunc.h>
#define LOG_ADDR 112L
#define BASE_ADDR (long) ((0x1FC000) + (64 * LOG_ADDR))
main ()
{
int reg_addr = 36;
long bit_number = 5;
float send_data[3], read;
char state[2] = {13,10};
send_data[1] = 16;
send_data[2] = 1;
send_data[0] = BASE_ADDR + reg_addr;
IOEOI (7L, 0);IOEOL (7L, "", 0);
IOOUTPUTS (70900L, "DIAG:POKE", 10);
IOEOI (7L, 1);IOEOL (7L, state,0);
IOOUTPUTA (70900L, send_data, 3);
send_data[0] = BASE_ADDR + 4;
IOEOI (7L, 0);IOEOL (7L," ", 0);
IOUTPUTS (70900L, "DIAG:PEEK?", 11);
IOEOI (7L, 1);IOEOL (7L, state, 2);
IOOUTPUTA (70900L, send_data, 2);
while (bit_number != 0)
{
IOENTER(70900L, &read);
bit_number = ((long) (read)> 6 & 1);
}
return 0;
}