home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib33b.dsk / CIRCLE.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  63 lines

  1. 10  REM  **********************
  2. 20  REM  * CIRCLE.DEMO        *
  3. 30  REM  * BY BRENT IVERSON   *
  4. 40  REM  * COYPRIGHT (C) 1988 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  HOME : ONERR  GOTO 590
  9. 90  PRINT  CHR$(4)"BLOAD CIRCLE": POKE 216,0
  10. 100 :
  11. 110  REM ---FUNCTIONS A & B
  12. 120  REM    GET THE HI & LO BYTES
  13. 130  REM    OF THEIR ARGUMENTS
  14. 140  REM    ...NUMBERS >=0 ONLY!
  15. 150 :
  16. 160  DEF  FN A(T) = (T/256 - INT(T/256)) *256
  17. 170  DEF  FN B(T) =  INT(T/256)
  18. 180 :
  19. 190  REM ---CLEAR SCREEN, SET
  20. 200  REM    CENTER OF CIRCLE AT
  21. 210  REM    CENTER OF SCREEN
  22. 220 :
  23. 230  HGR 
  24. 240 X = 140:Y = 80
  25. 250 :
  26. 260  REM ---MAIN LOOP
  27. 270 :
  28. 280  FOR R = 0 TO 160  STEP 20
  29. 290 :
  30. 300  REM ---GET RANDOM, NON-BLACK
  31. 310  REM    HCOLOR
  32. 320 :
  33. 330 HC =  INT( RND(1) *7) +1: IF HC = 0  OR HC = 4  THEN 330
  34. 340  HCOLOR= HC
  35. 350 :
  36. 360  REM ---GOSUB CIRCLE-CALLING
  37. 370  REM    SUBROUTINE
  38. 380 :
  39. 390  GOSUB 540
  40. 400  NEXT 
  41. 410  IF  PEEK( -16384) <128 GOTO 280
  42. 420  TEXT : END 
  43. 430 :
  44. 440  REM ---END OF MAIN LOOP
  45. 450 :
  46. 460 :
  47. 470  REM ---POKE THE LO & HI
  48. 480  REM    BYTES OF THE
  49. 490  REM    PARAMETERS FOR
  50. 500  REM    THE CIRCLE ROUTINE
  51. 510  REM    WHERE IT EXPECTS
  52. 520  REM  THEM, THEN CALL IT.
  53. 530 :
  54. 540  POKE 768, FN A(X): POKE 769, FN B(X)
  55. 550  POKE 770, FN A(Y): POKE 771, FN B(Y)
  56. 560  POKE 772, FN A(R): POKE 773, FN B(R)
  57. 570  CALL 24576
  58. 580  RETURN 
  59. 590 E =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219): CALL  -3288: POKE 216,0
  60. 600  HOME : VTAB 12: IF E = 6  OR E = 7  THEN  PRINT "CIRCLE FILE NOT ON THIS DISK": GOTO 630
  61. 610  IF E = 8  THEN  PRINT "I/O ERROR--CHECK DRIVE DOOR": GOTO 630
  62. 620  PRINT "ERROR "E" IN LINE "EL: END 
  63. 630  PRINT "RETURN TO TRY AGAIN, ESCAPE TO QUIT";: GET Z$: PRINT : ON Z$ < > CHR$(27) GOTO 80: END