while (!initial_user_tasks_startup_complete) SwapInNext; void ASCIIKeys(I1 *st) { U8 ch; I1 buf[80]; do { ch=GetKey; if (ch==*st) { PutChar(ch); st++; } else { if (*st==CH_CR) SPrintF(buf,"Press the '$$FG GREEN$$ENTER$$FG$$' key"); else SPrintF(buf,"Press the '$$FG GREEN$$%c$$FG$$' key",*st); PopUpOk(buf); } } while (*st); } void SlowASCIIAutoType(I1 *st) { U8 ch; do { if (ch=*st++) { PutChar(ch); Sleep(100); } } while (ch); } void SpecialKey(U8 scancode,I1 *name) { U8 sc,ch; I1 buf[80]; do { ch=GetChar2(&sc); if (sc&0xFF!=SC_PRTSCRN1) { if (sc&0xFF!=scancode&0xFF) { SPrintF(buf,"Press the '$$FG GREEN$$%s$$FG$$' key",name); PopUpOk(buf); } } } while (sc&0xFF!=scancode&0xFF); Msg(MSG_KEY_DOWN,ch,sc); } void SpecialASCIIKey(U8 ch1,I1 *name,U8 flag_mask=0,U8 flags=0) { U8 sc,ch; I1 buf[80]; do { ch=GetChar2(&sc); if (ch && ch!=ch1) { SPrintF(buf,"Press the '$$FG GREEN$$%s$$FG$$' key",name); PopUpOk(buf); } } while (ch!=ch1 || (sc&flag_mask!=flags)); Msg(MSG_KEY_DOWN,ch,sc); } void UntilSpecialKey(U8 scancode) { U8 sc,ch; do { ch=GetChar2(&sc); Msg(MSG_KEY_DOWN,ch,sc); } while (sc&0xFF!=scancode&0xFF); } void UntilASCIIKey(U8 ch1) { U8 sc,ch; do { ch=GetChar2(&sc); Msg(MSG_KEY_DOWN,ch,sc); } while (ch!=ch1); } public I8 PopUpTourPart() { I8 i; Ltf *l=LtfNew; LtfPutS(l,"$$FG PURPLE$$LoseThos Tours$$FG$$\r\n\r\n"); LtfPutS(l,"$$CM +LX, 4,4$$$$BT, \"Part 1: The basics\",1$$"); LtfPutS(l,"$$CM +LX, 4,4$$$$BT, \"Part 2: Editing and running programs\",2$$"); LtfPutS(l,"$$CM +LX, 4,4$$$$BT, \"Part 3: Adding macros to your start menu\",3$$"); LtfPutS(l,"$$CM +LX, 4,4$$$$BT, \"Part 4: WordStat\",4$$"); LtfPutS(l,"$$CM +LX, 4,4$$$$BT, \"Done\",-1$$"); i=PopUpMenu(l); LtfDel(l); return i; } I8 i; do { switch (i=PopUpTourPart) { case 1: ExecuteFile("::/LT/ACCOUNTS/TOUR/TOUR1.AUZ"); break; case 2: ExecuteFile("::/LT/ACCOUNTS/TOUR/TOUR2.AUZ"); break; case 3: ExecuteFile("::/LT/ACCOUNTS/TOUR/TOUR3.AUZ"); break; case 4: ExecuteFile("::/LT/ACCOUNTS/TOUR/TOUR4.AUZ"); break; } } while (i>=1);