****************** Falcon Processor Cheat Sheet ****************** KHH 4/8/87
RSOURCE, DEST field format (Note - LSOURCE is the same except bit 6 is implied 0)
Bit 6   ->
0=REGS, 1= Functional SRC/DEST
Bit 5-4 ->
0=OPEN, 1=ACTIVE, 2=RETURN, 3=GLOBAL
Bit 3-0 ->
For OPEN/ACTIVE/RETURN = Register # in frame
For globals, global frame number and these 4 bits make an 8 bit global register num.
DEST RETURN field format
6 5 4
-----
0 0 0 - OPEN frame 
0 0 1 - ACTIVE frame 
0 1 0 - RETURN frame 
0 1 1 - GLOBAL frame 
1 0 X - new OPEN frame 
1 1 X - new TOPEN frame 
Bits 3:0 work the same as for regular src/dest
NEXTPC codes
0=IR(0:23)
1=DISPATCH (ALU OREG)
2=RETURN PC
3=PC + 1
Note - For opcodes X00 and X01, IR60 is the MACRO-LINK bit
CALL hdwr ops
0=NOP
1=OPEN
2=CALL
3=OPEN-CALL
4=RETURN
5=TOPEN
6=TCALL
7=TOPEN-TCALL
JCOND codes
0=UNCONDITIONAL
1=JINDR
2=EQ (Z)
3=NEQ (~Z)
4=LT (V XOR N)
5=GE (V XNOR N)
6=GT ((V XOR N) NOR Z)
7=LE ((V XOR N) OR Z)
BW codes
0=32 BIT
1= 8 BIT
2=16 BIT
3=24 BIT
BOX codes w/reg dest
0=LEFT BOXED  / OUTREG0
1=RIGHT BOXED / UNBOXED
2=UNBOXED     / UNBOXED
3=BOXED       / BOXED
Box codes for functional destinations -- IR54 = VMA BOXED, IR55 = MD BOXED

Group 1 Instructions Legal X16, NXT_PC, and CALL_HDWR options:
X16  NXT_PC  CHOP  FUNCTION
---  ------  ----  --------
 0     11    000   Normal
 0     11    001   OPEN
 0     11    101   TOPEN
 0     10    100   RETURN
 0     01    000   DISPATCH
 0     01    001   DISPATCH-OPEN
 0     01    101   DISPATCH-TOPEN
 1     01    000   DISPATCH-X16
 1     01    001   DISPATCH-OPEN-X16
 1     01    101   DISPATCH-TOPEN-X16

ALU Instruction format

6666 555555 55 44     44  33 3333     22    11     111          
3210 876543 10 87     10  76 4321     54    98     210    54   0
SSXOPNXTBOXDATACALLDESTINATIONGLOBALJCONDBWRIGHTLEFTALUOPXALUALU
TP1CODEPC TYPEHDWR FRAME  SOURCESOURCE29332XSHIFTMASK
AA6   CHECKOP NUMBER     X  
TR X00           X  
 E             X  

ALUI Instruction format (Illegal in NUBUS version)

6666 555555 55 44     44  33 3333     22    11                  
3210 876543 10 87     10  76 4321     54    98                 0
SSXOPNXTBOXDATACALLDESTINATIONGLOBALJCONDBWALUOPLEFTIMMEDIATE DATA
TP1CODEPC TYPEHDWR FRAME  29332SOURCE 
AA6   CHECKOP NUMBER     
TR X01           
 E             

LOADI_32 Instruction format

6666 555555 55 44     44  33 3333                               
3210 876543 10 87     10  76 4321                              0
SSXOPNXTBOXDATACALLDESTINATIONGLOBALJCONDXXXIMMEDIATE DATA
TP1CODEPC TYPEHDWR FRAME XXX 
AA6   CHECKOP NUMBER XXX 
TR 011       XXX 
 E         XXX 

FLOATING POINT ALU Instruction format

6666 555555 55 44     44  33 3333     22    1111                
3210 876543 10 87     10  76 4321     54    9876      98    32 0
SSXOPNXTBOXDATACALLDESTINATIONGLOBALJCONDXXXRIGHTLEFTFPUFloating PointFPUFPU
TP1CODEPC TYPEHDWR FRAME XXXSOURCESOURCECHKALU functionLOADUNLD
AA6   CHECKOP NUMBER XXX   WTL2265  
TR 110       XXX      
 E         XXX      

FLOATING POINT MULTIPLIER Instruction format

