home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / FANT4-1.DSK / MENU.bas < prev    next >
BASIC Source File  |  2014-09-09  |  4KB  |  101 lines

  1. 1  REM  MENU IS A PRODUCT OF GREEN VALLEY PUBLISHING
  2. 2  REM  A DIVISION OF SHAREDATA, INC.
  3. 3  REM  COPYRIGHT (C) 1986, ALL RIGHTS RESERVED
  4. 10  HIMEM: 8192
  5. 20  ONERR  GOTO 970
  6. 30  DIM NM$(30),FT(30),M$(7),C(2,2),V(7),M(7),T$(4)
  7. 40  READ T: FOR I = 1 TO T: READ T$(I): NEXT 
  8. 50  DATA     3,THE FANTASTIC FOUR,,SOLVE THE MYSTERY OF QUESTPROBE!
  9. 60  DATA     32,227,3,133,79,132,78,96,32,227,3,32,217,3,176,5,169,0,133,78,96,169,1,133,78,96
  10. 70  DATA  169,64,133,61,169,32,133,67,169,0,133,60,133,66,169,95,133,63,169,255,133,62,32,44,254,96
  11. 80 A = 56: FOR I = 1 TO 7:V(I) = A:A = A +16: NEXT 
  12. 90  DEF  FN T(X) =  INT((40 - LEN(T$(X)))/2 +.5)
  13. 100  DEF  FN D(X) = (5 *(X -1))
  14. 110  DEF  FN M(X) =  INT((40 - LEN(M$(X)))/2 +.5)
  15. 120 D$ =  CHR$(4)
  16. 130 BUF = 20000
  17. 140 FINDIOB = 768:RWTS = FINDIOB +8:ERR = 78
  18. 150  FOR ADR = FINDIOB TO FINDIOB +25: READ V: POKE ADR,V: NEXT 
  19. 160  CALL FINDIOB:IOB =  PEEK(78) + PEEK(79) *256
  20. 170 VOL = 0
  21. 180 TRK = 17:SEC = 15
  22. 190 CMD = 1:LOC = BUF
  23. 200  POKE IOB +4,TRK: POKE IOB +5,SEC
  24. 210  POKE IOB +9,LOC/256: POKE IOB +8,LOC - PEEK(IOB +9) *256
  25. 220  POKE IOB +12,CMD: POKE IOB +3,VOL
  26. 230  CALL RWTS
  27. 240  POKE 72,0: POKE IOB +3,255
  28. 250  IF  PEEK(ERR)  THEN 270
  29. 260  GOTO 280
  30. 270  PRINT "DISK ERROR": PRINT D$"MAXFILES 3": END 
  31. 280 NT =  PEEK(BUF +1):NS =  PEEK(BUF +2)
  32. 290  FOR I = BUF +11 TO BUF +221  STEP 35
  33. 300  IF  PEEK(I) = 255  THEN 370
  34. 310  IF  PEEK(I) = 0  THEN NS = 0:NT = 0: GOTO 370
  35. 320 NF = NF +1:FT(NF) =  PEEK(I +2)
  36. 330 NM$(NF) = "": FOR J = I +3 TO I +34
  37. 340  IF  PEEK(J) = 160  AND  PEEK(J +1) = 160  THEN J = I +34: GOTO 360
  38. 350 NM$(NF) = NM$(NF) + CHR$( PEEK(J))
  39. 360  NEXT J
  40. 370  NEXT I
  41. 380  IF NT < >0  THEN TRK = NT:SEC = NS: GOTO 190
  42. 390  PRINT D$"BLOAD MENUFONT,A$9100"
  43. 400  PRINT D$"BRUN HI-GEN"
  44. 410  FOR I = 1 TO T
  45. 420  VTAB I +1: HTAB  FN T(I): PRINT T$(I)
  46. 430  NEXT I
  47. 440  HCOLOR= 1
  48. 450  HPLOT 7,0 TO 259,0 TO 259,40 TO 7,40 TO 7,0
  49. 460  HPLOT 11,2 TO 255,2 TO 255,38 TO 11,38 TO 11,2
  50. 470  HCOLOR= 5: HPLOT 1,45 TO 263,45 TO 263,150 TO 1,150 TO 1,45: HPLOT 25,45 TO 25,150
  51. 480  HPLOT 3,46 TO 261,46 TO 261,149 TO 3,149 TO 3,46: HPLOT 27,45 TO 27,150
  52. 490  VTAB 21: PRINT "USE <- AND -> TO SELECT, RETURN TO RUN": PRINT : PRINT "(C) 1986  BY GREEN VALLEY PUBLISHING": HTAB 5: PRINT "A DIVISION OF SHAREDATA, INC.";
  53. 500  HCOLOR= 3: HPLOT 252,173 TO 258,173: HPLOT 255,173 TO 255,177
  54. 510  HPLOT 260,173 TO 260,177: HPLOT 260,173 TO 263,176 TO 266,173: HPLOT 267,173 TO 267,177
  55. 520 H = 40:MM = 0: FOR I = 1 TO NF
  56. 530  IF  ASC( MID$ (NM$(I), LEN(NM$(I)) -1,1)) < >174  THEN 560
  57. 540 MM = MM +1:M =  ASC( RIGHT$(NM$(I),1)) -192:M(M) = I:M$(M) =  LEFT$(NM$(I), LEN(NM$(I)) -2)
  58. 550 A =  FN M(M): IF A <H  THEN H = A
  59. 560  NEXT I
  60. 570 V = 6
  61. 580  FOR I = 1 TO MM
  62. 590 V = V +2: VTAB V: HTAB H: PRINT M$(I)
  63. 600  NEXT 
  64. 610 B = 28672: FOR I = 0 TO 25: READ A: POKE B +I,A: NEXT : CALL B
  65. 620  PRINT D$"BLOAD STABLE"
  66. 630  PRINT D$"BLOAD GRAPHIX"
  67. 640 X =  PEEK(25424)
  68. 650 MT = 6:ST = 8:SE = 24576:MO = SE +3:TA = 29952:AN = 26112
  69. 660  POKE MT,0: POKE MT +1,117
  70. 670  POKE ST,0: POKE ST +1,118
  71. 680 A = 25425: FOR I = 1 TO X
  72. 690 C(I,1) =  PEEK(A):A = A +1
  73. 700 C(I,2) =  PEEK(A):A = A +1
  74. 710  NEXT I
  75. 720  POKE TA +5,0
  76. 730  POKE TA,1: POKE TA +1,C(2,1): POKE TA +2,C(2,2): POKE TA +3,V(1) -7: POKE TA +4,1
  77. 740  CALL SE
  78. 750  CALL SE +3:A = 1: GOTO 800
  79. 760  POKE TA +1,C(1,1): POKE TA +2,C(1,2): FOR I = V(A) TO V(A +1)
  80. 770  POKE TA +3,I: CALL SE +3
  81. 780  NEXT 
  82. 790 A = A +1: POKE TA +3, PEEK(TA +3) -7: POKE TA +1,C(2,1): POKE TA +2,C(2,2): CALL SE +3: GOTO 800
  83. 800 X =  PEEK( -16384): IF X <128  THEN 800
  84. 810  POKE 49168,0
  85. 820  IF X < >149  THEN 850
  86. 830  IF A = MM  THEN  FOR I = 1 TO 10:X =  PEEK( -16336): NEXT : GOTO 800
  87. 840  GOTO 760
  88. 850  IF X < >136  THEN 910
  89. 860  IF A = 1  THEN  FOR I = 1 TO 10:X =  PEEK( -16336): NEXT : GOTO 800
  90. 870  POKE TA +1,C(1,1): POKE TA +2,C(1,2): FOR I = V(A) TO V(A -1)  STEP  -1
  91. 880  POKE TA +3,I: CALL SE +3
  92. 890  NEXT 
  93. 900 A = A -1: POKE TA +3, PEEK(TA +3) -7: POKE TA +1,C(2,1): POKE TA +2,C(2,2): CALL SE +3: GOTO 800
  94. 910  IF X < >141  THEN  FOR I = 1 TO 10:X =  PEEK( -16336): NEXT : GOTO 800
  95. 920  TEXT : HOME : POKE 54,240: POKE 55,253: POKE 56,27: POKE 57,253: CALL 1002
  96. 922  VTAB 12: HTAB 15: PRINT "LOADING..."
  97. 930  ON FT(M(A)) +1 GOTO 940,950,950,960,960
  98. 940  PRINT D$"EXEC "NM$(M(A)): END 
  99. 950  PRINT D$"RUN "NM$(M(A)): END 
  100. 960  PRINT D$"BRUN "NM$(M(A)): END 
  101. 970  CLEAR : GOTO 10