Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / forth / debugging / firmware.fs
diff --git a/qemu/roms/openbios/forth/debugging/firmware.fs b/qemu/roms/openbios/forth/debugging/firmware.fs
new file mode 100644 (file)
index 0000000..5e16a6c
--- /dev/null
@@ -0,0 +1,90 @@
+\ 7.5 Firmware Debugging command group
+
+
+\ 7.5.1    Automatic stack display
+
+: (.s
+  depth 0 ?do
+    depth i - 1- pick .
+  loop
+  depth 0<> if ascii < emit space then
+  ;
+
+: showstack    ( -- )
+  ['] (.s to status
+  ;
+  
+: noshowstack    ( -- )
+  ['] noop to status
+  ;
+
+\ 7.5.2    Serial download
+
+: dl    ( -- )
+  ;
+
+  
+\ 7.5.3    Dictionary
+
+\ 7.5.3.1    Dictionary search
+: .calls    ( xt -- )
+  ;
+  
+: $sift    ( text-addr text-len -- )
+  ;
+  
+: sifting    ( "text< >" -- )
+  ;
+
+\ : words    ( -- )
+\   \ Implemented in forth bootstrap.
+\   ;
+
+  
+\ 7.5.3.2    Decompiler
+
+\ implemented in see.fs
+
+\ : see    ( "old-name< >" -- )
+\   ;
+  
+\ : (see)    ( xt -- )
+\   ;
+
+  
+\ 7.5.3.3    Patch
+
+: patch ( "new-name< >old-name< >word-to-patch< >" -- )
+  ;
+
+: (patch)    ( new-n1 num1? old-n2 num2? xt -- )
+  ;
+
+
+\ 7.5.3.4    Forth source-level debugger
+: debug    ( "old-name< >" -- )
+  parse-word            \ Look up word CFA in dictionary
+  $find
+  0 = if
+    ." could not locate word for debugging"
+    2drop
+  else
+    (debug
+  then
+  ;
+  
+: stepping    ( -- )
+  ;
+  
+: tracing    ( -- )
+  ;
+  
+: debug-off    ( -- )
+  (debug-off)
+  ;
+  
+: resume    ( -- )
+  \ Set interpreter termination flag
+  1 to terminate?
+  ;