Dark Bit Factory & Gravity

PROGRAMMING => Other languages => Yabasic => Topic started by: Wenlock on June 09, 2015

Title: Test Pattern Gen for PS2 Yasic
Post by: Wenlock on June 09, 2015
Yup, I turned my PS2 into a test pattern generator, just press the up and down buttons on the d-pad to cycle through the patterns.

Wenlock

Code: [Select]

rem Colour Bars program.
rem By Wenlock Burton  17 July 2008
Rem Actually written on a PS3
'V2.0 rewritten on a flaky old PS2 in June 2015


label init
wi=640 : hi=512
sel=8 :rem display menu on startup
open window wi,hi


label main
repeat
setdrawbuf dd
dd=1-dd
setdispbuf dd
window origin "lb"
setrgb 0,0,0,20
setrgb 1,0,255,255

'New selection routine

'Read and update sel

     a=peek("port1")
     if a=0 hold=0

  if a>0 and hold=0 then
  if and(a,64)>0 then sel=sel+1:hold=1
  fi
  if sel>8 then sel=1
  fi
  if and(a,16)>0 then sel=sel-1:hold=1
  fi
  if sel<1 then sel=8
  fi
  fi

'Display selected test:

  if sel=1 then gosub cbar
  fi
  if sel=2 then gosub greyscale
  fi
  if sel=3 then gosub Red
  fi
  if sel=4 then gosub Green
  fi
  if sel=5 then gosub Blue
  fi
  if sel=6 then gosub White
  fi
  if sel=7 then gosub crosshatch
  fi
  if sel=8 then gosub list
  fi

until (1=2)
 


label Red
window origin "lb"
setrgb 0,255,0,0
clear window
return

label Green
window origin "lb"
setrgb 0,0,255,0
clear window
return

label Blue
window origin "lb"
setrgb 0,0,0,255
clear window
return

label White
window origin "lb"
setrgb 0,255,255,255
clear window
return


label cbar
window origin "lb"
rem dark blue bg
setrgb 0,0,0,40
rem cyan text, 90% intensity
setrgb 1,0,240,240
clear window

rem Draw colour bars
restore
for x=1 to 640 step 80
read r,g,b
setrgb 1,r,g,b
fill rect x,1 to x+80,512
next x


for r=220 to 224
rem circle
circle 320, 240, r
next r
rem ident
text 100, 50, "VK3YWB"
return

label crosshatch
window origin "lb"
rem dark blue bg
setrgb 0,0,0,40
setrgb 1,255,255,255
clear window
rem horiz lines
for y=1 to 512 step 29.9
line 0,y to 640,y
next y
rem vert lines
for x=0 to 639 step 29
line x,0 to x,512
next x
return

label greyscale
setrgb 0,0,0,40
rem cyan text, 90% intensity
setrgb 1,0,240,240
clear window

for x=1 to 640 step 80
b=int(x/2.4)
setrgb 1,255-b,255-b,255-b
fill rect x,1 to x+80,512
next x

rem circle
for r=220 to 224
circle 320, 240, r
next r
rem ident
text 100, 50, "VK3YWB"
return


label list

clear window
setrgb 1,255,255,255
text 240,470, "Screen Test Program"
text 210,450, "List of available patterns"
setrgb 1,255,0,255
text 20,390, "1) Colour Bars"
setrgb 1,180,180,180
text 20,360, "2) Greyscale"
setrgb 1,255,0,0
text 20,330, "3) Red Raster"
setrgb 1,0,255,0
text 20,300, "4) Green Raster"
setrgb 1,0,0,255
text 20,270, "5) Blue Raster"
setrgb 1,255,255,255
text 20,240, "6) White Raster"
setrgb 1,125,125,125
text 20,210, "7) Crosshatch"
setrgb 1,180,180,180
text 45,100, "Use the D-Pad Left and Right buttons to select patterns"
return


Rem RGB values for colour bars
data 255,255,255 : rem White
data 255,255,0   : rem Yellow
data 0,255,255   : rem Cyan
data 0,255,0     : rem Green
data 255,0,255   : rem Magenta
data 255,0,0     : rem Red
data 0,0,255     : rem Blue
data 50,50,50    : rem Black
Title: Re: Test Pattern Gen for PS2 Yasic
Post by: MrD on June 10, 2015
Nice one. :)

(and now I know that RESTORE without a target is a valid command, grumble grumble...)
Title: Re: Test Pattern Gen for PS2 Yasic
Post by: Wenlock on June 11, 2015
Works for me. As long as I don't have any other data and want to restore to other points.

It was the biggest annoyance in CoCo Basic, only Restore, no Restore <line number> like some other Basics.

Incidentally, if you run this on a phat PS3 you can test PS3 controllers too.

Wenlock