home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / FANTAVI2.DSK / STARTUP.bas < prev    next >
BASIC Source File  |  2014-09-09  |  5KB  |  70 lines

  1. 0  ONERR  GOTO 60100
  2. 1  HIMEM: 8192
  3. 2  REM MOVIE MATINEE - 9/28/85
  4. 10  TEXT : HOME 
  5. 12  INVERSE : VTAB 4: HTAB 3: PRINT  SPC( 36): VTAB 14: HTAB 3: PRINT  SPC( 36): FOR V = 5 TO 13: VTAB V: HTAB 3: PRINT  SPC( 1): HTAB 38: PRINT  SPC( 1): NEXT : NORMAL 
  6. 20  VTAB 7: HTAB 11: PRINT "BR0DERBUND PRESENTS": PRINT : HTAB 15: PRINT "FANTAVISION": PRINT : HTAB 8: PRINT "(C) 1985 BY SCOTT ANDERSON"
  7. 22  VTAB 20: HTAB 7: PRINT "PRESS 'ESC' FOR INSTRUCTIONS"
  8. 30  POKE 1012,0
  9. 40  POKE 0,0: POKE 48389,1
  10. 60  GOSUB 3000
  11. 80  DIM V%(102,3),P%(102)
  12. 90 EF = 1
  13. 100 D = 0:DF = 0: FOR I = 1 TO 102:P%(I) = I: NEXT 
  14. 105  POKE IO +2,DF +1:T = 0:I = D:MF = 3: GOSUB 1050: ON C = 0 GOTO 150
  15. 110  FOR I = D +1 TO D +C:J = VE +3 *(I -D) -3:V%(I,0) = DF *8192 +(15 - PEEK(J +1)) *256 + PEEK(J +2): NEXT :D = D +C
  16. 120 T = 1:I = D:MF = 1: GOSUB 1050: FOR I = D +1 TO D +C:J = VE +3 *(I -D) -3:V%(I,0) = DF *8192 +4096 *( PEEK(J) >0) +(15 - PEEK(J +1)) *256 + PEEK(J +2):V%(I,3) = 1: NEXT :D = D +C
  17. 130  ON DF GOTO 150: POKE IO +2,2: POKE TY,2: CALL CA: IF  PEEK(0)  THEN  POKE 0,0: GOTO 150
  18. 135  IF  PEEK(BF +2) = 3  AND  PEEK(BF +36) = 13  AND  PEEK(BF +4) >240  THEN DF = 1: GOTO 105
  19. 150  FOR I = 2 TO D:K = I -1
  20. 154  IF V%(P%(K),0) >V%(P%(K +1),0)  THEN Z = P%(K):P%(K) = P%(K +1):P%(K +1) = Z:K = K -1: IF K < >0 GOTO 154
  21. 157  NEXT 
  22. 158  HGR2 : HGR :EF = 2
  23. 160 M = 1:DR = 1
  24. 163 J = P%(M): POKE ZP +53,0: POKE IO +2,1 +(V%(J,0) >8192): IF M = 1  THEN  POKE BG,0
  25. 165 A = V%(J,1): POKE NB +17, FN L(A): POKE NB +18, FN H(A): POKE NB +19,2
  26. 170 A = V%(J,2): POKE NB +21, FN L(A): POKE NB +22, FN H(A): ON V%(J,3) < >1 GOTO 175: IF DR =  -1  THEN 180
  27. 172 S = 24576: GOSUB 1150: POKE BG,255: GOTO 180
  28. 175 S = 33792: GOSUB 1250:A =  PEEK(1)
  29. 176  IF A = 27  OR  PEEK(49152) = 155  THEN  GOSUB 850: CALL CM: ON  PEEK(1) = 27 GOTO 176
  30. 179 DR = 1 -2 *( PEEK(MD) = 255): IF DR =  -1  THEN  POKE BG,0
  31. 180 M = M +DR:A = D *(M <1) +1 *(M >D):M = M *  NOT A +A: GOTO 163
  32. 190  POKE BG,0: GOTO 160
  33. 850  POKE 49168,0: HOME :A =  PEEK(49235): VTAB 20: PRINT 
  34. 853  PRINT "PRESS 'RETURN' TO SKIP,  SPACE TO PAUSE,'L' TO LOOP, ARROWS TO CHANGE DIRECTION.      SPEED: 1 (FAST) TO 7 (SLOW)            PRESS 'ESC' TO STOP OR START:";
  35. 857  FLASH : PRINT " ";: NORMAL 
  36. 858 A =  PEEK(49152): ON A <127 GOTO 858: IF A = 155  THEN  POKE 49168,0
  37. 860 A =  PEEK(49234):A =  PEEK(1): POKE 1,0: RETURN 
  38. 1000 C = 0: POKE TY,T: CALL CA
  39. 1005  CALL GT:A =  PEEK(CH): ON   NOT (A) GOTO 1020: IF A = 141  THEN C = C +1
  40. 1007 E =  PEEK(49152): IF E = 155  THEN  POKE 49168,0: GOTO 1070
  41. 1009  PRINT  CHR$(A);
  42. 1010  GOTO 1005
  43. 1020  RETURN 
  44. 1050 C = 0:FF = 0: POKE TY,T: CALL CA: ON  PEEK(0) GOTO 1070
  45. 1055  CALL GT: ON  PEEK(0) GOTO 1070:A =  PEEK(CH): ON   NOT A GOTO 1070: ON FF GOTO 1060:FF = 1:I = I +1:P =  FN A(PR) -MF:B =  PEEK(P +17): IF  PEEK(PR) -MF = 238  THEN P = N2 -18
  46. 1057 V%(I,1) = B +256 * PEEK(P +18):V%(I,2) =  FN A(P +21)
  47. 1060  IF A = 141  THEN C = C +1:FF = 0
  48. 1065  GOTO 1055
  49. 1070  POKE 0,0: ON I = 0 GOTO 60000: RETURN 
  50. 1099  FOR Z = 1 TO 31  STEP 2: PRINT Z"-";: FOR J = Z TO Z +1: FOR K = 0 TO 3: PRINT V%(P%(J),K)" ";: NEXT : PRINT "-";: NEXT : PRINT : NEXT : RETURN 
  51. 1100  POKE NU,0: FOR I = 0 TO 2: POKE VE +I,V%(J,I): NEXT : POKE IO +8,0: POKE IO +9,191: POKE LO, FN L(S): POKE HI, FN H(S): CALL BL: RETURN 
  52. 1130  POKE NU,N: POKE LO, FN L(S): POKE HI, FN H(S): CALL BL: RETURN 
  53. 1150  POKE IO +8,0: POKE IO +9,191: POKE LO, FN L(S): POKE HI, FN H(S): POKE 0,0: CALL QL: ON  PEEK(0) < >0 GOTO 60000: RETURN 
  54. 1160 A =  INT(V%(J,0)/1000): POKE NU,0: POKE VE,0: POKE VE +1,11 -<UNKNOWN TOKEN>: POKE VE +2,V%(J,0) -(1000 *A): CALL BL: RETURN 
  55. 1200  POKE NU,0: FOR I = 0 TO 2: POKE VE +I,V%(J,I): NEXT : POKE IO +8,0: POKE IO +9,191: POKE LO, FN L(S): POKE HI, FN H(S): CALL BR: RETURN 
  56. 1250  POKE IO +8,0: POKE IO +9,191: POKE LO, FN L(S): POKE HI, FN H(S): POKE 0,0: CALL QR: ON  PEEK(0) < >0 GOTO 60000: RETURN 
  57. 1260 A =  INT(V%(J,0)/1000): POKE NU,0: POKE VE,0: POKE VE +1,11 -A: POKE VE +2,V%(J,0) -(1000 *A): CALL BR: RETURN 
  58. 1300  POKE NU,0: FOR I = 0 TO 2: POKE VE +I,V%(J,I): NEXT : POKE LO,0: POKE HI,0: CALL RU: RETURN 
  59. 1500  INPUT "NAME:";N$:J =  LEN(N$): ON   NOT J GOTO 22: INPUT "START:";S: INPUT "LENGTH;";L: GOSUB 3000: POKE NB +16,6: GOSUB 2000: RETURN 
  60. 1600  GOSUB 3000:N$ = "SHOW":J =  LEN(N$):S = 2049:L =  PEEK(105) +256 * PEEK(106) -2049: POKE NB +16,252: GOSUB 2000: END 
  61. 2000  POKE NB,J: FOR I = 1 TO J: POKE NB +I, ASC( MID$ (N$,I)): NEXT : POKE NB +21, FN L(L): POKE NB +22, FN H(L): POKE NB +30,195: POKE NB +37,2: POKE NB +31, FN L(S): POKE NB +32, FN H(S): CALL WT: RETURN 
  62. 3000 LO = 768:HI = 769:TY = 770:NU = 771:CH = 772:CA = 773:GT = 789:BL = 803:BR = 814:RU = 828:WT = 867:QL = 902:QR = 913:CM = 952:VE = 561
  63. 3002 PR = 46166:NB = 47552:N2 = 47594:IO = 48249:ZP = 43008:BF = 48896
  64. 3003 BG = 44044: POKE BG,0:MD = 2: POKE MD,1
  65. 3005  DEF  FN H(X) =  INT(X/256): DEF  FN L(X) = X - FN H(X) *256: DEF  FN A(X) =  PEEK(X) +256 * PEEK(X +1): RETURN 
  66. 60000  HOME : TEXT : VTAB 8: IF   NOT  PEEK(0)  THEN  HTAB 10: PRINT "** EMPTY  SHOW DISK **": GOTO 60040
  67. 60010  HTAB 12: PRINT "** DRIVE  ERROR **"
  68. 60040  PRINT : PRINT : HTAB 3: PRINT "TO RESTART, INSERT DISK IN DRIVE #1,": PRINT : HTAB 12: PRINT "THEN PRESS RETURN:";
  69. 60050  GET A$:A =  FN A(16 *4096 -4): CALL A
  70. 60100  ON EF = 2 GOTO 160: RUN