6666 555555 55 44     44  33 3333     22    1111                
3210 876543 10 87     10  76 4321     54    9876      98    32 0
SSXOPNXTBOXDATACALLDESTINATIONGLOBALJCONDXXXRIGHTLEFTFPUFloating PointFPUFPU
TP1CODEPC TYPEHDWR FRAME XXXSOURCESOURCECHKmultiplierLOADUNLD
AA6   CHECKOP NUMBER XXX   function  
TR 111       XXX   WTL2264  
 E         XXX      

Group 2 Instructions Legal CALL_HDWR options:
COND  CHOP  FUNCTION
----  ----  --------
 1    000   UNCONDITIONAL-BRANCH-NORMAL
 1    001   UNCONDITIONAL-BRANCH-OPEN
 1    101   UNCONDITIONAL-BRANCH-TOPEN
 0    000   CONDITIONAL-BRANCH-NORMAL
 0    001   CONDITIONAL-BRANCH-OPEN
 0    101   CONDITIONAL-BRANCH-TOPEN

CONDITIONAL BRANCH Instruction format

6666 555555 55 44     44  33 3333     22    11     11           
3210 876543 10 87     10  76 4321     54    98     21          0
SSCOPNXTBOXDATACALLDESTINATIONGLOBALJCONDBWRIGHTLEFTALUOPADDRESS
TPOCODEPC TYPEHDWR FRAME  SOURCESOURCE29332(low bits)
AAN   CHECKOP NUMBER      
TRDX0000           
 E              

