8-Bit Software Online Conversion
:0.$.Menu - Listing
10REM Menu Program
20REM S.Johnson
30REM August 1991
40REM
100MODE1
110VDU19,1,4,0,0,0
112VDU23,0,10,32,0,0,0,0,0,0
120READd
130DIM n$(d),fn$(d),ty$(d)
140PROCinit
145REM (PUT YOUR TITLE HERE!!!)
150title$="Programs By S.Johnson"
160PROCscreen
170PROClabels(title$)
180PROCnames
190PROCcursor
200G=GET
210END
220DEFPROCscreen
230GCOL16,131
240CLG
250MOVE19,880
260PROCbox(1236,60,0)
270MOVE25,900
280PROCbox(1236,60,3)
290FORf=277TO775STEP90
300MOVE17,f
310PROCbox(600,54,0)
320MOVE654,f
330PROCbox(600,54,0)
340MOVE30,f+15
350PROCbox(600,54,3)
360MOVE666,f+15
370PROCbox(600,54,3)
380NEXTf
390MOVE30,742
400PROCbox(600,54,1)
410MOVE19,70
420PROCbox(1236,120,0)
430MOVE25,95
440PROCbox(1236,120,3)
450VDU4
460ENDPROC
470DEFPROCbox(x,y,c)
480GCOL0,c
490PLOT97,x,y
500ENDPROC
510DEFPROCcursor
520*FX4,1
530x=30:y=742:p=1
540xx=x:yy=y:r=p
550PROCupdate(x,xx,y,yy,p,r)
560REPEAT
570g=GET
580IF g=136 THEN xx=x+636*(x>30):r=p+1
*(x>30)
590IF g=137 THEN xx=x-636*(x<666):r=p-
1*(x<666)
600IF g=138 THEN yy=y+90*(y>300):r=p-2
*(y>300)
610IF g=139 THEN yy=y-90*(y<742):r=p+2
*(y<742)
620MOVEx,y
630PROCbox(600,54,3)
640MOVExx,yy
650PROCbox(600,54,1)
660PROCupdate(x,xx,y,yy,p,r)
665COLOUR3
680x=xx:y=yy:p=r
690UNTIL g=135
700*FX4,0
705PROCchoice(r)
710ENDPROC
720DEFPROClabels(title$)
730VDU5
740n=LEN(title$)
750x=37-n
760x=x/2
770MOVE40,940
780GCOL16,4
790PRINTTAB(x) title$
800MOVE40,190
810GCOL16,1
820PRINTTAB(5)" "
830MOVE40,160
840PRINTTAB(4)" to select & COPY to
load"
850MOVE40,130
860PRINTTAB(5)" "
870VDU4
880ENDPROC
920DEFPROCinit
930FOR f=1TOd
940READn$(f),fn$(f),ty$(f)
950NEXTf
960ENDPROC
970DEFPROCnames
980y=775:w=0
990IF d=1 OR d=3 OR d=5 OR d=7 OR d=9
OR d=11 THEN w=d+1
1000VDU5
1010FOR f=1TOd STEP2
1015IF f=w THEN GOTO1130
1020MOVE40,y
1030GCOL0,1
1040PRINT n$(f)
1050y=y-90
1060NEXTf
1070y=775
1080FOR h=2TOd STEP2
1090MOVE676,y
1100PRINT n$(h)
1110y=y-90
1120NEXTh
1130VDU4
1140ENDPROC
1150DEFPROCupdate(x,xx,y,yy,p,r)
1170VDU5
1185IF p<=d THEN GCOL0,1:MOVEx+10,y+33:
PRINT n$(p)
1210IF r<=d THEN GCOL0,2:MOVExx+10,yy+3
3:PRINT n$(r)
1250VDU4
1260ENDPROC
1300DEFPROCchoice(r)
1310CLS
1315MOVE200,550
1320PROCbox(900,100,2)
1325MOVE225,575
1326PROCbox(900,100,1)
1327VDU5
1328MOVE250,625
1329GCOL0,3:PRINT"LOADING : "n$(r)
1330VDU4
1335IF ty$(r)="B" THEN CHAIN fn$(r)
1340IF ty$(r)="M" THEN A$=fn$(r)
1350$&900="RUN "+A$
1360X%=&900 MOD 256
1370Y%=&900 DIV 256
1380CALL &FFF7
1400ENDPROC
1990REM LINE 2000 IS THE NUMBER OF
PROGRAMS IN DATA STATEMENTS
2000DATA6
2005REM "B"=BASIC "M"=MACHINE CODE"
2010DATA"Form Master","FORMMAS","B"
2030DATA"View Start","V-START","B"
2060DATA"Tiles","TILES","B"
2070DATA"Warning","WARN","B"
2080DATA"VAT Calculator","VATCALC","B"
2090DATA"Comic Relief","CRELIEF","B"