Author: wmb Date: 2007-08-17 06:12:02 +0200 (Fri, 17 Aug 2007) New Revision: 558
Modified: dev/geode/display/gp.fth dev/geode/display/gxfb.fth Log: GX display driver - save/restore GP registers when suspending.
Modified: dev/geode/display/gp.fth =================================================================== --- dev/geode/display/gp.fth 2007-08-17 01:02:12 UTC (rev 557) +++ dev/geode/display/gp.fth 2007-08-17 04:12:02 UTC (rev 558) @@ -3,9 +3,6 @@
alias depth+ wa+
-: gp! ( l reg -- ) gp-base + rl! ; -: gp@ ( reg -- l ) gp-base + rl@ ; - : dst! ( x y -- ) bytes/line16 * swap depth+ 0 gp! ; : src! ( x y -- ) bytes/line16 * swap depth+ 4 gp! ; : stride! ( dst-stride src-stride -- ) wljoin 8 gp! ;
Modified: dev/geode/display/gxfb.fth =================================================================== --- dev/geode/display/gxfb.fth 2007-08-17 01:02:12 UTC (rev 557) +++ dev/geode/display/gxfb.fth 2007-08-17 04:12:02 UTC (rev 558) @@ -36,7 +36,10 @@ : dc@ ( offset -- value ) dc-base + rl@ ; : vp! ( value offset -- ) vp-base + rl! ; : vp@ ( offset -- value ) vp-base + rl@ ; +: gp! ( l reg -- ) gp-base + rl! ; +: gp@ ( reg -- l ) gp-base + rl@ ;
+ : iand ( value mask -- ) invert and ;
: map-frame-buffer ( -- ) @@ -337,8 +340,8 @@ 0 h# 38 vp! h# 100 0 do h# 40 vp@ l!+ loop \ Gamma h# 410 vp@ l!+
-\ h# 3c 0 do i gp@ l!+ 4 +loop -\ h# 4c gp@ l!+ + h# 3c 0 do i gp@ l!+ 4 +loop + h# 4c gp@ l!+
drop \ video-state - /l / . cr @@ -386,8 +389,8 @@ 0 h# 38 vp! h# 100 0 do l@+ h# 40 vp! loop \ Gamma l@+ h# 410 vp!
-\ h# 3c 0 do l@+ i gp! 4 +loop -\ l@+ h# 4c gp! + h# 3c 0 do l@+ i gp! 4 +loop + l@+ h# 4c gp!
0 0 dc! \ Lock drop