Thanks.
Some quick thoughts;
On Thu, Oct 01, 2015 at 09:26:02PM +0000, Marcin Cieslak wrote:
--- dev/video/controlr/vmsvga.fth (wersja 3784) +++ dev/video/controlr/vmsvga.fth (kopia robocza) @@ -85,6 +85,9 @@ h# 200.0000 instance value /mem : map-regs ( -- ) 0 0 my-space h# 0100.0010 + h# 10 " map-in" $call-parent to regs
- my-space h# 04 +
- dup " config-w@" $call-parent
- 1 or swap " config-w!" $call-parent
;
Suggest borrowing my-w@ and my-w! from other drivers instead
: my-w@ ( offset -- w ) my-space + " config-w@" $call-parent ; : my-w! ( w offset -- ) my-space + " config-w!" $call-parent ;
: map-regs ( -- ) 0 0 my-space h# 0100.0010 + h# 10 " map-in" $call-parent to regs 4 my-w@ 1 or 4 my-w! ;
Several other drivers also impose a symmetry and undo in unmap-regs
4 my-w@ 1 invert and 4 my-w!
Is needed?
: map-mem ( -- ) my-space h# 14 + " config-l@" $call-parent if @@ -116,6 +119,23 @@ unmap-regs abort \ We don't support version 0 ;
+: int+ ( adr len n -- adr' len' ) encode-int encode+ ;
+: set-reg-property
- my-address my-space encode-phys 0 int+ h# 0 int+
- my-address my-space h# 0100.0010 + encode-phys encode+ 0 int+ h# 10 int+
- my-address my-space h# 0200.0014 + encode-phys encode+ 0 int+ /fb int+
- my-address my-space h# 0200.0018 + encode-phys encode+ 0 int+ /fifo int+
- " reg" property
+;
Most other drivers set this property at load time outside the colon definitions; is there a reason for doing it after map-regs?
+: probe ( -- )
- map-regs
- set-reg-property
- unmap-regs
+;
: init-fb ( -- ) depth 7 reg! 7 reg@ depth <> if 7 reg@ to depth then