[LMH] nevermore diags

Brad Parker brad@heeltoe.com
Tue, 18 Oct 2005 07:28:54 -0400


ok, I think I finally figured out how to run diags with nevermore.

- I had to hack the partition table of my disk (c2-d0.dsk) to set the
diag bit in the EXPT entry. (see ssdn2/sectA.txt) I wrote a simple C
program to print the parition table and hack it with the "-m" option.

  http://www.unlambda.com/download/nevermore/epart.c

- Each keyboard entry had to be made twice before continuing, i.e.

  (nevermore::sib-keyboard-stuff-keypress #\M)
  (nevermore::sib-keyboard-stuff-keypress #\M)

I'm using a stock SBCL but I had to find "asdf.lisp" on
the net and then compile it.  Here's my simple startup

  (load "../clisp/asdf.fasl")
  (load "nevermore.asd")
  (asdf:operate 'asdf:load-op :nevermore)
  (in-package :nevermore)
  (setf *rom-file-path* #p"/home/brad/lispm/Meroko/proms/")
  (load-romfiles)
  (setf *nupi-scsi0-0-disk-file* #p"../../Meroko/X1-DISKS/c0-d0-hacked.dsk")
  (sib-init-character-recognizer)
  (sib-init-keypress-stuffer)
  (in-package :raven)
  (microengine-initialize)
  (microengine-step)
  (microengine-run-to -1)

When it stops I enter the key twice and continue (i.e. hit "0").  It
does halt at one point so I do

  (microengine-step)
  (microengine-run-to -1)

which shows it's halting at 40, which is to be expected.

I used the sequence "MADA" to get the diags loaded.

And, I got tired of the huge screenshots and hacked this

(defun sib-text-nonblankline (y)
  (dotimes (x 70)
    (if (not (eq (sib-recognize-character x y) #\ ))
	(return t))
    nil))

(defun sib-text-short-screenshot ()
  (let ((max (do ((y 60 (- y 1)))
	       ((or (< y 0) (sib-text-nonblankline y)) y))))
      (dotimes (y (1+ max))
	(dotimes (x 70)
	  (format t "~A" (sib-recognize-character x y)))
	(terpri))))

Now, if I could just figure out why the WCS parity is broken.  Nevermore
doesn't calculate it but Meroko does and it fails there also.

-brad