diff options
Diffstat (limited to 'qemu/roms/SLOF/board-js2x/slof/vga-display.fs')
-rw-r--r-- | qemu/roms/SLOF/board-js2x/slof/vga-display.fs | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/qemu/roms/SLOF/board-js2x/slof/vga-display.fs b/qemu/roms/SLOF/board-js2x/slof/vga-display.fs deleted file mode 100644 index 96417e2d3..000000000 --- a/qemu/roms/SLOF/board-js2x/slof/vga-display.fs +++ /dev/null @@ -1,157 +0,0 @@ -\ ***************************************************************************** -\ * Copyright (c) 2004, 2008 IBM Corporation -\ * All rights reserved. -\ * This program and the accompanying materials -\ * are made available under the terms of the BSD License -\ * which accompanies this distribution, and is available at -\ * http://www.opensource.org/licenses/bsd-license.php -\ * -\ * Contributors: -\ * IBM Corporation - initial implementation -\ ****************************************************************************/ - -\ included by pci-class_03.fs - -( str len display_num ) \ name prefix - -false value is-installed? -value display_num ( str len ) - -s" ,Display-" $cat 41 display_num + char-cat \ add ", Display-A" or "-B" to name ( str len ) -encode-string s" name" property \ store as name property - -s" display" device-type - -\ screen-info is set by pci-class_03.fs contains output of get_vbe_info bios-snk call -CASE screen-info c@ \ ( display-type ) - 0 OF s" NONE" ENDOF \ No display - 1 OF s" Analog" ENDOF - 2 OF s" Digital" ENDOF -ENDCASE -encode-string s" display-type" property - -screen-info 8 + l@ value mem-adr -screen-info 1 + w@ value width -screen-info 3 + w@ value height - -screen-info c@ IF - \ if screen-info is not 0, we have some screen attached, add needed properties... - width encode-int s" width" property - height encode-int s" height" property - screen-info 5 + w@ encode-int s" linebytes" property - screen-info 7 + c@ encode-int s" depth" property - mem-adr encode-int s" address" property - \ the EDID property breaks the boot... so i leave it out for now, - \ maybe encode-bytes does s.th. wrong??? - \ screen-info c + 80 encode-bytes s" EDID" property - s" ISO8859-1" encode-string s" character-set" property \ i hope this is ok... -THEN - -\ words for installation/removal, needed by is-install/is-remove, see display.fs -: display-remove ( -- ) -; -: display-install ( -- ) - is-installed? NOT IF - mem-adr to frame-buffer-adr - default-font - set-font - width height width char-width / height char-height / ( width height #lines #cols ) - fb8-install - true to is-installed? - THEN -; - -: color! ( r g b number -- ) - \ 3c8 is RAMDAC write mode select palette entry register - \ 3c9 is RAMDAC write mode write palette entry register ( 3 consecutive writes set new entry ) - vga-device-node? 3c8 translate-address ( r g b number address ) - swap 1 pick ( r g b address number address ) - rb! \ write palette entry number ( r g b address ) - 1 + \ select next register (3c9) - dup 4 pick swap rb! \ write red ( r g b address ) - dup 3 pick swap rb! \ write green ( r g b address ) - dup 2 pick swap rb! \ write blue ( r g b address ) - 4drop -; - -: color@ ( number -- r g b ) - \ 3c7 is RAMDAC read mode select palette entry register - \ 3c9 is RAMDAC read mode read palette entry register ( 3 consecutive reads read entry ) - vga-device-node? 3c7 translate-address ( number address ) - swap 1 pick ( address number address ) - rb! \ write palette entry number ( address ) - 2 + >r \ select next register (3c9) ( R: address ) - r@ rb@ \ read red ( r R: address ) - r@ rb@ \ read green ( r g R: address ) - r@ rb@ \ write blue ( r g b R: address ) - r> drop ( r g b ) -; - -: set-colors ( adr number #numbers -- ) - \ 3c8 is RAMDAC write mode select palette entry register - \ 3c9 is RAMDAC write mode write palette entry register ( 3 consecutive writes set new entry ) - \ since after writing 3 entries, the palette entry is automagically incremented, - \ we can just continue writing... - vga-device-node? 3c8 translate-address ( adr number #numbers ) - dup 3 pick swap ( adr number #numbers address number address ) - rb! \ write palette entry number ( adr number #numbers address ) - 1 + \ select next register (3c9) - -rot swap drop ( adr address #numbers ) - -rot swap rot ( address adr #numbers ) - 0 ?DO - ( address adr ) - dup rb@ \ read red value from adr ( address adr r ) - 2 pick rb! \ write to register ( address adr ) - 1 + \ next adr - dup rb@ \ read green value from adr ( address adr g ) - 2 pick rb! \ write to register ( address adr ) - 1 + \ next adr - dup rb@ \ read blue value from adr ( address adr r ) - 2 pick rb! \ write to register ( address adr ) - 1 + \ next adr - LOOP - 2drop -; - -: get-colors ( adr number #numbers -- ) - \ 3c7 is RAMDAC read mode select palette entry register - \ 3c9 is RAMDAC read mode read palette entry register ( 3 consecutive reads get entry ) - \ since after reading 3 entries, the palette entry is automagically incremented, - \ we can just continue reading... - vga-device-node? 3c7 translate-address ( adr number #numbers ) - dup 3 pick swap ( adr number #numbers address number address ) - rb! \ write palette entry number ( adr number #numbers address ) - 2 + \ select next register (3c9) - -rot swap drop ( adr address #numbers ) - -rot swap rot ( address adr #numbers ) - 0 ?DO - ( address adr ) - 1 pick rb@ \ read red value from register ( address adr r ) - 1 pick rb! \ write to adr ( address adr ) - 1 + \ next adr - 1 pick rb@ \ read green value from register ( address adr g ) - 1 pick rb! \ write to adr ( address adr ) - 1 + \ next adr - 1 pick rb@ \ read blue value from register ( address adr b ) - 1 pick rb! \ write to adr ( address adr ) - 1 + \ next adr - LOOP - 2drop -; - -include graphics.fs - -\ clear screen -mem-adr width height * 0 rfill - -\ call is-install and is-remove -' display-install is-install - -' display-remove is-remove - -s" screen" find-alias 0= IF - \ no previous screen alias defined, define it... - s" screen" get-node node>path set-alias -ELSE - drop -THEN |