Advertisement
felixnardella

Screen Boxes

Mar 25th, 2023 (edited)
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. ' ***************************************************************
  2. '
  3. ' "SCREEN BOXES" FOR C64 - V 1.0 (MAR 2023)
  4. ' XC=BASIC 3.1 CODE BY FELICE NARDELLA
  5. '
  6. ' ***************************************************************
  7.  
  8. ' DEFINING CONSTANTS
  9. CONST _SCREEN_ = 1024
  10. CONST _COLOR_ = 54272
  11.  
  12. ' DEFINING VARIABLES
  13. DIM y2 AS WORD
  14. DIM yy AS WORD
  15. DIM ps AS WORD
  16. DIM cp AS WORD
  17. DIM ix AS WORD
  18. DIM iy AS WORD
  19. DIM iw AS WORD
  20. DIM ih AS WORD
  21. DIM ic AS WORD
  22.  
  23. DIM fx AS FLOAT
  24. DIM fy AS FLOAT
  25. DIM fw AS FLOAT
  26. DIM fh AS FLOAT
  27. DIM fc AS FLOAT
  28.  
  29. ' SUBROUTINE DRAWING A BOX
  30. ' x,y START POS. PLOTTING COL. AND ROW OF THE BOX
  31. ' w,h WIDTH AND HEIGHT OF THE BOX
  32. ' ch CHAR CODE (160 = REVERSED SPACE)
  33.  
  34. SUB box (x AS BYTE, y AS BYTE, w AS BYTE, h AS BYTE, ch AS BYTE, c AS BYTE)
  35. ' ROWS CYCLE
  36. FOR yy = y TO h-1
  37.  
  38. ' CALCULATE SCREEN POS & COLOR
  39. ps=yy*40+x+_SCREEN_
  40. cp=ps+_COLOR_
  41.  
  42. ' CHECK IF TRESPASSING BEYOND SCREEN MEMORY
  43. ' IF ps+w>2023 THEN CONTINUE FOR
  44. ' IF ps+w<1024 THEN CONTINUE FOR
  45.  
  46. ' WRITES & COLORS ROWS
  47. MEMSET ps, w, ch
  48. MEMSET cp, w, c
  49. NEXT
  50.  
  51. END SUB
  52.  
  53. RANDOMIZE TI()
  54.  
  55. DO
  56. ' CALCULATES RANDOM VALUES FOR THE BOXES POSITION AND COLORS
  57. fx=RND()*40.0
  58. fy=RND()*25.0
  59. fw=40.0-RND()*fx
  60. fh=25.0-RND()*fy
  61. fc=RND()*16.0
  62. ' CONVERTS VALUES TO BYTE FORMAT
  63. ix=CBYTE(fx)
  64. iy=CBYTE(fy)
  65. iw=CBYTE(fw)
  66. ih=CBYTE(fh)
  67. ic=CBYTE(fc)
  68.  
  69. ' CALLS BOX SUBROUTINE
  70. CALL box(ix,iy,iw,ih,160,ic)
  71.  
  72. ' INFINITE LOOP
  73. LOOP WHILE 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement