diff --git a/sbus-to-ztex-gateware-migen/cg3.fth b/sbus-to-ztex-gateware-migen/cg3.fth index d2397d4..4028487 100644 --- a/sbus-to-ztex-gateware-migen/cg3.fth +++ b/sbus-to-ztex-gateware-migen/cg3.fth @@ -72,14 +72,28 @@ headerless cg3-off-dac /cg3-off-dac do-map-in to cg3-dac ; +: dac-unmap + cg3-dac /cg3-off-dac do-map-out + -1 to cg3-dac +; + : fb-map cg3-off-fb /cg3-off-fb do-map-in to fb-addr ; +: fb-unmap + cg3-off-fb /cg3-off-fb do-map-out + -1 to fb-addr +; + : map-regs dac-map fb-map ; +: unmap-regs + dac-unmap fb-unmap +; + \ \ Installation \ @@ -107,6 +121,13 @@ headerless then ; +: qemu-cg3-driver-remove ( -- ) + cg3-dac -1 <> if + unmap-regs + -1 to frame-buffer-adr + then +; + : qemu-cg3-driver-init cg3-reg @@ -126,6 +147,7 @@ headerless h# c encode-int " cursorshift" property ['] qemu-cg3-driver-install is-install + ['] qemu-cg3-driver-remove is-remove ; qemu-cg3-driver-init diff --git a/sbus-to-ztex-gateware-migen/cg6.fth b/sbus-to-ztex-gateware-migen/cg6.fth index 386c73c..bc1810e 100644 --- a/sbus-to-ztex-gateware-migen/cg6.fth +++ b/sbus-to-ztex-gateware-migen/cg6.fth @@ -73,14 +73,28 @@ headerless cg6-off-dac /cg6-off-dac do-map-in to cg6-dac ; +: dac-unmap + cg6-dac /cg6-off-dac do-map-out + -1 to cg6-dac +; + : fb-map cg6-off-fb /cg6-off-fb do-map-in to fb-addr ; +: fb-unmap + fb-addr /cg6-off-fb do-map-out + -1 to fb-addr +; + : map-regs dac-map fb-map ; +: unmap-regs + dac-unmap fb-unmap +; + fload fbc_init.fth \ @@ -123,6 +137,14 @@ fload fbc_init.fth then ; +: qemu-cg6-driver-remove ( -- ) + cg6-dac -1 <> if + unmap-regs + map-out-fbc + -1 to frame-buffer-adr + then +; + : qemu-cg6-driver-init cg6-reg @@ -144,6 +166,7 @@ fload fbc_init.fth /cg6-off-fb encode-int " fbmapped" property ['] qemu-cg6-driver-install is-install + ['] qemu-cg6-driver-remove is-remove ; qemu-cg6-driver-init