summaryrefslogtreecommitdiff
path: root/src/tcl
diff options
context:
space:
mode:
Diffstat (limited to 'src/tcl')
-rw-r--r--src/tcl/bitsbytes.tcl8
-rw-r--r--src/tcl/memory.tcl37
2 files changed, 34 insertions, 11 deletions
diff --git a/src/tcl/bitsbytes.tcl b/src/tcl/bitsbytes.tcl
index b1771b4b..9129ae0a 100644
--- a/src/tcl/bitsbytes.tcl
+++ b/src/tcl/bitsbytes.tcl
@@ -7,30 +7,28 @@
for { set x 0 } { $x < 32 } { set x [expr $x + 1]} {
set vn [format "BIT%d" $x]
- set $vn [expr (1 << $x)]
global $vn
-
+ set $vn [expr (1 << $x)]
}
# Create K bytes values
# __1K ... to __2048K
for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} {
set vn [format "__%dK" $x]
- set $vn [expr (1024 * $x)]
global $vn
+ set $vn [expr (1024 * $x)]
}
# Create M bytes values
# __1M ... to __2048K
for { set x 1 } { $x < 2048 } { set x [expr $x * 2]} {
set vn [format "__%dM" $x]
- set $vn [expr (1024 * 1024 * $x)]
global $vn
+ set $vn [expr (1024 * 1024 * $x)]
}
proc create_mask { MSB LSB } {
return [expr (((1 << ($MSB - $LSB + 1))-1) << $LSB)]
-
}
# Cut Bits $MSB to $LSB out of this value.
diff --git a/src/tcl/memory.tcl b/src/tcl/memory.tcl
index 5ac3c4bd..42cd0627 100644
--- a/src/tcl/memory.tcl
+++ b/src/tcl/memory.tcl
@@ -78,31 +78,56 @@ proc address_info { ADDRESS } {
return "UNKNOWN 0"
}
-proc memread32 {ADDR } {
+proc memread32 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 32 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead32: $msg"
+ error "memread32: $msg"
}
}
-proc memread16 {ADDR } {
+proc memread16 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 16 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead16: $msg"
+ error "memread16: $msg"
}
}
-proc memread8 {ADDR } {
+proc memread8 {ADDR} {
set foo(0) 0
if ![ catch { mem2array foo 8 $ADDR 1 } msg ] {
return $foo(0)
} else {
- error "memead8: $msg"
+ error "memread8: $msg"
}
}
+proc memwrite32 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 32 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite32: $msg"
+ }
+}
+proc memwrite16 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 16 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite16: $msg"
+ }
+}
+
+proc memwrite8 {ADDR DATA} {
+ set foo(0) $DATA
+ if ![ catch { array2mem foo 8 $ADDR 1 } msg ] {
+ return $foo(0)
+ } else {
+ error "memwrite8: $msg"
+ }
+}