Skip to content

Instantly share code, notes, and snippets.

@fiskurgit
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fiskurgit/8858965 to your computer and use it in GitHub Desktop.
Save fiskurgit/8858965 to your computer and use it in GitHub Desktop.
Work in progress
100MODE7
110REM"***** STARSPELL *****
130REM"(C)FISHER_MARRIOTT 1982
150REM"LIST BASED ON CLASSROOM INDEX
160REM"OF PHONIC RESOURCES N.A.R.E
161*SK
180DIMw$(20)
190DIMlist$(20)
200E$=STRING$(54,"?"):E$=""
210DIMN%(12):DIMP%(12):DIMQ%(12):DIMR%(12)
220ONERRORGOTO310
230*FX11
240*KEY10"OLD:M RUN:M"
250*FX15,0
260*FX4,1
270*OPT1,1
300list=FALSE
310REPEAT
320CLS
330PROCSTART
340IF NOT ((C$="L" OR C$="1"ORC$="N" OR C$="n")ANDlist=TRUE) PROCGETTEST
350PROCTARGET
360FORK%=1TOnum%
370w$=w$(K%)
380PROCDISPLAY
390REPEAT
400PROCINPUT
410PROCTEST
420UNTILB$=w$(K%)
430PROCW
440NEXTK%
450PROCEND
460T=TIME:REPEAT:SOUND1,-4,(121+8*RND(3)),2*RND(4):UNTILTIME>T+1200
470*FX15,0
480PROCDB("SPACE-BAR to restart", 8,23,133)
490S%=GET
500UNTIL FALSE
510END
530DEFPROCSTART
540E$=""
550PROCb("@STARSPELL@",3,6,146)
560FORJ%=0TO3
570SOUND1,-10, (52+16*J%),10+J%
580NEXT
590PROCDB("Which List?",10,10,131)
600PRINTTAB(0,13);" INPUT 1 ] 116 or ""S"" for Summary"
610IF list =TRUE PRINTTAB(0,21);"(INPUT ""L"" to Practise your own List)"''"(INPUT ""N"" got a New List)";ELSEPRINTTAB(0,22);(INPUT`""L"" for your own Word List)"
620VDU10
630PRINTTAB(15,17);CHR$133;:INPUT""C$
640IFC$="S"ORC$="s" PROCsummary:CLS:GOTO550
650IFlist=TRUE AND (C$="N" OR C$="n") PROClist:CLS:GOTO660
660IF(C$="L" OR C$="1"OR C$="N" OR C$="n") AND list=TRUE PROCcopy: GOTO700
670IF C$="L" OR C$="1"PROClist:CLS:GOTO660
680PRINTTAB(23,10);SPC(16);TAB(0,15);SPC(56)
690IFASC(C$)<490RASC(C$)>570ORVAL(C$)>116PRINTTAB(2,15)"Must be a Number from 1 to 166":PRINTTAB(15,17);SPC(24):GOTO590
700PRINTTAB(0,10);SPC(240);TAB(15,17);" "
710PRINTTAB(0,19);SPC(240)
720IF C$="L"ORC$="1"OR C$="N" OR C$="n"PROCDB("Your List",12,10,130) ELSEPROCDB("List "+C$,13,10,130)
730ENDPROC
750DEFPROCTARGET
760C%=0
770FORJ%=1TOnum%
780C%=LEN(w$(J%))+C%
790NEXT
800T=C%/15+num%*.2
810PROCDB("Target: "+STR$(INT(T))+" Mins.",9,15,130)
820IFT-INT(T)>.5PROCDB("\",20,15,130)
830PROCDB(CHR$(129)+"Ready",14,19,136)
840PROCDB("Space Bar to Start",9,23,131)
850REPEAT
860SOUND1,0,0,1
870 SOUND0,-15,3,255
880UNTILGET
890CLS
900ST=TIME
910ENDPROC
930DEFPROCDISPLAY
940VDU7
950PROCDB(" _ look _",13,3,130)
960PROCb("@?@?@",9,8,146)
970PROCb(w$,(20-1.5*(LEN(w$))),15,147)
980UNTILGET
990ST=TIME
910ENDPROC
930DEFPROCDISPLAY
940VDU7
950PROCDB("_ look _",13,3,130)
960PROCb("@?@?@",9,8,146)
970PROCb(w$,(20-1.5*(LEN(w$))),15,147)
980PROCWAIT(500)
990CLS
1000ENDPROC
1010DEFPROCb(W$,X%,Y%,D%)
1020FORJ%=1TO LEN(W$)
1030RESTORE(2390+10*ASC(MID$(W$,(J%),1)))
1040READL$,M$,N$,O$,H%
1050PRINTTAB(X%,Y%-1);CHR$D%;L$;TAB(X%,Y%);CHR$D%;M$'TAB(X%,Y%+1);CHR$D%;N$;TAB(X%,Y%+2);CHR$D%;O$
1060X%=X%+3+H%
1070NEXT
1080VDU23;8202;0;0;0;
1090X1%=X%
1100ENDPROC
1120DEFPROCINPUT
1130PROCDB("...SPELL...",12,4,134)
1140SOUND1,-6,129,10
1150B$=""
1160X1%=0
1170S%=GET
1180IFS%=&0D ANDB$>""ENDPROC
1190IFS%=&7F ANDB$>""PROCDELETE:GOTO1170
1200IFS%>96ANDS%<123THENS%=S%-32
1210IFS%<65ORS%>90GOTO1170
1220B$+CHR$S%
1230N%(LEN B$)=X1%
1240PROCb(RIGHT$(B$,1),X1%,12,150)
1250IFX1%>37ORLENB$>11ENDPROC
1260GOTO1170
1270ENDPROC
1280
1290DEFPROCDELETE
1300IFB$=""ENDPROC
1310X1%=N%(LENB$)
1320PROCb("?",X1%,12,152)
1330X1%=N%(LENB$)
1340B$=LEFT$(b$,(LEN(B$)-1))
1350ENDPROC
1370DEFPROCTEST
1380PRINTTAB(12,4);SPC(60)
1390IFB$=w$ENDPROC
1400IFRIGHT$(E$,(LENw$+1))<>w$+CHR$0THENE$=E$+w$+CHR$0
1410D$=w$
1412FORI%=1TOLEN(B$)
1414IFFNM(B$)=FNM(w$)THENQ%(I%)=I%:D$=LEFT$(D$.(Q%(I%)-1)) + CHR$(128+ASC(MID$(D$,Q%(I%),1)))+MID$(D$,Q$(I%)+1)):R%(Q%(I%))=I%
1416NEXT
1420FORI%=1TOLEN(B$)
1430IFQ%(I%)<>I%THENQ%(I%)=INSTR(D$,FNM(B$))
1440IFQ%(I%)=0PROCDROP(I%,N%(I%))ELSEIFQ%(I%)<>I%D$=LEFT$(D$,(Q%(I%)-1))+CHR$(128+ASC(MID$(D$,Q%(I%),1)))+MID$(D$,(Q%(I%)+1)):R%(Q%(I%))=I%
1450NEXT
1460KI%=INKEY(75)
1470FORI%=1TOLEN B$
1480IFQ%(I%)<>I%ANDQ%(I%)<>0PROCLIFT(FNM(B$),N%(I%))
1490NEXT
1500PRINTTAB(0,11);SPC(200)
1510P%(0)=0
1520FORI%=1TOLEN w$
1530PROCb(FNM(w$),P%(I%-1),12,(150-2*(R%(I%)<>i%)))
1540P%(I%)=X1%
1550NEXT
1560F%=INKEY(150)
1570FORI%=1TOLEN B$
1580IFQ%(I%)<>0ANDQ%(I%)<>I%PROCDOWN(FNM(B$),N%(I%),P%(Q%(I%)-1))
1590NEXT
1600FORI%=1TOLENw$
1610IFR%(I%)=0:PROCBOX(FNM(w$),P%(I%-1))
1620NEXT
1630FORI%=1TO12
1640N%(I%)=0:P%(I%)=0:Q%(I%)=0:R%(I%)=0
1650NEXT
1660K1=INKEY(300)
1670CLS
1680ENDPROC
1700DEFPROCW
1710CLS
1720PROCb("@?@?@",9,4,147)
1730PROCDB("WELL DONE",13,9,136)
1740PRINTTAB(8,5);CHR$136;
1750PROCb(w$,(20-1.5*(LEN(w$))),15,147)
1760FORJ%1TO6
1770SOUND0,-5RND(4),4
1780SOUND0,0,0,2
1790NEXT
1800 K1%=INKEY(120)
1810CLS
1820ENDPROC
1840DEFPROCDROP(M%,P%)
1850Q$=MID$(B$,M%,1)
1860FORI1%=0TO2
1870FORJ1%=1TO2
1880PROCb("@",P%,8,(159-7*J1%))
1890SOUND1,-15,1,1
1900KI%=INKEY(8)
1910NEXT
1920NEXT
1930PROCb(Q$,P%,12,145)
1940PROCBIN
1950PROCSD
1960PROCb(Q$,P%,12,152)
1970PRINTTAB(0,7);SPC(160)
1980PROCb(Q$,P%,16,145)
1990FORJ%=1TO7
2000SOUND1,-15,20,1
2010SOUND1,59,0,1
2020NEXT
2030PRINTTAB(0,15);SPC(160)
2040PROCb(Q$,18,16,145)
2050PROCSD
2060PRINTTAB(0,15);SPC(160)
2070PROCb(Q$,18,20,147)
2080PROCBIN
2090ENDPROC
2100
2110DEFPROCBIN
2111 REM JHFISHER TODO - not sure what this procedure does?
2120PRINTTAB(14,19);"gggggggggggg;"
2130PRINTTAB(15);")9 WASTE 99!"
2140PRINTTAB(15);"efffffff6"
2150PRINTTAB(15);"j9 BIN 9!"
2160PRINTTAB(17);"iyyyyy!"
2170ENDPROC
2180
2190DEF PROCGETTEST
2200RESTORE(3300+10*(VAL(C$)))
2210FORI%=1TO7
2220READw$(I%)
2230NEXT
2240num%=7
2250ENDPROC
2260
2270DEFPROCWAIT(E%)
2280*FX15,0
2290E%=INKEY(E%)
2300ENDPROC
2310
2320DEFPROCLIFT(W$,P%)
2330FORI1%=0TO5
2340PROCb("@",P%,8,146)
2350SOUND1,-15,1,1
2360K1%=INKEY(10)
2370PROCb("?",P%,8,152)
2380NEXT
2390PROCb(W$,P%,12,146)
2400K1%=INKEY(25)
2410PROCb(W$,P%,12,152)
2420FORJ%1TO10
2430SOUND1,-15,(20+10*J%),1
2440NEXT
2450PROCb("?",P%,8,152)
2460PROCb(W$,P%,8,146)
2470ENDPROC
2480
2490DEFPROCDOWN(W$,N%,P%)
2500PROCSD
2510PROCb(W$,N%,8,152)
2520PROCb(W$,P%,12,146)
2530ENDPROC
2540
2550DEFPROCSD
2560K1=INKEY(50)
2570FORJ%=1TO10
2580SOUND1,-15,(22-10*J%),1
2590NEXT
2600ENDPROC
2610
2620DEFPROCBOX(W$,P%)
2630PRINTTAB(0,7);SPC(160)
2640SOUND0,-5,4,16
2650PROCb("0",P%,4,149)
2660PROCb((W$),P%,8,149)
2670K1=INKEY(25)
2680PROCSD
2690PRINTTAB(0,7);SPC(160)
2700PRINTTAB(0,3);SPC(160)
2710PROCb(W$,P%,12,149)
2720ENDPROC
2730
2740DEF FNM(W$)
2750=MID$(W$,I%,1)
2760
2770DEFPROCEND
2780TT=(TIME-ST)/6000
2790PROCb("?@@@@@@@@",1,4,146)
2800PROCb("?@@?END?@@",0,8,146)
2810FORJ%=1TO2
2820PRINTTAB(3);CHR$141;CHR$130;"You took ";INT(TT);
2830IFTT-INT(TT)?.5THENPRINT"\ MIN";ELSEPRINT" MIN";
2835IFTT>1.5PRINT"S"
2840NEXT
2850IF C$="L"ORC$="1"ORC$="N"ORC$="n"PROCDB("Your List",3,14,130) ELSEPROCDB("List "+C$,3,14,130)
2860IFE$>""PROCDB("You need to practise..",14,14,130)ELSEPROCDB("All OK, Well Done"14,14,133):ENDPROC
2870e$=STRING$(LENE$,"?"):e$="";
2880FORI%=1TOLENE$
2890e$=e$+CHR$(ASC(FNM(E$))+32)
2900NEXT
2910IFLENe$<36PROCDB(e$,3,16,131)ELSEPROCDB(LEFT$(e$,35),3,16,131):PROCDB(MID$(e$),36,3,18,131)
2930ENDPROC
2940
2950DEFPROCDB(W$,X,Y,Z)
2960FORJ%=1TO2
2970PRINTTAB(X,(Y-1+J%));
2980PRINTCHR$141;CHR$Z;W$;
2990NEXT
3000ENDPROC
3010REM"------------------------------
3011REM JHFISHER TODO - What is this data section for?
3020DATA" "," "," "," ",1
3030DATAww5,cg!,)(!,,1
3040DATA,s{,-.,,0
3050DATA5,7k,-.,,0
3060DATA,7`,"-,",,0
3070DATA" j",7k,-.,,0
3080DATA,w{,"_,",,0
3090DATA7,7,%,,-1
3100DATA,7k,-n,-.,0
3110DATA5,7k,%*,,0
3120DATA!,5,%,,-1
3130DATA" “","," j"," j",*.,0
3140DATA5,u&,%),,0
3150DATA5,5,%,,-1
3160DATA,775,%%%,,1
3170DATA,7k,%*,,0
3180DATA,61,)&,,0
3190DATA,7k,=.,%,0
3200DATA,7k,-n," *",0
3210DATA,7+,%,,0
3220DATA,ws,",.",,0
3230DATA4,7,-,,-1
3240DATA,5j,-.,,0
3250DATA,e_%,"""&",,1
3260DATA,545,--%,,1
3270DATA,)8!,"&""$",,1
3280DATA,5j,-n,-.,0
3290DATA,c',"-,",,0
3300REM"------------------------------
3310DATABAT,CAT,MAN,BAG,MAP,SAD,JAM
3320DATARED,BED,HEN,WET,PET,LEG,YES
3330DATAPIN,BIG,IS,FIT,MIX,KID,ZIP
3340DATADOG,HOT,POT,FOX,HOP,ROB,COD
3350DATASUN,GUN,JUG,MUG,HUT,CUP,BUS
3360DATAHAM,BOX,POP,SIX,WET,SUM,US
3370DATABAT,DAD,BAD,TAB,DID,ROB,ROD
3380DATABACK,SACK,ADD,EGG,MESS,BELL,OFF
3390DATAHELD,SELF,MILK,BELT,POND,SING,PINK
3400DATAANT,HUNT,NEST,LOST,DESK,CAMP,JUMP
3410DATASHIP,SHELL,SHOP,SHY,MASH,RUSH,FISH
3420DATACHIP,CHOP,CHESS,MUCH,RICH,LUNCH,BENCH
3430DATACHIPTHEM,THESE,THEY,FATHER,THIN,THANK,CLOTH
3440DATAWHEN,WHAT,WHY,WHIP,WHITE,WHALE,WHISKY
3450DATAPHONE,ORPHAN,ELEPHANT,TELEPHONE,DOLPHIN,ALPHABET,PHEASANT
3460DATASHRUB,SHRINK,THREE,THROW,WITCH,KITCHEN,SCHOOL
3470DATACAKE,MAKE,GAME,NAME,GATE,WAVE,CAVE
3480DATANINE,WINE,KITE,FIVE,TIDE,TIME,SMILE
3490DATABONE,HOME,NOSE,ROSE,HOLE,JOKE,DOPE
3500DATATUBE,TUNE,CUTE,USE,RUDE,BRUTE,CRUDE
3510DATABLAZE,TWINE,BRIDE,STOVE,AMUSE,EXCUSE,TUNES
3520DATABLOT,CLAP,FLAT,GLAD,PLAN,PLANK,SLUG
3530DATABRICK,CRACK,DRIP,FROM,GRUNT,PRAM,TRUCK
3540DATASKID,SLEPT,SMELL,SNAP,SPOT,STAMP,SWIM
3550DATAQUACK,QUICK,QUID,TWIG,TWIT,TWIST,DWELL
3560DATASCRAP,SCRUB,SPRING,STRAP,STRONG,SPLASH,SQUIB
3570DATARAIN,SAIL,NAIL,WAIT,MAIDEN,AFRAID,EXPLAIN
3580DATAARM,CAR,DART,MARCH,FARMER,ARCHER,GARDEN
3590DATAPAUSE,SAUCER,HAUNT,AUTUMN,AUTHOR,EXHAUST,BECAUSE
3600DATASAW,JAW,YAWN,STRAW,CRAWL,HAWK,AWFUL
3610DATADAY,SAY,CLAY,WAY,SPRAY,ALWAYS,HOLIDAY
3620DATAEAT,MEAT,STEAM,CLEAN,BEAST,TEACHER,EAGLE
3630DATAHEAD,DEAD,BREAD,LEATHER,MEADOW,PLEASANT,INSTEAD
3640DATABEE,FREE,NEED,SEED,WEEP,BEEF,SWEET
3650DATAKERB,TERM,HERB,VERSE,PERSON,UNDER,DESERT
3660DATANEW,FEW,CHEW,STEW,SCREW,NEWT,SEWER
3670DATASEIZE,CEILING,EIGHTY,FIELD,THIEF,SHIELD,RELIEF
3680DATAFIR,BIRD,BIRTH,THIRD,THIRSTY,THIRTEEN,BIRTHDAY
3690DATABOAT,COAL,ROAD,TOAD,TOAST,COACH,THROAT
3700DATADIE,LIE,PIE,TOE,BLUE,GLUE,TUESDAY
3710DATAOIL,BOIL,MOIST,VOICE,NOISY,POISON,AVOID
3720DATAFOOD,TOOL,POOL,ROOT,SHOOT,MOON,ROOF
3730DATALOOK,BOOK,SHOOK,COOK,FOOT,GOOD,BLOOD
3740DATAHORN,CORN,CORK,STORM,MORNING,RECORD,MEMORY
3750DATASHOUT,ABOUT,POUND,SOUND,COUNT,MOUSE,HOUSE
3760DATAHOW,OWL,CLOWN,BROWN,CROWD,SHOWER,POWDER
3770DATAOWN,BOWL,CROW,SNOW,WINDOW,ELBOW,ARROW
3780DATABOY,TOY,ANNOY,DESTROY,COWBOY,ROYAL,EMPLOYER
3790DATAFUR,BURN,CHURCH,NURSE,TURKEY,BURGLAR,SURPRISE
3800DATABABY,SYRUP,CRYSTAL,CRY,WHY,MYSELF,PYTHON
3810DATAALONG,ASLEEP,ABROAD,ACROSS,ASHAMED,AGAIN,ALIVE
3820DATABECAME,BELOW,BEHIND,BECAUSE,BEFORE,BENEATH,BECOME
3830DATASDEPART,DELAY,DEFLATE,DEFEAT,DESERVE,DEPRESS,DESTROY
3840DATACONDUCT,CONFESS,CONFLICT,CONCRETE,CONCEAL,CONTAIN,CONNECT
3850DATADISMAY,DISABLE,DISAGREE,DISHONEST,DISCOVER,DISORDER,DISTRUST
3860DATAENLIST,ENRICH,ENDEAR,ENFORCE,ENSLAVE,ENTRUST,ENLIGHTEN
3870DATAEXPORT,EXCLAIM,EXPAND,EXTRACT,EXPECT,EXPLAIN,EXACT
3880DATAFORBID,FORGET,FORGIVE,FORSAKE,FORWARD,FORGAVE,FORGOTTEN
3890DATAFOREMOST,FOREHEAD,FORECAST,FOREMAN,FOREGROUN,FOREFINGER,FORESIGHT
3900DATAIMAGE,IMITATE,IMAGINE,IMMENSE,IMMEDIATE,IMMORTAL,IMMOVABLE
3910DATAINCOME,INDOORS,INFORM,INFLAME,INDEED,INHUMAN,INVISIBLE
3920DATAPERMIT,PERFECT,PERHAPS,PERSIST,PERMISSION,PERFUME,PERPETUAL
3930DATAPREVENT,PRESENT,PREFER,PRETEND,PRESERVE,PRESUME,PREPARE
3940DATAPROLONG,PROCEED,PROCLAIM,PROFESSOR,PROGRESS,PROJECT,PROTEST
3950DATA RECALL,RETURN,REMOVE,REMIND,REGAIN,REPLACE,REQUEST
3960DATAUNDO,UNCOVER,UNFASTEN,UNLOAD,UNPACK,UNFAIR,UNWELL
3970DATACAPABLE,RELIABLE,NOTICEABLE,VALUABLE,PROBABLE,SUITABLE,ABONIMABLE
3980DATAAERIAL,ARTIFICIAL,HOSPITAL,DISMAL,CENTRAL,GENERAL,NATIONAL
3990DATACENTRALLY,MUSICALLY,NATURALLY,GENERALLY,GENERALLY,VERTICALLY,NATIONALLY
4000DATASUGAR,COLLAR,BEGGAR,VINEGAR,NUCLEAR,SIMILAR,REGULAR
4010DATAPLANTED,LANDED,FITTED,NODDED,THANKSED,JUMPED,ROBBED
4020DATATOWEL,LABEL,WEASEL,MODEL,TUNNEL,SHOVEL,TRAVEL
4030DATASUMMER,RUBBER,FATTER,WETTER,AFTER,FASTER,THUNDER
4040DATATHINNEST,FATTEST,OLDEST,SADDEST,FASTEST,POOREST,LOWEST
4050DATAMONKEY,DONKEY,HONEY,CHIMNEY,VALLEY,TURKEY,ABBEY
4060DATATRUTHFUL,USEFUL,CAREFUL,PAINFUL,AWFUL,CAREFULLY,PAINFULLY
4070DATAPOSSIBLE,SENSIBLE,VISIBLE,INVISIBLE,TERRIBLE,FLEXIBLE,HORRIBLE
4080DATAPENCIL,FOSSIL,STENCIL,DAFFODIL,COUNCIL,UNTIL,LENTIL
4090DATADEFECTIVE,ATTRACTIVE,EXPENSIVE,DETECTIVE,INVECTIVE,SENSITIVE,INSENSITIVITE
4100DATAROBBING,RUNNING,KICKING,SINGING,HATING,SMOKING,COOKING
4110DATAHANDLE,CANDLE,SIMPLE,APPLE,FIDDLE,BOTTLE,MUDDLE
4120DATAKINDLY,SLOWLY,QUIETLY,HONESTLY,LOUDLY,POORLY,BRAVELY
4130DATAPUNISHMENT,INVOLVEMENT,MERRIMENT,ODDMENT,COMMENT,INSTRUMENT,RESENTMENT
4140DATAHOPELESS,RESTLESS,SPEECHLESS,ENDLESS,ILLNESS,FITNESS,DARKNESS
4150DATADOCTOR,ACTOR,RAZOR,MOTOR,MIRROR,TRACTOR,VISITOR
4160DATA RUMOUR,FLAVOUR,HARBOUR,HONOUR,COLOUR,SPLENDOUR,ARMOUR
4170DATA FAMOUS,NERVOUS,ENORMOUS,PRECIOUS,ENVIOUS,FURIOUS,SERIOUS
4180DATA PENSION,VISION,TELEVISION,COLLISION,ADMISSION,EXPLOSION,INVASION
4190DATA MENTION,PORTION,RELATION,STATION,POSITION,ADDITION,QUESTION
4200DATA CAPTURE,TORTURE,FUTURE,PICTURE,NATURE,PUNCTURE,TREASURE
4210DATA FOGGY,FUNNY,HOBBY,SUNNY,BAGGY,KINKY,BAGGY
4220DATA SLICE,CIGARETTE,POLICE,PENCIL,CIRCUS,BICYCLE,CEMENT
4230DATA WAGE,STRANGE,ORANGE,GENTLE,MAGIC,GINGER,GIPSY
4240DATA LAMB,BOMB,COMB,BOMBER,THUMB,CLIMB,DOUBT
4250DATA GNAT,GNASH,GNOME,GNAW,SIGN,DESIGN,GNU
4260DATA HIGH,NIGH,SIGH,THIGH,HIGHWAY,HIGHER,SIGHING
4270DATA RIGHT,SIGHT,NIGHT,TIGHT,FIGHT,BRIGHT
4280DATA BOUGHT,THOUGHT,FOUGHT,BROUGHT,TAUGHT,CAUGHT,NAUGHTY
4290DATA KNOT,KNIT,KNOW,KNIFE,KNEE,KNOCK,KNUCKLE
4300DATA WRAP,WREN,WRECK,WRIST,WRITE,WRONG,WRIGGLE
4310DATA HEDGE,EDGE,SLEDGE,BRIDGE,MIDGET,STODGE,SLUDGE
4320DATA WALK,CHALK,TALK,STALK,CALM,YOLK,FOLK
4330DATA FASTEN,LISTEN,CASTLE,RUSTLE,WHISTLE,THISTLE,WRESTLE
4340DATA ROGUE,TONGUE,LEAGUE,PLAGUE,VAGUE,GUITAR,GUEST
4350DATA PAIR,FAIR,CHAIR,HAIR,UNFAIR,STAIRS,FAIRY
4360DATA CARE,SHARE,SQUARE,BEWARE,SPARE,DARE,PREPARE
4370DATA BEER,STEER,CHEER,QUEER,JEER,STEERING,QUEERLY
4380DATA OAR,ROAR,SOAR,HOARD,BOARD,ABOARD,BLACKBOARD
4390DATA OUR,SOUR,FLOUR,HOUR,DOOR,MOOR,FLOOR
4400DATA SCORE,MORE,SHORE,STORE,SNORE,SWORE,RESTORE
4410DATA EAR,HEAR,YEAR,CLEAR,PEAR,WEAR,TEAR
4420DATA INSIDE,DISHCLOTH,AIRPORT,FOOTSTEP,SOMEHOW,YOURSELF,MIDNIGHT
4430DATA FISHERMAN,POLICEMAN,MOTORWAY,BLACKBERRY,DINNERTIME,TIMETABLE,EVERYONE
4440DATA UNTIL,MAGNET,CUSHION,PANIC,TABLET,PARAKEET,TRAFFIC
4450DATA ANIMAL,PRISONER,LEMONADE,CONDUCTOR,ASTRONAUT,HOSPITAL,EXPENSIVE
4460DATASTATIONARY,OVERTALKING,MACHINERY,BUDGERIGAR,ARITHMETIC,ACCELERATOR,COMPLETION
4470REM"-----------------------------
4480DEFPROCsummary
4490CLS
4500PRINT''"Summary of Word Lists"
4510PRINT'"List No. Rules Covered"
4520PRINT;"";STRING$(39,"_")
4530PRINT"1 to 6........Short Vowels"
4540PRINT"7.............b/d Reversals"
4550PRINT"8 to 16).....Double Consonants"
4560PRINT"22 to 26)"
4570PRINT"17 to 21......Magic ""e"""
4580PRINT"27 to 49......Vowel Digraphs"
4590PRINT"50............Sounds of ""y"""
4600PRINT"51 to 66......Prefixes"
4610PRINT"67 to 91......Suffixes"
4620PRINT"92 & 93.......Soft ""c"",""g"""
4630PRINT"94 to 104.....Silent Consonants"
4640PRINT"105 to 111....Vowels Modified by ""r"""
4650PRINT"112 to 116....Multisyllable Practice"
4660 PROCDB("SPACE_BAR to continue",7,23,133)
4670G=GET
4680ENDPROC
4690
4700DEFPROClist
4710 ON ERROR GOTO300
4720list=TRUE
4730VDU15
4740CLS
4750PRINTTAB(0,3);"You can now:-"
4760PRINT'"PRESS ""E"" to Enter a New List."
4770PRINT'"PRESS ""L"" to Load a List from Tape."
4780REPEAT
4790press =FALSE
4800IF INKEY(-35) PROCenter:press=TRUE
4810IF INKEY(-87) PROCload:press=TRUE
4820UNTIL press
4830ON ERROR GOTO 310
4840ENDPROC
4850
4860DEFPROCenter
4870*FX15,1
4880CLS
4890PROCWAIT(100)
4900PRINTTAB(0,3);"Write out each word andpress RETURN."
4910PRINT'"Max.20 words with no spaces or hyphensand max. length 11 letters.)"
4920print'"To end list, press RETURN by itself"'"";STRING$(39,"_")
4930num%=0
4940REPEAT
4950PRINT"Word no. ";num%+1;":";
4960INPUT""list$(num%+1)
4970IFlist$(num%+1)=""GOTO5060
4980check$=list$(num%+1)
4990IF LEN(list$(num%+1))>11PRINT"No more than 11 letters long...":GOTO4950
5000FORJ%=1TOLENlist$(num%+1)
5010IF ASC(check$)>96ANDASC(check$)<123list$(num%+1)=LEFT$(list$(num%+1),J%-1)+CHR$(ASC(check$)-32)+MID$(list$(num%-1),J%+1):GOTO5030
5020IF ASC(check$)<65ORASC(check$)>90PRINT"NOT a valid word for STARSPELL...":J%=LENlist$(num%+1):GOTO5040
5030check$=MID$(check$,2)
5040NEXT
5050IFcheck$>""GOTO4950
5060num%=num%+1
5070UNTILnum%>=20ORlist$(num%)=""
5080IFnum%<>20VDU11:num%=num%-1
5090IFnum%=0PRINT"Let's have a proper list!":GOTO4930
5100PRINT"";STRING$(38,"_")'"Press ""Y"" if OK, otherwise press ""N"""
5110 G$=GET$:IFG$<>"Y"ANDG$<>"y"ANDG$<>"N"ANDG$<>"n" GOTO 5110
5120IFG$="N"ORG$="n"GOTO4880
5130PRINT'"Press ""P"" to practise list, OR...."
5140PRINT'"Press ""S"" to SAVE list on tape first"
5150G$=GET$:IFG$<>"P"ANDG$<>"p"ANDG$<>"S"ANDG$<>"s" GOTO5150
5160IFG$="S"ORG$="s"PROCsave
5170ENDPROC
5180DEFPROCsave
5190*FX15,1
5200PRINT'"INPUT a NAME for List or just RETURN"
5210PROCWAIT(200)
5220INPUT'""name$:IFname$=""name$="WORDLIST"
5230X=OPENOUT(name$)
5240FORJ%=1TOnum%
5250PRINT£X.list$(J%)
5260NEXT
5270CLOSE£X
5280PRINT"DONE"
5290PROCWAIT(250)
5300ENDPROC
5310
5320DEFPROCload
5330ON ERROR Off
5340PRINT'"INSERTcassette in your RECORDER"
5350*FX15,1
5360PROCWAIT(200)
5370PRINT'"INPUTName of list or just pressRETURN"
5380name$=""
5390INPUT""name$
5400num%=0
5410X=OPENIN(name$)
5420REPEAT
5430INPUT£X,list$(num%+1)
5440PRINTlist$(num%+1)
5450num%=num%+1
5460UNTIL EOF£X
5470CLOSE£X
5480PRINT'"";name$;" LOADED":PROCWAIT(num%*50+200)
5490ON ERROR GOTO 310
5500ENDPROC
5520DEFPROCcopy
5530FORJ%=1TOnum%
5540w$(J%)=list$(J%)
5550NEXT
5560ENDPROC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment