100 !======================================================================== !************************************************************************ !************************************************************************ !************** Program : DISP_WORDS **************** !************ Author: Victor Blosser ************** !************** Version : #1.6 **************** !************************************************************************ !************************************************************************ !======================================================================== VERSION$ = "V1.6" PROGID$ = "DISP_WORDS" !*************************** LABELS ROUTINE ***************************** %INCLUDE "DEF_EXT_SUBPROGRAMS.BAS" %INCLUDE "DEF_VARIABLES.BAS" DIM SAYING$(500) DIM LINES$(10) ! ************************ DEFINE FUNCTIONS ******************************** %INCLUDE "DEF_FUNCTIONS.BAS" !=========================================================================== ! Main Code !=========================================================================== WHEN ERROR USE error_handler MAIN: name$ = Owner_name$ sp_pos = POS(Owner_name$," ",2) fst_name$ = LEFT$(name$,sp_pos - 1) lst_name$ = RIGHT$(name$,sp_pos + 1) RANDOMIZE Done$ = "N" cnt = 1 file_err$ = "N" OPEN "SAYINGS.CNT;1" AS FILE #1, ACCESS SCRATCH WHEN ERROR IN INPUT #1, cur_cnt USE file_err$ = "Y" cur_cnt = 1 CONTINUE END WHEN OPEN "SAYINGS.LIS" FOR INPUT AS FILE #2 UNTIL Done$ = "Y" WHEN ERROR IN LINPUT #2, SAYING$(cnt) USE IF (ERR <> 155 AND ERR <> 11) THEN PRINT MSGLN$;"WARNING >>> ";ERT$(ERR);ERR; Display$ = STOP$ END IF CLOSE #2 Done$ = "Y" END WHEN cnt = cnt + 1 NEXT cnt = cnt - 1 IF cur_cnt > cnt THEN cur_cnt = 1 END IF cnt = 1 output_quote: char_pos = POS(quote$,"|",1) IF char_pos > 1 THEN LINE$(cnt) = LEFT$(quote$,char_pos - 1) quote$ = RIGHT$(quote$,char_pos + 1) cnt = cnt + 1 GOTO output_quote ELSE LINE$(cnt) = quote$ END IF total_lines = cnt PRINT CLS$ GOSUB FACE cnt = 1 UNTIL cnt > total_lines IF (cnt = 1) AND (LINE$(cnt) = "") THEN L$ = "Hi! " + fst_name$ ELSE L$ = LINE$(cnt) END IF IF L$ <> "" THEN GOSUB DO_IT SLEEP 1 END IF cnt = cnt + 1 NEXT cur_cnt = cur_cnt + 1 GOSUB save_cur_cnt GOTO TERM ! END PROGRAM ! ************************ DEFINE SUBROUTINES ****************************** save_cur_cnt: IF file_err$ = "N" THEN SCRATCH #1 END IF PRINT #1, cur_cnt CLOSE #1 RETURN DO_IT: LINE$ = EDIT$(L$,156%) P_T_S = FIX((80 - LEN(LINE$))/2) PLACE_TO_START$ = SPACE$(P_T_S) PRINT L9$;EL$;PLACE_TO_START$;SV$ LOOP2: END_WORD = POS(LINE$," ",1) IF END_WORD = 0 THEN WORD$ = LINE$ ELSE WORD$ = LEFT$(LINE$,END_WORD) END IF GOSUB TALK LINE$ = RIGHT$(LINE$,END_WORD + 1) IF LINE$ = WORD$ THEN RETURN ELSE GOTO LOOP2 END IF FACE: PRINT L9$;GON$; PRINT "" PRINT USING C1$, "WWWWWWW" PRINT USING C1$, "[ © © ]" PRINT USING C1$, "x ^ x" PRINT USING C1$, "x\sss/x" PRINT USING C1$, "mqwqwqj" PRINT GOFF$; SLEEP 1 RETURN TALK: PRINT GON$; PRINT L13$; PRINT USING C1$,"x\aaa/x" PRINT GOFF$; PRINT RS$;WORD$;SV$ PRINT GON$; PRINT L13$; PRINT USING C1$,"x\sss/x" PRINT GOFF$; FOR X = 1 TO 4000 NEXT X RETURN FROWN: PRINT GON$; PRINT L13$; PRINT USING C1$,"x/ppp\x" PRINT GOFF$; RETURN !==================================================================== ! Terminate Program Module !==================================================================== TERM: PRINT NRM$; END WHEN !primary program error handler HANDLER error_handler PRINT BEL;MSGLN$;"UNEXPECTED ERROR >> #";ERR;" ";ERT$(ERR); PRINT " IN MODULE ";ERN$;CLL$; PRINT BEL;CMDLN$;"NOTE ERROR - "; PRINT "Press '";INV$;"RETURN";NRM$;"' To Continue";CLL$; SET NO PROMPT INPUT A$ SET PROMPT PRINT CMDLN$;EL$; PRINT MSGLN$;EL$; CONTINUE END HANDLER END