//$FG,2$This loads a list of zero terminated $FG$//$FG,2$strings into the symbol table and $FG$//$FG,2$gives a name to it. Strings like $FG$//$FG,2$this are known as SysText entries.$FG$$FG$ LoadList("ST_RAINBOW", "BLACK\0" "BROWN\0" "RED\0" "LTRED\0" //closest to orange "YELLOW\0" "GREEN\0" "BLUE\0" "PURPLE\0" "LTGRAY\0" "WHITE\0\0"); void ShowDigit(I1 ch) { //$FG,2$The $FG,4$%Z$FG$ $FG,2$code displays a systext subentry$FG$ PrintF("$$FG,%Z$$%d$$FG$$",ch-'0', "ST_RAINBOW",ch-'0'); } void ShowPattern(I1 *st) { I1 ch; while (ch=*st++) ShowDigit(ch); CrLf; } void SongEndTsk() { Sound(0); Exit; } void SongTsk() { Fs->end_task_cb=&SongEndTsk; ResetMusicSettings; while (TRUE) Play("qRsCECEsDGDGetACBeRGet2G3EReRDqGqRsCECEsDGDGetACBeRGet2G3EReRDqGqGqAetEAFetREAsAGAGsRDRDsCDCDe2G3BqGqAetEAFetREAsAGAGsRDRDsCDCDe2G3B"); } void Digits() { I8 num,ch,i; I1 answer[1024]; TssStruct *song_tss=Spawn(&SongTsk,"Digits Song",Fs); BoolU4 old_mute=music_mute; LtfClear; //$FG,2$Set default background and foreground$FG$ coutln "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$" "\r\nThis is a memory game. " "Try to remember the digits and enter them. " "They are colored based on electrical " "engineering color codes."; for (i=0;i<10;i++) { PrintF("$$FG,%Z$$%d: %Z\r\n", i,"ST_RAINBOW", i, i,"ST_RAINBOW" ); } coutln "$$FG$$"; //$FG,2$set to default background$FG$ if (!PressAKey) goto exit; while (TRUE) { restart: num=0; //$FG,2$Set to zeros so we have terminators$FG$ MemSet(answer,0,sizeof(answer)); while (TRUE) { LtfClear; coutln "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$"; PrintF("Pattern\r\nLength:%d\r\n" "\r\n", num+1); answer[num++]=RandU4%10+'0'; ShowPattern(answer); if (!PressAKey) goto exit; LtfClear; coutln "$$WW,1$$$$BD,DKGRAY$$$$FD,WHITE$$"; PrintF("Guess\r\nLength:%d\r\n" "\r\n", num); for (i=0;i