;;; -*- Mode:LISP; Package:TAPE; Base:10 -*- (defun debug-bad-block2(bad-block-num test) (rewind) (flet ((dump () (dumpr:dumpr (substring (send *selected-format* :current-block) 0 (send *selected-format* :block-length))))) ;;skip good ones (dotimes(x bad-block-num) (send *selected-format* :read-block *selected-device*)) (format t "~%Previous good block:~2%") ;;dump last good one (dump) (when (eq test :bad) (format t "~2%Skipping bad block~2%") (send *selected-device* :space 1)) (send *selected-format* :read-block *selected-device*) (format t "~%Subsequent good block:~2%") (dump))) (defun debug-bad-block(bad-block-num &optional (test :bad)) (check-type test (member :bad :good)) (with-open-file (standard-output (string-append "lm:keith;debug-tape-" (format nil "~a" test) ".text") :direction :output) (debug-bad-block2 bad-block-num test)))