Patch title: Release 89 bulk changes
Abstract:
File: /graphic/image/frame_buffer.pli
Key:
    Removed line
    Added line
   
abstract
  [Mapping Linux frame buffer as a Pliant image so that you 
  [frame buffer using standard Pliant drawing instructions.]


method p setup proto options -> status
  oarg_rw ImageFrameBuffer p ; arg ImagePrototype proto ; ar
  if p:handle<0
    return failure:"no frame buffer"
  var Int err := os_ioctl p:handle FBIOGET_VSCREENINF0 addre
  if err<>0
    return failure:"failed to query video mode"
abstract
  [Mapping Linux frame buffer as a Pliant image so that you 
  [frame buffer using standard Pliant drawing instructions.]


method p setup proto options -> status
  oarg_rw ImageFrameBuffer p ; arg ImagePrototype proto ; ar
  if p:handle<0
    return failure:"no frame buffer"
  var Int err := os_ioctl p:handle FBIOGET_VSCREENINF0 addre
  if err<>0
    return failure:"failed to query video mode"
  info xres := proto size_x
  info yres := proto size_y
  info bits_per_pixel := proto:pixel_size*8
  if not (options option "noset")
  if not (options option "noset")
    info xres := proto size_x
    info yres := proto size_y
    info bits_per_pixel := proto:pixel_size*8
    var Int err := os_ioctl p:handle FBIOPUT_VSCREENINF0 add
    if err<>0
      return (failure "failed to set video mode to "+(string
    var Int err := os_ioctl p:handle FBIOGET_VSCREENINF0 add
    if err<>0
      return failure:"failed to query video mode (2)"
  os_munmap p:buffer p:line_size*p:size_y
  addressof:p map ImagePrototype := image_prototype 0 0 info
  p line_size := p:pixel_size*p:size_x
  p buffer := os_mmap null info:xres*info:bits_per_pixel\8*i
  if p:buffer=null
    return failure:"failed to map video memory"
  status := success



function framebuffer_test
  var Link:ImagePrototype p :> new ImageFrameBuffer
  for (var Int y) 0 p:size_y-1
    for (var Int x) 0 p:size_x-1
      var uInt c := (x\4)%256+(y\4)%256*256
      p write x y 1 addressof:c
export framebuffer_test
    var Int err := os_ioctl p:handle FBIOPUT_VSCREENINF0 add
    if err<>0
      return (failure "failed to set video mode to "+(string
    var Int err := os_ioctl p:handle FBIOGET_VSCREENINF0 add
    if err<>0
      return failure:"failed to query video mode (2)"
  os_munmap p:buffer p:line_size*p:size_y
  addressof:p map ImagePrototype := image_prototype 0 0 info
  p line_size := p:pixel_size*p:size_x
  p buffer := os_mmap null info:xres*info:bits_per_pixel\8*i
  if p:buffer=null
    return failure:"failed to map video memory"
  status := success



function framebuffer_test
  var Link:ImagePrototype p :> new ImageFrameBuffer
  for (var Int y) 0 p:size_y-1
    for (var Int x) 0 p:size_x-1
      var uInt c := (x\4)%256+(y\4)%256*256
      p write x y 1 addressof:c
export framebuffer_test