aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/watcher.frt
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/common/lib/watcher.frt')
-rw-r--r--amforth-6.5/common/lib/watcher.frt21
1 files changed, 21 insertions, 0 deletions
diff --git a/amforth-6.5/common/lib/watcher.frt b/amforth-6.5/common/lib/watcher.frt
new file mode 100644
index 0000000..dedf190
--- /dev/null
+++ b/amforth-6.5/common/lib/watcher.frt
@@ -0,0 +1,21 @@
+
+\ watcher
+\ catch a read/write action on a particular address
+\ and execute a predefined debug action.
+
+\ core routines
+variable watch-addr
+defer watch-action
+\ redefine memory access words
+: ! dup watch-addr @ = if watch-action then ! ;
+: c@ dup watch-addr @ = if watch-action then c@ ;
+: c! dup watch-addr @ = if watch-action then c! ;
+\ this one is last
+: @ dup watch-addr @ = if watch-action then @ ;
+\ simply use the debugshell
+' ?? is watch-action
+
+\ possible modifications
+\ use an address range
+\ use a list of addresses (address ranges)
+\ ? \ No newline at end of file