1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-09 01:40:58 +00:00
Files
PDP-10.its/src/rwk/debmac.4
2016-11-30 15:59:16 -08:00

75 lines
1.4 KiB
Common Lisp
Executable File

; -*- Mode:LISP;Lowercase:T-*-
(herald DEBMAC /1)
(defvar *CURSOR*)
(defvar *FRAME*)
(defvar *TOP-FRAME*)
(defvar *BOTTOM-FRAME*)
(defvar **ARG** () "Argument to debug commands")
(declare (fixnum (*readch2)))
(defvar debug-prinlevel)
(defvar debug-prinlength)
(defvar debug-prin1)
(defvar debug-sprinter-mode)
(defvar debug-indent-max)
(defvar debug-prompt)
(defvar debug-frame-suppression-alist)
(defvar debug-suppression-reasons)
(defvar si:ignored-error-funs)
(and (fboundp 'special) (special error-io))
;; The following function is defined for run time in DEBUG, make any changes
;; there as well.
(defun debug-name-char (ch)
(caseq ch
(#\HELP "Help")
(#\RETURN "Return")
(#\TAB "Tab")
(#\SPACE "Space")
(#\LINEFEED "Linefeed")
(#\BACKSPACE "Backspace")
(#\RUBOUT "Rubout")
(#\FORM "Form")
(T (if (> ch #\SPACE)
(format () "~C" ch)
(format () "^~C" (+ ch #o100))))))
(defvst debug-frame
next
previous
next-interesting
previous-interesting
type
form
function
arguments
bindstk
callstk
frame-list
plist)
(defvst debug-command-spec
chars
fun
doc)
(defmacro def-debug-command (chars doc &body fun)
(if (atom chars)
(setq chars (ncons chars)))
(let ((command-fun-sym (symbolconc 'DEBUG-COMMAND-
(debug-name-char (car chars)))))
`(progn 'compile
(defun ,command-fun-sym ()
,@fun)
(enter-debug-command ',chars ',command-fun-sym ',doc))))