/* T_MUSFRC.C - Test the musical sound driver from the Frc Written by John, April 1992 */ #include /* all are 1 sec duration by default */ LOCAL_D UBYTE notes[] = { /* Basic note numbers */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x29, 0x3b, 0x3c, 0x3d, 0x0e, 0x3e, 0x2c, 0x3f, 0x04, 0x05, 0x25, 0x2f, 0x06, 0x07 }; LOCAL_D WORD volume=0; /* volume to use */ LOCAL_D WORD length=100; /* length of notes */ LOCAL_C VOID panic( INT num, INT errno) { TEXT b[100]; p_errs(&b[p_atob(&b[0],"panic num %d - ",&num)],errno); t_panic(&b[0]); } GLDEF_C main(VOID) { INT ret,i; VOID *pcb; UBYTE bb[100],*p; p_loadldd("SNDFRC.LDD"); if (ret=p_open(&pcb,"MUS:",-1)) panic(2,ret); p_puts("Musical notes tester - ? for help"); FOREVER { p_print("Next>"); p_gets(p=(&bb[0])); p=p_skipwh(p); if (!*p) continue; switch (p_toupper(*p++)) { case '?': p_puts("Q - Quit"); p_puts("V - Volume 0-3"); p_puts("L - Length 0-256"); p_puts("P - Play scale"); break; case 'Q': /* Quit */ p_close(pcb); if (ret=p_devdel("MUS",E_LDD)) panic(7,ret); return(0); case 'V': /* Volume */ if (p_stoi(&p,&volume)<0) volume=0; if (volume<0 || volume>3) volume=0; break; case 'L': /* Length */ if (p_stoi(&p,&length)<0) length=100; if (length<0 || length>256) length=100; break; case 'P': /* play that lot */ for (i=0;i