Group 3 Instructions Legal CALL_HDWR options:
CHOP  FUNCTION
----  --------
010   CALLZ        (CALLZ's goto (address * 16) in low memory)
011   OPEN-CALLZ
110   TCALLZ
111   TOPEN-TCALLZ
 

CALLZ instruction format

6666 555555 55 44     44  33 3333     22    11     11           
3210 876543 10 87     10  76 4321     54    98     21      432 0
SSDOPNXTBOXDATACALLDESTINATIONGLOBALDESTBWRIGHTLEFTALUOPADDRESSXDEST
TPRCODEPC TYPEHDWR FRAMERET SOURCESOURCE29332 XRET
AAE   CHECKOP NUMBER(5:3)     X(2:0)
TRTX0000          X 
 E6            X 

Group 4 Instructions Legal CALL_HDWR options:
COND  CHOP  FUNCTION
----  ----  --------
 1    000   UNCONDITIONAL-JUMP-NORMAL
 1    001   UNCONDITIONAL-JUMP-OPEN
 1    101   UNCONDITIONAL-JUMP-TOPEN
 0    000   CONDITIONAL-JUMP-NORMAL
 0    001   CONDITIONAL-JUMP-OPEN
 0    101   CONDITIONAL-JUMP-TOPEN
 

JMP Instruction format

6666 555555 55 44     44  33 3333     222                       
3210 876543 10 87     10  76 4321     543                      0
SSCOPNXTBOXDATACALLDESTINATIONGLOBALJCONDBWRIGHTXADDRESS
TPOCODEPC TYPEHDWR FRAME  SOURCEX 
AAN   CHECKOP NUMBER  X 
TRD01000        X 
 E          X 

Group 5 Instructions Legal CALL_HDWR options:
CHOP  FUNCTION
----  --------
010   CALL
011   OPEN-CALL
110   TCALL
111   TOPEN-TCALL
 

CALL Instruction format

6666 555555 55 44     44  33   33     222                       
3210 876543 10 87     10  76   21     543                      0
SSDOPNXTBOXDATACALLDESTINATIONGLOBALDESTRIGHTDADDRESS
TPRCODEPC TYPEHDWR FRAMERETSOURCER 
AAE   CHECKOP NUMBER(5:1)E 
TRT01000       T 
 E6        0 

Group 6 Instructions Legal CALL_HDWR and X16 options:
CHOP X16  FUNCTION
---- --- --------
010   0  CALL-DISPATCH
011   0  OPEN-CALL-DISPATCH
110   0  TCALL-DISPATCH
111   0  TOPEN-TCALL-DISPATCH
010   1  CALL-DISPATCH-X16  (X16's get low 4 bits of address zeroed)
011   1  OPEN-CALL-DISPATCH-X16
110   1  TCALL-DISPATCH-X16
111   1  TOPEN-TCALL-DISPATCH-X16
 

CALL-DISPATCH Instruction format

6666 555555 55 44     44  33 3333     22    11     11           
3210 876543 10 87     10  76 4321     54    98     21     5432 0
SSDOPNXTBOXDATACALLDESTINATIONGLOBALDESTBWRIGHTLEFTALUOPALUX DEST
TPRCODEPC TYPEHDWR FRAMERET SOURCESOURCE29332SHIFTXXRET
AAE   CHECKOP NUMBER(5:3)     X1(2:0)
TRTX0001          X6 
 E6            X  
Falcon Functional Destination Address
6543210What
-----------
1111000VMA Start Early Read CAR No Transport
1111001VMA Start Early Read CAR AND Transport
1111010VMA Start Early Read CAR AND Transport NO EVCP
1111011VMA Start Early Read CAR AND Transport Write
1111100VMA Start Early Read CDR No Transport
1111101VMA Start Early Read CDR AND Transport
1111110VMA Start Early Read CDR AND Transport NO EVCP
1111111VMA Start Early Read CDR AND Transport Write
 
1110000VMA Start Read CAR No Transport
1110001VMA Start Read CAR AND Transport
1110010VMA Start Read CAR AND Transport NO EVCP
1110011VMA Start Read CAR AND Transport Write
1110100VMA Start Read CDR No Transport
1110101VMA Start Read CDR AND Transport
1110110VMA Start Read CDR AND Transport NO EVCP
1110111VMA Start Read CDR AND Transport Write
 
110100XVMA
110101XMD-W
 
1100000Memory Maps
1100001GC RAM Write pulse
1100010MEM Control Register
1100011Microsecord Clock
1100100Statistics Counter
1100101Transporter RAM Write Pulse
 
1001000Datatype RAM Write Pulse
1001001Processor Control Register
1001010Call Hardware: OPEN, ACTIVE and RETURN registers
1001011Call Stack (RETURN PC and RETURN DESTINATION)
1001100Call Hardware: Call stack pointer and heap pointer
 
1001111NOP
 
1000000RETURN DESTINATION, single value
1000001RETURN DESTINATION, multiple values
1000010RETURN DESTINATION, tail
Falcon Functional Destination Addresses
6543210WHAT
-----------
1XXXXXXFunctional Group
11XXXXXMemory Board Group
1X1XXXXMemory Board Group
100XXXXProcessor Board Group
 
110100XVMA
110101XMD-R
 
1100000Memory Maps
1100001GC RAM
1100010Memory Board Control Register
1100011Microsecond Clock
1100100Statistics Counter
1100101Trap Register
1100110Memory Board Status Register
 
1001000Processor Board Status Register
1001001Processor Board Control Register
1001010Call Hardware: OPEN, ACTIVE and RETURN registers
1001011Call Stack: (RETURN PC, and RETURN DESTINATION)
1001100Call Hardware: Call stack pointer and heap pointer
1001101TRAP PC - (PC Two clocks earlier)
1001110TRAP PC PLUS - (PC One clock earlier)
 
1000111READ CACHE A - HI DATA
1000110READ CACHE B - HI DATA
1000101READ CACHE A - LO DATA
1000100READ CACHE B - LO DATA
1000011READ TRAP Enable and Disable
Processor Status Register
read only (MFIO)
Bit(s)Function
3:0ECO Jumper Number
8:4FPU Status Output
12:9Return Destination Immediate
13Datatype Trap RAM Output
15:14Undefined
16Processor Jump Bit (active low)
17Processor D_Jump Bit (active low)
18Processor ALU_Boxed Bit
19Last Return was Multiple Value
31:20Undefined
Processor Control Register
read write (All bits zeroed by reset) (MFIO)
Bit(s)Function
0ICACHE_AENBL
 0 =Reset/Disable A cache set
 1 =Enable A cache set
1ICACHE_BENBL
 0 =Reset/Disable B cache set
 1 =Enable B cache set
2ICACHE_ZENBL
 0 =Reset/Disable Low-Core cache set
 1 =Enable Low-Core cache set
3Spare
4J_INDR
 - Indirect Jump bit selectable by Jump Condition
5Floating point status RAM write enable
 0 =Read
 1 =Write
6BOX MUX MODE
 0 =Normal
 1 =Register reload mode
7HALT
 0 =Run
 1 =Halt processor
8PCTL_DATA
 - A one-bit data source for some special functions
12:9PCTL_MISC
 - Four bit field used for random things
16:13Stack Group Number
 - Selects one of 16 call hardware heap/stack groups
17Call Stack Load Control
 0 =Normal
 1 =Call stack special load source
18Call Hardware Stack Overflow Trap Enable
 0 =Disabled
 1 =Enabled
23:20Undefined
31:24Unimplemented
Memory Status Register
read only (MFIO)
Bit(s)Function
3:0NUBUS Slot ID
7:4ECO Jumper Number
10:8NUBUS Bootstrap Mode
 0Normal
 1Short Reset
 2-7Software
11Undefined
12Last memory cycle type
 0WRITE
 1READ
14:13Last memory cycle type
 0Read CDR and transport write
 1Read CDR and transport no EVCP
 2Read CDR and transport
 3Read CDR no transport
15MD Unboxed
 0Boxed
 1Unboxed
16VMA Unboxed
 0Boxed
 1Unboxed
17MD Page Trap
 1MD read will cause fault trap
18MD Transport Trap
 1MD read will cause transporter trap
20:19Undefined
21Memory Parity Error
 0ERROR
 1No error
22Autoboot Jumper
 0External master
 1Go for it
2316MEG
 032 MB memory installed
 016 MB memory installed
31:24Undefined
Memory Control Register
read write (all bits zeroed by reset) (MFIO)
0Statistics Counter Mode
 0Edge trigger
 1Duration
3:1Statistics Counter Source
 0ICACHE Hit
 1Processor Memory Cycle
 2Instruction Status Bit
 3Undefined
 4PC in high core
 5Undefined
 6Undefined
 7Undefined
4Statistics Source Polarity
 0True
 1Invert
7:5LEDS - a zero in a bit lights the LED
8NUBUS TM0 bit for transfers
10:9NUBUS AD(1:0) bits for transfers
11ICACHE Error Clear
 0Disable/Reset ICACHE Error Traps
 1Enable
121024 microsecond interrupt
 0Disable/Reset request
 1Enable
1316384 microsecond interrupt
 0Disable/Reset request
 1Enable
14Write wrong parity to DRAM
 0Normal Parity
 1Wrong Parity
15Use L or C valid/WE bits in map
 0C bits
 1L bits
17:16Transporter RAM mode select
18Bootprom
 0Enabled
 1Disabled
23:20Undefined
24RESET TRAP
 0RESET TRAP bit on
 1Normal
25Spare
26SINGLE-STEP TRAP
 0DISABLED
 1ENABLED
26SYNCHRONOUS TRAP
 0DISABLED
 1ENABLED
26DATATYPE TRAP
 0DISABLED
 1ENABLED
26OVERFLOW TRAP
 0DISABLED
 1ENABLED
26ASYNCHRONOUS TRAP
 0DISABLED
 1ENABLED
31MASTER TRAP DISABLE
Note - this also sets/resets during trap exit/enter)
 0NO TRAPPING
 1TRAPS ENABLED
Transporter RAM address
111098765    0
VMAMDMSTAT(13:12)MCTL(17:16)MD(31:26)
unboxedunboxed   
GC Ram
addressed by MD(25:14)
Bit(s)Function
2:0GC: Quantum volatility
3GC: Quantum is in oldspace
4Transporter: Trappable pointer
5Transporter: Trap if oldspace
6Transporter: Trap if not oldspace
7Transporter: BOX error
TRAP register
read only (load on trap or write to memory control reg) (MFIO)
BitFunction
0Always zero
116384 microsecond timer
21024 microsecond timer
3NUBUS Interrupt 0
4NUBUS Interrupt 1
5NUBUS Interrupt 2
6NUBUS Interrupt 3
7NUBUS Interrupt 4
8NUBUS Interrupt 5
9NUBUS Interrupt 6
10NUBUS Interrupt 7
11Spare
1229332 Overflow
13Datatype
14Instruction Register bit 62
15Call stack overflow
16Floating point
17Processor memory write - GC RAM
18Processor memory write - Map Fault
19Processor memory write - NUBUS Timeout
20Processor memory write - NUBUS Error
21Processor memory read - Transport
22Processor memory read - Map Fault
23Processor memory read - NUBUS Timeout
24Processor memory read - NUBUS Error
25Processor memory read - Parity Error
26ICACHE - Map Fault
27ICACHE - NUBUS Timeout
28ICACHE - NUBUS Error
29ICACHE - Parity Error
30Single-step trace
31RESET
Memory Map
read/write (MFIO)
map RAM address is VMA (25:10)
Bit(s)Function
0Valid (L)
1Write Enable (L)
2Valid (C)
3Write Enable (C)
6:4Page Volatility
7Page in on-board memory
11:8Software definable
31:12Physical address
Call Hardware (OPEN/ACTIVE/RETURN)
r/w (MFIO)
Bit(s)Function
7:0RETURN register
15:8ACTIVE register
23:16OPEN register
31:24unimplemented
Call Hardware (Return PC, Return Destination)
read-only (MFIO)
Bit(s)Function
23:0Return PC
30:24Return destination
31spare
Call Hardware Pointers
read/write (MFIO)
Bit(s)Function
7:0Call stack pointer (CSP)
15:8Heap pointer (HP)
31:16unimplemented