Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' ***************************************************************
- '
- ' "SCREEN BOXES" FOR C64 - V 1.0 (MAR 2023)
- ' XC=BASIC 3.1 CODE BY FELICE NARDELLA
- '
- ' ***************************************************************
- ' DEFINING CONSTANTS
- CONST _SCREEN_ = 1024
- CONST _COLOR_ = 54272
- ' DEFINING VARIABLES
- DIM y2 AS WORD
- DIM yy AS WORD
- DIM ps AS WORD
- DIM cp AS WORD
- DIM ix AS WORD
- DIM iy AS WORD
- DIM iw AS WORD
- DIM ih AS WORD
- DIM ic AS WORD
- DIM fx AS FLOAT
- DIM fy AS FLOAT
- DIM fw AS FLOAT
- DIM fh AS FLOAT
- DIM fc AS FLOAT
- ' SUBROUTINE DRAWING A BOX
- ' x,y START POS. PLOTTING COL. AND ROW OF THE BOX
- ' w,h WIDTH AND HEIGHT OF THE BOX
- ' ch CHAR CODE (160 = REVERSED SPACE)
- SUB box (x AS BYTE, y AS BYTE, w AS BYTE, h AS BYTE, ch AS BYTE, c AS BYTE)
- ' ROWS CYCLE
- FOR yy = y TO h-1
- ' CALCULATE SCREEN POS & COLOR
- ps=yy*40+x+_SCREEN_
- cp=ps+_COLOR_
- ' CHECK IF TRESPASSING BEYOND SCREEN MEMORY
- ' IF ps+w>2023 THEN CONTINUE FOR
- ' IF ps+w<1024 THEN CONTINUE FOR
- ' WRITES & COLORS ROWS
- MEMSET ps, w, ch
- MEMSET cp, w, c
- NEXT
- END SUB
- RANDOMIZE TI()
- DO
- ' CALCULATES RANDOM VALUES FOR THE BOXES POSITION AND COLORS
- fx=RND()*40.0
- fy=RND()*25.0
- fw=40.0-RND()*fx
- fh=25.0-RND()*fy
- fc=RND()*16.0
- ' CONVERTS VALUES TO BYTE FORMAT
- ix=CBYTE(fx)
- iy=CBYTE(fy)
- iw=CBYTE(fw)
- ih=CBYTE(fh)
- ic=CBYTE(fc)
- ' CALLS BOX SUBROUTINE
- CALL box(ix,iy,iw,ih,160,ic)
- ' INFINITE LOOP
- LOOP WHILE 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement