aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/watcher.frt
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
commit67d25d837ac55f28a366c0a3b262e439a6e75fc3 (patch)
treedf7715c7724c5935ab87c807f3b8b4ef529315e3 /amforth-6.5/common/lib/watcher.frt
parente0d6784e89dba33226c0edb815bb974486fa7c48 (diff)
Add AmForth
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