From QB64 Wiki

Jump to: navigation, search

OUT writes values to register or port hardware addresses. QB64 currently has limited access to registers!


OUT address%, value%

  • The address is an integer value expressed as decimal or Hexadecimal.
  • WARNING! Be sure that the address is useable. OUT accesses directly unlike POKE and can cause permanent PC damage!
  • Values sent are normally only 0 to 255 per one byte register(8 bits) address.
  • _PALETTECOLOR can also be used to set RGB intensity values using 32 bit color values.

Color Port access using OUT
OUT &H3C7, attribute : Set port to read RGB settings
OUT &H3C8, attribute : Set port to write RGB settings
OUT &H3C9, color_intensity : Writes settings
INP &H3C9, color_intensity : Reads settings
  • Every 3 reads or writes, changes to next color attribute
  • Color setting is Red, Green and Blue intensities in order
  • Color attribute intensity values range from 0 to 63 only
  • Some DAC color attribute intensities cannot be changed using OUT.

Example 1: Reading the default RGB color settings of color attribute 15.

OUT &H3C7, 15 'set color port attribute 15 for a read red% = INP(&H3C9) green% = INP(&H3C9) blue% = INP(&H3C9) PRINT red%, green%, blue%

63 63 63

Example 2: Changing the color intensity settings of the SCREEN background COLOR 0 to bright white.

OUT &H3C8, 0 OUT &H3C9, 63 'red OUT &H3C9, 63 'green OUT &H3C9, 63 'blue

Explanation: In SCREEN 0 this is one way to make high intensity background colors. COLOR ,15 is actually grey(7).

Example 3: Restoring colors to a bitmap from the Red, Green and Blue BSAVEd indexed array of color values.

SCREEN 12 OUT &H3C8, 0 ' set color port for output at attribute 0 FOR i = 0 TO 47 ' 48 RGB values is (3 * 16) -1 color attributes from 0 in screen 12 OUT &H3C9, Image%(i) ' changes to next attribute after 3 RGB loops NEXT PUT(clm, row), Image(48) PSET

Explanation: The color RGB intensity settings were imported from a file to the Image array using BLOAD. The color attribute advances to the next one every 3 writes using OUT. The color information was indexed to the start of the array. The image is after the color settings at index 48. Index 48 is the GET image width and 49 is the height.

See also:

  • INP (read register), POKE (write to memory)
  • Port Access Libraries (COM or LPT registers)
  • PC I/O base address device assignments

Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
  • Page
  • Discussion
  • View source
  • History
Personal tools
  • Log in