1'HANGMN.100byRickPerry[75665,1045] 2'requiresFilesOfWordsNamed"WORDSn.DO"(where"n"isAdigit,0to9)containing 3'oneWord(upTo15letters)PerLine(upTo250lines(ValueOf"LM"))inUPPERCASE. 4'ifYouOnlyHaveOneWordFileItWillAutomaticallyBeUsed,OtherwiseYouGetAchoice. 5'alsoRequiresSUBLIB.CO(seeSUBLDR.100[70130,101]inXA2) 6CLEAR256,62299:LOADM"SUBLIB":DEFINTA-Z:LM=250:DIML(LM):A$="":GOSUB47 7SEED#=VAL(RIGHT$(TIME$,2))+60*VAL(MID$(TIME$,4,2))+3600*(VAL(LEFT$(TIME$,2))MOD12) 8W1=0:W2=0 9GOSUB64:D=(M+1)*RAN#:L=L(D):L(D)=L(M):M=M-1:GOSUB65:ANS$="":BOARD$="":USED$="" 10FORI=1TOLEN(A$):ANS$=ANS$+" "+MID$(A$,I,1):BOARD$=BOARD$+" -":NEXTI 11G=0:GOSUB32 12?@130,BOARD$;:?@50,"USED:"USED$; 13?@250,"Enter guess: "; 14X$=INPUT$(1):?@250,SPACE$(12) 15IFX$>="a"ANDX$<="z"THENX$=CHR$(ASC(X$)-32) 16IFX$<"A"ORX$>"Z"THEN13 17IFINSTR(BOARD$,X$)>0ORINSTR(USED$,X$)>0THEN13ELSEIFINSTR(A$,X$)>0THEN28 18USED$=USED$+" "+X$:G=G+1:?@50,"USED:"USED$;:SOUND9394,10 19ONGGOSUB34,35,36,37,38,39,40:IFG<7THEN13 20W2=W2+1:?@250,"You're hung!";:?@170,ANS$;:GOSUB43 21CLS:?:?"You won";W1;"and lost";W2:? 22IFINKEY$<>""THEN22ELSEIFM>=0THEN25ELSE?"I'm out of words." 23?:?"Hit ENTER to play again." 24A$=INKEY$:IFA$=""THEN24ELSEIFA$<>CHR$(13)THEN27ELSEGOSUB47:GOTO8 25?"Hit ENTER to continue." 26A$=INKEY$:IFA$=""THEN26ELSEIFA$<>CHR$(13)THEN27ELSE9 27CLEAR256,MAXRAM:END 28I=0 29I=INSTR(I+1,A$,X$):IFI<>0THENMID$(BOARD$,2*I)=X$:GOTO29 30?@130,BOARD$;:BEEP:IFBOARD$<>ANS$THEN13 31W1=W1+1:?@250,"You win!";:GOSUB44:GOTO21 32CLS:LINE(10,63)-(20,60),1,BF:LINE(14,60)-(16,7),1,BF 33LINE(14,7)-(45,5),1,BF:LINE(38,7)-(38,16):RETURN 34?@86,"O";:PSET(37,18):PSET(39,18):PSET(38,20):RETURN 35LINE(38,23)-(38,29):RETURN 36LINE(38,27)-(30,35):RETURN 37LINE(38,27)-(46,35):RETURN 38LINE(38,29)-(38,40):RETURN 39LINE(38,40)-(30,48):RETURN 40LINE(38,40)-(46,48):RETURN 41DATA4679,20,5586,20,4184,40,5586,40,0 42DATA6269,10,4697,10,3718,10,3134,20,3718,10,3134,30,0 43RESTORE41:GOSUB45:RESTORE41:GOTO45 44RESTORE42:GOSUB45:RESTORE42 45READNO:IFNO=0THENRETURN 46READTI:SOUNDNO,TI:GOTO45 47A$="":PL(1)=-1705:NM$="":PL(2)=VARPTR(NM$) 48CALL62300,3,VARPTR(PL(0)):IFNOTPL(0)THEN50ELSEIFLEFT$(NM$,5)<>"WORDS"ORRIGHT$(NM$,2)<>"DO"ORMID$(NM$,6,1)=" "THEN48 49A$=A$+MID$(NM$,6,1):GOTO48 50IFA$=""THENSOUND9394,10:?"? Error. WORDSn.DO files not found.":GOTO27 51IFLEN(A$)=1THENNM$=A$:GOTO55 52CLS:?:?"Which word file shall I use ?":? 53FORI=1TOLEN(A$):?" "MID$(A$,I,1);:NEXTI:?:?:?"Enter selection: "; 54NM$=INPUT$(1):IFINSTR(A$,NM$)=0THENSOUND9394,10:GOTO54ELSE?NM$ 55A$="WORDS"+NM$+".DO":?"Wait...":PL(1)=-1705 56CALL62300,3,VARPTR(PL(0)):IFNM$<>A$THEN56 57L(0)=PL(4):AD=PL(5)+PL(4):PL(3)=PL(5):A$=CHR$(13):PL(2)=VARPTR(A$):PL(1)=PL(4) 58FORM=1TOLM:CALL62300,1,VARPTR(PL(0)):IFPL(0)THENPL(1)=PL(1)+2:L(M)=PL(1):PL(3)=AD-PL(1):NEXTM 59M=M-1:IFMCHR$(13)THEN27 62IFPEEK(L(M))=26THENM=M-1 63IFM<0THENSOUND9394,10:?"? Error. File "NM$" is empty.":GOTO23ELSERETURN 64TMP#=25173*SEED#+13849:SEED#=TMP#-FIX(TMP#/65536)*65536:RAN#=SEED#/65536:RETURN 65A$="" 66A=PEEK(L):L=L+1:IFA=13ORA=26THENRETURNELSEA$=A$+CHR$(A):GOTO66