/**************************************************** * INTS - Test Integer Variables and Function Calls */ //Specify System Header using -H option #include #include #include #include #include #include #include #include char n; //Number of Characters char r[255]; //Test Array char s[128]; //Test String const char istr = "9876"; const char t = "CONST STRING."; alias int nmi = $FFFA; //NMI Vector alias int rst = $FFFC; //Reset Vector alias int brk = $FFFE; //Break Vector int addr; //Various Addresses int eoj; //End of Job const int less = $789A; const int more = $BCDE; int yx, dd; //Function Arguments and Variables char aa, xx, yy; struct record {char name[8], index; int addr;}; struct record rec; main: eoj = getend(); setdst(&rec.name); strcpy("FRED"); rec.index = $AB; rec.addr = $CDEF; newlin(); /* Print Vector Contents */ setdst(nmi); printf("NMI=$%w%n"); setdst(rst); printf("RST=$%w%n"); setdst(brk); printf("BRK=$%w%n%n"); /* Print Contents of EOJ */ setdst(eoj); printf("EOJ=$%w%n%n"); anykey(); /* Test Function Call Arguments */ putln("ADDR=49152"); addr = 49152; setdst(&49152); cmpdst(addr); putln("ADDR=&T"); addr = &t; setdst(t); cmpdst(addr); putln("ADDR=&REC"); addr = &rec; setdst(&rec); cmpdst(addr); putln("ADDR=&REC.NAME"); addr = &rec.name; setdst(&rec.name); cmpdst(addr); putln("ADDR=&REC.INDEX"); addr = &rec.index; setdst(&rec.index); cmpdst(addr); putln("ADDR=&REC.ADDR"); addr = &rec.addr; setdst(&rec.addr); cmpdst(addr); anykey(); puts("GOTO (EOJ)"); goto (eoj); failln(); goto exit; end: passln(); goto exit; int getend() { return &end; } void prtwrd(., yy, xx) { putchr('$'); puthex(yy); puthex(xx); } void cmpdst(yx) { dd = getdst(); prtwrd(yx); putchr('='); prtwrd(dd); if (>yx == >dd and