home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib22a.dsk / DECEMBER.1984 / NIBBLER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  104 lines

  1. 10  REM **********************
  2. 11  REM **    HIGH SCORE    **
  3. 12  REM **********************
  4. 13  REM ***0000000000***...***
  5. 14  REM ***0000000000***...***
  6. 15  REM ***0000000000***...***
  7. 16  REM ***0000000000***...***
  8. 17  REM ***0000000000***...***
  9. 18  REM **********************
  10. 20  TEXT : HOME : INVERSE 
  11. 30  VTAB 5: HTAB 13: PRINT ":" SPC( 13)":": HTAB 13: PRINT " N I B B L E R ": HTAB 13: PRINT ":" SPC( 13)":"
  12. 40  NORMAL : VTAB 12: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **": VTAB 9: HTAB 12: PRINT "BY: BRENT IVERSON"
  13. 49 :
  14. 50  REM ---LOAD MACHINE LANGUAGE
  15. 51 :
  16. 60  VTAB 20: HTAB 11: PRINT "LOADING OBJECT CODE"
  17. 70  PRINT  CHR$(4)"BLOAD NIBBLER.OBJ"
  18. 79 :
  19. 80  REM ---LOAD SHAPE TABLE
  20. 81 :
  21. 90  VTAB 20: HTAB 1: PRINT  SPC( 12)"LOADING  SHAPES";: CALL  -868
  22. 100  PRINT : PRINT  CHR$(4)"BLOAD NIBBLER.SHAPES,A$1500"
  23. 109 :
  24. 110  REM ---SET TABLE POINTERS
  25. 111 :
  26. 120  POKE 232,0: POKE 233,21: SCALE= 1
  27. 129 :
  28. 130  REM ---WAIT FOR KEYPRESS
  29. 131 :
  30. 140  VTAB 20: HTAB 8: PRINT "<PRESS ANY KEY TO BEGIN>"
  31. 150  POKE  -16368,0
  32. 160  WAIT  -16384,128
  33. 169 :
  34. 170  REM ---CLEAR PAGE 2
  35. 171 :
  36. 180  HGR2 
  37. 189 :
  38. 190  REM ---PLAY GAME
  39. 191 :
  40. 200  CALL 24576
  41. 209 :
  42. 210  REM ---FLIP BETWEEN TEXT
  43. 220  REM    AND HI-RES WHILE
  44. 230  REM    WAITING FOR ANOTHER
  45. 240  REM    KEYPRESS
  46. 241 X =  FRE(0): GOTO 490
  47. 242 SC = 0
  48. 243  FOR X = 24597 TO 24606:SC = SC *10 + PEEK(X): NEXT 
  49. 244  IF SC >HS  THEN HS = SC
  50. 245  VTAB 17: HTAB 7: PRINT "SCORE: ";SC;"  HIGH SCORE: ";HS;: CALL  -868
  51. 250  VTAB 15: HTAB 15: FLASH : PRINT "GAME OVER": NORMAL 
  52. 260  FOR I = 1 TO 2000: NEXT : POKE  -16368,0
  53. 270  POKE  -16304,0: POKE  -16297,0
  54. 280  FOR I = 1 TO 250: IF  PEEK( -16384) >127  THEN 180
  55. 290  NEXT : TEXT 
  56. 300  FOR I = 1 TO 250: IF  PEEK( -16384) >127  THEN 180
  57. 310  NEXT : GOTO 270
  58. 320  HOME : VTAB 5: HTAB 12: FLASH : PRINT "CONGRATULATIONS!": NORMAL 
  59. 330  VTAB 7: PRINT "YOUR HIGH SCORE HAS JUST QUALIFIED YOU": PRINT "FOR ENTRY INTO 'THE NIBBLER' HIGH SCORE": HTAB 13: PRINT "HALL OF FAME!"
  60. 340  PRINT : PRINT : HTAB 12: INVERSE : PRINT "HIGH SCORE LIST": NORMAL 
  61. 350  PRINT : HTAB 11: PRINT "SCORE" SPC( 7)"INITIAL"
  62. 360  PRINT : FOR I = 1 TO 5: HTAB 10: PRINT I;" ";H(I);: HTAB 25: PRINT H$(I): NEXT 
  63. 370  IF E = 1  THEN  VTAB 20: HTAB 8: PRINT "<PRESS ANY KEY TO BEGIN>": GOTO 650
  64. 380  PRINT : PRINT : HTAB 2: INPUT "ENTER YOUR INITIALS FOR OUR RECORD ";NA$
  65. 390  IF  LEN(NA$) >3  OR  LEN(NA$) <1  THEN 380
  66. 400  IF  ASC(NA$) <65  THEN 380
  67. 410  RETURN 
  68. 420  FOR I = 24597 TO 24606:N =  PEEK(I):S$ = "":S$ =  STR$(N):SC$ = SC$ +S$:SY =  VAL(SC$): NEXT :TF$ = SC$:SC$ = "":YS = SY
  69. 430  RETURN 
  70. 440 X = 1
  71. 450  FOR I = 2140 TO 2252  STEP 28: FOR J = 1 TO 10:G =  PEEK(I +J):A$ = "":A$ =  STR$(G -48):SA$ = SA$ +A$: NEXT J:H(X) =  VAL(SA$):X = X +1:SA$ = "": NEXT I
  72. 460 Y = 1
  73. 470  FOR I = 2153 TO 2265  STEP 28: FOR J = 1 TO 3:GN =  PEEK(I +J):M$ =  CHR$(GN):MM$ = MM$ +M$:M$ = "": NEXT J:H$(Y) = MM$:MM$ = "":Y = Y +1: NEXT I
  74. 480  RETURN 
  75. 490  GOSUB 420: GOSUB 440
  76. 500  IF YS < = H(5)  THEN  GOTO 250
  77. 510  IF YS >H(5)  AND YS < = H(4)  THEN C = 4: GOTO 560
  78. 520  IF YS >H(4)  AND YS < = H(3)  THEN C = 3: GOTO 560
  79. 530  IF YS >H(3)  AND YS < = H(2)  THEN C = 2: GOTO 560
  80. 540  IF YS >H(2)  AND YS < = H(1)  THEN C = 1: GOTO 560
  81. 550  IF YS >H(1)  THEN C = 0
  82. 560 HA = 2140:M = C *28:E = 0
  83. 570  GOSUB 320
  84. 580  IF C =  >4  THEN 600
  85. 590  GOTO 670
  86. 600 SC$ = TF$:E = 1
  87. 610  FOR I = 1 TO 10:C$ =  MID$ (SC$,I,1):CC =  VAL(C$): POKE (HA +M +I),(CC +48):CC = 0: NEXT 
  88. 620 SC$ = ""
  89. 630  FOR I = 1 TO 3:L$ =  MID$ (NA$,I,1): POKE (HA +M +I +13), ASC(L$):L$ = "": NEXT 
  90. 640  HOME : GOSUB 440: GOTO 340
  91. 650  PRINT  CHR$(4);"SAVE NIBBLER"
  92. 660  GOTO 250
  93. 670 CS = C: GOSUB 700: GOTO 770
  94. 680  IF C =  <3  THEN 670
  95. 690 C = CS: GOTO 600
  96. 700 T = (C +1):MT = T *28
  97. 710 Z1$ = "0000000000"
  98. 720 Z0$ =  LEFT$(Z1$,10 - LEN( STR$(H(T)))) + STR$(H(T))
  99. 730  FOR I = 1 TO 10: POKE (HA +MT +I), VAL( MID$ (Z0$,I,1)) +48: NEXT 
  100. 740 Z3$ = H$(T)
  101. 750  FOR I = 1 TO 3:K$ =  MID$ (Z3$,I,1): POKE (HA +MT +I +13), ASC(K$):K$ = "": NEXT 
  102. 760  RETURN 
  103. 770 C = C +1: IF C > = 4  THEN C = CS: GOTO 600
  104. 780  GOTO 680