10 REM **************************** 20 REM Amstrad Notebook Menu Master 30 REM By Tim Surtell 40 REM **************************** 50 REM NC200 Version 3.7 60 REM Downloaded from Tim's NC Users' Site 70 REM http://www.ncus.org.uk 80 REM Incorporating 'Speed Show' for faster running. 90 ONERROROSCLI("QUIT") 100 CLS 110 PRINTTAB(32,0)"Amstrad Notebook"TAB(29,2)CHR$17"M e n u M a s t e r"CHR$18TAB(0,0)"Version 3.6" 120 MOVE0,95:DRAW0,0:DRAW479,0:DRAW479,95:MOVE0,87:DRAW479,87:MOVE0,97:DRAW479,97:MOVE0,96:DRAW479,96 130 PRINTTAB(0,4)CHR$14"(Q)uit (E)dit (F)ile (B)BC BASIC (A)bout "CHR$15 140 DIMpn1$(30),pn2$(30),fn$(30),l$(30),in%(30) 150 MOVE156,15:PLOT101,330,75:MOVE158,17:PLOT103,328,73:PROCSYM(2,165,52):PRINTTAB(31,8)CHR$17"Please wait..."CHR$18 TAB(27,10)"Loading menu."TAB(34,12)"Speed Show":MOVE243,24:DRAW243,32:DRAW247,28:DRAW243,24:DRAW239,28:DRAW243,32 160 ONERRORCLOSE#0:PROCERROR 170 K=OPENIN("SSFILES.TXT") 180 INPUT#K,num 190 IF num=0 CLOSE#K:PROCEDIT:GOTO160 200 FORI=1 TO num:INPUT#K,pn1$(I),pn2$(I),fn$(I),l$(I):NEXT 210 CLOSE#K 220 ONERRORCLOSE#0:GOTO270 230 anum=0 240 A=1 250 K=OPENIN(fn$(A)):INPUT#K,DUMMY 260 CLOSE#K:anum=anum+1:in%(anum)=A 270 A=A+1 280 IF A=num+1 GOTO300 290 GOTO250 300 ONERRORCLOSE#0:PROCERROR 310 PRINTTAB(27,10)SPC26:VDU14:PRINTTAB(68,4)anum;:IF anum=1 PRINT;" file.":VDU15 ELSE PRINT;" files.":VDU15 320 S=1:X=1:PROCSCREEN 330 FORI=1 TO 32:G=INKEY(1):NEXT 340 IF anum>0 MOVEX*96-85,8:PLOT102,X*96+1,24 350 IF S+X>anum+1 AND anum>0 MOVEX*96-85,8:PLOT102,X*96+1,24:X=X-1:GOTO340 360 G=INKEY(12000) 370 IF anum>0 MOVEX*96-85,8:PLOT102,X*96+1,24 380 IF G=-1 PROCIDLE:GOTO310 390 IF G=242 AND X=1 AND S>4 S=S-4:PROCSCREEN:GOTO340 400 IF G=243 AND X=4 AND S+X-11 X=X-1 420 IF G=243 AND X<4 AND S+X0 AND PROGnum num=PROG 970 PRINTTAB(23,7)"*------------*" 980 PRINTTAB(2,8)"Old first line was : ";pn1$(PROG):INPUTLINETAB(3,9)"New first line is : "d$:IF d$<>"" pn1$(PROG)=LEFT$(d$,16) 990 PRINTTAB(1,10)"Old second line was : ";pn2$(PROG):INPUTLINETAB(2,11)"New second line is : "d$:IF d$<>"" pn2$(PROG)=LEFT$(d$,16) 1000 PRINTTAB(4,12)"Old filename was : "fn$(PROG):INPUTLINETAB(5,13)"New filename is : "d$:IF d$<>"" fn$(PROG)=d$ 1010 PRINTTAB(4,14)"Change logo? (Y/N)":REPEAT:G$=GET$:UNTILG$="Y" OR G$="N":IF G$="N" ENDPROC 1020 PRINTTAB(4,14)"New logo? (Y/N) ":REPEAT:G$=GET$:UNTILG$="Y" OR G$="N" 1030 PRINTTAB(38,11)"Edit logo using SPACEBAR..." 1040 IF G$="Y" l$(PROG)="" 1050 MOVE300,50:DRAW337,50:DRAW337,83:DRAW300,83:DRAW300,50 1060 X=1:Y=1:GX=301:GY=51:line=FALSE 1070 IF line=TRUE MOVEASC(MID$(l$(PROG),LEN(l$(PROG))-1,1))+236,ASC(RIGHT$(l$(PROG),1))-14 1080 IF line=FALSE PLOT70,GX,GY ELSE PLOT6,GX,GY 1090 G=GET 1100 IF line=TRUE MOVEASC(MID$(l$(PROG),LEN(l$(PROG))-1,1))+236,ASC(RIGHT$(l$(PROG),1))-14 1110 IF line=FALSE PLOT70,GX,GY ELSE PLOT6,GX,GY 1120 IF G=240 AND Y<32 Y=Y+1:GY=GY+1 1130 IF G=241 AND Y>1 Y=Y-1:GY=GY-1 1140 IF G=242 AND X>1 X=X-1:GX=GX-1 1150 IF G=243 AND X<36 X=X+1:GX=GX+1 1160 IF G=32 AND line=FALSE line=TRUE:l$(PROG)=l$(PROG)+CHR$(X+64)+CHR$(Y+64):GOTO1190 1170 IF G=32 AND line=TRUE line=FALSE:MOVEASC(MID$(l$(PROG),LEN(l$(PROG))-1,1))+236,ASC(RIGHT$(l$(PROG),1))-14:DRAWGX,GY:l$(PROG)=l$(PROG)+CHR$(X+64)+CHR$(Y+64) 1180 IF G=13 ENDPROC 1190 GOTO1070 1200 DEF PROCSAVE 1210 ONERRORCLOSE#0:PROCERROR 1220 MOVE156,15:PLOT101,330,75:MOVE158,17:PLOT103,328,73:PROCSYM(2,165,52):PRINTTAB(31,8)CHR$17"Please wait..."CHR$18 TAB(28,11)"Saving menu." 1230 K=OPENOUT("SSFILES.TXT") 1240 PRINT#K,num 1250 FORI=1 TO num 1260 PRINT#K,pn1$(I),pn2$(I),fn$(I),l$(I) 1270 NEXT 1280 CLOSE#K 1290 ONERROR PROCERROR 1300 ENDPROC 1310 DEF PROCMAKESPACE 1320 MOVE1,1:PLOT103,478,86 1330 REPEAT:INPUTTAB(2,6)"Make a space after program : "PROG:UNTILPROG>0 AND PROG0 AND PROG2 MOVEX+29,Y:DRAWX+18,Y:DRAWX+15,Y+3:MOVEX+14,Y+5:DRAWX+11,Y+8:DRAWX,Y+8:MOVEX+1,Y+11:DRAWX+1,Y+18:DRAWX+9,Y+18:DRAWX+9,Y+11:MOVEX+5,Y+18:DRAWX+5,Y+11:MOVEX+20,Y+2:DRAWX+20,Y+9:DRAWX+28,Y+9:DRAWX+28,Y+2:MOVEX+24,Y+9:DRAWX+24,Y+2 1530 IF R<2 MOVEX+29,Y:PLOT7,X+18,Y:PLOT7,X+15,Y+3:MOVEX+14,Y+5:PLOT7,X+11,Y+8:PLOT7,X,Y+8:MOVEX+1,Y+11:PLOT7,X+1,Y+18:PLOT7,X+9,Y+18:PLOT7,X+9,Y+11 1540 IF R<2 MOVEX+5,Y+18:PLOT7,X+5,Y+11:MOVEX+20,Y+2:PLOT7,X+20,Y+9:PLOT7,X+28,Y+9:PLOT7,X+28,Y+2:MOVEX+24,Y+9:PLOT7,X+24,Y+2 1550 UNTILINKEY(5)<>-1 1560 CLS:PRINTTAB(32,0)"Amstrad Notebook"TAB(29,2)CHR$17"M e n u M a s t e r"CHR$18TAB(0,0)"Version 3.6" 1570 MOVE0,95:DRAW0,0:DRAW479,0:DRAW479,95:MOVE0,87:DRAW479,87:MOVE0,97:DRAW479,97:MOVE0,96:DRAW479,96 1580 PRINTTAB(0,4)CHR$14"(Q)uit (E)dit (F)ile (B)BC BASIC (A)bout "CHR$15 1590 ENDPROC 1600 DEF PROCERROR 1610 VDU26 1620 IF ERR=17 PROCQUIT:ENDPROC 1630 MOVE156,15:PLOT101,330,75:MOVE158,17:PLOT103,328,73:PROCSYM(3,165,52):VDU7:PRINTTAB(31,8)CHR$17"An error has occured"CHR$18 1640 IF ERR=214 OR ERR=222 PRINTTAB(28,10)"'SSFILES.TXT' not found...":GOTO1680 1650 IF ERR=198 OR ERR=190 PRINTTAB(28,10)"File can not be created":GOTO1680 1660 IF ERR=200 PRINTTAB(28,10)"File can not be closed":GOTO1680 1670 PRINTTAB(28,10);:REPORT:PRINT;" @ line";ERL:END 1680 PRINTTAB(28,12)"Press any key to exit...":G=GET:OSCLI("QUIT") 1690 DEF PROCABOUT 1700 CLS:PRINTTAB(24,3)"A m s t r a d N o t e b o o k" 1710 PRINTTAB(29,5)CHR$17"M e n u M a s t e r"CHR$18 1720 PRINTTAB(37,8)"-with-"TAB(34,10)"Speed Show"TAB(34,12)"Version 3.6"TAB(30,13)"Written by Tim Surtell":MOVE243,40:DRAW243,48:DRAW247,44:DRAW243,40:DRAW239,44:DRAW243,48 1730 MOVE140,10:DRAW140,114:DRAW340,114:DRAW340,10:DRAW140,10:MOVE139,9:PLOT21,139,115:PLOT21,341,115:PLOT21,341,9:PLOT21,139,9 1740 MOVE173,78:DRAW306,78:MOVE182,75:PLOT21,297,75:MOVE191,72:PLOT21,288,72 1750 G=INKEY(12000):IF G=-1 PROCIDLE 1760 CLS:PRINTTAB(32,0)"Amstrad Notebook"TAB(29,2)CHR$17"M e n u M a s t e r"CHR$18TAB(0,0)"Version 3.6" 1770 MOVE0,95:DRAW0,0:DRAW479,0:DRAW479,95:MOVE0,87:DRAW479,87:MOVE0,97:DRAW479,97:MOVE0,96:DRAW479,96 1780 PRINTTAB(0,4)CHR$14"(Q)uit (E)dit (F)ile (B)BC BASIC (A)bout "CHR$15 1790 ENDPROC 1800 DEF PROCSYM(S,xx,yy) 1810 MOVExx+5,yy:DRAWxx+10,yy:DRAWxx+15,yy+5:DRAWxx+15,yy+10:DRAWxx+10,yy+15:DRAWxx+5,yy+15:DRAWxx,yy+10:DRAWxx,yy+5:DRAWxx+5,yy 1820 IF S=1 MOVExx+7,yy+3:PLOT101,xx+8,yy+4:MOVExx+7,yy+6:DRAWxx+7,yy+8:DRAWxx+9,yy+10:DRAWxx+9,yy+11:DRAWxx+8,yy+12:DRAWxx+7,yy+12:DRAWxx+6,yy+11 1830 IF S=2 MOVExx+7,yy+7:PLOT101,xx+8,yy+8:DRAWxx+11,yy+11:MOVExx+8,yy+7:DRAWxx+11,yy+4 1840 IF S=3 MOVExx+7,yy+3:PLOT101,xx+8,yy+4:MOVExx+7,yy+6:PLOT101,xx+8,yy+12 1850 ENDPROC 1860 DEF PROCQUIT 1870 MOVE156,25:PLOT101,330,75:MOVE158,27:PLOT103,328,73:PROCSYM(1,165,52):PRINTTAB(31,8)CHR$17"Do you want to quit?"CHR$18 TAB(28,10)"Press Y or N..." 1880 REPEAT:G$=GET$:UNTILG$="Y" OR G$="N" OR G$=CHR$17 1890 IF G$="Y" OSCLI("QUIT") 1900 IF G$=CHR$17 PRINTTAB(28,11)"Programmer exit facility >":END 1910 ENDPROC 1920 DATA69,73,78,83,-1,84,69,73,78