/******************************* * FUNCS - Test Function Calls * *******************************/ //Specify System Header using -H option #include #include #include #include char i; //index value char n; //result of function call char s[128]; //for Numeric to String conversions char z; //Function Parameters const char passed = " Passed."; const char failed = " Failed."; main: for (i=1;i<5;i++) test(i); putln("Testing complete."); goto exit; //Test Use of Variable as Parameter void test(z) { select(z) { case 1: test1(); case 2: test2(); case 3: test3(); case 4: test4(); default: printf(z, "Bad test value %d\n."); } } void test1() { puts("atoc(\"1\") = "); n = atoc("1"); prtnum(n); checkn(1); } void test2() { puts("atoc(\"2\") = "); n = atoc("2"); prtnum(n); checkn(2); } void test3() { puts("atoc(\"1\") + 2 = "); n = atoc("1") + 2; prtnum(n); checkn(3); } void test4() { puts("abs(atoc(\"255\") + 7 = "); n = abs(atoc("255")) + 7; prtnum(n); checkn(8); } //uses explicit passing of accumulator void checkn() {if (A == n) pass(); else fail();} //uses implicit passing of accumulator void prtnum() {ctoa(&s); puts(&s); putc(':');} //one more level of function calls - just because void pass() {putln(&passed);} void fail() {putln(&failed);}