/************************************ * LOOPS - Test C02 Loop Structures * ************************************/ //Specify System Header using -H option #include #include char aa,ii; //Function Variables char b; //Comparison Variable char i; //Loop Counter void putlin() {putstr(); newlin();} void failed() {putlin(" FAILED");} void passed() {putlin(" PASSED");} main: putlin("TESTING LOOPS"); /* Test If/Goto Loop */ putstr("IF "); i = 0; ifloop: putchr('0'+i); i++; if (i < 8) goto ifloop; if (i=8) passed(); else failed(); /* Test Block If */ putstr("BLOCK "); b = 1; if (b>0) { prhex(b); putstr(" > "); prhex(0); passed(); } else failed(); putstr(" IF "); b = 0; if (b>0) failed(); else { putchr('0'+i); putstr(" = "); prhex(0); passed(); } /* Test While Loop */ putstr("WHILE "); i = 0; while (i < 8) { putchr('0'+i); i++; } if (i=8) passed(); else failed(); /* Test Do Loop */ putstr("DO "); i = 0; do { putchr('0'+i); i++; } while (i<8); if (i=8) passed(); else failed(); /* Test For Loop */ putstr("FOR "); i = 0; for (i=0;i<8;i++) { putchr('0'+i); } if (i=8) passed(); else failed(); /* While with Break */ putstr("BREAK "); i = 0; while ($FF) { if (i = 8) break; putchr('0'+i); i++; } if (i=8) passed(); else failed(); /* For with Continue */ putstr("CONT "); for (i=0;i<16;i++) { if (i & 1) { continue; i=$FF;} putchr('A'+i); } if (i=16) passed(); else failed(); /* Test Do with Break and Continue*/ i = 0; putstr("DO BC "); do { i++; if (!i&1) {continue; i=$FF;} if (i>16) break; putchr('A'+i); } while ($FF); if (i=17) passed(); else failed(); /* Test If/Else, Select in For Loop */ for(i = 0;i<4;i++) { select (i) { case 0: putstr("FOR "); b=0; case 1: putstr(" IF "); b=1; case 2: putstr(" ELSE "); b=2; case 3: putstr(" SELECT "); b=3; default: putstr(" ERROR! "); b=$FF; } putchr('0'+i); if (i & 1) putstr("-ODD "); else putstr("-EVEN"); if (i=b) passed(); else failed(); } putlin("ALL TESTS COMPLETE"); goto exit;