diff --git a/lib/1.4/dml-builtins.dml b/lib/1.4/dml-builtins.dml
index d8b7fb9f..1be70537 100644
--- a/lib/1.4/dml-builtins.dml
+++ b/lib/1.4/dml-builtins.dml
@@ -1803,11 +1803,49 @@ of `unmapped_read` if the access is not fully
mapped.
-unmapped\_read(uint64 offset, uint64 bits, void \*aux) throws
+unmapped\_read(uint64 offset, uint64 bits, void \*aux) -> (uint64) throws
-Like `unmapped_write` but for reads. The default
- implementation unconditionally throws an exception.
+Like `unmapped_write` but for reads. The default implementation unconditionally
+throws an exception, which causes the read access to be rejected. However, the
+method may be overridden to instead return a value specifying the read bits
+corresponding to the unmapped bytes, which will then be composed together with
+the values read from the accessed registers.
+
+
+set(uint64 offset, uint64 size, uint64 value)
+
+A simpler variant of `write()` used exclusively for inquiry write accesses to
+the bank. Unlike `write()`, `set()` unconditionally operates over an entire
+range of bytes (hence `size` rather than `enabled_bytes`), does not have an
+`aux` parameter, and cannot throw. Any invocation of `write` is considered
+valid, even if some part of the access is not covered by mapped registers (in
+which case no action should be taken for those bytes.)
+
+The default implementation invokes `set()` of the accessed registers rather
+than `write_register()`, and instead of calling to something similar to
+`unmapped_write()`, the default implementation simply logs a low-level `info`
+message about unmapped accesses.
+
+
+get(uint64 offset, uint64 size) -> (uint64) throws
+
+A simpler variant of `read()` used exclusively for inquiry read accesses to
+the bank. Unlike `read`, `get()` unconditionally operates over an entire
+range of bytes (hence `size` rather than `enabled_bytes`) and does not have an
+`aux` parameter. Unlike `set()`, invocations to `get()` may throw, in
+particular when some part of the access is not covered by mapped registers.
+
+The default implementation invokes `get()` of the accessed registers rather
+than `read_register()`, and calls to `unmapped_get()` upon unmapped accesses
+rather than `unmapped_read()`.
+
+
+unmapped\_get(uint64 offset, uint64 bits) -> (uint64) throws
+
+
+Like `unmapped_read` but for inquiry reads. The default implementation
+unconditionally throws an exception.
The `bank` template contains the following parameters: