;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Base:10 -*- (Defun disk-16b (unit PART b) (WITH-DECODED-DISK-UNIT (UNIT UNIT (FORMAT NIL "reading ~A partition" PART)) (MULTIPLE-VALUE-BIND (PART-BASE PART-SIZE NIL NIL) (FIND-DISK-PARTITION-FOR-READ PART NIL UNIT) (CHECK-ARG B (AND (NOT (< B 0)) (< B PART-SIZE)) "inside the partition") (WITH-DISK-RQB (RQB 1) (DISK-READ RQB UNIT (+ B PART-BASE)) (LET* ((BUF (RQB-BUFFER RQB)) (A (MAKE-ARRAY (LENGTH BUF) :TYPE 'ART-16b))) (fillarray a buf) a))))) (defun describe-syscom (unit part) (WITH-DECODED-DISK-UNIT (UNIT UNIT (FORMAT NIL "reading ~A partition" PART)) (format t "~&System communications area of: ~A~%" (partition-comment part unit)) (do ((l SYSTEM-COMMUNICATION-AREA-QS (cdr l)) (a (disk-16b unit part 1)) (m (apply 'max (mapcar'flatsize SYSTEM-COMMUNICATION-AREA-QS)))) ((null l)) (let ((value (cond ((memq (car l) '(%SYS-COM-VALID-SIZE %SYS-COM-HIGHEST-VIRTUAL-ADDRESS)) (sys-com-page-number a (symeval (car l)))) ('else (aref a (* 2 (symeval (car l)))))))) (format t "~VS = ~11O ~10D.~%" m (car l) value value)))))