1000 ' Start of menu program
1001 REM PATRICK LEABO--TUSCON
1002 REM 3-14-82
1003 DEFINT A-Z:COMMON MENU
1004 KEY OFF:DIM TI$(20),FINAME$(20),GRA(20):TI$(1)="Switch Displays":GRA(1)=1:TI$(2)="Next Menu":GRA(2)=0:TI$(14)="Quit":GRA(14)=0
1005 DEF SEG:SCREEN 0,1:NOMENU = 2:POKE 106,0
1006 COLOR 7,0:IF MENU=0 THEN MENU=1
1010 CLS:DEF SEG=0:IF (PEEK(&H410) AND &H30) = &H30 THEN DSPMODE = 1 ELSE DSPMODE = 2
1015 DEF SEG = &H40:POKE &H17,64:DEF SEG
1020 DEF SEG :POKE 106,0:IF DSPMODE = 1 THEN WIDTH 80 ELSE WIDTH 40
1022 COLOR 7,0:LOCATE ,,0
1025 ON MENU GOSUB 2000,3000
1030 LOCATE 1,1:PRINT"?";STRING$(37,"?");"?";
1040 FOR N = 2 TO 22:LOCATE N,39:PRINT"?";:NEXT N
1045 FOR N = 2 TO 22:LOCATE N,1:PRINT"?";:NEXT N
1050 LOCATE 23,1:PRINT"?";STRING$(37,"?");"?";
1060 LOCATE 2,5:PRINT"Patrick Leabo's fun DISK #1"
1070 LOCATE 3,10:PRINT TI$(0)
1075 L = 5:IF DSPMODE = 1 THEN GOSUB 9000
1080 FOR N=1 TO 14:
1090 LOCATE N +4,L:IF GRA(N)=0 THEN PRINT"  "; ELSE IF GRA(N)=1 THEN PRINT"* "; ELSE PRINT "? ";
1095 PRINT CHR$(N+64);". ";TI$(N)
1100 NEXT
1105 LOCATE 22,4:PRINT"* color required   ? 80 character";
1110 LOCATE 20,26:PRINT"          ":LOCATE 20,6:PRINT "Press Your Choice  ";:COLOR 26,0:PRINT"?";:COLOR 7,0:WHILE INKEY$<>"":WEND
1115 CH$=INKEY$:IF CH$="" THEN 1115 ELSE PRINT CH$:CH=ASC(CH$):IF CH >78 THEN CH= CH-32
1120 IF CH<64 OR CH>78 THEN LOCATE 22,4:PRINT"SORRY-INVALID CHOICE !!!!!!       ":BEEP:FOR N=1 TO 2000:NEXT:GOTO 1105
1125 IF CH<>65 AND GRA(CH-64)=1 AND DSPMODE=1 THEN LOCATE 22,4:PRINT"WHOOPS-WRONG DISPLAY !!!!!!!       ":BEEP:FOR N=1 TO 2000:NEXT:GOTO 1105
1130 ON CH-64  GOTO 1140,1150
1132 IF CH=78 THEN LOCATE 22,4:PRINT"Bye. See you later !!!!!!!!       ";:BEEP:END
1133 IF FINAME$(CH-64)="" THEN LOCATE 22,4:PRINT"NO PROGRAM YET !!!!!!!!!!!!!       ":BEEP:FOR N=1 TO 2000:NEXT:GOTO 1105
1139 CHAIN FINAME$(CH-64),1000
1140 GOSUB 60000:CLS:GOTO 1010
1150 MENU = MENU + 1:IF MENU > NOMENU THEN MENU = 1
1160 GOTO 1010
2000 ' Menu # 1 Entries
2020 TI$(0)="Menu # 1"
2030 TI$(3)="Blackjack":FINAME$(3)="BLACKJCK":GRA(3)=2
2040 TI$(4)="Circles":FINAME$(4)="CIRCLES":GRA(4)=1
2050 TI$(5)="Donkey":FINAME$(5)="DONKEY":GRA(5)=1
2060 TI$(6)="Character Patterns":FINAME$(6)="DOTS":GRA(6)=0
2070 TI$(7)="Music":FINAME$(7)="MUSIC":GRA(7)=0
2080 TI$(8)="Space":FINAME$(8)="SPACE":GRA(8)=1
2090 TI$(9)="Othello":FINAME$(9)="OTHELLO":GRA(9)=2
2100 TI$(10)="Maxit":FINAME$(10)="MAXIT":GRA(10)=0
2110 TI$(11)="Hat Dance":FINAME$(11)="HATDANCE":GRA(11)=0
2120 TI$(12)="Kaleidascope":FINAME$(12)="KALEID":GRA(12)=0
2130 TI$(13)="Mortgage":FINAME$(13)="MORTGAGE":GRA(13)=0
2150 RETURN
3000 ' Menu # 2 Entries
3020 TI$(0)="Menu # 2"
3030 TI$(3)="Art":FINAME$(3)="ART":GRA(3)=1
3040 TI$(4)="Piechart":FINAME$(4)="PIECHART":GRA(4)=1
3050 TI$(5)="Ball":FINAME$(5)="BALL":GRA(5)=1
3060 TI$(6)="Color Bars":FINAME$(6)="COLORBAR":GRA(6)=1
3070 TI$(7)="Circles":FINAME$(7)="CIRCLE":GRA(7)=1
3080 TI$(8)="Strings":FINAME$(8)="STRINGS":GRA(8)=1
3090 TI$(9)="Wombat Math game":FINAME$(9)="WOMBAT":GRA(9)=2
3100 TI$(10)="Yahtzee":FINAME$(10)="YAHTZEE":GRA(10)=2
3110 TI$(11)="Pong-Pong":FINAME$(11)="PONGPONG":GRA(11)=2
3120 TI$(12)="Patterns":FINAME$(12)="PATTERNS":GRA(12)=1
3130 TI$(13)="Cribbage":FINAME$(13)="":GRA(13)=2
3150 RETURN
9000 REM 80 COLUMN FILLER
9005 YY=6:XX=44:M=1
9010 LOCATE YY+1,XX+M:PRINT"?????? ?????????    ?????     ?????"
9020 LOCATE YY+2,XX+M:PRINT"?????? ???????????? ?????     ?????"
9030 LOCATE YY+3,XX+M:PRINT"  ??    ???    ???    ????   ????  "
9040 LOCATE YY+4,XX+M:PRINT"  ??    ????????      ????? ?????  "
9050 LOCATE YY+5,XX+M:PRINT"  ??    ????????      ???????????  "
9060 LOCATE YY+6,XX+M:PRINT"  ??    ???    ???    ??? ??? ???  "
9070 LOCATE YY+7,XX+M:PRINT"?????? ???????????? ?????  ?  ?????"
9080 LOCATE YY+8,XX+M:PRINT"?????? ??????????   ?????     ?????"
9090 LOCATE YY+11,53:PRINT"PERSONAL COMPUTER"
9100 RETURN
59999 GOTO 59999
60000 ' PROGRAM TO SWITCH BETWEEN MONO AND COLOR DISPLAY
60005 DEF SEG=0:IF (PEEK(&H410) AND &H30) = &H30 THEN DSPMODE = 1 ELSE DSPMODE = 2
60010 ADAPTER = 0:DEF SEG = &HB000:POKE 0,63:IF PEEK(0) = 63 THEN ADAPTER = ADAPTER OR 1
60015 DEF SEG = &HB800:POKE 0,63:IF PEEK(0) = 63 THEN ADAPTER = ADAPTER OR 2
60020 DEF SEG
60025 IF ADAPTER <>3 THEN BEEP:PRINT"Sorry--other display isn't installed!!":GOSUB 60080:RETURN
60030 ON DSPMODE GOSUB 60035,60060:RETURN
60035 REM switch to color/graphics adapter
60040 KEY OFF:CLS:LOCATE 10,15:PRINT"using other screen--PRESS the A key to get back here!":LOCATE ,,0
60045 DEF SEG = 0:POKE &H410,(PEEK (&H410) AND &HCF) OR &H10:DEF SEG
60050 SCREEN 1,0:SCREEN 0,1:COLOR 1,0:WIDTH 40:COLOR 7,0
60055 LOCATE ,,1,6,7:RETURN
60060 REM switch to monochrome adapter
60065 KEY OFF:CLS:LOCATE 9,5:PRINT"Using other screen.":LOCATE 10,5:PRINT"PRESS the A key to get back here!":LOCATE ,,0
60070 DEF SEG = 0:POKE &H410,(PEEK(&H410) OR &H30):DEF SEG
60075 SCREEN 0:WIDTH 80:LOCATE ,,1,12,13:RETURN
60080 FOR N = 1 TO 3000:NEXT:RETURN:'DELAY