(FILECREATED " 5-Sep-86 15:51:11" {ERIS}<TAMARIN>UCODE>GENERATETAM.;50 26894 changes to: (VARS ClockPlaSlimSpec RomPlaSlimSpec MiscPlaSlimSpec OpPlaSlimSpec) (FNS MakePlas) previous date: "21-Aug-86 21:17:28" {ERIS}<TAMARIN>UCODE>GENERATETAM.;49) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT GENERATETAMCOMS) (RPAQQ GENERATETAMCOMS ((FNS) (* * RegMux generation) (FNS BuildMux FindLineName MakeRegMuxSpec MapMuxNameToLine MuxChipList MakeMuxBlk MakeRegMux) (VARS MapNameList hspec vspec) (* * PLA Generation) (FNS MakeDotPlaFile MakePlaTTFile MakeFoldPlaTTFile MakePlas MakeSlimFile SearchNameList GetPlaField) (VARS ClockPlaSlimSpec MiscPlaSlimSpec OpPlaSlimSpec RomPlaSlimSpec) (* * Cond Code Generation) (FNS BuildCondCode FindCodeLetter))) (* * RegMux generation) (DEFINEQ (BuildMux [LAMBDA NIL (* agb: "14-Jun-86 17:17") (MakeRegMuxSpec) (SETQ cl (MuxChipList RegMuxSpec)) (MakeRegMux cl (QUOTE {PHYLUM}<Tamarin>LP>GENREGMUX.CHIP]) (FindLineName [LAMBDA (sect line) (* agb: "14-Jun-86 17:27") (PROG (a) [SETQ a (for k in MapNameList thereis (AND (EQ line (CADR k)) (GEQ sect (CADDR k)) (LESSP sect (PLUS (CADDR k) (CADDDR k] (RETURN (if a then (LIST [CONCAT (U-CASE (CAR a)) "-" (PLUS (OR (CAR (CDDDDR a)) 0) (DIFFERENCE sect (CADDR a] (CADR (CDDDDR a]) (MakeRegMuxSpec [LAMBDA NIL (* rtk "12-Jun-86 16:02") (SETQ RegMuxSpec (COPY (QUOTE ((@RegAddr~ 0 6 #Tos #IBufN #Arg #uK ((#Arg 2 4 2) (@Quad 0 2 0)) ((0 4 2 4) (#$Opcode 0 4 0)) NIL NIL -1 #Tos #IBufN #Arg #Tos' #uK ((#Arg 2 4 2) (@Quad 0 2 0)) ((0 4 2 4) (#$Opcode 0 4 0))) (@RegCxt~ 6 3 ((0 8 1 8) (#TopCxt 6 2 6)) ((0 8 1 8) (#Top+1Cxt 6 2 6)) ((0 8 1 8) (#Top-1Cxt 6 2 6)) ((0 8 1 8) (#BotCxt 6 2 6)) ((#uK 6 3 6 6)) NIL NIL NIL ((0 8 1 8) (#TopCxt 6 2 6)) ((0 8 1 8) (#Top+1Cxt 6 2 6)) ((0 8 1 8) (#Top-1Cxt 6 2 6)) ((0 8 1 8) (#BotCxt 6 2 6)) ((#uK 6 3 6 6))) (@MuxRdSel~ 0 8 0 ((#uK 0 8 0)) #Arg #IBufN #$Opcode ((0 6 2 6) (#Tos 0 6 0))) (#NewArg~ 0 8 #Arg ((0 6 2 6) (#Arg' 0 6 0)) #uK #IBufN D2 ((0 4 4 4) (#$Opcode 0 4 0)) ((0 6 2 6) (#Arg2 0 6 0))) (#NewArg2~ 0 6 #Arg2 ((D2 2 4 2) (0 0 2 0)) #uK #Arg) (#NewTos~ 0 6 #Tos #Tos' #uK #IBufN D2) (#NewTopCxt~ 6 2 #TopCxt #Top+1Cxt #Top-1Cxt #uK) (#NewBotCxt~ 6 2 #BotCxt #Bot-1Cxt #Bot+1Cxt #uK]) (MapMuxNameToLine [LAMBDA (name n) (* agb: " 9-Jun-86 15:46") (CADR (OR [for i in MapNameList thereis (AND (EQ name (CAR i)) (IGEQ n (CADDR i)) (ILESSP n (IPLUS (CADDR i) (CADDDR i] (HELP]) (MuxChipList [LAMBDA (spec) (* agb: " 9-Jun-86 19:48") (COPY (CONS vspec (CONS hspec (for aspec in spec collect (for i from 0 to 8 collect (if [AND (GEQ i (CADR aspec)) (LESSP i (PLUS (CADR aspec) (CADDR aspec] then (CONS (MapMuxNameToLine (CAR aspec) i) (for j in (CDDDR aspec) collect (MapMuxNameToLine [if (ATOM j) then j else (CAR (for x in j thereis (AND (GEQ i (CADR x)) (LESSP i (PLUS (CADR x) (CADDR x] i))) else NIL]) (MakeMuxBlk [LAMBDA (spec VSpec startX) (* agb: "31-May-86 19:56") (PROG (maxHeightList last lastX) (SETQ maxHeightList (for i from 0 to 20 collect 0)) [for y in VSpec as elt in spec when elt do (for xelt in (CDR elt) as x from startX by 14 as mh on maxHeightList as n from 0 first [ChipSymCall (QUOTE VIA) (PLUS 0 startX) (PLUS cellHeight 0 y (TIMES 8 (CAR elt] [ChipWire 3 3 startX (PLUS -8 cellHeight y) startX (PLUS cellHeight y (TIMES 8 (CAR elt] (SETQ last NIL) (SETQ lastX startX) do (if (AND (NEQ NIL xelt) (GREATERP y (CAR mh))) then (RPLACA mh y)) (if (OR last xelt) then (if (EVENP n) then (ChipSymCall (QUOTE OCELL) (PLUS 0 x) (PLUS 7 y)) (SETQ lastX (PLUS x 4)) else (ChipSymCall (QUOTE GCELL) (PLUS 0 x) (PLUS 7 y))) elseif (EQ x startX) then (ChipSymCall (QUOTE VIA) (PLUS 0 x) (PLUS 29 y))) (SETQ last T) (if (NOT xelt) then (* ChipSymCall (QUOTE ZCELL) (PLUS 4 x) (PLUS 29 y)) (SETQ last NIL) elseif (EQ T xelt) then (ChipSymCall (QUOTE PCELL) (PLUS 4 x) (PLUS 0 y)) else (ChipSymCall (QUOTE DCELL) (PLUS 4 x) (PLUS 0 y))) [if (NUMBERP xelt) then (ChipSymCall (QUOTE VIA) (PLUS 13 x) (PLUS cellHeight 0 y (TIMES 8 xelt))) (ChipWire 3 3 (PLUS x 13) (PLUS -1 cellHeight y) (PLUS x 13) (PLUS cellHeight y (TIMES 8 xelt] finally [if last then (if (EVENP n) then (ChipSymCall (QUOTE OCELL) (PLUS 0 x) (PLUS 7 y)) (SETQ lastX (PLUS x 4)) else (ChipSymCall (QUOTE GCELL) (PLUS 0 x) (PLUS 7 y] (ChipWire 11 4 startX (PLUS y 29) lastX (PLUS y 29] (for i in maxHeightList as x from (PLUS 8 startX) by 14 when (NEQ i 0) do (ChipWire 3 3 (PLUS -1 x) -1 (PLUS -1 x) (ADD1 i]) (MakeRegMux [LAMBDA (muxSpec file) (* agb: "17-Jun-86 11:11") (PROG (vspec hspec nm (cellHeight 41) (newBase 0)) (SETQ RegMuxVLocSpec NIL) (SETQ vspec (CAR muxSpec)) (SETQ hspec (CADR muxSpec)) [SETQ hspec1 (CONS 0 (for i in hspec collect (SETQ newBase (PLUS 8 newBase (TIMES i 14] (SETQ newBase 0) [SETQ vspec1 (CONS 0 (for i in vspec collect (SETQ newBase (PLUS newBase cellHeight (TIMES i 8] (ChipHdrFile file (GetFile (QUOTE {Phylum}<Tamarin>LP>RegMux>MUXBASECELLS.CHIP))) (for mspec in (CDDR muxSpec) as startX in hspec1 do (MakeMuxBlk mspec vspec1 startX)) (SETQ rightEdge (CAR (LAST hspec1))) (SETQ newBase 0) [for i in vspec as n from 0 do (ChipWire 11 4 0 (PLUS 7 newBase) rightEdge (PLUS 7 newBase) "GND") (for j from 0 to (DIFFERENCE i 1) when (SETQ nm (FindLineName n j)) do (if (CADR nm) then (SETQ RegMuxVLocSpec (NCONC1 (LIST (CAR nm) (PLUS newBase cellHeight (TIMES j 8))) RegMuxVLocSpec))) (ChipWire 11 4 (if (CADR nm) then -16 else 0) (PLUS newBase cellHeight (TIMES j 8)) rightEdge (PLUS newBase cellHeight (TIMES j 8)) (CAR nm))) (SETQ newBase (PLUS newBase cellHeight (TIMES i 8] (ChipTrailer]) ) (RPAQQ MapNameList ((#Tos 0 0 6) (#Tos' 1 0 6) (#NewTos~ 2 0 6) (#uK 3 0 6) (#Arg 4 0 6) (#Arg' 5 0 6) (#NewArg~ 6 0 6) (#Arg2 7 0 6) (#IBufN 8 0 6 0 T) (@RegAddr~ 9 0 6 0 T) (#NewArg2~ 10 0 6) (@Quad 11 0 2 0 T) (#$Opcode 12 0 6) (D2 13 0 6 0 T) (@MuxRdSel~ 14 0 6) (--) (#Bot-1Cxt 0 6 2) (#uK 1 6 2 6) (#BotCxt 2 6 2) (#Bot+1Cxt 3 6 2) (#NewBotCxt~ 4 6 2) (#Top-1Cxt 5 6 2) (#IBufN 6 6 2 6 T) (#TopCxt 7 6 2) (#Top+1Cxt 8 6 2) (#NewTopCxt~ 9 6 2) (-0-) (#$Opcode 11 6 2 6) (D2 12 6 2 6 T) (#Arg 13 6 2 6) (@MuxRdSel~ 14 6 2 6) (#NewArg~ 15 6 2 6) (@RegCxt~ 16 6 2 0 T) (--) (@RegCxt~ 0 8 1 2 0 T) (#uK 1 8 1 8) (-1 T 0 20) (0 NIL 0 20) (NIL NIL 0 20))) (RPAQQ hspec (16 16 8 8 4 8 4 4)) (RPAQQ vspec (15 15 15 15 15 15 17 17 2)) (* * PLA Generation) (DEFINEQ (MakeDotPlaFile [LAMBDA (filename inLst outLst foldP row col tiles) (* agb: " 6-Jul-86 17:46") (PROG (file fn1) [if (EQ filename T) then (SETQ file NIL) else (SETQ file (OPENFILE (CONCAT filename ".pla") (QUOTE OUTPUT] (SETQ fn1 (COPY filename)) (RPLSTRING fn1 (STRPOS "{" fn1) "[") (RPLSTRING fn1 (STRPOS "}" fn1) "]") (PRINT fn1) (LINELENGTH 10000 file) (PRINTOUT file "TruthTableFile ← %"" filename ".tt%";" T "TileSet ← %"/PHYLUM/Tamarin/LP/Pla/" tiles ".dale%";" T "Optimize ← FALSE;" T "ExtraRows ← " .I1 row ";" T "ExtraOrColumns ← " .I1 col ";" T "Inputs ← LIST[") (SETQ fflg T) (for i in inLst do (if (NOT fflg) then (PRINTOUT file ", ")) (SETQ fflg NIL) (PRINTOUT file "%"" (U-CASE (CAR i)) "%"")) (PRINTOUT file "];" T "Outputs ← LIST[") (SETQ fflg T) (for i in outLst do (if (NOT fflg) then (PRINTOUT file ", ")) (SETQ fflg NIL) (PRINTOUT file "%"" (U-CASE (CAR i)) "%"") (if foldP then (PRINTOUT file ", %"" (U-CASE (CAR i)) "DUMMY" "%""))) (PRINTOUT file "];" T "PrintRows ← 5;" T) (CLOSEF file]) (MakePlaTTFile [LAMBDA (plaSpec OutputSpec file row col tile) (* agb: " 6-Jul-86 18:07") (PROG (inLst outLst x) (if (EQ file T) then (SETQ outFile NIL) else [SETQ outFile (OUTPUT (OUTFILE (CONCAT file ".tt"] (LINELENGTH 10000 outFile)) [SETQ inLst (for i in (CAR OutputSpec) collect (LIST (CAR i) (IPLUS (CADDR i) (CADR (SearchNameList (CADR i) (CAR plaSpec) (CADDR i] [SETQ outLst (for i in (CADR OutputSpec) collect (LIST (CAR i) [IPLUS (CADDR i) (CADR (SearchNameList (CADR i) (CADR plaSpec) (CADDR i] (CADR i) (CADDDR i] (MakeDotPlaFile file inLst outLst NIL row col tile) [if (NOT plaSpec) then (SETQ MiDecl (RECLOOK (QUOTE MI))) (SETQ plaSpec (LIST NIL NIL (for i from 0 to 255 collect (LIST i 255 (if (AND (ELT UCodeRom i) (NEQ T (ELT UCodeRom i) )) then (ELT UCodeRom i) else (create MI] (for term in (CADDR plaSpec) as n from 0 do (for inLine in inLst do (SETQ vl (LOADBYTE (CAR term) (CADR inLine) 1)) (SETQ vl2 (LOADBYTE (CADR term) (CADR inLine) 1)) (if (EQ 0 vl2) then (PRINTOUT outFile "X") elseif (EQ 0 vl) then (PRINTOUT outFile "0") else (PRINTOUT outFile "1"))) (printout outFile " | ") (for outLine in outLst do (if [NEQ (CADDDR outLine) (NEQ 0 (GetPlaField (CADDR term) (CADR outLine) (CADDR outLine] then (printout outFile "1") else (printout outFile "0"))) (PRINTOUT outFile T)) (CLOSEF outFile]) (MakeFoldPlaTTFile [LAMBDA (plaSpec OutputSpec file row col tile) (* agb: " 6-Jul-86 18:07") (PROG (inLst outLst x) (if (EQ file T) then (SETQ outFile NIL) else [SETQ outFile (OUTPUT (OUTFILE (CONCAT file ".tt"] (LINELENGTH 10000 outFile)) [SETQ inLst (for i in (CAR OutputSpec) collect (LIST (CAR i) (IPLUS (CADDR i) (CADR (SearchNameList (CADR i) (CAR plaSpec) (CADDR i] [SETQ outLst (for i in (CADR OutputSpec) collect (LIST (CAR i) [IPLUS (CADDR i) (CADR (SearchNameList (CADR i) (CADR plaSpec) (CADDR i] (CADR i) (CADDDR i] (MakeDotPlaFile file inLst outLst T row col tile) [if (NOT plaSpec) then (SETQ MiDecl (RECLOOK (QUOTE MI))) (SETQ plaSpec (LIST NIL NIL (for i from 0 to 255 collect (LIST i 255 (if (AND (ELT UCodeRom i) (NEQ T (ELT UCodeRom i) )) then (ELT UCodeRom i) else (create MI] (for termL on (CADDR plaSpec) by (CDDR termL) as n from 0 by 2 do (SETQ term1 (CAR termL)) (SETQ term2 (CADR termL)) (for inLine in inLst do (SETQ vl (LOADBYTE (CAR term1) (CADR inLine) 1)) (SETQ vl2 (LOADBYTE (CADR term1) (CADR inLine) 1)) (if (EQ 0 vl2) then (PRINTOUT outFile "X") elseif (EQ 0 vl) then (PRINTOUT outFile "0") else (PRINTOUT outFile "1"))) (printout outFile " | ") (for outLine in outLst do (if [NEQ (CADDDR outLine) (NEQ 0 (GetPlaField (CADDR term1) (CADR outLine) (CADDR outLine] then (printout outFile "1") else (printout outFile "0")) (if [NEQ (CADDDR outLine) (NEQ 0 (GetPlaField (CADDR term2) (CADR outLine) (CADDR outLine] then (printout outFile "1") else (printout outFile "0"))) (PRINTOUT outFile T)) (CLOSEF outFile]) (MakePlas [LAMBDA (dir pla) (* agb: " 1-Aug-86 16:16") (MakeClockPla2) (MakeMiscPla) (if (NOT dir) then (SETQ dir "{PHYLUM}<Tamarin>LP>Pla>")) [if (NOT pla) then (SETQ pla (QUOTE (clock op misc ucode] (if (MEMB (QUOTE clock) pla) then (MakePlaTTFile ClockPlaSpec ClockPlaSlimSpec (CONCAT dir "ClockPla") 30 30 "ClockPlaPieces")) (if (MEMB (QUOTE op) pla) then (MakePlaTTFile OpPlaSpec OpPlaSlimSpec (CONCAT dir "OpPla") 22 22 "OPPlaPieces")) (if (MEMB (QUOTE misc) pla) then (MakePlaTTFile MiscPlaSpec MiscPlaSlimSpec (CONCAT dir "MiscPla") 30 30 "MiscPlaPieces")) (if (MEMB (QUOTE ucode) pla) then (MakeFoldPlaTTFile NIL RomPlaSlimSpec (CONCAT dir "UCodeRom") 32 32 "RomPieces"]) (MakeSlimFile [LAMBDA (plaSpec OutputSpec file) (* agb: "19-Feb-86 20:48") (PROG (inLst outLst x) (SETQ outFile (OUTPUT (OUTFILE file))) [SETQ inLst (for i in (CAR OutputSpec) collect (LIST (CAR i) (IPLUS (CADDR i) (CADR (ASSOC (CADR i) (CAR plaSpec] [SETQ outLst (for i in (CADR OutputSpec) collect (LIST (CAR i) (IPLUS (CADDR i) (CADR (ASSOC (CADR i) (CADR plaSpec] (for i in inLst do (printout outFile (CAR i) " b" T)) (printout outFile "*" T) (for i in outLst do (printout outFile (CAR i) " b" T)) (printout outFile "*" T) (for term in (CADDR plaSpec) as n from 0 do (for outLine in outLst when (NEQ 0 (LOADBYTE (CADDR term) (CADR outLine) 1)) do (printout outFile (CAR outLine) " = ") (SETQ firstElt T) [for inLine in inLst do (SETQ vl (LOADBYTE (CAR term) (CADR inLine) 1)) (SETQ vl2 (LOADBYTE (CADR term) (CADR inLine) 1)) (if (NEQ 0 vl2) then (if firstElt then (SETQ firstElt NIL) else (PRINTOUT outFile " * ")) (if (EQ 0 vl) then (PRINTOUT outFile "-")) (PRINTOUT outFile (CAR inLine] (printout outFile " ;" T))) (PRINTOUT outFile "*;" T) (CLOSEF outFile]) (SearchNameList [LAMBDA (item list nbr) (* agb: "31-May-86 14:36") (PROG (a) (if (NOT list) then (RETURN (LIST item 0))) [SETQ a (for i in list thereis (AND (EQUAL item (CAR i)) (GEQ nbr (CADDDR i)) (ILESSP nbr (PLUS (CADDDR i) (CADDR i] (if (NOT a) then (HELP)) (RETURN a]) (GetPlaField [LAMBDA (val loc field) (* agb: "31-May-86 15:19") (if (NUMBERP val) then (LOADBYTE val loc 1) else (LOADBYTE (OZ (RECORDACCESS field val MiDecl)) loc 1]) ) (RPAQQ ClockPlaSlimSpec (((RESET @Reset 0) (HOLD #$Hold 0) (@#FAULT @#Fault 0) (#UCYCLE-0 Cycle 0) (#UCYCLE-1 Cycle 1) (#UCYCLE-2 Cycle 2) (@#VMREFILL @#VMRefill 0) (@CLOCKSTATE-3 @ClockState 3) (@CLOCKSTATE-2 @ClockState 2) (@CLOCKSTATE-1 @ClockState 1) (@CLOCKSTATE-0 @ClockState 0)) ((@NCLOCKSTATE-0 @NClockState 0) (@NCLOCKSTATE-1 @NClockState 1) (@NCLOCKSTATE-2 @NClockState 2) (@NCLOCKSTATE-3 @NClockState 3) (@MICROP @Micro 0) (@FIRSTCY+ @FirstCy 0) (@SECONDCY+ @SecondCy 0) (@OPP @Op 0) (@MEMREAD+ @MemRead 0) (@WRITE+ @Write 0) (@FIRSTCYP @FirstCy 0) (@MEMDIR+ @MemDir 0) (@CASH+ @CasH 0) (@READ+ @Read 0) (@MEMCY+ @MemCy 0) (@WRITE-VMM+ @Write-VMM 0) (@READP @Read 0) (@DORESET+ @DoReset 0) (@WRITE@ @Write 0) (@MEMDIR@ @MemDir 0) (@READ@ @Read 0) (@MEMREAD@ @MemRead 0) (@MEMREADP @MemRead 0) (@MEMWRITE@ @MemWrite 0) (@QUAD-0@ @Quad 0) (HOLDA@ @HoldA 0 T) (@QUAD-1@ @Quad 1)))) (RPAQQ MiscPlaSlimSpec (((#UMISC-0 (#MIR Misc) 0) (#UMISC-1 (#MIR Misc) 1) (#UMISC-2 (#MIR Misc) 2) (#UMISC-3 (#MIR Misc) 3) (#UMISC-4 (#MIR Misc) 4)) ((@RESETMEMLOCK~ @ResetMemLock~ 0) (@SETMEMLOCK~ @SetMemLock~ 0) (@SETOUTPUTINTERRUPT~ @SetOutputInt~ 0) (@RESETOUTPUTINTERRUPT~ @ResetOutputInt~ 0) (@SETREFCNT~ @SetRefCnt~ 0) (@RESETREFCNT~ @ResetRefCnt~ 0) (@SETSTACKREFILL~ @SetStackRefill~ 0) (@RESETSTACKREFILL~ @ResetStackRefill~ 0) (@RESETINITIALREFILL~ @ResetInitialRefill~ 0) (@SETINITIALREFILL~ @SetInitialRefill~ 0) (@SETINTERRUPTENABLE~ @SetInterruptEnable~ 0) (@RESETINTERRUPTENABLE~ @ResetInterruptEnable~ 0) (@RESETINTERRUPT~ @ResetInterrupt 0 T) (@OPLENGTH=0 @OpLength=0 0) (@RESETREFRESH~ @ResetRefresh 0 T) (@RESET-VMMA @Reset-VMM 0) (@WRITEOCTALA~ @WriteOctal 0 T)))) (RPAQQ OpPlaSlimSpec (((+DORESET *DoReset 0) (#INTERRUPT #Interrupt 0) (#$REFCNT #$RefCnt 0) (#REFRESH #$Refresh 0) (#$STACKREFILL #$StackRefill 0) (#OPCODE-0 #Opcode 0) (#OPCODE-1 #Opcode 1) (#OPCODE-2 #Opcode 2) (#OPCODE-3 #Opcode 3) (#OPCODE-4 #Opcode 4) (#OPCODE-5 #Opcode 5) (#OPCODE-6 #Opcode 6) (#OPCODE-7 #Opcode 7) (#FRAMESFULL #FramesFull 0) (#FRAMESEMPTY #FramesEmpty 0) (#REFILLRQ #RefillRq 0)) ((#OPLENGTH-2 #OpLength 2) (#OPLENGTH-1 #OpLength 1) (#OPLENGTH-0 #OpLength 0) (#FORCENEWOP #ForceNewOp 0) (#MODSTARTADDR #ModStartAddr 0) (#MODSTARTADDR~ #ModStartAddr 0 T) (#STARTADDR-0 #StartAddr 0) (#STARTADDR-1 #StartAddr 1) (#STARTADDR-2 #StartAddr 2) (#STARTADDR-3 #StartAddr 3) (#STARTADDR-4 #StartAddr 4) (#STARTADDR-5 #StartAddr 5) (#STARTADDR-6 #StartAddr 6) (#STARTADDR-7 #StartAddr 7)))) (RPAQQ RomPlaSlimSpec (((#UPC-7 Addr 7) (#UPC-6 Addr 6) (#UPC-5 Addr 5) (#UPC-4 Addr 4) (#UPC-3 Addr 3) (#UPC-2 Addr 2) (#UPC-1 Addr 1)) ((#UNEXTINSTA-0 NextInstA 0) (#UNEXTINSTB-0 NextInstB 0) (#UNEXTINSTA-1 NextInstA 1) (#UNEXTINSTB-1 NextInstB 1) (#UNEXTINSTA-2 NextInstA 2) (#UNEXTINSTB-2 NextInstB 2) (#UNEXTINSTA-3 NextInstA 3) (#UNEXTINSTB-3 NextInstB 3) (#UNEXTINSTA-4 NextInstA 4) (#UNEXTINSTB-4 NextInstB 4) (#UNEXTINSTA-5 NextInstA 5) (#UNEXTINSTB-5 NextInstB 5) (#UNEXTINSTA-6 NextInstA 6) (#UNEXTINSTB-6 NextInstB 6) (#UNEXTINSTA-7 NextInstA 7) (#UNEXTINSTB-7 NextInstB 7) (#UNEXTINSTA-8 NextInstA 8) (#UNEXTINSTB-8 NextInstB 8) (#UCONDCODE-6 CondCode 6) (#UCWRITE~ CWrite 0 T) (#UCONDCODE-5 CondCode 5) (#UTOS' Tos' 0) (#UARG'-0 Arg' 0) (#UARG'-1 Arg' 1) (#UK-8 K 8) (#UK-7 K 7) (#UK-6 K 6) (#UK-5 K 5) (#UK-4 K 4) (#UK-3 K 3) (#UK-2 K 2) (#UK-1 K 1) (#UK-0 K 0) (#UNEWBOTCXT-1 NewBotCxt 1) (#UNEWBOTCXT-0 NewBotCxt 0) (#UNEWTOPCXT-1 NewTopCxt 1) (#UNEWTOPCXT-0 NewTopCxt 0) (#UNEWTOS-0 NewTos 0) (#UNEWTOS-2 NewTos 2) (#UNEWTOS-1 NewTos 1) (#UNEWARG2-1 NewArg2 1) (#UNEWARG2-0 NewArg2 0) (#UNEWARG-0 NewArg 0) (#UNEWARG-2 NewArg 2) (#UNEWARG-1 NewArg 1) (#UMUXRDSEL-0 MuxRdSel 0) (#UMUXRDSEL-2 MuxRdSel 2) (#UMUXRDSEL-1 MuxRdSel 1) (#UWCXT-0 WCxt 0) (#UWCXT-1 WCxt 1) (#UWCXT-2 WCxt 2) (#URCXT-2 RCxt 2) (#URCXT-1 RCxt 1) (#URCXT-0 RCxt 0) (#UCONDCODE-0 CondCode 0) (#UCONDCODE-1 CondCode 1) (#UWADDR-0 Waddr 0) (#UWADDR-1 Waddr 1) (#URADDR-1 Raddr 1) (#UWADDR-2 Waddr 2) (#URADDR-0 Raddr 0) (#URADDR-2 Raddr 2) (#UDSWAP Dswap 0) (#UCONDCODE-2 CondCode 2) (#UCONDCODE-4 CondCode 4) (#UCONDCODE-3 CondCode 3) (#UW2ADDR-2 W2addr 2) (#UW2ADDR-1 W2addr 1) (#UW2ADDR-0 W2addr 0) (#UEUOP-5 EUop 5) (#UEUOP-4 EUop 4) (#UMISC-0 Misc 0) (#UMISC-1 Misc 1) (#UMISC-2 Misc 2) (#UMISC-3 Misc 3) (#UMISC-4 Misc 4) (#UCYCLE-0 Cycle 0) (#UCYCLE-1 Cycle 1) (#UCYCLE-2 Cycle 2) (#URD2ADDR-0 RD2addr 0) (#URD2ADDR-1 RD2addr 1) (#URD2ADDR-2 RD2addr 2) (#UEUOP-2 EUop 2) (#URD1ADDR-1 RD1addr 1) (#UTAG-0 Tag 0) (#UTAG-1 Tag 1) (#UEUOP-3 EUop 3) (#UEUOP-1 EUop 1) (#URD1ADDR-0 RD1addr 0) (#UEUOP-0 EUop 0)))) (* * Cond Code Generation) (DEFINEQ (BuildCondCode [LAMBDA (fileName) (* agb: " 2-Jun-86 18:22") (PROG (file) (OR fileName (SETQ fileName (QUOTE {ERIS}<Tamarin>Pla>CondCode.spec))) (SETQ file (OPENFILE fileName (QUOTE OUTPUT))) (for cc in CondALst do [for n from 31 to 0 do (PRINTOUT file (FindCodeLetter (LOADBYTE (fetch (CondCode D1) of cc) n 1) (LOADBYTE (fetch (CondCode nD1) of cc) n 1) (LOADBYTE (fetch (CondCode D2) of cc) n 1) (LOADBYTE (fetch (CondCode nD2) of cc) n 1) (LOADBYTE (fetch (CondCode D1xorD2) of cc) n 1] (PRINTOUT file T)) (CLOSEF file]) (FindCodeLetter [LAMBDA (d1 nd1 d2 nd2 d1xord2) (* agb: " 2-Jun-86 18:31") (PROG (v) (SETQ v (LOGOR (LLSH d1 4) (LLSH nd1 3) (LLSH d2 2) (LLSH nd2 1) d1xord2)) (RETURN (SELECTQ v (0 (QUOTE A)) (1 (QUOTE B)) (2 (QUOTE C)) (4 (QUOTE D)) (8 (QUOTE E)) (10 (QUOTE F)) (12 (QUOTE G)) (16 (QUOTE H)) (18 (QUOTE I)) (20 (QUOTE J)) (HELP]) ) (PUTPROPS GENERATETAM COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (909 8985 (BuildMux 919 . 1167) (FindLineName 1169 . 1776) (MakeRegMuxSpec 1778 . 3218) (MapMuxNameToLine 3220 . 3565) (MuxChipList 3567 . 4419) (MakeMuxBlk 4421 . 7203) (MakeRegMux 7205 . 8983)) (10063 19636 (MakeDotPlaFile 10073 . 11487) (MakePlaTTFile 11489 . 13677) (MakeFoldPlaTTFile 13679 . 16202) (MakePlas 16204 . 17153) (MakeSlimFile 17155 . 18900) (SearchNameList 18902 . 19373) ( GetPlaField 19375 . 19634)) (25300 26812 (BuildCondCode 25310 . 26251) (FindCodeLetter 26253 . 26810)) ))) STOP