10:
20:
30:
40REM" Program by RUSHDEN ROY 20G
(Shuffle PROCedure by JOHN DAVIS)
For 8-BIT SOFTWARE and PD Aug.94
50:
60MODE7
70VDU23,1,0;0;0;0;
80CLS
90PROCROY
100PROCdh(6,10,1,"ANAGRAMS ")
110PROCdh(6,12,0,"(Another way to look
at them.)")
120PROCdh(6,16,0,"Word or words made b
y arranging in")
130PROCdh(6,17,0,"different order the
letters of")
140PROCdh(6,18,0,"another word or word
s.")
150PROCdh(2,23,0,"Please press SPACE t
o continue >")
160REPEATUNTILGET=32:CLS
170PROCdh(6,5,0,"You will be invited t
o type in a word")
180PROCdh(2,1,1,"--INFORMATION-- ")
190PROCdh(2,3,1,"Single or multi-word
anagrams.")
200PROCdh(6,6,0,"or words (best no spa
ces) that you ")
210PROCdh(6,7,0,"wish to 'anagramise'.
Max.28 letters.")
220PROCdh(6,8,0,"These letters will th
en appear lower ")
230PROCdh(6,9,0,"on the screen in doub
le height. Press")
240PROCdh(6,10,0,"space to shuffle the
m. With a bit of")
250PROCdh(6,11,0,"skill and a lot of l
uck you may see a")
260PROCdh(6,12,0,"word in the group th
at you wish to")
270PROCdh(6,13,0,"extract, press escap
e and type it in.")
280PROCdh(6,14,0,"(Max.14 letters). Yo
u then type in the")
290PROCdh(6,15,0,"remaining letters (M
ax.18) and shuffle")
300PROCdh(6,16,0,"again. Repeat until
you are satisfied")
310PROCdh(6,17,0,"with your selection
of words.")
320PROCdh(6,18,0,"After a while the sc
reen will be full")
330PROCdh(6,19,0,"you can then quit or
start again but")
340PROCdh(6,20,0,"make a note of your
words first.")
350PROCdh(6,22,0,"Go cold U.K.")
360PROCdh(2,23,0,"Please press SPACE t
o continue >")
370REPEATUNTILGET=32
380CLS
390VDU23,1,1;0;0;0;
400A=5:B=5
420ON ERROR GOTO 1370
430PRINTTAB(0,0)" TYPE YOUR WORD/LETTE
RS THEN <RETURN>"
440INPUTTAB(5,1)" ? "name$
450name$=LEFT$(name$,28)
460PRINTTAB(8+LEN(name$),1)" ";LEN(nam
e$)
470PRINTTAB(0,0)SPC(38)
480PRINTTAB(1,2);CHR$(150);STRING$(37,
",")
490A$=name$:PROCshuff:END
510DEFPROCshuff
520VDU23,1,0;0;0;0;
530A$=name$
540REPEAT
550PRINTTAB(5,20);CHR$(141);" ";A$:PRI
NTTAB(5,21);CHR$(141);" ";A$
560PROCshuffleJ`Davis
570PROCspace:UNTILFALSE:ENDPROC
590REM PROCshuffleJ`Davis is from
a program'ALFSHUF'by JOHN DAVIS (K2F)
8-Bit Software Issue 36.
610DEF PROCshuffleJ`Davis
620R=RND(LEN(name$)-1)+1:B$=MID$(A$,R,
1):A$=B$+LEFT$(A$,R-1)+RIGHT$(A$,LEN(nam
e$)-R)
630ENDPROC
650DEFPROCspace
660PRINTTAB(0,22)" SPACE to Shuffle.
ESCAPE to type. "
670PRINTTAB(0,23)" ESC+ZZZ to end.
ESC+XXX to restart."
680REPEAT UNTIL INKEY(-99)
690ENDPROC
710DEF PROCword
720SOUND1,-3,20,2
730VDU23,1,1;0;0;0;
740PRINTTAB(0,3)" Type letters to be t
aken out.<RETURN>"
750PRINTTAB(1,5);CHR$(150);STRING$(37,
",")
760A=A+1
770IF A>19 PROCscreenfull: ENDPROC
780PRINTTAB(0,4)SPC(30)
790INPUTTAB(2,4)" ? "name$
800name$=LEFT$(name$,14)
810IF name$="ZZZ"THEN PROCend:ENDPROC
820IF name$="XXX"GOTO 380:ENDPROC
830PRINTTAB(5,20)SPC(30):PRINTTAB(5,21
)SPC(30)
840PRINTTAB(22,A);" "name$
850PRINTTAB(23+LEN(name$),A)" ";LEN(na
me$)
860PROCremain:ENDPROC
880DEF PROCremain
890SOUND1,-3,20,2
900B=B+1
910IF B>19 PROCscreenfull: ENDPROC
920PRINTTAB(0,3)" Type letters to be s
huffled. <RETURN>"
930PRINTTAB(0,4)SPC(30)
940INPUTTAB(2,4)" ? "name$
950name$=LEFT$(name$,18)
960IF name$="ZZZ"THEN PROCend:ENDPROC
970IF name$="XXX" GOTO 380
980PRINTTAB(5+LEN(name$),4)" ";LEN(nam
e$)
990PRINTTAB(0,B)" "name$
1000PRINTTAB(1+LEN(name$),B)" ";LEN(nam
e$)
1010PROCshuff
1020ENDPROC
1040DEF PROCscreenfull
1050VDU23,1,0;0;0;0;
1060PRINTTAB(0,3)" Sorry the scre
en is full "
1070PRINTTAB(0,4)" Press a key to resta
rt or SPACE to end"
1080SOUND1,-2,5,5
1090PRINTTAB(0,22)SPC(39)
1100PRINTTAB(0,23)SPC(39)
1110*FX21,0
1120IF GET$ <>" "THEN GOTO 380:ENDPROC
1130IF GET$=" "THEN PROCend:ENDPROC
1150DEF PROCend
1160VDU23,1,1;0;0;0;
1170CLS:PRINTTAB(10,8)"BYE FROM ROY":PR
INTTAB(8,9)"(Ref. My or Boy)":END
1180ENDPROC
1210DEFPROCROY
1220PRINT" PROGRAM B
Y ££££££££"
1230PRINT"
k 7e757£k"
1240PRINT"
s550!5u0£5"
1250PRINT"
p5u7t5upp5"
1260PRINT
1270PRINT" FOR 8-BIT SOFTWARE
"
1280PRINT" 17 Lambert Park Rd Hedon HUL
L HU12 8HF"'
1290ENDPROC
1310DEF PROCdh(C%,L%,D%,T$)
1320IF D% T$=CHR$(141)+T$
1330X%=(40-LENT$)DIV 2-1
1340FORY%=L%TOL%+D%:PRINTTAB(X%,Y%);CHR
$(128+C%);T$:NEXT
1350ENDPROC
1370IF ERR=17 THEN PROCword ELSE REPORT
:PRINT" at line "ERL