(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "29-Oct-87 18:57:31" {PHYLUM}<CTAMARIN>EMULATOR>RELOAD.;18 10089  

      changes to%:  (FNS Saveit)

      previous date%: " 9-Oct-87 12:40:01" {PHYLUM}<CTAMARIN>EMULATOR>RELOAD.;17)


(* "
Copyright (c) 1986, 1987 by Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT RELOADCOMS)

(RPAQQ RELOADCOMS ((FNS RELOADEMULATOR LOADLATEST LOADTAMOPCODES MAKETAMOPCODEARRAY2 PUTTAM DOMAKE 
                        MAKETAMFILES Startup Saveit Compileit ChangedFiles s AUnGo AUnSave)))
(DEFINEQ

(RELOADEMULATOR
  [LAMBDA (NOSRC)                                            (* ; "Edited  5-Jun-87 12:28 by rtk")
                                                             (* LOAD? (QUOTE 
                                                             {eris}<Lisp>Koto>Library) >EXPORTS.ALL)
    (CNDIR '{PHYLUM}<CTamarin>Emulator>)
    (LOADLATEST 'TAMARINEMULATOR NOSRC)
    (LOADLATEST 'EMULATORSUPPORT NOSRC)
    (LOADLATEST 'MICROASSEMBLER NOSRC)
    (LOADLATEST 'OPCODEASSEMBLER NOSRC)
    (LOADLATEST 'CEDARGENS NOSRC)                            (* LOADLATEST (QUOTE GENERATETAM) T)
    (LOADLATEST 'EMULATORCONTROL NOSRC)
    (LOADLATEST 'TSIMULATE T)
    (LOAD? 'TESTOPS)                                         (* CNDIR (QUOTE {ERIS}<tamarin>Ucode>))
                                                             (* LOAD? (QUOTE LLB.DCOM))
    (LOADLATEST 'TOPEDIT T)
    (LOADTAMOPCODES)
    (MAKETAMOPCODEARRAY2)                                    (* LOADLATEST (QUOTE NoRefCount) T)
    ])

(LOADLATEST
  [LAMBDA (FNAME NOSRC)                                      (* ; "Edited 21-May-87 13:30 by rtk")

    (PROG [(DN (MKATOM (CONCAT FNAME ".LCOM")))
           (DFASL (MKATOM (CONCAT FNAME ".DFASL"]
          (PROG ((DCOMDATE NIL)
                 (SRCDATE NIL)
                 (FSRCNAME (INFILEP FNAME))
                 (FDCOMNAME (INFILEP DN))
                 (DFASLNAME (INFILEP DFASL))
                 (CURRSRCDATE NIL)
                 (CURRDCOMDATE NIL)
                 (DCOMLOADNAME NIL)
                 (SRCLOADNAME NIL)
                 (DFASLDATE NIL)
                 DCOMFLAG)
                [if FDCOMNAME
                    then (SETQ DCOMDATE (GETFILEINFO DN 'ICREATIONDATE]
                [if DFASLNAME
                    then (SETQ DFASLDATE (GETFILEINFO DFASL 'ICREATIONDATE]
                (if (OR DCOMDATE DFASLDATE)
                    then (SETQ DCOMDATE (MAX (OR DCOMDATE 0)
                                             (OR DFASLDATE 0)))
                         (if (EQ DCOMDATE DFASLDATE)
                             then (SETQ DN DFASL)
                                  (SETQ FDCOMNAME DFASLNAME)))
                [if FSRCNAME
                    then (SETQ SRCDATE (GETFILEINFO FNAME 'ICREATIONDATE]
                (if (FMEMB FSRCNAME LOADEDFILELST)
                    then (SETQ SRCLOADNAME FSRCNAME))
                (if (AND (FMEMB FDCOMNAME LOADEDFILELST)
                         DCOMDATE SRCDATE (GREATERP DCOMDATE SRCDATE))
                    then (SETQ DCOMLOADNAME FDCOMNAME))
                (SETQ DCOMFLAG NIL)
                (if [AND DCOMDATE (OR (NOT SRCDATE)
                                      (AND (GREATERP DCOMDATE SRCDATE)
                                           (NOT DCOMLOADNAME]
                    then (PRINTOUT T "Loading Dcom: " DN T)
                         (LOAD DN)
                         (SETQ DCOMLOADNAME FDCOMNAME)
                         (SETQ DCOMFLAG 'PROP))
                (if [OR (EQ NOSRC 'ALL)
                        (AND DCOMFLAG (NOT NOSRC))
                        (AND SRCDATE (NOT (EQUAL FSRCNAME SRCLOADNAME))
                             (OR (NOT NOSRC)
                                 (NOT DCOMFLAG]
                    then (if DCOMLOADNAME
                             then (SETQ DCOMFLAG 'PROP))
                         (PRINTOUT T "Loading Source: " FNAME)
                         (if DCOMFLAG
                             then (PRINTOUT T " Prop"))
                         (PRINTOUT T T)
                         (LOAD FNAME DCOMFLAG)
                         (SETQ SRCLOADNAME FSRCNAME])

(LOADTAMOPCODES
  [LAMBDA NIL                                                (* rtk " 3-Nov-86 15:37")
    (PROG (PROP (THEFILE ""))
          (PRINT "READING TAMARIN OPCODES")
          (SETQ THEFILE (OPENFILE 'TAMOPS 'INPUT))
          (SETQ PROP (READ THEFILE))
          (SETQ \TAMOPCODES (HREAD THEFILE))
          (CLOSEF THEFILE)
          (PRINTOUT T "SETTING PROP: " PROP T)
          (for I in \TAMOPCODES do (PUTPROP (fetch (TOPCODE OPCODENAME) of I)
                                          PROP I])

(MAKETAMOPCODEARRAY2
  [LAMBDA NIL                                                (* rtk "22-Oct-86 10:13")
    (LET (OPNUM LOCARR)
         (SETQ LOCARR (ARRAY 256 'POINTER NIL 0))
         (PRINT "MAKEING   \TAMOPCODEARRAY")
         (for I in \TAMOPCODES do (PUTPROP (fetch (TOPCODE OPCODENAME) of I)
                                         'TamarinOp I)
                                  (SETQ OPNUM (fetch (TOPCODE OP#) of I))
                                  (if (LISTP OPNUM)
                                      then (for J from (CAR OPNUM) to (CADR OPNUM)
                                              do (SETA LOCARR J I))
                                    else (SETA LOCARR OPNUM I)))
         (SETQ \TAMOPCODEARRAY LOCARR])

(PUTTAM
  [LAMBDA (logot)                                         (* ; "Edited 30-Sep-87 14:09 by Krivacic")

    (PROG ((DUMPFILES (ChangedFiles FILELST)))
          (CLOSEALL)
          (CNDIR '{ERIS}<TAMARIN>WORK>SIMULATE>)
          (DOMAKE DUMPFILES 'TSIMULATE '(C ST))
          (DOMAKE DUMPFILES 'TACCESS '(C ST))
          (CNDIR '{ERIS}<TAMARIN>TSIM)
          (DOMAKE DUMPFILES 'SIMCOMPARES '(C ST))
          (DOMAKE DUMPFILES 'SIM '(C ST))
          (DOMAKE DUMPFILES 'SIMSUPPORT '(C ST))
          (CNDIR '{ERIS}<TAMARIN>UCODE)
          (DOMAKE DUMPFILES 'TESTOPS)
          (DOMAKE DUMPFILES 'MICROASSEMBLER '(C ST))
          (InitEmulator T)
          (AUCode)
          (DOMAKE DUMPFILES 'TAMARINEMULATOR '(C ST))
          (DOMAKE DUMPFILES 'EMULATORSUPPORT '(C ST))
          (DOMAKE DUMPFILES 'GENERATETAM))
    (if logot
        then (LOGOUT])

(DOMAKE
  [LAMBDA (DUMPFILES FNAME OPTIONS)                          (* rtk "17-Jun-86 10:42")
    (if (FMEMB FNAME DUMPFILES)
        then (MAKEFILE FNAME OPTIONS])

(MAKETAMFILES
  [LAMBDA (files options)                                    (* rtk "13-Oct-86 18:08")
    (for i in files do (PRINTOUT T "Making " i T)
                       (MAKEFILE i options])

(Startup
  [LAMBDA NIL                                             (* ; "Edited 30-Sep-87 15:16 by Krivacic")

    (InitEmulat)
    (AUCode)
    (AssembleOps test1 T)
    (DefineSections T)
    (DoCycle])

(Saveit
  [LAMBDA (redefine withcompile logout)                   (* ; "Edited 28-Oct-87 18:45 by Krivacic")

    [WithRadix 8 (LET (compilelist compilefilelist changedlist)
                      [SETQ changedlist (ChangedFiles '(TAMARINEMULATOR CEDARGENS OPCODEASSEMBLER 
                                                              EMULATORCONTROL EMULATORSUPPORT TESTOPS 
                                                              MICROASSEMBLER TSIMULATE RELOAD]
                      (SETQ compilelist (for i in '(TAMARINEMULATOR CEDARGENS)
                                           when (FMEMB i changedlist) collect i))
                      (SETQ compilefilelist (for i in '(OPCODEASSEMBLER EMULATORCONTROL 
                                                              EMULATORSUPPORT MICROASSEMBLER 
                                                              TSIMULATE)
                                               when (FMEMB i changedlist) collect i))
                      (SETQ makelist (for i in '(TESTOPS RELOAD) when (FMEMB i changedlist)
                                        collect i))
                      (CNDIR '{Phylum}<CTamarin>Emulator>)
                      (MAKETAMFILES makelist)
                      (MAKETAMFILES compilelist '(C ST))
                      (MAKETAMFILES compilefilelist)
                      (Compileit compilefilelist)
                      (if redefine
                          then (DefineSections withcompile]
    (if logout
        then (LOGOUT])

(Compileit
  [LAMBDA (file)                                          (* ; "Edited 30-Sep-87 14:27 by Krivacic")

    (if (LISTP file)
        then (for f in file do (Compileit f))
      else (if file
               then (PRINTOUT T "Compile-File of " file T)
                    (CL:COMPILE-FILE file])

(ChangedFiles
  [LAMBDA (names)                                         (* ; "Edited 30-Sep-87 14:25 by Krivacic")

    (for I in names when (GREATERP (LENGTH (GETPROP I 'FILE))
                                1) collect I])

(s
  [LAMBDA (name)                                          (* ; "Edited 21-Jul-87 18:15 by Krivacic")

    (fetch (WireRec value) of (EVAL (U-CASE name])

(AUnGo
  [LAMBDA NIL                                             (* ; "Edited 29-Sep-87 19:48 by Krivacic")

    (AUCode)
    (DoCycle T])

(AUnSave
  [LAMBDA NIL                                             (* ; "Edited 24-Sep-87 15:04 by Krivacic")

    (AUCode)
    (MakeUCodeInfo])
)
(PUTPROPS RELOAD COPYRIGHT ("Xerox Corporation" 1986 1987))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (582 10006 (RELOADEMULATOR 592 . 1671) (LOADLATEST 1673 . 4385) (LOADTAMOPCODES 4387 . 
4931) (MAKETAMOPCODEARRAY2 4933 . 5741) (PUTTAM 5743 . 6672) (DOMAKE 6674 . 6859) (MAKETAMFILES 6861
 . 7080) (Startup 7082 . 7298) (Saveit 7300 . 8911) (Compileit 8913 . 9263) (ChangedFiles 9265 . 9517)
 (s 9519 . 9694) (AUnGo 9696 . 9846) (AUnSave 9848 . 10004)))))
STOP