[openfirmware] r875 - dev/geode/display

svn at openfirmware.info svn at openfirmware.info
Sat Aug 9 03:00:17 CEST 2008


Author: wmb
Date: 2008-08-09 03:00:16 +0200 (Sat, 09 Aug 2008)
New Revision: 875

Modified:
   dev/geode/display/gxvga.fth
Log:
Geode VGA support - fixed chopped-up text in graphics-mode12.
The problem was caused by a conflict between fixed-timings mode
and the upscaler.  Fixed-timings must be off when the upscaler is on.



Modified: dev/geode/display/gxvga.fth
===================================================================
--- dev/geode/display/gxvga.fth	2008-08-08 21:20:26 UTC (rev 874)
+++ dev/geode/display/gxvga.fth	2008-08-09 01:00:16 UTC (rev 875)
@@ -1,6 +1,11 @@
 purpose: Put the Geode display in VGA mode to use text mode 3
 \ See license at end of file
 
+0 [if]
+: tap3,  ( coef1 coef2 coef3 -- )  d# 10 lshift or  d# 10 lshift or  ,  ;
+: tap5,  ( coef1 .. coef5 -- )  2>r  tap3,  2r> 0  tap3,  ;
+[then]
+
 hex
 create hfilter
 1284A7D5 , 000017D5 ,          \  -43,  297,  296,  -43,    5
@@ -542,47 +547,37 @@
    \ 1919.1919.1919.1919. 0000.180b msr!  \ Write-burstable frame buffer
 ;
 
-: all-off
+: all-off  ( -- )
    unlock
    4 dc@ 2000.00e0 invert and 4 dc! \ Compr. line buf (2000.0000), Video (8), Color cursor (4), Cursor (2)
    8 dc@ 1 invert and 8 dc!   \ Timing generator
    1 ms                       \ Let memory accesses finish
    4 dc@ 1 invert and 4 dc!   \ Turn off FIFO load
 ; 
-: 8bpp  c200.0019 8 dc!  ;  \ drop down to 8bpp mode
-: vga-start
+: 8bpp  ( -- )  8 dc@ h# 300 invert and 8 dc!  ;  \ drop down to 8bpp mode
+: vga-start  ( -- )
    8 dc@ 1 or 8 dc!         \ Timing generator
-   4 dc@ 40080 or  4 dc!    \ VGA mode (80), VGA Fixed Timing (40000)
+   \ Fixed timing must be off to use the upscaler
+   4 dc@  h# 40000 invert and  h# 80 or  4 dc!    \ Fixed Timing (40000) off, VGA (80) on
 ;
 
 : display-lfb  ( -- )  5601 4 dc!  ;  \ Enable linear framebuffer
 
-: setup-filter-mode3
-
+: setup-filter-mode3  ( -- )
 \   d# 400 1-  d# 640 1-  wljoin  h# 5c dc!
    d# 400 1-  d# 720 1-  wljoin  h# 5c dc!
-
-   1c802666 90 dc!
-\   1c802222 90 dc!
-\   30003000 90 dc!
+   h# 1c802666 h# 90 dc!
    filter-taps
-\   1aaa3000 90 dc!
 ;
-: setup-filter-mode12
-
-\   d# 400 1-  d# 640 1-  wljoin  h# 5c dc!
+: setup-filter-mode12  ( -- )
    d# 480 1-  d# 640 1-  wljoin  h# 5c dc!
-
-   22222222 90 dc!
-\   1c802222 90 dc!
-\   30003000 90 dc!
+   h# 22222222 h# 90 dc!
    filter-taps
-\   1aaa3000 90 dc!
 ;
-: filteron  1000 94 dc!  ;
-: filteroff
-  40004000 90 dc!  
-  000 94 dc!
+: filteron  ( -- )  h# 1000 h# 94 dc!  ;
+: filteroff  ( -- )
+   h# 40004000  h# 90 dc!  
+   0 h# 94 dc!
 ;
 
 \ XXX get these from video/common/defer.fth
@@ -647,7 +642,6 @@
    \ otherwise the filter and the VGA don't synchronize to the
    \ frame and the sequencer shuts off after one frame.
    \ That can be fixed with all-off vga-start
-\   filteroff
    setup-filter-mode12 filteron
 
    all-off  8bpp  vga-start




More information about the openfirmware mailing list