0 REM *** MENU (44 PROGRAM MAX)›1 REM *** (C) 1980 LEN LINDSSAY›2 REM *** LAST REVISION 11-15-80›3 REM ÉÍÐÏÒÔÁÎÔ¡ ÌÉÎÅ ±³° ÍÁÙ ÎÅÅÄ ÔÏ ÂÅ ÃÈÁÎÇÅÄ ÆÏÒ ÙÏÕÒ ÄÏÓ ÖÅÒÓÉÏή›10 DIM ARRAY$(528),FILE$(20),NAME$(20),DISK$(3)›15 POKE 82,0:POKE 83,38:REM DEFAULT MARGINS›20 GRAPHICS 0:REM CLEAR SCREEN AND GO INTO TEXT MODE 0›30 POKE 752,1:REM CURSOR OFF›40 SETCOLOR 2,10,8:SETCOLOR 4,10,8:SETCOLOR 1,2,2›50 DISK$="D1:":REM THE DISK TO BE USED FOR A MENU›60 NAME$=DISK$:REM THE NAME MUST START WITH THE DISK DRIVE NUMBER›70 NAME$(LEN(NAME$)+1)="*.*":REM LOADING D1:*.* GIVES DISK DIRECTORY›100 OPEN #1,6,0,NAME$:REM OPEN THE DISK DIRECTORY FOR A READ›110 FILECOUNT=0:REM INITIALIZE COUNT›120 INPUT #1,FILE$:REM READ NEXT PROGRAM NAME›130 IF LEN(FILE$)<>5 THEN 500:REM NOT A PROGRAM - THIS IS THE SECTORS LEFT COUNT›140 FILECOUNT=FILECOUNT+1:REM ADD ONE TO COUNT›150 IF FILECOUNT=23 THEN POKE 82,18:POSITION 18,0:REM SWITCH TO RIGHT HALF OF SCREEN (CHANGE LEFT MARGIN TOO)›160 IF FILECOUNT>44 THEN FILECOUNT=44:GOTO 120:REM TOO MANY PROGRAMS-JUST KEEP READING›200 NAME$=" ":REM INITIALIZE THE NAME FIELD TO ALL BLANKS EXCEPT THE DOT BEFORE THE EXTENSION›210 IF FILE$(11,13)=" " THEN NAME$(9,9)=" ":REM THERE IS NO EXTENSION SO GET RID OF THE DOT›220 NAME$(1,8)=FILE$(3,10):REM ASSIGN THE FIRST 8 CHARACTERS OF THE PROGRAM NAME›230 NAME$(10,12)=FILE$(11,13):REM ASSIGN THE THE EXTENSION OF THE PROGRAM NAME›300 IF FILECOUNT<10 THEN PRINT " ";:REM ADD AN EXTRA SPACE BEFOR THE SINGLE DIGIT NUMBERS TO ALIGN WITH2 DIGITS›310 PRINT FILECOUNT;">";:REM PRINT FILE NUMBER›320 PRINT NAME$:REM PRINT THE PROGRAM NAME›400 ARRAY$(LEN(ARRAY$)+1)=NAME$:REM ADD ON THE LATEST NAME TO END OF STRING OF NAMES THUS FAR›410 GOTO 120:REM GO READ THE NEXT FILE NAME›500 TRAP 500:REM SET TRAP FOR BAD INPUT›505 CLOSE #1:REM CLOSE THE FILE USED TO INPUT DISK DIRECTORY›510 POKE 752,1:REM TURN CURSOR BACK ON›520 POSITION 2,22:PRINT "RUN NUMBERý";:REM PRINT MESSAGE ON MESSAGE LINE›525 POKE 82,2:REM SET LEFT MARGIN TO DEFAULT›530 INPUT CHOICE:REM GET THE NUMBER OF THE PROGRAM TO RUN›540 CHOICE=INT(CHOICE):REM GET RID OF FRACTIONS›550 IF CHOICE<1 OR CHOICE>FILECOUNT THEN 500:REM OUT OF RANGE OF THIS MENU›600 FILE$=DISK$:REM THE NAME TO USE WITH A RUN STATMENT MUST BEGIN WITH THE DISK DRIVE NUMBER›610 NAME$=ARRAY$(CHOICE*12-11,CHOICE*12):REM THE NAME OF THE PROGRAM INCLUDING EXTRA SPACES›620 FOR LOOP=1 TO 12›630 IF NAME$(LOOP,LOOP)<>" " THEN FILE$(LEN(FILE$)+1)=NAME$(LOOP,LOOP)›640 NEXT LOOP›700 TRAP 900:REM SET TRAP FOR DISK ERROR›720 POSITION 10,22:PRINT " LOADINGý ";NAME$:REM PRINT MESSAGE ON MESSAGE LINE›730 RUN FILE$:TRAP 34567:REM RUN PROGRAM AND TURN OFF TRAP›900 POSITION 10,22:PRINT " CAN'T RUNý ";NAME$:REM PRINT MESSAGE ON MESSAGE LINE›910 FOR PAUSE=1 TO 999:NEXT PAUSE:REM DELAY TO ALLOW TIME TO READ MESSAGE›920 GOTO 500:REM GO AND TRY AGAIN›