Dragon Instruction Set Summary - Functional Name form bytes Description Addition ADDB LB 2 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. ADDDB LDB 3 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. ADD I 1 [S-1]_[S-1]+[S]+Carry; Carry _ 0; 2S _ 2S - 1; trap on overflow. RADD RRR 3 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. QADD QR 2 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. RUADD RRR 3 Rc _ Ra + Rb + Carry; Carry _ CarryOut. RVADD RRR 3 Rc _ Ra + Rb. Subtraction SUBB LB 2 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. SUBDB LH 3 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. SUB I 1 [S-1 ] _ [S-1 ] - [S] - Carry; Carry _ 0;2S_2S-1;trap on overflow. RSUB RRR 3 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. QSUB QR 2 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. RUSUB RRR 3 Rc _ Ra - Rb - Carry; Carry _ NOT[CarryOut]. RVSUB RRR 3 Rc _ Ra - Rb. Logical Operations AND I 1 [S-1] _ [S-1] and [S]; 2S _ 2S - 1. RAND RRR 3 Rc _ Ra AND Rb QAND QR 2 Rc _ Ra AND Rb. OR I 1 [S-1] _ [S-1] OR [S]; 2S _ 2S - 1. ROR RRR 3 Rc _ Ra OR Rb. QOR QR 2 Rc _ Ra OR Rb. RXOR RRR 3 Rc _ Ra XOR Rb. Loads LIB LB 2 [S+1] _ zExt[literal]; 2S _ 2S + 1. LIDB LH 3 [S+1] _ zExt[literal]; 2S _ 2S + 1. LIQB LW 5 [S+1] _ zExt[literal]; 2S _ 2S + 1. LRn LR 1 [S+1] _ Locals[n]; 2S _ 2S + 1; n IN[0..16). LCm I 1 [S+1] _ Constants[m]; m IN[0..8); 2S _ 2S + 1. LRIn XO 2 [S+1]_ Mem[Locals[n]+zExt[offset]]; 2S_2S+1;n IN[0..16). RB LB 2 [S] _ Mem[[S] + zExt[literal]]. QRX QR 2 Rc _ Mem[Ra + Rb]. RSB LB 2 [S+1] _ Mem[[S] + zExt[literal]]; 2S _ 2S + 1. RRX RRR 3 Rc _ Mem[Ra + Rb]. RX I 1 [S-1] _ Mem[[S-1] + [S]]; 2S _ 2S - 1. LGF LH 3 [S+1] _ Mem[Aux[0] + zExt[literal]]; 2S _ 2S + 1. RRI XRO 3 Locals[regA] _ Memory[Locals[regB] + zExt[offset]]. RAI XRO 3 Locals[regA] _ Mem[Aux[regB] + zExt[offset]]. LIP LB 2 [S+1] _ ProcReg[literal]; 2S _ 2S + 1. Stores EXDIS I 1 [S-1] _ [S]; 2S _ 2S - 1. DUP I 1 [S+1] _ [S]; 2S _ 2S + 1. SRn LR 1 Locals[n] _ [S]; 2S _ 2S - 1; n IN[0..16). WB LB 2 Mem[[S] + zExt[literal]] _ [S-1]; 2S _ 2S - 2. WSB LB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 2. PSB LB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 1. SRIn XO 2 Mem[Locals[n] + zExt[offset]] _ [S]; 2S _ 2S - 1; n IN[0..16). SIP LB 2 ProcReg[literal] _ [S]; 2S _ 2S - 1. WRI XRO 3 Mem[Locals[regB]+ zExt[n]] _ Locals[regA]. WAI XRO 3 Mem[Aux[regB] + zExt[n]] _ Locals[regA]. CST LB 2 [S+1]_CStore[ptr: [S-2]+zExt[literal], new: [S-1], old: [S]]; 2S _ 2S + 1. Input/Output Operations IOL LH 3 Details to be determined. ION LH 3 Details to be determined. IOS LH 3 Details to be determined. Field Unit Operations FSDB LH 3 FieldDescriptor _ [S] + literal; 2S _ 2S - 1. RFU RRR 3 Rc _ FieldUnit.Operate[Ra, Rb, FieldDescriptor] SHL LH 3 [S] _ FieldUnit.Operate[[S], 0, literal]. SHR LH 3 [S] _ FieldUnit.Operate[[S], [S], literal]. SHD LH 3 [S-1] _ FieldUnit.Operate[[S-1], [S], literal]; 2S _ 2S - 1. The IFU Indices - S and L DIS I 1 S _ S - 1. AL LB 2 L _ L + literal. ALS LB 2 L _ S + literal. AS LB 2 S _ S + literal. ASL LB 2 S _ L + literal. No Operation (NoOps) J1 I 1 PC _ PC + 1. J2 LB 2 PC _ PC + 2. J3 LH 3 PC _ PC + 3. J5 LW 5 PC _ PC + 5. Unconditional Jumps JB LB 2 PC _ PC + sExt[literal]. JDB LH 3 PC _ PC + sExt[literal]. JQB LW 5 PC _ literal. SJ I 1 PC _ PC + [S]; 2S _ 2S - 1. Conditional Jumps RJEBj RD 3 If Rs = Rb then PC _ PC + sExt[displacement]. JEBBj LBD 3 If zExt[literal]= [S] then PC _ PC + sExt[displ]; 2S _ 2S - 1. JNEBBj LBD 3 If zExt[literal] # [S] then PC _ PC + sExt[displ]; 2S _ 2S - 1. RJNEBj RD 3 If Rs # Rb then PC _ PC +sExt [displacement]. RJGBj RD 3 If Rs > Rb then PC _ PC + sExt[displacement]. RJGEBj RD 3 If Rs >= Rb then PC _ PC + sExt[displacement]. RJLBj RD 3 If Rs < Rb then PC _ PC + sExt[displacement]. RJLEBj RD 3 If Rs <= Rb then PC _ PC +sExt[displacement]. Bounds Checks RBC RRR 3 If (Ra < Rb) then Rc _ Ra else trap. BC I 1 If NOT([S-1] < [S]) then trap; 2S _ 2S - 1. QBC QR 2 If (Ra < Rb) then Rc _ Ra else trap. Procedure Calls and Returns LFC LH 3 SaveState[PC,L]; PC _ PC + sExt[literal]. DFC LW 5 SaveState[PC,L]; PC _ literal. SFC I 1 SaveState[PC,L]; PC _ [S]; 2S _ 2S - 1. SFCI I 1 SaveState[PC,L]; PC _ Mem[S]. KFC I 1 SaveState[PC,L];[S+1]_Status;2S_2S+1;mode _ kernal;disable traps;PC _ InstTrap[KFC]. RETN I 1 ReturnState[PC, L]. RET LB 2 S _ L + literal; ReturnState[PC, L]. RETK LB 2 Status _ Stack[S]; ReturnState[PC, L + sExt[literal]]. Lisp Instructions LADD I 1 [S-1] _ [S] + [S-1]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. QLADD QR 2 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. RLADD RRR 3 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. LSUB I 1 [S-1] _ [S-1] - [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. QLSUB QR 2 Rc _ Ra - Rb; Carry _ 0; trap on Lisp NaN. RLSUB RRR 3 Rc _ Ra - Rb. Carry _ 0; trap on Lisp NaN. Dragon Instruction Set Summary - Alphabetical by Mnemonic Name form bytes Description ADD I 1 [S-1]_[S-1]+[S]+Carry; Carry _ 0; 2S _ 2S - 1; trap on overflow. ADDB LB 2 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. ADDDB LDB 3 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. AL LB 2 L _ L + literal. ALS LB 2 L _ S + literal. AND I 1 [S-1] _ [S-1] and [S]; 2S _ 2S - 1. AS LB 2 S _ S + literal. ASL LB 2 S _ L + literal. BC I 1 If NOT([S-1] < [S]) then trap; 2S _ 2S - 1. CST LB 2 [S+1]_CStore[ptr: [S-2]+zExt[literal], new: [S-1], old: [S]]; 2S _ 2S + 1. DFC LW 5 SaveState[PC,L]; PC _ literal. DIS I 1 S _ S - 1. DUP I 1 [S+1] _ [S]; 2S _ 2S + 1. EXDIS I 1 [S-1] _ [S]; 2S _ 2S - 1. FSDB LH 3 FieldDescriptor _ [S] + literal; 2S _ 2S - 1. IOL LH 3 Details to be determined. ION LH 3 Details to be determined. IOS LH 3 Details to be determined. J1 I 1 PC _ PC + 1. J2 LB 2 PC _ PC + 2. J3 LH 3 PC _ PC + 3. J5 LW 5 PC _ PC + 5. JB LB 2 PC _ PC + sExt[literal]. JDB LH 3 PC _ PC + sExt[literal]. JEBBj LBD 3 zExt[literal] = [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. JNEBBj LBD 3 zExt[literal] # [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. JQB LW 5 PC _ literal. KFC I 1 SaveState[PC,L];[S+1]_Status;2S_2S+1;mode _ kernal;PC _ INstTrap[KFC]. LADD I 1 [S-1] _ [S-1] + [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. LCm I 1 [S+1] _ Constants[m]; m IN[0..8); 2S _ 2S + 1. LFC LH 3 SaveState[PC,L]; PC _ PC + sExt[literal]. LGF LH 3 [S+1] _ Mem[Aux[0] + zExt[literal]]; 2S _ 2S + 1. LIB LB 2 [S+1] _ zExt[literal]; 2S _ 2S + 1. LIDB LH 3 [S+1] _ zExt[literal]; 2S _ 2S + 1. LIP LB 2 [S+1] _ ProcReg[literal]; 2S _ 2S + 1. LIQB LW 5 [S+1] _ zExt[literal]; 2S _ 2S + 1. LRIn XO 2 [S+1]_ Mem[Locals[n]+zExt[offset]]; 2S_2S+1; n IN[0..16). LRn LR 1 [S+1] _ Locals[n]; 2S _ 2S + 1; n IN[0..16). LSUB I 1 [S-1] _ [S-1] - [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. OR I 1 [S-1] _ [S-1] OR [S]; 2S _ 2S - 1. PSB LB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 1. QADD QR 2 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. QAND QR 2 Rc _ Ra AND Rb. QBC QR 2 If (Ra < Rb) then Rc _ Ra else trap. QLADD QR 2 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. QLSUB QR 2 Rc _ Ra - Rb; Carry _ 0; trap on Lisp NaN. QOR QR 2 Rc _ Ra OR Rb. QRX QR 2 Rc _ Mem[Ra + Rb]. QSUB QR 2 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. RADD RRR 3 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. RAI XRO 3 Locals[regA] _ Mem[Aux[regB] + zExt[offset]]. RAND RRR 3 Rc _ Ra AND Rb. RB LB 2 [S] _ Mem[[S] + zExt[literal]]. RBC RRR 3 If (Ra < Rb ) then Rc _ Ra else trap. RET LB 2 S _ L + literal; ReturnState[PC, L]. RETK LB 2 Status _ Stack[S]; ReturnState[PC, L + sExt[literal]]. RETN I 1 ReturnState[PC, L]> RFU RRR 3 Rc _ FieldUnit.Operate[Ra, Rb, Field]. RJEBj RD 3 If Rs = Rb then PC _ PC + sExt[displacement]. RJGBj RD 3 If Rs > Rb then PC _ PC + sExt[displacement]. RJGEBj RD 3 If Rs >= Rb then PC _ PC + sExt[displacement]. RJLBj RD 3 If Rs < Rb then PC _ PC + sExt[displacement]. RJLEBj RD 3 If Rs <= Rb then PC _ PC +sExt [displacement]. RJNEBj RD 3 If Rs # Rb then PC _ PC +sExt [displacement]. RLADD RRR 3 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. RLSUB RRR 3 Rc _ Ra - Rb. Carry _ 0; trap on Lisp NaN. ROR RRR 3 Rc _ Ra OR Rb. RRI XRO 3 Locals[regA] _ Memory[Locals[regB] + zExt[offset]]. RRX RRR 3 Rc _ Mem[Ra + Rb]. RSB LB 2 [S+1] _ Mem[[S] + zExt[literal]]; 2S _ 2S + 1. RSUB RRR 3 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. RUADD RRR 3 Rc _ Ra + Rb + Carry; Carry _ CarryOut. RUSUB RRR 3 Rc _ Ra - Rb - Carry; Carry _ NOT[CarryOut]. RVADD RRR 3 Rc _ Ra + Rb. RVSUB RRR 3 Rc _ Ra - Rb. RX I 1 [S-1] _ Mem[[S-1] + [S]]; 2S _ 2S - 1. RXOR RRR 3 Rc _ Ra XOR Rb. SFC I 1 SaveState[PC,L]; PC _ [S]; 2S _ 2S - 1. SFCI I 1 SaveState[PC,L]; PC _ Mem[S]. SHD LH 3 [S-1] _ FieldUnit.Operate[[S-1], [S], literal]; 2S _ 2S - 1. SHL LH 3 [S] _ FieldUnit.Operate[[S], 0, literal]. SHR LH 3 [S] _ FieldUnit.Operate[[S], [S], literal]. SIP LB 2 ProcReg[literal] _ [S]; 2S _ 2S - 1. SJ I 1 PC _ PC + [S]; 2S _ 2S - 1. SRIn XO 2 Mem[Locals[n] + zExt[offset]] _ [S];2S _ 2S - 1; n IN[0..16). SRn LR 1 Locals[n] _ [S]; 2S _ 2S - 1; n IN[0..16). SUB I 1 [S-1 ] _ [S-1 ] - [S] - Carry; Carry _ 0;2S_2S-1;trap on overflow. SUBB LB 2 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. SUBDB LH 3 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. WAI XRO 3 Mem[Aux[regB] + zExt[n]] _ Locals[regA]. WB LB 2 Mem[[S] + zExt[literal]] _ [S-1]; 2S _ 2S - 2. WRI XRO 3 Mem[Locals[regB]+ zExt[n]] _ Locals[regA]. WSB LB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 2. Dragon Instruction Set Summary - Alphabetical by Instruction Name Name Description Add [S-1]_[S-1]+[S]+Carry; Carry _ 0; 2S _ 2S - 1; trap on overflow. Add Byte [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. Add Double Byte [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. Add to L L _ L + literal. Add to L from Stack L _ S + literal. Add to Stack S _ S + literal Add to Stack from L S _ L + literal And [S-1] _ [S] and [S-1]; 2S _ 2S - 1. Bounds Check If Not([S-1] < [S]) then trap; 2S _ 2S - 1. Conditional Store [S+1]_CStore[ptr: [S-2]+zExt[literal], new: [S-1], old: [S]]; 2S _ 2S + 1. Direct Function Call SaveState[PC,L]; PC _ literal. Discard S _ S - 1. Duplicate [S+1] _ [S]; 2S _ 2S + 1. EXchange DIScard [S-1] _ [S]; 2S _ 2S - 1. IOL Details to be determined. ION Details to be determined. IOS Details to be determined. Jump Equal Byte Byte zExt[literal] = [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. Jump Five (5) PC _ PC + 5. Jump Not Equal Byte Byte. zExt[literal] # [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. Jump One (1) PC _ PC + 1. Jump Three (3) PC _ PC + 3. Jump Two (2) PC _ PC + 2. Jump using Double Byte offset PC _ PC + sExt[literal]. Jump to Quad Byte address PC _ literal. Kernel Function Call SaveState[PC,L];[S+1]_Status;2S_2S+1; mode _ kernal; PC _ INstTrap[KFC]. Lisp ADD [S-1] _ [S-1] + [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. Lisp SUBtract [S-1] _ [S-1] - [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. Load Constant m [S+1] _ Constants[m];m IN[0..8); 2S _ 2S + 1. Local Function Call SaveState[PC,L]; PC _ PC + sExt[literal]. Load Global Frame [S+1] _ Mem[Aux[0] + zExt[literal]];2S_2S+1. Load Immediate Byte [S+1] _ zExt[literal]; 2S _ 2S + 1. Load Immediate Double Byte [S+1] _ zExt[literal]; 2S _ 2S + 1. Load Immediate Quad Byte [S+1] _ zExt[literal]; 2S _ 2S + 1. Load Register Indexed n [S+1]_ Mem[Locals[n]+zExt[offset]]; 2S_2S+1; n IN[0..16). Load Register n [S+1] _ Locals[n]; 2S _ 2S + 1; n IN[0..16). OR [S-1] _ [S-1] or [S]; 2S _ 2S - 1. Put Swapped using Byte offset Mem[[S-1] + zExt[literal]] _ [S];2S _ 2S - 1. Quick Add Rc _ Ra + Rb + Carry; Carry _ 0;trap on overflow. Quick AND Rc _ Ra and Rb. Quick Bounds Check If (Ra < Rb) then Rc _ Ra else trap. Quick Lisp Add Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. Quick Lisp SUBtract Rc _ Ra - Rb; Carry _ 0; trap on Lisp NaN. Quick OR Rc _ Ra OR Rb. Quick Read indeXed Rc _ Mem[Ra + Rb];trap on overflow. Quick Subtract Rc _ Ra - Rb - Carry; Carry _ 0. Read Auxiliary register Indexed Locals[regA] _ Mem[Aux[regB] + zExt[offset]]. Read indeXed [S-1] _ Mem[[S-1] + [S]]; 2S _ 2S - 1. Read Register Indexed Locals[regA]_Memory[Locals[regB]+zExt[offset]]. Read Save using Byte offset [S+1] _ Mem[[S] + zExt[literal]];2S_2S+1. Register Subtract Rc _ Ra - Rb - Carry;Carry_0;trap on overflow. Read using byte offset [S] _ Mem[[S] + zExt[literal]]. Register Add Rc _ Ra + Rb + Carry; Carry _ 0;trap on overflow. Register AND Rc _ Ra AND Rb. Register Bounds Check If (Ra < Rb ) then Rc _ Ra else trap. Register Field Unit Rc _ FieldUnit.Operate[Ra, Rb, Field]. Register Jump Equal Byte If Rs = Rb then PC _ PC + sExt[displacement]. Register Jump Greater Byte If Rs > Rb then PC _ PC + sExt[displacement]. Register Jump Greater Equal Byte If Rs >= Rb then PC _ PC + sExt[displacement]. Register Jump Less Byte If Rs < Rb then PC _ PC + sExt[displacement]. Register Jump Less Equal Byte If Rs <= Rb then PC _ PC +sExt [displacement]. Register Jump Not Equal Byte If Rs # Rb then PC _ PC +sExt [displacement]. Register Lisp ADD Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. Register Lisp SUBtract Rc _ Ra - Rb. Carry _ 0; trap on Lisp NaN. Register OR Rc _ Ra OR Rb. Register Read indeXed Rc _ Mem[Ra + Rb]. Register Unsigned Add Rc _ Ra + Rb + Carry; Carry _ CarryOut. Register Unsigned Subtract Rc _ Ra - Rb - Carry; Carry _ NOT[CarryOut]. Register Vanilla Add Rc _ Ra + Rb. Register Vanilla Subtract Rc _ Ra - Rb. Register XOR Rc _ Ra XOR Rb. RETurn S _ L + literal; ReturnState[PC, L]. RETurn from Kernel Status_Stack[S];ReturnState[PC,L+sExt[literal]]. RETurn No adjustment to S ReturnState[PC, L]. Shift Double [S-1] _ FieldUnit.Operate[[S-1], [S], literal]; 2S _ 2S - 1. Shift Left [S] _ FieldUnit.Operate[[S], 0, literal]. Shift Right [S] _ FieldUnit.Operate[[S], [S], literal]. Stack Function Call SaveState[PC,L]; PC _ [S]; 2S _ 2S - 1. Stack Function Call Indirect SaveState[PC,L]; PC _ Mem[[S]]. Stack Jump PC _ PC + [S]; 2S _ 2S - 1. Store to Internal Processor register ProcReg[literal] _ [S]; 2S _ 2S - 1. Store Register Indexed n Mem[Locals[n] + zExt[offset]] _ [S]; 2S _ 2S - 1;n IN[0..16). Store Register n Locals[n] _ [S]; 2S _ 2S - 1; n IN[0..16). Substract [S-1 ] _ [S-1 ] - [S] - Carry;Carry _ 0; 2S_2S-1;trap on overflow. Subtract Byte [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. Subtract Double Byte [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. Write Auxilliary register Indexed Mem[Aux[regB] + zExt[n]] _ Locals[regA]. Write Register Indexed Mem[Locals[regB]+ zExt[n]] _ Locals[regA]. Write Swapped using Byte offset Mem[[S-1] + zExt[literal]] _ [S];2S _ 2S - 2. Write using Byte offset Mem[[S] + zExt[literal]] _ [S-1];2S _ 2S - 2. Dragon Instruction Set Summary - by Opcode Hex Name bytes Description 10-17 LCm 1 [S+1] _ Constants[m]; m IN[0..8); 2S _ 2S + 1. 31 DFC 5 SaveState[PC,L]; PC _ literal. 32 LIQB 5 [S+1] _ zExt[literal]; 2S _ 2S + 1. 36 J5 5 PC _ PC + 5. 37 JQB 5 PC _ literal. 40 OR 1 [S-1] _ [S-1] OR [S]; 2S _ 2S - 1. 41 AND 1 [S-1] _ [S-1] and [S]; 2S _ 2S - 1. 42 RX 1 [S-1] _ Mem[[S-1] + [S]]; 2S _ 2S - 1. 43 BC 1 If NOT([S-1] < [S]) then trap; 2S _ 2S - 1. 44 ADD 1 [S-1]_[S-1]+[S]+Carry; Carry _ 0; 2S _ 2S - 1; trap on overflow. 45 SUB 1 [S-1 ] _ [S-1 ] - [S] - Carry; Carry _ 0;2S_2S-1;trap on overflow. 46 LADD 1 [S-1] _ [S-1] + [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. 47 LSUB 1 [S-1] _ [S-1] - [S]; Carry _ 0; 2S _ 2S - 1; trap on Lisp NaN. 48 DUP 1 [S+1] _ [S]; 2S _ 2S + 1. 49 DIS 1 S _ S - 1. 4B EXDIS 1 [S-1] _ [S]; 2S _ 2S - 1. 4C SFC 1 SaveState[PC,L]; PC _ [S]; 2S _ 2S - 1. 4D SFCI 1 SaveState[PC,L]; PC _ Mem[S]. 4E RETN 1 ReturnState[PC, L]> 54 KFC 1 SaveState[PC,L];[S+1]_Status;2S_2S+1;mode _ kernal;PC _ INstTrap[KFC]. 56 J1 1 PC _ PC + 1. 57 SJ 1 PC _ PC + [S]; 2S _ 2S + 1. 60-6F LRn 1 [S+1] _ Locals[n]; 2S _ 2S + 1; n IN[0..16). 70-7F SRn 1 Locals[n] _ [S]; 2S _ 2S - 1; n IN[0..16). 80 QOR 2 Rc _ Ra OR Rb. 81 QAND 2 Rc _ Ra AND Rb. 82 QRX 2 Rc _ Mem[Ra + Rb]. 83 QBC 2 If (Ra < Rb ) then Rc _ Ra else trap. 84 QADD 2 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. 85 QSUB 2 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. 86 QLADD 2 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. 87 QLSUB 2 Rc _ Ra - Rb; Carry _ 0; trap on Lisp NaN. 88 ALS 2 L _ S + literal. 89 AL 2 L _ L + literal. 8A ASL 2 S _ L + literal. 8B AS 2 S _ S + literal. 8C CST 2 [S+1]_CStore[ptr: [S-2]+zExt[literal], new: [S-1], old: [S]]; 2S _ 2S + 1. 8E RET 2 S _ L + literal; ReturnState[PC, L]. 8F RETK 2 Status _ Stack[S]; ReturnState[PC, L + sExt[literal]]. 90 LIP 2 [S+1] _ ProcReg[literal]; 2S _ 2S + 1. 91 SIP 2 ProcReg[literal] _ [S]; 2S _ 2S - 1. 92 LIB 2 [S+1] _ zExt[literal]; 2S _ 2S + 1. 94 ADDB 2 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. 95 SUBB 2 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. 96 J2 2 PC _ PC + 2. 97 JB 2 PC _ PC + sExt[literal]. 98 RB 2 [S] _ Mem[[S] + zExt[literal]]. 99 WB 2 Mem[[S] + zExt[literal]] _ [S-1]; 2S _ 2S - 2. 9A RSB 2 [S+1] _ Mem[[S] + zExt[literal]]; 2S _ 2S + 1. 9B WSB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 2. 9F PSB 2 Mem[[S-1] + zExt[literal]] _ [S]; 2S _ 2S - 1. A0-AF LRIn 2 [S+1]_ Mem[Locals[n]+zExt[offset]]; 2S_2S+1; n IN[0..16). B0-BF SRIn 2 Mem[Locals[n] + zExt[offset]] _ [S];2S _ 2S - 1; n IN[0..16). C0 ROR 3 Rc _ Ra OR Rb. C1 RAND 3 Rc _ Ra AND Rb. C2 RRX 3 Rc _ Mem[Ra + Rb]. C3 RBC 3 If (Ra < Rb ) then Rc _ Ra else trap. C4 RADD 3 Rc _ Ra + Rb + Carry; Carry _ 0; trap on overflow. C5 RSUB 3 Rc _ Ra - Rb - Carry; Carry _ 0; trap on overflow. C6 RLADD 3 Rc _ Ra + Rb; Carry _ 0; trap on Lisp NaN. C7 RLSUB 3 Rc _ Ra - Rb. Carry _ 0; trap on Lisp NaN. C8 RXOR 3 Rc _ Ra XOR Rb. CA RFU 3 Rc _ FieldUnit.Operate[Ra, Rb, Field]. CC RVADD 3 Rc _ Ra + Rb. CD RVSUB 3 Rc _ Ra - Rb. CE RUADD 3 Rc _ Ra + Rb + Carry; Carry _ CarryOut. CF RUSUB 3 Rc _ Ra - Rb - Carry; Carry _ NOT[CarryOut]. D0 LGF 3 [S+1] _ Mem[Aux[0] + zExt[literal]]; 2S _ 2S + 1. D1 LFC 3 SaveState[PC,L]; PC _ PC + sExt[literal]. D2 LIDB 3 [S+1] _ zExt[literal]; 2S _ 2S + 1. D4 ADDDB 3 [S] _ [S] + zExt[literal] + Carry; Carry _ 0; trap on overflow. D5 SUBDB 3 [S] _ [S] - zExt[literal]- Carry; Carry _ 0; trap on overflow. D6 J3 3 PC _ PC + 3. D7 JDB 3 PC _ PC + sExt[literal]. D8 RAI 3 Locals[regA] _ Mem[Aux[regB] + zExt[offset]]. D9 WAI 3 Mem[Aux[regB] + zExt[n]] _ Locals[regA]. DA RRI 3 Locals[regA] _ Memory[Locals[regB] + zExt[offset]]. DB WRI 3 Mem[Locals[regB]+ zExt[n]] _ Locals[regA]. DC IOS 3 Details to be determined. DD IOL 3 Details to be determined. DE ION 3 Details to be determined. E1 RJEB 3 If Rs = Rb then PC _ PC + sExt[displacement]. E2 RJLB 3 If Rs < Rb then PC _ PC + sExt[displacement]. E3 RJLEB 3 If Rs <= Rb then PC _ PC +sExt [displacement]. E5 RJNEB 3 If Rs # Rb then PC _ PC +sExt [displacement]. E6 RJGEB 3 If Rs >= Rb then PC _ PC + sExt[displacement]. E7 RJGB 3 If Rs > Rb then PC _ PC + sExt[displacement]. E9 RJNEBj 3 If Rs # Rb then PC _ PC +sExt [displacement]. EA RJGEBj 3 If Rs >= Rb then PC _ PC + sExt[displacement]. EB RJGBj 3 If Rs > Rb then PC _ PC + sExt[displacement]. ED RJEBj 3 If Rs = Rb then PC _ PC + sExt[displacement]. EE RJLBj 3 If Rs < Rb then PC _ PC + sExt[displacement]. EF RJLEBj 3 If Rs <= Rb then PC _ PC +sExt [displacement]. F0 JEBB 3 zExt[literal] = [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. F1 JNEBB 3 zExt[literal] # [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. F2 JEBBj 3 zExt[literal] = [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. F3 JNEBBj 3 zExt[literal] # [S] => PC _ PC + sExt[displ]; 2S _ 2S - 1. F8 SHL 3 [S] _ FieldUnit.Operate[[S], 0, literal]. F9 SHR 3 [S] _ FieldUnit.Operate[[S], [S], literal]. FA SHD 3 [S-1] _ FieldUnit.Operate[[S-1], [S], literal]; 2S _ 2S - 1. FB FSDB 3 FieldDescriptor _ [S] + literal; 2S _ 2S - 1. Dragon Instruction Map This instruction map shows the current placement of instruction codes in the opcode space. It has been arranged to minimize the decoding difficulty for the IFU. Octal Form Len --0 --1 --2 --3 --4 --5 --6 --7 00- I 1 xop xop xop xop xop xop xop xop 01- I 1 xop xop xop xop xop xop xop xop 02- I 1 LC0 LC1 LC2 LC3 LC4 LC5 LC6 LC7 03- I 1 xop xop xop xop xop xop xop xop 04- LW 5 xop xop xop xop xop xop xop xop 05- LW 5 xop xop xop xop xop xop xop xop 06- LW 5 xop DFC LIQB xop xop xop J5 JQB 07- LW 5 xop xop xop xop xop xop xop xop 10- I 1 OR AND RX BC ADD SUB LADD LSUB 11- I 1 DUP DIS xop EXDIS SFC SFCI RETN xop 12- I 1 xop xop xop xop KFC xop J1 SJ 13- I 1 xop xop xop xop xop xop xop xop 14- LR 1 LR0 LR1 LR2 LR3 LR4 LR5 LR6 LR7 15- LR 1 LR8 LR9 LR10 LR11 LR12 LR13 LR14 LR15 16- LR 1 SR0 SR1 SR2 SR3 SR4 SR5 SR6 SR7 17- LR 1 SR8 SR9 SR10 SR11 SR12 SR13 SR14 SR15 20- QR 2 QOR QAND QRX QBC QADD QSUB QLADD QLSUB 21- LB 2 ALS AL ASL AS CST xop RET RETK 22- LB 2 LIP SIP LIB xop ADDB SUBB J2 JB 23- LB 2 RB WB RSB WSB xop xop xop PSB 24- XO 2 LRI0 LRI1 LRI2 LRI3 LRI4 LRI5 LRI6 LRI7 25- XO 2 LRI8 LRI9 LRI10 LRI11 LRI12 LRI13 LRI14 LRI15 26- XO 2 SRI0 SRI1 SRI2 SRI3 SRI4 SRI5 SRI6 SRI7 27- XO 2 SRI8 SRI9 SRI10 SRI11 SRI12 SRI13 SRI14 SRI15 30- RRR 3 ROR RAND RRX RBC RADD RSUB RLADD RLSUB 31- RRR 3 RXOR *** RFU *** RVADD RVSUB RUADD RUSUB 32- LH 3 LGF LFC LIDB xop ADDDB SUBDB J3 JDB 33- XRO 3 RAI WAI RRI WRI IOS IOL ION --- 33- LH 3 --- --- --- --- --- --- --- xop 34- RD 3 *** RJEB RJLB RJLEB *** RJNEB RJGEB RJGB 35- RD 3 *** RJNEBJ RJGEBJ RJGBJ *** RJEBJ RJLBJ RJLEBJ 36- LBD 3 JEBB JNEBB JEBBJ JNEBBJ xop xop xop xop 37- LH 3 SHL SHR SHD FSDB xop xop xop xop *** => Undefined behavior --- => Mixed format line xop => Takes Xop trap Dragon Instruction Notes I - Implicit LB - Literal Byte LH - Literal Halfword LW - Literal Word LBD - Literal Byte Displacement RRR - Registers to Register QR - Quick Register RD - Register Displacement LR - Locals Register XO - Index Register Offset XRO - Index Register Register Offset Locals[n] one of the 16 local registers AuxRegs[n] one of the 16 auxilliary registers Constants[m] one of the 12 constant registers [S], [S-1] the top of stack, or just below it [S]-, [S-1]- stack operand with S decrement (Ra & Rb only) [S+1]+ push onto the stack (for Rc only) Locals and AuxRegs cannot be used in the same instruction. S is incremented by 2S after the instruction completes. For a short register specification (Rs), the operand may be [S], [S] where 2S _ 2S - 1, Constants[0] or Constants[1]. ~"twocolumnlandscapecedar" styleheadb&,Ihead248 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingfszL48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingIcode48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingfsos?PM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading?PM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading"msQM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading2CM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading2CM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading(9M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading>OM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading>OM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading)SM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading2CM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading2CM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading4M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading3M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading4M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading4M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading4M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading >M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading"?M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading#IM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading0M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading$M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading#@M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading#M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading7M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading%BM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading3DM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading8L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading+M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading *M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading[L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading*M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading*M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading*L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading!>M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading/@M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading):M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading,=M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading0ML48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading!M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading!M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading!M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading!L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading)M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading)M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading,L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeadingM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading2OM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading3PM48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading.?M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading->L48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading%6M48 pt leading 8.8 pt bottomLeading 8.8 pt topLeading[MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue0MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue *MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue+MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue!>MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue)MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue)MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue.KMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue.KMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue"WMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue OMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue"?MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue%BMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue4MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue4MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue8MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue4MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue #JMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue >MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue OMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue3MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue#@MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue2CMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue$5MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue;;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlueMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue$MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue2CMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue2CMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue0MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue&7MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue$5MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue6GMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue$MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue&7MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue.?MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue.?MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlueMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue3DMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue#MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue#@MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue2CMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue(9MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue->MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue7MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue8MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue.MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue0MMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue):MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue,=MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue6MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue,MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue$NMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlueOMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue>OMQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*:MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue"?MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue*;MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlue#@Ncentered lineFormattingBBM58 pt leading 8.75 pt bottomLeading 8.75 pt topLeading *M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading #mMM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading!LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading!MM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading//M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading//M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading..M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading..M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # BM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingJM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading'\M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading2?M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading->M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading()M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading 8M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading9M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading88M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading88M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading88M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading+MM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading++M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading+LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading++M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading++M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading++M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading57M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading,,M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading -DM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading#(M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # KM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # KM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading-HM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # KM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading #BM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading #BM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading #BM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # KM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # ?M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading #AM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading 'LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingPPM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading..M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingCCM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading!(IM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingIIM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading--M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading/BM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading@@M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading(LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # EM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading* NM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading " IM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingMMM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading! >M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingPPM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading..M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingEEM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingCEM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingJLM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingJLM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingKMM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingJLM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingIMM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingHLM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingIIM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingIIM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading--M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading/1M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingGGM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingJLM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading,,M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading,,M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading..M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingACM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading-OM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading.2M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading # NM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading! HM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading ! JM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading - FM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading- >M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading+:M58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading ,DM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading+CM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading 'KM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading$GM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading!LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading!LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading+ HM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading.IM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeadingM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading %LM58 pt leading 8.25 pt bottomLeading 8.25 pt topLeading %LNcentered lineFormatting%+MQ8 pt leading 10 pt 10 pt 10 pt bottomLeadingGlue 10 pt 10 pt 10 pt topLeadingGlueM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading"?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading0M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading4M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading3M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading4M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading7M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeadingM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading[M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading$5M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading6GM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading8M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading6M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading4M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading?PM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading>OM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading)M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading0M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading"?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading#@M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading#@M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading#@M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading #JM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading$NM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeadingM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading#M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading&7M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading2CM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading2CM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*;M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*;M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading&7M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading(9M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading%BM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading;M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading4M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading?PM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading>OM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading)M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*:M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading3DM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*;M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading*M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading->M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.?M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.KM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.KM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.KM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading.KM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading):M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading,=M48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading0MM48 pt leading 9.5 pt bottomLeading 9.5 pt topLeading!>Ncentered lineFormattingItightOOFFOOFFOFFOFFOFFOOFFOFFOFFOFFOOGGOFFOEEOFFOOFFOGGOFFOGGOOHHOGGOEEOFFOOGGOHHOGGOHHOOHHOHHOFFOFFOFFOOGGOIIOFFOFFOOOoOOOOOOOOKIblockfP PP P!PPPPPP&P 'P1.0 in tabStops $-P1.0 in tabStops -P1.0 in tabStops "-P1.0 in tabStops .:P1.0 in tabStops"(Pi::P"7P>kuiX