;;; -*- Mode:LISP; Package:USER; Base:8; Readtable:ZL -*-
;;;
;;; (c) Copyright 1984,1985,1986 - Lisp Machine, Inc.


(or (find-package "LAMBDA")
    (LOAD "SYS:LAMBDA-DIAG;LAM-PACKAGE LISP >" :set-default-pathname nil))

(DEFPACKAGE "SDU"
  :SIZE 1000)

(cond ((not (boundp 'lam:rav-ir-op))
  ;    (ferror "Load UA-LAMBDA first.")
       (format t "~%UA-LAMBDA not loaded, loading it first")
       (make-system 'ua-lambda :noconfirm)))

(lam:setup-common-symbols :lambda)
(lam:setup-common-symbols :explorer)

(dolist (x '(;;select-processor
	     ;;byte
	     AREA-LIST
	     Q-DATA-TYPES
	         DTP-TRAP
		 DTP-NULL
		 DTP-FREE 
		 DTP-SYMBOL
		 DTP-SYMBOL-HEADER
		 DTP-FIX
		 DTP-EXTENDED-NUMBER
		 DTP-HEADER
		 DTP-GC-FORWARD
		 DTP-EXTERNAL-VALUE-CELL-POINTER
		 DTP-ONE-Q-FORWARD
		 DTP-HEADER-FORWARD
		 DTP-BODY-FORWARD
		 DTP-LOCATIVE
		 DTP-LIST 
		 DTP-U-ENTRY 
		 DTP-FEF-POINTER
		 DTP-ARRAY-POINTER
		 DTP-ARRAY-HEADER 
		 DTP-STACK-GROUP
		 DTP-CLOSURE
		 DTP-INDEXED-FORWARD  ;was  DTP-SMALL-FLONUM
		 DTP-SELECT-METHOD 
		 DTP-INSTANCE
		 DTP-INSTANCE-HEADER
		 DTP-ENTITY
		 DTP-STACK-CLOSURE
		 DTP-SELF-REF-POINTER
		 DTP-CHARACTER
		 DTP-RPLACD-FORWARD
		 DTP-SMALL-FLONUM
	     Q-CDR-CODES
	         CDR-NORMAL
		 CDR-ERROR
		 CDR-NIL
		 CDR-NEXT
	     Q-FIELD-VALUES
	         %%Q-CDR-CODE
		 %%Q-BOXED-SIGN-BIT
		 %%Q-DATA-TYPE
		 %%Q-POINTER
		 %%Q-POINTER-WITHIN-PAGE
		 %%Q-TYPED-POINTER
		 %%Q-ALL-BUT-TYPED-POINTER
		 %%Q-ALL-BUT-POINTER
		 %%Q-ALL-BUT-CDR-CODE
		 %%Q-HIGH-HALF
		 %%Q-LOW-HALF
		 %%CH-FONT
		 %%CH-CHAR
		 %%KBD-CHAR
		 %%KBD-CONTROL-META
		 %%KBD-CONTROL
		 %%KBD-META
		 %%KBD-SUPER
		 %%KBD-HYPER
		 %%KBD-MOUSE
		 %%KBD-MOUSE-BUTTON
		 %%KBD-MOUSE-N-CLICKS
		 %%BYTE-SPECIFIER-POSITION
		 %%BYTE-SPECIFIER-SIZE 
	     LINEAR-PDL-FIELDS-VALUES
	         %%LP-CLS-SELF-MAP-PROVIDED 
		 %%LP-CLS-TRAP-ON-EXIT 
		 %%LP-CLS-ADI-PRESENT
		 %%LP-CLS-DESTINATION 
		 %%LP-CLS-DESTINATION-AND-ADI 
		 %%LP-CLS-DELTA-TO-OPEN-BLOCK
		 %%LP-CLS-DELTA-TO-ACTIVE-BLOCK
		 %%LP-EXS-MICRO-STACK-SAVED
		 %%LP-EXS-PC-STATUS
		 %%LP-EXS-BINDING-BLOCK-PUSHED
		 %%LP-EXS-EXIT-PC
		 %%LP-ENS-LCTYP
		 %%LP-ENS-UNSAFE-REST-ARG
		 %%LP-ENS-NUM-ARGS-AND-UNSAFE-FLAG
		 %%LP-ENS-UNSAFE-REST-ARG-1 
		 %%LP-ENS-ENVIRONMENT-POINTER-POINTS-HERE 
		 %%LP-ENS-NUM-ARGS-SUPPLIED 
		 %%LP-ENS-MACRO-LOCAL-BLOCK-ORIGIN 
	     INSTANCE-DESCRIPTOR-OFFSETS 
	         %INSTANCE-DESCRIPTOR-HEADER
		 %INSTANCE-DESCRIPTOR-RESERVED
		 %INSTANCE-DESCRIPTOR-SIZE
		 %INSTANCE-DESCRIPTOR-BINDINGS
		 %INSTANCE-DESCRIPTOR-FUNCTION
		 %INSTANCE-DESCRIPTOR-TYPENAME
		 %INSTANCE-DESCRIPTOR-MAPPING-TABLE-ALIST
		 %INSTANCE-DESCRIPTOR-ALL-INSTANCE-VARIABLES
		 %INSTANCE-DESCRIPTOR-DEPENDS-ON-ALL

	     %%ARRAY-DISPLACED-BIT
	     %%ARRAY-NUMBER-DIMENSIONS
	     %%ARRAY-LONG-LENGTH-FLAG
	     %%ARRAY-INDEX-LENGTH-IF-SHORT
	     %%FEF-ARG-SYNTAX
	     %%FEF-DES-DT
	     %%FEF-INIT-OPTION
	     %%FEF-QUOTE-STATUS
	     %%FEF-SPECIALNESS
	     %%FEFH-ARGS-FOR-FANL
	     %%FEFH-ARGS-FOR-FAWL
	     %%FEFH-FAST-ARG
	     %%FEFH-GET-SELF-MAPPING-TABLE
	     %%FEFH-LOCALS-FOR-FAWL
	     %%FEFH-LOCALS-FOR-VAWL
	     %%FEFH-MAX-ARGS-FOR-VANL
	     %%FEFH-MIN-ARGS-FOR-VANL
	     %%FEFH-MAX-ARGS-FOR-VAWL
	     %%FEFH-MIN-ARGS-FOR-VAWL
	     %%FEFH-NO-ADL
	     %%FEFH-SV-BIND
	     %%FEFHI-MS-ARG-DESC-ORG
	     %%FEFHI-MS-BIND-DESC-LENGTH
	     %%FEFHI-MS-DEBUG-INFO-PRESENT
	     %%FEFHI-SVM-ACTIVE
	     %%FEFHI-SVM-BITS
	     %%FEFSL-NO-ADL
	     %%HEADER-REST-FIELD
	     %%HEADER-TYPE-FIELD
	     %%PHT1-AGE
	     %%PHT1-MODIFIED-BIT
	     %%PHT1-SCAVENGER-WS-FLAG
	     %%PHT1-VIRTUAL-PAGE-NUMBER
	     %%PHT2-ACCESS-AND-STATUS-BITS
	     %%PHT2-MAP-ACCESS-CODE
	     %%PHT2-META-BITS
	     %%PHT2-VOLATILITY
	     %%REGION-FLIP-ENABLE
	     %%REGION-MAP-STATUS-CODE
	     %%REGION-META-BITS
	     %%REGION-SCAVENGE-CAREFULLY
	     %%REGION-SCAVENGE-ENABLE
	     %%REGION-SWAPIN-QUANTUM
	     %%REGION-VOLATILITY
	     %%SELF-REF-INDEX
	     %%SELF-REF-MAP-LEADER-FLAG
	     %%SELF-REF-RELOCATE-FLAG
	     %%SG-ST-CURRENT-STATE
	     %%SG-ST-FOOTHOLD-EXECUTING
	     %%SG-ST-IN-SWAPPED-STATE
	     %%SG-ST-PROCESSING-ERROR
	     %%VIRTUAL-PAGE-FIRST-HEADER
	     %%VIRTUAL-PAGE-INITIAL-QS
	     %%VIRTUAL-PAGE-STRUCTURE-HANDLE
	     %FEF-NAME-PRESENT
	     %FEFHI-FAST-ARG-OPT
	     %FEFHI-SV-BITMAP
	     %HEADER-TYPE-BIGNUM
	     %HEADER-TYPE-COMPLEX
	     %HEADER-TYPE-FAST-FEF-FIXED-ARGS-NO-LOCALS
	     %HEADER-TYPE-FAST-FEF-FIXED-ARGS-WITH-LOCALS
	     %HEADER-TYPE-FAST-FEF-VAR-ARGS-NO-LOCALS
	     %HEADER-TYPE-FAST-FEF-VAR-ARGS-WITH-LOCALS
	     %HEADER-TYPE-FEF
	     %HEADER-TYPE-FLONUM
	     %HEADER-TYPE-RATIONAL
	     %PHT-MAP-STATUS-MAP-NOT-VALID
	     %PHT-MAP-STATUS-MAR
	     %PHT-MAP-STATUS-META-BITS-ONLY
	     %PHT-MAP-STATUS-READ-WRITE-FIRST
	     %REGION-SPACE-OLD
	     %SYS-COM-AREA-ORIGIN-PNTR
	     %SYS-COM-FREE-AREA#-LIST
	     %SYS-COM-FREE-REGION#-LIST
	     %SYS-COM-MAJOR-VERSION
	     %SYS-COM-NUMBER-AREAS
	     %SYS-COM-NUMBER-REGIONS
	     %SYS-COM-OBARRAY-PNTR
	     %SYS-COM-UNIBUS-INTERRUPT-LIST
	     %SYS-COM-WIRED-SIZE
	     %UNIBUS-CHANNEL-CSR-ADDRESS
	     %UNIBUS-CHANNEL-CSR-BITS
	     %UNIBUS-CHANNEL-DATA-ADDRESS
	     %UNIBUS-CHANNEL-LINK
	     %UNIBUS-CHANNEL-VECTOR-ADDRESS
	     PQ1M-PAGE-OFFSET
	     QUANTUM-MAP-OFFSET-IN-TABLES
	     SG-STATE
	     ))
  (let ((lam-sym (intern-local (string x) 'lambda)))
    (if (null (get lam-sym 'special))
	(putprop lam-sym t 'special))))

(DEFSYSTEM LAMBDA-DIAG
  (:NAME "Lambda-Diag")
  (:SHORT-NAME "LD")
  (:PATCHABLE "SYS: LAMBDA-DIAG; PATCH;")
  (:not-in-disk-label)
  (:warnings-pathname-default  "SYS: LAMBDA-DIAG; PATCH; LAMBDA-DIAG-CWARNS.LISP")
  (:PATHNAME-DEFAULT "SYS: LAMBDA-DIAG;")

  (:module defs0 ("diag-defs"))
  (:module sdu0 ("utest-sdu"))			;moved by pace after bug report by dexter
  (:MODULE DEFS2 ("diag-defs"			;diag-defs here twice to avoid make system bug.
		  "DEBUG-UINST"
		  "LAMMAC"))
  (:MODULE DEFS3 ("NU-DEBUG"
		  "EXPLORER-SPI"
		  "LMI-DEBUG-METHODS"))
  (:MODULE DEFS4 ("LAM-REGADR"
		  "LAM-REGINT"
		  "REGINT-EXPLORER"
		  "REGINT-LAMBDA"))
  (:MODULE MAIN1 ("PRINT-UINST"
		  "SPY"
		  "hh-tram"
		  "SPY-STAT"
		  "PDL"
		  "MEMORY"))	
  (:MODULE MAIN2 ("WR-RD"
		  "CSM"
		  "DISPATCH"
		  "HRAM"
		  "MICRO-STACK"
		  "SMD-DISK"
		  "explorer-disk"
		  "LAMDISK"
		  "PACKED"
		  "JUMP-TESTS"
		  "MASKER"
		  "MACRO-IR"
		  "IMOD"
		  "UINST-STEP"
		  "LAM-TEST"
		  "NU-CONFIG"
		  "VCMEM"
		  "DIVIDE"
		  "remote-console"
		  "serial"
		  "multibus-ether"
		  "PARITY"))

  ;; NO LONGER ACTUALLY A PATCH. JUST ADDS A FUNCTION CALLED BY REGULAR SYSTEM.
  ;; 1-Feb-86 16:34:23 -GJC
  (:MODULE DISK "DISK-PATCH")

  (:MODULE MAIN3 ("LAM" "LAMGSYL" "LAMQF" "LAMLD" "SALVAG" "WINDOW"))
  (:MODULE SDU-TRANSLATOR ("UTEST-SDU-DATA" "utest1"))

  (:module c-funcs "c-funcs")
  (:module unix-fs "unix-fs")
  (:module config-file "config-file")
  (:module macros-and-variables "macros-and-variables")
  (:module window-stuff ("lambda-setup-window" "path" "diag-window"))
  (:module test-stuff ("rack-definitions" "starting-tests" "memory-window"))

  (:module burr-brown "burr-brown")

  (:compile-load defs0)
  (:compile-load sdu0 (:fasload defs0))
  (:COMPILE-LOAD DEFS2 (:FASLOAD defs0 sdu0))
  (:COMPILE-LOAD DEFS3 (:FASLOAD defs0 sdu0 DEFS2))
  (:COMPILE-LOAD DEFS4 (:FASLOAD defs0 sdu0 DEFS2 DEFS3))
  (:COMPILE-LOAD MAIN1 (:FASLOAD defs0 sdu0 DEFS2 DEFS3 DEFS4))
  (:COMPILE-LOAD MAIN2 (:FASLOAD defs0 sdu0 DEFS2 DEFS3 DEFS4 MAIN1))
  (:COMPILE-LOAD MAIN3 (:FASLOAD defs0 sdu0 DEFS2 DEFS3 DEFS4 MAIN1 MAIN2))
  (:COMPILE-LOAD DISK (:FASLOAD defs0 sdu0  DEFS2 DEFS3 DEFS4 MAIN1 MAIN2 MAIN3))
  (:COMPILE-LOAD SDU-TRANSLATOR (:fasload  sdu0 defs0))

  (:compile-load c-funcs)
  (:compile-load unix-fs (:fasload c-funcs) (:fasload c-funcs))
  (:compile-load config-file (:fasload unix-fs) (:fasload unix-fs))

  
  ;; this is the spifo window system interface.
  (:compile-load macros-and-variables (:fasload defs0 sdu0  DEFS2 DEFS3 DEFS4 MAIN1 MAIN2 MAIN3
						config-file))
  (:compile-load window-stuff (:fasload macros-and-variables) (:fasload macros-and-variables))
  (:compile-load test-stuff (:fasload window-stuff) (:fasload window-stuff))

  ;; the burr-brown device is in SI and independant of anything else in lambda-diag
  (:compile-load burr-brown)
  )



