10:
20:
30*|" PROGRAM BY RUSHDEN ROY
40*|" A 'L'PLATE PROGRAMMER
50*|" FOR 8-BIT SOFTWARE
60:
70MODE7
80VDU23,1,0;0;0;0;
90PRINT'
100PROCROY
110PROCdblht("This program looks at th
e instruction",0,12)
120PROCdblht("PRESS SPACE",12,20)
130PROCget
140PROCSTAR(20,2,151)
150PROCSTAR(5,5,151)
160PROCSTAR(2,10,147)
170PROCSTAR(19,8,147)
180PROCSTAR(11,13,151)
190PROCSTAR(28,13,151)
200PRINT" No, not this space above but
....."
210PRINT'" .....this space below"
220PROCcentreSpa(23,"Press Space",129,
131)
230PROCget
240PROCdblht("There are a lot of progr
ams that ",1,2)
250PROCdblht(" require the instruct
ion",2,4)
260PROCdblht("'Press Space'",10,6)
270PROCdblht(" this is usually placed
at the ",2,8)
280PROCdblht("bottom of the screen.",7
,10)
290PRINT'CHR$(134)"(Some do not give a
ny instruction and "
300PRINT'CHR$(134)" you are left with
a screen wondering"
310PRINT'CHR$(134)" 'What do I do now?
!'). So I have put"
320PRINT'CHR$(134)" together a few i
deas to brighten"
330PRINT'CHR$(134)" up the PRESS
SPACE a bit."
340REPEAT UNTIL GET=32:CLS
350PROCdblht("First we must consider t
he type of",1,2)
360PROCdblht("program this press space
is to be",1,4)
370PROCdblht("used.",14,6)
380PRINTCHR$(134)" Explanatory: Child
ren/New users"
390PRINT'CHR$(134)" Formal : Busi
ness type"
400PRINT'CHR$(134)" Colourful : Fun
& games"
410PRINT'CHR$(134)" Small : Form
al"
420PRINT'CHR$(134)" Large : Show
off your skill!"
430PRINTCHR$(131)" All the ideas are
in MODE 7 and "
440PRINTCHR$(131)" contained in a
PROCEDURE "
450PRINTCHR$(131)"( I'm sure that you
can improve them )"
460PRINTTAB(2,21)CHR$(133)" This o
ne is PROCcentreSpa"
470PROCcentreSpa(23,"Please Press the
Space Bar",132,135)
480PROCget
490 PROCdblht("This is the PROC of a p
ress space",1,2)
500PROCdblht("it's small, neat and you
see it a lot",0,4)
510PRINT'" It will self centre, you
just give"
520PRINT" the line no. (column no. not
required)"
530 PRINT" DEF PROCcentreSpa(y%,t$,b%
,f%):s%=18- LENt$/2:PRINTTAB(0,y%);SPC
(s%);CHR$b%; CHR$157;CHR$f%;t$;"""SPC(2
)""";CHR$156:ENDPROC"
540 PRINT'" IN THE BRACKETS (y%,t$,b%,
f%)"
550PRINT" FIRST is the y% this is the
TAB line postion (where you want it e
.g. 23 )."
560PRINT" SECOND is the t$ this is the
text(What you want printed e.g. Press
Space )."
570PRINT" THIRD is the b% this is for
the back- ground colour (e.g. 129 red)
."
580PRINT" FORTH is the f% this is the
forground colour (e.g. 131 yellow)."
590PROCcentreSpa(23,"Press Space",129,
131)
600PROCget
610PROCdblht(" A different PROCEDURE
",4,4)
620PROCdblht("if a small one is requir
ed then",2,6)
630PROCdblht(" it could be flashing in
a box",2,8)
640PRINTTAB(5,15)CHR$(133)"This is cal
led PROCboxSpa"
650PRINT''
660PROCboxSpa
670PROCget
680PROCdblht("Or...",2,4)
690PROCdblht("a flashing box and a ste
ady text",2,6)
700PRINTTAB(5,15)CHR$(133)"This one is
PROCflashboxSpa"
710PRINT''
720PROCflashboxSpa
730REPEAT UNTIL GET=32:CLS
740PROCdblht("...and a box with a shad
ow",2,4)
750PRINTTAB(6,15)CHR$(133)"This is PRO
CshadowSpa"
760PROCshadowSpa(6,19)
770PROCget
780PROCdblht("Then you could have the
box",2,4)
790PROCdblht("with a box at each corne
r",3,6)
800PRINTTAB(1,15)CHR$(133)"So we will
call this PROCsqu4Spa"
810PRINT''
820PROCsqu4Spa
830PROCget
840PROCdblht("...then if we are not ca
reful we",2,4)
850PROCdblht("might tie ourselves in a
knot!",1,6)
860PRINTTAB(2,15)CHR$(133)"This we wil
l call PROCknotsSpa"
870PROCknotsSpa(5,19)
880PROCget
890 PROCdoublehtSpa(12,20)
900PROCdblht("This is straight to the
point but",2,4)
910PROCdblht("DOUBLE height",10,6)
920 PRINTTAB(3,15)CHR$(133)"This is ca
lled PROCdoublehtSpa"
930PROCget
940PROCdblht("And in two colours if yo
u wish",2,4)
950 PRINTTAB(2,15)CHR$(133)"This is ca
lled PROCdoublehtSpa2"
960 PROCdoublehtSpa2(12,20)
970PROCget
980PROCdblht("Which could then lead on
to this",2,4)
990 PRINTTAB(4,15)CHR$(133)"This is ca
lled PROCsnowSpa"
1000 PROCsnowSpa(8,20)
1010PROCget
1020PROCdblht("Also multi colour",8,4)
1030PRINTTAB(2,15)CHR$(133)"This is cal
led PROCdoublemulticolSpa"
1040PROCdoublemulticolSpa(10,18)
1050PROCget
1060PROCdblht("This one is borrowed fro
m GLM PD",2,4)
1070PROCdblht("Gareth Moore uses this t
ype of scroll",1,6)
1080PROCdblht("in his menu (Many thanks
Gareth)",2,8)
1090PRINTTAB(5,15)CHR$(133)"This name i
s PROCCentScrolSpa"
1100PRINT
1110FOR T=0 TO 500:NEXT T
1120PROCCentScrolSpa("PLEASE PRESS SPAC
E BAR FOR THE MENU",3,1)
1130PRINT'" Please wait and you will se
e it again"
1140FOR T=0 TO 2000:NEXT T
1150PROCCentScrolSpa("PLEASE PRESS SPAC
E BAR FOR THE MENU",5,6)
1160PROCget
1170PROCdblht("Should we try and let th
em know",3,4)
1180PROCdblht("by drawing a picture (we
ll I tried!)",1,6)
1190 PRINTTAB(4,15)CHR$(133)"This is ca
lled PROCbarSpa"
1200 PROCbarSpa(0,17)
1210PROCget
1220PROCdblht("Or..would this be better
?",2,4)
1230 PRINTTAB(4,15)CHR$(133)"This is ca
lled PROCfingerSpa"
1240 PROCfingerSpa(3,17)
1250PROCget
1260PROCdblht("By drawing pictures we c
ould have",2,4)
1270PROCdblht("a funny one (as seen on
Teletext)",2,6)
1280 PRINTTAB(4,13)CHR$(133)"This is ca
lled PROCfaceSpa"
1290PROCfaceSpa(8,15)
1300PROCget
1310PROCdblht("... and perhaps not so f
unny.",1,4)
1320PRINTTAB(4,13)CHR$(133)"This is cal
led PROCwotnoSpa"
1330PROCwotnoSpa(9,20)
1340PROCget
1350PROCdblht("You will need a lot of r
oom for ",2,4)
1360PROCdblht("this... but it's differe
nt",2,6)
1370PRINTTAB(3,8)CHR$(133)"This is call
ed PROCcupmenuSpa"
1380PROCcupmenuSpa(7,10)
1390PROCget
1400PROCdblht("Chris Richardson did one
like this",1,4)
1410PROCdblht("he did a big 'Press Brea
k' in",3,6)
1420PROCdblht("Issue 23 (Thanks Chris)"
,5,8)
1430PRINTTAB(3,11)CHR$(133)"This is cal
led PROCbigblockSpa"
1440PROCbigblockSpa(4,13)
1450PROCget
1460PROCdblht("....and a bit of my need
le work!",2,4)
1470PROCdblht("(I dont know where you w
ould use",2,6)
1480PROCdblht("this, but is'nt it prett
y!!)",2,8)
1490PRINTTAB(3,11)CHR$(133)"This is cal
led PROCneedleSpa"
1500PROCneedleSpa(3,13)
1510PROCget
1520PROCdblht("...and soon you can go o
ver the top",2,4)
1530PROCdblht("if your not careful and
do the ",4,6)
1540PROCdblht("ridiculous!!",6,8)
1550PRINTTAB(0,12)CHR$(133)"If your rea
lly interested it's called"
1560PRINTTAB(8,14)CHR$(133)"PROCcarsSpa
"
1570PROCcarsSpa(0,18)
1580PROCget
1590PROCdblht("To sum up a 'small' pres
s space ",3,1)
1600PROCdblht("will be used mostly beca
use it is",2,3)
1610PROCdblht("straight to the point an
d does'nt",2,5)
1620PROCdblht("take over the screen fro
m the main",2,7)
1630PROCdblht("message and of course ne
eds less room.",0,9)
1640PROCdblht("But if you have room to
spare,",3,11)
1650PROCdblht("memory to spare,",10,13)
1660PROCdblht("(and programming time to
spare)",2,15)
1670PROCdblht("why not give it a though
t?",5,17)
1680FOR I=1TO2000:NEXT
1690PROCmanSpa1
1700REPEAT: UNTIL GET=32
1710PROCmanSpa2
1720CLS
1730PROCdblht("Well thats a few ideas,
it can",3,2)
1740PROCdblht("be fun so have a go.",8,
4)
1750PROCdblht("Thanks to Chris for his
big block",2,6)
1760PROCdblht("Thanks to TV Teletext fo
r the face",2,8)
1770PROCdblht(" Thanks to Gareth for hi
s scroll",2,10)
1780PROCdblht(" and of course Thanks to
You for",2,12)
1790PROCdblht(" press ing the space bar
!",5,14)
1800PRINT'" To see it all again gues
s what!"
1810PRINT'" Please note :-"
1820PRINT" I have given the procedures
long names deliberately. Shorten them i
f you wish."
1830PROCget:GOTO70
1840END:REM*************************
1850REM" ::::::::::::::::::::::::
1860DEF PROCSTAR(x,y,c)
1870PRINTTAB(x,y)CHR$(c);CHR$(154);" p
xyp0 "CHR$(156)
1880PRINTTAB(x,y+1)CHR$(c);CHR$(154)" "
n¶¶¶& "CHR$(156)" * "
1890PRINTTAB(x,y+2)CHR$(c);CHR$(154)"
x¶¶¾0 "CHR$(156)
1900PRINTTAB(x,y+3)CHR$(c);CHR$(154);"
".oo/&"CHR$(156)
1910PRINTTAB(x,y+4)CHR$(c);CHR$(154);"
! "CHR$(156)
1920ENDPROC
1930REM" ::::::::::::::::::::::::
1940DEFPROCdblht(x$,x,y)
1950PRINTTAB(x,y);CHR$(141);CHR$(134);x
$
1960PRINTTAB(x,y+1);CHR$(141);CHR$(134)
;x$
1970ENDPROC
1980REM" :::::::::::::::::::::::::
1990DEF PROCcentre(t$,b%,f%):s%=18-LENt
$/2:PRINTSPC(s%);CHR$b%;CHR$157;CHR$f%;t
$;" ";CHR$156:ENDPROC
2000REM" :::::::::::::::::::::::::
2010DEF PROCcentreSpa(y%,t$,b%,f%):s%=1
8-LENt$/2:PRINTTAB(0,y%);SPC(s%);CHR$b%;
CHR$157;CHR$f%;t$;" ";CHR$156:ENDPROC
2020REM" :::::::::::::::::::::::::
2030 DEF PROCdoublehtSpa(x,y)
2040PRINTTAB(x,y)CHR$(141)CHR$(145)"PRE
SS SPACE"
2050PRINTTAB(x,y+1)CHR$(141)CHR$(145)"P
RESS SPACE"
2060ENDPROC
2070REM" :::::::::::::::::::::::::
2080 DEF PROCdoublehtSpa2(x,y)
2090PRINTTAB(x,y)CHR$(141)CHR$(131)"PRE
SS SPACE"
2100PRINTTAB(x,y+1)CHR$(141)CHR$(145)"P
RESS SPACE"
2110ENDPROC
2120REM" :::::::::::::::::::::::
2130 DEF PROCboxSpa
2140PRINT"
2150PRINT" PRESS SPACE
2160PRINT"
2170ENDPROC
2180REM" :::::::::::::::::::::::::
2190 DEF PROCflashboxSpa
2200PRINT"
2210PRINT" PRESS SPACE
2220PRINT"
2230ENDPROC
2240REM" ::::::::::::::::::::::::::
2250 DEFPROCsnowSpa(x,y)
2260PRINTTAB(x,y)"
2270PRINTTAB(x,y+1);CHR$(141)" PRESS SP
ACE
2280PRINTTAB(x,y+2)CHR$(141)" PRESS SPA
CE d"
2290PRINTTAB(x,y+3)"
!"
2300ENDPROC
2310REM" :::::::::::::::::::::::::
2320 DEF PROCsqu4Spa
2330PRINT"
2340PRINT"
2350PRINT" PRESS SPACE
2360PRINT"
2370PRINT"
2380ENDPROC
2390REM" :::::::::::::::::::::::::
2400 DEF PROCdoublemulticolSpa(x,y)
2410PRINTTAB(x+2,y)"
2420PRINTTAB(x+2,y+1)"
2430PRINTTAB(x,y+2)CHR$(134);CHR$(157);
CHR$(141)CHR$(129)"PRESS SPACE "CHR$(1
56)
2440PRINTTAB(x,y+3)CHR$(134);CHR$(157);
CHR$(141)CHR$(129)"PRESS SPACE "CHR$(1
56)
2450PRINTTAB(x+2,y+4)"
2460PRINTTAB(x+2,y+5)"
2470ENDPROC
2480REM" ::::::::::::::::::::::::
2490DEFPROCCentScrolSpa(text$,c1%,c2%)
2500LOCALc3%
2510IFLENtext$=1THEN2590
2520pos%=0:REPEATpos%=pos%+1
2530t1$=LEFT$(text$,pos%):t2$=RIGHT$(te
xt$,pos%)
2540c3%=18-LEN(t1$)
2550PRINTTAB(c3%);CHR$141;CHR$(c1%+128)
;t1$;t2$
2560PRINTTAB(c3%);CHR$141;CHR$(c2%+128)
;t1$;t2$
2570VDU11,11
2580UNTILpos%=INT(LEN(text$)/2)
2590c3%=18-(LEN(text$)/2)
2600PRINTTAB(c3%);CHR$141;CHR$(c1%+128)
;text$
2610PRINTTAB(c3%);CHR$141;CHR$(c2%+128)
;text$
2620ENDPROC
2630REM" :::::::::::::::::::::::::
2640 DEF PROCfingerSpa(x,y)
2650PRINTTAB(x,y)"
2660PRINTTAB(x,y+1)" Press
2670PRINTTAB(x,y+2)" Space
2680PRINTTAB(x,y+3)"
ssq
2690PRINTTAB(x,y+4)"
2700PRINTTAB(x,y+5)"
2710ENDPROC
2720REM" :::::::::::::::::::::::
2730 DEF PROCbarSpa(x,y)
2740PRINTTAB(x,y) "
p pp pp pp ppppp"
2750PRINTTAB(x,y+1)" SHIFT :Z:X:C:V:B:N
:M:<,:>.:?/: SHIFT"
2760PRINTTAB(x,y+2)"
///////////////o?¶"
2770PRINTTAB(x,y+3)" Press
the SPACE bar
2780PRINTTAB(x,y+4)" O @ O
,,,,,,,,,,,,,,,.i¶"
2790PRINTTAB(x,y+5)"
//////////////////"
2800ENDPROC
2810REM" :::::::::::::::::::::::::
2820 DEF PROCfaceSpa(x,y)
2830PRINTTAB(x,y)"
"
2840PRINTTAB(x,y+1)"
¶ "
2850PRINTTAB(x,y+2)"
¶ "
2860PRINTTAB(x,y+3)"
¶ "
2870PRINTTAB(x,y+4)"
¶ "
2880PRINTTAB(x,y+5)" PRESS
¶ "
2890PRINTTAB(x,y+6)" SPACE
¶ "
2900PRINTTAB(x,y+7)"
¶ "
2910ENDPROC
2920REM" ::::::::::::::::::::::::
2930 DEFPROCcupmenuSpa(x,y)
2940PRINTTAB(x,y)"
2950PRINTTAB(x,y+1)"
2960PRINTTAB(x,y+2)"
2970PRINTTAB(x,y+3)"
2980PRINTTAB(x,y+4)" ``` `
``"
2990PRINTTAB(x,y+5)"
3000PRINTTAB(x,y+6)"
3010PRINTTAB(x,y+7)"
"
3020PRINTTAB(x,y+8)"
0"
3030PRINTTAB(x,y+9)"
¾ "
3040PRINTTAB(x,y+10)"
ssq "
3050PRINTTAB(x,y+11)" PRESS SPACE FOR M
ENU"
3060PRINTTAB(x,y+12)"
£££ "
3070ENDPROC
3080 REM" :::::::::::::::::::::::
3090 DEF PROCbigblockSpa(x,y)
3100PRINTTAB(x,y)CHR$(132);CHR$(157);"
"CHR$(156)
3110PRINTTAB(x,y+1)CHR$(132);CHR$(157);
" CHR
3120PRINTTAB(x,y+2)CHR$(132);CHR$(157);
" CHR
3130PRINTTAB(x,y+3)CHR$(132);CHR$(157);
" CHR
3140PRINTTAB(x,y+4)CHR$(132);CHR$(157);
" CHR
3150PRINTTAB(x,y+5)CHR$(132);CHR$(157);
" CHR
3160PRINTTAB(x,y+6)CHR$(132);CHR$(157);
" CHR
3170PRINTTAB(x,y+7)CHR$(132);CHR$(157);
" CHR
3180PRINTTAB(x,y+8)CHR$(132);CHR$(157);
" CHR
3190PRINTTAB(x,y+9)CHR$(132);CHR$(157);
" CHR
3200PRINTTAB(x,y+10)CHR$(132);CHR$(157)
;" CHR
3210ENDPROC
3220REM" :::::::::::::::::::::::
3230 DEF PROCneedleSpa(x,y)
3240PRINTTAB(x,y)"
p,£,s
3250PRINTTAB(x,y+1)"
,£ £,£ £)0"
3260PRINTTAB(x,y+2)"
£)0`&£d
3270PRINTTAB(x,y+3)"
,d ),0
3280PRINTTAB(x,y+4)"
p8!"dp&
3290PRINTTAB(x,y+5)"
, , , ,8!"
3300PRINTTAB(x,y+6)"
£)0i££$
3310PRINTTAB(x,y+7)"
f,1
3320PRINTTAB(x,y+8)"
p8!:pp$
3330PRINTTAB(x,y+9)"
p,p p,pp)0"
3340PRINTTAB(x,y+10)"
£,p,£,p,
3350ENDPROC
3360PROCcarsSpa(0,18)
3370REM" ::::::::::::::::::::::::
3380DEF PROCcentre(y%,t$,b%,f%):s%=18-L
ENt$/2:PRINTTAB(0,y%);SPC(s%);CHR$b%;CHR
$157;CHR$f%;t$;" ";CHR$156:ENDPROC
3390REM" ::::::::::::::::::::::::
3400DEF PROCknotsSpa(x,y)
3410PRINTTAB(x,y)"
p0 "
3420PRINTTAB(x,y+1)"
pj`r0"
3430PRINTTAB(x,y+2)" PRESS SPACE
3440PRINTTAB(x,y+3)"
£c£!`% "
3450PRINTTAB(x,y+4)"
),! "
3460ENDPROC
3470REM" :::::::::::::::::::::::::::
3480DEF PROCcarsSpa(x,y)
3490PRINTTAB(x,y)" PRES
S "
3500PRINTTAB(x,y+1)"
o5
3510PRINTTAB(x,y+2)" 5
3520PRINTTAB(x,y+3)"
q3q3q3s
3530PRINTTAB(x,y+4)" PARKING SP
ACE
3540PRINTTAB(x,y+5)"
££!)0 £n¼&£££££n¼&"
3550ENDPROC
3560REM" ::::::::::::::::::::::::::
3570DEF PROCshadowSpa(x,y)
3580PRINTTAB(x,y)"
"
3590PRINTTAB(x,y+1)"
k¶ "
3600PRINTTAB(x,y+2)" PRESS SPACE
j "
3610PRINTTAB(x,y+3)"
j "
3620PRINTTAB(x,y+4)"
// "
3630ENDPROC
3640REM" :::::::::::::::::::::::::::
3650DEF PROCmanSpa1
3660FOR tab=27TO12STEP-1
3670PROCman(tab,19)
3680PROCman2(tab-1,19)
3690NEXT
3700PROCman3(11,19)
3710ENDPROC
3720DEF PROCmanSpa2
3730FOR tab=11TO1STEP-1
3740PROCman(tab,19)
3750PROCman2(tab-1,19)
3760NEXT
3770ENDPROC
3780DEF PROCman(x,y)
3790PROCdelay
3800PRINTTAB(x,y)"
3810PRINTTAB(x,y+1)" PRESS
"
3820PRINTTAB(x,y+2)" SPACE
"
3830PRINTTAB(x,y+3)"
3840ENDPROC
3850DEF PROCman2(x,y)
3860PROCdelay
3870PRINTTAB(x,y)"
"
3880PRINTTAB(x,y+1)" PRESS
"
3890PRINTTAB(x,y+2)" SPACE
"
3900PRINTTAB(x,y+3)"
"
3910ENDPROC
3920DEF PROCdelay
3930FOR T=1TO100:NEXT
3940ENDPROC
3950DEF PROCman3(x,y)
3960PRINTTAB(x,y)"
3970PRINTTAB(x,y+1)" PRESS
"
3980PRINTTAB(x,y+2)" SPACE
"
3990PRINTTAB(x,y+3)"
"
4000ENDPROC
4010REM" :::::::::::::::::::::::::::
4020DEF PROCwotnoSpa(x,y)
4030PRINTTAB(x,y)" .?.
"
4040PRINTTAB(x,y+1)" PRESS SPACE
"
4050PRINTTAB(x,y+2)"
"
4060ENDPROC
4070DEFPROCROY
4080PRINT" PROGRAM B
Y ££££££££"
4090PRINT"
k 7e757£k"
4100PRINT"
s550!5u0£5"
4110PRINT"
p5u7t5upp5"
4120PRINT
4130PRINT" FOR 8-BIT SOFTWARE"
4140PRINT" 1 Oakwood Drive Heaton BOLTO
N BL1 5EE"'
4150ENDPROC
4160DEF PROCget
4170REPEAT UNTIL GET=32:CLS
4180ENDPROC