home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib23a.dsk / MARCH.1985 / SPINNER.DEMO1.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  100 lines

  1. 10  REM  **********************
  2. 20  REM  *   SPINNER  DEMO1   *
  3. 30  REM  *  BY STEVEN KEARNS  *
  4. 40  REM  * COPYRIGHT (C) 1985 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  REM 
  9. 90  PRINT  CHR$(4)"BLOAD SPINNER"
  10. 100 MS = 24576: REM  MOVES STRING INTO BUFFER
  11. 110 SS = 24630: REM  SPINS STRING
  12. 120 SL = 24770: REM  LENGTH OF STRING
  13. 130 ST = 24771: REM  FIRST CHARACTER OF STRING
  14. 140 DIR = 8: REM  DIRECTION OF SPIN
  15. 150  HOME : VTAB 12: PRINT  SPC( 9)"A DEMO FOR THE SPINNER"
  16. 160  POKE DIR,0: GOSUB 790
  17. 170 A$ = "^ ": CALL MS,A$
  18. 180  HOME : VTAB 12: HTAB 7: PRINT "DEMO OF 2 CHARACTER STRING"
  19. 190  GOSUB 790
  20. 200  HOME 
  21. 210  POKE 32,3: REM   MOVE EDGE OF SCREEN
  22. 220  VTAB 3: PRINT "TRY THIS LITTLE EXPERIMENT."
  23. 230  PRINT : PRINT "FOLLOW ONE OF THE LITTLE ";: INVERSE : PRINT "^";: NORMAL : PRINT "'S"
  24. 240  PRINT : PRINT "ACROSS THE SCREEN WITH YOUR"
  25. 250  PRINT : PRINT "FINGER AT THE SAME SPEED.  NOW"
  26. 260  PRINT : PRINT "REVERSE YOUR FINGER AND TRAVEL THE"
  27. 270  PRINT : PRINT "OTHER DIRECTION AT THE SAME SPEED."
  28. 280  PRINT : PRINT "WELL, WHICH WAY IS IT SPINNING?": TEXT 
  29. 290  GOSUB 790
  30. 300 A$ = "! * ": CALL MS,A$
  31. 310  HOME : VTAB 12: HTAB 7: PRINT "DEMO OF 4 CHARACTER STRING"
  32. 320  GOSUB 790
  33. 330 A$ = "** THE SPINNER BY STEVE KEARNS ": CALL MS,A$
  34. 340  HOME : VTAB 12: HTAB 7: PRINT "DEMO OF 31 CHARACTER STRING"
  35. 350  GOSUB 790
  36. 360 A$ = "THIS MESSAGE IS EXACTLY SIXTY-TWO CHARACTERS IN LENGTH ++++++ ": CALL MS,A$
  37. 370  HOME : VTAB 12: HTAB 7: PRINT "DEMO OF 62 CHARACTER STRING"
  38. 380  GOSUB 790
  39. 385  REM  SET STRING = TO NORMAL SPACE
  40. 390 A$ = " ": CALL MS,A$: POKE ST,160
  41. 400  HOME : VTAB 10: HTAB 9: PRINT "FLOAT TITLES TO THE TOP"
  42. 410  VTAB 12: HTAB 7: PRINT "WITH 124 CHARACTER STRINGS!"
  43. 420  GOSUB 790: VTAB 22: CALL  -868
  44. 430 :
  45. 440  REM  FLOAT ROUTINE
  46. 450 :
  47. 460 A$ = "CENTERED TITLE":L =  LEN(A$)/2
  48. 470  FOR X = 1 TO 124 - LEN(A$):A$ = A$ +" ": NEXT X
  49. 480  POKE DIR,1: CALL MS,A$
  50. 490  FOR R = 1 TO 104 -L: FOR PAUSE = 1 TO 60: NEXT PAUSE
  51. 500  CALL SS: NEXT R
  52. 510  VTAB 14: HTAB 5: PRINT "LIST 440-500 FOR FLOAT ROUTINE"
  53. 520  VTAB 20: HTAB 5: PRINT "COPYRIGHT 1985 BY MICROSPARC, INC";: PRINT : VTAB 22: HTAB 6: PRINT "PRESS THE SPACE BAR TO CONTINUE"
  54. 530 X =  PEEK( -16384)
  55. 540  IF X = 160  THEN  POKE  -16368,0: GOTO 560
  56. 550  GOTO 530
  57. 560 :
  58. 570  REM  SPECIAL MESSAGES
  59. 580 :
  60. 590  HOME 
  61. 600 :
  62. 610  REM  N = 1 FOR NORMAL MESSAGE
  63. 620  REM  F = 1 FOR FLASHING MESSAGE
  64. 630 :
  65. 640 N = 1:F = 0:A$ = "/ 31 CHARACTER NORMAL STRING //": GOSUB 860
  66. 650  VTAB 12: HTAB 13: PRINT "NORMAL MESSAGES"
  67. 660  GOSUB 790
  68. 670 N = 0:F = 1:A$ = "FLASHING MESSAGES ARE POSSIBLE-": GOSUB 860
  69. 680  HOME : VTAB 12: HTAB 13: PRINT "FLASHING MESSAGES"
  70. 690  GOSUB 790
  71. 700 A$ = "  COMBINE MODES ": CALL MS,A$
  72. 710  POKE ST,160
  73. 720  HOME : VTAB 12: HTAB 8: PRINT "EVEN COMBINATIONS ARE EASY!"
  74. 730  GOSUB 790
  75. 740 A$ = "** THE SPINNER BY STEVE KEARNS ": CALL MS,A$
  76. 750  HOME : VTAB 12: HTAB 13: PRINT "HAPPY SPINNING!"
  77. 760  GOSUB 790
  78. 770  HOME : END 
  79. 780 :
  80. 790  REM  SPIN SUBROUTINE
  81. 800 :
  82. 810  VTAB 20: HTAB 5: PRINT "COPYRIGHT 1985 BY MICROSPARC, INC";: PRINT : VTAB 22: HTAB 6: PRINT "PRESS THE SPACE BAR TO CONTINUE"
  83. 820  FOR PAUSE = 1 TO 60: NEXT PAUSE
  84. 830 X =  PEEK( -16384): POKE  -16368,0
  85. 840  IF X = 160  THEN  RETURN 
  86. 850  CALL SS: GOTO 820
  87. 860 :
  88. 870  REM  ENTERS FLASHING AND
  89. 880  REM  NORMAL MESSAGES
  90. 890 :
  91. 900  IF N = 1  THEN A = 64
  92. 910  IF F = 1  THEN A = 0
  93. 920  FOR X = 1 TO  LEN(A$)
  94. 930 B$ =  MID$ (A$,X,1)
  95. 940  IF B$ >"?"  THEN 960
  96. 950 Z =  ASC(B$) +64 +A: GOTO 970
  97. 960 Z =  ASC(B$) +A
  98. 970  POKE ST +X -1,Z: NEXT 
  99. 980  POKE SL, LEN(A$)
  100. 990  RETURN