Digital PDFs
Documents
Guest
Register
Log In
MISC-6840B4D1
2000
1427 pages
Original
52MB
view
download
OCR Version
50MB
view
download
Document:
Code Listing
Order Number:
MISC-6840B4D1
Revision:
Pages:
1427
Original Filename:
OCR Text
MICRO2 CMT098.MCX SRS A URYe RV [WEWATUN ] U La W] 0 B (MT09S (MT094 (MT063 (M1062 CMT053 C(MTO52 (MT050 fMYQ49 (MT048 CHARTS.MIC 550 Macro Macro Macro Macro Macro VL1V e [d RaV] ins [al <> — = O~ N— O~ NNTUNN S Charts Charts Charts (harts charts Charts 1 CLOKX Rev 13.00, Clock rate = 160ns 5O = O 2O : : : : : : Memnry Status & Control Registers Machine Check Logout Stack Sysc¢em Controt Block Massbus and Unibus Vector Generation Instruction Name vs Op (ode ESCD Instruction Name vs Op Code(Two byte op codes FDxx) : Operand Specifier Addressing Modes Charts Charts Macro Level (harts : Fixed Control Store Address Charts : BUT/UVCTR Chart : Description of FPD Micro Level Charts : (ompatability Mode Condition Codes Micro Level (harts Micro Level Charts Micro Level Charts : Native Mode Condition Codes Part 1 : Native Mode Condition (odes Part 2 Micro Level (harts : Native Mode Ofierand Specifier Chart ode Address1ng Branch : Native : Compatibility Mode Ad ressing Branch ¢ WBUS Drive Chart : WCTRL/CCPSL vs BUS Micro Order Conflict Chart Micro Level (harts : WOTRL/CCPSL vs MSRC Micro Order Contflict Chart Micra Level Micro Level Charts Charts : TABLE 1 - ALU & Q Rotate and Shift Functions Part 1 : TABLE 2 - ALU & Q Rotate and Shitt Functions Part 2 : TABLE 2 - (onsole [ntertace Control Micro Level (harts Micro Level Charts Micro Level Charts : BUS vs MSRC Micro Order Conflict Chart Charts fharts : BUT/((BR Chart : BUT/SPASTA Chart g Micro Level Charts Micro Level Charts Micro Level Charts . TABLE 3 - TUS8 Interface Control ; ROM (ayout map for control store REGION.MIC REVISION (Codes : Micro Code Label Prefixes Micro Level Charts Micro Level Console (ommands Console Error and Halt : Micro Verify Error Codes Micro Level Charts s W00 O Chart : : e O PSL Macro Level Macro Level Charts Maczro | ¢vel Charts Y s et U ¢ : [SCD Op Code vs instruction Name(Two byte op codes FDxx) : (ompatibility mode opcode chart Micro Level Micro Level R ARTS LIST Macro Level (Charts Macro Level Micro Level (harts Nt ELAV UL VI B V) LN N N RO O — PARTS LIST : Op Code vs Instruction Name Macro Level Charts Micro Level Charts ONMOON bk d vam b w3 D B b NN N LA I NP N =3 1107 P Level Level Level Level tevel Macro Level 1009 S B : Irternal Processor Registers Macro Level Charts 803 854 278 S CONTROL STORE PARTS CONTROL STORE PARTS L - (MT093 CONTROL STO CONTROL STORE PARTS L - CMTOA1 CONTROL STOR CONTROL STORE PARTS CONTROL STORE PARTS CONTROL STORE PARTS CONTROL STORE PARTS REVISION 20,0 Revision Histcry Macro Level Charts 558 608 650 744 R 16:30:35 Comprehensive Revision HlSt 508 545 546 P Contents 28=NOV~83 REV?S0.MIC REVISION 68 407 409 442 475 b Table of TM(OD) 11.0 Revision History Location ot mod.iies 1n control store Page TM(OT) MICROZ Table of Contents CMT098 . MCX 2524 2525 2542 2548 2597 2652 2706 2740 2842 2878 2919 2969 3012 3035 3140 3216 3293 3375 3412 3465 3499 3554 3586 1601 3610 3621 36¢5 3633 3645 3650 3654 3662 3667 3673 3674 3678 3688 3784 3855 5090 5253 5288 5289 5293 5309 5509 P T 5717 5832 5979 6008 6009 6014 6028 6082 1 - CLOKX Rev-13.00, Clock rate = 160ns: Control Store Region Expressions DEFIN.MIC REVISION 67.0 Revision History Comet Mi cro Word Chart Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Machine Definition Marhine Definition Macine Definition Macnine Definition Machine Definition Machine Definition Machine Definition Machine Definition validity (ivecks validity Checks validity (hecks validity Checks Validity Checks validity Checks validity Checks validity Checks validity Checks validity Checks validity Checks validity Checks MACRO.MIC REVIS N 60.0 Revision History Basic Ma cros Bus Func tion Macros Register Transfer Macros Branchin 8 Macros size Rom Macros Ird and INIT.MIC REVISION 25.0 Revision Histnry Powe¢r Up Boot Boot t ALPCTL ¢ BUT : gbg ALUCI, : CC, CCMISC, ALUOD, ALUSHF, ALUXM CCPSL : CLKX, DQ1, DQ2, DQ3, DTYPE, FPA H ég;?M. JSR, LIT, LITRL, LONLIT, MISC : N8¥' NEXT, PAR1, PARZ2, PARF1A, PARF18, PARF2 : : : : : : : RCTSRK {GRC, SPW WCTRL IRD1 ROM IRDX ROM COMPATABILITY ROM DSIZE : : : : : : : ROM Combinations WCTRL/CCPSL vs BUS Conflict States BUS vs MSRC Conflict States WCTRL/CCPSL vs MSRC Conflict States Buts That Take Data From X8 , L. Special ALPCTL Functions For Multiply and Divide IRD Rom Checks DSIZE Checks . Multiple WBUS Drive Checks ALU Group WCTRL Group Others : : : Power U Boot Su Find RPB Sub Initialize Microcode for the Console and Power up IN.CLR.CACHE.ROYT Init CONSOL.MI( REVISION 33.0 Revision History Console (ommand Parser (onsole (ommand Parser Iy I TR TR TR R PR P TR PR P R I TR e %e memoe Be s me e s mats M. NE SN me N v Ve ®e Wo 2342 ¢ 16:30:35 28-NOV=-83 : (onsole Resgurce Usage tonsole Initialization Page 2 MICROZ2 CMTO92 . MCX- - : 6179 ;6438 ;6561 . 6622 HEY4R s 6844 . 6937 ;6992 ;7139 ; s s 7240 7241 7296 ; 7596 277N . 7834 ; 7879 Table of 1M(OD) Contents Console Command Parser Console Command Parser tonsole (ommand Parser (onsole Command Parser - Console Command Parser Console Command Parser (onsole Command Parser (onsole Command Parser fonsole Command Parser Console Command Parser Console Command Parser Consale Command Parser Console Command Parser ; ; ; ; ; ; 8179 %207 8208 8212 8226 8279 INTLOG.MIC REVISION 26.0 Revision History Integer, Logical, & Address Integer, Logical, & Address ; 8442 togical, & Address Integer, Logical, & Address . 8105 . 8155 ; B33 . 8389 ; ; s ; ; . 8473 8512 8565 8608 8654 8697 ; ; . : ; ; 8782 8826 8871 8951 8997 9073 ; 8738 ; 9126 ; 9243 ;9342 ; 9528 . 9654 ; 9845 ; 10514 CN.GET.NUMBER CN.GET.NUM.RUBOUT CNL.GET.NEXT (input character) CN. TYPE .NUMBER CN.TYPE. CHAR CN.GET.CHAR CN.VIRT.TO.PHY CN.CLEAR.TEMPS CN.ERROR : BIT, (MP, 1ST : QT : MOV(B.W,L), MOVA(B,W,L), MCOM, MNEG, MOVZ Integer, Integer, Integer, Integer, Integer, Integer, Logical, Logical, Logical, Logical, Integer, Integer, Integer, Integer, Integer, Integer, Logical, & Address Logical, § Address : XOR : BIS ¢ BIC Logical, & Address : MUL with FPA togical, & Address Logical, & Addres. Integer, Logical, & Address Logical, & Address togical, Logical, Integer, Legical, Integer, Logicat, Integer, togical, Integer, togical, [nteger, togical, Integer, Logical, Integer, Logical, ; 10617 FLOAT M]C ; 10618 Revision 26,0 Revision Histcry ;10621 ;10655 ; 107095 ;10778 (N.GET.SWITCH Logical, & Address Address Address Address Address & Address & Address & Address & Address & Address : : ¢ ¢ : ¢ 1 MOVQ, MOVAQ/D PUSH, PUSHA ROTL CLR, ADWC ADD INC. ADAWI SuUB : DEC, SBWC t MUL without FPA : : : : : EMUL without FPA EMUL with FPA MULSUB.MDR_O Dl EDIV & Address & Address ¢ DlvsuB : ASH & Address ¢ & Address floating point and (R( Floating point and (R( Floating point and (R( - - : General Console Routines CN.TYPE.RESULT : Integer, Integer, & & & & CLOKX Rev 13.00, Clock rate = .160ns : Parse Device for Boot Command : Consote Command Dispatch Table EXAMINE ROUTINE : CEPOSIT ROUTINE START, NEXT, CONTINUE COMMANDS B00OT COMMAND : X(binary load/unload) COMMAND Parser Parser Parser Parser Parser 7926 7987 1 : Command Parser Facser . ; D Type Console Prompt, Decode Command (Character : Consote Command Parser Console Command Parser rons<.le Command Corsole Command (onsole Command Console Command (orsole Command Console (ommand 16:30:35 28=-NOV=83 L : Ird Rom Definition Dsize Rom Definition ¢ MOVF : MOVD 1 MNEGF CMTO98.MCX . ok e mah b b b <mah b e b b b b b b o e e b D b b b D b S b ek —3 b e a3 b R 3 B d e b b b D b o d b ek — 3 b S O OO G NN N U IS B I IS S AN NN WNW WA MIPUNINUNI PO NI, —s -d ed b ek B b N3 = NN CONO OO 00Co NI = O D0SNON SNV = O OO 00 WVILND — OO0 NN = O D OIOI00 VNN N —=O OSSN0 P PI e So Mrmeno Mo We me o oMo e ha %o Bs %0 e R e A LR T TR 32 80 35 38 82 63 MICROZ2 TM(OT) Table of Contents floating point and (RC 16:30:35 E 1 = 160ns v CLOKX Rev 13.00, Ctock rate oou : MNEGD : TSTF & TSTD : CMPF Floating point and (RC Floating point and (RC floating point and (R( floating point and (R( fFloating point and (R{ 28-NOV~83 : CMPD .t CVTFD _ ¢ CVIBF CVIWF CVIBD CVIWD CVTLD & CVTLF 88 00 72 floating point and CRC Floating point and (R Floating point and CRC 26 Floating point and CRC : GENERAL PACK AND WRITE ROUTINES Floating point and (RC : FP.ADDF.SUB 16 36 90 7 68 47 13 93 19 61 44 24 76 17 44 2? 52 24 75 42 95 74 16 17 56 93 28 53 95 58 81 57 24 : fFloating point and CRC floating point Floating point Floating point floating point Floating point (RC (R (RC (RC (R(C Floating point and CRC Floating point and (RC Floating point and (RC Floating point and (R( floating point and CRC floating point and (RC Floating point and (R(C Floating point and CR( floating point and (R( Floating point and (R( Floating point and (R( floating point and (R( floating point and (R( floating point and CRC Ftoating point and (R( Floating point and (R( Floating point and CRC Floating point and CR( Floating point and (R(C Floating point and (RC Floating point and CRC Floating point and (R( Floating point and (RC Floating point and (R( Floating point and (RC Floating point and (R( floating point and (R( Floating point and (R( Floating point and (RC Floating point and (R( Fluating point and CR(C FP,ADDRTIN * NORMALIZATION ROUTINES : ADD.SIGN ROUTINES Floating point and CRC and and and and and CVTDF : ADDF2 ADDF3 : SUBFZ SUBF3 : FP,ADDFOP1 FP,ADDFOP2 Floating point and CRC 93 91 96 71 50 17 03 90 © Floating point and CRC Floating point and (R( Floating point and (RC Floating point and (R( 76 81 : CVIFB CVIFW CVTFL : CVIDB CVTDW CVTDL : CVIRFL CVTRDL Floating point and (RC 47 46 o + FP.MULF23 . : : : : : FP.MULFOP1 FP,MULFOP2 FP.DIVEE3 FP.ADDD2 FP.SUBD? FP.ADDD3 FP.SUBD3 FP,ADDDOP1 FP.ADDDOP2 : FP.ADDD.20 FP,ACBD.100 : FP,ADDDRTN : FP.MULD2 FP.MULD3 : FP.MULD.20 : FP.MULDOP1 FP.MULDOP2 : FP.PREOPS.SUB : FP.MULD,SUB : FP.DIVD2 FP.DIVD3 : FP.DIVD,.20 : FP,EMODF : FP.EMODD : FP.CVIF]I,SUB FP,CVTF],SUBALT . FP,ACBF : FP.ACBD : FP.POLYF : COMMON POLYF AND POLYD SUBRQUTINES : POLYF AND POLYD FIRST PART DONE SAVE : POLYF POLYD FIRST PART DONE RESTART : FP,POLYD : FPA INTERFACE : FPA INTERFACE : F1.ADDF2 .REG/.MEM,FI,ADDF3.REG/ . MEM F1.ADUDZ REG/ .MEM F1.ADDD3,REG/ . MEM F1.CMPF.REG/.MEM FI,CMPD,REG FI.CVIDF ,FI.CVTFD F1.EMODF F1.EMODD F1.POLYF FI.POLYF & FI.POLYD SUBROUTINES FI,POLYF & FI.POLYD FPD SAVE ROUTINES MICROZ2 CMT098 . MCX o T I R S T A T TR T e G B M R T TR R R P 17178 17227 Table of Contents Floating point and CRC Floating point and CRC 17336 Floating 17641 Floating 17979 Floating 18088 VIELD.MIC 18089 REVISION 7.0 18093 Revision 18098 variable 18146 variable point and CRC point and (RC point and CR( . History = Length Bit Length Bit 18173 18251 Field Field Variable Length Bit Field variable Length Bit Field 18337 18525 Variable Length Bit Field variable Length Bt Field 18292 18565 Variable Length Bit Fiela Variable Length Bit Fietd 18617 Variable Length Bit Field 18773 variable Length Bit Field 18824 Variable Length Bit Field 18843 CONTRL .MIC 18844 Revision 18,0 ) Revision History. 18848 18854 Control Instructions Controt [nstructions 18916 18958 Control [nstructions 19255 Control [nstructions 19023 19221 19360 19429 19494 19596 19646 19703 19740 Control Control Control Control Control Control Control {ontrol Controt and and and and and and 21287 Misc. and Queue 21332 Misc, Misc. : Algorithm For EXTv & CMPV : é}gorithm For EXTZV, CMPZV, FEC Queue Queue Queue Queue Queue Queue and Oueue and Queue FFS, EXTV, EXTZV CMPY, CMPZV vF.vSuB : Algorithm For INSV Alligned : ?h Srithm For INSV Un<Alligned Ird Rom Definition : Dsize Rom Definition gggditional Branch Instructions i + : : 1 BRW, BB BLB JMP ACB AOB SOB CASE BSBB BSBW JSB, RSB . [rd Rom Definition Dsize Rom DPefinition [nstructions Misc. Misc. Misc. Misc. Misc. Misc. CLOKX Rev 13,00, Clock rate Ird Rom Definition Dsize Rom Definition : 20887 20903 20916 20933 20977 21065 o1 FI.POLYD : CRC Instructions Instructions [nstructions Instructions Instructions Procedure (all 20520 Procedure (Call 20821 Procedure (Call 20851 20862 MISQUE.MI( . 20863 REVISION 33.0 Revision History 20868 F F1.POLYF & FI.POLYD FPD RESTART ROUTINES : : Instructions 16:30:35 28~NOV=83 Instructions Instructions Control Instructions 20018 20067 PCALL MIC 20068 Revision 18,0 . Revision History 20072 20086 Procedure Call 21167 P 1M(01) : CALLS, RET CALLG Ird Rom Lefinition Dsize Rom Definition ¢ 1 i i OXFC NOP BPT HALT L INDEX INSTRUCTION i PUSHR ¢ POPR + MOVPSL COUNT.ONES ROUTINE FFC 160ns Page 5| MICRO2 (MT098.MCX P A P N Y ~en. e mems B ®etumoSnme®eto®e o momenomemi®omaesPe SameNomesonrnsnseentaleaey i 21363 21413 21484 Misc. and Queue Misc. and Queue Misc. and Queue Misc. Misc. Misc. Misc. 22030 22104 Misc. and Queue Misc. and Queue 22216 and and and and Queue Queue Queue Queue Misc. and Queue Misc. and Queue 22253 (HAR,MIC 22254 REVISION ¢3.0 ) Revision History 22258 28-NOV~-83 16:30:35 G 1 CLOKX Rev 13.00, Clock rate = 160ns - -~ : INSQGH] : INSQTI - - - REMOHI : REMQTI - . . + MOVCS : General Routines : MOVC3 Character String Character String (haracter String : MOVTC and MOVTUC : CMP(3 and CMPCS : (MPC3 . 23769 Character String : 23910 Character String 23867 23948 24953 24141 24266 24348 246378 24577 24723 24885 25003 25129 25184 25216 25264 25327 25384 25407 25486 Character String Character String Character String Character String Character String Character String Character String Character String Character String Character String (haracter String Character String Character Character Character Character Character Character Character fharacter 25513 DECMAL.MIC 25514 REVISION 29,0 String String String String String String String String Revision History Decimal String 257:9 26033 26155 pecimal String Decimal String vecimal String 26374 26517 28747 26795 Main loop : BYTEs | Scurce 1 ~ FILL ‘ LONGWORDS : CMPC5 : . : MOV FPD Pack routine : MOV FPD Unpack routine i | . : CMPC FPD Pack routine : CMPC FPD Unpactk routine : : : ¢ : : : : . SCANC and SPANC FPD Pack routing SCANC and SPANC FPD unpack routine LOCC and SKPC FPD Pack routine LOCC and SKPC FPD Unpack routine MATCHC FPD ynpack routine FPD Subroutines Ird Rom Definition Dsize Rom Definition : Decimal String ! : SKP(C : MATCHC Decimal String String ! : LOCC : MOVP : _ Decimal ; : Source 2 - FILL : SCANC and SPANC Decimai String Decimal String ! : . 25519 295%2 e : Dsize Rom Definition Character String 23705 . : QU,SET.LOCK 23216 23360 23575 23664 . ¢ QULUNLOCK ¢ Ird Rom Detfinition : Operand fetch and Initialization Character String Character String : ; 6. S Character String 22732 22806 » Page : BISPSW, BICPSW : INSQUE INSTRUCTION : REMQUE 22274 25693 [ Table of Contents 21560 21626 21735 21825 21921 1M(O1) SUBP6 and ADDPS : ADDP4 and SUBP4 : B - ) Setting C( 1 CMPP3 : (MPP4 : unequal lengths : | Addition Subtraction , : ' : o o oo MICROZ {MTCI8.MCX : H Table of Contents Decimal String : 26828 ; 26854 ;26901 ; 28135 ; 28190 . 28350 ; 28420 ; 2870 ; 28756 ; 28867 : 28984 ;s 29286 ;29429 ;29783 ; 30015 : 3u055 ;30143 ; 30297 ;30402 s 30537 : 30791 . 31075 : 31140 ; 31183 . 31263 ;31314 s 31350 ; 31404 ; 31499 : 31540 : 31663 : 31729 Decimal String : Mult1pl1cat1on routine Decimal String Decimal String : DIVP : Initielization i : Zeroing high dest. bytes ! Decimal String : ! : : Decimal String : Decimal String Decimal String Decimal String Decimal String Decimal String Dec .mal String Decimal String Decimal Decimal Decimal Decimal Decimal Decimal String String String String String String | loops, Destination write 3 Source#2-to-binary routine ! (VILP CVIPL cvIPT Decimal String Decimal ;32749 Decimal ;33097 ; 33246 DecimaL ; 33359 Decimal : 33405 EDIT.MIC String String String String ; ; DS.CVIXX.PACK | ¢ DS.CVIXX.SET(( : Misc Subroutines . : : : : Initialization source READ and sign decode Be ginning £ Loop of ASHP shift ing Round, writing dest, ; ; j . Sett1ng cC : DS.DS.PCK routines : DS.DS.UNP : DS.DJV18.DIVP : DS.DIVI : DS.MUL10 + DS.READ : : : : DS.WRITE Small Routines Native Mode IRD Specs DSI2E ROM specs ;33N Revision History ; 3358 ; 33679 Edit Packed to (haracter string : PATTERN OPERA1IR DECODE Fait Packed to Character string : PATTERNS 00 - 04 ——— i : (viTP ; 33406 REVISION 13.0 5 33420 ' FPD unpack : ; ; l Setting (C Decimal String Decimal String Decimal String Decimal String T DIVP Pack routine . DIVP Unpack routine DIVP common unpack routine : ASHP Decimal String T : : : Decimal String Decimal String Decimal String o | ; | : DS.CVIXX.UNPACK Decimal String T StateSave Main Loops Shift in next [LV] digit Decimal String Decimal String Decimal String T ! : : Decimal String Decimal String i Storing Dividend on Stack ¢ (VTIPS : (VISP t DS.CVINP DS.CVIPN DS.CVIXX.SETUP Decimal String Decimal String ; ,aitialization after ADDP4/SUBPR4 End of : Decimal String Decimal String Decimal String 32289 Correction Multipl{ Loops ; 31789 ;31949 ; 32178 s 32215 ;32252 7 : Decimal String . Page CLOKX Rev 13.00, Clock rate = 160ns Decimal String Decimal String ; 275461 . 27659 1 Decimal String Decimal String ;22?7 s 27380 : H CC setting L Decimal String ;274N 16:30:35 28-~NOV-83 : : MULP ; 27002 ;27057 1M(01) Edit Packed to (haracter string : INITIALIZE - s - e N T T e e R N R FR TR T P R N ] N mssemativ, me s .. Ten-s.mswy CMT098,MCX MICROZ2 Table of Packed Packed Packed Packed Packed 1M(01) Contents te Character to Character to Character to Character to Character 28=NOV=83 string string string string string 16:30:35 I 1 CLOKX Rev 13.00, Clock rate = 160ns EQ$END EQSEND FLOAT EOSCLEAR SIGNIF EO$SET SIGNIF EO$STORE SIGN : : : @ : 3%7¢7 33713 33718 33724 33729 Edit Edit Edit Edit " Edit 33779 -£dit Packed to Character string : EOSLOAD FILL 33864 33918 43961 34039 Edit Packed to Character string : Ed : Packed to (haracter string : EO$BLANK ZERO EOSREPLACE SIGN 33743 33785 33789 33795 33837 34040 4094 34199 34320 34410 34465 34511 34571 34625 3LTuh Edit Packed to Character string : PATTERNS 40 - 47 Edit Edit Edit Edit Packed Packed Packed Packed to Character to Character to Character to Character string string string string Page EDSLOAD SIGN EOSLOAD PLUS EQ$LOAD MINUS EOSINSERT : . : : L Edit Packed tou Character striny : CO$ADJUST INPUT Edit Packed to Character strirg : PATTERNS 81 - AF Edit Edit Edit Edit Edit Edit Edit Edit Edit Edit 34786 MPRCHM. MIL Packeu Packed Packed Packed Packed Packed Packed Packed Packed Packed to Character string : to Chararnter string : to Character to Character to Character to Character string string string string EOSFILL EOSMOVE EOSFLOAT SOURCE READ ROUTINE STORE STRING OF CHARACTERS STORE SINGLE CHARACTER EXIT FPD PACK ROUTINE FPD UNPACK ROUTINE =~ jrd & Dsize Rom Detinition : : : : to Character string : to Character string : to Character string : to Character string : 34787 REVISION 38.0 34792 Revision History 24808 34917 MIPR, MFPR, MTPR, MFPR, 36406 MTPR, MFPR, (HMX 35671 3578 36185 36362 MTPR, MTPR, MIPR, MTPR, MFPR, MIPR, MFPR, MFPR, (HMX CHMX i SELECT ¢ MTPR : : : : (HMX (HMX (HMX (HMX 36424 REVISION 19.0 36429 Revision History 36444 PROBE, LDPCTX, SVP(TX 36528 PROBE, LDPCTX, SVP(TX 36589 3ROBE, LDP(CTX, SVP(TX 37018 37031 PROBE, PROBE, PROBE, PROBE, LDPCTX, LDPCTX, LDPCTX, LDPCTX, : PROBER : PROBEW : PR.PROBEX.SUB : LDPLTX : SVPLTX SVP(TX SVP(TX H SVP{TX SVP(TX PROBE, LDPCTX, SVPCTX i 37081 Interrupts and 37642 57494 2514 Interrupts and Excaprions Interrupts and Exceptions interrupts and Exceptions 37145 7538 LS.MODE, CHECK : Ird Rom Definition : Dsize Rom Detinition IANDE.MI(C 37032 REVISION 45,0 Revision HistorE 37037 MP,INVALIDATE.TB MFPR CHMK, CHME, CHMS, (HMU |rd kom Definition : Dsize Rom Definition 36423 PRI DSV, MIC 36644 36819 36943 36979 IPR Exceptions interrupts and Exceptions interrupts and Exceptions 1 INTERRUPT WIDE BRANCH : Initiate Exception or Interrupt : SOFTWARE INTERRUPTS : JE.SOFT,IPL : POWER FAIL ¢ WRITE BUS ERROR A s 37564 ! 37893 37894 37919 38013 38041 3806¢ 38114 38175 38230 38304 38494 38580 28665 38666 38777 38857 38935 38976 39124 39192 39246 39296 39509 39573 39596 MM M}( 1M(OD) Contents Interrupts and Exceptions Interrupts and Exceptions Interrup:s and Exceptions Iaterrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and wxceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Inte rupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and ExceptIOns Interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and txceptions Interrupts and Exceptions Interrupts and Exceptions interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions Interrupts and Exceptions 28~N0OV=83 1 CLOKX Rev 13.00, Clock rate = 160ns : CORRECTED READ DATA ERRUR : MEM ERR, (S PARITY, BAD IRD, : MACHINE CHECK ROUTINES : 1E.MACH.CHECKO1 : : Tt : : : : : : : : : + : : H : : TEMP HALT 1 E.MACH.CHECK02 1 E.?RITE.MSCR INTERVAL TIMER INTERRUPT TUS8 INTERRUPT UNIBUS INTERRUPT CONSOLE INTERRUPT KERNAL STACK NOT VALID ACV AND TNV FAULTS ARITH TRAPS AND TRACE PENDING FAULT COMPATABILITY MODE EXCEPTIONS ADDR MODE, RESV OPER, RESV OPCODE FLOATING POINT FAULTS INTERVAL TIMER SERVICE SERVICE INTERRUPT PENDING OR TIMER | JE.RBS.RBACLK I E.FPD.FACK 1 E.P ) D OPCODE ENTRY F EJOPCODE ENTRY R i rd Rom Definition Dsize Rom Definition 39597 REVISION 30.0 Management Management Management Revision History (ompatibility Mode Compatibility Mode (ompatibility Mode Compatibitity Mode Compatibiiity Mode (ompatibility Mode ; : Subroutines for Probeing MM,PRB,WRITE,SI2 PRB.WRITE .LONG PRB,WRITE.NR " PRB.WRITE MM.PRB.WRT,TBM M4, PRB,READ. TBM : H — Management Management Management o~ 40948 40974 41008 41046 41084 L1122 41157 Management Manayement Management Manayement Management Management Management Management Z—=OIOD Memory 39835 Memory Memory 39999 40097 Memory 40272 - Memory 403348 Memory 40440 Memory 40658 Memory Memory 4WN659 40724 Memory Memory 40783 Memory 40826 40887 Memory 40915 Memory 40943 CMODE .MIC 40944 Revision 21.0 ¢ UNALIGNED READ : UNALIGNED WRITE, WRITE UNLOCK : CROSSING PAGE BOUNDARY WRITE, WRITE UNLOCK : MM.PB.PROBE : TB MISS : MM,GET.XB.PTE, MM,GET.READ,.PTE : MM.GET.WRITE.PTE : MM,SPTE.M.EQ.O : MM,GET.BUT,.PTE : MM.GET.PTE o@OOO® 39761 Revision nistory Memory Management Memory Management Memory Management T 39625 39657 29694 ownmzZmr— 39602 AT P N T T T P N R TR PR TR TR AL D A 37587 Table of J L MICRO2 CMTO98 ,MCX 16:30:35 ;G119 o 4123 41283 : 41386 Table ot 1+ ASR(B) : ASL(B) Compatibility Mode ¢ SRC ;61667 41545 ‘Compatibility Mode 41629 Corpatibility Mode 4157¢ 41729 41788 4183R 41870 ;41002 ;41933 ;42062 : 62177 p 42227 ; 62260 ; 42293 Compatibility Compatibility Compatibility Compatibitity t SXT ¢ ROL(B) i : : ROR(B) - 1 : : : SWAB Mov(B) ADD "UB Compatibility Mode Compatibility (ompat1b1l1ty (ompatibility (ompatibility (omp Mode Operand Specifier Comp Mode Operund Specifier (omp mode Operand Specifier Comp Mode Operand Specitfier OSRLMIC Reyision (ompatibility Mode Compatibirity Mode : + + : ;45426 ; 45571 ; 45684 aLese.e. ; 45803 45882 45997 . i : S0B, (Lx, SEx MFP], MFPD MTP!, MIPD RTI, RTT | i ¢ (M.0S.RED ¢ (M.0S.MOD t (M.OS.WRT ; i : Ird Rom Detfinition : Dsize Rom Definition | | : CM.0SR INDIRECT COMMON ROUTINE | t 31,0 Revision History o : 0S.80A-QUAD 49339 . S s RTS, JMP Mode Mode Mode Mode Native Mode Operand Specifier ; - T ¢ BR, BXXX : JSR 1 B1C(B) ;4473 ;45253 - T T Compatibility Mode (ompatibility Mode Compatibility Mode : 0S.BOA-WRT1 45150 oo { Native Mode Operand Soecitier s : : BIS(B) : BI7(B) ;44552 ; 44806 . 44916 ; 45041 e Compatibility Mode (ompatibility Mode : 0S.REL ;44642 T : XOR Native Mode Cperand Specitier T, : ! : CMP(B) (ompatibility Mode ; 43160 ; 44335 10 } ; 42807 43008 ; 46318 Page CLOKX Rev 13.00, Clock rate = 160ns : MuL : DIV ;4272 44313 4314 1 K Compatibility Mode Compatibility Mode ; 62466 o 42517 © 42585 ; 642532 . ; : (ompatibility Mode ;42416 ;43265 ; 46053 Mode Mode Mode Mode 16:30:35 : ASH : ASHC + ADC Compatibility Mode ;42325 ; 42358 ; Contents 28=NOV-83 Compatibility Mode Compatibility Mode Compatibility Mode Compatibility Mode (ompatibility Mode » 41506 1M(O1) MICROZ2 CMT098,MCX Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Speciticr Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Specifier Native Mode Operand Speciftier Native Mode Jperand Specifier Native Mode Cperand Specitier Native Mode Operand Specifier 46086 UVERFY. MIC 46087 REVISION 10.0 ! ; : 0S.BOA | : 0S.BOA-WRTZ ) ; : 0S.MOD : 0S.ADD : 05.VADD ; . i ¢ 0S.WRI : QS.WRT? . 0S.FRED ; OS.QRED : 0S.DRED : 0S5.DMOD : 05.508 : QS.FIDRED : OS.FIDMOD : ‘ ‘ MICRO2 CMT098.MCX ; 4609¢ PR AN 1MV Table of Contents Revision History MICRO VERIFY . Lo : R-BUS, W-BUS, D-REG TEST : M-BUS Q-REG TEST MICRO VERIFY MICRO VERIFY . 46697 ;66750 - MICRO VERIFY MICRO VERIFY ;L6861 MICRU VERIFY : MICRO VERIFY i XB, PC_PC+ISIZE TEST ;47113 MICRO VERIFY : PARITY CHECKERS TESI . 47288 ; 47303 MICRO VERIFY MICRO VERIFY . 66782 . 46927 ;46956 ; 47023 ; 47140 ;477 ; 47223 MICRO VERIFY MICRO VERIFY __ MICRO VERIFY 47439 ; 47448 ;47479 ;4751 s 47576 ; 47622 ;47672 ; 647698 L 47753 ;47784 ; L7876 . 478B6Y ; 47910 ;L7984 ; 48002 . ; 4BOS4 “.ICRO VERIFY MICRO VERIFY MICRO VERIFY MV.FILL.XB : ) . g ; : e ; | ) , , ; ; i j . GH FLOAT Subroutines in ROM GH FLOAT Subroutines in ROM : Parse routines FX,GOPER1.20 : Parse routines FX,GOPERZ2.20 GH FLOAT Subroutines in ROM GH FLOAT Subroutines in ROM GH FLOAT Subroutines in ROM GH FLOAT Subroutines in ROM GH FLOAT Subroutines in ROM GH FLOAT Subroutines in RO GH FLOAT Subroutines in Ri. GH FLOAT Subroutines in ROM GH FLCAT Subroutines in ROM : Parse routines FX.GOPERY.10,FX.GOPERZ.10 : Normalization FX.NORM.GFL : Normalization FX.NORM.GFL : Packin? FX.PACK.GFL : Generalized routines ¢ Generalized routines : HFLOAT to Integer FX.CVIF].HSUB.20 : HFLOAT to Integer FX.(VIFI.HSUB.20 : HFLOAT to Integer FX.CVIF],HSUB,.20 . Revision history Fitler ! . : CONTROL STORE PARITY TEST : CACHE TEST : Generalized routines FX.(CS : Generalized routines FX.MULSIGN : Generalized routines FX,CVIS.(C FITIER,MIC ! CACHE PAKITY TEST TB GROUP O PARITY TEST T8 GROUP 1 PARJTY TEST GH FLOAT Subroutines in ROM GH FLOAT Subroutines ir. ROM GH FLOAT Subroutines in ROM 48055 REVISION 16,0 ; 48060 ; 48077 MV.CHECK.XB e : DSIZE TEST MICRO VERIFY Revision History : SCRATCH PAD DUAL PURT ADDRESS TEST. : RESTORE GPRS : 47433 GHROM,MIC ; ¢ SCRATCH PAD TEST : SCRATCH PAD EXPLICIT ADDRESS TEST : X8, IR, AND OSR TEST MICRO VERIFY 47434 REVISION 00.05 .. .. 17, ) : TEST INITIALIZATION ; 66188 o h6es? s 46318 ;464697 Page CL.OKX Rev 13.00, Clock rate = 160ns 16:30:35 28~NOV~83 . : Filler words for unused control store (T8, MOX MICROZ2 1M(QD) 28=NOV~83 Tabte of (ontents ; Thiz page 16:30:35 M1 CLOKX Rev 13.00, (tock rate = 160ns intentionally left blank, " M(01) £ R ¢ REV7S0.MIC 28-NOV-83 L N A VPN — MiosE.MOX N1 16:30:35 JTOU .10C ; = (LOKX Rev 13.00, Clock "REVISION 98" - : ot contents. ; D REV EXPLAINATION ; 192 MM - - Modity ; 197 DEFIN - Modity VALIDITY check V024 tu verify BUS vs MSRC contlict }}5 T ie 7 : ; . 26 D87 ;08 59 : [ ANDF INSQT! et = fla?s in MM,GET,WRITE.PTE and MM.GET.PTE_for T8 parity error recovery Machine Check routine (uTRAP address 28:) to recovery TB parity error Fix BUS/PROBE.WR and MSR(/TEMP4( hardware conflict. ; ; DEFTy = JROALL - Nove VSIZE tield into bit #84. Fix CALLS and CALLG with - “ite-protected stack area, : MIsGuE - Fix ISR MPRCHM . DE(CMAL - " Increasz the width ot micro-word to Bl bits. Add a PAT(H tield in bit #80. Fix instructions PUSHAQ and MOVAQ which increise PC incorrectly. Jump to P(S to set microrev in SID register. instruction INSQHI with reserved operand. tocation 1312 ang 1313 remain unused. s 9h Repiace (S bread board with PCS, a ;9 Koyision numbers 63 thru 93 were not used to allow the changing as ;o ;30 R Do ; ; ; ; Mp - Misqur - 3 |5 .38 ;39 R : ; few roms as possible when changing the rev # for the next change, L jal N 6 e Ja5 PN Poat Y;63 is = 3 Save tlags and then set MM.NOINT when moditying an unaligneC operand that is crossing a page boundary. flags are then restored, . . Save MMTEMP3 (which has the taulting address which aborted the inst-uction) in tempé, lhis provents MM from destroying the information if a tb=miss occurs when unlocking sl ; - DECMAL ; : ; : ; Lk - FLOAT - Pltith - TRART, Nl - the header., MMTENMP3 1s then restored. ) Additional check provided for the case of a software interlock set and checking ot . - nd. pits 1 and 2, if not zero, then restrved opei it afterwards when writing Tet mm.noint prior to and clearing data that crosses a page woundary in the general purpose write routine for the decimal instructions. . , ' some routines were meryged to gain some ucode iocations in -ow 5 of cts u<e the correct temp (temp3) instead of templ in FP ]RD1 . .peciticalty tor +PA fix MM for FFA ana FF7 loc remove . ihangce some gocumentation ard add a tew charts biv the 2 changes made in Rey 24 kEassign tocatiors to get 13 Jetf Peng, J.Heom, Gerard Koeckhoven, 8rian Allison, (. E. MCDOWELL “he location ot each revision history is available from the table changes. ; Page UREVZS0.MIC! : e ;2% 160ns Thiy revision nistory indicates which modules have changed, and a SUMMARY ot those changes, Individual revisinn histuries should be consulted for descriptions of the ; R . = .SET/MICROREV=98, NOBIN ; rate return ~19 working Change BO,INIT_uBA MAPS to be a3 subroutine that . is called on - - MICROZ CMTOG8 M(X R L 28=NOV=-83 MO REVISION 68 2 (LOKX Rev 13.00, (lock rate = 160ns - . Fix a POLYD problem that causes the VA to be incorrect, when the arg =0, and the degree not egual to_zero and dqin? a read with FPD set, Recover lLocations 232 and 233 tor use in IANDE.MIC S . Assign permanent addresses to free locations (where possible) vIielD TONTRL -~ Force some address. Force some addresses . . Swafi a couple un-constrained words with INIT,MIC to make a return =19 = (HAR Page Fix B/number to work without specifying the device. Remove tree location [NTLOG = FLOAT 8 both cold and warm boots. CONSOL = work . . . correctly. Set MM,NOINT during the write of CVIPL to avoid problem with DECMAL - avoid erroneous ACVs due to . routine, the Write Crossing Page Boundry the X8 after restoring Fix PROBE instructions to flush PRLDSY = the PSL to prefetch while PSL had modified current mode bits to execute the orobe, Also fix to report no access it probe across a page boundary with tirst page access ok but not valid, S o XoRods B0 NN - Ow N y 104 N RE V750 .MIC 16:30:35 IANDE = MM cMopE - and second pa?e no access. Read modity AlVs go thru read ACV micro trap, and must be detected, so just taking a read tbmiss is no good. Pisable interrupts durin? logging of machine check. {lear 1B to avoid possible conflict between access violation and XB - TB-miss. Cause ODD Address traps when the SP is odd in JSR, RTS, MFPx, MTPx and RTI/RTT UVFRFY FILLER - : £ 6 DO EVERYTH NG THIS IS AN INTERIM E(D cMeDE - TANDE - INTLCG 59 THIS I (HARTS MM AN =~ - - { HAK - DECMAL = FILLER 58 - 1ANDE (MODE UVERFY ; Clean up DSIZE test. Remove words tor CMT061. - =~ Fix ODD address check of operands with RTS,JSR, JMP Recover FREE.00C and FREF.Q0D, now used in IJANDE. on unaligned read bug. More Was causing KSNV because stack tlag was left set it tb miss routine tried to service an interrupt. INTERIM ECO Documentation change Fix such that the VA will not be off by & when reading across a page boundry and FPD set and you restart the instruction. Reassign FEE with 3EF fix unaligned read across a page boundary to not clobber VA it a tault it taken with FPD=1 on the second half of the read. Tix SKPC to read (ongword aligned . (hange word to long when comparing scr ten with dest ASHP: Change byte to word len Remove free locations 147c and 147d Remoye tree locations 173A and 1738 Put 3EF in tiller and removu FEE Remove words for (MT0S9? T41S IS AN INTERIM ECO (HAR Fix problem with RO in MATCH{ MM - TANDE - FILLER = Fix such that the VA will not be oft by B when writing crossing a page boundery and FPD set and you restart the instruction Fix when FPD set § access violation § no TB miss i,e. the PTE is in the TB but access is not alltowed the MDR will not be clobbered. Remove two words for tix in char and mm MICRD2 TMT098.MCX 3 b = ;57 : 3 D b =3 = OO 00 OIS NNU = OO0 NN S AN — O NoYs -RENTo NV, ¥ L JUTT) Vg REV750.MIC : THIS (HAR 1S AN INTERIM ECO H ; H H : THIS MM ; H H = Add four words to fitler from MAT(HC optimization SWAP loc FEE with 3EF , = - INTLOG =~ CMODE ~ ; ; ; H : ; INTLOG PCALL - (HAR DECMAL = - (MODE i : Fix POLYD and POLYF instructions. Change two locations from word to long. Reassign addresses in EDIV routine, and restore micro-address in ADWC routine, which was previously swapped to fix EDIV problem, Make JSR look for reserved operand fautt (register mode) JSR: i ! i at begwnq1n? of instruction so PC doesn't get changed, Change sizelword] to sizelidepl when register mode pc 1ST78: Remove some microwords Assign permanent addresses to IL.EDIVC and IL.EDIVCY The "CALLS and CALLG'' instructions have to read the mask as a word instead of a longword. Fix MATCHC bug fixed in 18 . Whenever the src len > dest len and the source string is not : by*e is not an illegal ascii character then a { equal to zero and the first byte after a possible zero reserved operand fault will occur. ) - Jhen goi.g to Compatibility Mode check that the first BC in CMODE is not ODD. . DIV: Zero is an acceptable ''expected-negative’’ result. . Fix problem that called it overflow and left result unwritten. ) . . Fix ug‘ment1oned in 17 MUL : FILLER 54 . yse locations 232 and 233 for a fix in IANDE but leave them in float - . | | ; i ; Left shift should not overflow when result sign = original sign, Sign extending Delete words for rev Q@ before the test fixes the problem. 55 changes. . THIS IS AN INTERIM ECO OSR - | . be backed up and all flags cleared. ASH: H : to avoid a conflict between an access violation and a xb-tb miss, when going to WCS us1n? the "XFC'" instruction tne P( has to ; H 15. THIS IS AN INTERIM ECD IANDE : - .Page Fix EDITPC to get_proper data in RS Use location 3EE instead of FEE to avoid ROM changes- Change location 15FC so that the TB gets cleared. This is FLOAT : . Optimize MATCHC fix H : (LOKX Rev 13,00, Clock rate = 160ns 1S AN INTERIM ECO FILLER 55 P T OV = O OO WIS AN : H T AR LD 23O 000 O W DS I 0 B 2 DS D MO Or AILAAILNAN ARV : : L T A TETE YR TE PR PR P T PR PR SPR PR) N b ) ed D ) e b D = —d e D D DN N NN NN N AN AN NI PO PO TN NI PO NI N — 0 evesLn, R P A TR L TR T YA T PO R e e b amd b b o ol emd B b D b mh ik el D b b ok e D b OO O 56 . 2 - 3 FILLER : ¢ REVISION 98 EDIT [ANDE : ; tM(01) - ~28-NOV=83 - 16:30:35 Code around an undocumented hardware conflict that causes MDR_Q and [RDX in the same cycle rot to work properly, cau51ng QUAD and DOUBLE short Literals not to work properly when t efi are the last byte on a page and there 54 is a T8 MISS on the next page. CVITP DECMAL - Fix illegal # detection in MISQUE - Fix problem in QU.UNLOCK routine to restore registers properly when taulted out of an instruction using an auto-inCrement or auto-decrement (MODE - ASH: vbit should be .leared if sign of result is the same as sign of original operand. In CVIPS instruction the Z2=bit was not cleared when source length = 1 addressing mode. e e ) ~MICRO2 YD) CMTO98.MCX 4% e M e meme e S ute s M. Ma Vet et b b D b b b ad b D amd D ol e ReXVo e Ra WaB e alo To lo ] 0000 0000 00 COCO ~J N CONOAN SNV 2O 000N OM N I NRU = O O 00 NN B NN TM~ N~ NN OO = O D 0o~ WP e Ve Ve meboBo N M NeBs o G Na VANV D ank e D o d b ad o e D b e D )— e REV7S0.MIC H H ; ;53 : : : INTLOG =~ CONSOL - Fix D P<CR> to not deposita zero in the PSL. Fix MATCHC bug if obj length > src length, PRLDSV = FLOAT INIT - : : : . : i . 16Pz Page : j Swap a micro-address in ADWC routine to fix a bug in EDIV DECMAL - : 16:30:35 Fix EDITPC to get proper result in RO, R1 OSR - H 28=NOV=83 EDIT CHAR - ; 1M(01) REVISION 98 2 CLOKX Rev 13.00, Clock rate = 160ns D ; . i Fix EDIV problem such that largest negative number is acceptable, : g ; i Fix SYPCTX to save the SP in KSP (as well as the P(B) when executed on the kerral stack. Fix EMODD to not generate a dirty zero on cases with extreme overflow. of the TB to not miss the first two locations. Fix invalidating l | ) Fix 0S.BOA.QUAD indexed immediate to return the proper address. when a page tault occurs trying ] Fix CVILP to properly set/clear 7 if overflow occurs. ,I Fix CVITP to clear the high nibble of a zero length destination , ! Fix CVTPS and CVTPT to set Z if the srclen > dstlen and dstien is even, ! to write the destination, Fix CVIPT and CVIPS to properly set C({'s for destination length = 0, Fix CVITP and CVISP to take_a reserved operand fault for all illegal bytes that overflow. H : : : EDITPC IANDE - : 52 PCALL - Fix REPLACE_SIGN to work if a gage fault occurs trying to do the fix up. Fix machine check code to disable cache on cache parity errors. : | Fix CALLx to pass the right faulting address on an ACV to memory management. ; Fix REMGx] reg dest to properly disable header .ne. addr check ; . MACRO - New macros for G and H. MM - Add a label for the fix in PCALL to éump to. MPRCHM ~ Add a BUS/PRB.RD,PTE,K to micro word 0DFA to cure a deadlock problem that : S0 MISQUE - Fix interlocked queues to page fault properly. H IANDE = Fix FD opcode decode, Remove @ 0 from FX.IE.FD.RET. : : MISQUE - : : ; occurs when running 3 massbuses at the same time ;51 serrrxxrrvnnxwrnix Rev 51 was skipped to save a ROM in an ECO. ; 49 : DECMAL - : ! . Fix converts to save/restore the flags when taking an interrupt with FPD set. Fix DIVP infinite loop on illegal data bug. Fix WRT BUS ERR double error halt. (lear FPA traps to avoid erroneous : Change halt code to 5. ; trap. Set stack.flag on halts to tell console to Look at front panel. Load PC with SCBB+offset on halt due to vector<1:0>z3, i N Fix disabling of cache on cache machine checks. ) Fix console interrupts to properly clear transmitter interrupts. Fix handling of FPA detected faults. ' i PN PR Fix raising of IPL to 1F on KSNV. FLOAT - { Fix POLYD accuracy and dirty zero bugs. Put in rom section of G and H floating. Change CRC to clear PSL<(>, L | . R Change ACRF and ACBD for compatability wiht G and H floating. PR TR Fix condition codes for CMPD with the FPA, L P GHFLT = INIT - Fix size on FPA converts., - - Add 6 and H floating, . . Turn off the cache when doing memory test for booting. { ; Initialize the UNJBUS in the INIT code, | Clear TU58 control and status registers in INIT, Avoid machine hang clearing TB and CACHE. L N 2 —b = b O 000N N b kb b —d 3 (DO AN —= OO LYLELVLETLULRT N LS LU VTN T, X1, N JO I TR TR T TR TR T e P 49 49 CONSIL = Attempt restart for halt codes other than 6. INTLOG = Fix FPA interface bugs. PCALL = Fix clearing ot halt pending on restart, Fix CALL and RET to ) do exact probe if approcimate probe gets TNV, B s i LA N N LM AN R RO TR RO AL R NN O~ N ANU = O D00 O V1SS NN — > e X R PP ay= g e e LS LS LS LT T NY ST ST VI N1, ST, G S T U1 W Y MICRQ2 TM(OT) REVISION 98 28=-NOV-83 16:30:35 E 2 CLOKX Rev 13.00, Clock rate = 160ns MISQUE - que.chan?e for doing restarts on HALT, MPRCHM - Fix deposit to IORESET from the console to not take interrupts. Chaqge FPA present IPR to use a branch so it will work from the console. B OSR MM - Avoid machine hang clearing TB and CACHE. Fix indexed immediate. Change write tzge immediate ogerands to properly bump the PC. fix Bug in MM,PRB.WRITE.SIZ when address crosses a page boundary, Fix MM.PB.PROBE to groperly restore MDR. Fix MM,GET.WRITE.PTE (HAR = PRLDSV =~ . . to clear the lock if reserved operand. Fix interlocked gueues to set MM.NOINT before trying Avoid machine hang loading the TB. Fix FPD bug in MATCHC. Avoid machine hang clearing the TB. Initial release to manufacturing. . to restcre VA for TNV fetching process PTE. Page ! i 17 B ; ; ; ! i ! C M ( M ¢ M 0 -4 0 5 0 5 0 5 0 5 3 0 5 4 0 -5 : CHARTS 016 + + + + + + JREGION 010 + + + + + ;DEFIN 065 ¢+ + + + sMACRO 055 + + 056 JINIT 022 ¢+ + : CONSOL 031 + s INTLOG 021 JFLOAT JVIELD T T T 1 T T T = 5 7 5 8 + + + + ¢ + + + 057 + + + 023 ¢+ + + 032 + + + 020 + + + + JCONTRL Q 0 [ 2 5 0 6 3 0 6 4 - 9 9 4 6 019 + 020 + + + o+ 0+ + + + 066 067 + + + + + 059 + + + 0+ + + (025) + + + + + o+ + + + ¢ + + Q22 023 024 + + + (026) + + 021 ¢+ + 022 + 023 + + (026) + + + + + + + + 007 + + + 0+ 017+ + + + + + + o+ 018 + + + 0+ JPCALL 015 + + 016+ + 017 + 0+ + + + 018 sMISQUE 027 028 + 029 + 030 + 3 + + + 032 033 : (HAR 017+ + + + 018 019 020 o021 022 + + (023) + JDECMAL 01 + + + 022 023 ¢+ + + 025 + + (028) 029 JEDIT 010 + 011 012 sMPRCHM 035 + + 036 ¢ + + + o+ sPRLDSY 017 + + + 018 + + + ¥ ; LANDE 037+ + + 038 ¢+ 039 040 + 041 042 + MM 023 + 024 o+ + + 025 v 026 027 019 + ¢ 033 + + 013 + 026 + + + + + 0+ + + + 038 019 + + + + 044 + + + o+ 028 + + 029 021 * + + 0+ (031) + + + 0 + + (010) + + + 031 + 011 + + - + + 018 + + 016 + - e e m. ca M T 037 043 + 020 + + + + + 017 018 028 + + + 029 030 ¢+ L JUVERFY + + + + + + + + + 008 JFILLER 007 + + + 008 009 010 012 013 014 . CMODE PP e L L T P T P e NORUTORINUNLNINSOUNGNIALNLNI PRI T NN DO CICOCO00COTCO00CI0D NN S OO0 NN I AR =2 OO0 O N IS WY 1272 C ¢ M T NOVO == C M VoOC—HI2N ¢ M NOO AT ¢ M PR R TR T ¢ M SOOI cOmprepensive Revision History' RO " Page CLOKX Rev 13.00, Clock rate = 160ns OO .T10C 2 O D00 ~IO~ 1 I [0 302 IW, LW, U [V JV, LV 1V 4] o 2R3kt A PRI A LA PEYXTEINNT O RONUAL IR RNN NI NININITMININI NN ALl S = O 000~ D -0 O 0~NO VISR (MT098.MCX REV7S50.MIC- oOVIO—~IZD MICRO2 1M(01) _28-NDV=83 16:30:35 History. Revision nsive Comprehe OOO—=ED F ;0SR : GHROM on 009 015 (00.05) 18 ;292 ; This is in PCS board, 1295 ; Ammme— * Fm m m 297 -5 ) yyy ! Micro code reyision (MTyyy . ;300 : 1302 305 G 0 08 L o119 ;296 1298 ;299 301 305 3or 0L ;310 FEE CLOKX Rev 13.00, Clock rate = 160ns | $ 3 I PR 2+ 3 mmm—— * ;o : i Part number 2322zF1-00 b e DL L LD bbbl R : b+ : ; f S —b ' i { [N THE REVISION NUMBER INCICATES NEW PARTS xyyy* NOTE | i i ‘ 00 | fos? : bo7o | b 66 : f o116 0113 o110 P 107 F D Pr096 G968 . ’| 096 iv096% i n096 53 ! 0 104 i 0968 i 40 : p27 ! b 101 1 098 1 096 o 5 : 15 096w 096k in0968i i 092 095 ‘) ———— F— PSR - YRR F—— O— F—— . ] ' : ‘ T L : : L T 0 iro096n 096 313 315 boa1e fo11s i t096 0 0964096 v096xi b o112 o109 o106 i 103 f . 318 3 I : A R : 096 100 P A | T S 096%in096niv096n 1 097 | 094 | 092 i SASISRRSSR ) A 009610096011 132 325 L 1 ! O : A I L 326079 = 72 116 71 - , ] L L ! H A ! L 1 0968110968 i1096%i 0968140096k 0964 i 0096% f 113 ¢ 110 § 107 i 104 i 101 f 098 { 095 | 1 [R.S 328 19 L e ———— +i - fmmmmm—————— trmmmm e ———— trmcnsm Y LT e ¢ mmmsescanw temeeecncen. trmnem ] Ammemeemenee- temmmas s EE . SR —— + ecne e memmcem i Module 'E' number Exxx i 11 R ol Page CMTO95 CONTROL STORE PARTS LIST" .T0C ;293 £294 G 2 16:30:35 (MTO95 CONTROL STORE PARTS LIST REV?S MIC P 28=-NOV=83 1M(01) MICRO2 (MT098.MCx ; ek 63 < 56 S5 - 4B 47 = A ' ic096¢i 092 | SASR SL 4039 - 32 31 - 2023 - 06 15 - 08 07 - 00 E IO~ JI2OM I~2OF 1O -o 1O [ OO0 1 OO20T JIOO oOo | 1 OO0®W 110 1 ]+ I 1+ 1+ ] H 7 FNTOUST MO, TIOUM 1 — O Oy L Oy g z — 1 t I 1+ 5+ H ] X ] * . ¢ . + 0 ’ ’ ’ . . . . . [ ’ . v * . . 0 € . . . . . [ . ) [l S ] + i ] <€ 1 + [ » ] ] . — IO 1OIT TOON O 100N 10000 ) — ’ 1 1 [ » - 0 ] .T0C — . 0O EFE = REV?S o 1ETEOQ [ .T0C 20 Page 160ns CLOKX Rev 13.00, Clock rate H 28-N0OV=-83 16:30:35 MICROZ TM(01) PARTS LIST STORE CONTROL 4 CMTO9 (MT098, MICRO2 (MT058. 28-NOV-83 16:30:35 (MTO62 CONTROL STORE PARTS LI1ST REV750. .To¢ 1M01) I 2 CLOKX Rev 13.00, Clock rate 160ns 21/ Page CMT062 CONTROL STORE PARTS LIST' Module 'E' numbe: Exxx Micro code revision (M7 yyy Part number 23zzzF1-09 e NOTE *yyy* IN THE REVISION NUMBER INCICATES NEW PARTS e .. : ) ' 1 1405 ;4606 2407 ;408 .T0. : THE (MT053 ~ (MTO61 (ONTROL STORE PARTS LIST" PAR TS LISTS FOR (MTU53 THROUGH CMTO61 ARE NOT [NCLUDED SINCE THESE WEPE INTERIM E £0's oapod 28-NOV-83 16:30:35 CONTROL STORE PARTS LIST 1M01) (MT098. REV?S DO I— J o2 CLOKX Rev 13.00, Clock rate Page 160ns (MT052 CONTROL STORE PARTS LIST" .Toc r e ———————— R smcEmrer e number Exxx Micro code reyision (MT yyy Part number 23zz2fF1-00 Module B e e e IEI e e eB e e e 011 570 ! s | *yyy* IN THE REVISION NUMBER INCICATES NEW PARTS e 0 1T TyNT i i 117 046 NOTE 046 564 b - $ 046 1 049 522 1 1 1 1— 22 I~Ti us 1 3 ] I 1 ] 1 1= OE} I ~rON [ —~OMN I —OWN I —ON I —ON | —OWwn | ] L TONONON | —OO 1 ORM ] PO 1 O~ | INOVO ! [ IO T IO T I AT IOTIT I O I OMNT~T — ! — OO —mO JOIM OO 1 Or— IO 1 - ' 1 1 )*] 1 t 1] [i} i * CMTOS0 CONTROL STORE PARTS LIST" JT0C Page 160ns 2 CLOKX Rev 13.00, Ctock rate K 1M(01) 28=NOV=-83 16:30:35 M I1CR 02 ¢ MT0 50 CONTROL STORE PARTS LIST (MT098. REV750. 28-NOV~83 16:30:35 CMT049 CONTROL STORE PARTS LIST MICRO2 1M¢01? L 2 CLOKX Rev 13,00, Clock rate 160ns CMT069 (ONTROL STORE PARTS LIST" .1T0C S e Module o L T T number Exxx Micro code reyision CMT Yyy Part number 2322zF1-09 o S o eS rYYyy* IN THE REVISION NUMBER INCICATES NEW PARTS o e i. 1]*Je[} h[e¥*1]d}l - ] ot mm——t o e o i 5 eO NOTE % 044 S88 v o Y 3 ] L* 1 ]* '* *049+ 764 ! e QEI ——— ————— +- 069 1 063 046 1 %049+ 522 ! et 039 033 Q27 045 9+ 9% +049% *(4 1 %049+ *04 715 e 1 709 ——— 703 697 - [ - TN [~ T T OTM IO IOIT— TRSO| ] ! $ ] ] ) ] ’ 3 " ] = ] — 1OTN IO TN IOIT IO I T I OIT IO| - ] 1 . ] ] ! 1< - ] >1 s ! + e + ey _ ] — 1 [ it + A emm—ne R s R i OO O r MPUIM TN OM OO Qe UM TN OM OO = UM I O BIN ;544 Pe ofwy 25 . Page 160ns CLOKX Rev 13.00, Clock rate 2 M 1M(01) MICROZ 28-NOV-83 16:30:35 CMT 0 48 (ONTROL STORE PARTS LIST i3 8 . MCX MTIG RE 4750 .M 16:30:35 28-NOV~83 (MTQ48 CONTROL STORE PARTS LIST MICRO2 1M(01) 544; This page N 2 CLOKX Rev 13,00, Clock rate intentionally left blank. 160ns Page 26¢ Mgty MI(R 0c {HAR TS.MIC M98 MOx CHARTS MIC 28-NQV-83 ;545 ;546 1547 1548 shad 16:30:35 8 3 (LOKX Rey 13,00, Clock rate = LTOC 'CHARTS MIC'! LT0C "REVISION 20.0" Jett Peng, J.Heom, G.Koeckhoven, (. Rev1‘*on History" Adg V025 and v246.25.70 validity=checks to show the hardware conftict between MSR{ / and BUS/ in data tor iPR 3f > £555 vew. Fil tietas (range some documentation and add a few charts forrect some documentation Add rachine check togout and memory control angd status registers, Initial relvase, Page 160ns t. MCDOwWELL, F, R, GUltBAULT 27 (MT098.MCX MICROZ LT0C ' Macro Level Charts 16:30:35 : PSL Chart c 3 CLOKX Rev 13.00, Clock rate = 160ns ! PSW I T R { -----11 R Z 1 WOt RO o e 1IN@DET I =0 MBZ IPL P 1 <001 1 roro (LY 28-NOV-83 : PSL Chart'' fwWro g [ & I wrot 1 DCH I 1 D e NNt - -+ W= 1 OO e+ 1 OTM I * + Macro Level Charts T PR I T Ay e S S wn -~ - i ~ v o wu 558 Je CHARTS MIC 1M(01) BITS DESCRIPTION 3:0 Condition Codes : 4 Trace enable . 583 ; 5 Integer Overflow trap enable ;585 5587 :589 ;9591 :593 é é ; ; i 6 7 15:8 20:16 21 Floating Underflow trap enable Decimal Overflow trap enable Reserved to Digital, must be zero Interrupt Priority Level Reserved to Digital, must be zero 5597 ] 5 f 25124 26 Current Mode Interrupt Stack : 27 First Part Done : £9:28 Reserved to Digital, must be 2ero ;581 ;605 ;605 607 f ; é 22:23 30 R preyious Mode Trace Pending (ompatibility Mode Page 28. e ——TT T o caamenans S MICRO2 CMT098.MCX H 288 LT0C '' Macro Level Charts ;610 P ;61 R ] 1614 1615 HE— ;o ;616 1617 ;618 1619 1620 1621 ‘RW. Lo temsmssmasmceee—- T R ] ; 1+ 00 KksP ;1 01 ESP ;1 02 Sssp ;1 03 046 ; : 1+ 05 1625 ;626 ;627 1628 ;629 ;630 :631 ; ; ; ; ; 1 08 ' 09 + 0A + 0B 1+ 0C 10D i 0T 1632 ;633 1634 635 1636 ;637 1638 ;639 1640 ;641 :642 ;663 ;644 1645 ;666 J647 1648 ;649 1650 e e 28-NOV=-83 16:30:35 D 3 UsP ISP e e e S SmSlSSS e SSSsmsssSSSSSesosooess + e COMET IPR'S Reserved : + 13 ASIR v 14 SIRR ;15 SISR ; ;16 ;17 18 s V1A ; v 10 + 1D s v 1F s ;] CMIERR 1CCS 119 NICR ; ¢ 1B v 1B 1 26 MCESR 1 27 CAER | i ! PROCESS CONTROL BLOCK BASE v+ SYSTEM (ONTROL BLOCK BASE '« INTERRUPT PRIORITY LEVEL ICR TODR CSRS (SRD (SIS (STD ' ! 1 1 33 Reserved | !+ AST LEVEL REGISTER Reserved i Reserved i 35 i E REG SUMMARY INTERRUPT SOFTWARE 1 ' | y 36 Reserved i ! 39 TBIA iRO! (Ml ERROR REGISTER i1 INTERVAL CLOCK CONTRQOL/STATUS ' 37 ! 38 VROV INTERVAL COUNT REGISTER ! 3A © . CONSOLE STORAGE RECEIVER STATUS 'RO! CONSOLE STORAGE RECEIVER DATA i 3C 1 3D Reserved i PMR } \ 3F TBHP 'WO! NEXT INTERVAL COUNT REGISTER ' 1 TIME OF DAY REGISTER o o b B T e 0 0R e e TBIS TB DATA SID v 38 e e ' : . | | {WO. TRANSLATION BUFFER INVALIDATE ALL S | | TRANSLATION BUFFER DATA | + PERFORMANCE MONITOR REGISTER {ROV SYSTEM IDENTIFICATION 'WC! Probe tb for tb hit e e S S NS e m m e e B B + .651 ; e 1653 ; torecrmm e ——————— [ : tmmmenesmunmas—— + ------------------------------ temancuanmnwans. + 652 ;654 ;222 H 1657 1658 ; ; ; ' System ldent1f1cation T L R : ] fmmmmmmn———————— + 1332222222222 111 1:1 1111100000000 00! 10987654:321098°7 6:5 4321098765432 10 00000010:0000000 0' ' : 1 !WO! TRANSLATION BUFFER INVALIDATE SINGLE: tomcanmmmmm———— e o eo S : | 10 RESET !wWO! INITIALIZE UNIBUS 1 MEMORY MANAGEMENT ENABLE ' MME ! 38 Y1 CONSOLE STORAGE TRANSMIT STATUS 'NO CONSOLE STORAGE TRANSMIT DATA temesmecocenca- Famen | |1 ! Vo CONSOLE RECEIVE CONTROL/STATUS { tRO: CONSOLE RECEIVE DATA BUFFER : i1 CONSOLE TRANSMIT CONTROL/STATUS H 1WO! CONSOLE TRANSMIT DATA BUFFER !} TRANSLATION BUFFER DISABLE REGISTER ! 'WO! SOFTWARE INTERRUPT REQUEST REGISTER ! 34 Reserved i ! + : CACHE DISABLE REGISTER MACHINE CHECK ERROR SUMMARY FluISTER: ] 1 CACHE ERROR REGISTER ) {RO:! ACCELERATOR CONTROL/STATUS REG 1 28 ACCS ; 1 29 Reserved i ! H i 2A Reserved | | H i 28 Reserved | | : ! 1 20 Reserved : | Reserved 2D i ! i | Res2rved 2E 1 1 2F Reserved : ! : | i 30 Reserved | i H i 31 Reserved | ! i 3¢ Reserved i CADR 1 25 !+ PO BASE REGISTER POBR PO LENGTH REGISTER 1t POLR i 1 P1 BASE REGISTER PIBR P1 LENGTH REGISTER ' PILR ! 1 SYSTEM BASE REGISTER SBR V1 SYSTEM LENGTH REGISTER SIR Reserved ! P(BB &(BB IPL TBDR \ 24 ! ; TXDB 1 23 | Reserved : Reserved | Reserved i v 10 ;v 11 V12 t 20 RXCS 1 21 RXDB v 22 TXCS O e el + e L L L L] L L LU L DL LD L LD L L T L e 1 INTERRUPT STACK POINTER ;. ' 06 ;v 07 + OF e et e e e I 1RW o i ;| i1 EXECUTIVE STACK POINTER i+ SUPERVISOR STACK POINTER ! 1 USER STACK POINTER ! : : Internal Processor Registers'' KERNEL STACK POINTER v Page .. 29 CLOKX Rev 13,00, (lock rate= 160ns : Internal Processor Registers I R 1622 .623 1624 ee e e -P temmwesmm—a-. e B tmmmesecescsse—- o € 1612 ;613 1M(01) Macro Level Charts (HARTS MIC : o Micro Rev . Hardware Rev e nen—————- + P ——————————— + ------------------------------ tommen S , St ' : : : + ; (MT098.MCX CHARTS.MIC MICRO2 Macro Level Charts Macro Level 28~NOV=83 E 16:30:35 3 CLOKX Rev 13.00, Clock rate = 160ns : Memory Status & Control Registers : Memory Status & Control Registers'' Charts IREIEIRIR Y .Toc ! ISRERED = 2 g 2 e e e e Disable (Ml = 1 =mmmmm= . Read = 1, Moaify = 0 ====¢ virtual = 0, Physical = 1 - Saved (CPU Mode <1:0> ! Read Lock Timeout = 1 ==e=sescesemcca=-= + 18 G1 Tag Parity Error ===sss===sscwwson- + T8 GO Tay Parity Error ====s===sew=cecce——o-o- + T8 G1 Data Parity Error ==smmsssscc—ccwo—oo—o- + TB GO Data Parity Error ===s-sssesccccocecmcoan + T8 Hit on last reference (GO or G1) ========r=w—=e—r-=— + Memory Error (Timeout, error) ==-==s-===-=-—s-ssoo~oconos + Uncorrectable Error ===-==--c-mommosmmeococommmoma o m s+ Lost Error ====w=-cmmco-ccccccoccancnanan=- Hemmmmr s ssm— -+ 13322222222¢211111111110000 109876543210987654¢32109876 : MB2 O Corrected Read Data =w--===sosss=sos—mmosomccousssessnsersenSse- P e 3 P Mo + ' + BUS ERROR, Refer to Bus Error Register or (MIERR ===-=-= ¢ 16 PARITY ERROR, Refer "to (MIERR. s eN = me == (HARTS Ml > (MT098, M 28-NOV-83 MICRO2 1M(01) : Macro Level. Charts i TBDR o o F 3 CLOKX Rev 13.00, (lock rate = 160ns Memory Status & Control Registers eB e e 0 e e e e o 16:30:35 e O D OB O O om0 TRANSLATION BUFFER GROUP DiSABLF REGISTER e e O 5 e e + e0 e e e T WD Y 0 B i 0 DO S IPR #*X24. + O e 133222222222211111111110000000070 01 M1 0987654643210987654321098786543210! : mMBZz O %90 P TT T o e A ey e P D e e 0eO 0 e N e e o= n——— + =======-- + 3 3: 0 = Random Replacement, 1 = Force Replacement 0 = Replace Group 0, 1 = Replace Group 1 ==-====wm===—ce-c- + 0 on + en 1 = Force Miss Group 1 ====mescecccmmccoceconco T TR R I es + ———————— s SR eEems 1 = Force Miss Group 0 =-====sw=- Eemm B o e i CADR 0 e B P PRI AP tenane NN WA O O Py ae1,¥ 1,8 ~y PONY > > — b d b 2 b b YO N I WD — N ~n SO0 N Tl ol A Ve SUES AN AN e PNV NN TN NS e N NN NN NN TIN SN N NN NN~ SNNNN tomtmbpmtmimtpmtmtmtmtatmtmtmtpmtetmtetmtotototototopmbmbutmtumtmmt ot o T 0T e 8 o T e T o o o S S o O e B ee e e e P CACHE DISABLE REGISTER e s + IPR #*X25! e e e e+ '3322222222221111111111000000000020: 109876543210987654321098765432101 =t =t tmtmtetmtotmtmtmtmtmpmtatmtetetmtotmtntmtobmtctotmtmtmtmtnt : B e e MBZ o e e I =+ B B e ————+ o -———— 1 = (ACHE UFF =wmmememmmeceseceseeeeee——————————— o o © (AER e e B e CACHE ERROR REGISTER e D S e e e IPR #~X27 + e 133222222222211111111110000000000: i109876564321098765432109876543210¢0; tmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtutmtutntetututmtnbetbmtmtabmtut =t : b e e i e MBZ T 4 e e e e e I + e eL Cache Tag Parity Error =-==-s=s-ssecsccwcscmcuuuenmenanem~es . Cache Data Parity Error s===--m==-em-ese—ccc—cncacssacccnnen t o sA s n oo sces sn een oo mannan s asmmmem LSt EFFOr —=s-=ome (ache HIT mmmmmm e s e e e em e o m mm————— e — S e+ Page 31 MICRUZ 8 . MCX (MT09 R 1o R 1744 1245 . 746 1747 ;7468 1749 ;750 ;751 ;752 . 753 1754 1755 ;756 ;757 ;758 . 759 Macro Leve! Charts CHARTS MIC Macro Level 28-NOV-83 G 3 CLOKX Rev 13.00, (lock rate = 16:30:35 : Machine Check Logout Stack Page 160ns : Machine Check Logout Stack'' MACHINE CHECK EXCEPTION STACK LOGOUT TABLE Charts (SP) (SP)+4 (SP)+8 (SP)+( D . TM(01) (SPY+10 (SP)+14 (SP)Y+18 (SP)+1( (SP)+20 (SP)+24 (SP)+28 (SP)+2( (SPY+30 LENGTH PARAMETER 32MMARY PARAMETER 00000028 0000000x XXXXXXXX SUMMARY PARAMETER XXXXXXXX Time Out, or TBUF parity Micro~sequencing error, 6 itler micro-code entered 7 = Bad IRD P. at time of error XAXXXXXX MDR SAVED MODE RLTO T8GPR CAER BER MCESR PC PSL REG 0000000x 0000000x 0000000x 0000000x 0000000x 0000000X XXXXXXXX XXXXXXXX 1 l €S Parity Error Memory Error, (ache Parity, 32 CMT098., MCX : ; ;763 $ 764 2 765 i 766 R ;761 ;762 13322222222221111111111000000000 11090876543210987654321098765¢3210 R 1760 767 ;768 2764 :770 Clock rate = 160ns Y CHARTS .M 1C H 3 (LOKX Rev 13,00, 28~NOV=-83 16:30:35 TMM) MICRO2 Logout Stack Check Machine : Charts Ma;ro Level +-+—+-+-+-+-+-+-+-+—+-+-+-+-+—+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ' MB2 e e T e 0 e v t=1t me + s e ———— Read Lock Time Out on (Ml ==c=vesscscmsomuaes mEmeme ; 1771 ;772 e 0773 : SMR 1774 0775 1776 777 1778 3 : o ;780 : ; ;790 ;79 K ; 20 e e o e B O 4 e o R+ AXT4(SP) ! e0 e + e MB2 B Y P 2 o e e A fommm—— + virtual Reference = 0, Physical Reference = 1 =~==mwmoscnees t Saved (PU Mode <1:0>, 00 = kernel =====m==m=-sc-—=—cm—coo—-o- + 01 = Exet 11 = User —=-===e-mscmesnmcsnon- mem———— + 10 = Supervisor o ee eo ! BER 4 1792 1793 e e e e D O 8 O O T RT T e e T BUS ERROR REGISTER ee oS e o e 0 T O e e e 4 e+ e e *X24(SP) gO O ! 2 e+ 133222222222211111111110000000000: 10987654321 098765432109876543210 3 7 2795 2796 ;797 +~¢~+-+-+—+-+-+-+—+-+-+-+-+-+-+-+~+-+-+-+-¢—+-+-f—+-+-+-¢-+-+-+-+ ‘ o ;798 801 1802 SAVED (PU MODE REGISTER e e O Read Reference = 1, Modify Reference = 0 =—=~ewemecamccas ol E' ;784 ;785 ;786 . 787 1788 1799 ;800 e e O +-+-+u+-+—+~+~+-+~+-+—4-+-+-+-’-+-+-+-+-+-+-+-+-+-+-+~+~+~+»+-+-+ ;781 . 782 1789 vt o e 2 O 133222222222 2 11 1 1 1 171111000000000 0! 10987654643210987656432109876543210: 1779 ;783 O s e L o m8? e e e L e e e A fememm—- + Memory Error —=—w---sssecsscsmososoc-cccsasosonmsssmnnan- s N . uncorrectable Error --==essssmcemessccmssesecoraoeannona oo s+ et escses Lost Error ===wwcsccecmcccsmmsamanmescosc Corrected Data Error ]+ L L ==emeoscsccsrccccnennemonn T Page 33 MICROZ :382 .T0C ' Macro Level Charts ;882 h vector Description ;807 ; S(BB+0 Not Used ;809 ; S(BB+§ ;811 ;812 ;813 : ;. ; Macro Level Charts CHARTS MIC : ;808 ;810 . 814 ;815 S(BB+4 ;. S(BB+( . SCBB+10 S(BB+14 SCBR+18 S(BB+1(C s S(BB+20 ; ;816 ; S(BB+24 ;818 ;. SCBB+2( ;817 ; S(BB+28 1F € Reserved Opcode Customer Opcode XF( Reserved Operand - E E E - Reserved Address Mode Access Violation Translation Invalid ;843 ; 1 E E ! E |i E - E 10 1 P 3 4 1 i 1 1 1 S(BB+98 S(BB+9C S(BBtAD Soft Interrupt Sott Interrupt Soft Interrupt 6 4 g SCBB+AL Soft Interrupt B Soft Interrupt S(BB+AD SCBB+R4 Corrected Read Data Soft Interrupt Soft Interrupt 1A 5 1 : D ] ; 14 J 14 ] 9 A ] 1 Y 1 £ F 18 Receive | ; | ’ Soft Interrupt Soft Interrupt Interval Timer TU-58 14 14 ;847 ;gzg : ; SCBB+110~-128 S(B8B+200 MASSBUS unibus 14-17 14=17 ;850 * MACRO VECTOR BITS<1:0> = 0 ; Process Interrupt on kerne. Stack uniess PSL <S> = 1 1853 : MACRO VECTOR BITS<1:0> = 3 ; Halt Processor ; ; (oncole Transmit ' ' ! | | | TU-58 Transmit Console Receive S(BB+F( ! 1 I 1 i S(BB+B8 $(88+8( SCBB+(CO SCBB+FO ! E S(BBtF& S(BB+F8 ;851 . 852 ; Write Bus Error Soft Interrupt Soft Interrupt Soft Interrupt Sott Interrupt S(BBt54 - ;. ; H | ! | CHMK ;844 ;845 1846 ! : ‘ E 3 E Sott Interrupt Soft Interrupt ; ; s i ! - SCBB+AL SCBB+A8 ;840 ;841 $842 * ; | : : ; ; ! 3 - - : : 839 - Compatability Mode Arithmetic Trap SCBB+60 5(BB+84 SCBB+88 S{BB+8( $CB8B+90 SCBB+94 : 1E - : . ; : H : 838 34 E E S(BB+40 : 1F Trace Trap Breakpoint Opcode ;826 ;827 ;828 ;829 ;830 ;831 . 837 i Power Tail CHME CHMS CHMU ;835 ;836 : System Control Block Kernel Stack Invalid S(BB+44 5(BB48 S(BB+4C ;. . ; Page CLOKX Rev 13,00, Clock rate = 160ns - : ; ; ;832 833 . 834 3 - Machine Check ;822 823 1824 ; I 1/8 S(BB+30 S(BB+34 ;825 16:30:35 IPL ;. : : 28=NOV-83 : System Control Block" ;819 ;820 : 821 { 1M(01) (MT098.M(X ; I 1 1 I MACRO VECTOR BITS<1:0> = 1 ; Process Interrupt or Exception on [nterruot Steck MACRO VECTOR BITS<i:0> = 2 ; Trap to W(S tocation 2001 tor service it WS is present . ‘ MICROZ 1M(01) CMT0O98.MCX : Macro Level Charts CHARTS.MIC H ggé L.T0C "' Macro Level Charts :ggg : {836 859 ;860 ;861 ; : ;863 ;464 ;865 ;866 ; : ; ; ;862 ;867 ;868 ; Eg;l : ;873 \ 1876 1877 CLOKX Rev 13,00, (lock rate = 160ns : Massbus and uUnibus Vector Generation ; ; MDR after CMI WRITE VECTOR from a Massbus Adaptor 4o cmmmmmmmeem e e e m e etemmem e m e ———————— + 133 022222222221111111111000000000 0! M109876543210987654321098765432210 +-v-+~+-+-+-v-+-+-4~+-+-+~+-+—+-+-+-+-+-+-+—+-+-+-+-f—+-+-+-4-+-+ Y 0 0! 001 xx 01 MB7 . ~=====t ---+-~-----+ -------rfi-sesmnee——— semccccossms fmmmmmemm——e :! o XX = The encoded priority plug BR. XX = Q0 far FRG = 07 for LRS = 10 for k6 ‘ur BR7! : YY = The MBA address jumper selection. 0! & for 00 = YY = 01 vor ¥30 1 = 1% = 10 for MiA 2| ; ‘0 12221171212 l. MB? : MDF after (Ml WRiTE VECTOR from UBI ; ' : : —— frormmm—. e ee Fmm e e o : | MDP after (Ml WRITE VECTOR from UB! O e 35 : Massbus and Unibus Vector Generation'' ; " Page Loz ; UNIBUS VECTORS ; .g;g MASSBUS VECTORS 3 : ;ggg : 28=-NOovV~-83 16:30: 35 e e o e s e e e MB2 e e o e e R mm———- 1 2 N e B 0 e '1 0212 Z b4 Z 111 2. mrEtEmmmmnt m e m - e ——— 222222217 = The Unibus vector K L.T0C '* ; ;s ;. ; : ;5 : ; ;. ; . : ;. ; ;. ;. ;. : . . : . ; s ACBB ACBD ACBF ACBL ACBW ADAW] ADDBZ ADDB3 ADDPD2 ADDD3 ADDFZ ADDF3 ADDLZ ADDL3 ADDP4 ADDPE ADDWZ ADDW3 ADWC 9D &F 4t F1 3D 58 80 81 60 61 40 41 (€O (O 20 21 AQD Al D8 AOBLEQ F3 F8 79 BB(S B8S BBSU BBSS c3 0 E4 Ee . £E9 BLEQU BLSS 1B 19 BLSSU BNEQ ASHP ASHQ ; . ; . ; BLBC BLABS BLEQ £ ES ; 14 8GTR BGTRU 1A BI(B2 B8A BICB3 8B BICL2 CA BICL3 (B BICPSwW B9 BICW2 AA BICW3 A8 BIsB2 88 BISB3 89 BISL? (8 BISL3 (9 BISPSW B8 3ISw2 A8 BISW3 A9 93 BI1B D3 BITL B3 BITW AQBLSS F2 78 ASHL B8 BBCC : . ; . BBCCI BBSSI B(C BCS BEQL BEQLU BGEQ Page v Instruction Name vs Op code'’ Macro Level charts . . ; 3 MITRO2 1M(Q1) 28~NOV-83 16:30:35 . CLOKX Rev 13.00, Clock rate = 140ns : Instruction Name vs Op Code Macro Level charts CMTO98.MCX CHARTS .MIC BGEQU E7 BNEQU 3PT BRB BRW 8588 E6 1E 1F 13 8sS8W Bv( BvS CALLG 1€ CASE 13 1E CALLS CASEL E8 15 1F 12 12 03 11 k3 10 30 1C 1D FA fB 8r (F EA 00 INC8 96 128 INCL INCW 86 INDEX DA INSGH] 5¢C INSQT!I 5D INSQUE OQF FO INSV 17 JrP 16 JSB8 LOPCTX 06 Mova MOVTC 70 2F MULB? MULB3 MULD2 MULD3 MULF2 84 85 64 65 44 resvrd 59 resvrd 5A resvrd 58 resvrd 77 04 RET 9C ROTL 05 RSB D9 SBW(C 2A SCAN 38 SKPC SOBGEQ Fé& SOBGIR F5 SPANC 2B D’ MATCHC 39 MULL2 C4 susB3 67 MNEGB 8E 01 suBLe MNEGL MNEGW CE AE A7 MOVAF DE 7A D FE FF MOVC3 MOov(S MOVD MOVF 28 2C 70 50 D4 7L B4 91 29 F9 7 CVIPL 36 CVITP 26 CVIPT 24 (VTIPS 08 CVTIRDL 6B CVIRFL 4B CvisP Q9 (viwe 33 6D CVTW CVIWF 4D CvTwL 32 71 DECL (MPW (MPZVv EC 81 ED DIVD3 DIVF2 DIVFTM (YIBF (viAL 4C 98 CASEW CHME AF BD CHMK CHMS CHMU CLRB CLRD CLRF B8( BE BF 94 7C D4 (MPC5 2D CLRL CLRQ (LRW (MeB MPC3 (MFD (MPF CMPL (MPP3 (MPP4 (MPy (RC cviab (viBWw CVIDR CVIDF (VIDL {VIDW (VIFB CVIFD CVIFL {VIFW (viLe (vILD CVTLF 1 D1 35 37 08 6C 99 68 76 6A 69 48 5% 4A 49 Fé 6F 4 CVILP CVILW DECB DECW plvee DIvBY DIVDZ2 Divie DIVLY DJVP DIVW2 DIVW3 97 87 86 87 06 46 47 (6 (7 27 Ab EDITPC 38 78 EDIV EMOUD 74 EMODF 54 EMUL ESCD ESCE ESCr EXTV EE FFC £E8 EXTZV EF FFS HALT LOCC 3A MCoMB 92 MCOML D2 MCoMw B2 D8 MFPR MNEGD MNEGF MOVAB MOVAD MOVAL MCVAQ MOVAW Move MOVL MOVP 72 52 MOVTUC 2F Movw B0 MOVZBL 9A MOvZBW 98 MOVZWL 3C MTPR DA MULF3 45 MULL3 MULP MULWZ MULW3 (5 25 A4 AS POLYD POLYF 75 55 NOP 62 6} 4¢ 43 suBL3I SUBP4 (3 22 (¢ 23 A2 PUSHAD 7F 1578 95 DD BB 02 SE XFC XORB2 XORB3 XORLZ BS FC 8C 8D (CC REMQUE OF XORWZ AC( DE 7F 3E 90 PUSHAF DF PUSHAL DF PUSHAQ 7F PUSHAW 3F MOVPSL DC suBD2 suBD3 SUBF2 SUBF3 SUBPG6 SUBWZ PROBEW 0D PUSHAB OF DO 82 83 PGPR BA PROBER 0C JE 7E 34 suBB: PUSHL PUSHR RE1 REMQH] REMQT] 5¢F resvrd 57 SUBW3 A3 SVPCTX 07 1STD TSTF TSTL 1STW XORL3Y XORW3 73 53 DS (D AD 36 : MICROZ2 1M(01) (MT095 . MCX ; 28~NOV-83 16:30:35 L 3 Page Rev 13.00, Clock rate = 160ns CLOKX 3 : ESCD Instruction Name vs Op Code(Two hyte op codes FDxx) Macro Leve! Charts CHARTS . MIC : : ESCD Instruction Name vs Op Code(Two byte op codes FDxx)"' 10C " Macro Level Charts ';gsg 37 ! ; { 1924 1925 ! 1927 { 1923 ! 1926 ;928 1929 ;930 ;931 ;1932 ;933 1934 ;935 ;936 1937 f ; : ;. ;. : ; : ; ;otMPG ;o CMPH ; CVIBH ;951 ;952 1G53 1954 ;955 ;956 1957 ;958 ;959 1960 ;961 1962 ;963 ;964 MULGS 46 51 MULG3 71 45 resvrd 15 resvrd 16 resvrd 17 resyrd 18 resvrd 19 resvrd 1A resvrd 18 resvrd 1C resvrd 3( resvi'd 3D resvrd 3£ resvrd 3F resvrd 57 resvrd 58 resvrd 59 resuyrd 5A resvrd 93 resvrd 94 resvrd 95 resvrd 96 resyrd 97 resvrd 9A resvrd 98 resvrd 9C resv:d BA resvrd BB resvrd B( resvrd 8D resvrd BE resvrd BFf resyrd CO resvrd (1 resvrd DF resvrd EQ resvrd E1 resvrd E2 resvrd &3 resvrd E4 resvrd E5 resvrd Eb resvrd 1£ resvrd 5( resvrd 9t resvrd (3 resvrd EB resvrd 20 resvrd SE resvrd A resvrd €5 resvrd 1D resvrd 58 resvrd 5D resvrd 9D resyrd 9Ff MULH2 64 ; ; CVIDH (VIFG 32 99 POLYG POLYH 55 75 resvrd 21 resvrd 22 resvrd 5F resvrd 77 resvrd Al resvrd A ; ; CVIGB CVIGF PUSHAD 7F resvrd 00 resvrd 24 resvrd 25 resvrd 79 resvrd 7A resvrd At resvrd AS 1943 ;944 ;950 -~ 74 52 7¢2 7E 7E 50 70 7D 4C :940 ;941 ;945 1946 ;947 1948 ;949 EMODH MNEWG MNEGH MOVAH MOVAO MOVG MOVH MOVO CVIBG ;s 1942 4F &F 40 41 60 61 7C 7C resvrd 1F ;938 :939 ACBG ACBH ADDG? ADDG3 ADDH2 ADDH3 CLRH CLRO ; ; ;, CVIFH ;. . ; ;. ;. CVIHG CVIHL 76 6A CVIWH DIve2 6D 46 ;. ;o ;s ; ;. ;o . . ; . ; ; e s CVIHF CVIHW CVTLG CVILH (VIRGL (VIRHL CvIwe DIVG3 DIvHZ DIVH3 EMODG i 56 4A 49 68 F7 resvrd 01 resvrd 02 69 4E 6F 4B 6B 4D resvrd 03 resvrd Q4 resyrd 05 resvrd 07 resvrd 08 resvrd 2€ resvrd 2D resvrd resvrd resvrd resvrd resurd resvrd 09 0A 0B 0C 0D Of resvrd OF resyrd 10 47 66 resvrd 11 resyrd 12 &7 54 resvrd 13 resyrd 14 b e resvrd 23 resvrd 26 resvrd 27 resvrg 28 resvrd 29 resvrd 2A resvrd 06 F6 e 65 PUSHAK 7F 08 48 33 CVIGH CVIGL CVIGW CVviHB CVIHD : MULH3 ¢ e et —————- resvrg 28 resvrd resvrd resvrd resvrd resvrd resvrd 2F 2F 30 31 34 35 resvrd 36 resvrd 37 resvrd 38 resvrd 39 resvrd 3A resvrd 36 =t o e - o 4 i resvrd 78 resvrd 78 resvrd 80 resvrd 81 resyrd 82 resvrd 83 resvrd 84 resvrd 85 resvrd 86 resvrd 87 resvrd 88 resvrd 89 resvrd 8A res.rd 88 resvrd 8C resvrd 80D resvrd 8t resyrd 8F resvrd 90 resvrd 91 resyrd 92 resvrd (2 resvrd (4 1 resvrd E7 ! i resvrd E9 resvrd EA ; resvrd EB resvrd EC ; ! ! resvrd Af resvrd A9 resvrd AA resvrd resvrd resvrd resvrd resvrd (B CC CD CE (CF resvrd EE resvrd Ef resyrd FO resvrd F1 resvrd f2 resvrd F3 resvrd F4 resvrd A( resyrd AD resvrd D1 resvrd D¢ resvrd F8 resvrd F9 resvrd A3 resvrd Ab resvrd A7 resvrd AB resvrd AE resvrd A resvrd B0 resvrd Bl resvrd B2 resvrd B3 resvrd B4 resvrd BS resyrd Bo resvrd B7 resyrd B8 resvrd 89 resvrd (6 resvrd (7 i ! | :| f !! resvrd C8 resvrd (9 resvrd CA resvrd DO resvrd resvrd resvrd resvrd resvrd resvrd D3 D4 DS Dé D7 D8 resvrd D9 resvrd DA resvrd DB resvrd DC resvrd DD resvrd DE resvrd ED ; !! | ' resvrd F5 resvrd resvrd resvrd resvrd resvrd resvrd SURG3 SUBG2 SUBH? SUBH3 TSTG TSTH FA fB FC FD fE Ff 43 42 62 63 53 73 . | i : CMT098.MCX MICRO2 .T0C ' Macro Level Charts Macro Level Charts CHARTS . MIC ;00 HALT ;01 NOP ;02 REI ;03 BPT i 04 RET ¢ 05 RSB i ¢ + 07 SVPCTX 08 CVIPS 09 CVISP ;06 LOPCTX i ¢ i : i * * > 1M(01) OA INDEX 0B (RC OC PROBER 0D PROBEW OF INSQUE OF REMQUE 1y BSBB 11 BRB P12 BNEQ ¢ 12 BNEQU P13 BEOL ;13 BEQLU ;14 BGIR Y 15 BLEG " 28=NOV=-83 48 CVIFB 49 CVIFW LA CVTFL 4B CVIRFL 4C CVIBF 28 MOV(3 4LE CVTLF 29 (MPC3 24 SCANC 28 SPANC 2C MOV(S 20 CMPC5 2E MOVTC 2F MOVTUC 30 BSBW 31 BRW 32 CVTWL 33 CVTWB 34 MOVP 35 (MPP3 36 (VIPL 37 (MPP4 38 EDITP( 39 MATCHC LD CVTWE 4F ACBF 50 MOVF 51 CMPF 52 MNEGF 53 TSTF 54 EMODF 55 POI.YF 57 resyrd 58 ADAWI 56 CVIFD 59 resyrd 5A resyrd 58 resyrd 5C INSQHI S Y 3D ACRW 3 MOVAW 63 SUED3 64 MULD2 19 BLSS 1A BGTRU : 1B BIEQU Lo1C BV IF PUSHAW 4C ADDF? 62 SUBD2 9E MOVAB 9F PUSHAB AQ ADDW2 A1 ADDW3 ¢4 MULL2 (5 MULL3 ¢6 DIVL2 €7 DIVL3 E7 BBCCI E8 BLBS E9 BLBC EA FFS 7A EMUL 78 EDIV 7C CLRD 7C CLRQ 7D MOVQ 9D ACBB 7E MOVAD A2 SUBW2 7F PUSHAQ A5 MULW3 7E MOVAQ 7F PUSHAD 81 ADDB3 82 SuBB2 85 MULB3 86 DIVB2 87 DIVB3 A3 SUBW3 A4 MULW? Ab DIVW2 A7 DIVW3 A8 BISW €3 SUBL3 {8 BISL2 €9 BISL3 CA BICLZ (B BICL3 CC XORL? (D XORL3 CE MNEGL A9 BISW3 AA BICW2 (F CASEL DO MOVL AC XORW2 AD XORW3 D2 MCOML D3 BITL AB BICW3 4 DIVED 47 DIVES 6C CVIBD 6D (VIWD 6A CVIDL 68 C(VIRDL BA BI(B? 8( XORB? 8D XORB3 BE MNEGR 8F (ASEB 90 MOVB B0 MOVW B2 MCOMW B3 BITW B4 CLRW 85 TSTu B6 INCW E1 BBC E2 BB8SS E3 BBCS E4 BBSC - | s ! , ! i ; j i i | | EB FFC : EC CMPV ED CMPZV ! : ! ; EE EXTV EF EXTZV FO INSV F1 ACBL F2 AOBLSS F3 AOBLEQ F& SOBGEQ F7 CVILW F8 ASHP ! FS SOBGTR Fé6 CVTLB D5 TSTL F9 CVTLP D7 DECL FB CALLS DA MTPR DB MFPR FE ESCE FF ESCF D8 ADWC D9 SBWC = E6 BBSSI D1 CMPL D6 INCL 69 CVIDW : 20 ADDP4 P21 ADDPG 79 ASHO E5 BBCC €1 ADDL3 Bl CMPW 43 SUBF3 EO 8BS ¢2 SuBL2 98 MOVZBW 88 BI(R3 67 DIVD3 DF PUSHAL 9C ROTL 78 ASHL BE CHMS BF CHMU 0 ADDL.2 68 CVIDB 1F BGEGQU 44 MUl 45 MULF3 BD CHME DC MOVPSL DD PUSHL DE MOVAF DE MOVAL DF PUSHAF 96 CVTBL 99 (VTBW 9A MOVIBL D4 CLRF D4 CLRL © 1 BCS Y1 BLSSU 97 DECB BC CHMK AE MNEGW AF CASEW 41 ADDF3 42 SUBFQ 96 INCB 87 DECW 88 BISPSW B9 BICPSW BA POPR BB PUSHR 88 BISB? 89 BISB3 1D BYS TE B(C 74 EMODD 91 (MPB 92 MCOMB 93 BITB 94 (LRB 95 7SIB 45 MULD3 €6 DIVD2 : ¢ : 75 POLYD 76 CVIDF 77 resvrd 83 SUBB3 84 MULB2 SE REMQHI 5F REMQGTI 50 ADDD2 61 ADDD3 3¢ MOVZWL 73 1S1D 80 ADDB? 3A LUCE 38 SKPC 18 BGEQ 6E CVILD &F ACBD 70 MOVD 71 CMPD 72 MNEGD 38 Page CLOKX Rev 13.00, Clock rate = 160ns : Op Code vs Instruction Name 5D INSQT] i 16 JSB Y17 MP * M3 ¢ Op Code vs Instruction iame'' 22 SUBP4 23 SUBP6 24 CVTPT 25 MULP 26 CVTTP 27 DIvP 16:30:35 FA CALLG FC XFC FD ESCD : v ! resvrd resvrd resyrd resvrd resvrd resyrd resvrd resvrd resvrd resvrd resyrd resvrd resvrd resvrd resyrd ADDG?2 ADDG3 SUBG2 SUBG3 MULG? MULG3 DIVGe P1VG3 CvIGB (VIGW resvrd resvrd resvrd resvrd 5D resvrd resvrd resvrd ADDHZ ADDH3 SUBHZ SUBH3 MULH2 MULH3 DIVHZ2 DIVH3 (VTHB CVTHY CVTHL CVIRHL CVTIBH (VTWH CVILH PUSHAH PUSHAQ resvrd resyrd resvrd resyrd resvrd resvro resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvru resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resyrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd E2 O AN — NN resyvrd resvrd res\rd resvrd resvrd resvrd resyrd QOO CVTIGH resvrd C/TFH CVTFG S OMMO A D 2> 000 resvrd resyrd resvrd resvrd POLYG resyrd NINNN resvrd resvrd EMODG resvrd resvrd resvrd resvrd resvrd resvrd resyrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resyrd resvrd resvrd resyrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd 1 esvrd resvrd resvrd resvrd VOO resvrd resvrd 39 resyrd resvrd CMPG MNEGG TSTG resvrd resvrd resvrd T T T T T T T T M T minmmmmmm mmemmm resvrd resyrd resvrd resvrd CVIDH CVTGF resvrd MOVG ACBH MOVH (MPH MNEGH TSTH EMODH POLYH CVTHG resvrd resvrd resvrd resvrd resvrd CLRH CLRO MOVO MOVAH MOVAQ MO AP resvrd resvrd CVTIGL CVIRGL (VIBG CVIWG CVILG ACBG MM NN resvrd OO NN NI = O VN WSO TM resvrd SO TMO D> DN [FOUGIIEF Iy, Y resvrd resvrd resvrd resvrd A AN NN (NN AN AN resvrd resvrd ef resvrd 3 ‘minls lalnialein 0 o resvrd PURUNUNUNY b ot b mch a3 md e oD b = S T R resvrd resvro resvrd N AT resyrd resvrd resvrd resyrd resvrd resvrd L N T T e e OO [ SV, F R V] N b e ced b ed JRFRN e resvrd resvrd resvrd resvrd resvrd resvrd resyrd resvrd resvrd resvrd resvrd N CLOK: Rev 13.00, Clock rate = 160ns 16:30:35 ESCD Op Code vs Instruction Name(Two byte op codes FDxx) : ESCD Op Code vs Instruction Name(Two byte op codes FDxx)"' Charts it il B s AP OO WS W —=OTMMM Macro Level TE TR PR PR PR ~NON NS AN 2 O 000 NP NFNWNN T 2O 0 OO D2000COOCODCOOOCOD OOOOOOOOD Qe Gar SurGurr . WA N W N IAW RN NG N PO NI NONI NN — = JI0C b b B o d D ad d D b o %ete%evanatetonetetatononstone e, e mems h i ot D oed d b D e eeal 3 TE T L e 1M(01) 28~NOV-83 MICROZ : Macro Level Charts CMT098.MCX S . MIC CHART resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd resvrd rasvrd resvrd resvrd resvird resvrd CVIHF CVTHD resvrd resvrd resvrd resvrd resvrd resvrd resvrd resyrd Page 39 MI{RCZ CMTOSA My Mairo Level (harts TRARTS MES H il:fy ;ont ode :::z: T« NERED P $1o38 ;083 RSS 106l ;1063 ;1066 TCD T TMIQD) Marro cesel (harts : 1h=Bir Opccie e e ; p s u00000 ¢00060" 30000¢ Q00003 000004 000005 . . o ! Legat Colmstruc, dmmmmcrmm——m- dmmmm . RT] ) - Q00006 RTT 000007 HALT WAlT inst fault) . . 075000-87500? ' ! FADD (Rsvrd inst fautt) (Illegal inst fault) i i 075020-075027 ! i FMUL (Rsvrd inst fault) 101069 ;1070 ;0 000210-000227 000230-000237 : unused . SPL prere ;w73 10726 :1076 0 ;1078 ;0 002000-002377 : BGE ;1079 |:‘08O {1081 ;1082 1083 1086 ;1085 21086 ;1087 ;1088 ;1089 ;1090 ;1091 ;1092 1093 ;1096 $1095 1096 21097 ;1098 ;1099 : ! (Rsvrd (Rsvrd 000241-000257 ¢ CLR CC'S 000260-000077 1 SET (€S ! : Q00300-000377 | SWAB ;0 . ;¢ 000400-000777 | BR 0 001000001377 | BNE ;. 001400-001777 . BEQ 002400-002777 ' BLT 003000-003377 ' BG!? 003400-003777 . BLE 004x00-004x0Q7 ;¢ ;. ;0 ;' ; © 004x10-004x77 . USR ;0 005000-005077 © (LR 005100~ 0051’7 , (OM UOINC 005200-0 . ;@ 005300-005377 . PEC ;¢ 005400~005477 @ NEG 1 075040-075777 v inst tfault) 1 i 076000-076777 ! inst fault) : | 072000-077777 | SOB ! 1 100000-100377 + BPL ! 1 100400-100777 & BMI i1 101000~101377 ¢t BHI 11 101400-101777 & BLOS !4 102000-102377 & BV( ; ° ;i ;¢ ;o 006400-006477 . 006500-006577 MFPI 006600-006677 @ mIP| 00570-006777 @ sx7 J1106 ; ' s 1106 ; : t ) 103400-103777 | BCS,BLO . JSR v P v (Illegal inst tault) ! ! BIC 104000104377 104088-104777 : 1050 -1850?7 v CLRB 105100~105177 | COMB i1 105200-105277 105300-105377 ¢ 'y 105400-105477 {11055 8—105577 1056 -18567? v ' 1 105700-105777 1 IN(B | DECB | NEGB i ADCB ! SB(B TSTB ' 106080-106077 i RORB v+ 106100-106177 1 ROLB . 186%08~106§?7 i ASRB vt 10630 —186 77 | ASLB I 106430-1 6477 ! : ' MARK : ' : (Rsvrd inst fault) . uUnused (Rsyrd inst fault) T (M (Rsyrd inst fault) trmmeweenmmenne. S R v 106500-106577 . MFPD H 106600~18697? | MTPD vy Vo Yt Vo 106200-1 9 77 10788 107777 110000-117777 1 MOVB 120000-1%7777 i CMPB Vo 130880-1 7777 , N 148 0~147777 | © 1 150000-1577277 + v+ 160000-167777 ¢ * 0 170000-177777 030000-037777 © BIT 040000-047777 ! P FDIV (Rsyrd inst fault) (Rsvrd inst fault) i Unused (Rsvrd inst fault) ! XTD INS (Rsvrd inst fault) ' ' ' : ' : D L L L N adalalal] 4 : BI1B BI(B BISB SUB ! VOEMT ! TRAP : ! ' : : ! MFPS ' Unused : : (Rsvrd inst fault) (Rsvrd inst fault) j fmeemmecEe——————— tmmm—- e ! : ! . : ; ! ] ! ! : | ' ! ! '' , ' : ! : H fRsvrd inst tfault) ¢ FLOAT . : ! ! ! \ MTPS : : . ! (BPT inst fault) (TRAP inst fault) : : ! ' ' . ’ , : : : : ' ! : : i '' : ! ! ! i1 102400-102777 1 BVS ' ! 103000-103377 + BCC,BHIS © 006100-006177 . ROL ;o 006200-006¢277 © ASR ;' 006300-006377 ! ASL : ' ' ' ' H I FSUB 0750%0-075037 L ;' 006000-006077 :@ ROR ; 074000-074777 1 XOR inst tautt) i i 075010-075017 ! ;. 005500-005577 . AD( 005600-005677 @ SB( 005700-005777 . 1S¢ 2100, @ 007000-0G7077 1101 ;0 007100-007777 0 010000-017777 ° MO 1102 ;. 020000-~027777 ¢ (MP J10% $1i05 : (Rsyrd 050000-057777 | BIS ADD 060000-067777 070000-070777 1+ MuL 071000-071777 | Dlv 072000-072777 | ASH 073000-873777 v ASHC + o e0. (Rsyrd 000110-000177 ¢ uMP . NOP D - trmnmn =G dme temececcacncoammeeomes L L L4 Faulting Instructions . MFPT . 1t 000240 ! ' Legal i Instruc. (BPT (jor (Rsyrd . Unused 000200-000207 : RTS 16-Bit Opcode I N o e 0 O 0 40 g O : ! BPT © 107 . RESET 11067 i107¢ J1?7? . ——— temem- - inst fault) : | inst fault) i ! i1 inst fault) | | inst fault) ! | inst fault) ., | . JMP ; Faulting Instructions (Rsyrd (Rsyrd Page CLOKX Rev 13.00, Clock rate = 160ns : Compatibility mode opcode chart L LT - LT - -- ;¢ 000100-000107 ° 1021 ¢ B : Compatibility mode opcode chart" ;. 000010-000077 ;1068 16:30:35 L T T LT$ femmecccnncce——. e ; Ymeesmussssusssed imeeseceon P ;065 yg6 28-NOV~83 ! (Rsyrd inst faull) B L L L L ) » MICKO2 (MYOOS.MEX : Macro Level Charts CHARTS M ¢ : ;}}8; .T0C "' Macro Level Charts ;};?8 . O ; ;1112 1113 FRRTA S5 ;}}}? 7 ; : : : ; Hex Dec 0-3 0-3 ;6 6 & 21122 ;7 43 ;1}%} ; ;}}%Z ; 4 S literal SA#literal y f ¢t £t - deterred ; ;8 8 ;9 9 ;A 10 ;BN ;€ 12 ; D 13 E 14 ;1159 J11600 ~-(Rn) YYyyyy u ¥y ux aL“D(Rn) YYyYyyy p y Y Name Assembler rmwav PCSP immediate absolute b,te relative byte relative deferred word relative word relative deferred tong word relative ]*#constant adaddress B*address aB*address w*address owraddress L*address y uuyy Yy yyyy Yyyyyy y yyyy yyyyy y yyyy yyyyy = = = ~ -~ = = y y y y y y y deferred al"address yyyyy = = Y autoincrement autoincrement deferred byte displacement byte displacement deferred word displacement word displacement deferred longword displacement longword displacement by ;114 1142 $1143 s11484 15 166 ;1167 ;1148 J1187 t u (Rn) Yyyyyy (Rn)+ A(R)+ B*D(Rn) aB*D(Rn) WD (Rn) aw*D(Rn) L*D(Rn) yyyvyy Yyyvyy Yyyyy YYYYyYs YYyYyyy yyyyy Yyyyyy u ¥y ug f t vy Y P y P y p V¥ P Y P Y [V P b4 ux ux ¥ y Y y b4 43210 doemmmamtmtepmted . 1158 f = yyyyy yyyty register deterred i[Rx] Rn Indexable? Program (ounter Addressing (reg=15) ;1139 J1188 0 D115 : Operand Specifier Addressing Modes'' PCSP autodecrement : ;1154 : Operand Specifier Addressing Modes rmwav 7 1137 N8 ;1183 (LOKX Rev 13.00, Clock rate = 160ns Assembler indexed register ;1135 1149 4 0 4 S 1136 ;}}g? ¢ Name ;1123 ;8 8 11124 ;9 9 ;1125 ; A 10 1126 ;B N 27t 12 ;1128 . D 13 ;1129 ;s 14 JM30 0 ; F18 ;%%4? 16:30:35 tom————— tmmmm——— + ! mode | reg ! fmm———— fommemma—— + 1119 (1120 ;1138 28=NOV-83 General Register Addressing 18 ;1121 TM(01) ' : ; Hex 2 ; : mode 't 1 1 1! tammmene ottt F Dec 15 long word relative D i - displacement . any indexable addressing mode r = m - read access modify access t ~ p - reserved addressing mode fault Program Counter addressing a = v = address access field access - U = logically impossible UNPREDICTABLE W - Indexable? write access . . .. ug - UNPREDICTABLE for quad and double (and field if position + size greater than 32) . . ux = UNPREDICTABLE tor index register same as base register » Page 41 . (MT098.M(X MICROZ2 ;}}2; .T0C '' Macro Level Charts 11163 ; ;1165 ;111645 1747 ; ; ; b Macro Level Charts (HARTS.MIC : ;1166 leS Ve RE] 1M(01) 28~NOV-83 16:30:35 /8 /W /L N H Ve Address AT : .1}22 t ; ; ; ; Size ]S Size IS Size IS Virtual ; Examine ; Deposit ;s IP Byte Word Long Address /P ; Ph£s1cal Address /6 ; GPR /1 verto Hex Number . ; Last location ; The PSL * P ,iY?é : E<CR> ; Examine Next Location ;};;g ; D<SP> + <SP> <DATA> <SP> <(R> ; Deposit Next Location }jig? Pon <Ry ; HALT (No=op) 5'}2@ : 1 <CR> ; Initialize ;1326 ; T <CR> ; Execute Micro Verity Sequence ;1;%? ; C <CR> ; Continue the Processor }jigg : N <CR> ; Single Step Jid ; 119 ;1162 ; ST . Y SH18% $119¢ ;1163 ; . ;B [<QUALIFIER=L1ST>] [<SP> ddcu J <(R> : : 1194 ; ;1196 : 21195 11870 ; ;1198 ; ;}58? ; . RN ;1206 ;1308 RN TR TofunN OSSO0 SO R 31203 AR 21202 }1509 [ 1212 dd i Boot : Device : Unit number ; Adapter ¢ u § <SP> <ADDRESS> <(R> ; Initialize the Processor ; ; Start PC <~ Address ; Start the processor X <SP><ADDRESS><SP><0' COUNT><CR><CKSUMT><DATA><CKSUM2> Address ; Cksum? i 2's Comp fheCksum of Command String Cksum2 ; 2's Comp Checksum of Data (ount DPata Start Address of Load . ; Count Bytes of Binary Data Address ; Start Address of Load . Cksum ; 2's (omp CheCksum of Command String (ount ; Binary Load No. of Bytes (Unsigned 30 bit number) X <SP> <ADDRESS> <SP> <1'COUNT> <CR> <(KSUM> :1210 ;1N . Quatifiers : /X : Inhibit Execution of Microverify Sequence : /Hex Number ; Boot (Control Flags (R5) ; A ;1199 Page : : Console Commands'' 0 [<QUAL[FIER~LIST>] <SP> <ADDRESS> <SP> <DATA> <(R> : CLOKX Rev 13.00, Clock rate = 160ns : Console Commands E [<QUALIFIER-LISI>] [<SP> <ADDRESS>] <(R> Qualifiers 4 D ; Binary Read : No. of Bytes (Unsigned 30 bit number) - ———— B b e - A e 22 e < = e i CMT098,M§ fi s (HARTS .M ;{S}Z ,1215 MICRO2 > ! 1M(01) Macro Level Charts 28-NOV~83 16:30:35 E 4 CLOKX Rev 13.00, Clock rate = 160ns : Console Error and Halt Codes T EEL L DL L DL L 2 e e . o o e B B 00 B o B + e e ;] tmmmemmmeaaa- D L T2 1 T SRS cemmmmsemmee—————— emmmemmeememmm—eam————————— cmmmmaent :]2;? ;o ;}g%% [ ;1219 side 1l FE R ' E Binary transfer checksum error, ;;ggg P 33 Unrecognizable Boot device. ;}gsg N 34 Controller not A, B, C, or D in BOOT command. ;1236 L ,1;‘38 ! :1240 e R HE 1 2 R ;& 21246 ;1247 ;o ;1 $1253 ;1 $1248 ;1249 ;1250 ;1257 ;1252 ;¢ N @ 1 ;o ;0 ;& ;¢ PR LA ;;2:5 . L‘,‘ (] e e LT T - ;1246 :1242 ;12643 11244 1248 ; 4mmescmmcememeeccmenme——— e —————————————— D ettt e ;1231 123 133 1239 i ' 30 ;1237 : Error in accessing IPR, or PSL. P 112% 21235 ' ! . ;}552 1230 e Console Error Codes . ACV, TNV, or Machine Check during a read or write. 20 5 6 7 8 A — : Console Error and Halt (odes'' LTUC '* Macro tevel Charts 21216 ;1217 Page k] bt okl bldelodeleddedeindeintelndodniedotointelnteiebuiniutetbniibieidete + : Console Halt Codes 0 T eO e e e T B DT eA e e o e Executed TEST console command e e (ontrol P Halt or single macro instruction mode (ie >>>N<(R>) Interrupt Stack Not valid Double Bus Write Error Halt Halt Instruction Executed Vector Bits <1:0>=3, Halt at Vector Vector Bits <1:0>=2, W(S disabled or not present (hange Mode Instruction executed on Interrupt Stack B (hange Mode Instruction executed and vector <1:0>not=0 11 Power up and can't find RPB, FPS1 at RESTART/HALT 12 Power up and warm start flag false FPS1 at RESTART/HALT 13 Power up and can't find good 64K of memory ) 14 Power up and booting, hut bad Boot ROM or no ROM 15 Power up and cold start tlag set during boot subroutine 16 Power up halt FPS1 at HALT position FF Micro verify test failure ;o N hfuiutadadadedndeinded mmmEmmmmeene=- indedebadedeh e inhabeinindnd It e B DO B 0 v O Y e 0 S e ! ' ' : : i : ! ' ' ' ' : . ataibadedie b abedebinindednindedet o b thabednbaledindndeielebekebebatntninisdattetn bbb A A e m——— + , O O ----------------------------------------------------------------- + TEST NAME/ERROR MESSAGE o 48 - ERROR CLEARING ]PR ERROR FILLING IPR WITH ONES ERROR CLEARING MTEMP ERROR FILLING MTEMP WITH ONES ERROR SOURCING 2 BYTES FROM XB OR INCREMENTING PC BY 1 ERROR SOURCING AN UNALIGNED LONGWORD ERROR INCREMENTING PC BY 4 URI h ERROR FILLING RTEMP WITH ONES ERROR (LEARING GPR ERROR FILLING GPR WITH UNES MTEMP1 MTEMP? MTEMP4 MTEMPS b RTEMP EXPLICIT ADDRESS TEST 1 ERROR ADDRESSING RTEMPQ oo SN0 - RTEMP1. $s1 ERROR ADDRESSING ERROR ADDRESSING ESS RTEMP¢ Ss1ING RTEMP4 ERROR ADDRESS 551 ERROR ADDRESSING RTEMP8 SlJl IPR EXPLICI TA D DRESS TEST ERROF ADDRE SSI N G IPRO S N G ]PR1 ERROR ADDRE $si g N ? IPR? ERROR ADDRE 5§l ERROR ADDREg } N y [PR& NG IPR8 ERROR ADDRESSING ILI '[' PN :v GPR EXPLIC] T ADDRESS TEST ERROR ADDRE S SING R ERROR ADDRE ) SING R1 ERROR ADDRE S SING R? ERROR ADDRE S SING R4 ERROR ADDRE S SING R8 ERROR ADDRE S SING DUAL PORT - - S Ty Y " S NP — ITY 90 S IJI [rel=-RNE N S ADDRESSING ADDRESSING ADDRESSING ADDRESSING 3 MTEMP EXPLICIT ADDRESS TEST ERROR ADDRESSING MTEMPO ERROR ERROR ERROR ERROR SOURCE XB PC INCREMENT TEST ERROR SOURCING ONE BYTE FROM XB IQI ek SCRATCH PAD BIT TEST ERROR CLEARING RTEMP ERROR IN IR ERROR IN OSR d MBUS TEST BAD BIT IN QREG BAD BIT IN MBUS b BAD BIT IN RBUS OR WBUS X8/IR/0SR BIT TEST ERROR IN XB<31:0> ERROR IN XB<63:32> Bk RBUS, WBUS TEST BAD BIT IN DREG QR SUPROT PONONINITONIPOND MO ~ISNO - 4 7%y "} T B PP ol T - 44 Clock rate = 160ns Verify Error (odes"’ - TR e B O —_—— P ¢ Micr o By By e e Om ~ COoOOQ o0 no— :lFl D G : 4 16:30:35 CL”.X Rev 13.00, Micro verify Error Codes QWO OCOOOOOOO VIO LA MOoO@oO~ SN — |El Charts S P T b [ L TE R TETE T TR P PR T T ;1270 S i; 1269 e |“1268 A ;1267 L :1266 Sev.eLvae. 1:1265 - L L evel L1257 28-NOV-83 OR INC PC BY 2 RNUM/DSIZE TEST ERROR READING DSIZE ROM OPERAND ERROR LOADING/READING RNUM ERROR READING DSIZE ROM OPERAND ERROR LOADING/READING RNUM ERROR READING DSIZE ROM QPERAND ERROR LOADING/READING RNUM ERROR READING DSIZE ROM OPERAND ERROR LOADING/READING RNUM LY Macro Level Charts - ;1258 11259 :12A0 01261 ;1262 11263 ]}“\?64 1M(01) MICRO2 [ (MT098.M (HARTS.M — F RNUM./DSIZE TEST CONTINUED ERROR READING DSIZE ROM OPERAND 5 ERROR LOADING/READING RNUM ERROR READING DSIZE ROM OPERAND 6 CACHE PARITY ERROR TEST FAILED TO GET CACHE PARITY ERROR BAD MACHINE CHECK ERROR SUMMARY REGISTER BAD CACHE ERROR REGISTER TR PARITY ERROR TEST FAILED TO GET GROUP O TB PARITY ERROR BAD TB GROUP PARITY ERRUR REGISTER BAD MACHINE CHECK ERROR SUMMARY REGISTER FAILED TO GET GROUP 1 TB PARITY ERROR BAD TB GROUP PARITY ERROR REGISTER BAD MACHINE CHECK ERROR SUMMARY REGISTER CONTROL STORE PARITY ERROR TEST FAJLED TO GET CONTROL STORE PARITY ERROR ERROR IN CONTROL STORE PARITY ERROR LN) CACHE TEST g gt ERROR FILLING CACHE WITH ONES. LOCATION NOT | NITI ERROR FILLING CACHE WITH ONES. UNABLE TO WRIT E e s e e g S St kB At e N0 S U ) A0 e 4 S B0 B i e g B O Oy --------------- + | ! ! ' o (MTO98.MCX N LSNP ID e b b (H Change Mode M (ompatability Mode CN Console Command Parser co Contro! CR (yclic Redundancy Check S Character String DS Decimal String £ED Edit Fl FPA FP Floating Point FX Floatin~ Point txtension for G and H Data Types oL Global It Interrupts and fxceptions It Integer, IN Initialize 0N COSIIONIOUNY = A VAN N HNNNINI NND — S OO0 =JO S OO OSSN 232 OO NN i Micro Code Description Sl d b Label Bootstrap - B N LA AN N N IN VN U AN N A R e NN N UM e A S AN AN W L AN N N N A LN MIN PN AR OO OO OO WO = OO N O AVIA VNI LY Pl o S - T IENTo RWLI o BV NS N WM — D0 [o P ST QU QU S : Micro Code Label Prefixes" Micro Level Charts BO N N LN N A N .. ISP S G S [N B S Ll L L L L L T L [ L L L L L L L L & o St b FPur e N N NN N N N r kb s . MIC CHARTS .T0C ' G CLOKX Rev 13.00, Clock rate TM(01) 28-NOV~83 MICROZ : Micro (ode Label Prefixes Charts Level Micro 16:30:35 [ntertace Code Logical, & Address ) Ltoad and Save Processor Context MM Memory Management MP Move To and from Processor Register MS Miscellaneovus My Micro Verity 05 Native Mode Operand Specifier PL Procedure PR Probe ou Queue VF variable Length Bit - (all tield 160ns Page 45, —— L\Sé? CMT098,MCX CHARTS. MIC ;1368 ;1369 ;1370 13 B1372 p1373 Micro Level Charts 28-NOV=-83 LT0C 'Y Micro tevel Charts : ! Add 0 2 e e e e e ' 0011 : Arithmetic 1 0014 | Timer Service 1 0012 | FPA Integer Overtlow Trap 'y 0015 { T-Bit : » 0020 | Control Store Parity Error i 0021 | Read Unaligned Data : ; : : H N H H : ;1398 ;1399 ; : ;1601 ;1402 ; 1400 ; 1412 e B . . : ; R : ] U0 Service DO Service DO Service DO Service ; Micro Trap v 0022 + MSRC XB Miss Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro Micro v ! ' i 0023 0024 0025 0026 + | | i MSR{ XB ACV ! write Unlock Unalignea Data : Write Unaligned Data Write Unlock Crossing Page Boundry i ! v i ' ; 1 0028 0029 002A 0028 002C 002D | : | | ! ¢ Machine Check Exceptions(See Note) Rut XB Miss Read TB Miss Write 18 Miss FPA Reserved Operand But XB ALV ! Soft ' DO DO : DO : DO : DO DO ! © v ! 0027 002E 002F | ! | ! ! 0038 . Write (rossing Page Boundry Read ACV Write ACV Interrupt 1 . 0039 003A | ! (onsole Interrupt unibus Interrupt 1 i 003C 003E ! ' Corrected Memory Interrupt Write Bus Error Interrupt ! 0038 ! Interval Timer Interrupt ' 003F . Power Fail ;1403 114046 :]“05 21406 21407 1:1408 ;1409 ;1610 ;e e 2 NO Seryice trap 1380 ;1381 1397 Store Address B S : 1 0016 ! Console *P Trap 11394 ;1395 ;1396 CLOKX Rev 13.40, Clock rate = 160ns Fixed Control e v im0 0 Trap : ;1388 ;1389 ;1390 :1391 21392 , 1393 4 H Method of | n1t1at10n .;g;g ;1387 e | function of Vector ¢ 0000 ! Power Up (1376 ;1283 ;1384 ;1585 1386 ¢ H dmmme=ee ey mmmm———t 1375 ;1382 1 6:30:35 : Fixed Control Store Address'' e = tomemen + - ;1374 377 TM(01) H | : ! ! tmmman e o SGLC TR EEE LT et NOTE MSR(C MSRC XB T8 Error XB Bus Error Bus Error Unaligned UNIBUS DPata 18 [rror But But XB 1B Error XB Bus Error Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Trap Service, Service, Service, Service, Service, Service, DO Service, - o Execution Execution Execution Execution Execution Execution Execution - o e e + . MICROZ2 + o Page 46 Micro Level Charts CHARTS.MIC : ;}2}2 1415 LTOC ' 1M(01) MICROZ2 (MT098 MCX : 28-NOV=-83 16:30:35 4 1 : BUT/UVCTR Chart'' Micro Level Charts . . 11476 ; BUT/UVCTR is not valid During any micro cycle that follows an IRD1. 1419 . :}2}; 1620 ;}4%; 1 : ' : : ; ; UVCTR<3> ! ] ;' BUS/PRB.RD.MODE : , ;) BUS/PRB.WR ;! BUS/PRB.WR.MODF P teemeemememmaee- fo ;1435 B 1437 ;;Ggg A [ ! ;0 WCTRL/ZUVOTR_(M, IS5 ! R ! ; | ! H : , 0 ! ! N LSt e tescssssecccscssssen- Fom o ——— o e e e fommmmen— : ' H 1 nE—————————— M.AND,V.AND,AC ' : : H . UVCTR<Y> $164 3 ;1444 A ;1446 R ;3 sV WOTRL/REICHK and wbus = Saved Psl [ R ! - —— - ——————— fomemem e ————— + ! ' : ! ' : V.AND . AC ] H . ! ! AL L DL R PR e , A48 R $T6h0 ;1 UVCIR (MU[S or ;1as3 ;4 BUS is not one ! : ' R ;151 ;s i“3& .ligi 1450 1497 158 1459 1460 Jlatl prabe (RS ;1 WCIRL , s not me : : H ! i 1 . M AC = PTE Modify Bit = 1 if valid PTE = 1 if Access Allowed FA =1 it Memo-y Mapping o e ¢ = REl (heck Ok . 1 = REI Check Qk g AST Pending 2 = REI Check is not Ok 3 = REl Check is not Ok e ee e e + : ! ! ! e ———t H ! : ' 2 = unibus Interrupt 3 = Interval Timer Interrupt ' : : ! 6 = Write Bus Frror Interrupt 7 = Power Fail Interrupt ; : 1 = (onsole Interrupt ! ; PBOK = 1 1f Not (rossing o Page Boundr{ o ! . ! 0 = Soft Interrupt deemmmememeea——. memmctnemaceemme e m—— e —————— tmm————— o legend . ; ' , ;1 the Probe Micro . ; . Orders(see above) : H i i ! 1 ' i PSL<CUR> — e ————— R — remmmmcssm e ————— o , ;L REICHR(see above) ! : ' AC e ——— - —————— -t H | , 0 : h ! H : 1 1 H . P23 v (AC.AND.V).OR : : ! ! V.0R.PA e n e ———— O e PSL<IS> ] j ! }1«40 ; pemmeesmem e mm————— P ———————————— CEL T] e ————e e c eLt T L] o AT ; ! ! Jlage : ! ! UVCTR<O> ! ] e WmmEmm—E——E e — e — eSS} ! : e ———— ——— fommmmr e e - . e~ e~ —————— toremmmmecac ———— tomm—— memmmm s mmn——t © "PBOK.AND.V.AND.AC).OR.PA | M,AND.((V,AND.AC).OR.PA) | ! ] H H ;1 BUS/PRB.RD.PTE 14636 eee ] ' L1431 11632 . BUS/PRB.RD,PTE.K ;1 BUS/PRB.WR.PTE : ] ! UVCTR<2> [ J1427 SH4A28 11429 ote33 21434 : ' ! dememeseemecccmnmenew tommm—— NS RN NS E S S e ;1 BUS/PRB.RD 21430 o2 e e- T (1425 11426 . . Because of this, it cannot be used in any of the micro instructions that are pointed to by the IRD1 rom. (1423} 114624 Page CLOKX Rev 13.00, Clock rate = 160ns : BUT/UVCTR Chart is not Enabled 4 = C(orrected Memory Interrupt e e e e e ' i : ———————t o TH{O98.MCx MICRO2 1] p:2§§ LJOT Y Micro Level Charts 1466 ;iifig ; ;. Micro Level Charts CHARTS MIC t T PRl B ;141 : p1are ,'}/1!'?. ;1477 ; :1015 ) N . : Description of FPD " . , o i . i ¢ Reserved Operand Fault, 4) interrupt. . tlows will branch to the pack routine at IE.FPD.PACK + FPDOFFSET, and initiate the fault. ; In the second case the micro code will branch to IE.OPER.FAULT which will branch to the pack routine and initiate the fault. ;o the third case the micro code will branch to IE.FLxxx.FAULT which ; witl branch to the pack routine and initiate the fault. ! ;> branch to IE.SZRV.IP.IS which will ! ; 1t a TB miss occurs and the ttag MM._NOINT ; © ; . it will In the fourth case when the micro code decides to allow an interrupt the totlowing rules ror pecking: branch to the pack routiue and initiate ;SO; ; 1505 1506 $1507 ;1508 21509 ;1510 J151 21512 : J ; IF.FPD.PACK + FPDOFFSET observe f i 2) For taults, DREG is moditi.d by [ANDE before going to the pack routine and must not be modified by the pack routine, l 3) for floatin? taulrs and reserved operand faults, FLAGZ is modified by IANDE before going to the pack routine and must not be modified [ : JE.PACK.DONE, i | by the pack routine. 4> Micro temp FPDOFFSET<16:8> is modified by JARNE before going to the pack routine and must not be modified by the pack routine (FPDOFFSET<7:0> will be preserved), tb miss, b) IF the pack routine was reached b{ any other ;1818 | v S) In <ome cascs the pack routine may need to return to the instruction tlows betore branching to lE.PACK.DONE, if so the address at the top of the micro stack will have one of two possible values: a) IF the oack routine was branched to because of a memory management faul*t or because of an interrupt taken from a . tbmiss routine (MM NOINT clear) THEN the address at the top of the micro stack is the address of the micro trapped instruction that caused the S8t path v i . {ie, NEXT/IE.SERV.IP.TS or NEXT/IE.OPER.FAULT) ;186 ;1517 : e ! is clear), 1) Wnen packing i< complete the pack rautine will branch to ; : | the interrupt (interrupts may be taken b{ the memory management flows The micro code pack routines loaded at J151% 0 . In the first case the memory management JVA7B - r S : Description of FPD 481: Page 2) Floating Point Fault (overflow, underttow), or e 5 J 4 CLOKX Rev 13.00, Clock rate = 160ns 1) Memory Fautt (ACV or TNV), . ;1474 28=-NOV=-83 16:30:35 . » when PSLCFPD> is set, there are4 things that m)ght require the instruction flow to be interrupted and the instruction packed up. ‘ RT3 TM(01) ; THEN the address at the top of the micro stack 1s the adaress ot the last unmatched PUSH in the instruction flows. ———— - I ‘ iI e CHARTS. o Iy 28~NOV-83 M]CRO2 TM01) : Micro Level Charts CMT0 — — 1 or - o ! P AN NVBRVNLIVVTVINW “NVVTNZNNNNANVVIVNNI o O x } I 3¢ o 3¢ 3 B 3 3 3K 2 DC 2 3 B X I I XK I 3 RO I I I I I Y [} v -0 - C ! f = ~ o 1 Z " P00T0RCVEIVIOVLVVLLUVCI-VOOOVOVVLVLOLVL I 1 ~ @ - ZZ ! I > O o ) ] Because of this, they cannot be used in any of the micro N/“ASSK) uvfu\IM/\. *Iuvln‘l5(’5( )z../flISSS55 s;_(assySSSSS ?a.}fi’)\JSSS zz.‘;r_eSSSS. ./;W(fiéSSSSS 1|4|.222)5C.RV oYU RVo RVSR(gy Vol [ValValPaSCJS.')S SSSS. 14 49 Page 160ns CLOKX Rev 13.00. Clock rate 16:30:35 Compatabilitv ¥ de Condition Codes 4 K (MT0S8.M CX M1 CHARTS — Lo Vv 1 T ot o () ot ot (L)t et Pt o ot ot et ot o eyt e ey ot U Z D e @) me e D}] ] 1 3 ]= Q- o MICRO2 l M0 28~NOV-83 : Micro Level Charts L 4 16:30:35 CLOKX. Rev 13.00, Clock rate = 160ns Native Mode Condition Codes Part 1 Page 50; micro cycle that follows an IRD1, Because ot this, they cannot be used in any of the micro J 51 Page 160ns I + Qe [ | e@e ' >- 1 1 - 101 — e~ ) . RPN —_ e N~ . o 1] ] 1} .1 oYANT SN | ee e | - t e )] J S~ WO s F OO~ L [= —— N ~»MIT XTI il MS O R batubrapp pPlep abatatata egieu at st abbatubab g tghegi gy S48 eghui e fiuciudiosineiadghngiuiingghe@i w![r [y <— — 1 o o o0 o ] 1 o AA 5 A A < >> AA > > @ 121 [ ] ] L ANNONNNBSNONNINITNNSUVVVNVIVNVILZ ITVNVVNMZVNONOVIVI IV IV I - o1S! < £@ 4 M M01) MICROZ _ Micro Level CMT098.MCX . CHARTS .MIC . ;1669 ;1670 JToc M Micro Level ;1672 . l} ;1673 ' ' 1674 ' 0S.RED ' S cutacaterni >3 o~ ~ k) . T T T I 4ddress of e el D L e Satuindeilitadh 4 m e n i} mm—EE e —— o m - ———} e m e me} mmnm—n—n e the Operand — e} S —E ..t n—-—————— 1 £ £ D 4 O o« ] NOTE : Page 160ns ............................. . . . . . . . . . . . . . . B L e LT app fmrmmemcnat e : UNPREDI(TABLE UNP CLOKX Rev 13.00, Clock rate : Native Mode Operand Specifier Chart . AXY 4 | 05.ADD ! \ D i} =B - | P e PR [ G £1705 N B| | |D| | |R| | |e| | |T|D|B|b |b |Db|t| |b|l| |B| | | | |i|l#Imememe e e .BIR- 4 - R S US e T e e e e e e e T e se et s o e e e e s e eA T gA TT T e T T TeP TeeeT e fecmcnn e —————— 0S.MOD 16:30:35 : Native Mode Operard Specifier Chart' Charts e 1671 1 Charts 28=-NOV-83 is '«fr In reg mode MDR <= GQFR(RNUM), ¢. in VA if the Operand is in memory and in RNUM if the Operand is in GPR In reg mode RNUM <= # ot addr2ssed reg, 3. In reg mode MDR § VA are not aftected 52 1 M(01) Ml (RO2 28-NDV-83. Micro Level (harts ¥4 TOC ' T tunanama= cnmm—— 00t P P Mode | CLOKX Rev 13,00, (lock rate Native Mode Addressing Branch Reg Addressing Mode ' T [ e P ToTSmemTEmmTTEees TeTTEeTTemT = T s REGISTER MODE © 0-F i Rn 000 '8 0-E ! (RM)s 0010 P8 F 0011 D 1 J*#cons AUTOINCREMENT MODE : IMMEDIATE MODE 0-3 c == ! sA#cons LITERAL MODE €190 7 L 0=F 1 =(RR) AUTODE CREMENT MODE 0101 A0, © 0t A,C,E F ! Addr RELATIVE MODE G=E . D(Rm DISPLACEMENT MODE : | ABSOLUTE MODE J ¢ ' @4Agdr ¢ umb (R REGISTER DEFERRED MODE ¢ @Addr RELATIVE ,0,b U=t @DtRr DISPLACEMENT DEFERRED MODE v -F @Rroe AGTO-INCREMENT D:FERRED MODE . ' (Re)[O7) INDEX MODE . 2=F Ar[Re1 INDEX MODE B.2,0 0 - . @ Nrr- - e e 5 e 0 0e ‘ Operand . Specifier ' $mmmm———— tommm—t © 8 16:30:35 _ Native Mode Addressing Branch' Micro Level Charts T S N [ ) i .M ¢ (MT098 M1 {HARTS e T e e e D o ‘ DEFERRED MODE O PC O Y eT T 160ns Page 53 (MYDQB.M%# MICRO2 LTO0C ' Micro Level (harts (HARTS M M0 Micro Level (harts 28-~NOV=B3 16:30:35 C 5 CLOKX Rev 13,00, Ctock rate = 160ns Compatibility Mode Addressing Branch Compatibility Mode Addressing Branch'' : P chommmmmmmmmmee oo O —memmmm——— : Branch : ; : 235;???er Ottset #+w==-w=-- re-s-~ + : { Mode ! Reg ! Addressing Mode i S 10-6!Rn S0 0000 i € REGISTER MUDE D000 AUTOINCREMENT MODE : , : O AT Y A Sl 0010 11 : Dot b1 O 1 0s6 i (Rn) 7 kD : REGISTER MODE P REGISTER DEFERRED MODE | REGISTER DEFERRED MODE PC ! 0101 F 2 : Do i3 Do b3 o6 i (seae 06 i acRm 7 i awaddr AUTOINCREMENT MODE SP AUTO-INC DEFERRED MODE ABSOLUTE MODE : | E AUTO-DECREMENT MODE SP AUTO-DEC DEFERRED MODE AUTO-DECREMENT MODE PC INDEX MODE | RELATIVE MODE 1 2 D000 1 4 1 0-5 i (Re)e 0s5 i -am) A T Dot A AR A 6 A 2 0e7 d antRn) A R S 106! X(Rn) iU ' 17 w01 S E s & {7 1102 1 Addr X(PO AUTO=DECREMENT MODE 1 0-7 i GADDR 9X(Rn) INDEX DEFERRED MODE L7 IMMEDIATE MODE aONs o 0n 0n o4e o —————— bmm———— ot § + Page 54 (MT098. (HARTS, = D 5 16:30:35 CLOKX Rev 13,00, Chart Drive WBUS Clock rate Page 160ns 55 - —o | RC? 1M01) MIC 28-N0OV-83 : Micro Level Charts ] +oR R e R e + ) i et mn t1w=voVrx G- -——-——————— —0 = I SO -0 1 XX X XXM D ICIC I DD A 23K D T I X 1 AZAaZUwd ORI ZOo0 Qa0 ¢+ sh—t—b- o o = =} W| OO LD O C O UM TNONRO LD DUTNO I O—OUMI i M ~ 1 [ e T e T e e kR itk S el + un> O NONDIDE [CE RE A 2 - pel w+ = < < o ALS>IISO _JA_u | K OO0 - o @ DITWIT ZLUNNOLA OUMICOLCU a e S = B AT~ T ~ [ wd L D MM OO L O o L C O T N U L itv ¥UL T —> = B i i &[= D i 1 [<¥5 [ e O =< D= LSy —_ oOOOOO - J [+ o o L) c] 1M(01) MICROZ 28~NQV=83 Micro Level Charts . . F 5 CLOKX Rev 13.00, Clock rate BUS vs MSRC Micro Order Conflict Chart 16:30:35 « - . ITxX LA BRoxax AnNIDZZ SZ°T Trouw e s » ZFxa . s Z00Z e g —“ W — Qa -—be LI R LN olad azw HEXE3 oo oo Toeaon -z .- L] e T 3 w [ 1 = ! ' 1 i ' 3 i i ' = 160ns Page 57| . ’ (mM1098. CHARTS, £EE )— = IEFTEEZEEFETZFFETIO OVEETXIID - O <2 11 2] - kb ke + T eR L e [ s -1 4@444555555555566666666667777777//}88888888 — G 5 160ns 35 CLOKX Rev 13.00, Clock rate 16:30: D TMM MICROZ 28=NOV=83 : WCTRL/CCPSL vs MSRC Micro Order Conflict Chart Micro Level Charts ¥ ’ ! 1 Page 58- ; : CMT098.MCX MICRO2 LJTOC ' Micro tevel Charts CHARTS JMIC .13%8 I1990 11991 11992 11993 11994 11995 11996 11997 11998 : ¢ - : & 1 12008 5009 : : OPERATION : i NOP.CCBR<-BRATST ! 1 S ! ALUS<~-DSDZ.CCBR<~ALUS | ALU3<1:0> <= (BCD SIGN)'(BCD 0) ! ALUS<1> ! ALUS<O> ! ' ALUS<1> ! ALUS<0>! ! AIUS<=SIGND.CCBR<-ALUS ! ALUS<1:0> <= (LSS 0)'(EQL 0) - ¢ ;o € i ! CCOPT.CCBR<~SIGND 12013 ! 1 -0 C L 1SS O ! EQL 0 ! ALUS<1> ! ALUS<O0> | P LSS O ' CC OP 1 ' LSS0 ' EaL 0 ! ! BRA TST ! ALUS<T> ! LSS O ! EaL O ' [SS 0 ! | ALUSK1> ! ALUS<O> | ! ALUS<-UNSGN.CCBR<=ALUS | ALUS<1:0> <~ (LSSU 0)'(EQL 0> 1 EQL O P LSS0 1 <= ! PSLRV> ! SETV.CCUK<=SIGND -+ ~entmmem— cempememem e en e, .- ——————— e ————————— ——————— | WB<31:0> <-PSL P! PSL<-WB.CCBR<=ALUS ! pSW<-WB.(CBR<=ALUS S | PSL<-WB<31:0> ! PSW<-WB<15:0> L L0 : | WB<3:0> <-AT(R 1 WB<-PSL.CCBR<-SIGND ( ! EQL O —— memamemeeme———.m————————— b m———— + e ———— e mm e ———————————— femmmm——— ! NOP.CCBR<~CSIGNS ! WB<-ATCR.CCBR<-SIGND tmmmmo== Prm e 1 I TCCBR<I> | CCBR<O> ! mm— e ——————————— PR $ommmmmeee + ¢ € M ;0 T e + ' CC OP 2 -t : 1 ; ! | C(OP2.CCBR<-SIGND Aeem—=-- form r ! 0 __CCBR_CONTROL | : : ¢ ;2000 22011 19012 CLOKX Rev 13.00, Clock rate = 160ns ! NOP.CCBR<-SIGND ! NOP.CCBR<-ALUS ¢ 1 - 15006 12007 T ¢ BUT/CCBR Chart temmemen S m—temmsann e b 15001 15006 13005 16:30:35 : BUT/CCBR Chart'' MICRO ORDER : o 22002 22003 Micro Level Charts 2B-NOV-83 em + e ———— eme fommem——e—mm—m————————— femmnmmeneatr emsmmem . ———————————— Femam 11999 ;2000 1M(01) t CC<~WB.C(BR<~ALUS ! MDR_OSR.CCBR_BRATST rem—meee D LR R ' (C<-WB<3:0> ' MDR <= ZEXT OSR EEL L LT tomm——— memm e wwx wwx ——— ' Uss 0 ! EeL 0 !OALUSKT> 1 ALUS<O> | ' ALUS<1> | ALUS<0> ! ' ALUS<1> ! ALUS<0> ! ' 0 ! BRA TST e e a - it Hommommeae tommmeee + 02014 ;2015 : © WHENEVER THE GPERATION ALTERS ALUS, CCBR <~ ALUS OLD 338}3 © E%g%g ; Esgs% ; UNLESS OTHERWISE NOTED ALL VALUES ARE SIZE DEPENDENT : WBUS<SIGN>.XOR.ALU 'OVERFLOW' (THIS WILL PRODUCE 'LSS 0' FOR A-B OR A+(-B)) LSS O UVEKFLOW : XOR OF CIN AND COUT OF MSB(SIZE) ALU Esgsé ! Eggsg : ’Sggg ; Igggg : : .NOT.(ALU CARRY) (THIS WILL PRODUCE 'LSSU 0' FOR A=B OR A+(=B)) ) .£0.0) E0.0 AND. (WBUS<7:4> : (WMUX<31. :85. BOD O BCD SIGN : IF WBUS<3:0> > 9 THEN, ALUS<I> IS SET IF SIGN IS NEGATIVE 358§% : BRA TST ;gg}g 12034 L. . £QL 0 : WMUX = 0 LS5U 0 : FOR BRANCH INSTRUCTIONS CCBR<O> IS SET IF THE BRANCH CONDITION IS TRUE w4w IF V GETS SET NO TRAP WILL OCCUR Page 59 28=NOV=83 1M{01) MICROZ ¢ Micro Level Charts e o : BUT/SPASTA Chart" ;2069 ;2070 ;2071 ;2072 ;2073 ;2074 ;2075 ;2076 ;2077 H ;2078 ;2079 .2080 ;2081 ;2082 .2083 ;2084 : : ; TEMP13 MM, TEMPS MM TEMP S L+ —— T ; . Fom m m ——— SBR e m e SLR SPNICR.SPICR MM, TEMPG - - : e mm— e mm———— + B ] | RNUM_WBUS | WBUS.EQ.[8.9.10,11,12,13] E | ! RNUM_WBUS | WBUS.EQ.[5,6,7,14,15] : | RNUM_WBUS | WBUS.EQ.[0.1,2,3,4] : | RBS<6>.EQ.1(PSHADD) | READRBS § | RBS<6>.EQ.0(PSHSUB) | READRBS 5 | RBSP.E0.0 | WB_RBSP § | RBSP.NE.O ! WB_RBSP § | ALL OTHERS ! PO Fom oo e mm——mm e ——— + - o o -y i i e - e >y T T T T e e o St o e e 0 0 o e ! MSRC POLR P1BR PILR E e~ TEMPS TEMP10 TEMPT1 TEMP1? = . - POBR : : : ; ———————— - MM TEMP3 TEMPS DST.ROR1 e TEMP7 : DST.R+1 - - RNUM_WBUS READRBS WB_RBSP AL OTHERS ALL OTHERS ALL OTHERS ALL OTHERS RNUM.NE.[6,7,14] RNUM.EQ.14 RNUM.EQ.7 RNUM.EQ.6 - - - " " - UNDEF INED UNDEF INED UNDEF INED 00 01 10 1" R L L T R | ;2068 ! MM, TEMP2 DST.R B L ;2066 ;2067 TEMPG GPR.R+1 GPR.ROR? il o ;2065 use 15P PCBB GPR.R Bl T P ;2063 ;12064 : ESP $SP RSRC : RO 4t mem ;2061 ;2062 TEMP3 TEMPL TEMPS TEMP1 TEMP2 TEMP.R TEMP.R+1 1EMP.ROR1 = ;2049 ;2050 ;2051 ;2052 ;2053 :2054 ;2055 12056 :2057 ;2058 ;2059 :¢060 : : ; : : KSP mm ;2048 RSRC : TEMPO m—— —m mmm— e m e ;2046 12047 ! e 12045 RSRC does not Specity GPRLO,151 e e ;2043 12044 + Micro Level Charts ;2040 ;2041 ;2042 CLOKA Rev 13.00, Clock rate = 160ns BUT/SPASTA Chart e LT0C Y 5 am :2035 12036 :2037 ;2038 ;2039 I 16:30:3 5 e e m e CMTO98.MCX MIC CHAR.TS ; : M) 28-NOV=-83 MICRO2 : Micro Level Charts Page ! v!) H meeee[=3 1s o 1 A[1 [ <1 ] [} [ ] A3\ 13 1A ] g[N<L} e 1A t s ' 1[ A i i 4 me e e 1) D1) ]Al] ] A ] 1 1 v 1 | =iy | [ ) ] -w )] ][ ] 1 ] 1 ) ) < tey ilR ) R v < -3 > o> (=] [+ (o] b [ 2 - 1) 1 - D “ — =e — J 5 160ns 16 :130:35 CLOKX Rev 13,00, (lock rate Part 1 Functions TAB LE 1 - ALU & 0 Rotate and Shift . . CHARTS, FE 1M(01) MICROZ 28=N0OV=-83 : Micro Level Charts K 5 160ns CLOKX Rev 13,00, Clock rate 16:30:35 Part 2 Functions Shift and Rotate Q & ALU = 2 TABLE Page 62| - [ =] 2 o- ' 2 (-] (=] o [=1 -~ I - 11 - 11 ] ! ] 11 <<] ] [ =] !) o 1w t[ ]1 1 A .- 1 ] A ~ I?¥ i<t] —--- -- >Z3 i<!1 — ]1] st i ) ] ' ] ] ! ! 1Al ' = —= 333?4334L‘L./...L.Lv/flb'/-./45:)5555555566666666667777?7777 w) ]U -- . CMT098. o =z Micro Level Charts LR S LR L TR L tmmmm—— -———————————— e mm ; R LR XCSR P T CRAR=0 (DATA) E - ——————————— trm em CRAR=1 ! (XMIT STATUS) E ; i e n et —————— e —————————————— + ; ----------------- ; --------------------- e ! | h ! WCTRL/CONWRITE ; ! e — e m e e so - Pt } e re e e i (COMMAND & STATUS) FU————— - —-—-— P -! (SR <~ WBUS<23:20> | XBUF <= WBUS<23:16> | XCSR<6> <= WBUS<22> | R(SR<6> <~ WBUS<22> | H (CLEARS READY) ' INT ENABLE 1 INT ENABLE i ! : ' v ! ——— feme e H (RAR=3 E CRAR=2 (RECV STATUS) R R NS S— SR (RAR <~ WBUS<23:22> ! WCTRL/LOADCRAR | bmmm Page . : Xmitter Command and Status Register : Reciever (ommand and Status Register : Command and Status Register P R RCSR (SR T 5 CLOKX Rev 13.00, Clock rate = 160ns : TABLE 2 - Console Intertace Control'' . T Xmitter data BUF fer : Reciever data BUFffer N L : TABLE 2 ~ Console Intertace Control XBUF RBUF D e e D COOCOO0 O NN = ON0 O 16:30:35 : Console 'Register Address' Register R T T N R R NURUNU N NUNUND LAV AN UL 1, V] o V] ;2205 Micro Level Charts 28-NOV~83 CRAR b b D e b d rd e b D O OO0 0 D0 O 0000 0200 C0CoCo00 0000 ~J NC N DW= O VO NP NDWN—O O e e PONINUNIND —d d e e “imememene rRorLROPINONY TN LSS LS P L T s I SIS LN T VTN T N1 W,V T, S TN 1, O 1, O1, ST,V CHARTS . MIC JTI0C 1M(01) MICROZ (MT098.MCx H 1 ——e e n e n—————— L L L L T B frmr 23=HALT PENDING 22=CLEAR HALT 21=CLR XMIT INT REQ 20=SET HALT e m e a————————— | WCTRL/ZCONREAD | WBUS<D3:16> <= RBUF | WBUS<23:22> <= XCSR | WBUS<23:22> <= RCSR | WBUS<23:21> <~ (SR { 5 : ! (CLEARS DONE AND RECEIVER INT REQ) 1 23=READY 22=INT ENABLE f ! 3 23=DONE 22=INT ENABLE v E 23=HALT PENDING S$=SALT g g Bt A '; --------------------- «;’----: ———————————————— ; ————————————————— ; ————————————————————— ; ————— ' WCTRU/READCRAR T o -0e ! WBUS<25:24> <~ CRAR S Y e P Sn T n TS Y e et T S TR T T e e e e S e S e T R W Yy e S e G Sy e e A2 S R e B B e = 63 ; ; CHARTS. ;SS}S 12220 :%%%g Micro Level Charts : 12229 ;2230 ; ;2232 ; ; 32236 : ;2237 ;gsgg 12240 L2241 12262 ;2243 ;2264 ;2245 122646 12247 : ; H ; : ;2248 12249 ; : 12252 ; 12254 ; ;2250 12251 ;2253 ;Ssgg 12257 ; N ; M5 Page (LOKX Rev 13,00, Clock rate = 160ns : TABLE 3 - TUS8 Intertface Controtl ) ) : TU58 'Register Address' Register XBUF RBUF XCSR RCSR CSR : : : 1 : Xmitter data BUF fer . Reciever data BUF fer Register Status and Xmitter C(ommand Reciever Command and Status Register Command and Status Register e s e enas oo Fommmmmmmmmme o + $mmmmmmmmm oo meemeemmemeemomn | TRAR=0 1 ; ; 16:30:35 TRAR 12231 ;2233 28-NOV=-83 . TABLE 3 = TU58 Interface Control' LT0C "' Micro Level Charts ;2223 ;2224 02225 ;2226 ;2227 ;2228 ;ss%g TMCOT) MICROZ CMT098.nEé i (PATAS i TRAR=1 ! { (XMIT STATUS) | \ i TRAR=2 (RECV STATUS) i . TRAR=3 E (COMMAND & STATUS) ! , 5 e ————— + e eecr ——— femmmmm nr e e— m—————— temmem e mmem n e ——— fommmmmm s mer pmmmmm—————— s~ frmrmm : i WCTRL/LOADTRAR $m m ' i emm—m——— e fom m oo b e ccee me e m e e $mmmmm e m————————— fommecmetemaemammmman= + : i i : ! WCTRL/TUSBWRITE ! XBUF <~ WBUS<23:16> | XCSR<6> <~ WBUS<22> ! RCSR<6> <~ WBUS<22> i INT ENABLE 1 INT ENABLE (CLEARS READY) ! i j 1 : ) : i : i : H ! ! Fomm . : Rt ! i 23=COLD START BIT i (CLEARS DONE AND ! RECEIVER INT REQ) ! . s ! | : : i , ! 22=CLEAR START BREAK. ? 21=CLR XMIT INT REQ ! ' 20=SET START BREAK | H : : ! | WBUS<23:16> <= RBUF | WBUS<23:22> <~ XCSR | WBUS<23:22> <= RCSR } WBUS<Z23> <- il e ! WCTRL/READTRAR | | CSR <- WBUS<23:20> oo T et ——————t e ne mme o e Fomwmmmm e LR Frmm e meBi : ! WOTRL/TUSBREAD : E TRAR <= WBUS<23:22> 23=READY 22=INT ENABLE s mecmsese————— L i i ! b Fr e D il 23=DONE 22=INT ENABLE , i €OLD START BIT | ! : T WBUSK21> <= | XMIT INT REOQ : e ———————— S o —————— + WBUS<25:24> <~ TRAR ! + e e mm e e eee——— tmmm—m———————————— frmmmmmm 64? 16:30:35 1M(01) MICROZ 28-NUv-83 : Micro Level Charts .T0C M : Charts Micro Level ROM 3 CLOKX Rev 13.00, Clock rate layout map for control ROM layout map Pl N 1 L O R e T R Pt L L L L e DL R ] 5555 555 5:5 54414 44 4 444 4 7777777 7766 6666 66661 R7654 321009876 5432 1098 1765 L 3210 ! 987656432109 b ! i ' 1 1 [} e 146 ! 0000-03FF ' 12279 ;2280 ;2281 12282 ;2283 12284 ;2285 140 ! 0800-08FF 1 } ‘ QCOD=-0FFF ! ] i Po139 © 0400-07FF ;2277 12278 ¢ s S gy S e e 122 1 R e e 104 116 + 1 v P98 L ' [l 3 ' L L bR g 92 ] 128 133 : 127 103 9N 126 102 90 125 101 1 i 1 ' 1 1 138 132 137 131 130 124 100 1400=17FF 135 129 123 99 SRS L L L L ! 136 A L 134 1000-13FF ' R R ' ‘ 65 BUY ] i Page jesnanm e ———— ——— ALPCTL L 160ns for control store ROT ALIT R store SIS S S SRR S el ettt Seb e e L L § LR ' : 1 95 P94 P93 1 89 ] ' + LR L 88 1 87 ] ' L ) vt o o o e * 4 o nete prom pattern listing is inverted with respect to acica! LITRL o o e e e e o o o o Y NEXT 3 O} é 3 P ; e T 0000-03FF © 0400~07FF . 0800-08FF Y L L T 8¢ ' 1 20 . 79 3 6 ‘8 72 66 NT 65 o4 39 63 69 33 27 iy (U QP g e T e T T e S L L e ;2312 BIN ‘N — y 3 . i SMTOGR My MICRO2 JHARTS MIT MIOT) .. Micro Level Charts f 28«NOv=-83 231¢; i ! | | l | i ST . ST T TR I WS OTEES e .. 16:30:35 . . B R - - . - 6 CLOKX Rev 13.00, Clock rate = 160ns 1 ROM layout map for control store This page - intentionally left blank. hE me s EE Page 66 3 e e e o . HEXAT DE IMA: Revision History'' Lt T 2322 2323 ;¢ 09 Muye (MODE boundary tor rev 061, Add regiony, fcr G and H Adjust [ANCE region, Initial release, floating, ity O, ¥ NN i it [« WA UNDBIN 2321 2324 LSLNT.NT,V} L ;04T JEESE. pe31e 2320 16:30:35 28-NOV-83 MICROZ 1M(01) REGION.MIC TMTOGB M( X REGIONMI{ C 6 (LOKX Rev .10C "'REG 1 ON M 1C 1 0 .T0C "REV ) 51 ON ¢ C. E MC DOWELL 13.00, (lock rate 160ns Page 67 : : MICROZ2 (MT098.MCX 1M(01) 28-NOV-83 16:30:35 D Location of modules in control store REGION.MIC 6 CLOKX Rev 13,00, Clock rate = 160ns Page i e ? Location of modules in control store' ég%%g .TCC ' ég%gg ;0000-03FF IRD1/ ,gg%g ;0400-07FF INTLOG/ OSR, g%%; ;0800~0BF F INIT, §§§§Z ;0C00-~0FFF PCALL, ,Sg%g ;1000-13FF MISQUE, DECMAL(part of CVILP & CVTPL), DELMAL (except CVTLP § (VIPL) 5%2{; ;1600=17FF (MODE, §§§28 :2000-23F + GHFLT(wcs part) ;23461 ;NOTE: IRDX/ VIELD(part 2) FLOAT, 7 (ONTRL, GHFLT(rom part) MW/ 7 g B l ' CONSOL, CHAR EDIT/ : 68 MPRCHM, IANDE UVERFY/ PRLDSV, VIELD(part 1) Files seperated by siashes are regioned into the same locations, e E : | 6 CLOKX Rev 13,00, Clock rate = 160ns Page 69 xIr mirn "o I INNNIND — s e e 2 e ol o) .SE ol vl e slnitialize ;Console E Control Store Region Expressions'' .SET/CONSOL.R1L=0883 .SET/CONSOL.R1H=0A37 .SET/CONSOL .R2L=0883 .SET/CONSOL .%2H=0A37 .SET/CONSOL .R3L=0883 .SET/CONSOL .R3H=0A37 ;Integer, L ;Floating Point and (RC CSET/FLOAT .RIL=04F 9 LSET/FLOAT.RIH=0721 =04F 9 . R2L OAT LSEVT/FL LSET/FLOAT.RZH-0721 CSET/FLOAT.R3L=04t9 LSET/FLOAT ,R3H=0721 it i ;variabie Length Bit Field LSET/VIELD.RIL=17F2 RIH=17EF 1 VIELD. . ! D.R2L=0000 LSET/VIEL LSET/VIELD.R2H=03EA 0000 LSET/VIELD.R3L= i N NN (S APV, L CLV, 1, V] Ir OODOCOCOO NN N SET/CONTRL. TR Instructions . .SET/CONTRL .SET/CONTRL. LSET/CONTRL . SET/CONTRL. . LSET/CONTRL I ;Control AWWNNINY — — 1 ELD.R3H=03EA LSET/VI DDV DO0 OO COCOCO0ICOOCTO000 N NN NNNNN NN = OO DN NI AN — —Op0o~N O v a S L UL NY SO S LN ST ST N T STV ST\ VT oV I STa e 1) S1aS) N O N N N (AN AT AN N NN NAN NN VA U IS D DS DS 0 O o s OO VI v EadV. iav) “ OO0 NN LW = OO0 O W S wWnY eLSLST ST N W LA N LA AL 28-NOV-83 16:30:35 Control Store Region Expressions REGION, .T0C TM(OT) MICRO2 CMT098.mE§ MICRO2 TM(01) (MT098.MCX : Control Store Region Expressions REGION.MIC H ;2397 :2398 SET/PCALL .R2H=0(96 .SET/PCALL.R3L=0C00 .SET/PCALL.R3H=0C96 : | i 12409 LSET/MISQUE.R2H=0D30 ;2610 .SET/CHAR,R3L=0A38 .SET/CHAR .R3H=0BEB ;Decimal Strin LSET/DECMAL .R2H=13F?2 SSET/DECMAL.R3L=0D31 .SET/DECMAL.R3H=0D9C sEdit LSET/ZEDIT.RIL=14EQ LSETZEDIT.RIH=T7ED LSET/ZEDIT.R2L=14EQ JSET/EDIT.R2H=17E1 ;2434 :2438 JMTPR, MFPR, (HMX .SET/MPRCHM.RIL=0D9D ;2442 .SET/MPRCHM R3L=0D9D ;2641 .SET/MPRCHM.R2H=0E(B ;3222 ;24651 ; ; ‘ : ! LSET/EDIT.R3H=17E1 .SET/MPRCHM.R1H=0E(B LSET/MPRCHM_R2L=0D9D 12646 ;2447 12448 12449 ;24650 i LSET/EDIV.R3L=14ED 12439 ;2440 ;24465 ! .SET/DECMAL‘R2L=1000 12433 ;2435 12636 ;24637 ' | SET/DECMAL LR1L=1000 LSET/DECMAL .RT1H=13F?2 ;2425 12426 12407 ;2430 ;243 12432 i .SET/CHAR.R2H=0BEB 12624 ;2429 SET/MISQUE .R3L=0(97 i .SET/CHAR.R2L=0A38 126418 12619 ;2428 ! .SET/CHAR.R1L=0A38 .SET/CHAR.RT1H=0BEB ;2417 ;2422 ;2423 ! .SET/MISQUE.R2L=0C97 ;Character Strin 12416 12420 i .SET/MISQUE ,R3H=0D30 ;2411 12421 ; SET/MISQUE .R1L=0C97 ;2408 ;2414 ;2415 i ;Miscel laneous and Queue .SET/MISQUE R1H=0D30 ;2413 : ; ! ;2407 ;2412 70, LSET/PCALL.RIH=0(96 LSET/PCALL.R2L=0C00 ;2401 :2402 ;2403 : 26406 L .SET/PCALL.R1L=0C00 ;26400 ;2405 CLOKX Rev 13.00, Ctock rate = 160ns page :Procedure (all ;2399 ;2404 28-NOV-83 16:30:35 b6 .SET/MPRCHM,R3H=0E(B sPROBE, LDP(CTX, SVPCTX LSET/PRLDSV.R1L=14E0 .S[T/PRLDSV R1H=17€1 .SET/PRLDSV.R2L=14EO LSET/PRLDSV.R2H=17E1 LSET/PRLDSV.R3L=14E( LSET/PRLDSV.R3H=17E1 ‘ . ! | i | : MICROZ CMT098 . MCX TM(01) My T ey TMMo,y MMy Wt OOCOOOO Interrupts and Excep ti .SET/IANDE.R1 L .SET/IANDE .R1 H SET/IANDE .R2 L .SET/1ANDE.R2 H .SET/TANDE.R3L .SET/1ANDE .R3H Rilakilahlall Control Store Region Expressions REGION.MIC ;Memory Management LSET/7MM.RIL= LSET/MM.R1H= LSET/MM R2L= . RZH= LSET/MM .SCT/MM.R3L= SET/MM.R3H= ;Compatibility Mode .SET/CMODE .R1L=1400 .SET/CMODE R1H=14DF .SET/CMUDE.R2L=1400 .SET/CMODE .R2H=14DF LSET/CMODE .R3L=1400 .SET/CMODE ,R3H=14DF ;Micro verify LSET/MV.RIL=14E0 LSET/MV.R1H=17E1 V . R2L=14E0 LSET/M .SET/MV R2H=17E1 LSET/MV.R3L=14E0 JSET/My R3H=17E1 ;Native Mode QOperand Specitier .SET/0SR.R1L=0400 .SET/0SR.R1H=04F8 TSET/0SR.R2L=0400 8 SET/0SR.R2H=04F .SET/0SR.R3L=0400 .SET/0SR,R3H=04F8 JIRD1 s IRDX 28-NOV~83 16:30: 35 LSET/IRDT.R1L=0000 LSET/IRD1.RTH=03EA LSET/IRDX.R1L=0000 LSET/IRDX.R1H=03EA SET/IRDX.R2L=0000 SET/IRDX.R2H=03FEA 6CLOKX Rev 13.00, Clock rate = 160ns Page ! 71 CMT098.MCX : REGION,MIC 3 b 33 3 s a0 O OO NN W —=O000 N A N RO PPN S N —= OV N TV SV VL IO, RO, RV, [V RO R0, LW R [ PNy wa RO A AU OO ®.%.%evesens 6. ACAUN AU AN ITETEXE] U NG el ol : MICRO2 1M(O1) 28-NOV-83 16:30:35 Control Store Region Expressions ;G and H floating (rom parv) LSET/GHFLT,R1L=0776 LSET/GHFLY.R1H=07EF LSET/GHFLT.R2L=0776 LSET/GHFLT.R2H=07EF LSET/GHFLT.R3L=0776 LSET/GHFLT,R3H=07EF ;G and H floating (WCS part) R1L=2000 LSET./WCS LSET/WCS.RT1H=23FF LSET/WCS.RL=2000 LSET/WCS.R2H=23FF .SET/WCS.R3L=2000 LSET/W(S.R3H=23FF ;2523 BIN H 6 CLOKX Rev 13.00, Clock rate = 160ns Page 72 : ; MICROZ2 (MT098 . M(X DEFIN,MIC 1M(OT) DEFIN.MIC 28-NOV~83 10524 ;2525 12526 12527 I 16:30:35 6 CLOKX Rev 13.00, Clock rate = 160ns L70C 'DEFIN.MIC" .TOC "REVISION 67.0" Jeff Peng, P. R. GUILBAULT H :25¢8 ;2529 ;2530 12531 12532 .NOBIN LULINE .RTOL LHEXADE CIMAL .SOURCE /35 :2934 .SET/INIT=0 JSWITCH THAT INDICATES INIT U-CODE FOR VALIDITY CHECK .NOCREF ;SET UP FOR CREF ONLY WHEN FUILL ASSEMBLY ;2535 12535 ;2536 LTITLE ‘'CLOKX Rev ad3aa, Clock rate = ??7ns"’ .WIDTH/81 ;2537 :¢538 .FILLERPAGE _BOUNDS/ROW 1:0000,03FF/ROW 2:0400,07FF/R0OW 3:0800,08FF ;522? .BOUNDS/WCS:2000,23FF/P(S:2800,2BFF ;2543 ;2542 ; 67 12545 ;66 ;2539 ;2544 12546 :2547 .BOUNDS/ROW 4:0C00,0FFF/R0OW 5:1000,13FF/ROW 6:1400,17FF .T10C " Revision History'' B Add a VALIDITY check VOES to verify the hardware conflict. of. "MSRC/TEMP4'' and ''BUS/PROBE.WR''. ; 65 ;64 ADD BRANCH ON FPA PRESENT Initial release. and correct some error comments. . Increase the width of u-word by one; Add a PATCH field in bit #80; Move the VSIZE field to bit #84. Page 73| MICROZ CMTO DEF M0} 28=NOV=83 Comet Micro Word Chart .To¢ ! 16:30:35 6 J CLOKX Rev 13.00, Ctcck rate = 160n3 Page 74 Comet Micro Word Chart" bt 4 it T o o LONLIT o e o 2 s 0 e . Q__----_-___---__-__-_-_______---__--u_---___-+------__-_-+-+__-+----—---—----------_-+f i B R e IT .RL. . . . +ooSL _7<J— RS BUT ALPCTL ROT "734 ([V1I 1 pivsEaapaErreEe SRR SSEEESE ST 2 1 it e L 2 et et g 4 1 ........ . B e s bt o vU RTP T Fom o LITRL CCMISC e emmm e ————— CCPSL B ) -t fmmmmm——t petmcemmtmend ;2584 12585 ;2588 ;2589 LY L T P P T L L R mmmmne Vb ove e e e 2 e e ;2595 - 2596 e ] t NEXT 12590 ;259 ;2592 ;2593 ;2594 eo 0 e s e e i ) i ‘ L O ' T T L T T + 11119 !1:1 s ' 9876 5 ' oo e s i B 1110000000000 3¢10987€5432710. o e e e B e A AR A - CMTO98.MCX MICROZ .JJoc v Machine Definition Machine Definition ALPCTL/=<57:48>, .DEFAULT=364 NOP=364 WX_D_Q.0_D=2D7 WX_D-Q.Q M=0D7 WX_D_R.Q_D=257 WX_D_R.Q_M=057 WX_D_R.Q_XM=157, WX_D-S.070=357 C-C-0-00-COO WX_D7S.Q_R=3D7 WX_D_S.G_XM=1D7, WX_0.Q_D=2(7 WX~Q.Q_M=0C7 WX_R.Q_D=247 WX_R.Q_M=047 WX_R.Q_XM=147, WX~S.070=347 WX_S.Q_R=3(7 WX_S.Q_XM=1(7, 28-NOV-83 16:30:35 K : ALPCTL 6 CLOKX Rev 13.00, Clock rate = 160ns JALU OPERATION FOR ;ALP SPECIAL FUNCTIONS JALIDITY=<VO70> ALUOD/OR.MUX/Z $,DQ1/NOP Q <= D OLD TWMUX & D <= Q OLD Q <~ MBUS ‘WMUX & D <= Q OLD Q <=-D OLD ;UMUX g D <~ RBUS Q <~ MBUS ;WMUX & D <~ RBUS 0 <~ §/2 MBUS JWMUX & D <~ RBUS JVALIDITY=<V070> ‘WMUX & D <- SUP ROT JWMUX & D <= SUP ROT JVALIDITY=)V070> JVALIDITY=<V070> s WMUX : WMUX 2 WMUX s WMUX + WMUX * WMUX s WMUX s WMUX D+Q+CI.8B(CD M+Q+C1.BCD D+R+(CI.B(D M+R+(C1.BCD XM+R+(C1.BCD 0+S+ 0.BCD R+S+ 0.8(CD XM+S+ 0.8(D @ <- RBUS Q <~ §/7 MBUS Q <~ D Q <= MBUS Q <~ D @ <= MRUS Q <= ¢/7 MBUS Q<=0 Q@ <- RBUS Q <~ §/7 MBUS <~ Q 0L <= Q OLD <= RBUS <~ KRBUS <~ RBUS <= SUPROT <= SUP ROT <~ SUP ROT Wwx“s=370 T WMUX D-Q-C1.BCD M-@-C1.8CD D-R-C1.BCD M-R-(C1.B(D XM-R-C1.8CD 0-S- 0.8(D R-S- 0.8(D XM=-S- 0.BCD <= SUP ROT <= SUP ROT SWMUX & D JWMUX ® 0 WX_DT5=372 WX_Q_S=371 SSETTING OF ALU FLAGS Q <~ 0 ‘WMUX & D <~ SUP ROT ;WMUX & D & @ <~ SUP ROT <- SUF ROT SWMUX B8 D & O <~ .NOT.(SUP ROT) WX_D_Q_.NOT,S$=363 <= NOT, (SUP ROT) JWMUX & D WX_D .NoT.s=362 <= ,NOT.(SUP ROT) <~ ,NOT.(SUP ROT) JWMUX & Q s WMUX WX_Q_.NOT.S5=361 wx .NOT.5=360 <= <= <<= SHF SHF SHF SHF LEFT RIGHT LEFT RIGHT D_DSL.SQL=24F DSL SQR=24F wx D DSR.SQL=24A WX_D_DSR.SQR=24B JWMXU & D JWMXU & D ;WMXU & D sWMXU & D LEFT LEFT RJIGHT RIGHT Q Q0 Q Q WB_LOOPF=378 WB_LOOPF Q_0-379 ;wWB<31:30> <~ 0'LOOP FLAG ;WB<31:30> <= Q'LOQP FLAG Q <~ 0 Q D Q@8 <=5 <= S D <~S <= D <= D <~ D <= D SHF SHF SHF SHF WB_LOOPF .D_0=37A WB_LOOPF.Q_[_0=378 ;WB<31:30> <= Q'LOOP FLAG ;WB<31:30> <~ Q'LOOP FLAG WB_ALUF.Q_S=37D WB_ALUF. D_S 37E WB-ALUF.QZD_S=37F NB<31:30> <= ALUSO'ALK( we<31:30> <~ ALUSO'ALK(C {WB<31:30> <~ ALUSO'ALKC WB_ALUF = 37f ;WB<31:30> <~ ALUSO'ALK(C MULFAST+=279, MULSLOW+=278, MULFAST-=269, MUL SLOW-:=268, . VAL . VAL VAL . VAL Y=¢v21.50-54.70> Y=<v50.51.70> =<v21.50~54.70> =ev50.51.70> SMULTIPLY sMULTIPLY sMULTIPLY ;MULTIPLY DIVDA=27F, VAL Yz<V050> :DIVIDE DOUBLE ADD DIVDS=26F, 75 t ALPCTL" WX_D_Q_$=373 DIVFAST+226(, DIVSLOW+=26E, DIVFAST=-=27(, DIVSLOW=-=27E, REM=26A Page VAL VAL . VAL . VAL VAL VAL Y=<v21.50-54.70> =¢<v50.51.70> =<V21,.50-54.70> Y=<v50,51.70> Y=<v050> Y=<v050> +RBUS BY +RBUS BY -RBUS BY =RBUS BY ;DIVIDE @ BY +RBUS ;DIVIDE Q BY +RBUS :DIVIDE Q BY =RBUS :DIVIDE Q BY ~RBUS SUNSHIFT REMAINDER Q Q Q Q@ (2 (1 (2 (1 <=0 D Q&D<-0 ITERATIONS ITERATION ITERATJONS ITERATION PER PER PER PER (2 ITERATIONS PER (1 ITERAYION PER (2 ITERATIONS PER (1 ITERATION PER (RBUS MUST BE 0) CYCL CYCL (YCL (YCL CYCLE) CYCLE) CYCLE) CYCLE) ;DIVIDE DOUBLE SuB il DEFIN.MIC PO IM(0Q1) =~ CMT098.M(X DEFIN.MIC .70C "' Machine Defin ition :2673 12674 XOR=0D ANDNOT=0E NOTAND=0F 12675 12676 ALUCI/=<59:58> 2ERO=0 ;2679 PSL =3 12677 ;2678 12680 ;2681 ;2682 12683 .2684 ;2685 AND,SR.0D=0A AND.SL.0D-08 ;2689 12690 ;26N ;2692 '2693 NOTAND.OD=0F ANDNOT.0D=0QE ALUSHF /2<62:60> JHARD DEFAULT JERO=0 12695 12696 ONE=1 SHF =2 2698 2699 2700 ALUD.Q1=4 ALUT.QU0=5 WBUS30=6 12697 2701 12702 12703 2704 ;2705 mn OR.0D=9 B=-A-(1.0D=0C XOR.0D=0D ;2694 g _ ALUOD/=<53:50> AND.(OD=8 ;2686 ?687 ;2688 ! ALK(C=1 ONE=2 ROT=3 pPSLC=7 ALUXM/=<63:63> ZERO=0 SIGN=1 6 CLOKX Rev 13.00, (lock rate = GHT FT JALAND.B ;A.OR.B SHIFTED RIGHT SHIFTED LEFT :(ALAND.B) s (ALAND.B) JA.XOR.B JALAND., (.NOT.B) ; (.NOT.A) .AND.B ;ALU CARRY INPUT CONTROL WHEN MUX DOES NOT SELECT S ROT AND P OR S LATCH IS NOT MODIFIED ;¢ ;Cl €1 1 (] <~ 0 <= ALK<(> <=1 <= PSL<(> JALU FUNCTION CONTROL FOR MUX/(D.R2, 2.8) QUTPUT DISABLE ;ALAND.B ;A.OR.B s (ALAND.B) SHFTD RIGHI D SHFTD LEFT .B) ;(ALAN ;SUB WITH CARRY +A.XOR.B JALAND, (. NOT.B) ; (.NOT,A) .AND.B JALP TALU ; . . SHIFT-IN CONTROL Q QUTPUT OUTPUT QuUTPUT QuUTPUT QUTPUT WHEN MUX DOES NOT SELECT 0 0 1 SCSHIFT ALU'G) S (ROT QUTPUT OQUTPUT AL? Q) (SEE TABLE (SEE TABLE 0 ;weus<3o> WBUS < 30> TPSL<C> PSL<C> sMBUS SIGN/ZERD EXT CONTOL S ZERQ EXTEND MBUS ;SIGN EXTEND MBUS 2 12671 12672 AND=8 OR=9 AND,SR=0A AND.SL=08B JADD WITH CARRY [NPUT ;BCD ADD WITH CARRY INPUT ;(ADD WITH CARRY INPUT) SHIFTED 1 (ADD WITH CARRY INPUT) SHIFTED — ;2667 ;2668 ;2669 12670 A+B+(C1.B(D=5 A+B+(].SR=6 A+B+(C1,.SL=7 L : ALV, ALUCI, ALUOD, ALUSHF, ALUXM - ;2666 A+B+(1=4 OO ;2663 12664 12665 A-B-C1=0 A-B-(].8(D=1 A-B-(C1.SR=?2 A-B-C1.SL=3 B~A={1=0C 16:30:35 ;ALU FUNCTION CONTROL FOR MUX/(M R1 M.R2, Mm.Q1, M.Q2, . D.Q2, D.S, R.Q, R.S) ‘M.S, XM.R, XM.Q, ZM.S, D.RT, *SUB'WITH CARRY INPUT {BCD SUB WITH CARRY INPUT ;(SUB WITH CARRY INPUT) SHIFTED RIGHT FT ;(SUB WITH CARRY INPUT) SHIFTED INPUT CARRY ;SUB WITH Py 12662 ALU/=<53:50> 28-NOV=-83 + ALY, ALUCI, ALUOD, ALUSHF, — ;2652 12653 12654 ;12655 ;2656 12657 ;2658 ;2659 ;2660 ;2661 TM(01) Machine Definition . * ; MICROZ S ROT AND P OR S LATCH IS NOT MODIFIED Page 76 CMT098.MCX MICRO2 .T0C ' Machine Definition [t A G P ) oo SIS VLS LV S 1V N1 S TaNT, U1 ST,V 1Pl 1 oW1, U 1oV 1 8] [aSEaN) ~ ~ N NN NN NN NN NN NSNS Y NN 2 e e ed b ek b e —_—_—000 NoNUNY UMD O PO NI NU N NI =2 O D00 O N F N 2 D0 o~ oo~ O S £ DEFIN.MIC IM(Q1) ~ Machine Definition 28=NOV-83 READ=10, READ.MOD=14, READ.LNG=11, READ.LNG.MOD=15, : BUS M 6 (LOKX Rev 13.00, Clock rate = 160ns + BUS" ;BUS FUNCTIONS BUS/=¢<24:20>, ,DEFAULT=7 NOP=7" 16:30:35 VALIDITY=<V22.70> ;NO OP MDR <- MEMORY PER BY VA AND DSIZfi JVALIDITY=¢VR2,70> ;CHECK FOR WRITE ACCESS THEN '"RD . VALIDITY=<V022> ;CHECK FOR WRITE ACCESS THE ''RD.L'' JVALIDITY=<V022> READ IGNORING THE TWO LSB'S OF THE VA READ.NT=2, JVALIDITY=<V022> SUPPRESS ACV AND UNALIGNED DATA U-TRAPS READ.PHY=0, READ. SEC:G, VALIDITY=<V(22> JVALIDITY=<V022> JREAD TREATING VA AS PHYSICAL ADDRESS IGNORE 2 LSB'S, 'FETCH REMAINDER OF A READ CROSSING LONG BOUNDARY. WRITE=18, VALIDITY=<V20.70> JWRITE MEMORY SPECIFIED BY VA, DSIZE, WDR WRITE.LNG=19, JVALIDITY=<V?0,70> JWRITE IGNORING THE 2 LSB'S OF THE VA READ.MOD.LCk=13,.VALIDITY=<V22,70> WRITE. NORE G= 1A, CVALIDITY=¢<V20.70> WRITE .NT=0C, CVALIDITY= <V020> WRITE.NT.LNG=0E..VALIDIT <v020> WRITE.UL=1B, JVALIDITY=<V20,70> WRITE.SEC=0A, JVALIDITY=<V020> WRITE.PHY=8, JVALIDITY=<V(20> WRITE.UL.SEC=0B,.VALIDITY=<V020> PRB.RD=1F, LVALIDITY=<V24.25.70> PRB.RD.MODE=1E, .VALID]TY=<V24,25.70> PRB.RD.PTE=16, .VALIDITY=<V023> . VALIDITY=<V023> .Xk=17,.PTE PRB.RD PRB.WR=1D, JVALIDITY=<V24,25.70> PRB.WR.MODE=-1(, .VALIDITY=<V24.25.70> PRB.WR.PTE=12, IOINIT=3, PRINIT=1, .VALIDITY=<Vv(23> JVALIDITY=<V021> JVALIDITY=<v021> ORANT=UF , JNALIDITY=<V09,21> REITHK =9, JVALIDITY=<v008> READ LOCK OUT OTHER READ LOCKS WR]TE UNLESS REGISTER MDDE ASSERTTED. wRITE SUPPRESS ACV, UNALIGNED DATA, AND PAGE BOUNDARY U-TRAPS LONGWORD. USED FOR WRITING THE M-BIT. JWRITE. RELEASE LOCK SET BY READ.L(CK ‘“URITE NOTRP'' SWRITE TREATING VA AS PHYSICAL ADDRESS, IGNORE 2 LSB'S. wRITE SECOND RETERENCE ;WITER.SEC, RELEASE LOCK SET BY ''RD.LK". ;PROBE PTt IN TB FOR READ ACCESS AT ADDRESS [N VA. PRB.,R USING WBUS<?25:24> INSTEAD OF THE CURRENT MODE. ;PROBE PTE IMAGE ON WBUS FOR READ ACCESS. ;PTE.R USING KERNEL MODE INSTEAD OF CURRENT MODE. PROBE PTE IN TB FOR WRITE ACCESS AT ADDRESS IN VA, ;PRB.W USING WBUS<25:24> INSTEAD OF THE CURRENT MODE. ;PROBE PTE IMAGE ON WBUS FOR WRITE ACCESS. JGENERATE UNIBUS INIT. JGENERATE A MASTER PROLESSOR RESET. (INCLUDES AN [OINIT) JRE1 CHECK +ISSUE UNIBUS GRANT Pane 77 [ CMT098.MCX MICROZ ;S;ZQ LT0C ' Machine Definition 2762 BUT/=<47:42>, .DEFAULT=0 i Machine Decfinition DEFINMIC : :%;22 1M(01) . 25;22 o747 28~NOV=83 6 CLOKX Rev 13.00, Ctock rate = 160ns 16:30:. ¢ BUT : But" , ; NOTE 01 : ALU/A+B+C1.BCD, ALEG/DATA, BLEG/0. A 1 IN CSA0> Indicates Illegal BCD Char : NOTE 02 : VA<O>.AND.MOT.IR<3> FGR Native Mode, VA<O>,AND.NOT.IR<?> FOR Compatibility Mode (SA<1> (5A<0> ; NOTE 03 : STEPC <~ STEPC = 4 § Branch ON Original Value (SA<2> 0 0 0 = 0 =1 = ¢ = 3 ;2748 ;2749 22750 ;2751 : . ; H ORIG VALUE ORIG VALUE ORIG VALUE ORIG VALUE :S;gz H ORIG VALUE >OR= 4, AND INT OR TIM OV ;2752 Page K ORIG VALUE >0R= 4, AND NO INT OR TIM OV 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 : NOTE 0% : CSA<I> = (,NOT.MM.NOINT).AND.(INT.OR.TIMSERY) ;S;gz :5;28 ; NOTE OS5 : For Description of BUT/SPASTA Operation See Tables and Charts ; NOTE 06 : For Description of BUT/SRKSTA Operation See ROT & RUTSRK Micro field Definitions ?S?g} : NOIE Q7 : For Description of BUT/C(BR Operation See Tables and (harts -S;gz ; VOTE 08 : In Compatibility Mode BUT is on CIR(See MSQ Spec Page 32) 25;22 ; MOTE 09 : For Description of BUT/UVCTR Operation See Tables and Charts 12767 : NOTE 10 : ;2769 ;2770 ;27 ; ; : '5;25 <4 H ;2768 ,‘(’772 ;2773 ; NOTE ;2774 H ;2778 12778 £2779 ;2780 2781 12782 ;2783 ;2784 ;2785 ;2786 ;2787 N ; ;2777 K p= 1R01:4 IRD1TSI= IRDX=1 RETURN=? RET.DINH=3 L0D. IN(.BRA ¢ LOD.BRA BRA,ON. ADD 18 0 0 1 1 N 12774 START<1> ;NO BRANCH START<0> 0 1 0 1 BOOT<1> BOOT<0> 0 1 0 1 1 0 0 1 Function Restart/Boot Restart/Halt Boot Halt Function D C B A EVALUAIE OPCODE AND 1ST OPERAND OF NEXT INSTRU(CTION :SAME AS IRD1 EXCEPT NEXT ADDRESS S FROM 'NEXT' JRETURN FRCM QPERAND EVALUATION POP U=STK AND RET TO 'STK + NEXT'(MODO4’ :POP U=STK AND RET TO 'STK + NEXT'(MOD&4),DEST INH ;LOAD OSR, INC IRD(CNT, BRANCH ON ADD MODE . BRANCH ON ADD MODE JLOAD OSR, R , BRANCH ON ADD MODF . 78 T DR At 1R<1> NOT.MBUS<15> WwBUS<1> WB<5> WB<4> D WB<3> wB<1> wB<2> o T WX.NE.0=29 B(DCHK=2 SRKSTA=37 SPASTA=2F ((BR=2D (CER1.((BRQ,IR0=35; ((BRO.SRKSTAQ=36 DS1ZE=3? 087.5C-0C NO.F PA=30 W(SENA=27 SRKSTA<T> SPASTA<T> (7BR<1> (CBR<O> ((BR<1> ! ((BR<O> DSIZECT> TS [ S ~orUPuNI NN ~) 00 00 Co 00 o OO[+ -] T WwB<31> ' TR T R BR,SC=4, INT-T75-0D MM, ALLGW, INT=03 INT=TIMSERY =28 NOTE NOTE 3 IR<0> IR<5> 1R<2> 0SR<?7:14>=5 (NQTE (NOTE WXx<31:0>.NE.O WBUS<0> WBUS<1:0>,NE.O wB<0> wB<Q> WwB<30> wMUX<31:0>.E0.0 wMUX<31 0>,NE,0Q 1 NOTE SRKSTA<O> SPASTA<O> C(BR<O> .NOT.|R<O> SRKSTA<O> DSI12E<Q> SC.EQ.0 (NOTE (NOTE (NOTE (NOTE (LAT(HE°) =FPA PRE“ENT, 1=NO FPA =WCS PRESENT AND ENABLED =W(S NOT PRESENT OR W(S DISABLED 3 TIMSERY (INT.OR.TIMSERV) .AND .NOT.(CBR<1> § (CBR<T> e TR NOTE 2 NOTE 3 NOTE 4 JNOT.INT CCBRY.INT=T5:2( BUT XB UTRAP = 1, ELSE 0 ~— LY [e-Te] [ (SA<1> CET — 1 el — S O "H>»o - — OO k IR LY ek, o= O 21 ---------- NN (SA<L> + - e4 - 13.00, Clock rate = 160ns CLOKX Rev [PPSR SER R e LOCSACS> ! I4 L LE T ......... tmmm————— 8 BUT B s 2?88 Y 3:3 1M(01)) 28-N0Ov-83 Machine Definition MICRQ2 Py DEF N. — (MT098. H 16:30:35 PSL<27> PSL<(> EPD=0f R ! UV(TR<Z> NOT,HALT PURS : S START<0> 8007<0> FP_QCK ACLO FLAGO -~ '3 G aZ ' . } . ..... 3 3 — o e £ 0y g O .NOIN SH ) A A4 2 NSO s FLAGITO “Honoan 61 o ~ v ! L FLAG! . <o 00 00 Co 00 Co 0o ot T e N TUNURUNUTUNL U .. © UVCTR<O> 1> START< > <1 B0OT —Ow N T " UVCTRe3> ? ‘ PSL<TP> UVYCTR<1> ~— T PSL{ =25 FLAGO FLAGO FLAG2. XOR,FLAG3 L O Ty RO A T TS o o O TR g @ 08 T T —_—— 1 i MICRQZ CMT098.MCX h i DEFIN.MIC :gg?% ;2844 1 2B4S ;2846 ;2847 LT0C ' 1M(Q1) ~ Machine Detinition Machine Definition ((/=<32:31>, . DEFAULT=0 c 7 (LOKX Rev 13.00, Clock rate z 160ns ¢ (C, CCMISC, CCPSL : (C, CCMISC, CCPSL" NOP ((BR SIGND=0, (COP1,(CBR_SIGND=1, LVALIDITY=<V070> (CO’?.CCBR_SIGND=2. :Sggg 16:30:35 JVALLIDITY=<V071> NOP, ({BRTALUS=3 1: 2868 2B-NOV-83 JVALIDITY=<V070> CC CONTROL NOP iNOP ;CC 0P 1 ;CC oP 2 CCBR CONTROL SIGNED COMPARE ALU STATE LATCHES SIGNED COMPARE SIGNED COMPARE ;285 12852 $2853 2854 28‘5 ;2856 JMISC CCMISC/=¢32:25> NOP.((BR_BRATST-0C7 NOP,CCBR_CSIGNS=46, ;2897 WwB_ATC(R.TCBR SIGND=7, ALDOS_DSDZ. CCBR_ALUS= 0 ALUS_SIGND, CCBR_ALUS=0C6, ALUS_UNSGN.C(BR_ALUS=86, SETVIUCBR_SIONDZ47, ;2858 ., 2859 ;2860 ;2861 %ggi JVALIDITY=<V(O71> LVALIDITY=<V71,80> JVALIDITY=<V070> LVALIDITY=<v070> CVALIDITY=<V071> JNOP sNOP JWBUS<3:0> <= AT(R JALUS <= DEC SIGN DEC 0 JALUS <~ SIGNED (OMPARE JALUS <~ UNSIGNED COMPARE JPSL<Y> <= 1 CCBR CONTROL BRANCH CONDITION TRUE COMPARE SIGNS SIGNED COMPARE OLD ALUS LD ALUS OLD ALUS SIGNED COMPARE :(86‘1 ;2865 . 2B66 ;2867 ;2868 ;2869 ;2870 LLPSL/=¢30:25> ;5353 R 4 JVALIDITY=<V00.71.,80> MDR TM_OSk, fCBfi BRATST=¢2F, JVALIDITY=<V02,.33.41> PST_WB, rren _ALUS=0, PSWIWB “CBRTALUS-1 ;2871 ;2872 _ WB_PSL,(7BR_SIGND=4, CCTWH, (CBR_ALUS=S LVALIDITY=<v001> ;3%/8 S NOTV 10877 Y NOTE : FOR DESCRIFTION OF BUT/CUBR SEE TABLES AND (HARTS. ;0876 ; JPSL (W) JREAD PSL ;0C <= WBUS<3:0> {WRITE PSL ;WRITE PSW sMDR <= ZEXT OSR @ DFFAUL" FOR CC & (CMISC DURING LONG OR SHORT LITERAL ]S 'CC/NOP,CCBR_SIGND', C(BR CONTROL SIGNED (OMPARE ALU STATE LATCHES ALU STATE LATCHES ALU STATE LATCHES BRANCH CONDITION TRUE Page 80 MICROZ (MTO98.M{X Machine Definition DEFIN.MIC .T0C ** 1M(Q1) Machine Definition 28~NOV=83 7 b CLOKX Rev 13.00, Ctock rate = 160ns 16:30:35 ¢ CLKX, bQt, Da2, D@3, DIYPE, FPA : (LKX, DQ1, DQ2, DQ3 , DTYPE, Page FPA" (LkX/=<15:15>, . DEFAULT=0 ;CLOCK EXTEND CONTROL DQ1/=<49:48>, .DEFAULT=0 NOP=0 ;D8Q REG CONT FOR MUX/(M.R1, M.01, M,S, XM.R, xM.@, xM.S, D.R1, D.Q%, D.S, Z.5, R.Q, R.® ;NOP NQP= XTND=1 Q_wx=1 D_wX=2 0_D_WX=3 DQ2/=<49:48> sQL=0 SQR=1 : SHF Q LEFT ; SHF Q RIGHT s SHF Q LEFT s SHF Q RIGHT ;D8Q REG CONT FOR MUX/D.R? s SHF Q LEFT s SKF Q@ RIGHT DYYPE/=<41:40>, . DEFAULT=S BYTE=0 ;DATA SIZE ;DATA SIZE WORD- 1 L ONG=2 IDEP=3 FPA/=<19:16>, DEFAULT=0 NOP=0 wBUS_FPA=4, WBUS_FPA.((=5, D <- WMUX D <= WMUX D <~ WMUX D <= WMUX IS BYTE 1S WORD 1S LONG WORD ! ;DATA SIZE ;DATA SIZE IS INSTRUCTION DEPENDANT FLOATING POINT ACCELERATOR H C ONTROL JFPA <- MBUS (Use when not 2nd halt of dble 0S¢ REG dest) *See notex: 2nd hatt of dble 0S2 REG dest) *See notex SFPA <- WBUS (Use when JFPA <~ MBUS, NEXT XFER WILL BE SHORT LITERAL fPA_DATA._MBUS=] FPATDATA WBUS=6 FPA_MBUS.LITNXT=2 FPA_MBUS.FPA_WBUS=3 D <= WMUX ;DRQ REG CONT FOR MUX/(M.R?, M.Q2, D0.Q2) SQR.D_WX=3 SQR.D_wx=1 ;NORM AL CLOCK s STRE TCH CYCLE IR WMUX D<= WMUX ;0 <= WMUX SQL.D_wx=2 DQ3/=<49:48> SQL.D_wX=0 LVALIDITY=<V0B80> LVALIDITY=<V080> JFPA <= BOTH MBUS & WBUS ;WBUS <~ FPA DATA ;WBUS <3:0> <= CC'S FROM FPA ; Note ! The presence of either micro~order{6 or 1) instructs the TPA to accept data. The FPA does not distinguish : . 81 between the two micro-orders and automaticly accepts data from the correct buss. The difterent micro-orders exist to enable the (LOKX post processor to determin e trom which buss the FPA is recieving data, MCX CMT0.98 MICRQ2 2919 .70C "' Machine Definition 12921 [STRM/=<33:33>, .DEFAULT=0 . Machine Detinition DEFIN.MIC ; 2920 12922 Sggz 1M(Q1) NOP=0 IS1ZE_DSIZE=1, 28~NOV~-83 .VALIDITY=<VQ70> . 7 E CLOKX Rev 13,00, Clock rate = 160ns ISTRM, JSR, LIT, LITRL, LONLIT, MISC 16:30:35 ¢ ISTRM, JSR, LIT, LITRL, LONLIT, Misc” SiZ E 1S DETERMINED BY HARDWARE ;ISIZE s12 E 1S DETERMINED BY DSIZE ;1S1ZE ;2925 12926 12927 JSR/=<14:14>, . DEFAULT=0 NOP=0 PUSH=1 ;S UBROUTINE 0 CONTROL N 0 OPERATION '2929 LIT/=<?7:76>, .DEFAULT=0 ;DEFINE UWORD FIELD INTERPRETATIONS 12928 12930 12931 12932 2933 12934 NORMAL =0 LITRL=1, FPAWAIT=? LONL]T=3 ip JVALIDITY=<VO71> USH CURRENT ADDRESS ON MICRO STACK JFIELDS ARE NORMAL sSHORT LITERAL FIELD ENABLED ;WAIT FOR FPA TO COMPLETE PROCESSING ;LONG LITERAL FIELD ENABLED LVALIDITYZ)VO71> ;sggg LITRL/=<39:31>, ;2937 12938 2939 :2940 LONLIT/=<62:31> JLONG LITERAL MISC/=<75:71>, .DEFAULT=10 NOP=10 JDEFINE MISC FUNCTIONS CLR.FLAGT= CLR.FLAG2=2 12947 CLR.STACKFLG=5 ;2945 ;2946 :2948 ;2949 ;2950 12951 ;2952 ;2953 129564 :2955 12956 .L9S7 ;2958 2959 (LR.FLAG3=3 CLR.MMNOINT=4 SET.FLAGO=8 SET.FLAG1=9 SET.FLAGZ2=0A SET.FLAG3=0B =0C SET.MMNOINT SET.STALKFLG=0D RSB(=18 ‘RNUM_2REG=11 (LR.TP-12 CLR.FPD=1C 12960 SET.FPD=1D ;2962 FORCE.CACHE=1F ;2961 ;2963 FORCE.TB=1E 2964 DEC.S(=13 2966 S5C_6=1% 12968 SCZ30=17 2965 12967 SC_2:14 SCT14:16 ;CLEAR FLAG ;CLEAR FLAG s CLEAR FLAG s CLEAR FLAG ;CLEAR FLAG s SET FLAG 0 JSET FLAG 1 s SET FLAG 2 s SET FLAG 3 JSET FLAG 4 JSET FLAG 5 ;RETURN AND SUPPRESS BUS CYCLE sRNUM <~ COMP MODE SECUND REG JPSLTP> <~ 0 ;PSLCFPD> <= 0 JPSLCFPD> <= 1 ;FORCE TB PAR!TY ERROR ;FORCE CACHE PARITY ERROR ;STEP CNT <= STEP (NT =1 JSTEP JSTEP SSTEP JSTEP (NT <= (NT <~ C(NT <= (NT <= O 12943 12944 s CLEAR FLAG VIS NN — O CLR.FLAGO=0 w =N 12941 ;2942 ;SHORT LITERAL Page 82 28-NOV-83 &gégo:ss F 7 ;2969 .Toc ! Machine Definition ;297 MSRC/=<68:64>, .DEFAULT=0;M SCRATCH PAD ADD, M BUS, RBS, AND RNUM CONTROL 12972 ;2973 1297 ;2975 12976 ;2977 1,2978 112979 ;2980 12981 ;2982 ;2983 <= <= <~ <- DUAL DUAL DUAL DUAL PORT PORT PORT PORT ;MBUS <~ DUAL PORT sMBUS <~ DUAL PORT ;MBUS <~ DUAL PORT .MBUS JMBUS +MBUS ;MBUS TEMPO=00 TEMP1=01 TEMP2=02 TEMP3=03 TEMP4=04 TEMPS5=05 TEMP6=06 TEMP7=07 TEMP TEMP TEMP TEMP TEMP TEMP TEMP ;MBUS <~ DUAL PORT TEMP JMBUS <~ M $-PAD TEMP 8 JMBUS <- M S-PAD TEMP 9 TEMP8=08 ;2987 ;2988 TEMP9=09 TEMP10=0A ERRCOD=08B FPDOFFSET=0C MM. TEMPO=0D $738=0F S1SR=0F :2990 ;2991 TEMP.R=10 TEMP.R+1=11 JMBUS <~ M S$5-PAD INDX BY RNUM RNUM_WBUS=1D JRNUM <= WBUS<3:0> JWBUS<3: 0> <~ RNUM DEFAULT MTMP MTMPO MTMFPO ;RBS CONTROL DEFAULT MTMP JWBUS<3:0> <~ 0'RBS POINTE MIMPO MTMPO MTMPO 12984 ;2985 :2986 12989 ;2992 ;2993 ;2994 ;2995 12996 . 2997 . 2998 12999 ;3000 ;3001 13002 ;3003 . 3004 : 3005 ;3006 ;3007 ;3008 13009 ;3010 230M :MBUS <= M S=PAD TEMP 10 JERROR (ODE FOR MEMORY FAULTS & ARITHMETIC TRAPS JMBUS <~ FPD PACK ROUTINE OFFSET JMBUS <~ MEMORY MANAG. TEMP 0 ;SYSTEM CONTROL BLOCK BASE ;SOFTWARE INT SUMMARY REGISTER JMBUS <~ M S~PAD INDX BY RNUM+1 sRNUM CONTROL WBUS_RNUM= 16, LVALIDITY=<V080> PSHADD=15, PSHSUB=14, READRBS=1(, VALIDITY=<v070> LVALIDITY=<V070> LVALIDITY=<VOBO> VALIDITY=<V080> WB_RBSP=1E, MDR=1? VA=1B PC=1A XB.P(_P(+]1=17, PCBACK=19 MA=18 Te=1f wDR=13, 83" ;PUSH 1REG ADDRESSIDSIZE: + « & INC RBSP ;PUSH REG ADDRESS:IDSIZE - ' & INC RBSP 8 INC sBSP JREAD RBS JVALIDITY=<VO70> JMEMORY INTERFACE CONTROL sMBUS <~ MEMORY DATA REGISTER ;MBUS <- VIRTUAL ADDRESS REGISTER ;MBUS <~ PROGRAM COUNTER ;MBUS <- EXECUTION BUF . PC <~ PC+ISIZE CVALIDITY=<V(38> ;MBUS <~ TRAN BUF DATA sMBUS <- WRITE DATA REGISTER JMBUS <~ P( BA(K ;MBUS <- MEMORY ADDRESS REGISTER MTMPO DEFAULT MTMP MTMPQ MIMPQO MTMPO MTMPO MTMPO MTMPO MTMPQ MTMPO W ONLY W ONLY W W W W W W ONLY ONLY ONLY ONLY ONLY ONLY | ;2970 Machine Definition Page CLOKX Rev 13.00, Clock rate = 160ns NNV B WSO . MICRO2 » . 1M(01) CMTO98.MCX DEFIN.MIC CMTO98.MCX MICRO2 JT0C ' Machine Definition Machine Definition [P : 16:30:35 MUX, G NEXT, 7 CLOKX Rev 13.00, Clock rate = 160ns , PAR?, PARF1A, PARF18B, PARF2 : MUX, NEXT, PART, PAR2, PARF1A, PARF18, PARF2'' VALIDJTY=<V070> VALIDIT Y=<Vy070> > .CREF NEXT/=<13:0>, NEXTADDRESS PATCH/=<80:80>, DEFAULT=0 <- MBUS <= MBUS = MBUS < MBUS < MBUS < EXTENDED MBUS <= < <~ < <=~ <~ < EXTENDED MBUS EXTCNDED MBUS D REGISTER D REGISTER D REGISTER D REGISTER 8 REGISTER < <- RBUS RBUS DoDODTOOEOoODOOLTDO nnn S~ VALIDI: y=<yQ70> o H 28-NOV-83 ,ALP A AND B MUX INPUT CONTROL WO (NSNS DD I N =N TMMOAOOOVR NI OOOCOIH WONODTOTOTUXXXITIIIX e e BRROOOSO NOWNNDOOIWe » v NDODDODXVD = MUX/=<57:54> 0 o OOOOOQO porQusQuur i Gunr G G DEFIN.MIC (%] NNWWNIN NN W 1M(Q1) - RBUS RBUS < Q REGISTER = Q REGISTER <_ < <= I <= < < <_ (= <= <~ <- SHIFTER RBUS Q REGISTER SHIFTER RBUS RBUS @ REGISTER Q REGISTER SHIFTER SHIFTER Q REGISTER SHIFTER ND OF CREF ONLY WHEN FULL ASSEMBLY THE FOLLOWING WILL ALWAYS CREF ' — — MICRO2 CMT098.MCX : 1M(01) Machine Definition DEF IN.MIC : 28-NOV=83 16:30:35 H ¢ ROT 7 .TOC ' Machine Pefinition 1 ROT" ;3037 NOCREF ;SET UP FOR CREF ONLY WHEN FULL ASSEMBLY ; ROT/=<63:58> :SUPER ROTATOR CONTROL e e e ! SRKSTA<1> em e mm e mmE e — - ———————— e s o femcer | SL.EQ.0 SL.EQ.O SL.EQ.D | DSIZE<I> SRKSTA4<0> et et ————————— (PL<4:0>+5L).GT.32| (PL<4:0>+SL).GT. 32‘ DSIZE<0> :3040 ;3041 13042 ;3043 X2 .MR=0 XZ .MM=1 X2 .RR=2 XZ.VPN=0D, YEXTRACT & ZERO EXTEND M'R, POS = PL, SIZE = SL JEXTRACT & ZERO EXTEND M'M, PDS = PL, SIZE = SL :EXTRACY & ZERO EXTEN) R'R, POS = PL, SIZE = SL LVALIDITY=<VO72> :EXTRACT & ZERO EXTEND M'M, POS = 09, SIZE = 21 ;3046 13047 .%823 ;3050 ;3051 ,3055 13053 ;3054 CLR1BM=13 CLR2BM=12 CLR3BM=14 RL.RM.P=23 RL .RM,PS=20 RL.RM.4=8, RL.MM,P=21 RL.MM.PTE=11 $<3:0>.NE. (11,13) 1 S<3:0>.NE.O JCLR M<Q7:0> $<3:0>.NE.(11,13) $<3:0>.NE.O , i ; CLR M<15:0> (SEE TABLE) CHECK SIGN ASCII 5 JCLR M<23:0> SROT LEFT R'M, NO. BITS = PLATCH<A:0> (NOTE 1) | WX<31:16>.NE.O WX<15:0>.NE.O UNDEF INED JROT LEFT R'M, NO. BITS = (PL+SL)<4:0> (NOTE 1) : SL.EQ.D DSIZE<O> ! DSIZE<I> JVALIDITY=<V072> ;ROT LEFT R'M, NO. BITS = 4 PL<5> SL.EQ.O i JROT LEFT M'M, NO. BITS = PLATCH $<3:0>.NE.(11,13) I S<3:0>.NE.Q JROT LEFT M'M, NO. BITS = 9 ;3057 :3058 :3059 :3060 13061 13062 ;3063 ;3064 RR.MR.P=4 RR.MR.PS=24 RR.MR.4=9, RR.MR,.S=7 RR.MR.9=08B, RR.MM.P=5 RR.MM.PS=2% RR.MM.S51Z=0E, :ROT RIGHY M'R, NO. BITS = PLATCH<4:0> JROT RIGHT M'R, NO. BITS = (PL+SL)<4:0> LVALIDITY=<V072> ;ROT RIGHT M'R, NO. BITS = 4 ;ROT RIGHT M'R, NO. BITS = SLATCH<4:0> > JVALIDITY=<VO72 ;‘ROT RIGHT M'R, NO. BITS = 9 JROT RIGHT M'M, NO. BITS = PLAT(H :ROT RIGHT M'M, NO. BIT3 = PLATCH+SLATCH .VALIDITY=<V070> ;ROT RIGHT M'M, NO. BITS = 8,16,24,0 i ! 1 ) i 1 i ! SL.EQ.O SL.EQ.O DSIZE<1> 0 DSIZE<I> SL.EQ.O SL.EQ.Q DSIZE<T> (PL<4:0>+SL).GT.32 (PL<4:0>+SL).GT. 32 DSIZE<O> PL<5> DSI12E<0> (PL<4:0>+5L).67.32 (PL<4:0>+SL).GT.32 DS17E<0> 13066 'gggg RR.RR.PS=26 RR.RR.SIZ=0A, :ROT RIGHT R'R, NO. BITS = PLATCH+SLAT(CH .VALIDITY=<V070> ;ROT RIGHT R'R, NO. BITS = 8,16,24,0 JARITH SHF LEFT R, NO. BITS = PLATCH (NOTE 2) 1 SL.EQ.V E DSIZE<1> (PL<4:0>+SL).GT.32 DSIZE<0> %82? ;%822 13065 13069 ;3070 3071 ;gg;g 13074 ;3075 ;gg;g XZ.PTx=0C, RL.RR.P=22 RR.RR.P=6 ASL.R.P=28 ASL.R.S1Z=17, aASL.R.7=15 ASL.M.P=29 ASR.M P=3 ASR.M.-P=2A ASR.M,3=1D ;3078 GETNIB=0F, 23080 CVTIPN=1B ;3079 13081 BCDSWP=18 gggé CVINP=1F 3084 3085 3086 PL_MSS=27 GETEXP=10 GETFPF=19 ;3087 13088 ;3089 FPLIT=1E FPACK=1A : 855 i :%8%2 :%8%% Page CLOKX Rev 13.00, Clock rate = 160ns CVALIDITY=¢VQ72> ;EXTRACT & ZERO EXTEND M'M, POS = 07, SI12E = 23 sROT LEFT R'R, NO. BITS = PLATCH JROT RIGHT R'R, NO. BITS = PLATCH .VALIDITY=<V0Q70> ;ARITH SHF LEFT JARITH SHF LEFT JARITH SHF LEFT NO. BITS = 0.,1,2.3 R NO. BITS = 7 M, NO. BITS = PLATCH (NOTE 2) NO. BITS = PLATCH SHF RIGHT M, JARITH SHF RIGHT M, NO. BITS = =PLATCH ;JARITH :ARITH SHF RIGHT M, NO. BITS = 3 JVALLIDITY=<V072> YGET LEAST SIGNIFICANT NIBBLE FROM MBUS BCD SWAP, MBUS ; CONVERT PACKED TO NUMERIC, 4NIB TO 4BYTE, MBUS “RBUS MUST = 3XX33(HEX) E DSIZE<T> E SL.EQ.O ! SL.EQ.O i i } E : (PL<4:0>+SL).GT.32| DSI1ZE<0> PL<5> (PL<4:0>+SL).GT.32! PL<5> PL<4:0>,EQ.0 ASCII SIGN CHECK (SEE TABLE) ASCII SIGN CHECKPL<S> (SEE TABLE) PL<4:0>.EGQ.O 0 PL<L5> PL<S> . EQ.0 1 PL<4:0> 3 ASCII SIGN CHECK (SEE TABLE) 1 DSIZE<1> DSIZE<0> | S<3:0>.NE.O $<3:0>.NE.(11,13) ! 5<3:0>.NE.Q : S<3:0>.NE.(11,13) sCONVERT NUMERIC TO PACKED, BBYTE TO BNIB, M'P E ASCII SIGN CHECK (SEE TABLE) .FIND MOST SIGNIFICANT BIT SET MBUS,WBUS SEXTRACT & ZERQ EXTEND M'M POS= 7, SlZE 8 UNPACK FLOATING POINT FRACTION, M'R ! WX<31:16> . NE.O WX<15:0>.NE,O ! §<3:0>.NE.O S$<3:0>.NE. (11 A3) v §<3:0>.NE.O 5<3:0>.NE. (11 13) | MB<24 9>,0,RB<7 0>,MB<31 25> ! EXPAND FLOATING POINT LITERAL, MBUS S ROT<31:16,15,14:7,5:0> <= ! i ASCI! SIGN CHECK (SEE TABLE) ' 8<3:0>.NE.Q §<3:0>.NE. (11,13 I } ; MICRO2 (MT098.MCX Machine Definition DEFIN.MIC ;3090 : 30N PL=2C SL=2E ;3098 :3099 :3100 ZERD=16 MINUS1=39 CONX.S1Z=1C, ZLIT0=30 21.1T4=37 ZL178=36 ZLIT12=35 :3126 ;3128 ;3126 J Hm m e — e— em ;1 WBUS RANGE (HECK (UNSIGNED) (ASCI1 + OR SPACE) . v 1=WB<7:0>.€Q.[32,43] ; i 2=MACHINE CHECK ! 3=WB<7:0>.NF.[32,43,45] (NOT = ASCII SIGN) i ee e m er e ;! ABSOLUTE VALUE CHECK | 0=WB<7:0>.EQ.[-1,-31] ¢ 1=WB<7:0>.LT.s v 2=wB<7:0>,£0,[0,31] P 3132 12134 ' ! ! ! 1=WB<7:0>.EQ. v 2=WB<7:0>.E0,32 ;3129 ;3130 :3131 UO3=WE<7:0>.GT.32 #memmo—m——semmmmeeesem et smmmmmmmsmeee——e e Fom m m m m temmemmemomeme P 3=WB<7:0>.6T, oo D T : i ' et ; 1 ! el ' et The results will be as expected for all other rotate values. The results will be as expected tor all other shift values. m st —————— + ! WB<7:0>.NE.[1,32] ! : ! . | ! ' e — e ——— L ; NOTE 2 : When the shift value is equal to zero, the super rotator will output zero. H ' 7 tWB<7:0>1.GE.32 . : $3138 23139 ] e e fommmmsmme e + ; NOTE 1 : when the rotate value is equal to zero, the super rotator will rotate by 32. ; WBUS<7:0>.NE.45 : ;3135 ;%1%9 ! T e+ e mtummtem et s 31 H WB<7:0>.6TU. ! 0=wB<7:0>.£0.[1,31] ;o ;! 13133 . —— + . e S NS ;3127 13108} ' (ASCI] =) v 0=WB<7:0>,EQ.45 ' ;0 ASCII SIGN CHECK ! SRKSTA<O> oo meee D WB<7:0>.NE. (32,43.45) ! 1 ;3123 : S LI Fom m m cm om tmem=m—mmesemm—me—eeeoe e el e c——— ————————— -+ e R : HE) Do R ABS VAL CHECK ;1 EXTEND LITERAL & ROT LEFT 24 BITS ' ;3120 ;3121 ;3122 ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) (SEE TABLE) ;1 EXTEND LITERAL & ROT LEFT 08 BITS ;1 EXTEND LITERAL & ROT LEFT 16 BITS [} ;3119 ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) 0 PL<4:0>.E0,0 ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) [} ] 317 13118 ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ;0 EXTEND LITERAL & ROT LEFT 16 BITS ;0 EXTEND LITERAL & ROT LEFT 20 BITS ;0 EXTEND LITERAL & ROT LEFT 24 BITS ;0 EXTEND LITERAL & ROT LEFT 28 BITS ;0 EXTEND LITERAL & ROT LEFT PL BITS ;1 EXTEND LITERAL & ROT LEFT 00 BITS [} 3116 ASCII SIGN CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ASCII SIGN CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) 1 13115 WBUS RANGE CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) WBUS RANGE CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ;0 EXTEND LITERAL & ROT LEFT 00 BITS ;0 EXTEND LITERAL & ROT LEFT Q4 BITS ;0 EXTEND LITERAL & ROT LEFT 08 BITS ;0 EXTEND LITERAL & ROT LEFT 12 BITS 0LIT24=3A ;%1}2 WBUS RANGE (HECK (SEE TABLE) WBUS RANGE CHECK (SEE TABLE) sCONSTANT O JCONSTANT =1 JVALIDITY=<V(Q70> ;CONSTANT 1,2,4,8 DEPENDING ON SIZE(-(R)+) OLIT8=3E oLIT16=3C 13111 ;3112 Page CLOKX Rev 13.00, Clock rate = 160ns :S ROT <= SLAT(CH ., PLAT(CH <= WB<5:0> ;S ROT <= OLITO . PL<4:3> <= WB<1:0> ;S ROT <~ OLITO . PLATCH <- SHORT LITERAL :S ROT <= PLATCY . SLATCH <= WB<5:0> :S POT <= OLITO . SLATCH <= SHORT LITERAL 2LIT16=34 20L1720=33 2L1T724=32 L1728=31 ZLITPL=2B 0LIT0=38 ;3105 ;3106 ;3107 ;3108 ;3109 ;3110 ¢ ROT 7 1 :3101 13102 ;3103 :3104 1 ;SUP ROT <= PLATC(CH ;SUP ROT <~ SLATCH SL.PL_WB=2F OLITQ.PL43_WB=3F OLITO.PL_LTT=3B PL.SL_WB=2D OLITO.SL_LIT=3D ;3092 ;3093 : 3094 13095 ;ggg? 16:30:35 t : 28~NOV-83 ] i 1 H 1M(01) = | , ' ' e T L+ 86 MICRO2 CMT098.MCX : Machine Definition DEFIN.MIC : 1M(0Q1) 28-NOV~-83 Machine Definition :%}2? .T0C "' :%%2% ROTSRK/=<63:58> 16:30:35 J : ROTSRK 7 Page CLOKX Rev 13.00, Clock rate = 160ns : ROTSRK'' sSRKSTA<CT> SRKSTA<D> XM SHF Cl ZERO ZERO ZERO ZERO ABSVAL.163.D=3B ABSVAL.171.D=3D ;ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) SIGN SIGN ;3147 : 3148 13149 :3150 ;3151 ;3152 13153 ;3154 . 3155 ;3156 ;3157 :3158 :%}58 ABSVAL.140=30 ABSVAL.141=31 ABSVAL.142=32 ABSVAL.143=33 ABSVAL.150=34 ABSVAL.151=35 ABSVAL.152=36 ABSVAL.153=37 ABSVAL.160=38 ABSVAL.161=39 ABSVAL.162=3A ABSVAL.170=3C ABSVAL.172=3F :ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) :ABS VAL CHECK (SEE TABLE) ;ABS WAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) JABS VAL CHECK (SEE TABLE) ABS VAL CHECK (SEE TABLE) ,ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) :ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) ;ABS VAL CHECK (SEE TABLE) SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN SIGN ZEROQ :3161 ASCIISIGN.050=14 JASCII SIGN CHECK (SEE TABLE) ZERO ALU1.Q0 ZERO ASCII SIGN CHECK (SEE TABLE) ZERO PSLC 13144 ;3145 |:3146 ;316 ;3162 13163 ;3164 ;3165 :ABS VAL CHECK (SEE TABLE) ABSVAL.173.D=3F ;ASCI1 SIGN CHECK (SEE 1ABLE) ;ASCII SIGN CHECK (SEE TABLE) ;ASCII SIGN CHECK (SEE TABLE) ASCIISIGN.0S1=15 ASCIISIGN.052=16 ASCIISIGN.053=17 ASCIISIGN.070=1C JASCII SIGN CHECK (SEE TABLE) :ASCI] SIGN CHECK (SEE TABLE) JASCII SIGN CHECK (SEE TABLE) ZEROD ZERO JERO ZERO ZERO ZERO 13166 13167 ;%}28 ASCIISIGN.Q71=1D ASCIISIGN.Q72=1E ASCIISIGN,.073=1F 23170 ;3171 DSIZE.020=8, DSIZE.021=9, JVALIDITY=<V(Q72> CVALIDITY=<V(Q72> :DSIZE<T> ;DSIZE<> DSI2E<0> DSIZ2E<O> ZERO ZERO ;3173 DSIZE.023=08B, JVALIDITY=¢v(72> JDSIZE<)> DSIZE<O> ZERD DS1Z2€.032=0E, JVALIDITY=<V072> sDSIZ2E<T> DSIZE<O> ;3172 ;3174 ;3175 ;3176 ;;%;g DS12E.022=0A, DSI1Z£.030=0C, DSI1ZE.031=0D, DS17€.033=CF, LVALIDITY=<VQ72> JVALIDITY=<V(Q72> JVALIDITY=<V(Q72> JVALIDETY=<VO72> JDSIZE<Y> JDSIZE<T> sDSIZE> sDSIZE<> DSIZE<O> DSIZE<OD> DSIZE<(O> ZERO ALUT.Q0 ALK( ALUT.Q0 ONE ALU1.Q0 PSLC ALKC ONE PSLC SHF SHF ZERO ALKC SHF PSLC “HF DSIZE<O> ZERD ZERQ ZERO ZERO ROT ROT ROT SHF PL.EQ.0.SIGN.120=28 PL.EQ.0.SIGN,121=29 JPL<G:0>,EQLD PL<4:0>.EQ.0Q PL<S> PLLS> SIGN SIGN SHF SHF ;;}gg PL.CQ.0.123=¢8B PL<4 0>.£0.0 0 SIGN SHF PL.EG.0.SIGN.122=2A ;2184 ;3185 BCDSIGN.040=10 B{DSIGN.0Q41=11 ;3187 ;3188 ;3189 ;3190 BCDSIGN.043=13 BCDSIGN.060=18 BCLSIGN.061=19 BCDSIGI.062=1A ;3186 ;3191 ;PL<4:0>,EQ.0 PL<5> SIGN ZERO PSLC PSLC PSLC 3179 ;3180 ;3181 ZERO ALUO.Q1 ZERO ALUQ.Q1 ALKC ALUO.Q1 ONE ALUO.Q1 PSLC ALU1.QG0 ZERO ALUT.Q0 ALKC ALU1.Q0 ONE ALU1.Q0 PSLC WwBUS30 Z2ERO WBUS30 ALKC WBUS30 ONE ZERO PSLC ONE PSLC SHF ONE JERO ALKC ONE ONE ZERO AL XC ONE PsSLC 1S<3:>.NELO ;5<3:0>.NE.Q §<3:0>.NE. (11,13) $<3:0>.NE.(11,13) ZERC ZEROQ ALUO.Q1 ZERD ALUO, Q1 ALKC 18<3:0>.NE.LO ;3<3:0>.NELD ;5<3:0>.NE.O 18<3:0>.NE.O $<3:0>.NE.(11,13) S<$:0>.NE.(11,13) S<3:0>.NE.(11,13) S<3:0>.NE.(11,13) ZERD ZERO ZERQ 7ERO ALUO.Q1 WBUS30 WBUS30 WBUS30 BCDSIGN.042=12 ;6<3:0>.NELOD BLDSIGN.063=18 ;8¢3:0>.NE.0 S<3:0>.NE. (11,13 5<3:0>.NE.(11,13) ZERO ZERO ALUC.Q1 ONE WBUS30 PSLC ZERO ALKC ONE PSLC . | Machine Definition 28-NOV-83 16 30: 35 TSRK 7 VIELD.Q00=0 VIELD.0O1=1 VIELD.002=2 VIELD.010=4 VIELD.011=5 VIELD.012=6 VIELD.110=24 VIELD,111=25 VIELD.112=26 ;SL.EQ.O ;SL.EQ.O ;SL.EQ.OQ ;SL.EG.O ;SL.EQ.O ;SL.EQ.O JSL.EQ.O ;SLLEQ.O JSL.EQ.O (PL<6:0>+5L).6T.32 (PL<4:0>+SL).6T.32 (PL<4:0>+SL).6T.32 32 (PL<4:0>+SL).CT. (PL<4:0>+SL).GT.32 (PL<4:0>+SL).G6T.32 (PL<4:0>+SL).GT.32 (PL<4:0>+SL).GT.32 (PL<4:0>+SL),6T7.32 SL.EQ.Q.SIGN.101=21 SL.EQ.0.SIGN.102=22 SL.EQ.0.100=20 ;SL.EQ.O ;SL.EQ.O :SL.EQ.O PL<S> PL<5> UNDEF INED 13209 131,D=2D . WBRANGE WBRANGE . 133.D=2F WBRANGE . 130=2( WBRANGE . 132=2E ;WBUS “WBUS ;WBUS {WBUS ;3212 WX NELO.113.D=27 WX.NE.0.103=23 ;WX<31:16>.NE.0 WX<15:0>.NE. JWX<31:16>.NE.O WX<15:0>,NE, PL5.003=3 ;0 ;3192 ;3193 13194 ;3195 1319¢ ;4197 ;3198 3199 :3200 ;3201 ;3202 13203 ;3204 3205 3206 5207 13208 13210 ;3211 :3213 13214 :3215 PL5.013=7 ;0 RANGE RANGE RANGE RANGE Page CLOKX Rev 13.00, Clock rate = 160ns 1 MICRO2 {MTO98.MCX DEFIN.MIC 1M(Q1) CHECK CHECK CHECK CHECK (SEE (SEE (SEE (SEE PL<5> PL<S> TABLE) TABLE) TABLE) TABLE) ZEROQ ZERO ZERO ZERQ ZERO ZERQ ZEROD ZERQ ZEROD ONE ONE ONE ONE ONE ONE ZERO ALKC ONE ZERQ ALKC ONE ZEROD ALK(C ONE ZEROD ALKC ZERO ZERO ONE ZERO ZERO ZERO ROT ROT ZERD ZERO ZERO ONE ZERO 2ERO ZERO PSLC 2ERO ONE PSLC PSLC 88: MICRO2 1M(G1) CMTU98. MCX : Machine Definition DEFIN.MIC ‘%S}? 13218 '%5;8 13221 28-NOV=-83 16:30;35 L : RSKC, SPW 7 (LOKX Rev 13.00, (lock rate = 160ns Page 89 | i : RSRC, SPW" .TOC ' Machine Definition [ R=16=31,1PR=32=47 RSRC/=<39:34>,.DEFAULT=0;R SCRATCH PAD ADD (TRL RTMP=0-15,GP LONLIT) ‘DEFAULT TO RTMP? FOR LIT/(LITRL, | SRTMP - DUAL PORT TEMP 1 JRTMP - DUAL PORT TEMP 2 ! ! TEMPO=00 ;RTMP = DUAL PORT TEMP 0 TEMP3=03 {RTMP ~ DUAL PORT TEMP 3 | I: 3222 13223 TEMP1=01 TEMP2=02 13225 13226 TEMP4=04 TEMP5=05 SRTMP - DUAL PORT TEMP & :RTMP - DUAL PORT TEMP S ;3228 TEMP?7=07 ‘RTMP - DUAL PORT TEMP 7 ' 13230 TEMP9=09 SRTMP = R S=PAD TEMP 9 : :3233 TEMP12=0C :3224 ;3227 13229 ,3231 TEMP6=06 TEMPB=08 TEMP10=0A TRTMP = DUAL PORT TEMP 6 SRTMP ~ R S-PAD TEMP 8 :RTMP - R S-PAD TEMP 10 ! } i ' 13232 TEMP11=08 SRTMP - R S~PAD TIMP 11 ! ;3234 13235 TEMP13=0D MM, TEMPS=0E ‘RTMP= R S=-PAD TEMP 13 *MEMORY MANAGEMENT TEMP S , : :gs%g . 53238 MM . TEMP1=0F ‘RTMP ~ R S-PAD TtMP 12 *MEMORY MANAGEMENT TEMP 1 ;3239 RO=10 R1=11 ;GPR “GPR - GENERAL PURPOSE REGISTER 0 - G MERAL PURPOSE REGISTER 1 13241 13242 R3=13 R4=14 *GPR *GPR =~ GENERAL PURPOSE REGISTER 3 ~ GENERAL PURPOSE REGISTER 4 ~ GENERAL PURPOSE REGISTER 7 - GCNERAL PURPOSE REGISTER 8 3240 13243 3244 RP=12 R5=15 R6=16 *GPR “GPR :GPR = GENERAL PURPOSE REGISTER 2 R10-1A R11=18 SGPR “GPR ~ GENERAL PURPOSE REGISTER 10 =~ GENERAL PURPOSE REGISTER 11 13251 R13=1D YGPR - GENERAL PURPOSE REGISTER 13 13255 KSP=20 ;IPR -~ KERNEL STACT POINTER ;3258 13259 13200 13067 Usp=23 15P=24 P(BB=25 MM, TEMP2=26 SIPR YIPR ~ “1PR *MEMORY 13263 POBR=28 ,‘PR - PO BASE REGISTER “IPR - P1 BASE REGISTER 13252 ;2522 ;3256 ;3257 ;3260 13264 13265 13266 ;3067 ;3268 ;3260 $3200 R12=1( SP=1f RTMPGPR=1F ESP=21 §Sp=p2 MM.TEMP3=27 POLR=29 P1BR=2A P1LR=28 SBR=2( SLR=2D SPNICR.SPI(R=CE MM, TEMP4=2F *GPR SGPR *GPR YIPR IPR = GENERAL PURPOSE REGISTER 12 ~ STACK POINTER ~ MICRO CODE TEMPURARY ~ EXECUTIVE STACK POINTER - SUPERVISOR STAC' POINTER USER STACK POINTER INTERRUPI STACK POINTER PROCESS CONTROL BLOCK BASE MANAGEMENT TEMP 2 MEMORV MANAGEMENT TEMP 3 SIPR ! =~ GENERAL PURPOSE REGISTER § 13248 3249 13250 j _ YGPR “GPR YGPR | i ' R7=17 R8=18 R9=19 | - GENERAL PURPOSE REGISTER 5 - GENERAL PURPOSE REGISTER 6 13245 13046 13247 i = PO LENGTH REGISTER “IPR = YIPR ~ DIPR = :IPR SMEMORY P1 LENGTH REGISTER SYSTEM BASE REGISTER SYSTEM LENGTH REGISTER NEXT [NTERVAL REGISTER MANAGEMENT TEMP 4+ ; . ;3271 03272 ;3273 :327¢6 13275 ;327¢ :3277 :3278 13279 ;3280 ;3281 ;3282 ;3283 ;3284 ;3285 13286 ;3287 ;3288 13289 ;3290 13291 :3292 MO Machine Definition TEMP.R=30 TEMP ,R+1=3( TEMP.ROR1=38 GPR,R=33 GPR.R+1=3F GPR.ROR1=38 DST.R=31 DST.R+1=3D DST.ROR1=39 IPR.R=32 IPR.R+1=3¢ IPR.ROR1=3A JRTMP INDEXED JRTMP INDEXED tRTMP INDEXED :GPR INDEXED JGPR 1GPR ;GPR ;GPR ;GPR ;1PR ;1PR JIPR 28~NOV=-83 BY BY BY BY INDEXED BY INDEXED INDEXED INDEXED INDEXED INDEXED INDEXED INDEXED : 16:30:35 RSRC, SPW M 7 (LUKX Rev 13,00, Clock rate = 160ns RNUM RNUM+1 ,A RNUMOR RNUM RNUM+1 .A RNUMOR RNUM RNUM+1 RNUM. OR i RNUM INH WRT IF NOT REG MODE INH WRT IF NOT REG MODE INH WRT IF NOT REG MODE RNUM+1 RNUM.OR .1 LONL1T=35 ;RBUS <~ LONLIT REGISTER JRBUS <= 0 ZERO=36 RBSP <- 0 ZERO, CLRRBSP=37 JRBUS <~ 0 DEFAULT FOR WRT = RTMPO DEFAULT FOR WRT = RTMPQ DEFAULT FOR WRT = RTMP) SPW/=<70:69>, . DEFAULT=0 ;SCRATCH PAD WRITE CONTROL ;NO-OPERATION NOP=0 RSIZE=1, RLONG=? MLONG=3 JVALIDITY=<V070> 3 MICROZ 8 . MCIX CMTO9 DEF IN.MIC JWRITE JWRITE JWRITE SCRATCH PAD R SIZE SCRATCH PAD R SIZE STRATCH PAD M SIZE DEPENDENT IS LONG IS LONG Page . 90 CMTQ9B ,MCX DEFIN.MIC MmiCRQZ 13293 JJog " Machine Detinition 13295 WCTRL/=<30:25>, LDEFAULT=2 REVLEVEL=1T, 1WBUS<23:16> <~ REVISION LEVEL FPICR=03, ASTLVL=3A, LVALIDITY=<V080> LVALIDITY=<V00.30.80> 1PL_WB=3D, IPRT3F, LVALIDITY=<V00.30> 30> LVALIDITY=<V00, VALIDITY=<V01.30> 30> JVALIDITY=<VQ0, LVALIDITY=<V00.30> LVALIDITY=<V00.30.80> REICHR=37, VAL DITY=<V05.30> UVCTR (M. 15210 GRANT=33, STEP(_wB=8 JVALI DITY=<V06.36.40> JFPA ENABLE <= WBUS<5> s INTERRUPT aND _EXCEPTIONS JWRUS<2:0> <= FLOATING POINT TRAP CODE REGISTER YWBUS<26:24> <~ ASTLVL SASTLVL <= WBUS<26:24> :SOFTWARE IPR REGISTER <~ WBUS5<20:16> PSL<PREV> <= PSL<CUR> . PSL<IS,CUR> <= WB<26:24> ‘PSLCPREV> <~ WBUS<23:22> ‘PSL<IPL> <~ WBUS<20:16> 1WBUS<20:16> <= iPL OF HIGHEST IPR TUVETR<3:0> <= UNP'IS'CM<1:0> PREI CHECK {ISSUE UNIBUS GRANT ;MICRO SEQUENZER FUNCTIONS ;STEP COUNTES <= WBUS<4:U> (M. TPTFPD.FS.STEPC=0C, LVALIDITY=<V080> ‘WBUS<31:30,27,5:05 <~ PSL<CM,TP,FPD>, FLAGS, STEP COUNTER CM.TPUFPD.FLAGS=1C, LVALIDITY=<V0BO> ‘WBUS<31:30,27,5:0> <= PSL<CM,TP.FPD>, STATUS FLAGS FLAGS _WB=18 s STATUS FLAGS <= WBUS<5:0> ;TIMER CONTROL & TOD CLOCK VA_VA+4= 22, VAZPC+]+W, pC _P(+1=20, LVALIDITY=<V(80> JVALIDITY=<v(0.30.41> JVALIDITY=<V00,30.41> LVALIDITY=<v0(. 30> VALIDITY=<vQ0, 30> JVALIDITY=¢v01.31, ¢ADDRESS CONTROL PC <= WBYUS sPC <~ PC + WBUS VA <= WBUS JVA <= VA + 4 JVA <= PC+]ISIZ2E+WBUS . PC <~ PC+ISIZE J(NO BUS CYCLE OR BUT XB DURING 1HIS CYCLE) N N N LVALIDITY=<v080> WBUS<31 30> <~ CRAR s TRAR <- WBUS<23:22> tWRITE TU58 REGISTLR PER TRAR JREAD TUS8 REGISTER PER TRAR ;wBUS<>1 30> <~ TRAR TABLE TABLE TABLE TABI E TABLE TABLE TABLE TABLE OO TUSBWRITE=17 TUSBREAD=1F, READTRAR=1B. JWRITE CONSOLE REGISTER PER CRAR JREAD CONSOLE REGISTeR PER CRAR e VALIDITY=<v080> LVALIDITY=<VOBO> PC_PC+WB=2C, VATWB=25, {WBUS<31:0> <~ TOD CLOCK ;CRAR <~ WBUS<23:22> 1 CONWRITE=16 {ONKEAD:= E, READCRAR=TA, 1A P(_wB=24, v ;CONSOLE §& TU58 INTERFACE _CONTROL 1 LOADCRAR=12 1 LOADTRAR=13 WBUS<15:0> <~ IICR INTERVAL REG <- WBUS<15:0> ;TOD CLOCK <= WBUS<31:0> , Al‘ ' EI\I\IA.‘ NEXT Nt et LVALIDITY=<Y080> wBUS<31 24:16> <= T(SR . LN NI JVALIDITY=<V080> mMmmmmmmem INIR"WB=0A TODCLK_WB=0D TODCLKE9, :TIMER CONTROL AND STATUS REG, <~ WBUS<31,24:16> NBUS<1S 0> <= INTERNAL NEXT INTERVAL REG. rormmmmmire rm LVALID!TY=<V080> Ho— NN AN AL N LA U N LN N UN LA LA N U AN A N AN AN LN AN AN PN N U AU b b o b s —5 —2 I - BN N A N N WA N A AN noNLRIRJNL NS W Wt —2 OLCONP WNO 2O 000 NN WY — C OO NN S . ne . e e ae ne P PR T T .. AT LA o A G AN L A N N A N A LN N W L N NN NN N T JNO OPERATION VALIDITY=<V080> PREV_WB=31, T sMISC wBUS<16> <= ACLO SYNC PREV_CUR, ISCUR wB=35, N ;WBUS (ONTROL JVALIDITY=<V080> SOFTIPR WB=3(, Page t WCTRL NOP=2 ACLOSYNC=1D, FPA.ENABLE_wB5=15 ASTLVL wB=38, 13312 CLOKX Rev 13.00, Clock rate = 160ns N~ o~ ;5302 P : ;330 A LAT G A AL ! :3300 i L ; ;3297 ;3298 ‘.3299 WCTRL 7 N : 3296 t 16:30: 35 DNV NWL 13294 Machine Detinition 28-NOV-83 P~ : : 1M(01) 28=N0v=-83 16:30: 35 MICRQ2 1M(Q1) : WCTRL Machine Definition 8 8 (LOKX Rev 13.00, Ctock rate = 160ns Page 92 JMEMORY CUNTROL WDR”WB=2E, WDRTMWB,URz2A, MBUS WDR=26, 18 _wB=28, CLRTB.VA_WB=29, JVALIDITY=<V(2.33> .VAL]DITY=<VO?.§1> CVALIDITY=<v02.33.41> VALIDITY=<v02.33> VALIDITY=<v(02.33> LVALIDITY=¢<v07.37> l . 34> JVALIDITY=<v LWALIDITY=<V10,35> CLRCH,VA_wB=2D, 33> LVALIDITY=<V04, MEMSCAR_WB=34, 30> LVALTDITY=<v00, JVALIDITY=<v01.32.40.80> JVALIDITY=<V01.32,640> OO0 NN W LWV L] MDR_wB=23, MDRTMQ=27, MOR”IR=28B, MEMSCR=32, — o [o RV, RV TURRU TR PPN Y AN N N LA NN LA N WA L A L AN LA N AN AN N N WA PME=14 MEMSCR_wB=30, JPERFORMANCE MON]TOR ENABLE JMDR <= WBUS JMDR <~ 0 JMDR <= [R ZERO-EXTEN DE ] JWDR <~ WBUS ROTATED FO R LONGWORD AL IGNMENT JWDR <~ W3US UN-ROTAT ED JMBUS <~ WDR (NOTE: MSRC=WDR) JTRANSLATION BUFFER DATA <~ WBUS ;T8 VALID BIT <~ 0 ; VA <= WBUS JCACHE VALID BIT ¢~ 0 INDEX POSITION ADDRESSED BY VA) ;MEMORY STATUS & CONTROL ADDRESS REG <~ WBUS<27:24> ;WBUS<27:24> <~ MEMORY STATUS & CONTROL REG (aMSCAR) ;MEMORY STATUS & CONTROL REG(GMEMSCAR) <= WBUS<27:24> JVA <= WBUS JEND OF (REF ONLY WHEN FULL ASSEMBLY THE POLLOWING WILL ALWAYS CREF REF NOVREF NOCREF :SET UP FOR NEVER (REF PAR1/:<78:78>, . DEFAUL "¢ NOTCLPARITYLCC(/ >, <HSRC />, <PTYPE/>,<BUT/> PARZ/ -« 7G:7Gn, [DEFAYL T=¢ VLA (INVALIDATE BOTH GROUPS AT THE INDEX POSITJON ADDRESSED BY VA) (INVALIDATE BOTH GROUPS AT THE =e84 1805, DEFAGL TSy <A PCTL/>,<ROT/>,<MSRC/>,<SPW/>]]> JPARITY[<NEXT/>,<JUSR/>,<CLKX/>,<FPA/> ,<BUS/>, <WCTRL/>,<ISTRM/>, <MISC/> ,<LIT/>]> iD512E (HECK JEVEN PARITY' ;0DD PARITY . ‘ MICRQ2 1tM(01) ~ 2B~NOV~83 16:30:35 : IRD1 ROM Machine Detinition {MT098 . M(X DEFIN.MIC s ; :3375 ;3376 ;3377 5378 : 3379 ;3380 ,TCC "' . 1CODE Machine Definition c 8 CLOKX Rev 13,00, IRD1 ROM" WIDTH/3? e c m e ————— -+ e ——— et |;3381 ; tmteymtuemaccamesooe ot ——————— fmtmmmmc ;3}83 ;D ULFED ; ——— Pepmomm tetspetemmcmcmcannae bmtumm et ; LY E T e + tetetetecncnmne- mmmmtmtesn - R R ettt :3382 ;3384 ;3385 ;3386 ;3387 ;3388 13389 R ; VRIPLDN ; 'DIDIPL B, HE IRDVLFPA rPD 13397 ;3398 fOP /=<07:07> NOP -0 +3400 FFOP/=<15:15> 13403 0P /7=<23:¢3> ; 3406 . 3407 ;3408 [FOP/=<31:31> NOP -0 Lop-1 3399 ; 3401 3402 23404 13405 3409 3410 ;3N 10! P Lo . ) IRD1 . VF el A I FPD,.FPA VF 10 P Vo HE. e~ D FPD e ! ! ! ! : et ' P33 2222212022111 11111 11100100000000 0! P3N10987 65403210987 6:5:43210098:706543210: 3390 1339 13392 ;3393 ;3394 ;3395 V1 /=¢<6:0> FPD,FPA /=<14:8> IRDY F=¢22:16> IRDY,FPA/-<30:24> LOD=1 NOP=( LOD-1 NOP=0 ~LOob=1 VEPD /0630030, vIRD1/=¢33:33>, LVALIDITY=<V060> JVALIDITY=<v061> Clock rate 160ns Page 93 28~NOV-83 1M(0 1) ¢ Machine Defi nition MICRC2 . MCX CMTO98 DEFIN.MIC ;3439 ;3440 53441 13442 ;3443 ;3444 ;3445 ;3646 23447 13448 ;3449 ;3450 . 3451 13452 ;3453 ;3454 13455 ;3456 13657 23458 ;3459 ;3460 33461 ;3662 13463 ;3464 1 ! [} (S, 108} CNTO.MEM | D | CNTO.FPA.REG 2 [ eo O e e e g o B + CNTO.FPAMEM ..................... ' A P Fommmmmmm—mmmmmm o mene " 33333222222 2212211111111 1100000000 0 0 1321098765 4 32010987654321098765432710: B w ~ W~ w ot =~ - o~ ~ 1 - 0o o o ..................... + o e e O e i 1 1 ¥ 1 1 I 1 1 1 1 f f ! 4 ! 1 ¢ o~ fones (NTO.REG (WL o 1 4 vTOooO T ) r O I TP + [P + O 5~ [} Y T P I R (NTO.FPA MEM/=<10:0> (NTO.FPAREG/-<21:11>, OFQP/=<23:27> --------------------- + SOV - ————————— e + _____________________ . e ——————— ———n—— et Lt 1 1 | ] i t 1 1 1 ! ] ' 1 CNT1.MEM JVALIDITY =<v062> LOD=3 00P /=<47: 46> NOP=0 100=3 (NT1,FPA _MEM/=<58:48> (NT1.FPA,REG/=<69:59>, 1FQP/=<71:70> JVALIDITY =<V063> VALIDITY =<V064> NOP=(Q LOD=3 (NTT1.MEM/=<82:72> (NT1.REG/=<93:83>, 10P /=<95:94> JVALIDITY LV06h> NOP=0Q LOD=3 VONT0/=<96:96>, VONT1/=¢<97:97>, | CNT1.FPA.REG : : ! + : : 3 CNT1.FPA.MEM 88877777777 TTO6E66A066651555555555 44 21098765432 10/98765432109876543210098: NOP-0 (NTO.MEM/=<34:24> (NTOL.RFG/=<45:35>, 1 Foi O e ...................... + cemtmmmmmemmmeme—————— eS+ R ] 3 i ! ' I e rm e 1 50 ! G VO — 1 + i - CNT1.REG ] ‘ 4 << = Z N0 Icotrto—=zZ2n< | + 13437 : 3438 t 13436 R 33432 13433 13434 53435 e L o ;3624 : 3425 ;3426 . 3427 13428 13429 ;3430 ;3463 IRDX ROM' WIDTH/96 T 13422 ;3423 Page Clock rate = 160ns T 13420 ;3421 .0CODE (LOKX Rev 13.00, L : 3418 13419 : Machine Detinition .Joc T 13412 13413 ;3414 : 3415 13416 ,‘3417 S ' oo cmcm e e+ . 8 16:30 :35 IRDX ROM LVALIDITY -<v0ob> JVALIDITY =<V067> - 0 0 e o ————— - o e e e e + 9 ! MICROZ .TOC '* Machine Definition ;3665 ;3466 :3667 ;3668 1M(01) Machine Detinition DEFIN.MIC . CCODE (WIDTH/66 e ——————— o= + : : : (NT1.MEM : . . et + G 2! 2109876543 3474 (375 temmm—————— s + YA I ; 23680 R L -t : Vv 23477 ;3678 RiML 23481 ; 13484 I ;3482 ;3483 53485 ;3486 ;5487 13488 13489 ;3490 23N 13492 ;3493 ;3494 23495 ;3496 ;3697 ;3498 CNT1.REG : ! ! ; ;s EEN 10IM ; 6666666655555, ; Aetetee—eemmeecncoen —————t ; e = it e o e - e Sy 1333222222227 : 13476 - e - s e s e o 17165432109 8765: IRD1.MEM/=<10:00> (NTOQ.MEM/=<21:11> CNTT MEM/=<¢32:22> IRD1.REG/=<43:3%> CNTO,REG/-<54:44> CNTY _REG/=<65:55> VMEM/=<66:660, VREG/=<67:67>, o o e e o e W (NTO.REG DL L b L Dbl + LVALL DITY=<v068> LVALL DITY=<V069> E (OMPATABI LITY ROM'" t ; ;3669 ;3470 13671 ; 13472 ;3473 8 CLOKX Rev 13.00, C OMPATABILITY ROM 1 6:30:35 R ; (M1098.MCX 28-NOV-83 [P Bo ; ~ Clock rate 95! MICROZ2 CMTO98.MCX DEF IN,MIC Machine Definition F 8 CLOKX Rev 13.00, Clock rate —=wn i e Jangy) [ s =O t 1 | BaS Yy | [IRav 1 P S NO I e 0.0 1 &C 1 b+ =] 3 ] A 0 S [ to~Ct 4 e + 0 S :\JOI < S e i + OO : I : - + /\IO—‘I : 00 S s 6.5 e : Bl + o v : e m - mt wtonm—— ot teemtmmm usSe/=<3: OO NN IS APD = : 16:30:35 DSIZE ROM nJ NN N TN W w N ", O v NN NN N NN VATNN NN Osesecenananenne DCODE 28~NOV-83 : DSIZE RomM' Machine Definition Toc . MOV 083/=<5: 0s4/=<7?; 085/=<9: DBLE 056/=<11: 10> BYTE= WORD=1 LONG=/2 FLOT=? QUAD=3 .J(ODE JCREF JOREF DBLE=3 JEND OF NEVER CREF THE FOLLOWING WILL ALWAYS (REF 160ns Page 96 —— e e, —— MICR02 CMTO98.M§§ %222 LT0% :gggs NOCREF 1M(01) validity Checks DEFIN.M ; e " 28-NOV~83 Validity Checks 16:30:35 13566 CSET/V01.32.40 =<, ANDL<V001>,<v032>,<V040>]> LSET/V02.21 =<, ANDL<V002>,<v021>)> LSET/V00.30.41 =<.ANDL<VQ00>,<v071>,<v080>]> =<, ANDL<V001>,<v030>1> =< ANDT<V001>,<v031>,<V040>1> CSET/V01.31.40.70=<.ANDL<V001>,<v031>,<V040>,<v070>1> ;3567 LSET/V01.32.40.80=<,ANDL<V001>,<v032>,<V040>,<V080>1> ;3569 ;3570 :3571 LSET/V02.33 LSET/V02.33.41 LSET/V04,33 =<, ANDL<V002>,<v033>]> =<, ANDL<V002>,<v033>,<Vv041>]> =< ANDL<V004>,<v033>1> LSET/V04,.35 .SET/V05.30 =<, ANDL<V004>,<v035>]> =<, ANDL<V005>,<v030>1> ;3573 ;3574 13575 ;3576 23577 13578 ;3579 ;3580 ;3581 .3%58¢2 ;3583 . 3584 13585 97 =< ANDL<V000>,<v(30>1> =<,ANDL[<V000>,<V030>,<v(80>1]> =< ANDL<V000>,<v030>,<v041>1> =<, ANDL<V000>,<v071>]> : 3561 ;3562 13563 :3564 13572 Page ;SET UP FOR CREF ONLY WHEN FULL ASSEMBLY LSET/V00.71 LSET/v00.71.80 SET/V01.30 LSET/V01.31.40 13568 CLOKX Rev 13.00, Ctock rate = 160ns : Combinations'' LSET/V00.30 LSET/V00.30.80 13565 8 : Combinations 13558 ;3559 ;3560 G LSET/V04. 34 LSET/V06.36.40 L.SET/VQ7.37 LSET/V(9.21 LSET/V10.35 LSET/V11.34 LSET/V2D.70 LSET/VE2.70 LSET/V24,.25.70 =<, ANDL<V004>,<v034>]> =<.ANDL<V006>,<v036>,<V040>1> =< ANDL<VQ07>,<v037>1> =<, ANDL<V009>,<v021>]> =<, AND[<V010>,<v035>]> =<, ANDL<V011>,<V0345]> =<, ANDI<V020>,<v070>]> =< AND{<V022>,<V070>1> =<, ANDL<V024>,<v025>,<v070>1> 1> <V054>, <V070>, V050>,,<V051> LSET/V1.50-54, 70=< ANDL<V021>,<<v052>,<V053> LSET/V50.51.70 LSET/V71.80 =<.ANDL<V050>,<v051>,<v070>1> =¢ , ANDL<V071>,<v080>]> i Lo MICRO2 1M(OD) CMT098.MCX ; Validity Checks DEFIN.MIC ; ;3586 ;3587 :3588 :3589 :3590 13591 ;3592 ;13593 .T0C 8 $ 3596 :3597 :3598 ;%ggg 3601 .10C :;3602 ;3603 ;3604 ;3605 3606 13607 WCTRL/CCPSL vs BUS Conflict States .T0C ;3612 ;3613 :3614 13615 <.EQLL<BUS/>, <BUS/PRB RD. PTE>J> <.NEQ[<BUT/>.<BUT/UVCTIR>]> 1>, .SET/V010=<.0RL <.ANDL LSET/V011=<,0RL <.CASE[<BUS/>]CFL0,0,0,0,0,1,0,1,0,0,0,0. 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,01> 0,01> <.CASE[<BUS/>J0F[0,0,0,0,0,1,0,1,0,0,0,0. 6,1.0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0, 1>, BUT/UVCTR>J> NEQ[<BUT/>,< <. . RD>15 <.AND[ <. EQLL<BUS/>, <BUS/PRB : BUs vs MSRC Conflict States'' Checks validityEL<MSRC/>J0F[1. ".SET/V020=<.CAS 1.,1.,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,<INIT>,0,0,0,0,7,1,7,00> .SET/V021=<.CASEL<MSRC/>J0OFL1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.,1.0,0,1,1,1, 0,0.0,0,0,1,%,1,01> TSET/V022=<.CASE[<MSRC/>J0F[1.1.1.1.1,1.1.1.1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,<INIT>,0,0,0,0,1,1,1,01> 0,0,0,0,0,0.0,0.01> .SET/v023=<.CASEL<MSRC/>]OF(1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0, .SET/v024=<,0R[ <.NEQL<BUT/>,<BUT/UVCTR>1>, <.CASE[<MSRC/>]JOfFC1,1.1,1,1.,1,1,1,1.4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0)> 0,1,1,1,1,0,0,0,12> gg}g .SET/V038=<,EQLIKWCTRL/>,<WCTRL/MBUS_WDR>J> .T10C " valid1t{ Checks : Buts That Take Data from XB" LSET/V040=<.NEQL<BUT/>.<BUT/IRD1>,<BUT/IRDITST>,<BUT/LOD. INC,.BRA>,<BUT/LOD.BRA>]> ;3625 . T0C " gggz 33630 13631 :3632 i : 1> | !E :E ! 1> 1 ; i ' \ CSET/V036=<.CASEC<MSRC/>]0OF[1,1.1,1,1,1,1.,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,03> LSET/v037=<.CASE[<MSRC/>]0OF[0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,00)> 13601 3622 ;3629 ; 1> LSET/v034=<.CASE[<MSRC/>10F(0,0,0.0.0,0.0,0.0,0.0.0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,03> 13617 13618 3628 ! : WCTRL/CCPSL vs MSRC Conflict States'' validity Checks ' LSET/V030=<.CASEL<MSRC/>JOFL1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,11> SET/v031=<.CASEL<MSRC/>J0F[0.0.0.0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,1,0,0,0.0,0.0.0.01> 1> CSET/V032=<.CASEL<MSRC/>]JOF[1,1,1.1,1,1,1.1.,1,1.1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1 1,1,1,01> 1,1,1,1,1,1, 1,1,1,0,1,1, 1,1,1,1,1,1, 1,1,1,1,1,1, J0f[1.1,1,1, CSET/V033=<.CASEL<MSRC/> TSET/V035=<.CASEC<MSRC/>]J0OF(1,1.,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,7.1,1,0,0,1,1,1.,1,13> 13626 4 LSET/V000=<.CASE[<BUS/>]0FL1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1.1,1,1,1,1,1,1,1,1,1,1,1,1,11> "SET/v001=<. CASE[<BUS/>]0F[0.0.0.,0.0,1.,0,1,0,0,0,0,0,1.0,0,0,0,1,0,0,0,1,1,0,0,0,0.,1,1,1,11> .SET/V002=<.CASE[<BUS/>JOF[0,0,0,0,0,1,0,].1.0,1,1,1,1,1,0,0,0.0,0,0,0,0.0.1,1.1,1.1,1.1.1J> TSET/VO04=<.CASEL<BUS/>]0F[0.0.0,0,0,1.0,1,0,0,0,0.0,1,0.,0.0,0.0,0.0.0,0,0.0,0,0.0,0,0,0,01> TSET/v005=<.CASE[<BUS/>]0F[0,0,0.0.0,0.0,0,0.1.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]> SSET/Vv006=<.CASE[<BUS/>]0FL0.0.0.0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0.,0,01> CSET/V007=<.CASEL<BUS/>10F(0.,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0.0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]> 13616 :3627 98 : wCTRL/CCPS vs BUS Conflict States' ValiditE Checks .SET/V025=<.CASE[<MSRC/>JOF[1,1.1,1.0,0,0,0,1.1,1,1,0,0,0,0,1,1,1,1,0,0,0, ;%282 Page CLOKX Rev 13.00, Clock rate = 160ns .SET/v008=<.EQLE<WCTRL/>,<WCTRL/REICHK>D> 009=<<WCTRL/GRANT>]1> . EQLLKWCTRL/>, LSET/v ;3594 :3595 ;3610 3N ' 28~NOV-83 16:30: 35 TSET/VO041=<.NEQL<BUT/>.<BUT/IRD1>,<BUT/IRD1TST>I> validity checks LSET/V0S0=<.EQLL<ROT/>,0]> : Special ALPCTL Functions For Multiply and Divide"' LSET/V051=<, EQL[<BUS/>,<BUS/NOP>]1> /MDR_WB>,<WCTRL/MDR _0>, .SET/V052=<. NEO[<WCTRL/> <WCTRL/TB_WB>,<WCTRL/CLRTB.VA_WB>,<WCTRL/CLRCH.VA_WB>,<WCTRLWDR> <WCTRL/GRANT>, CWCTRL/MDR_IR>,<WCTRL/WDR_WB>;<WCTRL/WDR_WB.UR>, <DCTRL/MBUS <WCTRL/REITHK>I> LSET/V053=<.NEQL<CCPSL/>,<CCPSL/MDR _OSR,((BR_BRATST>]> SET/V05h=<.NEQL<BUY/>,<BUT/IRDX>,<BUT/IRD1>7<BUT/IRDITST>,<BUT/LOD. INC.BRA>,<BUT/LOD.BRA>1> | i MICROZ CMT098.MCX validity Checks DEFIN.MIC : 3634 13635 .ToC ;3637 : 3638 .SET/V065=<.0RL .SET/V066=<VCNTO/> : 3640 .T0C $ 3647 ;3648 ;3649 .T0C 3654 ;3655 *3656 : 3657 :3658 ;3659 13660 23661 : 3662 23663 .T0C <.EQLL<10P/> ,<10P/LUD>]> . <.EQLLKCNTT. MEM/> . <.EQLL<CNT1.FPA.MEM/>,<CNT1.FPA.REG/>1> ,<CNT1 REG/>]> 1> 1> > 1> ' : DSIZE Checks" Checks Validity .SET/V070=<VSIZE/> CSET/V071=<.0RL <VSIZE/> , <.NEQ[<BUT/>,<BUT/CCBR>,<BUT/CCBRT,(CBRO.IR0>,<BUT/CCBRO. SRKSTAQ>,<BUT/CCBR1, INT=TS>1>1> Lot T/V072=<.0RL <VSIZE/> , <.NEQ[<BUT/>, <BUT/SRKSTA> <BUT/CCBRO SRKSTAO>]>J> ;SEE CHARTS TO DECIPHER : Multiple WBUS Drive Checks'' validity Checks ' 0,0,0,0,01> 1,V.0,0,0,0, .0 LSET/V080=<.CASE[<WBUS.DRIVE>JOF[1.,1, .GR 0UP> <0THERS>j> " Validity Checks : ALU Group"' <W Ux>J> LSET/ALU.GROUP=<,0R[L <.EQLL<LIT/>,<LIT/LONLIT>]> 1,1,0, 00000,00000,1.006001 0000115 1,1.1.,1,1,1,1, CASEL<ALU/>]OF( .SET/MUX.0D=<, 1,1]> 0F(0,1, .0= <.CASEC<DQ1/>] .SET/DQ LSET/DQ.1= .T0C ;3667 :3668 .T0C : 3671 . CREF ; 3669 ;3670 <.EQLL<CNTO.FPA.MEM/>,<CNTQ.FPA.REG/>1> +<CNTO.REG/>1> <.EQLL<CNTO.MEM/> TSET/WMUX =<.CASEC<MUX/3J0FC1,1.1,1,1,1,1,1,1,<MUX. 09>,1,1,1, <Mux 00>,1,11> CSET/MUX.09=<.CASEL<ALU/>JOFCY,1,1,1,1.1.1,1,0.0,<DQ, 0> <DQ i>,0 <0Q.6>,<pa.1>1> ;3664 ; 3665 ;3666 , . .SET/WBUS.DRIVE=<.SUML<ALU.GROUP>, <WC ; 3652 13653 IRD Rom Checks 99 .SET/V069=<VREG/> ;3643 : 3650 : 3651 Page CLOKX Rev 13.00, Clock rate = 160ns LSET/V067=<VCNT1/> .SET/V068=<VMEM/> : 3641 ;3642 ;3646 8 <.EQLL<QFOP/>,<QFOP/LOD>]> <.EQLL<0OP/> ,<Q0P/L.OD>]> <.EQLL<IFOP/>,"CIFOP/LOD>)> LSET/V064=<.0RL ;3639 : I : IRD Rom Checks"' Validity Checks LSET/V060=<VFPD/> LSET/V061=<VIRD1/> CSET/V062=<.0RL .SET/V063=<.0R[ 13636 ;3644 13645 ' 16:30:35 28-NOV~83 ' <.CASE[<DQ1/>]OFL1,0,1,13> Validitg Check : WCTRL Group'' .SET/WCTRL.GRCUP =<, CASE[<wCTRL/>]0F[0,0,0,3,3,0 0,<WCTRL. 07>.0,0,0,0,3,3,3 3, LSET/WCTRL.O7 =<,SELECTC ' validity Checks .SET/OTHERS=<.OR[ 0.3.0.0,0 . ,0,9,0,3,3,3,3,3,3, 0.0,0,0,0,0,0, v,0,0,0,0,0,0,0,0, 9,0,3.0,0,0,0,0,0,0,3,0,0,0,0,3]> EQL[(CCMISC/>,<CCMISC/WB _ATCR.CCBR_SIGND>31> , 31> Others'* <,CASEL<FPA/>]0F(0,0, 0 0.5, 5]) <. CASEL<MSRC/>10F(0,0,0,0,0.,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,5,0,0,0,0,0,5,0,5,01> ] 1> ;END OF CR§278NLYB?NEN FULL ASSEMBLY THE FOLLOWING WILL ALWAYS CREF I : 3633 1M(01) ; (MT098.MCX DEFIN.MIC MICROZ MO Validity Checks 28«NOV-83 16:30:35 : 3672; J 8 CLOKX Rev 13,00, Clock rate = 160ns Others This page intentionally left blank. Page 100 i i s MACRO.MIC MICROZ2 1M(OT) MACRO . .MIC ;3673 ;3674 ;%2;2 ;3627 .NOBIN 28~NOV=-83 16:30:35 K : Jetf Peng, Gerard Koeckhoven, Brian Allison, C. €. MCDOWELL, Revision History' :3680 ;60 for restore data from MLERRCOD] Add Macro in [ANDE.MIC :3682 ;3683 ;3684 :368% 13686 ;3687 ;59 5 ;57 ;56 ;55 ;5S4 Page 101 P. R. GUILBAULT ’ .T0C "' ;3681 CLOKX Rev 13.00, Ctock rate = 160ns .T0C ''MACRO.MIC" .TOC "REVISION 60,0 ;3678 3679 8 Add Macro for OSR.MIC increment PC Add Macro for setting patch bit Add Macro tor intervat timer Add Macros to support (MT053 (GH) Add Macro to support CMT052 ADD MACROS 1O SUPPORT CMT049 Initial release. 1] (MT098.M0X ; ;3688 ; 3689 .10C ' TM(O1) Basic Macros MACRO.MIC ; 28-NOV=83 16:30:35 Basic Macros" 5 3690 3691 ;3692 {COP1 CCOP2 CLEAR ADD1(FLAGO) 13694 1 3695 CLEAR ARITH TRAPS CLEAR BOOT(FLAG MMNOINT) "'CCMISC/WB ATCR.CCpR_SlGND“ *MISC/CLR.MMNOINT' 13696 ;3697 13698 CLEAR ADD2(FLAGT) CLEAR FLAGO CLEAR FLAGI CLEAR FLAG? . 3699 CLEAR FLAG3 13701 CLEAR FP TRAPS ;3700 CLEAR FLAGY "MISC/CLR.FLAGO" "MISC/CLR. FLAG" “M]SC/CLR.FLAGZ" “MISC/CLR.FLAG3" 'M]SC/CLR MMNOINT"' "YCTRL/FPTCR' ;3702 . 3703 ;3704 CLEAR FPA(FLAGO) CLEAR FPD CLEAR GFLOAT(FLAG&) ;3706 ;3707 CLEAR MOPZERO(FLAGY) CLEAR MUL1(FLAG2) "“MISC/CLR.FLAGT" "MISC/CLR.FLAG?" CLEAR OPZERO(FLAG3) "MISC/CLR.FLAG3" ;2708 ;3709 CLEAR MM_NOINT CLEAR MUL2(FLAG3) “MISC/CLR.MMNOINT" "M]SC/CLR.FLAG3" "MISC/CLR.FLAG?" £3710 CLEAR OVER(FLAG2) ;3712 CLEAR READ(FLAGT) *MISC/CLR.FLAGI" :3714 ;3715 3716 CLEAR SAMESIGN(FLAG4) CLEAR STACK FLAG CLEAR SUB(FLAGY) "MISC/CLR.MMNOINT" "MISC/CLR.STACKFLG"' “MISC/CLR.FLAGY" 13718 ;3719 CLEAR WRITE(FLAGT) CLOBBIZR MTEMPO “MISC/CLR.FLAGT" “'MSRC/TEMPQ, SPW/MLONG"' 237211 ;3713 ;3717 :gzg? CLEAR POP1C(FLAG4) CLEAR REGINT(FLAGD) CLEAR TP CLOBBER MTEMPO DEF ;3722 DEC STEPC ;3725 DIVFAST+ SOR IN R ;%723 ;3724 ;%(59 . 2 :3/28 DIVDA SOR IN R[] DIVDS SOR IN R[] DIVFAST- SOR INRLJ CLOKX Rev 13.00, Clock rate = 160ns "MISC/CLR.FLAGY "MISC/CLR.FLAGO" "MISC/CLR.FPD"’ "MISC/CLR.MMNOINT"' ;3705 8 . “CC/CCOP1.CCBR_SIGND“ *'CC/CCOP2. CCBR-SIGND "MISC/CLR.FLAGD: 13693 "MISC/CLR,MMNOINT" "MISC/CLR.FLAGT" TP "MISC/CLR. “'SPW/MLONG"’ “MISC/DEC.SC" “ALPCTL/D]VDA,RSRC/@1,R0T/0"" “ALPCTL/D]VDS,RSRC/@1,ROT/0" “ALPCTL/DIVFAST+,RSRC/@1,R0T/0" “ALPCTL/DIVFAST=.RSRC/a1,R0OT/0" FLUSH XB “WCTRL/PC_W8,W8 _MLpcI1 FORCE 32 BITS OF vA ‘BUS/PRB.RD,VSIZE/1" SLIT/FPAWRIT 13729 FPAWAIT ;g;%; TORCE CACHE PARITY ;3733 ;3734 ;3735 ;5736 10 RESETY IRD1 IRDITEST IRDX [) "BUS/JOINIT" 'BUT/IRD?,NE\Y/3F9“ “BUT/IRDITST" "BUT/IRDX, NEXT/31"' ;3739 ;2749 MULFAST+ (CAND IN R[J MULFAST- CAND [N RL3 SALPCTLZMULFAST Y, RSRU /70!, R01/0" “ALPCTL/MULFAST-,RSRC/R1Y,RUT/0 ;3742 NOP “ALPLTL/NOP' ;3730 ;2;2; ; 7 1S1Z€0) ! i MICROZ CMTO98.MCX H L |S 'MISC/FORCE.CACHE,VSIZE/1“ s 3F9 - JE.IRD1.ERROR ISTRM/ISIZE_DSIZV,v312E/1,DYYPE/Q1 Page : 102 [ ! R e LMT098 . MCX : MACRO.MIC $ 3743 et e MICRO2 1M(OD) Basic Macros e e e M 8 CLOKX Rev 13.00, (lock rate = 160ns 28-NOV-83 16:30:35 53744 ;3745 ;3746 PAT(H PUSH PUSH RBS+ VPATCH/T" "'JSR/PUSH'' "'MSRC/PSHADD'' :§;é8 PROCESS INIT YBUS/PRINIT"' ;3751 RESTORE POWER FAIL INT "WCTRL/NOP'' ;3753 ;%;gé RETURN AND INHIBI1 DESTINATIONS 'BUT/RET. DINH” "'BUT/RETURN,NEXT/0,MISC/RSBC("' RETURN AND SUPPRESS BUS CYCLE :§;2§ ;3752 PUSH RBS- RETURN [] *MSRC/PSHSUB"' "BUT/RETURN ,NEXT/@1"" ;3756 13757 SET ADDT(FLAGO) SET ADD2(FLAG1) "MISC/SET.FLAGO' 'NISC/SET.FLAG1“. ;3761 ;3762 SET FLAG2 SET FLAG3 "MISC/SET.FLAG2" “MISC/SET.FLAG3" ;5758 ;3759 ;3760 ;3763 SEY BOOT(FLAG MMNOINT) SET FLAGO SET FLAGY SET FLAGG :3764 SET FPA(FLAGD) ;3744 SET GFLOAT(FLAG4) ;3765 SET FPD 3767 SET MM_NOINT 3?69 3770 SET MULY(FLAG?) SET MUL2(FLAGY) ;3773 SET POPIC(FLAGS) ;3776 ;3277 SET SAMESIGN(FLAG4) SET SIGN(FLAGO) 2768 ;3771 ;3772 23774 13775 13778 ;3779 ;35780 :3781 ;3782 ;3783 SET MOPZERO(FLAGT) "MISC/SET.MMNOINT"' "MISC/SET.FLAGO'" "MISC/SET.FLAGT" "MISC/SET.MMNOINT"' "MISC/SET.FLAGOD"' “M]SC/SET.FPD" 'MISC/SET.MMNOINT? “"MISC/SET.MMNOINT"' "M]SC/SET.FLAG!" “"MISC/SET.FLAG2" "'MISC/SET.FLAG3" SET OPZERO(FLAG3) SET OVER(FLAG2) *'MISC/SET.FLAG3" "MISC/SET.FLAGZ"' SET READ(FLAG?) SET REGINT(FLAGY) "MISC/SET.FLAGY" "MISC/SET.FLAGT" "MISC/SET.MMNOINT"' "MISC/SET.MMNOINT" "MISC/SET.FLAGO"' SET STACK FLAG SET SUB(FLAGT) SET UNDER(FLAGY) ""MISC/SET.STACKFLG" *MISC/SET.FLAGY" "'MISC/SET.FLAG3" SET WRITE(FLAGD) “MISC/SET.FLAGT" SET V S1Ze(] "'CCMISC/SETV, CCBR_SIGND" ”VSIZE/T,DTYPE/&1' : : Page 103 ; MICROZ TM(01) CMTO98.MCX ; 28-NCV=83 Bus Function Macros MACRO.MIC ; 16:30:35 \ 8 CLUKX Rev 13,00, Clock rate = 160ns Page 104 Bus Function Macros" ;%;gé .TOC ' :%;g% COMPLETE CPU BUS CYCLES “BUS/PRB.RD.PTE.K"' : 3788 READ “'BUS/READ"' ; 123790 13’9 ;3792 ;3793 ;3794 ;%;82 READ,LONG.MOD READ.MOD READ.MOD.LOCK READ.NOTRAP READ,PHY READ.SECOND ;3789 READ.LONG ;3797 WRITE 23799 ;3800 ;3801 ;3802 WRITE -M[] WRITE -Q WRITE CVINP(MLY) WRITE CVIPN(ML]) ;3798 ;3803 ;3804 WRITE (M[J R[J).RR.4 WRITE D+RLJ+ALKC WRITE D.OR,ZLIT28[] ''BUS/READ.LNG E . ‘ ""BUS/READ.LNG.MOD . “'BUS/READ .MOD "'BUS/READ . MOD.LCK "'‘BUS/READ NT"’ "'BUS/READ.PHY'! "'BUS/READ.SEC"' ! ; ! : . "'3US/WRITE ,WCTRL/WDR_WB"' *BUS/WRITE ,WC TRL/WDR_WB,MSRC/@1,RSRC/22,ALPCTL/WX_S,ROT/RR.MR.4"' 'BUS/NR]TE.UCTRL/UDR_UB,MSRC/&1,RSRC/ZERO,ALU/B-A-CI,ALUCI/ZERO,flUX/M.R1“ "BUS/WRITE,WC (RL/WDR_WB,MUX/R.Q,RSRC/ZERQ,ALU/A-B~C1 ,ALUCI/ZERD "BUS/WRITE.WCTRL/WDR_WB,MSRC/81,ALU/A+B+C1.BCD,MUX/R.S,RSRC/ZERO,ROT/CVTNP" /WX _S,ROT/CVIPN' *'BUS/WRITE ,WC TRL/WDR_WB,MSRC/a1,RSRC/TEMPO,ALPCTL *8US/WRITE ,WCTRL/WDR_WB,RSRC/@1,MUX/D.R1,ALU/A+B+C], ALUCI/ALKC"' 'BUS/wRITE,wCTRL/WDR_UB.MUX/D.S.ROT/ZLITéB,LIT/LJTRL,LITRL/Q1,ALU/OR” ;3805 WRITE M[] R ROT/ZEROD"" /31,ALU/O ,MUX/M.S "'BUS/WRITE ,WCTRL/WDR_WB,MSRC ;3808 ;3809 WRITE MLJ+Q+PSLC WRITE MLI-PSLC “'BUS/WRITE,WCTRL/WDR_WB,MSRC/Q1,MUX/M.Q1,ALU/A+B8+C] ALUCL/PSLC"’ “'BUS/WRITE ,WC TRL/WDR_WB,MSRC/&1,RSRC/2ERO, MU.{L/M.R1,ALU/A~B~C] ALUCI/PSLC" ;3806 :3807 :3810 23811 ;3812 WRITE MLJ+PSLC WRITE ML1+Q WRITE MLI1-Q WRITE M[]-Q-PSLC WRITE MLI.AND.ZLITO[] "BUS/WRITE,WCTRL/WDR_WB,MSRC/@1,RSRC/ZERD, MUX/M,.R1,ALU/A+B+CT ALUCI/PSLC"' "RUS/WRITE ,WCTRL/WDR_WB ,MSRC/81,MUX/M.Q1,ALU/A+B+C]" ;f i i i | i i ! i| ! "'BUS/WRITE ,WCTRL/WDR_WB,MSRC/Q1 ,MUX/M,Q1,ALL/A-B-CIT"' 1 ALUCI/PS: ("' ,MUX/M.Q ,ALU/A-B=CI “'BUS/WRiTE.WCTRL/WDR_WB,MSRC/31 “'BUS/WRITE ,WCTRL/WDR_WB,MSRC/a1,LIT/LITRL,LITRL/82,ROT/ZLITO,IUX/M. S, ALU/AND"* , i ;3813 WRITE MLJ.ANDNOT.Q "'BUS/WRITE,WCTRL/WDR_WB,MSRC/31,MUX/M,0Q1,ALU/ANDNOT"' ;3815 WRITE MLJ.ANDNOT.Zi.178[] 'BUS/URITE,UCTRL/VDR~UB,MSRC/81,LIT/LITRL,LITRL/Q?,ROT/ZLIT8.MUX/M.S.ALU/ANDNOT“ ; "BUS/WRITE.WCTAL/WDR_WB,ALU/OR,MUX/M.S ,MSRC/31,ROT/ZL 110, LIT/LITRL,LITRL/2"" : . 51"’ 2ERD,S, ALU/R+B+(] “BUS/WRITE,WCTRL/WDR_WB,MSRC/a1,ROT/MUK/, Z :3814 ;3816 WRITE ML].ANDNOT.RCI WRITE M[].OR.0Q ,MUX/M.R1' ,MSRC/a3 ,RSRC/32 , ALU/ANDNOT "'BUS/WRITE,WCTRL/WDR_WB “'BUS/WRITE,WCTRL/WDR_WB,MSRC/a1,MUX/M.Q1,ALU/OR"’ , “AYS/WRITE,WC TRL/WDR_WB,MSRC/&1,RSRC/@2,ALU/OR,MUX/M . R1"" "'BUS/WRITE ,WCTRL/WDR_WB,ALU/OR MUX/M.S,MSRC/31.ROT/ZLITEQ,LIT/LITRL.LITRL/QZ“ 'flUS/WRITE,WCTRL/UDR_UB,MSRC/ai,ROT/RR.MM.P,ALPCTL/WX s' ;3817 ;3818 ;3816 :3820 WRITE M[J.OR.R[J WRITE M[J.OR.ZLITOL] WRITE ML1.0R.2U1T28(1] WRITE ML].RR.P ;3822 ;3823 ;3824 ;3825 WRITE M[].XOk.Q WRITE M[1.xZ WRITE NOTREG WRITE Q ,ALU/XIRTM ,MUX/M.Q1RC/a1 *'BUS/WRITE ,WCTRL/WDR_LB,MS *'BUS/WRITE,WCTRL/WDR_WB ,MSRC/@1 ,ALPCTL/WX_S ,ROT/XZ MM "BUS/WRITE.NOREG,WCTRL/WDR WE'' 'BUS/WRIT§.UCTRL/NDR_UB,RSRC/ZERO,MUX/R.Q.ALU/UR” ;3877 ;3828 WRITE Q_(Q.SL.1).UR.T WRITE R[] O, ALUSHF /ONE"' ALU/A+B+(] . SL,MUX/R.0Q,RSRC/ZER "'BUS/WRITE,WCTR./WDR_WB,DQ1/Q_WX, :BUS/WRITE,NCTRQ/wDR_w°,°SRC/51,ALU/OR,MUX/R.S,ROT/ZERO” ;382 ;3826 ;389 ;3830 13831 ;3832 ;3833 ;3834 ;3835 ;3836 23837 , 3838 WRITE M[J.SL.T WRITE O.NOT WPITE RLJ+CONX(&) WRITE RLI~D=ALKC WRITE RLI-ML] WRITE R{1-M[]-! WRITE XB PC_P(+1 i WRITE XB PC_P{r¢ WRITE ZL17CL] WRITE.LONG *'BUS/WRITE,WL TR /WDR_WB,RSRC/ZERD,MUX/R.Q,ALU/A-B~C] ,ALUCI/ONE"" 'BUS ‘WRITE W TAL/WDR_WB, RSRC/a1,ALU/A+B+C] ,MUX/R. S, ROT/CONX.S1Z ,VSIZE/1,DTYPE/LONG" “BUS/WR'Tt,WCTRL/WDR_WB,RSRC/@1.MUX/D. k1, ALU/B=A=C 1, ALUCT /ALK “BUS/WRITE,W( TRL/WDR_WR ,MSRC/a2 ,RSRC/31,ALU/B=A=C 1, MUX/M.R1"' “'BUS/WR, TE . WCTRL/WDR_WB, MSRC/a2 ,RSRC/a1,ALU/B=A-C,MUN/M.R1 ALUCI/ONE" “BUS/WRITE .wlTRI /WDR_WB,MSR(/XB.PC_PC+I ROT/ZERQ,ALU/OR.MUX/M,S, 1SThm/ IS, 26 DSIZE,VYSIZE71,DTYPE/BYTE" . VRUS/WRITE ,WCTRL/WDR_WB,MSRC/XB.PC_PC+1,ROT/ZERD,ALU/OR ,MUX/M.S, . ISTRM/ISTZE DSIZE,VSIZE71,DTYPE/LONG "'SUS/wRITE, WCTRL/WDR_WE, ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITRL/21" ‘BUS/WRITE . LNG,WCTRL7WDR_WB.UR"' ; : : ; MICROZ2 CMTOQS.mgé MA(CRO, 2B=NOV=83 tM(D1) Bus Function Macrcg- 16:30:35 8 9 WRITE.LONG D WRITE .LONG ML) .ANDNCT,Q WRITE.LONG M[).0OR,Q 1 ALU/OR" "HUS/WRITE.UNG,WCTRL/WDR_WB.UR,RSRC/ZERD,MUX/D,R ) U/ANDNO A al,MUX/M.Q1, _WB,UR,MSR(/ "BUS/WRITE.LNG,WCTRL/WDR .U/0R” ],MUX/M.Q1.A WR.UR,MSRC/& G,wC]RLIWDR_ 'BUS/leTE.LN WRITE.PHY M([] ‘BUS/HRITE.PHV,wCTRL/WDR,wB,NSRC/61.ALU/OR,MUX/M.S,ROT/ZEHO“ ‘BUS/WRITE NT.LNG" *BUS/WRITE NT'' PHY"' "BUS/WR.ITE WRITE.LONG,NOTRA® WRITE .NOTRAP WRITE .PHY ‘BUSINRITE.PHV,wCTRL/wDR_WB,RSRC/&I.ALU/OR,MUX/R.S,nOT/ZERO” WRITE .PHY R[] WRITE.SECOND WRITE.SECOND. UL - WRITE.UL M) UL M{]+0Q WRITE WRITE.UL M[).ANDNOT.Q WRITE.UL M[J.OR.Q UL MUJ.OR.ZLITOLS WRITE. WRITE . UL MUILANDNOT, 2L 110[) PO S e et = Page 105 CLOKY Rev 13.00, Clcck rate = 160ns - “BUS/WRITE.SEC" "BUS/WRITE.UL.SEC" "'BUS/WRITE.UL NCTRL/UDR_HB,MSRC/Q1,ALU/OR,MUX/M.S.ROT/ZERO“ 'BUS/NRITE.UL.NCTRL/HDR_HB.MSRC/81.MUX/M.Q1.ALU/&+B¢CI” "BUS/WRITE. UL ,WCTRL/WDRTMWB.UR . MSRC/81,MUX/M, Q1 ,ALU/ ANDNOT"’ "BUS/WRITE . UL,WCTRL/WDRTMWB.UR,MSRC/81,MUX/M.Q1,ALU/OR" LITRL,LITRL/@2R" 81,ALUZO S, ROT/ZLITO,LIT/ WB,MSRC/ , MUX/M. *BUS/WRITE.UL,WCTRL/WDR_ "BUS/WRITE.UL ,WCTRL/WDR_ 4B, MSRC/a ', ALUZANDNOT ,MUX/M. S,ROT/ZLITO,LIT/LITRL,LITRL/@2" ——— . - 1 . MICROZ (MT098 ,MCX H 28-NOV-83 Register Transfer Macros MACRC.MIC V 1M(01) 16:30:35 ¢ 9 CLOKX Rev 13.00, Clock rate = 160ns .T0C "' 13857 13858 ALUS_BCD SIGN.ZERO ALUS_BCD SIGN,ZERO(MLD) “*CCMISC/ALUS_DSDZ. CCBR_ALUS" CCBR_ALUS ,MSRC/@1,RSRC/ZERD, ALU/OR, MUX/M.RT" . “'CCMISC/ALUSIDSDZ 13860 ALUS_UNSGN "“*CCMISC/ALUS_UNSGN.CCBR_ALUS" ;%ggz ASTLVLIC] ALUS_SIGND 'CCMISC/ALUSZSTGND. CCBR_ALUS' “CTRL/ASTL.L_WB,ALPCTL7WX_S,MSRC/@1,ROT/RR.MM.S1Z,VS1ZE/1,DTYPE/BYTE" ASTLUL MLJ.RL,24 ASTLVL_RLI_ML] ROT/ZERO Msnc/aa "WCTRL/ZASTLVL ~WB. SPW/RLONGSRSRC/81,ALU/OR(, MUX/M.S, 1724 , ALPCTL/WX_S" ;%ggg BUS GRANT M[J_IPL “'BUS/GRANT ,WCTRL/GRANT , SPW/MLONG,MSRC /81" ;3867 13868 CC_FPA ((M[] “CCPSL/CC_WB.CCBR_ALUS,FPA/WBUS FPA,CC" *"CCPSL/CC_WB.CCBRCALUS ,ALU/OR,MOX/M,S MSRC/31,ROT/ZERD" 13870 13871 13872 13873 13874 13875 13876 13877 13878 ;3879 C(CCML1.OR.2L170[] CC_MLJ.XOR,.ZL1TO[] CC_M[I_MB.AND.ZLITO[] CC_MLI-MB.ANDNOT.CONX(1) CCTMLITMB.ANDNOT.CONX(4) CC_MLIZMB.OR.CONX(1) (¢ M[J-ZL1T00] (C_RI)T cCZzLito] 113861 13862 "WCTRL/ASTLVL WB,LITRL/7a1, L1 T/LITRL,ROT/Z CC”ML).NOTAND.RI] $3869 (C_ML[].OR.RL] ;;ggg ] cc-rd CCBRTALUS \MSRC/ai, RSRc/aé MUX/M,R1,ALU/NOTAND"' “CCPSL/CC-WB. "¢ (PSL/CCTWB. (CBRTALUSJMSRC /a1 RSRC /a2 , MUX/M.R1 ,ALU/OR"" N ALU/OR S, MUX/M. L/82, /L1TRL,LTTR T/ZLITQ.LIT "¢ CPSL/CCWB. € CBR-ALUS JMSRC/@1.RO . “'CCPSL/CCTWB.CCBRZALUS ,MSRC/81,ROT/ZLITO,LIT/LITRL,LITRL/@2,MUX/M.S ALU/XOR"" L1TRL/82 LITRL ,ROT/ZLITO,LIT/ S ,MUX/M. ,ALU/AND SPW/MLONG /@1 "¢ CPSL/CCWB. CCBRIALUSJMSRC “CCPSL/CCTWB. CCBRTALUS.ALUZANDNOT, MUX/M. § , SPU/MLONG ,MSRC/a1,ROT/CONX. S12,VSIZE/1,DTYPE/BYTE""! “'CCPSL/CCTWB. CCBRZALUS,ALU/ZANDNOT, MUX/M S SPW/MLONG.MSRC/@1.ROT/CONX.S1Z,VSIZE/1,DTYPE/LONG' ! 3 "¢ CPSL/CCTWB. CCBRIALUS ,ALU/OR,MUX/M.S, SPW/MLONG Msnc/a1 ROT/CONX.S1Z,VSI2E/1,DTYPE/BYTE” ! "CCPSL/CCTWB.CCBRTALUS, SPW/MLONG, MSRC/a1 ALRCTL/WX_S RpT/ZLlTO LIT/ZLITRL,LITRL/R2" "¢ CPSL/CCTWB. CCBR-ALUS -ALU/OR,MUX/R. S ,RSRC /a1 ,ROT/ZERD" L/81"" *'(COSL/CC_WB. CCBRZALUS, ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITR “'CCPSL/CCTWB. CCBRTALUS ,ALPCTL/WXSROT/ZLITO,LIT/LITRL,LITRL/A1"" 13882 CONREGS_D_M[I_RI] 13884 13885 13886 CONREGS-M[J.OR.ZL1T16() CONREGS_ML]).RR,16 CONREGS_ML]_RI] "WCTRL/CONWRITE,.ALD/OR,MUX/M,S ,MSRC/@1,ROT/ZLIT16,LIT/LiTRL,LITRL/G2!" “WCTRL/CONWRITE JROT/RR.MM.S17,VS12E/1,DTYPE/WORD MSRC/a1, ALPCTL/WX "WCTRL/CONWRITE.MSRC/a1, SPH/MLONG RSR(/@2,MUX/R.$,ALU/OR,ROT/ZERO' "TM -%ggg CONREGS_ZLIT16L] 223? 13883 13887 106 Register Transfer Macros'' :%ggg 13850 Page CONREGS_M[) ; *“WCTRL/CONWRITE ,WB MLa13" "\CTRL/CONWRITE JRSRC/@1,MUX/R.S ,ALU/OR,ROT/ZERQTM i CRAR_ZLITI6L]) ""CTRL./CONWRITE JALPCTL/WX_S ,ROT/ZLIT16,LIT/LITRL,LITRL/31" "WCTRL/LOADCRAR,LITRL/81,LIT/LITRL,ROT/ZLIT16,ALPCTL/WX_S" $3892 D(OD)_ZL1TOL] "DQ1/D_WX,ROT/ZLITO,LIT/LITRL,LITRL/@1,ALUOD/OR.OD MUX/Z.5" : 13894 DZ(ML) RL)).RR.P '3893 (ONREGS_R({]” B *WCTRL/CONWRITE ,MSRC/&1, SPW/MLONG,ALU/OR,MUX/R.S ,ROT/ZERO,RSRC/@2,0Q1/D_WX"' p_(M[1 R[] .RR.9 "DQ1/D WX ALPCTL/WX D_S,MSRC/@1,RSRC/Q2, ROT/RR MR.§" “ALPCTL/WX_D_S,MSRC7@T,RSRC/32,ROT/RR. MR,P 13895 ©3896 ,SR.] DT(M[J+CONX(2)} .AND.R[] D_(ML].RR.P) NX.S1Z,.Svssz/1 DTYPE/WORD"' "'DQ1/D_WX, ALD/A+B+C1 SR,MUX/M. S ,MSRC/@1,ROT/CO MM, P,ALU/AND ,MUX/R ©3904 DD+2LITO[] DA 1/D WX, MUX/D. S, ALU/A+B+E1,ROT/ILIT) LIT/LITRL,LITRL 1" 13897 13898 12899 $3900 13901 $3902 13903 13905 ©3906 $3907 13908 ©3909 DT(R[) M[D.RL.P D (RL[J+CONX(2)).SR.1 -1 DCCONX.S1Z pIpeOL]T24(] D_D+R[) DID+RLI+ALKC DCD-1 D_D-CONX(2) DCD-CONX(4) DID-RI] DID-2L1T0(] "'DQT/D-WX.MSRC/@l ,RSRC/QZ.ROT/RR “ALPCTC/WK_D_S,MSRC/82 ,RSRC/a1,ROT/RL.RM.P'* "'DQ1/D_WX, ALU/A*B*CJ SR,MUX/R.S,RSRC/@1,ROT/CONX.S12,VSI1ZE/1,DTYPE/WORD"" “ALPCTL/WX_D_S,ROT/MINUST" “ALPCTL/WX"DS,ROT/CONX.S12" *DQ1/D_WX,MUR7D.S,ALU/A+B+C],ROT/OLIT24,LIT/LITRL, LITRL/81" 1" 'DQT/D WX.RSRC/@1.MUX/D.R1,ALU/A+B+C *DQ1/D WX ,RSRC/@1,MUX/D.R1,ALU/A+B+C ], ALUCI/ALKC" *DQ1/DIWX.ALU/A+B+C].MUX/D.S.ROT/MINUSI"TM “DQ1/DTWX,ALU/A-B=C],MUX/D.5,ROT/CONX.SIZ ,VS12E/1,DTYPE/WORD! "'DQ1/D WX, ALU/A=B=C] MUX/D. sJROT/CONX,S17.VSIZE/1,DTYPE/LONG' *DQ1/D-WX.RSRC/@1,MUK/D.RT,ALU/A=B=C]" "DQ1/D-WX,LIT/LITRL,LITRL/&1,ROT/ZLITO,MUX/D, S, ALU/A=B=CI"" ; - O MICROZ2 ;3918 SN J D I e ) L1T0L] . 1700 D.RD) T an T L T . 3919 e 3915 :3916 1397 ) 11120 L e 13914 ; L ;3910 ,3911 ;3912 13913 160 Lo o T RL.24) T Q_R(] [ Ut 28-NOV-83 Register Transfer Macros TXTTTZTIXIIZIIIZX TIOCOCTODT * 1M(OT) T 16:30:35 9 b CLOKX Rev 13.00, Clock rate = 160ns "'DQ1/D_WX,ALU/AND ,MUX/D.S ,ROT/0OL "'DQ1/D_WX,ALU/AND ,MUX/D.S,ROT/2L . S ,ROT/ZL *'DQ1/D_WX,ALU/AND ,MUX/D "DQ1/D-WX.ALU/OR MUX/D.R1 RSRC/3 *DQ1/DZWX.ALU/XOR,MUX/D. G 1" *'DQ1/0”WX ,MUX/D.$,ALU/XOR ROT/ZL1T12,LIT/LITRL LITRL/D1 . "DQ1/DIWX ;MSRC/81,RSRC/ZERD,ALU/OR MUX/M.R1"" *Da2/SUR. b WX, MSRC/A1,RSRC/ZERD, ALU/OR MUX/M,R2"" . 1,MOX/M. R’ *DQ1/D_WX.MSRC/31,RSRC/32, ALU/A+B¥C TRL/82 T/LITRL,LI T/ZLITO,LI MSRC/a1,RO S "DQ1/D-WX,ALU/A+B+CT ,MUX/M. "0Q1/D_WX,MSRC /1, RSRC/32 MUX/M.R1,ALU/A=B=C]"" *DQ1/D_WX,ALU/A-B-C1 ,MUX/M. S, MSRC/81,ROT/ZLITO,LIT/LITRL,LITRL/82" *DQ1/D-WX,ALU/AND ,MUX/M.R1 ,MSRC/a1,RSRC/82"" .\ "DQ1/D_WX,ALU/AND;MUX/M. S , MSRC/@1,ROT/ZLIT16,LIT/LITRL ,LITRL/32"" "DQ1/D_WX) ALU/OR ,MUX7M.§ ,MSRC/a1 ,ROT/RR. RR.S1Z ,RSRC/Q2,DTYPE/BYTE, VS1ZE/1 5 "DQ1/D7WX MSRC/@1,RSRC/@S MUX/M. RT, ALU/OR"" 1, DTYPE/WORD "ALPCTC/WX_D_S.MSRC/a1,ROT/RR.MM.S17,VSIZE/ “ALPCTL/WX-D-S:Q_R,MSRC/@1,ROT/RR.MM.S1Z,VSIZE/1,DTYPE/WORD ,RSRC/82"" "D1/D_Wx,ALO7A+B+(1. SR, MUX/M. S, MSRL/A1, ROT/ZERD “ALPCTL/WK_ D u Q_p*' “ALPCTL/WXZDZQ_STROT/MINUST" “ALPCTL/WX_D_Q"S,ROT/ZERD" XOR.RL] 001/0_D_WR, RLU/XOR MUX/D.R1,RSRC/@1" . DWX,MSRC/31.ROT/ZERD, MUX/M, S, ALU/OR"! D1/ ] ) 0l *DQ1/02D WX, ALU/XOR,MUX/M. Q1 MSRC/31"" *DQ1/D WX, MSRC/RNUM_WBUS ,ALU/A+B+CT ,MUX/D .S ROT/ZL] *DQ1/D WX ,MSRC/RNUMWBUS,ALU/A=B=C 1 ;MUX/D. S ,ROT/ZL1 “ALPCTL/WX_D_S ,MSRCZRNUM_WBUS ,ROT/ZLITO,LIT/LITRL,L 'DQ1/D_WX, ALU/OR MUX/R. S ;RSRC/a1,ROT/ZERD’" 1" "DQ1/D_WX,RSRC/@1,R0T/{ONX.S1Z, MUX/R. S, ALU/A+B+( *DQ1/D-WX,RSRC/a1,MUX/D.R1, ALU/B A-C1,ALUCI/ALKC" R.Q *DQ1/DWX,RSRC/a1,MUX/R.G,ALU/OR"" 13963 +3964 — . 13961 Py - ND.ZL1TO[] bt e e D — 25 MNO—A——is D =D a T s IT/LLTRL,LITRL/@1"" ar’ DDV 13960 v T T L/t — et VALPCTL/WX_D_S,ROT/ Zi ALPCTL /WX_D_S,ROT/ l 13959 13962 “ALPCTL/WX_D_S,ROT/ l “pa1/D_wx,ALDOD/OR,g — ] M[J_HARD .REV LUXM/ZERG ALU/OR"' M~ “ALPCTC/WX_D_S.ROT/ Z “ALPCTL/WX_D”S,ROT/ z 0 MUX/XM.R,ALUXM/SIGN,ALU/OR,VSIZE/1,DTYPE/WURD, —— ] % 0,MUX/XM.R,ALUXM/SIGN,ALU/OR ,VSIZE/1,DTYPE/BYTE, - "'0a1/D_WX,RUR/D.S,AL o> v ol ol pll e T2l N O-—-t—-u—c—q\NNNNN -D “aLPCTL/WX_D_S,ROT/ZL — “DQ1/D_WX, MSRC/a1 RSRC \Zczcno (1) — 13958 ”001/0 WX,MSRC/X? ?gns £, VSIZE/1 DTYPE/BYTE" NNNDCCLOOoSnan 13954, PC_PC+? 1STRR/ ey _SEXT(XB) . "DQ1/D_WX. ALU/A+B+C1. SR, MUX/R.S ,RSRC/@1,ROT/ZERQ"’ 'DQ1/D-WX.RSRC/@1, SPW/RLONG.MSR{ /X8, PC_PC+1,ROT/ZERD, MUX/XM. S, ALU/OR, ey ey e LY K 72 | SR.1 CZEXTOXB) PC_Pi+l *DQ1/D-WXRSRC/a@1,MSRC/a2, MUX/M.R1,ALU/B-A~C1"" \\mmq—c-«. [ 13955 'DQ1/D-WX ALU/A+B+C1 MUX/R.S,RSRC/@1,ROT/MINUSTTM" =ALK( “WCTRL/FLAGS_WB,RSRC/@1,R0OT/ZERO,ALU/OR, MUX/R.S,DOT/D_WX"' ”w(TRL/FLAGS WB,MSRC/@1,ALU/AND, MUX/M. S, ROT/ZLITO, IT7LITRL,LITRL/22" “WCTRL/FLAGS_WB,RSR(/Q1, ROT/ZERO,ALU/OR,MUX/R.S"" Page 107: CMTO098.MCX MACRO.MIC MICRO2 1M(91) 28=NOV=83 Register Transfer Macros 16:30:35 E 9 CLOKX Rev 13.00, Clock rate = 160ns FLAGS_ZL1TO0] "WCTRL/FLAGS_WB,ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITRL/@1Y FPA.ENABLE_ML3.RR.P 'WCTRL/FPA.ENABLE WB5,ALPCTL/WX S, ROT/RR.MM,P MSRC/a1"’ FPA_MB MLIZR] FPAZML ] FPATML] FPA_WB_R[1-0 FPAZMC] MDRRL] FPAZQ_MDR MTEMPO_R[] FPAZQTML] FPAZQTML) MDR_Q page : “'FPA/FPA_DATA.MBUS,MSRC/@1,SPW/RLONG,RSRC/@2 ,MUX/R.S,ROT/ZERD,ALU/OR . o "'FPA/FPATDATA,MBUS ,MSRC/@1"! o "'FPA/PA”MBUS.FPA WBUS,MSRC/a1,RSRC/82,MUX/R.S,ALU/A-B=C1,ROT/ZERD "'FPA/FPA_DATA.MBUS ,MSRC/a@1,WCTRL/MDR WB,ALU/OR,MUX/R.S,ROT/ZERD,RSRC/@2 M /WX R.Q MBUS MSRC/MDR ,RSRC/@1,ALPCTL , SPW/MLONG ,DATA, "'FPA/FPAZ 1/T_wX MBUS M. S, ALU/OR ,ROT/ZERO,DA ,MSRC/@1,MUX/ATA. "' PA/FPAZD . S Q.0 M ,ALPCTL/WX TA.MBU ,WCTRL /MDR_WB,MSRC/@1 "'FPA/FPAZDA FPAZQ"ML] VA R[] FPATRT].S12 ML) S ,WCTRL/MDR WB,M3RC/31,RSRC/a2 . ALPCTL/WX_R.Q_M *'fPA/FPAZDATA.MBU "'FPA/FPA_MBUS.LITNXT ,MSRC/@17MUX7M. S ,ALU/OR ROT/ZERO,DQ1/Q_WX'" , ,ALPCTL /WX R.Q M,MSRC/§1,RSRC/82,WCTRL/VA UB “'f PA/FPAZDATA.MBUS "'FPA/FPAZDATA.MBUS ,RSRC/@1,SPW/RSIZE ALU/OR,MUX/M. S ,ROT/ZERD,MSRC/2"! FPAZWB_RL3-0 "'FPA/FPAZDATA.WBUS ,RSRC/@1,MUX/R.S ,ALU/A-B~(I ,ROT/ZERD iNIR_ML] 0 IPL_RLI.RL.16 IPLTL] , "WCTRL/INIR_WB,MSRC/81,SPW/MLONG,ALU/OR MUX/R.Q,RSRC/ZERO’’ ,DTYPE/WORD' .MM.S1Z,VSIZE/1 ,MSRC/@1,ROT/RR LPCTL/WX_S “WCIRL/IPL_RB,A *WCTRL/IPLZWB,ALPCTL/WXZS ,ROT/ZLIT16,LIT/LITRL,LITRL/@1 LONLIT_(] “LIT/LONLIT,LONLIT/<.NOTL<LONLIT/@1>2>" FPAZQZML] MDR-R[] FPAZQ M. LITRXT FPAZRL] M[] MB_M[] OR D, . MUX/M.§,ALU/ SPW/RLONGRO0T/ZERO "'FPA/FPAZDATA.MBUS,RSRC/®1,MSRC/a2, I'MSRC/31"! MDR_(M[] R[1).RR.9 MDR”(M[J R[J).RR.P RC/@2 9, ALPCTL/WX_S"" RC/@1,RS "WCTRL/MDR_W5,MS,ROT/RR.MR. " (/32 ,ROT/RR MR .P,ALPCTL/WX_S" *WCTRL/MDRZWB ,MSRC/@1,RSR MDR”-M[] RD, MUX/M.RT" "'WCTRL/MDRTWB,MSRC/81,ALU/B-A-C1,ALUCI/ZERO,RSRC/ZE MOR_-1 MDR_0O MDRM( ] "'WCTRL/MDR_WB,ROT/MINUST ,ALPCTL/WX S . MDRTMLJ+CONX (1) "WCTRL/MDR_Q"" , "WCTRL/MDRZWB ,MSRC/@1,RSRC/2ERQ, MUX/M.R1,ALU/OR"" _ *WCTRL/MDRZWB,MSRC/@1,ALU/A+B+C1,ALUCI/ALKC ,RSRC/ZERD,MUX/M.R1"! MUX/M.S" SIZE/1 ,ALU/AB+C1, ONX.SIZ,V DTYPE/BYTE *WCTRL/MDRZWB,MSRC/@1,ROT/C MDRZM[ J-CONX.S17 "'WCTRL/MDR_WR,MSR(/81,ALU/A-B=C1,ROT/CONX.S1Z MUX/M. S’ MDRTMML J+ALKC MDRMLJ+RLJ+ALK( MDRZM[J.AND.OL1T8(] MDRTML ). AND.Z( IT0(] "WCTRL/MDRZWB,MSRC/®1,RSRC/32,MUX/M.RT,ALU/A+B+CI, ALUCI/ALKC" "WCTRL/MDRZWB,MSRC/@1,LIT/LITRL,LITRL/82,ROT/OLIT8, MUX/M, S, ALU/AND . MDR ML J.ANDNOT.ZL1TOL] "WCTRL/MDRZWB,MSRC/a1,LIT/LITRL.LITRL/82,ROT/ZLITO, MUX/M. S, ALU/AND"" "'WCTRL/MDRZWB,MSRC/®1,RSRC/32 ,MUX/M.R1 ,ALU/ANDNOT"* , * WCTRL/MDR_WB,MSRC/81,LI T/LITRL,LITRL/@2,ROT/ZLITO, MUX/M. S ALU/ANDNOT'! MDRZM[3.FPLIT 'WCTRL/MDR_WB MSRC/@1,ROT/FPLIT.ALPCTL/WX S MDRTML J. ANDNOT". R[] MDRZML].ASR.P MDRZML].0R. (R[1.RR.24) 'WCTRL/MDR_WB,MSRC/@1,ROT/ASR.M.P ALPCTL/WX S" "WCTRL/MDR_WB,MSRC/@1,RSRC/32 ,ROT/RR.RR.STZ ,VSIZE/1,DTYPE/LONG,MUX/M. S, ALU/OR" MDRZML].OR.CVINP(R[]) ,MUX/M. S T/CVINP , ALU/OR "'W(TRL/MDRZWB,MSRC/@1,RSRC/32,RO MDRZML].OR.2LIT24[] *WCTRL/MDR_WB,ALU/OR MUX /M. S ,MSRC/@1,ROT/ZLIT24 ,LIT/LITRL,LITRL/82]] MDR“M[J.OR.R[] MDRZM[].RL.16 MDRM[J.RL .24 MDR”M[ J.RL .8 MDRZMLJ.RL.9 MDRZM[].RR.16 MDRZM[].XOR.R(] MDRZM[J.XOR.ZLIT12(] MDRM(] R[] MDRZM[1ZR[1.RR. 16 MDRTML1ZZLITOL] MDRZQ "'WCTRL/MDR_WB ,MSRC/Q1,RSRC/32, MUX/M.R1,ALU/OR " *WCTRL/MDRZWB,MSRC/@1,ROT/RR.MM,S1Z VSIZE/1,DTYPE/WORD ,ALPCTL/WX_S| *WCTRL/M,RZWB,MSRC/@]1,ROT/RR.MM.S1Z,VSI1ZE/1,DIYPE/BYTE ALPCTL/WX_S | "“WCTRL/MDR_WB,MSRC/@1,VS1ZE/1,DTYPE/LONG,ROT/RR MM, S1Z,ALPCTL/WXZS"' "WCTRL/MDRZWB,ALPCTL/WX_S,ROT/RL.MM.PTE ,MSRC/a@1"! *"JCTRL/MDRZWB,MSRC /@1 ,ROT/RR,MM.S1Z ,VSI1ZE/1 DTYPE/WORD ,ALPCTL/WX_S"" "WCTRL/MDRZWB ,MSR(/@1,RSRC/82 ALU/XOR, MUX/M.R1"! *WCTRL/MDRTWE . MSRC/@1,ROT/2LIF12,LIT/LITRL,LITRL/@2,MUX/M. S, ALU/XOR"" "WCTRL/MDRZWB,MSR( /a1, SPW/MLONG ,RSRC/a¢ .ROT/ZERO MUX/R.S,ALU/OR 108 : *W(TRL/MDR”WB,MSRC /1. SPW/MLONG.RSRC/@2 ,ROT/RR.RR, S12,VSIZE/1,DTYPE/WORD ,ALPCTL/WX_S'* *WCTRL/MDR”WB,MSRC /@1, SPW/MLONG,LIT/LITRL,LITRL/@2,ROT/ZLITO,ALPCTL/WX_STM "WCTRL/MDRZWB,RSRC/ZERQ, MUX/R.Q, ALU/OR"" o= .RR.,? MC IR ~ N ~-MC1- 171801 >/‘\ ~(0 F 9 CLOKX Rev 13.00, Clock rate = 160ns "¢ TRL/MDR_WB,MSRC/@1,ALPCTL/WX > 3 ]- 16:30:35 ¢ Mon:p[ _RB~CONX.517 _0.Q_M" ""WCTRL/MDR”WB,DG1/0"WX,MSRC/a1,A Ve "WCTRL/MDR_WB,-RSRC/31,ROT/IERO,MUX/R. S, AL 0/0R"* MUX/R.S ,ALU/A=B~CI ,DTYPE/BYTE *WCTRL/MDR”WB,RSRC/@1,ROT/CONX.SiZ,VSIZE/1 . "WCTRL/MDR_WB,MSR(/@2 ,RSRC/31 L ALU/B- A=CI,ALUCI/ALKC, MUX/M,R1 ALPCTL/WX_S DTYPE/LONG, RR.S17,VSIZE/1, RSRC/31.ROT/RR, ""JCTRL/MDR-WB, *YyC TRL/MDRTMWB.RSRC/31. SPW/RLONG,MSRC/32 ,ALU7OR ,MUX/M. S ,ROT/ZERD'TM "‘WCTRL/MDR_WB,RSRC/81,ROT/CONX. $12,MUX/R.S, ALU/A=B=(1, $PW/RLONG,VSIZE/1,DTYPE/ IDEP MDRTSEXT (XB) +RCI PC_P(+! MDRZXS PC_PC+1 *"JCTRL/MDR”WB,MSR(/81,RSRC/ZERQ, MUX/XM.R,ALUXM/STGN, ALU/OR"" 'UCTRL/MDR WB,RSRC/@1.MSRC/XB.PC_PC*+] ,MUX/XM.R,ALUXM/STGN, ALU/A+B+CT"" “'WCTRL/MDR_WB,MSRC/XB.PC_PC+I, RSRC/ZERO,MUX/M.R1,ALU/OR, ISTRM/1S1ZE _DSIZE. MDR_XB PC_P(+2 "WCTRL/MDR_WB,MSR(/XB. PC_PC+I,RSRC/ZERO,MUX/M.RT,ALU/OR,ISTRM/ISIZE _DSIZE, 6035 MDR_XB PC_PC+4 "WCTRL/MDR_WB,MSRC/XB. PC_PC+],RSRC/ZERD,MUX/M.RT,ALU/OR,ISTRM/ISIZE _DSIZE, ;4037 MDR_XB PC_P(+} "WCTRL/MDR_WB,MSRC/XB. PC_PC+],RSRC/ZERO,MUX/M.R1,ALU/OR,ISTRM/1S1ZE_DSIZE, 14029 14030 14031 ;4032 164033 :1'0—54 ;4036 ;4038 ;4039 16040 ;640461 MDRZSEXT (ML 1) VSIZE/1,DTYPE/WORD'* VSIZE/1,BTYPE/LONG" "WCTRL/MDR_IR" ‘"( TRL/MDR_WB, LITZLTITRL, LITRL/@1,ROT/ZLITO, ALPCTL/WX S "WCTRL/MDRTMWB,LIT/LITRL,LITRL/&Y, ROT/ZL1T16,ALPCTL/WR_S" *WCTRL/MDR”WB,LIT/LITRL,LITRL/31,ROT/ZLIT24,JALPCTL/WXCS" ;4060 ;6061 146062 16063 4064 =0 D65 L(0h6 :&067 ;6068 14069 14070 ;6071 14072 14073 ;6074 ) MEMSCAR_ "R MEMSCAR_ MEMSCAR_ZL — M MEMSCAR_ O-—' — MEMSCAR 0 M MEMSCAR_ MEMSCAR_M —1 ;4044 ;4059 VSIZE/1,BTYPE/IDEP"" "'WCTRL/MDR_W3,MSRC/®1,RSRC/ZERO,MUX/XM.R, ALUXM/ZERO,ALU/OR"" *'c (PSL /MDRTOSR. CCBR_BRATST"" 140453 ;4058 . VSIZE/1,BTYPE/BYTE" 14042 ;4045 ;4046 ;4047 ;4048 ;4049 14050 Ry 16052 14053 ;4054 ;6055 ;4056 ;64057 Page MUX/M.SS,ALU/OR"’ "WCTRL/MDR_WB,DQ1/Q WX,MSRC/a1, ROT/ZERO LU/A~B- (1 MUX/MS,ROT/ZLIT8,LIT/LITRL,LITRL/@2" M {3 L.JLJZ N1 L LI 28-NOV~83 MICROZ Register Transfer Macros et = < = L vl DDV (e lonTonTenlen p40?6 ;6027 14028 MDR MDR MDR MDR MDR <2 0 14025 MDR = 16020 ;6021 ;4022 16023 ;4024 DOOO MACRO.MI . x_u._n_u..n_n__r33o (MT098.MC . 1¢01) 1007 £1 1oL 401 MEMSCR_-1 MEMSCRZO MEMSCRZO MLI_Z2t 1T0[ ) MEMSCRTM(] MEMSCRTMMLJ.ANDNOT. (R[J.RL.24) MEMSCRZMLI.RL .24 MEMSCRTMML] ZEXT (MB) MEMSCRZRTERP7_M[1-ZL170(] MEMSCR_R!{] MEMSCRZRI J_MLJ.RL.24 MEMSCR”“L1v241] *WCTRL/MEMSCAR_WB,MSRC/a1,SPW/MLONG ,ALPCTL/WXS,ROT/ZLITO,L] /LITRL,LITRLL&Z“ "WCTRL/MEMSCAR_WB,MSR(/a1 ALUZA=-B=C1,MUX/M.S, ROT/ZLITO,LIT/LITRL,LITRL/@2 "WCTRL/MEMSCAR_WB,MSRC/@1,SPW/MLONG, ROT/ZERD,ALPCTL/WX_S" *"W( TRL/MEMSCAR”WB,DG1/0 WX,RSRC/81, ROT/ZERO,ALU/OR MUX/R”S” . "WCTRL/MEMSCAR_WB,"RSRC/B1.SPW/RLONG,ROT/ZERQ, ALPCTL/WX_S "WCTRL/MEMSCAR_WA, ALPCTL/NX S, ROT/ZL1T24,L1T/LITRL,LITRL/@1 "WCTRL/MEMSCR_WB,ROT/MINUST,ALPCTL/WX S’ 'UCTRL/MEMSCR WB,ROT/ZERD,ALPCTL/WX_S "WCTRL/MEMSCR_WB,MSRC/a1, SPW/MLONG ,ALPCTL/WX_S LROT/ZLITO,LIT/LLITRL,LITRL/@2" "WCTRL/MEMSCR_WB,ALU/OR, MUX/M.S, MSRC/31, ROT/ZERO *WCTRL/MEMSCR”WB, ALU/ANDNOT, MUX/M S,MSRC/a1,ROT/RR.RR.S1Z RSRC/@2, VSIZE/1, DTYPE/BYTE'' "W{TRL/MEMSCRZWB,ALPCTL /WX S, MSRC/31,ROT/RR.MM.SIZ, VSIZE/1 DTYPE/BYTE "W(TRL/MEMSCR_WB,MSRC/31, SPW/MLONG,ROT/ ZERD , MUX/XM.S ALUXM/ 2ERQ, ALU/OR"* :UCTRL/MEMSCR WB.MSRC/a1,ROT/ZLITO LIT/LITRL,LITRL/Q8,MUX/M.S,ALUZA=B~C1, SPW/RLONG'! WCTRL/MEMSCR_WB,RSRC/a1,MUX/R,S,ROT/ZERD ALUZOR"’ ‘W(TRL/MEMSCR_WB,RSRC/a1, SPW/RLONG ,MSRC/8¢ ROT/RR.MM.S1Z, VSlZE/1 LDTYPE/BYTE ,ALPCTL/WX_S"' "WCTRL/MEMSCR_WB, ALPCTL/UX LROT/ZLIT24,LIT/LITRL, LITRL/&1TM MTEMPO (MDR RR.P) .AND,R(] MTEMPOTD_O Q_SEXT(MDR) "'SPW/MLONG ,MSRC/MDR,RSRC /@1 ,ROT/RR MM, P,ALU/AND MUX/R.S MTEMPO_MDR+Q MTEMPO_MDR+R[] MTEMPO_MDR+R[ J+ALK( MTEMPOTMMDR=-2L1 TO[ ) MTEMPO”MDR.AND.OQLIT 8[1 T'SPW/MLONG MSRC/MDR ,MUX/M. 01, ALU/A+BHCI" MTEMPO_D_MDR=ZLITOL] MTEMPO_MDR+1 , ‘W TRL/MEMSCARTMWB,MSRC/Q1,SPW/MLONG ,ALU/A-B- C1,MUX/M.STROT/ZLITO,LIT/LITRL,LITRL/82" . .'SPW/MLONG,MSRC /MDR, RSRC/ZERO. ALPCTL/WX_D _R.Q_XxM, ALUXW/SIGN ‘SPW/MLONG, MSRC/MDR ,ROT/ZL1T0 SLIT/LITRLSLTTRL7a1T, MUX/M.S,ALU/A-B=C1,DQ1/D_wX'' "'SPW/MLONG ,MSRC/MDR,ROT/MINUST ,MUX/M. S,ALU/A-B--C i’ SPW/MLONG.MSRC/MDR.RSRC /@1 ,MUX/M.R1,ALU/A+B+(] " *'SPW/MLONG, MSRC/MDR. RSRC /@1, MUX/M_R1TALU/A+B+C! ALUCI/ALKC" *'Spw /ML ONG .MSRC/MDR ,ROT/ZL1T0, LITZUTTRL,LITRL/81,MUX/M. S, ALU/A-B~C1"" ”SPW/MLONG,MSRC/MDR,LI ZLITRL.LITRL/@1,ROT/OL1T8 MUX/M. S,-ALU/AND"' 109 MACRO.MIC 1M(01) 28-NOV~83 Register Transfer Macros MTEMPO_MDR.AND .R[] MTEMPOZMDR . AND. ZL 1TO(] MTEMPOZMDR .NOTAND . R[] MTEMPOZMDR.OR.R[] MTEMPOZMDR.OR.ZL1IT16L] MTEMPOMDR.OR.ZLITOL] MTEMPOMDR.OR.ZL1T8L] 16:30:35 ¢ CLOKX Rev 13.00, Clock rate = 160ns Q ''SPW/MLONG ,MSRC/MDR ,RSRC/@1,ALU/AND ,MUX/M.R1"" Page i ! .\ ' “'SPW/MLONG ,MSRC/MDR,LIT/LITRL LITRL/@1,ROT/ZL1TO, MUX/M.S,ALU/AND ''SPW/MLONG ,MSRC/MDR ,RSRC /a1 ,MUX/M,R1,ALU/NOTAND"’ . ''SPW/MLONG ,MSRC/MDR ,RSRC/a@1.,MUX/M.R1 ALU/OR" MUX/M.S, ALU/OR"" "'SPW/MLONG . MSRC/MDR ,LIT/LITRL,LITRL/@1,ROT/ZL1ITO *'SPW/MLONG , MSRC/MDR ,LIT/LITRL,LITRL/@1,ROT/ZL1T16,MUX/M. S, ALU/OR 'SPW/MLONG ,MSRC/MDR,LIT/LITRL,LITRL/@1,ROT/ZL1T8,MUX/M.S, ALU/OR MTEMPO_MDR (MOR+ZLITOL1).SL.1 ''SPW/MLONG,MSR./MDR WCTRL/MDR_WB,ALU/A*B+(1.SL ,MUX/M.S,ROT/ZLITO,LIT/LITRL LITRL/A1 MTEMPOZPC-RL) _ "'SPW/MI.ONG ,MSRC/PC ,RSRC/@1,MUX/M.R1,ALU/ANDNOT" MTEMPOZRL].RR.24 Q_P(BACK “'SPW/MLONG ,RSRC/a1,ROT/RR.RR.S1Z,MSRC/PCBACK ,ALPCTL/WX_S.Q_XM,VSIZE/1,DTYPE/LONG MTEMPORBSP MTEMPOZSEXT(MDR).XOR.Q +RL] PC_PC+2 MTEMPOZSEXT(XB) MTEMPO_SEXT(XB)+R[] PC_PC+4 +R[] PC_PC+] MTEMPO_SEXT(XB) MTEMPOZUNPACK (MDR RL1) T Y R N LT D D b b emd b =3 2 2 OO0 FeleSaNTe S SIVVLEE @ Bele i Vie g SNFL b 2 DO o e o AR R O b B ARG AUNINU NI NG NUNU N b b b s p o s b b b b s kb o P A F A F S AP SIS s A b b D b o 5 “MSRC/WB_RBSP, SPW/MLONG'' "'SPW/MLORG , MSRC/MDR ,MUX/XM.Q, ALUXM/S TGN, ALU/XOR"! ALU/A+B+CI, ,ALUXM/SIGN/XM.R “'SPW/MLONG ,MSRC/XB.PC_P(+1 ,RSRC/81,MUX ISTRM/1S12E _DSIZE,VSIZE/1,DTYPE/WORL"! “'SPW/MLONG ,MSRC/XB.PC_PC+1,RSRC/81,MUX/XM.R ALUXM/SIG. . ALU/A+B+CI, . ISTRM/I1S12E DSIZE,VSIZE/1,DTYPE/LONG' A+B+(] ALUXM/SIGN,ALU/ M.R 1,RSRC/@1,MUX/X *'SPW/MLONG ,MSRC/XB.PC_PC+ "'SPW/MLONG, MSRC/MDR ,RDT/GE TFPF ,RSRC/81 , ALPCTL/WX S’ , MTEMPOZZEXT(XB) PC_P(+1 G ,MUX/XM.S ,MSRC/XB.PC_PC+I ,ALU/OR/MLON "'SPW MTEMPO_ZEXT (AL 1) P Y S i MTEMPOZXB PC P(+4 MTEMPOZVA-RL[] FNENENE NP S P "'SPW/MLONG ,MSRC/PC ,RSRC/@1 ,MUX/M.R1,ALU/OR"" | , /WX_R.Q M’ ,RSRC/@1,ALPCTLG /MLON ,MSRC/MDR *'SPW "'SPW/MLONG,MSRC/PCBACK, ALU/B=-A=(1 ,MUX7M.RT,RSRC/Q1" LITO, RUX/M.S ALU/A+B+CT' *'SPW/MLONG,MSRC/VA,LIT/LITRL,LITRL/@1,ROT/Z . *'SPW/MLONG , ALU/A~B~CI ,MUX/M.R1 ,MSRC/VA,RSRC/a1"" *'SPW/MLONG , ALU/OR ,MUX/M. S MSRC/XB.PC_PC+I ,ROT/ZERO, ISTRM/1S1ZE_DSIZE,VSI1ZE/1,DTYPE/LONG MTEMPOZVA+2L1TO() , , ALUXM/ZERO" T/ZERO MUX/XM. S, ALU/OR 'MSRC/@1, SPW/MLONG,RO ROT/ZERO, ISTRM/ISIZE_DSIZE, VSI1ZE/1,DTYPE/BYTE ,ALDXM/ZERO" MC1_(MB 9).RL.! MCIZ(MB Q) ,SL.1 /SAL " C1.SL F /ROT ,ALUCI/ZERO,DQ2 LU/A+B+ ,MUX/M.R2,ALUSH "MSRC/81, SPW/MLONG,RSRC/ZERO,A /50L"’ +C1,SL ,ALUC1/ZERO,DQ2 /SHF F LU/A+B ,MUX/M.R2,ALUSH "MSR(/@1,SPW/MLONG .RSRC/ZERD,A MCIZ(MB R[1).RR.S 'MSRC/31, SPW/MLONG,RSRC/82, ,ROT/RR.MR. S, ALPCTL /WX S ML 1Z(MB R[1).RR.4 ML[1Z(MB R[1).RR.9 ML IZ(MB RL1).RR.P MEIZ(MB RL1).RR.PS MLIZ(MB RLD).XZ "MSR(/@1.SPW/MLONG,RSRC/32 ,ROT/RR.MR.4 ALPCTL/WX_S " ALPCTL/WXZS" ,ROT/RR.MR.9 RC/@2 "MSRC/81, SPW/MLONG,RS .P S"' /WX ALPCTL 82,ROT/RR.MR 'MSRC/@1,SPW/MLONG,RSRC/ 'MSRC/@1, SPW/MLONG,RSRC/32 ,ROT/RR MR.PS ,ALPCTL/WR _S'" "MSRC/31,SPW/MLONG,RSRC/@2,ROT/XZ.MR ALPCTL/WX S ML 2 (MB+ALK().B(D "MSRC/@1, SPW/MLONG ,ALU/A+B+C].BCD, MUX ‘M.R1,RSRT/ZERO, ALUCI/ALKC,VS12E/1,DTYPE/LONG" MCIZ(MB+RLI+ALKC) .BCD “MSRC/a1, SPW/MLONG . RSRC /@2, ALU/A+B+C1.BCH, MUX/M.RT, ALUCI/ALKC VSTZE/T,DTYPE/LONG'" MLIZ(MB+R[ 1) .B(D MLIZ(MB+R[1).RL .1 MLIZ(MB+RL]).RR. ] MLIZ(MB+RL1).SL.1 MLIZ(MB+RL1).SR.1 'MSRC/@1, SPW/MLONG,RSRC/@2 ,ALLU/A+B+(].BCD ,MUX/M.R1,VSIZE/1,DTYPE/LONG" "MSRC/@1, SPW/MLONG,ALU/A+B+C1.SL,MUX/M_RY ALUSHF /ROT ,RSRC/82, "MSRC/@1, SPW/MLONG,ALU/A+B+C]. SR, MUX/M.RT ,ALUSHF /ROT ,RSRC/a2"’ "MSRC/@1,SPW/MLONG,RSRC/@2 ,ALU/A+B+C ], SL , MUX/M.R1 ,ALUSHF/ZERO,ALUCI/ZERO'" "MSRC/@1, SPW/MLONG,RSRC/@2 ,ALU/A+B+(]. SR, MUX/M.R1 ALUSHF/ZERD,ALUCI/ZERD" ML (MB+RCI+ALKC) (SL.T ALU<Q>_0 'MSRC/@1,SPW/MLONG.ALU/A+B+C1.SL,MUX/M. R, ALUSHF /ZERO,RSRC/@2, ALUCT/ALKC" MLJT (MB+RTI+ALKC).SL.1 ALU<O>]1 'MSRC/81,SPW/MLONG,ALU/A+B+CI.SL MUX/M.RT, ALUSHF /ONE ,RSRC/@2,ALUCI/ALKC"’ ML (MB+2L1T24(]) .BCD MLIZ(MB-R[1).B(D ! y “'SPW/MI NG ,MSRC/PC ,RSRC/@1,MUR/M.RT ,ALU/A-B-C1" MTEMPQ_PC.ANDNOT.RL] MTEMPOZPC,OR,R() MTEMPOZRL] G MDR MTEMPORL1-PTBACK ' 110! g i ! ‘ | "MSRC/a1.SPW/MLONG,LIT/LITRL,LITRL/82,ROT/ZLIT24,ALU/A+B+C1.BCD, MUX/M.S VSIZE/1,DTYPE/LONG'" | "MSRC/@1.RSRC/82 ,MUX/M.R1 VSIZE/1,DTYPE/LONG, ALU/A-B=-C1.BCD, SPW/MLONG' | MLIZ(MB-R[1).SL.1 "MSRC/@1, SPW/MLONG,RSRC /@2, ALU/A-B=C1.SL ,MUX/M.R |, ALUSHF /ZERO, ALUCI/ZERC" M[ 27 (MB-R[1-ALK() .B(D “MSRC/@1,SPW/MLONG,RSRC/a2 ,MUX/M.R1,VSIZE/1,DTYPE/LONG,ALU/A=B=C1,BCD ALUCI/ALKC"" ML JZ(MB-RLI-ALKC) .SL.1 ALU<O>_0 'MSRC/@1,SPW/MLONG.ALU/A-B=C1.SL,MUX/M.R], ALUSHF /ZERO,RSRC/@2, ALUCT/ALKCTM M[IZ(MB-RLI-ALKC).SL.T ALU<O>_1 'MSRC/31,SPW/MLONG,ALU/A-B-C1.SL MUX/M.R1 ALUSHF/ONE ,RSRC/@2,ALUCT/ALKC M[1Z(MB.RR.4).NOT "MSRC/@1,SPW/MLONG,ALPCTL/WX_.NOT.S,ROT/RR.MR.4 RSRC/Q1" MLJZCRL] MB).RL.4 “MSRC/a].SPW/MLONG,ALPCTL/WX_S,ROT/RL .RM.4 KSR( /2" M{IZ(R[] MB).RL.P “'MSRC/a1, SPW/MLONG,ALPCTL/WX_S ,ROT/RL.RM,P RSRC/@2" < ! : i MICRO2 {(MT098.MCX 6 CMT098 _MCX MACRO.MIC MICROZ Register Transfer Macros M{]_(RL] MB).RL.PS MLI_(RLI+PL).SR,1 MLI_(RLJ.ASL.1)-MB — o S O P S ol al ol o OO N NNSNNNNNN NN D O~ ON N VT T UILA2 W NN = OO0 NN NS WA S OO0 NN NN = OO NO LW OO0 NN SN St S O S S S G N ]B DR Al aE lF S Sl S o SO o NP (¥ 2 o S e SR R R 2L R ) O S S S N A O S T T N N IRIR R S SN E R P H 9 'HSRC/81,SPU/MLONG,ALU/B-A-CI,MUX/M.S,ROT/ASL.R.SIZ.MSIZE/].DTYPE/WORD,RSRC/&Z G .R.SIZ ,ALPCTL/WX_S W/MLON ,RSRC/a2 ,ROT/ASL ""MSRC/31,SP N *'MSRC/a1, SPW/MLONG,ROT/MINUST ,ALPCTL/WX_S"' *MSRC/a1, SPW/MLONG,ALUCI/2ERD,ALU/B~A-CT, RSRC/ZERO,MUX/M.R1 ,ALU/B-A~C1"" *'MSRC/&1,SPW/MLONG,RSRC/82,ROT/ZSERO,MUX/R. MLI_ATCR *'MSRC/81, SPW/MLONG,CCMISC/WB_ATCR.CCBR_SIGND' MLI_CONX(1) ML) _CONX(2) MCI_CONX(4) M[]I_CONX.S1Z MCI_CVTINP(MB) "MSRC/a1,SPW/MLONG,ALU/A+B+CI,MUX/2.S7ROT/ZLITO,LIT/LITRL,LITRL/Q2 , "'MSRC/@1,SPW/MLONG,WCTRL /ASTLVL"' *MSRC/a1,SPW/MLONG,ALPCTL/WX_S,ROT/CONX.SIZ,VSIZE/T,DTYPE/WORD, "MSRC/31,SPW/MLONG ,ALPCTL/WX_S,ROT/CONX.SIZ,VSIZE/1,DTYPE/LONG" “MSRC/a1, SPW/MLONG,ALPCTL/WX_S,ROT/CONX.SIZ 'MSRC/H1,SPU/MLONG.ROT/CVTNP,ALU/A+B+CI.BCQ.MUX/R.S.RSRC/ZERD“ MLI_D+RE] "MSRC/®1,SPW/MLONG,RSRC/32,MUX/D .RT ,ALU/A+B+(] MLI_D+ZLIT12L] MLI_D+ZLIT8L] . ,DIYPE/BYTE" “'MSRC/91, SPW/MLONG,ALPCYL/WX_S,ROT/CONX.S1Z,VSIZE/1 "'MSRC/a1, SPW/MLONG,MUX/D.S,ROT/ZERO,ALU/OR’ M _D+R{JI+ALKC ‘MSRC/a1.SPU/MLONG.ALU/A+B+CI,MUX/D.S.ROT/RR.RR.SIZ.DTYPE/waD,VSIZE/1.RSRC/QZ“ 'MSRC/al,SPU/MLONG,MUX/D.R1,ALU/A+B+C1,RSRC/ZERO,ALUCI/ALKC‘ *MSRC/a1, SPW/MLONG,RSRC/@2,ALU/A+B+C1 ,MUX/D.R1,ALUCI/ALKC" "'MSRC/81,SPW/MLONG,MUX/D.S,ROT/ZLIT12,LIT/LITRL,LITRL/R2, ALU/AYB+C]" ITRL, LITRL/@2, ALU/A+B+CI" X/D .S ,ROT/ZLITB,LIT/L *MSRC/@1, SPW/MLONG,MU MCI_D-ZLITOL] M[3_D-ZLIT12[] 'MSRC/a1,SPw/MLONG.LIT/LlTRL.LITRL/S?,ROT/ZLITb MUX/D.S,ALU/A-B-C1"’ 'MSRC/a1,SPN/MLONG.LJT/L1TRL.LITRL/&Z.ROT/ZLIT1é.MUX/D.S.ALU/A-B-CI‘ M[J_D.AND.ZLITOL] MCI_D.AND.ZLIT8I] *MSRC/@1,SPW/MLONG,ALU/AND ,MUX/D.S,ROT/ZLITO,LIT/LITRL,LITRL/@2"" ALU/AND'" *MSRC/@1, SPW/MLONG,LIT/LYTRL,LITRL/82,ROT/ZLIT8,MUX/D.S MCI_D-ZL1T8() MLI_D.ANDNOT,ZLITO[] M{]_D.OR. (MB.RR.16) MLI_D.OR.PACK(MB RLD) M[]_D.OR.2LITBI] M[1"D_(MB R[1).RR.P MLI-D_(MB+Q).SL.1 Q<O>_1 MCI_D_D.ANDNOT.ZLITOL[] MLI_D_SEXT(MB) MCl_n_o MEID_Q Q_MB *MSRC/@1,SPW/MLONG,LIT/LITRL.LITRL/82.ROT/ZLIT8,MUX/D.S ALU/A=B=C]"" "MSRC/@1, SPW/MLONG ,ALU/ANDNOT ,MUX/D,S . ROT/ZLITO,LIT/LITRL,LITRL/®2"' M,S1Z ,VSIZE/1 ,DTYPE/WORD"' “MSRC/@1, SPW/MLONG,ALU/OR MUX/D.S,ROT/RR.M *MSRC/a1, SPW/MLONG,RSRC/ @2 ,ROT/F PACK ,ALU/OR,MUX/D.S"" , 'MSRC/aT,SPW/MLONG.LIT/LITRL,LITRL/aé.ROT/ZLIT8.MUX/ .S,ALU/OR"! "MSRC/31, SPW/MLONG,RSRC/32,ROT/RR.MR.P,ALPCTL/WX D _S' "MSRC/a1.SPW/MLONG,DQ2/SAL.D_WX,ALU/A+B+C1.5SL,MUR/M,Q2, ALUSHF /ALUO.Q1"" *MSR( /@1, SPW/MLONG,LIT/LITRLUITRL/@2 ,ROT/ZLITO. MUX/D.S, ALU/ANDNOT ,DQ1/D_WX'' "MSRC/a1,SPW/MLONG,DQ1/D_WX,MUX/XM.R,ALU/OR,RSRC/ZERQ,ALUXM/SIGN"" 'MSRC/a1,SPw/MLONG.RSRC/ZERO.MUX/R.Q,ALU/OR.DQ1/D_wx' "MSRC/@1, SPW/MLONG,ALPCTL/WX_D_0.Q M , ML1_D_Q_0 ME]_D_Q D+Q+1 MLI_D_REM MCI_D_RL] *MSRC/a1,SPW/MLONG ,ALPCTL/WX_D_Q_S ROT/ZERD' . "MSRC/a1, SPW/MLONG,DQ1/Q_D_WR,ALD/A+B+C1,MUX/D.Q1,ALUCT/ONE "MSRC/a1, SPW/MLONG ,RSRC/ZERD,ALPCTL/REM,ROT/(" *MSRC/@1, SPW/MLONG,RSR(/32 ,ROT/ZERO,MUX/R.S.ALU/OR,DQ1/D WX'' MLI_D_ 20171203 *MSRC/91,SPW/MLONG,ALPCTL/WX_D S.ROT/ZL]T1é,LlT/LITRL,LITRL/aZ‘ MLI_D_ZLITOL] MLI_D_2L1116L1 MCJ_FLAGS MLI_FPTCR MCI_MB+(R[].ASL.1) M{I_MB+(RL].ASL.2) MLI_MB+(R[].RR.24) M[J_MB+(R[J1.SL.2) M[J_MB+1 ML I_MB+PL . "MSRC/21, SPW/MLONG, CCPSL/CC_WB.CCBR_ALDS,ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITRL/@2 "'MSRC/Q1, SPW/MLONG,WC TRL /CORREAD' " MCJ_D MLI_D+(RCI.RR.16) M[J_D+ALKC : \ RC/82 _S*' ,ROT/RL .RM. PS,ALPCTL/WX "MSRC/@1, SPW/MLONG,RS "MSRC/a1, SPW/MLONG ,RSRC/@2.ROT/PL ,ALU/A+B+C1.SR, MOX/R.S' "MSRC/a1,SPW/MLONG,ROT/ZERO,ALPCTL/WX_S"' MEJ1_cC 2011003 ML J_CONREGS ; Page 111: CLOKX Rev 13.00, Clock rate = 160ns M[]_0 M[J_0+2L1T0L3 MOI_ASTLVL S [ M{1_-RO] X cevene ML1_-MB N NoeSeBmewenmememoenane wan MLY_(RUI.ASL.SIZE) M-t cenia. 1M(01) 28-NOV-83 16:30:35 "MSRC/a@1, SPW/MLONG ,ALPCTL/WX_D_S.ROT/ZLITO,LIT/LITRL,LITRL/@2"" "“MSRC/@1, SPW/MLONG.DQ1/D_WX,ROT/ZLIT16,L1T/LITRL,LITRL/@2,MUX/2.S ,ALU/AB+CT" *MSRC/a1, SPW/MLONG ,WCTRL7CM.TP.FPD . FLAGS" ""MSRC/@1,SPW/MLONG ,WCTRL/FPTCR" *MSRC/@1.SPW/MLONG,ALU/A+B+( ] ,MUX/M.S,ROT/ASL .R.S12,VSIZE/1,.DTYPE/WIRD ,RSRC/A2"" *MSRC/a1, SPW/MLONG,RSRC/a2,ROT/ASL.R.S1Z,VSIZE/1,DTYPE/LONG,ALU/A+B+C] MUX/M.S"! "MSRC/@7,SPW/MLONG ,ALU/A+B+C] ,MUX/M,S ,ROT/RR,RR.S1Z ,RSRC/Q2,VSIZE/1,DTYPE/LONG' "MSRC/@1, SPW/MLONG ,ALU/A+B+CI ,MUX/M.S ,ROT/ASL.R,S12,VSIZE/1,DTYPE/LONG,RSRC/@2"" "MSRC/@!, SPW/MLONG,ALU/A+B+CI, ALUCI/ONE ,MUX/M,R1 ,MSRC/81,RSRC/ZERD" I ,ROT/PL" "MSRC/Q1, SPW/MLONG ,MUX/M.S,ALU/A+B+C " CMT098.MCX ; MACRO.MIC : ;6185 ;4186 ;6187 ;4188 ;6189 ;6190 ;6191 ;6192 ;4193 :6194 MICROZ2 1M(01) 28~NOV=-83 Register Transfer Macros MLJ_MB+Q MLI_MB+R[) MLITMB+RIJ+ALKC MLI_MB+ZLITOL] MLI_MB+ZLIT12(] MLI-MB+ZLIT16L] MIITMB+ZL1T2403 MLITMB+ZLITBL] M{ITMB-~1 MLJ_MB-CONX(1) 16:30:35 . *'MSRC/Q1.SPW/MLONG,RSRC/32 ,MUX/M.R1,ALU/A+B+C ALUCI/ALKC"' " ,ALU/A+B+CI" MUX/M.S ROT/ZLITO LITRL/&? ‘MSRC/Q1,SPW/MLONG, LIT/LITRL "*MSRC/31,SPW/MLONG,LIT/LITRL,LITRL/a2,JROT/ZLIT1S, MUX/M.S,ALU/A+B+CIf *MSRC/a1, SPW/MLONG,ALUZA+B+C], MUX/M.S, ROT/ZLITI6,LIT/LITRL, LITRL/@2'" *'MSRC/@1.SPW/MLONG.ALU/A+B+C]. MUX/M.S,ROT/ZLIT24,LIT/LITRL, LITRL/Q2" “MSRC/21,SPW/MLONG,ALU/A+B+C] ,MUX/M.RS OT/ZLITB,LIT/LXTRL.LITRL/®2 'TMMSRC/81,SPW/MLONG,ALU/A~B~CI ALUCI/ONE MUX/M.R1,RSRC/ZERD" ;6201 MLI_MB-ZLIT8[] "MSRC/a1,SPW/MLONG,ALU/A-B=CI ,MUX/M.S,ROT/2LITE,LIT/LITRL, LITRL/QZ‘ MLJ_MB.AND.CONX(1) MLI_MB.AND.OLITOL] ;6205 MEI_MB.AND.OLIT24[] ;4204 ;6206 MLI_MB.AND.OLIT16[] MLJ_MB.AND.R(] ; i ; i \ "MSRC/21, SPW/MLONG,MUX/M, S ,ALU/A-B~CI,"ROT/ZILIT12,LIT/LITRL,LITRL/Q2" ""MSRC/a1,SPW/MLONG,JALU/A-B~ Cl1,MUX/M.SROT/ZLIT16,[IT/LITRL LITRL/ag” *"MSRC/®1,SPW/MLONG ,ALU/ANDNOT,JMUX/M. S ROT/CONX.S17 ,DTYPE/LONG,VSIZE/1"' "MSRC/@1,SPW/MLONG,ALU/ANDNOT ,MUX/M.S ROT/OLIT]b,LlT/LITRL LITRL/@2" "MSRC/31,SPW/MLONG,RSRC/a2, MUX/M. R, ACUZANDNOT"" N "MSRC/a1,SPW/MLONG, ALU/ANDNOT MUX/M. S,ROT/ZLITO,LIT/LITRL,LITRL/R2" ;4219 ;6220 ;42 ;0222 ;42?3 MLI_MB.ANDNOT.ZLIT16[] MOJ_MB.ANDNOT.ZLIT24() MOI_MB.ANDNOT.ZLIT28()] "MSRC/31,SPW/MLONG, AIU/ANDNOT MUX/M.S,ROT/CONX. SIZ,DTYPE/BYTE "MSRC/81.,SPW/MLONG,ALU/ANDNOT ,MUX/M. S ,ROT/CONX.S1Z.DTYPE/WORD ,VSIZ2E/1" ML) _MB.ASR.P "'MSRC/@1,SPW/MLONG,ALPCTL/WX_SROT/ASR M.P "MSRC/@1,SPW/MLONG,ALU/ANDNOT ,MUX/M. S, ROT/ALITP LLIT/LITRL,LITRL/@2" "MSRC/a1.SPW/MLONG,ALPCTL/WX"S,-ROT/BCDSWP ;4228 4229 ;4230 MLI”MB.OR.(MB.RL.8) MCI_MB.OR.(R[].RR.16) MCJ_MB.OR.(RLJ.RR.24) 'NSRC/a1,SPU/MLONG.ROT/RR.MM S12,vS1ZE/1,DTYPE/LONG,MUX/M,. S ALU/OR" ""MSR(/a1,SPW/MLONG,RSRC/a¢c ,ALU/OR,MUX/M. S ,ROT/RR.RR.S1Z, VSIZE/1.DTYPE/UURD': :HSRC/31 SPW/MLONG,ALU/OR ,MUX/M.S.ROT/RR.RR.S1Z, RSRC/aZ VSIZE/1,DTYPE/LONGZ 4233 MCI_MB.OR.(R[].RR.8) MLCI_MB.OR.(R[J.RL.8) MCJ_MB.OR.CONX(1) 4234 14235 :4236 ML I_MB.OR.CONX(2) MLI_MB.OR.CONX(4) MC]_MB.OR.R(] 4238 MCI_MB.OR.Z2LIT12(] ;6237 4?39 MCI-MB.OR.Z2LITOL) MLI_MB.OR.ZLIT16(1] ! : ! ""MSRC/@1,SPW/MLONG,ALU/ANDNOT ,MUX/M.SROT/ZLITEB,LIT/LITRL LITRL/&?” MLI_MB.BCDSWP ;4231 ;6232 ; ‘MSRC/a1,SPW/MLONG,ALU/ANDNOT ,MUX/M.S,ROT/ZLIT24,LIT/LITRL,LITRL/@2" :MSRC/81 SPW/MLONG, ALU/ANDNOT MUX/M, S LROT/ZLIT16,LIT/LITRL,LITRL/@2" ""MSRC/31,SPW/MLONG,ALU/ANDNOT,TMUX/M. S,ROT/ZLIT8 LIT/LITRL, (1TRL/@2" MCI_MB.CLR1B MLI"MB.CLRZ2B MLJ_MB.OR.(MB.RL.16) : : ;6226 4225 ,4226 4227 ' "MSRC/a1,SPW/MLONG,LIT/LITRL, LITRL/Q?ROT/ZLIT1§.MUX/M.S.ALU/ANDNOT“ ML I-MB.ANDNOT.ZL178[) MLI_MS.ANDNOT.ZLITRLL] i , MLJ]_MB.ANDNOT.CONX(4) MLC] MB.ANDNOT.QLIT16[] MLIMB.ANDNOT.RL] MLJ_MB.ANDNOT.ZLITOL) ;6218 ! ; ! ""MSRC/®1,SPW/MLONG,ALU/AND ,MUX/M. R1 RSRC/@2"' ;6213 14214 ;4215 ;6216 M[]_MB.ANDNOT.ZLJT]?[] | ! } ! "MSRC/a@1,SPW/MLONG,ALU/AND ,MUX/M.S,ROT/0LI T?A,LIT/LITRL LITRL/22"' "MSRC/a1.SPW/MLONG,ALU/AND ,MUX/M.$ROT/0L1T16,LIT/L1T L.LITRL/@2" "MSRC/@1, SPW/MLONG.ALU/AND.MUX/M.S,ROT/ZLITO, LIT/LITRL ,LITRL/@2"" “MSRC/21.,SPW/MLONG.ALU/AND ,MUX/M.S,ROT/ZLIT16,LIT/LITRL LITRL/82"" "MSRC/@1,SPW/MLONG,ALU/AND ,MUX/M.S,"ROT/ZLIT24,LIT/LITRL,LITRL/82" "MSRC/a1,SPW/MLONG, LIT/L]TRL LITRL/B? ROT/ZL1T8,MUX/M.S ,ALU/AND"’ VSIZE/1? 16217 ] i f MLJI_MB.AND.ZLIIO[) MLI_MB.AND.ZLIT16[1] MOJI_MB.AND.ZLITZ240] MUI”MB.AND.ZLIT8[] ML I_MB.ANDNOT.CONX (1) MIJI_MB.ANDNOT.CONX(2) i "'MSRC/@1,SPW/MLONG,ALU/AND ,MUX/M.S, ROT/CONX. SI1Z,VSIZE/, DTYPE/BYTE‘ "MSRC/Q1,SPW/MLONG, LIT/LlTRL,LlTRL/&Z ROT/OLITO.MUX/M S ALU/AND' :6207 ;4208 ;6209 ;6210 ;4211 ;4212 i ; ! j ""MSRC/@1.SPW/MLONG,.ALU/A-B- Cl,JMUX/M. S ROT/CONX S1Z,VSIZE/1,DIYPE/BYTE *MSRC/@1,SPW/MLONG,ALU/A-B=(] MUX/M S ROT/CONX:SIZ,V 1ZE/1,DTYPE/WORD " "MSRC/31.,SPW/MLONG,RSRC/a2 ,MUX.'M.R1 ALU/A=B=CITM . B~CI,ALUCI/ALKC ALU/A ,MUX/M.R1 LONG,RSRC/a2 ""MSRC/31,SPW/M "MSRC/21,SPW/MLONG,ALU/A=B~CI ,MUX/M.S,ROT/ZLITO,LIT/LITRL,LITRL/&2 ;4202 ,h203 } *'MSRC/Q1,SPW/MLONG,MUX/M. Q1 ,ALU/A+B+C],ALUCI/ZERD" "MSRC/a1,SPW/MLONG,RSRC/32 ,MUX/M.R1T, ALU/A+B+CT,ALUCI/ZERQ" MLI_MB-CONX(2) MLI_MB-RL] ML) _MB=-R{J1-ALKC MLI_MB-ZLITOL] MLI_MB-ZLIT12(] MLI”MB-ZLITI16[3 Page 112! CLOKX Rev 13.00, Clock rate = 160ns ;4195 ;4196 ;4197 ;4198 ;6199 ;4200 : 19 "MSRC/@1,SPW/MLONG,ALPCTL/WX S.ROT/CLR1BM *MSR(/@1,SPW/MLONG,ALPCTL_/WX_S ROT/CLR2BM'' "MSRC/371,SPW/MLONG,ROT/RR.MMS1Z ,VSIZ2E/ 1, DTYPE/WORD,MUX/M.S ,ALU/OR’" MSRC/@1.SPW/MLONG,ALU/OR MUX/M.S,ROT/RR.RR. SIZ.RSRC/a2 ,DTYPE/BYTE, VSIZE/1' "MSRC/31,SPW/MLONG,ALU/OR ,MUX/M. S ,ROT/RR. RR.SII.RSRC/QZ,VSIZE/1,DTYPE/LONG "MSRC/81,SPW/MLONG,ALU/OR,MUX/M. S,ROT/CONX.SIZ.DTYPE/BYTE,VSIZE/1“ "MSRC/21, SPW/MLONG,ALU/OR ,MUX/M.S,ROT/CONX.SIZ,DTYPE/WORD,VSIZE/1"" :MSR(/81 SPW/MLONG, ALU/ORSMUX/M S,ROT/CONX.SIZ,DTYPE/LONG, VSIZE/1'! .NSRC/81 SPW/MLONG,RSRC/a.’ ,MUX/M,R1,ALU/OR MSRC/Q1, SPW/MLONG,ALU/OR, MUX/M, S,ROT/ZL]TO LlT/LlTRL LITRL/82" "MSR(/a1, SPW/MLONG,ALU/OR ,MUX/M. S,ROT/ZLIT1§,LIT/LI LUITRL/32Y 'MSRC/a1,SPW/MLONG,ALU/OR,MUX/M S.ROT/ZLJT16,L1T/L1TRLJL1TRL/7g2" i ! : : . . i i ! : : -~ [ W S ¢ S = OO~ N\ D= RL/82" /ZERO,ALUSHF /ROT" PE/BYTE" e N RINOMNRITNY ¢ S / N - I < M |l = = TM C 2T T I / MDD DOONNND b= [aTa; L o oonIny —~00 &~ [an TM e Tam] ey et =t o et v « 0 & ~rree ~ o0 pL_[] “JeALKC 1 S R[] SR.P OR.R[J CK(MB RLD) 03 ~NE @ —> TYPE/LONG'' PCTL/WX_S" TYPE/LORG" /BYTE ,ALPCTL/WX_S" M , P,AL CTL/WK S" { A A+B+C1. SR, MUX/M.R1, ALUCI/ZERO, AL USHF/ZERQ"" "'MSR(C/@1, SPW/MLONG ,RSRL/ZER 0 ALU/ LIT/ 1 LITRL,LITRL/@2,MUX/M.S,ALU/XOR"' "MSRC/@1, SPW/MLONG,ROT/ZL 1 T12,L ¢R "MSRC/a1, SPW/MLONG,WCTRL /M EMSC ITRL/@2 ALPCTL/WX S** 1 LLIT/LITRL,L "MSRC/a1, SPW/MLONG ,ROT/OLI 10,0 6,LIT/LITRL,LITRL/@2,ALPCTL/WR_S"! 'MSRC/&1,bPH/MLONG.ROT/Ot} T16.L 126 2 1 IT/LITRL,L ITRL/R2 ALPCTL/WX_S"" “MSRC /@1, SPW/MLONG.ROT/OL1T24,L 8,11 "MSRC/31, SPW/MLONG,ROT/OLIT8,LIT/LITRL, LITRL/22 ,ALPCTL/WX 3" / 2 R "MSRC/a1, SPW/MLONG.RSRC/@2,ROT/FPACK , ALPCTL/WX_S" X 'MSRC /@1, SPW/MLONG,ALPCTL/WX_S,ROT/PL' + + S _WB'' “MSRC/a1.SPW/MLONG,RSRC/82,ROT/ZERD,MUX/R.S,ALU/OR,DQ1/Q_WR,WCTRL/FLAG "MSRC/®1, SPW/MLONG,ALPCTL/WX Q_S,ROT. ASR.M.P" "MSRC/31,SPW/MLONG,RSRC/32 ,MOX7M.R1,D01/Q_WX,ALU/XOR"' Q1/0Q_WX"' ZERD,ALU/OR,DSR(C ONG,R ,MUX/R.S,ROT/ /a2PW/ML "MSRC/a1.S ,ALPCTL/WX_Q_S'* /32 ,ROT/GETFPF NG,RSRC *MSRC/a1, SPW/MLO "MSRC/a@1,SPW/MLONG,ALPCTL/WX Q S,ROT/ZLITO,LIT/CITRL,LITRL/@2" "MSRC/Q1, SPW/MLONG,ALU/OR MUR/R.S,ROT/ZERQO,RSRC /a2 "MSRC/@1. SPW/MLONG,RSRC/a2 ,ALPCTL/WX_R.Q_M" , “MSRC/a1, SPW/ML ONG,ALU/A+B+C].MUX/R.Q,RSRC/a2"' , "MSRC/a1, SPW/MLONG . ALPCTL/WX_R.Q_XM RSRC782,ALUXM/ZERC'! D"’ A+B+CT ,MUR/R, S ,RSRC/a2,ROT/ZER *MSRC/@1, SPW/MLONG,ALU/ "MSRC/@1, SPW/MLONG ,RSRC/a2 ,ROT/MINUS1 ,MUX/R.S,ALU/A-B-C1"’ O"’ A-B=-C1 ,MUX/R. S ,RSRC/@2,ROT/ZER *'MSRC/31, SPW/MLONG,ALU/ a2 ALU/A+B+CI"" , MUX/R.S , RSRC/ ,ROT/MINUST *MSRC/@1, SPW/MLONG, "MSRC/@1, SPW/MLONG,RSRC /a2, MUX/D.R1,ALUCI /ALKC ,ALU/B-A=CI"" "MSRC/a1, SPW/MLONG,RSRC/82,MUX/M. ki ALU/B=A-CI ALUCI/ZERQ “MSRC/31,SPW/MLONG ,RSRC/32,MUX/M.R1, ALU/B=-A=~(1 ALUCI/ALKC" "MSRC/a1,SPW/MLONG,ALU/A-B-C],MUX/R.Q,RSRC/82"" "MSRC/a@1, SPW/MLONG,RSRC/@2,ALPCTL/WX_S,ROT/ASL \R.S1Z,VSI1ZE/1,DTYPE/WORD"' ""MSRC/87, SPW/MLONG,RSRC/a2 ,ALPCTL/WX"S,ROT/ASL .R.P' ( B RB).RR,4) 8 MB).RL.&) = ( "MSKC/91, SPW/MLONG,ALU/NOTAND, MUX/R. 5, ROT/MINUST ,RSRC/&2 . 'NSR(/a1,SPN/MLONG.ROT/RR.MR.4.RSRC/Qé.MUX/R.S.ALU/OR” U/ ,ALU/OR" R.S,AL "MSR(/@1, SPW/MLONG,ROT/RL.RM.4 RSRC/82.MUX/R.S "MSR(C/@1, SPW/MLONG,RSRC/d¢2,ALU/OR,MUX/D.R1" "MSRC/Q1, SPW/MLONG ,ALPCTL /WX S,ROT/RR.RR.31€2¥512541,DYYPE/WORD,RSRC/QZ” YPE/LONG,ALPCTL/WX_S" "MSRC/d1,SPW/MLONG,RSRC/@2 ,ROT/RR,RR.SIZ,VSIZE/T, i - x — P TM ! /Q_WX"' /A*8+C R1 ,ALUCI/ALKC,D@T /32,A[U I ,MUX/D "MSRC/a1, SPW/MLONG,RSRC WwX'' D _ Q / 1 Q D , R O / U L A , ,MUX/R, S "'MSRC/a1, SPW/MLONG,RSRC/82.ROT/ZERQO i + EXT(MB) *MSRC/81.SPW/MLONG.ALPC TL/WX_Q.Q_D" "MSRC/@1, SPW/MLONG,ALPCTL/WX"Q.Q_M,ROT/OLITO.PL_LIT,LIT/LITRL ,LITRL/82"" ] — O XXM ~ jse} 3 t ] . "MSRC/a1, SPW/MLONG,RSRC/ZERD,ALU/A+B+CI.S i 2 *'MSRC /81, SPW/MLONG, CCPSL /WB_PSL . CCBR_SIGND"' Q7 ALU/OR"" *MSRC /@1, SPW/MLONG.RSRC/ZERD,MUX/R. - oo0 VOO0 OO0 [ —Zom ot} +i_t >VIO NCODIXIINOO 00 S W A L Y WY WYY W) WAy ST .. AT STy N { By S YU ' M. S ,ROT/ZLIT "MSRC/@1, SPW/MLONG,ALU/OR,MUX/ "'MSRC/®1, SPW/MLONG,LIT/LITRL,LITRL/@2,R0T/ "MSRC/R1,SPW/MLONG,ALU/OR,MUX/M.S,ROT/ILIT 'MSRC/81,SPU/MLONG,ALU/OR.MUX/M.S.ROT/ZLIE Page *MSRC/a1. SPW/MLONG.ROT/SL.PL_WB,RSRC/2ERD,MUX/R.Q,ALU/OR"" £ ;4260 ;4261 14262 JLIT2Ll [l ;4259 CLOKX Rev 13.00, Clock rate = 160ns "MSRC/@7, SPW/MLONG,ROT/RR. ) 54257 ;4258 9 i ,ALPCTL/WX 'MSRC/31, SPW/MLONG,ROT/RR. MM, SIZ S I ,VSI1ZE/1,DT "MSRC/31,SPW/MLONG.ROT/RR.MM.SI12 MM, S I SIZ ,ALPCTL/WX_ *"MSRC/21,SPW/MLONG,ROT/RR. 4, S,RO .MR. TL/WX_S,ROT/RR SPW/MLONG,ALPC ""MSRC/21, 'MSRC/31,SPU/MLONG.ROT/RR.M”. S i i XSIZE/],DT [ 14252 ;4253 14254 ;4255 ;6256 J “MSRC/31, SPW/MLONG,ALPCTL/WX_S,ROT/RR.MM, S S T/RL .RM. 4 “'MSRC/a1, SPW/MLONG,ALPCTL/WX_S,RO pe) ;46251 o 6245 14246 ;4247 ;6248 ;4249 :4¢50 o 16244 s : 4243 « 14242 . e Pate danl o) SOV T 14241 . R —tA—HXWNTO VVVDVDDIOIODOO0 ;4240 LSNI SO IN) SN NN AN =OOODVDDDXIC M DOV Register Transtfer Macros 16:30:35 W~ 28-NOV~83 . 1M01) <V <D MICRO? 113 CMT098.MCX : . 14296 ;6297 ;4298 ;4299 ;4300 MLI_RLCJ.SR.1 MLI_RLJ.XZ ;6312 :6313 MLIZTOYOS.TOYCN MLCI_TRAR ZLIT16L] MLJ”TUSBREGS MLI_UNPACK(MB RLD) MLITVA_R[I-1 MLITWB MLIZZEXT(MB) MLIZZEXT(MB)+R[] ME)ZZEXT(MB)-R(] ;6314 MLJTZEXT(MB).SR.1 ;4316 ;6317 MLI“ZLITOC) @ 0 MLIZZL1T0()-MB ;6315 MOJ_zui10L] ;4318 $4319 ML[I”ZLI1718[)-MB MOJ"z201IT1203 24321 4322 4323 MLIZZL11240) MLJ_ZLIT28[) M[]_ZL178[3 ;63200 ;4324 14325 4326 ;4327 ;4328 14329 ;4330 ;4331 14332 4333 :4334 MLITzLIT160) PCTD_D+OLITOL] ) PLIDD-2L 1700 PCIDIMI) PCTD_MII-1 PCTOM[I-211T00) pCoMI) PC_MLJ+(R(].RR,16) PCTMLI+PSLC ;4335 PC_MLI+Q ;4338 PC_MLI+20L1T4L) 4336 ;6337 24339 ;4340 24341 ;4342 PC_MLI+R() PC_MCJ+20LIT0[] PUCMLJ]+ZLIT8[) PCTML]-CONX(2) PC_MLI+CONX.SIZ PCCMLI-PSLC ;4343 PCTML]-RL1 24345 PCTMUJ.ANDNOT.ZLITOL] ;4344 ;6346 ;4347 ;6368 ;4349 PCTMLI-ZL1TOL) PCTML).NOTAND R[] PCCMLJ.OR.R(J PCTML].OR.2L1TOI] P{TMLILRR,P D"" SR,MUX/R. S ,RSRC/@2,ROT/ZER 'MSRC/a1,SPW/MLONG,ALU/A+B+C]. ) R, ALU/OR"" , MUX/ XM RC/ G,RS ZERD, ALUXM/SIGN *MSRC/a1, SPW/MLON "MSRC/@1., SPW/MLONG,MUX/XM,Q,ALUXM/SIGN,ALU/XOR' . FPD . F5,STEPC" .WCTRL/CM 'MSRC/a1,SPW/MLONGTP *MSRC/a1 . SPW/MLONG.WCTRL/TCSR. I1CR" "MSRC/a7, SPW/MLONG,WC IRL/TODCLK - *MSRC/81, SPW/MLONG, WCTRL /LOADTRAR , ALPCTL/WX_S,ROT/ZLIT16,L1T/LITRL, LITRL/2" " *MSRC/a1, SPW/MLONG, WCTRL /TUSBREAD "MSRC/@1.SPW/MLONG,ROT/GETFPF ,RSRC/@2,ALPCTL/WX S’ WCTRL/VA 8" T,MUX/R. S, ALU/A+B+C 1, "MSRC/81, SPW/MLONG,RSRC/82,ROT/MINUS “'SPW/MLONG ,MSRC /1" , S, ALUXM/ ZERO"" T/ZERD ALU/OR MUX/XM. "MSRC/a1, SPW/MLONG,RG 82 1, ALUXM/ZERQ"" RSRC/ , MUX/XM. R, ALU/A+B+C "MSRC/@1, SPW/MLONG, "MSRC/a1, SPW/MLONG ,ALU/A~B=-C1 ,MUX/XM.R ,RSRC/2, ALUXM/ZERO"" R USHF / ZERO"" ,MUX/XM. RSRC/ZERO,AL "MSRC/@1,SPW/MLONG.ALU/A+B+CI.SR 1TRL/@2TM 'MSRC/31, SPW/MLONG,ALPCTL/WX_S,ROT/ZLITO,LIT /L] T0,L1 L,LITRL/@2 'MSRC/a1,SPW/MLONG,ALPCTL/WX S.Q 0,ROT/ZLITO ROT/ZL O S LIT ,MUR/M.A-CT "MSRC/Q1, SPW/MLONG,ALU/B,ROT/IL “MSRC/Q@1, SPW/MLONG,ALU/B-A=C1,MUX/M.S ILIT8 LIT/L 'MSRC/@1., SPW/MLONG,ALPCTL/WX_S,ROT/ZLIT12,L] LIT/L "MSRC/@1.SPW/MLCNG,ALPCTL/WX S, ROT/ZLIT16,L] TRL/3 "MSR(/@1,SPW/MLONG,ROT/ZL1T2%,LIT/LITRL,LITR TRL/a "MSRC/@1.SPW/MLONG,ROT/ZLIT28 LIT/LITRL,LITR "MSRC/31,SPW/MLONG,LIT/LITRL,LITRL/@2.ROT/2L 178 PC_-M[] PCTDIDY 'MSRC/a1, SPW/MLONG,RSRC/82 ,RDT/RR.RR.PS ,ALPCTL/WX S "MSRC/Q1, SPW/MLONG,RSRC/@2 ,ROT/RR.RR.STZ, ALPCTL/WR §" 'MSRC/@1, SPW/MLONG,RSRC/32 ,ROT/XZ.RR,ALPCTL/WX_S MLIZSEXT(MB).XOR.Q MLITSTEPC Page CLOKX Rev 13.00, Clock rate = 160ns "MSRC/@1,SPW/MLONG,ALU/A+B+CI.SL,MUX/R.S,RSRC/@2,ROT/ZERD! MOITTCSR,IICR ;4310 ;6311 9 MLI_RLJ.RR.SIZ MLITRIJ.sL.1 MLI_RLJ.RR.PS ;4304 ;6306 ;6307 ;4308 14309 K "MSRC/@1, SPW/MLONG,ALPCTL/WX S ,ROT/RR.RR.S12 ,RSRC/82,VSIZE/1,DTYPE/BYTE" MLJTSEXT(MB) ;4305 16:30:35 MLI_RCJ.RR.8 ;6301 ;6302 ;4303 28-NOV-83 Register Transfer Macros MACRO.MIC ;6295 mMon “W(TRL/PC_WB,MSRC/@1,RSRC/ZERD,MUX/M.R1 ,ALU/B=A *\JCTRL/PC WB,LIT/LITRL,LITRL/81,ROT/0LITO,MUX/D.S, ALU/A+B+CL,DQT/D_WX"' "WCTRL/PC_WB.MUX/D.RT,RSRC/ZERO,ALU/A-B=CI, ALUCI/ONE,DQ1/D_ WX "WCTRL/PCTWB.LIT/LITRL,LITRL/81.ROT/ZLITO,MUX/D.S ALU/A-B-T1,DQ1/D_WX"' *WCTRL/PCWB,MSRC/@1,R0OT/ZERO,MUX/M. S, ALU/OR,DQ1/D_WX"" "WCTRL/PC_WB,MSRC/a1,RSRC/ZERO,MUX/M.R1,ALU/A-B=C1,ALUCI/ONE DQ1/D_WX'' 'MCTRL/PC_NB,HSRC/81.LITRL/Q?.LIT/LITRL.ROT/ZLITO,MUX/M.S,ALU/A“B*CI.D01/D_WX” “WCTRL/PC_WB,MSRC/a1,RSRC/ZERO,MUX/M.RT,ALU/OR"' "WCTRL/PC-WB,ALU/A+B+C] ,MUX/M.S ,MSRC/@1,ROT/RR,RR.S1Z,RSRC/82,VSIZE/1 ,DTYPE/WORD" CI ,ALUCI/PSLC" "WCTRL/PC_WB,MSRC/@1,RSR(/ZERD,MUX/M.R1,ALU/A+B+ "WCTRL/PC_WB,MSRC/81,MUX/M. Q1 ALU/A+B+CI" MUX/M,R1"" "“WCTRL/PCWB.MSRC/a1,RSRC/@2,ALU/A+B+C1.ALUCI/2ZERO, *\CTRL/PC_WR,MSRC/@1,LIT/LITRL,LITRL/@2,ROT/ZLITO, MUX/M. S, ALU/A+B(C]" "WCTRL/PC_WB,MSRC/@1,ROT/ILIT4,LIT/LITRL,LITRL/82 ,MUX/M. S, ALUZA+B+C]"" *WCTRL/PC_WB,MSRC/@1,ROT/ZLIT8, LIT/LITRL,LITRL/82,MUX/M, S, ALU/A+B+C]" "WCTRL/PCTVWB,ALII/A-B-C] ,MUX/M.S ,MSRC/a1 ,ROT/CONX.S12,VSIZE/1,DTYPE/WORD" "WCTRL/PC WB,ALU/A+B+C], MUX/M.S ,MSRC/a1,ROT/CONX.SI2,VSIZE/1,DTYPE/IDEP" "WCTRL/PC_WB,MSRC/81,RSRC/ZERD, MUX/M.RT ,ALU/A~B-CI ALLCL/PSLC" "WCTRL/PC_WB,MSRC/a1,RSRC/Q@2,ALU/A=B-C ] ,ALUCI/ZERD MUX/M R1"' "WCTRL/PC_WB.ALU/A~B~C] ,MUX/M.S MSRC/a1,ROT/ZLITO,LIT/LITRL,LITRL/R2"" "WCTRL/PCTWB,ALU/ANDNOT ,MUX/M. S ,MSRC/@1,ROT/ZLITO,LIT/LITRL ,LITRL/@2" "WCTRL/PCZWB,MSRC/@1,RSRC/32 . MUX/M.R1,ALU/NOTAND"" "WCTRL/PC_WB,MSRC/31,RSRC/@2,MUX/M.K1,ALU/OR"’ "WCTRL/PC-WB,ALU/OR,MUX/M.$ ,MSRC/31,ROT/ZLITO, IT/LITRL,LITRL/22" "CTRL/PC_WB,MSRC/@i ,ROT/RR.MM,P,ALPCTL/WX_S" 14 CMT098.MCX : MACRO.MIC : MICRO2 1M(01) 28~NOV-83 16:30:35 Register Transfer Macros L 9 CLOKX Rev 13.00, Ctock rate = 160ns ;6350 PC_MLI.SL.] "WCTRL/PC_WB,MSRC/@1,RSRC/ZERD,MUK/M.R1,ALU/A+B+CI.SL"' 14353 PCTMLID " JCTRL/PC_WB,MSRC/a@1, SPW/MLONG,ALU/OR,MUX/D. S ,ROT/ZERD 14356 14357 PCTPC+(MLI.SL.T) PCTPC+(SEXT(MCD).SL.1) 16351 14352 14354 14395 ;4358 PCTMID.SR,1 PC_M[J.XOR.Q PCTMCITRI] . SL. M) PCTPC+T(D+ZLITOLD) PC_PC+1 MB_XB "WCTRL/PC_WB,MSRC/&1,RSRC/ZERO,MUX/M.R1,ALU/A+B+C 1. SR . "WCTRL/PC_WB,MSRC/81,MUX/M.Q1,ALU/XOR "MSRC/XB.PC_PC+],ISTRM/1S12E_DSIZE,VSIZE/1,DTYPE/BYTE - ]' "'MSRC/XB.PC_PC+I,ISTRM/ISIZE_DSI1ZE,VSIZE/1,DTYPE/WORD PC_PC+Q “WCTRL/PC_PC+WB,MUX/R.Q,RSRC/ZERO,ALU/OR"’ PC_PC+SEXT(XB)+1 ""JCTRL/PCPC+WB.MSRC/XB.PC _PC+I,RSRC/ZERD,MUX/XM. R, ALUXM/SIGN,ALU/A+B+C],ALUCI/ONE, ISTRM/1S1ZE DSIZE,VSIZE/1,DTYPE/BYTE 14363 14365 4366 ;4367 ;4368 14369 ;4370 ;4371 ;4372 14373 ;4374 16375 ;4376 14377 ;4378 :4379 14380 ;4381 14382 14383 ;4384 ;2§gg 14387 ;4388 14389 14390 16391 4392 :4393 14396 36395 14396 06397 ;4398 14399 14600 ;6401 24402 4403 14604 PCTPC+3EXT(MLY) PO PCTQ-ML) PCQ-M[]-? PCTQ_MUI.RR.S1Z PCZRL] PCZRLJ+CONX(2) PCTRLI_ML] e i . "WCTRL/PC_PC+WB,MSRC/@1,ROT/MINUST, MUX/M, S ALU/AND, SL 5L Q,MUX/ ALU/A+B+C1. ALUXM/SIGN, RSRC/ZER R, XM, MSRC/@1, "WCTRL/PC_PC+WB, "WCTRL/PC_PT+WB,MUX/D.R1,RSRT/ZERD,ALU/OR" N ""MSRC/XB.PC_PC+I,ISTRM/1S12E DSIZE,VSIZE/1 DTYPE/IDEP :4364 i ; ! PCTPC+1 MB_XB PC_PC+ML] ] i y ,4361 14362 ; RD, S ,ALU/OR, SPW/MLONG"" MUX/R.@2,ROT/ZE “"WCTRL/PC_WB,MSRC/@1,RSRC/ ALU/A+B+CI.SL MUX/D.S “WCTRL/PC_PC+WB,LIT/LITRL,LITRL/31,ROT/ZLITO, PC_PC+2 MB_XB PCTPC+D Page 115. j 14359 14360 ; ? "WCTRL/PC_PT+WB,MUX/M.R1 ,MSRT/31,RSRC/ZERD,ALU/OR" . , LU/OR D,MUX/XM R, ALUXM/SIGN,A "WCTRL/PC_PC+WB,MSRC/81,RSPC/ZER ! ! "WCTRL/PC_WB,RSRC/ZERO,MUX/R.0Q,ALU/ORTM "WCTRL/PC_WB,MSRC/81,MUX/M.Q1,ALU/B-A-C1"" 1 ALUCI/ONE"" MUX/M.Q ,ALU/B-A~C] *WCTRL/PC_WB,MSRC/@1, "WCTRL/PC_WB,MSRC/@1,ROT/RR.MM.SI2 ALPCTL/WX_Q_S "W TRL/PCZWB,ALU/OR,MUX/R.S ,RSRC/a1,ROT/ZEROD , “WCTRL/PC_WB,ALU/A+B+CI,MUX/R.S ,RSRC/31,ROT/CONX.SIZ,DTYPE/WORD,VSIZE /1" : I ; PCZRCIZMLI-CONX(2) | ! , "WCTRL/PC_WB, SPW/RLONG ,RSRC/a1,MSRC/82,ROT/ZERO, MUX/M. S, ALU/OR"’ *MCTRL/PL_WB.MSRC/@2.RSRC/a1,ROT/MINUST, MUX/M. S, ALU/A+B+(], SPW/RLONG' | *\CTRL/PC_WB,RSRC/@1, SPW/RLONG , MSRC/82,ROT/CONX,SIZ VSIZE/1,DTYPE/WORD MUX/M. S ,ALU/A-B~C]" PCIZEXT(ML1)+Q *\CTRU/PC-WB.ALU/A+B+C 1, MUX/XM- 0, MSRC/a1, ALUXM/ZERD"" PCTRLIZMOI-1 PCTRLIZQ QD PCTRCIZRB+T PC_RLI_RB-1 PCCSEXT(MCD) PCTZEXT(ML]) PCCZEXT(MLD)+R[] PCTZEXT(XB<7=0>)+R[] , Pc_zu1T00] PL<4-3>_u8 PL_-D PLT-M(] PLTD_M[I-R[] PLTDIO_U PLIMSSTML] PLML) PLTML]_0 PLMCIID 0 0 PLMLI"MB+Q PL_Q PLZO-M[] PLTQ_M[J=-R[] PLZQTRI-MI] PUZRTI-M(] PLTRI J_RB+Q PLT() o ,RSRC/37 WB, ,ALPCTL/WX_0.0Q_D"' L/PC_ SPW/RLONG "WCTR *"CTRL/PC_WB.RSRC/&1.RCT/MINUST,MUX/R. S ,ALU/A~B~C1, SPW/RLONG "\WCTRL/PC_WB,RSRC/@1,ROT/MINUST,MUX/R.S ,ALU/A+B+C1, SPW/RLONG'" /OR" ,MUX/XM. R ,ALUXM/SIGN,ALU "WCTRL/PC_WB,MSRC/@1,RSRC/ZERO OR"" ALUXM/ZERO,ALU/ R XM, MUX/ "WCTRL/PC_WB,MSRC/@1,RSRC/ZERD, , “MCTRL/PCZWB,ALU/A+B+C],MUX/XM.R,MSRC/@1,RSRC/Q2, ALUXM/ ZERD"" "WCTRL/PC_WB,MSRC/XB.PC_PC+1,RSRC/@1,MUX/XM.R ALUXM/ZERO,ALU/A+B+(], ISTRM/1S12E DSIZE,VSIZE/1,DTYPE/BYTE' "WCTRL/PC_WB,ALPCTL/WX_STROT/ZLiTO,LIT/LITRL,LITRL/&1 | “'ROT/OLITO.PL43 wB' 5 , "'ROT/SL.PL_WB,RSRC/ZERD,MUX/D.R1, AL U/B-A-C]"" “ROT/SL.PI._WB,MSRC/a71,RSRC/ZERO,MUX/M.RT,ALU/B-A=CT"" "'ROT/SL.PL_WB,MSRC/a1,RSRC/82,MUX/M.R1,ALU/A-B=C1,DQ1/D_WX"' "“ROT/SL.PL_WB,DQ1/0_D_WX,ALU/AND ,MUX/R.S ,RSRC/ZERQ" “'ROT/PL _MSS ,MSRC/a@17RSRC/ZERQ,ALU/OR, MUX/M.RT"' | , “ROT/SL=PL_WB,ALU/OR MU, /M.R1,MSRC/a1,RSRC/ZERD ,RSRC/ZERQ"" ,MUX/R.S NG,ALU/AND MSRC/a1,SPW/MLO "'ROT/SL.PL”WB. “ROT/SL.PL_WB,MSRC/a1,SPW/MLONG,DQ1/G_D_WX,ALU/AND MUX/R.S ,RSRC/ZERD"’ “ROT/SL .PL-WB.MSRC/a1,SPW/MLONG . ALU/ATBTCI,MUX/M. 01" "'ROT/SL .PL_WB,MUX/R.0,RSRC/ZERO,ALU/OR"" “'ROT/SL.PL_WB,MSRC/&1,MUX/M.Q1 ,ALU/B-A~C]" “'ROT/SL .PL_WB,MSRC/a1,RSRC/a2,MUX/M.R1 ,ALU/A~B~(1,DQ]/0Q_WX"" "'ROT/S| .PL_WB,MSRC/a2 ,RSRC/@1,MUX/M.RY,ALU/B=A=C],DQ1/Q_WX"' "ROT/SL.PL”WB,RSRC/Q1,MSRC/a2,MUX/M.RT ALU/B-A-(]"" "ROT/SL.PL_WB,RSR(/a@1, SPW/RLONG,ALU/A+B+(1,MUX/R. Q" "ROT/OLITOTPL_LIT,LIT/LITRL,LITRL/Q1" i: | | : i ' MICRO2 CMT098,MCX ; : MACRO.MIC :6605 1M(0O1) 28-NOV-83 Register Transfer Macros PME O 16:30:35 M9 “'ROT/ZERO,ALPCTL/WX_S,WCTRL/PME"' ;4406 ;4407 3 PMEZO FPDOFFSET PME 0 MIJLAND.ZTITR24L3 "WJCTRL/ZPME, SPW/MLONG,MSPC/FPDOFFSET ,ROT/ZLITO,LIT/LITRL,LITRL/3,ALPCTL/WX S “4CTRL/PME ,D01/Q_WX,ALU/AND,MUX/M. S ;MSRC/a1,ROT/ZL1T24 LIT/LITRL,LITRL/@2TM ;6610 ;4411 PSL(PREV_CURM 1SCURM_RLI) PSL(PREV_CURM ISCURM_LD) "WCTRL/PREV_CUR.ISCUR_WB,RSRC/a1 MUX/R.S,ROT/2ERO,ALU/OR" L *WCTRL/PREVZCUR, 1SCUR_UB, ALPCTL/WX_S,ROT/2LIT4,LIT/LITRL,LITRL/R] 14416 PSLTML].ANDNOT.ZLIT24L] ;2288 {14412 16413 ;6414 ;6415 ;4617 ;4418 PMEZQTRR.1 PSL<CURM>_M[].RR.8 PSLENZVC>Z0 PSL_MLY PSL_MLJ.ANDNOT.ZL1TOL] PSL_MCJ.OR.2L1ITO[] PSLCML] NR.ZLIT240) Page CLOKX Rev 13.00, Clock rate = 160ns 116 " . ; 1 "WJCTRL/PME ,ALU/A¥B+(1.SR,MUX/R.Q,RSRC/ZERD, ALUSHF /ROT ! ; . i ig 1 *YJCTRL/PREVTM CUR. I SCUR-WB, ALPCTL/WX_S,ROT/RR.MM.S1Z, MSRC/ai,VSIZE/1,DTYPE/BYTE “CCPSL/CC WB.CCBR ALUS,ALPCTL/WX_STROT/ZERQ” , N *'CCPSL/PST_WB. CCBR_ALUS,ALU/OkK, MOX/M.R1,RSRC/ZERD,MSRC/@1"" | ALU/ANDNOT" S, TO,MUX/M. LITRL/@2.ROT/ZL1 TRL, ;MSRC/ai,LIT/LI CCBR-ALUS "CCPSL/PSL-WB. 1{ CPSL/PSL_WB. CCBRTALUS.ALU/ANDNOT ,MUX/M.S ,MSRC/@1,R0T/ZL1T24,L] T/LITRL LITRL/@2 "'CCPSL/PSL_WB.CCBR_ALUS,MSRC/a1, LIT/LITRL,(ITRL/@2,ROT/ZLITO,MOX/M, S ALU/OR B SL, ALU/OR ,MUX/M. S ,MSRC /a1, ROT/ZLIT24, LIT/LITRL, C1TRL/@2 WB. CCBRTALUS "¢ CPSL/P !| [ PSLTML]_MB<31-16>.0 PSLTMLITZL1T00) PSLIRID “CCPSL/PSLWB. CCBR-ALUS ,MSRC/a1, SPW/MLONG,ALPCTL/WX_S, ROT/CLR2BM “'CCPSL/PSL-WB.CCBRCALUS ,MSRC/@1, SPW/MLONG,ALPCTL /WXTMSROT/ZLITO LIT/LITRL,LITRL/®2 *C(PSL/PSLWB. CCBRTALUS ,RSRC/a1,R0OT/ZERD,MUX/R. S, ALD7XOR"" N “CCPSL/PSL-WB. CCBRIALUS ALPCTL/WX_SS.ROT/ZLIT16,LIT/LITRL,LITRL/@ i ‘ i: ;4424 PSW_ML] “*CCPSL/PSW_WB.CCBR_ALUS,MSRC/81,RSRC/ZERD,MUX/M.R1,ALU/OR"’ | ;6629 Q_(ML] RL1).RR.P “aLPCTL/WX_Q_S,MSRC/®1,RSRC/a2 ,ROT/RR.MR,P"! ;4431 QZ(RLI M[D).RL.P CALPCTL/WXTMQ S RSRC/@1,MSR(/@2 ,ROT/RL .RM,P"" 14419 ;6420 ;4421 :42%% A ;4425 ;6626 ;zzsg ;4430 ;4632 26433 ;4634 PSL-ZLiIT16LC PSW_MLJ.AND.ZLITOQ[1 PSW”ML].NOTAND.RL] PSW_ML1.0R.R[] QZ(R[) ML) .RL.4G QZ(RLJ+0Q).RR.1 QT (R[I+@) .S Q-1 ) ;4635 Q_=SEXT(MLD) ;4438 QZD.XOR.(M[1.RL. ;6636 ;6637 ;6439 4640 ;4641 ;4642 ;6643 14444 16445 ;6446 ;4647 Q70 Q’peQ QTMDR VA_MTEMPO_ RLJ QMDD QML] D_GCLD QTML]DTRLI QML) MBR R(] Q7MLVA ZLITOL] oTMII MR L1700 QML) VA_ RLJ QZML] WwBIRI] “'CCPSL/PSW_WB.CC(BR_ALUS,MSRC/31,LIT/LITRL,LITRL/Q2,Ror/zL110 MUX/M.S,ALU/ZAND" *CCPSL/PSW_WB. CCBRTALUS» ALU/NOTAND ,MUX/M.RT MSRC/a1 ,RSRC/@2"! "' CPSL/PSW-WB. CCBRTALUS, ALU/OR,MUX/M.R1 .MSRC/a1,RSRC/@2' "pQ1/0_WX,ALD/A+B+C1. SR, MUX/R.Q,RSRC/@1,ALUSHF /ROT"" ; “ALPCTC/WX G_S,ROT/MINUST" DQ1/Q_wX,MSRC/@1,RSRC/ZERD,MUX/XM.R,ALU/B=~A=C1 ,ALUXM/SIGN'" , *'DQ1/Q7WX; ALU/XOR,MUX/D. S, ROT/RL .MM.P_MSRC/@1"" 1 *DQ1/Q WX, ALU/A+B+C1.SL .MUX/R.Q RSRC/a1" “ALPCTL/WX_Q_S,ROT/ZERQ" , *'DQ1/Q_WX, HUX/D Q1,ALU/A+B4+CI,ALUCI/2ERD" “ALPCTE/WX_R.Q_M,RSRC/31,MSRC/MDR, SPW/MLONG WCTRL/VA_WB' , | , *'DQ1/0_WX,MSRC7a1 ,ROT/ZERD,MUX/M, §,ALU/OR" “ALPCTC/WX_D_0.Q_M,MSRC/a@1" : "ALPCTL/WX_D_R.Q_M MSRC/a1,RSR(/a2" “AUPCTL/WXZRTQ_M;WCTRL/MDR WB,MSK(/81,RSRC/a2" “ALPCTL/WXTS.0TXM,MSRC/a1,ROT/ZLITO, LITZLITRU,LITRL/@2,WCTRL/VA_WB,VSIZE/1,DTYPE/LONG' “ALPCTL/WX_R.Q_M,WCTRL/VA_WB, MSRC/81,RSRC/@2" “ALPCTL/WXZR.0Q°M.MSRC/a1 ,RSRC/82" *08170_WX,ALU/A+B+C1 ,MUX/M.RT,MSRC/@1,RSRC /32" ;646450 ;4451 ;6452 oM[)-0 aMI1-R(2 QTML[J-20L17003 “'DQ1/Q7WX.MSRC/@1,MUX/M,Q1,ALU/A=B=C1" *'DQ1/Q7WX ;MSRT/@1.RSRC/32 ,ALUZA-B=C ], MUX/M.R1"’ *'DQ1/Q WX, MSRC/@1.ROT/ZLITO.LIT/LITRL,LITRL/@2,MUX/M. € ALU/A~B=C1"" Y4454 14455 14456 14457 24458 14459 QTMLI+RIJ+ALKC QZM[1-7L178() QZM[J.AND.((MB R[J1).RR.4) 0_M[J.AND.(R[].RR. 24) QTM[]J.AND.RI ) QTMCILAND.Z201TOL] QZM{J.ANDNOT,ZLITOL] Q_MLJLASL.P ; g “ALPCTL/WXZS.0”XM,MSRC/a1,R0T/2L1TO, L1T/LITRL LITRL/2,WCTRL/MDR _WB,VS12E/1,DTYPE/LONG'" QTMLI+RL] $4453 ! | * ALPCTU/WX~Q S ROT/RL,RM,4 ,RSRC/a1, MSRC/82"' ;4448 ;6649 " D01/ WX, ALU/A+B+C1.MUX/M.R1.MSRC/@1.RSRC/82,ALUCI/ZALKC"' 'DO1/Q-WX,MSRC/&1,ROT/2 (TB,LIT/LITRL,LITRL/32,MUX/M, S ALU/A-B-CI" “'DQ1/Q WX, ALU/AND .MUX/M. 5, MSRC/a1,ROT/RR.MR.4 ,RSRC/@2"" "'DQ1/0WX,ALU/AND ,MUX/M.S MSRC/31 ,ROT/RR, RR‘.SIZ RSRC/82,VSIZE/1,DTYPE/LONG' "'DQ1/Q_WX,ALU/AND ,MUX/M, R1 MSRC/a1,RSRC/a2" W\ DQ1/0"WX.MSRC/81.L1T/L1TRL,LITRL/82,R0OT/ZL1TO,MUX/M.S,ALU/AND "'D0O1/Q"WX,MSRC/a1,LIT/LITRL, LlTRL/at,ROT/ZLITO,MUX/M.S,ALU/ANDNDT"' “ALPLTL /WX _Q_S,MSRC/@1,ROT/ZASL M, P" ; TMT098.MCX MACRO.MIC MICROZ 1M(01) 28-NOV-83 Register Transfer Macros 16:30:%5 N 9 CLOKX Rev 13.00, Clock rate = 160ns G_ML[).RL.P G_M[1.RR.1S . “ALPCTL/WX_Q_$,MSRC/81,ROT/RL.MM, P “ALPCTL/WX-Q_S,MSRC/@1,ROT/RR MM, S17,VSIZE/1,DTYPE/WORD Q_ML1.XZ .MM *ALPCTL/WX _Q_S,MSRC/a1,ROT/X2.MM" T/MINUST" ND.SL MSRC/Q1,RO ALO/A ,MUX/M.S *na1s0_Wx, Q-MLJ.SL Q_M[]_RC] a_oLiTo0l Q-G+M(] Q~Q+R(] Q_Q-M[) Q-Q-R[1] 'DQ1/Q_WX,MSRC/a1, SPW/MLONG,ALU/OR,MUX/R.S ,ROT/ZERO,RSRC/@2 Page 117 N "RO;/0C1T,LIT/LITRL,LITRL/@1,ALPCTL/WX_0_S"" 'DQ1/Q_WX,MSRC/Q1,MUX/M. Q1 ,ALU/A+B+CT" "'pe1/Q_wX ,RSRC781,MUX/R.Q,ALU/B~A=C]" C/a% ,MUX/M.Q1, ALU/B-A=CI""' "'DQT/Q_WX,MSR QR[] Q-RLI MLI_O Q_RLI+0 0_R[I1-0 *DQ1/0-WX,RSRC/@1,MUX/R.Q,ALU/B-A=C]"" "'DQ1/Q WX .RSRC/81,ROT/2ERD,ALU/OR MUX/R.S"" .\ “ALPCTC/WX_S.Q_R,SPW/MLONG,MSRC/a2,RSRC/81,R0OT/ZERD S, ALU/A+B+(]" *D01/0_WX,RSRC7a1,ROT/2ERO,MUX/R. *'DQ1/Q_WX,RSRC/&1,MUX/R.Q,ALU/A-B=C1" .\ Q_RL1.SR.1 "'DQ1/0”WX,ALU/A+B+(].SR,MUX/R,S ,RSRC/&1,ROT/2ERD"’ W_SEXT(XB) PC_PC+! . DTYPE/BYTE. ,ALUXM/SIGN.R,ALU/OR *'DQ1/Q_WX,MSRC/XB,PC_PC+I1,RSRC/ZERO,MUX/XM Q_SEXT(XB)=R(] PC_PC+1 i i Q_SEXT.M{] STEPC_L[2 “'p01/Q_WX ,MSRC/XB.PT_PC+I ,RSRC/81,ALU/A-B=CI,MUX/XM.R, ALUXM/SIGN,VSIZE/T, ‘ DTYPE/BYTE, ISTRM/ISIZE DSIZE’ W8’ RC/@1 ,WCTRL/STEPC “ALPCTL/WX_S.G_XM,ALUXM/SIGN,RDT/ZLITO,LIT/LITRL,LITRL/R2,MS Q-XB PC_PC+] *Da1/Q_WX,MSRC/XB.PC_PC+' ,RSRC/ZERO,MUX/M.R? ,ALU/OR, ISTRM/1SI1ZE DSIZE,DTYPE/IDEP,VSIZE/T" Q_R[J_D+RB+ALKC Q_SEXT(ML)) Q_UNPACK(M[] RL1TY *D01/Q WX, RSRC/®1, SPW/RLONG,MUX/D .R1,ALU/A+B+C] ,ALUCI/ALKC ,ALUXM/SIGN D,MUX/XM. R, ALU/OR *DQ1/0_WX ,MSRC/@1,RSRC.'ZER ISTRM/1S12E_DS1ZE,vSIZE/1" “ALPCTL/WX_Q_STMSRC/81,RSRC/a2,ROT/GETFPF'' ,RSRC/31, ISTRM/ISI1ZE_DSIZE,VSIZE/1,DTYPE/BYTE'" ! a_xB-RCJ PC_PC+1 *'DQ1/Q WX, ALU/A=B~CIMUX/M,R1,MSRC/XB.PC_PC+] Q-ZEXT(M[1)-R[] Q-ZEXT(M[D),SL.1 “DQ1/G_WX,MSRC/@1,RSRC/@2,ALU/A-B=C], MUX/XM.R, ALUXM/2ERQ" “DQ1/Q°WX,MSRC/a1,ROT/ZERC, MUX/XM. S, ALUXM/ ZERD ,ALU/A+B+C1.SL"' Q_ZEXT(MLD) Q_ZEXT(XB)=R[] PC_PCH+1 ,ALUXM/ ZERD"' R, ALU70R,MUX/XM. "DO1/Q°WX,MSRC/AT,RSRC/ZLRO : =C RSRC/31,1STRM/1SIZE_DSIZE,VS1ZE/1,DTYPE/BYTE'" . B.PC_PC+1 LU/A=B | ,MUX/XM.R,MSRC/X *'DQ1/0"WX,A a-2uLI10C] Q_ZLITOCI-ML] GoZLITAL)-MI] "ALPCTL/WX_0_S,ROT/ZLITO,LIT/LITRL.LITRLZR1" &] S, ALU/B=A-C]"" RL,LITRL/ ,MSRC/82,MUX/M. “DQ1/0_wX,ROT/2L170,LIT/LIT "'DO1/0°WX,ROT/ZLIT4,LIT/UITRL,LITRL/@1,MSRC/R2,MUX/M. S, ALU/B=-A-C]"" RBSP_0 *'RSRC/ZERO.CLRRBSP'" RNUM_O RNUMTT "'MSRC/RNUM_WBUS ,ROT/2ER0,ALPCTL/WX_S"" *'MSRC/RNUM”WBUS ,ROT/MINUST MUX/Z .S, ALU/A-B=-(1"" RNUM_PTIPRB5 MTEMPU_POPS]Z *'MSR(C/READRBS, SPW/MLORG"’ oZzLiTPLl] RNUMZD_D+1 RNUM_D_D=1 RNUM_DZZ201700) RNUM_Q_D_Q+1 RNUM-GT0¥1 RNUMZG~Q~1 RNUMZQT2L1TO[] RNUMZRT] RNUM_RLJ+CONX (2) RNUM_RL]1_0 RNUM-RL1RB+1 RNUMTMRL I”RB+CONX(2) RNUM_R[1ZRB-1 RNUMTM[] RTEMPO_Q_-0 “ALPCTC/WX_Q_S,ROT/ZLITFL,LIT/LITRL,LITRL/OT" *'MSRC/RNUM_WBUS,DQ1/D_WX ,ALU/A+B+C1,ALUCI/ONE ,MUX/( .R1,RSRC/ZERD" "'MSRC/RNUM_WBUS,DQ1/D_WX ,ALU/4~B-C] ,ALUCI/ONE ,MUX/D.R1,RSRC/ZERD’’ “'MSRC/RNUM”WBUS ,DQ1/D WX .ALU/A+B+ (] ,MUX/Z.S,ROT/ZLITO,LIT/LITRL,LITRL/®1" *MSRC/RNUM_WBUS,DQ1/0_D_WX,ALU/A+B+C] MUX/R.Q,RSRC/ZERD,ALULT/ONE"! "MSRC/RNUM”WBUS ,DQ1/07WR ,ALU/A4B+CI ,MUX/R.Q,RSRC ‘ZERO,ALUC]/ONE"" *MSRC/RNUM_WBUS . DG1/0 WX, ALU/B=-A-C] ,MUX/R,Q,RSRC/ZERQ,ALUCI/ONE"' *MSRC/RNUM_WBUS ,ALPCTL/wX_0_S,ROT/ZLITO,LIT/LITRL,LITRL/N *MSRC/RNUM_WBUS ,RSRC/at,RDV7ZERD, MUX/R. S, ALU/OR"' *MSRC/RNUM_WBUS.ALU/A+B+(C] ,MUX/R,S ,RSRC/a1 ,ROT/CONX.S1Z,VSIZE/1,DTYPE/WORD" *MSRC/RNUM_WBUS , SPW/RLONG,RSRC/31,ROT/ZERO, ALPCTL/WX_S"" *MSRC/RANUM_.1BUS , SPW/RLONG,RSRC/@1.ALU/ZA-B~( 1 ,MUX/R, S,ROT/MINUSI . *MSRC/RNUM_WBUS , SPW/RLONG,RSRC/31,ROT/CONX.S1Z,VS12E/1,DTYPE/WORD ,MUX/R.S,ALU/A+B+C1" *MSRC/RNUM_WBUS, SPW/RLONG,RSRC /a1 ,ALU/A+B+(1 MUX/R.S,ROT/MINUST" *MSRC/RNUM_WBUS ,ALPCTL/WX_S,ROT/ZLITO,LITRL/QY,LIT/LITRL" "S/RLONG,RSRC/ZERO,DUT/Q_WX,MUX/R.Q,ALU/A~B~CT"' TWMTOGB MO X MACRC,MLC MICROZ2 1M(OD) 28-NOV-83 Register Transfer Macros 16:30:35 B 10 CLOKX Rev 13.00, Clock rate = 160ns RTEMPG_RNUM_PL _0 *MSRC/RNUM_WBUS ,ROT/SL.PL_WB,ALU/AND ,MUX/R,S RSRC/ZERD, SPW/RLONG"' RTEMP? M[] PL<4=0> 31 PL<S>_ 1 "MSRC/@),SPW/RLONG,ROT/OLITO.PL LIT,LIT/LITRL,LITRL/1FF MUX/M.S, ALY /AND*' Page RIEmMP/TME]=2L 1TOLT7 “'MSRC/Aa1,ROT/ZLITSLIT/ULIRL,LITRLIBSMUX/M.S, ALU/A-B~C], SPw/RLgNG' RIEMP7 ML ] AND.Z2L 1 78(] "MSRC/@1,ROT/ZLITRILIT/UITRL L ITRL/@2 ,MUX/M, S ; ALU/AND, SPW/RLONG . KTEMP?RNUM PL<4~0> 31 PL¢S>_1 “"ALPC TL/NOP ,MSRC/WBUS _RNUM, SPW/RLONG ROT/OLITO.PL_LIT,LIT/LITRL,LITRL/1FF ONG , MSRC/RNUM_BBUS,ALPCTLZWX_$,ROT/ZLITO,LTT/LITRL,LITRL781" +'SPW/RL RTEMP7_RNUM_ZL 170017 R(] *'RSRC/a1" R{I.SI22-1 "'RSRC/@1,SPW/RSIZE .ROT/MINUST,ALPCTL/WX_$" R{J.S1Z_(RB+M[ ],ASR,3), SR, REI.SI2C-D R{J.SIZ2--M[] RL1.S1Z°-RB R(1.SIZC0 *'RSRC/@1,SPW/RS1ZE .ROT/ZERQ,ALPCTL/WX S ROT7ZERD" “'RSRC/@1,SPW/RSIZE,ALU/OR, MOX/M. S, ROT/ZERD,MSRC /82" “RSR(/@1.SPW/RSIZE .WCTRL /CM. TP, FPD.FLAGS" *'RSRC /@1, SPW/RSIZE ,FPA/WBUS FPA'’ , “'RSRC/@1.SPW/RSIZE ;MSRC/@¢ MUX/M.$,ROT/MINUST, ALU/A=B=C1"* R{1.S1Z-M[1+Q REI.SIZTMLJ+Q+PSLC *'RSR(/81,SPW/RSIZE JMSRC/@2,MUX/M. Q1 ,ALU/A+B+( " ‘'RSRC/@1,SPW/RSIZE ,MSRC/32 ,MUX/M.Q1 ALU/A+B+C1 ALUCI/PSLC" REJ.SIZCML)+RB+PSLC R{J.S127MI]-1 R[J.S127M[1-0 REI.SI77M{].AND.RB RIT.S1ZZML].ANDNGT .G "'RSRC/a1, SPW/RS]ZE {MSRC/32 MUX/M.R1;ALU/A+B+C1 ALUCE/PSLC"! *RSRC /@1, SPW/RS]ZE .MSRL/@2 . MUX/M. S, ROT/MINUST, ALU/A+B*CI' *'RSRC /@1, SPW/RSIZE ,MSRC/@¢ MUX/M. 01 ALU/A-B-CI *'RSRC/@1,SPW/RSIZE. Al U/AND MUX/M.R1,MSRC/@2"' "RSR{ /a1, SPW/RS]ZE\MSRC/@2 MUX/M. Q1,ALU/ANDNOT"* R[I.SIZ2_M[],ASR,=F REY.SIZTMI).BCDSWP R[1.S127ML].NOT #[].5127M[J.NOTAND RA R{Y.S12”MLT.0R.Q R{1.5:2-M[].0R.RB R[T.SIZTMI )RR, B REJ.SIZTMLT.RR.P R[1.S1ZTM{].RR,S12 R{Y.SIZTML).SL. T R{1.5127M[].Xx0R.0 R{1.SI27ML].XOR.RE R{].512-0~RB-1 R{1.51270 00 RLJ.SIZCQ_D ML), ASL,P RL].S12707MT) RLI.SIZZOMLD . RR, 12 R{J.ST27RB+1 RLI.SIZ-RB+CONX2) R[1.S1ZZRB=CONx(2) RL1.SIZTRESD R{).S1Z2_RB-D R{].S1Z_RB-1 R[J.ST12ZRB=M[] R{1.S127RB-M[ 1-PSL( al].512-RB,SL.! S “'RSRC/@1.SPW/RS1ZE .ROT/ZERD,MUX/R. S, ALU/B- A-c1* RL1.SIZTML] R[).SIZZM[)+RB . *RSRC /@1, SPW/RS12E .ROT/2ERO,MUX/D,S, ALU7B=A=C]"* *'RSRC/@1,SPW/RSIZE ,MSR(/a2, ROT/ZEROJMUX/M.S, ALU/B=A-C]"' R{J.S120D R(J.SIZTML) 118 ,VSIZE/" "RSRC/@1,SPW/RSIZE,ALU/A+B+C].SR,MUX/R.S ROT/ASR.M,3,MSRC/32,DTYPE/BYTE “'RSRC /@1, SPW/RSIZE.ALU/OR MUX/D,S RLJ.SI2TFLAGS w[].S1Z7FPA - “RSRC/@1.SPW/RSIZE . MSRC/@2 ,MUX/M.R1,ALU/A+B+C1" *RSRC/@1, SPW/RSIZE .MSRC/@2 ,ROT/ASR .M, ~P ALPCTL /WX nS" “RSRC/@1,SPW/RSIZE.MSRC/82.ALPCTL/WX_S,ROT/BCDSWP" *'RSRC /@1, SPW/RSIZE ;MSRC/@¢ ,ROT/MINUST ,MUX/M. S , ALU/NOTAND"! *“'RSRC/al, SPW/RSTZE \MSRC /@2 , MUX/M.RT,ALUZNOTAND'"" "RSRC/Q1,SPW/RSIZE ,MSR(/a2 ,MUX/M,.Q1 -ALU/OR"’ .MSRC /@2E ,MUX/M.R1;ALU/OR"’ *RSRC /@1, SPW/RS]Z “'RSRC /@1, SPW/RS]ZE MSRC/@ ,RGT/RR.MM,S1Z ALPCTL/WX_S,DTYPE/BYTE,VSIZE/1"" *RSRC/@1. SPW/RSIZE .MSRC/@2.ROT/RR.MM.P ALPCTL/WX_STM *RSRC /@1, SPW/RSI ZE .MSRC/@¢ ,ROT/RR MM, 517, ALPcrL/Qx s *RSRC /a1, SPW/RS] ZE JMSRC /@9 ,ROT/ZERD, MUX/M, S,ALUZA+B+CI,SL" “'RSRC/@1,SPW/RSIZE ,MSR{/82 ,MUX/M.Q1 ,ALU/XOR" “RSRC/@1.SPW/RSI2E .MSRC /@0, MUX/M.R1;ALU/XOR"" “'RSRC/@1, SPW/RSI2E ,MUX/R. Q,ALU/B*A~C! ALUCI/ONE*' "RSRC/@1,SPW/RSIZE ALPCTL/WX Q.9 D “RSRC/a1.SPw/RSIZE.MSRC/ae.ROTIASL M.P ALPcrL/wx 0_0_s" "RSRC/a1,SPW/RS]ZE ,MSR(/a2 ,ROT/ZER 0,MUX/M. S, ALU/DRTDTT/0_wx"* *RSRC/a1,SPW/RSI2E ,MSRC/82,ROT/RR. MM, 517, ALPCTL/UX Q_s'"~ “RSRC/@1,5PW/RSIZE,ALU/A-B=(] MUX/R.S.ROT/MINUS1“ “'RSRC/Q1,SPW/RSI2E ,ROT/CONX, s§z,DTYPE/WORD,VSIZE/1,MUX/R.S, ALU/A+B*CI“ *'8SRC/@1,SPW/RSIZE,ROT/CONX.SIZ,DTYPE/WORD,VSIZE/1 ,MUX/R,S ,ALU/A=B=(]"" ,MUX/D . RT, ALU/A+B+CI RSRC/@1,SPW/RSIZE *RSRC/@1,SPW/RSIZE ,MUX/D. R1.ALU/B~A—CI' . *'RSRC/@1, SPW/RSIZE . ROT/MINUST , MUX/R. S, ALU/A+BC] “RSRC/@1,SPW/RSIZE ,MSRC/@2 ,MUX/M.R1 ,ALU/B=A-C]"" “'ASRC/@1, SPW/RS]ZE MSRC /@2, MUX/M.RT ,ALU/B=A=C] ALUCI/PSLC" "RSRC/a1,SPW/RS1ZE,ROT/ZERD,MUX/R. S, ALU/A+B+C],SL" . o ST o mm—— - - T - i MICROZ TM(OT) 28~NOV-83 16:30:35 Register Transter Macros ;4570 R{I_((MLJ RB).RR,&,AND.MB).SL.1 ''RSRC/@1,SPW/RLONG,ALU/AND.SL ,MUX/M.S,ROT/RR.MR.4 MSRC/@2" ;6572 RLJZ(M[] RB).RR.9 56571 ;6573 ;45764 ;6575 REJ_(ML) RB).RR.4& “'RSRC./ 31, SPW/RLONG,MSRC/a2,ROT/RR. MR, 4 ,ALPCTL/WX_S RLI_(ML] RB).RR.P "RSRC/a1,SPW/RLONG,MSRC/@2,ROT/RR MR, P, ALPCTL/WX S'° ROJI_(M[] RB).RR.PS REJ_(ML] RB).RR.S 106576 RLJ_(MC] RBY X7 ;4578 RLJ_(MLJ+RB).B(D ;64577 ;6579 :4580 ;4581 ;4582 ;4583 ;6584 ;64585 ;4586 ;4587 ;4588 ;4589 ;6590 ;6591 54592 “RSRC/@1,SPW/RLONG,MSRC/@2 ,ROT/RR.MR.9 , ALPCTL/WX S "RSRC/31.SPW/RLONG,MSRC/32 ,ROT/RR.MR,PS,ALPCTL/WR S "'RSRC/&1, SPW/RLONG,MSRC/32 ,ROT/RR.MR.S ,ALPCTL/WX S . MR, ALPCTL/WX § /RLONG ,MSRC/22 ,ROT/XZ "RSRC/@1,SPW , “RSRC/@1, SPW/RLONG,ALU/A+B+CI.BCD,MUX/M.R1,VSIZE/1 ,DTYPE/LONG,MSRC/@2 . ) . SR.1 ROJ_(ML)+CONX(2) PE/WORD" A+B+CI. ALU/VSIZE/1,DTY ONG,/CONX.SI1Z, MUX/M.S MSRC/32,ROT W/RL SR, ""RSRC/@1,SP RCIZ(MLJ+RB+ALKC) .BCD “RSRC/@1,SPW/RLONG,ALU/A+B+CI.BCD,ALUCI/ALKC ,MUX/M.R1,VSIZE/1,DTYPE/LONG,MSRC/2 RL)_(ML]-RB).B(D RLJI_(MC)-RB-ALK().BCD RLI_(MCI.AND.RB),RL,1 “RSRC/a1, SPW/RLONG,ALU/A-B=C1.B(D ,MUX/M,R1,MSRC/@2,VSIZE/1,DTYPE/LONG" o "“RSRC/@1, SPW/RLONG,ALU/A=B=CI.BCD,ALUC]/ALKC MUX/M.R1,MSRC/82,VSIZE/1,DTYPE/LONG /ROT"' ,MSRC/a@2,ALUSHF SL ,MUX/M.R1 U/AND. "'RSRC/@1, SPW/RLONG,AL RCIZ(RB M(1).RL.F "RSRC/a1,SPW/RLONG ,MSRC/®82 ,ROT/RL.RM,P ALPCTL /WX s N RLJ_(RB ML]).RL.4 RLJ_(RB+Q).SL.1 RLI_(RB-M([1<3~0>) RL[J”(RB,OR,M[]1<3-0>) R[]_1 RLI_-D . RLI_-ML) RCJ_-RB . RLJ_-ZEXTMLD) "'RSR{/31, SPW/RLONG,MSRC/82,ROT/RL ,RM, 4 ,ALPCTL/WX_S '2SRC/@1, SPW/OLONG,ALU/A+B*+CI.SL ,MUX/R.0, ALUSHF /ZERD "RSRC/@1, SPW/RLONG,ALU/A=B=CI,MUX/R,5,MSRC/@2,ROT/GETNIB" "'RSRC/@1.,SPW/RLONG,ALU/OR ,MUX/R,S MSRC/82,ROT/GETNIB"' "RSR(/@1,SPW/RLONG,ROT/MINUST ,ALPCTL/WX_S" "“RSRC/@1, SPW/RLONG,ROT/ZERO,MUX/D. S, ALU7B-A-C]"" "RSRC/@1,SPW/RLONG,MSRC/a2,ROT/ZERD, MUX/M, S, ALU/B=A=(] "RSRC/Q1, SPU/RLONG,ALU/B=A-CI ,MUX/R.S ,ROT/ZERQ" . “RSRC/&1, SPW/RLONG,MUX/XM.S ,ROT/ZERO,ALU/B=A-C1,ALUXM/ZERO ,MSRC /32" :4593 ;6594 RLIZO RC1_8 “‘RSRC/@1, SPW/RLONG,ROT/2ERO,ALPCTL/WX_S" “RSRC/31,SPW/RLUNG,ROT/CONX.SIZ,VSIZE71 ,DTYPE/LONG,ALU/A+B+CI.SL ,MUX/Z.S" ;4597 ;4598 ;4599 RLIDD RL)_D+CONX(12 RLI_D+CONX(2) “'RSRC/1, SPW/RLONG,ROT/ZERO,MUX/D.S,ALU/OR" "'RSRC/@1, SPW/RLONG,ALU/A+B+C],MU¥/D.S,ROT/CONX.S12,VSI2E/1,DTYPE/BYTE" "RSRC/@1, SPW/RLONG,ALU/A+B+CI,MUX/D.S,ROT/CONX.S1Z,VSIZE/1,DTYPE/WORD'! 24595 :46596 2460y ;4601 RLI_CONX(1? RUI_CONX(2) RLI_D+CONX(4) RLI_D+RB ;4602 ;4603 RLJ_D+RB+ALK( R[I_D-0 ;6605 R[1_D.OR.(M[].RL.8» 24604 24606 ;6607 RLT_D.NOTAND.RB R[] _D.OR.RB "'RSRC/@1,SPW/RLONG,ROT/CONX.SIZ,VSIZE/1,DTYPE/BYTE ,ALPCTL/WX_S'' “RSRC/@1, SPW/RLONG,ROT/CONX.S12,VSIZE/1,DTYPE/WORD ALPCTL/WXZS"' “RSRC/a1,SPW/RLONG,ALU/A+B+C1.MUX/D.S,ROT/CONX.S12,VSIZE/1,DTYPE/LONG" "RSRC/31, SPW/RLONG,ALU/A+B+C1 ,MUX/D.RT"' "RSRC/®!,SPW/RLONG,MUX/D .R1,ALU/A+B+CI ,ALUCI/ALKC" "'RSRC/a1, SPW/RLONG,ROT/ZERO,MUX/D .S, ALU/A-B-C]" "RSRC/a1,SPW/RLONG,ALU/NOTAND ,MUX/D.R1"" “RSRC/@1.SPW/PLONG,ALU/OR,MUX/D.S,ROT/RR.MM.S1Z ,VSIZE/1,DTYPE/LONG,MSRC /32" "RSRC/@1,SPW/RLONG,ALU/OR ,MUX/D.RT" RLIZD_(D+RBI.SL.Y Q<G> "RSRC/7, SPW/RLONG,DQ3/SAL.D_WX,ALU/A+B+CI, SL ,MUX/D.R2,ALUSHF/ALUO0. 01" ;4609 ;4610 RL]_D_-ML1 RLI_D_O ”RSRL/a1.SPw/RLONG,MSRC/a2,ROT/ZERO.MUX/M:S,ALU/B-A-CI.DQ1/D_NX” “'RSRC/®1, SPW/RLONG,ROT/ZERO,ALPCTL/WX D_§'' s4614 RUI_D”D-CONX(4) "“RSRC/a1.SPW/RLONG,ROT/CONX,S12,VSIZE/1,DTYPE/LONG,MUX7D .S ALU/A-B~C],DQ1/D_WX"' ;6608 ;4611 ;6612 ;4613 ;4615 ;4616 ;4617 4618 ;4619 ;6620 RLI_D_-D REJ_D_D+CONX(4) RLJ_D_D+@+1 RL] _D_D-1 RIJ_D_M[] RLID_MLI-0 "'RSRC/@1, SPW/RLONG,ALU/OR MUX/M.S,ROT/ZERO,MSRC/82,D0Q1/D_WX'' "RSRC /@1, SPW/RLONG,MSRC/32,ROT/ZERD,MUX/M, § ,ALU/A=B=C1,DU1/D_wx'' "“RSRC/37, SPW/RLONG,DQ1/D WX ,MSRC/a2,ROT/MINUST,MUX/M. S ALU/AFB+(]" RUI_D_RB+(ONX{4) ”RSRC/a1,SPw/RLONG,ALU/A*B*CI,MUX/R.S,ROT/CONX.SiZ.VSIZEll.DTYPE/LONG,DO1/D_wX” ;4621 ;4623 R[J_D_RB-! ;4624 "'RSRC/@1, SPW/RLONG,DQ1/D_WX,ALU/A+B+(Y ,ROT/CONX.S1Z,VSI12E/" ,DTYPE/LONG,MUX/D.S"" "“'RSRC/@1,SPW/RLONG,DQ1/D_WX,ALU/A+B+C] ,MUX/D.Q1,ALUCI/ONE'" “RSRC/Q1,SPW/RLONG,R0T/MINUST MUX/D.S, ALU/A+B+C1,DQ1/D_WX'' RLIZD_MIOI-Y RLITDZO QD RLJITDCQ_-T RLJ_DZO_RNUM_-! RCIZDZRB+1 ;6622 “'RSRC/@1, SPW/RLONG,ROT/ZERC,MUX/D.S,ALU/B=A~CI,DQ1/D_WX'' R[I_D_RB-CONX(4) “'RSRC/31, SPW/RLONG,ALPCTC/WX_D_0.0_D" "'RSRC/@1, SPW/RLONG,ALPCTL/WX_D_Q_S,ROT/MINUST" “'RSRC/31, SPW/RLONG,ALPCTL/WX_D~Q~S MSRC/RNUM_WBUS ROT/MINUST"' "RSRC/@1, SPW/RLONG,ROT/MINUST MUR/R.S,ALU/A-B~C],D0Q1/D _WX' "RSRC/d1,SPW/RLONG,ROT/MINUST MUX/R,S,ALU/A+B+CI,DQ1/D_WX'' “RSR(/a1, SPW/RLONG,ROT/CONX.S{Z,VSIZE/1,DTYPE/LONG,MUX7R.S,ALU/A-B=C1,DQ1/D_uX"* 1 MACRO.MIC Page 119 (LOKX Rev 13,00, Clock rate = 160ns L {(MT098.MCX o u €10 : i | | i ] i (MTOGR MU X MACRO.MIC 26625 RLY.D_ZEXT(MLD) 14627 16628 REITFLAGS REITFLAGS_O 14626 14609 1663h RLITMLI+CONX(D) 14633 . RLITFPA RLITMEMSCR RLITML) 1M(D1) 28~NOV=-83 Register Transfer Macros R[JTEXP(M[ ]} 4630 4631 16632 MICROZ2 RCITMII+(RB.ASL.S1Z2) RLITMED+ 16:30:35 D 10 Page CLOKX Rev 13.00, Clock rate = 160ns "'RSRC/@1, SPW/RLONG,MSRC/@2 ,ROT/ZERD, MUX/XM. S, ALU/OR,DQ1/D_wX"' *'RSRC/@1.SPW/RLONG,MSRC/82,ROT/GETEXP ALPCTL/WX_S . "'RSRC/@1,SPW/RLONG.WCTRL/CM. TP.FPD. FLAGS'' ALU/AND"" S, ,MUX/R. WB,ROT/ZERO CTRL/FLAGS “'RSRC /D1, SPW/RLONG,W "'RSRC/1.SPW/RLONG, FPA/WBUS FPX' . “'RSRC/@1, SPW/RLONG, WC TRL/MEMSCR" "'RSRC/a1. SPW/RLONG,ALU/OR MUX/M.S ,ROT/ZERO,MSRC/@2"" “'RSRC/31, SPW/RLONG,MSRc/aé ROT/ASL.R,SIZ,MUX/M.S ,ALU/A+B+(] "'RIRC/@1., SPW/RLONG,ALU/A=B=C1,MUX/M.S, MSRC/a2,ROT/MINUST , ., "RSRC/R1, SPW/RLONG.MSRC/82,ROT/CONX.S1Z,VSIZE/1,DTYPE/BYTE ,MUX/M.S ,ALU/A+B+(C1"" REITMEI+CONX(2) “'RSRC /@1, SPW/RLONG.MSRC/@2 .ROT/CONX.SI2,VSIZE/1,DTYPE/WORD, MUX/M.S ,ALUZA+B+CI"" 4637 RLITMLY+pI “RSRC/@1, SPW/RLONG,MSRC/@2 .ROT/PL,MUX/M.S 14639 4640 RLITMLY+Q+! RLITMLI+RB 14635 463% R(3C ML]+CONX(4) *'RSRC/@1,SPW/RLONG.MSRC /82 ,ROT/CONX.SIZ,VSIZE/1,DTYPE/LONG,MUX/M,S ,ALU/A+B+(T"" RLITME)+0 "RSRC/a1, SPW/RLONG.MSRC/@2.MUX/M. 01 ,ALUZA+B+CI" 16641 REITMEI+RB+ALKC (], ALUCI/ALKC"! *'RSRC/@1,SPW/RLONG. MSRC/32 ,MUX/M,R1,ALU/A+B+ Y4644 RT] M[)-O 14638 16642 4643 14645 ‘4646 14647 RCITMEI+RB#PSLC RLEITMEI+SL REITMEI-I RLITMEI-CONX(2) RLITMEI-CONX(4) "'RSRC/@ 1, SPW/RLONG .MSRC/@2 ,ROT/ZERD,MUX/M.S "RSRC/@1. SPW/RLONG.ALU/A+B+CI ,MUX/M.S ,MSRC/82,ROT/MINUS1 4656 REITMEI.BCDSWP 14658 RCITMLD. anea “‘RSRC/@1, SPW/RLONG.MSRC /@2 ,ROT/BCDSWP, ALPCTL/WX_3"" "RSRC/@1.SPW/RLONG.MSRC/&2.ROT/CLR1BM,ALPCTL/WX_S"" "'RSRC/@1. SPW/RLONG.MSRC/32.ROT/CLR2BM,ALPCTL /WX S"" 26660 14661 RLITMLI.FPLIT RLITMEI.NIBBLE "'RSRC/a@1, SPW/RLONG.MSRC /@2 ,ROT/FPLIT,ALPCTL/WX 3" “'RSRC /@1, SPW/RLONG.ROT/GE TNIB,MSRC/82,ALPCTL/WR_S"' ‘4664 RCITMLI.OR. (RB RR.S12) 3 RLITMLI.ASR. 14654 14655 RLJTMEI.ASR.P 14657 14659 Y4662 4663 16665 ‘4666 14667 14668 14669 14670 “4671 ‘4672 14673 Y4674 4675 RLIMLI.CLR'B RLITMLI.CLR3B RLITMCD. OR (RB.RR.16) RCIMCI.OR.(RB.RL.16) RC3MEI.OR.O RLIMCI.OR.R RLIMLI.RL. 2 RLIMEI.RL.9 RCITMEI.RL.P RLITMCI.RR.16 RLIMLI.RR.24 RLIMLI.RR.P ‘4678 14679 | ! : “'RSRC/@1, SPW/RLONG.MSRC/a2.ALUZANDNOT ,MUX/M, Q1" ; RC/@2.ROT/ASR.M.3,ALPCTL/WX S, SPW/RLONG,MS . "“'RSRC/@1 “'RSRC/@1. SPW/RLONG,MSRC/@2.ROT/ASK. M P ALPCTL/WX S *'RSRC/@1. SPW/RLONG.MSRC /82 ,ROT/ASR.M. =P ,ALPCTL/WK_S ! “'RSRC/@1.SPW/RLONG.MSRC/@2,ROT/CLR3BM, ALPCTL /WX S"" "'RSRC/@1.SPW/RLONG.ALU/OR ,MUX/M,S,ROT/RR.RR.SI12TMSRC/@2,VS1ZE/1,DTYPE/WORD'’ "RSRC/@1. SPW/RLONG.ALU/OR .MUX/M.S ROT/RR.RR.SIZ \MSRC/@2,V *'RSRC /a1, SPW/RLONG,ROT/RR.RR. S17,MSRC/@2,ALU/OR;MUX/M. s“ 1.DTYPE /WORD"" "'RSRC /@1, SPW/RLONG.ALU/OR ;MUK/M. @1 MSRC/d2" "'RSRC/@1.SPW/RLONG,MSRC/@2 ,MUX/M.R1,ALU/OR"" “RSRC/al, SPW/RLONG.MSRC/@2 .ROT/RR.MM.SIZ,VSIZE/1,DTYPE/BYTE ,ALPCTL/WX_S"" *'RSRC/@1. SPW/RLONG.MSRC /82 ,ALPCTL/WX_S,ROT/RL.MM.PTE"" “'RSRC /31, SPW/RLONG.MSRC/82 ,ROT/RL .MM p TALPCTL/WX_S" “RSRC/a1. SPW/RLONG.MSRC/@2 ,ROT/RR.MM.S1Z,VS1ZE/17DTYPE/WORD ,ALPCTL /WX _$S "'RSRC/@1. SPW/RLONG. ALPCTL/WX_S,ROT/RR.MM.S1Z,VSIZE/1,DTYPE/LONG, Msac/az“ "'RSRC /@1, SPW/RLONG.ALPCTL /WX S.ROT/RR.MM.S1Z ,VS1ZE/1,CTYPE/BYTE ,MSRC/22"" RLIMLI.RR.PS RLIMLI.SR. 1 “'RSRC /31, SPW/RLONG ,MSRC/@2 ,ROT/RR. MM PS,ALPCTL/WR_S" “'RSRC/@1,SPW/RLONG,MSRC /@2 MUX/M.§ ROT/ZERQ, ALU/ATB+C], SR" RCITML1<3-0>+RB RLITNOT(ML1).AND.RB . ,ALU/A-B=C]" ,ALU/A-B=C]' RLIMLI.RR.8 4676 RLIMCI.XOR.RB RLITMLD.x2Z ‘4677 | “RSRC /@1, SPW/RLONG.MSRC/32,VS1ZE/1,DTYPE/WORD,ROT/CONX.S12,MUX/M.S “RSRC/@1.SPW/RLONG.MSRC/82 VS1ZE/1. DTYPE/LONG.ROT/CONX.SIZ,MUX/M.S “'RSRC/@1, SPW/RLONG,MSK{ /@2 ,ROT/ASL .M. P, ALPCTL/WX_S"' RLIMLI.ASR.-P | : | j ,ALU/A-B=CI"' RCITMLI.ASL.P 16653 ; YRSRC/31. SPW/RLONG .MSRC/82.ROT/SL ,MUX/M.S ,ALU/A+B+(1"* 14652 REITMLI.ANDNOT. - *'RSRC/@1. SPW/RLONG.MSRC /2. MUX/M.R1,ALU/A+B+CI,ALUCI/PSLC"" "RSRC/@1. SPW/RLONG.MSRC/2.MUX/M.Q1,ALU/A=B=C]"" “RSRC/a1, SPW/RLONG,ALU/A~B=C] ,MUX/M.RT ,MSRC /82" "'RSRC/@1, SPW/RLONG .MSRC/a2,MUX/M.R1,ALU/AND'’ 16651 ,ALU/A+B+(] ‘ :i “'RSRC/@1.SPW/RLONG,ALU/A+B+CT,ALUCI/ONE ,MUX/M, 01 ,MSRC/a2"" YRSRC/@1.SPW/RLONG,ALUZA+B+C 1, MUX/M.R1,MSRC/a@2"" , RCITMLI-0 RCITMEI-RB RLITMLI.AND. RB ‘4648 24650 14649 : 120 “'RSRC/@1, SPW/RLONG,MSR(/32,R0T/RR.MM.P ALPCTL/WX S “'RSRC/@1. SPW/RLONG,ALU/XOR,MUX/M,Ri MSRC/a2" "RSRC /@1, SPW/RLONG.ALPCTL/WX_S,ROT/XZ.MM, MSRC/22"" “'RSRC/@1.SPW/RLONG, ALU/A+B+CT,MUX/R.S MSRC/@2, ROT/GETNIB"" “RSR(/31. SPW/RLONG.ALU/NOTAND ;MUX/M.R1,MSRC /22" : , — MACRO.MIC MICRO2 RCIZPL_ML]-RB RCIZPLZG Q_ML] RLIZPL-Q-MD] RLJ-PST RC1IZQ Q_D RLITQ Q7MLD T RLIZQ-MT3 REIZQ_((M[I+Q).SL.1).0R.1 R RCJZQZO R R L N Y SR N NTo QU PRV 1 V) R G NN NN NN P [ XVeTo B *'RSRC/@1, SPW/RLONG ,ROT/CONX.S12,VSIZE/1,DTYPE/LONG,ALPCTL/WX_Q_S , *'RSRC/a1, SPW/RLONG,ROT/ZERO,MUX/D. 5 ,ALU/OR ,DO1/G_WX'* 1 ,MUX/Z, S7DBT/Q_WX"' "'RSRC/81. SPW/RLONG;MSRC /82 ,ROT/GE TEXP, ALUZA+B+C "RSRC/a1, SPW/RLONG. MSRC /32 .ROT/ZERD,MUX/M. S, ALU/OR ,DQ170_WX'" “RSRC/a1. SPW/RLONG. ALPCTL/WX_Q S ,MSRC/@2,R0OT/XZ .MM" "RIRC/a1. SPW/RLONG, DQ1/0 WX ‘MUX/R.Q,ALU/A+B+CT"" 0Q1/Q_wX'' R[] RB+CONX(1) RECJZRB+CONX(2) RLIZRB+CONX (4) "RSRC/a1, SPW/RLONG,ALU/A+B+C1,"MUX/R.S.ROT/CONX.SI ,VSIZE/1,DTYPE/BYTE"" "RSRC/a1,SPW/RLONG .ROT/CONX.S17 ,MUX/R .S ,ALU/A+B+L],VSIZE/1,DTYPE/WORD"' *RSRC/1. SPW/RLONG ,ALU/A+B+C1,MUX/R.S,ROT/CONX.SIZ,VSIZE/1,DTYPE/LONG'" RLJZRB-CONX.S1Z [ “RSRC /a1, SPW/RLONG. ROT/ZERO.ALPCTL/WX_Q_S" *'RSRC /31, SPW/RLONG,MSRC/82,ROT/ZERQ,MUX/XM. S, ALU/OR RLJ_RB-CONX(4) 2 3 *RSRC/1. SPW/RLONG. MSRC /32 ;MUX/M. 1, ALU,B-A~CI"" "RSRC/81; SPW/RLONG,DA1/Q_WX ,ALU/A+B+CI. SL ,MUX/M.Q1,MSRC/22, ALUSHF / ONE RCIZQTZEXT (ML) RCI_RB-CONX () b *RSRC/1 SPU/RLONG. MSRC/a2 MOX/M. Q1 ALU/B=A=CI ,ROT/SLTPL_WB'" *'RSRE /@1, SPW/RLONG,ALPCTL/WR_Q.Q D' "RSRC/a1, SPW/RLONG,"MSRC/@2,ACPCTC/WX_Q.Q M *'RSRC /@1, SPW/RLONG, CCPSL/WB_PSL. CCBR_SIGND "RSRC/a1, SPW/RLONG,D1/0_WX,ALD7B~A~C1,M0X/M.Q1,MSRC/22"" RCITRB-1 A "'RSRC/@1. SPW/RLONG,MSRC /a2 ,MUX/M.R1,ALU/A=B=C],ROT/SL. PL_WB'! "~ “RSRC/a1, SPW/RLONG.ROT/SL,PL_WB,MSRC/82,ALPCTL/WX_Q.Q_M' RL] O_Q-M[J RLIZRB+Q O "“RSRC/31, SPW/RLONG,MSRC/82,ROT/ASR,M,=P ,ALPCTL/WX_.NOT.S"" “RSRC/a1, SPW/RLONG.DQ1/Q_WX,MUX/D.R1,ALU/A+B+C1 ALUCI/ALKC" "RSRC/a1- SPW/RLONG.MSRC/32,R0T/ZERO, MUX/M. S, ALU/OR,DO1/0_D_wX'' RLCI_RB+CONX.S1Z R{J_RB-D-ALKC RCJZRB-M[] RC] RB-M[J=PSLC RLIZRB RCIZRB AND (M[).RR.1€) R{ITRB.AND. (M[1.RR.8) RCIRBANDNOT Q RLJZRB.ASL. RCJZRB. ASL.Z RCJTRB.ASL.7 RECIZRB.ASL.SIZ RLITRB.OR. (M[].ASL.P) REJTRB.OR. (M[1.RL.16) RCITRB.OR. (M[].RL.24) RCJ-RB.OR.(M[].RL.8) RCITRB.OR. (M[1.RL.9) RCIZRB.OR.(M[].RR.16) REIZRB.OR. (M[].RR.24) RCITRB.OR.(M[].RR.8) RCJTRB.OR. (M[].RR.S12) RCIZRB.OR. (M[]1.X2) RCITRB.OR.CONX(1) R[CJZRB.OR.Q RLIZRB.OR.ZEXT(M[1) Page CLOKX Rev 13.00, Clock rate = 160ns RLIZQ-D+RB+ALKC RCIZQ-D _ML3 RCIZQ_EXP(MLD) RLJ-Q7ML) REJZOTMOT.XZ .MM RCI_RE+1 P 10 “RSRC/®1, SPW/RLONG ,ROT/CONX.SIZ,VSIZE71 DTYPE/BYTE ,ALPCTL/WX_@_S'" RLJZQTRB+Q S 16:30:35 REJZOZCONX(1) REIZQZCONX(4) RLIZQCD Pl 28-NOV=-83 Register Transfer Macros RCI_NOT(ML[3.ASR.-P) F 1MCOD) "'RSRC/a1, SPW/RLONG ,ROT/MINOST,MUX/R .S, ALU/A=B=C1"" 1, MUX/R. $,ROT/CONX.SIZ,VSIZE/1.DTYPE/IDEP' “RSRC/a1 SPW/RLONG JALU/A+B+C *RSRC/21. SPW/RLONG. MUX/R .0, ALU/A+B+(1" *'RSRC/@1. SPW/RLONG,ROT/MINUST ,MUX/R.S,ALU/A+B+CI"" "RSRC/@1. SPW/RLONG,ROT/CONX.SIZ ,MUX/R.S,ALU/A~B=C1,VSIZE/1,DTYPE/WORD"’ "RSRC/a1, SPW/RLONG ,ALU/A=B~C1,MOX/R.S.ROT/CONX.SIZ, VSIZE/N,.DTYPE/LONG'' *RSRC/@1. SPW/RLONG .ROT/CONX.S{Z.MUX/R S ,ALU/A-B=-C]"" *RSRC/@1, SPW/RLONG .MUX/D.R1,ALU/B=A=Ci,ALUCI/ALKC* "RSRC /a1, SPW/RLONG ,ALU/B=A~C1,MUX/M.R1 MSR(/32"" "RSRC/31, SPW/RLONG .MSRC/82,MUX/M.R1, ALU/B-A CI,ALuCt/PsLC" “RSRC/a1. SPW/RLONG. MUX/R.0,ALU/A=B=(1"" “RSRC/81, SPW/RLONG ,ALU/AND,MUX/R.S,ROT/RR.MM.SIZ ,MSRC/@2,VSIZE/1,DTYPE/WORD" "'RSRC/A1, SPW/RLONG ,ALU/AND ,MUX/R. S ,ROT/RR. MM S1Z.MSRC/@2,VSIZE/1,DTYPE/BYTE" *RSRC/a1. SPW/RLONG .MUX/R.GQ,ALU/ANDNOT"* “RSRC/a1. SPW/RLONG ,ALPCTL/WX_S,ROT/ASL.R.S12,VSIZE/1,DTYPE/WORD"! "RSRC/a1. SPW/RLONG.ALPCTL/WX S ROT/ASL.R.S1Z.VSIZE/1,DTYPE/LONG" "RSRC/31, SPW/RLONG ,ALPCTL/WX_S,ROT/ASL.R. 7"’ ''RSRC/@1, SPW/RLONG,ALPCTL/WX S ,ROT/ASL.R.SI2" "'RSRC/a@1, SPW/RLONG ,MSRC/a2, ROT/ASL.M.P.MUX/R.S,ALU/OR"" RSRC/31. SPW/RLONG .ALU/OR,MUX/R.S,R0OT/RR. MM, 517 ,MSRC/82,VSI1ZE/1,DTYPE /WORD'' "RSRC/@1. SPW/RLONG ,ALU/OR ,MUX/R.S.ROT/RR.MM.S12 .MSRC/82.VSIZE/1,DTYPE/BYTE" *RSRC/a1,SPW/RLONG ,ALU/OR MUX/R.S ,ROT/RR. MM, SIZ.MSRC/&Z,VSIZE/1,DTVPE/LONG” "RSRC/31, SPW/RLONG,MSRC /a2 ,MUX/R. § , ALU/OR,ROT/RL .MM PTE" "'RSRC/31, SPW/RLONG ,ALU/OR, MUX/R. S, MSRC/32 ,ROT/RR.MM.SIZ,VSI1ZE/1,DTYPE/WORD'' "'RSRC/31, SPW/RLONG ,ALU/OR ,MUX/R. S ,MSRC/32 ,ROT/RR.MM.S1Z,VSIZE/1,DTYPE/LONG:" 'RSRC/a1, SPW/RLONG,ALU/OR,MUX/R.S,MSRC/32 ,ROT/RR.MM.S1Z VSIZE/1,DTYPE/BYTE" "RSRC/@1,SPW/RLONG ,RNT/RR.MM.S1Z, MUX/R.S$,ALU/OR MSRp/aZ' "“'RSRC/31, SPW/RLONG. 50T/ XZ .MM, MUX/R. S ALU/OR MSRC/a2" "“RSRC/31, SPW/RLONG ,ALU/OR, MUX/R. S(ROT/CONX §12,VSIZE/1,DTYPE/BYTE"" "RSRC/31. SPW/RLONG .MUX/R,G,ALU/OR" "RSRC/@1, SPW/RLONG ,MSRC/22,MUX/XM.R,ALUXM/ZERD, ALU/OR"" i (MT098.M(X 121 (MT1098.MCX MACRO.MIC 1h762 14763 4764 ;4765 14766 ;4767 ;4768 ;4769 14770 ;47N 4772 ;4773 4774 6775 ;4776 J4777 ;4778 14779 ;4780 ;4781 4782 ;4783 14784 ;4785 ;4786 ;4787 ;4788 ;4789 DVDODDOD oowooOoom S L L AN DX VWV RLI_XB PC_PC+! RCI_ZEXT(MLD) REITZEXT(MLT).SL.1 RCIZZEXT(XB) PC_PC+1 RCI_ZEXTUXB) P(_P(+2 16:30:35 F 10 Page (LOKX Rev 13.00, Clock rate = 160ns E/LONG, ALPCTL/WX_S “RSRC/&1, SPW/RLONG ,ROT/RR.RR.S1Z,VSIZE/1,DIYP “'RSRC/81,SPW/RLONG,ROT/RL.RR.P, ALPCTL/WX_S"' . "RSRC/@1,SPW/RLONG,ALPCTL/WX_S,ROT/RR.RR.S1Z,VSIZE/1,DIYPE/LONG, “RSRC/@1,SPW/RLONG,ROT/RR.RR7SIZ,VSIZE/1,DTYPE/BYTE,ALPCTL/WX_S" "'RSRC/Q1,SPW/RLONG,ROT/RR.RR.P ALPCTL/WX_S'" "'RSRC/a1, SPW/RLONG,ROT/MINUST,MUX/R.S,ALD/XOR"' "RSRC/a1, SPW/RLONG,ALPCTL/WX_S,ROT/XZ.RR" "RSRC/@1, SPW/RLONG ,MSRC/W8_RBSP,ALPCTL/NOP'* "RSRC/D1, SPW/RLONG,ALPCTL/ROP,MSRC/WBUS RNUM'' 'RSRC/R1, SPW/RLONG ,MSRC/RNUM_WBUS ,ALPCTL/WX S, ROT/XZ MM"' ,ALU/AND" S ,RGT/MINUST /XM. “RSRC/81, SPW/RLONG ,MSRC /32, ACUXM/SIGN,MUX ,ROT/ZERD" ,ALU/OR ,MUX/M.S D,VSIZE/1 BUS/PRB.R ,MSRC/TB, “RSRC/@1. SPW/RLONG WCTRL/VA_WB"' X/M. ALU/OR S, ERQ,MU ,ROT/Z /a2 .MSRC "'RSRC/21, SPW/RLONG S WCTRL/VA_WB' ST,MUX/R. ,ALU/A-B=CI “RSRC/@1,SPW/RLONG,ROT/MINU "'RSRC/@1, SPW/RLONG,MUX/R.Q,ALU/A=B=C] ,WCTRL/VA_WB"' 0R _ ,MUX/M.S ,ROT/ZERD'" "RSRC/Q1, SPW/RLONG,WC TRL/MBUS_WDR ,MSRC/WDR,ALU7 "RSRC/a1, SPW/RLONG,ALU/OR ,MUX7M,S ,MSRC/XB.PC_PC+I ,ROT/ZEROD, ISTRM/ISIZE _DSIZE, VSIZE/1,DTYPE/BYTE'" ] "RSRC/871, SPW/RLONG,ALU/OR ,MUX/M.S ,MSRC/XB.PC_PC+I ,ROT/ZERD, ISTRM/ISIZE_DSIZE, VSIZE/1,DTYPE/LONG'' ZE, /M. ISTRM/ISIZE_DSI R,MUX 1 ,ROT/ZERO, ALU/O S ,MSRC/XB.PC_PC+ “RSRC/a1. SPW/RLONG, VSIZ2E/1,DTYPE/IDEP" D"" ,MUX/XM. S ,MSRC/a2,ROT/ZER "RSRC/@1, SPW/RLONG,ALU/OR "'RSRC/@1, SPW/RLONG,ALU/A+B+CI.SL,MUX/XM.S, ALUXM/ZERO,MSRL/@2 ,ROT/ZEROD"" R, DSIZE, XM.S,ALU/O “RSRC/@1, SPW/RLONG ,MSRC/XB.PC_PC+1,ROi/ZERO,MUX/ISTRM/ISIZE VSIZE/1,DTYPE7BYTE" "“WSRC/@1,SPW/RLONG ,MSRS/XB.PC_PC+] ,ROT/ZERO,MUX/XM.S ,ALU/OR, ISTRM/I1SI1ZE _DSIZE, vSIZE/1,DTYPE7WORD" “ROT/OLITO,SL LIT,LIT/LITRL,LITRL/81" “WCTRL/SOFTIPR_W8,ROT/ZERQO,ALPCTL/WX S'' SPICR_SPNICR , ALPCTL/WX_S"' 'RSRC/SPNICR. SPICR,SPW/RSIZE ,ROT/RR.RR.SIZ,VSIZE/1,DTYPE/WORD SOFTIPR"M[1.RR.16 "WCTRL/SOFTIPR WB,ALPCTL/WX S,MSRC/3T ,ROT/RR.MM.S12,VSIZE/1,DTYPE/WORD"' STEPC_(M[1+2).SR.1 STEPCT(MLI+ZLITO[)).SR. "WCTRL/STEPC_WB,ALU/A+B+C1. SR, MUX/M. S MSRC/a1,ROT/ZLITO,LIT/LITRL, LITRL/2" “WCTRL/STEPCZWB,MSRC/@1,L1T/LITRL, LITRL/@2 ,ROT/ZLITO, ALU/A+B¥C]. SR, MUX/M. S*" STEPCC14. STEPCZ2 STEPCT30. STEPCT6 "MISC/SCI2" "MISC/SCT30"" "MISC/SC78" 1 STEPCT(SEXT(M[1)+2).SR, ) . SR.1 STEPCT(ZEXT(MLI)+CONX(2) STEPCTD_(M[J+CONX(2)).SR.1 STEPCID-M[1-ZLITOC] STEPC-DTMMLI.SR.1 STEPCZDTRNUM_ZLIT0[] 1) .SR.1 STEPCTDTSEXTTMC STEPCMT1+7L1T00) -R ] STEPC MLI-RE STEPC STEPC STEPC STEPC STEPC T MLI-ZL ~Z 171ol] MC]1.SR 1 < 3 0>. MLI<3= MCI_R RL J.RR,P ML1_2L Z 1Tola 122 " E/WORD ,ALPCTL/WX "'RSRC/@1, SPW/RLONG,ROT/RR.RR.SIZ,VSIZE/1,DTYP SOFTIPR_O st_0] A 14760 ;4761 RCI_XB PC_PC+4 U 14746 14747 ;4748 16749 ;6750 ;4751 4752 14753 ;4754 14755 14756 14757 14758 14759 O 24745 PO ;4740 ;47461 14742 14743 14744 T ;4738 :4739 T ;4736 14737 R[] RL.16 R(] .RL.8 R[] .RL.P R[) .RR.24 R(] .RR.8 R(] .RR.P RC] . XOR.MINUST R[] Xz RC] BSP R[] NUM RL] NUM_MTEMPO. X2 R(] gXTTM[]) R[] A_MD] RL] RC) A_RB+1 A_RB-Q R[] RE] _WDR RL 1°XB PC_PC+1 O 16735 [ . MICRO2 MoD 28-NOV-83 Register Transfer Macros *WCTRU/STEPCZWB,ALU/A+B+C1. SR, MUX/XM. S.MSRC/81,ROT/ZL1T0,LIT/LITRL LITRL/2" LW TRU/STEPCTUB/ALU/A+BHC 1 SRMUX/AM. S MSRC/31 :ROT/CONK. $12,VS1ZE/1.DTYPE/WORD , ALUKM/ZERD" WCTRL/STEPC_WB,DOT/D_WX,ALU/AB+CI. SR, MUX/M. S MSRC/81,ROT/CONX.S1Z,VSI2E/1,DTYPE/WORD'" *WCTRL/STEPC-WB.DQ1/D_WX MSRC/@1,L1T/LITRL,LITRL/82,ROT/ZL1T0, MUX/M S, ALU/A-B-C " "WCTRL/STEPCZWB,DO1/D WX ALU/A+B+C1. SR MUX/M.R1,MSRC/a1 ,RSRC/ZERD'" "WCTRL/STEPC_WB,ALPCTC/WX_D_S,MSRC/RNUM WBUS,ROT/ZLITO,LIT/LITRL LITRL/a1" "WCTRL/STEPC_WB,DQ1/D_WX,ALO/A+B+C1. SR, RUX/XM.R ALUXM/SIGN,MSRC/a1 ,RSRC/ZERD" :UCTRL/STEPC_UB,MSRC/51,LIT/LITRL,LITRL/Q?,ROT/ZLITO,ALU/A+B’CI,MUX/M.S“ WCTRL/STEP{_WB,MSR(/81,RSRC/a2 ,ALU/A-B~C1,MUX/M,R1"" "WCTRL/STEPC_WB,MSRC/@1,LIT/LITRL ,LITRL/R2,ROT/ZLITO, ALU/A-B=-C1 ,MUX/M, 5" “WCTRL/STEPC_WB,ALU/A+B+C], SR,MUX/M.S MSRC/a1,ROT/ZERQ" "WCTRL/STEPC”WB,MSRC/@1,ROT/GETNIB, ALPCTL /WX s .UCIRL/STEPC_UB,MSR(/a1.SPW/MLONG.ALPCTL/WX_S.RSR(/S?.ROT/RR.RR. ! WCTRL/STEPC_WB,MSRC/a@1, SPW/MLONG ,ALPCTL/WXZS,ROT/ZLITO,LIT/LITRL,LITRL/82" 28-NOV~83 Mo Register Transfer Macros CMT098.MCX MICRO2 MACRO.MIC ;4790 ;47N 14792 ;4793 ;4794 ;46795 4796 14797 ;4798 ;4799 ;4800 ;6801 STEPC_Q_ML].SR.1 STEPC_Q_R[J1.SR.1 /M.S ,MSRC/@1 ,ROT/MINUST"' "\JCTRL/STEPC_WB,DQ1/Q_WX,ALU/ANDTSR,MUX MINUST' ,RSRC/@1,ROT/ MUX/R.S ,ALU/AND.SR, "WCTRL/STEPC_WB,DQ1/Q"WX STEPC_R[J.SR.1 STEPCZZLITOL] "WCTRL/STEPC_WB,RSRC/31,ROT/RR.RR.P,ALPCTL/WX_S"' "WCTRL/STEPC_WB,ALU/A+B+C1.SR,MUX/R.S,RSRC/@1,ROT/ZERD"’ "WCTRL/STEPC_WB,ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITRL/®1" TB_BAD "WCTRL/TB_WB,MISC/FORCE.TB,MSRC/VA,ALPCTL/WX_S ,ROT/MINUST" STEPC_RC1.RR.P PARITY "WCTRL/TB_WB,ALU/OR,MUX/R.S,RSRC/81,ROT/ZERD,MSRC/VATM “4CTRL/TCSR_WB,ROT/ZERO, ALPCTL/WX_S'' “4CTRL/TCSRZWB,ALU/AND ,MUX/M. S ,MSRC/@1,ROT/ZL1T16,LIT/LITRL,L1TRL/82" "WCTRL/TCSRTWR,ALU/OR,MUX/M.RT ,MSRC/@1,RSRC /82"’ 1! ""CTRL/TODCLK_WB,ALU/XOR ,MUX/D.S,ROT/ZLIT16,LIT/LITRL,LITRL/31" OT/XZ .MM, MSRC/81"! "WCTRL/TODCLK WB,DQ1/D_WX,ALU/OR,MUX/R.S,RSRC/@2,R 18 "WCTRL/TODCLK_WB,ALU/OR,MUX/M.R1,MSRC/81,RSRC/22" "WCTRL/TODCLK-WB,ALU/OR,MUX/M.S MSRC/81,ROT/ZLIT16,LIT/LITRL,LITRL/@2" ;4809 TUSBREGS_ TUSBREGS_ TUSBRE"S_ TUSBRE GS~ TUSBREGS TUSBREGS” "WCTRL/TUSBWRITE ,MSRC/81,ROT/QLIT16,LIT/LITRL,LITRL/32,ALU/AND ,MUX/M.S"" "WCTRL/TUSBWRITE ,MSRC/81 ,ROT/ZLIT16,LIT/LITRL L1TRL/32,ALU/OR,MUX/M.S"" SIZE/1,DTYPE/WORD ,MSRC/31"" "WCTRL/TUSBWRITE ,ALPCTL/WX S,ROT/RR.Mg.?{ W “WCTRL/TUSBWRITE ,MSRC/@1, SPW/MLONG,ALPCTL/WX_S ,ROT/RR .MM, S12,VSIZE/1,DTYPE/LONG" g f W 5 S,ROT/ZERQ"' "WCTRL/TUSBWRITE,SPW/RLONG,RSRC/81,AL PCTL VA_D+R[] VATD+R[] "WCTRL/VA_WB,ALU/A+G+CI,MUX/D.R1,RSRC/@1"" “WCTRL/VAZWB.ALU/A+8+C1 ,MUX/D.R1,RSRC/81,ALUCI/ONE"' *WCTRL/VA_WB,ALU/A+B+(C1,MUX/D,S,ROT/ZLITO,LIT/LITRL.LITRL/8 "WCTRL/VATWBLLIT/LITRL,LITRL/31,ROT/ZLITO,MUX/D.S ALU/A~B-CT"" "WCTRL/VA_WB,ALU/XOR,MUX/D.S,ROT/ZLIT16 LIT/LITRL,LITRL/8Y'" 14830 ;4831 ;4832 ;4833 ;4834 ;4835 ;4836 ;4837 ;4838 ;4839 :4840 ;4841 ;4842 ;4843 ;64844 "WCTRL/TUSBWRITE ,ALPCTL/WX_S,ROT/ZLIT 16,L T/CITRLLLITRL/D1" [l INVALIDATE ] — VA ~N ~— ;6828 ;4829 7y VA ] VATD-7L VAZD.XO < > 16827 “WCTRL/TODCLK-WB ,MSRC/a1, SPW/MLONG,ALU/A~B=CI ,MUX/M.S ,ROT/ZLIT16, LIT/LITRL LITRL/@2" “WCTRL/TODCLK W8, SPW/MLONG ,MSRC/81,ALPCTL/WX_S,ROT/ZLIT16, LIT/LITRL,LITRL/@2" 6,L1 /LTTRL,LITRL/Q1" "YCTRL/LOADTRAR,ALPCTL/WX_S,ROT/ZLIT16,LIT =4 ;4825 ;6826 123 L ,MSRC/VA"' ,LIY/LITR ,LITRL/®1 “WCTRL/TB WB,ALU/A+B+C1 ,MUX/D,S,ROT/ZLIT8 TBD+ZLIT8L] TBZRC] ;4807 ;46808 ;6816 Page "W{TRL/STEPC_WB,ROT/PL,ALPCTL/WX_S'"' STEPCTPL ;4805 ;4806 4817 ;48,8 ;6819 ;6820 14821 ;4822 14823 14824 CLOKX Rev 13.00, Ctock rate = 160ns ""WCTRL/STEPC_WB,MSRC/@1,SPW/MLONG,LIT/LITRL, LITRL/82,ROT/ZLIT28,ALPCTL/WX_S"’ ;4803 ;4804 ;4815 6 10 STEPC_ML1_ZL1T28(] ;4802 ;4810 16811 ;4812 ;4813 4814 16:30:35 0 VA_D_ZLIT241[] VACMTEMPO_D_VA+ZL 1T8[) 1B "WCTRL/CLATB.VA_WB,DA1/D_WX,ALU/A+B+(1,MUX/D.S,ROT/ZLITB,LIT/LITRL,LITRL/®1 BUS/PRB.RD,PTE" "WJCTRL/VA_WB,DQT/D_WX,ALD/A+B+C],MUX/M.R1,MSRC/@1,RSRC/a2" "WCTRL/VA-WB.DO1/D WX, ALU/A=B~C1.MUX/M.S ,MSRC/a1,ROT/ZLITO,LIT/LITRL,LITRL/@2"" “WCTRL/VAZWB.DQ1/D WX ,MSRC/a1,SPW/MLONG ,RSRC /a2 ,MUX/R.S ,ROT/ZERD, ALU/OR"' “WCTRL/VAWB,ALPCTC/WX_D_S,ROTZZLITO,LIT/LITRL,LITRL/81" "WCTRL/VAZWB.ALPCTL/WX D =S,ROT/ZLIT24 LIT/LITRL,LITRL/31" *WCTRL/VA~WB, SPW/MLONG;D01/D WX ,MSRC/VA,ROT/ZLIT8,LIT/LITRL,LITRL/®T,MUX/M. S, ALU/A+BHC]" *"CTRL/VAWB,MSRC/PC, SPW/MLORG, RSRC/ZERQ, MUX/M.RT,ALU/OR"" VAMTEMPO”PT VA_MTEMPO_PC+SEXT(XB)+2 P(_PC+2 "WCTRL/VATPC+1+W.PC_PC+]1 ,MSRC/XB.PC_PC+],SPW/MLONG,RSRC/ZERQ,MUX/XM.R, ALUXM/SIGN,ALU/OR, VSIZE/1,DTYPE/WORD, ISTRM/ISIZE DSIZE" *CTRL/VA_WB,MSRC/VA,ROT/OLITO, LIT/LITRL,LITRL/@1,MUX/MTS, ALU/AND, SPW/MLONG'* 110(] VA_MTEMPO_VA.AND.OL ALU/A+B+C1, VA_MTEMPO_SEXT(XB) +R[] P{_P(+2 “WCTRL/VAZWB,MSRC/XB.PC_PC+I,SPW/MLONG,RSRC/@T,MUX/XM.R,ALUXM/STGN, (MDR) VA_MTEMPQ_ZEXT VSIZE/1,DTYPE/WORD, ISTRM/ISIZE DSIZE “\JCTRL/VA_WB,MSRC/MDR , SPW/MLONG ,RSRC/2ERD, MOX/XM. R, ALUXM/ZERO,ALU/OR"’ VA_MCJ “WCTRL/VA_WB,MSRC/a1,RSRT/ZERQ,MUX/M.RT,ALU/OR" (XB) PC_P(+2 VATMTEMPOTZEXT VATML I+ (R[J.ASL,SIZE) VATMEI=(RCI.RR.8) ""JCTRL/VAZWB,MSRC/XB.PC_PC+I,SPW/MLONG,RSRC/ZERD, MUX/XM.R,ALUXM/ ZERD,ALU/OR, ISTRM/1S12E DSIZE,VSIZE/1,DTYPE/WORD'"' "%C TRL/VATWB.MSRC/31.RSRC/82,ROT/ASL.R. S1Z ,MUX/M. S, ALU/A+B+C]"" "WCTRL/VA_WB.ALU/A-B=C1,MUX/M, S ,MSRC/81,ROT/RR.RR.$1Z ,RSRC/@2,VSIZE/1,DTYPE/BYTE"! 28-NOV-B3 (LICD) Register Transfer Macros MICRO2 CMT098.MCX MACRO.MIC : ;4845 :6B4G ;4847 14848 ;4851 ;4852 ;4853 ;6854 ;4855 14856 VA_MCI+ZL170[] VAZMC)+ZL1T8L] VATM[J-(R[J.ASL.SIZE) VATMI]-R[) VAM[1-ZL170L] VA_MLJ.AND.ZLITO[] 14859 ;4860 ;6861 ;6862 ;4863 ;48664 14865 14866 14867 VATMLI+RLI+1 VAZML].ANDNOT.ZLITOL] VAML].OR.Q VATMLI.XOR.R[] VATM[J.XOR.ZLITO[) VA_MLI.XOR.ZLIT24[3] vA_ML[J]_MB+2LITOL) VATMLI_MB+ZL1T8[] CLEAR CACHE VAZMLI~MB-1 VAZMLITMB-ZLITO[] VA_M[I_R[].OR.Q +2 PC_P(+2 VATPC+SEXT(XB) VA_PC+SEXT(XB)+]1 ;4876 VAZQ 0D ;4878 VAZQID_R[] 14875 ;4877 ;4879 ;4880 ;4881 VAZQ VAZRNUM_RL) VATRNUMZR[] CLOBBER Q 14886 VA_R[1+1 ;4887 ;4888 14889 ;6890 14891 ;489C ;4893 14894 ;64895 ;64896 14897 14898 ;4899 ) VATQTMLI+R[] VATRL[] VA_R[) Q@_D VAR[) O°MLI ;4885 PC_PC+] VAZQ_D-D+ZL1T8[] ;64882 ;4883 ;4884 VAZR[)+(R[].ASL.P) VAZRL[J+CONX(4) VA_R[J+CONX.SIZ VAZR[I+M[]1.PTX VATR[]-CONX(1) VAZRIJ-CONX(2) VATRL]-CONX(4) VATR[]-CONX.SIZ VAR[1-M[] VATRL].ASL.SIZE VAZR[].SIZ_RB-CONX(2) VATR[].SIZZRB-D VAZR[].XORTU VAZRL® D=CONX(4) 'UCTRL/VA-NB,ALU/A+B+C1,MUX/M.S,MSRC/81,ROT/ZLITé.LIT/LITRL,LITRL/aE . "WCTRL/VAZW3,MSRC/a1,ROT/ZLIT8, LIT/LITRL,LITRL/82,MUX/M. S, ALU/A+B+CT" 1Z S, ALU/A-B-(1"" /ASL.R.S ,MUX/M. "WCTRL/VAZWB,MSRC/@1,RSRC/82,ROT "WCTRL/VA_WB,ALU/A=B~CI,MUX/M.R1,MSRC/@1,RSRC/32"’ "JCTRL/VAZWB,ALU/A-B-CI ,MUX/M.S ,MSRC/@1,ROT/ZLITO, LIT/LITRL ,LITRL/82" D LITRL/82" LU/AN ITO,LIT/LITRL, -WB,A ,MUX/M,5 ,MSRC/a1,ROT/ZL ‘“WCTRL/VA M, T/LITRL" TO,MUX/ ,LITRL/@2,LI ALU/ANDNOT ROT/ZLI S, “WCTRL/VA_WB,MSRC/@1, ‘“WCTRL/VAZWB,ALU/OR ,MUX/M.01,MSRC/a1"’ “JCTRL/VAZWB,ALU/XOR ,MUX/M.R1,MSRC/a1 ,RSRC/a32"" , “WCTRL/VAZWB,ALU/XOR,MUX/M.S MSRC/&1,ROT/ZLITO,LIT/LITRL, LITRL/@2"" "WCTRL/VA“WB,ALU/XOR,MUX/M.S ,MSRC/a1,ROT/ZLIT24,LIT/LITRL,LITRL/82' , . G ITRL/Q2"" W/MLON 1TO,LIT/LITRL,L /a1,SP ,MUX/M.S,ROT/2L B,MSRC "“WCTRL/VA“W,ALU/A+B+(] “WCTRL/CLRCH.VA_WB,MSRC/a1,SPW/MLONG,ALU/A+B+C] ,MUX/M.S ,ROT/ZLIT8 LIT/LITRL,LITRL/&2 “WCTRL/VA_WB,MSRC/a1, SPW/MLONG,MUX/M.R1,ALU/A-B=CI,ALUCI/ONE RSRC/ZERO"' , "WCTRL/VA“WB,MSRC/31,RSRC/82,VS1ZE/1,DTYPE/LONG,ROT/CONX.SIZ,MUX/R.S ALU/A+B+C],SPW/MLONG'' “WCTRL/VA_WB,MSRC/@1,RSRC/82, SPW/MLONG ,ALU/A+B+C T ,MUX/I'.S,ROT/MINUST" VAZMLITR[1-1 ;4876 "WCTRL/VA—WB,ALU/A+B+CI,ALUCI/ONE ,MUX/M.Q1,MSRC/@1 "WCTRL/VA_WB,ALU/A+B+CI,MUX/M.R1,MSRC/81,RSRC/d2 . "WCTRL/VAZWB,ALU/A+B+C1 ,MUX/M.R1,MSRC/a1,RSRC/82 , ALUCI /ONE “WCTRL/VAZWB,MSRC/81,SPW/MLONG ,RSRC/ZERO,MUX/R.Q,ALU/QOR"’ "WCTRL/VA_WB,MSRC/a1,RSRC/a2,R0T/2ERO,MUX/R.S,ALU/OR, SPW/MLONG' vAMLITQ ;6871 B 124 *WJCTRL/VA_WB,MSRC/1,SPW/MLONG ,RSRC/82 ,MUX/M.R1,ALU/AND VA_MLI”MB.AND.R(] VA_ML]_RL] VAZMLITRLI+CONX(4) :Aggg Page LITO, MUX/M,. S, ALU/A=B=CT"" "WCTRL/VATWB,MSRC/a1,SPW/MLONG,LIT/LITRL,LITRL/@2,ROT/Z ;4868 ;4869 ;4870 CLOKX Rev 13.00, Clock rate = 160ns ALU/A+B+(] 1Z,MUX/M. "WCTRL/VA_WB,MSRC/a1,VSIZE/1,DTYPE/LONG,ROT/CONX.SS, VAZMIJ+CONX(4) VATMLI+Q+1 VATMLI+RL] ;4857 14858 H 10 X/M. S, ALU/A+B+(]" "WCTRL/VA - UB,MSRC/a1,VSIZE /1.0 TYPE/BYTE ,ROT/CONX.S1Z,MU /A+B+(I" ,MUX/M.S,ALU ,ROT/CONX.SI1Z D /1,DTYPE/WOR “WCTRL/VA_WB,MSR(C/®1,VS1Z VA_MLI+CONX(1) VAWML +CONX(2) ;4849 14850 16:30:35 *WCTRL/VA~WB, SPW/MLONG,MSRC/@1,ALU/OR , MUX/R.Q,RSRC/Q2"" XM, ALUXM/SIGN ,ALU/OR, C/ZERO,MUX/ R, "WCTRL/VAZPC+1+W.PC_FC+1,MSRC/XB.PC_PC+1,RSR VSIZE/1,DTYPE/WORD,ISTRM/ISIZE DSIZE"' ""JCTRL/VA_PC+]+W.PC_PC+1 MSRC/XB.PC _PC+],RSRC/ZERO,MUX/RM.R,ALUXM/SIGN,ALU/OR"" ""JCTRL/VA_WB,ALU/OR,MUX/R.Q,RSRC/ZERO"" *WCTRL/VA_WB,ALPCTL/WX_Q.Q_D" "WCTRL/VAZWB,DQ1/0_D_WX ,ROT/ZLIT8,LIT/LITRL,LITRL/@1,MUX/D.S,ALU/A+B+C]" “WCTRL/VA_WB,D01/0-D_WX,RSRC/a1,ROT/ZERD,MUX/R.S,ALU/OR"! *WCTRL/VA_WB,MSRC/317RSRC/@2,MUX/M,R1,ALU/A+B+C1,DA1/Q_WX"' "WCTRL/VAZWB,RSRC/81,ROT/ZERD,MUX/R.S ,ALU/OR, MSRC/RNUM_WBUS"' *WCTRL/VAZWB,RSRC/@1 ,ALPCTL/WX _R.Q_M,MSRC/RNUM_WBUS'' "WCTRL/VA_WB,ALU/OR ,MUX/R.S,RSRC/aT,ROT/ZERD"" *WCTRL/VAZWB,RSRC/QT1,ALPCTL/WX_R.Q_D"' “WCTRL/VAZWB,RSRC/81 ,ALPCTL/WX R.Q_M,MSRC/a2"" "4JCTRL/VA_WB,RSRC/31,MSRC/82 ,ROT/ASL .M. P,MUX/R.S ALU/A+B+C1" “WCTRL/VAZWB,ALU/A~B-CI ,MUX/R.S,RSRC/81,ROT/MINUST" "WCTRL/VAZWB,ALU/A+B+(I,MUX/R.S,RSRC/@1,ROT/CONX.SIZ,VSIZE/1,DTYPE/LONG' "WCTRL/VA“WB,ALU/A+8+C],MUX/R.S,RSRC/@1,ROT/CONX.S1Z,VSIZE/1,DTYPE/IDEP" "WCTRL/VA_WB,ALU/A+B+(]1 ,MUX/R.S,RSRC/81,ROT/X2 PTX MSRC/82"" *WCTRL/VAZWB,RSRC/@1,ROT/CONX,SIZ,VS1ZE/1,DTYPE/BYTE ,MUX/R.S,ALU/A-B-C1" "WCTRL/VAZWB,RSRC/21,ALU/A-B-C] ,MUX/R.S,ROT/CONX.SIZ,VSIZE/1,DTYPE/WORD'" "WCTRL/VA—WB,RSRC/@1,ROT/CONX,.SIZ,VSIZE/1,DTYPE/LONG, MUX/R.S,ALU/A-B=C]""! "WCTRL/VAZWB,RSRC/81,ALU/A-B~C1 ,MUX/R.S,ROT/CONX,S1Z,VS12E/1,DTYPE/IDEP" 'UCTRL/VA_UB.ALU/B-A-CI,MUX/M.Ri,MSRC/&Z.RSRC/81” “WCTRL/VAZWB,ALPCTL/WX_S,RSRC/@1,ROT/ASL.R,S1Z2" "WCTRL/VAZWB,RSRC/®1,SPW/RSIZE ,ROT/CONX.S1Z,DTYPE/WORD,VSIZE/1,MUX/R.S ,ALU/A-B=C1"" "WCTRL/VAZWB,RSRC/a1,SPW/RSIZE ,MUX/D,RT,ALU/B-A-CI"" "WCTRL/VAZWB,ALU/XOR,MUX/R.Q,RSRC/a1"' “WCTRL/VA_WB,RSRC/1,VSIZE/1,DTYPE/LONG,ROT/CONX.S1Z ,MUX/D .S, ALU/A-B-L1,SPW/RLONG" CMTOG8.MCX MACRO.MIC ;6900 ;A901 :146902 ;4903 14904 ;4905 |;4906 14907 14908 4909 14910 ;4911 14912 ;4913 ;4914 ;6915 ;4916 ;4917 :4918 ;4919 24920 ;6921 ;6922 ;4923 ;4924 ;6925 ;4926 ;4927 14928 :4929 :4930 ;46931 14932 ;4933 ;49%4 ;4935 ;4936 ;4937 14938 ;4939 ;4940 16941 14942 14943 14944 ;4945 ;4946 14947 14948 ;4949 ;4950 ;4951 14952 ;4953 14954 1MC01) 28-NOV-83 MICROZ Register ‘Transfer Macros VA_RTI_ML] (1) VATREITMCT+CONX "ME T+ CONX(2) VATREI VATRCIZME J+CONX (4) VATRLIZMC]+RS (4) VATRCIMCJ-CONX VATREI“MCI-CONX.S1Z VATREIZQ Q_M(3 VACRCITMRB+T (1) VA_RCI_RB+CONX VATRLITRB+CONX (4) © 16:30:35 110 CLOKX Rev 13.00, Clock rate = 160ns VATRE 1ZRB-CONX (2) (4) VATRCIZRB-CONX vA_R[I_RB=CONX.S1Z "“WCTRL/VA_WB, RSRS4$gée?géggNX.SIZ,MUX/R.S,ALU/A-B-CI,SPN/RLONG.ALUCI/ZERO,VSIZE/1, VA_SEXT(XB)+R[] PC_P(+2 "WCTRL/VA_WB, MSRC/XB.PC_PC+I,RSRC/81,MUX/XM,R,ALUXM/SIGN,ALU/A+B+CI, VA_SEXT(XB)+R[] P(_P(+] "WCTRL/VA_WB, MSRC/XB.PC_PC+I,RSRC/1,MUX/XMTR,ALUXM/SIGN,ALU/A+B+CT" VAZVA+4 VATVA+4 CLEAR CACHE VA_XB PC_PC+4 VA_X3+RL] PC_PC+4 VSIZE/1,DTYPE/WORD, ISTRM/ISIZE _DSIZE" "WCTRL/VA_VA+&" ““WCTRL/CLRCH. VA W8,LITRL/4,ROT/ZLITO, LIT/LITRL,MSRC/VA,MUX/M.S, ALU/A+B+CT" "\CTRL/VA_WB,MSRC/XB.PC_PC+I,RSRC/ZERO,MUX/M.RT,ALU/OR,VSIZE/1,DTYPE/LONG, ISTRM/1S1ZE _DSIZE'" "WCTRL/VA_WB, MSRC/X8.PC_PC+I ,RSRC/81,MUX/M.RT,ALU/A+B+(1,DTYPE/LONG, VA_XB.XOR.RL] PC_P(+4 ISTRM/IS1ZE_DSIZE,VSIZE/1" "WCTRL/VA_UB, ALU/XOR ,MUX/XMTR,ALUXM/ZERO,MSRC/XB.PC_PC+I ,RSRC/®1,ISTRM/ISIZE_DSIZE, VA_ZEXT(MLD) VATZEXT(M[1) R[] VAZZEXT (M(1)=R{] VATZEXT(XB) PC_P(+?2 U/OR"’ ALUXM/ZERD,AL/XM R,ERQ,MUX "WCTRL/VA_WB, MSRC/31,RSRC/Z ALU/A+B+CI,MUX/XM.R,MSRC/a1 ,RSRC/82 ,ALUXM/ZERQ" "W TRL/VA~WB, "“CTRL/VA_WB., ALU/A-B-CI,MUX/XM.R ,MSRC/31,RSRC/@2,ALUXM/ZERQ"! "WCTRL/VAZWB, MSRC/XB.PC_PC+] ,RSRC/ZERQ,MUX/XM.R,ALUXM/ZERO,ALU/OR, VSIZE/1,DTYPE/LONG" VA_ZEXT(XB).XOR.(R[J.RR.8) PC_PC+1 VA_ZEXT (XB)+R[] PC_PU+1 VA_ZEXT(XBY=RL] P(_PC+1 VA_ZEXT(XB)=RL1 PC_PC+2 VA_ZL170{] WB_(D+CONX(1)).SR,1 WB_ (ML) RCJ).RR.4 WB_ (ML I+ALKC) .B(D WB_ (ML 1+R[1).B(D WB (M{1-R[1).8CD WB_(M[J~R[J-ALK().BCD WBZ (M[J.AND.ZLITC[J).SR WBZ (R[] M[1).RL.P W8~ (R[] MLI).RL.PS .S .1 WBZ(R[14Q) WB_.NOT. (M[1.RR.16) 125 . "WCTRL/VA_WB, SPW/RLONG ,RSRC/@1,ALU/OR ,MUX/M. S ,MSRC/®2,R0T/ZERD"’ +CI ,DTYPE/BYTE ,VSIZE/1 U/A+B CONX.S1Z @1,AL ,MSRC/a2,ROT/ S ,MUX/M. " TRL/VATWB, SPW/RLONG,RSRC/ PE/WORD'! B+CI VSIZE/1,DTY U/A+ T/CONX.S1Z, 1,AL S ,MSRC/82,RO RC/8 ,MUX/M. "WCTRL/VAZWS, SPW/RLONG,RS IZE/1 ,DTYPE/LONG X,S1Z,VS ,ROT/CON /a2 ,MUX/M.S,MSRC A+B+CI "WJCTRL/VA~WB, SPL/RLONG ,RSRC/a1,ALU/ RSRC/a1,SPW/RLONG,MSRC/a2,MUX/M,R1,ALU/A+B+C1"’ , "C T/ MAZWB, S VSIZE/T" ] ,MUX/M. ,ALU/A-B~C PE/LONG SIZ,DTY T/CONX. C/82,RO ONG,MSR .SPW/RL "CTRL/VATWB, RSRC/31 M. ,VSIZE/1 ,DTYPE/IDEP" S, ALU/A~B-CI7,MUX/ "WCTRL/VATWR, RSRC/81, SPW/RLONG,MSRC /82 ,ROT/CONX.S1 "JCTRL/VAZWB. SPW/RLONG ,RSRC/21,ALPCTL/WX_0.Q_M,MSRC/a2"’ , "WCTRL/VAZWE, RSRC/@1,SPW/RLONG . ROT/MINUST ,MUR/R. S, ALU/A~B=C1"" ,MUX/R.S ,ROT/CONX.S1Z,VS1ZE/1 ,DTYPE/BYTE" "WCTRL/VA-WB, SPW/RLONG ,RSRC/@1,ALU/A+B+CI "WCTRL/VAZWB, RSRg4$gé5?6§ggNX.SIZ,MUX/R.S,ALU/A+B*C1.SPU/RLONG,ALUCI/ZERO,VSIZE/1, B+( X.SI1Z"" G,ALU/A+ ] ,MUX/R.S,ROT/CON *WCTRL/VA_WB, RSRC/a1,SPW/RLON *"WCTRL/VA-WB. RSRC/@1,SPW/RLONG,ALU/A~B=~CI ,MUX/R.S,ROT/CONX.S1Z ,VSIZE/1,DTYPE/BYTE"! ,MUX/R.S ,ALU/A~B~CI,VSIZE/1 DTYPE/WORD" ""JCTRL/VAZ\B, RSRC/a1,SPW/RLONG,ROT/CONX.S1Z "WCTRL/VA_WR, RSRS;?;EBEBQEQNX.SIZ,MUX/R.S,ALU/A-B-CI,SPU/RLONG,ALUC1/ZER0,VSIZE/1, VA_RL]_RB+CONX. S1Z VATREIZRB-CONX (1) Page ISTRM/1S12F_DSIZE,VSI2E/1,DTYPE/WORD"' "WCTRL/VA_WB,ALU7XOR,MUX/XM.S ,MSRC/XB.PC PC+1 ,ROT/RR.RR.S1Z RSRC/81, 1STRM/IS12E _DSIZE,VSIZE/1 ,DTYPE/BYTE" "WCTRL/VA_WB,MSRC/XB.PC_PC+T,RSRC/a1,MUX/XM.R, ALUXM/ZERO,ALU/A+B+CI, ISTRM/1SIZ2E DSI1ZE,VSIZE/1,DTYPE/BYTE" “WCTRL/VA_WB,ALU/A~B~C] ,RUX/XM.R ,MSRC/XB.PC_PC+1,RSRC/@1,ALUXM/ZERO,ISTRM/1SIZE_DSI1ZE, VSIZE/1,DTYPE/BYTE" "WCTRL/VA_WB,ALU/A=B~C] ,MUX/XM R ,MSRC/XB.PC_PC+1 ,RSRC/@1,ALUXM/ZERO.ISTRM/ISIZE_DSIZE, VSIZE/1,DTYPE/WORD'' "WCTRL/VA_WB,ALPCTL/WX_S,ROT/ZLITO,LIT/LITRL,LITRL/21" “ALU/A+B+C1.SR,MUX/D.S,ROT/CONX.SIZ,VSIZE/1 ,DTYPE/BYTE"' “ALPCTL/WX_S,MSRC/&1 ,R5RC/@2,ROT/RR MR, 4" CALU/A+B+CT.BCD, ALUCT/ALKC,VSIZE/1,DTYPE/LONG,MUX/M.R1,MSRC/21,RSRC/ZERD" *MSRC/@1,RSRC/ad ,ALU/A+B+C1.BCD ,MUX/M.R1,VSIZE/1,DTYPE/LONG' "'ySI12E/1,DTYPE/LONG,RSRC/@2,MSRC/a1,MUX/M RT,ALU/A-B=-C1.BCD" *'vSIZE/1,DTYPE/LONG,RSRC /82 ,MSRC/a1 ,MUX/M.R1 ,ALU/A-B=-C].BCD,ALUCI/ALKC"' “MSRC/@1,MUX/M,S,ROT/2LITO,LIT/LITRL,LITRL/8c,ALU/AND. SR" "'RSRC/@1,MSRC/a2 ,ROT/RL.RM.P,ALPCTL/WX S"' “'RSRC/@1,MSRC/32 ,ROT/RL . RM.PS JAL ,ALPCTL/WR 5" "MUX/R.Q,RSRC/a1,ALU/A+B+(] .SL,AL USHF /2ERQ"" "ALPCTL/WX_,NOT.S,ROT/RR .MM, S12,VSIZE/1 ,DTYPE/WORD,MSRC/81" i 28-NOV-83 Mo Register Transfer Macros (MT098.MCX MICROZ MACRO.MIC 14960 ;6961 14962 14963 ;4964 ;4978 ;4979 14980 CLOKX Rev 13.00, Clock rate = 160ns “ALPCTL/WX_.NOT.S,ROT/RR.MM.P MSRC/81'" WBZ0~CONX(1) WB_D WBZD+ALKC *MUX/D.R1,RSRC/ZERO,ALU/OR “MUX/D .R1,RSRC/ZERD,ALU/A+B +C 1,ALU Cl /ALKC" "'CCMISC/WB ATCR, C(BR _SIGND WBZATCR WBID+ZLITOC WBD+ZL1T16 WBZD-0L 1124 F> [=} 9% c . £ (17 14965 14966 14967 14968 ;4969 ;4970 ;4971 14972 '4973 14974 14975 ;49?6 14977 0 , “ALY/A-B=CT,MUX/R. o RSRC/ZERO,ALUCI/ONE'’ BYTE" /1,DTYPE/ $1Z,VSIZE ROT/CONX, 2,5 ;MUX/ 1 “ALU/A=B~C WB.NOT.OQ WwB wB R w8 WBTEXP (M[ WB_EXP (ML “'ALUZA+B+C1,MUX/D.S,ROT/ZLI}? LLIT/ LITRL,LITRL/®1" mroeds 14957 14958 14959 WB_.NOT.(ML1.RR.P) o vv"‘r_l‘_fi-—”'"_'-r"! ;6955 14956 16:30:35 we FPA B-MC] B"M[] PL_MB,MSS YALU/A+B+C ] MUX/D,S.ROT/ZLI 6,LIT JLITRL,LITRL/®1"" "MUX/D.S, ROT/OLIT2%. LIT/LITR L LLITR L/81,ALU/A~B=C1"" “'MUX/D.S.ROT/PL, ALU/A=B=C1" “ALU/A=BZC1,ALUCI/ZERO,MUX/D. Q1" "'RSRC/A1, MUX/D.R1,ALU/A~B-C]" “LIT/LITRL,LITRL/®1,ROT/ZLITO, MUX/D.S,ALU/A-B=C1"" “'ALU/AND, MUX/D.S,ROT/ZLITO,LIT/LITRL, LITRL/31"" “CIT/LITAL,LITRL/@1,ROT/ZLIT16,MUX/D.S, ALU/AND" "ALU/AND, MOX/D. S, ROT/ZLIT24,LIT/LITRL LITRL/a1 ' “LIT/LITRL, LITRL/@1,ROT/ZLITO,MUX/ S, ALU/ANDNOT"* "ALU/XOR, MOX/D.R1,RSRC/@1" . S LROT/ZLITO,LIT/LITRL,LITRL/®1" "'ALU/XOR. MUX/D *'ALU/XOR,MUX/D. S ROT/ZLIT16,LIT/LITRL,LITRL/@1"" “'ALU/XOR,MUX/D,S,ROT/2L1T24,LIT/LITRL,LITRL/Q1" T(MB) ‘'"MSRC/a1, ROT/GETEXP, ALPCTL/WX_S"' *MSRC/81.ROT/GETEXP,ALPCTL/WX_S.Q_XM,ALUXM/ZERD"' “EPA/WBUS FPA" “'ALU/OR,MOX/M.S ,ROT/IERO ,MSRC/R1"' “MSRC /A1, RSRC/ZERO MUX/M_R1,ALU/OR,ROT/PL_MSS'' M[J+coNx<1> “ALU/A+B8+C1,MUX/M. S ,MSRC7@1,ROT/CONX.SIZ, DTYPE/BYTE,VSIZE/1" ;4983 B_M[1+Q ;4985 14986 we “MLJ+RLI+ALKC "MUX/M.0T,MSRC/@1,ALU/ZA+B+CI"' “MSRC/a1,MUX/M.Q1,ALU/A+B+C1,ALUCI/PSLC" YALUZA+BSCI,MUX/M.RT,MSRC/a1,RSRC/82,ALUCT/ALKC"” 5000 15001 15002 15003 15004 5005 ;5006 ;5007 ;5008 15009 B M[J+R{J+PSLC B"ML1+ZL170(} B_M[]-(MB.CLRZB) B-MLJ-(RL1.XZ) wa “M[1-1 L L [ L L M WB_ML { w8 ML ] { [ L w8 { w8 { w8 [ { =z ;4987 ;4988 ;4989 ;4990 1499 14992 14993 ;4994 ;4995 146996 14997 14998 4999 B MLI+Q+PSLC = Lv3) ;4984 BZM[ J+PSL( 4 m ;4981 146982 "MSRC/21,RSRC/ZERO,MUX/M R1,ALU/A+B+(CT, ALUCI/ZPSLC" CALUZA+B+CIALUCIZPSLC ,MUX/M.RT,MSRC/31,RSRC/32"" “ALUZA+R+C]SMUX/M. S MSRC/a1,ROT/ZLITO, LIT/ZLITRL,LITRL/@2"" "ALU/A=B-C 1 MUX/M.S .MSRC/a1,ROT/CLR2BM" “ALUZA-B-C1.MUX/M.S . MSRC/a1,ROT/XZ.RR, RSRC/@2" "MSRC/a1,ROT/MINUST .MUX/M. S,ALUZASB+CI" “ALU/A=BZCI,MUX/M.S,MSRC/a1,ROT/PL" "MSRC/@1,RSRC/ZERD, MUX/M. R ALU/A B~CI,ALUCI/PSLC" "MUX/M.Q7 ,MSRC/@1,ALU/A~B-C]"" "MSRC /@1, MUX/M.Q1,ALU/A~B-C] LALUCI/PSLC' "MUX/M.RT,MSRC/@1 RSRC/a2,ALU/A~B-C]" *'MUX/M.R1,MSRC/@1,RSRC/@2 ,ALU/A-B~C] ALUCI/ALKC"' “'ALU/A~B-C1,MUX/MS,MSRC/81,ROT/ZLITO,LIT/LITRL ,LITRL/82'" “MSRC/al,L1T/LITRL,LITRL /@2 ,ROT/ZLIT8 MUX/M. S, ALU/A~B=C]"! “'ALU/AND,MUX/M. S, M§RC/Q1,ROT/CONX.SIZ.DTYPE/BYTE VSIZE/1"! “'ALU/AND. MUX/M. S .MSRC/81,ROT/CONX.S1Z .DTYPE/WORD,VSIZE/1"! “ALUZAND. MUX/M, S ;MSRC/@1;ROT/CONX . SIZ . DTYPE /LONG,VS1ZE/1"" "MSRC/@1,L1T/LITAL, LITRL/@2,ROT/OLITO MUX/M. S ALU/AND" "MUX/M.0f ;MSRC/81, ALU/AND"" , “'ALU/AND ,MUX/M.R1,MSRC/31,RSRC/@2"" *MSRC/@1,L1TRL /@2, MUX/M. S, ALU/AND ,ROT/ZLITO,LIT/LITRL"! *MSRC/81.LIT/LTTRL,LITRL 782 ,ROT/2(1T12 MUX/M. S ALU/AND'" L7 AND . MUX/M., S, MSRC/81 ,ROT/ZLIT16,LIT/LITRL,(ITRL/82" “'AL “'ALL/AND ,MUX/M. S,MSRC/31,ROT/2L1T20,L1T/LITRL,LITRL/G2"" “'ALU/AND,MUX/M. S, MSRC/@1 ,ROT/ZLIT24 LIT/LITRL,LITRL/@2" Page 126: CMTO98.MCX ; MACRO.MIC : MICROZ 1M(OT) 28-NOV=83 Register Transfer Macros 16:30:35 K 10 CLOKX Rev 13.00, (lock rate = 160ns ;5010 ;5011 ;5012 ;5013 WB_MLJ.AND.ZLIT4([] WBTMLJ.AND.ZLIT8[] WBTMLJ.ANDNOT.Z2LITOC]. WBZMLJ.ANDNOT,.ZLI1T24[3 “MSRC/&1,LIT/LITRL,LITRL/82,ROT/ZL1T4 ,MUX/M. S, ALU/AND"! I ,LITRL/R2" “ALU/AND MUX/M.S ,MSRC/a1,ROT/ZLIT8,LIT/LITR LITRL/22"" /ZLITO LIT/LITRL **ALU/ANDNOT ,MUX/M. S ,MSRC/81,ROT L1T/L 1TRL,LITRL/82 "‘ALU/ANDNOT ,MUX/M, S ,MSRC/a1,ROT/ZL1T24, ;5015 ;5016 WBZML].ASR.P WBTML1.BCDSWP “ALPCTL/WX_S,ROT/ASR.M.P ,MSRC/QT ""MSRC/@1,ROT/BCDSWP,MUX/R.S,RSRC/ZERD,ALU/OR" ;5014 WBZML].ASR.-P .M. =P ,ALPCTL/WX_S "MSRC/@1,ROT/ASR WBTMLJ1.CLR2B WB_M[J.OR.R[1 WBTML1.RR.16 “ALPCTL/WX_S,ROT/CLR2BM,MSRC/81"" y "MSRC/21,MOX/M.R1,ALU/OR,RSRC/@2 ORD ZE/1,DTYPE/H ,MSRC/®1,VSI 1Z “ALPCTL/WX_S,ROT/RR.MM.S ;5021 WBZMI1.RR.4 “ALPCTL/WX_S,ROT/RR.MR.4 ,MSRC/@1,RSRC/A1"" . ;5028 WB“ML[J.XOR.R(1 “'ALU/XOR,MUX/M.R1,MSRC/a1,RSRC/a2"" .\ ;5017 ;5018 ;5019 ;5020 ;5022 ;5023 ;5024 ;5025 ;5026 ;5027 15029 ;5030 WBZM[].RR.24 WB“M[J].RR.8 WBTML].RR.P WBCML1.VPN-RL] WBZM[].XOR.Q WBZMLJ.XOR.G G_(Q.SL.1).0R.1 WBZM[J1.XOR.Q Q-Q.RL.1 WBZM[J.XOR.ZLITO[) WBZM[J.XOR,.ZLIT8[)] ;5031 WBTML1.XZ.MM ;5036 ;5037 WBTQ Q_M[3] wBZQ-D “ALPCTL/WX_S,ROI/RR.MM.SI12,VSIZE/1,DTYPE/LONG,MSRC/21"’ “ALPCTL/WX_S,ROT/RR.MM.S1Z,VSIZE/1,DTYPE/BYTE ,MSRC/@1 . “ALPCTL/WX_S,ROT/RR.MM.P ,MSRC/Q1"’ “ALU/B-A=CT,MUX/R.S,RSRC/a2,ROT/XZ.VPN,MSRC/@1 "MSRC/@1,MUX/M.QY ALU/XOR" ,ALUSHF /ONE'" “ALU/XOR . MUX/M. G2 ,MSRC/@7,D02/5QL AL ,ALUSHF /ROT"" "'ALU/XOR, MUX/M, 02 ,MSRC/31.D02/S “'ALU/XOR,MUX/M.S ,MSRC/&1,ROT/ZLITQ, LIT/LITRL,LIIRL/22 “ALU/XOR,MUX/M.S,MSRC/81,ROT/ZLIT8, LIT/LITRL,LITRL./@2" “MSRC/@1,ALPCTL/WX_S,ROT/XZ.MM"’ WB_NOT(ML].ASR.-P) WB_PL*2 WBZPSL wBZa *'MSRC/Q1,ROT/ASR.M.-P ,ALPCTL/WX_.NOT,S" SL" /R. S ,ALU/A¥B~CI. “'ROT/PL ,RSRC/ZERD,MUX "'CCPSL/WB_PSL.CCBR SIGND'' "'ALU/OR ,MOX/R.Q,RSRC/ZERD" ;5038 WB_G-M[J "'MUX/M.Q1,MSRC/@1,ALU/B-A-CI" ;5044 WBZRL1+1 5032 ;5033 ;5034 ;5035 ;5039 15040 ;5041 ;5042 15043 ;5045 15046 15047 WBZQ-R[] WwBTQ_MC] WBZRNUM WBZRL] WBTR[1+0 WBZR[1-0 WBZRLJ~CONX(4) WBZR[1-D *MSRC/Q1,ALPCTL/WX_Q.Q M "MUX/D.Q1,ALU/B~A-T] ,ALUCI/ZERD" “'RSRC/a1,MUX/R.Q,ALU/B~A-C]" "MSRC/Q1,RSRC/ZERO,MUX/M.R1,ALU/OR,DQ1/0_uX'' "MSR{/WBUS_RNUM' “RSRC/@1,MOX/R.S,ROT/ZERO,ALU/OR" “'ALU/A+B+(],MUX/R.S .RSRC/a1,ROT/ZERD" “ALU/A~B-C],MUX/R.S,RSRC/&a1,ROT/MINUST" "RSRC/@1,R0OT/ZERO,MUX/R. S ,ALU/A-B~C]"" "'RSRC/31,ROT/CONX.SI1Z ,VSTIZE/1,DTYPE/LONG,MUX/R.S,ALU/A-B=C1"" "'RSRC/a1,MUX/D.RT,ALU/B=A~C1" ;5048 WBZRLJI-MLJ “RSRC/Q1,MSRC/a2,MUX/M.R1,ALU/B-A~C],ALUCI/ZERD" :5052 WB_RLI-ZEXT(M[]) ;5055 ;5056 15057 WB_RL].AND.Q WB_RL1I.NOTAND.Q WB_RLJ.OR.(M[].ASR.-P) “R3RC/@1,MSRC/&2,MUX/XM. R, ALUXM/ZERD , ALU/B-A-C1"' "MSRC/XB.PC_PC+l,RSRC/a1,ALUXM/ZERO MUX/XM.R ALU/B=A-C1,VSIZE/, _DSIZE" DTYPE/BYTE,ISTRM/ISIZE 5067 WB_R[J.RR.SIZ ;5049 :5050 :5051 :5053 ;5054 ;5058 5059 ;5060 15062 ©5063 ;5064 WwBZRLJ-a WB_R[1-XB FC_P(+4 WB_RL1-ZEXT(XB) P(_P(+1 WBZRL1.RR.6 WBZRL).RR.24 WBZR[1.RR.8 WBZRLJ.SR.SCIF MDR iS 0) WBZR[1.XOR.Q W8 SEXT(MLI)~0 - “'RSRC/@1,MUX/R.0,ALU/A~B=CT"* "MSRC/XB.PC_PC+I,RSRC/a1 ,MUX/M.R1,ALU/B-A-C],VSIZE/1, DTYPE/LONG, ISTRM/ISIZE DSIZETM "'RSRC/1,MUX/R.0Q,ALU/AND" ""ALU/NOTAND ,MUX/R.Q,RSRC/a1"" R. M, ~P"" “'RSRC/&1,MUX/R.S.ALU/OR,MSRC/a2,ROT/AS ,RSRC/a1"! “ALPCTL/WX_S,ROT/RR.RR.S1Z,VSIZE/1,DTYPE/WORD DTYPE/LONG:' "ALPCTL/WX_S.RSRC/@1,ROT/RR.RR.SIZ,VSIZE/1 ,RSRC/@1"" “ALPCTL /WX S,ROT/RR RR.S12,VSIZE/1,DTYPE/BYTE “'SRC/31,ROT/RR.RR.S1Z,ALPCTL/WX _S" . SR" T/RR ,MUR/M.S ALU/A+B+(] .MR .4 /MDR,RO "'RSRC/@1,MSRC "“ALU/XOR,MUX/R.Q.RSRC/81"" “MSRC/Q1, ALUXM/SIGN,MUX/ XM, Q,ALU/A-B-C]" Page . 127 : ; ; CMT098 . MCX MACRO.MIC MICRO2 1M(01) 28-NOV-83 16:30:35 Register Transfer Macros CLOKX Rev 13.00, Clock rate = 160ns Page 128 " "'ALU/ANDNOT ,MUX/XM.S ,MSRC/@1,ROT/ZLITO, LIT/LITRL LITRL/82" TYPE/WORD DSIZE,VSIZE/T,D OR,ISTRM/ISIZE LUXM/SIGN,ALU/ "MSRC/X8.PC_PC+],RSRC/ZERD,A 'NSRC/XB.PC_PC*],RSRC/31,ALU/A-B-CI.MUX/XM.R,ALUXM/SIGN.VSIZE/1, DTYPE/BYTE ISTRM/ISIZE DSIZE /MINUSi.MUX/XM.S.A[UXM/SIGN,ALU/XOR,DTVPE/BYTE,VSIZE/1, C_PC+1,ROT “MSRC/XB.P 15065 ;5066 ;5067 ;5068 15069 WB_SEXT(M[J),ANDNOT.ZLITOL] WB_SEXT(XB) PC_P(+2 WBTSEXT(XB)=R[J PC_P(+1 WB_SEXT(XB).XOR.MINUS1 PC_PC+1 ;5071 15072 ;5073 WB_SEXT(XB).XOR.MINUS1 PC_P(+2 wB_XB-R[1 PC_PC+4 'MSRC/XB.PC_PC+I,ROT/MINUS1.MUX/Xfl.S,ALUXM/SIGN.ALU/XOR.DTYPE/WORD,VSIZE/T, ISTRM/ISIZE DSIZE" "MSRC/XB.PC_PC+I,RSRC/@1 ,MUR/M.RT,ALU/A-B=CI VSIZE/1, ;5075 ;5077 ;5078 WB_ZEXT(ML]) WBZZEXT(ML])-R[] WBZZEXT(M[1).AND.R[] WB_ZEXT(XB) PC_PC+! "“MSRC/®1,MUX/XM.S ,ROT/ZERO,ALU/OR ,ALUXR/ZERD"" *'MSRC/@1.RSRC/22.MUX/XM.R,ALUXM/ZERO,ALU/A-B=-(1] , ] *MSRC/81,RSRC/82,MUX/XM,R,ALUXM/ZERO,ALU/AND"' DSIZE' E,1STRM/1S12E_ ZE/1,DTYPE/BYT ,RSRC/ZERO,VSI M/ ,MSRC/XB.PC_PC+I .R XM ,MUX/ R,ALUX ZERQ “ALUZO ;5081 WB_2EXT(XB)=R[J PC_PC+1 'MSRC/XB.PC_PC+1,RSRC/81,ALUXM/ZERO.MUR/XM.R,ALU/A-B-CI.VSIZE/1, DTYPE/BYTE,ISTRM/ISIZE DSIZETM “MSRC/XB.PC_PC+I,RSRC/@1,ALUXM/ZERD,MUR/XM.R ALU/A-B~CI ,VSIZE/T, :5074 ;5076 ;5079 $5080 15082 DTYPE/LONG,ISTRM/ISIZE DSIZETM ,VSIZE/1, ,ALU/A~B=C].RR.S17 WBZZEXT(XB)=(RT1.RR.16) PC_P(+2 *MSRC/XB.PC_PC+I,RSRC/@1,MUX/XM.S,ROT/RR DTYPE/WORD, ISTRM/1S1Z¢ DSIZE" ;5083 ;5084 WB_ZEXT(XB)-R[] P(_Pr+2 :2822 WB_2L1T0L1-M[] ;5087 ;5088 WDR_UNROT(M[],0R,ZLITe4Ll]) WDR_UNROT(RLD) ;5089 ISTRM/ISIZE _DSTZE'" Wx_TONX.SIZ j t ! DTYPE/WORD, ISTRM/1SI2E DSIZETM "MSRC/@2,ALU/B-A~C] ,MUX/M.S,ROT/ZLITO,CIT/LITRL LITRL/GT" LITRL/R2" LU/OR 1T24,LIT/LITRL, .UR,A ,MUX/M.S ,MSRC/@1,ROT/ZL *“W( TRL/WDR_WB O” C/Q1,ROT/ZER "WCTRL/WOR WB.UR.ALU/OR.MUX/R.S.R§R “ALUOD/OR.,TD,MUX/Z.S,ROT/CONX.S12" I ;5070 [ o e MACRO.MIC 1M(O1) Branching Macros .T0C ' 35092 (MITEMP3]-SL)BYTE RANGE (HECK? ;5095 ;5096 :5097 ABSVAL M[]<7-0>? ACLO FPLOCK? ADD1(FLAGD)? 15099 ALKC? :6101 :5102 ALUS? ALUS_UNSGN OLDALUS? ;5098 ;5100 ;5103 W= OO0 *BUT/FLAGO"" ALLOW INT? “'BUT/CCBR, CC/NOP, CCBR_ALUS ASCIT SIGN(MED)? CHECK? CHECK M[]? SIGN M[J)? SIGN.ZERO? SIGN.ZERO(DEF)? LOAD? BOOT(FLAG MMNOINT)? “'8UT/SRKSTA,ROT/BCDSWP ,MSRC/]1" S" BR, CBR_ALU CC/NOP, *'BUT/CC "'BUT/CCBR" , CCBR_ALUS' /CCBR CC/NOP, *'BUT ' T NOINT BU /MM *' *'8UT/BRA.ON.ADD"" OO0 NI "'BUT/CLBR,CC/CCOPT.CCB R SIGND"' *'8UT/CCBRT.CCBRO. IR0, 7 CCOP2.CCBR_SIGND' FLAGO? FLAGT (FLAGZ.XOR.FLAG3}? FLAG? FLAG2? FLAG3? FLAGSG? FLAG<1=0>? FLAGS2-0>? “BUT/FLAGO'' NR N OV COUNT OR INT FPA PRESENT? FPA(FLAGO)? FPD? TIMER? ' , “'BUT/BCDCHK" T/CVTNP'! ,RSRC/ZERO,RO MUX/R.S /A+B+C1.BCD, ,MSRC/81,ALU *BUT/BCDCHK "BUT/MM.NOINT! CMP SIGNS? , +BUT/SRKSTA,MSRC/@1,RSRC/ZERD,ALD/OR, MUX/M.R1,ROTSRK/ASCIISIGN, 073" EMODH(FLAG4L)? EXPONENT RANGE? CHECK INTERRUPTS? . “BUT/CCBR, CCMISCZALUSTUNSGN. CCBR_ALUS' WA BRA ON ADD? *BUT/WBUS317030,ALPCTL/WB_ALUF "8UT/CCBRY, INT=TS" B "MSRC/TEMP1,BUT/FRO.FLTZ" *'8UT/DBZ.SC" "BUT/DSIZE" ANV 129 "BUT/FPS3" "BUT/FLAGIT00"" "BUT/CCBR,CCPSL/CC_WB EEBR ALUS,LIT/LITRL,LITRL/@1,ROT/ZLITO,ALPCTL/WX_S"' ""BUT/CCBRT.INT=7S,VSI 76/1,BTYPE/LONGTM SIGNSTM (8 "BUT/CCBR, CCMISC/NOP CCBR.C *BUT/CCBRI. INT-TS" “'BUT/SRKSTA" "BUT/F1.X0R23"' “BUT/FLAG!"' ""BUT/FLAGZ"" "BUT/FLAG3"’ YBUT/MM.NOINT “'BUT/FLAGTTOQ"' “BUT/FLAG2TO0" "BUT/NC.FPA" “BUT/FLAGO" "BUT/FPD’ FPS1? Fpsg? “BUT/FPST'" FROLFLTZ2? “BUT/FRO,FLTZ" FPS3? Page /M, S , ALU/AND"" "'BUT/SRKSTA,ROT/MINUST,HSRC/@1,MUX ADD2(FLAG1) ADD1(FLAGO)? BINARY CLOKX Rev 13.00, Clock rate = 160ns *'8UT/SRKSTA,ROTSRK/VIELD.000"" DIVIDEND SIGN? DBZ STEPC? DSI1ZE? NN 1 1 (PL+SL).GT.32? BCD BCD BCD BCD BCD M 10 ''BUT/SRK3TA,MSRC/@1,MUX/M,S, ALU/A-B-Ci,ROT/SL" CCOP1 SIGND? CCOP2 SIGND CMP NOT,IRQ? €r_ZLITOLY ALUS? DD RO RS PO MU NI N AU MU N 1 1 1 IS IS £ 2 UM N N AN N A A A U PR R S T R A I O e N R R Ry AU LT VTU LA L LA L ALYb UeiUD oL unb AWV LTI T AT T LA LT VTL T b bk b 3 b d 3 ead e b b b =k i51 O O :51 TR :51 b b b b el ot b 2 3 T i 15104 ;5105 15106 :5107 1510 : }o 16:30:35 Branching Macros"' :288? ;2882 28~NOV=83 “BUT/FPS"" “gUT/EPS3" i : e MICRO2 {MT098.MCX ; e (MT098.MCX ; ; MACRO.MIC MICRO2 1M O Branchin~ {acros 28-NOV=-83 :g}zg GFLOAT(FLAGA)? “BUT/MM NOINT"! 15147 INTPEND OR TIMER? “BUT/INT=TIMSERV' ;5148 15149 ;5150 IP.TS(SIGND CMP)? 1p.1S? IR<2» 16:30:35 N 10 . , "'CC/NOP.CCBR_SIGND,BUT/CCBR1, INT=TS “BUT/CCBRT. INT=TS,(CMISC/NOP. CCBR_BRATST" '"BUT/1Re"’ "BUT/IRS" 15151 JR<5>? 15154 LOD BRA? 15157 MDR_GPR.R RNUM.EG.7? MDRTZEXT(OSR) BRATST? “BUT/CCBR, CCPSL/MDR_O3R,CCBR_BRATST" Eg%g? MICRO VECTOR? “8UT/UVCTR, CLKX/XTND" 15162 MM.ALLOW.INT? ;2}2% :g}gg ;g}gg :5}22 ;5 [R<2=0>7 LOD INC BRA? MM.NOINT? page CLOKX Rev 13.00, Clock rate = 160ns "BUT/IR.2T00"" "BUT/LOD.BRA" “BUT/LOD. INC.BRA"" YBUT/SPASTA,WCTRL/MDR_WB,RSRC/GPR.R,ROT/ZERD,MUX/R.S,ALU/OR"! "BUT/MM.ALLOW, INT*' “BUT/MM.NOINT' ;5165 MOPZERO (MULY XOR MULZ2)? MOPZERO(FLAGY)? "'BUT/FLAGT" 15148 MULT(FLAG?) XOR MUL2(FLAG3)? "BUT/F1.X0R23" $5171 Y5172 ;S};z M[] BIT24? MT1LEG.-12 M[1<31=16>.EQ.FFFF? 1" /! LITRL/ ND,MUX T24,LIT/LITRL, ,ALU/A .S, MSRC/@1,ROT/ZLI YBUT/WX.NE.O ,MSRC/a1,MUX/M.S,ALU/NOTAND,ROT/MINUST"’ , CC/NOF . CCBR_SIGND “BUT/CCBRO.SRKSTAD “BUT/CCBR,ALPCTL/WX_.NOT .S ,ROT7RR MM, S1Z,VS1ZE/1,DTYPE/WORD ,MSRC/@1,CC/NOP.CCBR_SIGND' $5175 ODD ADDRESS? :g];g OVER(FLAG?)? ;g}gg ;5 15176 15177 MUL 2 (FLAG3)? "BUT/F1.X0R23" “BUT/FLAG3" “BUT/CM.0DD.ADD"' OTHER UTRAPS? OPIERO(FLAG3}? “BUT/BUTXB" “BUT/FLAG3" 15180 Y5181 PL<4~0>.£0.0? PL<4=0>.£0.07 PL<5>? "BUT/SRKSTA"" 120" “BUT/SRKSTA,ROTSRK/PL.EQ.0.SIGN, ;2;33 PES>317 (PL#SL)>3¢7? “8UT/CCBRO. SRKSTAQ, CC/NOP. C{BR_ALUS ,ROTSRK/VIELD.012" ;g;gg . NOT.0<315? "5UT/WBUS31T030,RSNC/ZERD,MUX/R. 0, ALU/A-B=-C1.SR,ALUCI/ONE ,ALUSHF /ZERD"" 15187 5188 Y5189 PROBE READ MODE UN w87 PROBE READ? PROBE WRITE MODE ON wB? “BUT/UVCTR, CLKX/XTND,BUS/PRB.RD . MODE"" “BUT/UVCTR,CLKX/XTND,BUS/PRB.RD" “BUT/UVCTR.CLKX/XTND .BUS/PRB.WR,MODE"' 15192 15193 PSL<(>? PSL<IS.CURM>? “BYT/PSLC" "BUT/UVETR, CLKX/XTND,WCTRL/UVCTR_CM, 15" Y5196 PTE (HMSCk READ KERNAL? “BUT/UVCTR, CLKX/XTND,BUS/PRB.RD . PTE K" ’2{28 PTE (HECK WwRITE? "BUT/UVCTR, CLKX/XTND,BUS/PRB,WR,PTE"" N RN Y5182 4 ;2139 2}32 ;5197 POPIC(FLAGA)? PROBE WRITE? PS) <TP>? PTE CHECK READ? “BUT/FLAG2" TBUT/MM.NOINT" “BUT/UVCTR.CLKX/XTND,BUS/PRB.WR'" YBUT/PSLTP "BUT/UV(TR,CLKX!’XYND,BUS/PRB.RD.PTE" | :2129 ' 130 i CM7098 .M« CUWSeT EPR [ A [ Y PR AP PO T N mas P . TNAALA N TN NS N N AL N NN VLA N LN DA TN NN AN AN L AUV TV RSN O RURC NI NN AU NINLNU A PUNINI NPT L N N N R S N L A A PORURINIPURINU BN B L n L i L Al A ot o A A AN A P PO PP I DO MU MU b b b b o b 2 = 2 D QOO OO = O OO0 O N LS P = OO 00 O N ANy = O ANV = OO0 NN NN — O 0 O W SN MACRO . M]C MICRGe MO Branching Macros 28-NOV-83 16:30:35 g N CLOKX Rev 13.00, Clock rate = 160ns *ByT/((BR,RSR(/ZERDC ,MUX/R.0Q,ALU/OR,CC/NOP.CCBR_SIGND"' “BUT/WX.EQ,0,MUX/R,0,RSRC/ZERD,ALU/OR,DQ1/0_WXTM G S NEG? C IS ZERD? ‘BUT/wGUS31TO30,RSRE/ZERO,MUX/fi.0.ALU/A-B-CT.ALUCI/ONE” C.NOT IS 1CS? RG_RB+{ONX(2) RNUM,EG,7? "BUT/SPASTA,RSRL/RG . SPW/RLONG,ROT/CONX,S1Z,MUX/R.S,ALU/A+B+C],VSIZE/1,DTYPE/WORD" R7"M{) RNUM.EG.7? 'Bur/SPASIA,RSRc/R?.spw/RLONG.MSRc/a1,ALU/OR,Mux/m.s,Ror/zfno' REGINT(FLAG!) ADD1(FLAGO)? “BUT/FLAGITO0" RBS + OR - ? RBSP.EQ.0? READ(FLAGY) FRPA(FLAGD)? READ(FLAGY)? REG MODE? REGINT(FLAGY)? REI CHECK? RNUM.EQ,7? 'BUT/SPASTA" "BUT/SPASTA" “BUT/FLAGITOOQ" VBUT/FLAGL "BUT/REGMODE’ "BUT/FLAGY" “BUT/UVCTR, CLKX/XTND,w( TRL/RE | (HK ,BUS/REICHK'' "BUT/SPASTA,RSRC/GPR.R"" RD" /OR,MUX/R, S ,RSR(/31,ROT/ZE "BUT/SPASTA,MSRC/RNUM_WBUS,ALU RNUM_R[] IPR (HE(K? 5¢3=0>,NE,O? N. 063" “'BUT/SRKSTA,ROTSRK/BCDSIG SET v SIGND (MP? *BUT/(7BR,(CMISC/SETV,CCBR_SIGND'' SAMESIGN(FLAGS)? "BUT/MM _NOINT" SHIFT SIZE? SIGN(FLAGD)? ‘YUT/SRKSTA,ROTSRK/PL . EQ.0TSIGN. 121" “BUT/FLAGO"' SIGND CMP _NOT.IRO? SIGND (MP DEF? SIGND (MP? :BUT/CCBR1.CCBRO.IRO.(C/NOP.CCBR_SIGND“ .BUT/CCBR” BUT/(CBR,CC/NOP,CCBR_SIGND'" ) SL_D_SEXT(M[)> WwBRANGE? SL_ML) WBRANGE? "BUT/SRKSTA,ROT/PL,SL_wB,MSRC/@1,RSR(/ZERQ,MUX/XM.R,ALUXM/SIGN,ALU/OR,DQ1/D_wX"' *BUT/SRKSTA,ROT/PL,SL_WB,MSRC/@1,RSRC/ZERD,MUX/M.R1,ALU/OR"! "BUT/STACKFLG" "BUT/BR.S(=4, INT-TS"' ‘BUT/FLAGY" STACK FLAG? STEP(.GF,47 DELBY4 SUB(FLAGY)? TIMER? "BUT/INT-TIMSERY'' ] VACOS? VA_R6_RB={ONX{2) RNUM,FQ,7? R1 ALU/OR" *ByUT/WBUSO,MSR(/VA,RSR(/ZERO,MUX/M, *BUT/SPASTA,WCTRL/VA_WB,RSRC/R6, SPW/RLONG,ROT/CONX,SIZ,MUX/R, > ALU/A-B=C],VSIZE/T, DTYPE/WORD'" wB<9>? wB<1=0>? wB<1-0>.NF.0? WX<15-0>,NE.0? "BuUT/wBUSO" “'8UT/WBUS1T00" 'BUT/WBUS1TOO0.NE.O" BUT/SRKSTA" Wx<31=-16> ,NE, 07 wB<31-30>? WB<5=0>? ) WB_M[1+63 PL_31 WB<7>E0Q0? "BUT/SRKSTA'" "'8UT/wBUS311030" “'BUT/WBUSST00"" 'Buf/SRKSTA.MSRC6?15?9Q4TE§,ALU/A*B*CI.ROT/OLITO.PL_LIT.LIT/LITRL,LITRLISF.VSIZE/1. wCS DISABLED? WRITE(FLAGY)? "BUT/WCSENA"" “BUT/FLAGI" wx.E0.0? "BUI/UX.EQ, Q" wx(S12).£0.0? WX.NE.O? EXT(MID) EQ.UC Page “BUT/C(BRO, SRKSTAD, CC/NOP,CCBR_SIGND'' "ByT/WX.NE,O" “'BUT/WX.EQ,Q,MSRC/1,MUX/XM,R,ALUXM/ZERO,ALU/OR ,RSRC/Z2ERD" MICRO2 CMT098.MCX 28-NOV=-83 Ird and Dsize Rom Macros MACRC . MIC LT0C 1M(OT) " 16:30:35 cn (LOKX Rev 13.00, Clock rate = 160ns Page 132 Ird and Dsize Rom Macros'’ 1SET UP FOR NEVER (REF NOCREF NOCREF . 1CODE FPD (101 €3] Y0P/l ,FPD/<.SHIFTL <. ANDLSNEXT/@2>,3F81>,~3)>,FFOP/23, IRD(IE] [1L1] , <, 81>,-31> FPA/ ANDL<NEXT/24>,3F SHIFT[ <,RD1, “'IOP/@1,]RDV/<.SHIFTI<.ANDLNEXT/@2> 3F81>,-3 3>,1FOP/@3,I VFPD/<.EQLLO, VIRD1/<.EQLLO. <.AND[<NEXT/a2>,3C07J>, <.ANDL<NEXT/@2>,3C073>, FPD,FPA/<.SHIFTL<, ANDL<NEXT/Q4>,3F81>,-31>, <.ANDf<NEXT/&4>,3CO7J> <.ANDE<NEXT/84>,3(071> T 1> (NTOCICIC0D £3030] .0cope <,ANDLCNEXT/@3>,7FF1>, <.ANDE<NEXT/Q2>,7FF]>,CNTO MEM/ '0oP/ @1,CNTO.REG/ 1>, DLSKNEXT/Q6>,7FF FPA,MEM/<,AN ,7FF]>,(NTO. OFOP/@4,(NTO,FPA.REG/<.ANDLSNEXT/@5> J>" ,3800]> <.ANDL<NEXT/@5> , VONTO/<.EQLL 0, <. ANDL<NEXT/@2>,3800)> CNTI03030] C302L] <.ANDL<NEXT/@3>,7f F1>, <.ANDL<NEXT/Q2>,7FF1>,(NT1.MEM/ "10P/ @1,(NT1.REG/ 1F0P/4,CNT1.FPA REG/<.ANDLKNEXT/@5>,7FF1>,(NT1.FPA.MEM/ <, ANDC<NEXT/Q6>,7FF]>, VCNT1/<.EQLL 0, <.ANDL<NEXT/@2>,38001> , <.ANDL<NEXT/@5>,38001> 1>" . CCODE REG [1 [J 3 7FF]1>, “IRD1.REG/<.ANDLSNEXT/@1>,7FF1>,(NTO,REG/<.ANDL<NEXT/@2>,7FF1>,(NT1,REG/<.ANDL<NEXT/83> VREG/<.EQLL 0, <.ANDL[<NEXT/@1>,38001> , <.AND[<NEXT/@82>,38001> , <.AND[<NEXT/@3>,38001> I>" MeM [ L1 03 “'IRD1.MEM/ <. ANDLSNEXT/@1>,7FF]>, CNTO.MEM/ < ANDLSNEXT/@25,7FF 1>, CNT1 . MEM/ <. ANDL<NEXT /@3> 7FF 1>, VMEM/<.EQLL 0, <.AND[<NEXT/@1>,38001> , <.ANDL<NEXT/32>,38001> , <.ANDL<NEXT/@3>,38001> I>' ChE DLCD Si? FE1 .(RE£F JCREF .UCODE 030383008 "'081/81,082/82,053/83,054/94,085/25,056/26"" ;END OF NEVER CREF THE FOLLOWING WILL ALWAYS (REF 15287 .BIN TIEROZ (MTO98.MCX . NIT.MIC INIT.MIC 1M{01) ;5288 .10C "INIT.MICTM ;ggg? ; ;5301 ;5302 ;5303 ;530“ , 5305 15306 ;5307 wm e D nNDOQ —~Z [ N L TR T 15296 5297 15298 ;5299 15300 24 23 e v 15295 me 15294 e ;5293 Y 15289 15292 21 ;s Revision History" EXPLANATION Fix D M CLOKX Rev 13,00, Clock rate .T0C "REVISION 25.0" (. McDowell, Brian Allison, B. WARD 2C . the 2 changes made 16:30:35 28-NOV=-83 in Rev 24 . . REassign locations to get return -19 working called on is that Change BO.INIT_UBA_MAPS to be a subroutine . both'cold and warm boots. ) thange boot code to init the last 16 unibus addresses as net valid. (hange boot code to make B/number work without specifying the device, 29-MAY-1980 ) . . Fix INIT code to invalidate 1st two Locations in the 1B, Turn oft the cache when doing memory test for booting. Initialize the UNIBUS in the INIT code. | (lear TUS8 control and status registers in INIT. Add BUS/PRB.RD.PTE to avoid machine hang clearing TB and CACHE. Initial release, $5308 JBIN 160ns Page 133 _ U 0819, 0400,0036,4030,0047,0481,F u 0818, 0489,0036,4030,0047,0080,1 U 081C, 0C80,0036,4030,0047,0562,C NN — OO0 3 b e = Dl — N ES AN = O 0 00 NN N =3 e AN = N0 00 N NN INIARI N PO RO NN PN NV R LR T R AL I R O T T U 0801, 0080,0036,4CB0,0047,0081,9 I T . _ U 0800, 0186,0010,0430,0843,0880,0 384+ LU U 080F, OD86,0D37,0030,4043,0080,0 L U 0000, 0480,0036,4030,0043,0080,F N N AN N AN AN A A INIT.MIC 28=NOV~83 1M(01) N A N N N NN U Power Up i bataunuaunvnua i L v il Ll H MICROZ (MT098.MCX LA L L AN LA A AT O A ‘ U 081E, 0580,0037,0030,1487,0080,4 : Power Up The microcode waits 70ms for machine stabilization and then ; ; procedes when A(LO is deasserted. . how to start up VMS. '*k****k***k******************k******************t**w****tt**************k**** BO.POWER_UP: * - 10 RESET, T o o om0 NOP MCTEMPOI_ZLIT16[82, 10 RESET s N R T * DO 10 RESET FOR 70MS * GET COUNTER FUR 70MS WALT * DO I0 RESET FOR 70MS MCTEMPOI_MB-2L1TO[11, 10 RESET; WX.EQ.07 . NEXT/BO,70MS_WAIT =001 3348 ACLO FPLOCK? =011 15348 =100 : DEC COUNTER * DO I0 RESET FOR 70MS ; { ¢ CHECK ACLO * ARGUMENT FOR SUBROUTINE : GO CLEAR COLD START FLAG ;01l===-=mmmmmmmmmmmmm e ; i ;100==========-c—=m—mmcemmmeeeee ; | NEXT/BO. TEST_ACLO PUSH,NEXT/MV, TEST P WAIT FOR AC TO STABALIZE * DO MICRO VERIFY P —— ; 15352 RCRS51_0, * CLEAR BOOT CONTROL FLAGS 939 PUSH,NEXT/IN, INIT ;DO INIT 13358 i 001===---==-==mm=m=—e—mmmm—m——= : ACLO OK CLEAR FLAGO, PUSH,NEXT/B0.COLD_START_FLAG 15345 15357 | =0 15341 15356 | ' FOR RDM BO. 70MS_WAIT: 000 15353 , The microcode then tests the front panel switches to determine : }§§zg 3360 ! i ;**********k**itt**tt**k*tt**t***t*****t***kfit*t*k********kk************i****fi The hardware forces control to micro location 0 on power-up. BO.TEST_ACLU: 3306 : | . CHANGE/INIT=1 . :g%%g 15342 ; : Power Up"' Power Up H Page 1341 CLOKX Rev 13.00, Clock rate = 160ns LREGION/INIT.RIL,INIT,RTH/INIT . R2L,INIT.R2H/INIT.R3L,INIT.R3H 15334 5335 15351 y 081D, 0814,0587,0035,4047,0487,9 .T0C 16:30:35 i E 1 CLEARTFLAG2, * TELL INIT TO INIT SCBB ;110=mmmmmmmmmmm e m oo ; PC_ZLITOL?], FP317,NEXT/B0.ACTION_SWITCH * SO THE CONSOLE WILL PRINT 0 ON HALT : CHECK BOOT ACTION SWITCH | | i MICRO2 CMTOS8.MCX Power Up INIT.MIC 1M(01) :5360 U 0802, 0884,0587,0035,4047,0080,6 15361 :g%g% 28~-NOV-83 =0000 =0010 :5364 U 0803, 0586,CC37,0030,8847,0000,1 U 0804, 0084,(592,4037,0047,0487,4 15374 U 0805, 0084,(592,4037,0047.0487,4 U 0806, 0881,.0%,4280,0047,0080,¢ _ U 0807, 0D86,CC37,0030,8047,0000,1 BO.RESTART_HALT: ;0701 -~ mmme e ccs e RCR121 MCFPDOFFSETY, n e ; RESTART/HALT * LOAD HALT CODE INTO AP * GO GET RPB PUSH,NEXT/BO.F IND_RPB_SUB BG.BOOT: ;0110 == —mmmm WB_RNUM, 15380 ;g%g; e e e e ; BOOT * TEST FLAG FOR /X COMMAND 15383 WBZ0>?,NEXT/B0.BOOT1 * (RUNM BIT 0) 0=NO 1=YES e m s oo o ; HALT 011]=mmmm ;g%gg NEXT/CN. CONSOLE * SET HALT CODE MCFPDOFFSET]_ZLITOL163, 15384 * AND LET THE USER DECIDE WHAT TO DO :1000==========mmmmmmmmomeeema ; WB_M[MDR], WBZ0>7,NEXT/B0.R=-B_WARM_CHECK 15388 ;gggg $5391 U 0809, 0881,2592,4280,0047,0080,A * GO GET RPB PUSH,NEXT/BO. F IND_RPB_SUB 15387 U 0808, (881,2592,4280,0047,0082,2 * AND GO TO CONSOLE e : RESTART/BOOT mmmm oo mme ;0700 =cmmm * LOAD HALT CODE INTO AP RCR12]_MLFPDOFFSET], ;gg;g 15378 * SET HALT CODE BO.ACTION_SWITCH: 15375 ;5379 * DO A COLD START NEXT/CN. CONSOLE ;gg;; $5373 ;0010=====-smemmememmmmn——————— ; CLEAR BOOT CONTROGL FLAGS RLR51_0,NEXT/B0.BOOT MCFPDOFFSET] ZLITOL11], ;gggg 15369 15370 : CHECK WARM START BIT : 100]=====m=mmmmmmmmemecemenooee ; 15392 WB_MIMDRJ, ;gggz WB<0>?,NEXT/BO.R-H_WARM_CHECK * : CHECK WARM START BIT 15395 =0 15396 15397 , v 080A, 0186,5DB1,0030,1047,0088,D _ , U 080B, 0586,C(37,0030,9047,0000,1 N U 0823, 0884,0587,0035,4047,0080,6 ;0=Tmmmm oo ; MLTEMPS] D+ZL1T8L2], :5401 P 15402 ;2298 15411 15412 15413 e MCFPDOFFSETI ZLITOL12], :2282 15408 : GET STARTING SP : NEXT/B0. RESTART ;2283 15405 U 0822, 0186.50B1,0030,1047,0088,D BO.R-H_WARM_CHECK: 15398 ;gzgg Page $0077====ommemr oo ; 15365 15368 16:30:35 : Power Up CLOKX Rev 13.00, Ctock rate = 160ns 1 ; F 11 NEXT/CN.CONSOLE L Lt : * SET HALT CODE * AND GO TO CONSOLE = B0.R-B_WARM_CHE CK: MCTEMPS] D+ZL1T8C2], NEXT/BO.RESTART * GET STARTING SP : BO.BOOT.(LR.FLAGS: lmmmmm=meemmmmme—sem——m—eeoeeee : CLEAR BOOT CONTROL FLAGS RLRS51_0,NEXT/B0.BOOT : DO A COLD START i 135 : 28-NOV-83 080C, 0C80,0036,4030,0047,0562,C 080D, 0054,05B7,0034,0047,0487,9 080, 0780,07F8,6BFF .F847,0081,1 0811, 0C86,05BE,403D,4047,0082,E 082F, 0484,0592,64034,4047,0482,8 i 082f, UBB0,07F8,00FF,F847,0081,3 9] 0813, 0(86,058E,403D,4047,0081.8 U 0818, 0(84,0592,4(F4,8047,0081,4 v o P N e 0BAQ, 0(80,2002,403D,8487,0083.1 N I T TR TR EE T LU uiuaiuiviuiun v i ol g 0BBD, 0484,5592,4037,8047,0483,9 B S N T N e bl R A S AN AN A RO N PO PO N RO RO NUNO N = — 3 3 3 NN 2 OO 00N WS WD 2 OO0 IOV B~ MO MICRO2 Power Up 088D BO.RESTA 16:30:35 : Power G 11 Up CLOKX Rev 13.00, (tock rate = 160ns RT ,hkkkkkxFORCE ADDRESSH¥ssxxwkkxx, R[SPJ MLTEMPS], USH,NEXT/B0. INIT_UBA_MAPS 0BAO: suxkxxxnf QRCE i ADDRESS*kmxxdshnn PC_MLTEMP2], : LOAD STARTING SP INIT UNIBUS MAPS POINT PC TO RESTART ROUTINE H GO DO THE IRD1 NEXT/BO. IRD1 =00 BO.BOOT1: DO MICRO VERIFY PUSH,NEXT/MV.TEST R H DO INIT : TELL INIT TO NOT TOUCH SCBB : BOOT UNIT NUMBER PARAMATER PUSH,REXT/IN. INIT ; B SET FLAG2, RCR310, : LOAD DEFAULT MBA ADDRESS {ONLIT_L0F 280003 [TEMPO]_RLLONLIT] RIR1I_MLTEMPOT, PUSH,NEXT/B0.BOOT_SUB ) : MOVE LUNLIT TO A USEFUL PLACE : LOAD MBA ADDRESS : CALL BOOTSUB ADDRESS OF UNIBUS 1/0 PAGE MCTEMPOI_RCLONLIT) : PUT {ONLIT IN A USEFUL PLACE ReR21mCTEMPOL, : LOAD ADDRESS OF UNIBUS [/0 PAGE FPS2? ; BUT ON B0OT DEVICE SWITCH Page 136| 0816, 0D81,ADD1,0030,8487,0081,7 Y ¢ 16:30:35 Power Up CLOKX Rev 13.00, Clock rate = 160ns 1 PC_MIPCI+ZLIT4L30], - NERT/BO. CHECK_ROM —ONOW NN 1. TS, 1V 1V, | ceninenann, 0,1V, 1,10, (U, 1V, 1V, ] 0815, 0081,AbD1,0031,0487,0081,7 =00 POINT PC TO RIGHT ROM m oo mmmmm e ;10ms PC_MLPCI+ZLIT4L10], POINT PC NERT/BO. CHECK _ROM B0, CHECK R?M U WB SEXT (XB) .XOR.MINUST WXTNE.0? 0817, 0081,7E5F,4A50,2047,0083,0 =00 NEXT/CN.CONSOLE BO.IRD1: 0832, 0080,0036,46030,0047,0072,2 C TO RIGHT ROM A CHECK FOR NON~EXISTENT ROM mm neen mmmm s mecncne 100==m=m MCFPDOEFSETI ZLITOL14], 0830, 0986,CC37,0030,A047,0000,1 0831, 0586,C€37,0030,0047,0681,A PC_P(+2, $ 0] mmmmmmmmmmmmmmmmmo e meeees MCFPDOFFSETI_ZLITOLOT, PASS 'NO ROM' ERROR CODF PUSH,NEXT/BO.IRD1_SUB DON'T CONFUSE CHARLIE WITH FPDOFFSET DO SUB CALL FOR RTUT RETURN B RNEXT/CO.NOP WASTE A CYCLE AND THEN IRD1 C. 80.IRD1_SUB: 081A, 0C80,0036,40F0,0047,0000,1 page 137 D POINT PC TO RIGHT ROM P PC_MLPCI+ZLIT4L201, NEXT/B0. CHECK_ROM (e Yo t 0814, 0981,A0D1,0031,8487,0081,7 28-NOV~83 M1 P S U Power Up [V, IV TV IV I INIT.MIC MICROZ R R CMT098 . MCX . H 11 RETURN AND INHIBIT DESTlNATIONS.. NEXT/1 TELL THE HARDWARE ABOUT PUWER UP FORCE A RETURN +1 , ; MICROZ CMTO098.MCX INIT.MIC Power Up U 081F, 0980,0037,0036,0267,0082,5 ) jU 0825, 0086,6036,4430,03E7,0172,8 TM(OD) ,2286 Egzgg U 1729, 0180,6D12,0A34,0047,0085,0 J 0850, 0D86,CL37,0030,A847,0000,1 15499 b 1728: 15507 ;5508 m——— e meme e : * GET_CURRENT CONTENTS OF CSR ¢ TEST FOR SET OR CLEAR COLD BIT ;Oxxx*x*FORCE ADDRESS**x*xxxxxx%; CLEAR COLD START BIT TUSBREGS_MUTEMP6].AND.OLIT16L17F],; RETURN [3) 1729: ;gggg 15502 ;5503 ;gggg : ADDRESS TUS8 CSR FLAGO? ;gzgg 15506 J 0851, 0180,6D12,4084,02E7,0000,3 { e MLTEMP6]_TUSBREGS, ;223% Y5498 CLOKX Rev 13.00, Clock rate = 160ns TRAR_ZLIT16L0C0] :5490 15495 : Power Up " BO.COLD_START_FLAG: 5491 15494 U 1728, 0980,6F12,008B,FAE7,0000,3 28-NOV~83 16:30:35 ;1x*xx+xFORCE ADDRESS**wk&xakkkk; WB_MCTEMP6].AND. ZL1T160801, WX7EQ.0? =0 ; : ; TEST COLD START BIT e e T; MCFPDOFFSET] 2LITOL15], s SET HALT (CODE : AND GO TO CONSOLE NEXT/CN.CONSOLE O ottt ; SET COLD START BIT TUSBREGS_MLTEMP6].0R.ZLIT16L801,; RETURN [3] ; Page ‘ 138 MICRO2 Boot CMT098.MCX INIT.MIC ; 1M(01) U 0833, 0086,058E,603D,84A7,0085,2 U 0852, 0D86,1DB7,0032,0047,0083,4 A i U 0853, 0186,(37,0030,9847,0000,1 "i*i*tkfi*kk*tk**fltttkt***t'k*«*t********'kt*t***t********t**iz*******i*****fitt*** ;2212 80.800T_SUB: . U 0834, 0084,073D,0020,0480,0083,7 721: R KR AR KRR AR R R R Ak kA A 7DD * LOAD ADDRESS OF CACHE DISABLE REGISTER sxwxkxxkxxFORCE ADDRESS*xxunkxka; B e * DISABLE THE CACHE FOR MEMORY TEST. e 0 Egggg 15530 BO.START_SEARCH: cremp13 2L1T8L407, VA_B_MCTEMPOJ_RLZERO] L L SEE ; NEXT/BO.INITIAL _READ ;5534 ;gggz NEXT/CN. CONSOLE U 0836, 0480,0036,4030,0047,0084,6 * NUMBER OF WORDS TO READ (64K) ; ; SET UP HALT CODE : BO.DEC_WORD_COUNT: 15539 MCTEMP1]_MB-ZLITOL1], ;ggzg 15502 =00 WX.EQ,02” " DEC "'WORDS LEFT TO READ'' COUNT 64K FOUND??? BO. lNJTJAL READ: 15545 READ,S1ZECLONG], : ACCESS A LONGWORD 15547 NERT/B0.DEC_WORD_COUNT * IF THIS READ FAILS CONTROL WILL BE 15546 VA R[TEMPOJ RB*CONX(L) 15548 : POINT ADDRESS TO NEXT WORD * PASSED THROUGH SLOT 2 OF MACH CHECK : DISPATCH TABLE 15550 U 0835, 0485,273(,0020,04A7,0082,C * STARTING ADDRESS FOR READS L L L; M[FPDOFFSETJ L1T0L13], 15549 ) Ak d ko kh ke wk CLAIM DISPTACH SLOT 2 ON MACH CHECK MEMSCR_ZLIT24[1] LT S ARk sxxxnxkkwxFORCE ADDRESS*ataxask¥; ;gggg :ggg} KA KRR AR K INIK A AR KRR AR MEMSCAR_IL1T24L63 Egggz 15525 R MCFPDOFFSETI_ZLIT28[28] }gg;g .ggzz . MR }gg}g Egggg U 0837, 0586,1C10,0A30,0847,0883,4 384% : Boot Sub'’ Boot ' :'5511 Eggg; U 07DD, 0D80,0CB7,0030,0£07,0083,3 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 ¢ Boot Sub 28-NOV-B3 .T0C Egg%g U 0721, 0D80,0CB7,0030,3687,007D,D Page 139 ;gg?g 25512 U 0828, 0186,(C77,0031,4047,0072,1 ; J 1 15557 ;0lom=—es—cececamcmcosmammnemaan ; 5559 VA_RITEMPO] RB-CONX(4), * POINT ADDRESS TO HIGHEST WORD READ ;gggz MB_MIMDR],NEXT/BO.WRITE_ZERO 18555 ;;ggg 10me=memsemmecmem—ecmeeseee ; NEXT/BO RESTART_SEARCH1 ¢ CATCH MACHINE CHECK RETURN ) : GO START TESTING HIGHEST WORD Boot 1M(01) ;5558 0828, 0580,0037,1030,0847,0083,A 082A, 0480,0E77,1020,05D8.,0487.1 ;5559 083A, 0080,003A,402D,85D8,0487,1 u J 0838, 0980,0€E37,103F ,F047,0083,F . 083D, 0880,0339,9280,8047,0883,E 355« 083F, 0986,5D81,0030,1047,0483,9 . . 083F, 0080,003A,402D,8508,0487,1 ] 0839, 0906,C(77,0032,4047,007D,E 07DE, 0980,0C8B7,0030,0607,0083,( ) 083C, 0880,07F8,678F ,F847,0084,3 A ;5566 =100 BO.WRITE_ZERO: ; WRITE -1 AND LEAVE IN Q FOR READ SUB (RETURN -2} ; CALL READ SuB Q -1.WRI tSIZECLONG], POSH,NEXT/BU READ_SUB 3100 Q_RCZEROI,WRITT,SIZELLONG], 25568 ;gg?g POSH,NEXT/BO. READ SuB 00 ; WRITE O AND LEAVE IN Q FOR READ SUB (RETURN =2) CALL READ SuB ; ;00=mmmomm oo : . WALK THE ONE 0_(RCZERNDI+Q).SL.1, * LOOK FOR 1 WALKING OFF HIGH END WX.EQ,0? ;5573 :g;;g 10 ;5576 ;5577 BO.WRITE ¥ALK1 - - T . ; WRITE THE WALKING 1 WRITE Q,SIZELLONG], ;5578 ;5579 ;5580 ; CHECK THE WRITE (RETURN -2) PUSH.NEXT/BO.READ_SUB ;1] mmmmmm——m e m e A ————— 0 _OLITOL1FE], :5582 15584 ;5585 : GET STARTING 0 TO WALK ; NEXT/BO.WRITE_WALKO 15583 15586 m; oo oo §01mmmmmmm Q (RCZERDJI+Q).RR.1, ; ;5588 ;5589 :5590 MLTEMPS]_D+ZL1T8L21,PUSH, WwB<0>? ;5587 : m m e memmmnen mmmem oo ;10mmmmmmm NEXT/BO.INIT_UBA_MAPS 15591 25592 ;5593 15594 :5595 ;gggg BO.WRITE NALKO ;5598 ;5599 BO. INIT_UBA_MAPS: o T " S 15603 ;5604 ;5605 15606 5607 :5608 GO WALK O Q<~-FFFFFFFE WALK THE ZERO ONE NOTCH TEST FOR COMPLETE WALK ; ; PODINT SP TO BOTTOM OF 2ND GOOD PAGE INIT UNIBUS MAPS (RET =19) ; WRITE THE WALKING O - UR]TE Q,SIZECLONG], ; PUSH,NEXT/B0,READ_ sus CHECK THE WRITE (RETURN -2) ~-----------_--_--------—------- MCFPDOFFSET]_ZLIT28(48], : 5600 ;5601 ;5602 140 Y GET INITIAL 1 TO WALK ; =010 15563 :gggg S S - = - - Page Clock rate = 160ns NEXT/BO.WRITE_WALK1 25581 U ;000 Q_2L1T0L1], ;5562 ;5571 ;5572 0838, 0480,0039,DA3D,8047,0883,A 362* =000 ;ggg? ;5567 082C. 0480,058E,5020,8508,0487,1 K 1 16:30:35 CLOKX Rev 13.00, : Boot Sub 28-NOV~83 CLAIM DISPATCH SLOT 4 ON MACH CHECK FLAG TO CONTROL LOOP EXECUTION ~ CLEAR FLAGO 70E: cxxxnsxtxxfFORCE ADDRESSwaaxassnn; o o e oy S e by T Oy S W ¢ W + . - T LONLIT_LOF30800] Y v T : RE-ENABLE THE CACHE AFTER MEMORY TEST, ; ADDRESS OF FIRST UBA Y I INLIT . MIC MICRO2 nn (MTO98.MCX MICTRO2 (MTO98.MCx Boot INIT.MIC 1M(G1) ;gz%g 16:30:35 28=NOV~-83 .T0C N1 : Find RPB Sub " Boot 25519 JRRAREIIRIRRRRINR®T 4 o :g;gl BO.F IND_RPB_SUB: ;5720 CLOKX Rev 13.Gv, Clock rate = 160ns ¢ Fird RPB Sub" A AR AR R AR KRR AR R R R AR KRR A KRR R kR :tt**t*kttkttkttw*ti«t\xt«*ttfi*tt*ti*tt*t***t***t**tut***k*wk*w***k*****iitflw* ' CLAIM DISPATCH SLOT 5 ON MACH CHECK U874, 0D86,LC77,0032,6047,0087,5 22;52 MCFPDOFFSETI_2L1728(58] 0875, 0CBO,05BE,703%D,84A7,0085,6 :5725 ;g;gg e ——— e ; : STARTING ADDRESS FOR RPB SEARCH VA_Q_D_RCZERO] E%gem%wj?jflfim 15730 0856, 0D86.1C37,0020,F(50,0085,8 0857, 0880,0036,40B0,0047,03FF,E ‘ 0858, 0481,2008,0A30,0047,0885,A 344% 0859, 0080.0036.4030,0047,0087,8 , 085A, (180,0DB1,3030,14A7,0087,8 15733 15734 * GET FIRST WORD OF RPB (MAYBE) NEXT/BO, CHECK_RPB * PASSED THROUGH SLOT 5 OF MACH CHECK : GET CHECKSUM COUNTER " IF THIS READ FAILS CONTROL WILL BE : $303 E§;§g DISPATCH TABLE . RETURN [=2] Egzzg BO. CHECK_RPB: Y RETURN WITH FAILURE 15741 WB_PTMDRI-Q, * CHECK FOR START OF RPB 15744 R :57 ! ;g;zg etttk ket teedtabalet H WXTEQ.0? ,NEXT/B2.BAD_RPB ;2322 i 5707 B0.BAD_RPB: ;2;2? :5752 0858, 0885,058¢,4020,8050,0085,( READ, SIZELLONG], METEMPII_ZLITOLIFD, VA_VA+4, 15731 15732 15748 15749 15753 15754 15755 e L LL b L L NEXT/BO0.BAD_RPB1 : LDl ; : CATCH THE MACHINE CHECK T : BAD RPB (TRY AGAIN) VA_Q_D_D+ZL1T8[2], ¢ POINT TO NEXT PAGE NERT780.BAD_RPB1 f1omms ; oo e ; READ,SIZELLONG], METEMPO]_RLZERO) 15756 * GET STARTING ADD OF RESTART ROUTINE * INIT RPB CHECKSUM ACC " IF THIS READ FAILS CONTROL WILL BE ¢ DISPATCH TABLE : PASSED THROUGH SLOT 5 OF MACH CHECK 15757 15760 Page 11'3, VA_RLTEMP2_MCMDK], * SAVE STARTING ADD OF RESTART ROUTINE j DRSC, 0485,2592,4470,86A7,0085,E 15761 ;g;g% WXTNE .07, NEXY/B0.CHECK_RESTART_ADDRESS © MAKE SURE IT'S NOT 0 085D, 0C80,0036,4030,0047,0087,8 15764 15765 (lmemmemem e ——————— ; NEXT/B0.BAD_RPB1 © CATCH THE MACHINE LHECK MICROZ TMTIGB. MIX ; Boot INLT MDY B . B 12 (LOKX Rev 13.00, Clock rate = 160ns 16:30:35 = 28~NOV=83 TM(OM) : Find RPB Sub Page 144 ' DRSE, L IB(,N036,4030,0067,0085,4 L uBSE, D48U,U036,4030,0047.0086,2 NN 15766 15767 15768 15769 15770 ;5771 e Eg;;g : v JBOC, (08%,2001,0030,0047,0087,6 wHeY, UC8U,0036,4030,0047,0087,8 } , ' UB76, U386,1(10,0430,0847,0886,2 384+ ; TRY AGAIN 1 ; s ADDRESS OK NEXT/BO.READ_RESTART_ROUTINE RETEMPO] MIMDR)+RB, 15779 P ; | NEXT/B0.BAD_RPB1 ' CATCH THE MACHINE CHECK BO.DEC_CSUM_COUNTER: i MCTEMP1]_MB~ZLITOL1], * DEC NUMBER OF WORDS TO CHECKSUM WX.E0.0? i ALL DONE 15789 READ,SIZECLONG], * START READING RESTART ROUTINE 15791 NERT/BO.CSUM_RESTART_ROUTINE & IF THIS READ FAILS CONTROL WILL BE 15790 VA_VA+4, 15792 - _ S U877, C88L,0036,4020,0450,0086,4 , (i 0864, 0081,2000,0A30,0047,0886,6 345+ U 0865, 0080,0036,4030,0047,0087,8 U 0866, (C80,0036,4030,0047,0085,4 U 0867, 0C80,0036,4040,0050,0000,4 T 15799 :5800 TP R LR L; =0 ittt Y IF THIS READ FAILS CONTROL WILL BE iviagtriatatalabe bbbl bl : WB_MIMDRI-RLTEMPO], { CHECK CHECKSUM WXTEQ, 07, NEXT/BO. CHECK_CHECKSUM ; {lmmmmemcecacsesaie R CEEERETEY :gg}? o Egg}% BO. CHE LK_(HE CKSUM: NEXT/BO.BAD_RPB1 : CATCH THE MACHINE CHECK Egg}g NEXT/80.BAD_RPB 16816 ileccccccecccannannnnn cnemmmaenn ; 15818 15819 15820 ; : READ CHECKSUM WORD * POINT VA TO WARM START BIT * PASSED THROUGH SLOT § OF MACH CHECK * DISPATCH TABLE ;gggg ;5817 : ; GET ADDRESS OF CHECKSUM WORD READ,SI2ECLONGI, VA_VA¥4 15801 $5809 a * PASSED THROUGH SLOT 5 OF MACH CHECK VA_D+2L1T0C8] :5798 $5805 i P P ; ALL DONE READING RESTART ROUTINE ;2;39 $5806 ; ; DISPAT(H TABLE 15795 15802 :5803 15804 ‘ * POINT 10 NEXT WORD ;2;82 .~ 0863, 0180,0031,0030,46A7,0087,7 , PSR ——memmm——— m———— Eg;gg BO.READ_RESTART _ROUTINE : |5 0862, 0UBC,0036,4020,0450,0086,0 i ? DO CHECKSUM NEXT/B0.DEC_CSUM_COUNTER ;g;g? :g;gg e B0. CSUM_RESTART_ROUTINE: ;g;;g 15784 Y &EXT/BO.BAD_RPB 15776 Egggg _— R - READ,SIZE[LONG], RETURN [+4] ¢ CONTINUE LOOKING ; CET WARM START BIT P IF THIS READ FAILS CONTROL WILL BE : PASSED THROUGH SLOT 5 OF MACH CHECK . DISPAT(H TABLE = 28-NOV-83 1M(01) 0 €0 G0 00 O 00 00 CO00 000 W rorONO NI rONUNONY R DR [V, IV, YL LV, AW LV AV IV [V “evemanae. U 0878, 0581,8D12,0A74,0047,0085,6 =t D OO0 NN AN DN s MICROZ Boot 0, [V, | MOX 1C 16:30:35 : c 12 CLOKX Rev 13.00, Clock rate = 160ns Find RPB Sub B0.BAD_RPB1: WB_MCVAJ.AND,ZL1T16(807, Y SEE IF BEYOND PHYSICAL MEMORY YET WXTNE.O7 .NEXT/B0.READ_RPB_HEADER; . CRANGE/INIT=0 P awnxaxnxsnn THIS WORD GOES INTO MACH CHECK DISPATCH TABLE SLOT #5 : ; H VA 0 D_D+IL1T8L2], RETURNTL[+1] fhkkkhkhkhhki " POINT TO NEXT PAGE ; Page 145 ; : (MTO98.MCX INIT.MIC MICRO2 CRO2 1M(01) 28-NOV~83 16:30:35 b 12 CLOKX Rev 13.00, Clock rate = 160ns Initialize Microcode for the (onsole and Power up ;gg%% ,TOC :'5834 :***********k******kk*fi*ttttfi*t*i*i*t**wA‘k***tt***t********t*****ltk***t*l*fitfl'i ;5835 ' Page : 146 ; Initialize Microcode for the Console and Power up'' INIT.MIC | | i INITIALIZATION 1S CALLED BY THE CONSOLE AND AT POWER UP. LONLIT FLAG2 CLEAR IF POWER UP i i ;5839 FLAGO WHETHER OR NOT POWER UP : :5841 DREG .5836 ;5837 RESOURCES ;5838 SET IF CONSOLE ;5840 ;58642 ;5843 CRAR ; QUTPUT ;5844 15845 ;5846 ;5847 ;5848 ;5849 ;5850 ;5851 ;5852 ;5853 ;58564 ;5855 ;5856 ;5857 VA PSL 1PL oces ASTLVL SISR FPDOFFSET ; “+ RC3R wx XCSR<6> ; PME CACHE 8 *xx ICCS PC 41F0000 XB SUBROUTINES ;5862 0 0 0 (SET WHEN PRINIT) 0 INVALIDATED INVALIDATED 0 0 FUSHED WHEN PC_O 0 SOFTIPR PROCESS INIT IS ALSO DONE IN.CLR.CACHE.ROUT CLEARS THE CACHE MP.MTPR.TBIA20 CLEARS THE TB ;5864 ;xx ] ASSUME RXCS IN THE SRM IS THE SAME AS R(SR IN DEFIN ;ggg; H 15865 ;5866 ;5869 ;5870 ;5871 '5872 AND AND AND ! 1F =1 (AT POWER UP UONLY) 4 0 3 k% MME ;5858 ;5859 ;5860 ;5861 586, f TXCS IN THE SRM IS THE SAME AS XCSR IN DEFIN MAPEN IN THE SRM 1S THE SAME AS MME IN DEFIN ICCS IN THE SRM IS THE SAME AS TCSR IN DEFIN, A PROCESS INIT BUS FUNCTION IS DONE. EVERYTHING ELSE MENTIONED IN THE SRM SECTION 9.7 1S EITHER INITIALIZED BY THE HARDWARE OR UNPREDICTABLE. ;kt&tkkt**’(*******‘l*'(*****k**t**kt**t***t**iik*****ttt**********************t ! ! l i | i| ! :; ; E 12 CLOKX Rev 13,00, Clock rate = 160ns 28~NOV-83 16:30: 35 MICRQ2 TM(OD) Initialize Microcode for the Console and Power up CMTO98,MCX INIT MIC ;5873 ;5874 0879, 0F80,07DF,07FF,F847,0087,C :gg;g :5880 0878, 0080,05BE,408D,8487,0000,1 087C, 0880,05BF,403D,4007,0086,8 PC_RLZERO], OBEE, 0(80,05BF,403D,84A7,0084,8 =0 15898 15899 ] ) 0848, 0598,0037,0032,0257,04E4,( 0849, 0908,0CB7,2034,04B7,04E4,C OBEE: :5909 =00 ;5913 ;5914 :5915 :5916 25917 ;5918 15919 ;235? 084A, 0480,05BF,403D,82(7,0484,D ) 0848, 0080,0587,0030,0787,0087,D ;5923 ;gggg ;5926 ;5927 H ;CRAR GETS 2 sNOW IF WE CONWRITE JWE WILL WRITE TO RXCS et ettty ; DEC STEPCTM ;5906 ;591 15912 e e; ;JSR CONREGS D_MCSISR]_RLZERO], ;gggg 25922 U o Rt ;5903 15910 0mmmm e PUSH, STEPC 2, CRAR_ZLIT16[801], NEXT7IN,PC_O :5900 ;gggg JRETURN+] sPSL GE1S LONLIT PSL_RCLONLIT] ;ggg% 15902 U ;AVOID MACHINE HANG CLEARING CACHE ;VA GETS O IN.PSL.LONLIT: 25901 0869, O89E,F5BE,&03D,.82(7,008E,E COMPLETE (PU BUS CYCLES, VA_RLZERO], *RETURN+1 RETURN [11 ;5897 0868, 05A0,0037,0034,0247,0487,A JFOR CHARLIE'S CLEAR TB SUBR IN.VA_O: ;53%3 ;5894 ;5895 ;5896 PC GETS O CLEAR FLAGT, RETURN [1] 15886 5887 :ggg? ;6G0TO REG FLOW IN.PC_O: 0007 eemectecmmcemcmmccen oo ce ey ;ggg% 3h JLONLIT GETS 41F0000 NEXT/IN.PSL.LONLIT ;5881 :gggg 147; jmmmemmss———eemeeeeec—ccoc—ooooo : {ONLIT [41F0000], ;5875 ;5878 15879 087A, 0008,05BF,408D,8487,0000,1 INLINIT: Page JRXCS GETS 0 ;SISR GETS 0 saknexaxtxFORCE ADDRESSHxxxkkin; VA RLZERO] M PUSH,DEC ;ZERO VA FOR CLEARING TB et STEPC, DL DL L LD D DL D L : COMPLETE CPU BUS CYCLES, CRAR_ZLIT16[40], NEXT7MP.MTPR,TBIA20 . ;AVOID MACHINE HANG CLEARING T8 ;CRAR GETS 1 sNOW IF WE CONWRITE sWE WILL WRITE TO TXCS B Rl el ebtatadeadedete ettt ; PUSH,VA_D_ZL1724[80], H COMPLETE TPU BUS CYCLES, JAVOID MACHINE HANG CLEARING 1B NEXT/MP.MTPR, TBIA20 sNOW IF WE CONWRITE CLEAR FLAGT, ; RL L T bl bt PUSH,NEXT/IN.CLR.CACHE .ROUT, CONREGS RLZERO] P “CLEAR THE CACHE ROUTINE :TXCS FPDOFFSET GET O et ; SOFTIPR_O ; ' ) 1 P : | | i I + | i TR CMTO098.MCX INIT . MIC MICRO2 TM(OT) 15928 = ;5930 ;5931 =0 ;5929 15932 086A, 0980,0CB7,0030,2707,0487,A 0868, 0586,€€37,0030,1A81,007D,F 0980,00B7,2030,1847,007E.0 :5935 15936 G7EO, 0080,0E71,2A30,0043,087E,0 378% 07et, 0580,0037,0034,0267,007E,2 07e2, 0180,0037,0030,02E7,007E,3 07Es, 0580,0p37,0032,0267,007E,4 0084,0587,0033,42E7,0087,E 087t ., 0180,0037,0036,0247,0087,F 087r, 0080,0D037,0482,02(7,0082,9 7DF: 15944 7E0: 0986,637,0080,6847,0000,1 S PASTLVL GETS 4 :CALL PC GETS 0 :THIS FLUSHES OUT X8 JPROCESS INIT ; LOAD COUNT FOR HOLDING IO RESET skkxkkkk e xFORCE ADDRESS********w, IO RESET,D_D-1,WX.EQ.0?, ,ggzg : SET POWER UP CODE FOR VMS RESTART sxxxxxxkxkFORCE ADDRESS* xkkkikkx; D_ZLIT8L3] INLIORESET: ;5947 NEXT/IN. IORESET s 7E1: ;5953 7E2: ;5956 T7E3: 15959 7E4: 15962 2 15965 200 eeem—e-mcecsccccecccncssssceoses ; ;5970 =0 ;ggg; ;gggg -gggg -ggg? :gggz ;5966 15967 ;gggg ;5973 15974 ;5975 ;5976 ;5977 25978 IN T ALIZE THE UNIBUS ; FOR 200 MICRO SECCNDS. ;5950 15972 0820, ;JSR DONE WITH CACHE PROTESS INIT 15942 259721 0829, 0C86,EE77,0080,0047,0000,1 eT H lesmescsesseccceccmcnconnnennos H ;ggzg ;5946 i PUSH PME 0 FPDOFFSET_3, :5939 ;5943 sTCSR_O NEXT/]N PC_0 :5934 35945 U Page eeme—essssssssnescesscosseosoeoy TCSR_O STLVL [4], ;5933 15937 ;5938 07t4, CLOKX Rev 13.00, Clock rate = 160ns Initialize Microcode for the Console and Power up 087b, 0880,0587,0030,0167,0086,A o70f, F 12 16:30:35 28-NOV~83 seknnxxkxxFORCE ADDRESS* ¥ & xksxsk; TRAR ZLIT16080] ; LOAD ADDRESS OF RECEIVER DONE AND IE sxxnikxkxxFORCE ADDRESS**taxkxxx, TUSSREGS 201716003 ; CLEAR DONE AND IE JxxxnnanexFORCE ADDRESSH**kkkkkk, TRAR ZLIT16040] ; LOAD ADDRESS OF TRANS READY AND [E sxeaweerrxFORCE ADDRESS*********' TU‘8REG§ RLTEMP13]_0 ; CLEAR READY, IE AND CONSOLE SAVED MME [ e=emsmemsccccsscccccacnesossmsoo—e- ; CRAR_ZLIT16[0C0] CUNREGS ZLIT160401, FLAG2?, NEXT/IN FLAGZ.NOT.SET IN.FLAGZ. NOT SET: L ; ADDRESS TXCSR ; CLEAR CON HALT JFLAG2 SAYS NOT POWER UP OR POWER UP sFLAGZ SAYS WHICH WAY USER ENTERED Te MLSCRB] -1, RETURN T11° SCBB GETS =1 ‘POWER UP ); MLTEMP6] ZLITOLOD], RETURN [11 ;TEMPS GETS A <(R> ;BOOTSUB OR START OR INIT OR BOOT? 148 ; CMT098 . MCX INIT . MIC MICROZ Init 1M(01) :5979 15980 ;5981 ;5982 16:30:35 28=-NOV=83 .T70C ' Rk Init Rk gk 25983 ;5984 25985 :5986 ;5987 ;5988 :5989 :5990 U 084D, 0180,0DB7,2030,2047,0487,B 25991 :5992 15993 15994 U 084, 0181,8C11,0030,25A7,0088,2 U 084F, 0880,0036,4080,0047,0000,1 ;5995 15996 15997 ;gggg $6000 ;288; 32882 6005 U 0882, 0180,0C30,¢A30,0857,0884,E 384x ;6006 ;6007 612 kR Page CLOKX Rev 13.00, Clock rate = 160ns IN.CLR.CACHE.ROUT Rk Rk RO KRR AR R : KRR IN, CLR. CACHE.ROUT DREG RESOURCES QUTPUT IN.CLR.CACHE .ROUT"' IR R KRR R Rk KRk Rk kK ek kk VA CLEARED CACHE k k% kR K R RO KRR AKAI s ko s e dehddAKAR A KAk AKIK KA KK F KA I ERARKIRK =00 =01 IN.CLR.CACHE.ROUT: ;0] mmmmmmmmmm oo m oo ; PUSH. ; D_ZLIT8[4], NEXT/IN.VA_O ,TB AT END,CLEAR CACHE ;CALL VA GETS 0 RET+1 ;D GETS 1024 IN.CLR.CACHE: Lt e e L bH VA VA+4 CLEAR CACHE, ;CLEAR (ACHE NEXT/IN.DEC.D JVA GETS VA+4 ;1lemmmmem ee e; JRETURN+1 RETURN [13] IN.DEC.D: COMPLETE CPU BUS CYCLES, YAVOID MACHINE HANG CLEARING CACHE WX.EQ.0? ,NEXT/IN.CLR.CACHE ; D_D-zLITOL[1], ;D GETS D-1 ; 149, 2 == — CMT098. INIT. MICRO2 Init 1M(01) 28-NOV~83 6007; 16:30:35 This page H 12 CLOKX Rev 13.00, Clock rate = 160ns IN,CLR.CACHE .ROUT intentionally left blank. Page 150 MICRO2 (MT098.MCX h CONSOL.MIC CLOKX Rev 13.00, Clock rate = 160ns . MIC! .T0C ''CONSOL .TOC "REVISION 33,0 CHARLIE MCDOWELL : .Toc REV 33 32 31 EXPLAINATION fix B/number to work without specifying the device. 22~May=-1980 (leanup and add comments, 30 . Fix D P<CR> to not deposit a 0 in the PSL. Attempt restart for halt codes other than 6. (lear stepc before depositing to iprs (for TBIA). clear1n? of Set MM.NOINT halt pending on restart. . . . on command execution to aveid some interrupts getting in. Initial release. 151 i Revision History'' Fix Page : .NOBIN D O OO O PETEITEY] 112 i OO CONSGL.MIC 16:30:35 28-NOV-B3 1M(01) 16027 .BIN H H CMT098.MCX CONSOL.MIC MICRO2 1M(O1) 28-NOV-83 Console Command Parser :2858 .T0C "' I . ;6031 R L ;6052 J 12 CLOKX Rev 13.00, ClLock rate = 160ns 16:30:35 : Console Resource Usage et S A R ;6057 :6058 ;6062 TEMP? MTEMP8 RTEMP8 MTEMPY RTEMPY RTEMP10 ;6064 ;6065 RTEMP13 RTMPGPR ;6059 ;6060 ;6061 16063 RTEMP12 ; Q STEPC ;6070 ;6071 FLAGO ;6075 FLAG2 ;6080 ;6081 = START - 800T - EXAMINE PSL - DEPOSIT PSL A = X BINARY TRANSFER .6055 ;6056 ;6079 Number buffer 1 (BUF1). Character to be typed or last char read. ) Command code and switch flags. 0 if current command needs space switch 0 if current command needs size switch 0 if current command needs BUF0Q number 0 it current command needs BUF1 number 0 if current command needs number switch 0 if current command needs X switch 0 - EXAMINE 7 - DEPOSIT 2 = HALT 5 7 8 9 16054 6078 Counter for number buffer 0. Number buffer O (BUFO0). Counter for number buffer 1. 3 ~ NEXT 4 ~ CONTINUE 26050 26051 ;6052 ;6053 ;6076 16077 A SR A R LA S At AR S A AA LA AL AR AR b i all console microcode) 16048 ;6049 16072 ;6073 16076 R R A SR S Resources (unless otherwise noted these resource assignments apply to TEMPO TEMP] TEMP? TEMP3 TEMPS TEMP6 TEMP6<0> TEMP6<1> TEMP6<2> TEMP6<3> TEMP6<8> TEMP6<9> TEMP6<7 i 4> ;6033 ;6034 ;6035 ;6036 ;6037 ;6038 ;6039 ;6040 ;6041 ;6042 ;6043 16044 16045 ;6046 ;6047 J60u6 ;6067 :2828 : Console Resource Usage'' Console Command Parser A ; Page 152 FLAGY 8 - INITIALIZE D ~ TEST Checksum of characters read from console Current space switch value Saved space switch for delete Current size switch value <aved size switch for delete vefault next address Save PSL . Save initial MME value Copy of PC for examine/deposit via RNUM=15. Save adjustment to RTEMP10 for '+' as address # ot times for CN.TYPE.CHAR to type the character in TEMPS 0 it current number butfer is BUFQ 1 if current number buffer is BUF1 0 normal 1 signal to CN.GET.NUMBER that next character has already been read 0 normal (not APT) FLAG3 1 binarY transfer mode 0 norma. (not BOOT command) MM NOINT 0 normal 1 BOOT command needs device type 1 last character typed was <rubout> "t*t&***ttt**ttt*t*i’t*t***tt**t***tt**t***t********‘kt*ttktl**tt**ti**l*t'A'(tt'k* : CMT098.MCX (ONSOL .MIC MICRO2 1M(OT) 28-NOV~83 16:30:35 : (onsole Command Parser (onsole Initialization .TOC ' :-6084 ;6085 ;********i***tt*tii*t**i******************t*tt\\'*k*fik******************\\'*i***** AP and HALT bit set. T6(HEX) Entry Points :6088 ; ;6089 ;6090 : Input CN.TYPE.PC Micro code detected halts. FPDOFFSET Low byte is used for halt code. STACK FLAG the console will be PC-2). It set front panel switches are checked FLAGS TEMPO-TEMP?7 Clear Zero MTEMP9,RTEMP9 8, default size is long (# of digits) RNUM Used for clearing temps. MTEMP10 Pass # of digits to (N.TYPE.NUMBER. if CN.TYPE.PC entry is used P( should contain the address of the next OPCCD PC to execute plus two (ie_the PC typed on ;6091 16092 ;6093 :2882 ; Output 16096 16097 ;6098 ;6099 H 36102 : ;g}gg Resources CN. TYPE .NUMBER CN.TYPE.CHAR CN.PROMPT CN.CLEAR.TEMPS 6111 6112 :g}}g H 26116 : IR 16120 ;6121 ;g}g% ;6124 ;@;gg .6 ;6127 16128 Pass number to type to CN.TYPE.NUMBER. Subroutines/External Labels 6110 6118 TEMP?7 (for the followinfl see resource usage at top of console) ;6109 6117 . STEFC, TEMPS, RTEMP13, RIMPGPR H 16108 6113 Zero, default space is P MTEMP10,RTEMP10 Zero, default address is zero ;6104 ;6105 for RESTART/BOOT (cleared after check). MTEMP8,RTEMP8 ;2}8? ;6103 U 0883, 0186,(¢37,0030,1047,0000,1 Console Initialization" : C(Console Command Parser ;ggg% :gggg J 0016, 0£81,9002,403D,8487,0088,3 Page 153 CLOKX Rev 13.00, Clock rate = 160ns MS.HALT .MICRO B0.COLD_ START_FLAG This section types the PC and 1 byte error code (from FPDOFFSET) on the console terminal, sets the HALT bit and initializes the console R Y 16! scratch pad registers. A A A St AL R R AR AR AR AL AR AL LML . RALALELLALERD LA e ———————— Smmmscscmm e ———— : jemmem PC_MIPCBACK] ; USE PCBACK IF FROM DO SERVICE. i .REGION/CONSOL .R1L,CONSOL.R1H ' CN.CNTRL.P.HALT: josmmscmesesswnenanasneo e ———— MCFPDOFFSET)_ZLITOCO2], NEXT/MS . HALT . MICRO ; SET HALT (ODE. : GO SET HALT, WILL BRANCH TO CN,CONSOLE B ; i K 12 MICR0O2 CMTOQB.MEE A L s 16154 : L i 088C, 0986,A(37,0030,4047,06A2,9 1615 L L A 1615 1615 s _ , . 0888, 0486,4737,0010,0047,0442,9 L L L ) 08BE, 0884,(387,0001,(047,0088,8 =0 16166 , 088A, 0986,9C37,0030,6047,008A,8 =00 ) ) , 08AB, 0484,9592,4032,4047,0088,( 6177 16178 e e e A B - - - Yo o e * ; READ BUFFER TO CLEAR READY BIT PC_RIRTMPGPRI_MLPCJ-CONX(2), (LEAR FLAG2 : SAVE PC FOR E/D COMMANDS ; MEMSCAR_ZL1T24[01,CLEAR FLAG3 : LOAD ADDRESS OF MME FOR SAVING RCTEMP13]_MEMSCR,STEPC_2 : SAVE MME R e ivbiaiutelinteb et iaisuentte H MCTEMPS] ZLITOLODI,DEC STEPC, B e e MCTEMP10] 2017083, : TYPE <CR><LF> STEPC=1. ; ; CN.TYPE.NUM WANTS # IN TLMP? L R LR L RLC L : : SETUP # OF DIGITS TO TYPE, ; L ettt ebe ettt otubeintutuladbet H MLTEMPS] ZL1TOL201,STEPC_2, PUSH,NEXT/CN. TYPE . CHAR ;10=s=mmmmmmme 000 : TYPE 2 SPACES. : e ; SETUP TO TYPE WALT CODE, RLTEMP71_MLFPDOFFSET].RR.8 : CN.TYPE.NUM WANTS # IN TEMP? ;000=m=nmmssmmessmmssmemsommooe ; MCTEMP10]_CONX(2), PUSH,NEXT7CN. TYPE .NUMBER : SETUP # OF DIGITS TO TYPE, ~ ;00 mmmmemcee mceomtc et a s mmunann ; RNUM_D ZLITOLOA, PUSHINEXT/CN. CLEAR, TEMPS 6170 ;g};} 6176 s PUSH,NEXT7CN. TYPE .NUMBER NG ;g};g T I et ; SETUP TO TYPE PC. e Z; 16173 e o RCTEMP?I_MLPCI,CLEAR MM.NOINT 6169 0889, 0581,D(35,2030,5047,0497,1 20 2 PUSH,NEXT/CN. TYPE . CHAR gz F6185 o * o 1616 : * LOAD ADDRESS OF {ONSOLE RECEIVER BUF CLEAR FLAG! MLTEMP5]_CONREGS, ;616 L 4 083D, D1A6,5(37,00%1,0047,049F 4 5 ) B Dt Page 154 ADDRESSHoxwxwnwx; éRAR_ZLlT16[OJ,CLEAR FLAGO g e 7 g N = OO0 ~JON NI NN = D000 NO 1615 ; S AN — OO0 NN NN O e A3 614 sxnxxnxxxxFORCE CN.TYPL.PC: NN NN S N b b e TR TR TR PN ) T T T bbb S 4 L 0BAD, 0425,A592,4031,0047,0088,( 884 AN PSS DN AL s 47 s 0BAC. 059E,5C37,0030,6847,049F 4 4 e 08AS5, 04A4,003¢,4033,4647,0084,¢ T 089¢, 0918,0¢B7,0030,0687.,008A,5 R 0893, 0015,A710,0017,0487,0089,¢C S N 0885, 040E,5036,4030,03(7,0089.3 P 0884, 0900,0037,0030,0247,0088,5 3 H e e Jodo e e SeNeSodoXoNeNeNoNoNo Ne Yo NoNogoNe Jo No Yo Yo To Ho Yo Jo X e Yo X orde Yol ;6129 CLOKX Rev 13.00, Clock rate = 160ns Console Initialization : (onsote Command Parser CONSOL M L 12 16:30:35 28-NOV-83 1M(OT) OO MCTEMP9I_ZL1T0(8) LR : CLEAR THE TEMPS : LR ; : SETUP DEFAULT SIZE TO LONG Rttt etttk H RLTEMP9] MLTEMPO], NEXT/CN., SAVE . PSL : SETUP SAVED SIZE TO LONG ; 16:30:35 28-NOV=-83 : Console Command Parser CONSOL . MIC Type Console Prompt, Decode Command Character ;6181 ;2}%; ;t*tt***t**ttRtt*w*t**tkktt*ttttt****k*******************tt*fi****fii*t***t*t*w* CN.PROMPT Entry Points H ;2}3? ; ;6188 ;g}gg Input FPDOFFSET Output TEMP? TEMPO-TEMP3 FPDOFFSET ; Resources ;6191 ;6192 ;6193 16194 ;6195 6196 16197 . . CN.CLEAR. TEMPS CN.DO. COMMAND B0.BOOT1 BO.ACTION SWIT(CH ;6204 ; :6208 This section types the consoie input prompt <CR>XLF>'>>>' and If a legal command character i typed TEMP6 is setup for that command and control is passed to (N.PARSE.COMMAND whicn finishes parsing the command line. <(R> and *P are also recognized and the proper action is taken (a new prompt or re-initialization of the console respectively). (NP b e b —3 — 0NN £ b o = OO 0O NRUPONDNU RO PO PONINOND —b — AL LA BO.RESTART_HALT then checks the first character of the command line. 16209 16210 ¢ UFEY, 058(,0037,0680,0247,008D,0 TEMP6 : 5 ; CN.TYPE.PC ;6202 16203 J 081, 0580,cC13,4A30,3047,00FE,7 do micro verity It booting1 means also used in clearing temps (see Console Resource Usage) CN.GET . NEXT ;6201 U 080, 0586,5C37,0030,6847,049F 4 1 RSE . COMMAND CN.PA ;6200 . (leared 80000000 CN.TYPE.CHAR ;6199 16206 16207 Cleared at start of new command line. Used to build checksum for X command, Subroutines/External Labels ;6198 16205 Hatt code RNUM TEMPS, ‘ Type Consotie Prompt, Decode (ommand Chara: : (onsole Command Parser Page 155 L.T0C '* ;6187 U 08AF, 0120,0037,0030,F807,008C,0 CLOKX Rev 13,00, Ctock rate = 160ns :g}gg ;6186 l M2 ; If the entire command line is rubbed out, CN,PARSE.COMMAND will return and processing continues at CN.NEW.LINE as if a prompt had just been | typed. 'tttthYttZESttww*w*tktk**ttttt*lttti*t*itnt*i*tti*t*tt**i*ittt*!t*t*tittt**ttt saxxxxnaetFORCE ADDRESSH®axwwnsw; 8AF : CN,PROMPT: jmmmemmmemme—eccce—ceses—ooo—aow ; SHUT OUT ALL PSL_ZLIT1601F],CLEAR MM.NOGINT =0 H Ot Sessessemsscssccesome—=== H MOTEMPS) _ZLITOLOD], ; TYPE <CR><LF> 1 WB_M{FPDOFFSET].XOR.ZLITOL6], : soxxxxxNOP LEFT TO AVOID ROM CHANGE*~ PUSH,NEXT/(N.TYPE , CHAR WX EQ.0? OFE?7: INVERRUPTS AND GIVE ; KERNAL PRIVILEDGE FOR MEMORY ACCESS. . CHANGE ACCESS MODE Tu KERNAL . srvvxxen e o FORCE ADDRESS**+*wwxxw;(ONSTRAIN TO BLOCK PREVIQUS BRANCH CRAR_ZL1T16L0C0], ;LOAD CRAR FOR CLEARING AALT PENDING., S5TACR FLAG? JCHECK IF ATTEMPT RESTART/BOOT i 1M(OT) NRU — O O OO NONA SN AN ; MICROZ (MT098.MCX A T P T T T : [o N Yoo XeNoe Yo NoNoXv Yo To Yo Yo Yo Yo Qo JoJo No Yo Xo AURLTURLALNINDRLRLNLFLNNL VRN TLTU NN PO NN | ; MICROZ (MT098.MCX 1M(O1) 28-NOV=-83 Consote Command Parser CONSOL JMIC 16234 L 08DO, 0980,ClB7,0030,0687,0089,7 16235 ;gggg =0 16038 jJ 08D1, 0529,DC37,003C,0847,0089,4 U 0894, 0ODBO,0D37,0032,0207,0080,4 U 0895, 0580,0037,0032,02C7,0080,5 1} 0896, 0884,0587,0035,4047,0080,6 16239 0000 16242 0100 , ) ‘ U 0894, 0DO1,DC35,2030,1847,0497,1 i 0898, 0586,CC77,0030,4047,0481,F u 089E, 0880,058F,403%,4607,008A,F '\ SWITCHING BETWEEN VIRTUAL AND PHYISCAL * FOR EXAMINES AND DEPOSITS. RNUM [13.CLEAR STACK FLAG, FPS1% * CHECK BOOT ACTION SWITCH Y DO MICRO VERIFY, IF BOOTING ;0100===m==smmmmm=mm—————————— : RESTART/BOOT CONREGS_ZLIT16[403, * CLEAR HALT AND HALT PENDING. ; * CLEAR HALT AND HALT PENDING. : 16247 ;gszg CONREGS_ZL1T16[403, NEXT/BOTRESTART_HALT :6250 m ; BOOT e ;0110=mm==mcmsommmme ;25;; RCRS1_0.NEXT/B0.BOOT ;0111 mm e e : RALT MCTEMPSY ZLITOL3ED,STEPC_2, 16255 ;gggg 16259 16260 ¢ CLEAR BOOT CONTROL FLAGS (N.PROMPT.10: PUSH, NEXT N.TYPE.CHAR CNJNEW.LINE: * TYPE PROMPT, > IS TYPED TWICE BY Y CN.TYPE.CHAR AND ONCE BY CN.GET.NEXT. 11000===~mmmmmmmmmmm—em—aacaaan : TYPE CHAR IN TEMP5 AND CLEAR CHECKSUM Y FOR APT AND CLEAR O FOR DEFAULT ADDR. MCTEMP?] _a_RCZERDD, ;gsgg PUSH,NEXT/TN.GET.NEXT Y GET NEXT CHAR FROM CONSOLE INTO TEMPS. 11001 === mmmmmmm s oo ; 16264 MLTEMPS] 70.170C71, ;gggg NEXT/CN.REW.LINE 16267 » MEMSCAR_ZL1T24003, NEXT/CNTPROMPT, 10 oo : RESTART/HALT mmm e 50707 mmmmm 16254 : NOTHING TO RUBQUT, RING BELL : L; CLEAR FLAGO Y CLEAR FLAG O START WITH BUFQ ;255? PUSHINEXT/CN.CLEAR. TEMPS ; 16272 11071] =memmm e m o e : CLEAR HALT CODE AND SET BIT TO MCFPDOFFSETI_ZL1T28(8), * REGAIN CONTROL FROM MM AND ]ANDE. 16268 16269 RNUM_D_ZL1T0C3], 16273 ;gs;g 16276 ;gg;g Page 156. P ; KEEP MEMSCAR POINTING 10 MME FOR $6246 16263 U 0899, 0586,5C37,0030,3847,0089,8 Type Console Prompt, Decode Command Character NEXT/BOTACTION_SWlTCH 16258 U 0898, 0486,75BE,503D,8047,049E A (LOKX Rev 13,00, Clock rate = 160ns ;ggzg 16253 U 0897, 0DA6,5(37,0031,F047,045F,4 : N 12 jlee=eeemeemmeceeeecmeamec—seeeeae ; ATTEMPT RESTART/BOOT ;gszg 16243 16:30:35 * CLEAR BUFFERS AND BUFFER COUNTERS FUSH,NEXT/BOTCOLD_START_FLAG 1110 i CLEAR (OLD START FLAG. ;1110=======cs=summmmmmmcsaanoen ; MEMSCR_RC1EMP13] : RESTORE MME BEFORE EACH COMMAND {MT098 . MCx CONSOL WMIC B8 13 MICRO2 1M(OM) 28=NOV-83 Console Command Parser wB _MITEMP5].XOR.2L1T0L45], ;6279 0BAE, 0980,5013,4A%2,2847,0089,0 :ggg} 6083 A OB9D, 0580,5(13,4A32,2047,008A,8 WXTEQ.0? =00 ;g%gg 16287 ;gsgg ) 16292 :gsgz ;00===mmmmcemmmmmeececeesceoaaes ; ; CHECK FOR ‘DEPOSIT® COMMAND : WXTEQ.0? ,NEXT/CN.TRY.D )L L L LY ; PUSH,NEXT/CN.PARSE. ( OMMAND 16291 U892, 0586.5037,0032,2847,2089,8 : MB _METEMPS].XOR.ZLITO[44], MLTEMP6] oLIT0C108], 16288 0891, 0986,6€37,0038,4047,0493,4 ; CHECK FOR 'EXAMINE' COMMAND jesessscsmmsscsessnesecsssasess- ; :6580 . 6284 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : Type Console Prompt, Decode Command Character ; SETUP SWITCH FLAGS FOR E COMMAND. ' PROCESS AN EXAMINE. ;10-=smsemesmmeeeeceeeccccseeea- : _ ; SETUP TO ECHO RUBOUT OF ‘E'. M[TEMPSJ 2LITUL4S), NEXT/CN,NEW,LINE : 16295 =00 :gsgg 3 Q8A8, 0180,5013,4A32,4047,008(,¢ U 08AS, 0986,6F37,0038,8047,0693,4 ) 08AA, (0186,5(37,0037,2047,0089,8 CN.TRY.D: * CHECK FOR 'HALT' COMMAND 16298 WB_M[TEMPS).XOR.ZL1TO[48], 16301 Y 1T :g%gg WX EQ.0? ,NEXT/CN,TRY K : 16302 M[TEMP6J oLitoL110], ; SETUR SWITCH FLAGS FOR D COMMAND., :6305 ;6306 10=-smmmmmm s R M[TEMPSJ LIT0L44], ; ; SETUP TO ECHD RUBQUT OF D', ;g§82 :2§8£ PUSH ,NEXT/CN.PARSE . COMMAND i NEXT/CN.NEW.LINE ; PROCESS A DEPOSIT. ; 16309 =00 o L 08CC, 0580,5C13,4A32,7047,008D.C ;6310 6311 ;6312 :2%}2 16315 08¢D, 0586,6E37,0039,784/,0493,4 ‘ 0BCE, 0p86,5037,0032,4047,0089,8 16316 ;gg}g 16319 . 6320 ;2%5} (N,TRY,H ;00===-==-s—ssccconcccmcnconmn ma=, wa _MCTEMPS)XOR,ZLITOC4E]D, WXTEQ.0?,NEXT/CN,TRY.N ; CHECK FOR 'NEXT' COMMAND H ;Qle=me=cemeecceccaccocacees SIOTY MtTEMPbJoLITOC12F], PUSH ,NEXT/CN.PARSE . COMMAND s SETUP SWITCH FLAGS FOR H COMMAND., ; PROCESS A HALT, ;1Qmmmema “swecesnumommmommm—a= ; MITEMPS) 201100482, NEXT/CN.REW.LINE : ; SETUP TO ECHO RUROUT OF ‘H'. : Page 157 (MT098.MCX MICRO2 1M(01) 28-NOV-83 16:30:35 : Console (ommand Parser CONSOL MIC ;6323 16324 16325 08DC, 0980,5C13,4A32,9847,0090,0 08DE, 0186,5C37,0032,7047,0089,8 CLOKX Rev 13,00, (lock rate = 160ns Type Console Prompt, Decode Command Character 1 16326 ;gggg ;00=sssessesesmesmesse—eee———aey UB_MLTEMPS].XOR.ZL1TOL53], WXTEQ.0? ,NEXT/CN.TRY.S Q]=ssesesmeeeeseececmoeoan 16330 ACTEMPEI OLITOCI3F 1, 16333 1 ;ggg; 16334 ;gg%g Page 158 =00 CN.TRY.N: 16320 08DD, 0186,6E37,0039,F847,0493,4 ¢ 13 'START' COMMAND SETUP SWITCH FLAGS FOR N COMMAND, PUSH,NEXT7CN, PARSE. COMMAND i CHECK FOR PROCESS A NEXT. 1Q0mmemmee amemecvemvs mmmmmmanm——— M[TEMPSJ ILITOL4ED, NEXT/CN.REW. L INE SETUP TO ECHO RUBOUT OF 'N'. 16337 =00 0900, 0580,5C13,4A32,1847,0092,0 0901, 0586,6E37,003A,B847,0493,4 , 0902, 0D86,5C37,0032,9847,0089,8 ;ggz; Uvee, 0986,5037,0032,1847,0089,8 PUSH, NEXT N.PARSE. (OMMAND 16347 ;10==mmmmmmmmmma e aaonn e ;gggg i 16351 =00 :g%gg 16357 A M[TEMPéJ LIT001571, ;2522 16354 16358 ;gggg 16361 18362 gggz } CHECK FOR 'CONTINUE' COMMAND ;0)=ssemesssesmsssmeecmmeeeos 16364 ;6353 0921, 0586,6E37,0034,7847,0493,4 WXTEQ.0?, NEXT/CN Y.C 16343 16348 ;00==wmmmmmanommem e e .- WB_MLTEMPS).XOR,7 rocasJ 16340 16352 0920, 0180,5013,4A32,A047,0092,4 (N.TRY,S M[TEMPSJ 211700532, NEXT/CN.REW.LINE (N.TRY,C: i00=mmemem es UB_MLTEMPS . XOR. ZLJTO[S&J. WXTEQ.07 ,NEXT/CN. TRY Qleemmmwm—mmmomacemcoee s M[TEMPb] OLITOL14F], PUSH,NEXT7CN, PARSE. (OMMAND 10-=ve=-eescsmessmssmmme———eee; M[IEMPS] 1L1TO[43], NEXT/CN,REW.LINE SETUP SWITCH FLAGS FOR S COMMAND. PROCESS A START. SETUP TO ECHO RUBOUT OF (HECK FOR 'TEST' 'S'. COMMAND SETUF SWITCH FLAGS FOR C COMMAND. PROCESS A CONTINUE. SETUP TO ECHO RUBOUT Of 'C'. 1 16338 16339 (MT098.MCX CONSOL .MIC MICROZ2 1M(01) 28-NOV~83 Console Command Parser ;6365 0924, 0980,5013,4A32,1047,0092,8 16366 16367 ;6368 ;6369 16370 0925, 0586,6E37,003E,FB847,0493,4 C(N.TRY. T- UB_MCTEMPS. XOR. 2L 1T0L423, WXEQ, 07 ,NEXT/CN.TRY.B M[TEMPbJ OLITOCIDFD, ;6372 16373 16374 16375 0926, 0586,5C37,0032,A047,0089,8 16376 :gg;g < ;6379 0928, 0580,5C13,4A32,0047,0092,C 0929, 055E,6C37,0033,F847,0493,4 092A, 0D86,5C37,0032,1047,0089,8 16394 16395 ] 092¢, 0D80,5C13,4A%2,4847,0093,0 u ;6380 ;6381 16382 16383 ;6384 ;6385 16386 16387 16388 ;6389 ;6390 ,6391 16392 ;6393 i . 09¢D, UD86,6E37,003D,1847,0493,4 ] 092k, 0986,5037,00%2,0047,0089,8 : CHECK FOR 'BOOT' COMMAND : ; SETUP SWITCH FLAGS FOR T COMMAND. PUSH,NEXT/CN.PARSE. C OMMAND ; PROCESS A TEST. h[rEMPSJ IL1T0054), NEXT/CN.NEW,LINE ;; SETUP TO ECHO RUBQUT OF 'T'. UB_MLTEMPS. XOR. 2L 1 TOL 58], : CHECK FOR 'X' COMMAND =00 CN.TRY.B WXTEQ.0? ,NEXT/CN.TRY. X ; ALTEMP61 ZLITOLO7F 1 SET FLAGS, &: SETUP SWITCH FLAGS FOR B COMMAND. PUSH,NEXT/CN.PARSE. COMMAND PROCESS A BOOT. 10-=wmemm e seessemn——— ; MITEMPST 201700421, : = NEXT/CN.NEW.LINE : SETUP TO ECHO RUBOUT OF 'B'. =00 CN.TRY.X: 16396 UB_MLTEMPS].XOR.ZLITO[49], ;6399 R ittt ettty : METEMP6] OLITOC1A3D, ; WXTEQ. 07 ,NEXT/CN,TRY. ] ;6397 ;6398 16400 6401 ;6402 ;6403 16404 16405 ;6406 159: =00 26371 J D 13 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns 1 Type Console Prompt, Decode Command Character = : CHECK FOR 'I' SETUP SWITCH FLAGS FOR X COMMAND. PUSH,NEXT/CN.PARSE. COMMAND : PROCESS A TRANSFER. M[TEMPS] zLiorss), : SETUP TO ECHO RUBOUT OF 'X'. NEXT/CN.REW.LINE ; CMT098,.MCX CONSOL . MIC MICRO2 1M(O1) : {onsole Command Parser 16407 16408 ;6409 U 0930, 0180,5C13,4A30,6847,008D,6 , 16:30: 35 28-NOV-83 . U 0931, 0586,6E37,003D,F847,0493,4 CN.TRY.I: J0 =m m . U 0974, 0586,5C37,0030,3847,0089,8 o e: ; CHECK FOR <(R> : 0femememmmmmmescmemcosoeeee ; M[TEMPéJ OLITQLIBF], : PUSH,NEXT/CN.PARSE. COMMAND ;22%2 ) 16421 =0 M[TEMPSJ ZL1TOL49], NEXT/CN.REW.LINE WXTEQ.0? ,NEXT/CN.TRY.CNTRL.P 0 16430 CN.TRY. CNTRL.P: -gzgz 16436 16437 ; ; leemmemeemeeccmemeeeee—cceeeee ; ;gzsg 16432 : ettt ataintuinint ettt H WB_MLTEMPS].XOR.ZLITO[103, ;2252 Y6431 ; SETUP SWITCH FLAGS FOR I COMMAND. PROCESS AN INITIALIZE. SETUP TO ECHO RUBOUT OF 'I'. (N.TRY.CR: 16424 16427 : ;10====meme=smemccecccmmaoceeonen : :22;8 16435 U 0975, 0080,073D,0017,C487,0088,4 e 16413 16414 16423 U 08D7, 0C80,0036,4030,0047,008A,F o WB_MCTEMP5].XOR.ZLITOLOD], WXTEQ.0? ,NEXT/CN,TRY.(R 16422 U 0806, OD8O,5(13,4A30,8047,0097.4 Type Console Prompt, Decode Command Character 16410 ;22%; 16418 Page CLOKX Rev 13.00, Clock rate = 160ns =00 16417 U 0932, 0986,5C37,0032,4847,0089,8 E 13 NEXT/CN PROMPT : CHECK FOR *P TYPE PROMPT IN RESPONSE Qmmmemmmmee s e meeemam————— MCTEMPSI ZL1TOC71, NEXT/CN.REW.LINE *; UNRECOGNIZED COMMAND RING BELL. : lesoseeceseseceecseeemmeeeeee ; 2, RCRTMPGPRI+CONX(2), NEXT/CN.TYPE.PC TO A <CR>. : RESTORE PC ; RESTART CONSOLE. 150. : : CMT(098.MCX CONSOL . MIC MICROZ 1MOT) 28-NOV-83 Console Uommand Parser 16:30:35 F13 : Command Parser 22%8 J0C " Console Command Parser 6440 R 222; ;2222 e e ; Entry Points ; Resources ; 16445 ,‘61051 ;6452 A At i b ihida LA CN.PARSE.COMMAND U 0934, 0480,0036,4030,0047,049E,A U 0935, 0880,0036,4080,0047,0000,1 Egzgg | (N.GET.ROOT.DEV i 16461 16462 U 0936, 0DB0,5C13,4A71,7847,0097,6 U 0976, 0C80,0036,4030,0047,0097,C CN.PARSE. COMMAND: 0458 :6663 i =0 16469 U 0977, 0980,5013,4A71,0047,0097.,8 U 0978, 0080.,0036,44F0,0047,0097,E 16473 ;gz;g i 1 0979, 0080,5C13,4A70,6847,0097,A U 0974, 0860,6277,0231,8047,0088,0 gzgz (6485 U 0978, 0086,5(37,0030,3847,0093,4 6486 16487 WXTNE.0? : : =0 : :, : EVAULUATE THE SWITCH : IS NEXT CHAR A ' H ', % | | i f | | §mmmmmm = mm e mmm s ; NEXT CHAR IS A ' ', CHECK FOR BOOT FLAG3?,NEXT/CN.BOOT.DEV : BOOT NEEDS SPECIAL HANDLING. | | D; ' WB_MLTEMP5J.XOR.ZL1TOLOD], WXTNE.0? =0 IS NEXT CHAR A '/', 0mm=memmmmemoommoemceeoeo o: KEXT/CN.PARSE. SWITCHES i ]mmmmmmmm e ; 16477 22;3 16482 : WB_M[TEMP51.XOR.ZLITOT20], WXTNE.0? 16476 16480 ;6481 RETURN £+11 Lttt ——-s 16466 16470 gz;; : CONTINUE PARSING E COMMAND. CN.PARSE.RECURSE: _ ;gzgg PUSH,NEXT/CN. GE T .NEXT WB_MCTEMPS].XOR.ZLITOL2F], i i 0]msemmemmmemememeeeeee e; :222? ; CN.DO. COMMAND ,*******’(*i*k******k*********************************t************************ ;2228 | Ei ;6453 =00 :222? g TEMPO, TEMP1, TEMP5, TEMPG, FLAGO, FLAG3 CN.GET.NUM, RUBOUT ; J L R LA LA LA ML AL S A AL AL LA LA CN.GET.SWITCH 16448 f : CN.GET,NEXT 16447 16449 L L A 161 : Command Parser'’ Subroutines/External Labels Le4he 16450 Page CLOKX Rev 13.00, Clock rate = 160ns : IS NEXT CHAR A '<CR>', H $Qmmmmmmmmescecccsamamann—naa- ; <CR> TYPED, END OF LINE SET MM.NOINT, ; SET TU BLOCK INTERRUPTS w8 M[T[MPé] RR.4, WB<5-0>? ,NEXT/CN.DO. COMMAND ; GO PROCESS THE COMMAND, TEMP6 HAS ; THE COMMAND NUMBER lescmmmmmmmmemseesmemeeeeee. ; M[TEMPS) 2L170077, NEXT/CN,PARSE.COMMAND ; UNRECOGNIZED CHARACTER, RING BELL ; : ; CMT098.MCX CONSOL .M1C MO 28-NOV-83 MICROZ Parser Command Console ;6488 6489 6 13 16:30:35 CLOKX Rev 13.00, : Command Parser 102 =0 CN. PARSE SWITCHES . oy L e JUMP TO COMMON SWITCH ROUTINE. U 097¢C, 0C80,0036,4030,0047,0494,8 - u 0970, 0C80,0036,4030,0047,0093,4 - o CATCH RUBOUT RETURN FROM CN.GET.SWITCH =0 CN.BOOT. - = A e e e e NOT BOOT COMMAND, INPUT ADDRESS. CHECK IF ADDRESS HAS ALREADY BEEN SET. o WB MOTEMP6].AND. CONX(4), PRI 0880,6712,0A420,0047,008A,0 Page Clock rate = 160ns WXTEQ.0? ,NEXT/CN.PARSE. ADDRESS - IAN) =S O N0 00 N O NI NR) = SO 00 OO0~ PO - NB_M[TENPbJ.AND.ZLITO[8J CHECK IF DEPOSIT NEEDS DATA STILL. WXTEG.0?,NEXT/CN. PARSE . DATA CN.PARSE.NUMBER: ;00 2 2 o o S o PUSH,NEXT/CN. GET.NUMBER INDICATE ADDRESS HAS BEEN SPECIFIED. iNPUT HEX NUMBER FROM CONSOLE. :010m=m=mmmmmmmemmmmmmaa oo MCTEMP6) _MB.ANDNOT. CONX(4) , ALLOW NEW ADDRESS TO BE TYPED. ;01 PUSH,NEXT/CN.PARSE. RECURSE CONTINUE PARSING E RECURSIVELY. MCTEMP6] _MB,OR.CONX(4), VT NN = OO 00NN BN =000 CN.PARSE.SBDRESS NEXT/CN.PARSE.RUBOUT. SPACE s s e T o o e e 110 ;100 v > o RUBOUT LAST DIGIT OF ADDRESS PUSH,NEXT/CN. GET.NUM.RUBOUT CN,PARSE.??BOUT SPACE: = e - = o MCTEMPS] ZLITOC203, SETUP TO ECHO RUBQUT OF NEXT/CN. PARSE, COMMAND 111]mmmmmm ee NEXT/CN.PARSE .NUMBER = = 2y O A ', — CONTINUE GETTING NUMBER =000 CN.PARSE. DATA - ' CONTINUE PARSING E COMMAND e M[TEMPS] 2L1T0L71, EXAMINE OR DATA HAS ALREADY BEEN SET, NEXT/CN.PARSE.COMMAND RING BELL. CN.PARSE.SET.DATA: - DLJ SET FLAGO, METEMP6] MB.OR.ZLITOLR], PUSH,NEXT/CN.GE T . NUMBE SET FLAG TO INDICATE USE BUFT. INDICATE DATA HAS BEEN SPECIFIED, INPUT HEX NUMBER FROM CONSOLE. i v uiiuiviviiiunuiualuaun wivaUnuavauiui uviunonuaiciiuiunuauuiag TN AN A A PO PO NS PO RO AU NO POV RO N =3 = 3 b 3 2 —_,em D OO0 N AN e e e e, U 08ET, 0946,6012,4030,4047,0491,0 LR S U (8E0, 0086,5(37,0030,3847,0093,4 P I 0480,0036,4030,0047,008A.1 Sesewow. U 08A7, 0186,5€37,0031,0047,0093,4 o ¥ Yo o Te de o Re oo oo Yo No N U 08A6, SETUP TO READ IN DEV NAME NEXT/CN.GET.BOOT.DEV N 0480,0036,4030,0047,049€.6 L U 08A4, ununuau 0080,0036,4030,0047,0493,6 I U 08A3, 0886,6713,8020,0047,008A,6 I B B U 08AZ, IR THE SAr D R U 08A1, 0486,6712,4020,0047,0491,0 v T T A 0D80,6C12,0A30,4047,008E,0 [ U 08AQ, METEMPOJ ZLITOL3], 6502 o Ne ¥n No NoXe Xo No No Vo Yo No No Yo Yo Yo Yo Yo to o Jole Lo oo J 097F, 0586,0C37,0030,1847,008E,8 : ; (MT098.MCX CONSOL .MIC MICRO2 1M(01) 28-NOV-83 Console Command Parser H13 CLOKX Rev 13.00, Clock rate = 160ns : Command Parser ;010-~s-mmmsssomscnmmsnamn————— H :6543 U 08E2, 0D86,6C13,8030,4047,008E,6 16:30:35 MLTEMP6] MB.ANDNOT.ZLITOL8], 16544 NEXT/CN.PARSE.RUBOUT.DATA 16545 011 :2229 " ALLOW NEW DATA TO BE TYPED. : * CONTINUE PARSING D RECURSIVELY. U 08E3, 0C80,0036,4030,0047,0493,6 32223 . RECURSE PUSH,NEXT/CN.PARSE U 08E4, 0080,0036,4430,0047,049E,6 :6550 16551 ;232% 110 P; * BRANCH OF BUFO OR BUF1. FLAGO?, 16554 CN.PARSE.RUBOUT.DATA: ] U 08E6. 0906,5C37,0031,0047,0093,4 U 08E7, 0C80,0036,4030,0047,008E,1 16555 PUSH,NEXT/CN.GET.NUM.RUBOUT ' RUBOUT LAST DIGIT OF DATA m : CLEAR FLAGO TO INDICATE BUFO e 1110~mmcmmmmmmmmmmmm 16556 ;gggg MLTEMPSI ZLITOL203.CLEAR FLAGO, ; SETUP TO ECHO RUBOUT OF * '. NEXT/CN.PARSE. COMMAND " CONTINUE PARSING D COMMAND ;6559 o e o omeaee o : ;11] mmmmmmmmm——mmmm 16560 NEXT/CN.PARSE.GET.DATA * CONTINUE GETTING NUMBER Page ; 163 ; : {MT098.MCX CONSOL.MIC MICRO2 1M(O1) 28-NOV-83 Console Command Parser Parse Device for Boot Command Console Command Parser Parse Device for Boot Command'' : KRR KRR AR AR NRK KR KRR KKK AR AR A hkkkd ok kk ok kdok ko kkkorns AR KRRk R R R R (N.GET.BOOT.DEV Entry Point ; Egggg : Resources 16568 : Subroutines/External Labels ;gg;? ; 265?2 : ; TEMPO, TEMP1, FLAG3 CN.GET.NEXT CN.PARSE.CONT This routine will save the next for characters from the terminal in BUFO. The only characters that are not put in the buffer are *U and DELETE which have there usual function. That means control characters and <CR> will just be put in the buffer. ;6576 "itt***k********************t*****kk!\'*k**********t***************t*\\'*******t** ;6577 =000 16579 CN.GET.BOQT.DEV: ;000=-s=mesmmer oo : ;6580 METEMP1] MB.RL. 8, ;ggg% 16583 ;6584 PUSH, NEXT/CN GET.NEXT : PREPARE FOR NEXT BYTE. . CN.GET.BOQT.DEV.0S: ;00T ==m—mmm e H ;6585 M[TEMPOJ MB+1, . RUBOUT LAST CHARACTER ;gggg NEXT/CN.GET.BOOT.DEV.20 : ;6586 wB<1-0>.RE.0?, :6589 ; CHECK IF NO CHARACTERS TO RUBOUT £010mmsmmmm s ; 26590 RCTEMP13.S12 _MLTEMPS], ; PUT CHARACTER IN BUFFER. U 08EA, 0082,5592,4000,4047,0088,F :223% NEXT/CN. GET BOOT.DEV.10 ; ] U 08EB, 0(18,0036,4030,0047,0493,4 ;6595 'gggg . U 08EC, 00SE,1387,0020,0047,0088,6 ;6591 SJZE[BYTE] 16594 01T mmm SET FLAG3, 228? 16604 ; INDICATE BOOT DEVICE HAS BEEN READ s CONTINUE PARSING COMMAND. J100=====-mcmmmcmmm s m e m e; ;6599 ;6603 H se; CLEAR FLAG3, PUSH, NEXT/CN PARSE . COMMAND ;6598 16602 U 08B6, 0086,0081,003D,8047,0098,1 Page ;6563 ;2?22 ;6578 U 089, 0486,0081,038D,8047,0898,0 347+ : CLOKX Rev 13.00, Clock rate = 100ns .10C ' ;6573 ;6574 ;6575 ) I13 ;ggg; 16569 U 08E8&, 0086,1387,0020,0047,049E,A 16:30:35 MCTEMP1]_MB.RL.8 | ; ; PREPARE TO RUBOUT LAST CHARACTER. memmmemmmmemeeeemeeeeeeeeeen ; MITEMPO] _MB+1, NEXT/CN.&ET.BOOT.DEV.25 INDICATE STILL READING BOOT DEVICE . RUBOUT LAST CHARACTER ; 164 : CMTO98.MCX CONSOL .MIC MICROZ M1 28-NOV-83 Console Command Parser _ J 13 CLOKX Rev 17 .00, Clock rate = 160ns Parse Device for Boot (Command 16:30:35 ~ Page CN.GET.B 00T.DEV.10: e U O8BF, 0086,0710,06C0,0047,088E,8 376% :6608 -0 memece s ec s c e e e s ———— MCTEMPO] _MB-CONX (1) WB<31-303?,NEXT/CN.GET.BOOT.DEV * DECREMENT COUNT OF CHARACTER TO FETCH CN.GET.BOOT. DEV. 20: U 0980, 0186,5C37,0031,0047,0093,4 M[TEMPSJ LITOL201, NEXT/CN PARSE. COMMAND ; ENTIRE DEVICE NAME RUBBED QUT, PREPARE ; TO RuBOUT ' ', CN.GET. BOOT DEV.25: __—--—----~-~--~-----~_-- - U 0981, 0886,1387,0010,0047,008C,A =T eeeescsmsssssssseosenaa— U 08CA, 0C86,5287,0020,4047,008E,8 MCTEMP5] _RLTEMP11.RR.24, NEXT/CN.GET.B00T.DEV ' LOAD CHARACTER TO RUBOUT CONSOL.MIC MICRO2 28-NOV~-83 1M(O1) {onsole Command Parser ey X X Ak ko A IKXA okl XXAXK ek hdok AR Ak A R HHA A A AkAKIRA IHEIKKIKKK -l Entry Point CN.DO. COMMAND Resources TEMP1 TEMP3 TEMPO, MTEMPSB, RTMPGPR FLAGO, FLAGZ2, STEPC CN.DO.EXAMINE CN.DG.DEPOSIT CN.TYPE.PC CN.DO.CONTINUE CN.DO.START CN.DO.BGOT CN.E.PSL CN.PROMPT CN.DO.X IN.INIT MV.TEST ,6642 AR KA RO KR KKKk KR ;6644 =110000 :6648 S OO S WNN OO OO ; ONONONONON . H OO . - U 08B3, 0116,3D37,0036,0047,0094,F Temporary for examine PSL Temporary for NEXT and CONTINUE Subroutines/External Labels CN.DO.COMMAND: ;1100 WB_MLTEMPOJ,WX.NE.0?, 16662 - - —— ¢ pEMggR MCTEMPBI.RL.24, U 0885, 0840,0036,4430,0047,0094,0 16671 EXAMINE DEPOSIT HALT 2110010 ~mmmmmmmmmmmmmammae PC_RCRTMPGPRI+CONX(2), RESTORE PC FOR TYPE NEXT/CN.PROMPT OQUT. NEXT 1 SETUP TO CLEAR HALT AND SET HALT PEND CLEAR FLAGZ TO AVOID CONFLICT WITH APY JOIN CONTINUE 3] LIT16L0C0], ;LAGe, CN.DO. CONT INUE MP3]_ZLIT16L40], ;6667 RO SET MME ACCORDING TO SPACE SWITCH CHECK IF DATA HAS BEEN SPECIFIED. NEXT/CN.DO.DEPOSIT 100 U 08B4, 0516,3037,0032,0047,0094,F AR CHECK IF NEW ADDRESS WAS TYPED NERT/CN. DO EXAMINE N U 0882, 0080,073D,0017,0487,008A,F : Console Command Dispatch Table' Console Command Parser 6624 ; v €8B1, (L080,8387,04600,0607,0098,6 Page CLOKX Rev 13.00, Clock rate = 160ns Console Command Dispatch Table .10C " ;6665 U 0880, 0480,0592,4A70,0047,0098,2 : K 13 ;6622 o (=3 W H CMTOG8.MCX L i S : 16:30:35 - CONT I NUE R FLAG?, SETUP TO CLEAR HALT AND HALT PENDING CLEAR FLAGZ TO AVOID CONFLICT WITH APT 101 =wmmmmmmmm START /CN.DO. CONT INUE 60?,SET FLAGO, T/CN.DO.START CHECK IF START ADDRESS HAS BEEN SPECIFIED. SET FLAGO 10 CLEAR MME, 166 (MT098.MCX . MTC (ONSOL . 28-NOV-83 MICRO2 1M(01) Console Command Parser ;6672 0887, 0880,0036,44F0,0047,0098.C 0888, 0886,158E,4033,0047,0091,A 0889, 0080,0036,4430,0047,008E,C 08BA, 0086,0587,0030,0687,3099,C 0888, 0450,0036,4030,0047,0487,9 16673 16674 088D, 0CB0,0036,4030,0047,0562,C mmm : EXAMINE SAVED COPY OF PSL e cnmm———m—a—— 111000 ~mmm MITEMP1] RLTEMP12], H 16681 22%% ;111001 = emmmmm e m e amm e FLAGO? ,NEXT/CN.DEPOSIT.PSL 16684 16685 nn ; X COMMAND FOR APT TRANSFER e —————— ;111010=mmmmmeme MEMSCAR_ M[TEMPOJ _0, : CLEAR A TEMP TO HOLD THE CHECKSUM, 16688 16689 ;11101 e mem e e m e mcma e SET FLAG?2, -gggg NEXT/CN.E.PSL gggg 16694 ; e: NEXT/CNZDO.X PUSH,NEXT/IN, INIT gggg % CHECK IF DATA HAS BEEN SPECIFIED. * PREPARE TO CLEAR MME, e ; INITIALIZE : SET FLAG TO SAY NOT POWER UP ; (N.SAVE.PSL: :111100=====mmmmmmmecem——macaaa- ; RETURN FROM INITIALIZE RCTEMP123_PSL, gggg * SAVE PSL FOR NEXT AND CONTINUE CLEAR FLAG2,NEXT/CN,RESET.STEPC ; mm— ; TEST e e ————————— ;11110 mmmmmm 16697 PUSH,NEXT/MV.TEST gggg : DO MICRO VERIFY 111110 mmmmcnccmc—c e e —————— ; PC_RLRTMPGPRI+CONX(2), 16701 g;g% ;2;82 NEXT/MS.HALT.MICRO OFET: * RESTORE PC. : RE INITIALIZE THE (ONSOLE. ;*xxxsanvsaFORCE ADDRESS##awsnnus; CN.RESET.STEPC: NEXT/RP.MTPR,RESET.STERC ; u :6709 f=1 Y SET HALT AND HALT PENDING. ~ g?NREGS 2L1716090], - Eg;gg O OFET, 01AD,0D37,003%4,8207,0084,F * DO B0OT 16677 16678 16704 L ;110111 mmemme e mm——————————— ; BOOT FLAG3?, ¢ CHECK IF DEVICE SPECIFIED. NEXT/CN.DO.BOOT 16700 08BE, 0080,073D,0017,(487,0000,1 Page 22;2 16692 16693 08BC, 0014,0036,4033,0087,00FE,1 =11011 L 13 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 : Console Command Dispatch Table 167| s T0C "' U PO N NN NN b —3 — o3 b aob oo b NN NSNS NN N ¥, ¥ o NI = OO 0NN [« SN NN LYY N T TR TR T TR TR TR TR M DI PR PR 16:30:35 M 13 . . . Entry Point CN.DO.EXAMINE Cutput TEMP? RTEMPY MTEMP10 MDR 0 . . . . . . . . P data to be typed by CN.TYPE.RESULT CN.TYPE.CHAR CN.TYPE.DATA MP .MFPR . . . . . . PR AN . to phy Subroutines/External Labels (N.TYPE.RESULT ’ This section processes all examines, MDR is either loaded from memory from a GPR, for IPR's MP,MFPR is celled to get the data into MDR. or It a default address is to be used it is detectad here and the new detfault address for the next examine/deposit is also calculated here, AR AN N A AN =0 CN.DO. EXAMINE : - R A - R R AR " AR " MLTEMP1]_RLTEMP10) o1 ;6746 Space char to type in (N.TYPF.RESULT Input IPR # to MP.MFPR and hold result MM, TEMP? Save MDR when converting virtual Temporary . DREG Address GPR to be examined RNUM Mask undefined bits from PSL LONLIT TEMP1, TEMPG6, MT EMR8, RTEMPB, MTEMP?, RTEMP10 Resources ¢ . L U983, 0886, 75BE,6030,44A7 ,008(,F Address to be typed by CN.TYPE. RESULY n (N, TYPE, RESULT # of difiits to type . . L EXAMINE ROUTINE" Console Command Parser k***kik****‘kt***fitfit**tti!ltitttitfit**it*tt*k*****tt*ktlflt***tktfi*i**ifi**t*i . . S U982, U836, 15BE,4032,8047,0098,3 Page CLOKX Rev 13,00, ¢ lock rate = 160ns EXAMINE ROUTINE t 1MOO1) MICRO2 28-NOV~83 Console Command Parser [o s Yo Yo Xe Yo o NvNodoNa Ho Yo No Xo Yool (MT098.MCX CONSOL MIC . - A AR R AR AR AR AR R AR AR AR AR AN RA AR RRAARRR : USE ADDRESS FROM PREVIOUS (OMMAND. e - VA_D_METEMP7I_RLTEMP1] RN KRR : LOAD ADDRESS TO EXAMINE AND SAVE 1T 168 3 L 0939, 0885,2592,4039,8047,0491,8 NIV = OO0 ~ 200 N 13 EXAMINE ROUTINE RLTEMPS) _MLTEMPB], wB<1=-0>7" ’ MOVE NEW SPACE SWITCH TO SAVED SPACE SW]T(H, BRANCH ON SPACE SWITCH. 00~-mmommmeescee oo ; ; H M[TEMP10] L1 700501, ; 'P' FOR {N.TYPE.RESULT SAVE MDR i 10=mmmcmmmem e e e: ANUM_RLTEMP1], ; LOAD GPR ADDRESS PUSH,NEXT/CR.VIRT. T0.PHY NEXT/CN.E.IPR ; GET VIRTUAL ADDRESS [NTO TEMP? : DO EXAMINE OF GPR .GPR R MLTURPTI 0480,1002,403D,8467,0090,3 LOAD ; ninii kbbbl H L Rl RCMM. TEMP2] MIMDRJ, ; NEXT7CN.E Page CLOKX Rev 13.00, Clock rate = 160ns NEXT/CN.ERAMINE U93A, 0081,D5BE, 4030,4047,008E,5 0938, 16:30:35 -------------------------- - O CO NN R 0938, 0D86,AC37,0032,8047,008D,A TR PR 08(F, 0084,8592,4272,0047,0093,8 TM “imevems -~ I -~ ' NN NN NN SN | \):mmu:\n\.n\.n\n\.nvu\x\ &~ | M0 MICRO2 28-NOV~83 Console Command Parser (oY Yo Yo Yo Jo o do Jo Jodonlo ~ (MTOG8 .M X CONSOL .M e ' TO MDR FOR MP.MFPR : MOVE IPR # OF IPR ; DO EXAMINE CNLEXAMINE: 030A, 0080,8387,0000,0607,008D,F L ; SET MME ACCORDING TO SPACE SWITCH RCTEMPO_MCTEMPO], ; SAVED SIZE SWITCH, WB<5=0>2 TNEXT/CN. EXAMINE. 10 , 0884,9592,4232,4047,008C,0 080F i 08C2, 084,0731,0002,8050,008C.3 MEMSCR_MLTEMP8I.RL . 24 MOVE NeW SIZE SWITCH TO : BRANCH ON SIZE. =0000 . 10: CN.EXAMINE 20010 ;0010=========mmmmm—m—————————— ; READ,SIZELBYTED, ; :; RETEMP10]_D+CONX(1) 1001 =mm - memmmmmmmmmemam——————— ; MDR_MCMDRJ.RL .24, NEXT/CN, TYPE .RESULT : 0803, QUB1,2387,0000,0467,008F, 8 4 u u8la, 0884,0731,0¢12,8050.,008(,5 21000 b 808, 0084,0731,0022,8050,008F ,8 LEFT JUSTIFY 2 DIGITS TO TYPE. ;0100=~cmmmmmmmmmmm e —————————- ; READ, S1ZE[WORD], ; ; RETEMP103_D+CONK (2) UPDATE NEW DEFAULT ;0107 === s rmmmmmmmmcnnm e ————— ; MDR_MIMDRI.RL.16, : LEFT JUSTIFY &4 DIGITS TO TYPE. NEXT/CN. TYPE . RESULT 085, v481,2387,0010,0667,008F,8 ; ; UPDATE NEW DEFAULT ADDRESS ; ADDRESS ;1000=============mmmmmmmmmammn= . READ,SI1ZFLONG], RCTEMPI0] D+CONX(4), NEXT/CN. TYPE.RESULT ; : : UPDATE NEW DEFAULT ADDRESS 169 CMTO98.MCX CONSOL L KIC MICRO2 28=NDV=83 1M01) Console Command Parser 4 0984, 0080,1003,803D,.467,049F 0985, 0484,0735,0022,4047,008F,0 = OO 00 A AN A A O AN S A A L AN I 0BBL,067E,7807,F847,0098,4 —= D NOCO 0914, NP u9te, 0186,AC37,0032,4847,0039,8 DS L I 0084,1592,4031,0047,0091,6 TR TR S e . TR u 090D, [P T S 09Ga, 0986,6037,0037,F847,0090,D P 0903, 0080,058F ,4033,0007,0090,4 SR Q8FF, 0484,7711,0002,8047,008F,8 S P ,F 08F6, 009(,0735,0022,4047,008F €00 1500 00 €O Co ©0 00 00 Co 00 0o GO 00 Co ©0Co G Cn £ $5 60 00.CO (3 02 00 00 X Co Co €3 £ 00 € 00 00 00 O 0000 00 0906, 04A6,958E ,4032,4047,008F ,6 T V] ) PR R T 08F 0O, 0480,05BE ,403(,C467,0090,6 P 0BEE. 0986,A037,0032,3847,008F,0 T ! 0BES, 0884,13F7,0031,0047,008E,€ OO0 OO OO O 0O~ i =l=lwlalelelelolels] SOLPUNOMS NURNINOPININ —2 md e b b =3 e L LAIND 2 O O O NS — O OCO PO IO NS vMU~ O DO 16798 B 14 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 : Page EXAMINE ROUTINE (NJE.GPR: -------------------------------- RCTEMP7I_MLTEMP11.NIBBLE SAVE GPR ADDRESS CLEAR'!G IGNORED BITS ow --------------------- - - - - RCTEMP10]_ZLITOM47] . : LOAD 'G' FOR CN.TYPE.RESULT . MDR_RCGPR.R] 906 snkheaksskFORCE CNQE'GPR'IPR: o ADDRESSHannatnns ¢ . A W R W T P W T - MOVE SELECTED GPR TO MDR FOR TYPEING. - W e e 0 e W Oy IGNORE ANY SIZE SWITCH TYPED. ------------------------------- LOAD # OF DIGITS TO TYPE FOR RESULT --------------------------------- RITEMP10] MITEMP7I+CONX(1), ADD 1 FOR NEW DEFAULT ADDRESS. NEXT/CN. TYPE,RESULT (N.E.]IPR: . W D G T B RESTOR: PSL b " o o o o o o g o O o o e B e B O e INCASE EXAMINING IPL e CLOBBER TO AVDID TYPEQUT IF ERROR. C . - e e T T e S W o T Py o T O e ke e G SAVE IPR ADDRESS -------------------------------- MCTEMP10)_ZLITOC49), LOAD 'I' FOR CN,TYPE,RESULT GO FETCH THE IPR NEXT/MP MFPR CNLE.PSL: LONLIT_[3020FF00) LT L P L L L L LOAD MASK FOR UNDEF INED BITS, Le —-———.- MDR ML TEMP1),ANDNOT,RLLONLIT], PUSA,NEXT/CN, TYPE.CHAR R MOVE PSL INTO MDR FOR TYPEOUT TYPE <CR>CLF> ------------------------------ ROTEMP9)_8,NEXT/CN.TYPE.DATA LOAD NUMBER OF DIGITS FOR TYPEQUT, MICROZ CMT098.M(X ; : CONSOL. MIC 1M(O1) 28-NOV=~83 Console Command Parser v U 0989, 001(,8592,4272,0047,0093,¢C ; Entry Point 16849 E This section processes all deposits, '6853 'tttttttt**k**t*t*t*t*t*htt\*t**fi*l‘*****I***t****ti*tttt*fit************t****** ;6854 =0 . J 093D, 0084,1592,4031,(4A7,0093,7 ] U 0936, 008,058 ,4030,4047,0094,4 . U 093F, 0CA0,1002,403D,8467,00%2,8 u 0928, 0098,058F,4033,0007,0092,F U 092F, 049C,1£50,0032,8047,0093,3 U 0933, 0480,3592.5030,0047,0039,0 NEXT/CN.PARSE. COMMAND :2%25 ;gggg lf no data has been entered it 0 =00 8% ; :63;9 , 6878 s RING BELL ; CHECK IF A NEW ADDRESS WAS SPECIFIED ; : USt ADDRESS FROM PREVIOUS COMMAND i ! : UPDATE SAVED SPACE SWIYCH AND BRANCH. 00=s=mmmmmmemm o mmam e ; VA_RCTEMP?] _MLTEMPY], ; LOAD ADDRESS TO EXAMINE AND SAVE IT NEXT/CN.DEPBSIT.PHY ; VA RCTEMP7]) MLTEMPI], * LOAD ADDRESS TO EXAMINE AND SAVE [T | : , ;10=em=mmmcmmcmm e c i mcc o m e H ;6879 ;ggg? RNUM_RCTEMP1], NEXT7CN. DEPOSIT GPR ; LDAD ADDRESS TO DEPOSIT IN GPR :6882 ;gggz I MDR _MOTEMP1],STEPC 2 : DEPOSIT INTO IPR : MOVE IPR # TO MDR FOR MP.MTPR 16892 i lseessmeemssmemeemeeemeceeaae : [TEMP8J _MCTEMPB],CLEAR FLAG3, : CLEAR FLAG3 TO AvOID APT COFLICT NERT/CN.DEPDSIT.PHY J6 i 3 NO DATA TO DEPOSIT YET 3 1 16875 16891 ! : Uttt etetnb o Gutmiuttndatetatndetetetdtnt : NO ADDRESS WAS SPECIFIED we<1-0> 16872 16888 ;2238 é | M[TEMP]J _RCTEMP10] ;gggg ;gggg ! :l=smesmeccessessssemssceemeeas; WB _MLTEMPOD,WX.NE.O? 36863 Y 16885 5 CN.DO.DEPOSIT M[TEMPSJ Lit0l?7], 16860 . . CN.DO, DEPOSII :2323 26871 171: a default address is to is detected here and the bell is rung be used it is detected here. MP,MIPR is called to deposit into IPR's, The new default address is calculated and the size switch updated. 36857 16866 16867 ; DEPOSIT ROUTINE'' (onsole Command Parser '&tttttttttt't'ttttt*tt*twtttt*t*Rt*ww**t*****kt**kt***t**tQ*****tiQifi*iiifiiit 6870 U 093C, 0084,1592,4031,C04A7,0093,7 DEPOSIT ROUTINE Page 26846 :2322 U 0988, 0886,158t,4032,8047,0098,9 CLOKX Rev 13,00, Clock rate = 160ns T0C "' ;6850 ;6851 ;6852 U 0987, 0480,0592,4A70,0047,0098,8 : 14 ;ggzg ;ggzg J 0986, 0D86,5(37,0030,3847,0093,4 16:30:35 C 0 : emememssssssemeeeeeeeeeeeeeeeee ; PStL_RCTEMP12],DEC STEPC ; RESTORE PSL INCASE DEPOSIT TO IPL. i | 1 jm=eme=msesmece——meeccece—ceeee- ; STEPC_O FOR TBiA ROTEMP10I_MITEMP11+1,DEC STEPC ; UPDATE DEFAULT ADDRESS : ‘ jmmsmsmsssmesssesssssscsmeneees ; ' Q_MITEMP3],NEXT/MP,MTPR JLOAD SOURCE DATA FOR MP,.MTPR CONSOL.MIC 28-NOV-83 tonsole fommand Parser MICROZ M0 ;6893 ;6894 I 0937, 0084,9592,4232,4047,008D,0 08be, 0080, 3592,4000,0508,008D,3 16897 16898 16899 16900 6901 : D 14 CLOKX Rev 13.00, Clock rate = 160ns DEPOSIT ROUTINE Page 172 CN.DEPOS 1T.PHY: RCTEMP9] MLTEMPO], ;6895 ;6896 16:30:35 ; : UPDATE SAVED SIZE SWITCH AND BRANCH. WB<5-0>7 INEXT/CN.DEPOSIT.SIZE =0000 CN.DEPQS 1T.S1ZE: =0010 $0070==m=mmmmmmiram e mm e oo eH : WRITE MCTEMP3],SIZELBYTE] DO THE DEPOSIT $001T mmm oo oo s e nem e ; RCTEMP10) _MCTEMPZI+CONX(1), * UPDATE NEW DEFAULT ADDRESS. : NEXT/CN.PROMPT 0803, 0€84,7711,0002,8047,008A,F ;0100~~-cnmmssiennmmne— e ———— : i DU THE DEPOSIT WRITE MCTEMP31,S1ZETWORD] 08b4, 0480,3592,4010,0508,008D,5 1010] == mmemccmama—ccm———— -; : UPDATE NEW DEFAULT ADDRESS. RETEMP10] MLTEMP7I+CONX(2), NEXT/CN.PROMPT 08D5, 0884,7711,0012,8047,008A,F =1000 08D8, 0C80,3592,4020,0508,0094,3 : e e oo oo e ; e ;1000 === m WRITE MLTEMP31,S12ELLONG)] : DO THE DEPOSIT RCTEMP10] MLTEMP7I+CONX(4), + UPDATE NEW DEFAULT ADDRESS., NEXT/CN.PROMPT 0943, 0884,7711,0022,8047,008A,F CN.DEPOS IT.GPR: s M § St v P o = S - 0944, RCTEMP10]_MCTEMP1J4CONX (1) 0484,1711,0002,8047,0094,8 ettt hbetdbedtaintadstetudniniaialninliobedeteiotededndH DEPOSIT INTO GPR RCGPR.R] ML TEMP3], NEXT/CN.PROMPT (0948, 0C84,3592,403(,0047,008A,F OBEC: ADDRESS*xawxkwix; ¥ WFORCE skkunax* CN.DEPOS JT PSL: - - - o o e st e & NO DATA TO DEPOSIT YET RING THE BELL NEXT/CN.BARSE, COMMAND UBEC, 0p86,5C37,0030,3847,0093,4 6934 UBED, 0(84,3592,4033,0047,008A,F = MCTEMPS] 2L 1TOL7], 6936 0BED: = 43 > 20 i i 4 oy e s g RLTEMP12] MLTEMP3], 0 O ey S o B gy § DEPOSIT IN SAVED COPY OF PSL NEXT/CN. PROMPT i YYD CMT098.MCX : ; 16:30:35 : 28-NOV-83 MICROZ 1M(01) Console Command Parser CMT098,.MCX CONSOL MIC .T0C "' ;6939 TRt . ; H HALT and HALT PENDING and does an IRDI. ;6945 HALT PENDING is set. ] U 0941, 005%4,3592,4037,0047,0487.,9 16948 ;gggg CN.DO.CONTINUE: U 0942, OD16,3D37,003%2,0047,0095,3 AL AL PSL_RITEMP12], 00 16954 (N.DO.STARI: 100emmmmm 2829 e mcmcn e cc e e cn MLTEMP3] _RLRTMPGPR] -6958 ; e ; NO ADDRESS HAS BEEN SPECIFIED, R[RTMPGPR] MCTEMP3],SET FLAG2, PUSH,NEXT/IN.INIT : USE CURRENT CONTENTS OF PC. M[TEMP3J 7LIT16L401, 2822 CLEAR FLAG2 ; MOVE NEW PC TO RTMPGPR, SET FLAG TO ; TELL INIT THIS IS NOT POWER UP. ;2898 =0 U Q98A, 0UYF,C5B7,0030,0687,049F 4 16973 gg;g N ) { 0988, ODBO,0D37,0436,0247,0094,6 16976 6977 gg;g =00 16980 =01 . U 0945, 0480,0036,4030,0047,0083,1 ;6982 ;2832 }gggg J 0946, 0880,058BE,4033,4607,0004,7 _ U 0947, 0080,3592,4(80,02(7,0094,5 :683; ;6 ;6989 $6990 1699 ' } SETUP TO CLEAR HALT & HALT PENDING : CLEAR FLAGZ TO AVOID CONFLICT WITH APT 00 em=e=wsssssesosesccssmmmoooones H ;6968 .6981 | (N.CLEAR. HALT ;6964 ,6972 : 1 ----------------------------- ; ;6959 ggg? 16971 ] i : RESTORE SAVED PSL NEXT/CN.RESTORE.PC 6927 CN.RESTORE .PC: u 0953, 0BA0,058t,4037,0487,0098,A : AAAAARARALA AL AL LS H***t'(*'«'f**t\kit*fl***t***k***ttk*i******tt*t*****fi****************t*t***t****** ;232% :ggg% i For CONTINUE, HALT and HALT PENDING are both cleared. ; ,6955 START, NEXT, CONTINUE COMMANDS'' For NEXT, (takes C(N.DO.CONTINUE entry) HALT is cleared and ;6946 16951 i 173 ! CN.DO.START, CN.CLEAR.HALT, C(N.DO.CONTINUE ;6943 :69(,7 U 0940, 0086,35BE,4037,€047,0094,1 LR R A A A AL A A LA ARSI AL Page For START, this section loads PC and does INIT and then clears ;6944 ' e Entry Points ;6942 J 094F, 0880,05BF,4033%,0007,0095,3 Console Command Parser ;gg%g :282? E 14 CLOKX Rev 13.00, Clock rate = 160ns START, NEXT, CONTINUE COMMANDS PC_RIRTMPGPR],STEPC_2 ; LOAD NEW PC, STEPC NEEDS TO GET A 1, B ; i MEMSCAR MUFPDOFFSET]_O, DEC STEPC, PUSH,NEXT/CN.TYPE.CHAR (N,IRD1: : PREPARE TO RESTORE MME, AND CLEAR : FPDOFFSET TO INDICATE NOT CONSOLE MODE ¢+ STEPC = 1 TYPE <CR><LF>, Jimmmmmmmcecccncm e — e ———— : CRAR_ZL1T16L0C0], ; LOAD ADDRESS OF HALT BIT. FLAGD? ,NEXT/CN.RESTORE.MME 5 CHECK IF INIT WAS DONE R e taheatetsttt bttt H NEXT/B0. IRD? s LEAVE CONSOLE (N.RESTOREOMME MEMSCR_RLTEMP13] ettty E INIT NOT DONE SO RESTORE MME riniebtededeint bt H CONREGS ML TEMP3], FPS32,NEXT/CN. 1RD1 f : CLEAR HALT & POSSIBLY SET HALT PENDING ; LOOP UNTIL ACLO GOES AWAY. ‘ i : ; MICROZ2 (MT098.MCX CONSOL.MIC 1M(OD) Console Command Parser .T0C "' }6994 RN R KRR AR AT KAk hk ) MBA address for booting ;7003 This section processes a Boot command, if no device was specified control is simply passed to BO.BOOT. If a device was specified the device specification is parsed here to set up the MBA and UNIBUS I/0 page addresses in R1 and R2 resgect1vely, and the PC ;7009 ;7010 ;;8}; ' AR R Ak R AR ARk R R AR AR AR AR AR AR A AR B0.BOOT 7008 U 0958, 0098,058E,403D,4487,0098,E BOOT COMMAND'' Subrout ines :7007 U 0956, 0780,07F8,6FDF,FB847,0095,8 : 16999 ; ;7000 27001 ;7002 \ 0954, 0898,0587,0030,0607,0095,6 (Console Command Parser R1 :gggg U 098D, 0884,3592,4035,4047,0080,6 BOOT COMMAND Resources ;6996 1J 098C, 01A8,0(B7,0030,0687,0095,4 Page CLOKX Rev 13.00, Clock rate = 160ns : ;238§ 16995 F 14 16:30:35 28-NOV=83 R2 B0.BOOT_SUB MV.TEST . : ;xw s UNIBUS 1/0 page address for booting is loaded with the address of the appropriate muion sk hok sk R R R ROk IR R AR KR R boot rom. Rk A Ak R Ak CN.DO.BOOg: fiEMSCAR_ZLlTZé[OJ,STEPC_b. 20re : ;7014 NEXT/CN.BOOT.WITH,.DEV E;g}g RCR51_METEMP3],NEXT/B0.BOOT 3;818 CN.BOOT.WITH.DEV: };825 MEMSCR_0,DEC STEPC :7023 T ;;85? ;;8S§ Ak KRR =0 ;7013 17026 R A PP LONLIT_LO0F20400) 0 n ; LOAD ADDRESS OF MME TO TURN IT OFF. : : * TURN OFF MME. mesemman ; : LOAD ADDRESS OF FIRST BOOT ROM, T G ; STEPC=4 PC_RLLONLIT],DEC STEPC ; USE XB FOR CHECKING FOR PROPER ROM, E;g%g CN.BUOT.CHK.DEV: 27031 U 098E, 0481,729C,0850,6047,0888,6 439+ ;7032 ;;8%2 :7035 U O98F, 0%A6,7(87,0031,9847,0096,( 27036 . 7037 WB_ZEXT(XB)-(RLTEMP1],RR,16) PC_fiC+2. ; CHECK IF DEVICE NAME MATCHES. SIGND CMP?, NEXT/CN.BOOT.CHK.DEV.10 P B e S : H e B E L LY MOTEMP7] 2UL1T24[33],STEPC_2, NEXT/CN.ERROR : ; NO MATCH FOUND FNR BOOT DEVICE. 174 : CMT098 . MCX CONSOL .MIC M1 28-NOV=-83 Console Command Parser ;7038 17039 U 0886, 0081,AC11,0337,F487,0098,E u 0887, 0C81,A000,003D,4487,0095,A U 095A, 0080,0037,2037,9847,0095.F U 095F, 0584,1092,0037,F847,0096,0 U 0960, 0D80,7D93,4A32,0847,0099.0 4 0990, 0580,7D93,4A32,1047,0099,2 u 0991, 0186,8DB0,0034,0047,0096,¢2 U 0962, 0586,9071,0036.7047.,00A0.0 u 0992, 16:30:35 : MICROZ 0180,7D93,4A32,1847,0099.4 17040 17041 17042 17043 17044 G 14 BOOT COMMAND =10 CN.BOOT.C?K.DEV.10: - - o e § o e Y - INCREMENT TO START OF NEXT ROM PC_MLPCI+ZLITOLOFED, DBZ STEPC?,NEXT/CN.BOOT.CHK.DEV ; - e - S . - e 00 0 17045 SAYE OFFSET FOR ROM. ;7046 ;7047 s - - = o > P = R o o o o e & SETUP BASE FOR LOADING R1 AND RZ ;7048 27049 ;7050 [ ;7053 PRt ;7051 : 7052 e L T T T w8 _METEMP7].XOR.ZLIT8L41], ;7057 B MCTEMP71.XOR.ZL1T8L42), 7058 T " ISOLATE DEVICE TYPE (A, B, C, OR D) et bttt ;7054 27055 ;7056 Page CLOKX Rev 13.00, Clock rate = 160ns WXTEQ.0? ' CHECK IF DEVICE TYPE 1S A ; CHECK IF DEVICE TYPE IS B WXTEQ.0? ,NEXT/CN.BOOT.DEV.B : MCTEMPB]_D-7L 1780807 ; VALUE FOR R1 MCTEMPSI _D+ZLIT1200CET, ; VALUE FOR RZ : : CHECK IF DEVICE NEXT/CN.BOOT.DEV. TYPE.OK =0 CN.BOOT, DEV B: UB_MCTEMP7I.XOR. 2L 118437, WXTEQ.0?,NEXT/CN.BOOT.DEV.C : PE IS C ------—-—-----------—--~------- VALUE FOR R1 U 0993, 0586,8089,0033,0047,0096,8 it OOt U 0968, 0186,9071,0034,7047,00A0,0 U 0994, 0180,7D93,4A32,2047,0099,6 MLTEMP9] D+ZLIT12L08E], NEXT/CN.BOOT.DEV. TYPE.OK : UB_MLTEMP7].XOR. 7L 1T8L44], WXTEG.0? ,NEXT/CN.BOOT.DEV.D : : =0 (N.BOOT, DEV C: VALUE FOR R2 CHECK IF DEVICE TYPE IS D ---_--------------------------~ VALUE FOR R1 U 0995, 0186,8DB0,0032,0047,0097,0 mmmememe—cc e c e s e ee y 0970, 0186,9071,0032,7047,00A0,0 MCTEMPST D+ZLI1T12[04E], NEXT/CN.BOOT.DEV, TYPE. 0K : : VALUE FOR R2 175 LD CMT098.MCX CONSOL.MIC MICRO2 1M(01) Console Command Parser ;7091 17092 0996, 0DAG6,7CB7,0031,A047,0096,C 0997, 0986,8DB0,0031,0047,0097,2 0972, 0586,9071,0030,7047,00A0,0 17093 ;7094 DA0O, 0180,1C10,0842,0847,0889,D 413+ 089D, 0586,1C11,0030,4847,0089,F 089F, 0884,13F7,0034,0047,00A0,1 0A01, 0C85,A592,4037,C047,00A0,2 0A02, 0084,8592,4034,4047,00A0,3 0A03, 0C84,9592,4034,8047,0099,8 0999, 0885,A001,0037,C047,00A0,4 0A04, 0081,6036,4280,0047,0099,A 099A, 0C80,0036,4030,0047,0562,C 0998, 0C40,0036,4030,0047,0094,0 CLOKX Rev 13.00, Clock rate = 160ns BOOT COMMAND WCTEMP7] ZL1724034,STEPC 2, 17098 17099 17100 17101 NEXT/CN.ERROR : TYPE MUST BE A, B, C, OR D ALTENPSY D-7L1781203 : VALUE FOR R1 MUTEMPS] D+2LI1T12000E1, H VALUE FOR RZ NEXT/CN.BOOT.DEV. TYPE 0K ;;}85 CN.BOOT. DEV.TYPE.OK: W8 _MCTEMP13=-ZLITOC41D, ' 17109 =01 [Efl513 TwezLiTOLOl ; CORRECT LOW NIBBLE IF A=F SIGND CMP DEF?,S1ZELBYTE] :;}}? 17112 LD ALR3]_MLTEMP11.NIBBLE :;}}2 17115 : CHECK IF DEVICE NUMBER 0-9 OR A-F eH ; LOAD DEVICE NUMBER RCRIMPGPRI MCPCI : SAVE OFFSET FOR NEW PC 17119 RCR1]_MLTEMP8) : LOAD MBA ADDRESS E;}g% RCR21_MCTEMPOI : LOAD UNIBUS 1/0 PAGE ADDRESS kLRSI MCTEMP3I, : LOAD BOOT FLAGS :1119 ‘7118 419 17125 =0 PUSH,NEXT/BO. BOOT_SUB ;;}59 17128 713 WB_RNUM, WB<0>7 ;}gg :;}gg 17137 17138 ; R[fi?fiEGEES-QEEEjifié ___________ ' LOAD NEW PC :;}%3 1713 Page ; 17106 ;;}85 7124 0998, 0084,3592,4035,4047,0482,B H 14 CN.BOOT. DEV.D: 17097 17105 16:30:35 : =0 17095 17095 $7104 t 28-NOV~83 =0 PUSH.NEXT/MV. IEST ; CHECK IF MICRO VERIFY IS DISABLED. ) :* DC MICRO VERIFY. -—___-__—_h--_------—--------_- SET FLAGO,NEXT/CN,DO.START H X{(binary load/unload) LI I T ) ‘ COMMAND'' X(binary load/untoad) AR KR AN KR KA AR KRR A AR Resources COMMAND R A AR R KR AR R AR AR R AR AR AR kA Ak ko kk Ak k ket TEMP1 Memory address to read/write from/to TEMPS TEMP6 One byte send/receive buffer Checksum of bytes sent TEMP3 Byte count TEMP?7 177§ . Checksum of bytes read T TR T I e R AR IR DI PAE IR U RN T R QU L PR T S Page CLOKX Rev 13.00, Clock rate = 160ns : ARk R KA AR QU G D G U S QR 114 B For operation of the X command refer to the Midrange Systems Console Language Specification under control of the VAX architecture group. Briefly, the command bytes including the checksum byte should add a load/unload the bytes sent/received when to zero. Likewise on added together including the checksum byte should total zero. s e L L e S A L S A A A AR A d =0 CN.DO.X: MEMSCR_O, ;; PUSH,NEXT/CN.GET. CHAR :; GET CHECKSUM BYTE. WB_MCTEMP?].AND.ZLITOCOFFJ, ; ;0 H NEXT/CN.ERROR H CLEAR MME ; SET APT FLAG (RECEIVE BINARY MODE) SET FLAG?, S P U 099C. 0850,05B7,0030,0607,049F A 16:30:35 Console Command Parser U T DI N BN IS IS DS S B s e oo OIS AL O g w DD 0O NN = O OO0 N Console Command Parser PR CONSOL.MIC NN NN NN N NN NN NN N N NN SN N N —_ NSNS ~ — * CMTO98.MCX 28~NOV-83 MICRO? U 099D, 0980,7C12,0A37,F847,0099,E MCTEMPZ] ZLIT24[30],CLEAR FLAGZ,; U 099k, 0D16,7(B7,0031,8047,0096,C IR A 0 e NNV = OO Co OO0 NN e N N N U 0A05, (C80,1002,403D,8487,0040,6 R U 08CB, 0986,3(93,8034,0047,00A0,5 R U U 08C9, 0580,1€10,0030,0CA7,00A0,7 o T ¥ o o > > CHECKSUM ERROR H PREPARE TO SEND >>> trbiubedninledtted ittt talet : ; ; PUSH,NEXT/CN.TYPE. CHAR - CHECKSUM IS ZERO e MCTEMPS] ZLITOL3ED, 02000 00 0000 0C COCO00CO N~ SNINNNN NN NN NN NN N Oyttt U 09A1, 0880,3592,46F0,0047,008C,9 - STEPC_ZLITOL3] J 099F, 0D80,0C37,0030,1907,009A,0 4 U 09A0, 0586,5C37,0031,F047,049F : CHECK IF WXTEQ.0? > e g > ot o o B e W SEND >>> & CHECK IF LOAD OR DUMP X LOAD LOAD ADDRESS FOR LOADING 2 T e X DUMP Y CLEAR BIT 31 OF COUNT O S S e e e Bt o w4 § > T - PC_MLTEMP1] ’ ; LOAD ADDRESS TO BEGIN DUMP. e awes e e T Aaan 4 e — - CMT098 . MCX CONSOL .MIC MICROZ2 1mM(01) 28-NOV-83 Console Command Parser ;7191 U 0AQ6, 0486,65BE,403D,8047,008F,2 17193 ;7196 ) . U O8F1, 0C85,759E,4001,6047,049F,4 17197 ;7198 -;;88 ;7201 17202 U 08F2, 0C86,3080,06FD,8047,088F,1 344 ) ;7203 .;Sgg ; 7206 7207 U 08F3, 0484,6593,0031,4047,049F4 ;588 U 08F4, 0010,0036,4030,0047,008A,F 7211 17210 J 14 CLOKX Rev 13.00, Clock rate = 160ns X{(binary load/unload) COMMAND Page 178- emeemmemcee— e o mdccccnc oo ; 17192 17194 57195 16:30:35 : MOTEMP6] RLZEROJ, =000 =001 ; ZERD OUT TRANSMIT CHECKSUM ; NEXT/CN.X.DUMP, 10 CN.X.DUMP: ;00 rmmm e mm e m e c e cm—— e e c e e H RCTEMPS] ZEXT(XB) PC PC+1, PUSH,NEXT/CN.TYPE.CHAR CN.X,DUMP.10: 1010 e NEXT/CN.X.DUMP ; DECREMENT COUNT AMD CHECK IF NEGATIVE ; ettt bl H RLTEMPS) _-MLTEMP6], PUSH,NEXT/CN.TYPE. ¢HAR s 100~~~ GET A BYTE FROM MEMORY 10 SEND SEND IT. s e nem e ; MITEMPZ] MB-1,WB<31-30>?7, PR . : mmm ; SEND COMPLIMENT OF CHECKSUM : e cm e ccccannas ; CLEAR FLAG2,NEXT/CN.PROMPT ; CLEAR APT FLAG, GET NEXT COMMAND, i J—— ; ; (MT098.MCX CONSOL .MLIC 28~-NOV=-83 MICROZ2 1TM(OM) Console Command Parser U 0AO7, 0886,75BE,403D,8047,00A0,8 : U OAD8, 0481,B711,0000,04A7,049F,B U 0AD9, 0C86,3080,06FD,8047,088D,9 344x ettt ;7219 VA MLVAJ+CONX(1), 7220 17222 ;;gsz 17226 i1eer :7230 7233 U 09A2, 0D16,7(B7,0031,8047,0096,C 17234 ir23 17237 U 09A3, 0816,75BE,403D,8047,008A,F :2238 17239 ittt H ; GET NEXT BYTE : j : l | ; ] , ; 0} mmmmemmem—mmmccesee—eeam——— ; i $1lmmmom o mmeecmemmee—mmme e: ; ; : WRITE MLTEMPSJ,SIZELBYTED, NEXT/CN.X.LOAD.LOOP WX7EQ.0? =0 : INCREMENT DESTINATION ADDRESS. : 179! f v e L CE LI : : DECREMENT COUNT AND CHECK IF NEGATIVE MITEMP3]_MB-1,WB<31-30>? WB_MLTEMP7].AND.ZLITOCOFF], resl Page : CLEAR CHECKSUM PUSH,NEXT/CN.GET.CHAR.NO.ECHO . 17229 u 08DB, 0980,7C12,0A37,F847,009A,2 CLOKX Rev 13,00, Clock rate = 160ns X(binary load/unload) COMMAND CN.X.LOAD.LOOP: 12225 =01 U 08D9, 0880,5592,4000,0508,00A0,8 K 14 :;S}z CN.X.LOAD: E;S}g MITEMP?1_RLZERO] E;S}g i 16:30:35 : : LOAD 1 BYTE INTO MEMORY : LOOP BACK FOR MORE : CHECK LOW BYTE OF CHECKSUM FOR ZERO e; MLTEMP7]_ZL1T24[30],CLEAR FLAG2,; NEXT/CN.ERROR ; ;lemmessescscccssessssessesseees ; M(TEMP?] RCZEROD,CLEAR FLAG2, NEXT/CN.PROMPT CHECKSUM ERROR ; CLEAR COMMAND CHECKSUM AND APT FLAG : i | ; | ! ; ; 1M(01) 28-NOV=-83 Console Command Parser MICROZ CMT098.MCX CONSOL. MIC $7240 ;7241 .10C ' ,10C ' 17243 L7044 7265 ;7246 AR ;7242 17247 17248 : ; 7249 : :;Sg% ; ;Sg? ;7258 17259 ;7260 U 08F8, 0586,5037,0030,6847,049F,4 27261 ;7262 17263 :;ggg ;7266 U 08F9, 09AE,5C37,0031,0047,049F,4 ;7267 ;;Sgg ;7270 o Q8FA, 0484 ,A59¢,4031,4047,049F 4 ;7271 ;;S;% $ 72074 J D8FB, 09AE,S5C37,0031,0047,049F ,4 ) ) v UBFL, 0986,A(37,0030,4047,04A2,9 ;2275 ;S;? ~7278 ;7279 17280 AN AN AN Entry points CN.TYPE .RESULT CN.TYPE.DATA Input MDR RTEMP9 MTEMP10 ' 180 CN.TYPE,RESULT" : RN " AR AN R RRAR N R RN RN RN R AR AR AR R R AR AR TEMP7 Page : General Console Routines"' (onsole Command Parser Console Command Parser ; AR AR Rk kR kkk Yk Ak Ak kA k Number to be typed Address to be typed Number of digits in result Space indicator (P, V, I, G) : ! Jumping to CN.TYPE,RESULT wiil type the following: <CR>CLF>6 spaces<MTEMP10 byte 0>6 spaces<TEMP7>6 spaces<MDR> ;72% 17055 ;ggg 14 CLOKX Rev 13.00, . Clock rate = 160ns 16:30:35 : General Console Routines L . . Jumping to CN.TYPE.DATA will type the following: ; A kR 6 spaces<MDR> R AR AR R R AR A AR AR R AR R AR AR AR AR A A R AR A AR R AR KA R AN R RN R AR R AN R R AR AR A AN =000 (N, TYPE.RESULT: 1000===oocmmomcc e st —— MCTEMPS) ZLITOCOD]. PUSH, NEXT N.TYPE. CHAR ’ ; TYPE <CR><LF> ;00 e ememmmses e cm e cnm e MLTEMPS] ZL1T0[2OJ STEPC_6, PUSH,NEXT/CN.TYPE. CHAR ;010e e memam——— RCTEMPS] MLTEMP10], PUSH,NEXT/CN.TYPE, CHAR ; TYPE 6 SPACES., ; TYPE SPACE INDICATOR (IE P,V,G,1) R Rt datakialal H M[Y*MPSJ 201T0(20],STEPC_6, PUSH,NEXT/(N.TYPE, (HAR ;100 e e - === ADDRESS IS ALREADY MITEMPI10]_ZLITO[8)], PUSH,NEXT7CN. TYPE.NUMBER | * TYPE 6 SPACES. TEMP? N INT ; SETUP # OF DIGIYS FOR CN,TYPE,NUMBER ; TYPE NUMBER IN TEMP7, (MT098.MCX (ONSOL.MIC MICRQ?2 1MC01) 28~NOV=83 (onsole Command Parser 27281 ;7282 CuRFD, 09AE,5037,0031,0047 ,049F ,4 L JBFE, 0(86,A58E ,4032,4047 ,009A, 4 ;7285 U 09A4, U085 ,2592,4031,(047,0442,9 ;7290 1729 ;7292 = = :7293 0 . U9AS, 084,959 ,4032,6047 ,008AF :7294 17295 CN.TYPE RESULT 10Temsmemeemco oo e o; PUSH,NEXT/CN.TYPE. CHAR . H ;110=emmmmmmmm——aaa mammm——————— ; :7285 17289 CLOKX Rev 13.00, Clock rate = 160ns MfTEMPSJ ZLITOL201,STERC_6., 17284 ;7288 M 14 (N.TYRE, DATA ;7283 17087 16:30:35 MITEMP10]_RCTEMP9] TYPE 6 SPA(CES. RTEMPY IS # OF DIG S IN RESULT. ; SETYP # OF DIGITSFOR CN.TYPE. NUMBER ekt vt b etriuiatutatetaidebintebedtedete ; RITEMP?7] M(MDRJ PUSH,NEXT/CN. TYPE NUMBER H LOAD RESULT NUMBER TO BE TYPED. N lessssceccescscsnsmmsmonncoonan ; R[TEMP9J MLTEMPS), NEXT/CN.PFROMPT Page H UPDATE SAVID SIZE SWITCH FOR E/G. : GET NEW COMMAND. 181 (MTO98 MCX CONSQL ,MIC i MIC{RO2 {onsole MmN 28-NOV-83 Command Pa:ser ;7296 : 7297 17298 ;7299 :7300 27301 27302 ;7303 7304 AR . . [ A A AR Q94A7, 0980, 5C13,4A72,B047,009A,8 LATL 2 D0 P £80,6772,0A00,0047,009C,2 S i O9AC, O 0980,5013,4A72 4847 0094, L OO 09AB, N AN J NN 0480,6712,0A00,0047,0098,F N U U 09AA, AN WA L (180,5C13,4472,3847,0094,4 LAIUAHA LA N N LA N WA N . 0GA9, R A AR A AN RRAR R AR R A AR ARk kA h Ak bk kkdk switches AN AN KN RN N RN AR AR AR AR AR for all commands. kR kAR KRR AR A AR AR AR AR AN AR AR AR RAL Y GET THE NEXT CHAR FROM THE CONSOLE. L —— R * SETUP TO ECHO RUBOUT OF ‘/°. we _MLTEMPS].XOR.ZLITO[503, * CHECK IF /P SWITCH UB _MLTEMPS] AND. CONX(1), ; CHECK IF SPACE SWITCH HAS ALREADY BEEN : it WXTNE.0? WXTEQ.0? ,NEXT/CN.P.SWITCH L H * SPECIFIED. ikt ———— ¢ _MCTEMPS),XOR.LITOC56], WXTNE.O? Y CHECK IF . WB_MLTEMP6).AND. CONX (1) , Y CHECK IF SPACE SWITCH HAS ALREADY BEEN we MUTEMPS],XOR.ZLITOL47], Y CHECK IF /G SWITCH ws MITEMPO]. AND. conx<1>, Y CHECK IF SPACE SWITCH HAS ALREADY BEEN ue _MLTEMPS].XOR.ZL1ITOC493, Y CHECK IF /1 SWITCH ws M[’EMPb] AND. CONX(1), ; ECK JF SPACE SWITCH HAS ALREADY BEEN WXTEQ.0? ,NEXT/CN.V.SWITCH NN N N NN NN NN 0C80,671¢2 ,0ADG,0067,0098,A RN AR MCTEMPS]_ZLITOC2F], R 0948, R AR AR AR RRRR RETURN [¥1] < S S S i Qi i P N SN = .009B,6 0080.6712,04A00,0047 O 0946, L u R ARk R R RN P O 0O 0L80,5C13,4A72,8047,009A,6 (N.GET.SWITCH" Console Command Parser AR A AR AR R Page (N.GET.S WITCH: PR 0944, (N.GET.SWITCH =00 IR 0986,5037,0081,7847,2000,? CLOKX Rev 13,00, Clock rate = 160ns BUSH.NEXT/CN. GE T NEXT NN NN NN [WNTVITVIIW VN IVALO LY (] U949, N 14 This routine processes all ’ N 0948, 048U, 0036,4030,0047,069E ,A He .T0C " 16:30:35 WXTNE,0? WXTEQ.0? ,NEXT/CN.G. SWITCH WX.NE.0? WXTEQ.0? ,NEXT/CN.I.SwITCH /V SWITCH * SPECIFIED, N Y SPECIFIED. H ; SPECIFIED. 182 e :;gzg 367 Q9AE, 0080,6712,0A10,0047,009C,6 ;7348 =0 ;735% 0980, 0080,6712,0A10,0047,209C,A =0 0982, 0880.6712,0A10,0047,009¢C =0 ;7368 0984, 0D80O,6D92,0430,1047,008D,2 :;%;2 17378 (9RS, (D4d,6012,0438,0044,0990,8 27376 7377 ;7378 H : : we'flf?E§333_3§5'26§§753_" : (B MLTEMPSI.XOR. 211700580, : CHECK IF /X SWITCH WB_MLTEMPG].AND. 2L 1T8[2]. WXTEG. 07 NEXT/ZCN.X. SWiTCh : CHECK IF /X SWITCH ALLOWED, : WX NE.O? :;298 17372 : B MLTEHPS].XOR, 2L ITOLAC], WXTEQ.07 NEXT/CN.L.SWITEH ;;ggg 27371 : WXTNE.Q? 17367 Q9R3, 0980,5013,4472,1047,0098,4 UB_ML TEMP6] .AND . CONX(2), H ean s m——— {leemeseuensmmnossnuen 7360 :;;2; 7363 17364 : WXTEQ. 07 NEXT/Ch.W.SWITEH ;;%gg 17359 0981, 0580,5C13,4A72,6047,0098,2 (B MTTERPS I XOR. ZL1T0T571, WXTNE,0? :;§24 17356 : (HEC F IZE SWITCH HAS ALREADY BEEN WXTEQ. 07 NEXT/CN.B.SWITEH :;ggg 17355 UB_MLTEMP6I.AND . CONX(2) , WXINE.Q? 17351 09AF, 0D80,5¢13,4A72,B847,0098,0 ; CHECK IF /B SWIT(H 2 T U C9AD, 0580,5C13,4A72,1047,009A,E Page 8 _MCTEMPSJ.XOR, 2L1TOC423, - O ;7344 8 15 CLOKX Rev 13.00, (lock rate = 160ns CN.GET.SWITCH m 17343 16:30:35 : -n 28=NOV=83 (onsole Command Parser o] 1M(01) .fl CONSOL (MIC MICRO2 m CMTQ98 . M(X v | =0 . : SWITCH HAS ALREADY BEEN H ------------------------------- wa MCTEMP6J,AND,ZLITOL100], ;; WX.EQ,07,NEXT/CN.H.SWITCH : SET FLAGT, SIZE H ASSUME /number IF NO OTHER MAT(CH CHECK IF /number SWITCH ALLOWED. INDICATE FIRST DIGIT HAS BEEN READ 183: CMTO98 . MCX CONSOL .MIC 1M(01) MICRO2 28=NOV=-83 Console (ommand Parser :7379 17380 17381 U 0986, 0586,5(37,0030,3847,0094,8 | U 0987, 0086,6712,4000,0047,00A0,A U OAOA, 0880,0587,0030,0607,0098,8 17382 ;;ggz 17385 U NYB9, vCB6,85BE,4032,0047,00A0,8 : ¢ 15 CLOKX Rev 13,00, Clock rate = 160ns z0 (N.P. SWITCH M[TEMPS] Lirorz], 17388 ----------------- - 17392 ,;ggz $7395 17396 ; SPACE SWITCH HAS ALREADY BEEN SET. BELL AND LOOK FOR NEW CHAR RING ; NEXT/CN.GET,SWITCH M[TEMPb] _MB.CR.CONX(1) :;ggg Page CN.GET,SWITCH :;ggg 17391 1/ 0YB8, 0086,858F,403D,8047,0493,4 16:30:35 MEMSCR_O M[?Efifiéi"E'E'Bi. LOCK OUT DTHER SPACE SWITCHES, - N PUSH,NEXT/CN.PARSE. COMMAND MLTEMPB]_RLTEMPS] - ¢ : TURN OFF MME FOR PHYSJCAL EXAMINE. : SET SPACE SWITCH. ; CONTINUE PARSING E COMMAND, P HAS BEEN RUBBED QUT. : RESTORE SAVED SPACE SWIT(H VALUE. 184 (MT098,.MCX CONSOL . MIC 16:30:35 : 28-N0OV-83 Console Command Parser MICROZ 0ACB, 0C80,8387,0000,0607,00A0,¢ 040C, 0086.6713,8000,0047,00A0,D 0AOQD, 0b86,5(37,0032,8047,0094,8 1M(01) :7397 ;7398 :7399 s - CLOKX Rev 13.00, Clock rate = 160ns Page CN.GET.SWITCH gy o B O e T W Y RESTORE MME TO SAVED VALUE. 17400 ¢ 0 0 - Y ALLOW NEW SPACE SWITCH. 174601 MCTEMPSI ZLITOCS50], NEXT/CN.BET.SWITCH =0 CN. V. QWITCH o 09BA, ] 15 ooy o T SETUP TO ECHO RUBOUT OF : SPACE SWITCH HAS ALREADY BEEN SET. ; e B T B S O By M[TEMPSJ LIT0C7], P. s W : RING BELL AND LOOK FOR NEW CHAR NEXT/CN.GET.SWITCH 0586,5€37,0030,3847,0094,8 ; -------_--------u-—u----—--——_. 0988, LOCK OUT OTHER SPACE SWITCHES. 0886,6712,4000,0047,00A0,E oy QAQE, S A e 1 e e e et 0AOF, 0480,8387,0000,0607,00A1,0 048¢,6713,8000,0047,00A1,1 -0 e ; TURN ON MME FOR VIRTUAL EXAMINE. e kel - M[TEMPSJ ZLITOC1], ALTENPBI RTTEMPE] 0486,85BE,4032,0047.00A0,F 0A11, 0186,5C37,0032,8047,0094,8 ¥ § T O T PUSH,NEXT/CN,PARSE.COMMAND 098C., 0D86,8¢37,0030,0847,0493,4 0A10, 4 MEMSCR_~=1 0480,0£77,0030,0607,0098,¢ 2 oI 0980, e ) ; SET SPACE SWITCH. ; CONTINUE PARSING E COMMAND. V HAS BEEN RUBBED QuUT. : RESTORE SAVED SPACE SWITCH VALUE. MEMSCR_MLTEMPB] RL.24 : RESTORE MME TO SAVED VALUE. HLTEMPG)_MB.ANDNOT . CONX(1) : ALLOW NEW SPACE SWITCH, MCTEMPSI ZLITOCS6], : SETUP TO ECHO RUBOUT OF V. NEXT/CN.GET.SWITCH : CN.G. SW]TCH 098F, 0086,6712,4000,0047,009¢,0 :0 09C0, 0086,8737,0010,0047,0493,4 M[TEMPSJ L1roc7l, ; SPACE SWITCH HAS ALREADY SEEN SET. MCTEMPE_MB.OR, CONX(1) : LOCK OUT OTHER SPACE SWITCHES. NEXT/CN.BET.SWITCH u 098BE , 0586,5(37,0030,3847,0094,8 ' : RING BELL AND LOOK FOR NEW CHAR h--h-—nn---——--——-nn-nn—--uuu-: MCTEMPBI CONX(2), PUSH, NEXT7CN.PAR . COMMAND SE : SET SPACE SWITCH. : CONTINUE PARSING E COMMAND, 185 09c2, 0586,5(37,0030,3847.,0094,8 09C3, 0886,6712,4000,0047,009C,4 09c4, 0986,8€37,0030,1847,0493,4 = OO0 OO LS (NN wnuvunuiuniuonua e I~ ON ol “ea .. P R Pl Ak AR NN TN TN TN S 0AY3, 0186,537,0032,3847,0094,8 . P R T TR 0412, 0086,6713,8000,0047,00A1,3 16:30:35 : E 15 CLOKX Rev 13.00, Clock rate = 160ns Page CN.GET. SWITCH ---------------------------- ~<; G HAS BEEN RUBBED QUT. P ; 09C1, 04B6,85BE,4032,0047,00A1,2 wa CONSOL .MIC 1M(01) MICRO2 28=NOV=A33 Console Commund Parser NN N (MT098 ,MCX ALTEMPB]_RLTEMPB] REeTORE SAVED SPACE SWITCH VALUE. PCTEMPED MB.ANDNOT.CONX(T) * ALLOW NEW SPACE SWITCH. MCTEMPSI ZLITOC47], % SETUP TO ECHO RUBOUT OF G. NEXT/CN.GET.SWITCH =0 CN.I.SWITCH: MCTEMPS] ZLITOL7, NEXT/CN.GET.SWITCh M[?EEEEE-EE-BE-EBEQ??Y-- T PUSH,NEXT/CN. PARSE . COMMAND ; ' SPACE SWITCH HAS ALREADY BEEN SET. : RING BELL AND LOOK FOR NEW CHAR TTT7TL LOCK OUT OTHER SPACE SWITCHES. Y SET SPACE SWITCH. " CONTINUE PARSING E COMMAND. 095, 0486,858E,4032,0047,00A1,4 ------------------------------ : 1 HAS BEEN RUBBED QUT. ALTEMPEY RLTEMPE] © RESTORE SAVED SPACE SWITCH VALUE. 0A14, 0086,6713,8000,0047.00A1,5 MITEMPG] _MB.,ANDNOT . CONX (1) 0A15, 0986,5(37,0032,4847,0094,8 WOTEMPS] ZLITOL49), NEXT/CN.GET.SWITCH =0 (N.B.SWITBH % ALLOW NEW SPACE SWITCH. + SETUP TO ECHO RUBOUT OF I. : ------------------------------ : UB_MLTEMP6].AND.ZL1TOC100], S SEY FLAGT, " : SIZE SWITCH HAS ALRSADY BEEN SET. CHECK IF /number SwiTCH ALLOWED, INDICATE FIRST DIGIT HAS BEEN READ 09¢6, 0D48,6(12,0A38,0047.0090.8 WX.EQ. 07 ,NEXT/CN.H. SWITCH 09c7, 0086,6712,4010,0047,009¢C,8 MLTEMP6]_MB.OR. CONX(2) © ACTEMPOI CONX(2). S SET SIZE SWITCH, 09C8, 0486,9737,0010,0047,0493,4 bt uiut S aatntnlainleieled - PUSH. NEXT/CN. PARSE. COMMAND : LOCK OUT OTHER SIZE SWITCHES. CONTINUE PARSING COMMAND. U9C9, 0086,95BE.4032,4047,00A1,6 ------------------------------ : B HAS BEEN RUBBED OUT. MTEMP9 RLTEMPO) © RESTORE SAVED SIZE SWITCH VALUE. CAY6, 0086,6713,8010,0047.00A1,7 ACTEMPG] _MB.ANDNOT ., CONX (2) 0A17, 0D86,5C37,0032,1047,0094,8 MCTEMPST 2L1T0C42], NEXT/CN.BET.SWITCH © ALLOW NEW SIZE SWITCH. * SETUP TO ECHO RUBOUT OF B. : — CMT098.MCX . CONSOL .MIC 4t MICRO2 e et 1M(01) Console Command Parser ;7500 7501 17502 09CA, 0586,5C37,0030,3847,0094,8 09CB, 0486,6712,4010,0047,009¢,C U 09CC, 0486.9737,0020,0047,0493,4 09CD, 0486,95BE,4032,4047,00A1,8 : CLOKX Rev 13.00, Clock rate = 160ns CN.GET.SWITCH CN.W.SWITCH: jQ=mss=sesesesccccvcemcceeenenne ; WCTEMPS ZLITOL7D, ;;ggg NEXT/CN,GET.SWITCH (7506 ; ; ilemmeemesemscusmseooe. mmmomeens ; ;;ggg M[TEMPb] _MB.OR.CONX{(2) =0 ; ;0smmmmmesmmemmmceeemeemee e: m[rempo) CONX(4), ; PUSH,NEXT/CN. PARSE. COMMAND (7513 : iles=mecesemescsecescscsscaneea- ; ;;g}g M(TEMP9] _RCTEMP9] 17516 SIZ2E S WITCH HAS ALREADY BEEN SET. RING B ELL AND LOOK FOR NEW CHAR LOCK QUT OTHER SIZE SWITCHES. SET SIZE SWITCH. CONTINUE PARSING COMMAND. W HAS BEEN RUBBED 0QUT. ; RESTORE SAVED SIZE SWITCH VALUE. jem=memomesecescccescssessoeeee. : ; ALLOW NEW SIZE SWITCH. ;;glg MLTEMP6J _MB,ANDNOT . CONX (2) 0A19, 0586,5C37,0032,8847,0094,8 17519 17520 ;;gs; 0 === mmceseecessscccescmeescaces : MLTEMPS] ZLITOL[S7], ; SETUP TO ECHO RUBOUT OF W. NEXT/CN.BET.SWITCH : i7523 (N.L.SWITCH: 09CF, 0086.6712,4010,0047,0090,0 17506 17525 09D0, (9R6,9C37,0030,4047,0493,4 0901, 0CB6,958,4032,4047,00A1,A U 0AlA, 0086,6713,8010,0047,00A1,8 ;ggz 17535 ;ggg 17538 ;gzg 17542 7543 ; SIZE SWITCH HAS ALREADY BEEN SET. RING BELL AND LOOK FOR NEW CHAR ilesssecessessscssssssmemeeanee- ; .;ggg 17532 Qm=mmmmememmomomemce—ssstnccen : WLTEMPS] 2017071, ; NEXT/CN.BET.SWITCH 7508 ;7541 VA1B, 0586,5C37,0032,6047,0094,8 T ;;259 17531 U F 15 =0 17503 17509 17510 ;;g}; 16:30:35 0A18, 0886,6713,8010,0047,00A1,9 09CE, 0586,5C37,0030,3847,0094,8 V] 28-NOV-83 MITEMPS ] _MB.OR.CONX(2) =0 : LOCK OUT OTHER SI1ZE SWITCHES. (Qmmmmmmmemmmcse—ceme e ve e ——— : METEMP9] 2L 1TOL8], PUSH,NEXT/CN.PARSE. T OMMAND : : eeeeems—cesmesseemacememeeeene : M[TEMP9J _RLTEMPY) ; jemmmmememem—eemceccmaicceneoee : RCTEMP6]_MB. ANDNOT. CONX(2) e ottt MOTEMPS) _ZL1TOC4CT, NEXT/CN.BET.SWITCH : L L LL LN SET SIZE SWITCH, CONTINUE PARSING COMMAND. L HAS BEEN RUBBED OUT. RESTORE SAVED SIZE SWITCH VALUE. ALLOW NEW SIZE SWITCH. ; SETUP TO ECHO RUBOUT OF L. : Page 187| = OO 00O~ NI S DS IS O V. W - - - - H SWITCH NOT ALLOWED RING BELL AND LOOK FOR NEW (HAR NEXT/CN,GET.SW CN.H.SWITgH.10: -~ - 00 e e St o T e By B FLAG1?,SET FLAGO, CHECK IF CHAR HAS ALREADY BEEN READ ;010-w-omommm s e mn e n e MCTEMPS RETURN SETUP TO ECHO RUBOUT OF ‘/*. SET FLAG TO USE BUF’ PUSH,NEXT/CN, GET.NUMBER OO0 011mmesmmmmm e MCTEMP6J _MB.OR.ZL T0 1001, PUSH,NEXT/CN. PARSE .R CURSE Y ALLOW ONLY 1 H SWITCH CONTINUE PARSING COMMAND ———————— m m=mmmm e ;100== MCTEMP6] _MB.ANDNOT.ZLITOC100], ALLOW NEW H SWITCH IF RUBBED QUT. RUBOUT LAST DIGIT OF NUMBER PUSH,NEXT/CN. GET.NUM.RUBOUT. 1 =110 10 - T 2 2 o e 0 M[TEMPS] JILITOL2F],CLEAR FLAGY, Y SETUP [0 ECHO RUBOUT OF ‘/*. RETURN [+¥11 ;11 0408,0036,4030,0047 .0090,9 - - M[TEMPSJ ZLIT0 NN BN AV TV AW LW R LW, [V LV, LV, L LN 1] -y J 090C, 0586,6C13,8038,0047,049€E,7 U 090F, Page CN.GE7.SWITCH (N.H. SNITCH U 090B, 0186,6C12,4038,0047,0493,6 ¢ Q90E, 090E,5C37,0081,7847,0000,1 CLOKX Rev 13.00, Clock rate = 160ns =000 AT [ U 090A, 0986,5C37,0081,7847,0000,1 w [V T I U 0909, 0440,0036,45F0,L047,0491,0 R O T T T U 0908, 050€,5C37,0030,3847,0094,8 ‘J\J‘J‘J\PV‘Q‘J‘J‘U\PV‘Q‘J‘J T 7544 5 G 15 mm CONSOL.MIC 16:30:35 : m.— (MT098.MCX MICROZ 1M 28-NOV-83 {onsole Command Parser emm e (LEAR FLAGI, m et NEXT/CN,H,SWITCH.10 —————— [ : INDICATE NEXT CHARACTER HAS NOT BEEN . : READ, 188 ; : CMT098.MCX CONSOL . MIC 1M(01) 28~NOV-83 Console Command Parser MICRO2 ;7574 37375 ;7576 U 0902, 0586.5C37,0030,3847,0094,8 U 0903, 0986.,6D92,4030,1047,009D,4 u 0904, 0481,DE74,0030,0047,0493,4 U 0905, 0881.D587,0030.0047,00A1,C U OA1C, UDB6,6D93,8030,1047,00A1,D NEXT/CN.GET.SWITCH 00 7583 =0 17587 1759 7595 : : M[TEMPbJ .MB.OR.2L1T8[2] 189 RL; ANUM_1, RNUM_0 0 X SWITCH NOT ALLOWED. RING BELL AND LOOK FOR NEW CHAR ; ALLOW ONLY 1 X SWIT(H. ; DISABLE MICRC VERIFY FOR BOQT. ; CONTINUE PARSING COMMAND. $]mmmmmmmemmmemeeeecsemsanenee ; ;;ggg ;;gg; Page lmmme—memeeeeeeeecoeseemeneeen- ; PUSH7NEXT/CN.PARSE. COMMAND ;;ggg 17593 U OA1D, 0986,5€37,0032,0047,0094,8 jQ=ess-essemsseosscecscesoenee -~ 17580 $7590 CLOKX Rev 13.00, Clock rate = 160ns CN.GET.SWITCH WETEMPSI ZL1T0L7], :;g;g ;7584 H 15 = CN.X.SWITCH: 17577 ;;ggg 16:30:35 : :; X HAS BEEN RUBBED OUT. ENABLE MICRO VERIFY FOR BOOT. emmemecemmceesmmmccmesmmemeneen ; MLTEMP6]_MB.ANDNOT.ZLIT8[2] .; ALLOW MEW X SWITCH. jemmee——emeeccmeccoceecocssesons : MCTEMPS] _ZLITOLS8, NEXT/CN.GET.SWITCH ; ; SETUP TO ECHO RUBOUT OF X. O = S CMT098.MCX MICROZ2 CONSOL..MIC 1M(O1) 28-NOV-83 Console Command Parser This routine gets a number from the console and Loads it either into ;7602 Special handling of *, +, and P for addresses is also done here. TEMP1 ’ or TEMP ,ttn*ttt******t***********t*k**t*t******************************************** =000 CN,GET,NUQBER E;ggg PUSH,NEXT/CN,GET.NEXT B :;2}5 * ECHO CHAR IN TEMP5 AND GET NEXT CHAR. e ; PUSH,NEXT/CN.GET.NUM. RUBOUT H FLAGO’ ;7610 . 7613 u 0914, 0C80,0036,4030,0047,0091,0 CN.GET.NUMBER"' Console Command Parser 17600 17609 U 0913, 0880,0036,4080,0047,0000,1 CN.GET.NUMBER 190 Page .k**********k**i*********'ct********************ti**i***************fi******t**t ;7604 :;282 u 0912, 0080,5C10,06F1,8047,088E,D 377 ) :'7598 17603 4 0911, 0080,0036,4430,0047,049¢E,6 CLOKX Rev 13.00, Clock rate = 160ns ) .T0C " ;7601 u 0910, 0480,0036,4030,0047,049E,A : L :;gg? ;7599 i 16:30:35 115 ; RUBQUT FROM BUFO OR BUF1? ;010 mmemmme e nm e ac e H 17614 ;g%g WB_MLTEMP5I-ZLITOL[30], WB<31~30>7 ,NEXT/CN.GET.NUM.9 :7617 L ettt bt LD L L Dbl b bt ; RETURN FROM (N, GET.NUM.RUBOUT ;;2}? RETURN [+11 ;7620 ; CHECK IF CHAR IS ASCII 0-9 ; ; LAST DIGIT HAS BEEN RUBBED 0UT. 1 100==mmmmmcccccccmmncncncnn - ; RETURN FROM (N.GET.NUM.RUBOUT :;gg} NEXT/CN.GE T .NUMBER ; SOME DIGITS REMAIN IN NUMBER. 17623 =01 ';252 ] U 08BED, 0D80,5C10,06F1,0047,088F,5 377+ U 08EF, 0880,0036,4430,0047,009D,C ] U 08F5, 0580,5C10,06F2,0847,0890,5 377« CN.GET. NUM 9: 17626 WB_MtTEMPSJ~ZLITOC3AD, 17629 R DR ] ;25; WB<31-30>?.NEXT/CN.GET.NUM.A ‘;2%? 01 17632 CN.GET.NUM.A: $7633 17634 ;7635 FLAGO? ,NEXT/CN.GET, NUMBER END ? CHECK IF CHAR 1S ASCII 0-9 H ; IF EMPTY BUFFER, RING BELL ) Dbt tabai bttt ; WB_MLTEMP5]-2L1T0[41], WB<31-30>7 ,NEXT/CN,GET.NUM.F ; CHECK IF CHAR 1S ASCII A-F : I L . MIC CONSOL 08F7, 0884 ,53F7,0431,0047,009D,6 0906, 0180,0013,4A70,4047,009D,A $7636 ;7637 17638 17641 CN.GET, NUM OVFLW: S o o e B it o e - O 4 - o W B T T CHECK IF BUFQO IS ALREADY FULL WXNE. 0?7 ,NEXT/CN.GET.NUM.BUFO -t - o CHECK IF BUF1 UB MCTEMP2].XOR.ZLITOLA]D, WXTNE. 0? $ 7648 =) = ;0remvewmemccccmmnccance- IS ALREADY FULL - M[TEMPSJ L1T007), BUF1 NEXT/CN,GET.NUMBER 0908, 0D86.5(37,0030,3847,0091,0 E? JUST USE LOW NIB ——————— T UB JMCTEMPO].XOR.ZLITOLB], > Page IS FULL, RING BELL 0909, 0086,323E,4031,0047,00A1,E 0AE, 0C86,2081,0030,8047,0091,0 -0 - METEMPZJ MB+1, INCREMENT BUFCNTI GO GET ANOTHER DIGIT, NEXT/CN.GET.NUMBER CN.GET. NUM 8UFOQ: = e S0 Tt e O9DA, oy - M[TEMPSJ ZLITOL7], BUFD IS FULL, NEXT/CN.GET.NUMBER 0p&6,5€37,0030,3847,0091,0 RING BELL L T T R 09D8, 0C86,123E,4031,0047,00A1,F ------------------------- - 0A1NF, 0886,0081,003p,8047,0091,0 o1 MLTEMPO]_MB+1, NEXT/CN.BE INCREMENT BUF CNTO GO GET ANOTHER DIGIT. T.NUMBER CN. GET.NUM.F: H HB MLTEMPS]-TL] 0 IS CHAR ASCI1 A-F? WR<31=30>7 ,NEXT/( 0905, 0180,5€10,0672,3847,0891,5 ?LAGO’ NEXT/CN.GET.NUMBER,.END . ¥ - 0907, 0880,0036,4430,0047,0090,C =01 CNLGET, NUM 10: - 0915, 0c84,53F7,0031,0047,00A2,0 ;1 - 0420, 0186,4011,0430,4847,009D,6 - - - = Ay " - - TEMP4] MB+2L1T0C9), IF EMPTY BUFFER, RING BELL -t IF EMPTY BUFFER, RING BELL - RCTEMP4]_MLTEMP5),NIBBLE £~ u - FLAGO’ NEXT/CN.GET,NUMBER.END e 097z, 0880,0036,4430,0047,009D,( 0 191 e B FLAGO? 17647 17649 v RCTEMP4] _MITEMP5],NIBBLE, ;7646 0907, 0080,2C13,4A70,4047,009D,8 > - <0 17642 17643 $ 7644 :7645 CLOKX Rev 13,00, Clock rate = 160ns (N, GET.NUMBER CN.GET,NI?BLE 17639 17640 J 15 16:30:35 KR CMT098 ,MCX Mmaon MICRO? 28-NOV-83 Console Command Parser AGO? .NEXT/CN.,GET ,NUM, OVFLW DIGIT IS ASCI! 0~9 SO JUST USE LOW NIB ADJUST LOW NIB FOR ASCI! CHECK 1F BUF0 OR BUF1, A-F, i TR CMTO9B.MCX MICROZ CONSOL . MIC MO 28=NOV=83 Console Command Parser 27691 ;gg% 090C, 0080,0592,4A30,0047,089E,0 322+ 17694 09DD. 0C80,2592,4A30,0047,089D,E 322+ 17698 ;983 09DE, 0880,0036,40B0,0047,0000,2 ;;8§ 17701 17704 09DF, 0D86,5(37,0030,3847,0091,0 09E0, 0880,0036,4080,0047,0000,2 17705 8 _MCTEMPO], WXTEO0.0?,NEXT/CN.EMPTY.BUF 0 20 _ J 0918, 0D80,0C37,1030,0847,009E,4 jQemeemcssmcemmssceesse—moe——-- ; 0 u 095, 0484,0039,0032,8047,0042,1 [ — - [ l=mm=eme—eseecsscccseseeeesea- - " BUFFER IS EMPTY, NUMBER MUST HAVE -;;}? RETURN [+23 * BUFFER IS NOT EMPTY, NORMAL RETURN. L7717 e MCTEMPSJ.XOR,ZLITOL2AD, WXTEQ.0? =0 WXTEQ. 02 ,NEXT/CN. GE T.NUM, PSL 17721 Z;g% 8 R[TEMPQ] SR.1, NEXT/CN.E.OR.D.STAR ;;gg 0 17734 L7737 ; '#! CHECK IF 'P' FOR PSL * BRANCH ON IF ; P,V OR G,l SPACE. Y ST Y PO —— : P OR V SPACE, 17708 ;;gg * CHECK IF S B; WB_MLTEMPB], WBZ1-05? ,;;gg 17733 : ; ;Q=e===scmesmmemmscmccacoacaa- - we MCTEMPSJ.XOR.2LITOC50], ;;;}g 17725 ¢ AT LEAST 1 DIGIT, RING BELL. leseecemcmmmemmmcm—mmm e; 17713 ;;;}g 17732 09E4, 0084,0038,0032,8047,0493,4 * BUFFER IS NOT EMPTY, NORMAL RETURN. M[TEMPSJ L1T0(7), 17731 U Y CHECK IF BUFCNT1 .EQ. 0. ; -0 NEXT/CN.GET.NUMBER CNLEMPTY.BUF: P & DA 0919, 0080,058D,9032,4047,009€,4 Y: CHECK IF BUFCNTO .EQ. O, jlesseseesscescceseceee——caeee- ; ua _MCTEMP2], WXTEQ.0? RETURN [+2) P42 T Q9E3, 0C80,8592,4270,0047,0091,9 (N.GET.NUMBER Page ;;89 Egggg 17716 09E2, 0180,5C13,4A32,8047,0094,( : CLOKX Rev 13.00, Clock rate = 160ns CN.GET.NUMBER. END: 17712 09E1, 00B0,5(13,6A31,5047,009E,2 K15 =0 ;ggg 17697 U 16:30:35 * GET AMOUNY TO ADJUST ADDRESS BY. : j1leemcececmcccdmeecsseaseocoa- -; G OR I SPACE, & ZLITO[1J * AMOUNT TO ADJUST ADDRESS BY IS 1. CN.E.OR. D, STAR: T T fmmmmmemmmememm e a e n -; RCTEMP10]_RB-0, PUSH,NEXT7CN.PARSE. COMMAND : BACKUP ADDRESS : {lomeemmmenan e e~ —————— : RUBOUT RCTEMP10]_RB+Q,NEXT/CN,RUB,STAR ; RESTORE DEFAULT ADDRESS 192 CMT098.MCX CONSOL . MIC 1M(01) 28~NOV=-83 MICRO2 (onsole Command Parser 16:30:35 : L 15 CLOKX Rev 13.00, Clock rate = 160ns tutakadd O e et bk PREPARE TO ECHO RUBOUT OF ‘' : CLEAR Q FOR DEFAULT ADDRESS IF *U MCTEMPSI_2LITOL2AT Q_0O, =00 NEXT/CN,BET.NUMBER CN.GET,NbgLPSL: - = oy S g o Ot o e B e NB_M[TEMPS] XOR.ZL1T0[28], WX.E0.0?.NEXT/CN.GET.NUM.PLUS 094C, 0980,5C13,4A31,5847,0095,0 M[TEMPbJ MB.OR.2L1TOC80], PUSH, NEXT/CN.PARSE. COMMAND 094D, 0986,6C%2,4034,0047,0493,4 . 193 (N.GET.NUMBER CN.RUB.STAR: 0A21, 0586,5(34,7031,5047,0091,0 Page 3 H H H NOT PSL CHECK IF '+' CHANGE E/D TO E/D PSL ; CONTINUE PARSING COMMAND, e T Y RESTORE TO NON PSL E/D 094E, 0D86,6C13,8034,0047.00A2,2 0A22, 0586,5C37,0032,8047,0091,0 J7758 =00 ;00 U 0950, 0D86,5(37,0030,3847,0091,0 0951, 0480,0036,4030,0047,0493,4 - v SETUP TO ECHO ‘P' ¢ MCTEMPSI ZL1TOL7], : Pusfi NEXT/CN.PARSE. COMMAND : CONTINUE PARSING COMMAND NEXT/CN.BET.NUMBER B N 0952, 0586,5037,0031,5847,0091,0 - : : NEXT/CN.GET.NUMBER CN,GET,NUM.PLUS: ol e T e e T L L- MITEMPS] 2L1T0(28], NEXT/CN.GET. NUMBER H - BUFFER IS EMPTY, NUMBER MUST HAVE AT LEAST 1 DIGIT, RING BELL. : PREPARE TO ECHO RUBOUT OF H ‘'+' P ettt D L L L L Ll D DL L DL Ll Ll MCTEMPSI 2L 1TOL507, CMTO98.MCX CONSOL MIC MICROZ 1TM(OV) 28-NOV=83 Console Command Parser ;7771 NkAR ;7775 ; 7778 7777 :7778 ‘;;gg U9E6, OCR4,13F7,0031,4047,00A2,6 ;7781 ,;;g% Q9E7, 0884,33F7,0031,4047,004A2,3 :;;gg E;;gg 7788 0A23, 0586,3013,8030,7847,00A2,4 ,;;gg £ 0A24, 0(86,3277,0030,0047,00A2,5 0ACS, QUB6,¢710,0600,0047,0895,5 3706 1 0955, 0880,5001,49AD,8047,089E,8 348+ ;7804 ;;ggz E;ggg 0AC6, G186,1(013,8030,7847,00A2,7 OA27, 0486,1277,0030,64047,0042,8 :;298 17811 ;7812 CN.GET.NUM,RUBOUT"' RN AR A AR AR R AR AR RN AR AR AR AR R RN R AR AR AR AR R AR R kAR AR R KRR AR R A AR R AR AR R AR A AR R AR R R[TEMPSJ MCTEMP3].NIBBLE 0 kR AR R ARk memmmm e e e MITEMP3] _MB.ANDNOT.ZLITO[OF] ; : GET DIGIT FOR RUBOUT ECHO. ; GET DIGIT FOR RUBOUT ECHO. H H S; MCTEMP3]_(MB RCTEMP31). RR, 4 : THROW AWAY LAST DIGIT. jeemee—meeemescseeeceases ———— ; MLTEMP2] MB CONX(1), : DECREMENT BUFCNT? YD O we (MLTEMPSI+R{ZERDD) ,BCD, ; ; SEPERATE 0-9 AND A-F NEXT/CN.GET.NUM.RO.BCD.CHK H WB<31-305? =01 R AR AT RN RR This routine is used for rubbing out digits that have previously teen loaded into TEMP1 or TEMP3! R[TEMPSJ MLTEMP1]. NIBBLE NEXT/CN.GET.NUM.RO,S CN.GET.NUM.RUBOUT.1: ,;;gg :7803 CN.GET.NUM,RUBOUT CN.GET. NUM RUBOUT: ;7795 .;88; AR Page CLOKX Rev 13.00, Clock rate = 160ns =0 17794 ;7800 : AR AR AN 4 17798 ;7799 M 15 (onsole Command Parser ; .;;3% _ 0957, 0(86,58F,408D,8047,0000,2 .T0C ' 7772 7?73 7774 U 16:30:35 8(b cHECK?, ; : D; M[TEMP?]_R[ZEROJ RETURN [+2] H H ZERO BUF CNT1 NO MORE TO RUBOUT, CN.GET,NUM.RO.5: MCTEMP1]_MB.ANDNRT.ZLITOLOF] ; ;em—me—maiesmmmemesesesseemmm—- ; MCTEMP1]_(MB RLTEMP11).RR,4 : THROW AWAY LAST DIGIT, h ko k% 194 i | i 5 CMTO98.M(X MICRO2 1M(OD) 28-NUV-83 Console Command Parser (ONSOL MIC ;7813 'y 0A28, 0886,0710,06C0,0047,0895,9 376% ; ' 0959, 0880,5U01,49AD,8047,089E,8 348+ s U9E8, ODB6,5C11,0081,8047,0000,3 A _ 4 UYES, 0586,5011,0081,8847,0000,3 CN.GET .NUM,RUBOUT wB<31-3052 =01 17819 ;;gsg L Rttt dnted : : SEPERATE 0~9 AND A-F NEXT/CN.GET.NUM,RC.BCD. CHK ; -0 E;gsé 17828 CN.GET.NUM.RO.BCD. CHK: AETEMPS] MB+ZL1TOL30], 17831 7832 17833 : ettt e L LT : 17823 :;gsg ;;g§8 DECREMENT BUFCNTO . WB_ (M[TEMP5J+RCZERDD) .BCD, BCD CHECK?, 17822 v 0958, 0886,058E,408D,8047,0000,2 CLOKX Rev 13.00, Clock rate = 160ns MLTEMPO]_MB=CONX(1) ;g}z 17818 : e mammmmm————— 17814 17817 , 16:30:35 N 15 MLTEMPO]_RLZERO], RETURN (¥2] RETURN [¥3] : ZERD PUF(CNTO ; NO MORE TO RUBOUT. ; ASCIl 0-9 : l=mmmmwessacccmmcmsscceeececeeo ; M[TFMPSJ _MB+ZLITOLS7), RETURN [¥3] : ASCll A-F : R B {MT098.M(X CONSOL . MIC ‘ T MICROZ2 . G TM(OD) 28-NOV=83 CLOKX Rev 13.00, Clock rate = 160ns Page 27838 . ;7840 : JTBA2 7843 :;gzg 09EA, 0C80,0036,4030,0047,049F A this ; care 09EB, 0DBO,5C13,4A32,F847,009E,( A 09ED, 0430,0036,4470,0047,0009¢ 17856 :;ggg ] 096F, 0966,5037,0032,E047,069F,4 09€f, 0880,003¢,4080,0047,0000,1 09%c, 0880,0036,4080,0047,0000,2 . 0126,5037,0032,£047,049F ,4 17859 ;7860 ;;gg; R A R R A R R AN AR AR AR R RN R AR R R RN R RN AR AR AR R AR h ey Y GET NEXT CHARACTER INTO TEMPS, ;lemesmssmsaccececccssecscsesees ; wa _MITEMP5].XOR.ZLITOLS5F], WX.EQ.0? =0 ; H CHECK FOR RUBOUT, ;0mmmcemcemmcccecaceeec -w==; CHAR IS NO' RUBOUT ) MOTEMPS] MM_NQINT?, NEXT/CN. GET. NEXT.NOT,RO ; SAVE (HAR INCASE NEED TO TYPE '\! ; CHECK IF LAST CHAR WAS RUBOUT, leessosseeas ERCEELTES e ; CHAR 1S RUBOYT MM NOINT? ; CHECK [F LAST CHAR WAS RUBOUT. =0 ;Qewme-sme—mesosememesceeccmeees : LAST CHAR WAS NOT A RUBOUT, M[TENPSJ LITOLSC],SET MMONOINT,; TYPE '\' TO INDICATE START OF RUBOUT, PUSH, Nex‘r N.TYPE . (HAR 43 T : R : LAST CHAR WAS ALSO A RUBOUT, ;;ggg . 17866 CN.GEV,NEXT.NOT.RO: ';ggs RETURN [+2) ;7870 ;787 ;0)mmmmcccteccamvnunoa eH MOTEMPS] _ZLITQLS5C), ; TYPE '\' TO _INDICATE END OF RUBQUT, ;;g;z PUSH,NEXT/CN, TYPE, ;7867 ;7872 C(LEAR MM, NOINT, N @ \l ~ [v -] i 17876 7877 RETURN [+1] ; TAKE RUBOUT RETURN, Lttt bt dleieleednbetebeieebet : ;7875 J95E, 0886,5582,4080,0047,0000,2 it the last character typed was not a rubout it does a RETURN+2. PUSH,NEXT/CN.GET.CHAR :;gg? C9EC, C480,50072,647D,8047,0095,C '\'s that surround rubbed out characters. =0 ;7849 ;7853 :;ggg typ1ng the CN.GET,NEST };gzg 17852 out1ne gets one character at a time from the console and takes It the tast character typed was a rubout it does a RETURN+1, 17848 . B 16 'an-ntttttttttttt-wtutwttwtatwttntttttwt*tt««tfltt**«twtttfit*t***wktk**tqttaaan ;7841 0950, 16:30:35 S 37836 17839 [¥] [ (onsole Command Parser H CN.GET. NEXT (input character) CN,GET.NEXT (input character)'' : :;g%g LT0C ' Console Command Parser ;7837 v O . M[rEMPSJ_ RETURN C72) ; TAKE NORMAL RETURN, CHAR s CLEAR RUBOUT FLAG : —— ————— - ¢ H RESTORE CHAR FROM DREG. E NORMAL RETURN, 196 S — fi ; (MT098.MCX CONSOL .MIC MoN MICRO2 28-NOV=83 {onsole Command Parser 16:30:35 : C 16 CLOKX Rev 13,00, tLlock rate = 160ns (N, TYPE .NUMBER Console Command Parser AN AN AR R AR N AN A AN AR RN AR R AR R R A RN AR AR R AR AN AR AR ' H . R AR R AR ARk ARk A AR b AR Ak Rk k Input TEMP?7 MIEMP10Q Number to be typed left justified Resources TEMPS Pass character to CN,.TYPE,CHAR Subroutines CN.TYPE.CHAR l 197 CN.TYPE .NUMBER"' LTOC ' o Page Number of digits to type . M l . . ' TN ‘ This routine will tyge 1-8 diglts as specified by MTEMP10Q starting with the leftmost nibble in RN E AR AR IR AR R AR RN R AR AR R AR AR AR AR AR Rk ARk kR Ak kAR RN R AR | R A AN AR AR R Rk CN. TYPE . NUMBER: U 0A29, 0086,7237,0031,0047,009F,0 w0 MCTEMP7]_(RLTEMP?) MB).RL.4 ; PUT MOST SIGFICANT DIGIT IN LOW NIBBLE ; EXTRACT DIGIT TO BE : CN. TYPE .NUMBER. L 00 RCTEMPS] MLTEMP7] NIBBLE NEXT/CN.TYPE .NUMBER.CONVERT U 09F0, 0C84,73F7,0031,4047,004c,A H TYPED. RETORN L7 T o NUMBER HAS BEEN TYPED, NORMAL RETURN. U 09F1, 0880,0036,4080,0047,0000,1 CN.TYPE .NUMBER. C ONVERT: w8 MITENPSI-2LITOLON), U 0A2A, 0D80,5(10,06F0,5047,0896,1 377 WB<31-30>? 201 U u963, 0186,5011,0031,8047,009F,2 - ; Qleccccccccccsunncuicnsnnsanna—. H CHECK IF 0-9 OR A-F. M[TEMPS] MB+2L1TO[37) ; B : LONVERT 0-9 TO ASCI! 0~9, NEXT/CN. TYPE,NUMBER.10 U 961, 0986,5C11,0)31,8847,009F,2 ; : CONVERT A-F TO ASCII A=F, CN. TYPE NUMBER, 10: U 0973, 0886,A710,0A00,0047,089F,0 383« WCTEMP?] (RLTEMP7] MBI.RL.4. PUSH, NEXT/CN.TYPE. CHAR M[TEMP1OJ _MB-CONX (1), wWX.£Q,0? NEXT/CN, TYPE NUMBER.LOOP : l LOW NIBBLE TEMPS. DECRE MENT (OUNT OF ? IGITS IN NUMBER. CHECK IF ANY MORE DIGITS. I ,4 v Q9F2, 0086,7237,0031,(047,045F - CMT098.MCX MICROZ 1M(01) 28-NOV=-83 Console Command Parser CONSOL . MI( 7926 '7927 7928 7929 7930 .70C "' 16:30:35 : D 16 Console Command Parser CN.TYPE.CHAR INPUT 17933 : ;7935 H 7934 :7936 ;7937 ST938 :7939 17940 17941 -7942 09F4, 0580,0037,0032,0247,009F,6 09f5, 0580,0¢37,0080,0907,0000,1 . 07¢7, 0980,0037,0030,0247,00A2,C 0A28, 0980,8D12,0A74,0047,009F,6 . 088F, 0C86.6001,0031,4047,009¢,8 ---------------------- —we CRAR 2L1T16L40], M[ERRCODJ CONREGS, NEXT/CN.TD.IS.IT. READY CRAR JLIT1600) ,NEXT/CN.TD. XMIT wa _MCERRCOD].AND.2L1T16[801, WXTNE,0?, NEXT/CN.TD.CHK.READY Rk WKk : ! , CRAR GETS '1 ;STEPC GETS 1 RETURN i ' ERRCDD GETS STATUS+JUNK READS XCSR IN BIT 23 .CRAR GETS O TRANSMIT EXMIT READY? : (N, TD, XMIT: jemmmeemsmasese;csesccacececeacee- : CONREGS MCTEMPS],RR. 16, .;ggg ;7978 R Kk CN.TD.IS.IT.READY: ;;ggz 7977 KRR jlemmmeesssccsaccecccaccanesnsas; }7962 '%352 (HECK READY BIT CN.TD. CHK READY: :;ggg 17974 <CR>,NE.<CR><LF> =0 17957 17972 17973 SET APT AND e ————— NEXTZCN, TD.CHK.READY :;ggg 17967 R MUST = 1 [F <CR> IS CHAR 9F4: sxxanunxxxFORCE ADDRESS*asnwannn; CNLTYPE, CHAR ;7954 17970 0888, 0580,5010,0A30,6847,089F,8 384+ ARk STEPC_ZLITOE1J RETURN [1] ;7971 ] AR KRR KRR ,;ggg ;7965 17966 0A2C, 0(80,5387,0490,0217,0088,8 NO SUBROUTINES : WHAT TO PRINT 4 OF TIMES TO PRINT NEED FOR STATUS,XMIT CRAR OFS: suexnnxwx v wFORCE ADDRLESSwwwaxwmuw, CN.TYPE, CHAR RET: :;gg? S 1(VALUE FOR FUTURE USE)’ ERRCOD ;7946 -;gzg ';ggg © STEPC RESOURCES AR AR . TYRE DIGIT STEPC # OF TIMES TEMPS STEPC QUTPUT I MARA R AR KRR AR ;gzg N : CN.TYPE.CHAR" FLAG? H ;7943 27951 09F 6, 0886,8036,4030,03C7,00A2,8 : 198 ‘«tt**wtwtk~~~«t*t#«fi*ntnn««qun*un**kt&n&qt*ufit*fitfi«wifii*t*it**tati***t**tt*t 17931 27932 Page CLOKX Rey 13,00, Clock rate = 160rs CN,TYPE,(HAR FLAGZ? sXMIT DATA 1APT? =0wx CNJTD.XMIT, 1 ettt ettt tetaiubatndedabetodetoded ; NOT APT, (HECK FOR <(R> WB M[TEMPSJ 2LIToCoD1, JTYPING A <(R>? WX7EQ,0? :20? NEXT/CN.TD.DEC.STEPC ; L ettt tiuiidebstuinlaik dedinttte : APT, DON'T CHANGE <CR> TQ <(R><LF> MCTEMPO] _MB+RITEMPS] ; COMPUTE CHECKSUM FOR APT UNLOAD | ST : ; CMT098,M(X MICRO2 IM(OD) 28~-NOV=83 fonsole Command Parser CONSOL . MIC 17979 7930 U 9F8, U(BOD,003%6,43340,0047,0009F,4 i J 09F9, 0586,5(37,0030,5047,009F,4 17985 17986 : CLOKX Rev 13.00, Clock rate = 160ns CNL.TYPE,CHAR =0 (N.TD. DEC STEPC: DBZ STEPC? ,NEXT/CN.TYPE.CHAR ;gg 7984 16:30:35 E 16 0 NEXT/CN,TYPE, CHAR 199 - INOT <CR> TYPE AGAIN OR FINJSHED? leeemesceecemcccccuaes L [TEMPSJ ILITOL0AD, Page SYES <[R> TYPE LINE FEED INEXT TIME THRU CHAR=A NOT D(<(R>) : : e n s e H : MICRO2 (MT098.MCX s e IM(OD) L o A 28~NOV=83 Console Command Parser CONSOL . MIC et e e e e F 16 16:30:35 CN.GET.CHAR : .10C "' Console Command Parser 7989 ; CN.GET,CHAR 17990 R S A L AL T L L SRS INPUT 17991 AL 18003 ;8004 .8005 18006 18007 ] U 09FA, 0980,0C37.0030,0907,049F,4 ‘ i Q9FB, 0D80,0D37,0034,0247,0096,4 4 ) U (964, 0C86,5036,4AF0,03C7,0096,6 ;8013 U 0966, 0580,5D012,0A74,0047,0096,4 SUBROUT INES ;285? NEW CHAR TEMP6 XORED INTO RTMP4 FOR APT iNTERFACE MTMP11 RTMPY TEMPI GETS RESTORED IF CNTRL U GETS RESTORED [F CNTRL U GETS RESTORED TO VA IF U CRAR CN.TYPE, CHAR NEED FOR STATUS,RECEIVE STEPC IE.ICR.SERV Rk kR Rk ko CNLGET. CHAR.NO. E CHO: ERAR_7L1716L801, :CRAR GETS 2 NEXT7CN, IS,CHAR.READY MCTEMPS _CONREGS, TIMER?, ; : NEXT/CN. CHECK,DONE CN.GNC. CRAR.GETS .0: STEMPS GETS STATUS OF CRAR :TIMER NEEDS SERVICE? ; NEXT/CN RECEIVE.CHAR : Eggsg 18030 18031 CN. CHECK. DONE: ws TMCTEMPSI.LAND. 2L 17160801, WXTNE.O?, 18036 ke ; ;3859 18035 k ;TYPE TEMPS ONCE NEXT/TN. TYPE.CRAR {CRAR GETS 0 ;gg%g FOR CLOCK SERVICE ;Qmmcmcenmmmnananaaa. —————— STEPC_2L1TOC1],PUSH, CRAR201116003, 18025 # OF X T0 TYPE CN.GET.CHAR: CN. 1S CHAR.READY: 18019 IN X CMD ONLY-BUT INTO GNC1(2 INST BELONG TO X) TEMPS =0 Egg;g 18018 oLD CHAR APT INTERFACE RTMP4 .AR R AR AR R AR R R A AR R AR AR AR AR R R KRR R A kAR AR -00 :8034 U 0967, 0886,D036,4030,01E7,04FF,0 : ;gg}g 18024 ) RESOURCES ;gggg ;§8§§ J 0965, 0D80,0037,0C80,0247,008¢,6 : 18008 228}3 FLY FLAG? 17997 17998 18001 18002 AR R AL A AL SALA SR AAAEARALL LA LA, TEMPS OUTPUT 17995 17996 17999 CN.GET.CHAR"' A AR FLAG 1799, :8000 : GET NEXT CHAR OFF 17992 7993 Page 200 CLOKX Rev 13,00, Clock rate = 160ns :7987 A - - PS3? NEXTZCN. 1S.CHAR.READY ‘BIT 0 SET SAYS LOCKED ‘CHELK FOR DONE BIT : : ;1lemsossesmmencaacaanunn EERREEEER MMM, TEMPO]_TCSR.IICR, NEXT/IE. ICRTSERV,PUSH 170 CHARLIE'S SUBR FOR CLOCK T CHARLIE RETURNS=1 ko ; H ; (MTO98.MCX CONSOL M1 C MICROZ 1TM(OT) 28-NOV=~83 (onsole Command Parser ;8037 ;gggg U 0806, 0C86,5036,4030,03C7,0042,D ) ) U 08C7, 0C86,5036,4030,03C7,0097,4 U 0A2D, 0C86,5387,0490,0047,0092,3 18045 , U 09FC, 0986,5C12,0036,F847,009F,D 00000 NEXT/CN.TRY.CNTRL.P NEXT/CN.STRIP.PAR FLAG2? CN.STRIP.PAR: 10HKmmm 18057 U 0ECB, 0480,0036,4030,0047,0096,9 e mm “TEMPS GETS CHARACTER *NOT LOCKED * READ CONREGS TO CLEAR DONE BIT YLOCKED=RING THE BELL *ADJUST (HAR <7:0> {APT INTERFACE? : e ————————————— MLTEMPS] MB.AND.ZLITOL7F), ;gggg NEXT/CN.TS.1T.LOWER,CASE 'STRIP PARITY ; NO APT CN.APT,INT: R ettt aube e bei ettt : APT TGET BYTE MCTEMPS]_MB.AND,ZLITOCOFF], NEXT/CN. THKSUM. CHK ; Egggg CN.1S.1T.LOWER. CASE: :8067 WB_M[TEMPS].AND,ZLITOL403, {LOWER CASE IF WB NOT = 0 18060 ;8061 :8062 :gggz ;gggg WXTEQ. 07 ; 0 =0 80 Egg;g ACTEMPS] _MB.AND. 2L ITOLODF) ‘LOWER CASE--STRIP OUT BIT SO UPPER CASE ;lemmeemcemmeccccm e um———A WB_MLTEMPSI-2L1TOC15), ;8075 :gg;g 18078 U OECA, 0980,5(10,0A30,8047,0896,8 384+ Page =Qw+ 18074 U 09FD, 0580,5C10,0A30,AB47,08EC,A 384% M[TEMPSJ CONREGS, ;gggg 18051 160ns ;1lmmemsesmeecececcaeee- —um——— CN.ADJUST. CHAR: M[TEMPSJ _MB.RR. 16, 18056 U 0A2E, 0D80,5(12,0A32,0047,009F,C =11 33823 18050 ;8055 U 0927, 0D86,5C12,0037,F847,0096,8 NEXT/CN.ADJUST. CHAR ;ggzg 18054 U 0923, 0186,5012,0033,F847,00A2,E CLOKX Rev 13.00, Clock rate = CN.GET, CHAR M[TEMPS] CONREGS, ;ggz; 18046 6 16 =10 CN. RECEIVE CHAR: 18040 18043 16:30:35 : 18079 WX7EQ,0? OECA: ;ggg? 18082 :8083 ;x+xasxwxxxFORCE ADDRESS*x#**xxeus;NOT *1I, WS_MCTEMPS1-ZLITOL10], WXTEG.0? ,NEXT/CN. CHKSUM. CHK OE(B: ‘DOES TEMPS=CTRLU? V1S 1S 2 : ;waxwxaxsaFORCEADDRESS*kwhxsswx; NEXT/CN, TYPE.CTRLU ! “U RUB LINE. 201 : (MT098 MCX CONSOL . MIC 16:30:35 1M(01) 28-NOV-83 M1C(RO2 Console Command Parser CN.GE T.CHAR [l 0968, 0C86,7015,0081,4047,0000,1 Paye 202 =00 CN.CHKSU M66HK: .. 5 : H 16 CLOKX R ev 13, 00, Clock rate = 160ns MLTEMP?] ZEXT(MB)+RLT EMP5], SIZECBYTE], RETURN [1] $TEMPS ADDED INTO A BYTE OF TEMPS 2ERO_EXTEND BY A BYTE INO NOT =*U OR *P. CN.TYPE, CTRLU 0969, 010£,5€37,0032,E047,049F .4 M[TEMPS PUSH, NE - - - - " -~ - > s — ——— o 096A, 041E,85BE,4032,0047,00A2.F " o O OV . g D o e 0A2F, 0484,0039,0032,8047,0043,0 s aiuiateitetabsbahetatndatadniniel (= > e n S M[TEMPBJ R[TEMPBJ CLEAR FLAG3 © 0A30, 0(86,95BE,4032,4047,008A,F ey MLTEMPY] R[TEMP9J NEXT/CN,FROMPT. & (LE AR FLAG TO AVOID APT CONFLICT ; RESTORE SAVED SPACE SWITCH * RESTORE DEFAULT ADDRESS - - : RESTORE SAVED SIZE SWITCH o ol cannemewms = OOOO (=] =3 3 N AN A H AN IR W MO NU PO NU N NOTUNO MO RY == —3 —3 =3 2 e o o TR R oEEFSEF IR B D IS Do 8 35 I 2 LA TR e x\uuv-a<><30rvc»un:~uuv-a<><>urvc»~n:\uvn»ac:<n=-vcrun:\oanJ-acnocn-qcrun:~uun»a<>uoaTVCh U ,F GA34, 0480,058F,4089,8467,03FF AIVSISINIA DS £ 0A33, 0884,047F,4031,0047,00A3,4 ©2 Co 00 € 0A32, 0085,259,4010,0047,0043,3 N P 0A31, 0D86,7C12,0U3F ,F847,00A3,2 00 CO €3 £O CO €0 0 0000 £O € 091F, 0886, 5BE,4039,04A7,00A3,7 TR TR T P 091€, 0886,75BE,4039,(4A7,00A3,1 et Gt SuirGuirsur@ub Gui-Sul GuiruivirouirpuiFouirpuir Ui 091D, 0886,75BE,4039,04A7,00A3,1 .. 091C, 0886,75BE,4039,04A7,00A3,1 R P [ R A 0918, 0485,B592,46F9,(047,055D,8 R e TR T TR TP TR TR PR PR PR P TR TR T CONSOL . MIC Console Command Parser L ¢ MICROZ 0% 69 00 00 L0 CO C0 09 0 OO €0 00 G000 03 00 00 G0 0o 00 GO C¢ 0000 CO 0o 00 O 00 G 0 00 o ©9 o A D B D md e B D D o b D P D e b o mad d bo CMTOGB.MCX .10C " 116 16:30:35 28-NOV-83 1M 70.P CN.VIRT.TT0.PHY CN.VIRT,TO.PRY" Console Command Parser NN R AR A RRR R RN R AR AR RN INPUT _ T cUT H H; RN AR H AR MDR VA AR Rk o TEMP? TEMPO AR AR SUBROUTINE KARR AR R AR MM.GET.PTE R AR KRRk i CONTENTS OF VA MDR RESOURCES AR R R A AR AR KRR AR CONTENTS OF VA ADDRESS(VIRTUAL) VA . ; : Page 203 CLOKX Rev 13.00, Clock rate = 160ns AR A R AR AR ; PHYSICAL ADDRESS GETS 0'MDR AR AR AR AR AR RN RN ; i A AN AR RN KR i ! ! - S T et O JRET+6,+7 JSAVE VA PUSH, RIMM,. TEMP3] _MCVA], WB<31-30>7, NEXT/MM,GET.PTE =100 JBUT INTO SUBROUTINE sGETS PAGE TABLE ENTRY 1100===ccssmmemcecm=ssaamma=n= “VA,TEMP7 GET VIRTUAL VA VA_MCTEMP7] _RIMM.TEMP3], ‘GET VIRT ADDRESS INTU TEMP? . TEMP? NERT/CN.RESTORE T — VA_MCTEMP7]_RLMM.TEMP3], YGET VIRT ADDRESS INTO TEMP? ORE . TEMP? NERT/CN.REST ;110w =mmmm e mmm e e SVA,TEMP7 GET VIRTUAL VA VA MLCTEMP7) _RIMM,.TEMP3T, YGET VIRT ADDRESS INTO TEMP? (EMP7 NERT/CN,RESTORE. R @ s o o e L e 0 S L LT 00 S T T g S Y e AL B ‘VA,TEMP? GET VIRTUAL VA T R e W T T W S - 1VA,TEMP? GET VIRTUAL VA STEMPO_0(16 BITS)'MDRL16 BITS) ;WORD SIZE T D e T MDR RLMM.T T Ty Y Y W vy *RESTORE MDR *RETURN=1 CMT098.M(X ; CONSOL MIC : MICROZ2 1M(OD 28-NOV=83 Console Command Parcer ;8163 Ak AR AR J 0A3S, 0(87,0587,0030,0047,056B,6 ;1] mmmne mmn e RNUM 0, RA AU KI AR AR KRR R KKK KK AR A : m ; e; RETURN [ +13 ; 1ERO INCASE BOOT WITHOUT /X ; 0A35: sxaxanxxxxFORCE ADDRESSwawaxhwtn, (N, CLEAR TEMPS,10: j0m—emsesesscmsccccsoccnes e ne—. ; 18173 M[TEMP R1.0, :g};g U QA36, 0U81,DDAQ,26FD,8047,0897,1 344+ ;8178 A KRR RN N NEXT/CN. CLEAR.TEMPS. 10 ;g}gg 8177 R RCTEMP.R1 0 : 8167 18176 R AR AR KA (N.CLEAR.TENPS: ) Dttt e D e———— : :8166 18172 R =0 :g}gg ;8170 ;8171 R A PUSH, NEXT7MV SET.CRAR 0A36: : ; LOAD (RAR FOR SETTING HALT LATER. ;lmmmm=mccmmemecmmmcooceeeoeeeos ; PNU WB<ST 30)’ NEXT/CN.CLEAR.TEMPS N 204- CN.CLEAR.TEMPS'' "t\‘fi**fi\‘**‘(**‘(*****Q***Q****itiiti**ii**iiiiti*ifiifii**itltiQ*t***""lttttt't ;8160 . : :‘8157 ;8161 ;8162 . CN.CLEAR,TEMPS (Console Command Parser : Page CLOKX Rev 13.00, Clock rate = 160ns .J0C '' SBIGB J 0973, 0(81,Db587,0080,0047,0000,1 : :g}gg ;8159 U 0971, 0484,0587,003C,0047,00A3,5 16:30:35 J 16 = H ; (MT098 . MCX CONSOL.MIC 16:30:35 MICROZ2 1M(01) 28-NOV=~83 Console Command Parser U 096D, 0186,5C37,0031,FB47,049F 4 J 096, 0486,A737,0010,0047,04A2,9 CN.ERROR Console Command Parser : 28181 ;818% JHRH AR KRR AN RN R RN AR AR RN R AR R RN R KKk A kKA KR AR AR AR AR R AR AR AR R AR AR R AR AR R RA R AR AR ARCRA AR R KRR H KRR KRRk kAR RS R ;g}gg CN. ERROR 18186 6C: PUSH, NEXT N.TYPE. CHAR ‘8189 96D: 18193 96E: ;8194 :g}gg 18137 96F: (8500 0 iy 096F, 0180,6012,0A37,8047,009fF ,F u 09FE, 0C10,0036,4030,0047,008A,F ggg% 18204 18205 ;8206 ADDRESSHaxwswwxx; MCTEMPS) 7 TO[ODJ :g}gg : 8190 ;g}g; shwnnnn e xFORCE Page CN.ERROR"' .T0C '* 28198 : 8199 09FF, 0186,A037,0031,F847,008F,8 CLOKX Rev 13.00, Clock rate = 160ns :g}gg ;818 J 0960, 0586,5037,0030,6847,049F,4 : K 16 wxy Ay Y TYPE <CR><LF> ; ;0)====emmmcmeemmocoa-- ST TIE T MfTEMPS] ILITOL3F], ; TYPE ? PUSH,NEXT/CN.TYPE. CHAR : B : PUSH,NEXT7CN. TYPE.NUMBER ; TYPE ERROR NUMBER METEMP10]_CONX(2}, ; LOAD NUMBER OF DIGITS TO TYPE. ;1leemmemcmemmecsceemccacssceea- ; NB _MLTEMP6],AND.2L1T0COFO], WX7E0.0? ; CHECK IF THIS WAS AN EXAMINE : CLEAR FLAG2.NEXT/CN.PROMPT CLEAR APT FLAG JUST IN CASE. 0 jlem=m==cmmemceocceeeee et ; M[YEMP1OJ 2LITOC3F), NEXT/CN.TYPE,RESULT s TYPE ? AS SPACE CHARACTER TO INDICATE . ERROR. ON EXAMINE TYPE RESULT ANYWAY. 205 [ ; : {MT098.MCX CONSOL MIC P MICROZ2 — 1M(01) e e 28-NOV-8B3 (onsole Command Parser e - e 16:30:35 ! L 16 CLOKX Rev 13.00, Clock rate = 140ns (N.ERROR Page : 206 : | i | t 8206; This page intentionally left blank. ] Iy — i | (((((((((((( e e D o " e o ot et " Nt Nt ot P NP N S P Nt Nt o o Nt N ot N Nt Nt NP W Nt ot Nt Nt N N N St e S ot e Nt lllll et et et et St g et e P St St Sy St Pt St St Ot Bt e} d e Pt Ph = 4 p ot Sy S Sp g e g g Pf St St P Py Pmg g e S g e m et e s e e e 5555566666666666667wl77777777wl7788888888888889909999999999000 | MMMMMMW” ~r COOOOOOCCOOOOOOOCOOOOODOCD I I I T A I T N L e L sthrbust Foe e N H e (MT098 . .M EE INTLOG.M e MICRO2 1M(C1) INTLOG.MIC 28=NOV-83 16:30:35 i ;8207 .TOC VINTLOG.MIC" | :gs?g ; i ;8208 S8 :g{}% HBAYL ;8215 ;8216 ;8217 ;8218 ;8219 ;8220 ;8221 ;8222 ;8223 ;8224 NCBIN .Toc ' 2 Reaove free lacation ;25 ;24 23 ;22 ; ;A ; 20 B .70C "REVISION 26.0" 1 CLOKX Rev 13.00, Clock rate = 160ns Gerard koeckhoven, (. E. MCDOWELL, P. R. GUILBAULT Revision History'' Documentation change . Reccover FREE.QOC and FREE.QOD, now used in JANDE. Reassign addresses in EDIV routine ) . . Restore micro-address in ADWC routine, which was previously swapped to fix EDIV problem, Assign permanent addresses to IL.EvIV( and IL.EDIVCY Swap_a micro~address in ADW( routine to fix a bug in EDIV Fix EDIV problem such that targest negative number is acceptable, Fix two FPA interface bugs. . (hange FPA intertace for integer multiply. Initial release, 18225 BIN Page fi 207; P e :; e e (MTOG8 . M X : e e e MICRO2 INTLOG MIC [ 1M(OM) 28=NOV~BS 16:30:35 Integer, Logical, & Address - i ! 28228 :8229 ;8230 ;8231 18234 ;8235 ; ‘ , U VO0A, 0081,200A,0130,1047,903F,9 U 004E, 0481,2002,013C,D047,003F,9 Page BIT(B,W,L) mask.rx src.rx Input (Dest is register) KA AR AR 2 RKRR AR RKAKARA KRR AR IR 208 ; ? R s d ke ko f | 3 i Mask Sre Q MDR Input (Dest is memory) . : : BIT, CMP, TST" Integer, iLogical, & Address SRR AR AR AR AR RN R RN K R AR AR R RN R KT XA RR R IR AR . ;8232 ;8233 CLOKX Rev 13.00, Clock rate = 160ns ¢ BIT, CMP, TST " :g%sg LT0C ¢ 1 MDR Mask GPR{rnum) Sr¢ kR Kok KRR i ' i ok e KR R ;8236 .REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H ; 938303 :gsgg IL.BIT.B.W.L.MEM: :18239 WB_MLMDR1.AND.Q,CCUP2, ; ‘ 8242 1L.BIT.BW.L REG; | :252? SIZECIDEP],IRDI 18244 :ggzg } | ; WB_MLMDR),.AND .RLGPR.R],CCOP2, SIZELIDEP], IRDY i ; 93 83 D3 || : ; 18247 8249 I RRRRARRAKN KKK R AR RNRARR KRR AR AR RN ARRIN R F kR (MP(8,W,L) srcl.rx srcl.rx Input (Dest is memory) . . 18250 . 8251 :823%2 ;8254 8255 :8256 ;8257 :gsgg _ 0052, 0481,2008,0130,0847,003F,9 U 006, vu81,2000,013C,C847,003F,9 pwRkdk Rk Ak Rk Ak kR kkkhkkkkdedkkhk Source 1 Source 2 Source 1 MDR R Rk Ak ek R Rk R R R R ke GPR(rnum) R R RR e Source 2 R R ROk Rk R kR ok Rk L.REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H IL.CMP.B.W.L.MEM: ; 91 81 D1 18260 WB_Q-MLCMDRI,CCOP1,SIZECIDEP], ;ggg} Egggz Q MDR Input (Dest is register) ;8253 dkddrdedrde kbl IRD1 UB_MCMDRI-RCGPR.R],SIZLLIDEPY, ;gggg H ! : 91 81 D1 IL.CMP.B.W.L.REG: 18065 i CCOP1, IRDY i : :8268 . 8269 JB270 ? R AR 8271 18272 ;gs;z 28275 :gs;g J 00BE, Q081,2562,4130,0847,003F,9 i 18278 SRR R AR R ARk R TST(B,W,L) src.rx Input A KRR RN AR AR AR KRR IR KRR R KRR MDR KR K R REGION/IRDX.R1L, IRDX.RTH/IRDX.R2L, IRDX.R2H IL,TST.B.W.L: Rk Ak kR Source AR ARk Rk Rk ke wk kb ek : 95 BS DS WB_MCMDR],CCOP1,SIZELIDERT, IRDT ; R R kR Rk h kK wkkwkk ? : ; {MT098 . MCX INTLOG.MIC MICROZ2 TM(O) 28-NOV-83 CVT(LB,LW,WB) src.rx dst.wy Input (Dest is memory) Input (Dest 38291 ;gggg Register number of dest Source 222323323338t diitsisdiasiisnili] ; WRT DEST & SAVE RESULT IN TEMPO ; GO CHECK FOR V SEGJON/IQTLOG+RI1L,INTLOG.R1H/INTLOG.R?L.I?J%SS.RZHIINTLOG.RSL,INTLOG.RSH MCTEMPO] SEXT(MB).XOR,Q :gggg SIZECIDEPR], NEXTZIL, CVTNB STRIP E SIGN EXT RESULT & COMPARE WITH SOURCE ; (BITS<31:17> ARE GARBAGE) ;]mmmmmmemomce e oo oo : CVILB CVTLW 28300 :g%g} MCTEMPO] SEXT(MB).XOR,Q,CCOP2, SIZECIDEP], IRD1 ; SIGN EXT RESULT & COMPARE WITH SOURCE : DO CCOP2 TO SET/CLR V LREGION/IRDX,RIL ,JRDX.,R1H/IRDX.R2L,IRDX.R2H ; F6 F7 33 IL.CVT.LB.LW.WB.REG RCGPR.RJ.SI1Z_Q_MCMDR1,CCGP1, 18306 :gggg SIZELIDEP], 1R<2>? : WRT DEST & SAVE RESULT IN @ ; GO CHECK FOR V Egg?g SEGION/IBTLOGRIL, INTLOG.RTH/INTLOG.RZL.I?&%Sg.RZH/INTLOG.R3L,INTLDG.RSH ;8311 MTEMPG_SEXT DR) E SIGN EXT RESULT & COMPARE WITH SOURCE ;g%}% S12eCIDEP], XT/]L CVTWB STRIP :8314 : MTEMPO_SEXT(MDR).XOR.Q,CCOP2, :g§}9 SIZECIDEP2.IRDY ;s IL.CVTWB.STRIP: 58325 18326 SRR A AR R R R ARk R R KRR AR KRR AR CVT(BW,BL,WL) src,rx dst.wy MCTEMPO) ZEXT(MB),SIZELWORDY, :g%g; ;8329 :g%%? 18332 . 8333 ccor2, IRD1 AR Input AR A R AR R AR R R R R R SIGN FXT RESULT & COMPARE WITH SOURCE ; DO CCOPZ2 TO SET/CLR V Egg}g 18320 18328 (BITS<31:17> ARE GARBAGE) ;lmmmmemme—m—— e ——————————— ; CVTLB CVILW . 8315 ;8327 J 00E5, 0081,2816,518D,8047,0014,0 RNUM MDR ;s F6 F7 33 M[TEMPOJ JWRITE,CCOP1, SIZECIDEP], IR<2>% 38296 :g%gé Source Add cof dest IL CVT.LB.LW.WB. MEM ;8303 U 040F, 0486,059E,4110,1047,003F,9 = VA :gsgg 209 E LREGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H :8399 U 049F, 0087,2818,4130,1047,003F,9 is register) Q N1333233 32233323222233233 32338201238 222222 Egggg U 049¢, 0887,281R,4030,0047,0040,F bage CNATAN Integer, Logical, & Address " :8287 ;8288 U O0CE, 0483,2592,58R(,(847,0049.,E CLOKX Rev 13,00, Clock rate = 160ns SERARRRIR AR AR R AR AR KRR KRR AR KRR AR IR AR AR R R R RN R KRRk d ok kKo ;8285 ,,0818,4130,1047,003F,9 B ;8281 8286 U 049C, 0886,0818,4030,0047,0040,F o .T0C ;8284 u O0AE, 0886,003A,488D,8008,0049,C : (VT 1 :gggg ;8282 18283 U 049D, G. 16:30:35 Integer, Logical, & Address D ; ZEXT TO STRIP GARBAGE FROM <31:17> ; & D0 CCOP2 TO SET/CLR V KRR A MDR R AR Source .REGION/IRDX.R1L,IRDX.RT1H/IRDX.R2L,IRDX. R2H IL CVvT,.BW,.BL.WL: 99 98 32 Q_SEXT(MCMDR1) ,SIZELIDER], LOD INC BRA?,NEXT/0S.WRT1 kKRR R AR AR AR R RN R A RN R AR RN AR RNk R KR ' SAVE SEXT SRC IN Q. GO EVALUATE DEST ; RETURN THROUGH ROM TO DIVQUO+ i I | — e e ; ; CMT098.MCX INTLOG,.MIC MICRO2 1M(01) 28-NOV=-83 Integer, Logical, & Address """ T0C 38336 JER AR AR ARk KRR ;8338 . 8339 :8340 831 . MOV (B,W,L) ;8343 : 8344 28345 ;8346 ;8347 :g%zg J O1AF, 0080,0088,013D,9508,003F,9 u Q1BfF, 0083,2E53,€13C,D047,003F,5 :8370 :gg;g U 01CF, 0480,0038,013D,80D8,003F,9 v 0100, 0483,2593,013C,(847,003F,9 Q VA MDR RNUM Source i Add of dest Source Register number of dest H ; 90 80 DO |L.MOY.B.W.L.REG: : 9E 3E DE IL.MOVA.B.W.L.REG: RCDST.R].SI1Z_MLMDR],SIZELIDEP], : WRITE NOTREG,CCOP2,IRD1 : | : 92 B2 D2 IL.MCOM.B.W.L.MEM: WRITE 0.NOT,CCOP2, : SIZELIDEP],IRD1 ; IL . MCOM.B.W.L .REG: RIGPR.RJ.S12_MLMDRI.NOT,CCOP2, ; 92 B2 D2 ILWNEL,B.W, L, MEM: ; 8E AE CE j : f : BE AE CE } H : SIZECIDEP],IRDT WRITE -Q,CCOP1,SIZECIDEP],IRDT IL.MNEG.B.W.L.REG: 18377 ATGPR.R1.SIZ_-MIMDR],CCOP1, 18378 SIZECIDEPR], IRDT H i 38381 :8382 IR AN AR AR R KKK AR RN AR AR IRk kT Rk ko kA ek ek kR kR kR Rk Rk %k MOVZ (BW,BL,WL) src.rx dst.wy ‘ : s83Bh AR ; 28383 :gggg J O1DE, 0481,2016,518D,8047,0014,0 ! : 90 BO DO SIZECIDEP],CTOP2,IRD1 }g%;z Eg%;g } RCDST.R1.S1Z_Q Q_D,WRITE NOTREG.Q (ALSO USED BY MFPR) ;g§22 ;g%gg RRdok ok dok ko kk ki kk ; 9 3E DE IL.MOVA.B.W.L.MEM: 18362 Egggg 18367 AR R DX.R2L . IRDX.R2H ,REGION/IRDX.RIL,IRDX.R1H/IR ;g%gg +8359 KRR RN ERRIR IR AR ARRR IL.MOV.B.W.L.MEM: ;8356 :g%g? 210 : : MOV(B,W,L), MOVA(B,W,L), MCOM, MNE ; src.rx dst.w (Dest is register) Page é MR RAHEKIKERKERERARANRRRKARKRANARAA AR ER kb Rk kkkk ko kkk vk kkdk ;ggg; :gggg U 00F1, 0883,2592,413C,55DA,003F,9 Input ;8350 18353 KRR MOVA(B,W,L/F) src.ax dst.w MCOM(B,W,L) src.rx dst.wx MNEG(B,W,L) scc.rx dst,wx Input (Dest is memory) :8342 U OOEE, 0882,002¢,713C,55DA,003F,9 Integer, vogical, & Address ' ;g%gg : 8337 ] 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : MOV(B,W,L), MOVA(B,W,L), MCOM, MNEG, MOVZ . $8387 ;8388 . Input R IL.MOVZ2,BW.BL.WL: AR KRR R R MDR Source R KRR AR R KRR KRR R AR 0_ZEXT(MIMDR]),SIZECIDER], LOD INC BRA?,NEXT/0S.WRT? ; 98 9A 3¢ R R R R AR KRR AR KRR AR KRR RS ' STRIP GARB FRM UPPR BITS OF SRC. EVAL ; DEST, IRDX ROM RET TO MOV.B.W,L.MEM ; : : CMT098.MCX INTLOG,MIC MICROZ2 Integer, Logical, & Address " 38391 R L . MOVQ 28397 : 8398 RNUM R LSB Source Register number of dest R KKK REAR KA ARk Kk RCDST.RI_MCTEMP1],WRITE NOTREG, : WRITE LS WORD OF SOURCE :gzgg REG MODE? 'gzgg gEGJON/lNTLOG.R1L INTLOG.RTH/INTLOG.R2L , INTLOG.R2H/INTLOG.R3L, INTLOG.R3H :8409 } 1L, MOVAMEN: ; IL.MOVORES: 2O D00 O £ D B 00 € cc0P1,512 CIDEP],SET MM.NOINT, : : VA VA+4, NEXT/IL MOVQMEM.A 3 E R[DST R+1] MCMDR],WR]TE NOTREG, 3 WRITE MS WORD OF SOURCE CCOP2,SIZETLONG], fRD1 H A: IL . MOVQMEM. WRITE Q,CCOP2,S1ZECLONG],IRD1 T e e et i T T T TN KRR RN AN AR A RNk A AR ARk AR PO o i o b el R et b e O N e e N N O N N AN N N N UL N N UM N S i I P P I T P PR PR PR PR T N e o : PO RO U NOFONUNUND — —3 b E O NI HAIND == O D00 IO V1 I NN = OO 00 NN N SN = O 8404 P U J1F1, 0883,2592,413C,4DDA,003F,9 R R AR AR AR MSB Source TEMP1 18403 N J 01EE, 0882,002C,713C,4DDA,003F,9 R MDR .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H iL.MOvQ: ;7D : U Q4tF, 0080,003A,4120,9508,003F,9 Input (Dest is register) . LSB Source MSB Source Add of dest ;8400 :2285 N U 04A1, 0085,2592,412F ,55DA,003F,9 TEMP1T Q VA kR ke kA AR A AR AR AW U 04A0, 0C80,0036.4030,0447,0041,F src.rx dst.wy B399 0O 0B 00 O3 0003 G 00 CO 00 G0 G 0 0o 00 6 00 00 Co $0.00 03 00 00 00 0 00 £ Co Co u 01E5, 0864,1592,493C,4DDA,004A,0 L e LA A AL AL A AR ARt A Input (Dest is memory) ;8394 : 8395 ;8396 : MOVQ, MOVAQ/D'’ Integer, rogical, & Address .T0C ;8393 Page CLOKX Rev 13.00, Clock rate = 160ns : MOva, MOVAQ/D :g%gg 28392 Fo1 16:30:35 28=NOV-83 1M(01) e e A R R A § ; WRITE MS WORD OF SOURCE ke kR MOVAQ/D src¢.ax dst.wl Input (Dest is memory) , Input (Dest is register) AR R AR AR R e ke h Ak Q VA MDR RNUM iL.MOVA,Q,MEM fi[DST.RJ.SIZ Q Q_D,WRITE NOTREG, CCoP1,S12ECIBEPITIRD ; : 7 RIDST.RI.S1Z_MIMDR],SIZECIDEP], WRITE ‘NOTREGSCCOPT, [RD1 : ko ko ke ko ke ko kkwk Source Add of dest Source Register number of dest AR AR AR AR AR R R AR R A RN AR RN R AR AR .REGION/IRDX. R1L IRDX.RTH/IRDX.R2L, IRDX.RE?E IL.MOVA.Q REG: k ke k AR kR Rk kA kR kv k & i 2115 : C(MT098.MCx INTLOG.MIC G MICROZ 1M(OT) 28-NOV~83 Integer, Logical, & Address ;gzz% Toc :'81,1.(, N3122220222222 223202233323 3838303308030 0320200023322 332 8445 18446 18447 :gzzg U 042F, 0481,2592,4120,15D8,003F,9 H " Integer, Logical, & Address PUSHL src.rl PUSHA(B,W,L/F,Q/D) Input src¢,ax MDR 1 PUSH, PUSHA' 3382838382438 stiinsd Source :iw*t*w*wtw***t***twfifit&t*tttt~«ttt*tttt*ttt**t****ti***i*t****t*t*ti*t****it _REGION/IRDX,.R1L,IRDX,R1H/IRDX.R2L,IRDX. R2H :gzgz IL.PUSHA.B.W.L: e L L ;gzgg ;%2gg 28459 :gzg? iL.PUSHL: 9F 3F DF A S ai b taiadatalabntotetotaininkuutatuin bbb aiininin : VA_RLSPI_RB-CONX(4) ,PUSH RBS- : JREGION/INTLOG.RIL, INILOG R1H/INTLOG.R2L, INTLOG.R2H/INTLOG.R3L, INTLOG.R3H WRITE MLMDRI, S!ZECLONGJ CcorP2, ; IRD1Y : 18462 18463 U 0200, 0085,473(,0027,84A7,0044,1 J 0441, 0481,2592,4120,0DD8,003F,9 Page 28450 ;8451 18452 U 0206, 7485,473(,0027,84A7,0042,F 1 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns 1 PUSH, PUSHA ;8466 ;8465 REGION/IRDX,R1L,IRDX,R1H/IRDX.R2L, IRDX. R2H L7 iL.PUSHA.Q: Egzgg Eg?gg ;8&?1 VA RCSPY_RB-CONX(4) ,PUSH RBS- } REGION/ZINTLOG.RIL,INTLOG.RIH/INTLOG. R2L INTLOG.R2H/INTLOG.R3L, INTLOG.R3H WRITE MCMDR],SIZELLONG],CCOPY, E ;8472 IRDY : 212 —- : ; S CMT098.MCX MICROZ2 INTLOG.MIC 1M(01) 28=NOV-83 16:30:35 Integer, Logical, & Address ‘ : gz;z :'8‘0?5 :B476 18477 :847% ;8476 ;8480 ;8481 Integer, Logical, & Address ;8491 :gzg% Egzgg ; Input (Dest is memory) Input . . (Dest is register) Q MDR OSR Count Source Dest MDR RNUM OSR Source Register number of dest Dest Q ; i ? .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX,R2H =1111 1L .ROTLMEM: PR R R PL_Q R :9C ; ! LOAD PLATCH WITH COUNT SEGION/ISTLOG+RIL,INTLOG,RIH/INTLOG, R2L INTLOG.R2H/INTLOG.R3L, INTLOG.R3H PUSH,RLCTEMP1] MEMDR] RL.P, : ROL BY :gzgg BRA ON ADD?, NEXT/OS.URT1 ; GO EVALUATE DEST :8500 P ;3281 i Count 18496 18497 213 't*****t*i**ifi***i*it*tt*ttttfi*****kt****ititiI****tttttttttttt***tt******t** ROTL ¢nt.rb src,rl dst.wl :*tktta*ttttutttttt«ttttwwtttt*ta*w*w***anu*n*tttttt*wttt**tt**t*wt*t*ttwtttt ;8490 o : ROTL" ;8486 ;8489 U 04A3%, 0080,1592,4130,05D8,003%F,9 " Page : ;8487 U (4A2, 0885,2877,0630,5047,0414,0 t ROTL CLOKX Rev 13.00, Clock rate = 160ns ;8482 ;8483 :gzgg ;8488 v 000F, 0080,0BFA,403D,8047,004A,2 L10C T - ccop2,SIZELIDEP CNT= ROR BY =(NT UU WRITE MLTEMP1],SIZECIDER],IRD1 ¥ WRITE RESULT :850% LREGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX. R2H :9C i : : :gggg iL.ROTLREG: u 0211, 0880,08FA,403D,8047,0004,E Egggg PL_Q U 044E, 0085,2877,013(,0047,003F,9 Egggg 18510 85N 3 LOAD PLATCH WITH COUNT REGION/INTLOG.RIL,INTLOG.R1H/INTLOG. R2L INTLOG.R2H/INTLOG.R3L, INTLOG.R3H RLGPR.R] M[MDRJ RL.P,CCOP2, SIZECIDEPY,IRD1 * ROL BY CNT= ROR BY =CNT ; ( ; ! | l | INTLOG.MIC MICROZ2 18514 ,*tttttt-tttn-wttwt-ttttuttwtttttt**ettt*ttta*t*nt*ttt*nwt*ttt*t**ttt**tt*wt« U 0231, 0061,2009,0030,05D8,0045,F J 065F, 0081,2009,0130,0847,003F,9 " Integer, vrogical, & Address CLR(B,w,L,Q) dst.wx : CLR, ADpw(" 515 i 518 g}g .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L.IRDX.R2H ; 94 B4 D4 IL.(LR.B.W.L: 516 Input VA/RNUM Add/Reg of dest 517 'ttfi*itttttttt*tttttfi*ttttiiitttttttltttttln\ttn!ttttt*tt*ttt**it***t*t***tt* 521 RCDST.R1.S1Z_0,WRITE NOTREG, gs% ggg SIZECIDE Pl.ctore, IRD1 N NN PO AN = OO DO NO NS AN 2O 000~ 5 5 NN N WA WA CAEN DN AN DN BN D3 8551 8552 gggz gggg RIDST.R] 0.WRITE NOTREG, P WRITE 0 TO FIRST WORD : . & BUT 0 REG MODE SIZECIDEP],SET MM,NOINT, REG MODE? SEGION/JgTLOGLRIL,INTLOG.RTKH/INTLOG.R2L,I?EkOgE§2H/INTLOGR3L,INTLOG.R3H ) VA_VA+4 : ;lmmmmmsamemameasae———ama—————— ; CRLO(REG,MEM) REDST.R+11_0.WRITE NOTREG, CCOP1. WRITE 0 0 SECOND WORD SIZECLONGITI ; AN NN AN R AR AN R R R AR R AR AR R R AR AN R R R RN AR R AR AR AR AR R AR AR AR R AR A AR AR A AR AR ARk H H H H H ; ADWC add.rl sum.ml Input (Dest is memory) . . Input (Dest is register) T RERR NN RN RN R R R T E R AR NN RN RRRRR R .REGION/IRDX,R1L,IRDX.R1H/IRDX.R2L ,IRDX. R?H iL.ADWCREG: . 08 ° ROk hy Add Sum Add of sum Add Sum Register number of sum kR AR kAR ANk emmmmmm;ccesesecesssssseesssoe. : RCGPR,R]_MLMDR)+RB+PSLC,(COP1, SIZECIDEP], IRDY [L.ADWCMEM: WRITE MIMDRJI+Q+PSLC, ggg? beESION/JNILOGJRIL,INTLOG.RTH/INYLOG,R2L, 8362 8563 8564 Q MDR VA MDR GPR {rnum) RNUM AR RANRR AN R 8557 gggg : . 7C IL.CLRQ: 526 SO OO NN it LR TR TR TE TR PR PR TR L DR IR L _ it De€, 0085,2001,013C,(847,003F,9 T S T P U 04AS, 0C84,0587.012F,4DDA,003F,9 P U 04A4, 0480,0036,4030,0447,004A,5 CLOXX Rev 13,00, Clock rate = 160ns : CLR, ADWC .TOC L AVIWIUVIITLITW LT LT U A U uiautuoavavawua U 022A, 0064,0587,093C,45DA,0044A,4 Page 214! ,gg%% 000 CO 00 00 €O COC0 CO €0 00 €0 £0 00 0o Co 0o 08 £ €O 00 O 0o 00 030000 00 00 C0 00 CX €0 £0 G OO 0O u 0221, (882,05B7,013C,55DA,003F,9 h 16:30:35 28~NOV-83 1M(D1) Integer, Logical, & Address ! 1 SIZECIDEP),SET MM_NOINT jomennnan. semmemceene. e WB_M[MDR1+Q+PSLC,CCOPY, SI2ECIDEP], IRDI : ; DB ; DON'T SET CC IN CASE U TRAP : INTLOG.RZH/INTLOG.R3L, INTLOG.R3H H : NO U TRAP SET (C : I CMT098.M(X gl : 1 ; CMT098 . MCX INTLOG.MIC MICRO2 1M(0V) J 28~N0OV-83 Integer, Logical, § Address ;gggg .T0C 38567 :8568 AR A KRR R AR A KRR AR AR AR ADD(B,W,L)2 add.rx sum mx ;8571 ;8572 . ;8569 ;8570 ;8573 ;gg;g 18576 ;8577 ;8578 ;8579 ;8580 .8581 .8582 ;8583 :858/. 28585 ;8586 :gggg J 0237, 0083,2001,013(,(B47,003:,9 U 023p, 0883,2009,013C,4DDA,003F,9 ;8600 J 0047, 0083,2009,0630,4847,0414,0 ¢ 0050, 0080,1592,4130,05D8,003F,9 : . . Input (Dest is register) Input (Dest is memory) Input (Dest is register) AR AR KA R Ak Add Sum GPR (rnum) RNUM sum Register number of sum VA MDR 0 MDR 0SR Q MDR RNUM OSR Add of sum Add Addl Add? Sum Add1 Add? Register number of sum Sum :tttttttttfitttttlttfittQtwnktttttnkt*flQti**fl*t*iit*tt*t*fifi**i*fitw*t*fifi*i*tfifii* .REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H IL.ADD2.B.W.L.REG: RCGPR.R].S1Z_MCMDRI+RB,CCOPY, SIZECIDEP], IRD1 IL.ADD2.B.W.L.MEM: 1L.ADD3.B.U.L.REG: RCDST.RI.SIZ_MIMURI+Q,CCOPT, =00000 WRITE NOTREG,SIZELIDER],IRD1 =01111 IL.ADD3.3,W.L,MEM: : 80 AD €O H ; 80 AQ €0 ;81 A1 Q1 : ;81 A1 (1 (0111 lememvommmoamantmncm e —anean ; PUSH RLTEMP1].S1Z_MIMDR]+Q, : :gggz BRA ON ADD?,NEXT/0S,WRT? : 18602 :3289 AR RO KRR Rk 0 MDR 28601 $8605 Page : ADD"' ADD(B,W,L)3 addl.rx add2.rx sum.wx . 18595 18596 ;8597 18598 18599 Integer, vogical, & Address : :ggg? 18395 " Input (Dest is memory) $8589 18592 A 1 16:30:35ADD CLOKX Rev i3.00, Clock rate = 160ns cCoPi,SIZECIDEP], . ; :10000===mmmesmemsmceanmmmomnas ; WRITE MLYEMP1],SIZECIDER],IRDY o —————— ; s+ s oa (MT098.MCX INTLOG.MIC ; - MICROZ 1TM(01) 28-NOV~83 16:30:35 O P . O IrONOOONONORONONON v 0243, 0083,2650,013(,4DDA,0Q03F,9 A A R U TUN SN DR P Y :8609 8610 8611 8612 8613 8614 8615 8616 g }g .10C ' : v 04A6, (0480,0036,4C30,0053,0046,2 ) U 06A7, 0080,0036,4030,0047,00FF,8 kA AR AR RN WA AR RN RN AR R RN AR RN RN AR TR AR AR RN Input (Dest is memory) Input (Dest is register) 18647 ;ggzg 18652 ;8653 AR R R KR AR R R R KRR RCGPR,RJ.S1Z_MCMDRI+RB, ;gg%g ;ggzg R RNUM hkegister number of sum GPR(rnum) .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H ; 58 1L .ADAWIREG: ;8644 R Add Sum +8632 :gggz 18635 R SIZECIDEP],CTOP2, IRD Add Sum RN KRR AR R AR KRR R AR ; ;: ; 58 IL. ADAWIMEM: VA<C0>? E ALL IGNED ? .REGION/INTLOG.R1L,INTLOG.R1H/INTLOG.R2L,INTLOG.R2H/INTLOG.R3L, INTLOG.R3H =0 L arbreraulala bt READ.MOD.L.OCK,SIZECIDEP], NEXT/IL. ADAWIMEM2 s ALLIGNED : READ SUM & SET LOCK ; ;lememecmmemneneaa. e ————— ; UN-ALLIGNED NEXT/IE.OPER.FAULT ; RESERVED CPERAND 1L ADAWIMEM2: WRITE.UL MCMDR]+Q,CCOP2, SIZELIDEPR], IRDY R Q MDR MDR A . 8643 Sum Add/Reg of sum : 8030 Egggg ;ggz? sl iiiaiiitiiiiiiisittidi MDR add.rx sum.mx ADAW] 8624 Eggg? U 0462, 0081,2009,0130,1508,003F,9 iRt VA/RNUM ggs% NeRNk Rk Ak ke 18642 . s RCDST.RI.SIZ_MLMDRI+1,CCOP1, WRITE NOTREG,SIZE CIDEPJ 1R01 L =+ U24E, (881,B002,428D,8047,0044A,6 2 : INC, ADAWI" LREGION/IRDX.R1L,IRDX.RTH/IRDX.REL, IRDX. R?H lL INC.B.W.L: ; 96 B6 D6 L ;8631 Page ‘tttt*t'ttttttttttttknltktw*ttttt*t**tt****k****t***********************i**** £419 g»gg 18629 2T Input : : 8628 _ 2222 223 INC(LB,LW.WB) sum.mx 8625 18626 ;8627 U 0247, 0083,2001,013C,p047,003F,9 CLOKX Rev 13,00, Clock rate = 160ns Integer, Logical, & Address 2338023222222 : j 1 : INC, ADAWI Integer, Logical, ® Address 18608 K ; : RN 216 : H MCX CMTC.98 INTLOG.MI(C MICRO2 Mmoo | 28~NOV~-83 Integer, Logica.. ~ Add-ess .T0C 16:30:35 : ' L SuB 1 CLOKX Rev 13.00, Clock rate = 160ns Integer, Logical, & Address Page + syg”’ '*htfi(***k*t*tt*iitfittttt*t*t*t*t*t*t******ttt****tti****t**t*tittt**t**itt** : ; SUB(B,w,L)2 sub.rx dif.mx Input (Dest is memory) H H H : : Input Q (Dest is register) MDR GPR (rnum) RNUM ; H : ; : SUB(B,W,L)3 sub,rx min.rx d1f.wx Input (Dest is memory) Q MDR , . OSR Input (Dest is register) Q ; RNUM ; : TR TN KRR ARk R kR R AN KRR AR AN AR AR AR OSR R ARk R R AR Rk LREGION/IRDX.RIL, IRDX.R1H/IRDX .R2L, IRDX .R2H Il ettt ; 82 Al (2 stttattttatedututulutel * SIZECIDER],IRD1 1L.SUB2.B.W.L.MEM: 1L.SUB3.B.W.L.REG: < 0258, 0083,2008,013(,35DA,003F,9 R(DST.R].SiZ2_MIMDR]-Q,CCOP?, 200000 =011 Sub Dif . Register number of dif Sub Min Dif Sub MDR iL.suB2.B.W.L.REG: U 0251, 0483,£003,013¢,D047,003F,9 Sub Dif Add of dif MDR VA WRITE ‘NOTREGTSIZECIDERI,IRDT . SUB3.B.W.L.MEM : : ; ;; B3 A3 (3 I R R R R ik L b bdt PUSH RLTEMP1].S12_MIMDRI-Q, CCOP2,SIZELIDERI,TM : : : J 006F, 0883,2008,0630,5047,0414,0 BRA ON ADD?,NEXT/0S.WRT1 o 0070, (0080,1592,4130,0508,003F,9 :10000== = mmummmmmm v e e WRITE MCTEMP11,SIZELIDEPI,IRD1 : Min Register number of dit kR Rk Di Rk kAR AR RN 217 ; (M7098.MCX INTLOG,MIC : MICROZ 1M(O1) 28-NOV~83 16:30:35 8690 :8700 18701 ;8702 :8?03 ;8704 ;8705 :g;gg U 0265, 0883,2¢51,013C,4DDA,003F,9 .T0C R AR Z i CLOKX Rev 13.00, Clock rate = 160ns Page + DEC, SBWC ~Integer, Logical, & Address ;gggg [ Y Integer, Logical, & Address R AR AR AN R R AR AR KRR DEC(LB,LW.WB) dif.mx AR RR R lnout AR : DEC, sswc"' kR ARk MDR VA/RNUM , ! kAR KRR XA KRR A hK Dif Add/Rey of sum LREGION/IRDX.R1L,IRDX.RIH/IRDX.R2L, IRDX. R2H ]L DEC.B.W.L: RCDST.R].SI1Z_MCMDRI-1,CCOPT, ;g;¥3 WRITE NOTREG,SIZELINEP],IRDI . ; 97 87 D7 % & 1 H j 1871 'tw*twttwnttu*wttttitulttttiktt**ttttttt**t****t**t*****t**********t**tt**t** ;8714 . ;8716 ;8717 ; ;8721 ‘tiu AR :872¢ N N o027, 00el,7008,0030,05D8,0040,4 ) - 2464, 0481,2008.0130.0847,003F,9 : ;8718 ;8719 ;87220 026k, 0485,2003,013(,(847,003F,9 ‘ ;8713 ;8715 SBWC sub.rl dif.mi AR AR Input (Dest Input (Pest is register) R R ER (AR is memory) A AR AR R R AR AR A RN Q Dif Add of dif RNUM Register no. of dif MDR GPR(rnum) Sub Dif R AR RN AR AN A ANk k Ak _REGION‘/!@DX.RiL,IRDX.RIH/IRDX. R2L, IRDX.R2H . b9 iL. SBWCREG: 18726 RCGPR.R)_RB-M[MURI-PSLC,CCOP1, SlZE[lDEPJ IRD1 Sub MDR VA ;8723 :g;gg ;g;gg kA kA ; ;09 Eg;gg }8?31 IL . SBUCMEM: WRITE M[MDRI-Q-PSLC,SIZELIDEP], : DON'T SET CC IN CASE U TRAP Egggé JREGION/INTLOG.R1L,INTLOG.RTH/INTLOG.R2L, INTLOG.R2H/INTLOG.R3L, INTLOG.R3H ;g;;% 18736 .8737 2185 '*t*t*k*t***********?*******‘f***tt**k**fi**flk*t'«‘(**'(*it*i***t*i***t**ttttttttt 18708 ;8712 ‘ SET MM,NOINT W8_MCMDR1=-0-PSL(,CCOPT, “IZELIDEP], IRDT : * DON'T SET CC IN CASE U TRAP H ke ke ! K i {MT098 . MCX MICRO2 INTLOG.MIC 1M(D1) 28=NOvV-83 16:30:35 Integer, Logical, & Address ;g;gg .Toc :'87(,0 AN ;8742 8743 iB74L ;8048 ;8746 ; : 8741 : ; . :g;zg : XOR " RN R AR AR RN R AR AR R RARRN AR AR XOR(B,W,L)2 mask.rx dst.mx Input Input VAT VA MDR GPR (rnum) LA TR AR R AR (Dest is memory) (Dest is register) AR LAR AL AR RAR AR OSR G MDR RNUM OSR Dst Mask Src Register number of dst Dst RLGPR.R]. 312 M[MDRJ.XOR RB, M ;g;gg . 8768 ;8769 . 8770 ;8771 ;8772 ;8773 18774 IL.XORZ2.B.W.L.MEM: 0111 e mmnecmm BUSH,RLTEMP1], 517_MIMDR].XOR.Q, ;gzzg BRA ON ADD? ,NCXT/0S.WRT1 > ((0P2,SI1ZELIDERPY,” : : : [ ;8779 ;R?gg "87 ;10000=—mmremmm e s — -- = 8C AC (( 2 et e mncncncnanana 8775 18776 ; ; 8D AD (D RIDST,R].SIZ_M[MDR],XUR,Q, WRITE NOTREG,CCOP2,SI12ELIDEP], IRD1 =011 JL.XOR3.B.W.L .MEM: LALLM N ; IL.XOR3.B.W.. .REG: =00000 Sre¢ ; 8C AC C SIZECIDEP],cTOPZ,IRDY -1 Register number of Dst R AR ARL AL AR AMASAANEARLARALALA iL.XOR2.B.W.L .REG: ;gzgz Mask Dst Add of Dst Mask Dst Mask ;8762 ; 219 ko Yk Q MDR REGION/IRDX R1L,IRDX.RIH/IRDX.R2L,IRDX.R2H ;8765 0060, 008U,1592,4130,05D8,003F,9 2 MDR ;8758 ;8759 ;g;g? AR R Rk A ARk kA Ak kW XOR(B,W,L)3 mask.rx src.rx dst.mx ;8752 . 8753 ;8754 ;8755 ;8756 JOLUBF, R, 2U0R,G630,5047, 5ut4 0 AR R AR Page i XOR' RNUM H ;8751 S 0279, UBBS,ZUUB,L130,55DA,003F,06 (Dest is memory) Input (Dest is register) ;8750 ] CLOKX Rev 13.00, Clock rate = 160ns Integer, Logical, & Address Input ;8749 D277, 0083,2003,4130,0047,003F,9 N WRITE MLTEMP1T,SI12FLIDEP],TRDT i 8D AD (D ; : (MTO98.MCX INTLOGMIC MICRO2 1M(01) B 2 Integer, Logical, & Address :g;g% 38784 ;8785 .TOC ;g;g; . ;8800 S8BT ; :gggg ' Q27F, 0483,2002,413(,0047,003F,9 ) 0288, 083,2004,413(,55DA,003F,9 :18818 J O0AF, 0883,200A,4630,5047,0414,0 J 0080, 008G,1592,4°30,05D08,003F,9 AR A AR AR AR R AR IL.BIS2.B.W.L.MEM: IL,BIS3.B.W.L.RCG: : : : ; Dst | Register number of Dst Dst Q MDR RNUM ] Mask OSR ; | : Src : : Mask Src Register number of dst kR Rk i ! i : | : Z ; ; 88 A8 (8 ; 89 A9 (9 1IRD1 : =00000 =01111 IL,BIS3.B.W.L.MEM ? 88 A8 (8 ; ; 89 A9 (9 | | ; 10111 {mmmmmmmem v mm e: PUSH,RLTEMP1],S12_MIMOR].OR.Q :ggs; BRA ON ADD? ,NEXT/0S.WRT1 18820 ;ggsg ’ Mask MDR i Dst Add of Dst Q REDST.R],SIZ_MCMDR],OR.Q, WRITE NOTREG;CCOP2,S12ECIDEP], ;8819 ;8803 GPR (rnum) kR kK Mask OSR Dst KRX AR R AR R IR AR KRR Rk SIZELIDEP],CtOP2, IRDT 18813 ;8815 L8816 ;8817 Input (Dest is register) RCGPR.R].$12 MIMDR],OR.RB, 18812 18814 MDR é ,REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX. R2H ;gggg :gg}? MDR VA iL.8152.8.W.L.REG: 18806 18809 ) Input (Dest is memory) ; . ;8803 . 0 BIS(B,W,L)3 mask.rx src.rx dst.mx ;8797 ;8798 :880¢2 : BIS" RNUM :8795 i A R ARk R KR A kAR R AR R R KR AR AR K : ;8794 ;8799 AR R R Input (Dest is register) 18793 ;8796 R Input (Dest is memory) ;8789 ;8790 Integer, rogical, & Address BIS(B,w,L)2 mask.rx dst.mx ;8787 ;8788 i " RN NI ;8786 i Page 220 16:30:35BIS CLOKX Rev 13.00, Clock rate = 160ns 28-NQV~-83 CCOPS,SIZELIDER],” ) : : ; ; ;10000 =mm=mmmmm o e manm e nn; ; WRITE MUTEMPY),SIZECIDEPI,IRDT : H MICRO2 (MTO98.M§§ 1M(01) c Integer, Logical, & Address INTLOG. M :'8828 :8829 ;8830 :k*******Q*kitk**Qtkfi**kt**R******t*ki'c****t**************i\\*t*ttttttti***t** BIC(B,W,L)2 mask.rx dst.mx . Input (Dest is memory) Q Mask ,8833 ;8834 ;gg%g . 8837 Input (Dest is register) : MDR MDR GPR (rnum) RNUM BIC(B,W,L)3 mask.rx src.rx dst.mx Input (Dest is memory) :ggg} Register number of dst +8853 ;gggg : 8856 :8857 8858 ;8859 ;8860 ;8861 ;8862 :8863 ;8864 ;8865 ;gggg : 8868 :gggg Dst Mask ko sSrc ok ok vk e .REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L.,IRDX.R2H IL.BIC2.B.W.L.REG: ; 8A AA (A SIZELIDEP],CTOP2, IRD1 IL.BIC2.B.W.L.MEM: IL.BIC3.B.W.L.REG: ; H ; BA AA (A . 88 AB (B RCDST,R].SIZ_MLMDR],.ANDNOT.Q ; IRD1 : WRITE NOTREG;CCOP2,SIZELIDER], =00000 =01111 IL.BIC3.B,W.L.MEM: ; 88 AB (B R Ri : : PUSH, RCTEMP1],S1Z MLMDR].ANDNOT,Q, : BRA ON ADD? ,NEXT/0S.WRT1 K CCOP2,SIZELIBEP], ; 110000 =mmmmmmmmancnnm e e ananay WRITE MCTEMP1],SIZECIDEP], [RD1 Register number of Dst RNUM OSR Q MDR OSR RLGPR.R].S1Z _MCMDR]I.NOTAND.RB, Mask Dst Mask Sre "***t***i*i***k*t****t**t*'«******t*****k*fi . . Input (Dest is register) Add of Dst Q MDR ;881,5 : 8850 Dst VA ; .8847 :ggzg J 00D0, 0080,1592,4130,0508,003F,9 . ;8843 ;8846 v Q0CF, 0C83,2008,8630,5047,0414,0 , . 18844 J 0291, 0883,2008,8%13(,55DA,003F,9 ; . 8838 18839 ;8840 . 8841 28842 . : BIC Integer, vogical, & Address " .10 ;8831 U 028E, 0483,2003,C13¢,0047,003F,9 Page :ggsg ;8832 ! 2 16:30:35BIC CLOKX Rev 13.00, Clock rate = 160ns 28~NOV=83 Dst ek ek ek ke ok e ko ok ke e 221 : : CMT098.MCX INTLOC MIC ' MICRO2 1M(01) 28=-NOV-83 16:30:35 Integer, Logical, & Address ) ;22;5 MUL(B,W,L)C mulr.rx prod.mx Input Q MDR VA ;8879 18880 ;8881 ; MUL(B,W,L)3 mulr.rx muld.rx prod.wx Input Q Mulr MDR Muld ;8884 ;8885 ;8886 ;8888 ;8887 ;8889 ;8890 ;8891 . U 0045, 0C80,0061,0A30,8047,0845,2 351+ MSB of double length prod(right justified) MDR . Subroutines 0 MULSUB.MDR_O R R AR R R R AR AR KRk KRk ,REGION/IRDX.R1L,IRDX.R1H/IRDX,R2L,IRDX.R2H : TEMPG <= CAND. ALUS<O> <= SIGN ; NEXT7IL.MULA ;000=mmmmm ;8904 ;gggg ; B4 A4 (4 RLTEMPS) _SEXT(MLMDR]), ALUS_SIGND,SIZELIDEP], IL.MUL3.B,W.L: . 8903 U 0044, 0063,200A,4B7C,4DDA,0044,5 Muld LSB of double length prod(right justified) 28901 ;8912 s Q D 000 :gg}? Mulr Prod Add of prod : ;gggg . 8909 3 ; 84 AL C4 e c e ——— e e e : PUSH,RLTEMP6]_SEXT(MLMDRY), ; TEMP6 <= CAND PUSH,MLTEMP4] _Q,SIZECIDEP], ¢ ALUS_SIGND,SIZECIDEP], LOD TNC BRA?,NEXT/0S.WRT1 s ALUS<0> <= SIGN : GO EVALUATE PROD 1L, MULA: 100 TEMP4 <~ LIER, BRANCH ON SIGN CMP SIGNS? ,NERT/IL.MULSUB.MDR_0O ; COMPARE TO MULTIPLY SUB :100=mmocecmmm e e nana =~ RETURN+3 PROD WILL BE + ; SET MM,NOINT,CCGPT SIGND?, | 18913 28914 RCPST,R],SI1Z_MLMDR],OR.Q, WRITE NOTREG,SIZ:CIDEP], : WRITE PROD & SET CC(MDR=0) ; :gg}g : 28918 18919 ;ggg? NEXT/IL .MULD : : 8915 Kk . IL.MUL2.B.W.L: :gggg KRRk Multiplier Sext Multiplicand Produzt will be neg (MULSUB when +=- or =+) :gggg : 8902 R TEMP4 TEMP6 FLAGO Resources AR AR AR R AR R 18897 ;8898 KRRk 0SR 28802 ;8893 ;8894 U 0041, 0486,403A,4B7D,88C7,0403,0 RR IR RN R IR 222 : MUL without FPA'' Integer, cogical, & Address " AR ; Page + MUL without FPA ; ;8883 U 0040, 0485,2E5E,0181,98(7,0414,0 i _ CLOKX Rev 13.00, Clock rate = 160ns ;8874 ;8875 . 8876 28877 ;8882 ] 1 SBB73 ;8878 U 0297, 0(85,2E5€,0031,98C7,0004,1 .ToC D 2 i 10] e WB_D+ALKC, mm e mc e WX.EQ,07,NEXT/IL.MULC ; BRANCH ON SIGN TO SET/CLR V n e : RETURN+4 PROD WILL BE ~ : D+ALKC = O THEN NO V ; ELSE V OR MOST NEG NO. { i H (MT098 . MCX INTLOG . MIC MICROZ 1M(01) 16:30:35 28-NOV~83 Integer, Logical, & Address :ggg% ' 18925 18926 ;ggsg U 0452, 0880,0022,4A7D,8047,0045,0 { MUL without FPA D : e RCDST.RJ.SIZ_MCMDRI=Q,(COP1 WRITE NOTREG,SIZELIDEP], ;gggg SET MM.NOINT,NEXT/IL.MULSETV 18934 IL.MULC: 18939 IL.MULWRITE-Q: 18940 ; (D.NE.O) OR (Q.NE.MOST NEG) : V : MDR IS 0 : PR e w=; (D+ALKC).NE.O : V OR MOST NEG NO WB_D, Y D.NE.O IS V, D.EQ.O THEN CHK Q FOR WXTNE.0? ,NEXT/IL.MULB : MOST NEG NO. L: ((D+ALKC).EQ,0) OR (Q.EQ.MOST NEG) 18941 RCDST.RI.SIZ_MCMDRI-Q,CCOP1 U 0445, 0480,0022,413D,9047,003F,9 18945 ’3329 Py B —-==; Q IS POS LOOK AT D FOR V WB_D,SIZECIDER], CCOP2, IRD1 ; U 0447, 0480,0036,4130,08E7,003F,9 18048 18949 18950 U 0453, 0{83,2008,013C,4DDA,003F,9 Page 100==emmemmmr e e : o.eo.o : V OR MOST NEG WB_ (R[ZEROJ+Q).SL.1,SIZELIDEP], : Q = MOST NEG? B 18930 18931 ;8935 18936 ;gggg CLOKX Rev 13.00, Clock rate = 160ns WXTSIZ).EQ.0? 18999 U 0451, 0863,2008,003C,4DDA,0044,7 2 :ESGION/INTLOG.R1L,INTLOG.R1H/INTLOG.R2L.1NTLOG.R2H/]NTL06.R3L.INTLOG.RSH 8924 IL.MULB: U 0450, 0880,0039,(DBD,8047,0845,1 391+ E ;ggz% o1 WRITE 'NOTREG;SIZECIDERT, IRD1 18944 IL.MULD: P MDR IS 0 ; [L.MULSETV: (1 lmmemecnnea b UL CL L H ; SET v,IRD1 223 1M¢01) | Integer, Logical, £ Address AR R KR ARR A NN Rk RRRRR AR AR AR Rk ARk MUL(B,W,L)2 mulr.rx prod.mx T Input (Dest is register) Rk kR kb kkk ks k ko MUL(B,W,L)3 mulr.rx muld,rx prod WX lnput (Dest is memory) L CRARR KRR R AR AR N R AR AR AR -REGION/ IRD1.R1L,IRDT.R1H AR AR Rk 0 S W Fl.MUL2. B.W.L.MEM: - U 02A7, 0081,2036,4030,0047,1001,D : MUL with FPA" RNUM Input (Dest is register) =0 oy o B o B P kAR Rk ko wkk Mulr Prod Add of prod Mulr Prod Register number of Prod Mulr Muld Mulr Muld kke sk h ko rkkk —— 2ND OP ON MB, STALL FOR FPA & FINISH - pusu FPA_MCMDR], WRITE 2ND OP ; GET OP3 LOD INC BRA?,NEXT/0S.WRT1 U ootc, 0481,2036,4180,0047,1414,0 MDR @ MDR FPA_MIMDRI ,NEXT/F I.MULSTALL.PROD; F1.MUL3. B W.L.MEM: Page 160ns Q MDR VA MDR GPR (rnum) Input (Dest 1is memory) T ChON O~ OO I LA = OO 00 O 0000 00 0000 G0 00 00 0o O 0 Co o (=] O OO0 OOV OO0 OO0O0 0 Integer, Logical, & Address .T0C N INTLOG.MIC MICROZ NILILY v N BN (AR = : CMTOS8.MCX 16:30:35 CLOKX Rev 13,00, Clock rate ¢ MUL with FPA A ; 28-NOV-83 ] 2 F F1.MULST ALL PROD: - 9 U OFED, 0080,05BE,4130,5047,003F LA o0 N OO0 =2 O 07F1: OFED: OFEF: J OFEF, 0480,0E7C,0130,5047,003F,9 " 2 Y Vo P By e S S g O sewwxnxxwwfF ORCE ADDRESSn**t**t&t RCDST.R).S1Z_MLTEMP1 WRITE NOTREG,SIZE[IDEPJ ccorPl O 0 O 0000 00 COC 07F0: O u 07F1, 0684,0036,4B70,5847,40FE,D T SIZECIDEPI,SET MM.NOINT N 1 U 07F0, 0882.1592,403C,4DDA,007F T FPANAIT RCTEMPY) FPA,ALUS_ SIGND.,; WAIT FOR RESULT, SAVE SIGN 000 000000 00 0000 CO 0D OO0 OO0 OO0 v 001D, 0£64,0036,4030,58(7,407F ,0 e ¢ WRITE RESULT AND SET CCODES sxnnxnknxwxFORCE ADDRESS**hkunkwn, 3OTxxwxxxxFORCE ADDRESS*raxwwwxr«, s1TxananvwaFORCE ADDRESS*taxtnxxw; FPAWAIT, RCTEMP1]_FPA,ALUS? ; WB_RCTEMP11,CC0P2,S1ZELIDEP], IRV ?EDR[TEMP1J+1.CC0P2,S ZECIDEP], ; . + SPLIT ON SIGN OF RESULT GET UPPER HALF OF RESULT RESULT IS POSITIVE, NO OVERFLOW IF JUPPER HALF IS 0, RESULT 1S NEGATIVE, NO OVERFLOW IF UPPER HALF 1§ -1, 224 e e e e N : H MICRO2 1M(01) (MT1098,MCX 28-NOV-83 16:30:35 ’ :gggg LRI R SRR AR $5000 ; ;9009 ; 19008 19010 :9013 U 0004, 0086,403A,418D,8047,0410,0 u 0006, 0C86,103A,4B6D,8047,0044,D U 044D, 0084,0587,0030,8047,0044,0 U 044F, 0484,0E77,0030,8047,0044,0 U 0440, 0080,4002,586D,88¢7,0403,0 Sext Multiplicand Multiplier MSB Addend/Work FLAGO MSB of double length prod(right justified) LSB Addend Product will be neg (MULSUB when += or =-+) LSB of double length prod(right justified) MULSUB MDR_0Q Htt*tt*t*t*t*t*t*t**ttt*t**t**ktt*t*t*i**tt***k***i****ttt*****fi*****i**ti**t SEGION/IRDX.R1L, IRDX.R1H/IRDX .R2L, IRDX.R2H 19016 IU.EMUL: 19017 19018 ’3853 ; 7A ;00mmmmnmmmm—m————————e———————— : PUSH,MLTEMP4]_Q ' TEMP4 <~ LIER LOD INC BRA?,REXT/0S.RED : EVALUATE ADDEND ;0] =mmmmm——m—————————————— —— 19022 PUSH.MLTEMP6]_0Q * TEMP6 <= CAND. ALUS<0> <= SIGN ;gggg LOD INC BRA?,NEXT/0S.WRT2 * EVALUATE PROD 19023 ALUS SIGND,SIZEEIDER], : :9026 :3835 . Egg%g GEGION/INTLOGLRIL,INTLOG.RTH/INTLOG.R2L, INTLOG.R2H/INTLOG.R3L, INTLOG.R3H Eggg} ) 19033 :38§§ 000 Egg%g 1L EMULY 19038 :3823 o ;904§ 19049 ;ggg? * ADDEND IS POS. SET MSB TO 0 ettt ; RETEMP?] ~1,NEXT/IL.EMULY * ADDEND IS NEG. SET MSB 7O -1 bUSH, WB_0 MLTEMP4T, SIZECLONG], : TEMP4 <= LIER. BRANCH ON SIGN CMP SIGRST,NEXT/IL.MULSUB.MDR O ; COMPARE TO MULTIPLY SUB :01]=mmmmooom mmmmmmmmmam———————— ; RETURN+3 PROD [S POS OR EMUL WITH FPA WRITE NOTREG,CCOP1,SET MM.NOINT,: ;3822 19048 RCTEMP2]_0,NEXT/IL.EMUL1 RCDST.R] MCTEMP11+Q,SIZECIDERP), ; WRITE LSB OF PRODUCT 19044 19047 Le : M[TEMP1J Q,SIZECLONGJ,SIGND CMP?; TEMP1 <~ LSB OF ADD. ADD POS OR NEG? F1.EMUL.ADD: 1904 U 0444, 0C64,1008,093C,4DDA,004A,A TEMP6 TEMP4 TEMP2 D Subroutines ARLLL DAL Mulr Muld Muld :gg}g 19041 U 0443, 0064,1009,093C,4DDA,004A,8 A AAA LA AAAR AR LA AL AAALALE LA MDR OSR TEMPT 19021 u 0005, 0£86,603A,418D,98¢7,0415,0 AL A AR AR ALA AL Resources ;19011 19012 A Input ;9005 ;9006 19007 i : EMUL without FPA'' EMUL mutr.rl muld rl add.rl prod.wq 19001 19002 19003 Page 225 | CLOKX Rev 13.00, Clock rate = 160ns Integer, Logical, & Address " .TOC i 2 ¢ EMUL without FPA Integer, Logical, & Address INTLOG.MIC 6 REG MODE?,NEXT/IL.EMUL2 =100 i ; ;100==mmmme== wemmmmm——————————— : RETURN+4 PROD IS NEG RIDST.R]_MLTEMP11-Q,SIZECIDEPI, : WRITE LSB OF PRODUCT REG MODE?,NEXT/IL.EMUL3 ; WRITE NOTREG,CCOP1,SET MM,NOINT,: , . ; : CMT098.MCX INTLOG.MIC MICRO2 16:30:35 28=NOV=-83 Integer, Logical, & Address U 04A8, 0480,1009,0030,0447,0044,9 i 1M(01) U 04A9, 0884,0061,0030,9047,0046,6 19052 19053 19054 =0 IL.EMULZ DEST IS _MEM ; DO ADD TO RESTORE ALKC & BUMP VA 19057 :1 ------------------------ - ; DEST IS REG (OR MEM FROM ABOVE) 19058 :3823 19062 :8822 19066 :gggg 19069 J 0466, 0C84,2592,412F,¢5DA,003F,9 CLOKX Rev 13.00, Clock rate = 160ns EMUL without FPA (B_MLTEMP11+0, VA_VA+4 19065 U 04AB, 0C84,0063,0030,9047,0046,6 ¢ ;3832 19061 U N4AA, 0880,1008,0030,0447,006A,8 + H 19070 19071 19072 RLTENP2) DeRBIALKC, CCOP2. =0 SIZECIDEP],NEXT/ZIL . EMULA IL.EMUL3: (B_MCTEMP11-0,VA_VA*4 :; DEST 1S MEM : DO SUB TO RESTORE ALKC & 3UMP VA '-1 --------------------------- - RLTEMP2] RB=D-ALKC,CCOP2, SIZECID TEMP2 <- MSB OF PROD, SET (C :; GO WRITE MSB PROD DEST _IS REG (OR MEM FROM ABOVE) *: TEMP2 <- MSB OF PROD, SET CC : IL.EMULG: hEE--""TS'EE?EBFEE''''''''''' : WRITE MSB OF PROD WRITE NOTREG,SIZECLONG],IRDT Page 226.E s ——— m e aes (MT098.MCX INTLOG.MIC 16:30:35 MICRO2 1M(01) 28~NOV~83 Integer, Logical, & Address ;9073 :9074 R R 2 CLOKX Rev 13.00, Clo ck rate = 160ns AR AR AR Page EMUL with FPA R R AR R AR A AR AR AR R AR R AR NR AR ARk k ko EMUL mulr.rl muld.rl add.rl prod.wg Mulr Q Input Muld Muld R Resources - JO0BB TEMP3 Work TEMP] TEMPO L SB Addend Work TEMPZ D [ 0 puiry (= o i R MDR OSR AR R R AR R MSB Addend/Work MSB of double length prod LSB of dou ble Q KRR KR AR AR AR R AR R R AR length prod R ARk Rk kR Rk Rk AR R .REGION/ IRD1.R1L,IRD1.RIH =00 F1.EMUL: -------------- e e S e e LOD INC BRA?, : 0018, 0480,0036,4180.,0047,0410,0 e e ikttt : L te :; ADD.RL 70 WORKING TEMP LOD INC BRA?,NEXT/0S.WRT1 :: SAVE SIGN AND GET PROD.WQ T :10 aaaaaaaa ELL LT LA RCTEMP21_0, ALUS? Lt : LT S * GUESS SECOND HALF = 0 Y (T RECT? LS LA == O 000 O LN B AN 4 O D0 PURLAUNDNUN) —2 =t 2 b b e ek b 3 e OO O Qe Sirhe SUIphrE e Pl S GGG PG c 0281, 0480,0005,7030,0047,0044,3 P < 02AE, 0AB4,0036,4030,C047,4028,1 Ghur Gl T PR T i T 0008, 0484,0£77,0030,8047,0000,9 Glar il T T o e P P 0009, 0284,0036,4030,0047,402A,E T — ! Fel'slVolalaloPalolNaNelalollal ol el alalal ol P P TR TR THE ADD.RL PUSH,RLTEMP1]_M[MDR] ALUS SIGND,SIZECIDEP], 0019, 0085,2592,4180,58(7,0414,0 C01A, 0084,0587,0870,9847,0000,9 R GET ; AND WRITE MULD.RL TO FPA PUSH,NEXT/0S.RED =01 F1.EMUL. 10: ;01 mmm—mmmcemmmccmcamanennanm——— ; POSITIVE OR ZERO FPAWAIT * STALL FOR FPA RCTEMPO) FPa, MEXT/F1,EMUL.20 * SAVE LSB OF PRODUCY ; CONTINUE ON (1lommmmem—— e e ———————— «e=; NEGATIVE ACTEMP2] =1, NEXT/FI.EMUL.10 Y RESET OTHER HALF ; CON-«NUE ON FI.EMUL. 20: FPAWALT RCTEMP3]_Fpa ' WAIT FOR FPA : GET MSB GF ~RODUCT O MCTEMP0] D_RLTEMP3], Y GET TO CORRECT D AND Q NEXT/F1,EMULTADD ¢ JOIN MAIN FLOWS OF EMUL | 227| | : EMUL with FPA'" Iateger, vogical, & Addres s ,10C R 29075 + 1 hk ; ; cmro9a.m§§ INTLOG.M MICRO2 1M(01) 28-NOV~83 16:30:35 Integer, Logical, & Address 2 CLOKX Rev 13.00, Clock rate = 160ns J ;g}gg .T0C :-9128 "********t*tt*k**********itit‘('(*ittitt*tiitt*t********it*kit*******'&********t 19189 :9130 ' Integer, vogical, & Address Inputs TEMP4 TEMP6 M3 ;g%%% ;9135 19136 ;19137 ;9138 ;9139 ;g}z? 9142 ;9143 19144 ;9145 ;9146 . : Returns MSB of double length prod (right justified) MDR 0 % Resources R Product will STERC R A LSB of doubie length prod (right justified) Product will be neg (when +- or =+) Product witl be pos +4 A R T R A =00 1L MULSUB.MDR_O: R D 0 FLAGO . No, of bits to mul(0=8, 1=16, 2=32, 3=32} A A AR A be neg AR AL AR AR AR ARARAARARALALEASANLLLLL AL e dtutntte DL D D DL L L DL ; MULSUB CAND+ LIER+ ; @ <= SIGN EXTENDED LIER, MDR <= 0 ;g}gg DSIZE? ,NEXT/IL.MULSUB.CAND+ H ;9148 9153 :3}?? 19156 ;9157 ;9158 ;3}28 19161 J 0033, 0080,4817,1¢7D,84E7,0005,4 Outputs Multiplier Sext Multiplicand Q_SEXT(MLTEMPL]), ;9152 J 0032, 0040,4816,5C7D,84E7,0005,4 LATCH ; MULSUB.MDR_Q"' 19147 19151 U 0031, 0840,4817,107D,84E7,0004,8 DSIZE ; 19134 U 0930, 0880,4816,5C7D,84E7,0004,8 Page : MULSUB.MDR_O ;19162 19163 19164 STZE[IDEPJ.MDRGO. ; ;0lmmmmmmm—mmemem—nen e —————— ; MULSUB CAND+ LIER- Q_-SEXT(MLTEMP4]), STZECIDEP],MDR_O,SET FLAGO, DSIZE? ,NEXT/IL.MULSUB.CAND+ ; O <= SIGN EXTENDED LIER, MDR <= 0 : SET PROD WILL BE NEG FLAG : B ———; MULSUB CAND- LIER+ Q_SEXT(MCTEMP4]), STZELIDEP],MDR_0,SEY FLAGO, DSIZ2E? ,NEXT/IL.MULSUB.CAND~ ; Q <~ SIGN EXTENDED LIER, MDR <= 0 : SET PROD WILL BE NEG FLAG H LR D —— ; MULSUB CAND- LIER=- Q_=-SEXT(MLTEMP4)), STZECIDEP],MDR_O, DSIZE? ,NEXT/ILMULSUB, CAND= ;s Q@ <~ SIGN EXTENDED LIER, MDR <~ 0 : : : 228| H H (MT098.M(X INTLOG.MIT 28~NOV-83 MICRO2 1M(01) Integer, Logical, & Address 19165 9166 19167 U 0049, 08A8,0027,9031,8047,0004,6 K 2 CLOKX Rev 13.00, Clock rate = 160ns : MULSUB.MDR_0 =00 IL.MULSU B, CAND +: $00==ccmemmmme s : : : 19169 ;g};? 19172 19173 19174 ;0)memem e ; MULSUB CAND+ WORD MULFAST+ CAND IN RUTEMP6I, : SIZECIDEP],STEPC 6, ; ; NEXT/IL.MULSUB. +[O0P :g};g ; 0177 29178 U 004A, 08B0,0027,9031,8047,0004,6 ;3}3? ;1 mmeemsmneseman s S MULSUB CAND+ QUAD (EMUL) ;9183 :g}gg 29149 U 0047, 0480,0027,9431,A047,0004,¢ ;9190 ;g}g; ;9193 19194 -g}gs 6 ;9197 v 004C, 0480,0027,9081,8047,0000,3 v 004D, 0€80,0027,9081,8047,0000,4 MULFAST+ CAND IN RLTEMP6], SIZELIDEP],STEPC 14, 19184 19187 ;9188 U 0046, 0880,0027,9331,8047,0004,6 MULSUB CAND+ LONG 19179 ;9182 U 0048, 08B0,0027,9031,8047,0004,6 MULSUB CAND+ BYTE MULFAST+ CAND IN RCTEMP6J, SIZECIDEPT,STEPC 2, NEXT/IL.MULSUB. +LOGP 19168 U 0048, 00A0,0027,9031,8047,0004,6 16:30:35 =0 NEXT/IL.MULSUB. +T00P° L. MULSUB +LO0P: e 18 - " " O MULFAST+ CAND IN RLTEMP6J, : O ; SIZECIDEP], : DBZ STEPC?NEXT/IL.MULSUB.+LOOP STAY IN LOOP TILL STEP (NT = 0 ittt et dede ittt : MULFAST+ CAND IN RLTEMP6], 1S1ZECIDEP],FLAGO? P MULFAST+ CAND IN RLTEMP6], 19200 19201 19202 :9203 MULFAST+ CAND IN RLTEMPGI, SIZECIDEP),RETURN [+3] (Jem——— ; H SC = 0. wilL PROD BE POS OR NEG? sttt it ledetelyttiotetnbdeete : 19198 :9199 : : e a———— e n * PROD WILL BE POS .. —————— N SIZECIDEP],RETURN [+4] ; : PROD WILL BE NEG (MT098.MCX MICRDZ2 INTLOG.MIC MO 28=NOV-83 Integer, Logical, & Address ;9204 :9205 19206 19207 €054, 0CAQ,0026,9031,8047,0006,C 057, 04B0,0026,9031,8047,0006,C . 0073, 0880,00¢6,9081,8047,0000,4 : : : ) Rttt ; MULSUB CAND- WORD :9212 :9213 MULFAST- CAND IN RLTEMP6], SIZ2ELIDEP],STEPC 6, :gs%g NEXT/IL.MULSUB,~L[OOP ;10mm e e ee eee ‘ : : e ; MUL3UB CAND- LONG 19217 MULFAST= CAND IN RLTEMP6], ;gg;g NEXT/IL.MULSUB.~L00P’ :9221 19222 19223 Li vgpeiale kit L) ; MULSUB CAND- QUAD(EMUL) MULFAST- CAND IN RLTEMP6], : ; SIZECIDEP],STEPC 14. ;9218 SIZECIDEP],STEPC 14. :ggsg ;9227 19228 $9229 NEXT/IL.MULSUB. ~Coop’ :9233 :gsgg . ; : . IL MULSUB -L00P: 0mmmeeemscemeeecesomossoncnones H MULFAST-— CAND IN RLTEMP6], : SIZECIDEP], ; ggg? 19236 0072, 0080,0026,9081,8047,0000,3 : MULSUB.MDR_0 NEXT/IL.MULSUB,~L0O0P pBZ STEPC? ,NEXT/IL.MULSUB.~LOOP ; STAY IN LOOP TILL STEP CNT = 0 ;9232 006D. 0080,0026,9431,8047,0007,2 CLOKX Rev 15,00, (lock rate = 160ns SIZECIDEP],STEPC 2, .35(1)3 19226 006C, 0480,0026,9331,8047,0006.¢ 2 MULFAST= CAND IN RLTEMPG], 9208 19216 0056, 04B0,0026,9031,8047,0006,¢ L =00 IL.MULSUB, CAND=: $00=mmmmmsmme ec e e n c e ; MULSUB CAND- BYTE ;921 0055, 04A8,0026,9031,8047,0006,C 16:37%:35 R R It et 0 MULFAST- CAND IN RLTEMPE], SIZECIDEPI,FLAGO? H ; SC = 0. WILL PROD BE POS QR NEG? ettt ittt teaetatnbbed H 19237 gggg MULFAST- CAND IN RLTEMP6], SIZECIDEP],RETURN [+3] 9240 19241 jlemeccnmnncnemnn o : MULFAST= CAND IN RLTEMPG3, . 19242 SIZECIDEP],RETURN [+4] H ; PROD WILL BE POS ; PROD WILL BE NEG Page 230, . CMT098.MCX INTLOG.MIC MICRO2 1M(01) 28-NOV-83 16:30:35 Integer, Logical, £ Address 9243 .T0C ¢ o DIV 2 CLOKX Rev 13.00, Clock rate = 160ns Integer, vogical, & Address Page : DIV 't*******ttfit*tt!tit**ttttt*i*itt*t******t****************ttt***tt****t***t** DIV(B,W,L)2 divr.rx quo.mx H Input : H : . Q Divr VA Add of quo MDR Quo : DIV(B,W,L)3 dive.rx divd.rx quo.wx ; ; MOR NSR H lnput Resources : : Q TEMP3 Divr Divd Divd Sext Divisor TEMP1 LSB Dividend H FLAG3 Divisor Pos (Set by DIVSUB) : H H FLAGO D Q Quotient will be Neg (WHEN += OR =+) Uncorrected Remainder Quotient TEMPO ; FLAG? ; : Subroutines DIVSHIB 0 Ediv (MBZ) 'ttt*ttt*tttttt*tt*tfikttt*t*t**tt******tt****fi**********k**tfi*t****i********* IfiEg{Sgé]RDXLRIL,IRDX,RTH/IRDX,R2L, IRDX.R2H : 86 s CNT FOR BYTE. P atniaietibeiataintataletaiiintntaletedutnieditatadedainduindeald RLTEMP3] SEXT(MLMDR]),STEPC_2, 0289, C4AS,2E5E,0180,D8C7,0011,0 ALUS_SIGND,SIZECIDERP], LOD INC BRA’.NEXT/OS MOD IL.DIVWe: RCTEMP3] SEXT(MCMDRI),STEPC_6, | OCAD,2E5E,0180,p8(7,0011,0 02c9, 0(B5,2E5F,0180,08(7,0011,0 ALuS_SIGRD,SIZECIDEP], LOD INC RRA?,NEXT/0S.MOD ; TEMP3 <~ SIGN EXTENDED SOR. SET UP . : CNT FOR BYTE. * (IRD ROM WILL ; CNT FOR BYTE. ; (IRD ROM WILL 87 1IL.DIVB3: RCTEMP3) SEXT(MIMDR]),STEPC_2, 0eCh, DCAS,2E5E,0180,08(7,0010,0 ALUS_SIGRD,SIZE[IDER], It D]VWSLOD INC BRA?,NEXT/0S.RED RLTEMP3] SEXT(M[MDR]) 0301, G4AD, 2ES5E,0180,08(7,0010,C 6 : TEMP3 <~ SIGN IL.pivee: it ittntuteitytdyttetniaiaboteeistabbnl . C6 RCTEMP3) SEXT(M[MDK]),STEPC_14,,; TEMP3 <- SIGN ALUS_SIGRD,SIZECIDERP], LOD INC BRA?,NEXT/0S.MOD ALUS_SIGRD,SIZECIDER) LOD TNC BRA?,NEXT/0S. IL.DIVL3: : TEMP3 <= SIGN : CNT FOR BYTE, ; CIRD ROM WILL : A7 ; TEMP3 <~ SIGN ; CNT FOR BYTE. . CIRD ROM WILL -------------------------------- : 7 R{TEMP3] SEXT(M[MDR]),STEPC_ 14, 0305, 04BS, £ 5E,0180,08(7,0010,0 ALUS_SIGRD,SIZECIDEP], LOD INC BRA?,NEXT/0S.RED GO EVALUATE END(QUO). ; (IRD ROM WILL GO TO IL.DIVZ.B.W.L) TEM P3 <= SIGN s ONT FOR BYTE, (IR D ROM WlLL o' 231 A ; : CMT098.M(X INTLOG.MIC MICRO2 1M(OD) 28-NOv-83 Integer, Logical, & Address :gggg ; 50302, 0(87,2815.7B7D,9847,0045,6 U C08C, 0881,2816,51BD,8047,0414,0 | U 008D, 0886,058E,6B7D,9847,0045,6 19305 :gggg PUSH,Q_SEXT(MCMDRI), sZE[IDEP], : Q@ <= SIGN_EXT END(LSB) LOD INT BRA?,NEXT/0S.WRT1 : GO EVALUATE QuOD :9308 19309 e; : D <= 0(MSB END) MCTEMPOI D_RLZERO], ;gg}? 19314 ,3;}2 19318 -gg;g 193:2 19323 gsgg J 19326 U 0457, 0062,000A,403C,4DDA,0CFB,8 ] J 0051, 0882,00¢(,713(,4DDA,003F,9 A US?, ~5XT71L D1VFORK .REGION/INTLOG.RIL,INTLOC.RIH/INTLOG.ROL, =00 ;00=mmm o= mmmmmm e oo @ IS NEG?,SIZELiDEP], oo : cnecx FOR DIV BY 0 INTLOG.R2H/ INTLOG.R3L , INTLOG.R3H s : RETURE-2 QUO WILL RE + NEXT/IL.Divouo+ : CHK QUO FOR V : ;0] mmmmmemem o e m s oo : RETURN=-1 QUO WILL BE = RCDST.R],SIZ_MCTEMP03=-Q,CCOP1, WRITE NOTREG;SIZECIDEPI,IRD1 =~ : WRITE =G (TEMPO=0) ; IL.DIVFORK: ;10=mmmmmmmmm e e e ecm oo ane e; SOR.NE.O PUSH,MLTEMP1]_Q, ZE[IDEP]. cMP SIGNS’,NERT L.DIvsuB : TEMP1 <~ LSB END, BRANCH ON SIGN : COMPARE TO DIVIDE SUB B i ; SOR.EQ.0 RCDST.R1.S1Z MCTEMP0I.OR.Q, ;3;%3 SET MM.NOINT,NEXT/IE INT.DB2 9328 CCOP1,WRITE NOTREG,SIZELIDEP], : WRITE LSB END(TEMP0=() : AND GO TO CHARLIE }g;g; .SEGION/IRDX.R1L,IRDX.R1H/1RDX.R2L,IRLi.R?H 19333 IL,DIVOUD*: :9334 193%5 ;g;gg ot ; QUO IS POS RCDST.RJ.S1Z_Q 0 D,SIZECIDEP], WRITE NOTREG;CCOP1,IRD1 ; WRITE DEST(USED BY CVTBW.BL WL) : 11l mmmmmmm o cmm e mesaem o eaaas ; QUOD IS NEG : OVER® .'W 19339 RIDST.R),SIZ_MCTEMP1),CCOPY, ; WRITE END 19341 SET MM,NOINT,NEXT/IL.MULSETV ; & GO SET V 19340 Page * Q<_SIGN EXT END(LSB). D<= O(MSB END) 19327 :9338 U 0053, 0862,1592,403(,4DDA,0044,7 O_SENT(MDR), SIZE[IDEPJ ATUS?,NEXT/IL.DIVFORK: CHR FOR DIV BY 0 iggg% IL.DIV3.B.u.L: 19321 ) CLOKX Rev 13.00, Clock rate = 160ns MTEMPOD 0 19317 U 0456, 0L86,103A,4B7D,88(7,0444,8 : DIV ,3%81 " 19313 U 0455, CC82,0008,013C,4DDA,003F,9 16:30:35 - IL.PIV2.B.W.L: 19300 19312 s 0454, 0CB0,003+,487D,8047,0005,1 - WRITE NOTREG,SIZECIDEP] ; 232 ‘ e B ; - e (MT098.MCX INTLOG.M]C e —— MICROZ [ 1M(01) 28=N0OV=83 16:30:35 B : EDIV Integer, Logical, & Address 3 CLOKX Rev 13,00, Clock rate = 160ns Integer, cogical, & Address " .T0C }9344 .Q*ktt*t*ttt*tu.*tfifittttn*kt*wtfitfik«ttti*twtt*it***h*t**t*tt******i**t*ittttt EDIV divr.rl d1vd rq quo.wl 19346 29347 Input 19349 ;9350 Resources rem,wl MDR Divr Divd TEMP? TEMPS RNUM/VA for Quotient 0S Uncorrected Remainder :9351 TEMP4 ;9355 9354 ;9355 TEMP? TEMP1 TEMPQ TEMP3 19352 Sext Divisor MSB Dividend LSB Dividend 0 FLAG3 ;9158 FLAGY 0S for Quotient 1is re? mode Q Quotient FLAGZ ;9359 ;9360 FLAGO D 19361 PLATCH 19362 19363 19364 19365 19367 ;9368 ;9369 :9370 Divisor Pos (Set bE DIVSUB‘ Ediv (set to 1 . Subroutines DIVSUB Sign of Dividend, Divide By 0, Overflow PL<4:0>=31 PL<4:0>=0 PL<S>=1 PL<S>=1 Overflow PL<4:0>=1 PL<5>=0 =00 ILLEDIV: $00-mmms e e e e ;78 g?ggéaglempej D_MIMDRI, : TEMP2 & D <~ MSB END :3§;g LOD IRC BRA? ,NEXT/0S.WRT1 19380 :9381 (0emmmmmcnnenm e m e ———— noa——— PUSH MLTEMP3]_0,ALUS_SIGND, : .9386 :9387 :3%33 PL<5>=0 N**kt&tk**fi&**t&t!‘i*lt!*t**flQ*Nittiit*fii******t***tii*t**i**t***i**t**t***it ;9373 19374 19385 PL<4:0>=0 MM.PRB.WRITE.SIZ REGION/IRDX.RIL,IRDX.RTH/IRDX.R2L, IRDX.R2H ;9sg§ ;3§84 Ediv Dividend + Dividend - :3%;; :9375 9306 by Quotient will ve Neg (WHEN +- OR =+) Uncorrected Remainder Divide BY 0 19366 U 0066, 0486,058(,7870,5847,003F,6 RNUM/VA for Remainder 05 ;9356 ;9357 U 0065, 0456,3034,493D,98(7,044A,C ¢ EDIVY ;3%2% 19345 U 0064, 0(B5,2592,6180,8047,0414,0 Page SIZECIDEP],SET FLAG? REG MODE?,NEXT/IL.EDfvA : GO EVALUATE QUO TEMP3 <~ SOR, SET EDIV FLAG : ¢ REGISTER MODE ? (e e e a e ——— =; RETURN FROM OS.WRT1 FOR REM O _RCTEMPI] MCT EMPO]_O, : W <= LSB END. TEMPO 0 FOR DIVSUB ACUS? ,NEXT/IL.EDIVB ; MDR <= 0 FOR WRT Q,"BRA ON SOR = 0 233 CMT098.MCX INTLOG,MIC 28-NOV-83 MICROZ2 1M(O1) lnteger. Logical, ® Address 03F4, 0080,0088,06FD,8047,083F,1 =0 IL.EDIVA: LOD INC BRA?,NEXT/0S.WRT1 19404 SET FLAGY, J01«xxxFORCE 03F6: IL.EDIVB: 19418 19419 03F7: 310%xxxFORCE 19423 29424 :gzsg RETURN-2 QUO WILL BE + H CHECK FOR V RETURN-1 ADDRESSwrtxuaxwnnnkw,; SOR.NE.O WBUS <~ MSB DIVIDEND BRANCH ON SIGN COMPORE CMp SIGRS? NEXT/IL.DIVSUB ;11a%xxFORCE ;; GO EVALUATE REM ADDRESSHasauswhnnnx, PUSH w8 M[TEMP?J.SIZE[LONGJ, ;82}9 H: SET REG MODE FLAG, ADDRESSatmwanmwninn; @ R[ZERD]- Q,SIZECLONG], WB<31-30>7 ,NEXT/IL.EDIVC ;9412 ;9413 19414 19415 QUO WILL BE H NEGATE QUOTIENT & SEETMIF : V OCCURED ; : ADDRESSH* A% %k kkkkw, TO DIVSUB SOR.EQ.0(DIVIDE BY 0) DIVIDE BY 0 045A: FREE.045A: s*kk L OCATION NOT USED*wtnkwxnnw, SOR.NE.O PUSH,WB_M[TEMP2],SIZELLONG], H WBUS <~ MSB DIV IVIDEND CMP SIGRS? ,NEXT/IL.DIVSUB : BRANCH ON SIGN COMPORE YO DIVSuB PL [OJ.NEXT/IL.EDIVD ;s PL<4:0>=0, PL<5>=0 : :82§¥ 0458: FREE.0458: sxesxxt OCATION NOT USED®dxnnukwnx, SOR.EQ.0(DIVIDE BY O) PL COJ,NEXT/IL.EDIVD K PL<4:0>=0, PL<5>=0 : DIVIDE BY 0 19432 0458: 19429 19433 9434 :gzgg 9437 19438 ;9439 0459, 0480,0038,186D,8047,083F,1 436+ 03F5: ;82}? 19427 19428 355+ J00xwwxFORCE 0.NOT IS POS?,NEXT/IL,EDIVC 19409 19422 0458, 018C,0EF6,4030,0047,0046,C 03F4: ;8282 ;gzg? 045A, 0480,2592,4B6C,08(7,0044,8 340+ : AND GO EVALUATE REM : 9401 :9408 0458, 0480,0088,86FD,8047,083F,1 LOD INT BRA?,NEXT/0STWRT1 bellete et : REG MODE et SAVE RNUM, SET UP PL FOR DIVIDEND+, 31 Fu<S5>_1, RTEMP7_RNUM PL<4=0> 19407 03F7, 0180,0EF6,4030,0047,0046,C NOT REG MODE 29398 19399 19402 19403 03F6, 0480,2592,4B60,08C7,0044,8 340« . RTEMP? MLVAJ PL<4-05_31 PL<5>. 1. SAVE VA, SET UP PL FOR DIVEND+, 19400 03F5, 0480,0038,16ED,8047,083F,1 400 Page 19392 ;9393 :g%gg 400% ¢ EDIV 3 CLOKX Rev 13,00, Clock rate = 160ns JREGION/INTLOG.R1L, INTLOG.RTH/INTLOG.R2L, INTLOG.R2H/INTLOG.R3L, INTLOG.R3H : 9394 $9395 Q4AD, 094D,6EF6,41BF ,F847,0014,0 c :9390 19391 04AC, 0185,BED2,01BF,F847,0014,0 16:30:35 19440 ;9441 FREE.0458: 300xxxxL OCATION NOT USED%wwwkwkw; RETURN-=2 QUO WILL BE + NOT,Q<31>?,NEXT/IL.EDIVC H CHECK FOR V 0459: FREE.0459: J0Vxkwxl OCATION NOT USED**xknxnw; RETURN-1 QUO WILL BE a RCZERO1~Q,SIZELLONG], STGND CMP".NEXT IL.EDIVC : NEGATE QUOTIENT & SEEIF H V OCCURED 234 CMT098.MCX INTLOG. MIC 28-NOV-83 M0 Integer, Logical, £ Address 16:%0:35 MICRO2 ;9442 19443 £ e b ONONOM AU uUTuuiuiuiutun B A3 =2 OV VNI WO 0 03F2, 0580,0EF6,4030,0847,0046,C 9445 19446 19447 9448 OO0 N0 OO VO OOOO0O0 ~o 03F1, 0880,003A,5A3D,8047,003F,2 $9444 Sl o - Rl E ol ew. ! Page + (POS:Q<31> = 1) : (NEG: -0= 0 OR POS ) IL.EDIVC1 ----------------------------- ; OVERFLOW, 0 NOT EQUAL TO ZERO PL [131,NEXT/IL.EDIVD ; PL<4:0>=1, PL<5>=0 : 03F3 {{ememommanemcnmanna~ cemmemmwnm: NO V : (NEG:=Q < 0), (POS:Q IS POS) M[TEMPSJ REM, ALUS?,NERTZIL.EDIVF ; UN-SHIFT REM § SAVE IN TEMP6 & D : TEST ALUS<1> FOR REM CORRECTION 0 FR 045c ;00%x*xLOCATIUN NOT USED*#k%xkxx; V PL_C1],NEXT/IL EDIVD R 045C, 0580,0EF6,4030,0847,0046,C EDIV 3 CLOKX Rev 13.00, Clock rate = 160ns 03F1: IL.EDIVC: ] DT o sV 032 Q IS ZERO?,NEXT/IL.EDIVCI ;v e 0486,5026,AB7D,9847,0046,1 y D 045D: FREE.045D: :01%%xx : (POS:Q<31> = 1) PL<4:0>=1, PL&5>=0 OCATION NOT USED*wwwxxxx: FREE LOCATION MCTEMPS] D_REM, ALUS’.NE¥T7IL EDIVF 045D, 0486,5026,AB7D,9847,0046,1 ; ; UN-SHIFT REM & SAVE IN TEMP6 & D ; TEST ALUS<1> FOR REM CORRECTION 045E: FR EF.OQSE: s11%%we) OCATION NOT USED*%x%xxxx; NO V : (NEG:-Q < 0), (PQS:0 IS POS) MLTEMPS] _D_REM, ALUS? NERTZIL. EDIVF 045E, 0486,5026,AB70,9847,0046,1 ; UN-SHIFT REM & SAVE IN TEMP6 & D ; TEST ALUS<1> FOR REM CORRECTION IL.EDIVD: e ——— : VOR DIVIDE BY 0 u 046(, 0080,1005,703D,8047,0046,1 Q_MCTEMP1] D_RLZERO] NEXT/IL.EDIVF =00 IL.EDIVE: ----------------------------- : D_M[TEMPS]-RETEMPSJ 0460, 0480,5000,2030,C047,0046,1 ; H Q<= LSBEND. D <+ 0 SOR IS NEG RE=DO CORRECTION ; D <= UNCORRECTED REM - SOR IL.EDIVF: 0461, 0085,6036,4931,0047,004A,E 0463, 0880,0021,24F0,C047,0046,0 " 10l mmenmmcvan e n e ———— mm=m===; ALL BS WITH D8Q IS DONE LETS MOVE ON RLCTEMP4L] _RNUM, ; SAVE REG NO 8 REG MODE?,NEXT/IL.EDIVG : SEE IF REG MODE B ; 0 _D+RITEMP3],FLAG3?, NEXT/IL.EDIVE : : CORRECT REMAINDER (ASSUME SOR POS) D<=(UNCORRECTED REM~SOR) 1S SOR POS 235| E 3 16:30:35EDIVCL0KX Rev 13.00, Clock rate = 160ns 28-NOV-83 iLOp MICRO2 Integer, Logical, & Address ;9491 9492 3 IL.EDJVG- NOT REG MODE SAVE VA & PROBE WRITE ACCESS 04AE, 0885,8592,4031,0047,0579,6 PUSH,RCTEMP4] MLVAJ, NEXT/MM.PRB.WRITE.S12.00 ; ; Q4AF, 0881,D5BE ,45F1,C4A7,0046,5 VA_RNUM_RCTEMP7I,FLAGT? : GET VA OR RNUM OF QUO, CHK REG MOOE =01 0465, 086v,003A,403D,8DD8,0046,E e 046A, 0C84,0582,403(C,45DA,00FB, 8 0468, 0884,0583,013C,45DA,003F,9 TG vty VI 0469, 0884,0582,413C,45DA,003F,9 PUORLAINIAONININD — e e e ed —=b 2 3 a3 O NN IIANND = OO 0NN NI —= OO TR T T 0468, 0484,0582,403C,45DA,0044,7 T O 046k, 0081,DA04, 7DF1,04A7,0046,8 ittt : SIZECIDEP],CTOP1,SET MM.NOINT OO0 O 0 0000 OO0 O0OCO00 0467, 0C62,000A,403C,C847,0046,E IL.EDIVH: VA_RNUM_RLTEMP4] CLOBBER Q PL<4=0>TEQ.0? PL<5>? =00 REG MODE OR REG FROM GLv PROBE 0 Bttt : QUO OP IS NOT REG MODE WRITE Q,CCOP1,SET MM.NOINT, ;; WRITE QUOTIENT SIZECIDEPI, NEXT/IL.EDIVH : RCGPR.R].SIZ_MITEMP0I.OR.Q, O . CMT098.MCX INTLOG.MIC : QUO 0P IS REG_MODE WRITE QUOTIENT (TEMP0=0) RESTORE RMUN/VA OF REM OP & CHECK RESTORE VA/RNUM(WHITCHEVER) ; OVERFLOW? END+? DIVBYO? END=? ' ;00mssmm o m e o me: v REDST.R]_D,WRITE NOTREG, ; WRITE REMAINDER(REM Is 0) : V GO SET /IL.MULSETV SIZFCIDEPILNEXT R et : DIVEDEND POSITIVE RCDST.R)_D,WRITE NOTREG, ; WRITE REMAINDER SIZELIDEF], IRD1 ; ;10 mm e e e —— : RIDST.R] D,WRITE NOTREG, : E BY 0 REMAINDER(REM IS 0) DIVIDE BY 0 ROUTINE L DVDOt H END NWEGATINE ~REMAINDER SIZECIDEPI,NEXT/IE. INT.DB2 RCDST.R)_=D,WRITE NOTREG SIZECIDEPI, IRD1 : : : PR P PR PR P TRTR ~ = OO0 Integer, Logic £ Address .70C v U 0448, 0880,0026,C4B0,D0C7,0047,0 AR = OO0 00 NN B AN =2 OO T I O A A P L :9550 955 :955 ;955 ‘3335 F 3 : DIVSUB ' Integer, rogical, & Address Inputs 3 . . D Q TEMP3 TEMPO . . . OQutputs : ; : Returns U 0449, 0140,0EC8,14B1,0047,0044,8 ;gggg ;9561 U 044A, 0440,0027,C4B0,D0C7,0047,2 19562 19563 19564 ;3222 $9567 19568 J 0448, 0180,0£C8,14B1,0047,0044,2 U 044C, 0€80,0063,203D,8047,0044,8 9569 LSB Dividend Sext Divisor e . D Uncorrected remainder FLAGO Quotient will be negiwhen +~ or =+) Q FLAG3 2=Byte, 6=Word, -2 l4=Long Quotient (magnitude) Divisor positive , Set to 100000 is Dividend is Negative Carry From Last Iteration For Rem Correction Quotient is pos =1 Quotient is neg ;**tt****tw******k******t*k*************************************************t =000 IL.DIVSUB: IL.SOR+.END+: ;000=mssmmcmumcncn e nanane s DIVSUB SOR+ END+ DIVFAST+ SOR IN RLTEMP3], ; DO SET UP CYCLE, SAVE ALU BORROW SIZECIDEP],ALUS_UNSGN,FLAG2?, . & BUT EDIV FLAG NEXT/IL,DIVSUB.A : e e; DIVSUB SOR+ END- 0 MLTEMPO]-Q,SET FLAGO,PL_[32.1,; COMP Q(TEMP0=0), SET QUO NEG FLAG, FLAG2? ,NEXT/IL.SOR+.END+ s SET PL<4:0>=0 & PL<5>=1, EDIVY 1L .SOR-,END+: ;010~vmmommmmn e m e m e ; DIVSUB SOR- END+ DIVFAST- SOR IN RLTEMP3], ¢ DO _SET UP rYCLE, SAVE ALU BORROW ALUS_UNSGN,SIZECIDEP],SET FLAGO,: SET QUO NEG FLAG, FLAG2? ,NEXT/IL.DIVSUB.B ; & BUT EDIV FLAG IL.SOR=,END-: ;011 =vmmmmmmemnaecernnenmnea e; Q MCTEMPQ)-Q,FLAG2?,PL_[32.1, NEXT/IL.DIVSUB.C :9572 $9373 ;100=semmmmmmme e ccmeenmem e s D_RLZEROI-D~ALKC, ; NEXT/IL,SOR+.END+ D1VSUB SOR- END- : COMPLEMENT Q(TEMPO=0), :gg;? ;gg;g . o 0 . Ediv(0=Divide is not ediv, 1=divide is ediv) :9356 1L.SOR+, END=: 9557 ;001 - $9358 20ttt sitsiit st aasissatil MSB Dividend(MBZ when not EDIV) PLATCH ALUS H H + DlvsSuB'! FLAG? STEPC ’ ; ; . Page 237 CLOKX Rev 13.00, Clock rate = 160ns 22222023223 23222232331233323333 2331220233223 0 3 :93 : 16:30:35 28-NOV-83 1M(OD) NN MICROZ2 T ; : CMT098.M CX G 1C INTLO.M ; SET PL<4:0>=0 & PL<5>=1 i SOR+ END~ EDIV COMPLEMENT D ; : CMTO98.MCX INTLOG.MIC MICRO2 TM(01) 28-NOV-83 19576 =0%x IL.D1vsueoc 19579 U 0442, 0480,0027,C480,D0C7,0047,2 ;ggg; :9583 U 0446, 0C80,0063,203D,8047,0044,2 U 0470, 0480,0026,(330,0047,0047,0 U 046D, 0£80,0E77,1080,0047,03FF,E S: 19590 NEXT/IL.DIVSUB.C * COMPLEMENT D IL.DIVSUB,A: 0%0=mmmmm e e ; FLAG2 = 0 OR EDIV NOT V DIVFAST+ SOR IN RLTEMP3], : STAY IN LOOP TILL STERC = 0 DBZ STEPC?,NEXT/IL.DIVSUB.A DIVFAST+ SOR IN RCTEMP3I, SIZECIDEP], ;gggg FLAGO? . NEXT/IL.DIVSUB.A1 : Y STEPC = 0 ; * WILL QUO BE POS OR NEG? S Qemmmomcun e ————————— ; FLAG2 = 1 : EDIV 19599 ;328? DIVFAST+ SOR IN RLTEMP3], SI1ZECIDEP],DEC STEPC,ALUS? 19602 =01 :gggz ¢ DO ITERATION * DEC STEPC & CHECK FOR V R ; NO BORROW : EDIV V Q_~1,RETURN [=2] T B 19606 1960, ;gggg -0 19610 IL.DIVSUB,A1: ;gg}g : $0%]mmmm e e meamee : 19594 19595 19613 : SIZECIDEP], ;gggg 19616 U 04B1, 0C58,0026,C080,0007,03FF,F e e LS E L D _RLZEROI=D=ALKC, 19587 19588 19589 19611 19612 U 04B0, 0458,0026,C080,D0C?,03FF,F : ; & BUT EDIV FLAG “0%0 19605 U 046F, 0498,0026,C030,0047,0047,0 NEXT7IL.DIVSUS.B ;gggg 19598 U 0474, 0498,0026,CB70,D847,0046,D Y DO SET UP CYCLE, SAVE ALU BORROW P $9593 U 0471, 0080,0026,C430,0047,0048,0 DIVEAST- SOR IN RCTEMP3], ALUS_UNSGN,SIZELIDEP],FLAG2?, 19580 19584 CLOKX Rev 13.00, Clock rate = 160ns : DIVSUB Integer, Logical, & Address :gg;g 6 3 16:30:35 P Q<= =18 TAKE QUO IS POS RETURN e DIVFAST+ SOR IN RLTEMP3] SIZELIDEP], DEC STEPC,NEXT/IL.DIVSUB.A — : BORROW : : : : EDIV NO V (Qmeeeemmmmen—— e, ———————— ; QUO WIL BE POS. DIVFAST+ SOR IN RCTEMP3), DO LAST DIVFAST, SET FLAG3,ALUS_UNSGN, SIZE[IDEPJ.. SAVE CARRY FOR REM CORRECTION, RETURN [=-2] SEY DIVISOR POS FLAG ;]eemmneeunntmesann e e n————— ; QUO WIL BE NEG 19617 DIVFAST+ SOR IN RLTEMP3], DO LAST DIVFAST, 19619 RETURN [-11 SET DIVISOR POS FLAG 19618 SET FLAG3,ALUS_UNSGN, s:zsc¢osp3.. SAVE CARRY FOR REM CORRECTION, Page 238 : 3 CLOKX Rev 13.00, Clock rate = 160ns I « ‘om i ~J o0 —4— mo— STEPC = 0 AGO? WILL QUO BE POS OR NEG? ZELIDEP], [7: X1 FLAGZ = 1 : EDIV DO ITERATION vel STEPC & CHECK FOR V L3 VFAST- SOR _IN RLCTEMP3], ZECIDEPI,DEC STEPC,ALUS? NO BORROwW : EDIV V Q@ <~ -1 & TAKE QUO IS5 POS RETURN -— BORROW i EDIVNO V =0 L. DIVSU o e o e e G G e G A TR G W U G QUO WIL BE POS, DO LAST DIVFAST,SAVE CARRY FOR REM CORRECTION,SET DIVISCR POS Fl.AG - ALUS u~so~ S RETURN [~1] - N3 1 IVFAST- SOR = pury v 04B2, 0080,0027,(0R0,D0OC7,03FF E ,F U C4B3, 0880,0027,C0B0,D0C7,03FF TILL STERPC = 0 % (=] ni FLAGZ = 0 OR $ plv NOT Vv STAY IN LOOP U 0475, 0C80,0E77,1080,0047,03FF ,E U 0477, 0898,0027,0030,0047,0047,2 Page DIVSUB VFA ——t e u 0473, 0€80,0027,C430,€047,0048,2 U 0476, 0098,0027,(B70,D0847,0047,5 wrm> 9623 9624 H --------------------------- (Dt 0880,0027,(330,€047,0047,2 O 622 =00 IL. DIV%UB N : 9620 9621 : MO~ . MCX (47098 INTLOG.MIC 16:30:35 M1 e D : : 28-NOvV-83 Integer, Logical, & Address MICRO2 - - QUO WIL BE NEG, DO LAST DIVFAST,SAVE CARRY FOR REM CORRECTION,SET DIVISOR POS FLAG ; : CMT098.MCX INTLOG.MIC MICROZ 1M(0T) 28-NOV-83 1 ASH :‘9656 NA RR R R AR kR R AR R R A AN AR R R R AR AR A ANA N AR AN AR AR h kR kA kR ASH(L,Q) ¢nt.rb src.rx dst.wx Input 20660 I ARAR R AR AR :gggg .8EGION/1RDX.R1L.IRDX.R1H/IRDX.R2L.]RDX.R?H 19664 IL.ASH: ;0==wmeemmmm—sswessmeeee—ee—a——- ;7879 19665 U 043F, 0C80,3E52,00F0,0047,0848,0 U 0679, 0180,0EF6,4031,0847,0047,8 Count Source R TR RISk ; TEMP3 & PLATCH <= CNT, @ <_ SOURCLE ; GO EVALUATE DST IR<2=0>7" ; MTEMP2 <~ SRC. SL <~ 32, FOR ASHQ ; MDR <~ O FOR ASHL(DON'T NEED Q_D) :gg;g .?ggION/INTLOG.R1L,INTLOG.R1H/1NTLOG.R2L,INTLOG.RZH/INTLOG.RSL,INTLOG.R3H 19674 IL.ASHL: 19679 IL.ASHG: .ggg% =00 19684 IL.ASHL.A: $9675 ;9676 .gg;g 9680 29681 . 9686 ,gggg :9689 ,ggg? ;9693 .8282 19696 U 0478, 0481,2004,7A30,8047,0048,6 Q MDR . 9697 19698 kk lemmmm—ememmecseecemsemscoeecee ; M[TEMP?J Q Q_b,SL_[201,MDR_O, ,gg;? :9692 U 047A, 0880,2A77,1670,0047,0847,( 355« Q_MIMDR], Page : ASH'' R AR AR KR RN IR RN IR LOD iNC BRA? ,REXT/0STWRTI :9669 19685 U 0478, 0(84,2AB7,013C,4DDA,003F,9 AR PUSH ROTEMP3] PL_Q .822? 19668 U 043F, 0480,3E52,0D0F0,0047,0847,8 346+ Integer, cogical, & Address . ; 19661 U 0093, 0186,2F6C,7671,04E7,0043,E CLOKX Rev 13.00, Clock rate = 160ns JT0C 19659 U 0092, 0€85,28CC,7180,€047,0414,0 " 3 ;gggg 9657 19658 il 16:30:35 Integer, Logical, & Address ! 13 ;110===coommen s ncn e e c e ; ABSVAL MLTEMP3]<7-0>7, ; NEXT/IL .ASHL.A H 78 CHECK RANGE OF CNT (1M emm e e m— w———; ABSVAL MLTEMP3]<7-0>?, ; 79 CHECK RANGE OF CNT NEXT/IL.ASHQ,.A H ;00=~m=m=mmmmemmmaemeemmammeanas ONT = =1 TO =31 RCDST.R) MLTEMP2],ASR.=P,CCOP1, : DEST <= RESULT WRITE NOTREG, SIZE[IDEP] iRD1 : D : CNT < =31 e PL [21],NEXT/IL.ASHL.A o SET PL T0 =31 & GO TO SHIFT RIGHT ;1Qmmmmmasnmecemmmes e —u— - ; CNT = 0 1031 0_MCTEMP2).ASL.P,SIZECIDEP], STGND CMP? ,NEXT/IL.ASHL.B : Q <~ RESULT ; LOOK AT SIGN OF RESULT ;1 lemmmmm—cmee— e — e —————— ; ONT > 31 0_M[MDR) wB_RLTEMP2], wX.EQ.07 ,NERT/IL, ASHLWRTQ s s RESULT <~ 0 IF SOURCE O THEN NO V 240 : ; CMT098.MCX INTLOG.MIC MICROZ 28-NOV~83 1Mo 16:30:35 : Integer, Logical, & Address J ASH 3 CLOKX Rev 13.00, Clock rate = 160ns Page =00 IL.ASHL. B ----------------------------- ; RESULT > 0 : WB <= SR(<31>'BITS SHIFTED OUT we MLTEMP21.ASR.-P, WXTEQ.07 ,NEXT/IL. ASHLURTQ : 1F O THEN NO V U 047C, 0C30,2AB7,0A30,0047,084B,6 325+ ----------------------------- ; RESULT = 0 (SRC=0 CNT=0 OR V) ZEXT(M[TEMP J).EQ,0?,SIZELBYTED,; IF CNT O THEN NO V IL ASHL,C: ;0mmmmmmmmmmm e ceecccm e ; NT NE 0 (SR(=0 OR V) WB_MITLMP2].ASR,.~P, ! WB <= SRC<31>'BITS SHIFTED OUT WXTEQ. 0°,NEXT/IL ASHINRTQ 3 b b b e NNNNNN ~ =0 =3 e ~ NN PON P N H =0 s IF 0 THEN NO V T e et ;INT =0 RCDPST.R) _M[TEMP2],SIZE[IDEP], ; WRITE SOURCE WRITE NOTREG,CCOP1,IRD1 H .. U 04B5, 0C84,2592,413C 4«DDA,Q03F,9 w. U 04B4, 0¢80,2AR7,0A30,0047,084B,6 325+ = O OCONONNIS LN — U 047E, 0880,2AB6,0A30,0047,084B,6 325« 10=cssmmmommescmnnnn———— w===; RESULT < 0 HB _NOT(MLTEMP2].ASR.-P), ; WB <= NOT(SR(C<31>'BITS SHIFTED OUT) WXTEQ, 0°,NEXT/JL ASHLWRTQ s IF O THEN NO V YT NEXT/IL.ASHL.C OO0 OO0 OVO VOO0 J 0470, 0880,3016,4A0D,8047,0048B,4 IL ASHLWRTQ: ;0m=mcmmesememmmmemm e ————— ; RCDST.R) Q Q_D,WRITE NOTREG, . U 0486, 0c64,002¢,703C,4DDA,0044,7 J 04B7, 0884,002C,713C,4DDA,003F,9 SIZE[IDEFJ.C?OPl.SET MM.NOINT, NEXT/IL.MULSETV : WRITE DEST SET V (DON'T CARE ABOULT @Q_D) : T e e : WRTTE DEST NO V RIDST.R] Q@ Q_D,WRITE NOTREG, : (DON'T CARE ABOUT Q_D) SIZELIDER],CcTOPT,IRDY 2 21 CMT098 . MCX INTLOG.MIC MICROZ 1M(OD) 28~NOV=-83 19733 T 19735 ;9736 0480, 0060,28F7,2030,40:DA,0047,F 9740 I 19745 ;9744 IL.ASHQ.C: PRI WRITF NOTREG,SET MM_NOINT, H IL.ASHQ.D: PR et neatt .8;29 NEXT/IL.ASHQG.D1 SIZECIDEPITCCOPT,SET MM.NOINT, IL.ASHG.A! T H INT = 07031 WRITE LS WORD OF RESULT ; IS CNT = Q7 ; CNT > 31 ; WRITE LS WORD OF RESULT : H e e m——————————— ; CNT = =1T70~-31 ;g;g? RIDST.RI_D,VA_VA+4 19762 19763 Jememeeecccsesnn e n . ———————— H RCDST.R+1] MITEMP2].ASR.-P, ; WRITE MS WORD OF RESULT :g;gg IRD1 9769 CCOP2.WRITE NOTREG,SIZECLUNG], : WRITE LS WORD IF REG MODE & BUMP VA : : 1L.,ASHQ,B1 ; -------------------------------- : CNT < =31 VA+4, ; BUMP VA ,g;;? 90 wBM[TEMP3]463 PL_31 WB<7>EQ0? ;9772 ;9773 =01 R “=; CNT < =63 RIDST.RI_MLTEMP2].ASR.P LCLOP1, : WRITE LS WORD OF RESULT 19774 ;g;;g 19777 'g;;g ‘ T RCDST.RY Q_O,WRITE 'NOTREG, 9768 0487, 0(84,20F7,012F,55DA,003F,9 PL<4=0>,EQ.07 ,NEXT/IL.ASHQ.CT 19754 ;9767 . SIZECIDEPI,cCOPT, ;9764 048¢, 9081,B010,0030,24A7,0048,7 bbb i e e e L D L L D ; ,9/49 ;9759 V485, 0884,20F7,092C,4DDA,0048,6 AR LR L ; LATER IF NOT) : 19758 0488, 0580,3€D1,00C1,F(47,0848,5 410« m o ; CNT < =31 SIZECIDEPI,NEXT/IL.ASHO,B1 :9755 (484, 0884,2AB7,012F,55DA,003F,9 eee RIDST.R] MLTEMP1].ASL.P, ;9753 047F, 0484,05B82,403C,4447,0048,4 : ;9747 ;0752 u SIZELIDEP],NEXT/IL.ASHG.A1 wRITt NOTREG,CCOP1,SET MM, NOINT,. MODE THEN WRITE. 0l memm :g;g? 0483, 0064,05B7,103C,4DDA,0048,A ; (NT = =1T0-_1 D <~ LS WORD OF RESULT, IF MEMORY R[DST R) _MLTEMP2],.ASR,;s WRITZ <= LS WORD OF RESULY WRITE NOTREG, CCOP1 SET MM NOINT, {ASSUME CNT IS =32 1O ~63 & FIX 19748 0482, 0464,1A77,0DFC,4DDA,0048,9 . | G D_(RLTEMP1] MLTEMP2]) ,RL.P, |L.ASH0.B: 8722 i :9780 ;9781 19782 Page CLOKX Rev 13.00, Clock rate = 180ns IL.ASHQ. A: 9741 9742 0481, 0864,2AB7,003C,4DDA,0048,8 3 =00 g;gg 19739 K ¢ ASH Integer,. Logical, & Address ;9732 ) 16:30:35 WRITE NOTREG,SI1ZE{LONG), REG MODE? ; PL <= 31, IS CNT < =637 (lF REG) ; WRITE MS WORD OF RESULT (IF MEM) : 10=mmecemmem e me et na VA M[VA)«2L170C41] : SET UP VA 10 WRITE LS WORD MEM ;11mcmmcscmcccccommnotc o ; CNT =3270-63 (OR SEC WRT < =63) RIDST.R+1] MLTEMP2],ASR,P,(LOP2,; WRITE MS WORD OF RESULT (SRC<31> WRITE NOTREG,SIZFLLONG], IRD1 : 242 Ty . {(MT098.MCX INTLOG.MIC M0 MICRO2 28-NOV-83 Integer, Logical, & Address ;9783 ;9784 0489, 0480,28F7,16F0,4447,0048,D 0488, 0080,2592,5030,0467,001E,5 19785 19786 19787 : ASH 3 & (RCTEMP1] MCTEMP21).RL.P, ; (NT = 17031 Q <~ MS WORD OF MDR Q_MLTEMP2],NEXT/1L.MOVQ : CNT = 0 SET UP TO DO MoOva VA_VA+6,WB<31-30>7, NERT/IL.ASHQ.C2 01 Page CLOKX Rev 13.00, Clock rate = 160ns =01 IL.ASHQ.C1: 19788 19789 19790 16:30:35 L : BUMP VA, 8 BRAN/ ; 1L. ASHQ. c2 wa MCTEMP21.ASR. <P, ‘ESUIT TM 3IGN POS : WB <~ SRC<63>'BITS SHIFTED OUT 048D, 0080,2A8B7,0A70,0047,0049,8 WXTNE.0? NEXT/IL. ASHO.WRT.MSW 048F, 0480,2A86,0A70,0047,0049,8 ettt ; NEG : WB <= NOT(SRC<63>'BITS SHIFTED OUT) WB_NOT (MLTEMP2],ASR. =9, IF O THEN NO V WXTNE.0? ,NEXT/IL.ASHQ.WRY.MSW IF IL.ASHG.D1: VA_VA+4 (MUTENPS1-SL)BYTE RANGE CHECK? 048A, 0880,3B%0,0DF0,0447,0849,0 413+ =00 U 0491, 0492, 0493, CNT > 31 : BUMP VA 1S CNT (=32, 3370 63, >63)? CNT 3371063 ;00====msmmace e — e ——————— ; ; O _MITEMP11.ASL.P, WB<31=30>7,N r/ L.ASHQ.D2 0490, 0880 1A77,16F0,0047,0049,5 0 <~ MS WORD OF RESULT BRANCH ON SIGN : CNT =32 ;0 = e e e eH 0 _MCTEMP1], : WB<31-30>2 NEXT/1L.ASHO.C2 0880,1592,56F0,0047,0048,D 0 THEN NO V <- MS WORD OF : GO CRECK FOR V 0480,1002,4A70,8047,0049,8 ey e aitopymooatateeet : CNY =64 UB_MLTEMP11.0R. RCTEMP2] : V IF SRC NOT = 0 WXTNE.O? ,NEXT/IL.ASHC.WRT.MSW : 0480,1.02,4A70,8047,0049,8 CNT >64 vV IF SRC NOT = 0 IF 0 THEN NO V o1 (B MTTEMPTI.OR.RLTEMP2T . WXINE.0? ,NEXT/IL.ASHO.WRT.MSW b : RESULT 1L ASHQ, 02 ------------------------------- : RESULT POS 0495, 0880, 1ABE,4A70,8047,0849,8 321+ 0497, V080, 2F53,C0B0,0047,0849,9 346+ O, wB RLTEMP2], OR (MLCTEMP1].ASR.=P),; WB <~ BITS SHIFTED ouTt WXTNE.0? ,NEXT/1L.ASHO.WRT.MSW M[TEMPZJ £Q.-12,S12ELIDEPY, NEXT/IL.ASHO.WRT.MSW.SETV ; . IF O THEN NO V RESULT NEG IF = =1 CHK TEMP1 FOR V : IF NOT = =1 THEN V : 243 ; : (MT098.MCX INTLOG.MIC MICROZ2 1M(01) ;9831 10832 U 0498, 0C84,002C,712F,55DA,003F,9 1983% 19834 U 0499, 0084,002C,702F,55DA,0044,7 19838 U 0498, 0480,1AB6,0A70,0047,0049,8 IL.ASHQ.WRT.MSW.SETV: e 9844 : 244; e L i : D kDbt ; WRITE DEST SET V REDST.R+1] 0 Q_D,WRITE NOTREG, - (DON'T CARE ABOUT Q_D) ccor2, R ZETLONG ) R KT 1L oMOL SETV =11 Page i| CCOP2,SI1ZETLONGI,] -ggzg 19843 ¢ ASH CLOKX Pev 13.00, Ctock rate = 160ns S ; WRITE DEST NO V REDST.R+13.Q 0_D,W 1TE NOTREG, (DON'T CARE ABOUT @_D) $9839 19842 M3 =00 IL.ASHQ,WRT,MSW: ;gggg 19837 P 28-NOV-83 Integer, Logical, & Address 16:30:35 Be ——— ; MTEMP2 = =1 wa _NOT(MLTEMP1].ASR.-P), WX NE.0? ,NEXT/IL.ASHQ. NRT MSW : WB <= NOT(BITS SHIFTED OuT) ¢ IF O THEN NO V i | . 1CODE 19857 ;9858 ;9859 19860 ;9861 ;9862 ;9863 19864 ;9865 19866 19867 ;9368 19869 ;9870 ;9871 19872 ;9873 ;9874 ;9875 ;9876 19877 ;9878 ;9879 19880 49881 19882 :9883 ;9884 ;9885 19386 .'9881, 19888 ;9889 ;9890 ;9891 . 9892 19893 19894, 9%95 .0CODE . 1CODE .0CODE REG 58: FPD LNOPJLIIE.OPCOD.DEC 0S.RED IRD1LLODIFO IPS FPA REG LNOPILIE.OPCOD.DEC [LODILOS.RED 0oPS 58: CNTO[LOD% L] L.ADAWIREG CNT1ENOPILIIL.ADAWIMEM 80: FPD [NOPIL 1E.OPCOD.DEC IRD1CLODIE 0S.RED J ] 80: CNTOCLODJL IL.ADD2.B.W.L.REG CNT1INOPIL 1L.ADD2.B.W.L.MEM JLO3.MOD 81: f 1 81 .1(0DE 0 cO: .0C0DE FPD [NOD IRD1LLO 0cQ: (NTO[LO (NT1IND .1C0DE 0C1: .0CODE 0 €1: . 1CODE 0AC: .0CODE 0AO: L1Cobe OA1: .OCODE 0AY: [0S.WRT2 [IL.ADAWIMEM I[IL.ADD2.B.W.L.MEM ] ] 0S.RE IL. ADD3 B.W.L.REG JEos. JCIL. IL.ADD2.B.W.L .REG IL.ADD2.B.W.L ,MEM 1 ] 3 B.W.L.MEM J ] £os. [IL.ADDZ.B.W.L.MEM ] 1 JADDB2 [LODILIL.ADC2.B.W.L.REG oD DP2.B.W.L.MEM [NOPI[IL.ADDZ.B.W.L.MEM JADDB3 .RED [LODJILOS.RED [LODILIL.ADD3.B.W.L.REG .ADD3.B.W.L.MEM JADDLZ [LIDICIL.ADD2.B.W.L.REG [NOPJLIL.ADDZ.B.W.L.MEM .MOD JADDZ.B.W.L.MEM ;ADDL3 INOPJLIE.QPCOD.DEC [LODICOS.RED [OS.RED (IL.ADD3.B.W.L,MEM ] ] FPD [NOPI[!1€.0PCOD,DEC IRDILLODILC S.RED [LOV]LOS.RED .RED ADD3.B.W.L.MEM ([LODILIL.ADD3.B.W.L.REG JADDW2 (NOPJLIE.OPCOD.DEC [LODI[OS.RED [Os. 1[IL.ADD2.B.W.L.MEM J ] FPD [NnOTT 1E.OPCOD,DEC IRD1{LODIL 0S.RED CNTOLLODIL 0S.RED (NTICLOPIC IL.ADD3.B.W.L.REG [0S.WRT? CIL.ADAWIMEM ;ADAWI [NOPJLCIE.OPCOD.DEC [LOP]ILOS.RED IRD1LLODIL O0S.RED CNTOCLOD]C! L.ADD2.B.W.L.REG (NTT{NOPIL!IL.ADD2.B.W.L.MEM FPA MEM rl [NOPJLIE.OPCOD,DEC [LODJILCS.RED FPD [NOPIL 1E.0PCOD.DEC CNTOLLODIL OS.RED CNT1LL0DIL IL.ADD3.B.W.L.REG LLOD)CIL.ADAWIREG [NOPJILIL.ADAWIMEM Ird Rom Definition'' [NOPILIE.G®COD.DEC [LODILIS.ALD 1E.0PCOD.DEC 0S.RED 1E.OPCOD.DEC 0S.RED J 1 : I ;9855 19856 Integer, rogical, & Address [LODJCIL.ADDZ.B.W.L.REG [NOPILJL.ADDZ,B.W.L.MEM INOPILI1E.OPCOD.DEC (LODICOS.RED LOS.RED [IL.ADDS.B.W. L MEM 1 ] [LODJLOS.RED [LODILIL.ADD3,.B.W.L.REG Ll .0CODE ;9852 19853 ;9854 ! 245 >3 ,,9851 ;9850 Page —_ JICODE .T0C 3 sl 19848 19849 =~ v} .NOBIN ;9845 " A 19846 ;9847 N 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : Ird Rom Definviion MICROZ 1M(01) 28=-NOV-83 Integer, Logical, & Address . MCX CMT098 INTLOG.MIC {0s.MOD LIt ;ADDW3 MICRO2 1M(01) 28-N0OV=-83 Integer, Logical, & Address INTL S p B 4 16:30:35 CLOKX Rev 13,00 . Clock rate t Ird Rom Definition MEM REG CIE .OPCOD.DEC D (OS.RED FPA REG 0pS P1L LN OPJICIE .OPCOD.DEC pIL .RED [LODILOS IC! CIL.ADWCMEM + FPD [NOP JCI1E .0PCOD.DEC IRD1LLODICOS.RED OD.DEC £l (NOPJLIE.OPC [Lonl C0S.RED 79: EPD [NOPILIE.OPCOD.DEC RD1LLODILOS.RED PICI [NOPJILCIE.OPCOD,DEC DICOS.RED cLopafos. TM~ CNTOLLOD] [OS.QRED O— FPA MEM 1 S.QRED L.ASH .QRED +ASH PCOD.DEC OPCOD.DEC 1, JASHL .QGRED ~e e O» +ASH :BlCB2 1 ] (o S.MOD [1 L.B 102.8.W.L.MEM : JBICB3 JEOS.RED J0IL.BIC3.B.W.L.MEM 3.8.W.L.REG [NOP]L JCIE .OPCOD.DEC fLondt JLOS.RED DJLOS.RED JL0S RED I BIC3.B.W.L.MIM JIL [OS.MOD [IL.BIC2.B.W.L.MEM ENOP%EIE.OPCOD.DEC +OPCOD,DEC 3.B.W.L.REG FPD [NO IRDILLO COD.DEC D ] J 1 M 00 N:] IC 2.8.W.L.MEM LODJLOS.RED .R JLOS.RED BIC3.B.W.L.MEM acIL.eIc BICL3 J .RED IC 3.8.W,L.MEM J JBICW2 [LOD]EOS.RED [NOP) [E.OPCOD.DEC 2.8.W.L.MEM ST ] IRDTIL 001 (0S.RED PIL {E.OPCOD.DEC Sy ] FPD [NOP] C1E.OPCOD.DEC L S.RED L L.BIC .B](3.B,W.L.REG : JADWC 1C0S.MOD 1 L.ADWCMEM J100S.MOD [ . ASH CNTTCNOPILIL Page 246 | 160ns w3 (MT0 ] p— 247 Page 160ns CLOKX Rev 13.00, Clock rate 16:30:35 t ird Rom Definition 4 28=NOV=83 Integer, Logical, & Address ¢ M01) M1CRO2 e> (M1098. INTLOG. < OE -. o O . .. o OE . . o . wev W [PE7Y, S P | we ; v [FRY7, SJu| Wy v [TYYY,R | woe ww . (e =z T T P A R R SRR —O —O -O —O oo aw wa v oo ow oo v, o ow wa v oo aw [O e —O -O =O - el il i C(MTO98.M(X INTLOG.MIC 4 CLOKX Rev 13.00, : Ird Rom Definition 16:30:35 Clock rate = Page 160ns aos[ol=Nelelo0 —_aoo0 sOOoo (STooaoY woo[Tuar S STooOO [TooR OQoR T —_00ac OOoo (Io0aos ToOQooo (Iaoo0 T}ooo0OQ (RRyST] .00 " 110006 28=NOV~83 MICRO2 M(01) Integer, Logical, & Address D B.W.L.MEM ] 248 1 MICROZ2 CMT098 ,MCX ; ;10061 110062 ;10063 i; 10064 . 16065 1CODE .OCODE 0B81: ] -10068 .1CODE .188;? 0CODE :10077 210078 ;10079 10082 ;1008q ;10085 ;10086 10090 510091 ;10092 210093 IRD1LLOD]COS.RED ,OCODE OF7: FPD [NOPJCIE. OPCOD DEC IRD1LLODILOS.RED J LB.LW.,WB.MEM ] IRD1{LODICOS.RED CNTTINOPILIL.DIVQUO+ 0CODE r— 2 032: FPD [NOP]LIE.OPCOD.DEC 032: CNTOCNOPJILIL.CVT.BW.BL.WL VT, BWLBL WL D CNT1INOPILIE.BAD. IRD [1E.BAD J 1 ;CVTBL 1. ] J, JOIL.CVT,.BW,.BL.WL [NOPJICIE.OPCOD,.DEC 1, [LODJLCIL.CVT.LB.LW.WB JLOS.WRT2 [NOPJCIE.OPCOD.DEC 1. [NOPI[IL.CVT.LB.LW.WB 1, ] ;CVIBW ] JLIL.DIVGUO+ 1, ] s CVILB ] 1, JOIL.CVT . LB.LW.WB.MEM ] JCVTLW ] CLODJCIL.CVT.LB.LW.WB.REG JLOS.WRT 3. [NOPJICIL.CVT.LB.LW.WB,MEM JCIL.CVT.LB.LW.WB,MEM ] 1, ] CLODJCIL.CVT.LB.LW.WB,REG JLOS.WRT CVTWB 1, [NOPILIL.CVT.LB.LW.WB,MEM JCIL.CVT.LB.LW,.WB.MEM ] [NOPJLIE.OPCOD,DEC 1, CNOPJICIL.CVT,.BW.BL. WL JCIL.CVT.BW.BL. WL (NOPJILCIE.OPCOD.DEC 1, CLODICOS.MOD [IL.DEC JCIL.DIVAUO+ CNOPILIL.DIVaQUO+ [NORPILIL.DIVQUO+ IRD1{LODILOS.MOD 097: CNTOCNOPILIL.DEC.B.W.L JLIL.CVT.BW.BL. WL CNOPICIL.DIVQUO+ CLODICOS.RED 097: FPD [NOPJLIE.OPCOD.DEC . INOPJLIL.CVT.BW.BL.WL [NOPJ[CIE.OPCOD.DEC CLODICOS.RED CNTT1ONOPILIL.CVT.LB.LW.WB.MEM ;401;% 210115 T LB,LW,WB,MEM ] 033: FPD [NOPICIE OPCOD DEC IRD1CLOD]LOS.RED L 1CODE slui 7 CNTTINOPILIL.CVT.LB.LW,.WB.MEM .0CODE ]1. CLODICUS.RED OF7: CNTOCLOD]CIL.CVT.LB.LW.WB.REG ;10110 S10114 J T.LB.LW,WB.MEM J . ICODE | :%8}83 ;10111 T2 CNT1INOPICIL.CVT.LB.LW.WB.M ., I1CODE CLODILOS . RED CLODILOS.RED OF6: CNTOCLODILIL.CVT.LB.LW.WB ,OCODE [NOPJLCIE.OPCOD.DEC CNOPJLIL.CVT.BW.BL.WL IRD1LLODILOS.RED :16103 ;10106 .BW.BL.WL JCOS.RED 249 :CMPYW ] JOIL.CMP,B.W.L .MEM [LODILOS.RED OF6: FPD [NOP]CIE. OPCOD DEC .0CODE 033: CNTOLLODILIL.CVT.LB.LW.WB.REG ] 210107 3 .1 CODE ;10099 ;10100 :10105 ] 1. FPA MEM [NOPILIL.CMP.B.W.L.MEM CNOPJILIE.OPCOD.DEC CNT1INOPILIL.DIVQUO+ L 1CQDE ;10104 L.DI IRD1LLODILOS.RED ;10096 :}8%8; L.CVT,.BW.BL,.WL 099: CNTOLNOPJILIL.CVT.BW.BL.WL :}gggg ,!009/ ;10098 CLODILIL.CMP.B.W.L.REG B.W.L.MEM 099: FPD [NOPJLIE.OPCOD.DEC ;%gggg $10089 CLODICOS.RED . I1CODE .0CODE FPA REG [NOPJLCIE.OPCOD.DEC (NT1ONOPILIL.CMP,.B,W.L.ME CNT1INOPILIL.DIVQUO* ]883? 110083 0PS IRD1LLOD]COS.RED 098: CNTOLNOPICIL.CVT.BW.BL.WL .}88;2 110076 : Ird Rom Definition REG CNTOLLODJCIL.CMP.B.W.L.RE Page CLOKX Rev 13.00, Clock rate = 160ns 098: FPD [NOPJLIE.OPCOD.DEC $10072 ;10075 0PS i 4 081: FPD CNOPJLIE.OPCOD.DEC :}882% ;19069 16:30:35 28-NOV-83 Integer, Logical, & Address INTLOG.MIC : 1M(01) E [NOPJCIL.DEC.B.W.L [NOPILIE.BAD.IRD s CVTWL ] JLIL.DIVaQUO+ 1, ] ;DECB ] JCIL.DEC.B W.L JCIE.BAD.IRD 3. ] un S 3 o_ — - = ] 2 O WO wo o WO o wo o wo wo wo wo wo wo wo wo Wwo o0 0O eQo eoo a0e omo0 Mmhao0 me00O Ilo0 Boo [eo0L S OOn g | Uo0n i L)OO0 ~eo0 eOO0 Il — a 3a a 3 a . a . a . o . a . a . ~ L2 E 45 MYe — o ~4O g F [7a3 (M7098, . INTLOG. L)s>xX2 28-NOV=83 Integer, Logical, & Address MICRO2 1M(01) 16:30:35 : 6 4 CLOKX Rev 13.00, Clock rate Ird Rom Definition ).:(n/flL P 8901..(RARREEA (&} Page 160ns 251 & R # Iagl- 10 2 . = uE NE NE N; ==ES=N]EoT =N== Eo..-.S. o o o o =xx= LotiAN A et g P e Y T g e T £ e P T e e T S g T TSg g YT e € e, (MT098. INTLOG. ’ . ’ . + . [ + H 4 CLOKX Rev 13.00, Clock rate = 160ns Ird Rom Definition Page 252} z . io 16:30:35 o LBL Ll ) L s L L L I Lo| LB e L D e —e e [ e ' wv« . a2. . [F.RY7,QUs|. . wy. . . . [TYPY7, QU. . wvy.. ) wwv.« . ) wwv. s. W. . g. . . 28-NOV-83 Integer, Logical, & Address MICRO2 1MC01) | : INTLOG.MIC ~1uaa1 LICODE ;yfigz 0CODE ;10282 s MICRO2 (MT098.MCX k 1l 110285 :¥8£39 0C 1M(01) Integer, Logical, & Address 0PS REG 0DO: CNTOCLODICIL .MOV.B.W.L.REG (NTAINOPICIL .MOV.B.W.L.MEM IL0S.WRT2 JCIL.MOV.B.W.L.MEM :10389 ;]ggg? 0?u: FPD [NOPJILIE.OPCOD.DEC 0CObE IRD1CLODICOS. QRED ote 07D: CNTOCLODICIL.MOVG 110095, 110096 S0y ;10298 ;10299 :;g?g? 0B0: FPD {NOPI[CIE.O oo ere .OCODE 0BG: CNTOCLODICIL .M CNT1[NOPJEIL. J10%02 L 1CODE ;1@%85 0CODE 140303 PRLPI ] $10%06 IRD1CLODILOS.R . ;3x§8g fi.fi.:.REG i LU MEM ] 09A: CNTOLNOPI[IL.MOVZ.BW.BL.WL JLIL.MOVZ.BW.BL. WL (NT1INOPILIL .MOV.3.W.L . MEN T13309 L 1COoDE LoD ;10%11 098: FPD [NOPJILIE.OPCOD.DEC b 098: CHTOCNOPI[IL.MOVZ.BW.BL.WL JOIL.MOVZ.BW.BL. WL oconE Je3e 13513 ;jg§12 IRD1ELODICLOS.RED (NTTINOPILIL $10716 . 1CODE ica7 03C: :}8;}% OCODE 1930 L TCODE :]3%32 0CODE 1082 110337 ;{8§§g 110330 $1033 110332 $10333 $1033. 110335 IRD1CLODILOS.RED CNTTENOPILIL .MOV.B.W.L . MEM (10323 110334 FPD [NOPILIE.OPCOD.DEC 03C: CNTOLNOPI[IL.MOVZ.BW.BL.WL :}?gs; 10ode .MOV.B.W.L . MEM 084: FPD [NOPJ[IE.OPCOD,DEC . : IRD1LLODICOS .RED 084: CNTOLLODICOS.MOD CNTTINOPILIL MUL2.B.W.L L, 1CODE 085: FPD (NOPJLIE.OPCOD.DEC ,0CODE IRD1CLODICOS.RED 085: CNTOCLODI[OS.RED CNTIENOPIEIL .MUL3.B.W.L ] J 1 ] ] JCIL.MOV.B.W.L.MEM ] ] ] JCIL.MUL2.B.W.L 3 h| hi J[0S.RED JCIL.MUL3.B.W.L [LODICIL.MOV.B.W.L.REG CNOPICIL.MOV.B.W.L.MEM JL0°. WRT JCIL.MOV.B.W.L.MEM [NOPILIE. OPCOD DEC 2, [NOPJCIL.MOVZ.BW. BL WL JCIL.MOVZ .BW.BL. WL [NOPIL1E.OPCOD.DEC 1. [NOPJLIL.MOVZ.BW.BL.WL JCIL.MOVZ.BW.BL.WL [NOPJCIE.OFCOD.DEC 1, ([NOPJLIL.MOVZ.BW.BL.WL JCIL.MOVZ .BW.BL. WL [NOPILIE.OPCOD.DEC 1, C[LODICOS.MOD JL0S.MOD [NOPJEIE.OPCOD.DE( 1. [LODI[OS.RED J[0S.RED C(NOPICIL.MOV.B.W.L.MEM [NOPICIL.MOV.B.W.L.MEM [LODILOS.RED 3 [NOPICFI.MUL2.B.W.L.MEM [LODILOS.RED ) ] JLOS.WRT2 JCIL.MOva 2. [NOPICIL.MOV.B.W.L.MEM ENOPICFI.MUL3.B.W,L.MEM ;MOVL 3 [NOPJLIE.OPCOD.DEC LODILOS.RED | 100S.MOD 1, ] £LODILOS.RED b JCIL.MIVZ.BW.BL.WL [NOPJLIE.OPCOD.DEC [LODILOS.QRED ELODILOS .RED ] JCIL.MOV.B.W,.L.MEM JL0S.WRT? ! JLCIL.MOV.B.W.L.MEM [LODILOS.RED ) JCIL.MOV,B,W.L.MEM [LODJEIL.MOV.B.W.L.REG [NOPI{IL.MOV.B.W.L.MEM 3 [NOPICIL.MOV [LODICIL.MOVQQ J ] FPA MEM 1, ] ] 09A: FPD [NOPJ{IE.DPCOD.DEC IRD1ELODICOS.RED ] ] b J[0S.WRT?2 J[IL.MOV.B.W.L.MEM FPA REG INOPJLIE.OPCOD.DEC £LODILOS . RED ) ] JL0S.WRT2 1CODE 0PS ] JLIL.MOVQ CNTTCNOPICIL .MOVO 10 MEM ] IRD1CLODILOS.RED Page 253 CLOKX Rev 13.00, Clock rate = 160ns ¢ lrd Rom Definition 0D0: FPD [NOPJILIE.OPCOD.DEC 110788 . 1CODE ;}qqu 28~=NOv-83 16:30:35 1. ] ;Mova 3, JMOVW b ]2, ;MOVZBL ] J[IL.MOV.B.W.L.MEM 1, ;MOVZBW ] JCIL.MOV.B.W.L.MEM 1, ] ;MOVZWL ] JCIL.MOV.B.W.L.MEM J, | ;MULB2 ] JCFI.MUL2.B.W.L.MEM 1, ] :MULB3 ] JCFI.MUL3.B.W.L.MEM 1, ] 0C4: CNTQ[LODILOS.MOD UNTTINOPILIL.MULZ.B.W.L COOOO00OOOCOO0O0COOOOOC OO QOO0 OQOOC DOMC = g ] ] 4 CLOKX Rev 13.00, Clock rate = 160ns Page 254 | : Ird Rom Definition MEM JL0S.MOD (1 L.NULZ B8.W.L ] ij 0PS FPA REG [NOPJCIE.OP COD DEC CLODILOS.RED 1, J FPA MEM [LODJLOS.MOD CNOPJ[FI.M Lc.B W.l.MEM JL0S.MOD JLFI.MUL2.B.W.L.MEM [NOPJLIE.OPCOD,DEC 1. [LODILOS.RED 100S.RED CNOPICIE.OPCOD.DEC 1. ([LoDJLOS.MOD JL0S.MOD [NOPI[1E.OPCOD,DEC [LODILOS.RED 3. ] [LoD)LOS.RED JLOS.RED [NOPILIE.QPCOD.DEC 1 CNOPJCIL.PUSHA.B.W.L JLIL.PUSHA.B.W.L ;MULL2 1, 1] 4 3 JIC0DE g LA ODE 7 "7 0 .ICODE % 3L ODE * .OLODE 4 g 1 4 7 8 8 ] T0C5: CNTOLLODICOS.RED 300S.RED CNTT1INOPILIL.MUL3.B.W.L . 1CODE 0AS5: FPD [NOPJLCIC.OPCOD,.DEC OCODE IRD1CLODICOS.RED 0A5: CNTOCLODILOS.RED CNTIINOPILCIL MUL3,.B.W.L ,1CODE ? 0CODE .1C0DE 2 0CODE 5 CNTTINOPITIE.BAD.IRD 9 0CODE JCIE.BAD. IRD JCIL.FUSKHA,Q .1CODE g 0CODE I’RD1LLODILOS.ADD CNTICNOPILIE.BAD. [RD J[1E.BAD.IRD ] 03F: (NTOCNOPILIL.PUSHA,B.W.L JOIL.PUSHA,B.W.L (NTT1INOPI[I1E.BAD.IRD 1 1 1 ] ) INOPILFI.MULS.B.W.L.MEM [INOPILIE.BAD.IRD CNOPILIE.QPCOD.DEC ] ] ] ENOPJLIL.PUSHA.Q 1 JLFI.MUL3.B.W.L.MEM JLIE.BAD. IRD MuLW2 J, ] MULW3 J. 1 ;PUSHAB 1. ] Je JLCIE.BAD. IRD +PUSHAL ], ] 1, s PUSHAQ ] JLIL.PUSHA.Q JC1E,BAD, IRD [NOP]LIE. OPCOD DEC ] INOPJLIL.PUSHA.B.W.L JLIL.PUSHA.B.W.L [NOPILIE.BAD.IRD 1] ] INOPI(IE.BAD.IRD (LODIL0S.ADD ) JLFI.MUL2.B.W.L.MEM JLIL.PUSHA.B.W.L (LODILGS.ADD 1, ] [NOPJLIL.PUSHA.B.W.L . ] J[FI.MUL3.B.W.L.MEM ] [INOPILIE.BAD.IRD JMULL3 ] (Lep1L0S.ADD LNOPJLIE.QPCOD.DEC ] JCIE.BAD.IRD [NOPICFI.MUL2.B.W.L.MEM fLflD][OS.ADD ] 03F: FPD [NOPJLIE.OPCOD.DEC IRDTCLODILOS.ADD ] J 07F: CNTOLNCPILIL.PUSHA.Q 5 0 JUIE.BAD, IRD INOPI[F].MUL3.B.W.L.MEM [LODJ[OS.RED ] ] ) 9 JOIL,MUL3.B. WY.L 07F: FPD [NOPJLIE. OPCOD DEC l 6 JLOS.RED J0IL .PUSHA,.B.W.L CNTT1ENOPICIE.BAD. IRD J ] i ODF: CNTOCNOPJ(IL.PUSHA.B.W.L .ICODE 2 FCIL.MUL2.B.W.L ] 8 9 J{0S.MOD ODF: FPD [NOP]LIE.CPCOD.DEC IRD1{1LODILOS.ADD 1 ] J[IL.PUSHA.B.W.L IRD1LLODILOS.ADD fLobI{0S.RED ] 09F: CNTOINOPILIL.PUSH/A.B.W.L 1 g JOIL.MUL3.B.W.L ] ) 2 ] 09F: FPD [NOPJLIE.OPCOD.DEC 8 8 FPD [NOPI[L1E.QPCOD.DEC D1FLOD][03.RED CNTT1ENOPICIL.MULZ.B.W.L 4 5 IRDILLODICOS.RED O0A4: CNTOCLODZLOS.MOD % LA A LATUAN LA LA N WA U O 0CS5: FPD CNOPICIE.OPCOD.DEC O0A%4: 1 ~D O 00 CO00 COCOCo O 0000 ~N N NN N NN N TN wa et e LI DD ek b e D D PR d b b D D ek e P P . ad D seSava b o e kb D o b b T R TR T ) ok et b T A N O N N LN OIS AN W (N AN A A N N N AN N N NN AN N A NN LN N W LR AN LY - LA o o e N H VTV TV Do N LIV O OO OO OOoODOCOOCODIOCOOOCOOC ¢ i b e o mrd 28-NOV-83 16:30:35 Integer, Logical, & Address JIC0DE OPS REG JC4: FPD [NOPJCIE.CPCOD.DEC 000D IRD1{LODILOS.RED et R {NTLOG.M{C MICRO2 1M(01) oo % g N SN QR U R S IR R T Sescme%essscas e et * (HT098 MK 1, ] s PUSHAW ] JCIE.BAD.IRD 1. ] .- INTLOG.MIC S 0391 0392 0393 0394 QT gy S Y 0395 8%39 [ T T YN EYEEYEY] MICROZ2 IM(OT) TMTN98 . MCX 0398 v QNP U U 0399 : 10400 0401 0402 8282 .(1CODE OPS REG OnD: FPD [NCPJLIE.QPCOD.DEC IRDICLODICOS.RED ,0CODE 0DD: 09C: CNIOCLODJCOS.RED JLOS.RED ,0CODE CNTTLLODICIL.ROTLREG 10412 .1CODE [P .0CODE 10414 10415 N AT L S 10416 }82}2 10419 10420 10421 10422 10423 }82%? 10426 104e7 10428 JCILROTLMEM ] 1 009: CNTOCLOD]I 1L .SBWCREG CNTILNOPILCIL . SBWCMEM J00S.MOD JCiL. SBWEMEN .0CODE FPD [NOPJLIE.OPCOD.DEC IRD1CLODILOS.RED 082: CNTOLLODILIL.SUBZ.B.W.L.REG CNT1INOPILIL.SUT2.B.W.L..MEM . 1CODE 083: FPD [NOP)LIE.OPCOD.DEC .0CODE IRD1TLODILOS.RED 083: CNTOLLODJICOS.RED CNT1LLODICIL.SUB3.B.W.L.REG . 1CUDE 0C2: FPD (NOPJ({IE.QOPCOD.DEC 10429 .0CODE 0433 ,1C0DE 0436 ,GCODE 0440 ,1CODE IRDICLODILOS.RED 0C2: CNTOCLODICIL.SUBZ.B.W.L.REG CNTIENOPILIL.SUB2.B.W .MEM J ] J ] ] J ] 1CIL..SUB2.B.W.L.MEM Y ] JLIL.SUR3.B.W.L.MEM ] ] ] ] JC0S.MOD JCIL.5UB2.B,W.L.MEM JLIL .PUSHL JLIE.BAD.IRD [NOPICIE.OPCOD.DEC [LODILOS.RED J, ] [LODJLOS.RED JCOS.RED C[LODICIL.ROTLREG JOIL.ROTLMEM 1. ] CLODICIL.SBWCREG INOPICIL.SBWCMEM JL0S.MOD 1 .SBWCMEM [NOPICIE.OPCOD.DEC 3, CLObp)LIL.SuUB2.8.W.L.REG J[0S.MOD [NOPI[IL.SUB2.B.W.L.MEM J[IL.SUB2.B.W.L.MEM J, ] JROTL iy ] : SBWC J, ] : suBB2 J, ] 1. ] [LOD)LOS.RED JLOS.RED [NOPJCIE.QPCOD,DEC 1. CLODJLIL.SUB2.B.W.L.REG (ENOPILIL.SUBZ2.B.W.L.MEM J[0S.MOD J[IL.SUB? B.W.L.MEM [NOPJCIE.OPCOD.DEC [LopICOS.RED 1, ] CLODJLUS.RED [LODJEIL.SU83 B.W.L.REG JL0S.RED J[IL.SUB3.B.W.L.MEM CNOPJC1E.QPCOD.DEC CLODI[0S.RED 1. ] CLopJCIL.SUB2.B.W.L.REG [NOPILIL.SUB2.B.W.L.MEM J[0S.MOD J[lL.SUBZ B.W.L.MEM [LODJ[IL.SUBS B.W.L.REG s PUSHL ] CLODILOS.RED CLoD]C0S.RED ] ] FPA MEM CNOP]L1E.OPCOD.DEC [LODICOS.RED [NOPILIE. OPCOD OEC J . [MOPJLIL.PUSHL TNOPILIE.SAD.IRD [LODJ[OS.RED ] JLOS.RED 1, ] } ] JL0S.MOD opF. FPA REG [NCP "E.OPCOD,DEC [LODJLUS.RED wre sus3.B.W.L.MEM ;. suBB3 1. ;suBL? ] 1. ] T NN 0436 0435 J P R L LR e [ 10430 182%; MEM 009: FPD C{NOPILIE.QPCOD.DEC IRDTLL OD2COS.RED 082: Page 255 | CLOKX Rev 13.00, Clock rate = 160ns : Ird Rom Definition JCIL.PUSHL Jl1e .BAD IRD ] ] 0408 10413 ] ] 09C: FPD [NOPJLCIE.OPCOD,.DEC IRD1CLODILOS.RED . 1CODE 0409 }82}? ) CNTOLNOPILIL.PUSHL CNT1LNOPILIE.BAD.IRD ,1CODE 0405 0406 0407 28~NOV=-83 16:30:35 Integer, Logical, & Address o K 4 0437 82%3 0441 822% 04644 0445 0C3: FPD [NOPILIE.OPCOD.DEC IRDICLODILOS.RED ] ] 0C3: CNTO[LOD]COS.RED CNTICLODILIL.SUB3.B.W.L.REG JLO0S.RED 11,5083, B.W.L,MEM 0A2: FPD [NOPJLIE.OPCOD,DEC 0CODE IRD1CLODILOS,RED 0A2: CNTOLLODILIL.SUBZ.8.W.L.REG CNTIINOPI[IL.SUB2.B.W. L. MEM 3 ] ] ] J{0S.MOD JCIL.SUB2.8.W.L.MEM J ] :SUBL3 1, ] ; SUBW2 1, ] 1M(01) 28~NOv-83 Integer, Logical, & Address MICROZ (MT098.MCX INTLOG.MIC ; 0A3% .OCODE 0A3: . 1CODE 095: _OPS REG FPD_[NOPILIE.QPCOD.DEC IRD1ELODILOS- RED (NTOLLODILOS.RED CNT1LLODICIL.SUB3.B.W.L.REG FPA MEM {PA REG [NOP] 1 E.0 PCOD DEC CLonl [o S.RED 0PS MEM Lty ICODE Page CLOKX Rev 13.00, Clock rate = Ird Rom Definition ED £Lod] fo S.RED ] L.SUB3.B.W.L.REG [LoplClI UB3.B.W.L.MEM iy 1 ;1818 0DS: FPD_ [NOPILIE.OPCOD.DEC IRD1ELODILOS . RED CNOP) CIE.O PCOD DEC [Lonl [OS.RED s TSTL 0DS: CNTOLNOPILIL.TST.B.W.L CNOPJ CIL.TST.B.W.L ] .B AD. IR D CNOPILIE LLODILOS.RED [T) .OCODE 095: CNTOINOPICIL.TST.B.W.L CNT1CNOPIL1E.BAD. IRD . 1CODE ey .OCODE CNT1ENOPICIE .BAD. IRD . 1CODE 0BS: [ 7 S ] .0CODE sTSTW C CNOPJIL 1E€.0PCOD.DEC fLonlt 0S.RE D 085: FPD_[NOPILIE.OPCOD.DEC IRD1ELODILOS . RED CNTOLNOPJLIL.TST.B.W.L CNT1ENOPILIE .BAD. IRD . 1CODE 08C: FPD [NOPILIE.OPCOD.DEC IRD1ELODILOS.RED )- .0CODE | 08C: CNTOCLODILIL.XOR2.B.W.L.REG L . MEM CNTTENOPICIL.XOR2.B.W. [NOPIL IL.TS T.8.W.L INOPIL 1E.BA D. IR CN [L 1€.0PCOD.DEC O0S.RED L [N IL. IL ; XORB2 .MOD .XO0R2.B.W.L.MEM . 1CODE ; XORB3 080: FPD [NOPI[IE.OPCOD,DEC CNTOLLODILOS.RED : EIL XOR3.B. U. L . REG ENTIELODI JLOS.RED JOIL.XOR3.B.W.L.MEM 0R3 B.W.L.MEM . —J it 0Ch: rn .OCODE ;XORL3 ] ] X;U 0CD: FPD [NOPJLIE.OPCOD,DEC IRD1CLODILOS. RED r-w . 1CODE R2 8.W.L.MEM e JL0S.MOD JCIL.XOR2.B.W.L . MEM X3 0CC: CNTOLLODILIL.XOR2.B.W.L.REG CNTT{NOPICIL.XOR2.B.W.L . MEM .0CODE ;1 XORLZ —o ] ] +XOR3.B.W.L.MEM —Q 0cC: FPD [NOPILIE.OPCOD.DEC IRD1ELODIOS . RED .RED —_0 . 1CODE p ] W) 0R3 8.W.L.MEM . REG ] CNTOLLODILOS.RED CNT1ELODICIL. XOR3.B8.W.L - 080: [ .OCODE IRD1LLODILOS. RED | 256| ; SUBW3 CNOPICIE.OPCOD.DEC FPD_[NOPILIE.OPCOD.DEC IRD1ELODILOS. RED rn o VI T VT BTN (=) OO NN AN =S O DOOQOOCOOOO Ead o SR O ,10446 16:30:35 xw : : 4 REG OPS FPD CNOPJLIE. OPCOD.LDEC .0CODE OAC: CNTOCLODJILIL. + 1rd Rom Definition MEM IRD1LLODILOS. RED CNTIONOPILIL. £0Ss.MOD CIL.XOR2.B.W.L.MEM . 1CODE 0AD: FPD [NOPJLIE. OPCOD.DEC IRDICLODICOS. RED .0CODE QAD: CNTOCLODIJLOS. RED CNTTLLODILIL. XOR3.B.W.L.REG S.RED i FPA MEM ] ] +XOR2.B.W.L.REG <XOR2.B.W.L.MEM o S.MOD 1 L.XOR2.B.W.L.MEM S.RED L.XOR3.B.W.L.REG 257; i FPA REG .OPCOD.DEC -RED €.0PCOD.DESL S.RED L.XOR3.B.W.L.MEM Page 160ns (LOKX Rev 13.00, Clock rate [I | S Ry B PN) JI1C0DE QAC: 16:30:35 ] BN} + 10501 ;10502 1M(01) L INTLOG.MIC 28-NOV-83 Integer, Logical, & Address Ml CRO2 fW) : CMTO98.MCX -0 : ! M4 . ’ (o S.RED L1 L.XOR3.B.UW.L.MEM 1 ; XORW2 [ +— — < — R el Q K= o CLILCLCLCLLILLLOODDODDODDDODDDDNUULLLLLLWLLLLLULOOODAAAOIDOWIUI=I—I— OO0 ROOOOOOOOOOOOOCOCOII0OOTODOCDON MO DM OO0 OOOOOOOOOOOOOOOODOOLOOOCoOOOOOOOOOOT . OD [ TEN Y S YU TN VI WA THE V] SAFY G BT TNV 1N U TW) WAV TWUY S| WY W0 U} WS WLy W] W THS THwY W7 W) Rl RNTRETRV TSR TR TR LA el e Ll Lt e g RTTNNRRNTTTTNNRRTTNNRRTNRTNARTNRTTNNRRTNR‘TNNRRNN.’N&R [[[[[ [F;[[[ [[[[[[ [[[[[[ [[[[[[ [[[[[[ [[[[E[ [[[[[C [[[[[[ ot 8 1t gt S et g St B (Bl B ot Ot St (e S W S St S p S ot Py B Sy e Pt Bmp ot g g g g Ot g et B et ey e g ey o g g et e =y J]J]J]JJ]JJJJJJJ]]JJ]JJJJJJ]]JJJJJJJJJ]]]JJ]JJ]JJ]]J -3[& R]P Mo > N~FrO w0 — Integer, Logical, & Address N e O O~ = — £ - opry=<a O ] { [=% Integer, Logical, & Address 3 Page 258’ 160ns “T -L > — o pod -~ 4 [+ o — O Mo M) (V][e o) z o = (2] My 1Mo MICRO2 CMT098.MCX INTLOG.MIC . a2 o (MT098, INTLO — 03¢ 084: 085: 0c4 0C5 0A4 1M(01) 28-N0OV-83 Integer, Logical, & Address 16:30:35 L o L L L Lo L,Lo L L,Lo Lo, e,Le L Lo s L L L L Lo L eL v o ,Lo L Lo L L Do SmeLo L L L Lo U L L Lo 5 6 7 8 9 0 MICRO2 :10616 .BIN B 5 CLOKX Rev 13.00, Dsize Rom Definition Clock rate = 160ns ; : CMTO98.M§§ INTLOG.M MICRO2 1M(01) 28-NOV-83 Integer, Logical, & Address 10616; C 5 16:30:35 CLOKX Rev 13,00, Clock rate = ¢ Dsize Rom Definition This page intentionally left blank., Page 2603 110620 ;10621 : 10622 .NOBIN (100 ;10623 ;26 110626, 25 210625 10626 110627 10628 ; 24 ;10629 :10630 ; 23 10633 ;10634 22 0% :10632 ;10635 ;10636 ;10637 ;10638 ;10639 ¢ ; ;10640 110641 ;10642 ;10643 210646 010645 210646 ; 21 ; 20 FLOAT.MIC 28-NOV-83 16:30:35 $10650 ;19 D LOKX Rev 13.00, Clock rate = 160ns ;10617 ,T0C "'FLOAT.MIC' ;10618 .70C 'Revision 26.0" . :10619 ; Gerard Koeckhoven, Audrey Reith Revision History" Fix FPA interface for ungackiq short Lliteral . POLYF and POLYD have problem ii 1st coefficient or any gart product is 0 because the result of the multiply step did not clear the wqu1ng exp Fix a POLYD fieltd . probiem negative part product underflowed and next coefficient is 0 ) Fix a POLYD problem that causes the VA to be incorrect, when the arg =0, and the degree not_equal to_zero and dq1n? a read with FPD set. Recover locations 232 and 233 for use in JANDE.MIC . Assign permanent addresses to free locations (where possible) Use locations 232 and 233 for a fix in IANDE but leave them in FLOAT. Fix a ADDD,SUBD,EMODD groblem, when doing any of these instructions and the high order number is zero betore the normalization then the 9 high order bits of the low order longword will be missing. Fix a POLYD and POLYF problem , which causes the fraction part of the result to be unpredictable when: a - the product step with exp(biased) = 0 and b - the fraction is between 1/4 and 1/2 and . ¢ - the coefticient exponent (biased) > 31 Fix EMODD creating dirty zero if extreme overflow. Add some labels for G and H, FIX FOLYD ACCURACY AND DIRTY ZERO BUGS. CHANGE CRC TO CLEAR PSL<(>. Fix setting of CC in FI.POLYFD, Add branch on regmode to F1.EMODD. Fix FPA interface for POLYF and POLYD. 210648 10649 :10653 1M(O1) CHANGE TO ACBF AND ACBD FOR G AND H FLOAT TO SHARE, Fix had Litrl in POLYF and POLYD FPA interface. :10647 210651 10652 ! MICRO?2 oyt "MT098,MC FLOAT.M! [P : ; Fix Fix i 1.(MPD condition codes. size on FPA converts. Initial release. : 10654 .BIN Page 261 ; : CMT098.MCX MICROZ 1M(01) 23=NOV-83 16:30:35 :18222 .TOC ' CLOKX Rev 13.00, Clock rate = 160ns 1 MOVF Floating point and CRC FLOAT.MIC E 5 Page % 262| : MOVF" Floating point and CRC :-10657 ;tt***t**tt*t*t***tt****k*k****t**t*tk*****************k**********i********I** 110658 50 MOVF src.rf,dst.wf :10659 . 110660 ; Input (dst.wf in memory) 10664 ; Input (dst.wf in register) 110663 ; 110665 210666 ; 110667 ; . MDR src.rf dst.wf RNUM Operation: 110668 : 10669 ;}82;? R E}ga;% : . src.rf dst.wf Q VA ;10661 :10662 . . validate floating point operand (not reserved) Write to the dst.wf and set condition codes xxxraa kx4 xNOT AN FPA INSTRUCTION®*dwkkatoks :-102?4 :'i****'(**t****ttt**t**t****t***********k*t*******t*****i**k******************* :10675 ;10676 REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H ;10677 U 030D, 0480,003A,4030,8467,0031,1 210678 ;}8258 FP.MOVF .MEM: MDR_Q,NEXT/FP.MOVF.REG 310681 FP.MOVF .REG: 110682 U 0311, 0481,2437,0AB0,0047,084F,C 323« ;10683 ;}823? 3 R Tttt bt : Je me ; 2Rk e em s s e e ————————— : WB_EXP(MCMDRY), AR IOR Rk N K KKK Kk GET FP VALUE TO MBUS SOURCE ROk ROk Rk Rk kR kK ; EXPONENT TEST FOR FRO.FLTZ2? : >,<,=0,RESERVED ;}82%9 .SBGION/FLDAT.R1L.FLOAT.R1H/FLOAT.R2L,FLOAT.R?H/FLOAT.R3L,FLOAT.R3H . U 04FC, 0080,0036,4030,0047,00FF,8 10688 ;}8288 110691 U Q4FD, 0C85,2592,412(C,55DA,003F,9 RLDST.RI_MCMDR] ;}823? CCoP2,IRD1 :10693 ; e L L L E R : SRC <0 WRITE ‘NOTREG, SIZECLONG], ;10=mmmm ; WRITE TO MEMORY OR REGISTER : SET CONDITION CODES ; END OF INSTRUCTION e mmm e e e me e ; SRC=0 210697 RCDST.R1_O, ; BE SURE IS CLEAN ZERO ;%8983 CCoP2,1RD1Y s END OF INSTRUCTION 110698 110701 U 04FF, 0(85,2592,412(,55DA,003F,9 D ;10692 10696 U O4FE, 0€84,0587,012C,55DA,003F,9 $00=mmmmmmmmmmmmmmmeem—e——————— ; RESERVED OPERAND NEXT/IE.OPER.FAULT WRITE NOTREG,SIZELLONG], ;1]mmmmmmm et 210702 RCDST.R]I_MLMDR] : 10704 CCOP2,1RD1 10703 s WRITE IT e em e ; SRC > 0 WRITE NOTREG,SIfE[LONGJ. ; WRITE VALUE s SET CONDITION CODES :+ END OF INSTRUCTION [ ; H CMT098.M§§ FLOAT .M 16:30&830 1M01) 28-NOV-83 Floating point and CRC MICRO2 ;%8;82 .T0C ' 21070? SRR :10708 ; 210709 ; 210710 ; ;10711 F 5 Floating point and CRC KRR R kR R A RSk ok R 70 ;10712 ;107213 ; 10714 210715 10716 2107217 ;10718 10719 ; : MOovD'! kIR IR kA MOVD src.rd,dst.wd Input (dst.wd in memory) Input (dst.wd in register) R KRR R R R kR Rk Rk ko Temp?l,Q . Operation: src.rd VA dst.wd Temgl,MDR RNU src.rd dst.wd ) Validate floating point operand (not reserved) :10720 ;}8;5; : 210723 ; Page CLOKX Rev 13.00, Clock rate = 160ns Wwrite to dst.wd and set condition codes whenxnkxexkNOT AN FPA INSTRUCTJONA k¥ hkshkkx :'10726 :'*t*ttfiktkk*t*t***ttkt**fi**ktt'«'(**t**i*fi****t*fi**flttt******t****t*\k********t** 210727 210728 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H 210729 110730 FP.MOVD.MEM: FP,MNEGD,MEM: 10731 U 0315, 0080,003A,467D,8467,0006,0 O ORKRREARR KR I KRN AR KN S oRRRRA RN AR R AN RN AK it L L LU DL L———m——— 210732 MDR_Q, 1R<2-0>? ,NEXT/FP . MOVD.REG :}8;%2 ;10735 =000 10736 110737 210738 U 0060, 0048,1437,0ABC,0047,0850,0 323+ FP,MOVD,.REG: D SET WRITE(FLAGY), FRO.FLTZ? ,NEXT/FP,MOVD.10 210742 =010 210743 210744 210745 110746 U 0062, 0048,1437,0A80,0047,005°,C 323+ U 0063, 0064,1592,403C,4DDA,0056,F : 10747 : WAS IT MOVD OR MNEGD 1000~=mmmmmm e —— -H WB_EXP(MLTEMP1]), ; 210739 ;10740 ;10741 ; MOVE BITS32-63 OF OPERAND BACK TO MDR FP,MNEGD ,REG: 1010mmmmmem e WB_EXP(MLTEMP1]), e SEY WRITE(FLAG1), FROFLTZ?,PUSH : ;O e —— : : TEST OPERAND FOR >,<,= 0,RESERVED : 210750 210751 ;01 emcmmmommum oo neees : R{DST.R] _MCTEMP1], ; :}8;2% NEXT/FP.WRITE.SEC CCOP1,SET MM.NOINT, WRITE NOTREG,SIZELIDEPI, ORRKRRRKR AR KRR RAKK ; SET FLAG! FOR LATER WRITE TEST NEXT/FP.MNEGD. 10 210752 ;10753 TEST OPERAND FOR >,<,= O,RESERVED ; SET FLAG 1 FOR LATER WRITE TEST 110748 10749 ORRRKRAKARKRRNKK AR KRN K : FIRST WORD WRITTEN QUT ; CONCITION CODES NO INTERRUPTS ¢ WRITE 1T oUuT : JOIN COMMON FLOWS 263| : CMT098.MCX FLOAT M1 MICROZ 1M(Q1) 16:30&330 ZBE?OV-83 Floating point and C CLOKX Rev 13.00, Clock rate = 160ns 1 H 6 5 :}8;29 JREGION/FLOAT,R1L,FLOAT ,RIH/FLOAT ,R2L,FLOAT ,R2H/FLOAT .R3L ,FLOAT .R3H 10758 FP.MOVD.10; U 0500, 0C80,0036,4030,0047,00+F,8 110759 :}8;2? $10762 RCDST.RI_MLTEMP1" 110765 110766 WRITE ‘NOTREG,SIce(IDEP], SET MM.NOINT, 110769 P U 0502, 0884,0587,0030,44E7,9050,3 ;}8525 :}8;;? 110772 ) U 0503, 0064,1592,403C,55DA,0056,F 110773 110774 $10775 110776 110777 : RESERVED OPERAND ;0] mmmmmmmmmm—————vmeamm e e : SRC < 0 110763 110764 U 0501, 0064,1592,403C,55DA,0056,F B T NEXT/1E.OPER,FAULT ccop2, ) NEXT/FP.WRITE.SEC RCTEMP11_0,MDR_O T L Y WRITE FIRST PART OF SRC ¢ SET CONDITION CODES : * NO INTERRRUPTS BETWEEN WRITES * CONTINUE WITH SECOND HALF OF SRC R LR L : SRC = 0 ¢ BE SURE CLEAN ZERO BOTH e e e L SR ; SRC >0 RIDST.RI_MLTEMP1], cCoP2, WRITE "NOTREG,SIZELIDEP], SET MM.NOINT, NEXT/FP.WRITE.SEC * WRITE FIRST PART OF SRC * SET CONDITION CODES ; * NO INTERRUPTS BETWEEN WRITES ; CONTINUE WRITE N Page 264; : : CMTO98.MCX FLOAT.HIC MICROZ2 1M(O1) 16:30:35 28-NOV=-83 t MNEGF floating point and CRC ;%8;;3 .T0C ' H § CLOKX Rev 13.00, Ctock rate = 160ns Floating point and CRC 1 MNEGF'' RHERAXRATRTRRKR TR AR R KRRk Rk kKb 310780 SRRRRRRAHRR AR R AR AR HRR R AN R RAA R IRRE AR ;10781 ¢ 210782 ;10783 . 210784 ; ;10785 52 210786 ; 210787 ; .10788 ; 210789 . ;10790 ; ;10791 210792 Page ; MNEGF src.rf,dst.wf Input (dst.wf in memory) Q Input (dst.wf in register) MDR 210794 :10795 ¢ src.rf VA Operation: ;107293 dst.wf RNUM src.rt dst.wf . validate floating point operand (not reserved) Invert sz%q bit, Write to dst.wf ;}8;39 ; ;}8;88 ; , Set condition codes whannnw e v wNOT AN FPA INSTRUCTION® ®anhddhik }10800 Ettttttttttttktt*twttn'ttttttttttttttwtttntt*wtwt*kttt*iw*t*k***i************* $10801 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H Y 031D, 0CB0,0034,403D,8467,0032,5 SRR ;10802 FP,MNEGF .MEM: ;10803 (emmm———— e eemmcmenesen——————— : ;}8282 MDR_Q 110806 FP.MNEGF .REG: U 0325, 0C81,2437,0A80,0047,0850,C 323+ 210807 :;8388 et AR R RRRR KRR KRR ; GET SRC TO AN MBUS KRR RN X D RERRRRRERKRK tattededetalnintainleied : WB_EXP(MLMDR]1) ,FRO.FLTZ? ; TEST FOR VALIDITY OF OPERAND ;}83%? .85610N/FLOAT.R1L.FLOAT.R1H/FLOAT.R2L.FLOAT.RZH/FLOAT.RSL,FLOAT.RSH U 050C, 0C80.0036,4030,0047,00FF,8 110812 ;}83}2 10815 U 050D, 0581,2D53,4030,4467,004F A ;10816 ;}83}; 110819 . U 050E, 0C84,0587,012C,4DDA,003F,9 U 050F, 0581,2053,4030,4467,004F A :00=mmsmmmsmamammmamensm——————— ; RESERVED OPERAND NEXT/IE.OPER,FAULT ;0] =mmmmmmenm—nmee—cceaemom———— ; SRC < 0 MDR_MLMDR].XOR,ZL1IT12(8], NEXT/FP . MNEGF .15 ¢ INVERT THE SIGN BIT : JOIN COMMON WRITE ;10mmmmmmmmnm———————e e emem-==; SRC = 0 ;10820 RLDST.R]_O, ;s BE SURE ;}885% CLOP1, IRDY s END OF INSTRUCTION 210821 }10324 :}8332 WRITE NOTREG,SIZELLONG], [TS CLEAN ZERO ; WRITE OUT CLEAN ZERO ;1]mmmmmm e ————m e ceaaee~==; SRC >0 MDR_MIMDRI.XOR,Z2L1T12(8] o INVERT THE SIGN BIT 110827 FP.MNEGF.15: U O4FA, 0C85,2592,412(C,4DDA,003F,9 10828 ;10829 umeemsasssss s nesneL L s e —— ; RCDST.R)_M{MDR] s 210831 CCOPT,IRDY $10830 WRITE NOYREG,SIZELLONG], : SET CONDITION CODES ; END OF INSTRUCTION 265 ; H CM1798.MCX FLOAT MIC MICROZ 16:30:35 28-NOV=83 1M(QD) L LA PR TR T 10834 Floating point and CRC ‘ Page 266 CLOKX Rev 13.00, Clock rate = 160ns : MNEGD floating point and (RC }82%; .T0C ' 15 i t MNEGD' ;ttttt*tt***tt*****t«fit***********t***t*t******t******fi***ti*k***tit*tt***t*t* 10835 ; AT 10836 10837 10838 10839 : ; ; ; 72 10840 ; 0841 ; src.rd,dst.wd xInput (dst.wd in memory) *Input (dst.wd in register) . P ] MNEGD , e e R R I R T 1 0842 1 0843 1 0844 1 0845 1 08»’0(‘ ) 0847 1 0848 ; . ; ; . ; T T T T 0853 0854 g ; 0855 0856 1 0857 0858 U 052C, 0C80,0036,4030,0047,00FF,8 . u 052D, 0586,1053%,4080,4047,0000,1 U 052€, 0C4C,0587,0080,44€7,0000,1 U 052F, 0586,1D53,4080,4047,0000,1 S 1 g ; ; ; ; ; Temfl1,MDR RNU src.rd dst.wd , validate floating point operand (not reserved) Invert sign bit L Wwrite to det.wd and set condition codes 882; : 108 } g . sr¢c.rd dst.wd . Operation: e e 1 0849 1 0850 ; ; Templ,Q VA kikkkih ke kkNOT AN FPA INSTRUCTION®®xwwmwwwx * Entry on page with MOVD instruction :ttktt**tttt**'«tttttktkt***ttk**t*k*k*************i*fi**t**t**ti**tt*i**itti**t 10859 10860 =00 10861 FX.MNEGGH.10: 10862 FP.MNEGD.10: 10863 100 ; USED FOR GH HOOK ALSC mr v n et m e e ————— ; NEXT/I1E.OPER.FAULT 10866 10867 D sttt satnndatalalaiededel s SRC <0 MCTEMP1] _MB.XOR.ZLIT12(81, ; INVERT THE SIGN BIT RETURN [#1] : %8323 H RESERVED OPERAND %8322 %83;9 FX.MNEGGH, 20: : 10872 RLTEMP1]_O, : BE SURE ITS TWO CLEAN WORDS OF 2ERO RETURN [+1) ; BEING DONE FOR OTHER CODE 10873 10874 }83;2 10877 10878 10879 MDR_O, SET WRITE(FLAGY), (Memcme s ; SEEC{Ab ENTRY G,H CLEAN UP SECOND WORD FLAG ALREADY SET FOR MNEGD ! e c e m vt : SRC >0 MUTEMP1]_MB.XOR.Z2LIT12[81], RETURN [*#1] s INVERT THE SIGN BIT H N TImT e WmES e | @ 4w e e u s meis o e - - 1 ; : MICROZ CMT098.MCX : TSTF & TSTD Floating point and CRC FLOAT MIC CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 28-NOV=83 1M1 Floating point and CRC :}8339 LT0C ' Page 267 : TSTF & TSTD" 310882 ;tttt*t*x*t***tt**t*tt****t*t**tt***t*****t*t*k***fi********k**t****k********ti ;10883 ; ;10884 ; ;10885 ; 210886 ; 53 210887 ;10888 ; ;10889 .10890 ;10891 :10892 ;10893 ; . ; ; ; 10895 10896 10897 10898 ; . . ; 10894 TSTF src.rf Input 73 TSTD Input src.rd . Validate floating point operand (not reserved) O (=1 Set condition code weennxex s aNOT 10905 Temp!,MDR . Operation: 10900 ; 18984 TR srcorf src.rd 10899 ; 10903 MDR FPA INSTRUCTIONS*#hhannnwn R AR R AR A AR AR ROR AR AR R R AR H IR AR KRR RRRRARR N 10906 .REGION/IRDX.RIL,IRDX,RTH/IRDX,R2L, IRDX.R2H 10907 FR,TSTF: ) 10908 . 10909 J 0329, 0481,2437,0AB0,0047,0856,4 323+ }83;9 |091é FP.TSTD: 10513 J 032D, 008U, 1437,0A80,0047,0856,4 323 ;10914 ;KR iV O aiabateinteletedte dedet bl H WB_EXP(MLMDR]), FROLFLTZ?,NEXT/FP.TSTF.10 . U 0565, 0580,0037,0130,40A7,003F,9 J 0567, 0180,0037,0130,00A7,003F,9 ; LOOK FOR RESERVED OPERAND KRR RARAR JOERAARN s TLST OPERAND FOR VALIDITY l ;%8g}§ .?SGJON/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L.FLOAT.RZH/FLUAT.RSL.FLOAT.R3H ! ;}83}2 . 210921 ;}835% 110904 210925 :}8359 110998 U 0566, 0980,0037,0130,20A7,003F,9 TEST QPERAND FOR VALIDITY Jemmemsmmeo mmmsms e ancc e ———— H WB_EXP(MLTEMP1]), FRILFLTZ? NEXT/FP.TSTI.T0 H =(} ;10919 FX,TSTGH,10: 210920 FP.TSTF.10: J 0564, 0080,0036,4030,0047,00FF,8 ; KR ARRAARRRRKRKAR YD ; SET CONDITION CODES : END OF INSTRUCTION | | ' ! | ; ;107 mcmmmmmmmmene et cwes; SRC = : IRD1 i 110932 1l mmm e :10933 : EEEEE LRSS : SRC < 0 IRD1 (¢ 201100470, :10934 HOOK FOR G AND H uitntlatitedbdinte et ; RESERVED OPLRAND NEXT/IE.OPER.FAULT :10929 :}88%? ; e cc_zuitoral, : LOOK FOR RESERVED OPERAND ce_Zzulvocol, IRD1 s SET CONDITION CODES . END OF INSTRUCTION e e : SRC > 0 ; SET CONDITION CODES : ' H (MT098.MCX FLOAT . MIC MICROZ 1M(Q1) fFloating point and 16:30éggF 2gE?ov-83 :}83%2 LT0C '' K 5 Page CLOKX Rev 13.00, Clock rate = 160ns ¢ CMPF" Floating point and CRC 310937 ;*t*ttt*****t*****w***k***fi***ttkt**tfl**tw*t***********t*t*********t**ttt**tt* 210938 ; 110939 ; ;10940 ; :10941 210942 ; 51 CMPF srctl.rf,srcd.rt ;10943 ; ;10944 Input 10947 ; Resources 210945 ; ;10946 ; :10948 ; Q MDR Temp2 Fla?O 210949 ; 210950 (SIGN(FLAGO)) ;10951 ; ;10952 . 210953 ; srcl.rf sr¢l.rf srcl from Q sign of srce Operation: ;10954 ; ;10955 . Validate src?2 (not reserved operand) set sign flag Get srcl to an Mbus source ;}88;9 ; Validate src¢l (not reserved operand) 110958 - If sprcl - srce-srcl using ccopl 10961 ;}832% : It srcl srcl=srcd using ccopl if src2 NEG then must clear both N and Z 110964 ; 1f sre1 0 110967 ; wakkwknkwsFPA ENTRY AND INTERFACExwvwrxaxxx ;10959 210960 ; ;}8322 ; ;}8328 ; + if srcé NOT neg then set N O-sr¢2 using.cqop1 . setting condition codes on basis of src2 (OS.RED) - FI.CMPF.REG/F].CMPF . MEM }10970 ;itt*ttt*ttttttt*tttkt*kt*tt****tt*tt*t**tttt*tt****t*t*****ik*ttti***tfi***t** 210971 :}83;% .SEGION/IRDX.R1L.IRDX.R1H/IRDX.R2L,lRDX.R?H ;10974 EP_CMPF; u 00A6, 0081,2437,0AB0,0047,0057,0 323« 210975 10976 e et L DL L L LI C DLDL ; WB_EXP(MIMDR)), ; :}83;8 NEXT/FP. CHPF.10 ;10977 10980 . U 00A7, 0880,2437,0A80,0047,0857,4 323+ SR KRARRRANN KA KNk kR 210981 ;10682 ;10983 FRO.FLTZ?,PUSH B R : ; PROCESS AS A SUBROUTINE e EEELTE S L LR : WB_EXP(MITEMP2]), FRO.FLT2?, NEXT/FP.CMPF,30 CHECK SRC2 FIRST FOR VALIDITY ; ; : CHECK VALIDITY OF SRC1 ; ; MICROZ2 CMTO98 . MCX 1M(Q1) 16:30éagF 28-NOV-83 Floating point and CRC FLOAT MIC LS CLOKX Rev 13.00, Clock rate = 160ns o Page 269| ; ;10984 .GSGION/FLOAT.R1L,FLOAT.RlH/FLOAT.RZL,FLOAT.R?H/FLOAT.R3L,FLOAT.R3H . 10: 10986 FP,CMPF u 0570, 0C80,0036,4030,0047,00FF,8 110987 ;10988 10990 U 0571, 0C46,203A,40BD,8047,0000,1 10991 10992 :10994 U 0572, 0486,203A,408D,84E7,0000,1 10995 1099 :00==mmmmmmmmmmmoccmeoccncn e : RESERVED OPERAND SRC2 NEXT/1E.OPER.FAULT : ;0] emmmmmmmmo e «==; SRC2 < 0 MCTEMP2D Q : COPY SRC1 INTO TEMP2 SET SIGNTFLAGO) ,RETURN [+1] : SET SIGN FLAG FOR ANSWER ;10 =m=mmmommmmemeeccmemcanan : SRC2 = 0 MCTEMP2] 0 i MDR O,RETURN [+1] 111000 U 0573, 0C86,203A,408D,8047,0000,1 11001 11002 INTO TEMP2 i COMPARISON AGAINST CLEAN ZERO 110998 FX.MT20: ;10999 FP,MT2Q: COPY SRC1 | ; USED BY G H FLOAT D ; e EE L SR : SRC2 >0 MCTEMP2] .Q, ; COPY SRC1 INTO TEMP2 RETURN [¥1] ; 111004 =00 $11005 FP,CMPF.30: U 0574, 0080,0036,4030,0047,00FF,8 111006 11007 111009 _ U 0575, 0881,2000,0420,9047,0055,8 W8 _MLMDRJ-RLTEMP2], : SRC2-SRC1 l :1101¢ SIGN(FLAGO)? ,NEXT/FP.CMPF,50 : WAS SRC2 NEGATIVE ; 111011 111015 11016 111018 u 0577, 0881,2003,0420,9047,0050,4 U 0504, 0080,0036,4130,0047,003F,9 U 0505, 0180,0C37,0130,00A7,003F,9 $01mmmmmmmmmm oo e e : SRC1 < 0 :11010 111014 U 0576, 0481,2003,012D,8847,003F,9 ; 00=mmmmmmmmmn e a s ann mmmemmecen ; RESERVED OPERAND SRCI : NEXT/IE.OPER.FAULT (COP2,SIZECLONG], : SET CONDITION CODES $10mmmmmmmmmmmmmmmemmseesnman : SRC1 = 0 WB_R[ZEROJ-MCMDR],SIZECLONG], CCOPT, IRDI : SRCT IS 0 : SET CONDITION CODES ON SRC2 ;11mmmmmmeamamac o e mcmm e ; SRCY > 0 111019 W8 _RLTEMP2]~MIMDR], : 11021 SIGN(FLAGO)? NEXT/FP.CMPF,40 : WAS SRC2 NEGATIVE 111020 $11023 =0 (COP2,SIZELLONG], : SRC1-SRC2 SET CONDITION CODES HERE 111024 FP,CMPF,40: 111025 ;0o mmmmm e ; SRCT B SRC2 ARE POSITLY 11026 111028 11029 t iRrD1 : CONDITION CODES SET CORRECTLY ;lem==s=sscmmssscecememcecmennes ; SRC1 +, SRC2 ‘e _2L1TOC01,IRD1T : CLEARN & 2 1 ; | 111031 =0 111032 FP,CMPF,50: J 0558, 0580,0€37,0130,40A7,003F,9 U 0559, 0080,0036,413C,0047,003F,9 111033 e 11036 P 1103 11037 SR ¢C_20 17008, IRD EEE L L Lt : LU U EEE R ERLLL R iRDY SRC1 =, SRC2 + : SET N ~=-=; SRC1 =, SRC2 - : CC SET'CORRECTLY END INSTRUCTION . 16:30éago 2 e ¢ CMPD'! 1 2222122223323 232222 222220222200ttt isiissstiiss il PR T PR P LR TN b e 71 CMPD sr¢l.rd,srcé.rd Input Templ (bits 0-31) MDR (bits 32-63) srcl.rd Resources Temp2 srctl.rd Temp1 MDR srcé.rd Flag0 sign of srcl 0S.DRED get second operand Temp3 TR TR TR TR TR PR P PN P P PR LA R TR TR LR SR (SIGN(FLAGO)) T P N L Subroutines: O Cperation: T N Validate srcl (not reserved gperand) and move bits 0-31 to Temp2 and bits 32-63 to Temp3 N Get src2 in Templ and MDR Validate src2 (not reserved operand) P It src2 + srcl-src2 (bits 0-31) using ccop? it src) neg then set N it both positive and equal must check second half by rotating each operand and setting condition codes using ccop! 1f srce -~ reverse the above operation If src2 0 rhen O-src2 (bits 0-31) using ccop? axkkkxkk 4 FPA ENTRY O ML -~ 4R e P PR TR T T S O T Page CLOKX Rev 13.00, Clock rate = 160ns Floating point and CRC b b D b aad b md d b e PR I S U U o O NT b ek ead b b b D D b D U QU QU QU SR QU I G W I OUIP QP s b b i eh ek b md b b od 3 b d e D b mmd o M5 .T0C *' R AR TR PR TS PR PR T LR L L ket D D wed wd D d D B Lol[atelelelelelele] ODODOOOVOVOCOOOTOOOOOO [elelelalolelolelelelelelolalelelolele A AT NN NI DS I IS S S I N I IS DN 00 COCDO0COCOCOWD NN NNNNNNNOONO OO AW NN TSNS == OO0 N NI ANN =2 OO0 N C NI AN = OO0 OV NS NN = O D00 NN NS AT =2 OO 00 floating point and CRC e FLOAT,MIC S : CMT098.MCX 28 aNOV-83 1M(Q1) e S : MICROZ (OS.FIDREDY 232230 2 2SS S22 S AND set condition codes on the basis of srcl INTERFACExwaxy snnxx - F1.CMPD.REG/FI.CMPF . MEM RS RlaRR it RR ARttt ARl ARl 270 oo : : — MCX CMT0.98 FLOAT (MI( 16:30:35 MICROZ 1MCQ1) 28-NOV=-83 ) Floating point and CTRC : N 5 CLOKX Rev 13.00, CMPD Clock rate = 160ns Page | N o - S 8 T e S - 4 WB_EXP(MLTEMP1D), 8 Y O . . FRO.FLTZ? N WA S OO EARNRN X TRARANANA AR AL ' CHECK SRC1 FOR VALIDITY .SBGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L,FLOAT.RZH/FLOAT.R3L,FLOAT.R3H - - - e " o A e e e ; RESERVED OPERAND 0]=mmmsmmmmmmc e ————— ; SRC1 < 0 SET SIGNTFLAGY), SET SIGN FLAG FOR ANSWER RETEMP2] _MLTEMP1], ; MOVE BITS 0-31 NEXT/FP,CMPD,10 : A WM S OO NN W — = 3 2 2 2 S s OO OO OO QOO O VOV VOO OOV O e AN = O OB NN NN RO A AU PO NURU PO NN D =D GO NN YO NN i NN AN A N L T ) — b D ed et D md [elelelelwlele L] b e D 3 b ek e 3 e s b b b o) b b ah h b — D b D eh ad b oD oD oD b ek B b ad D b b mb b D ik b bk ad b b b b ek o b > B b b b b b ~—~C a2 057F, (C80,2000,1430,5047,0064,0 .~ U 0S7¢, 0480,2000,013D,7047,003F,9 b e 0480,1000,1430,9047,0065,¢ w. U 057D, b u 057¢, 0082,0036,6030,0047,00FF,8 323 T A U 0335, £080,1437,0A80,0047,0857,¢ T 0085,¢387,0190,0047,0018,0 Newa . J 0513, e T T P P D u 0578, 0(B4,1592,4030,8047,0051,3 2£ u 0574, 0084 ,0587,0030,84E7,0051,3 D D 0064,1592,4030,8047,0051,3 b e e e R iy 0579, P P N T [ U 0578, 0080,0036,4030,0047,00FF,8 D TR T . T v 0331, 0880,1437,0AB0,0047,0857,8 323% D e ¢ 090 FP,CHPD: b oD e . b D . . O QU PP G U QU S I QDI QU QUIr QU I SESR P e R B e d ;11089 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.ReH ’ RCTEMP2]_0.MDR O, e e e e e e 4 SRC1 = 0 ; ZERO OUT BOTH PARTS OF OPERAND NEXT/FP,TMPD, 10 e 10 TEMP2 At g 4 N ; SRCY > 0 ; MOVE BITS 0=31 TO TEMP? FP.CMPD.10: ROTEMP3] MIMDRI.RR.16, LOD INC BRA?, ; SAVE SECOND HALF OF SRC1 ROTATED : GET SRC2 ; NEXT/CS.DREL RETURN IS THROUGH [RDROM FP.CMPD.20 .REGION/IRDX.RI1L,1RDX,R1H/IRDX.R2L, IRDX. R2H FP.CMPD.20: WB_EXP(MLTEMP1D), FRO.FLTZ? ; ENTRY FROM [RDROM ; CHECK SRCc FOR VALIDITY .86610N/FLOAT.R1L,FLDAT.R1H/FLOAT.R2L,FZ OAT.R2H/FLOAT.R3L ,FLOAT.R3H ----------------------------- NEXT/IE.OPER.FAULT T EP], 4 MLTEMP2]-RLZEPO],SIZELIDEP], P2, 1RD1 SRC2 < 0 SRC2=SRC1 ; ; ;s ; SET CONDITION CODES WAS SRC1 NEGATIVE ; SRC2 = 0 ; GO FINISH THE COMPARISON * USE SRCT AS THE COMPARISON VALUE ; SET CONDITION CODES : SR(2 > 0 ; s SRC1~SRC2 SET CONDITION CODES : WAS SRC1 NEGATIVE 271. CMT09B.MCX FLOAT MIC MICRO2 1M(01) 28-N0v-83 16:30:35 t CMPD Floating point and CRC B 6 Page CLOKX Rev 13.00, Clock rate = 160ns (11142 =0 211143 FPL.CMPD,30: 0640, 0080,003A,5A3D,8047,0067,4 0641, 0580,037,0130,40A7,003F,9 J111464 11145 ;}%}29 0 ------------------------------ ; BOTH SRC1& SRC2 POSITIVE Q IS ZERO? ; ARE THEY EQUAL IN THE FIRST PART NEXT/FP.CMPD.50 ; FINISH UP 11148 lemecmcncs v v dnna—e. wmeawmmwa: SRCT =, SRC2 + ;%}}gg CC ZLITO[8],1kD1 211151 =0 11152 FP.CMPD.40: 065¢C, 0180,0C37,0130,00A7,003F,9 065D, 0880,003A,5A3D,8047,0067,6 $11153 R s REVERSE THE CONDITION CODES Tl Sttt N L T ; SRC1 +,SRC2- :%}}gg cc ZLITO[OJ JRD1 11156 211157 (lememmmce e a—— eme———— wenmmew: SRCT1 ~,SRC2 0 1S ZERO?, ; ARE THE FIRST PARTS EQUAL :}}%gg . REVERSE CONDITION CODE SETTING NEXT/FP,CMPD.60 ; FINISH UP 211160 =0 211161 0675, 0C81,2387,0010,0467,0051,6 ;}}}69 N TR A N 0676, 0080,0036,4130,0047,003F,9 e il Dol b ; FIRST PARTS OF SRC1 & SRCZ NOT EQUAL IRD1 ; END OF INSTRUCTION {]mmmemmccsessceceme—cemea. ~==; FIRST PARTS WERE EQUAL MDR _MCMDRI.RR.16 ----------------- o oy ; ROTATE SECOND PART OF SRC2 . 9 ey e W8_RCTEMP31-M[MDR1,SIZECIDEP], cchP1, IRDY 1172 FP.CMPD, 60: 11173 11174 11175 11176 117zz S 0677, 0481,2387,0010,0467,0051,8 0518, 0081,2000,0130,(847,003F,9 6 ;11168 211169 11170 N =0 T 0516, 0081,2003%,0130,C847,003F,9 FPLCMPD,50: 111165 TR 0674, 0080,0036,4130,0047,003F,9 ;11162 ;}}}gz 11178 11179 11180 11181 SRC1=SR(2 H DO THE COMPARISON FIRST PARTS OF SRC1 & SRC2 NOT EQUAL iRD1 ; END OF INSTRUCTION MDR_MCMDRI.RR.16 : ROTATE SECOND PART OF SRC2 UB_MIMDRI-RCTEMP3],S1ZELIDEP], SRC2-SRC1 CCOP1,1RD FIRST PARTS WERE EQUAL :' SET CONDITION CODES 272 16:30:35 28-NOV=83 1M(Q1) ¢ Floating point and CRC Page CLOKX Rev 13.00, Clock rate = 160ns : CVTFD" ;t**t*tt*t*k*t*t**t**tk******t*t**t\'fit************************i*****i********i ; 56 CVIFD src.rf,dst.wd ; Input ; Resources : : : MDR src.rf Temp? bits 0-31 Temp3/MDR Q Flag? (WRITE(FLAGY)) RS ) — 6 Floating point and CRC Subroutine: R T P PR TR P AN~ OO 00 NO N S CVTFD . bits 32-63 (0) to hold operand for writing for writing bits 32-63 0S.WRT1 get dst.wd FP.WRITE,SEC to write second half of Exit dst.wd Operation: I PO CONON NS ANNG = OO0 NON N c Validate floating goint operand (not reserved) It register mode then write out bits 0-31 T T 190 19 19 19 19 .T0C ' Temp? set flag to write from MDR and exit to FP,WRITE,SEC from It not reg1ster mode clear flag and set Temp3 to 0 Call 0S.WRT1 R 182 183 184 185 186 187 188 189 NUNLNLND NN RN N PON NV ALNLPVTVNINOND —3 = o P P 2 2 S OO0V OOOOO VLT OO0 FLOAT MIC MICROZ A A I A R T TS P IR ITRTE TE TR PR PR PR PR TR PR T QY P U QU QU QT QU WIS QU T WIS QT QT QU Wi U RNEPREPRL I B 4 ) LU U QU QI G QI QU U QI e S QISR T SR e (MTO98.MCX e U P . . xxknaxxwntxFPA exit ENTRY to get dst.wd and return to to FP.WRITE.SEC AND INTERFACEXx®kukkhwkn (OS.RED) - FI.ADDD3.MEM R R R kR A kR kAR RAR AR AR R AR AR AR AR R AR A AR R kR Ak kR R AR Rk ARk ARk Ak kR 273 i U 00AD, 0064,2592,403C,4DDA,0056,F N CLOKX Rev 13,00, Clock rate = 160ns FP,CVTFD: 30 P ORERRARAAKKKAREE KA A K S12ECLONG], Q_ZEXT(MB) WB_EXP(MLMDR]) SET WRITE(FLAG1 : NULLIFY THE ZEXT Y TEST VALIDITY OF SRC * SET FLAG! FOR LATER WRITE TEST ¢ SAVING VALUE IN 0 FRO.FLTZ? LREGION/FLOAT.R1L,FLOAT.RTH/FLOAT.R2L ,FLOAT .R2H/FLOAY .R3L ,FLOAT .R3H =00 (00mmmmmtmnae - Y : RESERVED OPERAND NEXT/1E.OPER.FAULT : H ) Rttt aitatad mememne——— : SRC <0 MLTEMP2]_0,MDR_O, REG MODE? NEXT/FP.CVTFD.20 ¢ FIRST HALF 1~ TEMP2 ZERO SECOND HALF + WAS IT REGISTER MODE * FINISH UP ;10-sccesmmm e e e nmn e : RLTEMP21_0, MDR_O, ¢ REG MODE?, : : NEXT/EP.CVTFD.20 SRC =10 ZERO OUT OPLRAND WAS IT REGISTER MODE FINISH UP ;1 emcmmccann i cnmncna——————— w=w=: SRC > 0 MLTEMP2] 0, MDR_O. REG MODE? ? FIRST HALF TO TEMP2 ZERO SECOND HALF ; WAS 1T REGISTER MODE RCTEMP3] 0, L EL CLEAR WRITE(FLAG), : ZERO UUYT SECOND HALF * NOW WILL WRITE TEMP3 NOT MDR GET DST /NDRESS Y 55 56 FP.CVTFD.30: 57 {lmmmmmm——————maseam— e ———————— ; 58 RIDST.RI_MCTEMP2] + 59 WRITE NOTREG,SIZEEIDEP], : TD FP.CVTFD.30 ¢ 62 BRA ON ADD?, P ————— ; NOT REGISTER MODE ; gz Paye (111 ]=mmmemcccmnmcnccan e n————— : NN 2SO NN NN CVTFD 6 :fig?%ON/IRDX.R1L,IRDX.R1H/IRDX.R2L.IRDX.RZH WO NN AN AN N N N N N N PO PO PO PO ROV PU N NOND B B B : D 47 48 FP,CVTED.20: 49 B FORDAS AU AU RN U 00AC, 040C,0587,0630,C047,0014,0 i 16:30:35 NEXT/FP.CVTFD.20 FINISH UP 22 gEGION/IRDX.R1L,IRDX.RTH/IRDX.R2L, IRDX.R2H O U 0583, 0886,203A,493D,84E7,000A,C PN = OOV W G N U 0582, 0884,0587,0930,84E7,000A,C G S S S 0581, 0886,203A,4930,84E7,000A.,¢ R N N O O N R N e T N h ek e e b D d oD e e e oD mmd b o ed emh ed e mh e e D d b D e U 0580, 0c80,0036,4030,0047,00FF,8 e S e e RO AR RS AN N N3 NN AINUNIAIAININI RIND AL RN RNV NSO NS PINIPV NNV U 001F, 0049,241(,7AA0,0047,0858,0 323« OO 28-NOV-83 MICROZ 1M(01) Floating point an d CRC T (MT098.MCX FLOAT. MIC R PR TRPR PR PR PR TRTSR TRTR PR2 L S B d b 3 B e e e e d oD b e b e ek : ; NEXT/0S.WRT1 " RETURN IS THROUGH IRDROM REGISTER MODE WRITE OUT THE FIRST HALF SET MM.NOINT, ¢ NO INTERRUPTS ALLOWED NEXT/FP . WRITE.SEC ; ccort, ; SET CONDITION CODES 274 16:30:35 MICROZ 1MC01) 28-NOV-83 Floating point and CRC .T0C ' E 6 CLOKX Rev 13.00 , Ctock rate = 160ns Page : CVTBF CVTWF CVTBD (VTW D CVTLD & CVTLF : CVTBF CVTWF CVTBD CVTWD CVTLD & CVTLF" Floating point and CRC sttt 2121222382823 3032882320383323 2222333332333 2232323323333 a3 3332 4C ; H H : src.rb,dst.wf CVIWD src.rw,dst.wd CVTWF CvIBD 6E CVTILD 6D : CVIBF 4D 6C ; ; src.ri,dst.wd MDR sre.rx Temp2 Temp5 FlagO src fraction being formed exponent sign of operand Flagl write out flag : 0S.WRT1 to get dst.wx FP.PACK.T2TS to pack write out operand (WRITE(FLAGT)) H : H Subroutines: ; Exit: H . ; Operation: . . ] (SIGN(FLAGD)) ; H ittt d) src.rw,dst.wt src.rb,dst.wd Input: Resources: : H : ) FP,WRITE,FIRST . to write out zero answer . . . Sign extend src accordlnfl to inst:ruction size Get dst.wx operand (0S.WRT1) ; : Complements value if negative then or otherwise : H does a find first set and extracts the fraction ; Exit is to FP.PACK.T2TS5 to pack and write value removing the hidden bit and forming the exponent from the position contained in platch and biasing it ; : ; 4E src.rd,dst.wf CVILF Input ; Resources: ; ; Exit x1t: . . : H VA/RNUM dst.wf . Same as for other instructions abouve Same as above . . After performing the same opera“ion as above the fraction is rounded and the exponent incremented H : ; . Operation: ; src.ri Q H : 275 if appropriate exit is through common flows raswxsrwseFPA ENTRY AND INTERFACE*#x% xxxtx FOR CVIBF,CVIWF,CVILF (OS.RED) ~ FI1.ADDF3.MEM FOR CVTBD,CVTWD,CVTLD shhkrkhhkk kA khkkkkhhkhkhh ok (0S.RED) - F1,ADDD3.MEM hhk kAR kb kk ek kR ek ke h ke kkkk kkkkkk k% 1 CMTO98, MCX FLOAT.MIC 1tM(01) CLOKX Rev 13.00, Cloc rate = 160ns : CVTBF CVTWF CVTBD CVTWD CVTL & CVTLF 28~NOV-83 16:30:35 b o} b b md ok ik S b o o LN R g A N i emd b e mah D d b b B b bk o LA 0339, 0086,2001,087D,84E7,0858,4 380« B ) 3 d 0527, 0886,5041,003D,8047,0008,3 W -—'Oom\JO*LHJ\UJN—‘OOG)\IO\JIJ‘WN—'OOW\IO‘M b ad e rh b b b b b o aah S d e b od b 008D, 0986,2€11,0038,0047,0052,7 e 00BC, 0886,203A.487D,8047,0458,4 Page 276 REGION/IRDX RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H FP (vT. BWL FD: J OREEKRKRAERKAAAAERKAR R[TEMP?J SEXT(MLMDR]), ¢ SIGN EXTEND THE SRC ACCORDING TO SIZE NEXT/0S.WRT1 3 RET PUSH,SIZELIDEP], LOD INC BRA?, ; RETURN HERE FOR FINAL WORK ; GET DESTINATION ADDRESS THRU IRDROM TO FP.CVTBWL.FD.100 FP.CVT. BUL FD.300: W= OOV~ D e D d D ) ) e ) ed D D D e b 00B3, 054€,5011,0434,0847,0068,8 L A AN Ut A A U A R U A (N O AN A N N A U A N d e hed e D e e T TR TR T d P T T b et —d T T b S b ) D N AN N AN N (NN Floating point and CRC 00B2, 0885,2E5E,0180,8047,0414,0 6 M[TEMPS] MB+ZL1TOL81], * ADD BIAS AND FACTOR OF 1 TO EXPONENT SIGN(FLAGO)?, ; WAS THE SIGN NEGATIVE SET WRITE(FLAGY), NEXT/FP.PACK.T2T5 =0 FP,CVTLF- ; SET FLAG? FOR LATER DOUBLE WRITE TEST ; PACK AND WRITE OPERAND 3 KRR R R RO ok ko CTEMP2] 0 P SRC IN Q SIGND (mMp?, NEXT/FP, CVT.BWL.FD.200 : WHAT WAS SIGN OF OPERAND s DO THE TESTING PUSH, SI?E[IDEPJ M[TEMPZJ MB+ZLITOE1OOJ ; RETURN HERE FROM PROCESSING 3 ROUND THE FRACTION HIDDEN BIT GONE L,FLOAT . RZH/FLOAT ,R3L,FLOAT.R3H .REGION/FLOAT.RTL,FLOAT,R1H/FLOAT.R2 METEMPS] _MB+RLZEROI+ALKC, NEXT/FP.TVT.BWL.FD.300 .REGION/IRDX.RIL E ADD THE CARRY IF THERE : JOIN COMMON END UP IRDX.R1H/IRDX.R2L, IRDX.R2H FP.CVT.BWL.FD.100: MCTEMP2] MB+R[ZERO3,SIZELIDEPI, : GET THE SIGN AGAIN SIGND CMPB?,MDR 0, NEXT/FP, CVT,BWL.FD.200 ; ZERO OUT SECOND HALF IN CASE DOUBLE ; DD MAIN PROCESSING Il MICROZ TN N N A AN NONU MO PO PO RO NIROND =3 =3 3 b e FLOAT.MIC WAV B S 25 0 I8 I 2 B 05 S WA AW CMT098.MCX F 16:30:35 28=-NOV=-83 MO g S N : AT $11356 11138 : N AR 0584, 0480,29¢2,403D,8047,0058,7 11135 2 N NN U 6 g AN N A U b e b b b aa €0 QOCROOCO 0O COCD N N N NN NN NN SJONONON 6 A N U PR PR TR T U A A N L Ll L U b b N 6 A G AU U L L 053D, 0481,2387,0010,0467,0067,8 b ah b b b 0679, 0C80,22F7,003D,8467,0053,D b b 3 b it o e nd 0678, 0C86,5837,0080,0047,0000,1 B B b b N T b b b e T b b 0587, 0086,2137,08FD,8047,0067,8 I N b d b P b mah d b 0586, 0446,2003,0030,8047,0058,4 b e b ek b D d PR P 0585, 0048,0036,48F0,0047,0050,8 PR PR PR TR 11136 ‘QO‘&"I‘&NHJ—flC>i3CD'QCF\hJ\UHflJ—3C>4303“QCFNHJ‘hMflJ-CDMDCD‘QCF\"J\ Floating point andCRC b e ad ook b d —d D b b e b e et D b 3 FLOAT . MIC MICROZ D X3 CMT098 . MCX G 6 Page 277 CLOKX Rev 13.00, Clock rate = 160ns : CVIBF CVIWF CVTBD CVTWD CVTLD & CVTLF 85610N/FLOAT.R1L,FLOAT.RIH/FLOAT .R2L ,FLOAT.R2H/FLOAT.R3L,FLOAT.R3H FP,CVT.BWL.FD.200: 100mmmmemmmmmecemmmee—e———————— : VALUE > 0 PL_MSS MLTEMP23, NERT/FP.CVT.BWL.FD.220 * FIND FIRST 1 BIT * CONTINUE WITH PROCESSING D ; VALUE = 0 1R<5>7, * 1S THIS A DOUBLE OR FLOAT NEXT/FP,WRITE.FIRST : ssr WRITE(FLAGT), * SET FLAG FOR TEST WRITE 10===memecmmanenn- R ~w=ee; VALUE < 0 WCTEMP2] -MB, ' 25 COMPLEMENT THE VALUE NEXT/FP.CVT.BWL.FD.200 * SET SIGNTFLAGO), * SRC IS NEGATIVE NOW FIND FIRST SET FP.CVT.BWL.FD.220: -----n----n-----n-----n—--------‘ MCTEMP2]_(MB RLZER0J).RR.P, IR<5>? : EXTRACT THE 32 BITS OF FRACTION : IS IT cvTBD,CVTWD,CVTLD =0 FP.CVT.BWL.FD.250: :(mmmmm e ——————— wwwew=; NOT DOUBLE MLTEMPSI_PL, RETURN [¥1] B * SAVE PLATCH FOR COMPUTING : RETURN TO CALLING ROUTINE EXPONENT P LY DOUBLE MDR_(MCTEMP2] RLZER0J).RR.9 SAVE LOW BITS IN SECOND HALF --------------------—-—-----—---0 MDR_MLMDRI.RR.16, NEXT/FP,CVT.BWL.FD,250 ; ; SAVE LOW BITS IN SECOND HALF : : CMT098.M(X FLOAT.MIC MICROZ22 1M(01) 16:30:35 28-NOV=-83 H o6 ¢ CVIFB CVTFW CVTFL Floating point and CRC ;%}%gg .T0C ' Floating point and C(RC 311390 SRR R IR R AR KRR 211392 111393 ; 11394 48 49 4A J11391 11395 211396 AR CVIFB CVIFW CVIFL ko h kR hkkhk src.rf,dst.wh src.rf,dstl.ww src¢.rf,ast.wl src.rf 0 Input :11399 . 211400 1401 Resources: :11402 211403 ; 11404 ‘ 278 : CVYFB CVTFW CVTFL' RA KAk AR AR KAk AR ARk 11397 :11398 ; Page CLOKX Rev 13.00, Clock rate == 160ns ;11405 ; VA/RNUM dst.wx Temp2 Temp3 Temp4 fraction zero | for size test MDR integer . Temp$S 211406 ; ;11407 ;11408 ; 11409 exponent Fla?o sign of operand ADD1(FLAGO)) Fla%a overflow flag 211410 11411 ;11412 ; J11413 OVER(FLAG2)) . Subroutines: FP.ADDFOP1 111416 M7 11418 ; parse operand convert float to FP.CVTFI.SUB ;%%Z}g : . Operation: Entry after src . integer and dst evaluated :11419 ; Parse and validate operand (FP.ADDFOP1) 11421 11422 211423 211624 J11425 $11426 0 11427 ; 211428 011429 Call FP.CVTFI.SUB to obtain integer Integer returned in MDR , . Integer sign extended according to instruction size **it positive . . it is tested for integer overflow into dst size **if negative . the value is complemented and the test performed as above In either case the oRerand is written shift off overflow bit $11620 ;%%zg? ; ;1143% ; . . ;;}2%4 ; It integer overtlow wxknknwwxtfPA ENTRY AND has been detected the V bit is set j f ; INTERFACE®wkaknnenn (0S.RED) ~ FI.ADDF3.MEM :'11/'35 :*kktli!tt!ttttitiititttitfittitttitt*tttttkitkikitt*ttkttk**tittt*tttttt*iktt*i | H : X {MT098.MC N oAy LOAT, Ml C MICROZ 1M(Q1) Floating point and 16:30:35 2%E§0V-83 I 6 Page 279 (LOKX Rev 13.00, Clock rate = 160ns ¢ CVTFB CVYTFW CVTFL . ;}%2%9 .8EGION/1RDX‘R1L,IRDX.RIH/IRDX.REL,IRDX.RZH 111438 FP.CVTF.BUL: :11439 U 00C6, 0086,203A,403D,8047,0467,A U 00C7, 0C85,2E5E,0431,0047,0067,¢ 111640 ;}}225 et METEMP2] @ Lttt Sem———— ; PUSH,NEXT/FP. CVTE. 100 331222 FPLCVIF.200: RCTEMP4] _SEXT (MLMDRD), 111445 SIZECIDEP], 111446 1114647 ADD1(FLAGD)?, ;}}223 5 AR NEXT/FP.CVTF.250 KRR Rk R Y MOVE SRC1 TO AN MBUS SOURCE * COMMON FLOWS RET AFTER FP.CVTFI.SUB 1 SIGN EXTEND THE INTEGER FOR Y TEST IF FITS INTO SIZE OF DST * POSITIVE OR NEG INTEGER * CONTINUE TEST E}}zgg .SEGJON/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L,FLOAT.R2H/FLOAT.R3L.FLOAT.R3H 111452 FP.CVTF.100: 111453 U 067A, 0484,0587,0030,C047,045A,1 111454 ‘}%222 111457 U 0678, 0884,05F7,0010,8047,006E,A 111458 :}}228 ;0mmmmmmememmencemmaem e —— ; RCTEMP3] 0, PUSH.NEXT/FP.ADDF OP1 ;]mmmm : ZERO THE OTHER PART FOR LATER : PARSE SRC1 e ——————— e : RCTEMP21 RB.ASL.1, NEXT/FP.TVTFI.SUB 2 SHIFT LEFT 1 FOR FR,CVTFI.SUB * CONVERT TO INTEGER RET TO CALLING RTN 111461 =0 111462 FP,CVTF,250: 111463 Py M ——————— memmm—————— 111464 WB_MCMDRI-RLTEMP4], ¢ 11465 U 067C, 0C81,2000,0A31,0047,0867,E 345+« 111466 ;;}22; 111469 111470 111471 U 067D, 0001,2003,003D,8467,000C,7 Y1472 ;}}2;2 INTEGER IS POSITIVE SIZECIDEP], ; CF NEXT/ZFP.CVTF.300 : WX.EQ.07, FOR INTEGER OVERFLOW FOR DST SIZE WILL IT FIT {]emmm—m—m e e ee e —————— ; INTEGER 1S NEGATIVE MDR_=MCMDRJ, * 25 COMPLEMENT THE CLEAR ADD1(FLAGO), : CLEAR THE SIGN FLAG NOW SI1ZECIDEP], NEXT/FP.CVTF.200 : INTEGER : GO BACK AND DO TEST 11475 = 111476 FP.CVTF,300: 111477 P (CEN— cmemmmene et ———— : WRITE KNOWN U 067, 0463,2592,403C,4DDA,0051,E RCDST.R).S1Z_M[MDR], * INTEGER IN MDR :}}23% NEXT/FP,CVTF.450 : GO SET V AND END 111479 111480 111481 111484 U 067F, 0063,2592,44BC,4DDA,0051,A INTEGER OVERFLOW CASE 111478 WRITE NOTREG,SIZ2ECIDEP], SET MM.NOINT, cCoPT, : * NO INTERRUPTS TILL END * SET CONDITION CODES {lmmmeemeecrecneadea—————— a~==; WRITE OVERFLAG MAY BE SET 111485 111486 111487 RIDST.RI.S1Z_M[MDR], WRITE NOTREG;SIZECIDEP], SET MM.NOINT, : INTEGER IN MDR ; : NO INTERRUPTS TILL END 111489 OVER(FLAG2)? : INTEGER OVERFLOW PREVIOUSLY DETECTED 111488 ccopPt, : SET CONDITION CODES ; ; MICn02 CMT098.MCX FLOAT . MIC 1M(01) 28-NOV-83 floating point and CR( 16:30:35 J 6 CLOKX Rev 13.00, Clock rate = 160ns : CVTFB CVTFW CVTFL ;11690 =0xx U 051A, 0080,0036,4130,0047,003F,9 ;11491 FPLCVTF,400: 211492 0tk ;%%232 IRD1 m e m e e ——n e : END OF INSTRUCTION A WASTE 211495 FP.SETVIRDY: :11496 FP.CVTF,450: ! . U 051t, 0480,0036,4130,08E7,003F,9 ;11497 ;11498 ;11499 Jlrrmconn el emesees -ALY SET v, 1RD1 ; SET INTEGER OVERFLOW IN PSL ; END OF INSTRUCTION Page 280 X ; H C?T%K?.mgé L . MICRO2 1M(Q1) 16:30:35 28-NOV~-83 Floating point and CRC ;%%gg? LT0C ' K 6 Page CLOKX Rev 13.00, Clock rate = 160ns : CVTDB CVTDW CVTDL Floating point and (RC : CVTIDB CVTDW CviDL" }11502 ;fik***t**i**ktt*ttwfit*w*k«ttt***t***tk***********************t*t****i**t****** :11503 ;11504 ;11505 ; ;11506 211507 11508 ; ;11509 (11510 ;151 211812 ; ;11513 68 69 6A CVIDB CVIOW src.rd,dst.wb src.rd.dst.ww Input Templ MDR src.rd (bits 0-31) (bits 32-63) Temp2 Temp3 fraction_(bits 0-31) ( bits 32-63) CVIDL src.rd.dst.wl Resources: , . , ;11514 11515 ; J11516 ; 1517 11518 ; Tempé TempS MDR Q Fla?O size test register exponent integer fraction sign of operand ;11520 ;11521 ; Fla?Z OVER(FLAG2)) overflow flag FP.ADDDOP 0S.WRT1 FP.CVTFI.SUB parse operand get dst.wx . convert float to integer FP.CVTF.250 common flow finish up 11519 ADD1(FLAGO)) ;11522 211523 ; . Subroutines: ;11528 Exit: ;11531 Operation: J11524 ; 11525 ; ;}}gsg ! ;}}g%g : ;11532 ;11533 ;11534 ; J11535 :11536 . ;11537 ;11538 :11539 ;}%52? ; S5 H 111542 ; ;}}gzz ; . Parse operand via FP.ADDDOP1 . ) Shift operand left 1 to remove overflow bit Call OS.WRT1 to get dst.wx and return through IRDROM to FP.CVID.250 . Call FP.CVTF].SUB to do conversion Start test to see it integer in MDR fits into dst according to_instruction size . Exit to FP.CVTF.250 to join common flow with float to integer single precision waxxkrnkwxF PA ENTRY AND INTERFACEx*xaxhsxxx (0S.FIDRED) - FI1.ADDF3.MEM 211545 Etttfitttttttfi***it*t*wttktit*ttt*kitt***t*ittttt**t*t**tttt**ttt*tti*ti*ttit*t 281 g i v uiiiuila v i v U QU R v S QU I b e S D S d amd b b b > U 033D, 0886,203A,403D,8047,006E,A [ e b eed U 006A, 0085,2E5E,0431,0047,0067,C L W W P D e T U 0069, 0886,3305,(1BD,8047,0414.0 L 16:30:35 : CVIDB 6 CLOKX Rev 13,00, ¢ lock rate = 160ns Page CVTDW CVTDL 6 .REGION/IRDX..R1L,IRDX.R1H/IRDX.R2L, IRDX. R2H ENENTe Yo No No No NoNo Xo Mo No MU LS TV LU, LU, TN 10 TU L0 AV Al S 2 O DO NN EANN = OO 00 NI NN =2 OO0 d D e ) L b e b G SR QIR G TR TR PR PR PR PR TS T N PR TR U 0068, 0084,1437,0AB1,4047,005C,4 323% ) ad ed FLOAT MIC 28-NOV-83 1M MICROZ Floating point and CRC D : CMTO098., MCX D : FP.CVTD.BUL ;KRR KRR RLTENPS] EXP(NLTEMPTI), ARR ; PARSE FIRST OPERAND ; 0 HAS BITS0-31 FROM FP.ADDDOP? ; TESTING NOW TO SEE ; TEST VALIDITY FRO.FLTZ? PUSH,NEXT/EP, ADDDOP1 -—------n-—--———-------w---u- [TEMP3J (MB Q).RL.1, ; NEXT OPERAND RETURN THRU IRDROM TO ; FPL.CVTID.150 ; RETURN HERE AFTER HAVE INTEGER PUSH, LOD INC BRA?, NEXT/0S.WRT1 e i 10==mmr mm e c e ccc e RLTEMP4]_SEXT (MUMDRI) e manea : OF DST SIZECIDEP], ; WAS SRC1 POSITIVE s CONTINUE PROCESSING ADDI(FLAGO)?, NEXT/FP,CVTF.250 FP.CVTD.150: e EEm S — . MLTEMP2]_0 NEXT/FP. CVTFI suB IF FITS INTO SIZE —————— - ; ENTER HERE THRU IRDDOM FOR CVTD'S ; BITS 0-31 FROM 1 TO TEMP2 ; GET INTEGER 282| }g;g .T0C '* Page CLOKX Rev 13.00, Clock rate = 160ns : CVTRFL CVTRDL 283 ]i ) i : CVTRFL (VTRDL" Floating point and (RC TS76 2 kAR RRH IR ARIRKR K RRA KRR KRR KRRk bk A KRR RO RO s ke Rk | k% 4 TR L Rl Floating point and CRC 48 £ LA £ 1576 ; R g e 2 P N e P T T T src.rf,dst.wl Q VA/RNUM 580 581 ; Recources: 583 Exit: 584 ; 589 src.rf dst.wl [ ] Same as CVYFR,CVTFW,CVTFL . 582 : ! . _ FP.CVTRDL. 30 Operation: . . L. Common flows with other float (single precision) o to integer routines 586 . 587 ; 588 . However, after return from computing integer ggg ; shift left to get carry join common flow with CVIRDL 6B gg; ; 593 ; CVIRDL src.rd,dst.wl Input ; ; ; . ; ; ; Tempt src.rd (bits Q=31; MDR Resources: (bits 32-63) TR TR TR TR Y Flag? to indicate round in FP.CVTFI Same as for CVTDB,CVTDW,CVTDL Oceration: L the above double precision Same operation as . After computing_integer return (Temp2 and Temp3 have fraction position so that binary point is before bit 31 of Temp2) ; Shift round bit into carry Test tor integer overflow as detected by CVTFI.SUu If not then carry (or no carry ) is added to integer T T O O N N and test again for_integer overflow also test for -2%%32 case . i.e. 1f integer value was negative after carry added and sign indicated value not negative . this is integer overflow write low bits set V and exit T if integer gverflow has been previously detected or if this is CVIRFL instruction . where no 1nteger overflow is possible then bit 31 Add carry to integer irrelevant and complement it if negative was expected it integer overflow flag set then set V and exit otherwise just exit P 594 595 596 597 598 599 600 6 L T TR T T TR T P e CVTRFL Input £ 1578 ; 579 ; OIS S QU T I G UG QUT QU QU I QU S G SEIFPEE RS PR P QU QU QU QU I QU QU QU QUIT QR QUSSP GU PRI e g R FLOAT . MIC o s ; CMTO98.MCX M6 16:30:35 28-NOV-83 1M(Q1) L R ; MICROZ sxanxnsvsxFPA ENTRY AND FOR CVIRFL (0S.RED) FOR CVTRDL ekhhkwhkk Rk kh kb is [NTERFACE*ashansass = FI.ADDF3.MEM (0S.FIDRED) - F1.ADDD3.MEM ko k ko kA kA A kA A AR R R AR AR R AR AR RN RN AR AR AN AR R R R R R RN 0063,2593,04B(,4DDA,0051,A N S AND 2 OO 00 NNV Page 284 ] .SEGION/JRDX.R1L,IRDX.R1H/JRDX.R2L.1RDX. R2H FP.CVIRFL: Kkhkkdkhkkhkhkhkhkhkkndfk - - - - " " - - MCTEMP2)_Q.SET FLAG?, PUSH,NEXT/FP.CVTF.100 GET SRC1 TO AN MBUS RETURN HERE WHEN HAVE INTEGER 1 RLTEMP2]_MLTEMP2]+RB, SHIFT LEFT 1 BIT INTO CARRY - - - NEXT/FP.TVTRDL. 30 THIS =00 IS ROUND BIT hk kA ko kkwkkkkhkh Whhkh FP.CVIRDL: - " 0 - RETEMPSI_EXP(MLTEMP1D), PARSE SRC1 TEST VALIDITY FRO.FLTZT, PUSH,NEXT/FP.ADDDOP1 ;01 MLTEMP3] _(MB Q).RL.1, PUSH,LOD INC BRA?, RET THRU IRDROM TQ FP.CVTID.150 Q HAS BITS 0-31 NOW SHIFTING LEFT 1 USE TO INDICATE ROUND IN FP,CVTF] RET HERE AFTER HAVE INTEGER SET FLAGZ, O AN = OO0 00 = OO0 N LA B NN S AN Clcck rate = 160ns NEXT/0S.WRT1 FOR ROUNDING -t L e T D T T SHIFT ROUND BIT OF FRACTION 1MTO CARRY WAS INTEGER OVERFLOW ALREADY DETECTED OVER(FLAG2)? :REGJON/FLOAT.R1L,FLOAT.R1H/FLOAT.R?L.FLOAT.RZH/FLOAT.RSL,FLOAT.RSH =( %% T P L e L MDR_M[MDRJ+ALKC, D P L NOT YET MDR + EXCEPT =-2%w32 ADD CARRY TO INTEGER CHECK ON BIT 31 L SIZECLONG],WB<31-30>7, FURTHER PROCESSING NEXT/FP,CVTRDL .40 FP.CVTRDL. 30: e T R LT MDR_MIMDRI+ALKC, o e ’ ADDT(FLAGD)? o e > s 0 iy e e 8 e 6y B B ——— ENTRY CVTF,RFL INTEGER OVERFLOW RDL CANT OVERFLOW IF RFL & IF OVERFLOWED FOR RDL SIGN OF CARRY QUT IRRELEVANT INTEGER POSITIVE INTEGER IN MDR NO INTERRUPTS TILL END SET CONDITICN CODES WAS INTEGER OVFRFLOW SET SET vV A AND OR END - T SET MM.NO OVER(FLAG - 0 - O e INTE GER R | S NEGATIVE INTE GER R | N MDR COMPLEMENT IT NO INTEKRUPTS TILL END £ O UV_RF1.OW DETECTED BEFORE GER INTEGER . J681, CVTRDL SOV A % A TR L U LR R S 0057 ,A U 0680, 0063,2592,44BC,4DDA, NS NN R T N 0C81,2041,043D,8467,0068,0 R U 054AF, GBNO R 0481,2041,06ED,8467,084F,9 b4 TR T U 0548, CVIRFL 6 CLOKX Rev 13,00, L 0884,2001.0480.8047.005A.8 L J 0076, I A I U 0075, 0056,3305,018D,8047,0414,0 ¢ —a N e A S [ 4 0074, 0084,1437,0AB1,4047,005C,4 323 £ NN =3 O N0 00 NG R PR TR P 0084,2001,0030,8047,005A,F T J 00CD, TR TR TR PR P J 06CC, 0856,203A,403D,8047,0467,A N 16:30:35 1M1 28-NOV~83 floating point and CRC M]CROZ> SR N (MTQ98.MCX FLOAT MIC P P OO PRI T I QI S pir QIS U G Gt v SR BT P e g 8 Ll e andand e O S eg i g [o X e Yo YoNoXe NoNoNo Ne JoNo N oo JoToJo Lo lon Lo o Yo Ve o NeNo e NeNo o No No No No ¥o Mo No NoNo Yo Yo Xo Xo Yo g ¥ o e o i OO~ N VWAV VAT N U U O I B D5 B O 25 I B DN N N N I N DI N N DO PO NONNN NSNSIN NN ONO ; H ; H CMT098.MCX FLOAT.MIC MICRO2 1M(01) 28-NOV~83 Floating point and CRC B 7 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns ¢ CVTRFL CVTRDL Page 11679 =01 ;11680 fFP, CVTRDL 40: U Q4F9, 0080,0036,4430,0047,0068,2 $11681 211682 ;%}ggz 111685 VALUE WAS POSITIVE IN MDR AFTER ALKC WHAT WAS THE SIGN ORIGINALLY H CONTINUE PROCESSING D LD LT LR LLLTDH H NEXT/FP.CVTROL.50 Tlemccmcecsacccnccnnn o mnm—— VALUE WAS NEGATIVE IN MDR AFTER ALK( INTEGER IN MDR COMPLEMENT IT 111686 RIDST.R],S1Z_-MIMDR], ; 211688 SET MM NOINT, H NO INTERRUPTS TILL END 111687 ;11689 U 04FB, 0063,2593,043C,4DDA,0068,4 R R e ADD1(FLAGO)?, ;11690 ;}}gg; WRITE NOTREG,SIZELIDEP], H SET CONDITION CODES THE SIGN CORRE(T WAS H CLOP1, ; NEXT/FP.CVTRDL .60 H HERE FILTERING CASE OF -2%+32 ADD1(FLAGO)?, 11693 =0 $11694 FP, CVTRDL 50: (11695 0000 (0mememmeesrnenccscannanas AELALTT LN 111696 R[DST.RJ.SIZ_M[MDR3. ; 211698 cCOP1, H 11697 ) U 0682, 0883,2592,413C,4DDA,003F,9 :%}938 ;11701 11702 :11703 _ U 0683, 0883,2593,013C,4DDA,003F,9 WRITE NOYREG,SIZELIDEP], 1IRD1 f P el AELLITTLS; NEGATJVE RIDST.R].S1Z_-MIMDR], ;11704 WRITE NOTREG,SIZELIDEP], ;}%;89 1IRD1 11705 ; (COPT, :; COMPLEMENT VALUE :; SET CONDITION CODES b; END OF INSTRUCTION ;11708 = ;11709 FP,CVTRDL.60: J11710 U 684, 0480,0036,4130,08t7,003F,9 i U 0685, 0080,0034,4130,0047,003F,9 SIGN FLAG AFTER ROUND ; INTEGER IN MDR ,0 ---------------------- emmm——— : SET v, 11714 S e tnntaa i DL DL DL LD by“———- NO INTEGER OVERFLOW FROM ROUNDING ;}};}% 1715 IRD1 IRD1 ; INTEGER OVERFLOW FROM ROUNDING 1117211 ; H 285 16:30:35 28-NOV=83 1M(Q1) s+ CVIDF = OO0 NN BN D AN N N T W A N AN 2 O OO NN W = OO 00N NI S = OO OO w0 SN DI N D 3 O = 3 a3 O N POPOPIPONIIOVN) N N N SN TN SN N N SN SN SN N N SN SN NN N TN N N U N NI N Y AN N TN SN TN TSN T TN TN T 3 b b ad b > > D d b red b b b D b d eh reed memh h D oD b e b D b o oD b b b D b D e b b e e D b e} oo d B b D b b D amd 3 e bk b D D D 2 D e ) Floating point and CRC e d FLOAT.MIC MICROZ h : (MT098.MCX P D A A O T T T PR PR PR TR SR TR P TR P T PR T ; .T0¢ " AR A KK ¢ CLOKX Rev 13.00, Clock rate = 160ns R i Page 76 . ] A o e A e e ok ko e ok o ok s e ke ko ke CVIDF src.rd,dst.wt Input Tempt src.rd_(bits 0=31) Temp1 Temp2 fraction (bits 0=31) fraction (bits 0-31) MDR [ ’ Resources: . . ’ . ’ TempS FlagO (SIGN(FLAGD)) . . . ’ (bits 32-63) exponent sign of operand . . Operation: . Test validity of operand (not reserved operand) If valid test the round bit | 1f round bit not set then write out packed operand It round set then unpack fraction bits 0-31 only add 1 to round position if no carry then shift left to remove hidden bit and overflow bit and pack and write . ’ . . . . ¢ . ) . ’ ’ if carry . if none . increment exponent test for floating overflow shift to remove hidden and overflow bits and exit as above . It tloating overflow fault to IE.FLOW.FAULT [ . ¢ xexkknnewnfPA [ 0 TR ENTRY AND JNTERFACE®%*kaahnxx (OS.FIDRED) - FI1.ADDF3.MEM . RN AR R AR ! | . v ] i . ’ i | : CVTDF" ’ . 286 i Floating point and CRC KR ek e Rk o ¢ 7 Ak kAR A AR AR AR AR AR R AR R AR A Ak Rk ke kAR ARk A AR AR R AR kR A AR Ak ke CMT098.MCX FLOAT.MIC MICRO2 1M(01) b 7 28-NOV=83 16:30:3%o CLOKX Rev 13.00, Clock rate == 160ns Floating point and CRC . Page 287; :11753 . EGION/IRDX RIL,IRDX.RTH/IRDX.R2L, IRDX ,R2H 0341, 0C80,003A,403D,8467,0054,6 0546, 0C84,1437,0A81,4047,0858,8 323 1117 ;1};29 ;}];25 111764 ;}};gg 111767 0589, 0141,2052,0A70,4047,0058,¢C 111768 111769 J11770 :1};;; 211773 058A, 0C84,0587,012C,4DDA,003F,9 0588, 0181,cD52,0A70,4047,0058,¢ {mmmmmmmemmecmeemmcmmmeecsmoeae) MDR_Q * 0S.WRT2 MOVED MDR(BITS32-63) - TO @ 3}};28.REGION/FLOAT,R1L,FLOAT .R1H/FLOAT. R2L FLOAT.RZH/FLOAT .R3L,FLOAT.RIH ¥ TEST VALIDITY OF OPERAND RCTEMPS) LEXP(MITENP1]), 111760 ;11763 =00 0588, 0080,0036,4030,0047,00FF,8 | ; P L L R Ll LAt i L ;1172? FP,CVIDF: FRO.FLTZ? : 100-mrmmmmmmemeamme——————————— ; RESERVED OPERAND NEXT/1E.OPER.FAULT : B B ; SRC < 0 WB_MCMDRI.AND,ZL1T12[8], SET SIGN(FLAGO), WX.NE.Q?, NEXT/ZEP. CVIDF.100 : IS THE 'ROUND' BIT SET ¢ SRC IS NEGATIVE ; * CONTINUE PROCESSING ;10==~emcememmmeemm—mececc e ea——— ; SRC = 0 111774 111775 111776 ansr R1_0, CCOP1, WRITE NOTREG,SIZELLONSG], 111779 :}};g? P L D ————— ; SRC >0 ; IS THE 'ROUND' BIT SET wgMEM%R]LAND.ZLITI208], ;1};2; NEXT/EP.CVTDF.100 ;}};;g H IRD1 W } WRITE A ZERO : SET CONDITION CODES : : END OF INSTRUCTION M : CONTINUE PROCESSING 111784 =00 ;}};gg FP.CVTDF. 100: 111787 RCDST.RI_MLTEMP1, : BIT NOT SET NO ROUNDING | 111789 WRITE NOTREG,SIZELLONGI, ; i i 058C, 0884,1592,412C,4DDA,003F,9 ;}};g? 111792 058D, 0886,1677,043D,8047,046D,8 111793 11179 ;}};gg . 11297 058€, 0986,1C11,06F4,0047,0851,5 377+ 111798 ;}%ggg } CCOP1, IRD1 : SET CONDITION CODES : END OF INSTRUCTION ;0] mmmemmmm—m———m e m—ea—ma e ; M[TEMP1J UNPACK (MB RLZERDD), SIGN(FLAGO)? ,PUSH, NEXT/FP.DSIGNSET ¢ GET FRACTION DONT NEED SECOND HALF : SRC NEGATIVE SET D TO SIGN ; ;]0mmmm e e; MCTEMP1]_MB+ZLITOC80], WB<31-305? : ROUND THE FRACTION : WAS THERE CARRY INTO OVERFLOW BIT , i i ; ! ] | Iy 111788 16:30:35 28-N0OV-83 : CVIDF Page =2 ASTLS AP 101 ===z mmmmmmemmmmmmem e RCTEMP1]_RB.ASL.2, NEXT/FP. TVTPACK BIT 31 NOT SET NO CARRY : SL 2 TO REMOVE HIDDEN & OVERFLOW BIT ; PACK AND WRITE BIT 31 SET INCREMENT EXPONENT ; BUMP EXPONENT e BB e . A o S WB_MLTEMP5].AND.ZLITBLOFF], ; CHECK FOR OVERFLOW ; AND WITH FFOO SIZELWORD], WX.NE.0? NO OVERFLOW RCTEMP11 RB.ASL. 1, ; SL1 REMOVE HIDDEN BIT ; PACK THEN WRITE NEXT/FP. TVTPACK Y - - Ty G o S B e ey T Ty 0 0 By O e W OVERFLOW ; TAKE THE FLOATING FAULT PATH NEXT/IE FLOV.FAULT FP.CVTPALK: U s e e B O MLTEMP11_D, NEXT/FP.TVI e [T} LS AN S O OO OOOOOO0CO = OO 0O N ON e 00 00 0O 00 0O O Co 00 o000 CoCO 0o 3 2 e TES AN =1 O O CO NN B S U N 00 00 00 Co 0 0O GO 00 Co 00 00 O MNIRNVMNINIIND =D Dt T A AT JUE QRN S g AT R T QU e DU O P S S T i P QU S T ., 0886,16B2,4031,4047,0058,( U U N T U 0687, 0080,0036,4030,0047,00FF,B L U 0686, 0884,05F7,0010,4047,0054,F P U 0548, 0D80,5b92,0A57,F847,0068,6 J U 0517, 0082,0€7C,0011,4047,0054,8 O U 0515, 0884,05F7,0020,4047,0054,F G ST Floating point and CRC 7 CLOKX Rev 13,00, Clock rate = 160ns E e e PACK uP 288 H CMTO98.MCX FLOAT.MIC MICROZ 1M(O1) 28-NOV~-83 Floating point and CRC ;11826 211827 R R AR KRR AR :11830 ; ;11831 211832 ; ;11833 211834 211835 ; 211836 ; AR ATk sk ke PACK AND WRITE Input . Operation: ;11846 ; Resources ;11862 ;11863 11864 11865 211866 ; ; ; ; (11867 ; ;11868 ; $11869 ; ;11870 ; ;11871 11872 ; ;}}ggz : fraction (bits 0~31) Temp5 exponent D if answer is negative ) . ) . ; ;11850 ; ;11859 ; ;11860 ; ;11861 ; hkkk ke k ko khkk ok ke ke ) . FP.WRITE23 Input ;11855 ; 211856 ; 211857 ;11858 ; kR exit to FP.WRITE.FIRST :1}%23 : ;11851 ; ;11852 $11883 :11854 kR Pack up bits 0-31 of fraction with exponent | OR'ing with D negative s1gn postion if negative Entered by branching on the sign flag ;11844 211847 289| SUBROUTINES Temp? ;11840 ;11845 ; ; FPL.PACK.T2T5 Resources: 211841 $11842 11843 ; ) : GENERAL PACK AND WRITE ROUTINES' AR AR ARk :11837 ;11838 ; 211839 ; Page CLOKX Rev 13.00, Clock rate = 160ns : GENERAL PACK AND WRITE ROUTINES floating point and CRC .TOC '* ;11828 sk Rk A ;11829 ; 16:30:35 7 . . TempZ (bits 0-31) floating point value CCoP1 to set condition codes ) Operation: ) If 2 operand instruction write operand (size dependent) and exit I+ 3 operand get dst via 0S.WRT1 write out operand as above FP.WRITE.FIRST FP.WRITE.SEC Input and return to | Temp? Tempe MDR/Temp3 Fla%1 WRITE (1 LAG1)) . traction for single fraction for double bits 32-63 of fraction write out flag . Operation: . For sln?le and double operands if s1ng e write and exit it double write from Temp2 (CCOP1) and bump VA test if writing from Temp3 or MDR and act accordingly ! : ‘ ; ;11875 E*t*itkiitttk*tttittwtkttttktfifitt**ti*ktttk*k*t*****t**t***t***kttki****k*t**t I ; F U 0508, 0084,2592,413C,4DDA,003F,9 th 0509, 0064,2592,403C,4DDA,0056,F ~O O 00 00 00 0o O3 £ 000 CO £ 00 0o 0000 0o Co 00 Co 0o 0o 00 Co 0o 0o e P 28 P T U 0507, 0080,0036,4180,0047,0414,0 LT e U 0506, 0€84,2592,413C,4DDA,003F,9 T TR TR T T o O R U 0550, 0086,26B2,48F1,4047,0050,8 R T e T R O U I U QPRI QU QUIT WIS WU JUIE QUL QU DI QU QUIF QR L PR PR B S S i S S S S S e S T L S R U 0689, 0080,0077,2030,4047,0055,0 A8 8 e T U 0688, 0886,2687,08F1,4047,0050,8 OO O OO0 00 CO00C0 COCD 00 L0 NN~ LANND = OO O N NS NN) = OND 0O ~NO~ 28=N0OV~83 MICRO2 1M(Q1) Floating point and CRC s9 4 e H : CMTO98.MCX FLOAT.MIC 95 96 % 88 01 902 882 G 7 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : GENERAL PACK AND WRITE ROUTINES .SEGION/FLOAT.R1L,FLOAT.R!H/FLOAT.REL,FLOAT.RZH/FLOAT.R3L,FLOAT.R3H FP.PACK. T2T5: (mmcmmmmmmammmme oo oocaaos «e=; ANS 1S POSITIVE BIT 1520 MCTEMP2]_PACK(MB RLTEMPSI), : 1R<5>? NEXT/EP . WRITE.FIRST ; FLOAT OR DOUBLE WRITE : ;mmmmmmmc et cemmeesam——— : ANS 1S NE b_zLiT1208) * SET UP TO SET SIGN BIT MCTEMP2]_D.OR.PACK(MB RLTEMPS]),: 1R<5>7, ' FLOAT OR DOUBLE WRITE NEXT/FP.WRITE.FIRST ; ITE 23: :0110-—semmcmmencnmennm—————— ; 2 OPERAND SINGLE WRITE RLDST.R] _MLTEMP2) * WRITE CCOPT, * SET CONDITION CODES WRITE NOTREG,SIZEEIDEPI, IRD1 * SIZE DEPENDS ON INSTRUCTION : DONE ;0111 mmmmmmmecmmccacennaa. ~===; 3 OPERAND GET THIRD AND RET LOD INC BRA?, PUSH,NEXT/0S . WRT1 ; : 905 FP.WRITE FIRST 906 11000=a=mm=mmmmm————————————— ; SINGLE WRITE 907 RCDST.RI_MLTEMP2) Y WRITE 3}? CCOPT, IRD1 * SET CONDITION CODES * DONE 908 909 912 913 914 915 916 g}g WRITE ‘NOTREG,SIZEfIDER], i SIZE DEPENDS ON INSTRUCTION 1100]m==mmmmmm—c e e e ——— ~; DOUBLE WRITE RCDST.R]_MLTEMP2) * WRITE WRITE NOTREG,SIZEEIDERT, CCOPT, SET MM.NOINT, NEXT/FP.WRITE.SEC : P SET CONDITION CODES { NO INTERRUPTS BETWEEN WRITES + FINISH UP WRITE Page 290; | ; ; CMTO98.MCX FLOAT.MIC MICRO2 1M(01) 28-NOV~83 Floating point and CRC H 7 CLOKX Rev 13.00, Clock rate = 160ns : GENERAL PACK AND WRITE ROUTINES 16:30: 35 ;11919 EX.WRITE.SEC 111920 FP.WRITE.SEC ) 056F, 0C80,0036,45F0,0447,0053,0 111921 111992 ;}}352 ; ENTRY G H FLOAY et R E SECOND PART VA BUMP THE VA_VA+4, WRITE(FLAG1)? OF DOUBLE WRITE : SECOND WRITE FROM MDR OR TEMP3 111925 =0% 111926 FX.WRITE.SEC.10: ;; SECONDARY ENTRY G H FLODAT 111927 R -; TEMP3 WRITE 111928 RCDST.R+1] MITEMP3], : WRITE SECOND HALF U 0530, 0884,3592,412F ,45DA,003F,9 111929 ;}}ggg 111932 U 0532, 0885,2592,412F ,45DA,003F,9 WRITE NOTREG, SIZELLONGI, 1RD1 RS e L L L TECTTTL LN MDR WRITE 111933 RIDST.R+1]_MIMDR] 111935 1RD1 111934 : : WRITE NOTREG,SIZEfLONGD, : ; ; Page 291 ; CMT098.M(X FLOAT MIC MICROZ2 ;}%g%g .T0C ' I 7 CLOKX Rev 13.00, Clock rate = 160ns + ADDF2 ADDF3 Floating point and CRC Floating point and CRC ; 40 ADDF2 add.rf,sum.mf | ;}}gé% : 41 ADDF3 addl.rf,add2.rf,sum.wf 11946 ; ;11947 211948 ; ;11949 :11950 ; :11951 Input Resources: tor sr¢i 11952 ¢ ;11953 for src¢e 11954 ; ;11955 & ;11956 11957 ;11958 ; 211959 :11960 ; ;11961 . Subroutines: Q MDR Q pack~d Temp? fraction Temp5 exponent Fla?o sign of operand ADD1(FLAGO)) MDR packed TempQ fraction Temp? Fla?1 exponent sign of operand FP.ADDFOP1 FP.ADDFOP2 parse sr¢l parse srcé ADD2 (FLAG1)) Exit: 211964 ;11965 Operation: | . . This is the driv1ng routine ;}}829 ; 211968 ; N~~~ NN NN N O OOV VOOOVOVOVOO0 ;}}968 : FP.WRITEZ23 precision ADDFZ2 and - u O NS OO NO NI AL = O D00 ! . for the single ! ADDF3 instructions khkekwkxxaFPA ENTRY AND INTERFACE®w*taxwinn (0OS.RED) =~ Fl.ADDF2.REG/FI.ADDF2.MEM (0S.REDY - FI.ADDF3,REG/F],ADDF3.MEM 211971 ARk AR AR AR ARk kA ek ;11972 AR R R RN R AR R AR R kR R R AR AR AR AR R AR AR R A R AR AR R AR ;11973 .RSGION/IRDX.RIL,IRDX.R1H/1RDX.R2L.lRDX.RZH 1 P ORERERRARRRANRRRNARNRR 11 FP.ADDF23: e 0 T B O e e D e W Y 1 N MCTEMP2] 9 } MOVE SRC1 TO AN MBUS SOURCE 1 PUSH,NEXT/FP.ADDF OP1 : GO PARSE SRC1 N ;1 FP.ADDF.2:1 1 RN RCTEMP?)_EXP(MIMDRI), { START PARSE OF SRC2 FRO.FLTZY, ¢ TEST VALIDTY N 1 PUSH,NEXT/FP,ADDF OP2 * RETURNS AT END OF OPERATION R IR i10mmmmo e m . N 1R<2-0>7, {2 OR 3 OPERAND INSTRUCTION N NEXT/FP,WRITE23 ; DO WRITE OR GET DST ADDRESS PR CCOCOOOCOCOCOCOCO00 i src1 (addl.rf) srcd (add2.rf/sum.mf) ;11962 ; ;11963 ; U 008A, 0080,0036,4670,0047,0050,6 : ADDF2 ADDF3" ;}}gé? ; ;11944 ;11945 ; U 0089, 0085,2437,0481,(047,0059,8 323+ ' § ;11939 J 0088, 0086,203A,403D,8047,045A,1 Page 211938 ;t*t***t*k*k*****t*fi***fi**it***fiifii*t*t*t«**tttti*t*t*i**t**t*tt*t!ttitt*tw*tt 00 OO0V ; 16:30:35 28~-NOv-83 1M(01) ek ! ; ; CMT098.MCX FLOAT.MIC MICRO2 1M(01) Page CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28-NOV-83 : SUBF2 SUBF3 Floating point and CRC :%}33? .10C ' J 7 o 293 i : SUBF2 SUBF3" Floating point and CRC :']1992 "t*******k**k***i**********t***t*ti*t'(tttt'{*t*ttt**fl**il*******t***it********** 211993 :11994 . 111995 ; 211996 $11997 11998 ;11999 212000 42 SUBF2 43 SUBF3 sub.rf,dif.mf , , sub.rf,min.rf,dif.wf Input :12003 :12004 (ADD1(FLAGO)) 212006 212007 212012 ;12013 ADD2(FLAG1)) 0S.MOD , ;12015 ;12016 :%sgsg H wxkkrkk kv dFPA SUBF2 SUBF3 ENTRY AND INTERFACEX*wnnxnwan R AR R R AR KRR ;}Zg%g LOD INC BRA?, NEXT/0S.MOD 212037 . 12038 FP,SUBF3: U 0349, 0581,2053,4180,4467,0016,0 ;12039 212040 MDR_MCMDRI.XOR,ZLIT12(81, ;12042 NEXT/0S.FRED 212041 212043 LOD INC BRA?, | i (OS.RED) ~ FI.ADDF3.REG/FI1.ADDF3.MEM R ' I (0OS.RLD) - F1.ADDF2.REG/F].ADDF2, MEM D :1?831 FP,SUBF2: 212032 i tat el : 212033 MDR_MCMDR).XOR,ZLIT12[81, ; 212034 ) and then go1n common flows with 212030 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H . | i ADDF2.ADDF3 at FP,ADDF.2 T10000 FAAAEA R KRR AR AR AR U 034%, 0D81,2053,41B0,4467,0011,0 join common flows with ADDF2,ADDF3 validate the first operand and parse it :15852 : 12026 ; to . Operation: Entry after have srcl flip the sign bit and get the second operand returning through IRDROM & ; to get src2 for SUBF3 FP.ADDF.?2 . sign of operand to get srcd for SUBF2 OS.FRED Exit: :12014 ;12025 Fla?1 . Subroutines: :12010 212011 ; exponent Temp? 212009 212022 exponent sign of operand for src2 (dif.mf,min.rf) ) TempQ fraction :12008 ¢ 212021 : . fraction Temp5 Fla?o 112005 : | : sub.rf for srcl_(sub.rf) Temp2 212001 212002 . ;12017 :12018 212019 512020 MDR Resources: ; ? AR KRR KRR R AR AR RN AR KRR R AR KRR AAR RRR i FLIP THE SIGN BIT i . ; GET SECOND OPERAND i ; NEED THIS APPROACH ; RET THRU IRDROM TO FP,SUBF23,20 C ARRRNRRN KRNKKAK ORREANR H LLIP THE SIGN BIT EED THIS APPROACH g ET SECOND OPERAND ET THRU [RDROM TO FP,SUBF23.20 ; CMT098,MCX FLOAT.MIC MICROZ2 1M(Q1) 28-NOV~-83 Flouating point and CRC U 0351, 0886,203A,403D,8047,0058,F 16:30:35 K 7 CLOKX Rev 13.00, Clock rate = 160ns : SUBF2 SUBF3 ; 2}5829 MCTEMP2]_Q : MOVE SRC1 TO THE WORKING TEMP OAT 112048 ,REGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L,FLOAT.R2H/FLOAT.R3L,FL,R3H i | 112051 i 12052 112054 =00 12055 U 0599, 0C5¢,0587,1030,8047,0008,9 U 0591, 0C46,2677,003D,8047,0008,9 o U 0592, 0C80,0036,4030,0047,00FF,8 RCTEMPS] EXP(MLTENP2D), FRO.FLTZY * SIGN HAS BEEN FLIPPED : SPECIAL GROUP OF VALIDITY TEST 00====mm=mmmmm e o ————— ; SRC1 = 0 SIGN FLIPPED 112056 RCTEMP2]0.0, : MAKE IT CLEAN ZERO 12058 NEXT/FP.ADDF.2 ¢ FOR SRC1 CONTINUE PROCESSING 112060 $01mmmm 12057 . SET UPZEROTFLAG3), s mme e ; SET FLAG TO INDICATE ZERO oo cs 112061 MCTEMP2) UNPACK(MB R[ZER0)), ;12063 NEXT/FP,ADDF.2 12062 112065 12066 112068 U 0593, 0086,2677,0030,8047,0008,9 i '15822 FP.SUBF23.20: ;}Sggg FP.SUBF.100: U 058F, 0C84,2437,0A81,4047,0859,0 323 Page 294 ;12069 112070 SET_ADDITFLAGO), 10w mmmmmmm e ; SRC1 < 0 SIGN FLIPPED : UNPACK THE FRACTION ¢ SET SIGN FLAG FOR SRC1 : e cemmememea ; RESERVED OPERAND SIGN FLIPPED NEXT/1E.OPER.FAULT ; ;1] mmmmmmmmamem e mem s oo : SRC1 > 0 SIGN FLIPPED M"TEMP?J UNPACK(MB RLZEROD), NEXT/FP.RDDF.2 ; UNPACK THE FRACTJION : : i i i ! i i | . ; 5 ; H CMTOQB.ME% FLOAT.M MICRO2 1M(01) Floating point and 2§E?OV-83 ;}gggg .ToC "' 16:30:35 L 7 Floating point and CRC ) ‘138;2 : Input ;12080 ; ;12081 ; ;12085 ; i ) Temp$5 Fla?O ; . 212114 . . ! FP.ADDFOP2 Input Fla?S set if operand zero OPZERO(FLAG3)) . . Q zero i1f operand is zero i | . ! i MDR ! packed operand ctate of srct Resources: ! | { . : Temp0 traction Fla%1 sign of operand ADD2(FLAG1)) i . i . 1f OPZERO(FLAC3) 212119 ;12120 i ‘ : indicated that ! srcl was zero then the answer is src2 and is found packed in MDR 212122 . 5 i FP.ADDF.SUB to_continue the add function 212118 | ‘ exponent (biased) Operand is parsed if not zero and not reserved then exit is to J1enz ;12123 . i ; sign of operand Operation: ;12115 12116 212121 ! Fla?1 clear ADD2(FLAG1)) ¢ packed src1 operand 212106 ¢ 212110 J1211 212112 ;12113 ‘ 1 OPZERO(FLAG3)) ;12104 212105 212106 ;12108 ! with overflow and hidden bit in bits 31-30 Fla?B :12103 212007 l ! ADD1(FLAGO)) $12093 ¢ 12094 ; 212095 212102 ; ! clear . fraction unpacked Resources: Temp2 $12092 212101 i ! packed operand clear ADD2(FLAGT)) 12086 . ;12087 ; 212100 Temp? Fla?1 ;12084 212098 . 212099 ; AR Ak i ADD1(FLAGO)) $12083 ; :1209¢6 ;12097 R ARk KRR i Fla%O 212082 ; ;12091 ! FP.ADDFOP1 212078 ; 212079 . ;12090 % SINGLE PRECISION OPERAND PARSERS 212077 & ;12088 ; 212089 295 : FP.ADDFOP1 FP.ADDFOP2 ' ;120?3 SRR RRRR AR HR AR KRR kR kR kR AR AR AR AR ;12074 ; Page CLOKX Rev 13.00, Clock rate = 160ns : FP.ADDFOP1 FP.ADDFOP2 ;t*fit*t*tit*tkt*t*i 1223382288232 RRREs Rt Rt R | s Rd] ; : CMTO98.MCX FLOAT.MIC MICRO2 28-NOV-83 1M(Q1) Floating point and (R( U 05A1, 0484,2437,0AB1,4047,0859,4 323% g} g} FRO.FLT2Y =00 .12 : g} , 085C,0587,1080,8047,0000,1 ;0] mm . 0487,2677,04FD,8047,0059,( | e RLTEMP2] G_0 SET OPZEROTFLAG3), £ Qmmmm e 112149 ;12 ; g e RETURN [+1] | i | e ; SRCY = 0 : BOTH PACKED & UNPACKED CLEAN ZERD : SET FLAG INDICATING SRC1=0 ;]1= s : SRC1 > 0 RETURN [¥1] i : SET SIGN FLAG FOR FIRST OPERAND ; GO BACK FOR SR(2 MLTEMP2) _UNPACK (M8 RLZEROD), 6 i o s m e : SRCT < Q 112 12 : g ) ; ; ;12145 i e ; RESERVED OPERAND SET ADD1TFLAGO), : 5 ! : RETURN [+1] 2 , , 041E,203A,408D,8047,0000,1 E : g 11 U 0599, 0C4F,2677,04FD,8047,0059,C : GET EXPONENT TEST VALIDITY : UNPACK THE FRACTION 12 i i MCTEMP2]_UNPACK (MB RLZEROD), :12 f 296 : ENTRY FOR GH FLOAT 2121 112148 J 0598, 0C80,0036,4030,0047,00FF,8 e NEXT/IE.OPER.FAULT i12 U 0597, 0886,2677,008D,8047,0000,1 00w mmmm s Page ; RCTEMPS) JEXP(MLTEMP2D), $121 1121 , 0846,2677,008D,8047,0000,1 : FP.ADDFOP1 FP,ADDFOP2 FP.ADDFOP1: 112130 U 0594, 0C80,0036,4030,0047,00FF,8 M7 CLOKX Rev 13.00, Clock rate = 160ns FX.ADDFOP1: :12124 ; 16:30:35 : UNPACK SRC1 : =00 ! ! | | i ! | FP,ADDFOP2: ;00 mmmmmm oo : RESERVED OPERAND NEXT/IE.OPER.FAULT ; | ;0lmmmmmmmcmemmcscmsemeosseonnan : SRC2 < 0 , NEXT/FP . ADDF,SUB ‘ TIMPO_UNPACK (MDR RLZEROD), SET ADD2(FLAGD), OPZERO(FLAG3)?, : UNPACK FRACTION SRC2 ; SET SIGN FLAG FOR SR(2 i WAS SRC1 ZERO : CONTINUE PROCESSING MAYBE $ 0= m MLTEMP2] a, e e e s st ma e ; SRC2 = 0 ; ANSWER IS SRC1 PACKED IN @ i1lmm e e e CLEAR OPIERO(FLAGS), RETURN [+1] : CLEAR SO NOT TAKEN AS OVERFLOW : ALL DONE cee e mmnmccmnae SRC2 > 0 MTEMPO_UNPACK (MDR R[ZEROD), ;; UNPACK SRCZ2 FRACTION NEXT/FP. ADDF. SUB ; CONTINUE OPZEROTFLAG3)?, ; WAS SRC1 ZERO PROCESSING ; ~ ; | 1M(01) 28-NOV~83 Floating point and CRC :%g}gg L10C "' 16:30:35 : N 7 Page CLOKX Rev 13.00, Clock rate = 160ns FP.ADDF.SUB : FP.ADDF.SUB "' Floating point and CRC :‘12]?0 "tWk‘(****‘(*ki(tl**i***k**t**************t***i*t**t****t***************k******** 2117t ;45};% ; FP.ADDF,SUB INTERFACE FOR ADDF2/3,SUBF2/3,ACBF FOR ADDRTN ROUTINE :}S};é ; 212176 lnput 212177 ;12178 ;12179 ;12180 ; ;12181 ;12182 * : 12183 ; * 212184 212187 . Resources: 212194 ;212195 $12197 ;12198 ;12199 212202 . Subroutines: $12203 :12216 21221 TR T T : . Exit: 12217 TRR KA KA KR AR KRR . normalized fraction exponent of answer cleared 0OP.ZERO(FLAG3)) . , FF.ADURTM to perform the add function FP.NORM, SNG to normalize round and . pack the answer no return if floating overtlow ) or FU bit set and unde rflow x«return from this routine is to the main catling routine ;12212 ;12213 212214 212215 212216 it difterence >31 otherwise Temp5 212201 ) difference between exponents difference between exponents contains packed answe. Fla?S 12200 ;12209 Platch D Temp?2 ;12196 212207 212208 src2 fraction srcl fraction * form of_fraction . bit 31 overflow bit bit 30 hidden bit . binary point before bit 30 ;12192 ;12193 : 12205 ;12206 Temp0 Temp?2 Flag3 set if sr¢l zero OPZERO(FLAG3)) ;12188 212189 212190 12191 212204 Temp5 Temp? MDR Q . src] biased exponert src biased exponent packed src? packed srcl . ;12185 ; ;12186 T FLOAT MIC MICRO2 B CMTO98.M§ X RNk AR R R AR kAR kA ARk KPRk A kA AR A ARk Ak ko h Ak ke kkkk bk vk kh Ak kdkdrk 297 16:30:35 : O 8 CLOKX Rev 13,00, Clock rate = FP.ADDF.SUB =00 FP.ADDF.SgB: Page 160ns SIOND (MP?,SIZECWORD], OPZERO(FLAG3) NOT SET SRC1 NOT ZERO :; COMPUTE DIFFERENCE IN EXPONENTS : DETERMINE WHICH IS GREATER NEXT/FP,ADDRTN ; OFF TO HEART OF ADD ROUTINE ---------------------- v * PL_D_MLTEMPSI~RLTEMP7], PUSH, ; SAVE RETURN ;0] mmmcnmcmmnn e e mmn s e e nn e H QPZERO(FLAG3) SET SRC1 WAS ZERO ; ANSWER IS SR(2 mf— RCTEMP2] MLMDR], CLEAR GPJERO(FLAG3), — RETURN [+1] M — OO0 I NN = O D00 N AN LA AN B U RSN LN D0 IS I D NN NN N RN LA O N DW= OO0 NON N ISR D D D e ) b b b d e D D D e b e} md ek o 28-NOV=83 = — IO PO PONADTOLVNUNON) NI NI G To ST W 10N (A S 10 ) NNV NN PN POURONUND [ASTCI,CT NN NV N PLRL NIND PV NI NNV N NPV NV AL NINLNVNO N D b J 059F, 0D86,5(10,0010,F047,0068,C e J 059E, 0(86,203A,4080,8047,0000,1 o) e u 0590, 0410,2592,4080,8047,0000,1 D mh e U 059¢, 0880,5BC0,2B51,0047,0C51,0 374+ U PO RONL NN AL FLOAT M Floating point an e T P e TR TR TR T (MT098.M 8 3 MLTEMPSI MB=ZLITOC1E]D, S1ZELWORD], SNG NEXT/FP.NORM. : ; ALSO RETURN +1 FROM FP.ADDRIN RETURN +2 FROM FP,ADDRTN ANSWER IS SR(1 BACK TO CALLING ROUTINE RETURN +3 FROM TP.ADDRTN SUB FACTOR TO EXPONENT CANT OVERFLOW YET OFF TO NORMALIZATION ROUTINE ANSWER IS UNPACKED IN FRACTION IN TEMPe EXPUNENT IN TEMP5 SIGN SETTING D=0/8000 FINAL RETURN TO CALLING INSTRUCTION EXCEPT IF FLOATING QVERFLOW QR FU BIT SET AND FLOATING UNDERFLOW INSTRUCTION THEN FAULTS : ; (MT098.MCX FLOAT.MIC 28-NOV=83 MICRO2 1M(Q1) Floating point and (RC ;}Sszg .T0C ' 16:30:35 c 8 Page (LOKX Rev 13,00, Clock rate = 160ns ¢ FPLADDRTN Floating point and CRC : FP,ADDRIN '' 312249 JRARHRRRII KRR AR IR IR AR AR AR AR AR RN AR AR R AR AR AR AR KA ATk h ke h ok kk ;12250 ; FP.ADDRTN ;12251 ;12252 HEARY OF THE ADD SINGLE PRECISION ROUTINE USED BY ADDFZ2,ADDF3,SUBFZ2,SUBF3,ACBF,POLYF :}gggz ; :12255 112256 ; :12257 112258 112259 112260 212261 ;12262 112263 ;12264 :12265 Input: ) D exponent difference Platch exponent difference Tempd sr¢l fraction TempS srcl exponent Fla%O sign of srcl ADD1(FLAGO)) . TempQ src2 fraction Temp? src? fraction ; ; ; ; ; ; 112266 ; ;12267 ; 212268 ;12269 112270 ; ;12271 ; 112272 212273 ;12274 ;12275 112276 112277 ;12278 112279 ; ; ; ; ; ; 112280 ; 212281 ; 112282 ;12283 ; ;12284 :12285 ; ;12286 ; ;12287 :12288 ;12289 Fla%1 sign of src2 ADD2(FLAG1)) Resources: . Subroutines: OQutput , Operation: . Templ work1n$ temp Flags diff sign flag SAMESIGN(FLAG4)) FP.,ADDSIGNOP1 FP.ADDSIGNOR?2 Temp2 Temp5 D traction of answer exponent of answer sign of answer . Enters on a 3 way branch testing exponent relationship srcl > srce srcl = src2 srcl < srce :12290 ; In the case of unequal exponents . [t the difference is > 31 then a return is effected ;12293 ; 112294 112295 ;12296 ; :12297 Note all other returns are +3 and assume the answer is the unpacked fraction in Temp2 ., exponent in Temp5 and sign positioned in D It the difference is < 31 then the fractional part of the smaller value is placed in Templ and the :120299 12300 ; FP.ADDSIGNOP2) "to determine sign of answer and to complement the smaller value if appropriate :}Sggg : :12298 (+1 for srcd is answer and +2 if srcl is answer) agpro riate sign routine is called (FP.ADDSIGNOP1, : 299: e b m—— ; H et ameeea ek CMT098.MCX FLOAT,.MIC e eees e e e S et MICROZ 1M(01) 16:30:35 28-NOV~83 D 8 ; CLOKX Rev 13.00, Clock rate = 160ns Page : FP.ADDRTN Floating point and CRC :12301 ; In the case of similar exponents src2 is selected as the ''smaller’ value the routine FP,ADDSIGNOP1 212302 ;12303 ; :12304 is called | . note only with !ike signs can the sign of the :123%6 ; therefore, a flag (SAMESIGN(FLAG4)) is used if the 212305 answer be predetermined , ;}Sggg ; signs are unlike and exponents are same $12309 Upan return :12310 212311 . with unlike exponents ; ) . the smaller value is aligned as afipropr1ate 212312 :12313 ;}%%}g H and the fractions are added and the targer exponent value is selected as the correct one and an exit is effected ;12316 $12317 ;12318 ; 212319 212320 ; J12321 :12322 ;12323 ; with Like exponents Naturally no alignment occurs therefore if the signs are the same the fractions are added and a return is made if the signs are unlike the fractions are added if bit 31 is set then the value is complemented and the sign flag in D inyerted exit is then made this is possible mathematically since no alignment ;}gggg ; has ozcurred 312326 E****t***k**t*********************k***************************************t*** ;12327 ;12328 =000 ;12329 FP.ADDRTN: u 0510, 0580,0033,26F0,F847,0851,9 377+ U 0511, 0084,0592,4530,4047,0458,0 u 0512, 0180,0C31,26F0,F847,0854,5 377« 212330 :12331 ;12332 ;}gggz wB<31-30>7, NEXT/FP,ADDRTN.100 :12335 :12336 100} mmmm e m e e ; SRC1 = SRC2 RLTEMP1]_MLTEMPQ], ; EXPS ARE EQUA :12340 ;12341 ;12342 L e L LT L ST L ew==w: SRCT < SRC2 (EXPONENTS) D _D+ZLITOL31.], ; 1S DIFFERENCE IN EXPONENTS >31 212337 ;%Sg%g ;}ngz 212345 =100 112346 U 0514, 0884,1592,4470,0047,0068,A ;12347 ;%sgzg 1000=mmm—mem e e ———— =: SRC1 > SRC2 (EXPONENTS) D_2L1T0C31,]-D, ; 1S EXP DIFFERENCE > 31 ADD2(FLAG1) ADDI1(FLAGO)?, PUSH,NEXT/FP.ADD . 3IGNOP1 WB<31~30>7, NEXT/FP,ADDRTN.200 : : + TEST FOR SIGN OF ANSWER ; GET SIGN OF ANS IN D : ; ;100=memmmcvmm e e as — . ; RETURN +3 FROM FP,ADD.SIGN RCTEMPQ]_MLTEMPY], SAMESIGNTFLAG4)? ; ; IF SIGNS SAME NO CHECK (MT098.MCX FLOAT.MIC MICRO2 1M(01) 16:30:35 28-NOV~83 Floating point and (RC 12350 =0 ;12351 112352 112353 068A, 0C84,0001,06F0,8047,0851,D 338+ ;%sggg 0688, 0024,0001,0080,8047,0000,3 : E 8 CLOKX Rev 13,00, Clock rate = 160ns FPLADDRTN Qmmemme e e e ce e n eSeeeen— ; RCTEMP2]_MITEMPOI+RB, Y THIS IS THE ADD NEXT/FP.ADDRTN. 30 * FOR THE UNLIKE SIGNS OF EQU EXP WB<31-303?, E}g%gg FP.ADDRTN.20: 112358 RCTEMP2] _MLCTEMPOJ+RB 112359 CLEAR SARESIGN(FLAGAS, ;%sgg? Page RETURN [+3) * WAS THE SIGN BIT SET Y THIS 1S THE ADD ' : 112362 =01 ;}gggz FP.ADDRTN.?O: 051D, 0080,0036,4080,0047,0000,3 051F, 0C86,2003,0030,8047,0054,2 E}gggg 112367 ;}Sggg 112370 05A2, 0980,0D73,6080,4047,0000,3 112371 :}Sggg RETURN [+3] P e S LTS L MLTEMP2]_-MB * DONE DONT CHANGE P: Y ONLY IF NO ALIGNMENT CAN WE GET HERE e E L TR ST; D D.XOR,ZLIT12[81], RETURN [+3] Y : FLIP THE SIGN BIT 112374 =000 112375 =001 113376 FP.ADDRTN.100: 0519, 0084,0592,4530,4047,0458,0 12377 112378 112379 ;}ggg? 112382 =011 112383 0518, 0980,0EF6,4030,F847,0051,9 112384 ;}gggg 112387 =100 112388 051C, 0484,10F7,0030,0047,0068,8 112389 ;}sggg FE L e e e T D ; SRCY > SR(C2 RCTEMP1] _MLTEMPO], . SMALLER FRACT (SRC2) INTO WORKING TEMP ADD2 (FLAG1) ADD1(FLAGO)?, * CHECK SIGN COMPLEMENT IF NECESSARY PUSH,NEXT/FP.ADD.SIGNOP1 * DIFFERENCE < 31 ;01]=mmmmmemme e ccecmanannn—— : DIFFERENCE >31 PL_[1F], NEXT/FP.ADDRTN, 100 Y SET TO 31 NEED FOR ACCURACY POLYF ;1 100=======mmmmmmmmcmcmmmmm———— ; RETURN +3 FROM FP.ADD.SIGN RCTEMPO] _MLTEMP11.ASR.P, NEXT/FP.ADDRTN. 20 * ALIGN SRC2 * CONTINUE PROCESSING 112392 =01 0545, 0084,7592,4031,4047,0054,0 112393 FP,ADDRTN,200: ;12394 O Rt e L E L L L L L L L L L LT : SRC2 > SRC1 12395 RETEMPS)_MLTEMP7], * DIFFERENCE IS < 31 ;}gggg 112398 0547, 0580,06F6,4030,0847,0054,5 112399 112400 NEXT/FP . ADDRTN, 250 P * SAVE CORRECT EXPONENT 1 ; DIFFERENCE >31 PL_[01], NERT/FP.ADDRTN, 200 P SET T0 1 FOR =P SHIFT (IS 31) * NEED FOR POLYF ACCURACY o 301 ; : CMT098.MCX FLOAT,.MIC MICROZ 1M(01) 28=NOV=-83 Floating point and (RC 16:30:35 F 8 CLOKX Rev 13.00, Clock rate = 160ns : FP,ADDRTN :12401 = 250: 112402 FP,ADDRTN, 00-===mmmmmmemmmecoonceccmanane ; :12403 : RLTEMP1] MLTEMPZ], 112404 U 05A0, 0C84,2592,4530,4047,045B,4 112405 ;}5289 ;12408 =11 U 05A3, 0484,1AB7,0030,8047,0068,8 :12409 212410 :%52}} ADD2(FLART) ADD1(FLAGO)?, PUSH,NEXT/FP.ADD.SIGNOP? ; TEST FOR SIGN : taietedeid ; RET +3 FROM FP,ADD,SIGNOPZ tt FE B etit ; ALIGN SRC1 RLTEMP2] _MLTEMP1].ASR,.-P, NEXT/FP.ADDRTN. 20 ; CONTINUE PROCESSING Page j 302 g : i ; i ! | : Floating point and CRC .TOoC ' 16:30:35 6 8 Page CLOKX Rev 13.00, Clock rate = 160ns t NORMALIZATION ROUTINES 303 : NORMALIZATION ROUTINES "' Floating point and CR( 2122220220000 080080ttt Tty s el iiae it tl] NORMALIZATION ROUTINES =~ ADDF2/3,SUBF2/3,ACBF ,EMODF ,POLYF =~ ADDD2/3,SuUBD2/3,ACBD,EMODD,POLYD FP.NORM.MUD] =~ MULF2/3.DIVF2/3,MULDé/3,DlV02/3 Input: traction bits 0=31 fraction bits 32-63 Temp2 Temp3 (if double precision) 0/8000 sign of answer exponent and bias plus factor for platch D Temp5 | | i and binary point Resources: Platch D Output Temp2,Temp3 patked answer Operation: T e e LR TR P PR PR P P L e LR LR FP.NORM,SNG FP.NORM.DBL N T P N N N N O N N N O O A O O e O o o O T Al Dl 2P APl P ol B P S F el ol anatF R S o L PP P P b DN I DN AT LR LA A AT PO PRORO DU NI RO RO DN — = 3 3 3 el OO ULV IS O & I DI IO NI WD = O D00 OV N S ARV = OO NV 1w AN LS NN = O DO N NI SN 2 O 00~ N D (AN = O D e O OO E o At L TR L R LR TR LR PR LSRR P P P P P T S P TRT T T FLOAT . MIC D b b > b e e b oD b b b D e oD ok d b D mad b b b e D b b b b b b b D b d D d D D D ed D h b — b ek b e 3 b 3 N NN NI NOND VLS LN LULEL S LSS LU LU C T O Lo U LN L s Ly s A S At INPTV MUNJ DN PUNDNLPINUNLNLNUNLNNI NLELSTNLNLNLNLSL : (MT098.MCX 28-NOV~83 1M(01) e ; MICROZ2 FP.NORM,MUD] Entry for multiplication division instructions to set the sign of the product or quotient then branching on single/dvyuble precision type instruction to.. FP.NORM. SNG FP.NORM,DBL ) . These entries are constrained to allow conditional entry based on single/double grecvsion ingtruction tyfies or they . e called individually where the type is known For single precision The find first set function determines the position ot the binary point, If no 1 bit is found ( possible in the case of a zero fraction from add or subs) then a return is effected with a Otherwise, i ero answer . the value is normalized by extracting and removfng the hidden bit ) the fraction is then rounded (by adding 100-hex since the hidden bit has been removed) the carry it present is added to the exponent l | ! ; ] 28-NOV=83 1M(Q1) : H 8 NORMALIZATION ROUTINES N At FP.NORM,SNG.20 Platch is added to the expowent (Temp5) N Liased with a ”fud? facto~ to account for The addition is in a word to the binary point. allow for over and under flow testing It <0 wunderflow has occurrad P P FU bit is tested if set a fault exit is taken to |E.FLUN.FAULT else fraction & exp are O 1f the value is It > 0 a check is made PR LR correctl gresented in a yyte if overf as occurred a fault exit is taken to IE. FLOV FAULT 1f neither has occurred then the LR TR TR P fraction is packed with the exponent & the sign and a return is effected N 2 For double precision The find first function gets the binary point If the first 32 bits contain a 1 bit P the fraction is normalized by extractiun and removing the hidden bit T T the Low order (bits 32-63) are also extracted the value is rounded (addin 100-hex to bits 32-63 ) and proBag g the carr throu h bits 1 and into exponent T TR Page CLOKX Rev 13, 00 Ctock rate = 160ns The double precls1on pack eqins T 2 AR = O O 00 NOMN SN = OO0 00 NN SNV = OO o ~NIo~ O = O OO O NI~ (NN o 2t ol O o o S U F S [CAVI IV AV I FURIPUNUNIRJ AR b arh o B 3 b e R P Y Fo P O A S SN S8 aF P S S S S o P e OOOOOOOV VOOV O OV OOV OCOMMONOI00 N~ NNNNNNNNOOAONO b b d b ed maed o b b N N b b S D ad TR TR T T P b o} d T T T b b b P e b i e IR T TR TR P R d e —d D S S b b S T D N RJINL N AU R NN NI RINLN N NLNL N NNV A NDNINI NN N TLNVNLPIPONT S Floating point and CRC b FLOAT . MIC MICROZ e CMT098 . MCX 16! 30 35 with the_Low 9 bits of bits 0~31 being saved in bits 32-63 , low order 32-63 are rotated common flows continue with *P.NORM.,SNG.20 It the first 32 bits do not contain a 1 bit then the second 32 nits are checked I't there is no 1 bit then the answer is 0 and a return is effected Else fraction is normalized by extraction & removing hidden bit the Low order 3¢ bits are 0 an additional ''fudge'’ factor of 32 is subtracted from the Temp5 common flows continue with t P .NORM, SNG. 20 R AR R KRk kR A AN Rk kR AR R AR R R RNk AR R AR Rk RN AR RN R AR kN 304 : ; CMT098.MCX MICROZ2 1M(Q1) 28-NOV=83 Floating point and CRC FLOAT MIC 16:30:35 1 8 CLOKX Rev 13.00, Clock rate = 160ns Page : NORMALIZATION ROUTINES ! 305; :12507 =10 112508 FP.NORM,MUDI: 112509 112510 : SET SIGN = 0 112512 IR<5>?, : 11251 U 050A, 0510,0037,28F0,0047,0068,C ;}gg}z $12515 CCEAR MUL1(FLAG2), : CLEAR FLAG FOR LATER USE NEXT/FP.NORM. SNG : R bt et b L Dl .= :12516 D_2L1T12(8], : :12518 IR<5>?, : 112517 U 050B, 0110,0077,28F0,4047,0068,¢ ;10=mmmnnmmmmmecann e ——————— ==; FOR MULF AND MULD,)IVF,DIVD D_2L170C0], :}gg;g CLEAR MUL1(FLAG2), SINGLE OR DOUBLE ; SET TO NEGATIVE : CLEAR FOR LATER USE NEXT/FP,NORM, SNG ; 112521 =0 ;}gggg FP.NORM. SNG: 112524 U 068C, 0818,29C2,4A7D,8047,0068,E 112525 12520 :}Sggg PL_MSS MLTEMP2] : FIND THE FIRST NEXT/FP.NORM.SNG.10 : CLEAR MUL2(FLAGS) WX,NE,0?, 112529 FP.NORM,DBL: 112530 : CLEAR FLAG FOR LATER USE ; WEED OUT ZERO FRACTION PL_MSS MLTEMP2] ; FIND FIRST BIT SET FOR DOUBLE 12533 ;%gggg WX.NE.0?, NEXT/FP.NORM.DBL.10 : WEED OUT ZERO FRACTION : 112536 =0 l ! | eS 112531 ;12532 U 068D, 0018,29C2,4A7D,8047,0054,8 lommmememm— | BIT SET CLEAR MUL2(FLAGS), : CLEAR FLAG FOR LATER USE ; | . :12537 FX.ZEROTEMPZ: 112538 FP.2EROTEMP?: , U 068E, 0C84,0587,0080,8047,0000,1 U 068F, 0486,2137,003D,8047,0069,0 112539 FP,NORM,SNG.10: 112540 ;0mmmmmm e RCTEMP2].0 112544 j]ommem e ea e~==we; NORMALIZE BY EXTRACTION :}§§2% ;}ggzg 112547 =0 U 0690, 0986,2C11,0038,0047,045C,D Seememne- : HANDLES O FRACTION FOR ADDS & SUBS 112541 212548 112549 :}Sggg RETURN (1] MLTEMP2]_(MB RLZER0]).RR.P : BE SURE ANS IS ZEROED : ANSWER IS ZERO RETURN : STRIPS OFF HIDDEN BIT ittt ebrah o otatntalniedebinde 1ot H MCTEMP2) MB+2L1TOL1003, : ROUND THE FRACTION HIDDEN ALREADY GONE PUSH,NEXT/FP.NORM, ADD , ALK( U 0691, 0086,5811,0B850,0047,0854,4 410% 112555 ;12556 MLTEMPS5] MB+PL, SIZECWORD), SIGND CMP? i i ; GO GET CARRY ; :}gggi FP,NORM, SNG. 20: 112554 ' : ADD PLATCH TO BIASED FACTORED EXPONENT : CHECKING FOR UNDER OR OVERFLOW : CHECK >,<,= 0 ! ' H ; CMT098,M(X FLOAT .MIC MICROZ2 28-NOV=83 1M(01) Floating point and CRC ;12557 =00 112558 112559 112560 05A4, 0DBO,5D92,0A57 ,F847,0069,2 112561 % : 118564 05A5, 0884,0587,0030,8047,005C,E 112565 i12366 112568 05A6, 0884,0587,0030,8047,005C,E 112569 :12370 16:30:35 J B CLOKX Rev 13.00, Clock rate = 160ns : NORMALIZATION ROUTINES Page 306 ! % ;00mmmmmo e mm e s e ====; > 0 MUST TEST FURTHER FOR OVERFLOW UB_MLTEMPS).AND. ZLITBLOFF], SIZELWORD], : AND EXPONENT WITH FFOO ; NEXT/FP.DBL.PCK ; wX.NE.O?, : : i i IF NON ZERO THEN OVERFLOW ; )e EL T cmeman ; UNDERFLOW CONDITION (=0) RCTEMP2] 0, : SET RESULT TO O TENTATIVELY NEXT/FP.TESTPSL i TEST IF FU SET ;10=s=mmemmemmeeee- smmmeememee ; UNDERFLOW CONDITION (<0) RETEMP?J : SET RESULT TO O TENTATIVELY NEXT/FP,TESTPSL ; TEST IF FU SET . 112572 =0 ;12903 FP.DBL.PCK: 0692, 0086,2682,4081,4047,0000,1 112575 i1e7t 112578 0693, 0549,8(10,0030,24A7,00FF,B 112579 MCTEMP2]_D.OR.PACK(MB RLTEMPS1),: PACK FRACTION OR WITH D SIGN BIT ; RETURN [¥1] lmmmmesemme e e e e~: OVERFLOW TIME : DFCREMENT THE VA FOR POLYF,POLYD :12583 FP.NORM,DBL.10: :12584 $00===m=mmmmo s men o mm e n e ; 12585 PL_MSS MLTEMP3J, : 112586 WXNE.O?, ; WX IS ZERD MAY BE ZERO ANS FIND FIRST BIT SET IN SECOND HALF 1S THERE ONE 112380 VA_MCVAI=ZLITOL4], SET FLAGT,NEXT/IE.FLOV.FAULT FLAG1 FOR POLYD FPD RIN $12582 =00 05A8, 0480,39(2,4A7D,8047,005A,¢ i1281 :12589 05A9, 0086,2137,0030,0047,046E ,E 05AA, 0586,3011,0038,0047,0069,4 0694, 0486,2041,003D,8047,045C,D 0695, 0884,22F7,0030,C047,005A,7 112590 : . 3; $10593 R e : PUSH,NEXT/FP.T32ERC ; | e; | MCTEMP2)_(MB RCTEMP31).RR.P, j10mm e : NORMALIZED FRACTION HIDDEN BIT GONE 12594 MCTEMP3]_MB+ZL1TOL100J 112597 112598 ;Q=mmmmmmmmmm—eme e cnee e MCTEMP2] MB+RLZEROJ+ALK(, : 112594 =0 ; 33 ; 85 FP.NORM.DBL.11: ; 03 112605 0547, 0884,3387,0010,0047,0069,1 NEXT/FP.NORM.DBL. 50 112606 112607 PUSH,NEXT/FP.NORM. ADD ALKC RLTEMP3)_ (MLTEMP2] RB).AR.9 : ROUND THE FRACTION PROPAGAYE THE CARRY : GO ADD IT IN i SAVE LOW ORDER 9 BITS AS START OF PACK jemmemmeemmceemmeseemecceoeee- : RCTEMP3] MCTEMP3],RR,16, NEXT/FP.RORM. SNG. 20 i : PACK UP AND FINISH ; | | ; : : CMTO98.MCX FLOAT MIC K 8 16:30: 35 CL ? Rev 13.00, i NORMALI1ZATION ROUTINES 28-NOV~83 1MQ1) CRC and Floating point MICROZ i Clock rate = 160ns 0886,3137,003D,8047,0408,D U 05AE, 0D86,5C10,0011,0047,0069,5 U 050D, 0886,5041,0090,8047,0000,1 U O5CE, 0486,0036,4030,0087,0050,1 U 0501, 0D80,0C12,0A32,0047,0069,6 U 0696, U 0697, 0549,8(10,0030,24A7 ,00FF,D ¢884,0587,0080,€047,0000,1 C>\n3flNFQ—ACMOCD‘QCFLflbflflh)—*CNOCO‘QO“AS\MNN)—*CDMDOD‘JO“A“UM“J—‘CDQD U C5AD, PURLNU R RO RLAUPLNURIIND N NL U RN R RN NNV NN PJNININININUNI NINDTLNI NPV o Xb No o Jo o Tololo [edeNeN=NeoNeNeNeNe oo e o T JoTo o Lo ey[oNeNoNeNoNoNeNoNo = = 3 b b e e b d O I DD B 2B DY IANWIN N W AN N A D TOND MAONURURUROAVA) U 05AC, 0(84,0587,0080,8047,0000,1 e S T T N T T S TRTETE S PR PR T PR R TS P TR TR TRI 3 e ead d b b b b b e o bk i} b e o b d D b B el e e D e D D b ed d ed d b b 12608 0 FP.NORM, DBL 50: Page ANSWER IS ZEROQ ; SET FIRST HALF TO ZERO : SECOND HALF ALREADY IS R[TEMP?]_ RETURN [¥1 M[TEMPSJ (MB RLZEROD).RR.P, EXTRACT THE FRACTION ;: MOVE T3 TO T2 AND O OUT T3 PUSH,NEXT/FP,T370T2 . S W ety M[TEMPS] MB-ZL1T0[203, ;; : S1ZELWORD], ;; JOIN COMMON ROUTINE NEXT/FP.NORM.DBL.11 FX.NORM.ADD . ALKC : FP.NORM.ADL . ALKC : et ieontatein ettt SUB 32 TO COUNTERACT PLATCH atatatatutedala el MCTEMPS ] M8+R[ZEROJ+ALKC, ot SI1ZECWORD] ;; USED FOR G H FLOAT : ;: ADD ALKC TQ TEMP5 (EXPONENT) ; RETURN L[+1] ; FX.TESTPSL: FP.TESTPSL: oy e e o o e S B 0 B B o o Oy O B0 ey § GET THE PSL TO TEST FOR FU BIT SET N e e m M e s —c e a n N —— WXTEQ.0? H ;0 VA_ILVAD-ILI T0C41, s e A g e e SET FLAG1,NEXT/IE.FLUN.FAULT e WAS FU SET FU BIT SET SO FAULT TIME ; DECREMENT THE VA FOR POLYF,POLYD :; SET FLAG1 FOR POLYD FPD RTN FU BIT CLEAR SO IGNORE R[refifiii --------------------- : ZZR0O OUT SECOND HALF RETURN L#1j :: RETURN TO CALLING ROUTINE 307 | : H (MT098,MC(X FLOAT .MIC 2%;?0V-83 M01) Floating point and ee ¢ L 8 CLOKX Rev ADD.SIGN ROUTINES Page 13.00, Clock rate = 160ns TR P - (srcl > src2) FP.ADDD.SIGNOP1 - (srcl > src2) entry double precision FP.ADD.SIGNOR?2 = (srcl < sr¢d) Y T TSR PR T FP.ADD.SIGNOP1 Temp1 fraction (single precision) smaller value MDR (bits 0=31) Temp0 (bits 32-63) frction ol smaller value double precision Temp4 (bits 32-63) FLa?O ADD1(FLAGO)) Fla%l ADD2(FLAG1)) if entry FP.ADDD.SIGNOPI1 srcl sign flag D Fla?S SAMESIGN(FLAG4)) sign of answer same sign flag src2 sign flag R N N R A PO PR YD Input I T R R Resources: Qperation: Enter routines branching on the sign et va P of the two operands . Where src1> the sign is the sign of srcl and the src? value s complemented if the signs are different the SAMESIGN(FLAG4) is cleared where src¢2 is > the sign is the sign of src2 and the srecl value 1s complemented if the signs are unlike “emeten. sk kKN Ak Rk A AR AR A AR A AR AN AR AT R AR AR AR A AR ARk AR 308i i : ADD.SIGN ROUTINES '’ Floating point and (RC :**k****************w********fi**ik********tk****i***t**ttt**t*t***tw*******t** - AU AU R RO AL RN AU R RO N NN NU NI FO N N AU RN N NI PO N N NI NI NONJ NV NN N NNV NI MY [o YoM oo NoNe o NoNaNo Yo g le Lo do o Nolo 200l [e s Yoo NeNoNeNeNeNo o e Yo s o oo e e Ao ALl LN O I N N NN NN NN ~NO OO OO OON O ON UV T AU COCOO 0O oD COODCOCO O S WU = OO0 O IS NR =S OO 0O NN N (IR = OO o OCO O NS LNRD S O OO LA TR PR PR T A N T T O S T T T O O S P T PUT N D R TR eGP U QY QN QI U QU QST WU QU ST W i SR SO SR e e g A g ;12647 .foc 16:30:35 ARk AR AR RN o 0607, 0884,4592,4530,0047,0058,0 . o H v * ’ 0580, 0560,0C37,2080,0047,0000,3 . a o ’ » l 0581, 0120,0n77,28F0,4047,0069,8 : l . l T s 8 CLOKX Rev 13.00, Clock rate = 160ns Page ADD.SIGN ROUTINES FP.ADDD.SIGNOPT: RCTEMPO) _MLTEMP4], SMALLER VALUE TO WORKING TEMP ADD2(FLAGT) ADD1(FLAGO)? SIGN OF OPERATION ? =00 FP.ADD, SIGNOP1 e o o U= e e 4 B 8 D_ZLITOLO], SET SAMESIGN(FLAG4) ,RETURN [+3] e g g D o * D_ZLIT12(8], C[EAR SAMESIGN(FLAGA) , SRC2+,SRC1+ SET SIGN POSITIVE SR(2+,SRC1= SET SIGN NEGATIVE CLEAR FLAG 10 SRC2~,SRC1+ SET SIGN POSITIVE IR< NEXT/FP.ADD,SIGN2 DOUBLE OR SINGLE D_ZLITOLO], SAMESIGN(FLAGA) , C[EAR 5>?, IN D DO 2S COMPLEMENT 11__--_-_-__--___-_---_u-____--. sEr SAM IN D SINGLE OR DOUBLE DO 2S COMPLEMENT IR<5>?, NEXT/FP,ADD.SIGN2 D_ZLIT1 IN D ; =00 FP.ADD. S]GNOP? SRC2-, SR(1= SET SIGN NEGATIVE SRC2+,SRC1+ SET SIGN POSITIVE IN D IN D 0585, 0580,0€37,28F0,0047,0069,8 0586, 0180,0077,28F0,4047,0069,8 0587, 0980,0077,2080,4047,0000,3 0698, 0086,1003,008D,8047,0000,3 SRC2+,SRC1SET SIGN POSITIVE SINGLE OR DOUBLE DO 2S COMPLEMENT 1R<5>? NEXT/FP.ADD.SIGN2 SRCZ~,SRC1+ SET SIGN NEGATIVE DOUBLE OR SINGLE ;10 D _ZLIT12[8], 1R<S>° T S v o O — —— * D 2L1T12081,RETURN [+3] =0 FP.ADD, SIGN2 - 0 T o IN D DO 25 COMPLEMENT NEXT/FP.ADD.SIGN2 . . IN D = 9t B ey o 0 S S O G g P SRC2-, SRC1SET SIGN NEGATIVE FLOAT IND SINGLE 25 COMPLEMENT ------__-_—__-_—~-—--_-___-—-_. FLOATING DOUBLE O A 0699, 0886,0003,003D,8047,0060,8 0608, 0081,2043,008D,8467,6000,3 S U O T I U S R 0584, 0080,0037,2080,0047,0000,3 : M T T N 0583, 0160,0077,2080,4047,0000,3 TR TR T P 0582, 0520,0037,28F0,0047,0069,8 men. : 692 16:30:35 mnro 12691 l _hd—é—hd—hfl FLOAT.MIC ‘ .;.a_a_a_a_a_g_a_a_a_a_a_¢_a_a_a_a_a_g_a.a_a_a_d_a_J_a_a_._a_a_a.a_;~J_a_¢_a_a_a_a_g-4_aua_;.a 8 . MCX CMT09 28-NOV-83 M0 MICRO2 ) (RC and Floating point . . 28 ¢ MDR_RL[ZERQJ~MLMDRI-ALKC, RETORN [+3] 2S COMPLEMENT SIGNIFICANT HALF 309 : : (MT0G98.MCX FLOAT MIC MICRO2 1M(01) 28-NOV=-83 16:30:35 8 Page 310 CLOKX Rev 13.00, Clock rate = 160ns : FPMULFZS Floating point and CRC ;%5;29 .TOC ' N Floating point and CRC ! FPLMULF23 " :'127‘08 ,‘&**********i*************t*i*k***t*tik*k*****k******t**t***t****i************ | ;12749 ; ;%5;?? : 44 MULF2 mulr.rf,prod.mf 12752 ; 45 MULF3 mulr.rf,muld.rf,proi.uf ;12753 ; :12754 ; 212755 12756 Input: Q 212757 ; ;12758 12759 ; ;12760 . 212761 MDR Resources: tor mulr Templ, @ Temp$5 $12762 ;12763 ; 12764 ; tor muld 212769 ; ;12770 ;12771 12772 ; (MOPZERO(FLAGT)) 212774 ;12775 (12777 ;12778 ; 12779 ; ;12780 212 84 ; Platch Stepcounter D,0 ;12794 ; ; ; ; :}%;gg ; 012797 212798 12799 all tlags are zeroed to shift operand for multiply iteration count for multiply operation . Subroutines: FP.MULFOP1 FP,MULFOP? ;%S}gg : ;12787 ;12788 :12789 ;12790 212791 ;12792 ;12793 flag set if either operand zero if an operand is zero 212776 ; ; fraction exponent TempO fraction RTemp8 exponent Fla% sign of operand MUL2(FLAG3)) Flag! 212773 ; 212782 ;12783 muld.rf/prod.mf Fta%Z sigh of operand MULT (FLAG2)) 212765 ; 212766 ; ;12767 ;12768 ;12161 mulr.rf FP.NORM.MUDI Exit: Qutput: parse mulr.rf parse muld.rf/prod.wf normalize round pack product FP,WR]ITE23 . Temp¢ Fla?E packed product cverflow flag Fla%S underflow flag, OVER(FLAGZ)) UNDER(FLAG3)) set 11 . appropriate set 1f apprapriate Opuration: . Both operands are validated and parsed the exponents are added 1M(0Q1) 28§?Ov-83 16:30:35 Floating point and ( 15 OO OO OOOOTSOCO P D b3 S ;12 12 12 12 ;12 212 12 12 12 12 12 12 12 12 D12 D12 000NN LHAN = OV NN DA = O : MICROZ CMTO98.MCX FLOAT.M IC GO 00 GO CO €0 00 0 €O CR GO 0O OO €O O 00 T 00 O3 00 0O G0 €O GO C0 CO 0o 00 i :%s % ;}S 51 ;%g S% B 9 CLOKX Rev 13,00, Clock rate = 160ns : FPL.MULF23 It either operand is zero the product is 2ero and an exit is effected . otherwise, the stepcounter is set to 14 the two operands are shifted right 5 places and the multiplier (Temp2) also placed in @ ; The multiplication is performed 2 bits at a time ; ending with 26 bits of product in D the binary point is at bit 25 and the ; : "'fudge'’ factor for normalization is 99~hex (B0 for_the extra bias 19 for platch and the bp of ; ; Entr§ to the normalization routine is made where the XOR of the two sign determines the sign ot the product Upon return a branchinauexit is made to differentiate between H rxxxnnnnxexfPA ENTRY AND MULF2 MULF3 MULF2 and MULF3 INTERFACE*#xwknkkxx (OS.RED) - FI.ADDF2,REG/F].ADDFZ2.MEM (OS.RED) = F1.ADDF3.REG/FI.ADDF3.MEM :'12 21' SR AR RR KRN R A TR kR K KA R Ak g e ek e 212825 ek o sk e o ko ke e ok g ok ok ok ok ol iy e o ol ek e e e ;12826 .REGION/IRDX.R1L,IRDX,R1H/IRDX.R2L,IRDX.R2H v 0080, 0480,0036,4030,0047,0008,2 ) , u 0081, 0886,2034,403D,8047,0463,A ;12827 =000 212828 :}sg%g 1000w=mmmemmremmcccmmuccmenam - ; MULR (SRC1) IS ZERO NEXT/FP.MULF.10 ; WASTE WORD BUT 112831 FP.MULF23: Rk RERK R R AR S ORRA ;12833 ;0 TO AN MBUS SOURCE ;12832 ;152;? V0 emmmmcmcn e e m s m e ———— : START OF MULF2/3 MCTEMP2] Q, PUSH,NEXT/FP,MULFOP1 s PARSE MULR ;12836 FP.MULF,10: ) U 0082, CL85,2437,0A82,0047,0058,( 323% 112837 ;12838 1010=wncmmmnncnnecm e m———— RLTEMP8] _EXP(MCMDRI), ; EXTRACT EXPONENT ;}Sgfi? PUSH,NEXT/FP.MULFOP2 ;12839 212842 U 0083, 086,5001,05D02,0047,045D,4 FRO,FLTZTY, ; TEST VALIDITY OF MULD b ;011 ~==mmmmmmc e s cmn e —a— : 212843 MCTEMPS] MB+R[TEMP8], ; ADD EXPONENTS ;12845 212846 MOPZERO(FLAGY)?, PUSH,NEXT/FP,MULF,200 ; EITHER OPERAND ZERD? ! PREPARE FOR THE MULTIPLICATION ;12844 Page SIZECWORDY, : e ; 311: 0DBO,0EF6,4030,2847,0061.0 0C86,20F7,1030,0047,0063,8 U 0638, 0886 ,00F7,0080,0047,0000,1 b d md b a3 b b U 0610, 0(84,0585,0670,8307,0050,6 ) d emd e U 0500, o b o} N b A U 0504, D od D b D e u 0087, 0080,0036,4670,0047,0050,6 7 FP.MULF. 100 FP.MULF 200 ONOr TN LI S B O OO 0000 000000 CO 000000 N N NN N NSNS WO OOV = O O 00 NN NS (NN — OO 00 N = SN0 00 M AUNIMAN = OO 00 NN AMO = OO 00 O VSN e P T T D d e T e D e T T b D T T e e e e b D e 0086,2582,4570,0047,0450,A ) u 0086, I TR TR TR TR PR PR PR TR TE PR TR T 2 L S U 0085, 0186,5€10,0014,C847,0008,6 b b d b U 0084, 0480,0027,9320,0047,0008.,4 : o Co Co Co Co©0 G0 Co 00 o S G GO Co §0 0o CO C0 00 €0 0O 0 Co CD Co 00 CO Floating point and CRC 16:30: 35 €0 €0 00 00 0O Co CO O 06 £ 00 O3 00 CO 0o Co 0O 0o O FLOAT MIC 28-NOV-~83 ) H (MTQ98,MCX FUNUALNRLNU PRI RN AL NI NNV ANV NN NINNU NI NN AINININI NINJIN NN NI NINLNDNLNININI P PUNIN) ) . 9 5 0KX Rev 13.00, Clock rate = 160ns FP.MULF23 THE MULTIPLICATION MULFAST+ CAND IN RCTEMPOI, Y STEPCTR IS 14 AT START DBZ STEPC?, NEXT/FP,MULF.100 * DECREMENT & BRANCH TILL DONE * Q HAS MULTIPLIER TO START SIZELLONG], Page : * RBUS HAS MULTIPLICAND Y PRODUCT IN D AT END e —————— ; ALL DONE THE MULTIPLY m mmmm e $10]mmm MLTEMPS] _MB=-ZLITOL991, SIZELWORD] * ADD FACTORS Y 19 FOR PLATCH * AND BIT 25 POSITION OF BP ' =99(HEX) WITH 80 FOR EXTRA BIAS ;110=mmmmccmc e H MLTEMP2] D MULTCFLAS2S XOR MUL2(FLAG3)?, PUSH, NEXT/FP,NORM.MUDI " MOVE ANS TO TEMP FOR NORM : XOR OF23 = PRODUCT SIGN * FLAG1 : IS CONSTRAINED OUT 111Q=mmsmmsrm o mcn e n -H 1R<2-0>7, NEXT/FP.WRITE23 ' 2/3 OPERANDS * DO WRITE OR GET THIRD OPERAND SEGION/FLOATJR1L,FLOAT.R1H/FLOAT.R2L ,FLOAT .R2H/FLOAT.R3L ,FLOAT.R3H ------------------------------ ; MOPZERO(FLAG1) NOT SET Bl 51, * SET PLATCH TO 5 FOR MOVING OPERANDS STEPC_14. NEXT/FP.MOLF. 250 ' SET STEP TO 14 (26 BITS + 1 SETUP) : —. ; MOPZERO(FLAG1) IS SET P L T RLTEMP2]_FLAGS_O, * ANSWER 1S 0,ZERO FLAGS TOO NEXT/FP, leTE23 H 1R<2=0>77 2/3 OPERAND WRITE 250: MLTEMP21_Q_MB.ASR.P Y SHIFT MUL RIGHT 5 (PLATCH) MITEMPO]_MB.ASR.P, * SHIFT MUL RIGHT 5 (PLATCH) RETURN [¥1] H MICRO2 1M(O1) 28 ~NOy-83 Floating point and CRC ;12893 .T0C " Floating point Page CLOKX Rev 13,00, Clock rate = 160ns FP.MULFOPZ and : CRC AR AR KAk kR AN AR AT R AR R AR FP.MULFOP1 FP.MULFOP2 ' AR AR A AR R AR A AR AR Rk kkob bk dkk sk SINGLE PRECISION OPERAND PARSERS FP.MULFOP1 PR TR TR P TR TR 2 9 Temp2 packed operand clear an?2 MUL1(FLAG2)) clear Fla?1 MOPZERO(FLAG1)) AT P P Input: Temp2,Q fraction unpacked binary point at bit 30 Temp3 exponent T R R Resources: overflow and hidden bit 31-30 T I Fla%2 sign of operand . MUL1(FLAGZ)) P Fla?1 set if operand zero MOPZERO(FLAGI)) e Exit Return +1 Return =1 1E.OPER.FAULT if operand valid and >,< 0 if operand =0 if reserved operand FP.MULFOP2 Input: MDR packed operand clear Fla?S _ MUL2(FLAG3)) Fla%1 ma;be either way MOPZERO(FLAG1) Resources: Temp0 unpacked fraction FlaflS U (MUL2(FLAG3)) sign of operand = Fla%1 it either operand 0 is set Return +1 if MOPZERO(FLAGY)) Exit: 1E.0OPER,FAULT AR KA AR AR AR R R R AR R R KRR R R Rk ARk ke kR kR valid >,<,=0 if reserved operand khkwkkkkk Rk kR Ak kh ke hkkrkkkkk | SN NS LI D : FP.MULFOP1 IR T NN INIWNID = OO 16:30:35 A O NN AN = OO ARk kR L AN N AN AN PO NI NN PO PIPO RO N = =3 = [ NN D BN DN S BB e ek b e e > b b md e D oD ah ah o ead b D ik 3 e 3 ) D e ) ) b b D e D ) ) D b d b PNV LN NN NY NOALNLNLNINLNIALNL AL AN NI NN PNV PN NARALNINLNULNL PO NN NS PN OO00000000 OO OO0 OO0 O0O0 OO0 OO0 O OV0O OO O OO0 OO D0 DO OO OO 212 ‘12 12 12 12 12 12 12 12 12 O 0300 00 00 OO =lelelelalelw e lele )l s olie il s L o) NN =2 OV~ O\NINMNN) = OO 00NN DNMANN = OO : 12894 e N I T T e e T TR T T P R N R P T N IR LA LR IR A LR LR . CMT098.MCX FLOAT . MIC FLOAT . MIC MICRO2 28-NOV~83 1M(01) Floating point and CRC 16:30:35 E 9 CLOKX Rev 13.00, Clock rate = 160ns : FP.MULFOP1 FP.MULFOP2 063A, 0C84,2437,0AB1,4047,0858,8 323% QI QU QU s WS ¥ —l—l_\_\d_l_l_s_a_\-—b-—\_\-—l_)-—l.—l_t-—l—l—)—h—l_l_\_l._) ; ggzg FP.MULFOP1: ; sgg? FRO.FLTZY 112952 =00 0588, 0C80,0036,4030,0047,00FF,8 0589, 0456,2677,108D.8047,0000,1 112953 112956 112957 ;0l=m=m=eeemeemeeseemee——seo—ese ; SRCT < 0 M[TEMPZJ Q_UNPACK(MB RCZER0J), ; UNPACK THE FRACTION Y MULTIPLIER DIVISOR SET MUL1TFEAGZ). 112958 : 5323 QOO NN EIANND 2O 000N e 0O 00000 O 0OV O0OVOO O D000 0000000000 COCO NN NN NN e m e m e ; SRC1 >0 CLEAR MUC1TFLAG?), RETURN [+1] ; UNPACK THE FRACTION ; : =00 ¢ FP. MULFOP2 AONORLALAINLPLNLNLTLNLNONININDND P O TR X T N R R S L na 058F, 041F,2677,008D,8047,0000,1 ;1] mmmm * NOTE DIFFERENT RETURN *%xx MLTEMP2]_Q_UNPACK(MB RLZERO1), 2968 % [P 058E, 084C,05B7.0080.04E7,0000,1 Y SET UP ZERO “ SET FLAG TO INDICATE ZERO RETURN [-1] 2967 (U QS W W N 058D, OC5F,2677,008D,8047,0000,1 110mmmmmmmmmemmemacmecem—e———— ; SRC1 = 0 2966 1 : RLTEMP2] Q_0, SET MOPZERD(FLAGY), : 532? 2 2 2 2 : RETURN [+1] 112962 112963 R 058C, 0£80,0036,4030.,0047,00FF,8 ;00=-=eceecmemcmmmmammece—smma—a- : RESERVED OPERAND KEXT/1E. OPER. FAULT [ 0588, 0C16,2677,108D,8047,0000,1 * TEST VALIDITY : Sggg £12961 05BA, 084C,0587,1080,8047,03FF,F * PARSE OPERAND 1 RETEMPS] LEXP(MLTEMP2D) , } 2949 oo TR (MT098,MCX - - - . = : NEXT/IE OPER,FAULT T ST ettt --; MTEMPO_UNPACK (MDR RLZEROD), : RETURN [+1] : SET MUL2(FLAG3), R[rEfipai-a, --------- ; MDR_Q, RETURN [+1) H ;1] e e e c ene M m esc MTEMPO UNPACK (MDR RLZEROD), CLEAR RUL2(FLAG3), RETURN [+1] SRC2 < 0 UNPACK THE FRACTION s SET MULTIPLICAND DIVIDEND FLAG ; H SET MOPZERO(FLAG1) RESERVED OPERAND H K : ; SRCZ = 0 ZERO QUT THE OPERAND ALSO THE PACKED FORM SRC2 > 0 UNPACK THE FRACTION Page F 46 47 DIVF2 divr.rf,quo.mf DIVF3 divr.rf,divd.rf,quo.wf Input: Resources: i | R EH K KA W RRR S M T T T Fla? MUL2 (FLAG3)) | . | | . fraction exponent sign of dividend Fla?1 set if either operand 0 D.Q Subroutines: for division operation MOPZERO(FLAGT)) Stepcounter division loop control Exits: FP.MULFOP1 FP.MULFOP2 FP.NORM.MUDI parse divisor parse dividend . normalize,round, pack quotient N R R A T TR FP.WRITEZ23 to write out quotient Operation: The divisor is parsed, validated. if 0 a fault exit is made to IE.FLDBZ.FAULT Else the dividend is parsed,validated if 0 the quotient is exit to FP.WRITE23 Else D and Q are set up to perform the division 2 bits at a time - 26 bit quotient(Q) Exponents are subtracted and a ''fudge'’ factor of +67-hex added ( =19 for the binary point at bit 25, and +80 for the bias) . L Normal1z1ng.round1ng packing done entering at FP.NORM.MUD] to determine sign of quotient by the XOR of the operand signs Upon return exit branches to differentiate between DIVF2,DIVF3 EN TRY AND INTERFACE®*%kkkkkk& F1.ADDF2.REG/FI.ADDF2.MEM (OS.RE D) FI1.ADDF3.REG/F1.ADDF3.MEM (0S.RE D) xxwxankwnscfPA DIVF2 DIVF3 . | ! | Temp2,Q fraction Temp5 exponent FlagZ sign of divisor MUL1 (FLAG2)) for dividend Temp0 ,MDR RTem ! | for divisor TR TR 1 divisor dividend MDR 315 |i ! R T AR AR AR AR RRRA AR kAR Ak ARk ok Aok AR kR AR Rk A Rk KA TR TR PR PR P PR TR TR TR RRRKE KRR RN AR page : FP.DIVF23 " Floating point and CRC O AN LN — O OO NOMNAS = OO0 NN N ONNL AN — DO .70C "' W NS 3 3 b b b b b b md e b o NS WRD = O OO N = O OO0 N TN T TR T P b b b b D e T R amb mad e P A D D D b e AL A R b b e eh D e be e D LR LALAl (NN A PO PO P PONINONIND 12991 b b ok b b b e o FLOAT.M b ok e o> 3 e . CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 : FP.DIVF23 28-NOV~83 CRC and point floating 1M01) e A R (MT098.M i 9 '-tt*tt*fiti***Q*t****’(*t*\**ttt**titt**iil’*tt***ii***ttttti***tt*tt*‘*tt*tttiti CMT098 . MCX MICROZ FLOAY MIC TM(01) 28-NOV-83 Floating point and CRC 16:30:35 6 9 CLOKX Rev 13.00, Clock rate = 160ns : FP.DIVF23 ;13045 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H :13046 =00 0094, 0480,0036,4030,0047,00FF,C 113047 Y| PP A wewe=ewe==; DIVISOR IS ZERD NEXT/IE.FLDBZ.FAULT :}ggzg * OFF TO FAULT EXIT RRR KA AR ARk §ORARA 113050 FP.DIVF23: 113051 1 SRS SUSP AR~<== MAIN ENTRY 0095, 0886,203A,403D,8047,0463,A MLTEMPR] PUSH, NEXT/FP MULF OP1 113052 ;}gggz 113055 0096, 0C85,2437,0AB2,0047,0C58,C 323% ;1Qmee=cemsescecee—mscmmcscenacne ; RETURN IF DIVISOR NE 0 R[TEMPBJ EXP(MCMDR]), FRO.FLTZ® +13056 $13057 ;}gggg 113060 113061 PUSH,NEXT/FP,MULF OP2 0000 ;13062 0097, 0886,5003,05D2,04E7,0605D,8 Y GET DIVISOR (SRC1) TO MBUS SOURCE ¢ TEST VALIDITY OF OPERAND ;}gggg ; 1lmesemmmmmmeemaeseaes cm————; M[TEMPSJ RLTEMP8]=MB, : SUB FXPONENTS MDR_0, : sxzs[woab] $13063 : PARSE DIVIDEND (SRC2) v TEST VALIDITY MOPZERO(FLAG1)? ; : E}gggg 8EGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L.FLOAT.RZH/FLOAT.R3L.FLOAT.RBH * s 113068 0508, 0481,2005,7030,0047,005¢C,0 $13069 ;%gg;g STEPC_14. ,REXT/FP.DIVF.40 113072 . 05DA, 0C84,05BE,0670,8307,0050,6 ;0%=mmmmmemmmseeecsem—ceceosewes ; & M[MDRJ D _RLTEMPO], * SET UP DIVIDEND FOR DIVISION ; DO DIVIDE j1x=smmmmeeccccaeas wm—tmmm—anes ; 113073 R[TEMP?J FLAGS_O, : ANS IS ZERD :}gg;g .00 NEXT/FP.WRITE23 © GO WRITE OUT 113074 1R¢2-0>?, : $13077 FP.DIVF.40: $13078 113079 0500, 0480,0024,(320,8047,005¢,0 ;00==mmmmmemmeecceeee—cveme——— ~: DIVFAST+ SOR IN RITEMP2], ; 113080 ;}gggg SI2ELLONG],DBZ STEPC?, NEXT/EP.DIVF.40 113083 05¢1, 0586,5C11,0013,3847,0069,A METEMPS] _MB+7L1TO[67], :}gggg SIZEC 113087 =0 069A, 0CB6,203A,457D,8047,0450,A 0698, 0080,0036,4670,0047,0050,6 :13090 ;}ggg; 113093 +13094 113095 * STEPCOUNTER 14 TO START ; (0] =memm e —————————— ewwamue==; PREPARE EXPONENT +13084 113088 113089 THE DIVISION = Y =19(HEX)PLATCH &BP : +80 BIAS = 67 TOTAL ;Qme=memmmmecmcsecsecccmmesee-e ~; METEMP2]_Q, * MUL1(FLAG2) XOR MUL2(FLAG3)?, PUSH,NEXT/FP,NORM.MUDI PUT INTO NORM REG ; SIGN OF QUO TEST ; B B EnOGETEE TR : 1R<2-057, . PREPARE FOR WRITE OUT NEXT/FP.WRITE23 : page 316| H H CMTOQB.ME% FLOAT.M MICROZ 1M(O1) Floating point and ;}%83? .70C "' ' i 16:30:35 2%5?0V-83 H 9 Page CLOKX Rev 13.00, Clock rate = 160ns : FP,ADDD2 FP.SUBD?Z « FP.ADDD2 FP.SUBD2 '' Floating point and (RC 213098 ;ukt*ti*ututt*tfl*tntttu*twtttwtfl\t*wt**t*t*****i******************t*i*t***tfl*t :13099 :}g}g? : 60 ADDD2 add.rd,sum.md 213102 ; 62 suBDZ sub.rd,dit.md 213103 ;13104 ; 13105 ;13106 @ 213107 ;13108 ; ;13109 ; 13110 ;13111 J13112 213113 J13114 Input: tor srcl Temp2,0 Temp3 Temp$S subroutines: FP.ADDDOP? 0S.DMUD Exit: 13127 Operation: :13128 ;13129 $13130 213131 213132 213133 213134 J13135 213136 . ;}%}%g ; 213139 ; ;}g}zg : . . fraction (bits 0-31) (bits 32-63) exponent Fla?O sign of operand ADD1(FLAGO)) . i Fla%1 SUBD inst till 1st operand SUB(FLAG1)) parsed ;13123 . 113124 ; ;}g%sg : srcl (bits _0-31) tbits 32-63) Resources: 13115 $13116 13117 ;%%}}g : ;13120 13121 3122 . Temp1 MDR FP.WRITE.SEC parse ogerand get src ) write second part of answer . The entry for the SUBDZ instruction sets the flag and falls into common code with ADDD2 The src1 operand is parsed and validated In the case of SUBDZ_ this results in the sign being inverted, The second operand is obtained via a call to 05.DMOD Return is through IRDROM to FP.ADDD.20 where the operation_continues. ) Upon return bits 0-31 ot the answer are written and FP.WRITE.SEC is entered to finish up wexknwknxxFPA ENTRY AND INTERFACEn#sxarwnwn (OS.FIDRED) =~ F1,ADDD2.REG/F1.ADDD2.MEM 213142 Enttttiuttwtntttt*tttifi*ttitfit*it*tfi*iitttttttlttttttittt*ttttiitttttlttiiliii { 16:30:35 28~-NOV=-83 1M(Q1) 9 CLOKX Rev_13.00, Clock rate = 160ns : FP.ADDD2 FP.SUBD2 Page out suirSui ouiru g AN O (A N puir ol Suib Sl Y LR (A Sl NONCO O OO OO O WNUAIANLAWAIVALILAILA B S B B - B oocowownbum—-oooowowbwm—ooooo\lomx\ e N 1 43 _REGION/IRDX.RIL,IRDX.,R1H/IRDX.R2L,IRDX.R2H G put-gub gt guivniGuiGubtGul Guiuiaul G R [ =3 b b —h b b — U 00AA, 0064,2592,403C,4DDA,0056,F B b U 00A9, v00E,203A,418D,8047,0419,0 O (N N O TR T P QT WIS DI I (U (I U QT T VT U 00A8, 0(84,1437,0AB1,4047,0C5C,4 323« TR TR TR P Dl PRPR P T U 0356, 0448,0036,4030,0047,000A,8 QUL S T iy Floating point and (RC N A2 Lnd LA LA FLOAT.MIC MICROZ AN L L2 L : (MT098.MCX L U ; Fp SUBDZ: ;O éET SUB(FLAG1T) FP.ADDDZ' ORRAERAR AR KRR AR AN E SET FLAG INDICATING SUBD INSTRUCTION KKKk RAR SR LN LLL -------------------- EEL LI R[TEMPSJ EXP(METEMP11) FRO.FLTZ? PUSH,NEXT/FP,ADDDOP ; ; PARSE ADD1 TEST VALIDITY OF OPERAND M[TEMPZJ -0, SAVE BITS 0-31 OF FRACTION OF ADD1 CLEAR SUB(FLAG1), LOD INC BRA?, BE SURE PUSH, NEXT/0S.DMOD ;10 RCDST.RI_MLTEMP2], ccorP1, SuBD FLAG IS CLEAR GET ADD2 RETURN IS FIRST THROUGH IRDROM 10 FP,ADDD.20 FINAL RETURN HERE WHEN HAVE ANSWER 0 O St D W Y WRITE NOTREG SIZELIDEP], SET MM.NODINT, NEXT/FP.WRITE.SEC : ; FIRST INSTRUCTION OF WRITE SET CONDITION CODES ; ANS IS IN TEMP2 TEMP3 ; NO INTERRUPTS ALLOWED BETWEEN WRITE : WRITE SECOND HALF 318 16:30:35 28~NOV-83 1M(Q1) .T0C ' J 9 Page CLOKX Rev 13,00, Clock rate = 160ns : FP,ADDD3 FP.SUBD3 AR Ak AR AR KRR ARk NN R ORIk Ak KRRk R i : FP,ADDD3 FP.SUBD3 ' Floating point and CRC KRR AR ! 319; ek hkk ok k 61 ADDD3 addl.rd,addl.rd,sum.wd 63 SuBh3 sub.rd,min.rd,dif,wd SRR T TR L PR T AR Templ MDR s ( R R T Input: N Resources: T R e TempZ,Q Temp3 fraction (bits 0-31) (bits 32-63) | Fla?l SUBD inst till 1st operand | T R T e Temp5 exponent Fla?o sign of operand ADD1(FLAGO)) N SUB(FLAG1)) S Subroutines: o PR AR R | . . tor srct Exit: parsed FP.ADDDOP1 0S.DRED parse ogerand get sr¢ . FP.WRITE.SEC write second part of answer 0S.WRT1 - OOV VOV OV OO0 D000 0000 00 CO 00 COCD00 N NN NN NN N NINWNN = OO0 O NN S NN = — OO = O D O NN S W = OO OCOOC OO R 2 e AN SN NN = O L O NNV SN et b ok b o b b b ek o PVNLALNONLALPONLINONIPLNINI NINININININY = — — =3 CO b b b ek b b T R T T D b md b o ) md e T R b T b i e R R TR T P T P b D d d b b R LR DR D d ik D e b LA N i LA LA L A AN N A A U A LA L M L N G N L N L b AT Od eN ek N Ab Ad Ub N NN N NN N NN N N DAN N LA b rd D e o e —3 b b i e ek md kb R LL ] D 2 Floating point and (RC D ok ek FLOAT .MIC MICROZ b > be ; (MT098 . .MCX e S ; get sum,wd/dif,wd . Operation: The entry for the SUBD3 instruction sets the flag and falls into common code with ADDD3 The srct operand is garsgd and validated In the case of SUBD3 this results in the sign being inverted. The second operand is obtained via a call to 0S.DRED Return is through [RDROM to FP.ADDD.20 where the operation continues. , Upon return 0S.WRT1 operand wxwnxnxvxxFPA ENTRY AND exit is called to get third upon return (+1) bits 0-31 are written is to FP.WRITE.SEC to finish up TNTERFACE#®xhauxavin i (OS.FIDRED) = F|.ADDD3.REG/F].ADDD3.MEM R AR A AR AR R R A AR RN RN R R Rk AR R M AR W Rk AR AR RN AR AR R R AN AR R R ARk kk : ; CMTO98.MCX FLOAT.MIC MICRO2 16:30:35 28-NOV-83 1M(01) Floating point and (RC K 9 CLOKX Rev 13,00, Clock rate = 160ns : FP,ADDD3 FP,SUBD3 P 4 N NN AN NN N N .R2H ;13219 .REGION/IRDX.R1L,IRDX.R1H/IRDX,R2L,IRDX § HRRRR $13220 FP,SUBD3: :13221 ; AT U 0357, 0048,0036,4030,0047,0008,4 U AT U TR e T KT U U LN L (A KN (i AN A T LA P J 00B7, 0064,2592,403C,4DDA,0056,F L N U U 0085, 080E,203A,4180,8047,0418,0 U 00B&, 0C80,0036,41B0,0047,0414,0 S S LS LN LS LSS LN LS LU LV NN TS LV LS 1A S ) LD D DD B NN N N N A N 1132 132 D PO PO N 0T WD QUEE RN S N A NN N U AP QU QT WIT QU QU WS (DI QU QU U 0084, 0C84,1437,0A81,4047,0C5C,4 323* 2132 Om\loml\wf\)—‘oO(D\JO\U'IJ‘LN'\)—‘OO@\IO\U! SR = 11333 132 R H R K AR joTmmem—sse—semesssoseucssones --; ; SET FLAG INDICATING SUBD INSTRUCTION SET SUB(FLAGY) 55§ ;1322 013226 Page FP.ADDD3 KA K R ARRA SR ;Q0==memmmemossossseooooosaneses : R[TEMPSJ EXP(M[TEMP1J) ; PARSE ADD1 PUSH, NEXT/FP.ADDDOP1 H ; TEST VALIDITY OF OPERAMD FRO.FLTZY ;0]mmmsmas e M[TEMPZJ Q, e —————— PUSH, CLEAR SUB(FLAG1), LOD INC BRA?, SAVE BITS 0=31 OF ADD? SR(C1 CLEAR SUBD FLAG GET ADD?2 NEXT/0S.DRED RETURN THROUGH [RDROM TO FP,ADDD.20 LOD INC BRA?, GET THIRD OPERAND TO WRITE PUSH,NEXT/0S,WRT1 FINAL RETURN HERF TO GET THIRD OPERAND ..------_-~--_-~__--~.---w- REDST RI_MCTEMP2], CCOPT, WRITE NOTREG,SIZELIDEP], SET MM.NOINT, NEXT/FP.WRITE,SEC. FIRST INSTRUCTION OF WRITE SET CONDITION CODES NO INTERRUPTS BETWEEN WRITES WRITE SECOND HALF 320 MICROZ Floating point and CRC ek ) ) 3 b ; %gg? .70C ' ; 3252 L 9 D b e ;13256 ; ;13257 ; ;13258 ; 213259 ; ;13260 ; R AR R R R R R R Input: ; $13265 ¢ ;13266 ; 213267 ; :13268 ;13269 ; Temp5 b bt e 3. 4 g H ; . ; ; Fla?O ADD1(FLAGO)) sign of operand . Fla%3 set if operand 0 OPZERO(FLAG3)) . . Return +1 if operand valid and >,<,=s0 1E.OPER.FAULT if reserved operand *xThis routine called at FP.ADDDOP1.20 by FP.MULDOP? FP.ADDDOP? Input: ) Temp! srcd (bits_0-31) Temp? exponent (bits 32-63) MDR . Resources: . Temp! fraction (bits 0-31) Fla?1 sign ot operand (bits 32~63) Temp4 ADD2 (FLAG1)) Subroutines: FP.ZEROTEMP1 to zero temp e TS ; S PO 23 N NV D N N NN SRR H ? H fraction (bits 0-31) with bits 31-30 ) overflow and hidden bits fraction (bits 32-63) Temp3 Exits: ) . . Q . set if SUBDZ2/SUBD3 instruction Operation: Ofigrand . is parsed . if not zero or reserved this involves rotating bits 32-63 and unpacking bits 0~31 the renaining 7 bits that are alqeadg a gart of bits 0-3T are removed from bits 352-6 O ; AU NLNUNU NNV ML PUTLTL NS N ; RN H PO RO R ; AN WA H N AN AN A AN N H N U AT A Ul U LA A A L ; . NU H b b D d smd b b b b mad ok 132 g ; exponent Resources: ;13271 ; ; : _ srcl (bits 0-31) (bits 32-63) SUB(FLAGY)) ;13270 ; ; ; Temp1 MDR Fla?1 213263 ; H A R K AR kb ok Kk kb b R R R R KRR R R RO FP.ADDDOP1 :13262 ; ;13272 213273 113274 213275 ; gg ? : FP.ADDDOP? FP,ADDDOP2 ' Floating point and CRC ;13261 ; 213264 Page CLOKX Rey 13.00, Clock rate = 160ns : FP.ADDDOP1 FP.ADDDOPZ DOUBLE PRECISION OPERAND PARSERS : gggé : d b D e d cd 3 b d b D b ek D b e 16:30:35 AR KKRKK A RA KRR ;13253 ; LA FLOAT, cLemamLe. CMTO98.“§% o et 3 b > b +d ed b D b b o} e : -~ ; 28=NOV-83 1M(O1) ;tt*tkkt*t*t*ttt'tt***t**t**kk***fi**fik***kt*kt*t**k*****‘*t**t*it**t**itk**i** 321 : : {MT098 . MCX FLOAT.MIC MICROZ 1M(01) 28-NOV=-83 Floating point and CRC 16:30:35 ¢ M9 CLOKX Rev 13,00, (lock rate = 160ns FP_ADDDOPT FP.ADDDOP2 Page ;%%ggg .SBGION/FLOAT.R1L,FLCAT.R1H/FLOAT.R2L,FLOAT.RZH/FLOAT.R3L,FLOAT.R3H U 05C4, 0C80,0036,4030,0047,00FF,8 U 05C5, 0845,2387,0010,C047,005D,C U 05C6, 045(,0587,1080,C4E7,0000,1 J 05C7, 0885,2387,05D0,C047,005D,¢C ; ENTRY FOR GH FLOAT :13306 FX.ADDHOP1: : ;13307 FP,ADDDOP1: :13308 ;00 = =mmmmmmm ee m e ; RESERVED OPERAND : ;13309 NEXT/IE.OPER.FAULT ;13312 R[TEMPBJ MLMDR].RR.16, ; ROTATE BITS 32-63 ;;%g}g NEXT/FP.ADDDOP1 .20 3 NOW UNPACK THE FRACTION 113316 ;13317 ;13318 110 m e m e : ADD1 =0 RLTEMP3] _a_0, ; SET ADDY 10 0O MDR O, ; ALSO THE SECOND HALF ;}%%S? RETURN [+1] : BACK TO GET SECOND OPERAND ;13322 ;13323 P D e T; R[TEMPSJ MCMDR].RR. 16, ; :13310 213311 $13313 ;13319 :1332¢4 ;}gggg 0lememeeemeem s cm e ; ADDY SET ADD1TFLAGOD), < 0 ; SET SIGN FLAG SET"OPZERO(FLAG3), : SIGNAL THIS SUR(FLAGT) 7, NEXT/FP.ADDDOP1.20 ADDT > 0 ROTATE BITS 32-63 s WAS THIS A SUBD INSTRUCTION ; IF SO SIGN GETS FLIPPED ;13327 =0»* ;%ggsg FP.ADDDOP1 20 u 050C, 0880,1677,15F0,(047,005E,0 113330 Q UNPACK(M[TEMP1] RLTEMP3D), : UNPACK GETS BITS 0-31 :}%%%2 NEXT/FP,ADDDOP1, 30 ; CONTINUE THE UNPACK ;13331 ;13332 ;13335 U C50E, 0840,1677,1030,0047,005E,0 $13336 ;13337 ;13338 SOB(FLAG1)?, * WAS IT SUBD INSTRUCTION {(HERE FROM ; ADD1 BEING NEGATIVE) B R Te bl bt : Q_UNPACK (MLTEMP1] RLTEMP3]), SET ADD1(FLAGO) :13339 =0 5 UNPACK GETS BITS 0-31 OF FRACTION ; HERE ONLY If SUBD INSTRUCTION AND ; ADD1 WAS POSITIVE ;}ggz? FP.ADDPOP1. 30 U 05E0, 0884,0577,0080,C047,0000,1 J 0582, 0004,0577,0080,0047,0000,1 213342 113343 213344 113345 ; RETURN [%1] it mcmcc et ;13346 RUTEMP3] RB.ASL,7, ;13348 RETURN [+1] ;13347 ; GETS LOW ORDER BITS 32-63 R[TEMP}]RB.ASL.7, CLEAR ADD1(FLAGO), e ce e = ~; ; GETS LOW ORDER BITS 32-63 ; ; HERE IF SUBD AND ADD1 WAS NEGATIVE I ; MICRUOZ {(MTO98.MCX FLOAT.MIC TM(O1) 28-NOV-83 Floating point and (RC 16:30:35 N 9 -~ CLOKX Rev 13.00, Clock rate = 160ns : FP.ADDDOP1 FP.ADDDOPZ ;13349 =00 ;13350 FP.ADDDOP?: U 058, 0C80,0036,4030,0047,00FF,8 :13351 ;}%gg% $13354 | ] U 0509, 0C4D,2387,0011,0047,0063,F :13355 ;13356 ;}%ggg :13359 ) '} 05CA, 081C,0587,0031,0047_706F,0 4 05C8, 040D,2387,0011,0047,0063,F u 063F, 0086,1677,0031,0047,0064,7 J 0647, 0084,0577,0081,0047,0000,1 B NEXT/1E.OPER.FAULT e e L ; RESERVED OPERAND ; ;0] =e-~m—mm=eescmcscmsecmmamm——— ; ADD2 < 0 R[TEMPA] MIMDR].RR, 16, ; ROTATE BITS 32-63 NEXT/FP.ADDDOP2. 20 ; CONTINUE PROCESSING SET ADD2TFLAG), RR e L L L L Ly ; SET SIGN FLAG . ADD2 = 0 13360 RLTEMP4] 0 ;13362 NEXT/FP.ZEROTEMP? ;13365 ;13366 P B e DLt L L P C L ; ADD2 > 0 ) RITEMP4] MLMDRJ,RR.16, : ROTATE BITS 32-63 :13361 :}gggz ;}gggg (LEAR OPIERO(FLAG3), CLEAR ADDZ (FLAGT) ; : BE SURE FLAG IS 2ERO ; ZERO OUT OTHER HALF : DOES A RETURN +1 TO CALLING RTN ; BE SURE FLAG IS CLEAR :13369 FP.ADDDOP2.20: © e S e oy g g e e o i e e s +13370 213371 fi[TEMP1J_UNPA(K(MB RLTEMP4D) ; ;13372 e eemmAn———, e m e s e LS n . —— ;13373 ; 13374 RCTEMP4]_RBLASL.7, RETURN [+11 ; 113375 UNPACK BITS 0-31 GETS BITS 32-63 OF RETURN TOQ CONT JONT INUE FRACTION Page ' 323. 1M(D1) 28~NOV=-83 Floating point and CRC :}%g;g LT0C ' 16:30:35 ;13379 ;}ggg? : ‘}%%3% : $13384 ; ;13385 ;13384 ; :13387 ; $13388 ; 213389 213390 ; ;13391 B 10 CLOKX Rev 13,00, Clock rate = 160ns Page : FPLADDD.20 FP,ACBD.100 : FP.ADDD.20 FP.ACBD.100 '’ Floating point and CRC ;13378 FRRAA R AR AR AR R AR R KRR AR AR AR AR R AR RNk h ok FP,ADDD,.20 INTERFACE FOR ADpD2/3,SUBD2/3,ACBD FP,ACBD.100 Input for FP,ACBD.100 Temp1 MDR . Subroutines: FRP.ADDDOPI ;}ggg% ; 0S.DMOD ) addend.rd (bits 0-31) (bits 32-63) parse addend.rd get index.md 213394 ; ;134395 ; *»+This entry through IRDROM saves 1 word and cycle and allows the return from 0S.DMOD to be +1 and :13398 ; 13399 ,; Input: :%g%gg : 113400 ; 113401 ;13402 ; 13403 ; I3 I3 ) I A B N 1 1 1 = O 000N NS AN = OO I :} NO WIS AN By , ; H ; : : fall into the common code for the add double interface Temp1 MDR “'src2'! operand (bits 0-31) (bits 32-6 for srct . Temp2, Temp3 Temp5 Fla?O ADD1(FLAGD)) fraction exponent sign of operand Resources: same as above for srcl ; Templ fraction src2 (bits 0=31) : Temp?,0 exponent : K : R P N A N L AN N I3 NN AN A N LN A LA :} B S R N S Al k2 AR P R OP P o o) PORUNS AL AUNU NI M) it = b e ek 2 2 3 2 OO o AN NN A AN 213404 ;13405 13406 N | mama FLOAT.MIC MICROZ2 .. (MT098,MCX Temp4 Pla?1 ADD2 (FLAG1)) (bits 32-63) sign of operand » Temp? also contains the ditference between the exponents during the operation Platch exponent difference «Flagl (WRITE(FLAG1)) also 1is cleared after the add operation for later writing Subroutines: FP.ADDDOP? FP.ADDDRTN parse srce to perform add function : 324 j : (MT098.MCX FLOAT.MIC €10 MICROZ2 1MCO1) 28=-NOV~83 Floating point and CRC 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : FP,ADDD.20 FP.ACBD, 100 PR LR P L LR TR LR T AL A LR LR S P i S U S S S S B g Dt A AL NN L LN NN N N AN N NN N NN N N (LA AL A U LA N TN AN N N AN N L N N AN A g N U LA N AT A A N A A A A A aE al ah A SEat b PP o Al o o ol o B A kb aD b b b P olB 29 30 32 % 35 % 38 39 2 R 4 4 T T T & e I T T T T U 00A1, 0086,203A,418D,8047,0419,0 4 4 4 4 g 5 S 5 6 6 e , } , except if overtlow or underflow and FU bit set % Output: H to FP.NORM.DBL Temp2,Temp3 ; Temp5 d sign of answer D : et U gk N % K g ek o e e e e ko e e fraction answer exponent o ki o e ok ek ke o ok o ok ok ok ke ok ok e ok ok o o o o ko okt b ok ok e ok ok e ok e ok ok .REgJON/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.RZH =00 FP.ACBD,100: ;000==m = mem e me eN RLTEMPSI_EXP(MLTEMP1D), FRO.FLTZY, PUSH,NEXT/FP.ADDDOP1 ; IRDROM ENTRY ; WITH ADD.RD IN TEMP1,MDR : TEST VALIDITY OF OPEPRAND ; 1 ; @ BACK TO PROPER TEMP PUSH, LOD INC BRA?, : GO GET INDEX : ; ; RETURN IS +1 FP.ADDD.20: 10710 wmmmmmmm e m e mm e e ; ENTRY POINT FOR PARSE QF ADD2 RLCTEMP7]_Q_EXP(MLTEMP1]), ; SAVE EXPONENT IN Q ALSO FRO.FLTZTY, PUSH,NEXT/FP.ADDDOP2 rp.AoDD-?g;1 ; TEST VALIDITY OF OPERAND ; : NEW LABEL FOR FIX RCTEMP?] _PL_MLTEMP5]-RB, ; DIFFERENCE BETWEEN EXPONENTS é PUSH, ; SAVE FOR RETURN FROM HEART OF ADD 6 7 U 064F, 0116,5C10,0030,F047,0068,D answer 6 SO0 O N B~ NN =0 00 O e g . normalize,round,peck calling routine NEXT/0S.DMOD 9 U 00A4, 080D,2592,4030,8047,0064,F . ; g 5 5 FP.NORM.DBL teturn trom this routine is to the main METEMP2]_ 0, g U 00A3, 0884,58(0,0B851,C047,052,0 374x ; 5 58 U O0A2, 0884,1435,14B1,C047,0C5¢C,8 389« Exits: 31, [' U O0AQ, 0C84,1437,0AB1,4047,005(,4 323 B AR S O 0O N0 VI B WU = OO 00 NIOMA T NN = O O 0 NN N DAV = OO 13428 ; Page 7 7 7 7 7 7 7 7 8 SIGND CMP?,31ZELWORD], HEXT/FP.ADDDRTN ; SAVE ALSO IN PLATCH : OFF TO THE MAIN PART OF ADD :100=mm=mmmmmmm e e mee e e e ; RCTEMP2]_MLMDR], CLEAR WRTTE(FLAG1) : BITS 0=31_IN MDR AT RETURN Y BITS 3263 IN TEMP3 _REGION/ELOAT.RIL,FLOAT .R1H/FLOAT .R2L, FLOAT.RZH/FLOAT .R3L, FLOAT.R3H 30: FP.ADDD, MLTEMP5) MB-ZLITOL1ED, CLEAR MUL1(FLAG2), NEXT/FP.NORM. DBL * SUB THE FACTOR ; * OFF TO NORMALIZATION : 325 ’ FLOAT.MIC MICROZ2 1M(01) floating point and 2%;?0V-83 :1%2%5 .T0C '' ;13483 SRR 13484 ; 213485 ; ;13486 ; 16:30:35 D 10 : FP,ADDDRTN Floating point and CRC AR A ARk kA AR RN AR R IR TR A AR KRR KA A KRRk hdhk b dokddd ok FP,ADDDRTN HEART OF DOUBLE PRECISJON ADD ROUTINE 213490 ; ;13491 :13492 Input: USED BY ADDD2,ADDD3,SUBDZ,SUBD3,ACBD,POLYD . 213493 ; 313494 ; Platch Temp? difference between exponents difference between exponents $13497 :13498 ; Temp> Fla?O exponent srci srcl sign Q FLa?1 exponent src2 sign :13495 ; 113496 ; 113499 213500 :13507 . :13502 ;13503 ; 213504 :13505 ; ;13506 ;13507 :}%ggg : 213510 . 213511 :13512 213513 ; 213514 13515 ;13516 326 | : FP.ADDDRTN '’ 113487 :}gzgg : Page CLOKX Rev 13.00, Clock rate = 160ns Temp2 Temp3 fraction srcl (bits 0-31) fraction srcl (bits 32-63) . . ADD1(FLAGO)) Temp? fraction src2 (bits 0=31) Temp4 fraction srce (bits 32-63) ADD2(FLAG1)) Resources: . MDR . bits 0=31_of working temp Temp0 bits 32-63 of working temp Fla? 4 different sign flag SAMESIGN(FLAG4)) Subroutines: FP.ADDD.SIGNOP1 FP.ADDD.SIGNOP2 213517 :13518 ;13519 ; Qutput: 213522 & 213523 213524 ;13525 ¢ ;13526 ; D :13520 ; 13521 & ;13527 & 213528 ; ;13529 . ;13530 ; ;13531 213532 ;13533 1353 Temp2,Temp3 Temp5 . fraction exponent sign of answer . Operation: Enters on a three branch testing exponent srci>sre? srcl=srce srci<sre? . The ''smaller'’ value is nlaced in the working temps (MDR, TempQ) and the appropriate routine entered to set the sign of the answer and to complement the value if required I CMT098.MCX ; (MTO98.MCX FLOAT.MIC MICRO2 1M0)1) 28-NOy-83 Floating point and CRC 16:30:35 : (LOKX Rev 13.00, In the case of equal exponents src2 is selected as the smaller value .***Note only with Like signs in the case of equal exponents can the sign of the answer be predetermined P Therefore, a flag(SAMESIGN(FLAG4)) is used to differentiate between the signs being same or T T T different For unlike exponents . a test is made to see if the difference, e T T T is < 64, If not then the unpacked fraction and exponent of the larger value is returned to continue through the normalization routine to strip off the_hidden bits and pack R T . It the difference is <=63 the smaller value is aligned and bits 32-63 of the fractions S are added and the carry if present propagated in the addition of bits 0-31 L S Bits 32-63 of the answer are copied into Temp3 and a return effected with bits 0-31 in MDR . For like exponercs The sign and ccmplement operations are performed and che fraction parts added if the operands had unlike signs bit 31 is checked if set the value is complemented and the_sign in D inverted P Sk Page Clock rate = 160ns FP.ADDDRTN PR PR TR LT : 1 E 10 Temp3 contains bits 32-63 and MDR has bits 0-31 (complemented if necessary) upon return AR AR R AR A A A kAR kA AR A R AR KA AR AR AR ARK R KR AR A AR A AR A A Ak kR A ARk ARk hkkk k% ,FLOAT .R3H ,R2H/FLOAT .R3L FLOAT . R2L,FLOATAT.R1H/ LREGION/FLOAT.R1L,FLO =000 USED BY G FLOAT FX.ADDDR TN: FP.ADDDR TN: - u 0520, 0080,05BE,4030,4467,0460,7 U 0522, 0080,058E,4030,8467,005¢C,C - - - ; SRCY1 > SRC2 - oy e ey e ; MDR-BITS0-31 TEMPO 32-63 ; TO SIGN TESTING RET IS +3 D e e G e (EXPONENTS) ; SRC1 = SRC2_ : NO ALIGN NEEDED MAY NEED INVERSION ; RETURN IS +3 PUSH, ;010==mommm—me oo oo e e; : MDR_RLTEMP21, T e .MB-21170032.3, WB<31-3057, PUSH, NEXT/FP,ADDDRTN,RNGCHK SRC1 < SRC2 (EXPONENTS) SET SMALLER VALUE IN WORKING TEMPS : (12,73,T5E) 120 NEXT/FP.ADDDRTN. - (EXPONENTS) ; SMALLER VALUE IN WORKING TEMPS NEXT/FP.ADDD.SIGNOP1 - U 0523, 0586,7C10,06F1,0047,005D,9 377+ " - PUSH, NEXT/FP.ADDD,SIGNOP1 - U 0521, 0080,058E,4030,4467,0460,7 - . T ; ; ; : ; RET + 3 FROM SRC1>SRC? IS EXP DIFF TOOD BIG TEMP7 HAS DIFF (@ HAS SRC2 EXP) RET +3 IF IN RANGE REY +2 IF OUT OF RANGE ( ANS IS SRC1) 327 H ; MICRO2 CMT098.MCX FLOAT.MIC 16:30:35 28-NOV=-83 1M(01) Floating point and CRC :13589 U 0524, 0084,3001,0470,0047,0069,C . | U 0525, 0C80,058E,4080,8467,0000,1 F 10 ;100==cmmmmmmemcmcccccc e caeae ; RET +3 FROM SR(C1=SR(CZ :13590 RCTEMPO]_MCTEMP3]+RB, ; FIRST PART OF ADD QPERATION ;}ggg% NEXT/FP.ADDDRTN. 200 H 213594 MDR RCTEMP2], 13591 :13595 113596 213597 113598 SAMESIGNTFLAG4) ?, $13601 U 0526, 0884,3001,0030,0047,0069,D ;13602 ;]%ggz ; CHECK IF EQU EXP DIFF SIGNS ;101 == mmmmmmcn e cccccn e e anae ; RET +2 FROM RANGE CHECK ; THO ANS IS SRC1 ( >63 DIFF) ; COST LESS TO DO NORMALIZE TO GET RETORN [+1] ; ANS PACKED IE HAVE TO STRIP OfF ; HIDDEN BIT AND THEN PACK SO DO ;}%ggg ) Page CLOKX Rev 13.00, Clock rate = 160ns : FP.ADDDRTN ; DUMMY MOVE HERE FOR COMMON RETURN :110mmmm em e e e e cc e n e a e ; RET +3 FROM RANGE CHECK RLCTEMPO]_MLTEMP3]+RB, NEXT/FP.ADDDRTN. 250 ; ADD FOR SRC1 >SRCZ2 : DO SECOND PART 213605 :13606 = ;13607 FP. ADDDRTN 120: :13608 U 05C¢, 0C86,05BE,4530,€047,0458,4 M[TEMPO] RLTEMP3], ; GO CHECK SIGN :}%g}; PUSH,NEXT/FP.ADD.SIGNOP2 ; RETURN +3 213610 313613 =11 U 05CF, 0884,58(B,0031,C047,0065,4 U 0654, 0€86,503A,403D,8047,005D,0 213616 :%§212 ; i & 213617 13618 ;13620 =00 $13621 0 i U 05D2, 0080,05BE,4030,4467,0065,6 i H 1lescessemccn e s cn e ; RET +3 INVERTED IF NECESSARY R[TEMP?] _PL_Q=MLTEMP5] ; COMPUTE DIFF EXP IN TEMP7 AND PL el e bl bty H MCTEMPS] _Q } PUT SRC2 EXP IN ANS EXP TEMP 100--me-sssccmmmccsmcmcnmcm s ne - : CHECK_EXP TOO BIG M[TEMP?J MB=ZL1T0032.1, 38231-30 2 RET +2 IF OUT OF RANGE ;%%g%g NEXT/FP.ADDDRTN.RNGCHK H 213627 =10 213628 213629 L ettt tatiaktekb kbt MDR_RCTEMP13], :13630 213631 213632 213633 213634 U 0503, 0084,4001,0030,0047,0065,8 ADD2(FLAG1) ADD1(FLAGO)?, 113622 :}gggz U 05D0, 0586,7C10,06F1,0047,005D,9 377+ 00-===scmmcncnccccnccccecnn e ; SRC1 < SRC2 (EXPONENTS) : 13609 ;13635 213636 NEXT/FP, ADDDRTN 125 s RET +3 IF IN RANGE b ; RET +2 QUT OF RANGE ; ANS IS SRC2 BUT THE (OST TOO HIGH ; DO STRIPPING AND PACKING ; IN COMMON FLOWS MOVING VALUES TO ; CORRECT TEMPS L e ekl ; RET +3 IN RANGE RLTEMPO) MITEMP4 ]+RB, NEXT/FP,RDDDRTN, 130 s FIRST PART 0OF ADD : i 328 T : ; S {MT098.MCX , MIC FLOAT 1M01) 28-NOV~83 MICROZ Floating point and CRC 16:30:35 : 6 10 CLOKX Rev 13,00, Clock rate = 160ns FPLADDDRTN o8 NN = OO0 00 NN TS NN = O B o B o R o o RLTEMP3]_MLTEMP4], RETURN [¥1] WL TP, B Ne No No o No o DN NNI 2 OO 00 NONMA SR = OO 0 NO NI TV TV T ©0 O NNNNNNNNNOOOONO-ONONONONONWILN[ ' MOVE BITS 32~63 +1 TO COMMON FLOWS * RETURN ; SECOND PART OF ADD MDR_MLMDRI+RLTEMP2J+ALKC, : NEXT/FP.ADDDRTN. 300 : : SECOND PART OF ADD FOR _EQU EXP AND DIFF SIGNS TEST SIGN OF SUM MDR_MCMDRI+RLTEMP2J +ALKC : SECOND PART OF ADD FOR EQU EXP SAME SIGN AND RCTEMP3] MCTEMPOD, : RETURN [+1] ; FP.ADDDRTN,130: MDR_MCMDRI+RLCTEMP11+ALKC, B Xglo oo To g 3 b P e} o b ok d OO OO OO ONONONONON o Yo No Mo NooNoNo U 0660, 0c81,2043,00AD,8467,0000,1 T U 065A, 0082,0593,0020,C047,0066,0 3 he u 05D7, 0D80,0073,6030,4047,0065,A b o U 05D5, N824,0592,4080,0047,0000,1 e N S b h b e T b T b A N T U 069D, 0081,2041,0030,8467,005D,5 D d d e e e b e TR TR U 069C, 0481,2041,06F0,8467,085D,5 338* R PN P P ) h d D e TR D o U 0658, 0C81,2041,0030,4467,005D,5 TR P P b d D ) TR LR R U 0656, 0084,45%92,4080,C047,0000,1 T T 3 e AU LA A U A A U A LA A At LA A U N AT U A AT N A A AT N LA N N U AN U NN N N NN AN ;13637 FX.T3GETST4: ;132;3 FP.ADDDRTN.125: NEXT/FP.ADDDRTN, 300 : FINISH UP PROCESSING =0 FP.ADDDRTN.200: WwB<31-30>7, 250: FP.ADDDRTN. CLEAR SARESIGN(FLAG4), : AND SR1>SRC2 COPY BITS 32-63 =11 FP.ADDDRTN, 320: D_p.XOR.ZLIT12[8] : RCTEMP3],512_-MLTEMPOD, I: COMPLIMENT VALUE UDR_RCZEROI-MLMDRI-ALKC. & COMPL BITS 0-3t SIZELLONG] SIZECLONGI,RETURN [+1] FLIP THE SIGN BIT AND RETURN : BITS 32-63 : Page 329 ; CMT098.MCX FLOAT.MIC MICRO2 1M(01) 28-=NOV-83 Floating point and (RC 16:30:35 H 10 CLOKX Rev 13.00, Clock rate = 160ns : FP.ADDDRTN 313679 =01 'y 0509, 0980,7C13,06F0,F847,085D,D 377* ;13680 FP.ADDDRTN,RNGCHK: ;13681 H R e intvtattata et wew=: DIFF >=32 :13682 UB JLITOL31.)=-MLTEMP?], ; DIFF > 637 ; WB<31-30>7, ;13683 :}gggg NEXT/FP.ADDDRTN.620 : ;13686 U 05DB, 0(85,2137,0030,0047,0066,2 ;13687 LD 113689 213690 = ;13691 u 0662, 0081,20F7,0080,0467,0000,3 ettty ; DIFF 1-31 RLTEMPO]_(MLCMDRI RB).RR.P 213688 ; ALIGN SMALLER VALUE BITS 32-63 ; PLATCH HAS BEEN PREVIOUSLY SET jeeesescecccccaccccssacccssosoos : : BITS 0=-31 MDR_MLMDR].ASR.P, $ 13692 :}%232 RETORN [+33 ; 13695 =01 U 050D, 0880,7B(2,403D,8047,0066,7 U 050F, 0980,0£F6,4030,F847,0066,7 113696 FP.ADDDRTN.620: :13697 0 R ittt LD DL DL L DL L ; DIFF (32-63) : 13698 PL MLTEMP?], : LOAD PLATCH WITH THE VALUE :}%983 NERT/FP. ADDDRTN. 625 ;13701 ; PREVIOUSLY CALCULATED RANGEO-31% L Rttt I LD L DL L DL LD : DIFF :}%;8% PL [1F] >63 ; SET TO 31 NEED FOR POLYD ACCURACY ;13704 FP,ADDDRTN.625: 213705 U 0667, 0085,20F7,06F0,0047,005E,1 113706 ;1%;8% 2 :13709 =01 U O5E1, 0480,0036,4080,04E7,0000,3 ;13710 S13TN :}%;}% 213714 v 0SE3, 0089,0E77,0080,0467,0000,3 13715 J13716 jemmsccecsmccececceccsceausessasaes ; THIS FUNCTION SHIFTS IN BIT 31 OF MDR RfTEMPOJ _MCMDR].ASR.P, WB<31-3057 [0l MDR_0 RETORN [+3] e e ; GET THE FRACTION BITS ; WHAT ARE BIT SETTINGS IN 0-31 e — ; BITS 0-31 POSITIVE ; : S il DL DL L DAL DL L DLl ; BITS 0-31 TO BE NEGATIVE MDR -1, RETORN [+3] ; : : Page 330| [ ; ; - (MT098.MCX FLOAT.MIC MICROZ2 1M(01) 28-NOV~83 Floating point and CRC ;}g;}g ,70C '* - 110 16:30:35 CLOKX Rev_13.00, Clock rate = 160ns : FP.MULDZ FP.MULD3 Floating point and CRC Page : FP,MULD2 FP.MULD3 " ;13719 "***********k**********tt****t**ttitk*'(tv(**********t*tt*fiit*itt***it******t*** 113720 ;}%;g; ; 64 MuLD2 mulr.rd,prod.md ;13723 113724 213725 ; 65 MuLd3 mulr.rd,muld.rd,prod.wd Input: 213726 ;13727 MDR ;13728 ; 13729 . ;137230 213736 13737 $13741 exponernt sign of operand FP.MULDOP1 *0S . DMOD *0S.DRED parse mulr get muld for MULD?Z get muld for MULD3 0S.WRT1 13742 ;137243 ;13745 Exit: 113747 $ 13748 ; ) Operation: 1137246 213749 :}g;gg ; get product for MULD3 * return_is through IRDROM to FP,MULD.20 to continue operation . FP.WRITE.SEC write bits 32-63 of answer L ) . These are the driving routines for the double precision ;}g;g? : ; . Temp5 Fla%Z MULT(FLAG2)) . Subroutines: 213738 13739 ;137240 ; ;13753 . fraction (bits 0-31) fraction (bits 32-63) Temp?,Q Temp3 :13733 ;13734 213735 ;13?52 (bits 32=63) Resources: tor mulr ;13731 ;13732 ' . mulr.rd_(bits 0-31) Temp1 MULDZ and MULD3 instructions wxsxxxkk Ao kFPA MULD? MULD3 ENTRY AND INTERFACE**kskannkx (OS.RED) ~ FI.ADDD2.REG/FI.ADDD2,.MEM (OS.RED) =~ FI1.ADDD3.REG/F]I,ADDD3.MEM ;13756 ;*ktt*t**ttt*ttittt*tttttfit.ttttttttttttwtttttt*tt**tti*t*i*ttt**tttttxttt!ttx - ] i 331 CMT098 . MCX FLOAT,MIC J 10 16:30:35 CLOKX Rev 13,00, € lock rate = 160ns : FP.MULDZ FP.MULD3 MICROZ 1M(QT) 28 -NOV-83 Floating point and CRC JMuLDe: Ak o P [l 'UCDZ) EGION/IRDX.R1IL,IRDX.R1H/IRDX,R2L, IRDX. R2H Y MULTIPLIER PARSE P * AND UNPACK THE FRACTION O T L 00BA, 0064,2592,403C,4DDA,0056,F . M[TEMPZ] ; BITS 0-31 10 TEMP PUSH,NEXT/0S. DMOD s FINAL RETURN AFTER ANSWER ; ; WRITE FIRST PART NO INTERRUPTS ALLOWED LOD INC BRA?, 2 RET THRU IRDROM TO FP.MULD.20 T 0089, 0086,203A,418D,8047,0419,0 T U TEST VALIDITY OF OPERAND " R 00BS8, 0484,1437,0A81,4047,0C5E,4 323+ ki Rk kkkhhdhhk -----—--------_------u------- R[DST R]_MLTEMPZ2], WRITE NOTREG,SIZELIDEP], ; CCOP1,SET MM.NOINT, NEXT/FP.WRITE,SEC SET CONDITION CODES ngGION/IRDX.R1L,IRDX.RlH/IRDX.RZL,IRDX. : P.MULDS' Rk kR kKA KRR RLTEMPS] EXP(M[TEMP1J‘ ,005E,4 323« oocs, 04864,1437,0AB1,4047 s MULTIPLIER PARSE ; TEST VALIDITY OF OPERAND ; AND UNPACK THE FRACTION FRO FL1Z2? PUSH,NEXT7FP,MULDOP1 ;0] mmmmmmmmmmmmmm e mmme e MCTEMP2]_Q, U 0oc9, 0886,203A,418D,8047,0418,0 00CA, 0C80,0035,41B0,0047,0414,0 RET THRU IRDROM TO FP.MULD.20 NEXT/0S.DRED ; RET TO GET THE DESTINATION LOD INC BRA?, NEXT/0S.WRT? R R R et tetale i RIDST.RI_MLTEMP2], Le L L D WRITE NOTREG, SIZELIDEP], U 00c8, 0064,2592,403(,4DDA,0056,F SET MM,NOINT, (COP1, NEXT/FP WR]ITE.SEL P BITS 0-31 TO TEMP * GET NEXT OPERAND PUSH, LOD INC BRA?, PUSH U RAKN AR KRN . WRITE FIRST PART { NO INTERRUPTS ALLOWED * SET CONDITION CODES REGION/FLOAT.R1L,FLOAT.RTH/FLOAT .R2L ,FL OAT ,R2H/FLOAT .R3L,FLOAT.R3H Page 332§ » : CMT098.MCX FLOAT.MIC MICROZ 1M(0Q1) Floating point and 2%§?OV-83 K 10 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns ¢ FP.MULD,.20 Page : 333i ; ! : FP.MULD.20 " ;}gggz .T0C "" Floating point and CRC : ;13805 ;tt*t*****t*kkt*i*t****w***t***wtt*tt*******k**t******k**#k******t*fii********* 213806 ; ! 213811 Input: ;13812 ; . Templ ;13813 ; 213814 ;13815 MDR L for multiplier Temp2, Temp3 :13817 ; Fla?Z J13816 Tempb ;13826 RTemp3 ;13828 ; ;13829 ; D,a Fla? :13827 . LA N AU AN NN N A U LA A R AN AN N AN N N 09 0o Co 00 Co 0o €O Co 0o o Co Co 00 Co 00 00 Co €0 00 0o o 0o Co R 4 113835 1 6 :13837 8 DS O 85 D D DS 2 I I I WAL B 213839 113840 ;13841 I 2 A LA 1 | i 7 8 9 0 ] AAALALA AU S R ;13843 113844 } z 2 3 4 5 6 exponent C R i ! ! ; . . fraction (bits 0-31) exponent MUL2(FLAG3)) (bits 32~63) i . sign of multiplicand . . for multiply operation for loop control FP.MULDOP2 parse multiplicand FP.PREQPS, SUB prenare operands and | call multlpl§ subrout ine (FP.MULD.SUB FP.SC17 . FP.NORM.MUD] Operation: L to normalize,round,pack . and return to calling routine The multiplicand 1s validated and parsed by FPMULDOP? It either operand is 0, produc: is Q return to caller Otherwise, the exponents are added interrupts & timer are checked stepcounter = 17. 'Fudge'' factor is subtracted from sum of exponents (80 for bias and +19-hex for the binary point and platch) FP.PREOPS.SUB is called to shift operands left 1 remove the overflow bit and call FP.MULD.SUB to perform the cross products multiplication bits 0-31 of the product are derived by D+ALKC and the carry in Templ from the grev1oug addition The product si?n is derived y calting FP.NORM,.MUD] the operands signs with the XOR o AR R AN KRR R R A AR RN AN R ARk R Rk R KR AR , set stepcounter to 17 _ , Lo ; i Subroutines: Exit: ; ! ! sign of multiplier Stepcounter e S N L IC TIC T YU e D A A LN N AN A ;}gg ? : . ! 32-63 fraction for multiplier same as for input for multiplicand Templ ;13825 ; ! Lo Resources: ;13821 213822 ;13823 ; ;13824 ; ;13833 bits MUL1(FLAG2)) ;13819 :13820 . mqlt1§l1cgnd bits 0=31 Temps ;13818 ; ;13832 ' INTERFACE FOR THE DOUBLE PRECISION MULTIPLY INSTRUCTIONS :}%g?g H L | ; FP.MULD.20 ;;%ggg ; ARk kA Rk A Ak Rk ek kR A A A kN Ak kR kR Ak h* ' i ; ; CMT098.MCX FLOAT.MIC MICRO2 1M(01) 28-NOV-83 Floating point and CRC 16:30:35 L 10 CLOKX Rev 13.0C, Clock rate = 160ns : FP.MULD.20 Page i 334; ;13857 .REGION/IRDX,R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H :13858 =000 :13859 FP,.MULD.20: :13860 $000=== U 00CO, 0084,1437,0AB2,0047,0C5E,8 323« 113861 113862 ;}gggz 113865 U 00C1, 0484,058E,0080,8307,0000,1 ;13866 ;}gggg 113869 U 00C2, 0C86,5001,0012,0047,046A,6 PUSH,NEXT/FP.MULDOP. 100 mmmmmem ec e RETEMP2]_FLAGS_O, : RETURN TO FIND OUT WHICH 3 INSTRUCTION e ncmccnec o ; RET +2 ; MULTIPLICAND BI1S 0=31 TEMP1 :}%g;g PUSH,NEXT/FP,SC17 : EXP RTEMP8 ;13871 S1ZECWORD], ; BITS 32-63 TEMP6 :011mmmmmccmmcmecmmcccmeanena——— : :13875 MLTEMPS5) MB-ZLITOCO9F], : SUB FACTORS :1%3;3 NEXT/FP,PREORPS., SUB ; SHIFT OPS AND MULTIPLY 113876 113877 :13881 ;13882 ;13883 ;13884 ;13885 ;13886 :}gggg | m e eeanee ; ANS IS ZERO RETURN [¥1] ;010==—=mmmmmmmm | ! ; MLTEMPS] MB+RLTEMP8], :13880 . U 00C4, 0486,2061,0570,0047,0050,A * RET WITH SECOND OPERAND ; TEST VALIDITY AND PARSE ;13870 13874 U 00¢3, 0586,5010,0014,F847,046A,2 === mem o : RLTEMPB] EXP(MLTEMP1D), FRO.FLTZT, SIZECWORD], PUSH, ;19 FOR PLATCH AND BP : 80 FOR EXTRA BIAS ! B e ; VALUE CAN BE 01 OR 10 MLTEMP2]_D+RLTEMPOJ+ALKC, MULT(FLAG2) XOR MUL2(FLAG3)?, NEXT/FP.NORM,MUD] ; BITS 0-31 D+CARRY ; ; ; ; : AND CARRY IN TEMPO FROM PREVIOUS ADD BITS 32-63 TEMP3 FLAG1=0,FLAG2XOR3 IS PRODUCT SIGN FINAL RETURN INITIAL CALLER EXCEPY i s [F FLOATING OVERFLOW ; OR UNDERFLOW AND Fu BIT SET 113889 ,REGION/FLOAT,R1L,FLOAT,RTH/FLOAT ,R2L ,FLOAT.R2H/FLOAT .R3L,FLOAT,R3H l } : ; CMT098.MCX FLOAT . MIC MICRD2 1M(O1) 28-NOV-83 Floating point and CRC :}%gg? .T0C ' 16:30:35 h 10 Page CLOKX Rev 13.00, Clock rate = 160ns : FP.MULDOPT FP.MULDOP2 : FP.MULDOP1 FP,MULDOP2 '’ Floating point and CRC 313892 ;**k*********t*******t***kt*i**i***kt***t**t****fi****wwt**k***ttk*i*********** ;13893 ; ;%%ggg H i :13896 : ;13897 ;13898 ; 13899 :13900 ; DOUBLE PRECISION MULD AND DIVD OPERAND PARSERS FP,MULDOP1 Input: ;13901 ; Temp1 MDR Temp5 . exponent :13902 ;13903 ; clear Fla%Z ) MUL1(FLAG2) ;13905 ; MOPZERO(FLAG3)) 213904 113906 ;13907 . ;13908 ; 213909 ¢ Fla?3 Resources: 0 Temp3 ;13910 ; Fla?Z MULT(FLAG2)) :13911 $13912 . ;13913 $13914 113915 & 13916 Exit: ;}gg}g ; 213919 ; ;13920 ; .13921 :13922 :13923 ; 113924 Input: 213936 ; 213937 ;13938 ;13939 ;}%gz? ; . sign of operand . Return +1 FP.ADDDOP1.20 it operand zero common unpack then return +1 Templ MDR Temp2,Temp3 bits 0=-31_("'src2'") bits 32-63 fraction ''srct" Temp5 Fla%Q MULT(FLAGZ)) ;13928 ; 113929 ; ;13930 ;13931 & 213934 :13935 . . fraction bits 0-31 fraction bits 32-63 reserved operand FP,MULDOP? ;13927 :13933 clear Fla?B set if operand 0 MOPZERO(FLAG3)) 1E,OPER.FAULT :13925 13926 ; ;13932 , bits 0-31 (''src1') bits 32-63 ) exponent sign of "'srci" Fla?1 mag be set or reset MOPZERO(FLAG1) Fla%S ) clear MUL2(FLAG3)) Resources: Templ Tempb Exit: i ) fraction bits 0=31 (''src2'" fraction bits 32=63 RTemp8 exponent ''src2" Roturn +2 Revurn +1 it either operand 0 it neither operand 0 IE.QFER.FAULT . reserved operand :'13942 :-Rtt*kt**ktk*lt*i*t 22222223 2232223233232 823222820288 222 R 22222 RN ‘ 335 : e e O ¢ i i i ; ; (MTO98.MCX MICRO2 FLOAT .MIC 1M(Q1) Floating point 28~NOV-83 d CRC 16:30:35 N 10 (LOKX Rev 13,00, Clock rate = 160ns : FP.MULDOP1 FP.MULDOP2 Page ;2943 =00 3944 FP,MULDOPT: U 05e4, 0(80,0036,4030,0047,00FF,8 113945 ‘}%329 L ; RESERVED OPERAND NEXT/IE.OPER.FAULT ; 113948 J C5ES, 0055,23B7,0010,C047,005D,C D ; SRC1 <0 113949 RCTEMP3]_MIMDR].RR.16, ;}gggg NEXT/FP.ADDDOP1 .20 SET MULTTFLAG?). 113950 113953 U 05£6, 004C,0587,1030,C4E7,006F,0 * COMMON FLOWS WITH OTHER DOUBLES ;10=mmmmmm e ——————————— ; SRS = 0 113934 RLTEMP3] Q_0,MDR 0 ;}gggg NEXT/FX.ZEROTEMP SET MOPZERD(FLAGT) 113955 113958 U 05E7, 0885,23B7,0010,C047,0050,¢C " ROTATE BIIS 32-63 © SIGNIFY NEGATIVITY + SET OPERANDS T0 ZERO © SET FLAG TO SIGNIFY THIS ¢ ZERO OUT BITS 0~31 PACKED FORM P T T ; SRC1 > 0 113959 R[TEMPSJ MCMDRJ.RR. 16, ;}%329 NEXT/FP.ADDDOFT.20 ; ROTATE BITS 32-63 * CONTINUE COMMON FLOWS FOR PARSING 113962 =00 113963 FP,MULDOP2: U 05E8, 0C80,0036,4030,0047,001F,8 U 05E9, 085D,23B7,0011,8047,0066,8 113964 ;}%ggg P ; RESERVED OPERAND NEXT/1E.OPER.FAULT : 113967 113948 ;0]m=m=cemmemmemms e mmeesaeae ; SRC2 < 0 : ROTATE BITS 32-63 R[TEMP6J MCMDRI.RR. 16, ;}gg;? NEXT/FP.MULDOPTM. 20 SET_MUL2TFLAG3), ;13969 113972 U OSEA, 0484,0587,10B0,C4E7,0000,1 ¢ O5EH, 0885,2387,0011,8047,0066,8 ;1Dmmsimmm 113973 e RETURN L¥1] .| 113676 © CONTINUE UNPACKING m oo ; SRC2 = 0 RCTEMP3]_Q_0,MDR_O, ;}gg;g ; SIGNIFY NEGATIVITY * ZERQ OU? ANS TEMPS Y ANS IS ZERQO SEE NOTE BELOW 1lmmommcm—mscommmm—mam e —————— ; SRCZ2 > 0 ;1%3;% R[TEMPbJ _MLMDRI.AR.16 ; ROTATE BITS 32-63 113979 FP.MULDOP2,20: ‘ ‘ U 0668, 0(8uv,1677,05F1,8047,005E,¢ P13980 113981 0 ;}%ggg MOPZERO(FLAGT)? 113984 =0« J CS5EC, 0884,0577,0081,8047,0000,2 o i) OSFE, 0484,0587,1080,C4E7,0000,1 t13985 113986 = 113989 000 ;}gggg $13990 113991 113942 jmmmeemmmmemmmeme—mesemeswe—oae ; MCTEMP1] UNPACK (MB RCTEMP61), ; UNPACK ¢ WAS SRC1 0 Qt===—mmmmcem—mmcecccemmeee o : MOPZERO(FLAG1) NOT SET R[TEMPbJ RB.ASL.7, : GET BITS 32-6 RETURN [¥2] : ;lkemcsemccmsommmmeemmmemeemeeee : MOPZERO(FLAG1) SET R[TEMP3] Q_0, MDR_0 RETORN [+1] * ZERC QUT ANS TEMPS ; TEST OUTSIDE FOR THIS : 336 . FLOAT.MIC .T0C L} 16:30:35 : 8 N CLOKX Rev 13.00, Clock rate = 160ns FP.PREOPS.SUB ¢ FP.PREOPS.SUB "' Floating point and CRC AR KRN ’ Page ] 1M(01) 28=NOV=83 MICRO2 Floating point and CRC RN R RN AN AN R AR AR IR AR AR KRR AR Rk Aok h kb kk ko kA ke ek » ’ PREPARATION OF . ] OPERANDS SUBROUTINES . U 05ED, 001(,9592,4030,4047,0069,E U O5EF, 0851,9592,4030,4047.0069%,F o Dl Dl e I .M X (MT098 [elwlelalalalalwlelelelelelelelole lelelelelelo)OO0 OO0 N e i dmd e L L Lo ] O o o e e VN W TP W [N PN T (W L S TN LA S TANTAC [p N 1 VTN ]N et = OO I AR = OO 00 O AN AN = O O 00 NOM N B (AN — OO0 N O A SN = O N0 00 NN B W i [ FP.PREOPS.SUB - MULD2,MULD3 ) . FP.PREOPS.POLYD = POLYD . ¢ . FP.PREOPS,SUBALT - EMODD . . . ’ Input and resources: Temp2,Temp3 5emp1,Temp6 . . ] . Stepcounter v MTemp9,MTemp10 ’ operand fraction operand fraction operands for POLYD . ) Operation: For FP.PREOPS.SUB used by MULD2,MULD3 and POLYD to shitt both operands left 1 and thereby remove the overflow bit . ¢ . ¢ . . . For FP.PREOPS.POLYD entrg_1s to_set flag i 0 ot argument and to move ' to working . bits 0-31 from storage temp and bits 32-63 also For FP.PREOPS.SUBALT ontK the operands in Templ and Temp6(Q) are shifted . 2 ) For all three entries FP.MULD.SUB is called, to perform the double precision multiplication ? . x*note interrupts and timer checks are made betore calling FP,MULD,.SUB . ¢ . Other subrot'tines move and save Q and the temps that are used and set the stepcounter and check interrupts and timer . ’ . . . KRN . KRR AR AR R AR RN RN A AR R R AR R R R ARk ko ko kAR kA Ak ARk 01 FP.PREOPSbPOLYD: -------------------- CLEAR MUL2 (FLAG3), RLTEMP1] MLTEMP9], NEXT/FP,BREOPS,POLYD1D PR e e SET MULZ2(FLAG3) L RETEMPTI METEMPS], P L L NEXT/FP.PREOPS,.POLYD10 """"" ; ARG IS POSITIVE s BE SURE FLAG IS CORRECT ; MOVE OVER FOR POLYD ; ARG IS NEGATIVE ; BE SURE FLAG IS CORRECY ; MOVE OVER FOR POLYD h 337, 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : FP.PREOPS.SUB =0 FP, PREOPS POLYD10: R SNSNSNNOONONONOCON OO OO TV IV Bl (U U L na 0884,600¢,7030,€047,0066,E P U 06A3, 0(80,3592,5030,0047,0467,2 e U 06A2, LN'\J—'OOGJVO‘U‘IJ‘LN'\J—'O‘O@\IO‘U‘J\WM—‘OOG)\JOU' o R R A A ol o N e Al A A D D i COOOOCOOOOOOOOOOOLOOOOOOODOOOD I TR LT P T e S WIS T R 0884,900C,7030,C047,0066,E QU U 06A1, 0€80,3592,5030,0047,0467,2 S U 06AC, QU S S TR P 0884 ,A00C,7030,C047,0066,E TR TR T J 069F, QU 0€80,3592,5030,0047,0467,2 U U 069E, QT QU WU WU Y MICRO2 1M(Q1) 28-NOV-83 Floating point and (RC Y W CMT098.MCX FLOAT. MIC QU QPRI (U ; H ¢ Q_MLTEMP3], PUT BITS 32-63 IN @ R[TEMP3J Q_MLTEMP10], Q OLD TO TEMP3 AND TEMP10 TO Q POSH,NEXT7FP.PREOPS.QT2 NEXT/FP.PREOPS. SUBALT CONTINUE ON =0 FX. PREOPS POLYGTY: - ot o o ey e e e PUT BITS 32-63 IN @ Q_MCTEMP3], POSH,NEXT7FP.PREOPS.QT2 ot W G G O R[TEMP3J Q@ MLTEMPY], Q OLD TO TEMP3 AND TEMP® TO Q CONTINUE ON NEXT/FP. PREOPS SUBALT =0 USED BY G FLOAT FX.PREOPS.SUB: FP.PREOPS,.SUB: ;0 Q_MCTEMP3], PUISH,NEXT/FP,PREOPS.QT2 ;lmm—mmemm—m— o —cmmccnaa RLTEMP3] _Q Q_MLTEMPE] -t PUT BIfS 32-63 IN Q S Q OLD TO TEMP3 AND TEMP6 TO Q Page 338. X3 CMT098.MCX FLOAT.MIC MICRO2 1M(01) 28-NOV-83 16:30:35 Floating point and (RC CLOKX Rev 13.00, Clock rate = 160ns : FP.PREOPS.SUB '128?2 FP.PREOPS.SUBALT: 066E, 0C86,1205,CB3D,98E7,006A,4 114076 MCTEMP1]_(MB Q).SL.1, ;}2855 IP.TS? 114079 =0 06A4, 0486,603A,403D,8047,0052,8 + INTERRUPT OR TIMER 114082 {0 BACK TO TEMP6 ALSO :}2832 NEXT/FP.RULD. SUB USED BY G FLOAT ; NOW MULTIPLY ADN RETURN TO CALLING lememec—seseeemsecemcmmecaeoee ; 114086 b zL1TOC0D, : CLEAR OUT D FOR FPD FAULT ’}2833 PUSH NEXT/I1E.SERV.IP.TS?2 * TIME TO TEST FOR INTERRUPTS AND TIMER 114087 NTPEND OR TIMER?, Y DO THE TEST HERE +14090 FX.PREOPS.QT3: ; USED BY G FLOAT ;12832 ; ;}2885 FP.PREOPS.QT3: 0670, 0080,058E,5030,€047,0067,2 Y SHIFT TEMP AND Q (ALU AND Q) LEFT 1 ; MCTEMPS] 0 Page . ;%zgg? FX.PREOPS, SUBALTG: 114085 06A5, 0980,0C37,2AF0,0047,04F7,0 o D 11 Q_RLTEMP3] : E}gggg FP.PREOPS.QT2: 0672, 0C86,2205,C08D,8047,0000,1 114097 MLTEMP2I_(MB Q).SL.1, ;}2833 RETURN [¥1] Y SHIFT TEMP AND Q (ALU AND Q) LEFT 1 ; $14100 FP.QT6.SC17: 06E2, 0080,058E,5031,8047,006A,6 R AL 114102 I ;12}82 L T Dttt : @ RCTEMPG], : NEXT/FP.SCi7 ; LOAD UP Q 214105 FP.QT1.SC17.CHKINT: 06E3, 0480,1592,5830,18E7,006A,6 :14106 114107 114108 $14109 =0 1164110 FP.SC17: 21411 06A6, 0180,0¢37,0080,8907,0000,1 114112 ;}2}}2 114115 06A7, 0980,0C37,2AF0,0047,04F7,0 jmeseSsmsssmsssscsmecscccssmocons : Q_MLTEMP1], © IP.TS? ; Q GETS THE OPERAND ettt L DH STEPC_2L1T0017.3, RETURR [+1] Y SET STEP TO 17 ITERATIONS : PR ; $14116 D_ZLITOLOT, : 14118 PUSH,NEXT/IE.SERV.IP.TS2 ¢ TIME TO CHECK FOR INTERRUPT OR TIMER $14117 INTPEND OR TIMER?, ¢ CLEAR OUT D FOR FPD DO THE TEST HERE FAULT : 339 ; : CMTO98.M§§ FLOAT.M MICROZ 1M(01) 16:30:35 28-NOV-83 Floating point and CRC ;}2%;8 L.T0C ' 314121 : E N CLOKX Rev 13.00, Clock rate = 160ns Page FP.MULD.SUB Floating point and CRC : FP,MULD.SUB '’ ;*tt**tt**kt***ttt*ttt**************************************t***********t***** 214122 ;14123 ; ;;215? ; FP.MULD.SUB : 14128 ; 14129 ;%2}%9 : 116132 14133 ;. 14134 ; 214135 ; A(temp?2) srct $16139 ; esesessees | ! bits 32-63 | srce 214142 ; D{temp6) { bits 0-31 esssssesses INPUT: 114143 ; 1 i bits 32-63 | D.Q BD Temp3 Tempb (Q) BC Temp3 Temp1(Q) 114150 ; AD Temp? Temp6 (Q) ;14152 ; AC Temp?2 Templ (Q) ;14151 ; 114153 14154 ;14155 ;14156 ;14157 ;14158 ; ; ; exp - Rtemp8 seeeseeee- Rbus 214146 ; 214147 ; ;14148 ; 114149 exp ~ temp5 ecesecoees {(templ) ;14140 ; ;14141 ; ;14144 14145 ; B(temp3) i bits 0~31 ;}2}%? : 214138 ; MULTIPLICATION DOUBLE PRECISION MULTIPLY USING CROSS PRODUCTS ;}2%%9 H QUTPUT: ; AC ;14159 ; AD PART3 (D) PART4 (Q) :14161 ; 214162 ; BC PARTY (D) PART6 (Q) ;14160 ; :16163 214164 ; 114165 ; 114166 ; 014167 ;14168 ; ;14169 214170 216171 PART1 (D) PART2 (Q) 8D PART? (D) OPERATION: o , Each multiplication done 2 bits at a ¥1eld1ng a 64 bit product in D,Q PART8 (Q) . time hese are identified above as the PART1-8 After each multiplication the check is made for interrupt and timer 340 i : F 11 Page CLOKX Rev 13.00, Clock rate = 160ns FP.MULD,SUB . The partial product additions are performed as: ’ . 1. . . Discard PART 8 . . By . PART7 => Temp7 . . . . ’ . . . . - v . . Temp7 + PARTS => Temp? ALKC + PARTS5 -> Temp0 PART4 + Temp? => Get ALKC . » ON . PART3 + ALKC + TempQ -> Temp? v N . - . . ALKC => Temp0 . . o . PARTZ2 + Temp7 ~> Temp3 . . *kk . . O SR O A S NG = OO 00 O LN IS LAND =2 © 2O G0 O IS AIND = OO CO NI 16:30:35 . . PART1 (D) +ALKC +Temp0Q ~> Temp? . ’ xxx ypon return to calling routine » . ’ SUBROUTINES: . ’ . FP.QT1.SC17.CHKINT FP.QT6.5C17 . ’ . ’ . » . . KRk h AR dA Rk de kR kR Rk R A AR R A AR AR AR AR AR KA AR KRR AR AR KRR AR AR AR R ARk A kAR KNk K =000 FP.MULD. SUB: ;0 - L e L L MULFAST+ CAND IN RCTEMP3I, Y STEP=17 Q HAS TEMP6 NEXT/FP.MULD.SUB * DBZ STEPC?,SIZELLONGI, :0 RLTEMP7I_D, PUSH, " PART 7 AND 8 IN D AND Q (B AND D) --------------- ALL DONE 1ST PARTIAL PRODUCT ; SAVE PART 7 IN TEMP? NEXT/FP.QT1.SC17. CHKINT FP.MULD. 58?610: MULFAST+ CAND IN RCTEMP3], DBZ STEPC?,SIZELLONGI, NEXT/FP.MULD.SUB.10 * DISCARD PART 8 * SET UP FOR SECOND PARTIAL PRODUCT * AND CHECK FOR INTERRRUPTS AND TIMER ' STEP=17 Q HAS TEMPI * P ---------------------------- : PART 5 86 IN D AND Q (B AND Q) 2ND PARTIAL PRODUCT ; GET THE SUM OF PART6 + PART 7 i N o I NN — O O 00 IO N B NN = O D 0 D b D ) D b D e emd e e D ) b e b b O00C00000C0COC0 000000 N NN NN~ o3 e D O oF o o o ol ok P T al Al AP op oW A R N b ed b b ad e} U 0528, 0086,7009,0030,0047,005F,1 e U 052A, 0080,0027,9320,(047,0052,A OO OV C O OO a8 2 O D e D D d ek b e ) b ) D b b d b D e b e b md b b e b e J 0529, 0484,0582,4031,(047,046E,3 —3 b b =3 b 3 SLSLSLELETLNLELN L ST S[aN ST S [N TN T,0 18 a0 POPOPONONONOND RN b[ L R T TR TR TE R R S PR PR TR PE TR TR TR PR 2R P SR TL U 0528, 0480,0027,9320,(047,0052,8 POPOROADNY = — e e a3 B ek 2 B DO OOOOCOOOCO GUY AN N L A R o o P ol S S iy U QRS QU QU TR T T U T T R PR WA P WU LY 1M(01) 28-NOV~83 MICROZ2 Floating point and YR U CMTO98.MCX FLOAT.MIC U : H 341| FLOAT MIC MICRO2 1M(Q1) 28-NOV-83 Floating point and CRC G 1 CLOKX Rev 13, 00, Clock rate = 160ns 16:30:35 : i CMT098.MCX Page FP.MULD.SUB 2146225 =00 214226 =01 116227 05F1, 0086,0061,003D,8047,046E,2 101 =—remmmm—ememcmcecceet e e MCTEMPO] _D+ALKC, ;14228 PUSH,NEXT/FP,QT6,SC17 :}2%%8 ;14231 FP.MULD. SUB 20: 114232 214233 05F2, 0880,0027,9320,8047,005F,2 [am 05F3, 0480,7009,0030,0047,0006E,4 06E4, 0B86,7061,0030,04E7,005F,5 - o e e oy o e e e e MULFASI+ CAND IN RITEMP2], DBZ STEPC?,SIZECLONG], 20 NEXT/FP.MULD.SUB. 214234 214235 :14236 14237 - o o o o - e s e e ;14238 114239 = :164240 114241 :}252% MLTEMP71_D+RLTEMPOJ+ALKC, MDR_0 ;14244 =00 ;14245 =01 114246 05F5, 0087,2041,003D,8047,046E,3 ;164247 ;14248 :}Zggg ;14251 114252 114253 05F6, 0080,0027,9320,8047,005F,6 ;14254 214255 : 14256 o 114257 05F7, 0084,7009,0080,C047,0000,1 ;14258 114259 14260 PART 5 + CARRY SAVE IN TEMPO Q GETS TEMP6 RESET STEP TO 17 gLEMPO MDR+RLCZEROJ+ALKC, PART 2 AND 3 IND & @ ( A AND D) 3RD PARTIAL PRODUCT GET CARRY FROM PART4 +PREVIOUS VALUE PART 3 PLUS THE PREVIOUS CARRY CLOBBER MDR FOR NEXT INST AND SUM PART 5 AND PART 6 SAVE ALKC (MDR AND RSRC ARE ZERO) NEXT/FP.QT1.SC17, CHKINT RESET Q AND CHECK AGAIN FOR INTERRUPTS AND TIMER MULFAST+ CAND IN RLTEMPZ], DBZ STEPC?,SIZELLONGI, 0 HAS TEMP1 AND STEP = 17 PART 1 AND PART 2 IN D AND Q FP.MULD. NEXT/FP.MULD, SUB. 30 oy 90 o O g R[TEMP3] MLTEMP7]+aQ, RETURN [¥1] FINALLY BITS 32-63 TEMPO HAS PREVIOUS CARRY D AND ALKC HAVE BITS 0-31 342 ; : CMTOQB.ME% FLOAT .M MICRGZ2 1M(01) 28-NOV=-83 Floating point and CRC :%252; .T0C "' Page CLOKX Rev_13,00, Clock rate = 160ns 16:30:35 : FP.DIVD2 FP.DIVD3 Floating point and CRC ;14263 SRR RRAK KRR KRR K h kKRR kAR AR 14264 ;14265 ; :14266 ; 114267 ;14268 ; $14269 214272 R R Rk R KRR AR KRR RO SR AR RSk 66 DIVD2 divr,rd,quo.md 67 bivb3 divr.rd,divd.rd,quo.wd Input: ;14270 ;16271 : FP.DIVD2 FP.DIVD3 " \ Temp MDR ) . ) divr.rd (bits 0=31) (bits 32-63) Resources: 014273 ; J16274 for divr 214275 214276 Temp2,Q Temp3 2146277 14278 ; Temp5 Fla?2 214279 ;14280 ; . ;14281 214282 ; MUL1(FLAGZ)) Subroutines: FP.MULDOPT *(QS.DMOD ;16283 ;14284 ; 114285 :14286 14287 *0S.DRED 0S.WRT1 i R K . fraction (bits 0=31) fraction (bits 32-63) exponent sign of operand . parse divr get divd for DIVD? get divd for pIvD3 get quotient for DIVD3 » return_is through IRDROM to FP.DIVD.20 to continue operation ;14288 ; Exit: 014291 :14292 Operation: o ) These are the driving routines for the double precision ;{zsgg : ;}zggg ; . write bits 32-63 of answer DIVDZ and DIVD3 instructions :}2532 : 214295 2164296 FP.WRITE,SEC exexnerxxtFPA ENTRY AND INTERFACExwwaxkwnnx DlvD2 (0S.RED) ~ FI.ADDD2.REG/FI.ADDD2.MEM DIvD3 (0S.RED) =~ FI.ADDD3.REG/FI.ADDD3.MEM ;14299 :'fikttkwtttktt*t**t*t*i*ttttttk*k****tt**t***tt**********t*t************t****** 343! ; : CMT098 . MCX FLOAT . MIC MICROZ 1M(01) 16:30:35 28-NOV-83 Floating point and CR( I CLOKX Rev 13.00, Clock rate = 160ns : FP.DIVD2 FP.DIVD3 Page ;}2%8? .856]0N/IRDX.R1L,lRDX.R1H/IRDX.R3L,JRDX.REH 214302 FR.DIVDZ: JOEKRRARRKR RN ARk Kk 214303 ;00==mmmmmmccmccccccccccnnananan ; 214304 ROTEMPS] _EXP(MLTEMP1]), ; PARSE DIVISOR U 00D4, 0484,1437,0AB1,4047,0C5E,4 323 ;14305 :}2%89 ;14308 U 0005, 0086,203A,418BD,8047,0419,0 10l e ; TEST VALIDITY OF OPERAND ; e e cnenecanw. mmmememm——- ;14309 MLTEMP2] Q, ; SAVE BITS 0=31 IN CORRECT TEMP :}2%%} PUSH,NEXT/0S.DMOD ; FINAL RETURN HERE 14310 1164313 LOD INC BRA?, ; GET DIVD RET THRU IRDROM TO FP.DIVD.20 J10=mmemmececncccccccccncnn -H 14314 RLDST.R] _MLTEMP2], ; DO FIRST PART OF WRITE 16316 :}2%}5 SET MM, NOINT,CCOPT, NEXT/FP .WRITE.SEC . SET CONDITION CODES s CONTINUE THE WRITING ;14315 U 00D6, 0064,2592,403C,4DDA,0056,F FRO.FLTZT, PUSH,NEXT/FP,MULDOR1 WRITE NOTREG,SIZELIDEP], ; NO INTERRUPTS ALLOWED :14319 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX,R2H 214320 =00 ;14321 i U 0008, 0484,1437,0AB1,4047,0C5E,4 323« 214322 :14323 114324 ;}2%32 ;14327 J 00p9, 0886,203A,418D,8047,0418,0 U 00DA, 0C80,0034,4180,0047,0614,0 00=mmmom e me e e RCTEMPS] _EXP(MLTEMPI]Y, FRO.FLTZT, PUSH,NEXT/FP.MULDOP1 AR RN KK ORRRRRRRAAR e -: ; PARSE DIVISOR s TEST VALIDITY OF OPERAND : 10l semmecccnrcndncca ——m——w- : 14428 114329 MLTEMPZ2]_Q, PUSH, : Q GETS TO CORRECT TEMP (BITS0-31) ;) GET DIVD ReT AT END ;}2%%} NEXT/0S.DRED : TO FP.DIVD.20 ;14333 ;14334 114335 J10=mmmmmmmm sm ece— e —— - H PUSH, ; GET DST FOR QuoT LOD INC BRA?, J 114330 :}2%%9 LOD INC BRA?, ; RET NOW THR IRDDOM NEXT/0S . WRT1 : ;11 H 214340 WRITE NOTREG,SiZECIDER], : ;14343 NEXT/FP,WRITE,SEC ;; 114338 ;14339 U 00DB, 0064,2592,403C,4DDA,0056,F FP.DIVD3: 14341 214342 RIDST.R]_MLTEMP2) ?EngM.NOINT, 1 DC FIRST PART OF WRITE * ; NO INTERRUPTS ALLOWED SET CONDIiTION CODES CONTINUE THE WRITING 344 .T0C Y 16:30:35 : SR PR TR AR TR L TR TR PR PR TR P TR e o T T e T P J 1" CLOKX Rev 13,00, FP.DIVD.20 Page Clock rate = 160ns : Floating point and CRC KA KRR KRR R AR T T h T i d e d e P D D b b LA TR DR h b 3 TR PR TR mh R TRT R R e D nd d D ah d e T P P D ek F N N A o ol o N a at aP 2P R AP P o o S F o Fo N R S N N Y aE AT 2t Rl ol R o g S b a O AT N N AN AT N A NN G (A O N N U N AN U NN TN A AU AT A N O U U U AU N U N A N A A A N NN N LT LAIT LT VAV S D BE SN NN N NONOO OO OO O A0 O 0 O N0 D0 Co €O 00 O Co 0o 0a COCo ~¢ NN NI~ LS INNY = SO 00 O N Sy — OO0~ LN B AN = OO 0O SNON N AN —2 OO0 0 NOMAA TS NP = O O 00 O R b D MCX CMT0.98 FLOAT.M 1C S ; o S b —d e mmd s b b acd b b e e e B b b D d b e b ) D e b b : 28-NOV-83 1MCQD) MICRO2 Floating point and CRC AR AR RRR AR R ARk kA FP.DIVD.20 kAR Rk kR kR Rk dkh ok khdkdkohkdkdk FP.DIVD,20 DOUBLE PRECISION DIVISION FOR DIVD2,DIVD3 Input: . Temp1 MDR dividend bits 0-31 bits 32-63 for divisor Temp2 Temp3 Temp5 fraction bits 0-31 fraction bits 32-63 exponent sign of divisor Fla?2 ) _ ) MULT(FLAG2) Fla?1 set if divisor 0 MOPZERO(FLAGY)) Resources: For divisor same as input for Dividend Templ fraction bits 0-31 Tempé fraction bits 32-63 RTemp8 exponent | Fla? sign of dividend MUL2(FLAG3)) L D,0 Stepcounter Subroutines: FP.MULDOR2 to perform division to control division loop . to parse dividend Operation: The dividend is parsed and validated It 0 then the quotient is 0 and exit is made It the divisor is Q FP.DIVD.ZERD is entered to make a fault exit to IE.FLDBZ.FAULT Else the exponents are subtracted and rebiased with the fudge factor of +62-hex for later normalization The magnitude of the dividend is D (bits 0-31) Temp6 (bits 32-63) The magnitude of_the divisor is Tempd tbits 0=31) Temp3 (bits 32=63) 345| d e b e e NS NN = O OO NN b e AN PO PO RO MU PO NO) RO RO NO N N L AN N G N AR NMANNS = O OO A FP.DIVD,20 The s a double length operation consistof AT compare and shift function using a nonrestoring division operation \ TR P P e R The operation is performed in 3 loops of 16,16, 26 iterations checks for interrupts and timer are made at appropriate intervals At the end of the total operation Temp2, Temp3 have the fraction The normalization routine is entered at FP.NORM,MUDI T to determine the sign of the quotient bK the XOR of the operand signs Return is to the calling routine if no floating overflow is I E A L A P P WA =S OO - NN SAWNND = O 0 Pl o olko kel e T [=lelelelelelelololo] = b b AL AL AL A R AP P R g A P N A N N R aemawaw. N N O N S P 0804,4592,4570,8047,0050,A A J QUEB, 0086,5003,0012,0V47,046E,5 O v COEA, LR U O0E9, OD1E,2D77,05F0,4047,005F,8 O N ol S G N o P 0084,1457,0AB2,0047,0C5E,8 323+ Y ol o S r R PR TR TR TR P e P QI GEET SERE PISTPREEE PP QU U O I Ut QUL WU I QU U QD S U QO0E8, s $8 ) 14398 t Page CLOKX Rev 13.00, Clock rate = 160ns A : 14396 ;14397 16:30:35 detected or floating underflow with FU bit set S FLOAT MIC 1MQ1) d2?;?0V-83 Floating point an MICROZ2 FP.DIVD,ZERO N H CMT098.MCX if the divisor is 0 exit is made to IE.FLDBZ.FAULT [ : 3 K 11 RN KRR KRR RN AR RN AR N AN R RN AR AR kR Ak ko k kA ko dokk ok Ak d ok ek ko .85610N/1RDX.R1L,lRDX.R1H/IRDX.R2L,JRDX.R2H FP.DIVD.20: PR e E L LT ; RET THRU IRDROM RITEMPBI_EXP(MLTEMP1]), ; TEST VALIDITY OF FRO,FLTZT, ; PUSH,NEXT/FP.MULDOR? DIVD ; B 1 R e: RET +1 ANS IS EITHER CLEAR MUL2(FLAG3), MCTEMP2]_ZLIT12[8], ; CLEAR FLAG IF ANS IS ZERO ; DIVIDE BY ZERO OR DIVIDEND IS 0 NEXT/FP.DIVD.ZERO : MOPZERO(FLAG1)?, ¢ TEST MOPZERO(FLAG1) TO DIFFERENTIATE ;10m=mmmmmmemeen e mm— .- ; RET +2 TIME TO DIVIDE ; SUBTRACT EXPONENTS MLTEMPS] RLTEMP8]-MB, SIZELWORD],PUSH, ; OFF TO SUBRTN TO DO DIVIDE NEXT/FP.DIVD.45 RR L EE L L L EL L ROTEMP2]_MLTEMP4], : L L LD D ; CLEAR FLAGO, MUL1(FLAGZ) XOR MUL2(FLAG3)?, NEXT/FP.NORM.MUDI ; RETURN TO WORKING TEMP ; CLEAR FLAG FOR QVERUNDER USE , SRC1 =0, 2XOR3 GIVES SIGN OF QUO ; RETURN TO FIRST CALLING RTN 346 ; : CMT098,.MCX FLOAT.MIC MICRUZ 1M(01) 16:30:35 28-NOV~B3 Floating point and CRC LN CLOKX Rev 13.00, Clock rate = 160ns : FP,DIVD.20 Page ;14438 REGION/FLOAT,RIL,FLOAT.RIH/FLOAT.R2L,FLOAT .R2H/FLOAT ,R3L ,FLOAT .R3H ;}2223 FP.DIVD.4S: U 06ES5, 0186,5011,0013,1047,006E,6 U 06E6, 0DBO,0EF6,4030,3047,0006A,8 Y1444 ;}222% : ; USED BY G FLOAT }%2229 Y SET UP PLATCH FOR LATER 114449 114450 ;;22;; 114453 U 06A9, O00E,6000,C030,C047,006A,A SIZELWORD] * TAKE CARE OF EXP FACTORS 3%2222 FX.DIVD.50 $14448 =0 U 06A8, 0000,1002,603D,8047,0464,6 METEMPS] MB+ZLITOL62], 114454 114455 Y4456 PL_L6] P e e : SET UP D FOR DIVISION (BITS 0=-31) D_MCTEMP13,CL EAR FLAGO, USH NEXT/FP.SC17 * GET FLAG CLEAR FOR DIVISJON LOOP " SET STEP TO 17 (ONE LARGER) P LIt T Py ; START OF MAIN DIVISION CLEAR FLAGY, MCTEMP6]_ (MB=RLTEMP31).5L.1 * CLEAR FLAG FOR CONTROL SOON * DIVD_DIVD=DIVS (BITS 32-63) * CARRY IN ZERO 114457 =0 ;14458 FP.DIVD,130: 114459 T i Qmmmmmmmmmm e e e; 114460 U 06AA, 0080,0026.F320,90(7,006A,E U 06AB, 0480,0036,4AF0,0047,04F7,0 51VDS SOR IN RLIEMP21, P DIVD (Q) - DIVS(TEMP2) DB2 STEPC? ,NEXT/FP.DIVD.ALUS : THIS IS FOR LOOP 114461 ALUS_UNSGN, ST2ECLONG], 114464 D L BT S ; $14466 PUSH,NEXT/1E.SERV.1P,TS2 ;}2225 114465 iNTPEND OR TIMER?, t SAVE ALKC, STEP IS 1> AT FIRST TIME Y DO THE TEST HERE » TEST FOR INT OR TIMER L i - (=1 EQUIVALENT TO ALKC ADD AND SHIFT §0m=mm e o m oo DIVDA SOR IN RLTEMPZ], ALUS_UNSGN,SIZECLONG], DIVD + DIVS SAVE IT INTPEND OR TIMER?, PUSH,NEXT/IE.SERV.IP.TSZ DO THE TEST HERE TEST FOR INT OR TIMER ALU s?, STEP NE 0 TEST ALKC SAVED AS NOTALKC —~m — o S L A~ n M[TEMPOJ (MB+RLTEMP31).SL.1, - $?7,NEXT/FP,DIVD.130 pBZ STEPC?,NEXT/FP DIVD.ALUS al i 1] EQUIVALENT TO ALK( SUBTRACT AND SHIFT MP6] - IP.18? 2 N Page (MB-RLTEMP3]),SL.1, - - e et al FP.DIVD. T A b e M 11 16:30:35 CLOKX Rev 13.00, Clock rate = 16Cas : FP.DIVD.20 P b b b ) e b D b ) e D e e ) D o e N o S VOAF, 0486,003A,453D,8047,005F ,C L oo 06AE, 0480,0036,4870,1847,005F,9 N N 06AD, 0480,0036,4AF0,0047,04F7,0 N 05FB, 0086,6001,CB30,D8E7,006A,¢ wa 05F9, 0486,6000,(B30,D8E7,006A,A OO0 0O 000 OCRO0CR N N NN NN NNNNOONON UTkafiJ—ND‘OGTVO“A:HNFJ—‘CMOCD‘JO“flJ‘U“U—flCNOCD‘Q d =01 a A ALAN and CRC .................-...................~.-....... floating point 06AC, 0480,0027,F320,90C7,000A,E C 28-NOV-83 1M(Q1) d ——d cad mh U MICROZ — ~. ~. U CMT098.MC X FLOAT.MI C =0 FP.DIVD. e e e M[TEMPOJ Q, G FLAG<1-037, NEXT/FP, DIVD. NXT B O o B e O e STEP = 0 SAVE QUOTIENT TEMP [N TEMPO TEST WHICH TIME THROUGH LOOP 348 | L K CMT098.MCX MICROZ IM(OD) 23-NOV-83 16:30: 35 : floating point and (RC FLOAT MIC ! N 11 Page (LOKX Rev 13.00, (lo.x rate = 160ns FP.DIVD.20 :14496 =00 i U 05FC, 0940,0037,0030,7907, 0064, ! U 05FD, 0948,0037,0030,0107,005F ,E U O5FE, 0884,0592,4031,0047,000A,E :1 ;| :1 ! 21 i 1 | 1 | | 0 1 1 U 05FF, 080E,3A37,0080,0047,0000,1 J 05F8, 3C14,0587,0080,8047,0000,1 d Q5FA, $4R0,0036,4030,0047 ,C0FF,C | B ;1 % ! 1 | | 01 1 E N A ST 2 W o S A LA TN A LT T LT T A ;1 e a2t R It A T T NN IR S S AT s D ! 14497 FP.DIVD.NXT: PUMUMONS e md 3 e 202 BB OO0 T OOV NN~ D OO0 NN N IMANL = OO0 NON N S NN — OO o | ;00== == mmm e cemmamm===; FIRST TIME IN * INDICATE THIS SET FLAGO, ; STEPC_70L1T015.]3, NEXT/FP.DIVD.ALUS * CONTINUE ON L ——— ; SECOND TIME IN SET FLAGT, STEPC ZLITO[Zb.J 10m=mmm e INDICATE THIS SET STEP =26 e e RITEMP4] MLTZMPOT, e: NEXT/FP.DIVD.ALUS o SAVE FIRST PART (LOG OPERATION) ALUS OK Mcrfmp31 RLTEMPO].ASL.P, ————— . . b CANT GET HERE WITH BRANCH o oy e e T g g e 0 P LAST TIME SHIFT LEFT CLEAR FLAGT,RETURN [+12 THROUGH PLATCH (6) BITS _0* FP.DIVD, ZERO ------------------------------ CLEAR MUL1(FLAGZ), RETEMP2]_0, RETURN [+11 [ T L NEXT/1E.FLDBZ.FAULT DIVIDEND IS 0 CLEAR OTHER ERROR FLAG MUSY RETURN FOR e et CORRECT WRITE DIVISOR IS 0 GU FAULT INSTRUCTION 349 : H CMT098.MCX FLOAT MIC MICROZ TM(OM) 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns Page ¢ FP.EMODF Floating point and (RC ;}zggé JOC ' B 12 floating point and CRC : FP.EMODF '’ :011.526 ;ttttl«fi*tt&w**t*tfittt'fllflitttfit(t!'!t'*llwNttt*'ttttt*t*t*tfl*t*i*****i**iiiiii 114527 ; ;}zggg : | ;14530 ; 014531 214532 14533 214534 J146835 ;14536 ; ;14537 ; 114538 ; ;14539 2145640 $14541 $14542 114543 ; $14544 ;14545 ; ;14546 ; 114547 54 EMODF mulr.rf,mulrx.rb,muld.rt,int.wl,fract.wf Input: L mulr.rf (multiplier) MDR mulrx.rb (multiplicand) Resources: L fraction myltiplier Temp5 Flage exponent several usages form bits_31-8 multiplier . bits 7-0 extension byte ie binary point betore bit 31 (MUL1(FLAG?)) sign of multiplier (OVER(FLAGZ2)) Temp0 RTemp8 Fla? MUL2(FLAG3)) 214548 ; D,Q ;14550 Stepcounter 14549 . Temp2 . integer overflow fraction of multiplicand binary point before bit 31 exponent sign of multiplicand , _ used for multiplication among other operations . loop control of muttiplication 14551 ;}222% : MTemp8 RTemp10 2146554 ;145585 114556 ;14557 114558 ; Fla?O sign of product for cvt rtn ADD1(FLAGO)) Fla?1 several usuages REGINT(FLAG1)) regmode tor int.wl (MORZERO(FLAGY)) either operand 0 ;14559 ; 14560 ; $14561 ;14562 MDR Subroutines: save sign of product RNUM/VA of int.wl integer . . FP.MULFOP1 parse validate multiplier 014564 0S.FRED get mulr.rf (multiplicand) 214566 05.WRT1 get 14563 ; 14565 114567 ;14568 . 114569 :}22;9 ; J14572 14573 J16574 214575 114576 FP,ZERQTEMP3 FP,MULFOP? 0S.WRT1 zero operand parse validate multiplicand get Int.wl fract.wf FP,CVTFI.SUBALT convert FP.NORM. SNG float to integer normalize,roynd,pack MM,PRB,WRITE,.S12.00 probe write access Operation: L i Upon entry the multlfller and extension byte are available FP,MULFOPT parses and validates the multiplier which is shifted left 1 and merged with the extension byte = 32 bit value 350 1M(Q1) 28=NOV=83 16:30:35 Page 160ns NN = OO0 N 0S.FRED fetches the mulgiglicand FP.MULFOP2 parses and validates which is also shifted left 1 rqmov1n? the overflow bit position 0S.WRT1 is called to get the integer (int.wl) xxxxw% the exponents are added, the sign of the groduqt determined If int.wl is in a register NUM is saved and REGINT(FLAGT) is set otherwise VA is saved and the flag cleared 0S.WRT1 is called to fetch the fraction (fract.wx) return is made to the calling rtn unless the product was 0 in which case the multiplication steps are effectively bypassed regardless of the single double instruction NN = OO0 Khkkkk KRAhW this routine FP.EMODF.250 is called also in processing EMODD instruction For EMODF the return is FP.EMODF.30 to perform the multiplication a 32 bit fraction is produced & normalized to bit 31 Kkkdok Common flows LAL 2 24 for EMODD begin here 1t integer overflow or floating underflow POE T (FU bit not set) have occurred because of exp manipulation, the integer and floating operands are 0. otherwise a call is made to FP.CVTFI.SUBALT to convert the value to an IRA O integer with a T LI T TR L I is normalized,roynded packed . Upon return the fract.wx is tested for regmode if not reg then a probe access test is made at MM.PRB.WRITE.SIZ.00 . Upun return or if regmode the int,wl is written from MDR At this point the EMODF,EMODD instructions diverge. the fract.wx is restored to VA/RNUM. For each an error/nonerror path exist if integer overflow the V bit is set the low order bits of the true result have been written out & IRDT causes the trap For non error the writes occur and IRD1 exit P TR floating fraction part Upon return MDR contains the integer, the fraction part is positioned with the binary point before bit 31 and unnormalized A fudge factor is added to the exponent temp which is 0 except where the exp had been <0 in which case 1t contained the exp as computed FP.NORM.SNG is branched to where the fraction A L AR —SO NO NS = O OO0 NS ANND =2 OO0 NN O NS NN OO NoNo No No N NoNo ¥ No No o fo = Y= X CLOKX Rev 13.00, Clock rate NN N~~~ NOALALALPLRLMNDNOMNONY = = D S e b B OO[wlelolelelole] SO OO0 N0 OO0 OO0 C0Co0C0UCO00 D T R e e o Neo Xa Yo Jo Yo Yo Yo To Yo To To TorloN O~ uunuavTuviuuiuiuavniununuauaviuiaiuiuiiuvaviuvi R et PO A 3 it et Ay WA — TUR TR . T S P AR P T T T8 T N T L R R YR S I T T T TUE DR PR b b b e e e e D D e S o A b D d h D e ) e D e e ek rd D D ) b e eh ek ed e b b A O A el B S g o o T Al aEal b aE o A R o Dt 2t Al b AP S L A €12 : FP.EMODF floating point and CR( —d b o d b > e ad e B N Y o o A A T.MIC MICRO2 P 8.MCx swxxaxnxxxFPA ENTRY AND (OS.RED,0S.RED) AR AR AR R AR RN INTERFACEwx*%xawhwwnw = FI1.EMODF AR R KRR RN A AR AR RN KRR R AR XK AR AR RN ARRA AR AR AR RN IR RS 351: 0080,0E52,0180,0047,0414,0 eh ad amb e comh b D mmh 0880,0027,9320,8047,001D,8 u 0109, 0816,2582,46F0,0047,0060,1 b b 2 ) U 0108, S u 0107, 0580,0037,0030,8907,046E,8 h b b e v 0106, AN B D I8 B D B B I B DS AN TN AL A OO 00 NN NN = OO 0 NN S AN — OO O NN B W St D e ) ) N N D d ah it D ) U 0105, 0£85,2437,0A82,0047,0058,C 323 R R R T T U 01D4, 0085,2016,4180,8047,0416,0 T e B d 3 e d i} d e R e R 3 b e U 0103, 0884,05F7,0010,8047,0454,2 TR TR P D b TR u 0102, 0886,203A,403D,8047,0463,A h d 13! —=O000~ S NP 3% 3 NNNNNNNNNO OO OOO ONON AN 2 01D1, 0C80,0036,4030,04E7,001D,3 N A S o Al b bl o o o o o A o A A Pl R A o B P P R B o ol ol kb b E o A R [e Yo NoNu N Yo Tn To Yo No No Jo o Joud OO[= Yo Yo Yo ¥o NoNo Yo N Ho o Ho Yo o do Jo o JoToJoJoJo Te Toote :1 = O Floating point and (RC ;14630 ;14631 114632 . = = D 1 P4 16:30:35 28 -NOV-83 1M(O) AN FLOAT . MIC MICRO2 NS ; (MT098,MCX DO : : FP.EMOD ELOKX Rev 13.00, Clock rate = 160ns ON/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX.R2H RET =1 FROM FP.MULFOP1 ANSWER IS 0, MOPZERO(FLAG1) LR MDR_0, NEXT/FP, EMODF . 10 FP.EMODF: ; 00 2322233222820 2 s ss - - - MCTEMP2]_Q, MULTIPLIER TO AN MBUS SOURCE NEXT/FP.MULFOP1 PARSE OPERAND PUSH, FP.EMODF.10: ; 001 SET - " - > > Y RETURN +1 FROM FP.MULFOP! SHIFT MULTIPLIER LEFT 1 FOR EXTENSION S RCTEMP2] RB.ASL.1, PUSH,NEXT/FP, ZEROTEMP3 ZERQ SECOND HALF ;0100====mmmmmmmmm oo ce -— RLTEMP2] _RB.OR.ZEXT(MLMDR]), SIZECRYTE), LOD INC BRA?, PUSH,NEXT/0S.FRED ;0107 === oo e RLTEMP8] _EXP(MIMDRD), FRO.FLTZT, PUSH,NEXT/FP.MULFOP2 EXTRACT EXPONENT OF MULTIPLICAND TEST VALIDITY ;0110-- REMOVE THE OVERFLOW BIT (BP IS BIT 31) Q_MLTEMPOl.SL.1, LOD INC BRA?, GET PUSH,NEXT/0S.WRT?Y ;011) emm oo m e STEPC_ZL1T0C17.1], MERGE MULT AND EXTENSION (EMP2 TO GO _TO RBUS GET THE MULTIPLICAND co es PUSH,NEXT/FP.EMODF.210 FP.EMODF.30: ;10 INT.WL DOES NOT DESTROY SET STEP COUNTER RETURN HERE LATER THZ MULTIPLICATION MULFAST+ CAND IN RLTEMPZ], STEP 1S 17 AT START NEXT/FP.EMODF , 30 FINISHED THE LOOP ? LOOP TILL DONE SIZECLONG], DBZ STEPC?, ;1007 === ==mmmmmsmm e mmmnn e oe MCTEMP2] D, CLEAR MUL1(FLAG2), wB<31-30>? DONE TEST IF PRODUCT IS NORMALIZED CLEAR FLAG FOR LATER @ A A A AAD-AP-A-A-N---- R R T R D d e e e e : ko b md e ek 3 e} b ik ) 3 e 08F1, 0886,3587,0030,0047,0053,4 H M[TEMPSJ MB=ZLITOL803, H; REMOVE SHIFT LEFT FOR NORMALIZING ] NORMALIZED THE EXTRA BIAS ; (LEAR THIS FLAG ALSO ;; EXP >=0,<0 : CLEAR MUL2(FLAG3), SIZELWORD],SIGND CMP DEF?, NEXT/FP.EMODF.60 =00 FP.EMODF. 50: OVERFLOW INTEGER ALTEMP21_0.MDR_O, SET OVERTFLAG?Y, ; EVERYTHING 1S ALSO ZERO :; SET FLAG FOR LATER : NEXT/FP.EMODF. 55 - = > > > o 2t S (B_MLTEMP5 3, AND. ZL 1 TOL803, O P ;; MASK OUT ALL BUT BIAS BIT ; 1S THE BIT SET :; CONVERT FLOAT TO INTEGER WXTNE.0? ,MDR_0, PUSH.NEXT/FPTCVTFI.SUBALT -....-..---..-------—..------------- 3 : RESTORE SIGN i D _MLTEMP8] O $00mmmmmmm e e e em MLTEMPS] MB+ZLITOL61], N S1ZELWORD], D e} b b o e : MDR HAS INTEGER NOT YET HANDLED SIGN ;; SET UP BIAS EXPONENT AND FACTOR (15 IR<5>?, PUSH,NEXT/FP.NORM. SNG R[TEMP1] RNUM,REG MODE?, PUSH,NEXT/FP., EMODF. 100 : FRACTION IN TEMP2,TEMP3 ;; IS IT SINGLE OR DOUBLE ;; GO NORMALIZE THE FRACTION ; ; SAVE RNUM FROM FRACT.WX WAS IT REG MODE n e: RETURN ONLY IF EMODD e e s 10==~mmrmmmmeo : WRITE FIRST PART RCDST.R] MLTEMP21, WRITE NOTREG,SET MM.NOINT, ; NO INTERRUPTS N N 060A, 0064,2592,403C,4DDA,006E,7 Page 160ns NOT NORMALIZED R[TEMPZ] MLTEMP21+RB, NEXT/FP EMODFD,45 E a a T 0609, 0085,6036,4930,4047,0468,0 L 0086,5(11,08D3,0847,0468,C FP.EMOD Clock rate SEGION/FLOAT.R1L,FLOAT.RIH/FLOAT.R?L,FLOAT.R2H/FLOAT.R3L,FLOAT.R3H D D amd aad ach o 0608, o} h 0606, 0880,8002,603D,8047,0060,8 md b e e 0605, 0180,5(12,0A74,04E7,0468,6 E1 2 ELOKX Rev 13,00, " 16:30:35 E T 0604, 0054,0587,0030,84E7,008BF,1 TP OPAPDPIOOOOOONONO 413+ e 0603, 051€,5(16,0B854,0047,0853,1 A TR T 0601, 0084,2001,0030,8047,0061,2 d ) d De PR PR TR TR T TR TR FLOAT.MIC L e O T » 28-NOV-83 1MQN) MICROZ2 Floating point and CRC d D b ) e el ) 3 CMT098.MCX CCOPT,SIZELIDEP], NEXT/FP.EMODF.125 :; CONDITION CODES :; FINISH UP 0BF1: FP.EMODF . 55: LxwxnnneaeFORCE ADDRESS**xxwhxwi; MCTEMP3]_0,NEXT/FP.EMODF .80 ; CLEAR BITS 63:32 IN FRACTION 353 ) CMT098. MCX FLOAT.MIC MICRO2 TMCOT) 28-NOV-83 Floating point and (RC 16:30:35 F 12 CLOKK Rev 13.00, Clock rate = 160ns EMODF Page | 354| ;14729 =000 ;14730 =001 ;14731 FP.EMODF.60: 116732 ;00 mmeemcmemcencmr e n e nma e ; EXP >=0 ;14733 WB_MLCTEMP5].AND.ZLIT8LOFFI, ; SEE IF OVERFLOW 0531, 0980,5D92,0A17,F847,0060,4 ;14734 ;}2;%2 ;14737 =011 0533, 0C84,0587,2030,84E7,045C,E ;14738 214739 :}2;2? SIZELWORD],WX.EQ.0?, NEXT/FP.EMODF .50 ; IF NOT ZERQO THEN OVERFLOW H L bttt L ; UNDERFLOW NO RETURN IF FU SET RLTEMP2] D_0,MDR_0O : ZERO OUT INT AND FRACTION PUSH, NEXT/FP TESTPSL ; SEE ABOUT FU BIT 2147462 FP,EMODF, 80 < ;14743 0534, 0085,6036,4930,4047,0468,0 0535, 0064,2592,403C,4DDA,006E,7 100===momomem—mcn e cc e aan e ; SAVE RNUM FROM FRACT.WX 14744 R[TEMP1] RNUM,REG MODE?, 214747 ;14748 ;16749 ;14750 ;10— me e n e ; RETURN ONLY [F EMODD RLDST.R] MLTEMP2], ¢ WRITE FIRST PART :%2;22 :}2;2; PUSH,NEXT/FP., EMODF. 100 WRITE “NOTREG,SET MM.NOINT, ccoet, SIZE[IDEPJ NEXT/FP,EMODF . 125 ; WAS IT REG MODE ; ; NO INTERRUPTS ALLOWED ; SET CONDITION CODES . FINISH UP EMODD 3 SN e 0683, 0c81,D58E,4080,4447,0000,1 : G2 FP.EMOD ELOKX Rev 13.00, Clock rate = 160ns NOT REG MODE TEMP1]_MLCVAI,PUSH, ; SAVE VA INSTEAD NEXT /MM BRE WRITE 812,00 :; GO PROBE SECOND OPERAND FX. EMODH INTWT: REG _MODE OR RETURN FROM PROBE : RESTORE INT.WL POINTERS ; WAS IT REG MODE AND WHAT WAS SIGN VA RNUM_RLTEMP10], REGINT(FLAGT) ADDT(FLAGO)? 00 Page ENTRY FOR G FLOAT .EMODG. .EMODF. ——— . = e URITE MIMDR], - - - T 20 S NOT REG MODE SIGN POSITIVE INTEGER IN MDR ;; NO INTERRUPTS NOW TILL DONE H e ; SET MM.NOINT. SIZECLONG IR<5>?,NEXT/FP.EMODF.1 - S Y - NOT REG MODE SIGN NEGATIVE URITE ~MCMDRY, SET MM.NOINT,SIZELLONG], IR<5>7 .NEXT/FP,EMODF . 120 ; INTEGER IN MDR COMPLEMENT IT ;; NO INTERRUPTS NOW TILL DONE : thPR R1_MLMDR], REG_MODE SIGN POSITIVE WRITE [0 THE REGISTER :; NO INTERRUPTS TILL END T ; SET MM.NDINT,SIZECLONG], 1R<5>7 .NEXT/FP.EMODF. 120 : R ettt - RCGPR,R].S1Z_~MCMDR] SET MM.NOINT,SIZELLO IR<5>? ,NEXT/FP ,EMODF N 0010 10 \O 10 00,00 00 05 00 GO 0O GO COONNNNNNNNNNOPOOOOOONO [0 JV, (O LWL IV, [V LV 1,3 VT . ENTe SV, U N T o RVaTe - RN 1oV, Po V) NS AN = OO0 NC AN SN = OO 0N [« T ¥ UL P D D e D D b ) ) b b b d D b o3 N N T b b b ok o L od N 0682, 0081,D58E,44B0.44A7,0063,3 T T TM 060F, 0€63,2593,08EC,C047,0068,2 O 0065,2592,48EC,C047,0068,2 N 060E, b emd b} ek b 060D, 0861,2003,08ED,85D08,0068,2 B 060C, 0861,2592,48€0,0508,0068, 2 N T R b e b ek ek el T T b e T 0681, 0481,D5BE,4532,84A7,0060,C P O b e T nd ek 0680, 0885,8592,4030,4047,0579,6 PR PETE P ek D e} PR TR TR 2 ) O A O N T ap Al o o o E At Al oF okl e o it s N SN SN NN N N N NN N NN NN N N NN SN SN SN N NN NN NN NN N N N SN SN N SN FLOAT.MIC 16:30:35 M01 ) 28-NOV-83 MICROZ Floating point and RC P [y 8 . MCX (MT09 FP EMODF . 120 - . - {A_RNUM_RLTEMP11, - ;; OVER(FLAG?)?, o O VA RNUM_RLTEMP1], RETURN [+1] EMODF IT INSTRUCTION RESTORE SECOND(FRACT,WX) OPERAND ; INTEGER OVERFLOW NEXT/FP . EMODF .WRITE - REG MODE SIGN NEGATIVE INTEGER IN MDR COMPLEMENT NO INTERRUPTS TILL END : " w08 e e EMODD INSTRUCTION ; RESTORE SECOND(FRACT,WX) OPERAND ; FOR D OR G FLOAT =0xx : H 12 CLOKX Rev 15.00, Clock rate = 160ns FP.EMODF ; USED BY C FLOAT TO FINISH uP OO ; v aeinoetetnlettt ; NORMAL EXIT RLDST.R+1] MLTEMP3], ; ?gé{fi NOTREG,SIZELLONG], ; WRITE SECOND PART R ittt uttutatat ettt bl bbbt H INTEGER OVERFLOW ; H; WRITE SECOND PART RCDST.R+1] MLTEMP3], WRITE NOTREG,SIZELLONGI, H; SET V AND EXIT NEXT/FP.SETVIRD1 =04 b 3 3 md REDST.R) _MLTEMP2] WRITE NOTREG,SIZEELONGI, b EMODF ; NO ERROR PATH ;; WRITE THF FRACTION ;; SET CONDITION CODES ;1** ............................. PUORIAD = N = OOM NN H TEST FOR ERRORS OVER(FLAG2)? e NS W — OO0 [=-] b b 3 O O OCOODOOOOOW DO N A A A N b P S o o E 2t A e R <0 00 00 O3 €0 00 00 00 00 00 0o Co 00 00O00 00 00 0000 00 CO 00 N~ ~ - SR AT Y TR TR Y P QU QU U PR TR PR P G i T S [ PG N U 0637, 0C84,2592,402C,4DDA,0051,E - U 0633, 0884,2592,412(C,4DDA,003F,9 QU W N T U 05F&4, 0C84,3592,402F ,45DA,0051,E T T T T J 05F0, 0884,3592,412F,45DA,003F,9 U i} 06E7, 0C80,0036,44B0,0447,005F,0 16:30:35 114796 FP.EMODF.125: 7 VA_VA+4, QU QUIT QHIE WU WU CMT098.MCX FLOAT.MIC QT QU : : 28-NOV-83 M ) Floating point and CRC MICROZ2 RLDST.R] _MLTEMFZ], ;; WRITE FRACTION CCOP1, NEXT/FP,SETVIRD? ;; SET CONDITION CODES : e o e e O e O G ey CCOPT,IRD1 WRITE NOTREG,SIZELLONGI, e o e W Y ‘ INTEGER OVERFLOW Page 356 MICROZ CMT098.MCX FLOAT.MIC 112 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28-NOV=83 1M(Q1) Floating point and CRC : FP.EMODF IS g D : 0538, 0586,8(C37,2930,0047,0053,¢ P S o o ;148 2148 H g ;148 :148 ‘ 053¢, 081D,6036,4030,44E7,0053,4 _ 053F, 0C4D,6036,4182,8047,0014,0 A A A O €O CO Q0 : SIGN OF PRODUCT IS POSITIVE ; WAS REG MODE? NEXT/FP. EMODF 300 ;00 ] wmmmmmm e e SET ADD1T [AGD), o me e; ; SIGN OF PRODUCT IS NEGATIVE ; WAS SET SIGN FLAG FOR CVT ROUTINE INT.WL REGISTER? ;; REG _MODE? :; NEXT/FP. EMODF. 300 HY o o 2 ey g INT.WL REGISTER? ; CONTINUE PROCESSING MCTEMP8] D _ZLIT12(8], e A G e s et O A NEXT/FP,EMODF.255 CONTINUE PROCESSING ¥ ; ZERO INTEGER FRACTION IS 0 FP.EMODF.855 e e et o e RCTEMP23_0,M _o CLEAR MULT(FLAG2 PUSH, REG MODE° NEXT/FP, EMODF 300 85 R e RCTEMP1] RNUM,MDR_0, :1zgg NEXT/FP,EMODF .80 ;1485 CLEAR MUC2(FLAG3) 214861 =0 ;14864 FP,EMODF. 300: ;1486 ; (MULT(FLAG2) XOR MULZ2(FLAG3))?, ! SRC1=0,SIGN OF PRODUCT? METEMPS] D ZL1710C03, ;1485 ;1486 ;1486 053, 0400,3592,4182,8047,0014,0 : CLEAR FLAG FOR USE LATER ; MOPZERD(FLAGT) : FP.EMODF.850 85 85 gg ;14862 : 14863 . CLEAR ADDI(FLAGO), MOPZERO (MUL1 XOR MuL2)7?, =000 85 85 N i 0538, 0814,0587,0930,84c7,0453,E L N T 053A, 0€80,0036,4030,0047,0053,8 N N 0539, 0146,8077,2930,4047,0053,E 148 ;148 8 8 8 8 AN A N N W AR ;14832 ; ADD EXPONENTS ) NEXT/FP.EMODF,.250 NI ;148 H g MLTEMPS] MB+RLTEMP8J, SIZELWORD], 2SN D IS i 06E8, 0006,5001,0552,0047,0053,8 ;148 ;148 DI DN B3I ;148 OO Y ;1482 mz\wm—aoooo\nov:bwm—aoooo\lombum—~o~oco\nombwrvdoooo\lombwm-»oom\lom&\ A RIS IR _;_s_;a_a_;_n_a_;._s._n_s_;_s._»_s_‘_n_.s_n_a_x_n_n._n—s_n_n_a_n..;_\_t_n_a_; 3N H353 FP.EMODF.210: FX.EMODG.300: F1.EMODF. 300: O o O L g e * ZERO INTEGER : NEED NOT CLEAR MOPZERO(FLAG?) : HANDLED AS REGINT(FLAG1) : WAS INT.WL REG MODE H ; ; SAVE RNUM VALUE ; CLEAR SECOND FLAG : ; ; ENTRY FOR G FLOAT ENTRY FOR FPA INTERFACE et bt b Ll ; RCTEMP10) _MLVA], ; NOT REG MODE FOR INT,.WL SAVE VA FOR INT,WL H CLEAR REGINT(FLAGY), ; CLEAR FLAG INDICATING REGMODE :}239 NEXT/0S.WRT1 ; GET FRACT.WX RETURN TO MAIN LINE ;1487 21487 P ettt vttt et DL L D) ; RCTEMP10]_RNUM, ; 1487 LOD INC BRA?, ;1486 ;1487 ;1487 LOD INC BRA?, ; REG MODE FOR INT.WL SAVE THE RNUM VALUE SET REGINT(FLAG1), ; REG MODE FOR INT.WL NEXT/0S.WRT1 ; GET FRACT.WX H Page 357 16:30:35 28-NOV=83 1M(O1) :}2%;9 .T0C ' ;}233? H i 74 : FP.EMODD "' A e A T EMODD mulr.rd,mulrx.rb,muld.rd,int.wl,fract.wd A Input: :14882 . ;14883 ; 114884 ; A AR LA AR AR AR L for multiplier fraction bits 0-31 fraction bits 32-63 all 64 bits of significance Temp2 Temp3 ;14890 ; 214891 Temp5 ;14892 214893 exponent . for myltiplicand Templ Tempb fraction bits 0-31 fraction bits 32-63 :14894 $14895 RTemp8 MDR exponent integer 14897 ; Fla%1 operand 0 ;14896 0 a1 2 A 1N A R B 2 A BN 21 1 get mulrx.r. FP.PREOPS.QT3 shitt operaids get muld,rd 0S.DRED ; ; FP.MULDOP2 0S.WRT1 FP.EMODF.250 FP.PREOPS, SUBALT PR NNV parse validite multiplier 0S.RED Exi i AN ITHAN = OO oo FP.MULDOP? L. parse validate multiplicand get int.wl get fract.wd prepare operands call FP.MULD.SUB to multiply X1ts TR TE T 1 1 :} ; FP.EMODF. 45 goins common flows with . FP.EMODF.60 MODF instruction Operation: FP,MULDOP1 parses validates the multiplier .Extension byte is tetched merged with the operand which has been shifted Left 1 . The multiplicand is fetched and fiarsed and validated . The integer.wl is obtained FP.EMODF.250 gets the tract.wd. FP.PREOPS.SUBALT T H Stepcounter Subroutines; S N R B! 1 ;} AN = OV $14908 O OONN N 214907 ; prepares the operands and calls FP.MULD.SUB to perform the multiplication The product is handled in common flows with EMODF JO 214906 LNRD RO NONIASININOINING — b b 3 b b 2 =3 2 2 O OO O O i ;14905 . fraction then multiplication MOPZERO(FLAG1)) = ) Flag? multiplier sign MUL1(FLAGZ)) o . Fla%S multiplicand sign MUL2 (FLAG3)) A ;14898 ; ;14899 ; 114900 214901 :14902 LA bits 32-63 Resources: 214886 ;14887 ; ;14888 ; :14889 ; AR AAARLEALES RS AL . mulr.rf bits 0-31 Templ MDR ;14885 ;14903 $14904 Page CLOKX Rev 13.00, Clock rate = 160ns Floating point and (RC }14878 AR R ;14879 ; J 12 : FP.EMODD Floating point and CRC e FLOAT M MICRO2 Fo S R A o L o o e o e e i A A NelelVolloNoNelle N NallaPNalololo Yoo Lo Lol ol ol o}l ol ; CMTOQS.ME% R sasnnnewssFPA ENTRY AND INTERFACE*saxxnanux (0S.F IDRED,0S.RED) = F1,EMODD R L R R R R R R R R R R R AR A R R R R R A A AR ]] 358 FLOAT.MIC OODZo 0484,1437,0AB1,4047 ,0C5E,4 323 et 00D3, 0886,203A,418D,8047,0010,0 0200, 0081,2016,4000,8467,0467,0 oact, 0(83,200A,4140,(047,0418,0 0ece, 02(3, 0084,1437,0A82,0047,0C5E,8 323« 084 ,0587,0030,8047,002(,4 0ecs, 0580,0037,0180,8907,0414,0 02¢5, 0806,5001,0552,0047,0453,8 A S e S N T T T N R N R TR TR TR PR e e AL LR - X (MTO098.MCX My 28-NOV-83 MICROZ ) Floating point and CRC : : K 12 16:30:35 FP.EMOD SLOKX Rev 13.00, Clock rate = 160ns Page .REGION/ IRDX.R1L, IROK.R1H/ IRDX.R2L, IRDX. R2H FP.EMODD: kAR IRKAK A KRk A IR bR e - " e o e s RCTEMPS) EXP(MLTEMP1]), FRO.FLTIT, Y PUSH,NEXT/FP.MULDOP1 2 ee o o oy i o 3 e B e W MLTEMP2] G, Ve TEST VALIDITY OF OPERAND ¢ t SAVE BITS 0-31 : RET THRU IRDROM TO FP.EMODD,10 LOD INC BRA?, NEXT/0S.RED 0 ' PARSE MULTIPLIER MoDD, 10: : 00 MDR_ZEXT (MLMDR]) , ' ZERO EXT EXTENSION BYTE PUSH,NEXT/FP,PREOPS.QT3 SHIFT TEMP2 AND Q (GETS TEMP3) SIZECBYTED, ;0001 —=mmmm o m e e e n e e RCTEMP3].S1Z_MLMDR].OR.Q, SIZELLONG], PUSH, LOD INC BRAY, NEX7/0S.DRED £0010 = mmmmme eo RLTEMP8) EXP(MLTEMP1]), FRO.FLT27, PUSH,NEXT/FP.MULDOP? R EEEEE SR SR; MERGE BITS 32=-63 WITH EXTENSION GET MULD.RD TEST VALIDITY OF MULD RET +1 ANS IS ZERO ZERO OUT FRACTION RLTEMP2] O, ; 15 NEXT/FP,EMODD, ; NOTHING TO DO BLESS THE COMMON FLOWS : RET +2 SET MOPZERO(FLAGY), FP.EMODD.I?: ;0 STEPC_ZLITO[17.], PUSH, LOD INC BRA?, NEXT/0S.WRT1 . BITS 0-31 _IN TEMP1 ; BITS 32-63 IN TEMP6 ; G0 GET INT.WL - ; ADD EXPONENTS SIZECWORD], CLEAR ADD1(FLAGO), PUSH, MOPZERO (MUL1 XOR MuL2)?, NEXT/FP,EMODF.250 ; SRC1=0 SIGN OF ; ; RET HERE AFTER NEXT OS.WRT1 MOPZERO(FLAG1) ; JOIN EMODF ; ; PRODUCT=XOR CLEAR THIS FLAG FOR USE NOW (MULTC(FLAG2) XOR MUL2(FLAG3).?, CODE H H (MT098.M(X FLOAT MIC MICROZ2 28-NOV-83 1M(O1) Ftoating point and (RC :14983 338% CLOKX Rev 13.00, (lock rate = 160ns : FP,EMODD : PUT G INTO TEMP FOR SHIFTING ;14986 ;%2gg§ PUSH, NEXT/FP.PREOPS.SUBALT : ; :14990 14991 114992 :}Zgg; . CCEAR MULT(FLAG2), RR ; e CL.EAR MUL2(FLAG3), MLTEMP2]_G_D+RCTEMPOI+ALKC, WB<31-3037" NCXT/FP.EMODD. 40 et ; ; CLEAR FLAG FOR UNDER_USE ; ADD CARRY TO BITS 0-31 PUT [N TEMP2 ; NORMALIZED? H { $14997 =01 :14998 FP.EMODD.40: ;14999 B e U 0611, 0086,3305,C03D,8047,0457,3 ;4288; MCTEMP3] (MB Q).RL.1, el ; PUSH,NEXT/FP.MT2Q NOT NORMALIZED ; ROTATE Q AND ALU LEFT 1 ; PUT Q BACK TO TEMP? ;15003 FP,EMODFD,45: 115004 U 0612, 011E,5(10,0854,0847,0853,1 413« M[TEMPSJ MB-ZLITO(811], ; MODIFY FOR EXP ;15007 SIZELWORD],SIGND (MP DEF?, : ;}gggg :15010 =N ;15011 413+ CLEAR MUL2(FLAG3), NEXT/FP,EMODF .60 : H ;15012 I DR P e SR : MLTEMPS] MB-ZL170[80], ; :15014 ;15015 ;15016 SIZECWORD], SIGND CMP DEF?, NEXT/FP,EMODF .60 :15013 ‘ U €613, 051€,5010,0854,0047,0853,1 e e e- ;15005 215006 ; 360i ! SHIFT OPS AND MULTIPLY :}2382 85GION/FLOAT.R1L,FLOAT.R1H/FLOAT . R2L, FLOAT .R2H/FLOAT .R3L , FLOAT.R3H ;15000 Page ,0110 ---------------------------- ; MTEMP8 HAS SIGN BITY 0_RLTEMP6], ;14989 U 02C7, 041E,2061.,16F0,0047,0861,1 L 12 ;14984 116985 J 0206, 0010,058E,5031,8047,0466,E 16:30:35 CLEAR MUT2(FLAG3), ; : ; ; CLEAR THIS FLAG ALSO EXP »=y,<0 REMOVE EXTRA BIAS CLEAR FLAG ' CC O AN NPU—= OO0 N NN SOOI iy — OOX NI NS WA= OO0 NT =000 le] COODOOOOOOOAOOCODOCOOCT OO [ lwl=lelelslolalolololeleolelelelwlelelelolololelelw B 2 B AN LA NN AN N NPV R PO PO NI PO RO MO RN o —3 C OO OO O WM UMV WA DS DS O - o~ D DN Floating point and (RC A R L T TR R R T R P et LR A PR R SR TR TR Ll UIMpING QU QU JRINPUE prsrpr QI SIS PP PR PRl s 0 3 4R L L et mnded FLOAT,MIC 28-NOV-83 TM(Q1) ) \nmu\mm\nu\\nmmmmm\r\nmwmmmmUlun.n\nU\\.n\nU\\h\nm\nu\v\mmmm\nmwmwmm\nmm\nwm » MICROZ0 P S S N i PP WU U I (MT098.MCX M12 16:30:35 CLOKX Rev 13,00, Clock rate = : FP.CVIFI.SUB FP.CVTFI,SUBALT 1o " Floating point S KRR AR ¢ [ : FP.CVTFL.SUB FP,CVTF],SUBALT "' and CRC R R KRR IR AR R AR RN RN AR Ak AR FLOATING TO INTEGER ’ ’ Page 160ns AR AR R KRR AR AR AR RA AR AR kR Ak ok kA CONVERSION ROUTINE FP.CVTFI.SUB ~ CVT INSTRUCTIONS ’ . FP.CVTFI,SUBALT ~ EMODF EMODD INSTRUCTIONS . * FX.CVTFI.SUBGC - CVY INSTRUCTIONS FOR G FLOAT . . FX.CVTFI.SUBG - EMODG ' ’ Input: . ] INSTRUCTION FOR G FLOAT TempS exponent Flag0 (ADDI(FLAGD)) sign of operand Temp? Temp3 ’ ’ . . . . Flag? set = round for CVTRDL (=2¥x32) Q Flagz (QVER(FLAGZ)) temp for range check set if integer overtflow Flag3 Resources: MDR . ’ [ . . . . . * . . . ? . ) . . 0 . ’ 0 [l . . . ’ ' . fraction bits 0-31 fraction bits 32-63 (or Q) binary point before bit 31 clear integer Operation: A branching entry is made to differentiate between exponents <=,> 0, [If the exponent is < or = 0 the integer is 0 and the exponent is returned as is if <0, It in the range of 1=31 the 32 bit integer is extracted and the remaining fractional part correct!y positioned in Temg@.Temp3 so thet the binary point is_before bit 31. It the exponent is 32 the integer part is extracted and a test made to determine it the value _was the only non overflow case ie =2++32 . [f not the overilow tlag is set , the fractional part set up and a return effected For exponents > 32 overflow has def1n1telK occurred and the remaining part of the routine is involved with finding the lcw order bits of the true 1nte?er result and positionin the fractional part accordingly . Tk kR Rk kR AR KRR AR AR R kAR A R AR R AR R AR AR A A R KA ARk R A ARk ARk kAR Ak Ak kR d kb vk kb Ak 361 . ; : (MTO98,MCX FLOAT MIC 28-NOV-83 MICROZ MQD Floating point and (RC 16:30:35 : N 12 Page CLOKX Rev 13.00, Clock rate = 160ns FPLCVTFi.SUB FP.CVTFI.SUBALT ;%gg?g FX.CVTF1.SuB6G(: 215071 U 06E9, 0080,5D92,0A70,24E7,0068,4 l ;15072 215073 0580,5090,1490,24E7,006C,1 ;15078 :15079 ;15080 ;15081 ;15082 — . LEBS, ODBY,2DD3,1034,1047,006E,8 NEXT/FX.CVTFT,SUBG 215074 =0 215075 FX.CVTIFL.SUBG: 115076 ettt r ekl 215077 U 06B4, MASK OUT ALL BUT BIAS BIT IS THE BIT SET WB_MLTEMPS].AND.ZLIT8L4], WX.NE.0? ,MDR_O, :15083 ;15084 Q_MITEMPS)-2LIT8(43, STZECWORD],MDR_O, FLAG2? ,NEXT/FPLCVIF1.,90 FX,CVTFI.SUBG3: L Rt e et Q_ZLIT4L42]-MLMDR], NEXT/FP.CVIF.ENT bttt ExXP < 0 PREPARE FOR EMODG RETURN SET INTEGER T0 0 CHECK ON ROUND BIT (LEARED btk s EXP >0 ; @ GETS BIAS AND 32 MDR HAS 0 . ’ 362 rem —rer——————r = e (MTOG8 . MCX MIC PR PR TE PR TR TR P TR TS TR TR P (686, 0980,5010,1494,04E7,006C,1 omemmcmeeeemceeasem——— —mem; EXP < 0 B MLTEMP5J-2L1T0[80], * PREPARE FOR EMOD RETURN STZECWORDI,MOR_ 0, FLAGS? .NEXKT/FPSCUTEL.90 D ittt att bt 8_ZL1TOL0AD]~MLMDR] 0614, 0411,2137,0880,8467,00068,8 it ‘ SET INTEGER T0 0 % CHECK ON ROUND BIT CLEARED L L H EXP >0 % Q GETS BIAS AND 32 MDR HAS 0 FP,CVIFILENT: T U % MASK OUT ALL BUT BIAS BIT i 1S THE BIT SET FR.CVTFI.SUBALT: L Q-MCTEMPSI, © LOAD UP PLATCH WITH EXPONENT DIFF EXPONENT RANGE? i WHAT 1S EXP RANGE MDR_0, T 376+ N Gee8, 0480,58(8,0DF0,04E7,0861,4 FPLCVTFI.SUB FP.CVTFI.SUBALT =0 A 0687, 0981,2C13,1035,0047,006E,B . B 13 CLOKX Rev 13,00, Ctock rate = 160ns WXTNE .07, MDR_0 P 06EA, 0980,5C12,0A74,04E7,006B,6 16:30:35 UB_MCTEMPSI,AND, 2L 1 TOLBO], TR FLOAT 28-NOV=83 1M€01) MICROZ Floating point and CRC 00 " Y: MOR_(MCMDRI RLTEMP2D) .RR.P, Y CLEAR FLAG2, ' 1R<2>2 NEXT/FP.(VTF1.30 i SET UP FOR LATER WB <1-31> EXP GET INTEGER BE SURt FLAG 1S CLEAR EMODX OR CVTS? OR G FLOAT TYPES 101 mmmmm e mmmmmmmmm—————— ; WB=0 EXP 32 MPR_RLTEMP2], 0615, 0C80,058E,4430,8467,0068,A g6, 0014,0587,0081,44E7,2000,1 0617, 0580,0C37,2031,0047,006E,C Q4EL, 0850,0029,1030,0047,006€,D 06£D, 0480,58(8,0DF(,0047,0854,0 376« S uJ ADDT(FLAGO) 2 NEXT/FP. CVTF{.35 : S VALUE NEGATIVE? i ZERO OUT THE EXP FOR EMODX U — : WB=32 EXP <0 RCTEMPS]_0 MDR_O, * INTEGER 1S 0 CLEAR FLAGS, RETURN [+1)] : CLEAR FLAG MAY BE USED FOR ROUND ; T — U—— : WB 332 EXP 32 b_2L1T0C20) P SET UP TO o 0%0, Y SUB FROM 32 AND BIAS Pt _Q-M[TEMPS], Y SET UP PLATCH WITH DIFF SET OVER(FLAG2) EXPONENT RANGE? NEXT/FP, CVIF].50 INCREMENT 0 * OVERFLOW TIME ' MORE TESTING Page 363; J 068D, 0084,3592,4030,8047,0054,2 L 06BC, 0854,3592,4030,8047,0054,2 ed > e e e S P e be oy L T2 e oy o -t e T S S e YW e 4 e (VT INSTRUCTIONS FOR EMODX INSTRUCTIONS OR GFLOAT INSTRUCTIONS USED BY G FLOAY FX.T3ZERO: FP,T32ERO: MCTEMP31_(MB R[ZEROD).RR.P, FPLCVTFI.35: - o o A e o g TYPE GET BITS 32-63 RETURN [¥1] 0 - RCTEMP2]_MLTEMP3], VALUE POSITIVE OVERFLOW TIME NEXT/FP, CVTFI, 76 FINISH UP SET OVERTFLAG?2) a3 FOR GET BITS 0-31 OF FRACTION NEXT/FP,TVTF1.30 D el S e e s RCTEMPS]_O, e D o NEXT/FP.T3ZERD e S A bbb s s s A P b e} e ah b ok e o oD e 06EF, 0486,2137,0A30,(047,0868,C 323« - MLTEMP2]_(MB RLTEMP31).RR.P, Page a1 RLTEMPS]_O, o - Y VALUE NEGATIVE MORE TESTING FOR -2%+32 VALUE NEGATIVE MORE TESTING Y ROUND UR TRUNCATE? FLAG2? :O*fi L e (L TRUNCATE RCTEMP2]_RB.ASL.1, SHIFT OFF KNOWN BIT 31 WAS IT OK CASE WX.EQ.077 NEXT/EP.EVTFI.45 - PL_L1FI,CLEAR OVER(FLAG2) © e - o . ROUND CHECK FOR THE OVERFLOW CASE - MCTEMP2]_(MB RLTEMP31).RR.P, WX.EQ.0? GET THE 32 BITS OF INTEREST L L T b e} b o 0910,0EF6,4030,F847,006E,F T 06C4, A A TR 337+ e 0600, 0084,05F7,0A10,8047,0868B,{ i) b b b o TR TRTR XU P 06BB, 0484,0587,04B1,4047,006C,0 L L L L L L YR 0054,3592,4030,8047,0053,7 PR PR PR P 06BA, e N O6EE, 0€86,3137,008D,8047,0000,1 COCO0000 NN NN NN N OO OO O O O N TN IV S S B DN IS I IS D B DS LA N N IO A (AP — O 00 O~ LA TS NN = OO0 O N B AN 3 OO OO O W1 8 R0 = OO 00 O A IS IR = O N0 00 NO P W 0689, 0484,0587,0031,4047,0068,8 N S J ) ) D d D ,E 06B8, 0486,2137,0030,C047,006E T tJ Moon mmmmwmmmmmwmmmmw\nmm\nwmwm\nuvuammmmmmmwwmwmmmmmmmmmwAV 1V, 1, ] FLOAT.MIC 0 c 13 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : FPLCVTF].SUB FP.CVTFI.SUBALT 28-NOV-83 Floating point an d CRC MICROZ T T S e P TR CMT0%8.MCX — d D ek D D e e D D e e d D} ek D D d D b b b e ——— - - RETEMP2] _MLTEMP31, 5 T - THIS 1S NOT GOOD OVERFLOW TIME SET OVERTFLAG?), SET UP FRACTION BITS 0-31 SET THE OVERFLOW FLAG ) THIS IS =2+%32 0K NEXT/FP.ZEROTEMP3 RCTEMP2] MITEMP3], NEXT/FP,ZEROTEMP3 SET UP FRACTION 817S 0-31 THIS IS USED ALSO TO MOVE T3 1O T2 364 | H CMTO98.MCX FLOAT. MIC MITRO2 1M(Q1) 28-NOV=-83 Fluating point and CRC D 13 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns T FP.CVTFI.SUR FP.CVIFI.SUBALT ' 215184 =000 ;15185 FP.CVTFI.80 ;15186 00=c=cmcmmccccmcmcncnnn e —n——— ; WB 1-31 EXP 33-63 U 0540, 0480,2137,0030,C467,0068,E . U 0541, 0080,0580,4030,C467,0468,E : INTEGER TEMP [N MDR : ;15187 ;42}%8 MDR_(MLTEMP2] RLTEMP31).RR.P, NEXT/FP,CVTFI.55 ;15190 21519 L R et S L L D S L SE ; WB =0 EXP 64 MDR RCTEMP3], ; MOVE THE INTEGER DIRECTLY PUSR,NEXT/FP.7EROTEMP2 ; GO ZERO BOTH PARTS FRACTION ;}g}g% 215194 FX.ZERQTEMP3: ;15195 FP.ZEROTEMP3: 15196 U 0542, 0884,0587,0080,C047,0000,1 :15197 ;}g}gg ;15200 U 0543, 0880,0029,1030,0047,0468.,E U 0544, 0480,58CB,0DF0,04E7,0853,6 376% 1010=e~emmmmmrmncrcccnn e ra—ecae- ;s EXP = 32 ALREADY FILTERED RCTEMP3]_0, RETURN [¥11] L R: 215201 Q D+@, :15204 ;15205 ;100 mmmmmc e PL Q-MLTEMPS],MDR_O, ;1%585 NEXT/FP.CVTFI, 70 :}ggg% ;15206 ; USE FOR PREVIOUS WORD ; 2ERO QUT TEMP3 ; BUMP UP Q AGAIN PUOSH, NEXT/FP.ZEROTEMP2 EXPONENT RANGE’ : — e ——————— ; ; PLATCH GETS DIFF : INTEGER ZEROED FOR >95 EXPONENT : 215209 =0 :15210 FP.CVIF1.55: U 068E, 0886,3137,003D,8047,0068B,F J 06BF, 0084,0587,0031,4047,0068,¢( 21521 ;15212 ;15213 215214 215215 15216 M[TEMP3] (MB RL[ZERO1).RR.P ; GET BITS 0-31 OF FRACTION e e e e e e R[TEMPSJ NEXT/FP.TVIFI1.45 ; ZERD OUT EXPONENT ; CONTINUE ENDUP Page : 365 ! i v wh d amd o ok emad e U 06(5, 0C14,0587,0080,8047,0000,1 O u 06C1, 0886,503A,408D,8047,0000,1 E 13 16:30:35 : CLOKX Rev 13.00, Clock rate = 160ns FP.CVIFI.SUB FP.CVTFI.SUBALT Page =10 MDR_(MLTEMP3] RLZEROI).RR.P ' GET INTEGER BITS FP.CVIFI.75: o o > RLTEMPS] 0, g e i 0 B S NEXT/FP. ZEROTEMP3 Bt B e P : ZERO OUT EXPONENT : ZERO OUT FRACTION FX.ZEROTEMP1: FP.ZEROTEMPT: RCTEMP11_0, RETURN [+1] H =Q%x FP.CVTFI.90: FX.CVTF1.90: )k cm e c e s n s s e: MCTEMP5]_Q, RETURN [+#1] H : R it H RLTEMP2] _0,CLEAR FLAGZ, RETURN [#11 H ;; FOR EMODS AND CVTS OTHER THAN RFL,RDL CLEAR ROUND POSITION FOR CVTRFL,RDL | J BELCLST TS LS LELNT ST TS ST S TN ST SIS ST ST ST U1\ P Ty N ] I I 2 DN NI W N AT N N N ANO PO MO PO RO N RODU NON) =3 = — NN = SO0 00 O N NN = OO0 00 NIO T B AR = OO0 00~ d il unuvnaiuiuiuniuiuaunun PR 2 R and e D D D I e b ) e U 06F0, 0¢84,0587,0080,4047,0000,1 e TR TR T U 0537, 0484,0587,0031,4047,0054.,2 P TR TR TR D U 0536, 0880,3137,003D,8467,0053,7 b e T IC FLOA.M b amd H CMT098.MCX d eh : 28-NOV=83 Floating point and CRC MICRO2 ; 16:30:35 .T0C '' AR : FP.ACBF CLOKX Rev 13.00, Clock rate = 160ns Page 367 i i i! i Floating point and CRC AR R R Ak Rk R ARk kR Ak : FP.ACBF "' ek kA A Ak ARk | ek Ak kR A AR R A A kA kA A AR R R AN AR IRk A TRk Input: Q MDR Limit.rf addend.rf MTemp9 saves limit P P For addend x«Temp? ! i 1 . fraction TR T I Temp5 exponent Fla?O sign of addend AbD1(FLAGO)) . fraction exponent sign of index R For index x*Temp0 Temp? T T O N N A TETE PR TS PR PR TN TR T A R Fla%1 ADD2(FLAG1)) *x these temps have different contents on return from the FP.ADDRTN routine 0 Limit packed rotated for comparison D new index rotated for comparison PC may be incremented by displacement . Subroutines: 0S.MOD get index FP.ADDFOP1 parse addend FP.ADDFOP2 parse index call FP.ADDRIN to perform add normalize and round and pack routines also called Operation: Both addend and index are parsed and validated The add function is performed in common flows at FP,ADDRTN, Return is with new index packed in Temp2. The displacement is fetched from the XB and the new jndex written out No return if floating underflow (FU bit set) or floating overflow detected in normalization routine Otherwise the sign of the addend is checked to determine the branching test If the addend >=0 R O . index <= limit branch if the addend < 0 | index >= limit branch i After adjusting the PC if appropriate exit ARk R A A i ! Resources: sxxnxxxkxxNOT | ! limit.rf,add.rf,index.mf,displ.bw ACBF 4F PR TR TR TR T PR PR . L ) mmmm\nmmmmmmmmmmmmmmmmmml.n\.n\n\nmu‘n.n\.nuv\.nmmmmm\nm&n\nm\n\nmm\n\nm\n TR T De e TR P TE L De S TR PR A e PR T P P ) ) D ed ) T T E TR T T T P T T TR R TR TR O A T b e} b amd amh amad b b D d b D b aaad emd md d ) b b b o3 d 3 ) D ) ed ) b ke R LS T T Y S T TN T N N e e S LN L L A LA AN IAC ARTURO PNV R AL RINJNJ NI NI NN AN NINLTONI N ONON N NI NU VA S D O S s B OO NO O D000 00 00CO 0000000300 NN NN NN NN OO = OVONONSWRI 2O~ OSSN AIN) 2 OO 00 IO LT BNV 2O VOO NN SN = O DOV SN MICRD2 1M(01) 28-NOV-83 Floating point and CRC A ) ead e CMT098.MC X FLOAT.MI C P : ; F 13 AN A A FPA R is made INSTRUCTION®*%kxwskkk A R R AR AR A AN AR AR AR AR AR A A AR AR R AR Rk FLOAT .MIC 00EQ, Mo 28-NOV~83 MICROZ floating point and CRC 0C86,903A,41BD,8047,0411,0 00E1, 0086,203A,403D,8047,045A,1 00E2, 0€85,2437,0AB1,C047,0059,8 323« 07 08 $070====m=mmmmmmm——emmmmeeaaan ; TEST VALIDITY OF INDEX ; RETURN ONLY AFTER HAVE ANSWER RCTEMP7] _EXP(MLMDR]), }? PUSH,NEXT/FP,ADDFOP2 09 0619, 0080,0002,403D,8587,0061,8 0618, 0080,0036,4130,0047,003F,9 D PO NI 0480,0028,0860,0047,0861,9 368+ L 0 D D AN LN L 06C3, AT W IAN 06Ce, 0480,0028,0860,0047,0861,9 368+ S OO 0¢64,2592,442C,45DA,006C,2 NI NN =O PO PO PO PO PO N N =2 =3 5 6 7 8 9 A N 00E4, ; TEST VALIDITY OF OPERAND PUSH,NEXT/FP.ADDFOP1 4 0080,9437,0AB0,0047,0C061,C 323+ Page CBF 82 2 3 00E3, i 95 .858]0N/IRDX.R1L,IRDX.R1H/]RDX.R2L,IRDX. R2H 96 = KRA Rk Kk kR Kk kK 97 FP.ACBF: ; LIMIT IN Q , ADD IN MDR 98 R ————— 99 ; SAVE LIMIT IN MTEMP9 MCTEMP9I_Q, 00 PUSH,LODTMINC BRA?, ; GET THIRD OPERAND 01 NEXT/0S.MOD 02 03 1007 === mmmmm s ————— ; ADD MOVED TO @ INDEX IN MDR ; ADD TO BE PARSED 04 MCTEMP2] Q, (NN = OV X CMTO98,MCX G 13 16:30EESA CLOKX Rev 13.00, ¢ lock rate = 160ns FRO.FLTZ7, ; TEMP2 HAS NEW INDEX ; ADD1(FLAGO) SET TO REFLECT ADDEND ; TEST VALIDITY OF LIMIT BUT DONT UNPACK FRO.FLTZ?, . 3100~ mcmmrm e REDST.R] _MLTEMP2], Q GETS THE ROTATED VERSION OF LIMIT ; FOR COMPARISON PUSH,NEXT/FP.ACBF .500 s WRITE NOTREG,SIZELLONGI, SET MM.NOINT, ADD1(FLAGO)?, NEXT/FP.ACBF.400 nna e * WRITE OUT NEW INDEX ; NO INTERRUPTS TILL END OF INSTRUCTION Y SIGN OF ADD.RF :8EGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L.FL OAT .R2H/FLOAT.R3L,FLOAT.R3H FP.ACBF.400: WB_Q-D, ; ADD.RF IS POSITIVE SIGND CMP?,SIZE[LONG], NEXT/FP.ACBF.450 s LIMIT-INDEX ¢ OR INDEX-LIMIT 1F BOTH NEG ; TESTING FOR BRANCH 8_p-~0, ; ADD.RF IS NEGATIVE ; INDEX=LIMIT SIGND CMP?,SI1ZECLONG], NEXT/FP.ACBF.450 =01 FP.ACBF.45?: PC_PC+MLTEMPOJ 1RD1 s ; OR LIMIT -INDEX IF BOTH NEG TESTING FOR BRANCH ; >=0 BRANCH CONDITION ; BUMP PC BY DISPLACEMENT ; <0 NO BRANCH CONDITION ; EXIT 368 CMT(098.MCX FLOAT.MIC MICROZ 1M(01) 28-NOV=-83 Floating point and CRC 16:30:35 : H1 3 FP.ACBF CLOKX Rev 13.00, Clock rate = 160ns ;15344 =00 115345 FX.ACBG.500: 115346 FP.ACBF 588: ;15347 061C, 0080,0036,4030,0047,00FF,8 215348 115349 :15350 :15351 061D, 0C80,23B7,26D0,0047,0862,1 061E, 0C0C,0587,1032,0047 ,006F ,1 061f, 0808,9387,1010,0047,006F,1 337« 115352 :%g%gz NEXT/1E.OPER.FAULT ; RESERVED OPERAND ON LIMIT H vt tiriedeinteteteddlddded : LIMIT < 0O b MLTEMP2] .RR.16, :; ROTATE INDEX FOR COMPARISON WwB<31-30>2 ; 1S INDEX ALSO NEGATIVE : NEXT/FP.ACBF.550 LIMIT = 0 ;15355 315356 RCTEMP8]_Q H ZERO OUT OPERANDS USED FOR ACBD 215358 NEXT/FP.ACBF.525 ; ;15361 [ P ————— ; CLEAR FLAGT, : Q_MCTEMP91.RR. 16 : 215357 ;15359 : 15360 115362 + 15363 $10mmme e : CLEAR FLAGT FLAG USED FOR SECOND HALF A(CBD ;;; ROTATE INDEX AND RETURN LIMIT > 0 FLAG USED FOR SECOND HALF A(BD ROTATE LIMIT FOR COMPARISON ;15364 FP.ACBF.525: 06F1. 0480,2387,2010,0047,006F,3 0621, 0080,9387,1010,0047,006F,3 ;15365 ® MLTEMP2].RR.16, 215366 ;15367 . NEXT/FP.ACBF.570" :15368 : 15369 FP.ACBF.sg?: ;15370 ;15371 :15372 ;15373 ;15374 0623, 0048,9387,1010,0047,006F,2 _ 06F2, 0480,002D,7030,0047,006F,3 Q_MCTEMP9].RR,16, : NEXT/FP.ACBF.570 : ‘]1 ----------------------------- : ;15375 115376 215377 Q_MCTEMP9].RR. 16, 215380 NEXT/FP,ACBF.570 ;15378 :15379 o ROTATE INDEX FOR COMPARISON : GET ODISPLACEMENT H H SET FLAG1 ot e - D_Q QD, e e o e o e o e e INDEX IS POSITIVE ROTATE THE LIMIT FOR COMPARISON GET DISPLACEMENT INDEX IS NEGATIVE ALSO ROTATE THE LIMIT FOR COMPARISON SET FLAG FOR SECOND HALF OF ACBD ¥ INVERT THE TWO OPERANDS : GET DISPLACEMENT Page 369 ; : CMTO98.MCX FLOAT.MIC MICROZ2 1M(Q1) 28-NOV-83 16:30:35 Floating point and CRC ;15381 ;=0 113 : FP.ACBF CLOKX Rev 13.00, Clock rate = 160ns 115382 06F3: . *kxssxxxFORCE ADDRESS*#x#saxx%; NEED NOT BE O JUST SEQ MODE 64 U 06F3, 0886,8036,4030,0087,0471,F $15385 15386 MCTEMPBI PSL, PUSH,NEXT/FP.ACBF.580 U 06F4, 0986,8C12,0470,0847,006C,6 115388 06F4: 115389 i133%0 115392 ;]==m===-=s-msscesomeosmoceeeeos ; ALTENPEY MBAND- 2L.1T0013, : STRIP_TO C BIT ONLY GFLOAT (FLAGA)? P WAS IT GH TYPE ; Qmmmmmmmm e e ; ACBF_OR ACBD 15394 (13395 FRO,FLTZ?, NEXT/FP,VALIDCC ;}gggz FP.ACBF.570: :15393 U 06C6, 0880,2437,04B0,0047,0862,4 323+ 115397 WB_EXP (M[TEMP2]), : 115399 WB_MCTEMP2].XZ. M. i FRO,FLTZ?, : CLEAR GFLOAT(FLAGA), 15400 NEXT/FP,VALIDCC $15403 071F: : RETURN IS TO CALLER ;*uu******ronce ADDRESS*xxxxxxnx; 115404 FP.ACBF.580: U 071F, 0087,7815,009D,A047,0000,1 15406 13407 1 jmeemmeccseemsccesesocemcoocooo- : MTEMPO_SEXT RETURNTM[+1] SET THE ((S : PL/SL MUST BE SET FOR G OR H 15401 115405 GET THE SETTING FOR CCS ; : RETURN TO CALLER jlesssmemmeesecmeccccasensecenas ; ACBG OR ACBH :15398 U 0607, 0820,2077,04B0,0047,0862,4 335% : GET THE C BIT TO SAVE : GET THE DISPL FROM XB GET DISPL FROM XB (XB) +R[ZERO] PC_PC+2,; BUMP UP BC ALSO i RETURN TO CALLING ROUTINE $15409 U 0624, 0C80,0036,4030,0047,00FF,8 215410 =00 115411 FX.VALIDCC: 115412 FPLVALIDCC: 115413 {00=mmmm 1341 115416 U 0625, 0980,8(12,4080,40A7,0000,1 U 0626, 0580,8(12,4080,20A7,0000,1 U 0627, 0D80,8C12,4080,00A7,0000,1 115417 ; ; = mmemm e : NEXT/IE.OPER.FAULT ; 0l mmmmm e USE FOR GH FLOAT RESERVED OPERAND oo oo ; NEW INDEX < 0 CC MCTEMP8].OR.ZLITOLB), ; i1318 RETURN [+1] 15420 Te LR : NEW INDEX = 0 115421 13422 CC_MCTEMP8].OR.ZLITOL4), RETURN [+1] $15424 T 115426 RETURN [+1] 115425 R T ; ; : e CEE PR : NEW INDEX > 0 Cc MCTENPBI.OR. 2L1TOCO], ; ; Page 370! H {MT098.MCX FLOAT.MIC MICROZ 1M1 28-NOV-83 16:30:35 floating point and CRC :}gz%g LT0C ' J 13 : FPLACBD CLOKX Rev 13.00, Clock rate = 160ns Floating point and CRC Page s FP.ACBD ' 315629 ;**********t********t******************t****************tfit**********t**t****t ;15430 ; gz%; ; 6F ) D D b : ACBD limit.rd,add.rd,index.md,displ.bw Input: ;15433 15434 D de ;15435 ;15436 L Limit_bits 0-31 Templ MDR bits 32-63 MTemp9 limit gacked bits 0-31 Resources: ;15437 o D D e e :15439 $ 15440 215461 . Temp0 Q displacement . limit rotated for testing index rotated for testing Subroutines: D d e ;15442 add.rd return through IRDROM to FP,ACBD.100 0S.DRED 215443 1156444 which does add,normalize pack b e ;15445 operations before returning : 2229 : b b b b 3 D ) b i ;15448 ; Operation: 2248 ; O LN LRI LU RN WY SN NN SN N ~INONONONONONONONONON ; return is through IRDROM to FP.ACBD.100 to get index parse validate it and perform the add operation and then normalize round and ack_the result before returning . emp2,Temp3 contain the new index The limit is validated and the new index written out . 1t overflow exit is to FP.ENDUP1 Otheryise the comparison as described in T is made R Note only if the 1st 32 are the same_is it necessary to comgare the low order 32 bits In either case these comparisons end up in common flows with the ACBF instruction. P P = O AB(F xkkex A x v aNOT AN FPA INSTRUCTION**akkkkhxy L NN NS AN il 2 h il R e S A i B 9 DW= OO B P I ks i i v Wi UL U 0628, 0085,2387,0192,0047,0418,0 Lnvuauaun T R T AT b o L P R U 0359, 0086,95BE,4030,4047,0062,8 3. 4 5. 6 . 7 8 CONO ol o o el wanunun i v b D D D D ih d b b and b b e ; = The timit is saved,OS,DRED gets the addend.rd ; 15451 H 2 ; H : H : : . bits 32-63 Rtemp8 $15438 b e e e e o e : ERA RN R RN KRN KN R R RRRR AR RN AR ARk kA h Rk LREGION/IRDX,R1L, IRDX.R1H/IRDX.R2L,IRDX.R2H DN FP.ACBD: MLTEMP9]_RLTEMP1] kA R KRR ke ke ko kkkkk ko ko KA K Y SAVE BITS 0-31 OF LIMIT .RE GION/FLOAT.R1L,FLOAT.RTH/FLOAT .R2L ,FLOAT.R2H/FLOAT,R3L,FLOAT .R3H 00 LOD INC BRA?, PUSH,NEXT/0S . DRED * ROTATE LOW BITS 32-63 * RETURN IS THRU IRDROM TO FP.ACBD.100 * RETURN AFTER ADD ALL DONE 371 : H (MT098.MCX FLOAT, . MIC MICROZ2 1M(01) 28-NOV~83 Floating point and CR( ) 0629, 0CB0,9437,0480,0047,0061,C 323+ D ~ £~ wv — 115480 115481 13482 16:30:35 K13 ¢ FP.ACBD CLOKX Rev 13.00, Clock rate = 160ns ..-----.------.—-..-_------------ . s EXPCMLTEMP9]) , FRD.FLTZ? PUSF,NEXT/FP.ACBF. 500 * TEST VALIDITY OF LIMIT ; ; 13484 FX.ACBG.345: 115485 $15486 115487 U 062A, 0064,2592,403C,45DA,046F,5 $15488 i 15480 10m=smmommmamm—mm—————— e ~==; WRITE NEW INDEX RIDST.R] _MLTEMP2), : WRITE NOTREG, SIZECIDEP), SET MM.NOINT, PUSH,NEXT/FP.INCVA ; ¢ NO INTERRUPTS ALLOWED : BUMP UP VA 15491 FX.ACBG, 350: $15493 RLOST R MLTEMPEI, : WRITE SECOND HALF OF INDEX 115495 ADD1(FLAGO) ?, : DO NOT ENABLE INTERRUPTS $15494 U 062B, 0084,3592,442F ,45DA,006(,8 18496 WRITE NOTREG,SIZETLONG], NEXT/FP,ACBD.400 : CONTINUE TESTING ; 115498 =0 115499 FX.ACBD.400: 115500 FP.ACBD,400: $15501 :15502 B ; ADD.RD POSITIVE B_0~D P LIMIT ~INDEX 15504 15505 WX.£8,0? NEXT/FP.ACBD.450 15503 U 06C8, 0480,0028,0420,18C7,0860,4 339+ 15507 $15508 U 06C9, 0480,0028,0A20,18C7,086C,A 339+ Lo e — 15509 115510 15511 ALOS_SIGND,SIZECLONG, : SAVE CUNDITIONS ; ; ;lmmmm e e eana ; ADD.RD NEGATIVE w8 _D ALDS. S1GND, S12ECLONG], Wx.EQ,0? NEXT/FP.ACBD.450 : INDEX=LIMIT : SAVE CONDITIONS : ; Page 372 : CMT098.MCX FLOAT. MIC MICRO2 16:30:35 28=NOV-83 1M(01) L 13 ¢ FPLACBD Floating point and CRC CLOKX Rev 13.00, Clock rate = 160ns Page o 373 ! ] ;15512 =0 ; ! ;15513 FP.ALBD.450: U 06CA, 0080,0036,4B70,1847,0061,9 u 06(B, 0080,338D,7512,0047,0062,C ;15514 215515 ittt Seemmss e ; FIRST PART NOT EQUAL ALUS?, : WHAT WAS CONDITION 115518 ;15519 flmmmmmmmsmmmemcmmocoomcoeees ; FIRST PARTS EQUAL MORE WORK D MLTEMP3].RR.16 Q_RLTEMP8], ; FIX UP SECOND PARTS :}gg}? :}ggs? o 12 NEXT/FP,ACBF.450 ; FLAG<1=-0>? ; WERE BOTH OPERANDS NEGATIVE . :15522 = | ;15523 FX.A(BH.500: ; ;15524 ;00-~commmmmm oo e s e ; BOTH POSITIVE ADDEND + :15525 w8_@-D, ; LIMIT = INDEX y 062C, 0880,0028,0020,1007,006(,A 215526 ;}gggg $15529 U 0620, 0880,0028,0020,10(7,006C,A 115530 215531 :%gg%% ‘ 118534 $15535 U 062€, 0808,0028,0020,10C7,006C,A :15536 215537 :%gg%g 2155490 U 062F, 0808,0028,0020,10C7,006C,A ) U 06F5, 0080,0036,4080,0447,0000, ALDS_UNSGN,SIZE[LONG], NEXT7FP.ACBD.450 NEXT7FP.ACBD.450 $10=mmmm WB_D-0, ALDS _UNSGN,S1ZELLONG], CLEAR FLAGI, NEXT/FP,ACBD.450 e ;}ggzg NEXT/FP.ACBD.450 215551 VA_VA+4, { | | | ; FINISH UP ; LATCH THE UNSIGNED COMPARE ; BE SURE FLAG CLEAR ; FINISH UP e bbbt et~=~; BOTH NEGATIVE ADDEND - ALDS_UNSGN,SI1ZELLONG], CLEAR FLAG!, 215546 FX.INCVA: 215547 F1LINCVA: ;15548 FP.INCVA: 215549 et t ¢ INDEX = LIMIT ; LATCH THE UNSIGNED COMPARE e mm e ; BOTH NEGATIVE ADDEND + : INDEX=LIMIT wa_Q-D, 115550 ; FINISH UP ittt ; BOTH POSITIVE ADDEND - uB_p-0Q, ALUS_UNSGN,SIZELLONG], 215541 215542 $15543 ; LATCH THE UNSIGNED COMPARE ; LIMIT-INDEX : FINISH UP ; LATCH THE UNSIGNED COMPARE ; BE SURE FLAG CLEAR { ; | i | % ! ettt RETURN [+11 bt b bl bl At bl ; : BUMP UP WRITE ADDRESS ; RETURN TO CALLING ROUTINE S NN O SR LETE PR TR PR TR LR S T O e T T N T T T N I R = OO 00 X} 16:30:35 ¢ m13 CLOKX Rev 13.00, Ctock rate = 160ns Page FP.POLYF Floating point and (RC 3222220822323 232 282 22 T A I NN =5 O D00 O N B WM = OO 00 NOMN S AL OO O NI —= O 300~ .TOC R N L Lt b a v i i il T T A VT e st WL ALY 00 NN NN NNNOOOCONOCONOONONOM O O O VA TN LA N T L s A T CSDOOVO 000 OOVOOVDNOC DO D 3 A A e b e ed b B D D e b d b b b b b e e v red b b ek b ead b b oD b d e B b b b b > b b el 8 d e b b e MIC ua..nmmw.nw.n.nmmmmmmmmmwmmmmmmmmmmmmm;fimmmmwmmmmwmwmmmmmm FLOAT Mo 28-NOV-83 MICROZ Floating point and CRC e N N R TR T T R O e T PR TR PR DK P T LR AR PR LR L b CMTO98,.MCX POLYF ey ey : FP.POLYF 2y e R s R " 2SS0 R0 Rl lddl arg.rf,degree.rw,tbladdr.ab [RO-R3.wl] Input: argument (arg.rf) degree (degree.rw) MDR Resources: Temp? Temp5 for argument . (FP.MULFOP? to parse validate) fraction exponent sign of argument Fla?Z MULT(FLAG2)) for Partial product (FP.MULFOP2 Temp0 traction RTemp8 exponent Fla? sign of operand MUL2(FLAG3)) parse validate) Fla?1 it operand 0 MOPZERO(FLAG1)) for product step at end Temp2 Temp5 fraction exponent Fla?O sign of product ADD1(FLAGOY) for next coefficient (FP.MULFOP2 parse validate) TempQ fraction Temp? exponent . Fla?S sign of coefficient MULZ2(FLAG3)) i Fla?1 sign of coefticient ADD2(FLAG1)) RO sum (i.e. aftter parse for add operation partial product) packed form General resources FPDOFFSET MTemp containing FPD index value 1 D,Q multiplication and temp storage RO RY R2 R3 GPRs during instruction execution 1st coefficient or part product argument (packed form) byte 0 degree (decremented in situ) byte ¢ P({ delta byte 3 flag bit 30 read last coetticient tbladdr 374 1M(O1) Floating point and 2?5?0V~83 v a i ;15603 ; b h kb D b eh e 15604 16:30:35 i N 13 Qutput: U AT L L T ;15698 2}? : answer R3 tbladdr +degree*4+4 Atter ;15615 ;15616 215617 R? D eed o RO b b b b LN UG LT UEALUA LA U LU W O WAt — OO0 o ko Yo ] N = Nl o N N A [eNo Yo NoNs Yo NoNe Yo NoNe Ve No Ho Neo o Jeofe Ne N o Jo Jode JoJo R 0 BN N AW VAU A SN S D BB IS I D NI PR = OO TU T i e U O T TR TR b ek b b B b b ek b D b —h b d b R 28 29 AVAVI LAY LTLA LA LT ALY U L b e b i b e ad ; T L LU ; NN IS AN = O 00 NON VTS b b —h b e oD b D D e e ;15620 ; 215621 J15622 015625 215626 119627 rartial product after iteration prior to the one causing fault ; ; ; ' ; ) . argument <7:0> # of iterations remaining <23-16> PC delta address of coefficient R3 215619 215623 ;15626 0 0 R1 ;15618 375 tault detected if FPD = 1 ;15612 ;15613 :15614 Page RO R1 R2 215607 ; CLOKX Rev 13.00, Clock rate = 160ns FP.POLYF ;15605 ; 15606 ; e e et e FLOAT MIC MICROZ FO (MT098.M(X ! causing the exception Subroutines: FP.MULFQP1 FP.MULFOP2 FP.POLYFD.SUBS parse operands pa~se operands initial set up ) <check interrupt and timer step counter 17 IC.SERV,IP,TS2 FP.SC17 FP.ADDRTN . FP.NORM.SNG Operation: do add operation normalize,round,pack . : . The argument is parsed and validated. FPDOFFSET temp is set to 1 for POLYP instruction FP.POLYFD.SUBS gets the address of the coefficient table and does the initial preparations sets FPD Upon return the 1st coefficient is saved in RO and the argument in Rt It the ar?ument is 0 then it the degree is 0 the end up routine is called if the degree ne O then the answer is coefficient which is fetched bg adding RC bit 30 the last degreex4 to the thladdr set to indicate last since FPD is coefficient where te return should a fault occur I't the arfiumeng the main is not 0 loop begins it the it only a timer needs a call return already set interrupt or timer must be is made to is -1 [E.SERV.IF,TS2 serviced attention otherwise return is to the FPD gack up routine . it the cegree =>0 and no interrupt or timer the part product is fetched from RO and unpacked the argument is also unpacked the operands are shitted left ! removing the overflow position and_the multiplication performed resuiting in a 32 bit product in D | : ! - iy SR O~ TR T R The exponents are added and then properly biased A call to FP.ADDRTN performs the add operation FP,NORM,SNG normalizes,rounds ,packs the product it overflow or underflow(FU bit set) PR SR TR TR THE AR OC0 The next coefficient is read fiarsed (FF.MULFOP2) a fault exit is taken detected The degree count is decremented and a check tor interrupt or timer made when all operands have been processed the normal end up procedure fs to and to exit N Swmny — O and the operand unnormalized to bit 30 ctear RY,R2 T = O D00 NN Page FP,POLYF 31 bits of significance are saved in_Templ sxwnennnerfPA ENTRY AND (0S.FRED,OS.RED) FPD RESTART L AN, NI OCONC NN — O N B = O D00 N O ¢ ]NTERFACE&QQ*QQ&Q&Q ~ FI.POLYF - F1.POLYF.FPD,RES THNANAAANNANAARRANRRANANRRANNNR RN KAARANNANNRAN N AR AR RN NSO RN A kR bk ek bk ok . RSS]ON/JRDX.R1L,IRDX.”IH/IRDX.R 2L, IRDX.R2H ;000 fisé -IOFROM FP.MULFOP1 (LEAR MOPZEROCFLAGY), FLAG NOT NEEDED MUST BE RITEMP2) D0, FP,POLYF: ;001 CLEAR FOR READ CONTINUE PROCESSING FOR AWHILE NEXT/FP.POLYF.10 AARNAANAARAANROERNNEN MCTEMP2) D Q 0 MB, G DESTROYED GET ARG TOQ MBUS SOURCE PARSE TEST VALIDITY GF ARG FP . MULFOP1 PUSH,NEXT/ FP.POLYF.l?: RET SET e o - +1 ARG OK FPDOFFSET REGISTER { AND SET FPD BEFORE RETURNING ~=======: [ AN NI O = O NOCO b b mwwm~ammmmmmmmmmmwmmmmmmmm\n\.fimwmwmwmwwmmmmmmmwmm OO OO OO OO NN OO OO OO OO OO OO oo O VAWV OO O30 Q00O O OO9000000000 oo 0o NNNNNNNNNNOOOCOONONOCON PO T d b T T T ek eh d e b b e b b ek b d ad e b —d u U1E4, 0884,0582,4434,4047,086D,2 322+ L < 0163, VES5,2590,4024,0847,046F d ) e R T v 01E2, (186,0037,0030,0847,0463,C T P b o e md o T e i e QI1E1, 0086,20G00,7030,0067,0663,A b b d o e ik P b P b N b J 01e0, 0COC,05B87,2030,8047,001E,2 b b LT b 2md [ e b P T R T b B e FLOAT (MIC 1M(Q1) MICRGZ 28=NOV~83 Floating point and CRC d e (MT098 .Mrx B 14 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns . LYFD.VAR? HAVE ALL OPERANDS s SAVE FIRST COEFFICIENT FPD |S SET s SET CONDITION CODES TENTATIVELY ; 1100=memcmmsoncaannn w——- """ ===, RIR1] D, WX.EQ.0? s ; NEXT/EP.POLYF.114 . SAVE VA IN R3 DEGREE MAY BE O [F SO 1S7 COEFF 1S ANS, D HAS ARG CONTINUE ON R3H REGION/FLOAT ,RIL,FLOAT.RIH/FLOA T.R2L,FLOAT ,R2H/FLOAT . R3L,FLOAT 376 ; : CMT098.MCX FLOAT MIC MICRO2 1M(01) 28-NOV~83 16:30:35 floating point and CR( : ¢ 14 (LOKX Rev 13.00, Clock rate = 160ns FP.POLYF Page ' 377 ' 115702 =00 115703 F1.POLYF.20: 15704 FP.POLYF.20: $158705 10 115706 ) 0630, 0BE5,B592,4034,0047,006F,E ;12;8§ ! NEXT/FP.POLYFD.END 115709 [TEMP&J MB-ZLITOL4], ;}g;}; PUSH,NEXT/FP,POLYFD.BT30 115713 U 0632, 0081,B8001,0031,04A7,006F,6 ¢ R3 GET THE UPDATED ADDRESS ¢ FPD NOW CLEAR ‘ ;0] ======eme=m=ec—mcocmmcmmamna ; DEG NE 0 115710 U 0631, 0186,4C10,0030,2067,0470,0 mmmm e ——————— -=; DEG=0 RCR31_MLVAL,CLEAR FPD, ' ; ACCOUNT FOR INCREMENTED VA ; Y SET BIT 30 FOR SPECIAL READ ;10=meemmesccesceeccmmeeneae : ;}g;}g VA MIVAI+RCTEMP4] = * INCREMENT VA TO POINT TO LAST COEF : 115716 FP.POLYF.22: 115717 115718 ;}g;;g U 06F6, UBB0D,0036,4020,0450,006(,C | Pmmeemesame————— mmmemmmman——— : READ,SIZELLONG], : GET COEF VA_VA+4 ; ! r ; 115721 =0 ;}g;sg FP.POLYF.25: U 06CC, 0C09,2437,0AB0,0047,0C58,C 323 115724 UB_EXP (MLMDRD), Y TEST VALIDITY OF LAST COEF ;}g;gg PUSH,NEXT/FP. MULFOP2 : 115725 FRO.FLTZ?,CLEAR FLAGT, 115708 i3 06CD, 0085,2592,4024,0847,0063,6 : jlmm=memmmmmececececesceecsaaa- -=; HAVE LAST COEF 115729 R[ROJ _MLMDR], : SAVE IT IN RO ;}g;;; NEXT/FP,POLYF,55 : FINISH UP INSTRUCTION 115730 CCOPTTSIZELLONGY, * SET CONDJTION CODES BASED ON IT 115733 =00 :15734 115735 4 U634, 0000,058E,4034,0467,006(,E FP.POLYF.50: 115736 ;}gggg 115739 1 0635, 0980,0037,2AF0,0047,04F7,0 1 (0=eemmvemccemamnceecacm—————— : LOOP >=0, NO INT MDR RCRO1,CLEAR FLAGO, NEXY/FP.POLYF 60 ¢ GET PARTIAL PRODUCT : CONTINUE PROCESSING IN LOOP o ------------------------ mvew=; LOOP >=0 INT OR TIMER 115740 p_zLIT0C0], : CLEAR OUT D FOR FPD FAULT ;}g;fig PUSH,NEXT/IE,SERV.IP.TS2 ¢ RETURN =1 IF ONLY TIMER 115741 IRTPEND OR TIMER?, ; 115744 FP.POLYF. 55 157245 U 0636, 0484,0587,0034,4047,0063,0 115746 :}g;gg ] J1Qmmmmmmem e e ~=~=; LOOP <0 DONE R[R1J NEXT/FP.POLYF.20 * START THE FINISH UP ; FINISH UP , D 14 CLOKX Rev 13,00, Clock rate = 160ns ¢ FP.POLYF Page 378 RLTEMPBI EXP(MIMDRD), CLEAR MOBZERO(FLAG1)| - ' UNPACK PARTIAL PRODUCT ¢ BE SURE FLAG IS CLEAR FRO.FLTZ2?, ; PARSE SIGN (MUL2(FLAG3)) PUSH, NEXT/FP.MULFOP2 : RET TEMPO (FRACT), TEMP8 (EXP) READ,SIZECLONG], VA VA+4, CLEAR MOPZERO(FLAGT), ; GET COEF INTO MDR :; BE SURE IT IS CLEAR AGAIN ‘; SKIP AROUND RETURN NEXT/FP.POLYF .62 =000 =001 ;001 wmme e e e CLEAR MOPZERO(FLAG1), NEXT/FP.POLYF.63 e e e : SHOULD NOT GET RET-1 : BUT BULLET PROOF IT FOR FPD ; CONTINUE ON FP.POLYF 624 mcrsmsz RCR13, PUSH,NEXT/FP.MOLFOP1 ; ; UNPACK ARG CANT GET ZERO HERE TEMPZ & Q (FRACT) TEMP> (EXP) FP.POLYF,83‘ STEPC_ZLITOC17.], ;; PUSH,NEXT/FP.POLYF .75 ; MUL 1 (FLAG2) XOR MUL2(FLAG3)?, FP.POLYF, 65 100~mmmmmmemmm———————amec—————— HULFAST+ CAND It RCTEMPO], ; NEXT/FP.POLYF.65 ‘ DBZ STEPC?,SIZELLONG], SET STEPC 70 17 PRODUCT SIGN THE MULTIPLY ;; DONE YET ;101 emmesmmommmemmcmcm e nm e H RCTEMP?7]_EXP(MLMDRD), :; PARSE NEXT COEFF ICIENT CLEAR MUL2(FLAG3), ; BE SURE FLAG IS CLEAR FRO.FLTZ?, PUSH,NEXT/FP,MULFOP2 : : ALL DONE UNNORMALIZE TO BIT 30 TEST IS BIT 31 SET OR IS FRACT 0? ;xxxxxxF[X FOR VER 25 l A LT UILILLRLa OO O OO0 OO0 00000 N NN NNNNNOONOCONONONONONONO VIS NN 2 OO0 NN DA - OO N oW -L\LNI\J—'OOmNOmJ\WNdOOM\'OWJ\wN—'C ) mmmwmmmm\nmmmmmmu\mmm\.n\.n\.n\nmmmm\nmmmm\nm\n\n\nmmmwmwwm\n SN SN N N NN NN NN NI N NI NI NN NN NN NSNS NN SN N SN SN N SN SN SN N SN SN N SN NN SN N N N iy P P TR 1Y L L he 4 U 054€E, 0086,2582,46F0,0047,013F, ~atomaw. end ed e ¢ 323x u 054D, 0410,2437,0AB1,0047,0C58, D D d md arh o} e S U 054¢C, 0C80,0027,9320,0047,0054,¢ e T T o} T D N U 0548, 0180,0¢37,0570,8907,0455,6 O e AL b b b b mh e e LA T U 0544, 0886,25BE,4034,4047,0463,A ) D emd mh 3 b ab e U 0549, 0408,0036,4030,0047,0054,B 16:30:35 5749 =0 FP.POLYF,60: R N T O u 06CF, 0008,0036,4020,0450,0054,A TR TR TR U 06CE, 0C0D,2437,0AB2,0047,0C58,C 323+ R T T P TR Floating point and CRC b d D b md ek FLOAT.MIC MICROZ2 b ok D ed : CMTO98.MCX ) md b e H 28-NOV~83 1M(Q1) CLOKX Rev 13.00, Clock rate = 160ns FP.POLYF : Page 379. NOT USED IN VERSION 25**xx % VALUE IS O1XXXXXX...... MOVE BP DEC EXP N IS NN KEEP ONLY 31 BITS OF SIGNIFICANCE NOT USED IN VERSION 25%%x%x - - = = v e 0 % VALUE IS TXXXXXXX..... SHIFT IT RIGHT ONE WAS THE COEFFICIENT 0 S Sy [TEMPZJ MB.SR.1, MOPZERO(FLAG1)° O NEXT/FP.POLYF.70 FP.POLYF.68: -0 =(* memesesacesccesesescanesecenn -— MCTEMP2] MB.AND.OLITOLTFED, GET RID OF 32ND BIT OF SIGNIFICANCE WAS THE COEFFIC I T0 MOPZERO(FLAG1)? FP.POLYF. 70 COEFFICIENT NOT ZERO M[TEMPS] MB+RLTEMP8], ADD EXPONENTS MUL2 (FLAG3) 2, NEXT/FP.POLYF.85 CONVERT FLAG TO FLAGZ S1ZELWORD], USE WORD SIZE FOR OVERFLOW ‘]* ........................... -t MLTEMPS] MB+RLTEMP8], COEFFICIENT IS ZERO ADD EXPONENTS USE WORD SIZE FOR OVERFLOW $12ECWORD], CLEAR MUL1(FLAG2) EMP5] MB-ZLITOLBO], REMOVE AR MOPZERO(FLAG1), T/FP.POLYF.100 CLEAR THE ECWORDI, FP.POLYF.75: S ot T g L I AGO), B Q).SL.1, P I SET ADD MLCTEMPO RETURN o B e g - PRODUCT FLAG IS POSITIVE CLEAR THE SIGN FLAG SHIFT OPERANDS LEFT 1 ——~ T MLTEMPO RETURN o CLEAR A o o - THE BIAS PRODUCT IS NEGATIVE SET THE SIGN FLAG SHIFT OPERANDS LEFT 1 | | S rng — = OO 00N NN ES AN~ DD 00 WRL = T OO NN S AN b ) b =2 OO 00~ O N N RO PO PO NV RO PO PO PO RO NS = =3 3 fl—hfl—hd-‘—“DCNDCNDCKDCNDCMO(hO() A AT N NI D00 IR DI B WA A A AN D e ed b TN T =10 A= O 0557, 0846,0205,008D,8047,0000,1 L 0556, 0006,0205,(08D,8047,0000,1 E 14 16:30:35 639: FREE 0639 wvrunoauiuiuauauviuaLuauiuauiviiunuiuiuviwg vl i v vnualnu it it il ©0 G0 O 00 00 50 40 o 00 00 00 0o CO 0o CO 00 00 Co 0o 00 C0 0o Co o o 00 00 €1 0o On 00 00 00 GO 00 000000 00 OOO0~~~ TR TR T TR TR TR < u ek h b anh ok e e o) ek b e o 06F8, ODOE,5C10,0014,0047,0055,3 R T T T mh rmd i} o ek 0602, 0€16,5001,0012,0047,006F,8 e N O 3 ed e} R ) 0600, 0886,5001,04D2,0047,006D,0 TR TR P P ) b ek e 3 TR 2R PR TR 06F7, 0586,2E12,05FF,F047,0060,0 D D ed b e LR L 0638, 0486,2001,85FD,8047,0060,0 ) ) e PP 0639, 0C82,0E7D,0021,4047,006F,7 b ) FLOAT.MIC MO 28-NOV~83 Floating point and CRC MICROZ D rd P D CMT098.MCX F : : CMTO98.MCX FLOAT MIC 16:30:35 28-NOV=-83 MICROZ 13F4: : ;} , U 13F6, 0486,2001,85FD,8047,0060,0 U 13F7, 0486,2001,85FD,8047,0060,0 H FIX FOR VER 25%xxxx FRACTION IS 0 ; SET UP TO CLEAR EXP FIELD FP.POLYF.FIX25.00: i1 i1 HCTEMPS] 7L1T0L80] y3p5, $15849 U 13FS, 0C82,0E7D,0021,4047,006F,7 CLOKX Rev 13.00, Clock rate = 160ns : FP.POLYF Floating point and CRC U 13F4, 0186,5C37,0034,0047,013F,3 14 H ;158 NEXT/FPLPOLYF. F1x25.10 L ; 0)=smemesemmmecscscono o e : VALUE IS O1XXXXXX...... RETEMPSJ S1Z_RB-1, SIZECLONG], H; MOVE BP DE(C EXP : ;15855 METEMPZJ MB.SR.1, 115857 NEXT/FP.POLYF.70 VALUE IS 1XXXXXXX..... H SHIFT IT RIGHT ONE ;; WAS THE COEFFICIENT O ;158 ;} g 13F6 ;15856 ;15858 13F7 ;15859 ;15860 ;15861 ;} g % : KEEP ONLY 31 BITS OF SIGNIFICANCE NEXT/FP.POLYF.68 MOPZERO(FLAGT)?, K ;1l==mmrencnccecoccrcnecsvcncnce : VALUE IS 1XX XXXXK.euoo ;; SHIFT IT RIGHT ONE MLTEMP2]_MB,SR. 1, OEF 0 MOPZERO(FLAG1) ?, ; WAS THE COEFFICIENT NEXT/FP.POLYF. 70 H ;15864 ;15865 13F3: ;15866 FP.POLYF.FIX25.10: ;15867 bl ;15868 U 13F3, 0084,05B7,05F2,0047,0060,90 ;15869 :15870 bl L DL RLTEMP8] 0 2, MOPZERO(FLAG1) NEXT/FP.POLYF.70 S D L Dl il 54 ¢ ZERO OUT OTHER EXP FIELD ; SIGN OF NEXT COEF Page 28-NOV=83 Floating point and (RC I A U 06D0, 050€,5C10,0014,0047,0055,1 15 15 }g 091€.,5€10,0030,F047,0468,C U 0603, 0886,4001,CA71,0047,0863,0 350+ VU U 06D2, 040A,0E7D,0804,8047,0863,4 410+ e, v v U 0555, 0C04,2592,4024,0847,006D,2 i 0018,0036,4430,0047,046D,8 T 0085,2592,4024,0847,0060,2 uiLau Ul 0810,5BC0,2B51,C047,0051,0 374~ ii U 06D1, OD4E,5C10,0014,0047,0055,1 S S T I R TR R TR P PR P R e D b e d ek b b e ek b od b b B D ) b cmnd b ) e d b b b ad md D ik ek D e e ek b b d b ek d ek nd h ek e b L unurunuinuaunuiuawuniuauaug 15 CLOKX Rev 13.00, Clock rate = 160ns Page : FP.POLYF =0 FP,POLYF,85: $0==m=mcmemcmme—mcemcncnc i cnnes ; COEF SIGN POSITIVE MLTEMP5] MB~ZLITO[80], SIZECWORD],CLEAR ADD2(FLAG1), NEXT/FP.POLYF.90 ; REMOVE EXTRA BIAS FROM MULT STAGE ; BE SURE FLAG IS (LEAR ; GO DO ADD ROUTINE F R Attt ; COEF SIGN NEGATIVE MCTEMP5] MB-ZL1TQ[801, ; REMOVE EXTRA BIAS SIZECWORD1,SET ADD2(FLAG1) ; SET SIGN FLAG =000 =001 FP.POLYF.90: .0 PL_D_MLTEMP5]I-RLTEMP?7], CLEAR MUL1(FLAGZ), SIGND CMP?,SIZELWORD], ;010 mmmmmmmm o mmmm e RCROJ_MLMDR], CCOP1,SIZECLONG], NEXT/FP.POLYF.115 FP.POLYF.100: 01]=mmmmmmmmmmmmmnmmnmammnnanaa CLEAR MUL2(FLAG3), ADD1 (FLAGO)?, PUSH,NEXT/FP.DSIGNSET ; 100=~===mmommmmmmom oo CLEAR MUL2(FLAG3), PUSH,NEXT/FP.NORM. SNG FP.POLYF.112: ;101 RCROJ_MLTEMP2], CCOP1,SIZECLONG], R e L L L L RL[R2].S12_RB-1, WHICH EXP BIGGER GO DO THE ADD ; : ; RET +1 ANS IS SRC2 (COEF) SAVE NEW PART PRODUCT SET CONDITION CODE S ON THIS ROUND END UP THIS ROUND RET +2 ANS IS PART PRODU(! ; TEMP2 (FRACT) TEMPS(EXP) ; CONVERT FLAG TO D VALUE ; ADD1 FLAG SIGN OF ANS RET +3 ANS 1S IN TEMP2 ; SUB FACTOR FOR NORMALIZ ; MUST CLEAR THIS FLAG AL: ; TIME TO NORMALIZE fRACT) : DONE WITH THIS FLAG L P L e L ; ARG NE 0 ; R2 DEGREE BYTE 0, PC DELTA BYTE 2 SIZELBYTEJ,CLEAR FLAG?, COUNT OR ; ; ; PUT PART PRODUCT PACKED IN REGISTER ; SET CONDITION CODES CLEAR ADD1(FLAGO) =0 FP.POLYF,115: SUB EXPONENTS ; BE SURE FLAG CLEAR PUSH,NEXT/FP,ADDRTN MCTEMPS5) _MB-ZLITOC1EI, ; : INT TIMER?, ; NEXT/FP.POLYF.50 IS LOOP COMPLETE OR IS ; TIME FOR INTERRUPT OR TIMER ;lmmmmme e mmmmmcmeceeeas————— ; ARG = 0 MCTEMP4)_(MB+RLTEMP4Y).SL.1, . COMPUTE DEGREE « 4 WX.NE. 02 INEXT/FP.POLY : WAS DEGREE ZERO - 15 15 6 14 o AR 15 16:30:35 [381%] 1M(OT) i~ FLOAT . MIC MICROZ2 - ; (MT058.MCX [YolVeVolValVo Ve lValVa talVa RV ialVa Ve le Lol a e Fo Lol o B oi o5 04 ©o O 00 00 Co 00 00 00 ©O o Co o GO O 0O G0 0O 00 00 00 00 CO 00 0o 00 o o 0o LN P et md m el = e [ Lo Le Lo L o] O OO OO OO 00 0000 000000 00 00000000 N N NN NN NN N AN = OO NN IMAN 2 OO0 M LN = AINY = QD00 NN P NN = O OO NMN DM AN =2 OND OOV ; : 381.! MICROZ 1M(01) 28-NOV-83 Floating point and CRC H 14 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : COMMON POLYF AND POLYD SUBROUTINES Floating point and CRC KA R T TR T R e R Page : COMMON POLYF AND POLYD SUBROUTINES ' IR R Ak ARk ARk kA Ak kkkkk ko hkk kb ek R ek ke ko ke k ko FP.POLYF.SUBS Common flow Initialization routine for POLYF,POLYD Input: MDR PC PCBACK Resources: Temp4 MDR R2 T IR PRI RA AT LA P LR A R T *akkkk KRR KT e P T T I T e e R I PO = OO 00N o~ AT N GHAIN W NN NN ONON O O LN wvIivnununWA DS LS DS DB B2 2 I DS W N NS WNI = OO0 NS AN NN = OV CO NN N S WU = OO0 ~NIoN W AN 2 OO .T0C " cemLiwamen bt nuauauiuiuiuvaviuaviaua WVIA U b b 3 e e T AU A U b ad samad b 2 R A b b B ok o} e AT LIV b b b e T T b S wnd b aed e g iU 0 O 000000000 OVOOO0OVO0O0O00O00 0000 OO 0O \0 OO0 N0 000000000000 o b D ad d b b D d md b b e b b D b ) b ) b ek = R T T T T e S TR TR P PR P T PR TR TR - ;15924 25 I T T T e O I YR TR TR CMT098.MCX FLOAT.M 1C FPD VA Templ Q Subroutines: 0S.ADD FP.MULFOP] FP.MULDOP1 degree degree zero extended VA, coefficient, PC delta,byte 0-1 byte 2 degree byte 3 bit 30 set table address coefficient coefficient get tbladdr.ab . parse coefficient single parse coefficient double Operation: The address of the coefficient table is obtained b; calling 0S,ADD and the value stored in VA FP.POLYFD.RD is called internally and the first coefficient is read into MDR VA is incremented ) _ o It POLYF The coefticient is parsed and validated by FP.MULFOP2 wxx return is to validate the degree if >31 a reserved operand fault is taken otherwise the FPD is set the PC delta is calculated and merged with the degree in R2 and return is made to the main calling routine It POLYD . Bits 0-31 are stored in Temp?l the read flag is set to indicate the first half of the read has Leen completed it no fault occurs the coefficient is parsed by FP.MULDOP! and a return is made to the routine above *xx 382| > FLOAT, —_e ; {Mi098, =X : MICRO2 1M(01) 28-NOV-83 16:30:35 Floating point and CRC ;15975 115976 : I 14 CLOKX Rev 13.00, Clock rat COMMON POLYF AND POLYD SUBROUTINES ; 160ns Other routines include FP.POLYFD.BT30 :15977 ; ;%gg;g ; (BT30A) Page - 383! o this sets bit 30 in R2 to indicate last coefficient read for POLYF and POLYD : 15980 Et*x*tt********t**tt***t***kt*k****k*****k****************tt**&*****ii**ti**t* +15981 115982 =00 -}gggz FP. POLYFD SUBS: £15985 R[TEMPAJ ZEXT(MCMDRI), £15986 , 0C85,259E,4191,0047,0412,0 :15987 £15990 U 063D, 0081,2002,403D,84A7,046F ,B : FROM WORD TO LONG NEXT/0S.ADD " GUARANTEED TO BE + NUMBER LOD INC BRA?, -}gggg P ;}gggg . GET TBLADDR L; VA_MCMDR], 115991 : ZERO EXTEND THE DEGREE SIZECWORD],PUSH, PUSH,NEXT/FP.POLYFD.RD : PUT TBLADDR IN VA TO DO READ : 115994 FX,POLYG.SUB: 115995 U 063E, 0580,4C13,8A30,F847,006D,4 $10ocmmcmmeste—mmcmmm e e ———— ; 115994 WB_MLTEMP4],ANDNOT.ZLITOLOTF], :}gggg WXTEQ.0? 115999 =0 U 06D4, 0C80,0036,4030,0047,00FF,8 $16000 ;}ggg} : ; {0mmmmmmem e e —————— ; DEGREE>31 NEXT/IE.OPER.FAULT : RESERVED OPERAND $16003 F1. PODELTA: 116004 U 06D5, 08ED,A592,4034,8047,006F ,9 116005 ;}2889 = IS DEGREES <=31 lmm=mmemceseeececececeee—ese—- : R[RZ’ MLpcl, DEGREE VALID MAY BE ZERO i SAVE THE PC SETFPD ! | * SET FIRST PART DONE E}gggg FP,PCDELTA: U 06F9, 0085,9003,0034,8047,006F ,A U 06FA, 0C84,4292,4094,8047,0000,1 21281? RCR2J_RB-MLPCBACK] :16012 R 116013 116017 ;}gg}g Y GET DIFF PC=PCBACK e et ; RCR2] MLTEMP4].OR. (RB.RR.S1Z), SIZELWORD] RETURN [+1] ; ROT PC DELTA 2BYTE5(16 BITS) RIGHT * MERGE WITH DEGREE ; :16017 FP,POLYFD,RD :16018 , 0480,0036,48E0,0450,006D,6 116019 116020 ;}2855 116023 , 0485,2437,0A81,C047,0858,C 323« ! etttk bl : READ,SIZELLONG], VA_VA+4, IRZ5>? i * READ COEFF INTO MDR ¢ INCREMENT VA 7O NEXT OPERAND * WAS IT POLYF OR POLYD 116024 ;}gggz ;Qemmmmmm——emem—e e m——— wmwwwe; §£65p5¥gEXP(MIMDR]), ¢ :16027 NEXT/FP,MULFOP2 POLYF PARSE AND TEST VALIDITY OF COEF ? RETURN IS TO CALLING ROUTINE ; : (MT098,MCX FLOAT.MIC MICROZ 1M(01) 28-NOV-83 16:30:35 Floating point and CRC :16028 U 06D7, 084B,2592,5020,4047,006F,C U 06FC, 0008,0036,4020,0450,006F,D J 14 CLOKX Rev 13,00, Clock rate = 160ns : COMMON POLYF AND POLYD SUBROUTINES jlm m m oo e mm oo : POLYD $16029 RETEMP11.S1Z_Q_MLMPRY, 116032 ;16033 jmemememsmmcmmceecececccceseees ; READ,SIZECLONG], ; READ INTO MDR ;}gggg 116034 :}gg%g SIZECLONG],SETTMREAD(FLAGY) CLEAR READ(FLAGT), VA_VA+4 * BITS 0-31 ; U 06FD, 0C84,1437,0AB1,4047,085E,4 323% S T R; 116039 R[TEMPS] _EXP(MLTEMP1]), :16041 NEXT/FP.MULDOP1 $16040 1160642 FRO.FLT2T, 384 | | INTO TEMP1 AND Q j . | [ ' * BUMP UP THE ADDRESS 116037 FP,POLYFD.25: 116038 Page i | CALLING FROM SPECIAL CASES * PARSE COEF AND VALIDATE * TEMPT, MDR PACKED VERSION * TEMP3'HAS BITS 32-63 FRACTION { Q HAS BITS 0-31 FRACT ! : MUL1(FLAG2) FOR SIGN AND TEMP5 FOR EXP :}2822 3}2822 FP.POLYFD.END: U OGFE, 0084,0587,0134,8047,003F,9 E}ggzg RCR21_0, IRD1 : CLEAR REGISTER $16049 FX.POLYG.VAR3: :}ggg? FP.POLYFD,VAR3: U 06FF, 0¢85,8592,4084,0047,0000,1 116052 ;}gggz RCR3I_MLVAD, : SAVE THE VA RETURN ([+1] : 116055 =0 116056 FX.DSIGNSET $16057 FP.DSIGNSET ;16058 U 06D8, 0580,0C37,2080,0047,0000,1 £16059 ;%gggg :16062 U 06D9, 0180,0D77,2080,4047,0000,1 ;16063 ;}gggg $0mmmmm o me; b zZLI1TO[O)] : | e e e R; ' RETURN [+13 P D ZLIT12(8], RETURN [+1] ; ' H ; | < Y SET UP FLAG BIT FOR SPECIAL READ ' $16066 FX.POLYFD.BT30: :}gggg FP,POLYFD.BT30: (0700, 0D80,0CB7,0032,0467,0070,1 212898 MDR_2L1T240403 3}28;; FP,POLYFD.BT30A: U 0701, 0C83,2002,40A4,8047,0000,1 116073 116074 RCR21.S1Z_MIMDR).OR.RB, SIZETLONGT,RETURN [+1] * MERGE INTO CONTROL WORD ; : : {MT098.MCx FLOAT . MIC 2?- NOV=-83 MICROZ 1M(QD) Floating point and RC 16:30:35 : K 14 CLOKX Rev 13,00, Clock rate = 160ns Page POLYF AND POLYD FIRST PART DONE SAVE ; POLYF AND POLYD FIRST PART DONE SAVE '’ LT0C ' Floating point and CRC : POLYF AND POLYD FIRST PART DONE ROUTINES Pack up routines Initial instruction at FPDOFFSET #1 for POLYF at FPDOFFSET #2 for POLYD There in both cases the iteration cuunt is incremented by one and in the case of POLYD a check made to see if the fault had occurred during a read in which VA is decremented by 4. case the An additional check is made for a reserved operand fault It found the VA is decremented by 4/8 instead of the above and is saved in R3 and exit is to IE.PACK.DONE 3223320228222 222223222 22222ttt RARit ARl ARl sl THIS IS CODE THAT APPEARS IN TANDE IN FPDOFFSET #1 FOR IN FPDOFFSET #2 FOR POLYF POLYD FP,POLYF,FPD,SAVE: T o o T e G s Tt e S e e e RLR21.S1Z_RB+1,SI1ZELBYTE Ny NEXT/FP, POLYF,FPD,SAV. 10 § ; : INCREMENT # OF ITERATIONS FP.POLYD.FPD.SAVE: RCR2).S1Z_RB+1,SIZELBYTED, * INCREMENT # OF ITERATIONS * WAS THIS A READ SECOND HALF 0 ZL1T0C4T, ¢ SET O WITH CONSTANT VALUE FINIISH S UP RES OP CHECK READ(FLAGT)?, NEXT/FP,POLYD.FPD,SAV,10 U 0702, 0980,0037,1030,2047,0070,3 NEXT/FP.POLYFD.FPD.10 : FP,POLYFD.FPD,10: U 0703, 0980,0030,0840,L047,085C,2 413+ WB_D=7L1TO[18), Y IS IT THE RES OP FAULT NEXT/ZFP.POLYFD.FPD.50 ¢ SIZECBYTE],SIGND CMP DEF?, ; FINISH uP ' f 385 : : (MTO98 . MCX MICRO2 FLOAT MIC 1M(01) . 28-NOV-83 Floating point and CRC 16:30:35 L 14 CLOKX Rev 13,00 , Clock rate = 160ns : POLYF AND PTLYD FIRST PART DONE SAVE Page ;16121 =10 ;16122 FP, POLYFD FPD.50: , ) U 0502, 0085,B592,4034,C047,00FE,2 i 16123 116124 ;}g};g 116127 ] J 05€3, 0485,B008,003%4,C047,00FF,2 ;16128 ;;g}%g 10m==cmccrcmmmccm e m e ——— ; NEO R[RSJ MLVAD, ; SAVE VA NEXT7TE.PACK.DONE ; FINISHED 1leseseecccmameacosaceonceno—a- ; EQ 0 RES OP R[RBJ MLVAl-Q, ; DECREMENT VA NEXT/TE. PACK, DONE ; FINISHED 216131 ;16132 =0» ;16133 FX.POLYG.FPD,SAV.10: :16134 FP,POLYD.FPD.SAV.10: ;16135 ] J 0618, 0580,0037,1030,4047,0070,3 ] ] U 0614, 0DB1,BC10,0030,24A7,005C,2 $16136 (0K mmmec e 0_ZLI1TOCB], ae ;}g}%g NEXT/FP.POLYFD.FPD.10 ;16139 :16140 R R e PEL T L B VA_MEVAD=ZL1TO[4], ;16141 NEXT/FP.POLYFD, FPD.50 ——— ; NOT SECOND HALF READ ; SET UP FOR VA DECREMENT [F RES OP ; L ; SECOND HALF READ , BACK UP TO FIRST HALF OF DBLE READ ; NOW SAVE IT 386: : 28-NOV=83 S A0 S AN = O D G0 NN O —= O OO0 NV IS RN = O O A0 NN TS WR = O 0 00 S s s e s s L L s L L L L L L L L L Lo AL —a O OO0 ~JON N I N ed ek b ok D ooooocncaoooomonmcoonww\c\l\1\l\J\l\4\|o~o~o~o~o~o~o~o~o~o~tnm\nmmmmmmmb4\£‘x\bb4\x\ L L D e Yo Yo Nodo To Yo do Yo Jo o T X e Yo Yo XoNoNo No Vo No o [o.Yo Ne Yo NoNe Nd¥e Yo NoNaNo NoNoNoNo No¥o NoLoNe Fo Yo Yo Yo JoYode oo s [o L L L L L L L L L L R b DR R LR TE PR PR PR P PR PR T PR R PR R h b b b b D b b D b h b b ed b b D N T T T b b e ek b b b read o b b oh h > b b b o i S s Floating point and (RC .T0C ' AR * 16:30:35 ' M 14 CLOKX Rev 13.00, Clock rate = 160ns : POLYF POLYD FIRST PART DONE RESTART AR NN AR R ’ A ' 387 . : POLYF POLYD FIRST PART DONE RESTART "' Floating point and CRC RN AR N AR Page AN A RN AR AR AR AR A AR RCANTRARKARA R R R R ARk kA h ok kA h ok k% POLYF AND POLYD FIRST PART DONE RESTART ; [ FP.POLYF.FPD.RES L3 ; Input: ’ . packed partial product gacked argument RO R1 ¢ H yte 0-1 R2 ; | byte 3 bit 30 read last coefficient ’ ; R3 ’ H Resources: H H ’ degree byte 2 P( delta tbladdr CzDOFFSET MTemp value #1 restored P{ H TempO0 H : kY Operation: H H Restore FPDOFFSET recompute PC * if not read temp restore VA from PCBACK and P(delta last coefficient then decrement iteration count and continue at FP,POLYF.50 otherwise read again and continue at H H H FP,POLYF.25 1f successtul ’ J FP,POLYD.FPD,RES ’ » Input: * RO,R1 part product packed R4 ,RS argument packed RZ R3 H H : ; Operation: H as for POLYF tbladdr Get part Eroduct and unpack, get argument and unpack and move to working temp restore FPDOFFSET recompute PC and VA from PCBACK and PC delta if not read last coefficient decrement iteration count and continue H at FP.PULYD,2C otherwise call FP.POLYD.35 H J return to do . final end up to try again if read is done . RN ’ R R AR AR R R R AR R AR A R NN R R R AR AR R AR A KA R RN AR AR AR A AR AR R ARt Ak Rk h Rk ke kh I 1M(Ql) b D b b FLOAT . MIC MICROQ S o (MTO98.MCX e el b e H MT0G8.MCX FLOAT MiC IM(OD) 28-NOV~83 16:30:35 Floatiny point and CRC N 14 CLOKX Rev 13,00, Ctock rate = 160ns Page : POLYF POLYD FIRST PART DONE RESTART ;16194 LREGION/IRDI.RIL,IRDT.RIH ;16195 2000 116196 FP,POLYF.FPD.RES: 116197 ;000=~-mevomenr semem———; ; ;16198 MLFPDOFFSET] _2L1T0C]. 388 0200, U986,0¢37,0030,0847,0455,D :16199 ;16200 NRONLION T RONINU NI NN PO NN O AU NIN o — — cd b b b 5 MICRGe S OO0OOCOOOODVV VOO0 : i; PUSH, NEXT/FP,POLYFD.RES. 10 ;16201 116202 I 0201, 04B0,05BE,46F4,8047,0064,2 116204 216205 116206 16207 ;16208 . . J 0642, Q4UA,QE7D,UBUA,8047,0863,4 410+ . U 0643, 0880,0036,4020,0450,006(,C ; J00) oo e e — e e; WB_R[R2] ; WBI31-30>7, ; :16203 = RESTORE FPDOFFSET ; DO SOME COMMON RESTORATION NEXT/FP,POLYF.FED,0S DETERMINE WHERE TO RETURN TE NG BIT30 .figGJON/FLOATLRt FLOAT.R1H/FLOAT ,R2L,FLOAT ,R2H/FLOAT.R3L,FLOAT.R3H FP.POLYF.FSD 05: ;16211 RCR?2]).S1Z_RB-1, ; 11613 ;%6 }g COUNT OR INT TIMER?, NEXT/FP.POLYF.50 ; CHECK FOR INTERRUPTS TIMER s CONTINUE THE PROCESSING :16212 ;16 116216 116217 16218 ;}gglg SIZECBYTET.CLEAR FLAGI, ; et mm———————; READ,SI1ZE[LONG], ; VA _VA+4, ; NE?T/FP P YF,25 DECREMENT THE # OF [TERATIONS DO SPECIAL READ AGAIN : JOIN REGULAR SPECIAL FLOW ;16221 .REGION/IRDI.RIL.IRDT.RIH 116222 "000 ;}ggsz FP.PCOLYD, FPD RES: o QeeD, U4B6,15RE,4034,0047,0070,4 ;12552 M[TEMP1] _RLRO] s GET PART PRODUCT UNPACKED ;%ggggJREGION/FLOAT RI1L,FLOAT.RTH/FLOAT.R2L ,FLOAT ,R2H/FLOAT .R3L,FLOAY.R3H L 116229 ;}2;%? 16232 =00 J 06b4, 0480,05BF,4036,4467,046F,D U 0845, ] UQO86,15BE,4035,0047,0457,3 U 0646, QU08,U5BL,4035,4467,0064,8 , 16233 ;16234 ;;gg%g 216237 ;16238 ;16239 .16 :%ggzé meemmesmessasmemenea mmmsmmmmes; SET UP FPDOFFSET FIRST MLCFPDOFFSET] ZLITOL?] e T L e MDR R[R1] , L L e L e PUSA,NEXT/FP.POLYFD.25 ; FOR BULLET PROOF ING L —_— ; ; THIS UNPACKS jQleesseeecemnmwmem e me——— M[IEMP1J RLR&4],PUSH, NEXT/FP RT2Q s 10mmesommccccniennonn e MDR _RERSJ,CLEAR FLAG1 SECOND HALF . ; OF PART PROOUCT AND RETURNS GET ARG AND UNPACK GET @ (BITS 0=31) T0 TEMPS men—— s SECOND PART OF ARGUMENT | , w704, U986, 037,0030,1047,0064,4 CMTO98,MOX MICRUZ FLOAT.MIC 1M(01) 16:30:35 ~ (LOKX Rev 13,00, (lock rate = 160ns Floating point and (RC 216244 =00 2 ubk8, 0084,1437,0A82,0047,0C5€,8 323+ ; B 15 2B-NOV~83 ; 0649, ULB0,0036,4030,0047,0064,4 : POLYF POLYD FIRST PART DONE RESTART : ]b?l's 100mmmermmccnnnccccaae PRI L UL L L T 116246 116047 RLTEMPB] EXPIMLTEMP11), FRO.FLTZY, ;}2593 : ; PUSH,NEXT/FP,MULDOP2 $16250 (01 memmmsmmam s amusmmsmena; HEKE ONLY IF 2ERQ SHOULD NOT HAPPEN ;}2;2; NEXT/FP.POLYFD,RES.08 116254 0648, OCB&,A5BE,403%1,8047,0070,5 : FORCE TO FOLLOW THROUGH ;10mmmmmmmoemmccmemma o ae : 16255 MITEMPO) RLTEMP1], ;}2529 PUSH,NEXT/FP,POLYFD.RES.10 $16258 1lemmommm .'{2522 ;16262 116263 116264 000 116265 =010 ) } 055A, 0BBZ,0FE7D,0B44,8047,0865,5 407+ o ' USSC, UBES,B592,40%4,0047,006F E memeE . e: Ny e WB_R[R2], WBR31-3057 ; MOVE TO WORKING TEMP : WHERE TO RETURN TO : BIT 30 TEST 116269 SIGND CMP DEF? ;;gsg? 116273 ;}gsgg 16276 116277 ;125;3 +2 FROM PARSE : ;010mm=cmccaccmcnanaan Sumemmaan : RCR2),S12_RB-1, : 116268 RET : MOVE TO WORKING TEMP 16266 116267 116272 . 0558, G084,0587,0031,0047,0456,D e m s MUTEMP10)_RITEMPS) :- 16261 0705, 04B0,05BE,46F4,8047,0055,A GO PARSE ARG : S, 116253 FP,POLYFD,RE08: U 0644, 0086,958F,4030,4047,0455,D Page NORMAL PROCESSING DECREMENT THE ITERATION COUNT SIZ2ECBYTET, : NEXT/FP.POLYD. 20 : CONTINUE ON ;011 === RLTEMPL) 0, : DONE OR NOT o oo ; SPECIAL CASES WORK PUSH,NEXT/FP,POLYD.35 ; ; $1007==mmmsmmm s memm e ; R[R3) MIVA),CLEAR FPD, NEXT/FP.POLYFD.END ; : $16280 F1.PILYFD,RES,.10: 116281 FP,POLYFD,RES.10: :}2§§§ FX,POLYFD,RES.10: 0550, 0880,05KF,4( 34 ,C4A7,0085.F 055k, 0086,0287,0014,8047,0055,F 055F, 00B6,0112,0037,F847,0070,6 _ ' 6706, 0481,90¢1,0080,0487,0000,1 }125%? $16286 ;}gggg 116289 ;;gsg? 16292 116293 ;16294 VA_RCR3) : RESTORE THE TBLADDR imemsmmssssvemsseemesee—e————- ; MCTEMPO]_RIR21.RR.16 : GET THE SAVED WORD AND FIND PCDELTA P ; e M{TEMPO]_MB.AND.ZLITOLOFF] : MASK OFF PCDELTA jemeeessmmessmnesmaeme o me—- ; PC_MIPCBACKI+RLTEMPO], RETURN [+1] : RESTORE PC CORRECTLY : 389 16:30:35 LN ¥ 3 3 4 634 634 634 634 10C " TR LR TR TR N R AN I T T T T T e e T A TR TR SR PR TR P = O 000 IO LA AN LA AL Yo lo e = O OO NON N TN N AT N PO R N Yo Yo Yo NoNoNoNo NoNe No No o No Yo Ne No NoNo N N WA N L AN O AN AN LA LA N RN L L LA WA U LA N AL AR R AT AN N e el ==l lelelw {w Lo le s o lal okl D00 N PONUN) — — =3 —t P N — D O 00 O I LAN) = O 000 oW NS N — OGO O AN B PO O N PO N No Yo R0 Xo NoJo Xe Yo do ol e ol onle e aloaloale sl ot i et floating point and (RC oo e | 28-NOV=~83 N A N U AT N WA U LN AN L I 1M(01) LA ! FLOAT . MIC MICRO2 P T T R T T T N AT TR PR TR T R DR L LR D L L b it b e b h b b o b b ek o o D b b wad b b D b mh b d d b e d b b d b d e b b D b o d b nd d e e d D oD i CMT098,MCX c 15 CLOKX Rev 13.00, Clock rate = 160ns Page : FF,POLYD Floating point and CRC : FP.POLYD '* NN TN AN A AT R A NN RN AR R R AR AR AR ARk AR Ak Ak Rk Ak kA Ak AR A AR AR AR AR A NN 75 POLYD RN arg.rd,degree.rw,tbladdr.ab,[RO-R5.wl] Input: Temp1 argument bits 0-31 MDR argument bits 32-63 Resources: for _argument (FP.MULDOPZ2 parse validate) Temp1,MTemp9 fraction bits 0-31 Tempéémremp10 fraction bits 32-63 RTemg Fla? exponent sign of operand MTemp16,0 packed form of operand initially only MUL2{FLAG3)) L MTemp8, MDR packed form of operand initially Tempe Temp3 for partial product fraction bits Q=31 fraction bits 32-63 Temp5 . exponent Fla?Z sign ot operand MUL1(FLAGZ)) Temp2 Temp3 Temp5 for product step before getting coefticient fraction bits 0-51 fraction bits 32-63 exponent Flag0 sign of product ?ADD1(FLAGO)) 9 General resources FPDOFFSET MTemp containing FPD Fla?1 D,Q . READ(FLAGY)) RO,R1 R2 special index value 2 multiplication and temp storage GPRs during instruction execution 1st coefficient or part product byte Q degree (decremented in situ) byte 2 P( delta byte 3 R3 R4 ,R5 read flag flag bit . 30 special tbladdr argument in packed form read 390 RUE SN T FP.POLYD Output: Eg.R1 answer R3 R4 ,R5 tbladdr + degree*8+8 0 T T O L TR PE TR AT NN e e A T P 2 O 00~ O NS T L AN Page Atter tault if FPD = 1 Re R3 R4 ,R5 Subroutines: FP.MULDOPI FP.MULDOP? 0S.RED FP.POLYFD.SUBS partial product after the iteration prior to the one causinyg the fault <?7:0> # of iterations remaining <23:16> PC delta address of the coefficient causing the ftault argument parse operands parse operands et degree 1nitial set up FP.POLYFD.RD do special read FP.PREOPS.POLYD prepare operands call FP.MULD.SUB FP.POLYFD.RD10 ast next coefficient call FP,ADDD.20 to add, normalize,round pack process interrupt or timer Operation: T T P e e S T T R = OO O N CLOKX Rev 13.00, Clock rate = 160ns IE, SERV.IP.TS2 J 00 NN NLISMAN : D 15 RO,R1 e NN N NA N RN NN N NN N N AT AT WA N AT O N A O OO UTLALAVA COCOOOCOCO00CNCO 00 TM N NN NN NN No~ONOn OO P Vo ¥e Ve Yo Yo Yo NoNo NoNoNo XoNoNe Ne Yo NoNo No Vo NoNo NoNe NeNoqo Mo Yo Jo Yo Yo Yoo e LA LA A AN AN O 16:30:35 T o ke e = D o b s ) b b d D md e b ) d e D b D b B b o ot b b o b e o et e oah e ed Samov.w AT NN AN N N N N NN AU AN DS I = O 0O NOMA LS INNI = OO0 ~NO D b 3 N I T O T T T PR T P T PR TR PR XY A ~ ;16345 ST Y 1M(O1) MICRO2 28-NOV-83 Floating point and CRC LV > FLOAT. == ; (M1098., — : The argument is parsed and validated by FP.MULDOP? The degree is fetched by 0S.RED. Upon return FPDOFFSET temp is set to 2 for POLYD instruction FP.POLYFD,.SUBS gets the address of the coefficient table and does the initial preparations sets FPD Upon return the st coefficient is saved in RO,R1 the argument in R3,R4 L It the argument is 0 then it the degree is 0 the end up routine is called if the degree ne 0 then the ansiver is the last coefficient which is fetched bS adq\ng degree*8 to the tbladdr R¢ (bit 30) is set indicatin where to return should a fault since FPD is already set occur 391 28-NOV=83 1M(Q1) 16:30:35 Page (LOKX Rev 13.00, Clock rate = 160ns : FP.POLYD A LN AN LN NN If the argument is not 0 The exponents are added and FP,PREOPS.POLYD called to shift the operands left and to call FP.MULD.SUB to pertorm the bits of the Upon return 63 multiplication. product are saved and the next coefficient is obtained and FP.ADDD.20 called to perform the add, normalize round pack Upon return the part product is saved in RO,R1 it no tloating overflow or underflow FU bit set At appropriate intervals checks are also A U No Jo Xo Yo Jo Jo Jo Te lo e D B D D I D DA o No HoNe Yo Yo Yo N LN D5 D B [0 Yo Yoo PR TR T T R R N S e elelelalelelelels o VollslVallolNolle Lallo o gl of = 3 OO0 NN L NN = OO O NNV S AN = OO Floating point and (RC S FLOAT . MIC MICROZ —hd:a_hd—d—hfl_fl—hd—J_A_LJ—J—A—MJ_A_LJ ; CMTO98.MCX S ; E 15 made for interrupts and timer . To begin a second or nth iteration the part product is unpacked and L the ogeratlon repeated until all coefficients have wkxknkkkdxFPA ENTRY (0OS.FIDRED) AND FPD RESTART 1222222233 0322320023323 been processed INTERFACE*xtukkaktwsk - F1.POLYD - FI1.POLYD.FPD.RES 2 02 ittt ittt ittt ts ittt Rl Rill] . 392 i ; ! ; ' ~e CMT098.MCX “LOAT . MIC MICRO2 1M(Q1) 28-NOV=83 16:30:35 Floating point and CRC ;16411 035A, 0C86,85BE,4030,4047,0064,C F 15 CLOKX Rev 13.00, Clock rate = 160ns : FP.POLYD .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX.R2H Page ;16412 P LPOLYD: ORERE ,}22}% * SAVE BITS 0-31 OF ARG IN PACKED FGRM 116413 jmmmmmmmmmm—mm— e ecmeoees ; MLTEMP8]_RLTEMP1) AR AN AN RN R Z}gz%g 8SGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L,FLOAT.R2H/FLOAT .R3L ,FLOAT ,R3H AL R R[TtMPBJ _EXP(MLTEMP11), : PARSE ARG TEMP1 BITSO~31 (FRACT) 116421 FRO.FLTZ?, : TEMP6 HAS UNPACKED BITS32-63 116420 064C, 0084,1437,0A82,0047,0C5E,8 323+ 064D, 0086,858E,403D,8047,0064,E .}gzgg 116424 ,}gzgg 216427 064E, 0886,958E,4180,4047,0010,0 (e e —— : 116419 PUSH, NEXT/FP.MULDOP2 : MDR PACKED BITS 32-63 : ;0]==—==mm=m—m—memecmeceeeoeeas : RET +1 ARG = M[TEMP8] _RLZERO] : ZERO OUT PACKED ARG (BITSO0-31) ;10==mm=mc=cmmmeccemeccesaaoooes : RET +2 ARG NE 0 116428 M[TEMP9J R[TEMP1J. ¢ SAVE THE FRACTION BITS 0-31 .}gzgg NEXT/0S.REv : RET THRU IRDROM TO FP.POLYD.10 116429 LOD INC BRA? : GO GET DEGREE 116432 .REGION/IRDX.R1L, IRDX.R1H/IRDX.R2L, IRDX.R2H .}gzgz FP.POLYD.10: 0358, 0986,C(37,0030,1047,0065,0 Z}gzgg MCFPDOFFSETI_ZLITOL2] : SET UP THE FPD OFFSET VALUE FOR POLYD I}gzgg _SBGION/FLOAT.R1L,FLOAT.R1H/FLOAT.R2L,FLOAT,R2H/FLOAT .R3L ,FLOAT. R3H 116439 0650, 0C86,A03A,403D,8047,0463,C ;Q0=mmmme=meeemc—————e—eeee—e——- ; 116440 M[TEMP1OJ Q, : THE PACKED ARG(BITS32~63) MDR MOVED 116442 NEXT/FP,POLYFD,SUBS : AND GET 1ST COEF 116441 116443 PUSH, .}gggg 16446 0651, 0086,203A,403D,8047,0456,E 0652, 0884,A592,4035,4047,046F ,F 0653, 0486,A5BE,4031,8047,002A,1 TO @ BY 0S.RED GET TBLADDR,SET FPD, : TEMP2,TEMP3,TEMPS(EXP), UNPACKED : TEMPT AND MDR HAVE THE PACKED FORM ;0]=m=mmemmememeeecceeeeemeeeoes : 116447 M[TEMPZ] _Q, : UNPACKED BITS 0-31 INTO WORKING TEMP ,}gzgg NEXT/FP.POLYD.40 : PUT PACKED VALUE IN RO,R? 116451 116452 ;1Q==mmm=mmeeememceececc——aeaee ; R[RSJ MCTEMP10], : PACKED BITS 32-63 OF ARG (OR 03 IN REG 116448 ,}22;2 116455 PUSH, PUSH,NEXT/FP.POLYFD.VAR3 ¢ ST COEFF (PART PRODUCT) * G0 SET R3EQUAL TO VA ;l]em=emecscsceccccecceeeeeeeea- : ,}gzgg 116458 02A1: M[TEMP1OJ _RLTEMP6] :18460 RCR4)_MCTEMPB,CLEAR FLAGI, : STORE BITS 0~31 (OR 0) OF ARG ;16462 NEXT/FP.POLYD.25 ; 116459 02A1, 000C.8592,4A35,0047,0856,8 322+ : 116461 : SAVE BITS 32-63 OF UNPACKED ARG ;erxkntxFORCE ADDRESS**swsnawunn; WX.EQ70?, : WAS ARG 0 393} ; : CMT098.MCX FLOAT.MIC MICROZ2 1M(O1) 28-NOV-83 16:30:35 Floating point and CRC G 15 CLOKX Rev 13.00, Clock rate = 160ns Page : FP.POLYD 394 :16463 0707: 116464 FREE.0707: 116465 ;xxkxxxL OCATION NOT USED xxxaxks; 116466 U 0707, 0084,8592,4A35,0047,0856,8 322% 116467 RCR4I_MLTEMPB], ' STORE BITS 0-31 (OR 0) OF ARG NEXT/FP.POLYD.25 : WX.EQT0? ;}2223 01 * WAS ARG 0 116470 FP.POLYD. 20: 116471 R ——— ; LOOP >=0 116472 M[TEMPSJ MB+RLTEMPB], * ADD EXPS IN PREP FOR MULD RTN U 0657, 0C84,0587,0035,0047,0070,F U 0560, 0186,5C10,0034,0047,046A,6 116473 ;422;2 CLEAR READ(FLAGT), SIZECWORD],NEXT/FP.POLYD,22 116476 ;1] e mmmemmee—ceeeammem—————— ; LOOP <0 ALL DONE 116477 ;}22;3 000 RLR4D 0 NEXT/FP POLYD. 220 * ZERO OUT WORKING REGS 116482 cremps: MB-ZL1TOC80], * REMOVE EXTRA BIAS E}gzg? FP.POLYD. 22 ;}gzgz PUSH,NEXT/FP.SC17 116485 U 0561, 0080,0287,06D5,0047,0C5€,D 337+ ;00 =mmmmmmmm—————— ma e —————— : WB_RLR4J.RR.SIZ, ' CHECK AGAIN FOR ARG SIGN ;}gzgg PUSH,NEXT/FP.PREOPS. POL YD * AND MULTIPLY 116487 SIZECWORD] ,WB<31-30>7, M[TEMPZJ D+R[TEMPO]+ALKC 116492 ;12232 116495 116496 wB<31-3032 PUSH,NEXT/FP.POLYD70.F IX R[ROJ MLTEMP21,CCOPT, ;}223% ] SIZECCONG] 116500 16501 U 06DB, 0086,203A,403D,8047,0065,5 16505 116506 (ROSS PRODUCT ‘' UNNORMALIZE RET SOONER OR LATER YFIX IN VER 25%wawxx L BITS 0-31_IN MTEMP? P BITS 32=63 IN MTEMP3 {(mommm o mm e ; MDR _RLR11_MLTEMP3], : ;}gggg 116506 ; ADD THE LAST PART OF ;0] leme=m-cecccmceecemececee————- ; RET AFTER READ,ADD (AFTER FP.ADDD.20) 116499 =0 U 06DA, 0484,3592,4034,4467,0470,9 : PREPARE OPS FOR MULTIPLY $010=====mmm=mmmmmmoomee oo : 116491 U 0563, 0084,2592,4024,0847,006D,A : 116486 16490 U 0562, 0086,2061,06F0,0047,0D3F,8 338+ * DOING A READ NORMALLY * ADDITION IN WORD SIZE PUSA,NEXT7FP.POLYD .60 0 * RETURN FROM FP.POLYD.65 le=secseccecveccecsesesceeseee- ; RET FROM FP.MULDOP1 OF PART PRODUCT M[TEMP?] Q, NEXT/FP.POLYD.20 : BITS 0-31 ' CONTINUE TO WORKING TEMP I U 0655, 040E,5001,0012,0047,0056,0 - ———_— (MTO98 . MCX ; FLOAT.MIC MICRO2 e 1M(O1) S 16:30:35 28=-NOV=-83 floating point and CRC H 15 Page CLOKX Rev 13.00, Clock rate = 160ns : FP.POLYD i 395 , :16507 =000 ! ;16508 FP.POLYD.25: J 0568, 080A,0E7D,0B44,8047,0865,5 407~ U 0569, 0880,4592,4A70,0047,0456,A 16509 :16510 1000==mmmmmemmmee e e ncan— . ; ARG NE 0 RCRE).S1Z_RB=-1,(LEAR FLAG?, ; R2 HAS DEGREE BYTE 0 ;16514 :16515 100 mmmmcm e m e ennnmessmena—- ; ARG EQ O WB_MLTEMP4], ; 1S DEGREE REALLY O 216511 ;}gg%% ;}gg}g SIZECBYTEJ,SIGND CMP DEF?, NEXT/FP.POLYD.20 WX NE.0?,PUSH ! i g : PCDELTA BYTE 2 FLAGS BYTE 3 ; >=0,<0 OR TIMER i i ; SPECIAL RETURN ;16518 FP.POLYD.30: U 056A, 08ES5,B592,4034,0047,006F,E :}225; 216323 16524 U 0568, 0D86,4C10,0030,0847,0470,0 $16525 18359 U 056C, 0884,4001,0031,0047,0056,D :}gg%g H 1010 == m e e m e c e a———— ; DEGREE=0 RLR3J_MLVA],CLEAR FPD, ; ARG=0,R4,R5=0 ALSO RO,R1 HAVE COEF NEXT/FP,POLYFD.EN ettt tedntatintet ettt i | PUSH,NEXT/FP.POLYFD.BT30 ‘ MCTEMP4]_MB=ZLITOC13, 10 RLTEMP4] _MLTEMP4] +RB ;16530 FP.POLYD.35: 116531 ;16532 $16533 ;}gg%g J 056D, 0081,8501,0021,04A7,046F,8 B J 056E, 0484,1592,4004,0847,0070,8 ;}ggzg : ADJUST FOR INCREMENTED VA i 116543 ;}2?22 VA_MCVAJ+(RCTEMP4],ASL.SIZE), SIZECLONG], PUSH,NEXT/FP.POLYFD.RD . N RCROJ_MLTEMP1], CCOP1,SIZELLONG] "mmmmm— e ; ; ; RCR1]_M[MDR], RETURN [+1] . : U 0709, 0082,0E7D,0844,8047,0866,1 407« bt L L LD B L H ;16548 RLR2].SIZ_RB-1, ; ;16550 SIGND (MP DEF? ; ;16549 ;16551 { } ‘ SIZE[BYTE]D, NEXT/FP.POLYD. 90 * ; TEMP4 HAS DEG*2 NOW GETS *8 : s READ TO GET LAST COEFF SAVE 1ST PART OF CONDITION CODES : COEF AND SET ! | i ! 1 SAVE PACKED BITS 32=63 216546 FP,POLYD.60: :16547 : . 15 DEGREE ALSO 0, %2 HERE AND w4 LATER 116541 FX,POLYGH.45: 216542 Pttt L L LD L L L LD : v 0708, 0885,2592,4084,4047,0000,1 j ; D -~; DEGREE NE 0 BUT ARG =0 ;16536 FP.POLYD.4O0: 116537 :16538 ; R2 NEEDS 0 VA HAS VA*é _ DECREMENT DEGREE : ; . DONE YET | ;16519 :16520 : : CMTO98.MCX FLOAT MIC MICROZ’ ) 1M(QD) 28=-NOV=83 16:30:35 Floating point and CRC 115 (LOKX Rev 13.00, Clock rate == 160ns ¢ FP.POLYD Page 396! % :16552=0 i ;}gggz FP.POLYD.6S: 1 65 4 116555 U 06DC, 0C84,1437,0AB1,4047,085€,4 323+ R[TEMP‘J EXP(M[TEMP1J) 116556 ;}gggg FRO.FLT2? NEXT/FP. MULDOP1 16559 v 060D, 0980,0C37,2AF0,0047,04F7,0 | % lesssmcscmcnceemmren e s e; 16561 116562 INTPEND OR TIMER?, ; CLEAR OUT D FOR FPD FAULT :}gggz 659 PUSH, NEXT/]E SERV.IP.TS? * CHECK IF INT OR TIMER ; RETURN HERE ONLY IF NONE OR TIMER 116566 (0l ;16567 ;16571 i : : ZLJTOCOJ 116568 216569 ;16570 ! ; UNPACK THE PART PRODUCT :16560 :16565 FREE.0659: J 0659, 0COA,0E7D,0021,4047,0070,C ; Qmmwmsemmemeesc e es e cec e e H ! : { | | ; re ————— wewumnems VALUE IS Q1XXXXXX... ] SIZE[LONG CLEAR READ(FLAG1) NEXT/FP.POLYD.80 N ;. CLEAR FLAG FOR READ } | RLTEMP5].S1Z_RB-1, 6458B: : ; DEC THE EXP | i ! :}gg;g FREE.0658: U 0658, 0580,0EF6,4030,0847,0070,A 116574 :16375 70A: PL_[1] s SET UP PLATCH :}gg;g RUTEMP3]_(MLTEMP2] RB).RR,P :16580 P e; | ! :}22;9 FP,POLYD.72: U 070A, 0084,2137,0030,C047,0070,8 . :16581 MLTEMP2] 216583 MUL1(FLAGZ) XOR MULZ(FLAGB)’ 216582 J 0708, 080&,2001,857D,8047,0065,¢E ;16584 116585 13F8: _(MB+R[ZER01).SR.1, ¢ SHIFYT RIGHT 1 . U 13F8, 0886,5587,0030,0047,0065,E CLEAR READ(FLAG1), : NEXT/FP.POLYD.75 : ; WHAT 1S PRODUCT SIGN :}gggg 116592 U 13F9, 0C0A,Q0E7D,0021,4047,0070,C U 13FA, 0580,0EF6,4030,0847,0070,A ! NEXT/FP,POLYD.75 13F9: ; CONTINUE ON D e : VALUE IS Q1XXXXXX... RCTEMPS].SIZ RB-1,S12ELLONG], 216595 NEXT/SP,POLYD,80 16597 16598 ;}gggg ;10=memmemmcsn e ——— < emee- : VALUE IS T0XXXXXX.. : SET_UP PLATCH PL_[1], NERT/FP.POLYD.72 s CONTINUE ON ;16594 216596 13FA: 16601 13FB: 216602 u 13FB, 0580,0EF6,4030,0847,0070,4 s ZERO OUT EXP ;16593 16603 216604 | i iabtaiaieiataeee LI e D DA DL S S L L DL ; FRACTION IS O MLTEMPS] 0, 116588 116591 | : BITS 0-31 ;16586 FP,POLYD70.FIX: ;16587 i CLEAR READ(FLAGY), ; DEC THE EXP s CLEAR FLAG FOR READ J1lmencecssc e cs e m e e ———— ; VALUE IS TIXXXXXX.. PL_[1], NERT/FP,POLYD,72 ¢+ SET UP PLATCH + CONTINUE ! j ! 116605 =10 ;16606 ;16607 ;16608 S 02 M -y - e ;16617 ;}gg}g s e e NEXT/FP.POLYD.100 e e (0 P 0 B MLTEMP3]_MB.AND.O 116622 MULT(FLAB2) XOR M =01 e B T B O - STRIP OFF BIT 64 WHAT IS PRODUCT SIGN NEXT/FP.POLYD.75 ;16626 FP.POLYD.90: ;16627 U 0661, 0884,2592,4830,58E7,0060,C ) U 0663, 0r84,0587,0035,0047,0070,F 116628 ;16629 ;}ggg? :16632 ;16633 ;16634 SIGN IS - VA_VA+4, 116620 FP.POLYD.80: e e e 1 w4 ;16621 116625 ey Gt SET ADD1(FLAGO), READ,SIZELLONG], ;16616 116623 116624 CLEAR THE SIGN FLAG CLEAR ADD1(FLAGO), READ,SI1ZELLONG], VA _VA+4, 16614 16615 U 070C, 0D86,3€12,057F ,F047,0065,E SIGN IS + o Y g e 0 Clock rate = 160ns NERT/FP.POLYD.100 ;16613 =11 ) U 065F, 0840,0036,4020,0450,0070,D T FP.P OLYD Ny -t U 065E, 0000,0036,4020,06450,0070,D 216609 ;16610 ;16611 ;16612 i —— CMT098.MCX FLOAT MIC 15 (LOKX Rev 13,00, J cr : H 16:30:35 MICROZ 1M(Q1) 28~NOV-83 Floating point and CRC - - 0- RCTEMP1) _MLTEMP2], LOOP >=0 NOT DONE YET 1P.TS?, NEXT/FP.POLYD.65 1lmmmmmmmmmm em oo RCR41_O,NEXT/FP.POLYD.220 DONE ZERO OUT REGISTERS 216635 FP.POLYD.100: ‘ U 070D, 084B,2592,5020,4047,0070,F ) ) U Q70k, 0008,00%6,4020,0650,013F,C 116636 116637 116638 ;16639 ;16640 216641 116642 216643 ;16644 RCTEMP11.S1Z_0_MIMDR], BITS 0~31 INTO TEMP1 AND @ SET FLAS FOR SECOND HALF READ SIZELLONG),SET READ(FLAG1) . = e T o 0y > T v READ,VA _VA+4, DO THE READ NEXT/FP.POLYD,FIX RETURN IS TO FP,POLYD,22 +,011 S12EELORGY, CLEAR READ(FLAG1), ;16645 -\ > e Z X~ ;16649 116650 T me ) U Q70F, QU84,0587,0035,4047,0056,A 16646 216647 ;16648 10, /FP.POLYD.30 T W T W W - g E EO OUT SECOND HALF OF ARG LEAN UP AND FINISH UP CMT098.MCX FLOAT . MIC MICROZ2 1M(01) 28-NQV-83 Floating point and (RC 16:30:35 : K 15 CLOKX Rev 13.00, FP,POLYD ;16651 13FC: 116652 FP. PO'YD FIX: ;16653 13FC, 085(,1435,1AB1,C047,0C5C,8 389+ ;16654 216655 ;16658 13FD: 116659 13FD, 0080,0036,44F0,0047,013F,E RETEMP7] SO EXPMITENPID), ; SAVE EXPONENT IN Q ALSO PUSH,NEXT/FP,ADDDOP? i; FRO.FLTZ?,5ET FLAG3 :}2229 NEXT/FP.POLYD.FIX2 116662 ; Rttt bl bl ; OPZERO(FLAG3)?, ;16660 ;16661 Clock rate = 160ns : : TEST VALIDITY OF OPERAND FLAG3 1S CLEARED IF OP=0 MUST TEST FOR ZERO 0 COEFFICIENT? 116663 13FE: ;16664 FP.POLYD. FIX? 116665 13fFE, 0586,5(10,0430,F047,0050,A 116666 M[TEMPSJ MB-ZLITOOIE], ;16668 NEXT/FP . NORM.MUD 116667 116669 ;166720 J1667 13FF, 0480,0036,4030,0047,0004,3 216672 116673 ; ADD1(FLAGO) ?, ; NEXT/FP ADDD, 25 : EQ O SKIP ADDDRTN ROUTINE SUB THE FUDGE FACTOR SIGN OF PART PRODUCT ; OFF TO SET D CORRECTLY ; REY TO FP.POLYD.22+.011 13FF: NE O TO ADDDRTN ROUTINE RET TO FP.POLYD.22+.01 Page 398, M0 16674 116675 ,T0C ;166?6 . ' RN R R ;16677 . ;16678 ; ;16679 ; 16:30:35 : L 1S (LO%X Rev 13,00, FPA INTERFACE Clock rate Floating point and (RC RN R AR NN N AR R AR : ; Page 160ns FPA INTERFACE AR KN AR AN RR KRN " KEN R AR AR kAT AR AR Ak kb ki ko s o F1.ADDF2.REG/F!.ADDF2.MEM ADDF2,SUBF2,MULF2,DIVF2 ;16685 ; 216686 ; 116687 ;16688 ; ;16689 ; ;}ggg? : FI1.ADDF3.REG/F].ADDF3.MEM ADDF 3, SUBF 3 ,MULF3,DIVF3 F1,ADDD2.REG/F{,ADDD2 . MEM ADDD2,SUBD2,MULD2,DIVD2 ;16692 :16693 ; F1.ADDD3.REG/FI.ADDD3. MEM ADDD3,SUBD3,MULD3,DIVD3 CVIBD,CVTWD,CVTLD F1.CMPF.REG/FI.CMPF.MEM CMPF F1.CMPD.REG/F 1,CMPF MEM CMPD ;16699 ; F1.CVIDF CVIDF ;16701 ; 216702 ; F1.CVTFD CVTFD F1.EMODF EMODF F1.EMODD EMODD F1.POLYF POLYF F1.POLYF.FPD.RLES POLYF F1.POLYD POLYD F1.POLYD.FPD.RES POLYD RESTART 116696 ; ; ;16697 ; ;16698 ; ;16700 ; ;16703 ;16704 16705 216706 ; 16707 ; 216708 ; 216709 ; ;16710 216711 ; ; 216712 ; 16713 ; 216714 ; Ak 16715 k% INSTRUCTICN - :%gggz ; ;16696 ;16695 399: FPA INTERFACE ROUTINES ENTRY :16680 ; J16681 ;... ;16682 n 28-NOV~-83 Floating point and (RC 2 kAR R ARk R b AR AR AR CVIBF ,(VIWF,CVTLF CVIFB,CVTFW,CVTFL,CVIRFL CVIDB,CVTDW.CVTDL, CVTRDL | RESTART A A RAA AN AR A RA R R AR AR AN KRR RN NN R AR AR Rk R w ; : C(MT098.MCX MICROZ2 FLOAT.MIC 1M(OT) 28-NOV-83 Floating point and CRC ;16716 .10C ' :16717 .10C ' 16:30:35 : (LOKX Rev 13.00, Clock rate = 160ns FPA INTERFACE Floating point and CRC Floating point and CRC :}2;}3"REGION/IRD1.R1L,IRD1,R1H 216720 F1.ADDFZ.REG: ] ] U035, 0481,258C,003C,(047,300D,D ;16721 116722 ;}2;%2 FPA_MCMDR] FPA WB _RLGPR,R]-0, NERT/FI.ADDF2.20 ~ :16726 ------------------ L ;16727 :}g;gg fPA_MIMDR], NEXT/F1.ADDF2.20 116730 =0 116731 . U 00DC, 0(81,25B(,018(,C047,3414,0 116734 ;}2;%2 0481,20%6,47R0,0047,1414,0 JOKKRARARKRRARARKRKAAN ; 2ND OP (MBUS) MEM ; WAIT AND WRITE ;RN KRRk Rk ko Rk j0meemmmmsemsmeec e o e — oo ; FPA MIMDR] FPA_WB_RILGPR.RI-0, ; PUSA,LOD INC BRA?Y NEXT/0S.WRT1 1ST OP (MBUS) 2ND OP (WB) REG ; GET DESTINATION ; 116739 FPAwAIT : STALL FOR FPA DONE WRITE NOTREG,SIZE[IDEPJ CCCP1, IRDY H ; SET CONDITION CODES EXIT 216741 ;12;2% <0 RIDST.RI.S1Z FPA, ; 116744 F1,ADDF3, MEM ;oORRAR ;16747 ; ;}?;28 It tatetatatebabeld bt bbbl bl , FPA MCMDR], ; PUSA,LOD INC BRA?, NEXT/0S,WRT1 ; WRITE rROM FPA KRR KRR Rk 2ND OP (MBUS) MEM GET DESTINATION E}d;g? F1.ADDF3.20; ; ENTRY FROM IRDROM ;16752 ;16753 s ; 219751 ] o J OOF?, VE82,003%6,413(,4DDA,40%F,9 ; 1ST OP (MBUS) 2ND OP (WB) REOG : WAIT AND WRITE ; ENTRY FROM IRDROM 116745 16746 i Q0E6, JORKRRRRARR R Ak kA Ak k& E}g;;g F1.ADDF2. 20: 116740 U 00pD, OFE82,0035,4130,4DDA,403F,9 FI, ApDF} REG: ;16732 16733 216754 216755 lesessmseomsmmmsesnecscsscmeme : FPAWAIT RCDST.RI.SI _ WRITE NOTREG.,S [JDEPJ, CCOP1, IRDY Page 400. : FPA INTERFACE ' : F1.ADDF2.REG/ . MEM,F1.ADDF3.REG/.MEM jeeemmessctmcsccescccsccacsconnas : ;16725 F1.ADDF2.MEM: U 035D, 0(81,2036,4030,0047,100D,D 3 M 15 ; ; STALL WRITE FOR FPA DONE FROM FPA SET CONDITION CODES EXIT (MI0GB, M X MICRO2 FLOAT MIC IM(Q1) 28-NOV-83 Floating point and (RC 16:30:35 1 N 15 CLOKX Rev 13,00, Clock rate = F1.ADDDZ.REG/.MEM ;16756 .10C "' floating point and (RC ;16757 .REGION/IRD1.R 1L, p1.R1H 116758 =0 +16759 F1,ADDDZ. REG ; :}2;2% H; 1ST HALF 2ND CP (WB) REG 216760 ;16751 . QOEC, 0C81,25B8C,003C,C047,3435,F 00 j0mmmmmmemmcecc e cccacc oo s : FPA MIMDR] FPA WB R[GPR.RI-0, ; PUSR,.NEXT/F1,ADDD2.100 ;16764 F1. ADDD? 20 H 116765 00 jlemvemacwscsesssnaws R LR Rl ;16766 FPAUAIT ; ;16767 RCDST, R] SIZ_FPA, : ;16768 [o8 SET MM.NOINT, K 116769 WRITE NOTREG,SIZELIDEP], ; ;%g;;; REG MODE?,NEXT/F].ADDD2.40 K 116770 QOED, 0A62,0036,493C,4DDA,w00F,2 (cor1, ; 116773 =0 ;}g;zg F1.,ADDD2.40: ¢ COF2, 0C80,0036,4030,0447,000F,3 VA_VA*4 216778 B Rttt it S bl Bl A Dl F; REDST. R*1J‘FPA, ; WRITE NOTRTG, : SIZELLONG],IRD1 ;; , ] , ;16780 _ 116781 QUF3, OF84,00%6,412F,45DA,603F,9 ;}g;g% ;16784 216785 116786 . . : X o Q35E, 0(81,2046,403%0,0047,100F,D _ A ;}g;gé _ CO%RF, QO8BQ,USBL,U0BF,CUL7,6800,1 397« F1,ADDD2.MEM: | N jemmmmmmmoemmmemesmmme——— ———— fPA_M[MDR], NEXT/F1, A0002 20 ; H 216789 F1.ADDDZ.100: 116790 ieeceemeses—eceme—ac- U $16791 116792 FPA_WB_RIGPR.R+11-0, RETORNT[+1]) Z2ND HALF 1ST 0P (MBUS) ENTRY FROM IRDROM STALL FOR FPA WRITE OUT 1ST HALF OF ANSWER NO INTERRUPTS ALLOWED SET CONDITION CODES REGISTER OR MEMORY DESTINATION ; BUMP UP VA FPAWAIT : ; " A X KK AR A AR N khkkkkhARA MEMORY SO BUMP UP VA :}2;;9 16779 J FI.ADDD2.REG/.MEM : Page 160ns STALL AGAIN FOR FPA WRITE SECOND HALF OF ANSWER END OF INSTRUCTION Ak ok k Ak W Z2ND HALF 2ND OP STALL AND WRITE FROM FPA SND HALF ¢2ND OP (WB) REG 401 28=NOV=83 and (RC ;16794 JGC ' B 16 A Y I IVR LA DA GUGE D : ' RS0 2] 222 RRER (222 Y IND HALF 1ST OP (MBUS) 1ST HALF ¢ND OP (WB) REG ;0 FPA w8 _RLGPR.R+1]1-0, ; SND HALF 2ND OF REG PUSA,LTOD INC BRA?, : GET DESTINATION FPAWALT ;. STALL FOR FPA SET MM.NOINT? ; NEXT/0S.WRT1 REDST.RY.S1Z_fFPA, WRITE NOTREG,SIZE[IDEP], CCOP1, REG MODE? NEXT/F,ADDD2.40 =0 F1.ADDD3. MEM : :: : :. :; WRITE OUT 1ST HALF OF ANSWER NO INTERRUPTS ALLOWED SET CONDITION (ODES REGISTER OR MEMORY DESTINATION (AR RS EEE R LRRARRARRRR D] ipa Mcmon) 2ND HALF 2ND 0P GET DESTINATION PUSA,LOD INC BRA?, NEXT/0S.WRT1 F1.,ADDD3.%0 e SR oo ~NO~ = OO R NON AL OO T NO AN L, uanl,cUs6,418L,U047,7414,0 [« RV b ol A A L OTpA, VAbe, DU56,495(,4DDA,400F 2 foNeNeNo XoNo s COFD, No XeNoNoNe Jo o To Yo To No Lo To o e vanl, UhhT, 018k 0047 60 14,0 307 W b A CO00OOCOOOCOCLUIOD ~ N~ ~ € 0o Co 0 Co 00 €0 00 00 03 00 00 €O CO T € & 00 o T URI PRI N O e b s e b —ab wd —b —2 = D OO [olelwlelels)] OO0 OO S S i P P T R e T T CE TR P I P b e b et e b b bt b b o b b b b ab s b i b ok et b b = et e ek et b cOOREL, F1.ADDD3.REG/.MEM Floating point and (RS 16795 FI.ADDD3.REG: 0aEY,258(,005(,(047,300F L Page C(Lokx Rev 13.00, Clock rate = 160ns F1.ADDD3,.REG/. MEM fPAWALT, R{DST.R]I.SIZ_FPA, SET MM NOINT Y ;16793 16:30:35 A M0 MioRQe Floating point WRITE NOTREG.SIZELIDEP), Copt, REG MODE? ,NEXT/F1,ADDDZ.40 P (MY098 M(x FLO TJMIC STALL FOR FPA WRITE OUT 1ST HALF Of ANSWER NO INTERRUPTS ALLOWED SET CONDITION CODES REGISTER OR MEMORY DESTINATION 40¢ ? K t (MTO98. M(x FLOAT MIC MICROZ TM(CD) 28~NOV=83 16:30:35 Floating point and (RC l ¢ c 16 ;16828 .10C ' Floating point and CR( F1.CMPF.REG/.MEM,FI.CMPD.REG “U-*C)#DOD\M}\"J\UMNJ—flChOCD‘dOMhJ‘LMNhACD OO 000 0o Mo 0 0o o 0o €O O G G0 G G0 Cn Co CoCo on CoCoCn AU S £ D 25 I D 05 3N B D N AN A WA LA AN b b eeh Bk b o b b b e [e Yo Yo No = NoXoNo Yo Yo Xo Yo oo Yo kol al il o0 "l 00 o T D o meh T T b O VOO1E7, 0280,0756,4130,1047,4U%F,9 e e d S v 01E6, ©L81,25B(,003(,C047,3435,F S b hu 0360, 0481,2036,4030,0047,101E,7 b 0368, 0C81,258L,003C,0047,301E,7 TR TR TR PR P 16829 REGIUN/JRD1 R1L,IRD1.RIH b ok ! F1.CMPF,REG: it H D el it bl et da e FPA_MLMDR) FPA WB_RIGPR.RI-0, 1ST OP (MBUS) 2ND OP (WB) :; (ONTINUE ON F1.CMPF. MEM: s—AeeecscEne R NN R 2 (AR R RS M NEXT/F1.CHPD.100= e Page CLOKX Rev 13,00, (lock rate = 160ns F1.CMPF.REG/.MEM,FI.CMPD.REG REG AAARAARN KRR ARRKNACR L SeRsnesSeTEEEeEe 2ND 0P MEM CONTINUE ON FPA_MMDR], NEXT/F1, CMPD, 100 =0 F1.CMPD.REG: iPA MIMDR] FPA WB RLGPR.RI=D, PUSR,NEXT/F1.ABDDZ,100 ; S R R RN AR I2Z2RREAER ZND HALF 1ST OP (MBUS) : 1ST HALF 2ND OP (WB) REG F1.CHPD.100: ------------------------- - wx CONX.S1Z, FPRWAIT,SIZECIDEP], WB_FPA,C(OP2, 1RDY H FORCE WX,NE.O FOR CCOP2 STALL FOR FPA SET (CS H END QF INSTRUCTION : : (NOT WBUS) 403 " ¢ FPA_MCMDR], - - - O LD ARRNR AR 1ST OP RN AN (CVTFD) ;; 2ND HALF OP (CVTDF) ' GET DESTINATION p LOD”INC BRA?, NEXT/0S.WRT1 : ENTRY THROUGH [RDROM (CVTDF) FI.CVIDF.10: O A I NN - FPAWALT RIDST.RI _FPa, : STALL FOR FPA ; WRITE OUT ANSWER SET MM.NOINT. NEXT/F1,CVIDFD,50 :; NO INTERRUPTS :; GET THE CCS FROM FPA WRITE NOYREG,SIZE[IiDER], ; =0 FI.CVIFD.10: J e 6 S e e O ENTRY THROUGH IRDROM (CVTFD) R SET MM,NOIN PUSH,NEXT/F ; NO INTERRUPTS ALLOWED : WRITE SECOND HALF WRITE NOTRE F1.CVIDFD,50: ------- 4 W O Y FPAWAIT, - o WAIT FOR (CS FROM FPA WRITE THEM OuT CC_EPA, crsina O LN IS fPAWAIT . ; STALL FOR FPA ; WRITE OUT 1ST HALF OF ANSWER = OO W NN - N — O DO > " RIDST.RI FP PO = O DO Peye e ; F1.CVIDFD: Page FI,CVTDF,F1.CVIFD : 10 " FloatinE point and CR( REGION/IRD1.RIL,IRDT.R1H = OO 00 €000 0 o Co Co Co o o G 00 00 09 00 0 Co G Co G CO €O 00 00 OO O OO GO0 Co 0o 0o OO OO O NVTLIVTUALLY N O DO D000 COCO00 00 CO N NN N NN NN N OO T b md b ok md md T kb C684,0036,404F,45DA,4000,1 o t01F3, < 20 00 Co 00 00 2 G 00 00 O 06480,U036,4030,0447,001F,3 P U1F2, b b 01ED, 0280,0036,4130,00A7,503F,9 L U b b b b Q1EC, O0E64,0036,493(,45DA,441F,2 b v b S b b ah e e 0E64,0036,403C,45DA,401E,D b b Q36F, D T b P h b d S h h b YA TETE FE TR PP d b b e PR PR TR T 2 s D Yo SoNo Yo oo e NeNoNe o SoNo Yo No No Yo NoNoNeo No Yo Jo ToJa ool oalodoaloalelenle sl ool enloalvas s -~ == — — 0o .. 036D, 0081,2036,4180,0047,1014,0 U D 16 16:30:35 CLOKX Rev 13,00, (lock rate = 160ns + FI,CVIDF,FI.CVTFD 28-NOV-83 Mo floating point and CRC MICROZ VA_VA+4 ; BUMP VA 1RB1 END OF INSTRUCTION =0 NOT REG MODE USRS SRV FPAWALIT, ; WRJTE NOTREG,SIZELLONGI, : RIDST,R+1] _FPA, RETURN [+1] STALL LL FOR FPA AGAIN H WRITE BITS 32-63 ; 404 e [ e 2 et e CMTO98.MCX FLOAT MIC MICRCZ 1M(Q1) Floating point 28-NOV~83 16: 30 35 and CRC 6 Floating point and CRC 216896 LREGION/IRDT,R1L IRD1.R1H ;16895 LT0C ' 00F4, 0480,0036,41B80,0047,0410,0 :16902 ;16903 116904 16905 v 00F5, 0481,2036,4180,0047,1414,0 Q0F6, V4B5,B8592,4932,8047,0453,E ;16906 0085,6036,4930,4047,0020,2 :}gg}% PUSH,NEXTZF I, EMODF, 300 116917 ;16918 0202, 0885.,8592,4030,4047,0579,6 116924 ;16925 0203, 0L81,D5BE,45F2,84A7,0020,C 116926 16927 116928 116929 ;16930 ettt eteteteiatutntttadebdadedtodededobe it : ;; REG _MODE? i: ] 0200, UA6U,0US0,4U20,0508,40%6,F 020F, 0E&4,0036,402(,00467,4036,F R[TEMP1J MLVA], ; VA RNUM RCT ; PUSH,NEXT/MM,PRB.WRITE.S12.00 REGINT(FLAG e 216931 WRITE, 16933 NEXT/F1.EMODF.150 ;16936 16937 ;16938 FRAWAIT 216932 ;16934 : 16935 ;16939 e WB_FPA, SET MM.NOINT,SIZECLONG], —— : NOW HAVE FRACT.WF ALSO ; RIGPR.RJ FPA, SET MM, NDINT.S]Z2ECLONG], IF NOT MUST PROBE MEMORY MUST PROBE SAVE VA INS EAD RET +1 IF 0. &Y REG MODE OR OKAY RESTORE POINTERS FOR INT.WL FLAG FOR REGMODE fOR INT.WL STALL FOR FPA WRITE TO MEMORY NO INTERRUPTS ¢ CONTINUE WITH FRA(T.WF 1u ------------------------------ NEXT/F ] EMODF.150 INT.WL H WAS IT REGISTER NEXT/F I.EMODF. 100 ;04 mem GET CHECK [N MAIN FLOWS R[TEMP1] RNUM FPAWAIT, WRITE OP3 MULD.RF SAVE ADDRESS OF INT.WL WAS IT IN REGISTER REG MODE?7 216919 =0 ;16920 F1.EMODF.100: 116921 116922 116923 RS SRR RN R LAASRSRS LODTMINC BRA?, R[TENP10] _Mtval, 116916 ; ;0] mmmmmmmm e ——————— FPA_MMDR], 1 " ; ;16910 J1691 F1.EMODF : GET THIRD OP PUSH,NEXT/0S.RED PUSH,NEXT/0S WRT1 16914 ;16915 Q0F7, LOD INC BRA?, 216907 ;16908 216909 ; , ;16897 ;16898 =00 116899 FILEMODF: 216900 216901 Page (LOKX Rev 13.00, (lock rate = 160ns .EMODF WRITE TO REGISTER STALL FOR FPA TO REGISTER 405 . : 16:30:35 28-NOV-B3 MICROZ TM@QT) Floating point and CRC (MT098.MCX FLOAT MIC U 036F, 0(81,D5BE,48F0,44A7,0021,2 | | ;16940 F1,EMODF.150: ;16941 VA_RNUM_RCTEMP1], 116942 IR<5>? ;16943 + 16944 116945 I——— ~emena S ;16946 FPAWAIT 16947 116948 v 0212, 0E84,0036,413C,4DDA,403F,9 o U 0213, U284,0036,493C,4DDA,400F,2 (LOKX Rev 13.00, Clock rate = 160ns F1.EMODF B i F 16 116949 ;16950 ;16951 116952 116953 ;16954 116955 116956 :16957 0 e e B e B g g o A s GET READY TO WRITF FRACT.WX WAS IT EMODF OR EMODD EMODF RCDST.R] FPA, WAIT FOR FPA WRITE OQUT FRACT,WF CCOPT, IRDI DONE AT LAST WRITE NOTREG,SIZECIDEP], : EMODD ; STALL FOR FPA ; WRITE OUT 1ST RALF lommmmmmeneaseeanemen———u—————— ; FPAWAIT REDST.RI FPA, WRITE NOTREG.SIZECIDEP], CCOP1,REG MODE? NEXT/F1.ADDD2.4 . i GO WRITE 2ND HALF v * ¢ AND END Page 406 ' p ot : H CMT098.MCX FLOAT . MIC 28-NOV-83 MICRO2 1M(Q1) and (RC point Floating 16:30:75 ¢ G 16 CLOKX Rev 13.00, Clock rate = 160ns :16958 JJoc ' Flo atinEpoint and CRC ;16959 REGION/IR 1.R1L,IRDT.R1H 116960 116961 =00 ;16962 FI.EMODD: ,16963 I U 00F8, 0(80,0036,4180,0C47,0418,0 U 00F9, 0481,2036,4130,0047,1414,0 116964 116965 ;16966 $ 16967 116968 : 16969 ,}gg;? ;16972 ;16973 U Q0FA, 0485,8592,6932,8047,0453,E U Q0FB., 0085,6036,4930,4047,0020,2 116974 116975 ;16976 116977 ;16978 ;16979 116980 Page F1.EMODD LOD INC BRA?, PUSH,NEXT/0OS.FIDRED F1.EMODD ' i * GET MULD.RD : ) e dntniintielen it teteblkiaddtdey : FPA_M[MDR], : WRITE BITS 32-63 OF MULD.RD PUSR,LOD INC BRA?, NEXT/0S.WRT1 F[TEMP10] M[VAE : GET INT.WL : . SAVE VA REG MODE?; ; ;; CHECK ]F [TEMP1J LRNUM, :; . 100 I .EMODF NEXT/F ;; SAVE FRACT.WD IF RNUM IS IT JOIN COMMON FLOWS TO END PUSH,NEXT/F 1.EMODF. 300 REG HODE? : REG MODE GET FRACT.WD 407 ; (MT098.MCX FLOAT. MIC MICROZ2 1M(Q1) 28-NOV-83 16: 30 35 Floating point and CRC ;16981 .70C ' H 16 CLOKX Rev 13.00, Clock rate = 160ns Floating pnint and CRC 0eee, 0886, 203A,4030,8047,0422,C 116986 0223, 0180,4C13,8A70,F847,0010,C 116990 ;;ggg} otnc, 0C82,0e7D,0B841,04E7,0023,8 407+ 010D, 0080,0036,4030,0047,00FF,8 01DF, 0484,0587,0034,4047,0063,0 0238, 0880,0036,4020,0650,0423,A 0239, 0080,0036,4020,0450,0023,A e e RLTEMP4].S12_RB-1, ;16996 SIGND CMP?, ;}288; 023A, 0809,2036,4020,0450,1037,A L LI RET 15 +3 DEGREE >31 FAULT NEXT/IE OPER.FAULY ;17002 =N ;17003 ;17004 ;17005 ;172006 =000 1l cmncvcnca e camae —-——— 17012 :17013 START CLEAN UP RER1] NEXT/FI POLYF,20 17007 F1.POLYF.30: 117008 . 000=mmesmmsmsmssmmmmeem e :17009 READ,VA VA+4,S1ZELLONG], :%;8%9 PUSH,NERT/F1.POLYFD,RW3.5 GO YO END UP . ;00 em e ncra———— ———————— READ, VA VA+4, :};8}2 sI1ZEELORG) F1.POLYFD,.RW3,5: 010 ---------------------------- 0K ZERC MDR FOR DEG =0 ;Q1semmesmmmacmcscamemes ~mmm==—— :%;88? DEGREE DECREMENT DEGREE SIZE[BYTEJ MDR_O, DEGREE READ 1ST COEF DG TRANS TO FPA GET ANS (RET+3) DEGREE = 1 READ COEF AND FALL THROUGH TO FINISH 17018 FPA MIMDR] ,READ, VA_VA+4, DEGREE =0 ANS 1S LAST COEF SEND O TO NEGATE ARG IF DEG =0 ;};85? NEXT/F]. POLYFD.RW4 TRANS ;01 1=mmememcemccn - ————— RET +3 FROM DEG>1 SAVE ARG IN REG DO FPD SET uP ;17019 SIZECLONG),CLEAR READ(FLAGYD), :17022 . 0238, 0084,2592,6034,4047,047F ,C . PUSH, NEXT/F1.POLYF.30 16999 ;17017 DEGREE > 71 TEST leeesesccccccccccccncococcncnas wB _MCTYEMP4 ] ANDNOT, ZLITOCF], ;16993 =00 ;16994 ;17016 SAVE ARG IN TEMP TILL 1ST PP READY DEG TO TEMP GET ADD WXTNE.O? ;16995 :17023 117024 :17025 ;};859 RCR1) MCTEMP2), PUSH,NEXT/F} OLVFD.SET . TO FPA GET ANS RET +3 TO PREVIOUS PUSH ;17028 FI.POLYF.S0: 112009 ;17030 :100=mmmmmm e —— e~m———— R[R2]).S1Z_RB-1, DECREMENT DEG COUNT ;1703§ CLEAR FPA(FLAGQ), CLEAR FPA FAULT FLAG ;};8§g NEXT/F1.POLYF,70 ;17031 025¢, 0C02,0E7D,0804,8047,081E,8 410 SIZEIBYTETY, ;1703 COUNT QR 11 U j0=emmemmemecemmomccsccmeceonee PUSH,NEXY/F1.POLYFD.10 200 " AR A& R AR A ARRN AHARRRA M[TEMPZJ Q, :}gggg 116989 F1.POLYF . . .16982 .REGION/IRD1.R1L,IRD1.R1H ;16983 =0 ;16984 F1.POLYF: :16985 0 Page +POLYF INT T]MER?, 408- O NN DN = OO0 I 1 16 16:30:35 CLOKX Rev 13.00. Clock rate = 160ns ¢ F1,POLYF =00 F1.POLYF, 70 - - o - - - READ VA VAt4, LOOP >=0 NO INT GET NEXT COEF s1zefLORG], PUSH, NEX-/F] POLYFD.RW4 $0) = INTPEND OR m o m e aaa e TIMER?,PUSH, NEXT/IE.SERV.IP.TS2 s LOOP >=0 INT OR TIMER CHECK WH]CH RET =1 IF TIMER ONLY O S D I I D00 NN LSS NN D D b e b ANNVAT DS DD O NI IANND = O AN T d b o 01eH, 0C02,067D,0B04,8047,081E,8 410+ L b b N b 0484,0587,0034,4047,0063,0 e 01EA, b e TR T e Q1E9, 0480,0036,4AF0,0067,04F7,0 NN N SN N SN N N SN SN TN SN N N NI NI NI NN ODOQOOOOOOOOOCODOOOOOCO T R b b L D R b Q1EB, 0880,0036,4020,0450,0437,A b e P MICROZ2 1M(01) 28-NOV-83 Floating point and CRC mh (MT098.MCX FLOAT.MIC LOOP <0 DONE L RCR1]_0, NEXT/F1.POLYF.20 FINISH UP MAIN FLOWS R[R?] S1Z_RB-1, RET +3 FROM FPA TRANS GET ANS DECREMENT DEG COUNT CLEAR FPATFLAGO), CLEAR FPA FAULT FLAG SIZELBYTE], COUNT OR INT TIMER?, NEXT/F[.POLYF.70 Page 409 i - = Sevemevaean R RN KA - OO VIN COCOCDOOCCR TM NSNS OO AN = OO S W= O O O NS NN = O OO NN = O OO NN e ek b TN SN N SN SN SN SN SN SN SN TN SN TN SN SN N SN T N SN N TN N N SN N N N SN N SN S NN TR TR T d b i SN N TN S S TSN SN F WA N = OO0 O (S UZEC, CAUG,DU%6,40A4,0847,4000,3 OO0 OO0 OO OO0V < 0641,2036,4030,0047,107¢,C S U 0379, ($248,0036,4020,0450,0023,A b coh b > b mh b b h b b e Q681,2036,4030,0047,1037,9 e U 0377, P S I D D ed d b b T U 07E6, 0009,2036,4020,0450,1037,7 2 O0000O COOOOOOOOOOOCOOOOOOOOOOOOOOOLROODOOOC I I [ PR PEPETE PR TR TR PR 0C81,2002,408D,84A7,0000,1 TR J 022D, D b ad b od ek J 022C, 0C85,259€,4191,0047,0412,0 b D b D D b D b b D b e TR TR TR 217057 .T0C ' R R & FI.POLYD SUBROU TINES Floating point and CRC AR AR AR Page CLOKX Rey 13,00, Clo ck rate = 160ns F1.POLYF : kAR R RN RN NN R R RN RN : R AR AR 410" FI1.POLYF & FI.POLYD SUBROUTINES R AR Rk kA h kb ek F1.POLYF AND FI.POLYD SUBROUTINES RN N KRR Rk kAR R AR AR AR AR AR AR AR AR R R AR AN AAN KA AN AN AN LR AN A AR AR AR RNk .8EGION/]RD1.R1L.IRD1.R1H ;; ENTRY FROM IRDROM POLYD FPA RETEMP4]_ZEXT(M[MDR1), ;; ZERQO _EXTEND DEGREE PUSH,NEXT70S.ADD : F1.POLYFD,10: SIZECWORDI,LOD INC BRA?, VA mtwory, : GET TBL ADDR ; PUT ADDRESS IN VA f REE UP MDR RETURN [+1] H RETURN TO CAL LING INSTRUCTION Q7E6: F1,POLYFD.RWI: FLAGO AND FLAC1 ARE CLEAR UPON ENTRY WRITE 0-31 FIRST COEF ; READ 3¢-63 FIRST COEF sunaxnaaexFORCE ADDRESS**xsnnaws; FPA_MCMDR],CLEAR READ(FLAG1), READ,VA_VA+4,S1ZECLONG) F1.POLYFD.RW?: FPA_MCMDR] ; SEND TO FPA 32-63 READ,VA_VA+4,S12€[LONG], : NEXT/F I .POLYFD.RW3.5 :: ; GET 2ND COEF SET 2ND HALF READ FLAG : SEND 2ND HALF WRITE F1.POLYFD.RW3: FPAWAITTSET READ(FLAGY)| F1.POLYFD.RW4: FPA_MIMDR], FPARAIT,SET FPA(FLAGO) 07¢ec: sakananu s dFORCE COEF OR COEF [F HALF PART PRODUCT SIGNAL ANY FAULTS FOUND BY FPA POLYF ADDRESSwawtwwnnn FPAWAIT, RIRO)_FPA,SIZELLONG] CCOP1TCLEAR FRA(FLAGO), RETURN [+3] ; STALL FOR FPA OQUT 1ST OR_PART PRODUCT IF POLYF RETURN TO CALLING ROUTINE | FLOAT.MI(C J 16 PP ; 16:30:35 LY (MT098.MCX ; MO MICROZ ) 28-NOV~-83 Floating pecint and CRC : CMTO98.MCX : MICROZ FLOAT.MIC 1M(Q1) floating point and ; ; : ] 2 0/FC, 0880,0036,48F0,0047,0423,E u C7FD, 0885,B592,4034,0047,006D,5 (R( 16:30:35 : K 16 CLOKX Rev 13.00, Clock rate = 160ns Fl.POLYF & FI1.POLYD SUBROUTINES F1.POLYFD,SET: J0xwsxxnexfORCE ADDRESS**sxwxawxw, PUSH, IR<5>?, H NEXT/F1.POLYFD,OFF O7FD: ; GET FPDOFFSET SET : ;1xxxxxxxxFORCE ADDRESS***txxsnx; RCR3] _M[VA], NEXT/F1.PCDELTA FI.POLYFD.OFF: J 023, OD86,CL37,0080,6047,0000,1 ; SAVE VA ; R2 AND FPD SET RETURN TO CALLING RIN D MLFPDOFFSETI_ZLITOC12.], RETURN [+1] : FOR POLYF : : F1.POLYD.OFF: ‘ . , 1 023F, 0986,0(37,00B0,6847,0000,1 b e = : 411 . 1 =0 FI.POLYF.OFF: _ Page 07FC: ; ; . 28-NOV=83 I Do: MLFPDOFFSETI_ZLITOL13.], : RETURN [+1] ; FOR POLYD : , L 16 Page CLOKX Rey 13,0 0, Ct ock rate = 160ns FI.POLYF & F1.POLYD FPD § AVE ROUTINES Floating point 412 FI.POLYF & FI.POLYD FPD SAVE ROUTINE- and CRC ;*t*ttttfi*k*k*t**R*ttk*ktkfikk**t****'fllifl***********i**i***iii*ifi**ii*ii**t***t i ! POLYF AND POLYD FIRST . PART DONE Initial ’ THIS . INTERFACE | i i . Pack up routines ’ R OUTINES FOR FPA instructi on at FPDOFFSET #12 for POLYF at FPDOFFSET #13 for POLYD THAT APPEARS IS CODE [N IANDE IN FPDOFFSET #12 FOR IN FPDOFFSET #13 FOR ’ ¢ POLYF POLYD ’ ;F1.POLYF.FPD.SAVE: . ’ ’ . . . RLR21.51Z_RB+1, SIZELBYTETD, FPA(FLAGO)?, NEXT/F1.POLYF.FPD.10 INCREMENT ITERATION COUNT FAULT DETECTED BY FPA? CONTINUE ON . ;F1.POLYD.FPD.SAVE: v . . . . . 3 . . S s e e e o S G O ey O INCREMENT [TERATION COUNT RCR2].S1Z_RB+1, ;; READ(FLAG]) FPA(FLAGOY?, NEXT/F1.POLYL.FPD.10 ;; FAULT DETECTED BY FPA? ;; CONTINUE ON SIZELBYTE], ; SECOND HALF READ OR . sk ] kA hh kAR AA Rk bk kR k kR Ak kR Ak =0 F1.POLYF.FPD,10: {Qmmtmmsmmmmmenas meemaaa- RCR31_MLVAD, : ke ek : VA MCVAI-2L1T0C4], : DECREMENT VA =00 FI.POLYD.FPD FLAGS CLEAR T SAVE VA NEXT/TE .PACK.DONE g e oW ok e e e ek o THATS ALL FOR NOW ALL RERZ1 MLVAI, oy el Wl : FINISH uP 10: -y 2t e SAVE VA NEXT/TE.PACK.DONE NEXT/E1.POLYF,FPD.10 de ol ; By P VA_MLVAJ-ZL1TOL8], NERT/F].POLYD,.FPD.10 e St T oy WO VD O oy my § 5 10==s=mmmmnmmmannnnns mememmee; VA_MLVA1-IL1TO(4], NEXT/F1.POLYD.FPD,i0 FAULT DETECTED BY FPA BUMP ADDRESS BACK SECCND HALF READ FAULY : BUMP ADDRESS BACK ; (Mmmmecenn rmmmem e cmemmm—— - VA MCVA]-2L110(8], NERT/F1,POLYD,FPD,10 THATS ALL FOR NOW JMPOSSIBLE BUT DO SOMETHING ; BUMP ADDRESS BACK ; I i JoC 16:30:35 L Y ‘dcr::;Sczgj—flc>4300‘UC%\"J‘\NAJ-JCDQDCb‘vcb\hl\LMHJ—J<D<DOO‘UC%\WS\UJNJ—4<>{)OC‘JONMHJ\LNFU—HCDQDOO‘JCFMH£\ b D D D S ek 3 N N AT O N N PO RN N S ke D d D b e d e s D e D e Dk D NN VT VT T LTSS B I8 D5 8 D8 B BN 25 B (NN N e b e b e OO O O O O WA b D b b b ad i e md e o 2 e e U 01F7, 0981,8C10,0030,44A7,001F,4 b ok ek ek e 0581,8010,0030,260A7,001F ,4 b U 01F6, b e b b b 0981,RC10,0030,44A7 ,001F,4 R U 01F5, NNO OO LR A ) D AR Db e d LR IR S b b D e TR b b TR P b TE D b b TR b P b i T O b o D T T b o T kB D T 3 e b e 0085,8592,4034,0047 ,00FE,2 3 d s v O1F4, b b b wd b NN NS SN N N TN SN NN N SN SN N SN N SN U 024D. 0581,8010,0030,24A7,0024,( >} TR T B T b U 024C, 0U85,B592,4034,(047,00FEF,2 NN . MIC FLOAT )— H CMTO98. . M(X SN SN SN SN N N SN SN N N SN SN N TN SN NN SN SN N N TN TN N N NN N N NN H 28-NOV-83 MICROZ M0 ) Floating point and CRC IRy IIIIII111111"11IIII!.A'-I'IAIIIIIIIlvllllIllllllllllll!llllllllllII ks ) ) ) ) ) ) ) ) / ) ) ) ) ) ) ) ) ) i) ) ) ) ) ) ) ) ) ) ) ) ) n ) ) ) 1) i ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) LA IALAUN OO OO0 O 00O O 0 O ORI P A A AN A R M AN TS G0 0 S0 0 G0N 0D OV WOV OO IO OO OO ) ) ) ) u 037¢, 0886,158€ ,4034,4047,1037,D i FI.POLYF & FI.POLYD FPD RESTART ROUT| Floating point and CRC + ;fitttttttttttttittttt*ttfl***t************R****************i*i****i*tiiiiitiiti [ i FI.POLYF.FPD.RES F1.POLYD.FPD.RES ’ ' . » ’ . AR R R AR R AR R R R R R R AR R AR AR RN AR R R AR AR AR R R Rk ARk ke k & .RESJON/IRD1.R1L,IRD1.R1H I.POLYF.BBD.RES: :Pok k FPA MB MCTEMP1] RLR1], PUSR,NEXT/F1,POCYFD,RES.10 : kA kkkkh kv ke ko k GARBAGE WRITE GET ARG H RES ET POINTERS [R e L LT ; WRITE ARG GET PART PRODUCT FPA_MB MLTEMP1]_RCROJ, : PUSH,NEXT/F].POTYF.OFF H SET FPDOFFSET .0 8y ot O O D B O W FPA_MITEMP1], NEXT/F1.POLYF.50 SEND PART PRODUCT ; RETURN TO BUMP ITERATION COUNT 15 1001 mommmrounnnemnms s n e e na———— 214 g}g 217 g}g sgg i i FPD RESTART ROUTINES ’ . | i ‘ PUSA,NEXT/FI,POCYFD.RES.10 17224 ek e Page 413; FI.POLYF & F1.POLYD FPD RESTART ROUTINES ;; J17222 : 1 CLOKX Rev 13,00, Clock rate = 160ns 0 =0 AR AR RN 0& FI,POLYD.FPD.RES: ;PORAARRARAARAR 09 ;000=ms==nmmmmmm o ee e ; WRITE GARBAGE GET ARG BIT 0-31 10 FPA_MB MLTEMP1) R[R4J, ; 220 p17221 e 0880,1036,4030,3047,1037 ,E B 0¢ $17223 U 0370, T0C ' 16:30:35 .w b D b 2 e b b ocnd d d d od ol o3 b b b b ad TR PR PR PR FE TR T T AT P D d d b d it d D ) o amd e P 0486,158E,4034,0047,1037, ¢ b o u 0299, 0085,158F,4035,4047,1423,F e b (836,158E,4035,0047,1455,D g 3 h > e e U Uess, b D oh b o aad b b ad u 0242,. 0080,1036,4030,0047,1023,C N o T b e end b b D D b D id e e 0486 ,15BE,4034,0047,1423,E b J 0241, 0886, 15BE ,4034,4047,1455,D R R T T u 52490, OOV OO0 O OG0 003000000 Co00 LR 00000~ N O NI AN = O 000 NOMA IR 2 O 0 00 NON NS0 = O 0 QAT ,M1C b FL 1M(01) 28 ;?0V-83 floating point and ¢ M1CROZ AORINIRIND T INDOD D AN NININD =3 wed e My 098.MCx SN N TN SN N S N N S S S S SN IS S TN SN N SN TS S SN SN TN N N SN N N TN Y N TN N TN TN N TN N N N SN N N NI SN NN TN : N FPA MB MCTEMP1] R[R5], PUSH,NEXT/FI.POCYD.OFF :; RES ET POINTERS : : WRITE BITS 0-31 ARG GET BITS 32-63 SET FPDOFFSET ;010=mmmmmmmm e e ————— : WR] TE BITS 32-6 3 A R G FPrA_MB MLTEMP1]_RLRO] H GET PART PROD B IT S 0 3 1 T § 0-31 Jmm—-— e : WR! TE PART PROD?% 1 8 17 FPA_MB MCTEMP1]_RLR1] ; GET PART PROD BITS 3 2-63 P dvhooan Smemmmm——— momm——— ; FPA_ MITEMP1], NEXT/F1.POLYD, 71 : : WR1 T E PART PRODUCT B8 l 1 S 32-63 RET URN TO BUMI JTERATION A ) COUNT FIX ED, POST (MTO62 L. ; CMTOQB.m§? = ®ICROZ2 FLOAT. 1M(01) 28-NOV=-83 17227 .10C "' B 217230 1 A ;} 3 A 5 g o - u 0262, 0081,203%6,4030,0047,1037,7 v 0264, 0084,3592,4035,4047,0020,8 H BN DD BN DS B L CLEAR READ(FLAG1J, 17248 17252 217253 ;};ggg 217260 ;};ggé ;17265 s CLEAR FLAG1 FOR SECOND HALF READ ; WHAT IS DEGREE SIZE H 10lemmcnmccrnncnncmanananaanaa ==; DEGREE > 31 ;}7228 NEXT/IE.OPER,FAULT =11 P RS L e LA RER1]_FPA, NEXT/F1.POLYD.55 ; L et P ~ew~waw: RET +3 [F DEG =0,1 : WRITE BITS 32-63 OF ANSWER ¢ FINISH UP e nee READ,VA VA+4,S12ECLONG], e : DEGREE >1 H ; FINISH UP READ SEND TO FPA AND PUSH,NEXT/F],POLYFD,RW1 PR ee e T SET READ(FLAGT) L L READ.VA_VA*‘,SI?E[LONGJ. s GET FIRST PART OF ANSWER E L L e S ; DEGREE =1 : ; FINISH UP READ,SEND GET ANS :};Sgg NEXT/F1.POLYFD . RWI1 417268 117269 {010mmrmmmmmen e nancacne wsmumew==: DEGREE = ( FPA_M[MDR], ; SEND A 0 TO NEGATE ARG ;};g;? 17273 ) : OR TEMPO OR SHORT LIT PUSH,SIGND (MP?, NEXT/F ' ,POLYD.30 5 9 17272 U 0263, 0084,2592,4035,0047,047F,C IN TEMP1 A :} 17264 U (261, 0048,0036,4020,0450,007E,6 P BITS 32-63 OF ARG SAVED- N L e L L casemeeeeae=s DEGREE VALID RLTEMP4],SIZ RB=1, : DECREMENT FOR OTHER READ SIZELBYTE] ,MDR_0 ;. MDR O FOR DEG =0 (CASE 317263 » ' T L LT L L P BITS 0=31 CLEAR FLAGO,WX.NE.O? 217256 =000 212257 F1.POLYD.30: ;17258 1000~ == e m 17259 SET READ(FLAG), U 0260, 0848,0036,4020,0450,047E,6 F1.POLYD 117242 :17243 ;17251 u 0207, 0084,0036,4034,4047,4020,A Page ) ittt ittt ; WB_MLCTEMP4J.ANDNOV, ZLITOL1F], - ; DEGREE VALID 17244 v 0205, 0¢80,003%,4030,0047,00FF,8 T NEXT/FI.POLYD.150 217240 =00 ! 1 U 0204, 040A,0E7D,0841,04E7,0026,0 407« : RCTEMP3]_MCMDRY, PUSH, FLAG<T1=0>? S DN u 0253, 0900,4C13,8A70,F847,0020,4 Floating point and CRC .0 2 I U 0252, 0485,2592,4530,0047,0421,4 1 B B CLOKX Rev 13.00, Clock rate = 160ns FI.POLYD FI.POLYD: N N WA 13| : 1 8 .SEGIONJIRD1.R1L,IRD1.R1H 9 WA RO TO A : ‘ 16:30:35 Floating point and (RC ¢ 17274 :};S;g 217277 ;17278 :};sgg NEXT/F1.POLYFD,RW2 : s FINISH UP READ,SEND GET ANS 0l mmccmmmncnnannm—— ——— : RET+3 IF DEGREE > 1 RLR4A]_MLTEMP2],PUSH, NEXT/FI1,POLYFD,SET ; SAVE F]RST HALF OF ARG s SET FPD,GPRS (100=~=mcmemnccn e na e e s ———— : RCRS] _MLTEMP3) NEXTZFI.POLYD, 70 : SAVE BITS 32-63 OF ARG : START NEXT ROUND CMT098.MCX FLOAT . MIC i o MICROZ2 1M(01) 28-NOV-83 Floating point and (RC 217281 16:30: 35 : 1 CLOKX Rev 13.00, Clock rate = 160ns 1.POLYD =00 117282 FI1.POLYD. 50 117283 0208, 0A48,0036,4020,0450,0423,A 00=m=cmmmemcccammccccnacnenaa. ; LOOP > 0 NO INT OR TIMER 117284 READ . VA_VA+4 ,SIZECLONG], * GET 15T PART COEF ;};539 PUSH,NEXT/F1.POLYFD.RW3.5 Y CONTINUE ON 117285 FPAWAITTSET READ(FLAG1). 117288 0209, 0480,0036,4AF0,0047,04F7,0 10]mmmm e c “eeeummw ; LOOP > 0 INT OR TIMER 117289 PUSH, INTPEND OR TIMER?, ;};gg? NEXT/1E.SERV,IP,TS2 $17292 F1.POLYD, 55 i 020A, 0C84,0587,0035,0047,0070,F : 117293 L 117294 RLR4] ;};ggg e NEXT/FI.POLYD.ZZO Y RET =1 IF TIMER ONLY p ; LOOP < 0 DONE + ZERO OUT GPRS ; FINISH UP 117297 F1.POLYD, 70 0208, 0884,0036,4034,4047,4037,E 037¢, 0C0A,QE7D,0B04,8047,0820,8 410~ 117298 ;};ggg 1 illeceecmsececececececesnmnnnee= : RET +3 FROM LOOP > 0 READ R[R1J FPA : SAVE IT IN GPR 3};;85 FI1.POLYD.71: ; LABEL ADDED FOR CMT094 117303 ' DECREMENT ITERATION COUNT 117304 117305 ;};ggg RCR2].$1Z_RB-1,$iZELBYTED, CLEAR REAB(FLAG1), COUNT OR INT TIMER?, NEXT/F1,POLYD.50 ¢ CLEAR 2ND HALF READ FLAG : LOOP CUMPLETE OR T!MER TIME : GO SEE - Page = 415 ¢ Fl NOT REG OR LITERAL ARG BITS 0-31 IN T [N - o = [5 LOD INC NEXT/0S. — RCTEMP2) TM 0 1.POLYD,150: ;00 Y o T n W) = OO O NN B NN = O D0 AR = OO0 IO GET DEGREE RETURN TO FI POLYFD.10 THROUGH IRDROM RETEMP?J MLTEMPOZ, : REG NOT LITERAL ARG BITS 0-31 IN TEMPO NEXT/0S.RED ; THROUGH LoD INC BRA?, : GET DEGREE RETURN TO FI.POLYFD.10 ---------------------- LI Y T IRDROM LITERAL MODE R[TEMP?J MLTEMP3].FPLIT, ; UNPACK SHORT LITERAL NEXT/F1.POLYD.155 :: CLEAR FLAGT, :; CLEAR FLAG CONTINUE ON B s LITERAL MODE BUT IMPOSSIBLE RCTEMP21 MLTEMP3].FPLIT, : UNPACK SHORT LITERAL NEXT/F1.POLYD.155 ; CONTINUE ON CLEAR FLAGT, : CLEAR FLAG 0 RCTEMP31 CLEAR FLAGO, LOD INC BRA?, NEXT/0S.RED m.memen F1.POLYD.155: e LI D 2 D D NN LA AIPOTOU NI PONJNOTONONUN) = — 3 b D 3 b =3 b NN AL A N LA A (N A A AN AN N LA N N Gl AN U A U A AN A U NN N SN SN SN N TN S N SN SN SN SN SN SN SN SN SN N N SN SN SN N N N b e b et 037F, 0404,0587,0180,(047,0010,0 P < e 0217, 0C0C,3787,0030,8047,0037,f LA PR TR PR IR T ad e P D e b P P o e o i b b S 0216, 0€0C,3787,0030,8047,0037,F ) e TR T TR T 0215, 0884,0592,4180,8047,0010,0 D 0214, 0C84,1592,4180,8047,0010,0 ¢ OKX Rev 13.00, Clock rate = 160ns 16:30:35 -~ ) 1M(01) Floating point and (RC 1 - MICRO22 b B, h e FLOAT.MIC D o - . MCX CMT098 28=NOV=83 ZERO QUT SECOND HALF EETSgRE FLAG 1S CLEAR RET THRU IRDROM TO F1.POLYFD.10 Page 416 e CMT098.MCX FLOAT MIC MICROZ2 1M(0O1) 28=NOV=83 16:30:35 Floating point and CRC :};ggg .T0C 21?338 AR 17339 08 :};gfi? ; 17342 ; 173463 117344 R A CRC Input: 217345 ; 2173466 . 217347 ; ;17348 ; R AR AR MDR Temp? PC during instruction 217352 ; FPDOFFSET temporary for FPD index 317354 317355 . 212356 . PC Q used to prefetch source byte CRC after XOR with source byte during Tnner loop iteration 217358 ; 117359 ; 17360 ; Platch Stepcounter Tempéd tPD 217357 . Flagl 217361 217362 . 217363 ; 17364 RO R1 Re 317365 ; $17366 . 17367 ; 17376 J17377 (17378 ;};ggg : 217381 17382 17383 17384 :17385 217386 ;17387 117388 :17389 ; ; ; ; . 217390 ; ARER] . temporary for # bytes (string length) . for fault/interrupt differentiation GPRs during Instruction ; 217368 ; 217369 17370 ; 17371 7372 ;17373 ; 17374 :17375 417 tbl.ab temporary CRC ) table index calculation temporary table address 17353 Page e tbl.ab,initialcrc.rl,stream.rw,stream.ab [RO=R3.wl] TempQ, Temp? Temp? Temp3 ;};gg? : e : CRC'" A AR AR AL AL R AR AR AR ARALARAAAL A Resources: 17349 ; e o CLOKX Rev 13,00, Clock rate = 160ns floating point and CRC R e F 1 : (RC " e CRC table address byte 0-1 tength of string byte 2 P(delta if ever an FPD pack byte 3 (bit 31) set 1f table page fault stream address R3 Output: RO R1,R 6RC R3 stream address +1 . Subroutines: .. 0S.RED get initial crc 0S.ADD 1E.SERV.IP,TS2 get stream length get stream address , process interrupt or timer Operation: Start up . Get all operards S%. Set FPD S3. Set platch and FPDOFFSET to 3 S4. Save PC in temp? SS. Save stream address in R3 and PC Sé. Save length in R2 s7., If length is0 - done, Otherwise main processing | ! 1 i : P TE TR TETE M2. 13.00, Clock rate = 160ns Page 418| . . . pro cessing #bytes >0 and no interrupt or timer pending Get source byte from X8 CRC in RO and save in Q XOR hyte wit and in Temp0 Enter inner loop TR T M3, C R ner . if non zero Get bits 0-3 of CRC Multiply by 8 and use as index into table Get the long word table entry ¢ 2p proceessing T P XOR entry with (R( , , (which has been shifted the 4 bits right) Save (RC in RO P Y TR P Repeat a second time from [1, e O inter rupt/tault occurs ACK v T PP T P P T Pl R3 gets P( PC gets Temp? Clear R1 and [RD? Save PC in R3 (stream address) Restore P{ from Temp? Calculate PC delta from PC and PCBACK It page fault while readxng table T O N B (AN = O 000 IO UL B ino — CRC 1 CLOKX Rev n, P (flag 1 set) then set bic¢ 31 of R2 also save the value of the (R( in Q P A P T 2O 00 IO AN 2% AN — O O 08 s+ G Main effectively roll back to start of inner loop FPD.REST ART R1. Re. R3. Ré., Compute Pc value for Temp? from PCBACK and PCdelta set FFDOFFSET and Platch PC gets stream_address frcm R3 It bit 31 of R2 not set get stream byte again from XB and continue processin It bit 31 §?t then set Flagl clear bit Restore Q and Temp0 from RO set stepcounter to 2 and P B~ AR = O 000 IO LN 2TM LN 3 IO 16:30:35 continue at inner loop L A N N N N N S S o L ab P R o L o WXLV V(O WXV V] 0V OVVVOVOO0 AN A A N AU RONONO PO NDAUNUNY = = ek el 2 2 2 3 S O O OOCOODOOD DN N A LA D b d D e md b D D d d b d b D e e D D d b ek b h d SN S TN N N SN TN N SN SN N N TN TN N SN SN N TN SN N SN SN SN NI N SN N TN N SN N N S T N SN NN SN TN SN TN T NN S N N I O TR T TETE PR VPR P PR PR TR Y ot b ) oD D b b med D D o ok e} e ek dh d e FLOAT.MIC d . MILROZ2 1M(01) 28-NOV-83 Floating point and CRC L A T P i N CMT098.MCX (AR RZER RS RRRRR R ARl AR RAARARA R RERARERRRRARRARRRRRRRRARRRRRRR] ] CMTO98 . MCX FLOAT . MIC MICROZ 1M(01) 28~NOV~83 16:30:35 Floating point and (RC : H CRC o1 CLOKX Rev 13,00, Clock rate = 160ns ;17438 ,REGION/IRDX.R1L, IRDX.R1H/IRDX.R2L , IRDX.R2H ;17439 CR.CRC: 117440 0381, 0085,2592,41B0,C047,0010,0 ORRA jmmmmmemammeme——ea——n mmmmmmmaae KRR NA 117441 RCTEMP3] MIMDR], i ;};222 NEXT/0S . RED * RET THRU IRDROM TO CR.CRC.10 1176442 LOD INC BRA?, SAVE TABLE ADDRESS * GET INITIAL CRC 17445 =00 117446 CR.CRC.10: 117447 ;0Qumecmnnn—aue L LT EEER - 0224, 0085,2592,4180,4047,0410,0 0225, 0C85,259€,4191,0047,0412,0 117448 117449 117450 RCTEMP11_MCMDR], P. SH, LOD INC BRA?, : SAVE (RC ¢ GET SOURCE STREAM LENGTH : RETURN +1 117454 117455 RCTEMP4) ZEXT(MCMDR]), SIZECWORD], ZERO EXTEND THE # BYTES : ;};zgg PUSH,NEXT/0S.ADD ; RETURN +1 117451 NEXT/0S . RED 117456 LOD INC BRA?, 117459 0227, 0485,A592,4031,0047,0071,0 GET THE STREAM ADDRESS ;10vsmmmancncncaanaa cmmmmmwnnes; 117660 RCR1_MLTEMP3], * SAVE THE TABLE ADDRESS 117462 ;};zgz PUSH, NEXT/CR.SETPLOFF : 117461 0226, 04EC,3592,4034,4047,0471,9 ¢ SET FPD, 117465 T ;};zgg * FIRST PART DONE R L L L L: RCTEMP71_MIPC] i SET PLATCH AND FPDOFFSET SAVE THE PC E};zgg REGION/FLOAT,R1L ,FLOAT ,R1H/FLOAT ,R2L, FLOAT ,R2H/F LOAT .R3L ,FLOAT.R3H 0710, 0885,2592,403%4,€487,0072,0 E};g;g PC_RIRZI_MIMDR) 3};25% 0720: ;axwax«xxxFORCE ADDRESS**wwawwwx; 0720, 0D80,0¢37,0030,0047,0071,1 5};2;? tc_rod 0711, 0c84,1592,4024,1047,0071,2 117476 7477 ;};2;3 PR enetnns et RCROJ_MLTEMP1,51ZECLONG], CCOP2 (17480 0 joesseewsssssmeeseeceseccemeeee- : 0712, 0484,4592,4A74,8047,006D,F ;17481 ;};285 i RCR2I_MLTEMP4], WX.NE70? i STREAM ADDRESS .0 PC AND SAVE IT i CLEAR CONDTION CODES TO START. ———— : SAVE CRC AND : SET CONDITION CODES : SAVE STREAM LENGTH IN R2 : 117484 CR.DONE2: 17485 I 06DE, 0OEO,05BE,4031,C487,0071,4 1S THE LENGTH 0 e: YES, DONE CLEAR FPD, CLEAR THE FPD BIT 17486 bC_RLTEMP?I, : RESTORE THE PC 117488 NEXT/CR.DONE3 i JOIN COMMON END uP 11748 : Page - 419 ! H ; MICROZ2 CMT098.MCX 1 I 16:30:3SCRC CLOKX Rev 13,00, Clock rate = 160ns 28~NOV~83 1M(OD) Floating point and CRC FLOAT.MIC U 06DF, 000A,QE7D,0B24,8047,0866,4 410% ;17489 CR,CONT: $17490 117601 17492 217493 R OCESSING LOOP E NT # BYTES E FLAG IS CLEAR IF FAULT OR DONE AND/OR INTERRUPT/TIMER :};?gg . Page 4 176496 =00 ;176497 CR,CONT1: U 0664, 0CB5,759E,4000,2047,0071,5 U 0665, 0480,0036,4AF0,0047,04F7,0 U 0666, O4LES,A592,4034,0047,0071,3 U 0713, 0484,05B87,0034,8047,00060D,E 117498 117499 :%;gg? 217502 17503 ;};ggg 17506 ;17507 :17508 217509 = $1751C 1751 ;};g}g LOOP >=0 NO INTERRUPT OR TIMER : 00 * PREFETCH SOURCE BYTE RCTEMPOI_ZEXT(XB) PC_PC+1, NEXT/CR,CTONT? : Jonemoannn———n——— cevaceumn —— ; INTPEND OR TIMER?, : IF ONLY TIMER RETURN =1 : MORE PROCESSING PUSH,NEXT/1E . SERV.IP,TS2 e e e e W 9 . RLR3I_MLPCI, : CLEARTFPD ; ker21.0. LOOP >=0 BUT INTERRUPT OR TIMER LOOP <0 DONE SAVE STREAM ADDRESS CLEAR THE FPD BIT T 2ERO OUT THE GPR NEXT/TR.DONE?2 : :17514 CR,DONE3: ;17515 U 0714, 0084,0587,0134,4047,003F,9 ZERC OUT OTHER TEMP : END OF INSTRUCTION 117516 ;%;g}g 217519 CR,CONT2: ----- XOR CRC_AND SOURCE BYTE SET INNER LOOP CONTROL TO 2 :};gg% ) U 066A, 0885,2003%,4330,0047,00606,8 I L 17539 ;17560 217541 217542 = , P SET FLAGT, WX.NE.O?, H : PUSH,NEXT/CR.GETTBL H H O ; DEk 4 BITS OR LATER USE SEOOF READ TABLE FAULT w RCTEMP2]_MLTEMPO].NIBBLE, MDR_V, _—y W ——t >0 @9 B O O O ABLE PROCESSING £ CRC HE CONDITION CODES TERATION Ty A 2t et e VNG e ommmm 8 CE A -rs ;17538 2 -t T 3 117536 ;17537 - X~ —O ) 0669, 0884,0592,64024,1047,006D,F 1 MDD =t 117533 117534 ;17538 - mi~mz $17530 217531 :17532 :0 - ZM i U 0668, 084C,03F7,0A70,84E7,0466,C :1?529 1782 ;17528 ;1?5%9 —~Om ;17554 =00 317525 CR,INNER: w0 U 0715, 04A6,0903,5034,0047,0066,8 :17520 217521 OM GETTBL ND THE TABLE ENTRY ER 0? 420 M) 28-NOV~-83 0884,002¢,7034,0047,0062,0 16:30:35 CRC 1 Page CLOK.* Rev 13.00, Clock rate = 160ns : VTSI LA I NN LN S S B VT IV B B o s + J UTU T ONCM NN LT I I IU VTV Y OO OO OS O OO NN NN N U LN Vivawauviuiwun LA {00=m=mmmmm e m e ————————————— ; INDEX MAY BE 0 RETEMPO]_(MCMDR] RB).RR.4, RETURN [+2) (0 mmm ” ) e s e ; SHIFT THE CRC RIGHT 4 BITS e- Y MULT INDEX * ADD TO TABLE ADDRESS AND * STORE IN VA NOW SHIFT CRC VA_RCR11+(MCTEMP2].ASL.P), PUBH, NEXT7CR.GETTBL (1l mm——— cnccacumnnsununnannnwes; RET +2 FROM SHIFT CRC READ * READ TABLE ENTRY S12EELONG) RETURN [+23 * INTO MDR * RETURN TO INNER LOOP ;wwuxuwvwxFORCE ADDRESStwwwuntus,; 0719: F. TPLOF CR.SE MLFPDOFFSETI_ZLITOL3) ' SET FPDOFFSET PL_t23, : SET PLATCH FOR THE INDEX SHIFT RETURN [ +1] ; THIS INSTRUCTION AT FPDOFFSET #3 FOR CRC : RCR3I_MIPCI, : * SAVE THE STREAM ADDRESS NEXT/TR, CRC . SAVE CR,CRC.SAVE: - PC_RCTEMP?],CLEAR FLAG TM UIRTUT LT U ST WAL T e ok e Ch\fi‘*h~fl)—‘<)1)°0‘UCFL"S‘LM“J-‘CDMDCD‘UCFNHS\UQHJ—d<>MDO°‘UC>\hS\UflflJ-fl<3430°‘dc>\nS\UHNJ—*C><DO°‘4CF\nJ\LN 0714, b el e 0622, 0D86,7D52,4030,4047,0071,A b 3 oD b 0620, 0084,73BE,4014,8047 ,00FE,2 VIV 0€85,9003,05F1,(047,0062,0 b d ok o 0718, S S N 0717, 0818,058E,4031,0487,0071,8 ek D d d B b e I O N D v T i T o T N R b h e T 0716, 0180,0EF6,4080,1047,0000,1 PR T R P 0719, 0D86,CC37,0030,1847,0071,6 T P b e ed D b D b e IR 066F, 0C80,0036.40A0,0050,0000,2 SNETN N N NN NN NS N N TN TN TN N TN N NN NN NN NN NN N TN TN N N N TN TN N N TN N SN SN N N SN N N T P T T D d b b B b b D 066D, 0C80,2A7D,0034,44A7,0466,C 0000 CO 00 17 117 17 00 OO0 3}; LA IS 066C, 0C85,2277,0080,004/,0000,2 AL OO 0 OO O O 17 ;17 AL Floating point and CRC I FLOAT,MIC MICROZ L - CMT098.1MCX RESTORE ------------------- - - PC CLEAR FLAG3 - IE.PACK.DONE - - ¢ CALCULATE PC DELTA Tg?J_RB-M[PCBACKJo ; WAS THIS TABLE READ FAULT =0 CR.CRC.SAVE.10: * - RCR2)_RB.OR.(MCTEMP?].RR.S12), SIZECQORD], NO MERGE PC DELTA AND BYTE COUNTY NEXT/IE.PACK.DONE (B R LT R R L T —mam-- ACTEMP?]_MB.OR.ZLIT12[83 L L L LR RCROJ @ Q. D, T NEXT/TR,CRC.SAVE.10 T T YES TABLE READ FAULT SET THE BiT 31 YR LY FOR XY SAVE Q CLOBBERS !T D IS GARBAGE RESTARY 421 : CMT098.MCX CHAR.MIC MICRO2 1M(01) Character String 28-NOV-83 :SSS;? .T0C ;22276 122277 122278 122279 ;22280 ;22281 16:30:35 " Character String ; Mov(3 : : OUTPUT LA : ;22284 ;22285 : ; ;22286 122287 ;22288 122289 :22290 0 SOURCE ADDRESS ; R3 DESTINATION ADDRESS R? DELTA PC'O(8BITS'24BITS) : RESOURCES ;22295 : SUBROUTINES ;22297 ;22298 R R R R 122299 ;22300 ;22301 ;22302 ;22303 :22304 ;22305 : : ; ; : (RO-R0O) (C SET : : 1(ROTATED LEFT BY 8) TEMP6 ;55582 FPD SET TEMPG FOR SAVING DELTA PC CS.EXP.FILLER EXPANDS TEMP5 (S.R2.GETS.DELPC.R2 L AL R LR A MovCS T R OUTPUT ; ' " VA : ' o ' ' PC TEMP2 ; 122296 ' R1 : R2_DELTA PC'R2 e L A L L AR L AL SOURCE ADDRESS ' ' ' ' ;22309 K TEMP3 DESTINATION LENGYH ;2231 ;22312 : ; MTEMP10 R3 SRC LGYH -~ DST LGTH DESTINATION ADDRESS 122316 ; (C SET ;22313 ;22314 122315 ;22317 : VA R2 TEMPG ;22321 ;22322 ; ; i FILL (EXPANDED) | SET(FOR CMPC5 AND MOVC5) ! ' ' DELTA PC'O(BBITS'24B17S) 1(ROTATED LEFT BY 8) ; i FPD SET (TEMP10_RO-TMP3) ; RESOURCES TEMP6 FOR SAVING DELTA PC , SUBROUTINES (S.EXP.FILLER EXPANDS TEMPS (S.R2.GETS.DELPC.R2 R2_DELTA PC'R2 ; ; ;22323 FLAGI ; : ; 122318 ;55%;8 TEMPS AL LA A AR A LR A R1 PC TEMP2 122310 R MIN(SRC LGTH,DEST LGTH) ' [N) " [N] H ; : i RO 0 D ;22306 122307 122308 ! e A A LA LA SR L AR Sl AR : . ; ' TEMP1 ; 540 LENGTH . RO D ;22291 122292 Page : Operand fetch and Initialization'' | T e L H ; . CLOKX Rey 13,00, Clock rate = 160ns : Operand fetch and Initialization 122282 ;22283 L 10 IRAREEARAEALAT AR ALEAAARARAR RS AR RS AR AR AR AL L ARAR AL AL AL E AL f - S S ; i i {MT098 . M(X CHAR . MIC MICRO2 1M(01) Character String 28=NOV~83 " ;24380 R ;26382 H 124383 26384 N 14 ¢ MATCHC :Szggg .T0C ;24381 | 16:30:35 e ; CLOKX Rev 13.00, Clock rate = 160ns R T INPUT ; 1 MATCHC'' Character String MATCHC ; Page LA AR LA AL AL AL A AR R2 ) LA AL LA DELTA PC'0'OBJECT LENGTH (8 BITS)'(8)'(16 BITS) . " 124385 H R3 0BJECT ADDRESS :gfi%g; ; FLAG3 SET (MATCHC FLAG) RO #OF UNMAT BYTES 0BJ STR :24386 ;24387 ;24388 ;24389 ;26390 ; H H ; : ;26393 : ;26396 : 124394 ;24395 124397 ;24398 124399 ; : ;24402 : ;246606 ; ; ; ; R1 RZ R3 cc : ; ;26403 ;26404 ;24405 QUTPUT ; J ;26400 ;24407 VA RO D P( R1 RESOQURCES ;24607 ; VA . 26609 ; TEMP] ;246N ;26412 ; ; ;24408 ;264410 ; ; TEMPG Q D ;! MTMP10 126415 ; FLAG3 126476 ;054617 ;24418 ; : ; AR # BYTES LEFT IN SRC STR ADD OF NEXT BYTE BEYOND MAT(H OR SRC STR NZVC_0100 IF RO=0 NZVC_0000 ELSE 7 PC 124613 J24414 ADD NEXT BYTE IN 0BJ STR OR ONE BYTE BEYOND RO R1 R2 R3 FPDOFFSET : N ! SOURCE LENGTH N N SOURCE ADDRESS " ' FLAGO SUBRNUTINES C(S.GEN.RESPC CODE SET FOR MATCHC AR R AR AR AR AR AR AR AR RASARARAMALAR AL AARLARAALAARAMALAARALE R 594. ~@ o3 w L.] .. o. ] =20 O C a4ao C OO o0 oo oo ©Oo o0 0 O o0 OO oo 0 O 00 OO o0 0O 7Y [gV] e WO WO wo wo WO wo oo wo wo W wo WO wo wo W wo c k=l - = [+ o oy~ ow s 1 M .! [ =4 © P 0 ) . ) . . . . . . e [T S T] Ol g il Ll e i g [YWy T (SN TN T} . . -y (3% WAHL (=1 [=] (=2 L< I [P ]@ o [Ta) . FLOA EE e 1M(Q1) 28-NOV~83 Floating point and CRC 16:30:35 : B 2 CLOKX Rev 13.00, (lock rate Ird Rom Definition JCFP,CVT,BWL.FD PILFP,CVT.BWL.FD.100 it .0CODE C NTOCNOPICFP,(VT.BWL.FD FP.CVT.BWL.FD.100 C NT1INOPILFP.C : FPD [NOPJLIE.OPCOD.DEC Al FP.CVT.BWL.FD.100 JCVTWF [NOPJLIE.O PCOD.DEC (LoD 0D2[0S.R S ED FP.CVT BWL.FD JLFP, 1LFP.CVT.BWL.FD.100 ;DIVD2 IRD1CLODILOS.DRED 1 1 CLODILFI.ADDD2.REG [NOPILFI.ADDDZ.MEM —_ DMOD 0D2.MEM :D1VD3 1, ] OPJLIE +OPCOD.DEC 00JLOS.DRED ] (OS.FIDRED ] (F1.ADDD3.MEM : JCVTWD i FP,CVI, BWL.FD i 1E.OPCOD.DEC 10 OS.RED ¢ FPA MEM FPA REG MEM p Page 426§ 160ns <L.—.ta . M1CROZ22 |Lam o 2 (MTO98, FPD IRD1L :DIVF2 3. ] C0D.DEC L €D ] .MOD ADDF2 .MEM :DIVF3 074 oo —r — —_0 CNTOUNOPILFP.EMODD (NTICNOPILFP,EMODD, 10 PICIE .OPCOD.DEC FPD CNOP]L D £ IRDICLUDILOS.FRE e [=]=] —e e = a.—DRED ; EMODD e (=1 e i —0 oo ; EMODF (OD.DEC (OD.DEC Qo e JLFP.EMODD JIFP,EMODD,10 oo FPD [N IRD1[L 0Db.DEC ! CMT098.MCX H MICRO2 1M(01) FLOAT . MIC 17861 17862 17863 17864 17865 };gg? 17868 17869 };g;? 17872 %;g;z L ICODE_ 28-NOV-83 16:30:35 Floating point and CRC ; 0PS REG 072: FPD [NOPJICIE.OPCOD.DEC ,0CODE IRD1CLODILOS.DRED 072: CNTOCLODJLFP.MNEGD.REG CNT1INOPILFP.MNEGD.MEM ,1CODE 0S2: FPD CNOPJLIE.OPCOD.DEC 0CODE IRD1ILODILOS.FRED 052: CNTOCLODILFP,MNEGF .REG CNT1CNOPICFP . MNEGF ,MEM 3 ¢ 2 CLOKX Reyv 13.00, Clock rate = 160ns Page 427 : Ird Rom Definition MEM 0PS ] JL0S.WRT2 JLFP.MNEGD.MEM ] J JUFP,MNEGF .MEM J J FPA MEM {NOPJLIE.OPCOD.DEC 1, [LLODJLFP,MNEGD.REG JLOS.WRT2 [NOPILIE.QPCOD.DEC CLODILOS.FRFD 1, ] [LOD]LFP.MNEGF .REG JL0S.WRT2 [LODILOS.DRED ] 1 J[0S.WRT2 FPA REG ! [NOPILFP.MNEGD.MEM [NOPILFP,MNEGF .MEM JMNEGD ] JLFP.MNEGD . MEM JCFP.MNEGF .MEM 1, ] s MMEGF 4, 1 17875 ;SEE MOVAQ MOVAD 17877 ;SEE MOVAL MOVAF 17876 17878 17879 17880 };gg; 17883 };ggé . 1CODE 070: FPD [NOPJCIE.QPCOD.DEC | 070: CNTQLLODICFP, "OVD.REG JL0S.WRT?2 OCODE CNT1INOPILFP.MOVD .MEM 17886 ,1CODE 17889 .0CODE 17893 . 1CODE };ggg 0CODE 17887 17888 T TR T P P o S TR 17890 };gg; 17894 17897 };ggg JLOS.WRT? JOFP.MOVF .MEM 064: FPD [NOPILIE.OPCOD.DEC ] 064: CNTOLNOPJILFP.MULDZ JLFP.MULD? 17907 17908 17910 17911 17912 IRD1LLODILOS.DRED CNT1INOPILFP,MULD.20 OCODE 17909 J 050: CNTOLLOD]LFP . MOVF ,REG CNTTINOPILFP,MOVF .MEM };gg% };382 JOFP.MOVD.MEM ] ] . ICODE 17904 ] 050: FPD CNOPJILIE,OPCOD.DEC IRDTLLODILOS.FRED 17900 17901 IRD1LLODILOS.DRED 065: FPD INOPJLIE.OPCOD.DEC J 065: CNTOLNOPILFP.MULD3 JLFP.MULD3 IRD1ELODILOS . DRED CNTTINOPILFP,MULD,20 . 1CODE 044: FPD LNOPICIE.OPCOD.DEC ,0CODE IRD1ELODICOS. FRED 044: CNTOLLODILOS.MOD CNT1ENOPILFP,MULF 23 J 1 J ] J 1 JLOS.WRT2 [NOPJLIE.OPCOD.DEC CLODICOS.FRED 3, ] L[LODJLFP,MOVF.REG [NOPILFP,MOVF .MEM JLOS.WRT2 JCFP.MOVF .MEM INOPJLIE.OPCOD.DEC 1. [LODICFI.ADDD2.REG JLOS.FIDMO [NOPJEIE.OPCOD.DEC 3, CLODICFI.ADDD3.REG JLOS.FIDRED [NOPJCIE.OPCOD.DEC 1, [LODJCFI.ADDF2.REG [NOPICFI.ADDF2,MEM JL0S.MOD JOFI1,ADDF2,MEM [NOPILFP,MOVD.MEM ONOPICFI1.ADDDZ.MEM {Lopl[os.FIDRED J J 3| ] JL0s.MOD JIFP.MULF23 CLODILFP.MOVD.REG CLODICOS.FIDRED ] JUFP,MULD,20 1. fLoD1L0S.DRED 1 JCFP.MULD.20 [NOPJILIE.OPCOD.DEC OINOPILFI.ADDD3.MEM [LODILCS.RED J 1 ;MOVD ] JLFP.MOVD.MEM 3, d s MOVF 3. ] MULD2 ] ICF1.ADDD 2 MEM 3. ] MULD3 J JCF1.ADDD3.MEM 1, ] sMULF2 ] 1. ] (MTO98.MCX FLOAT . MIC :17921 $17922 117923 117924 ;1;332 . ICODE 075: ,0CODE ;17930 ,OCODE :17931 ;};3%% ;17936 :17935 117936 117937 217938 :17939 217940 ;17941 117942 :};322 ;17945 117946 117947 :17948 ;17949 ‘};32? ;17952 ;17953 ;17954 055: JLFR.POLYD CNOP] LFI, POLYD [NOP] LFlI. POLYFD.10 FPD [NOPJILFP.POLYF.FPD.RES ] ] CNOPJLFI.POLYF.FPD RES CLODILOS.FRED CNTOCLODILOS.RED J[0S.RED LLODJICOS.RED IRD1LLODILOS.DRED ] IRD1CLODILOS. FRED CNT1CNOPILFP.POLYF ] JCFP.POLYD.10 1LFP,POLYF INOPILFI,POLYF 1, ] JPOLYD CF1.POLYD CFI.POLYFD.10 1, ] sPOLYF {0S.RED LCFI.POLYF 1, ] PUSHAF . 170DE 062: FPD [NOPJCIE.QPCOD.DEC ,0CODE IRD1CLODILOS . DRED 062: CNYOLNOPJILFP.SUBDZ2 CNTTCNOPICFP.ADDD. 20 L 1CODE 063: FPD [NOPJLIE.OPCOD.DEC .OCODE 063: .OCODE 042: CNTOLNOPJ(FP.SUBF2 CNT1LNOPILFP, SUBF 23.20 ) 043: FPD LNOPJLIE.OPCOD,DEC !RD1LLODILOS.FRED 043: CNTOLNOPILFP, SUBF3 CNTT1INOPILFP. SUBF23.20 1, ] ;SuUBD3 ] J[FP.SUBD3 IRD1LLODILOS.FRED COS.FINMOD CFI.ADDD2.MEM JCFP,SUBD2 JCFPLADDD, 20 CNTOLNOPJLFP,SUBD3 042: FPD [NOPJ[IE.OPCOD.DEC 217962 ] ] CNT1ENOPILFP.ADDD. 20 ;SuBD2 ] IRD1LLODILOS. DRED .1CODE | 1CODE 117964 P FPD.RES [NOPJLFI.POLYD. F LODILOS.FIDRED LOS.RED [F1.ADDF3.MEM ;SEE PUSHAL :17959 117963 ] LLODJLFI.ADD f3.REG (NOP JCFI,ADD F3 sMULF3 PUSHAD .OCODE 17960 117961 FPD [NOPJICFP.POLYD.FPD.RES JCFP LF23 FPA MEM 428 | ;SEE PUSHAQ ;17955 :17956 ;};8%; J[o N; CNTT1CNOPILFP . MULF 23 CNT1LNOPILFP.POLYD.10 L 1CODE 055: :17929 CNTOELODILOS.FRED Page 160ns 0PS FPA REG ENOPJCIE.OPCOD,DEC CLODILOS.RED ] h| 075: CNTOCNOPJILFP.POLYD ;17927 ;17928 MEM FPD [NOPJLIE.OPCOD.DEC IRD1LLODILOS.FRED JCFR,ADDD. 20 i ;17919 ;17920 Ird Rom Definition ] SN .OCODE 045: REG 0PS 2 CLOKX Rey 13.00, Clock rate j ;17916 :17917 045: D | S} S ; ICODE ;17918 : Floating point and (RC 217913 :17914 ;17915 16:30:35 COS.FIDRED [FI.ADDD3.MEM ], ] : SUBF2 ] ] JLFP,SUBF2 JLFP.SUBF23.20 —ts : 28-NOV=B3 LOS.MOD CFI.AD DF2 MEM 1. ] :SUBF3 ] ] J0FP.SUBF3 JLFP.SUBF23.20 e ; 1M(01) MICROZ 1. CMT098 . MCX FLOAT.MIC 95 966 ggg 9 970 0CODE ) ,0CODE 7 Floating point and CRC IRD1CLODILOS.DRED 1L .BAD IRD ] ] 053: CNTOLNOP]LFP.TSTF JLFP.TSTF CNT1CNOPILIE .BAD.IRD —_ JCLIE.BAD,IRD — E 2 CLOKX Rev 13,00, Clock rate = 160ns - Page ¢ 1rd Rom Definition JCFP.TSTD 053: FPD [NOPJILIE.QPCOD,DEC IRD1CLODILOS.FRED — 16:30:35 MEM ] ] (NT1CNOPJLIE .BAD.IRD ;17975 : 28=NOV=83 073: CNTQLNOPILFP,TSTD .1CODE ;17976 1M(01) ,1CODE__; 0PS REG 073: FPD CNOPJLIE.OPCOD.DEC :17972 ;17973 ;17974 MICROZ2 ] J ) ] 0PS FPA REG [NOPJCIE.OPCOD.DEC CLODICOS.DRED 1, ] [NOPJLFP.TISTD JLFP.TSTD CNOPJCIE.QPCOD,DEC CLODILOS.FRED 1, ] [NOP]LFP,.TSTF JLFP.TSTF [NOPI[IE.BAD.IRD [NOPJ[IE.BAD.]RD FPA MEM JL1E.BAD.IRD JCI1E.BAD.IRD 429 JTSTD ], ] JTSTF 1, ] P | : : CMT098.M§§ MICRO2 FLOAT.M 1M(01) 28-NOV=-83 Floating point and CRC 16:30:35 F 2 CLOKX Rev 13.00, Clock rate = 160ns : Dsize Rom Definition 17979 70C "' fFloating point and CRC i1;gg% 06F : SIZE COBLE] {DBLE] [OBLEI L 03 C 01 L 0J ;ACBD :};3%% 04F ¢ SIZE [FLOT] CFLOT] CFLOTIC 03 C 0JC 03 ;ACBF é};ggg 060: SIZE [OBLEJ (DBLED L 03 C 01 L 03C 01 ;ADDDZ i};ggg 061: SIZE CDOBLE] [DBLEJ [DBLEI L 03 C 03 C 0] ;ADDD3 i};gg? 040: S1ze [FLOTICFLOTDI L 03 C O3 LC O01C 0] :;ADDF2 i};gg% 041: S1ZE€ CFLOYI CFLOTI CFLOTIC 03 C 01 C 0] ;ADDFS 217994 ;SEE CLRQ sCLRD '1;389 JSEE CLRL JCLRF i};ggg 071: S1Ze [DBLEJ [OBLEJ L 03 C 03 C 01C 01 ;CMPD 21388? 051: SIZE [FLOYI CFLOTI C 02 C o01C 03C 01 ;CMPF §}§88§ 008B: $1ZE [BYTE] [LONG] [WORD] [BYTEJ [ 01 [ 01 ;CRC i}gggg 06¢C: SI12E [(BYTEI (DBLEJ L 03 C 03 C 01JC 03 ;cvied §}§889 04C: SIZE [BYTEJ [FLOTI L 01C 0L ©0JC 0) ;CVIBF é}gggg 068: SIZE (DBLEJ [BYTEDJ L 03 C 03[ 0JC 03 ;cvipB 5}38}? 076: SIZE [DBLEY [FLOTD L 01 C 03JC 03[ 03 .CvIDF 5138;% 06A: SIZE [OBLEJ CLONG) L Q3 C 03 C 01C 031 ;CvidL 51381§ 069: SIZ€ [DBLEJ CLwORP] [ 03 C 03 C 01JC 01 .CviDpw §}§8}9 048: SIZE [FLOTI [BYTED L 01 C 01C 0J[ 03 .CvIFB 513813 056: SIZE CFLOTI [DBLEZ [ 01 C 03I C 03LC 03 ;CvuTFD i}figg? 04A: srze [FLotJCLoned £ 03[0 02 C 0JC 03 ;CVIFL i}%%%% 049: SI2E (FLOTI LWORD]D [ 03 L 01 [ 03[ 0] ;CVIFW i}%%%g 06E: SIZE [LONG] (DBLEJ L 03 C 031C 01C 01 ;CviLp §%§8§9 04E: SIZ€ [LONGI CFLOTD L 03 C 01 C 0JC 01 ;CviLf 513853 068: SIZE (DBLEJ fLtongd [ 03 L 030 01JC 01 ;CVvIRDL :‘%gggg 048: SI1Z26 [FLOTI LLONGI U 03 L 01 C 03[ 0 CVIRFL ;18032 060D: SIZE [WwORD] [DBLEJ L 01 C 01 [C 01C 01 ;Cviw ;17995 : Dsize Rom Definition' - Page 430 e st e s s e e en 2] 2B~NOV=-83 16:30:35 CLOKX Rey 13.00, Clock rate = 160ns Z 04D: SIZE [WORD] [FLOTI L 03 C 03 C 01C 0] ;CVviw g 066: SIZE (DBLEI fDBLEJ L 0J L 03C 03O 01 ;DIVDZ g 067: S126 COBLE] CDBLEY [(DBLEJ C 03 L 01 [ 01 ;DIVD3 9 046 SIZE [FLOTI LFLOTDI L 03C 03C 01 ;DIVF? g 054: SIZE CFLOT] [BYTE] LFLOT] CLONG] [FLOTI [ 01 EMODF g 072: SIZE [DBLE] [DPBLE3I [ 03 C 03 C 0)[ 0] ;MNEGD 8 052: SIZE [FLOTI CFLOTI L 03 C 02 L 01 [ 0] ;MNEGF 1 ;SEE MOVAQ S 070: SIZE [OBLEJI [DBLEJ L 03 C 0JC 0J[C 0] .:mOVD 9 Qb4: SIZE CDBLEJ [DBLEI L 03 L 03 C 03[ 01 ;muLbe 2 044 S1ZE [FLOT] (FLOT] [ 0J L 03[ 0)C 03 ;MuLfe 5 045: S126 CFLOTD CFLOTY CFLOTI L 03 C 03 C 0] ;MULF3 g 055: SIZE [FLOT] [woRD] [BYTEJ L ? +SEE PUSHAQ % JSEE PUSHAL 01 C 0J(C 01 ;POLYF s PUSHAD s PUSHAF OOOOOOOO =) SO OOOOOOOCOOOOOODDOOOOOOOOOOO I NIV DS D5 I D O Do B I B DA NI AN N OO OO OO O VTNV 00 CoCoC000OO~ NNNNNNOO PO T WY W PRI e N T T T S T T T e e L LR TE PR PRTR TR P PR P PR LR PR I UL LA LA 2 S SaS-%emcesSsne e S § b bk e e bk b ek md emd ki b 3 b b b b b b b D d b D e D b b D b et b D b oD Sl A D ©0 00 00 0O 0o 0o Co 0000 00 00 £ Co 00 Co 0900 00 0o 0000 4O Co 0o ©o €O ¢ CO 00 00 0o€0 0000 20 0o 0n 00 0o 00 0 00 00 GO 00 00 00 00 0o 0L CO 0O Co GO YR 1M(Q1) wr MICRO2 8 . MCX CMT09 FLOAT MIC ? 047: s 074: Floating point and CRC 03 C S1ZE CFLOTI CFLOTI CFLOTIC 03 C 03 C SI1ZE [DBLED {BYTE] [DPBLE] CLONGI CDBLE] [ : Dsize Rom Definition 0] ;DIVF3 03 ;EMODD s MOVAD % JSEE MOVAL 2 050: g 065: 9 075: 5 s MOVAF SIZE [FLOTI LFLOTI L 03 C SIZE (DBLE] [DBLE] [DBLEJ L SIZE [PBLE] [wWORD] [BYTEX U O01C 03 C 01 L 01L[ 01 L 03[ 01 ;MOVF 01 ;MULD3 01 ;POLYD 062 SIZE [PBLEJ (pBLEI L 01 C 01C 0)(C 01 § 042: SIZE [FLOTI CFLOTI L 01 C 02EC CIC 03 ;susfe 9 063: SIZE CDBLE] (OBLE] [DBLEI L 03 C 1 043: SIZE [FLOT] CFLOT) CFLOTI E SIZE [DBLEI L 0)C 01[ 03C 2 932605 SIZE [FLOTI L 03 C 0JC 03C % 073: 03 L ;18087 .BIN 01 [ 01 [ ;susp? 01 ;susd3 01C 03 ;SUBF3 01 ;ISTD 0QJC Q) ;1STF Page 431 {M7098.MCX FLOAT MIC MICROZ 1M(01) 28=NOV=83 Floating point and CRC 18087; 16:30:35 H 2 CLOKX Rey 13.00, Clock rate = 160ns : Dsize Rom Definition This page intentionally left blank. Page 432 ; ! CMT098.MCX MICROZ2 VIELD.MIC 1M(01) VIELD.MIC 28=-NOV-83 16:30:35 :18088 .10C uVlELD.MJC“ " ;18089 .10C ''REVISION 7.0 ;18090 .NOSIN . ) . : 18091 6. .T00 s 07 : 06 force some address. Initiat release. ;18097 2 CLOKX Rev 13.00, Clock rate = 160ns Koeckhoven, P. Revision History" ' 1 BIN R, GUILBAULT : Page 433 [Lefa) -. P4 J 2 CLOKX Rev 13,00, Clock rate Mo 28-NOV-83 16:30:35 ¢ Algorithm For EXTV & (MPV vVariable Length Bit field MICROZ2 R ;18098 .T0C"' 18099 Variable Length Bit Field 160ns : Algorithm For EXTV & (MPV" Page 434 ] 1 ] + mmeseamca—aab 1 =5 § Jwd [ 16:30:35 M0 28-NOV=-83 : Algorithm Fo variable Length Bit Field L L T R T FFS, FFC 160ns T T T L 0 4 0 o LY e O O O 0 4 - [ Lt[Ty 1[} 1-1 t13)1311] 1 1 ]))] ) b i = (= [+ o — ] ] [l +>- )]1t@11] )— 1]I<}]) +- == — +- ’[} )] )] )] 1t )]131])I 3-1 + ] — + -+ - 1 =o 141@tO 1 r- 1 4[} ¥1|Y [} [} = [~ — w o uJ > — =3 [=3 ' = ;18172 1i 1] 1] 1< 1) H1 +- [1+-4 1+-~ frmmmn— e u.- o mmm———————— e 1[} 1< t: 1] 1a08 1[}[}131] [ S <1C1]o+]- b 1 1 ’ 3 I ) [ e | 1 1 I [1'} ’1] 1 xO - v — 3= o [l wa Xe— -+ 3 e .BIN 8 Y O R P00 7 7 50 - O e 0 O O O o } - e e T T T TT T e e B V, : Algorithm For EXT2V, CMPZV, fF3, FFC" Variable Length Bit field .Toc 00, ¢ lock rate -~y MICROZ ? [] Do -— VIE w= (MT10 2[ ; N (MTO98,MCX VIELD.MIC . MICROZ2 1M(01) 28-NOV=-83 variable Length Bit Field 16:30:35 L 2 CLOKX Rev 13.00, Clock rate = 160ns : FFS, FFC Page i 436§ + FFS, FFC" variable vLength Bit Field H :}g};z .T0C 218175 ;atttttttt*txtt*tttttttttttt*ttw*w*tt*******i*****************t***i****ii%*i* :}g};g : FF(S,() 118178 ;18180 ; ;18181 ;18182 . ; ; ; . ;18190 Base Q Startpos Size TEMP1 Startpos TEMP2 Subroutines , Extracted Field & Work TEMP3 SLATCH,D FLAG<2:0> FLAG3 ;18188 . ;18189 OSR MDR Resources ;18183 . ;18184 ;18185 ;18186 ;18187 startpos.rl size,rb base.ab findpos.wl Input ;18179 . : Work Size 001 Size = 32 VF,VSUB :fit**fit*t*t*tfit*fiit**k&fi**t*ttttt**tt*fit*ktt****t****t***it***t***ii****\l’**t* ! ;18191 :18192 .REGION/IRDX.RIL,IRDX.RTH/IRDX,.R2L,IRDX,R2H ;18193 =00000 :18194 =01111 :18195 VF,FFS: :18196 ;18197 1 Q0EF, 0041,2856,6DFD,8047,0D7E,8 324« u 00F0, 0086, 358F,0030,8047,017E,4 ;18198 :}g;gg 1011 cm e r e n PUSH,SET FLAGO,SIZElIDEP], SL_D_SEXT(MIMDR]) WBRANGE?, NERT7VF,VSUB $18201 - : EA H ; SL <= D <= SIZE & FLAG<2:0> <~ 1 : BUT ON RANGE OF S1ZE TO VIELD SuB ;10000 =mmmmnmmmmmamaaan= ————— - 18202 MCTEMP3]_-RLTEMP2] i ' TEMP3 <= =(EXTRACTED FIELD) 118204 :}gggg REGION/VIELD.RIL,VIELD.R1H/VIELD.R2L,VIELD.R2H/VIELD,R3L ,VIELD.R3H U 17e4, 0086,3002,0030,8C47,0026,7 ;18207 METEMP3) MB.AND,RLTEMP2], :}gggg E TEMP3 <= 1 IN BIT POS OF 1ST BIT SET NEXT/VF.FFS.OR.FFCSIZ3e ; 118210 218211 REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H ;18212 =00000 218213 =01111 18214 VF . FFC: 218215 U 17e6, 0486,3003,84F0,84E7,0026,6 R T T J 01F0, 0CB4,2£50,0030,(047,017¢,6 o S U 01EF, 0041,2B56,6DFD,8047,007E,8 324+ e ;18216 (011 mmmecemscneenmmmneancnnan -; EB SL_D_SEXT(M[MDR]) WBRANGE?, SL <= D <= SIZ2E ® FLAG<2:0> <~ 1 PUSH,SET FLAGO,SIZECIDER], : }gs%g NERT7VF .VSUB : BUT ON RANGE OF SIZE TO VIELD sSuB 18220 13551 ;10000 ==mmoonemn RLTEMP3]_MLTEMP2]+1 18217 1822% 18224 18225 18226 18227 s s es TEMP3 <~ (EXTRACTED FILED)+1 «REGION/VIELD.R1L,VIELD.RIH/VIELD.R2L,VIELD.R2H/VIELD.R3L,VIELD.R3H L T Y T Y T ML TEMP3) MB;ANDNOT.R[TEMPEJ, MDR_0,FLAG3? L T Y ] : TEMP3 <= 1 [N BIT POS OF 1ST BIT CLEAR ; SI2E.EQ,32? | i i ! ‘ ; =2 O 000 NN AT LA N (AT O T NN NN LN N U = O OO 25 25 25 NN I d b b b e b D mh b e d o =0 2 = 2 CLOKX Rev 13,00, Clock rate == 160ns 16:30:35 : FFS, FFC 437! (===vmecscccccsccrecccnccenen. ; FFC SIZE.EQ.L0,31] we MCTEMP3] PL_MB.MSS, : PL <~ POS OF 1ST BIT CLEAR (PL WILL NERT/VF.FFC.SI207031 : POINT 1 PAST FIELD IF BIT NOT FOUND) VF.FES, OR FFCSIZ32: n----------g-----_--__--_--—n-- we MLTEMP3) PL_M8.MSS,CCOP1, =0 Page SIZECIDEP],wX.EQ.0? i BIT FOUND? VF. F”SFOUND FFCOTO31: e o e o o B B e G G et @ 2§ RCDST.R) MCTEMP11+PL,S12ELIDEP], + WRITE NOTREG, IRD1 : _____________-____-_-_______-_. R(DST R1_MLTEMP11+SL,S1ZECIDERPT, } WRITE NOTREG, [RD1 (FFC SIZE.EQ.32) OR FFS : PL <= POS OF 1ST BIT SET/(LEAR ; WX.NE.QO : BIT FOUND WRITE FIND POSITION WX.EQ.0 : BIT NOT FOUND WRITE FIND °OSITION VF.FFC.S120T031: WB_D-PL,SIZELIDEP],CCOPT, NERT/VF .FF SFOUND . Ff (003 : 1F SI1Z& = FINDPOS THEN BIT NOT FOUND ; li : ATTES 5 85 IS L5 O _ u 0382, 0880,0830,0030,0847,0026,C D ; b U 026D, 0884,1891,013C,45DA,003F,9 D U 026C, 0C84,1811,013C,45DA,003F,9 b U 0267, 0C80,39C2,4A3D,8847,0026.( P N TR TR TR TAr ) ! Bit Field OO NN I : 28=NOV-83 SN RUALAL NVALNINYNINLNLNL AR N PLNDRJ NI NV U 0266, 0080,39¢2,403D,8047,0038,2 : D : 1 82 9 D variable Length OO0 1M(01) h VIELD.MIC MICRO2 b ed e : CMT098.MCX ©0 00 00 0 €O o O G0 00 00 0000 00 COCOCo OO ; M0 .T0C o Variable rength Bit Fiel d A AR AR RN AR ARk R332 3333283322223 323 2222224081 PAR Wiy EXT(V,ZV) pos.rl size.rb base.ab dst.wl OSR Input DI T T MDR Q T Resources N R Page : EXTV, EXTZV" ke (2 TEMP2 PLATCH SLATCH,D FLAG<2:0> L w : E N ? 135 CLOKX Rev 13.00, C lock rate = 160ns EXTZV 1 SRR RA N R AR AN ANARN AR A R 2 RN Subroutines S Base Size Pos Extracted Field § Work gSlze(EXTV) 1 EXTV=000, EXTZV=001 VF,VSuB S22 2222223222202 2022 ] et gkt de ik e K R R T ke ek eT e e e e .REGION/IRDX.RIL,IRDX.RTH/IRDX.R2L, IRDX.RZH 200000 =011 VF . EXTZV: ;011 e e ; EF pusn SET FLAGO,SIZELIDEP], : D SEXT(MIMDRI) WBRANGE?, NERT VF.VSUB AN S A — SINNNNNOCONOCONON OO OO O LN IVILIIAILAILY OO0 O I AN = OO 00 ~JON NI AN — RN — <O 0 QO NI LD D00 NON VNS £0 0000 Co G O D000 0000000 COCOCOCK TM N~~~ D ) 00 00 GO 00 o CoCo 00 00 COCO00 00 £ 00 C0 £0 00 €0 G0 00 00 00 00 00 Co 00 0O 000000000000 I STAN [ V1AV NV NL NN PNV PV NVNLTUNI NN(AN IaNTAN nufLNLNSNDNLNLNVADNDPVNLTD PO VN PURLALNLNL e e d e TR TE TR P ) b PR T D e b e o e b e D med emd D ad mh o L I T T .. .. W ks ) e r TR PI T TR O P - 0230, 0884,20F7,013C,55DA,003F,9 L R U 022fF, 0081,2R54,6DFD,8047,0D7E,8 324+ b o U 0210, 0084,2592,413C,55DA,003F,9 b U 020F, 0041,2R56,6DFD,8047,0D7E,8 324« b e PR PR T variable Lengt 28-NOV-83 it Field b MIC MICROZ2 b e : C(MT098.MCX o ——d : ; SL <= D <- SIZE & FLAG<2:0> <~ 1 ; BUT ON RANGE OF SIZE TO VIELD SUB :10000======mmmmmmmc e e: RCDST.RI_MCTEMP2],WRITE NOTREG, : SI1ZELIDEF],CCOP2, IRDY ; WRITE DEST 22F: VFLEXTV: ;011172 «xFORCE ADDRESS*a#xwwwun; EE PUSH,SL_D_SEXT(MLMDR]) WBRANGE?,; SL <= D <~ SIZE & FLAG<2:0> <~ 0 SIZEEIDEPT,NEXT/VF.VSUB 230: ; BUT ON RANGE OF SIZE TO VIELD SUB ;10000% % x«FORCE Au‘RESS*********: RCDST.R] _MLTEMP2],ASR.P,(C 72, WRITE 'NOYREG,SIZELIDERI,JRDY ; WRITE DESTY 4381 X MICROZ 1M(OT) 28-NOV=83 Variable Length Bit Field Ic 16:30:35 B : CMPY, (MPZV 3 CLOKX Rev 13,00, (lock rate = 160ns ;}g%g% .T0C " 318294 SRR ;}gggg H AR R R ANk Rk Rk kR AR R AR R RN R ARk CMPZ(V,ZV) pos.rl size.rb base.ab src.rl ;18297 ; Variable Length Bit Fieud Input 18298 ; 218299 ; 18300 : 218302 ; :18303 ; ;}g%gg H 218306 318307 Subroutines A AR RN R R AR R AR AR AR AR Base TEMP2 Extracted field & Work SLATCH,D Size Size Pos PLATCH FLAG<2:0> o amm : (MPV, CMPZV" 0SR MOR Q Resources ;18301 Page , -§ize(CMPV) CMPYV=100, CMPZV=010 VF,vSUB R AR A AR AR AR R A AR A AR AR R A RN R R AR R AR R AR RN : 18308 ;18309 ,REGION/IRDX.R1L,IROX.R1H/IRDX.R2L,IRDX,R2H :18310 =00000 18311 =01111 ;18312 VF, CMPZV: 118313 U 024F, 0849,2B56,6DFD,B8047,0D7E,8 324+ ;0111 ) =enmnnmannan smssmmmsmaemman ; PUSH,SET FLAG1,SIZECIDEP], ; :}g%}g NERT7ZVF,VSuB s BUT ON RANGE OF SIZE TO VIELD SuB ;18315 SL_D_SEXT(MCMDR]) WBRANGE?, ;18318 vF.CMPZV. 1. . U 0250, 0481,2003,0130,8847,003F,9 ED ;18314 118319 218320 :%ggg; 10000 ==smmmmmmmon WB_RLTEMP2]~MLMDR], SIZECIDEP],CCOPT,IRDT ;5L <~ D <= SI2E & FLAG<2:0> <~ 2 e; H ¢ SET CC ON FIELD ~ SRC ;18323 218324 ;18325 =00000 $18326 =011 218327 VF,CMPY: U U26F, 0851,72B856,6DFD,8047,0D7E,8 324+ _ ) u 0270, 0886,20F7,0030,0047,0025,0 18328 :18329 L D PUSH,SET FLAG2,SIZELIDEP], ;}g%g; NERTZVF.VSUB 118333 ;18334 :10000====nmssmouannmnannnnunn; MITEMP2]_MB,ASR.P, . ;18330 :}gggg SL_D_SEXT(M[MDR]) WBRANGE?, NEXT/VF . TMR2V.1 -=; EC H ¢ SL <= D <= SIZE & FLAGS2:0> <~ 4 s BUT ON RANGE OfF SIZE TO VIELD SuB SIGN EXTEND FIELD . & GO DO COMPARE ; 439 : ; : 28-NOV-83 16:30:35 MICRO2 TM(01) variable Length Bit Field : VF,VSUB {MTO98,MCX VIELD.MIC ;%gggg .T0C " ¢t 3 CLOKX Rev 13.00, Clock rate = 160ns variable Length Bit Field 218339 TERAKERKA AR KRR RRRRRRRARRKKRE KRR SLATCH,D Input 218340 ¢ ;18341 :18343 ; ;%g%zg : Output :18350 Base 0s FLAG<2:0>=000 EXTV FLAG2:0>=010 (MP2V 118354 ; Resources ;18355 ; 218356 LA A A I R AR R CMPV FFS, FFC, EXTZV Position FLAG3 PLAT(H Size = 32 -Size for EXTV and CMPV Extracted Field PLATCH Position MDR TEMP4 L VA S S R LA AL A . Startpos/Pos = Junk on Exit TEMP1 TEMP? ;18351 ;}g%g% H R OSR FLAG<2:0>=100 FLAG<2:0>=001 ;18345 ; ;18346 218357 Size ARk kR Ak kAR kdor Register number of Base Q ;18344 : VF.vsus" AR AR RNUM ;18342 18349 ; Page 0 Work AL R Address of ms longword of field AR A A LA AR A AL A AL A AM A AL LA AL :}gggg :REglON/VIELD.R1L,VIELD.R1H/VIELD.R2L.VIELD.R?H/VIELD.RSL,VIELD.RSH 118361 VF.,VSUB: ;18362 U 1768, 0486,1BFA,493D,84E7,0022,8 218363 ;}g%gg :18366 U 17E9, 0486,18FA,4630,8047,0413,0 118367 ;}g%gg 118370 U 17EA, 04SE,1BFA,493D,84E7,0022,8 , u 17e8, 0€80,0036,4030,0047,00FF,8 218371 ;}gg;g 118374 ;}gg;g :18377 u 17EC, 0C86,25BE,467D,8047,017€,5 U 17ED, 0C86,25BE,467D0,8047,017€,5 ;000mmwmmmmmm e e e s ; SIZE.EQ.[1,31] MOTEMP1] _PL_Q,MDR_O, REG MODEY,NEXT/VFTvSuB.MEM T BRA ON ADD? ,NEXT70S.VADD ; TEMP1 <= POS, MDR <= O H $010====mmmm oo mmm e oae e : SI1ZE,60,32 MCTEMP1Y PL_Q,MDR_O,SET FLAG3, REG MODE?,NEXT/VFTVSUB.MEM ;011 = m e o m e . TEMP1 <~ POS, MDR <= O : SET SIZE.EQ.52 FLAG e e o ; SIZE.GT.32 NOP ,NEXT/IE.OPER.FAULT ; RESERVED OPERAND $100mmm e eeee : RET+3 : SI2E.EQ.0 MCTEMP2]_RCZERO], IR<2=0>7NEXT/VF,vSUB, S120 :18381 ;10]=mmmmmm :}gggz _ : REGISTER MODE? e EE LR EE DL SR : SIZE.EQ.0 PUSH,MLTEMP1] PL_Q, ;18378 :}g%gg : 18382 ; TEMP1 <= P0OS, MDR <- 0 s MOCTEMP2]_RLCZEROD]D, : EXTRACTED FIELD = 0 s (FF,EXT) OR CMP? e e maa o m e e : RET#4 : SIZE.EQ.0 IR<2~0>7 s EXTRACTED FIELD = 0 s (FF,EXT) OR CMP? 118385 =101 U 175, 0C80,0036,4180,0047,0010,0 U 177, 0480,0036,4180,0047,0014,0 ;18386 VF,VSUB,S1Z0: ;18387 ;101 emmeecmacccenrccn ot caane ; CMP :}gggg 118390 1839 LOD INC BRA? ,NEXT/0S.RED ; OS.RED WILL DO RETURN FROM VSUB 111l=mmmeececememeesa e ; FF OR EXT LOD INC BRA? ,NEXT/0S.WRT1 ; OS.WRT1 WILL DO RETURN FROM VSUB ; 440: ! 28=NOV=-83 16:30: 35 Variable Length Bit Field : VF.VSUB R = OO0 O IO N £ O VN S AR 2 OO 00 IO U B (NN — O O 00 O NS HAND- 2O 000 NN N S 3k A aE AT 2k B 2R P S B P o o F o o S S O e N O N S T G AN A AU RUPO RO RUMOPORIRUN) 3 —m 3 b 2 2 2 S DS =S OO OOV O OO OO VOV OY OO0 =00 VF.VSUB. MEM - 0 3 - 0 o T S0 e 0 e W PUSH RUTEMP4] MCTEMP1].ASR.3, BRA ON ADD?,NEXT/0S. VADD W ¢ wB RLTEMP11.SR.5CIF MDR IS ALOS_SIGND,SIZETLONG], MEM : SIZE.EQ.[1,32] SET UP FOR ALLIGNED MEM REF ; RET 1S5 ABOVE FROM PREVIOUS PUSH VF.VSuB. REG " Page 4411 CLOKX Rev 13.00, Clock rate = 160ns O, ; REG : SIZE.EQ.[1,32] (NOTE : MDR WAS_SET TO 0 ABOVE) ;; ALUS <= (POS < 32) FLAGZ1-0>7 ,NEXT/VF,vSUB,REG1 ; MEM : RET+3 : SIZE.EQ.[1,31] ; VA <- LONGWORD ADD OF FIELD : PL <~ POS IN LONGWRD OF STR OF FLD ;1eeemeccnccencncnnncocneccacnass H =00 VA_MIMDRI+RLTEMP4],PL<4=3>_WB, FLAGCT=0>7 e ; EXTV.CMPY READ 1ST LONGWORD (PL+SL). GT.327 ,NEXT/VF. VSUB.MEM2; ALLIGNED? ;00=vmmmen e m e READ.LONG,VA_VA+4, e e bt e : READ.LONG,VA_VA+4, FFS,FFC,EXTZV (10mmmmmmcmec e e em e ; CMRZV READ 1ST LONGWORD ALLIGNED? (PL+SL).GT.327 ,NEXT/VF.VSUB. MEM3' READ,LONG,VA_VA+4, (PL+SL) . GT.327 ,NEXT/VF.VSUB,MEM4 READ 1ST LONGWORD ALLIGNED? 10 : EXTV,CMPV : ALLIGNED 0 FLAG2?,NEXT/VF. VSUB.REGS : TEMPS <~ FIELD ; CMPV OR EXTV? Rtf&iEEJ “MIMDR], READ . LONG ; SAVE 1ST LONGWORD & READ 2ND RCTEMPZ] MCMDRI.RR,PS, EXTV,CMPV : UNALLIGNED EXTV,CMPV 1o : UNALLIGNED fiE;EHESJ-(M[MDEE-EE;-Ea-;gj ----- ; TEMP2 <~ FIELD FLAG2? ,NEXT/VF.VSUB,REGS : CMPV OR EXTV 2 Gr.vsua.mggs: RCTEMP2] MIMDRD, XZ, LOD INC BRA?,NEXT/0S.WRT1 et : RLT EMP?J (MCMDR] RB).X2Z LOD INC BRA?,NEXT/0S.WR 1 Xo: : taltsdatbt ietuint ekt H ALTEMP2] _MIMDRS ,READ. LONG —tn 0384, 0485,2037,0180,8047,0014,0 (N =2 O D00 . 0885,2592,4030,8051,0038,4 N . 0085,2077,0180,8047,0014,0 N 0485,2937,04B0,8047,0000,3 I . 0085,2592,4030,8051,0038,3 S . 0085,2977,0480,8047,0000,3 N 0083,0036,4DF0,0451,0003,6 S , IBT 2 . 0080,0036,4DF0,0451,017E ,E o . 0080,0036,4DF0,0451,017E,2 T TR T T S O R R R R LA LA TR DR . 0081,2FC1,0531,04A7,0023,4 e ., 0481,2251,8520,58(7,0024,4 TR L D P O I QP O P I I G G G S P e B T TS 0o Co O 0000 ©0 60 €0 0O Co O OG- Q000 Co Co € T 0000 OO0 0o Co 0o Co O€0 €0 G0 N D00 0o 0o OB GO G 0O D0 €0 CoCr G0 G0 0000 00 QOO0 0o . 0084,1777,0631,0047,0413,0 A Eke a Lra L AV O LS i MICROZ - e CMT098.MCX VIELD.MIT ; : ALL 1GNED DO RET FROM VSUB V : UNALLIGNED GWORD & READ 2ND TEMP2 <~ F1LD 0s. NRT1 Nl L DO RET FROM VSUB ; ; CMT098.MCX YIELD.MIC 16:30:35 ' 28-NOV-83 MICRO2 1M(01) variable Length Bit Field : VF,VSUB E 3 CLOKX Rev 13.00, Clock rate = 160ns ;18444 =10 118445 VF.VSUB.MEM4: 118446 ;10=m m o e : U 0036, 0885,2077,0180,8047,0010,0 Y 0037, 0085,2592,4030,8051,0038,5 118447 RCTEMP2] _MIMDR).XZ, $18450 e b L LL; ;}gzzg ;}gzg} :18453 U 0385, 0C85,2037,0180,8047,0010,0 118454 ;%gzgz 00 118459 118460 ;}gzgg 18463 118464 U 0245, 0486,2184,7DBF,D847,0025,4 118465 ;}gzgg 118468 U 0246, 0C86,2184,7DBF,D8B47,0025,C RCTEMP21_MCMDRI,READ.LONG jmmemm RCTEMP2]_ (MCMDR] RB).XZ, LOD INC BRA?,NEXT/0S.RED 118469 118470 ;}32;; CMPZV : ALLIGNED TEMP2 <= FIELD : OS.RED WILL DO RET FROM vSUB CMPZV : UNALLIGNED 1ST LONGWORD & READ ¢ZND SAVE ; e ————————————— ; 18457 VF.VSUB.REGI: 118458 U 0244, 0386,2184,7DBF ,D847,0024,8 LOD INC BRA? ,NEXT/0S.RED p : TEMP2 <~ FIELD ; OS.RED WILL DO RET FROM VSUB ;00wmmmmmm e —————————— ————; EXTV,CMPY P e e; FFS,FFC,EXTZV MCTEMP2]1_RLGPR,R+1] Q_MB, POS>317 TPL+SLI>327, NEXT/VF .VSUB.REG2 MCTEMP2]_RLGPR.R+1] Q_MB, POS>317 TPL+SL)>327, NEXT/VF .VSUB.REG3 B MLTEMP2]_RIGPR.R+1] Q_MB, POS>317" TPL+SL)>327, NEXT/VF.VSUB.REG4 : SET UP IN CASC UNALL IGNED :; POS>31?7 OR UNALLIGNED? : :; SET UP IN CASE UNALLIGNED ; P0S>31? DR UNALLIGNED? . P CMPZV ; SET UP IN CASE UNALLIGNED : P0S>317 OR UNALLIGNED? ; 118473 = :}gz;g VF . VSUB,REG2: U 0248, 0C80,0036,4030,0047,00FF,8 118476 NOP,NEXT/1E.OPER.FAULT : U 0249, 080,0036,4030,0047,00FF,8 2}3253 NOP,NEXT/1E.OPER,FAULT p 18478 118481 U 024A, 0486,2987,048C,C047,0000,3 118482 :}gzgz 118485 U 0248, 0086,2937,048¢,C047,0000,3 118486 118487 | EXTV.CMPY : PUS > 31 EXTV,CMPY : POS > 31 e ———; EXTV,CMPV FLAG2? ,NEXT/VF .VSUB.REGS ; EXTV OR CMPV? T ; EXTV,CMPV : UNALLIGNED FLAG2? ,NEXT/VF . VSUB.REGS ; : ALLIGNED MCTEMP2] RLGPR.RJ.RR,PS : TEMPS <=~ FIELD MLTEMP2]_(MB RCGPR.R1).RR.PS, ; TEMPS <= FIELD EXTV OR CMPV? Page 442 S : : CMTO98.MCX VIELD.AMIC MICRO2 1M(01) 28=NOV-83 Variable Length Bit Field U 0254, 0CB0,0036,4030,0047,00FF,8 U 0255, 0C80,0036,4030,0047,00FF,8 U 0257, 0086,2037,01B(,C047,0014,0 F : VF.VSUB 3 CLOKX Rev 13.00, Clock rate = 160ns Page ;18488 =00 ;18489 VF,VSUB.REG3: 118490 T ;00emm=mesmmesmcscsomcessonemenn : FFS,FFC,EXTZV ¢ POS > 31 ;}gzg} KOP,NEXT/1€. OPER. FAULT ; 118493 Y ;}gzgg T : FES,FFC,EXTZV : FUS > 31 NOP,NEXT/1E .OPER.FAULT $18496 u 0256, 0486,2087,018C,C047,0014,0 16:30:35 U ; 10mmmmmammooeaam—nm——n—— w===; FFS,FFC,EXTZV : ALLIGNED 118497 MLTEMP2] RLGPR,RI,XZ, $18500 :18501 ;1)=sm=eemmcssecccesasees wmw-m=; FES,FFC,EXTZV : UNALLIGNED M[TEMP?J (MB R[GPR.R1) X2, : TEMP2 <~ FIELD ;}gzgg ; TEMP2 <~ FIELD LOD INC BRA?,NEXT/0SIWRT ;}gggg.00 ; OS.WRT1 WILL DO RET FROM VSUB LOD INC BRA?,NEXT/0S.WRT1 ; OS.WRTT WILL DO RET FROM VSUB £18504 VF.VSUBLREGA: u 025¢, 0C80,0036,4030,0047,00FF,8 U 0250, 0C80,0036,4030,0047,00FF,8 U 025€, 0CB6,2087,018C,C047,0010,0 U 025F, 0886,2037,018¢,C047,0010,0 u C003, 0080,08E3,018D,8047,0014,0 u 0007, 088C,08E3,018D,8047,0010,0 118505 ;}gggg T 118508 (femomceemmceccmecoocueuameanns ; CMPZV : POS > 31 NOP NEXT/IE.OPER.FAULT : I -===; CMPZV : POS > 31 ;}gggg KOP,NEXT/1E .OPER. FAULT $18511 :18512 ;10mm=mmmmcceecescmmcoecocaaaoss ; CMPZV : ALLIGNED M[TEMP?J RCGPR.R1.XZ, : TEMP2 <~ FIELD :18515 118516 T MCTEMP2]_(MB RLGPR.R1).XZ, ;}gg}z ;}gg}g -on : LOD INC BRA?,NEXT/0S.RED * :18523 ;18524 : OS.RED WILL DO RET FROM VSUB LOD INC BRA?,NEXT/0S.RED 118519 VF.VSUB.REGS: :18520 0RY o ;}ggg; ; s c s e s w==; CMPZY : UNALLIGNED : TEMP2 <= FIELD : OS.RED WILL DO RET FROM VSUB o; EXTV PL_-D,LOD INC BRA?,NEXT/0S.WRT1 ; PL <~ =SIZE. OS.WRT1 WILL RET FRM VSUB ;1kmmmmamm e m e ee m e : CMPV BL_~D,LOD INC BRA?,NEXT/OS.RED : PL <= =SIZE. OS.RED WILL RET FRN VSUB z 443! CMT098,.MCX VIELD .MIC ) 28~NOV=-83 Mon MICROZ Variable Length Bit Field o o - Algorithm For INSV Alligned Variable Lengtn Bit Field " ;18525 .T10C o t 3 CLOKX Rev 13.00, Clock rate 6 16:30:35 e O 444| Fage 160ns : Algorithm For INSV Alligned'' ee AL IGNED § WORD1 s ] ' ) ’ : + o STEP1: ROTATE WORD1 ROR B8Y POSITION WORD1 ' WORD1 e e e B e 8 4 e 0 O 4 [} oo o e v 3 A t B ] -t frmmmmmmma e mcue e n e EE e E .. ————-—————————— STEP3: WRITE ROL BY POS + SIZE ROT WD1 SRC ' ROT WD ROR BY SIZE SR( ' ROT WD1 O O O O 4o O 0 O ) SRC O B e B e ] o e A § o e o e ' B | ot o - o 3 o ' 1 v v ne + e ma o <1 1 1<C} 1! §- 133 1] [ 1 tn]} [ e e [P S § SRC F 1w|[3K to t1 P-1 1] ] I-3 1[ 1] +- + 1 5 1i ][ 4+-- 3- ][][}[![] [N][ [ ¥) !) I[] I1 ]) - +-1})|3]i! F- 1 1] 1t 1] i- 1 I] 1] 1] +- |Ve ]) 11]11- 1 ]i ]1|[T [] 1- 1 31 [] ]1 +- 1 t I] ]b1w 31} 1- 13 1<t ] [ ] A tommummcanan—— fmmmm e —————— SRC fmmmmm———————— i Vvb=-1 3 1 : ! I [] .?[ [] +] -] [ ' ] [ 1e— 1 [ ol [ ] 1 ] [ 3 ] [Ii 1~11—1Ooa-~O1 ]tea1 ]' ot +i -+1 [[[}]] 1 [} )14s!¥] [}I-1e>=wal§ —i H 1 [ ] 1 1 sou ] | : Orme = 1 Z +--+ ] 1~ ] + -+ [ 4] ] [ 1 v ey O o ] [ ] [ o>l 1 1 ] 1 1 ] [ = ~h- — ;18616 ,BIN 1591 18617 ©0C0 GO0 00 0o O ¢ U 0285, 0084,0187,0D8(,D847,0026,8 h U 0284, 0C84,1777,0031,8047,0038,6 8 d 3 ek oD mah b D e U 0281, 0C81,2842,4DFD,8047,0429,8 o b b b D sad o b b b d b e 0000 0 Co CO L300 Co 0O Q000 0oQD G0 $o GO0 Co G b ) e e b b b b ek mad e 00 00 00 00 C0 CO L0 d b b b b D ed o N N T T O T T T T T T o P P R T N LA TR TR DR LA TR D L U 0280, 0086,503A,6180,8047,0410,0 OO OO0V O OO OO OO OO OO OO OO OO OO NN NI PONU PV PO RO RN — OO O N IVIVIIVALILAVIA IS I D D I BN an S B B NN AN A = OO0 NN DA =2 OO 00 O N AN = OO 00 N O A I (R = O O 00 O VN SAITU — O O 00 NIO~ W NN VIELD.MIC 1M(01) INSV ’ . N RAR R R AR SLATCH size . MEMORY ' . frmmem————— [T . . ! ALLIGNED . AR v kb kA ke Set to 1 bE 0S.VADD/Reg Mode when POS(TEMP1) > 31 T T L ) R AR . . ! T P ! T e L REGISTER DL E L L T+ ! LT fomm e ——— cejrmmenan———— + UNALLIGNED ! ALLIGNED ! UNALLIGNED ! fomemmmmm——— fomemm—— e ——-trmnmm e an femmam—— ‘g ) TEMPQ ! 1 work TEMPY ! Position | Position TEMP2 i 1 Work TEMP3 ! Work y Work TEMP5,D | Source ! Source TEMPé 1 Work ' Work FLAGO ! : FLAG3 ! S]ZE=32 | SI12E=32 . . ¢ ’ . . . . ' o . { Position | Position , , ' : ! Source ! Source ! : ; 0 : 1 ! SIZE=32 | SIZE=32 ! i , . ' } ; H temm——————— frmnr e ————— pummmnnm——. tmmmemsmn——— + . TR RRN AR Position ALUS<0> ¢ ] KRR Source PLATCH . ’ INSV! Fusition Q Resources . RN R RN MDR . . AR AR AR AR AR src.rl pos.rl size.rb base.ab Input ) : vVariable .ength Bit Field S RANRRRRANNRR AR R . CLOKX Rev 13.00, Clock rate = 160ns INSY ' .T0C 3 I 16:30:35 28-NOvV-83 : Variable Length Bit Field MICRO2 - : MCX CMT0.98 b e e d b D ek b CO 0o 0000 0o OB 0000 0 02 0000 CoCo0o : R AR AR R RN R R RA R RN AR RN N R AR RN AR A AN R RN AR RN A AR ARk A kv Rk ko .8E810N/1RDX.R1L,IRDX.R1H/1RDX.R2L,IRDX.RZH VF. INSV: =100 ;0 ---------------------- -y H PUSH,MLTEMPS] D_AQ, :: FO TEMP5 & D <~ SOURCE LOD INC BRA?,RERT/0S.RED ; GO EVALUATE SIZE PUSH : SL_MfMDR] WBRANGE ? ,NEXT/VF . INSV1; 0 RLTEMP6] _MLTEMP1],ASR.3, RN U T P . NEXT/VF.INSV.MEM YT P Y T T T T NEXTZVF, INSV.REG SL <= SIZ€ RET+3 :: MEMO RY TEMP6 <=~ P0S<31:3>(LONGWORD QFFSE? : OF POSITION) ’ : N ;10]=wmmemcmm e e. ;; RCGPR,R]_RB.RR,P POS>312 TPL+SL)>%27, RET+1 : : RET+4 STEP1 : REGIST REGISTER : ROTATE WORD 1 g? 2B8-NOY-83 16:30:35 MICRO2 1M(01) R ¢ INSV variable Length Bit Field J 3 Page CLOKX Rev 1%.00, (lock rate = 160ns :18667 RE8]ON/V1ELD.R1L,V!ELD.RiH/VIELD.RZL,VIELD.RZH/VIELD.R3L,VIELD.RSH .18668 v 0272, 0484,51F7,0030,0047,0038,¢ U 0273, 0080,0022,4130,8559,003F,9 b b D ek e e b OO IO ONONON N N NN NN ~ ans=ielelelelalelulwleiNolls oo ol e lloL o L] D 2000000 COCI00000000 O CO N0\ TN = O O 00 NICN N B ARD =2 O =2 OO 00 NOMN S AN 4 OO 00 IO AN B AR - L 0043, 0084,5877,0030,0447,0038,9 NN N NN NN NNN NN OO0 OO U 0042, 0085,2177,04F0,C047,0027,2 b D i ad b D D U 0387, 0080,0036,4D:9,0055,0004,2 b b U 0386, 0085,2FC1,0031,84A7,0038,7 b U 029D, 0480,0€7¢,013D,8047,003F,9 b D b U 029C, 0480,0e7C,0130,8047,003F,9 b b b d d ek b d U 0298, 0C80,0036,4030,0047,00FF,8 enam. . U 029A, 045E,1BFA,41BD,84E7,0013,0 b b b b e U 0299, 0480,0036,4180,0047,0413,0 b e U 0298, 0486,18FA,418D,84E7,0013,0 D e b 0 0O GO 00 T 0 70 CB 00 00 00 €0 G2 S0 GO 0o GO Co 00 G £0 0o Co 0o 00-0a €0 00 00 08 0 00 00 800 00 €0 C0 G0 Co CO 00! O P N T T TR T TR TE T PR T PR PR PR P T TR T 18669 VF.INSV1: - . - ¢ M[TEMP11 PL_Q,MDR_O LOD 'NC BRAY.NEXT70S.VADD ;00] mmmmmm ; GO EVALUATE BASE e e: e PUSH,LOD INC BRA?,NEXT/0S.VADD ;010mmmmm e em e S1Z€.€Q.[1,31] ; T1 <= POS, MDR_O FUR 0S.VADD REG MODE e S1ZE.EQ.0 GO EVALUATE BASE e : SI1ZE.EQ,32 : 71 <= POS, MDR_Q FOR 0S.VADD REG MODE MCTEMP1] PL_Q,MDR_O,SET FLAG3, LOD INC BRAT,NEXT70S.VADD : ; SET SI1ZE=32 FLAG, GO EVALUATE BASE s011-mmmmmec e cam s mcen e H NOP,NEXT/1E.OPER.FAULT : SIZE.GT.32 RESERVED OPERAND ;100==-m=mceemcomcmmn e a -awWB_RLZEROJI+1,IRD1 ; RET+3 : 10l RET+4 : SI?E.EQ.0 SET CC'S AND DONE mem e cnc e wa REZER03+1 IRD1 e Sesssnumen—. : : VF.INSV. MEM: ---------------------------------- SIZE.€Q.0 SET CC'S AND DONE SIZE.NE.O * VA<-LONG ADD CF FLD, PL<=POS QF FLD T :10 R S RO RS RSN G RO mD e mmnn. : READ 1ST LONGWORD, ALLIGNED? -o S 2 2 S o ¢ RCTEMP3] MCMDR].RR.P, FLAG3?.NEXT/VF,INSV.MEM.ALIND ALL IGNED STEP1_: ROTATE WORD 1 S12E=32? UNALL IGNED kETEMPOJ MCTEMPSI.RL.P,VA_VA+4, * STEP4 : ROTATE SOQURCE NEXT/VF. INSV.MEM. UNAL IND =0 VF.INSV, MEM. ALIND: RETEMP3) (MLTEMPS] RB).RR.S, ; BUMP YA FOR ZND READ NEXT/VF TNSV.MEMI : lere LONG D,SIZECIDEPI,IRDT & NE. 32 WORD 1 WITH SOURCE éE[IDEPJ. SIZE.EQ.32 28--NOV-83 1M(01) U 0388, 0460,58F7,0030,8555,0038,¢C U 038¢, 0085,2592,4030,C447,0038,0 U 038D, 0084,0937,0030,0047,0038,E U 038E, 0480,3837,0130,(559,003F,9 NI NN O 00 00 O 00 00 0o 00 On O U 038A, 00BO,6002,403D,84A7 0038,8 SN N SN TN N NN SN NN U 0389, 0085,2177,0030,8055,0038,A AN N LA NI PO PO T RO RO NI N NON) = b eh b b et b DHAND = O 0 00 IO N IS NS =2 OO 00 O S Liiry variable Length Bit Field SN NI NN N N T VIELD.MIC MICROZ €0 Cr X 20 Co 08 "0 OO0 CO OO0 O : CMTO98.MCX e N T P T TR T TR Oy S H K 16:30:35 3 CLOKX Rev 13.00, Ciock rate = 160ns : INSV VF, INSV, MEM UNAL IND: ------------------------ - e k[TEMPZJ MLMDRI.RR.P, : READ. LOND.MOD S -o VA_MCTEMP6] - s e AL LTI LN ; ; L L L WA S TR L L e L e e G n R ¢ L LY RCTEMP3]_(MLTEMPO] RB).RR.PS VF INSV, MEMT: e e e il L LD SET VA TO 1ST LONGWORD FOR WRITE UNALLIGNED : ey R UNALLIGNED : : STEPS5 : WRITE 1ST WORD WB_ (RLTEMP2J MLTEMP51) .RL.P a STEP1_: ROTATE WURD 1 ; READ 2ND !.ONGWORD SET MM ~01~r SI1ZELIDEPY, WRITE. S o UNALL IGNED DL T Y ) UNALL IGNED UNALL IGNED STEP6 : ROTATE WORD 2 DL bt STEP3 : WRITE Page 448 . P P e I e =3 = P e 0884,0887,003C,C047,00FF,8 €O 00 CO 0O Co 0o 01 Co 0O 08 G2 Ci 00 00 GG 00 G 00 20 00 €0 00 00 00 03 CO 0o 00 b saad e )884,08B7,003C,C047,00FF,8 b e e VF. INSV. REG ------------------ LLLLLLLLLL LN R[GPR R]_RB.RL.P, NEXT/1E.DPER.FAULT --u---u------------—-n------- R[GPR R)_RB.RL.P, ----------------------------- HCTEMPS] (MB RLGPR.R1).RR.S, FLAG3? ,NEXT/VF. INSY.REG] T T 0 S ¥ Y Y RCGPR.R]_ (kB MLTEMPS1) .RL.P., SET FLAGD D ek 0c44,58F7,003C,C047,0038, 0 St e Bt e S O e B e S O M D . b 3 ok O o a3 D ad ) ok e B b b 0283, 0084,5592,413C,C047,003F.9 s 0282, 0484,0582,413C,C047,003F,9 mesn. 0278, 0086,5837,0431,4047,0028,2 0084,5592,413F,(047,003F,9 UNALLIGNED THE TURKEY BLEW IT POS.LE.31, ALL STEPZ : ROTAT' S12E=32? SNET * WITH SOURCE POS.LE.31, UNALLIGNED STEP5 : WRITE WORD 1 SET UNALLIGNED TLAG UNALL IGNED STEP4 : ROTATE SOURCE UNALL IGNED MCTEMPS]_(MB RLGPR.R+11).RR.PS P b oD 0274, i VF. INSV.REG1: e < (et 0395, 0486,5937,003F,(047,0027,A POS.GT.31, b T 038F, 0084,5877,0031,4047,0039,5 - POS.GT.31, ALLIGN UN=DOSTEP1 THE TURKEY BLEW IT UN=-DO STEP1 NEXT/1E.BPER.FAULT b 02¢8, Page 449! =00 b b A 026A, 0486,51F7,04F(,C047,0027 e b e 0269, LR TR TR TR P b e N U 0268, 28-N0Y-83 16:30:35 : INSV Bi t Field NN NN NN NN NN N NN MICRO2 1M(01) variable Length — CMT098.MCX VIELD . MIC D0 o oo minge : ; i 3 CLOKX Rev 13,00, Clock rate = 160ns L L L T T T T T R L STEP6 : ROTATE WORD 2 L M[TEMPSJ (RCTEMP5] MB).RL.PS, FLAGO?,NEXT/VF, INSV.REG2 -0 wn-—----~--—-——-—---— --------- R[GPR RI_D,IRD1 VF.INSV. REG? -------mu-—n,~-—--~----—~----4 R[GPR RI_MLTEMPS], IRD1 Y DT Y XY L T L L L L L L e RLGPR.R*1) _MLTEMPS], IRD1 SIZE.NE.32(CHECKED FOR ALLIGNED ONLY) STEP3 : WRITE UNALLIGNED? SIZE,.EQ,32, ALLIGNED WRITE SOURCE ALL IGKED WRITE UNALL IGNED WRITE 2ND WORD : : CMT098 . MCX VIELD.MIC ;18774 . 18775 MICROZ 1M(01) ;18773 .10C NOBIN L1CODE OPS REG OEC: FPD [NOPJLCIE.OPCOD.DEC ;18779 .0CODE ;18780 :}g;g; {18783 ;18784 + 18785 QEC: CNTOLLCDJCOS.RED CNTTLLODICVF . CMPY .1CODE QED: FPD LNOPJLIE.OPCOD.DEC ;18786 .0CODE 18790 . 1CODE :18787 :}g;gg ;18791 ;18792 ;18793 : 18794 '}g;gg QOEE: FPD [NOPJLIE.OPCOD.DEC ,0CODE CNTICLODILVF.EXTV : 18800 ,0CODE :}ggg% ;18804 . 18805 ;18806 ;18807 ;18808 ;}gg?g QEF: FPD CNOPJICIE.OPCOD.DEC IRD1CLODICOS.RED OEF: (NTOCLOD]COS.RED (NTICLODICVF EXTZY ,ICODE 0EB: FPD CNOPICIE.OPCOD.DEC ,0CODE CNTTCLODILVF.FFC [ ICODE ;18814 ,0CODE ;18815 ;}gg}g ] ,0CODE MEM JOVF . CMPY ] ] ] JC0S.RED JLVF . CMPZY ] J ] JOVFEXTY JL0S.RED ) J 1 ]l J ] JL0S.RED JOVF . FFC JOVF FFS OF0: FPD [NOPILIE.OPCOD,DEC IRD1LLODICOS.RED ] ] OF0: CNTOCLODICOS.RED CNTI[NOPILVF, INSV JL0S.RED JOVF,INSY JCOS.RED CNOPJLIE.OPCOD.DEC 1. CLODJLOS.RED CLODICVF.CMPZV JLOS.RED JLVF . CMP2V [NOPJLIE.OPCOD.DEC 1, ([LODJLOS.RED JCOS.RED CNOPJCIE.OPCOD.DEC {Lop1C0S.RED 1, ] [CLODJCOS.RED JLOS.RED ENOP T IE.OPCOD.DEC 1, CLODJLOS.RED JCOS.RED CNOPJECIE.OPCOD,DEC CLODI[OS.RED J, ] CLODJCOS.RED JLOS.RED CNOPJCIE.OPCOD.DEC (LODILOS.RED 1, ] [LODICOS.RED [NOPILVF.INSV JCOS.RED JLVF . INSVY [LODILOS.RED ] ] JOVF.EXTZV ELODJCOS.RED CLODJI[OS.RED ] J{0S.RED ), CLODICVF.CMPYV CLODICLVF.EXTV [LODJLVF.EXTZV CLODJCOS.RED ] ] 1 ) ] J CLODICVF.FFC C[LODILVF.FFS i : Ird Rom Definition' 0PS FPA REG CNJPILIE.OPCOD.DEC CLODILOS.RED ] JLOS.RED ;18821 variable Length Bit Field JLOS.RED OEA: CNTOLLODILOS.RED CNTILLODICVF.FFS Page 450 (LOKX Rev 13.00, Clock rate = 160ns ] ] ] .ICODE 118822 . 18823 ' OEA: FPD CNOPJLIE.QPCOD.DEC IRD1LLODILOS.RED ;18818 ;18819 :18820 IRDT1LLODILOS.RED 0EB: CNTOLLOD]LOS.RED ;18811 ;18812 :18813 IRDTLLODPILOS.RED OEE: CNTO[LLODJCOS.RED L, 1CODE ;18801 IRD1CLODICOS.RED OED: CNTQLLODICOS.RED CNTICLODILVF.CMPZY ;18797 ;18798 ;18799 IRD1CLODILOS.RED M3 : Ird Rom Definition variable Length Bit Field ;18776 ;18777 ;18778 16:30:35 28-NOV-83 i :: FPA MEM ] JLVF, CMPY 1, JLVF.FFS | J, ] JEXTV ! J, ; JEXTZV ! 1. ] i i JFFC ] JLVF,FFC } 1CMPZV ] JLVF EXTZV , J ] JLVF (EXTV ' CMPV ! 1. ] JFFS | ' 1. ] s INSV 1, ] : ; ; MICho2 1M(01) (MT098.MCX VIELD.MIC 28-NOY~-83 16:30:35 N %LOKX Rev 13.00, Clock rate = 160ns variable Length Bit Field variable Length Bit Field : Dsize Rom Definition i ;18824 . T0¢C " é}gg%g QEC: SIZE [LONG] [BYTE] [BYTEDI [LONGI L 0J L 01 ;CMPV ? é}gg%g QED: SIZE CLONG] [BYTE] [BYTEJ C(LONGI [ 03 [ 0] ,CMPZV ; é}gg%} OEE: SI1ZE CLONGY [BYTF] [BYTE] [LONGI [ 01 [ 01 EXTV % é}gzgz OEF: "S1ZE [LONG] [BYTE] [BYTE] [LONGI L 03 [ 03 ;EXTZv ! 513332 OEB: SIZE CLONG] [BYTED [BYTE] LLONGI [ 03 [ 01 ;FFC g é}%%%é OEA: S126 [LONG] [BYTEY [BYTEJ [LONGI L 03 [ 0] ;FFS i é%ggzg 0FQ: S126 [LONG) [LONG] [BYTE] [BYTEX [ 01 [ 01 ;INSV { ;18841 ,UCODE ;18842 .BIN : Dsize Rom Definition' ] Page 451 : MO 28-NOY-83 Variable Length Bit Field 1884¢; B 4 16:30:35 X Rev 13.00, Clock rate ¢ : Dsize Rom Defin This page intentionally 160ns . left blank, i MICROZ2 MICRO? 1M1 CONTRL .M]C (MTO98.MCX (ONTR1 MIC . 28=NOV=83 16:30:35 C 2O~ 00 0000 00 00 Co 00 €0 0o 0o Co P I P o EEYEIEY [ENN :18843 .10¢ ”CONIRL.MIC“ ;18844 ,T10C ''Revision 18.0" .NOBIN .TO( ; REV 18 s 17 LN} G. koeckhoven, Brian Altison $18853 BIN EXPLAINATION some Initial addresses reiease. CLOKX Rev 13.00, (tock rate ;42322 : Revision History'' force 4 160ns Page 453; ; : CMTO98.HE% CONTRL. MICROZ 1M(O1) 16:30:35 28-NOV=-83 Control Instructions :}gggé .T0C D 4 R LA RS AR :}gggg : 118859 BXXXX Input displ.bb i 4541 : | : Conditional Branch Instructions'' Control Instructions " Conditional Branch Instructions ;18861 Page : Conditional Branch Instructions 318856 R ;18860 ; N CLOKX Rey 13.00, Clock rate = 160ns LA R AR AR AR AR AR 0SR LA AL R ALER LN _ Displacement :t***t'«*****kkt*i**it**t***i*******i********i***t*t***t*****k****************\\ ;18862 .REGION/IRDT,RIL,IRD1.R1H u 0058, 0780,0036,4870,05£7,0072,2 ;18863 =1000 ;18854 CO.BRCND: ;18865 ;1000==ssmmmmnn e nnna s=smweus; 118866 MDR_ZEXT(OSR) BRATST?, . GET DISPLACEMENT FROM OSR ;18867 ; TEST FOR BRANCH :}gggg :18870 . u 0n3%, 0080,0036,4B70,05€7,0072,2 i ) ;}gg;i NEXT/CO.BRCND~DECIDE ;18872 ;18876 218877 :}gg;g ;18886 ;18887 :}gggg 118891 ;18892 ;%gggz 101 =mmemmamacmmacannan m——————; ;1100mmmmemem e e; MDR_ZEXT(OSR) BRATST?, NEXT/CO.BRCND=-DECIDE s GET DISPLACEMENT FROM OSR : TEST FOR BRANCH ; GO TO DECISION BLOCK :110]==mmmmm e —————— R T MDR_ZEXT(DOSR) BRATST?, NEXT/CO.BRCND-DECIDE ;1110mmommm ; ; ; GE1 DISPLACEMENT FROM OSR TEST FOR BRANCH GO TO DECISION BLOCK o mm e e s e e acc e e ; MDR_ZEXT{(OSR) BRATST?, :}gggg NEXT/CO.BRCND-DECIDE ;1111 =mmmmm e ; GET DISPLACEMENT FROM OSR ¢ TEST FOR BRANCH ; GO TO DECISION BLOCK ——————— ; 218901 MDR_ZEXT(OSR) BRATST?, ;}gggz NEXT/CO.BRCND-DECIDE : 18902 . GET DISPLACEMENT FROM OSR ; TEST FOR BRANCH ; GO TO DECISION BLOCK 218896 218897 ; GET DISPLACEMENT FROM OSR : TEST FOR BRANCH ; GO TO DECISION BLOCK NEXT/CO.BRCND-DECIDE ;18882 $18900 .. 005F, 2080,0034,4870,05€7,0072,2 NEXT/CO.BRCND=DECIDE ;%gggz $18895 v o QUSE, 0(80,0036,4870,0567,0072,2 e; MDR_ZEXT(OSR) BRATST?, MDR_ZEXT(OSR) BRATST?, :18890 . o 005h, 0C80,0036,4B70,05€7,0072,2 ;1010=mm ; GET DISPLACEMENT FROM OSR ; TEST FOR BRANCH ; GO TO DECISION BLOCK ;18881 :18885 U 0usE, 0080,0036,4870,0567,0072,2 ===mmmmmemcmcocmmemcceeoon : MDR_ZEXT(OSR) BRATST?, $18880 iy .h%8, 0080,0036,4B70,0567,0072,2 11001 . GO TO DECISION BLOCK ;18871 :18875 s PO%A, 0080,0036,6870,05£7,0072,2 NEXT/CO.BRCND-DECIDE ; GET DISPLACEMENT FROM OSR : TEST FOR BRANCH ; GO TO DECISION BLOCK 218905 REGION/CONTRL .R1L, CONTRL ,RTH/CONTRL.R2L,CONTRL .RZH/CONTRL.R3L,CONTRL.R3H ! | ] | i ’ ! MICROZ (MT098.MCX CONTRL.MIC 16:30:35 ) J 072%, 0c81,2816,40%D,8587,0072,2 E 4CLOKX Rev 13,00, Clc k rate = 160ns 455s Page : Conditional Branch Instructions ;18906 =0 I R ]U 722, 0080,0036,4130,0047,003F,9 . 28-NOV=-83 Control Instructions | f 1M(01) ! i; 118907 €0.NOP: ;18908 CO.BRCND=DECIDE: ;18909 (0mcomm IRD1 ;}gg}? e memcesvsmeas emww==w: NO BRANCH If CONTROL COMES HERE 118912 co. BRCND-BRANCH 118913 218914 +18915 1 | ! ‘ ; GO DO NEXT INSTRUCTION lee—eesescecesscescececescecsees : BRANCH IF CONTROL COMES HERE !! #c PC+SEXT(MLMDR]), SIZELIDEP],NEXT/CO.NOP s CALCULATEN : WASTE A CYCLE TO LET PC CATCH UP } —————n 4+ P s Mt Bn e oo o o ms P CMT098.M Cx M 1C CONTRL 1M(01) MICRO2 28-NOV~83 control Instructions F 8 9 1 40?72, 0480,0036,4030,05€7,0072,3 R TR AR AR AR RN BRB AR AR Input RN AR A AR RN ARk R XAk kR U079, 0480,0036,4030,0567,0072,3 Rk 007¢, 0480,0036,4030,05€7,0072,3 MDR_ZEXT(OSR), ' UO7F, 0480,0036,4030,05€7,0072,3 kA kT kb —emmmeeee; NEXY/C0.BRCND=BRANCH MDR_ZEXT(OSR), GET BRANCH DISPLACEMENT FINNISH AT GOCD LEG OF COND BRANCH GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH NEXT/C0.BRCND=BRANCH MDR_ZEXT(OSR), GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH NEXT/C0.BRCND=BRANCH MDR_ZEXT(OSR), NEXT/C0,BRCND=BRANCH ;111] mamammma———aenaas emmoeas : : ; NEXT/C0.BRCND=BRANCH MDR_ZEXT(OSR), . W k kA GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH NEXT/C0.BRCND=BRANCH ;1110=m=mmammmm e emaoae —mmmmee; V02E, 0480,0036,4030,0567,0072,3 Displacement ke kR kA ¢ - N 1070, 0480,0036,4030,0567,0072,3 R AR A Ak GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH NEXT/C0.BRCMD~BRANCH :1100=~s—ecomcnncnnonumnmn v R ? - MDR_ZEXT(OSR). MDR_ZEXT (OSR), kb RN AR RN GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH NEXT/C0.BRCND=BRANCH P . 0078, 0480,0036,4030,05€67,0072,3 OSR ke 2 .REGION /IRD1.R1L,IRD1,RTH 3 =1000 g C0.BRB: L —— MDR_ZEXT(OSR), 6 1010=m=mmmmmmmmammmmm———- 0074, 0480,0036,4030,05E7,0072,3 R AR AR R kR AR displ.bb 1007 ========m==cmmmeceaa= o Page 456‘ : BRB" Control Instructions ;18916 .70 7 o4 16:30:358RB CLOKX Rev 13.00, Clock rate = 160ns GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH GET BRANCH DISPLACEMENT FINNISH AT GOOD LEG OF COND BRANCH .REGION/CONTRL .R1L,CONTRL.R1H/CONTRL.R2L, CONTRL ,R2H/CONTRL ,R3L, CONTRL.R3H At ! I Xl 1 i — A TRl CMTO98.MCX CONTRL MIC H MICRO2 1M(01) 28-NOV-B3 16:30:35 G 4 CLOKX Rev 13.00, Clock rate = 160ns ’ ;18958 .TOC Control Instructions | :18960 AAALALALAAAALAAASALMAARAAALLAL AL 118959 l i 218961 ;18962 BRW ;18963 ; .1896(, Page 457| 1 BRW, JMP (ontrol Instructions Input displ.bw : BRW, JMP'" LLALELE LA OSR X8 ALAR AR ARk AR A ERRER fAits 7-0 of displ Bits 15-8 of displ 't*wlt***ktfi**fltt*w'ut*tt*********‘(*i***t**k*******t***i**t******i***i***t*titi ;18965 .REGION/IRD1.RIL,IRD1.RIH :18966 =1000 ;18967 C0.BRW: 118968 U 0098, 0485,759E,4000,2567,0073,0 v 799, 0485,759E,4000,2567,0073,0 ;18969 218970 ;}gg;1 :1897§ .138;9 NEXT/CO.BRW~ALLIGN 18975 s GET HIGH HALF OF DISPLACEMENT : :1010==mmmm——————— ————— “m——; + GET LOW HALF OF DISPLACEMENT '}333} NEXT/CO.BRW=ALLIGN : . 18980 RCTEMPO] ZEXT(X8) P( _PC+1, ; GET HIGH HALF OF DISPLACEMENT 1101 ]mmmmmmm s e ; ;18984 MDR_ZEXT (QSR), ¢ GET LOW HALF OF DISPLACEMENT .}gggg NEXT/CO.BRW-ALLIGN : 218985 218990 .}ggg; 215993 ;18994 ;18995 ,}gggg £18998 : 18999 U OU9E, 0485,759E,4000,25t7,0073,0 RCTEMPO] ZEXT(X8) PC _PC+1, MDR_ZEXT (OSR), ;18989 0 UYD, U485,759¢,4000,2567,0073,0 : : 18979 :118988 U £09C, 0485,759E,4000,25E7,0073,0 : GET LOW HALF OF DISPLACEMENT s GET HIGH HALF OF DISPLACEMENT :100] mmmmmmmmm————— e caae ————; GET LOW HALF OF DISPLACEMENT MDR ZEXT(OSR), 118983 Uy {198, 0485,759¢,4000,25€7,0073,0 NEXT/C0.BRW=ALLIGN 118974 118978 1} JU9A, 0485,759E,4000,25E7,0073,0 ;1000==mmmmcem e e e ————————— MDR ZEXT(OSR), RLTEMPO] ZEXT(XB) PC_PC+1, 219000 ;19001 RCTEMPO] ZEXT(XB) PC_PCH+1, : GET HIGH HALF OF DISPLACEMENT ;1100====mmmmmmmmmamm om e; MDR_ZEXT (QOSR), RCTEMPO ZEXT(XB) PC_PC+1, NEXT/C0.BRW~ALLIGN B e ;s GET LOW HALF OF DISPLACEMENT ; GET HIGH HALF OF DISPLACEMENT : ———— ————aae- ———— MDR_ZEXT (QSR), RETEMPO) ZEXT(XB) PC_PC+1, NEXT/C0.BRW=ALLIGN : GET LOW HALF OF DISPLACEMENT : GET HIGH HALF OF DISPLACEMENT ; :111Q=mmmmmmmmm—a—amcaacam————- ; MDR_ZEXT(OSR), RLTEMPQ] _ZEXT(XB) PC_PC+1, NEXT/C0.BRU~ALLIGN ; GET LOW HALF OF DISPLACEMENT ; GET HIGH HALF OF DISPLACEMENT : j ! | i | i ———— | ————————a (MT098.,MCX CONTRL .MIC MICRO2 1M(01) 2B-NOV=83 Control Instructions 19002 : wi JU9F, 0485,759€,4000,25€7,0073,0 16:30:35 H CLOKX Rev 13,00, Clock rate = 160ns : BRW, JMP B L At uatininiebedate ikt H RETEMPO] _Z2EXT(XB) PC_PC+1, NEXT/CO.BRW-ALLIGN ;19004 ;19005 » 4 MDR_ZEXT(OSR), $19003 et [ Page 458 s GET LOW HALF OF DISPLACEMENT : GET HIGH HALF OF DISPLACEMENT 19006 .REGION/CONTRL .R1L.,CONTRL.R1H/CONTRL .R2L, CONTRL ,R2H/CONTRL ,R3L, CONTRL .R3H ;18885 {0.BRW=ALLIGN: . . 3730, 0081,2292,4020,0467,0072,3 ;19009 MDR_MCMDRJ.OR. (RLTEMPO].RR, 24), ; CONCATINATE TWO HALVES OF DISP ;138}? ;19012 ‘19013 NEXT/C0.BREND=BRANCH 19015 ; 19016 ;19017 ; CONTINUE IN COND BRANCH FLOWS ‘*it*tt*t*tt*ttttt**fi*ttt***l***ttk\'(*t****kt*ttt**t***tt*t*ttti**tt**fittttfi*** ;19014 : JMP Input dest.ab MDR DSIZE LATCH Address to jump to Long 'ttt**ttttt**ttt*tttt*t*tt**xt**Rfi*«ttw*twn****t***i*****t***tttiw*ttttitfi*t*i ;19018 .REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L,IRDX.R2H ; 0396, 0081,2002,403D,8487,0072,2 19019 €0, JMP: 19020 0 jesmsssccccsccsssscccssrcssssosers : ;19021 PC_MCMDR], . $19022 NERT/C0.NOP STUFF PC WITH NEW ADDRESS e : WASTE A CYCLE TO LET IDR1 CATCH PC . (MT098.MCX EH MICROZ CONTRL .MIC ! 1M(01) 28«NOV=83 Control Instructions ;}3852 .ToC 16:30:35 I i BB " 4 CLOKX Rev 13,00, Clock rate = 160ns Control Instructions Page : 88" i ! t ! 219025 R R L LL A L A R L AR AR AR R AR AL AL A LA AL AR AL LA ;19056 H 8B(S.c,ss,cs.s¢,€C,881,CCD pos.rl, base.ab, displ.bb Position Q Input (Dest 1s in memory) 19027 ;19038 : MDR Base I ;19030 ] 19029 ; . 219031 ¢ :19032 ; ;19033 ; . Input (Dest is register) 219034 ORI AL AR AR R 219037 MDR GPR (rnum) RNUM Position Base Register number of base A XB Displ Long Displ AR AR R AR AR AR ARAAARER A ARAAALAARALELASALEALALALAALALLALLLLL A :19038 .REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX,R2H ;19039 =111 ;19040 4 QOBE, 0180,0AF7,1670,0851,0072,6 : 19041 ;19042 ;19043 ;19044 €0.BBS: ;19045 €0,.88(: ;19046 IV QUBF, 0085,2777,0030,4047,04%" 219047 ' Q0DE, 0980,0AF7,1670,0855,0072.6 : WL emmn READ.LONG e ——— wmmseue. Q ZLJTPL[iJ, 1R<2=0>7 ,NEXT/C0,BB=~MEM. IR0 PUSH,NEXT/C0.BB~GET.BASE ) IU QOFF, 0981,8C13,8030,1CA7,0073,2 ‘ « IF = 1 TEST FOR BIT CLEAR TN0ewc ; SHIFT AWAY F.IT POINTER ; CALL SUBROUTINE TO GET POSITION o na mmecemcccsasass - READ.LONG,MOD, ;s GET WORD CONTAINING BIT TO TEST ;19053 1R<2-0>7 ,NEXT/C0.BB~MEM. RO ¢ 1F = 0 TEST FOR BJT SET 219052 o ZLITPLLY], 219054 219057 (0.8BSC: 219058 C0,88(C: 5 00DF, (0C85,2777,0030,4047,0428,6 : MAKE MASK TO TEST BITY s IfF = 0 TEST FOR BIT SET 19051 219055 (0.8BSS: 19056 €0.BB(S: . . GET WORD CONTAINING BIT TO TEST 111 mmremecemwencanccccnsscanenn : RUTEMP1] _M[MDR).ASR.3, ;}ggzg 19050 =1110 H Long X8 DSIZE LATCH ;19035 i DSIZE LATCH ;19059 19060 :}8825 119063 ;19064 ;}gggg 1110 s MAKE MASK TO TEST BITY ; IF = 1 TEST FOR 81T CLEAR 111 lemmeccccccnccncnanana —mmm—- k[TEMP1J MCMDR].ASR, 3, PUSH,NEXT/C0.BB-GET ,BASE ;s SHIFT AWAY BIT POINTER . CALL SUBROUTINE TO GET POSITION 11110momwcmamarnannsscnasnanee= : VA _ML[VAJ . ANDNOT,Z2LITOL31], NERT/C0.BBI-READ ; MASK OFF ADDRESS BITS 1-0 : ;19067 €0.B8BSSI: ;19068 €0.8BBCCI: ;19069 « QOFF, 0C85,2777,0030,4047,0428.6 ;19070 219071 R B wreaaeannas mmmm—— RCTEMP1] _M[MDR].ASR.3, PUSH,NEXT/C0,BB~GET.BASE ; SHIFT AWAY BIT POINTER s CALL SUBROUTINE TO GET POSITION * 459 JMINGE MCX CONTRL JMIC ; IN 28-NQv-83 MICRO2 1M(01) Control Instructions 20 i1 | i1 16 ' ) 0725, 0081,7895,064D,A587,0072,8 s - . ¢ oo~ ombwm—aoomwomz\um—-oooo\xombw U 0724, J081,7036,4640,2047,0072,8 )1 i1 i1 1 0OOOO\OO*DOOOOOOOO*D\OOO’OOO*DOO J 0727, 0881,200A,0430,0047,0072,4 =l OO [elelolelolslalelalelaloleleleloleloielele 0O N NN NN OO 0 0O O 0100 VOO0 000000000000 U 0v6, 0C81,2004,0A70,0047,0072,4 i1 i1 1 ;1 ;1 1 | )1 i1 1 1 ;1 :1 ;1 ;1 ;1 —_ U 0752, U98Y,Q0F7,1660,0853,0072,6 -.......-....--‘.-... ;19072 16:30:35 : i 4 J CLOKX Rev 13.00, Clock rate = 160ns BB Page LREGION/CONTRL.R1L ,CONTRL .RTH/CONTRL .R2L , CONTRL .R2H/CONTRL .R3L , CONTRL . R3H (0.BBI=READ: © o Y W - o 0 o O ok g0 P fiEADMOD[%QCK,SIZECLONG], GET WORD CONTAINING BIT TO TEST MAKE MASK TO TEST BIT Q 2LITRL IF = 0 TEST FOR BIT SET 1R<2=0>7 ,NEXT/C0.BB~MEM, IR0 =110 co. BB-MEM 1RO: TEST BIT FROM MEMORY FOR SET UB _MCMDRJ.AND.Q WXTNE.0?,NEXT/C0.BB=MEM.F IXPC BRANCH IF WX NE O R D et S L P; WB_MCMDRJ.AND.Q, WXTEG.0? ,NEXT/C0.BB-MEM. F IXPC =0 0. BB-MEM FIXPC: 0 0 42 2 0 O PC_PC+1 MB_XB, o oy O A e B Gt e 1R22-0>7 ,NEXT/C0.BB=MEM.EXIT ey O TEST BIT FROM MEMORY FOR CLEAR BRANCH If WX EQ O P NO BRANCH SO SKIP OVER DISPLACEMENT DO THE BRANCH GET ONE BYTE FROM X8 460| | : : (MTO98.MCX CONTRL.MIC MICROZ2 16:30:35 28=NOV=-83 1M(OY) CLOKX Rev 13.00, Clock race = 160ns : B8 Control Instructions B K 4 Page 461 :19099 =000 119100 C0.BB=MEM.EXIT: 11910 :1318 D D d D e b D d A AT A b N ek : SET BIT TESTED S1ZECLONG, IRD1 : WRITE OPERAND BACK TO MEMORY 1110mmmmmwmcmcmm e e cm e ———— : BBSSI WRITE,UL MIMDR].OR.OQ, SI2ELLONGI, IRD? ; WRITE DATA AND UNLOCK BUS ; $1] 1w mm oo ~---=; BBCC] : WRITE DATA AND UNLOCK BUS WRITE.UL MIMDR].ANDNOT.Q, S1ZELLONGI, IRD1 AR AR AR AR AR R R AR AR KRR KRR ; AR KRR AR AR R AR ADDING THE BASE TO POSITION.ASR.3 R AR A R AR R AR s e RK AR AR R KRR AR AR AR KRR AR e PL_MIMDR], A TGS E BRA ON ADD?, AR RN R R LR AR AR ARR RGeS wen- PORPRPINS - —_ © [y = ) — m L AR AR RN AN RN * EVALUATE BASE OPERAND L o a=ssmscewuss; : PL34=3> WB ; ; RETURN [-1§ + KR AR RRRR KRR ' SAVE BIT POINTER IN PLATCH €0.BB=RET: 2t KRR * DON'T LOAD OSR WHEN GONIG TO 0S.VADD NEXT/0S . VADD [ D orod e d b b D b aad amd ok b b AR R AR SUBROUTINE TO CALL OS.VADD AND GET THE BASE OPERAND IT ALSO FORMS THE ADDRESS OF THE BIT TO BE TESTED 8Y U e e e e w=m==; BBCC WRITE.LONG MCMDRI.ANDNOT.Q, WS D £ D I DB B D D N Ay DAr YRy b md TR D b oD T : WRITE OPERAND BACK TO MEMORY €0.BB-GET.BASE: b T 10 mmmm ' : SET BIT TESTED .8EGION/IRDX.R1L.IRDX.R1H/IRDX.R2L.IRDX.RZH b T e O O mh e e S b 7 ,03FF ,F U 0287, 0481,2FC1,0080,44A B b b h o U 0286, 0€81,28(2,463D,8047,0013,0 —— S— ; 88sC SI2ELLONG], IRD = D b rd b b : d D ek U 072F, 0881,2008,8120,0558,003F,9 ; b ek md : D0 GO 000000 D0V OO0V O00O000 U 072E, 0C81,200A,4120,0558,003F,9 B 1191 RR : WRITE OPERAND BACK TO MEMORY WRITE.LONG MCMDRJ.ANDNOT.Q, A4 x 1191 : CLEAR BIT TESTED SIZECLONG], IRD1 2 ; g} 1011 mmmmmmmmm e e e ; BBCS TM b h D o ok e U 072D, 0081,2008,8120,0559,003F,9 1191 : WRITE OPERAND BACK TO MEMORY WRITE,LONG MCMDRJ.OR.Q, > D 1191 : CLEAR BIT TESTED S12ELL.ONG], IRD1 <= D ; g} b U 072C, 0081,2008,8120,0559,003F,% :191 10105 mmm e o e : BBSS “em.man 1191 : LET PC SETTLE BEFORE DOING IRD1 WRITE.LONG MCMDR].OR.Q, e : 31 D ek ad U 0728, 0481,200A,4120,0559,003F,9 IRD1 = = D S S b 1191 D00 O LN I (NN = b 191 ¢ LET PC SETTLE BEFORE DOING IRD1 1001 ===~~~ Smesscomcnsemnn e ———. ; 88C AN FU PO POUNURGIO U NI : g} b D U 072A, 0481,200A,4120,0555,003F,9 $191 iRD1 4 0 O O 11910 ;000=~==neumennccnrnnnnnnnnen e . BBS G 00 N O AN T HN) = OO 00 NN W ES AN = OO0 NG VL By — ;}3}8 O N I L) = U 0729, 0080,0036,4130,0047,003F,9 :1910 OO U 0728, 0080,0036,4130,0047,003F,9 05,VADD RETURNS HERE THROUGH RQM LONG WORD ADD IS BASE+POS.ASR.3 SAVE BYTE POINTER IN PLATCH RETURN -1 : : CMT098.M§é CONTRL .M MICROZ 1M(01) L 16:30:35BB 28-NOV-83 Control lnstructions 4 CLOKX Rev 13.00, Clock rate = 160ns Page ;}3%25 €0.BB=REG: U 0397, 0181,2013,8A30,F847,0073,4 119153 ;}g}gg Y TEST TO SEE IF POS IS GEQ 32 WB_MIMDRJ.ANDNOT.ZLITOL1F], WXTEQ.07,NEXT/CO.BB=FAULT ; E}g}gg 8EGION/CONTRL.R1L.CONTRL.R1H/CONTRL.R?L.CONTRL.RZH/CONTRL.R3L.CONTRL.R3H E}g}gg C0.BB=FAULT: U 0734, 0C80,0036,4030,0047,00FF,8 E}g}g? NEXT/IE.OPER.FAULT U 0735, 0C81,2BC2,403D,8047,0075,0 119162 ;}g}gz eT ; PL_MIMDR ¢ PUT BIT COUNT INTO PLATCH 119165 U 0750, 0180,0AF7,1670,0847,0073,6 119166 19167 119168 119169 Y LET CHARLIE WORRY ABOUT IT je==mesmemsececcccmeeeee- S * MAKE A MASK TOQ TEST BIT 0_ZLITPLLC], 1R<2<0>7,NEXT/C0.BB=REG. IRO “ IF = 0 TEST FOR BIT SET : IF = 1 TEST FOR BIT CLEAR $19170 =110 :}3};; €0.BB-REG,%RO U 0736, 0480,003A,0A7C,C047,0074,6 119173 :}g};g 119176 U 0737, 0080,0034,0A3C,C047,0074,6 119177 ;13};8 we _RLGPR.R1.AND.Q, WXTNE.O?. NEXT/C0.BB~REG.FIXPC T * TEST BIT FROM REGISTER FOR SET ; BRANCH IF WX NE O e L L S: WB_RCGPR.RJ.AND.Q, WXTEQ.0? ,NEXT/C0.BB=REG.FIXPC : TEST BIT FROM REGISTER FOR CLEAR ; BRANCH IF WX EQ 0 119180 =0 :}3}35 €0.B8B-REG. F IXPC: ) U 0746, 0881,7036,4640,2047,0073,8 119183 ;%3122 119186 u 0747, 0881,7895,064D,A587,0073,8 PC_PC+1 MB_XB 1R32-0>7 ,NEXT/C0.BB~REG.EXIT N T me——— 119187 PC_PC+SEXT(XB)+1, 119189 1R<2-0>7,NEXT/C0.BB~REG.EXIT 119188 SIZECBYTE], * NO BRANCH SO SKIP OVER DISPLACEMENT : * DO THE BRANCH ; GET ONE BYTE FROM X8 462 : CMT098.M(X CONTRL .MIC MICRO2 28-NOV-83 Control Instructions 16:30:35 M4 : BB CLOKX Rev 13.00, Clock rate = 160ns :19190 =000 £19191 (0,BB-REG.EXIT: $19192 ;000=====scmmemmc e ee e ; BBS U 0738, 0080,0036,4130,0047,003F,9 119193 iRD1 u 0739, 0080,0036,4130,0047,003F,9 119195 i19196 ;007 =m=mmmmmmumc o mscem e cmn e : BBC : LET PC SETTLE BEFORE DOING IRD1 iRD1 119198 U 073A, 0484,003A,6413C,C047,003F,9 119199 19200 119202 U 0738, 0484,003A,413C,C047,903F,9 :19203 19000 119206 v 073C, 0084,0038,813C,C047,003F,9 119207 15208 119210 u 073D, 0084,0038,813¢,€047,003F ,9 119211 15212 119214 u 073k, 0484,003A,413C,€047,003F,9 u Q73F, 0084,0038,813C,(047,003F,9 S ; LET PC SETTLE BEFORS DOING IRDI Re L : BBSS : CLEAR BIT TESTED RCGPR.RI_RB.OR.Q, IRD1 : WRITE OPERAND BACK TO REGISTER ;011 mmmmmm e —————— : BBCS RCGPR.RI_RB.OR.Q : CLEAR BIT TESTED IRD1 : WRITE OPERAND BACK TO REGISTER ;100=======ccmomcmmomacecononnnn : BBSC RLGPR.RJ_RB.ANDNOT.Q IRD1 ;101 === mmmm e cs s st o m REGPR.R]_RB.ANDNOT.Q IRD1 ;110mommmm e man : SET BIT TESTED : WRITE OPERAND BACK TO REGISTER e ; BBCC : SET BIT TESTED : WRITE OPERAND BACK TO REGISTER s e : BBSSI 119215 RLGPR.R1_RB.OR.Q, 119218 ;11) mmmm i mmmmmmm e e ; BBC(I 115216 119219 119220 1RD? RLGPR.R]_RB.ANDNOT.Q IRD1 : WRITE DATA : : WRITE DATA : r — : : (MT098.,MCX CONTRL.MIC [ MICRO2 1M(01) 16:30:35 28~-NOV=-83 fontrol Instructions ;}35%; .T0C N 4 : BL8 " Control Instructions : BLB" 219223 REKRRH AR AR KRR AR KRR KRR AR R AR R R 019224 ;19225 ;19226 ; BLB(5,C) src.ri,displ.bb Input (Src is memory) ;19227 :19228 :19229 119230 . CZEIENE ) . Input (Src is register) AR A Page CLOKX Rev 13.00, Clock rate = 160ns LA AL RASARARER LR AR AR R R R AR RN AR AR Kk ok kK KAk MDR . Src GPR {rnum) RNUM XB Src Register number of sr. pispl X8 Displ RALALAAAALALAAS LALLM LALLM ALLALLELLRA] ;19232 .R2L, IRDX.R2H ;19233 _REGION/IRDX.R1L,IRDX.R1H/IRDX :}gggg C0.BLBS: U 039D, 0581,2(12,0A30,0847,0074,E 119236 ;}gg%g 119239 €0.BLBC: 219240 u 039t, 0181,2012,0A70,0847.0074,E 119241 ;}852% UB_MCMDR],AND.ZLITOL13, WX.EQ.0?,NEXT/CO.BLB-TEST ¢ TEST BIT FOR SET H it vt detde b H WX.NE.O?7,NEXT/C0,.BLB-TEST : WB_MLMDRI.AND, . LITOL1], ; TEST BIT FOR SET E}ggzé LREGION/CONTRL.R1L,CONTRL.RTH/CONTRL.R2L, CONTRL .R2H/CONTRL ,R3L, CONTRL .R3H 219246 C0,BLB=TEST: ;19247 J Q74E, 0481,7895,0000,A587,0072,¢2 il etttbtdalabetttd bbbl bl b : PC_PC+SEXT(XB)+1, ;{ggg¥ NEXT/CO.NOP 119249 119252 J Q74F, 0481,7036,4000,2047,0072,2 L ;19248 ;19253 :19254 SIZECBYTE], ; ; GO WASTE SOME TIME §lmmmmmemmeaas R TR R : PC_PC+1 MB_XB, NEXT/CO.NOP DO THE BRANCH : DISP IS A BYTE ; NO BRANCH SO SKIP OVER DISPLACEMENT ; GO WASTE SOME TIME 464 : : .MX {MT098 CONTRL.MIC B MC01) 28-NOV-83 MICRO2 Control Instructions ;}gsgg J0C " 219257 R ;19358 H e ACB(B, W, L) 119259 :19250 ; :19261 ;19262 $19263 J19270 $19271 216272 219273 219274 ;19275 219276 119277 ;19278 U 028F, 00B86,10¢(,7630,0047,0417,0 :19279 :}333? 19282 J 0290, 0481,7816,689D,A047,0075,¢ 219283 :183%2 S Control Instructions AL AR AR AL AL L AL R A limit.rx, add.rx, index.rx, displ.bw Input (lndex is memory) Input (Index is register) aa A Page : ACB" Q MDR OSR Limit Add . OSR of index X8 Displ DSIZE LATCH :19264 19265 ; 19266 ; $19267 ;19268 :19269 5 16:30:35ACB CLOKX Rev 13,00, Clock rate = 160ns AT AR R AR R AR AR RN Q MDR GPR ( rnum) RNUH DSIZE LATCH X8 R R RN R R AR Size of index Limit Add Index Register number ot Size of index Displ ARk ek kbbb Rk AW (REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX ,R2H =00000 =011 (0.ACBB=-MEM: (0.ACBW-MEM: CO,ACBL=MEM: 0111 lenmncmcmuccnnn mememem—a—— MLTEMP1]_Q Q_D, . SAVE LIMIT [N RTEMPI NEXT/0S.MOD ; RETURN WILL BE +1 PUSH,BRATMON ADD?, ; CALL 0S.MOD :10000-=~swmmaccccnonananannnan~" ; D_SEXT(XB) PC_P(+2, 1R<2>? ,NEXT/CD,ACB=SETCC ; MAKE SURE WE CAN ACCESS THE DISP . BRANCH ON IR2 (ACBB,ACBW) OR (ACBL) ;}gsgg .8EGION/CONTRL.R1L.CONTRL.R1H/CONTRL.REL,CONTRL.R2H/CONTRL.R3L,CONTRL.RBH 219288 (0,ACB=-SETCC: 219289 119290 e rtintaiaintalebedat ol bl b L bbb ; HERE ON A(BL MTEMPO_MDR+Q : WBUS AND MTEMPO GLT NEW INDEX ;19292 cCore, ;19291 U 075C, 0487,2009,0030,1508,0075,¢ WRITE,S12ECI0EP], s WRITE NEW INDEX BACK TO MEMORY ;}gsgz NEXT/CO.ATB-TEST,ADDEND : 119295 219296 i inintatiaiatalniaty) Rl MTEMPO_MDR+Q, 219298 CCoP1, 219297 J 075D, 0487,2009,0030,0008,0075,2 219299 . index WRITE,SIZECIDEP], NEXT/CO,ACB-TEST,ADDEND s SET CONDITION CODES bl ; HERE ON ACBB AND ACBW ; WBUS AND MTEMPO GET NEW INDEX s WRITE NEW INDEX BACK TO MEMORY . SET CONDITION CODES H 465§ 28=NOV-83 Control lnstructions 16:30:35 1M(O1) 1 ACB ’ ’ l ARSI/ u 07%1, 0C80,0003,0870,4047,0875,1 374+ ' . . : u 0733, 0080,0000,0870,4047,0875.,1 374 ' H o B . . U 0751, 0c80,0022,403p,8587,0072,2 . : : y 0753, 0080,0036,4130,0047,003F,9 l ‘ R Y Y Y wB_a, SIGND CMP?,S]7E TEST FOR GE@ O =01 0. ACB-TEST1 HERE FOR ADDEND GEQ 0 W8 <= LIMIT-INDEX TEST FOR INDEX LEQ LIMIT WB_RLCTEMP11=M[T NEXT/C0.ACB~TES ;1lmmmmeemeesmmaaeeeae e WB_MCTEMPO]-R SIGND CMP?,S] NEXT/CO ACB=T 466 | DRIVE ADDEND THRQUGH ALU FOR TEST NEXT/C0.ACB=TES SIGND (MP?,SIZE Page N mey AN NN P mO ’ T TM ) L —t ’ . AN U AN LA N WA h L LA U 0752, 0680,003A,487D,8047,0073,1 L Clock rate = 160ns AL A A AN LA U U (AN l MNOTUTLMLMVN = — S D D DD[elelelisle lelele] WIS ND = OO CO IO W S AN = O 0 O O N S ) — ’ Crd LA AN ; 000G 00000 800000000000 0000 UL ;19300 CO,ACB~TEST.ADDEND: l 5 CLOKX Rev 13.00, C o0 MICROZ T . MCX CMTG9B CONTRL MIC mhame : : HERE FOR ADDEND LSS 0 WB <= INDEX=LIMIT TEST FOR INDEX GEQ LIMIT =01 C0.ACB= TEST? ----------------- o DO THE BRANCH PC_PC+D, NERT/CO.NOP WASTE A LITTLE TIME ;1] emmanmmsueenn e nanma———— iRD1 ; NOTHING TO DO e e—— ; (MTO98.MCX (ONTRL MIC MICROZ 1M(01) 2B-NOV~-83 Control Instructions 16:30:35 D : ACB 5 Page CLOKX Rev 13.00, Clock rate = 160ns . 19326 ,REGION/IRDx.RIL, IRDX,R1H/IRDX,R2L,IRDX R2H ;19329 U 3i9F, 0(81,7816,689D0,A047,0028,C .%8%;? 1 | iyt tebiat il btk H D_SEXT(XB) PC _PC+2, ; MAKE SURE WE (AN ACCESS THE DISP 1R<3>? ; BRANCH ON OPCODE ;19332 =0 219333 (0.ACBL~REG: $19234 u 028¢C, 0485,2001,003C,D047,0075,4 (0 mmec e ceem e cn e - ;19335 RLGPR.R] _MLMDRI+RB, : WRITE NEW INDEX TO GPRLRNUM] ;39337 NEXT/CO.ACB=TEST.ADD.REG : ;19336 ccor2,SIZECIDERY, $19338 C0.A(BB~REG: ; SET CONDITION CODES .}ggzg CO.ACBW-REG 219341 19342 .;ggzz U 028D, v483,2001,003¢C,(847,0075,4 RLGPR.R],SIZ _MIMDRI+RB, ¢COP1,S1ZELIBEP], NEXT/CO.ACB~TEST.ADD.REG ; WRITE NEW INDEX TO GPRLRNUM] ; SET CONDITION CODES ; ;19345 _REGION/CONTRL.R1L,CONTRL.RTH/CONTRL.R2L,CONTRL .R2H/CONTRL .}ggég CO ACB~TEST.ADD,REG: 436+ D 8 119351 =01 ;19352 19353 ;19354 :19355 : 19356 ;19357 ;19358 19359 WB MLMDRJ, SIGND CMP’ SIZELIDEP] SIGND CMP?.SIZELIDEP], NEXT/C0.ACB-TEST2 (1] mm e WB_R[GPR,R1-Q s TEST FOR GEQ O SIGND CMP?,S] NEXT/C0.ACB=T WB <= LIMIT~INDEX TEST FOR INDEX LEQ LIMIT ————— DEP], .R3L,CONTRL .R3H : DRIVE ADDEND THROUGH ALU FOR TEST 10l mmmme e mm e ——————————— WB_0-RLGPR.R], P [a sl N1 J 0757, 080,0038,087C,C047,0875,1 ;13 TV U AU AV Y, Y U 0755, 0C80,0038,087C,C047,0875,1 430+ :19348 (T . LA AN N WA LR AN W (AN NN AN . U 0754, 0081,2592,4B70,0047,0875,5 %51« 1 I .}g%?g (0.ACB=REG: 193¢ 467 Y WB <~ INDEX-LI LIMIT * TEST FOR INDEX GEQ LIMIT MICROZ CMT098.m§é : 16:30:35 28-NOV=-63 Control Instructions CONTRL. 3%2? .TOC b LA ; 1M(01) U 075F, 0884,0E7C,003C,D047,0075,6 U 0756, 0881,2000,007¢,C047,0874,0 380+ U 0758, 0C80,0008,0070,0047,0874,0 373+ ;******t**t**t*tiittt**i\'*ttttt**fit*ik***i**k*tt**********t***t***t*t*****w**t 303 . 4 ; Nel¥ol¥olVaNollolVo NelVello Nolie N el sl ol o s ) ool o ] (N A AT N AT AT U N N A AN AR N AR A AN LA AN Q000000 N N NN NNNNNNOOOROPIRT NN 2O O NN SN =2 O 000~ : AoB" 5 RNUM Register number of index VA H , . . Input (Index is register) : ; XB GPR(rnum) H - MDR ) Limit MDR 6 SRR DSIZE LATCH . Limit Index Address of index Long timit.rl, index.ml, displ.bb ADBL (SS,EQ) Q Input (Index is memory) AR AR AR RN RN AR IR AR DSIZE LATCH X8 A AR R AR KA Displ Index Long Displ AR AR R KAk Rk ki kkkkkk REGION/IRDX,R1L, IRDX.R1H/IRDX.R2L, IRDX.R2H (0.AQBLSS: C0.AQBLEQ: D_SEXT(X8) PC_PC+1, REG MODE?,NEXT/(0.A0B~REG,TEST : MAKE SURE WE HAVE ACCESS TO DISP ; INDEX IN A GPR ??? 9386 C0.AOB=REG.TEST: 9387 9388 9389 i 0nmmmemmmmammm—emm—————————n : MTEMPO_MGR+1, : UPDATE THE INDEX WRITE,S1ZECIDEPD, P WRITE 1T BACK TO MEMORY 9391 NEXT70.AQB-MEM : 9393 RLGPR.R]_RB*1, 9390 b o ] Contral Instructions .gEGJON/CONTRL.R1L,CONTRL.R1H/CONTRL.RZL,CONTRL.R2H/CONTRL.R3L,CONTRL.R3H 9394, 3398 b anh o o U 075E, 0087.,2650,0030,1508,0075,8 : ADB " Page CLOKX Rev 13.00, Clock rate = 160ns 938 9397 ad b s b e e _ e S T T T S U 03A1, 0881,7816,690D,A047,0075,E e TR TR TR PR P Y P b b d b ) D ek b ad b b b d b oD and b D b e PR PR P ) b D D D D d d d e TR IR TR TR TE TR IR TR D e 9362 5 E 9398 9399 19400 CCoPo. : SET CONDITION CODES Y TR ; CCOP2.S12ECIDEP] : UPDATE THE INDEX ' SET CONDITION CODES ee ———— cemme—- H WB_MCMDRI-RLGPR.R], SIGND CMP_.NOT.iRO?, SIZELIDEPIINEXT/CO,AOB-BRA Y WB <= LIMIT = INDEX * TEST SIGN AND OPCODE : 3402 €0.A0B-MHEN; 94,04 +19405 WB_Q-MCTEMPO], SIZECIDEP], SIGND CMP .NOT.IRO? P w8 <~ LIMIT - INDEX * BRANCH ON RESULT AND OPCODE 468 H H (MT098 . MCX CONTRL M1 MICROZ2 1M(01) 28-NOV-83 Control Instructions F 5 16:30:35AOB CLOKX Rev 13.00, Clock rate = 160ns :19406 =000 11940 7 C0.A0B=BRA: 119408 U 0740, 0C80,0022,403D,8587,007¢,2 _ U 0741, 0080,0022,403D,8587,0072,2 U 0742, 0C80,00¢¢.403D,8587,0072,2 y 0743, 0080,0036,4130,0047,003F,9 : 19409 :}32}? ;19612 BC_PC+D, NERT/CO.NOP NERT/C0.NOP 319416 ;19417 PC_PC+D, 219420 219421 119422 ; AQBLEG DO THE BRANCH ;001 m=mmemmmr e e na e e o : ADBL.SS ; DO THE BRANCH 119413 :}gz%g ;19418 :19419 ; PC_PC4D, : 5010=momcmmmmemmn s m e nnensancnan : AoBLEQ H DO THE BRANCH NERT/(C0O.NOP H NR S inininde ; AOBLSS IRD1 : NO BRANCH U 0744, 0080,003%6,4130.0047,003F,9 319424 ;100-~-smmmmmtan e n s e — -H 1RD1 : AOBLEQ NO BRANCH U 0745, 0080,0936,4130,0047,003F,9 119427 ;101 emmcmmmce e e e ma : IRDY H AOBL SS NO BRANCH 219423 119425 ;19426 19428 - ; : S — MICROZ MT098.MCX 1M(01) —— - 16:30:35 28=NOV-83 e e 6 5 + S0B Control nstructions CONTRL MIC e - .}82;3.T0C ' control Instructions 19432 : 19635 5 SOBG(EQ, TR) index.ml, displ. bb Input (Index s memory) : Page 470 CLOKX Rev 13.00, Clock rate = 160ns i : Sop'! } ; }19431 .t**t***w****nu*tww*tttttttn**ttt**tt*tktt**************fltt**tt******t*tt*tt*t :19434 ;19435 ; ;19436 : , , Input (Index is register) ;19437 ; 19438 ; Index . VA Address ot index RNUM Register number of index X8 GPR (rnum) X8 i Displ Index Displ ;19439 ‘wt*fit*w**twtu*it**ttt**tttttfit*ttit*t*ttwtt**t*i*itt*itt**i***tt***t**t***tti ;19441 (0, SOBGEQ: ;19440 REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L ,IRDX.R2H :}322% €0.S0BGTR: U 0342, 0081,7816,500D,A047,0076,6 E}gzzg 6 SEXT(XB) t._. «+1 E MAKE SURE WE HAVE ACCESS TO DISP 119446 ,REGION/CONTRL.RIL,CONTRL.RTH/CONTRL. R?L CONTRL .R2H/CONTRL .R3L,CONTRL .R3H 119447 19448 U 0766, 0885,¢651,2D07C,55DA,0874,8 407« 0 119449 19450 jmememesecsescscesseccccecccssnnee ; RIDST.RI_D_MCMDR)-1 s SUBTRACY ONE ... NEXT/C0.S0B-BRA H WRITE 'NOTREG,SI1ZECIDER) CCOP2 SIGND (MP .NOT.IR0?, ;}8225 ; WRITE INDEX BACK TO MEMORY ; BRANCH ON TEST AND OPCODE 119453 0, SOB-REG: J19454 U 0767, 0084,0E7D,2D7C,D047,0874,8 407« 119455 00 jeeeesmmccccmcccccnccncconcocnaes : ;18229 £000 N R[GPR R)_D _RB-1,512ECIDER], y 0748, 0080,003A,403p,8587,0072,2 u 0749, 0¢80,0034,403D,8587,0072.2 ; U 074C, 0580,0EBO,VA3B,F847,0876,0 378+ e m————— memee————— . ; SOBGTR TAKE THE BRANCH ; BRANCH ON TEST AND OPCODE NERT/CO.NOP 119463 119464 100 === mmm—— e w——— --=-; SOBGEQ PC_PC+Q, : TAKE THE BRANCH ;}gzgg 19468 219469 ;}32;9 119472 v 0748, 0C80,003A,403D,8587,0072,2 SUBTRACT ONE ... ;}322; 119467 ] U 074A, 0580,0EB0,0A3B,FB847,0876,0 378% 1000 mm PC_PC+Q, INDEX IS IN MEMORY ; cCoP2" STEND CMP'.NOT.IR0? 219458 (0,S08-BRA: : 19459 ;19460 INDEX IS IN MEMORY ;19473 NERT/CO.NOP ; WASTE A LITYLE TIME s WASTE A LITTLE TIME 1010~ mmmmcecce e nen e mt - ; SOBGTR (NO BRANCH PROBABLY?7?) WB_D-OL1T24(17F1, WX7EQ.0?, NEXT/C0.SOB=-TEST.MOST.POS ; s H ;01]emmmmmmmamm—m— e ——— - ; SOBGEQ PC_RC+Q, : TAKE THE BRANCH ;}gzgg NERT/CO.NOP 219477 wB_D~ 0L1T24[17FJ s NEXT/C0.S0B-TEST,MOST.POS H 119476 219478 .}gzgg 19481 ;19482 19483 TEST FOR MOST PQOSITIVE CASE TEST FOR 7FFFFFFF s WASTE A LITTLE TIME (100mmmmmmmremmn e wmesnwenaeas SOBCTR (NO BRANCH PROBABLY???) WX, E0.07, (10 TEST FOR MOST POSITVIVE CASE ; TEST FOR 7FFFFFFF ememmronnccncn e ana s mn - SOBGEQ (NO BRANCH PROBABLY???) we D=0OLIT24[17F], WXTEQ.0?, s : TEST FOR MOST PQOSITIVE CASE TEST FOR 7FFFFFFF i ‘ ! ! ; Y MICRO2 (MY098.MCX 1M(01) 28-NOV=83 Control Instructions CONTRL MIC L 074D, 0380,0EBO,0A3B,F847,0876,0 378+ ;%3zgg } 16:30:35 H t SOB 5 CLOKX Rev 13.00, Ctock rate = 160ns NEXT/CO, SOB=TEST.MOST.POS : 119486 =0 :}gzgg (0.S0B=TEST.MOST.POS: U 0760, 0080,0036,4130,0047,003F,9 . J 0761, 0C80,003A,403D,8587,0072,2 E}gzgg 1RD1 119491 219492 ;lmmmemm e CLELETE PC_PC+Q, 119493 NEXT/(0.NOP ; ALL OK LY : TAKE THE BRANCH P WASTE A LITTLE TIME L Page 471, ; H CMTO9&.MCX CONTRL . MIC MICRO2 1M(C1) : CASE Control Instructions ;%gfigg .T0C 5 1 16:30:35 2B-NOV-83 " Page 472 CLOKX Rev 13,00, Clock rate = 160ns Control Instructions : CASE" 319499 :**kt****fifi*kfiititfifitltt**tiittkflwltt**tfltttttttttttttnt*t*tt**w**t**********i. 119497 ; ;19498 ; ;19499 . CASE(B,W,L) Input 219500 ; :19501 ; :19502 (Limit is memory) Input (Limit is register) Selector Base Q MDR Selector Base GPR (rnum) Limit DSIZE LATCH $19304 19506 Q MDR DSIZE LATCH 112503 :19505 ;A MAX A Ax kb h kR AR AR AR R AR ARk R AR AR RNUM AR AR ;19507 ,REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H . Size of limit Size of Limit . Register number of Limit AR IR RERR R RN RAR N 219508 Q2AF: 19509 CO.CASEB-MEM: 219510 CO.CASEW~MEM: 219511 (O, CASEL-MEM: 219512 ;0111 mmemncmnc e canan - ——— : U 02aF, 0085,2008,0630,0047,0410,0 519513 RUTEMP3] _0-ML{MDR], ; MTEMP3I <~ SELECTOR-BASE :}3;}2 NEXT/0S.RED : 219514 PUSH,BRA ON ADD?, ;19517 280: U 0280, 0(81,2003,0030,00¢7.0076,8 119518 ;}gg;g ; CALL OS.RED TO GEY LIMIT ;10000=smmsomennm i n -: WB_RLTEMP3]~MLMDR], SIZECIDEP].ALUS_UNSGN : COMPARt BY _ (SELECTOR-BASE) ~ LIMIT ; LEAVE RESULT IN STATE LATCHES ;195?1 .REGION/CONTRL.R1L,CONTRL .RTH/CONTRL ,R2L, CONTRL. ,R2H/CONTRL .R3L ,CONTRL .R3H :}ggg% CO.CASE=DISP.ADD: U 0768, 084,359,0031,0047,0076,9 219524 :}32;2 ;19527 U 0769, 0481,A001,0871,1CA7,0075,8 :19528 ;}gg%g :19531 219532 U 0758, 0085,2592,4930,4047,0076,2 219533 :}82%2 219536 U 0759, 0485,2592,4010,4050,0076,8 119537 119538 119539 :}ggz? :1954§ SI1ZECIDEP] - VA MLPCI+RCTEMPS], 10)=mmmm e r e remr rr e RLTEMP1]_MLMOR], ; e e ———————— : ALDS? ,NEXT/CO.CASE=DECIDE CO.CASE~DECIDE: ; FORM POINTER TO DISPLACEMENT REG MODET,NEXT/CO.CASE~BAD : GET ADDRESS OF DISPLACEMENT ; USE ALUS TO DECIDE WHAT TO DO ——— ; NOT LESS THAN OR EQUAL ; SAVE LIMIT TO SET CC'S WITH H RUESIEEELLE L ——enccnsas wemeemmws LESS THAN OR EQUAL READ S1ZELWORD) RCTEMP1]_MEMOR], NEXT/C0.TASE-GOOD GET DISPLACEMENT : SIZE OF DISP IS ALWAYS WORD : SAVE LIMIT IN TEMP1 : J10emmme e — . —— ; LESS THAN OR EQUAL ;1954 READ : 119545 RCTEMP1]_MEMDR), : SAVE LIMIT IN TEMPI 119544 u 075A, 0485,2592,4010,4050,0076,8 RCTEMP4] _ZEXT(MLCTEMP3]).SL.1, e ;}ggég ) selector.rx, base.rx, limit.rx, displ{0].bw,...displLlimit]. SlZEtUORDJ NEXT/CO.TASE=GOOD GET DISPLACEMENT ; SIZE OF DISP IS ALWAYS WORD : s MICROZ Control Instructions . . . . . . . 0768, 0081,2816,491D,8587,0076,4 . . . . . . . 0 » ’ 0762, 0481,2016,6030,8047,0076,D 0 3 ) . . 0763, 0886,258E,403(,C047,0076,C ’ . ¢ 0 . 076C, 0080,2016,603D,8047,0076,D ) . . . ’ ’ . 076D, 0980,0C31,0930,0087,0076,4 . . ] . L ’ . 0 . . . R . 0765, 0080,3000,013(¢,(347,003F,9 had 00D L U764, 0480,1003,0130,0847,003F,9 . L ] IO AN S NND = O D00 NN SMAND 2 OO 00 NS WU = O 0 . . L . T LU ’ IO L LL L LT L L L U L L 076A, 0¢80,3000,003¢,D0C7.0076,8 s W . . NG : LALAWV LT . LWL L A . . 000 NOMN SN = OOOO0 . ’ 4 O . ’ AN . ) W I » . O TU IV AN O DO O C O O TR CO 0000 CO000OCO00 o~ NN N N TN TN SN NN OO L LA LS v 03A3, 0885,2008,0030,0047,0076,A Page 19548 .REGION/IRDX.R1L, IRDX.R1H/IRDX.R2L , IRDX.R2H €0.CASEB~REG: (0. CASEW-REG: €0.CASEL~REG: . U 16:30:3SCASECL0KX Rev 13.00, Clock rate = 160ns 28=NOV=83 Mo 7 CO00 000000 C 000D 000 UO 000000 TO000000:00000:000 LU T L T U L U T AT U T T LT U Ui Ll e .- CMTO98.MCX CONTRL ,MIC T RLTEMP3]_Q=MLMDR)] ? TEMP <~ SELECTOR-BASE LREGION/CONTRL .RIL , CONTRL.R1H/CONTRL .R2L , CONTRL .R2H/CONTRL .R3L, CONTRL .R3H WB_MCTEMP3J-R[GPR.R] ALDS_UNSGN, S1ZECIDERT, { COMPARE BY (SELECTOR-BASE) - LIMIT * LEAVE RESULT IN STATE LATCHES NEXT7C0, CASE-DISP,ADD : €0.CASE-GOOD: C0. CASE=BRANCH: PC_PC+SEXT(MIMPRI), * ADD DISPLACEMENT 70 PC SI2ELWORD], REG MODE?,NEXT/CO.CASE-SETCC * ONE WORD DISPLACEMENT FOR THIS ONE ; GO SET (C'S WHILE PC SETTLES =0 C0.CASE=BAD: : MEMORY MODE ZERO EXTEND LIMIT : L D ZEXT(MCMDR) ,SIZECIDEP], NEXT/C0.CASE-BAD.FIXPC ;]mmmmmmmmmmem—m—ece—eme——ee——— ; REGISTER MODE MCTEMP2]_RCGPR.R] : GET REGISTER TO MTEMP TO ZEXT [ L L T T 6_2EXT(M[TEMP2J).SIZEEIDEPJ L L T T ) : ZERO EXTEND LIMIT .F IXPC €0. CASE-BAD BC PC+((D+ILITOC1D).SL.1), REG MODE?,NEXT/C0.CASEZSETCC ' PUSH PC PAST DISPATCH TABLE + GO SET CC'S WHILE PC SETTLES 0. CASE=SETCC: $0mmmmemmmemsomsemmesmsaem———— ; MEMORY MODE WB_RLTEMPSI-MLTEMP1], CCOPT,SIZECIDEP], 1RDY © WB <~ (SELECTOR~BASE) = LIMIT © SET CONDITION CODES DEXIT N L —— wmenmmana; REGISTER MODE WB_MCTEMP31-RIGFR.RJ, ' WB <~ (SELECTOR~BASE) = LIMIT gg8q1.5115[105p3. ; SET CONDITION CODES 473 ; : CMT098.MCX CONTRL.MIC MICRO2 1M(01) 16:30:35 28-NOV-83 Control Instructions ;}gggg .T0C : BSBB ;19600 ; ;19601 R BSBB Input displ.bx LAt A AR A S TR 119602 REGION/IRD1.RIL,IRDT.RTH 119603 =1000 119604 €0.BSB8: 19605 U 01F8, 0085,A592,4030,05€67,0076,E :19606 ;}gggg :19609 U 01F9, 0085,A592,4030,05€7,0076,E U 01FA, 0085,A592,4030,05E7,0076,E Al 119618 ;}gg}g 119622 ‘}3252 119626 ;}gggg $19630 :}32%; 119634 A ALL LA Displ AR AR ALLEALALALAMALLE AL :1000===-==c=cmcomcccmmnnnn ————; MDR_ZEXT (OSR) RCTEMPO]_MLPCJ,NEXT/C0.8SB * GET DISPLACEMENT FROM OSR : READ PC FOR LATER PUSH ;1001 =mmmmmmm e e; * GET DISPLACEMENT FROM OSR 119633 u O1FF, 0085,A592,4030,0567,0076,E LAttt MDR_ZEXT(OSR) :}gg}g 119699 U 01FE, 0085,A592,4030,0567,0076,E X8 AT AR SRR A AR AR AR AL AL $19614 :15625 U 01FD, 0085,A592,4030,05E7,0076,E A S AR : GET DISPLACEMENT FROM OSR 19621 U 01FC, 0085,A592,4030,0567,0076,E ‘ MDR_ZEXT(OSR) 119617 U 01FB, 0085,A592,4030,05E7,0076,E EAR i : Bssa" 119610 ‘}82}1 119613 Page 474 (LOKX Rev 13.00, Clock rate = 160ns Control Instructions ' 319598 R 119599 § K RCTEMPO]_MCPCI,NEXT/C0.8SB Y READ PC FOR LATER PUSH £ 1010=msmmmmmmmmmm e e RCTEMPO]_MEPC),NEXT/C0.8SB ¢ READ PC FOR LATER PUSH ;101] =mmommmomm e m e s; MDR_ZEXT (OSR) RCTEMPO_MLPCS,NEXT/C0.BSB $1100==mmsmm oo RLTEMPOI_MIPCI,NEXT/C0.BSB 1110 == mmmmm : READ PC FOR LATER PUSH e; MDR_ZEXT (OSR) MDR_ZEXT (OSR) ¢ GET DISPLACEMENT FROM OSR : GET DISPLACEMENT FROM OSR * READ PC FOR LATER PUSH e mm e e e ——n : RCTEMPO]_MLPCI,NEXT/C0.BSB : GET DISPLACEMENT FROM OSR : READ PC FOR LATER PUSH B Ll i e S e S LT ; MDR_ZEXT (OSR) RCTEMPOI_MTPCS,NEXT/CO.BSB ¢ GET DISPLACEMENT FROM OSR : READ PC FOR LATER PUSH ;111 mmmmm e m e ; MDR_ZEXT (OSR) : GET DISPLACEMENT FROM OSR VA_RLSP]_RB-CONX(4), : PUT_ADDRESS POINTED TO BY SP INTO VA 119635 RLTEMPO] MCPCS,NEXT/€0.858 ¢ READ PC_FOR LATER PUSH CONTRL.R3H .R3L ,L.R2L, H/CONTR CONTRL .R2H/CONTRL 119636 .REGION/CONTRL.RTL,CONFRL.R1 :}32%; (0.858: U 076E, 0C85,473C,0027,84A7,0076,F 119639 ;}3g§? $19642 119643 U 076F, 0480,0592,4020,0508,0072,3 119644 119645 PUSH RBS< N WRITE MLTEMPOI, SIZELLONG], NEXT/C0.BREND-BRANCH : MAKE RESTART POSSIBLE IF WE DIE S—— : PUSH SAVED PC ONTO STACK ¢ SIZE OF ADDRESSES IS LONG : FINNISH LIKE A REGULAR BRANCH | ! i | 16:30:35 1M(01) 0210, 0c85,759€,4000,2587,0u77,0 021E, 0(85,759€,4000,25€7,0077,0 S NN = OO [o-] U = O 00 NN R R AR KRR N I BSBW displ.bx Input Rk HRRKRERR KRk kR k Rk X8 0S R ke kAl AR AR +REGION /IRD1.RIL,IRD1.RMH =1000 €0.BSBW: : 10 MDR_ZEXT ‘OSR), ;1007 =mmammammmmam e -—=es PC_PC+1, NEXT/CO.BSBW-ALLIGN N ——— MDR_ZEXT(OSR), on - RCTEMPO]_ZEXT(XB) PC_PC+1, NEXT/C0.BSBW-ALLIGN e MDR_ZEXT(OSR), RITEMPO] _ZEXT(XB) PC_PC+1, NEXT/C0.BSBW=ALLIGN B) PC_PC+1, LIGN R AR kR ARk Bits 16=8 of displ Bits 7-0 of displ AR ARk he Ak Ak ko ke AR sk i DIS PLACZMENT FROM QSR HIGH HALF OF DISPLACEMENT DISPLACEMENT FROM OSR HIGH HALF OF DISPLACEMENT RLTEMPQ]_ZEXT(XB) PC_PC+1, NEXT/C0.BSBW=ALLIGN L MDR_ZEXT(OSR) AR KRR KRR DISPLACEMENT FROM OSR HIGH HALF OF DISPLACEMENT RLTEMPO] _ZEXT(XB) PC_PC+1, NEXT/C0.BSBW=ALLIGN MDR_ZEXT (OSR), RITEMPO] ZEXT(X3) Page 475; : BSBW'' ANRIRARA RN A A AR XK > 0e1c, 0085,759€,4000,25€7,0077,0 RRA KRR BSBW Control Instructions " 1 Dl ?PLACEMENT FROM OSR HIGH HALF OF DISPLACEMENT DISPLACEMENT FROM OSR HIGH HALF OF DISPLACEMENT DISPLACEMENT FR QM OSR ENT 4 HIGH HALF OF DISPLACEM - - - T(OSR), ~om SO 021B, 0(85,759E,4000,25€7,0077,0 O WVALSS LAIND = O O C0 NV T S 021A, 0C85,759€,4000,25E7,0077,0 OO0 ~ON I~ (W) — O O 00 0219, 0€85,759€,4000,25€7,0077,0 000000 hel OO0V O VOVOVOLD OO0 0 OO N0 0O D 00000 O 0D OO0 OO o e Xo NN OO OO ONONONON[e s NeNoNe OO O LN LA L U LIV LD <>~ QOCOCOCOCC COCOCRO0 0O~ N NN NNNN OO 0218, 0C85,759E,4000,25¢7,0077,0 D s 119646 . T0C : H 5 CLOKX Rev 13.00, Clock rate = 160ns J ZEXT(XB) PC_PC+1, .BSBW-ALLIGN DIS PLACEMENT F ?OM OSR HIGH HALF OF DISPLACEMENT Ih 28-NOV=~83 Control Instructions MICRO2 D T T T e S R T P R T AR L R P PR TR LR D P 3 2 ek h ed e e o b o mmd b b D b D b b e b 3 ok b md e h b e e d D D b ed bk —d h D e b ed . (MT098.MCX CONTRL .MIC L : : CMTO98.MCX CONTRL.MIC 28~NOV=83 MICROZ M0 Control Instructions M5 16:30:SSBSBNCL0KX Rev 13.00, Clock rate = 160ns ;111 U 021F, 0(85,759€,4000,25€7,0077,0 : MDR_ZEXT (OSR), RCTEMPQ] 2EXT(XB) PC _PC+1, NEXT/C0.BSBW=ALLIGN ~ ; GET DISPLACEMENT FROM OSR ; GET HIGH HALF OF DISPLACEMENT ; LREGION/CONTRL.R1L,CONTRL.R1H/CONTRL.R2L, CONTRL .R2H/CONTRL .R3L, CONTRL .R3H C0.BSBW=ALLIGN: L U 0770, 0881,2292,4020,0467,0077,1 L L T T T P TR L L MDR_MIMDRI.OR. (RLTEMPOJ.RR.24) Ve e U 0771, 0085,A592,4030,0047,0076,E e B RCTEMPOI MLPCI, NEXT/¢0.BSB D L L : CONCATINATE TWO HALVES OF DISP ¢ : SAVE PC FOR LATER H Page 476 ; ; M1CRO2 CM1098.MCX N . 1M(01) 28=-NOV-83 Control Instructions CONTRL ,M1C ;18;82 .T0C " ;19706 JSB ;19708 . 119709 RSB 219710 ; :19?11 CLOKX Rev 13.00, Clock rate = 160ns Control Instructions ;19705 RERRAE KRR AR R ;19707 . Page 477 5 16:30:35 ¢ JSB, RSB Input : JSB, RSB" R AR R XK AR KRR R R AR AR R KR A KR AR Rk dest.ab Input i AR KN ARk % . MDR Address of subroutine SP Address of return address ;R*fit***w*w*k**tt***wtwt**fi**tt*tk*tt*i*t*kk*****l\'********t**********t******** 116712 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H ;}g;}i 0.JSB: U 03A%, 0885.A592,4030,0047,0077,2 E}g;}g RCTEMPOI_MLPC) * SAVE PC FOR LATER PUSHING E%g;}g .REGION/CONTRL.R1L,CONTRL ,R1H/CONTRL.R2L, CONTRL ,RZH/CONTRL,R3L, CONTRL . R3H u 0772, 0881,2002,403D,8487,0077,3 i u 0773, 0085,473C,0027,84A7,0077,4 3}3;53 19721 119722 ;}g;gz 119725 119726 u 0774, 0080,0592,4120,05D8,003F,9 11972 $19728 U 02A0, 0480,05BE,4037,84A7,0077,5 ;}g;gz PC_MCMDR] i STUFF PC WITH NEW ADDRESS §mmmmmmmmme e —emmmmmmaaaeee ; VA_RLSP)_RB=CONX(4), PUSH RBS= : PUT ADDRESS POINTED TO BY SP INTO VA * MAKE RESTART POSSIBLE IF WE DIE et e DL LR R R; WRITE MCTEMPO], SIZELLONG], IRD1 © PUSH SAVED PC ONTO STACK i PC 1S LONGWORD v NEXT ! 119729 .REGION/IRD1.R1L,IRD1.R1H 119730 2A0: 119731 C0.RS8B: 119732 ;000%* 2 xx*FORCE ADDRESS**#¥¥tkw; VA_RLSP] ¢ SP HAS ADDRESS OF RETURN ADDRESS E%gggz .REGION/CONTRL.R1L,CONTRL .R1H/CONTRL.R2L,CONTRL .R2H/CONTRL.R3L, CONTRL . R3H N u 0775, 0084,073D,0027,805C,0039,6 119737 READ ' GET RETURN ADDRESS 119739 NEXT/TO,JMP ¢ FINNISH LIKE A Jump 119738 RCSPI_RB+CONX(4), * BUMP SP BY 4 CONTRL .MIC FPD 3D: (NTOLLOD]LOS.REN (NT1[LODILCO.AC3=REG .0CODE 0F 3. (NTOCLODILCO.AOBLEQ 19771 ;19772 19773 19774 19775 . 1CODE 0F2: FPD ,QCODE OF2: (NTOCLODILCO.AOBL SS 19788 :19789 ;19790 ,0CODF 0E1: [S IRDILLODILOS.RED CNTOLLODILCO.8B-REG (NTI1LNOPILCO.BB-RET . 1CODE :BBCC 0ES: FPD (NOPJCIE.OPCOD.DEC .0CODE 0ES: IRD1{LODILOS.RED (NTOLLODILCO.BB=REG (NTI[NOP][(O.8B-RET - ~m |Sy TMI FPD [NOP]ICIE.QPCOD,DEC A CNTI1INOPIL(O.AOBLS .MOD vTU O : IRD1LLODI[OS.RED LT S} 19786 19787 ,1CODE JAOBLSS [NOPJI[IE.OPCOD.DEC [V Ry N 19777 ;19778 19779 19780 169781 19782 19783 ;19784 ;19785 (NT1INOPI[C0O.ADBLEQ OO0 19776 ;AOBLEG PO [NOPJLIE.OPCOD,DEC RD1CLODILOS.RED 19767 19768 19769 19770 [ . REL [RD1LLODICOS oo ,1C0ODE 0F3 JACBW [NOPJICIE.OP(OD,DEC o0 219762 19763 19764 19765 JACBB JACBL —Z ,0CODE 19766 CNTOLLODILOS.RED CNT1LLODILCO.ACB-REG 3D 219760 ;19761 FPD [NOP]LIE.OPCOD.DEC IRD1CLODICOS.RED Lam Lan | ,1CODE S.RED (BB~MEM Zr— 0F1: CNTOCLOD][OS.RED (NTI1LLODILCO.ACB~REG FPA MEM RD1[LODICOS.RED ~—r ,0CODE ¢ Ird Rom Definition'' FPA REG R ,]1CODE 0 F1: 478 [SSTI] ;19758 : 19759 ; MEM oPs [NOPJCIE.OPCOD,DEC [T ;19756 19757 ,0CODE REG PD [ET) 119754 ;19755 ; 9D: (et ;19745 219246 119747 119748 ;19749 :19750 + 19751 ;19752 :19753 [ 1CODE_ 3 19744 6 Control Instructions " < $19743 ;19740 .10C NOBIN o ;19741 :19742 1MC01) M| CRO2 w : B CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 Definition Rom Ird t 28-NOV=-83 ontrol Instructions . MCX CMT098 (ale] H CONTRL M01) 28-NOV-83 MICRO?2 Control Instructions )— >2 16:30:35 : c 6 Ird Rom Definition MEM ~—m OPS {NOP [Lop [ —0 ww EPA REG OD.DEC . Page 479% 160ns (LOKX Rev 13,00, Clock rate oo =g CMT098 FPA MEM 3, ;BBCCI ] 0.88CC] (L] 0.BB=-RETY ] ] ;BBCS [ 0E3: FPD CNOPILIE.OPCOD.DEC IRDT1LLODIL 0S.RED .BBCS i L oo .BB-RET [NOP][IE.OPCOD.DEC CLopIL0S.RED .OPCOD.DEC ql1l.| OO .BBSS FPD [NOPJILIC.OPCOD.DEC IRD1CLODICOS.RED S.RED 0 0 - O BoLanlaln oo oan oo— e. O- LSi R[Y=oY =.za—n[o-+ OM—g .BB~REG E.OPCOD.DEC FPD [NOPJCIE.OPCO D,.DEC 1E {RD1[LODIL 0S.RED 1 ] — [=1=} g (=L oo BB-RET :BBSSI J' J J£C0.8BSS] J(f0.BB~RET mre -y JLco. BB-REG (MTOLLO D1L L BB-RET (NT1INO P1Jfco T T M3ON) o— ws +B88SC ] ;BCC [NOP] I E.OPCOD.DEC (Lopl CO.BRCND ow [TEIFE] [sa3=a} ot— a (NOP] INOP] L 8 8 AD.IRD Qo AD ., IRD .BCS NOPJLIE.OPCOD.DEC CNOPILI (LODILCO.BRCND LoDl [ “r e o (=Y [~ [~Y=) l I 8 B 4 Lo Lam : mry 1, g— 1 CODE IRD1{LODICOS.RED —— .0CODE 0E2: OPJCIE .OPCOD.DEC {NOP] [LODICOS.RED D] FPD [NOP]ILIE.OPCOD.DEC ag s .1CODE QF2: .888 Lo —_0 NONICUMNIVY .0CODE ] M —na LW .BB=RET .BBS — 2¢ 23 24 25 Y] 0 .1CODE OE4: —— UOMD ][anlan Lt o oo R H: 1. [=Y=Y — [ oo : CMT098.MCX MICROZ ;19847 ;19848 ;19849 :19850 :1332; L 1CODE OPS IRD1ILODILCO.BRCND 013: CNTQCNOPJLIE.BAD.IRD ;19853 ;SEE BEQGL :19854 ;19855 , 1CODE :}822; OCODE ;19856 ;19859 :13%2? . 1CODE :}ggg? 0CODE :19868 :lgggg ;19871 ;19872 ;19873 ;19874 219875 . 0OCODE ;19885 219886 : 19887 14: CNTOCNOPILIE.BAD.IRD JCIE.BAD.IRD 1A: ] FPD CNOPJILIE.OPCOD.DEC IRDICLODILCO.BRCND CNT1[NOP]ILIE.BAD, IRD . ICODE 0E8: FPD [NOPJCIE.QPCOD.DEC IRD1CLODILOS.RED CNT1CNOPICIE.BAD., IRD 219892 .1CODE :}gggg OCODE ;19896 ;19897 J J [NOPJLIE.BAD.IRD [NOPJCIE.BAD.IRD CNOPIIIE,OPCOD.DEC J 3 { 1. FPA MEM JL1E .BAD.IRD JLIE.BAD. IRD (NOPJLIE.BAD,IRD CNOPILIE.BAD.IRD JLI1E .BAD.IKkD JCIE.BAD.IRD ; ) 1, ] | i BEQLU ' i 1, ] ! JBEQL ] [LODILCO.BRCND _ JLIE.BAD.IRD JCIE.BAD.IRD 1 1 ;BGEQ 1, ] J ] 1 ] ] JC0.BLBS JCIE . BAD,IRD ] 15: CNTQLNOPJLIE.BAD.[RD CNT1INOPILIE.BAD.IRD JLIE.BAD. IRD JLIE.BAD.IRD hj [NOPJCIE.BAD.IRD JLIE.BAD.IRD CNOPJCIE.OPCOD.DEC 1. [NOPJLIE.BAD.IRD JL1E.BAD.IRD [NOPJCIE.OPCOD.DEC [LODICOS.RED 1, ] [NOPJLCO.BLBC 1(C0.BLB [NOPJCIE.OPCOD,DEC 3, [NOPJ[COD.BLB J[C0.BLBS [NOPJCIE.OPCOD,.DEC 1, (NOPJ[IE.BAD.IRD NOPICIE.BAD.IRD JLIE.BAD.IRD JLIE.BAD.IRD OINOPILIE.BAD.IRD [NOPICIE.BAD,IRD ([NOPILIE.BAD.IRD CLODILOS.RED ] ] ] ([ONOPI[CIE.BAD, IRD [LODILCO.BRCND 7 1 1, fLODILCO.BRCND [LODJ[CO.BRCND ] 15: FPD CNOPJCIE.OPCOD.DEC IRDTLLODILCO.BRCND [NOPJLIE.OPCOD.DEC ] J(C0.BLBC ;19888 ,0O(CODEOE8: CNTOLNOPJILCO.BLBS ;19889 ;19893 ICIE.BAD. IRD QE9: CNTOLNOPILCO.BLBC ;}ggg? FPA REG CLODILCO.BRCND ) ] ] ,0OCODE :}33%2 ] IRDICLODILCO.BRCND OES9: FPD [NOPJLCIE.OPCOD.DEC IRD1LLODILOS.RED ;19881 OPS CNOPJILIE.OPCOD.DEC ] JLIE.BAD.IRD L 1CODE ;19882 J(1E.BAD.IR 14: FPD [NOP]JLIE.QPCOD.DEC CNT1CNOPILIE.BAD.IRD ;19878 ;19879 219880 JL1E.BAD, IR 1Ay CNTOLNOPI[IE.BAD.IRD :}gg;g Page 480 BGEQU CNTIENOPICIE .BAD. IRD [ 1CODE ! (LOKX Rev 13.00, Clock rate = 160ns ] JLIE.BAD.IRD JLIE.BAD.IRD :19864 6 MEM 18: CNTOCNOPILIE.BAD.IRD CNT1LNOPILIE,BAD, IRD IRD1LLODILCO,.BRCND D + Ird Rom Definition ] :SEE BCC 119865 CNT1INOPIL1E.BAD.IRD ] 16:30:35 18: FPD [NOPJILIE.OPCOD.DEC :19862 ;19863 REG 013%: FPD [NOPJCIE.OPCOD.DEC . 0OCODE 28-NOV-83 Control Instructions CONTRL . MIC ;19846 1M(01) JCIE .BAD.IRD ;BGTR 1, JCIE.BA D IRD sBGTRY J, hj ;8LBC 1, «BLBS ] JUIE.BAD.IRD | ] ] JLIE.BAD.IRD | 1, 1 I ;BLEQ ] t . j 3. ] 1 ; H : 1M(01) 28~NOV=-83 16:30:35 018 FPD [NOPILIE.OPCOD.DEC REG ] MEM 01B: CNTOCNOPILIE.BAD.IRD CNT1ENOPILIE.BAD. IRD JC1E.BAD. IRD JC1E.BAD.IRD MICROZ2 CMTO98 . MC Control Instructions CONTRL.MIC ;19898 119899 .ICODE 00D ;}gggg 219902 :}gggz 119905 119906 -}gggg 119915 IRD1LLODILCO.BRCND 019: FPD CNOPILIE.OPCOD.DEC 0CODE IRD1CLODILCO.BRCND 019: CNTOLNOPICIE.BAD.IRD CNT1ENOPIC1E.BAD. IRD .}gg}? 119913 119914 OPS . 1CODE 119909 ° 119912 ; 119922 119923 119924 119925 119926 119927 012: FPD [NOPILIE.OPCOD.DEC CNT1ENOPILIE.BAD. IRD . 1CODE 1199417 T 119944 . 1CODE ;}ggzg 0CODE 119949 ] JCIE.BAD. IRD JC1E.BAD.IRD JCIE.BAD. IRD CNT1CNOPIL1E.BAD. IRD 119937 119948 1, 3 FPA MEM CLODILCO.BRCND J [NOPILIE.BAD.IRD [NOPICIE.BAD,IRD ICIE.BAD.IRD JC1E.BAD.IRD [NOPJILIE.OPCOD.DEC CLODICCO.BRCND 1, b 1 [NOPILIE.BAD.IRD ] 011: CNTOLNOPILIE.BAD.IRD .OCODE 0CODE 119945 JE1E.BAD.IRD ] 3 119933, ;}ggzg ) 7 | ] 011: FPD [NOPILIE. opcoo DEC IRD1LLODILCO.BRB . 1cODE 119938 ;}ggzg ] JC1E.BAD. IRD FPA REG ICI1E.BAD.IRD IC1E.BAD.IRD [NOPILIE.BAD.IRD ;BLEQU 1, ] ;BLSS 3, J BLSSU [NOPILIE.OPCOD.DEC J CLODIECO.BRCND [NOPI[CIE.BAD.IRD 3 CNOPICIE.BAD.IRD 1, ] 1CI1E.BAD.IRD ICI1E.BAD.IRD ;BNEQ 1, BNEQU . 1CODE 119930 119934 :}gggg 0PS :SEE BNEQ ;}ggsg 119931 119932 + Ird Rom befinition [NOPJILIE.OPCOD.DEC ; Page 481| : . 1CODE ;}gg;g - CLOKX Rev 13.00, Clock rate = 160ns ;SEE BCS ;}gg}g 00D IRD1CLODILCO.BRCND 119918 © 012: CNTOLNOPJLIE.BAD.IRD 119921 E 6 JCIE.BAD. IRD 031: FPD [NOPICIE. opcoo DEC 1RD1ELODILCO.BRW ] ] 031: CNTOLNOPILIE.BAD.IRD CNTTENOPICIE.BAD. IRD JC1E.BAD. IRD JC1E.BAD. IRD 030: FPD [NOPI[IE.OPCOD.DEC 00DE IRD1LLODILCO.BSBR 010: CNTOLNOPI[IE.BAD.IRD CNT1LNOPICIE.BAD. IRD 030: FPD [NOPI[IE.OPCOD.DEC TRD1CLODILCO.BSBW 030: CNTOLNOPILIE.BAD.IRD CNT1ENOPIL IE.BAD. IRD 1 JCIE.BAD. IRD 1 1 1 3 ] ] IL1E.BAD, IRD JC1E.BAD. IRD 1, 3 [NOPJCIE.BAD.IRD ICIE.BAD.IRD [NOPJKIE.UPCOD DEC £LODILCO.BRW 1, ] [NOPICIE.BAD.IRD CNOPICIE.BAD.IRD JCIE.BAD.IRD JCIE.BAD.IRD [NOPJCIE.OPCOD.DEC [LODILC0.BSBB 3, i [NOPJLIE.BAD.IRD 1C1E.BAD.IRD [NOPICIE.OPCOD.DEC 1, [NOPI[IE.BAD.IRD ~CI1E.BAD.IRD ] [NOPJICIE.BAD.IRD ] ] IC1E.BAD. IRD INOPIL] e.opcoo DEC [Lop1LCO.8 [NOPILIE.BAD.IRD LODICCO.BSBW 1 ] CNOPILIE.BAD.IRD JCIE.BAD.IRD JCI1E.BAD, IRD ;BRB 1, il ;BRW 1, 3 ;BSBB 1, ] BSBW ] IC1E.BAD. IRD 1, 3 : : MICRO2 CMT098 . M(X 19951 ’90’ . ICODE OPS RLG 01C: FPD CNOPJCIE.OPCOD.DEC IRD1TLODICCO.BRCND 19953 19954 .0CODE 01C: CNTOLNOPJICIE.BAD.IRD 219957 .1CODE :}gggg 119958 :19659 19960 19961 ;}ggg% ;19964 ;19965 119966 ;19967 :19968 }gggg CNT1INOPILIE .BAD. IRD 01D: FPD [NOPJLIE.OPCOD.DEC .0CODE CNT1[NOPJCIE.BAD.IRD . 1CODE 08f: FPD [NOPJLIE.OQOPCOD.DEC CNT1{LOD]LCO. CASEB-REG . 1CODE 219976 L 0CODE ;19975 :}gg;g :19978 119979 ;19980 OAF: FPD [NOPJLIE.QOPCOD.DEC ;19985 . 1C0ODE ;19988 ., 0CODE ;19989 ;}3839 IRD1LLODITOS.RED 0AF: CMTOLLODI[LOS.RED CNTTLLODILCO.CASEW-REG ;19995 19996 }338; JIOS.RED J0CO.CASEB~MEM .OPCOD.DEC RED .CASEB=REG PCOD.DEC ASEL=REG 005: CNTOLNOPJ[IE.BAD,IRD (NTIINOPIL ]E.BAD IRD JCIE.BAD. [RD JIE.B D.IRD ] ] 1, ; CASEB ] JLOS.RED JCCO. CASEB=MEM l, ] JCOS.RED JLC0.CASEL-MEM ; CASEL ] ] 1, ] ] s CASEW JLOS.RED JLCO, CASEV-MEM ] ] 1, ] ] ] JCI1E.BAD.IRD ] ] :BVS ] ] ] 005: FPD [NOPJLCIE.OPCOD,DEC IRD1INOPI[(CO.RSB 1, JCIE.BAD,.IRD ] JLOS.RED JICO.CASEW-MEM sBVC ] JCIE.BAD.IRD ] 1LC0,CASEL=MEM J0C0..38 .OCODE ] 1 FPA MEM JCIE.BAD,IRD COD.DEC ] 1, JCLIE.BAD,IRD ] ] 016: CNTOLNOPJ[CO.JSB ;20002 ) ] ] ] . 1CODE ;20003 220004 JLIE.BAD.IRD JLIE.BAD.IRD JICO. JMP JLIE.BAD. IRD CNTTINOPILIE.BAD. IRD FPA REG .OPCOD.DEC ] 016: FPD [NOPJLIE.OPCOD.DEC IRD1LLODICOS.ADD Page 482 (LOKX Rev 13.00, Clock rate = 160ns ] 017: CNTOLNOPILCO.MP CNT1INOPICIE.BAD. IRD ;19999 220000 20001 D.IRD .1 D ] ] . 0CODE 6 : Ird Rom Definition 017: FPD [NOPILIE.OPCOD.DEC IRD1LLODILOS.ADD ;19992 , [CODE 119993 119994 JLIE J{OS.RED ,0CODE 119986 :19987 JCIE OCF: CNTOLLODICOS.RED . ICODE F ] ] ] CNT1CLODILCO.CASEL-REG 16:30:35 MEM ] OCF: FPD [NOPICIE.QPCOD,DEC IRDICLODICOS.RED :19981 ;19982 ;}gggz IRDICLODICOS.RED 08F: CNTQLLODJCLOS.RED 19971 ;199?2 ;19973 IRD1CLODILCO.BRCND 01D: CNTOCNOPICIE.BAD.IRD .0CODE 28-NOV-83 Control Instructions CONTRL .MIC ;19950 IM(01) J0C0.JMP JLIE.BAD.IRD .OPCOD.DEC A 1, ] J 30€0.JSB .B JLIE.BAD.IRD C0D.DEC B ] ] s JMP ] ] ;JSB ] ] . 1, 3 JLIE.BAD.IRD JIIE.BAD,IRD ;RSB ] ] MICROZ2 TM(OD) MT098.MCX CONTRL.MIC ;20005 ,ICODE ;20008 ,0CODE 2 J1CODE 16 ) . 20006 120007 ;20009 ;20010 13 }g 17 6 Control Instructions ; 0PS REG : Ird Rom Definition OF4: FPD CNOPJLIE. PCOD DEC [RD1{LODILOS.S OF4: CNTOCNOPJLCO.SOBGEQ CNT1[NOPJ[IE.BAD IRD JCCco . GEQ JCI1E.BAD. IRD OF5: CNTQLNOPJL(CO.SOBGTIR CNT1INOPILIE.BAD. IRD 0PS MEM ] ] OFS: FPD CNOPILIE.QPCOD,.DEC 0CODE IRD1LLODILOS.SOB Page 483 28-NOV=83 16:30:35 6 CLOKX Rev 13.00, Clock rate = 160ns ] J ] ] JLCO.SOBGTR JCIE.BAD,IRD J ] FPA REG FPA MEM {NOPJICIE.OPCOD.DEC [LODI[0S.S0B 1, R [NOPJCCO.SOBGEQ INOPJLIE.BAD.IRD JLC0.SOBGEQ JCIE .BAD IRD [NOPILIE.OPCOD.DEC [LODIEOS.S0B J, ] [NOPILCO.SOBGTR JCCO.SOBGTR (ONOPILIE.BAD,IRD JC1E.BAD.IRD :SOBGEQ 1, ] +SOBGTR 1, ] N 28=NOV~83 Control Instructions MICROZ CMT098.MCX CONTRL.M]C 037 OBSPemSgBGhiactgp >0 03rL o0f o0JC 01t 0] ¥ o Lo v Lo o sLo e o L L L Lo L 00 6 : H 6 CLOKX Rev 13.00, Clock rate Dsize Rom Definition : Dsize Rom Definition" Control Instructions —2X2ZI2Z2I 16:30:35 M0 0 :20066 .BIN O01C 01 [ - 160ns Page 484 1M(01) PCALL.MIC PCALL .MIC ’ 28=NOV-83 16:30:35 1 6 CLOKX Rev 13,00, Clock rate :20067 .T0C ''PCALL.MIC" ;20068 .T0C ''Revision 18.0" ;%8898 : Jett Peng, Gerard Koeckhoven, Brian Allison Revision History' EXPLAINATION When execute the (A LLS and CALLG instruction with write protected Résc$ a{ga, the ERRCOD has to be set a proper value to indicate N emd ault, HOh 0077 0078 0079 0080 0 0 0 0 -3 ; MICRO2 . MCX C(MT0598 The ''CALLS and CALLG'' instructions have to read the mask as a word instead of a longword. Fix CALLx to pass proper addresS on ACV's to memory management Fix CALLx and RET to do exact probe it approximate probe gets TNV, Initial release. ;20085 .BIN Page 485 : : MICROZ CMT098.MCX 1M(01) Procedure Call PCALL MIC 28-NOV=-83 16:30:35 J 6 CLOKX Rev 13.00, Clock rate = 160ns + CALLS, CALLG :'20088 ;********&i***fi\\'***t**tt**it'(t**t*i* 2222332201223 ;20089 ; ;20090 ; 220091 ; ;20092 i CALLG arglst.ab, dst.ab CALLS numarg.rl, dst.ab Input AL SR AR AR IR AL LA AA AR AR ORISR | : CALLS, CALLG" Procedure Call ;20086 .o Page 486 3232222822000 00 dd 4y : Arglst,Numarg Q MDR Dst ASARAL AR AL LALLM ALALALALALALLAALAS ;20094 .REGION/IRDX.R1L,IRDX.RIH/IRDX.R2L,IRDX.R2H ;20095 PC.CALLG: ;20096 PC.CALLS: 220097 U 03A5, 0041,2002,403D,84A7,00C1,8 :20098 20099 jmmmmmscmcscmcecssoscascscnonons H : PUT SUBROUTINE ADDRESS IN VA VA_MIMDR], SET FLAGO : NEGATIVE LOGIC ! 258}8; REGION/PCALL .R1L,PCALL .RTH/PCALL.R2L,PCALL .R2H/PCALL.R3L,PCALL .R3H U 0C18, 04B5,200C,7670,0047,00C1,E 120103 RCTEMPO]_@ Q_MCMDRI, : SAVE SUBROUTINE ADDRESS IN Q ;58}82 IR<2-0>? ; PUT ARGLIST. NUMARG IN TEMPO ;20104 120107 =110 ;20108 :20109 U OC1E, 0886,658BE,6397,8050,0001,¢C 110mmmmm e e READ,SIZELWORD] ; FOR USE IN COUNT ONES ROUTINE — - CALLG : GET ENTRY MASK ;20110 MLTEMPS] D_R[SPj, ; SAVE SP IN D AND TEMP 6 :Sg}}% NEXT/PC.CALLG-ALLIGN H ;2011 120114 ;20115 U OC1F, 0886,65BE,6397,8050,0002,0 STERPC_14., . — e ; CALLS e mmmmm 1] ]mmmmmm READ,SIZELWORD] ; GET ENTRY MASK wB<1-0>.RET0?, ; TEST FOR ALLIGNED STACK ;20116 MCTEMPG] D_R[SPj. :Sg}%g NEXT/PC.CALLS=ALLIGN .20117 ¢ YEST FOR ALLIGNED STACK wB<1-0>,RETQ?, ; SAVE SP IN D AND TEMP 6 : 120120 =0 ;20121 PC,CALLG-ALLIGN: ;20122 e U 0C1C, 0D80,0C30,0032,24A7,00(2,3 ;20123 :gglgg ;20126 U 0C1D, 0D06,2C32,A030,1847,0001,¢C ;20127 120128 ;gg}%g b D L DL LR DL L e LAt : CALLG STACK LONGWORD ALLIGNED s MINIMUM ADDRESS POSSIBLE VA_D-ZL1T70(68.1], NERT/PC. CALL=-APPX, PROBE ; et tahuine ; CALLG MCTEMP23_D_D.ANDNOT.ZLITOL31], CLEAR FLAGD, NEXT/PC.CALLG~ALLIGN STACK NOT LONGWORD ALLIGNED ; LONGWORD ALLIGN STACK ; SO WE'LL KNOW ABOUT THIS LATER . CONTINUE AS IF STACK WAS ALLIGNED 150131 - 120132 PCLCALLS-ALLIGN: . U 0120, 0180,0C30,0032,44A7,0002,3 ;20133 120134 ;gg;gg ;20137 ] U 0c21, 0p06,2C33,4030,1847,0002.0 ;20138 ;20139 120140 R et atale L L L YA_D=2L110072.1, b L ; CALLS NERT/PC. CALL~APPX.PROBE (LEAR FLAGD, NEXT/PC,CALLS-ALLIGN STACK LONGWORD ALLIGNED ; MINIMUM ADDRESS POSSIBLE ; et O tat et ; CALLS MOTEMP2) D _D.ANDNOT.ZLITOL3], : STACK NOT LONGWORD ALLIGNED ; LCNGWORD ALLIGN STACK ; SO WE'LL KNOW ABOUT THIS LATER ; CONTINUE A3 IF STACK WAS ALLIGNED i 5 ; ! : . CMY098.MCX PCALL .MIC 2 MICRQ2 1M(01) Procedure Catl 16:30:35 28=NOV-B3 i K Page 487l 6 CLOKX Rev 13,00, Clock rate = 160ns CALLS, CALLG 220141 7E5: *k Sump to PCS wv v ;20142 PC.CALL=TNV: * kxexw«f ORCE ADDRESS*********é PROBE FAILED, DO EXACT APPfiOX ;01 ;20143 TO COUNT THE REGISTERS MASK GET RLT EMPS5] ZEXT(MLTEMPS]), ;20144 ELWORD SIZ 5 ], ;2014 ; STEP COUNTER <- 13 DEC ?TEPC,PATCH, ;20146 ;20147 FLAG1? ,NEXT/PC.CALL-ACV ;20148 . 13 . . 3] 07ES, 189C,559E,45D1,4047,G9C2,5 07€7, 0480,0036,4030,0047,00F8B,1 ’ . :20149 7E7: :Sg}g? ;11 xxxexxxFORCE ADDRESS**kkkkik%; EXACT PROBE FAILED. NEXT/1E.TNV.RBACK FAULY ;20152 PC.CALL~APPX.PROBE: 220153 ;20154 0c23, 0186,3EF6,47A0,809D,08C4,C 479+ 0cac, 0485,8592,4033,0047,0561,8 0C4D, 0485,2592,45F1,4047,007E,5 120155 ;20156 ;20157 120158 :20159 ;20160 - PROBE WRI1TE?,SIZE[LONG], [ TEMP5] MIMDR], LA 61?7 ,NEXT/PC.CALL=TNV 120168 ;20169 120170 ; LTEMP1] MLVAD, ;20164 ;20165 220166 TEST WRITE ACCESS SAVE PSL CONSTANT FOR LATER PUSH,NEXT/MM.PRB,WRT, TBM ;20162 ;20163 - -t . MLTEMP3]_PSL. PL_L16.] ;20161 ;20167 TNV SAVE VA LET CHARLIE DO THE WORK MOVE MASI. INTO TEMPS HAVE WE VONE EXACT PROBE YET? ACV *+ jump to P(CS wx GET MASK TO COUNT THE REGISTERS kR N TO*AakhnkhhhhhdkhARhAhkhRhRo RLTEMPS _ZEXT (MIMDRD), SIZELWORD], ;2017 DEC STEPC,PATCH, FLAG1?,NEXT/PC.CALL~ACV STEP COUNTER <- 13 120174 20175 WB_MCMDRI.AND.ZLIT12[3], 11171 == mmmmmm ACCESS OK 0161,2D52,0A30,1847,00¢3,(C ;20177 WX.EQ.0? 0c3c, 080,0036,4030,0047,00FF ,8 ;20179 ;20180 0C4E, 1899,259,4501,4047,00C2,5 0C4F, 0c3D, 0885,2A77,0031,0047,00(2,9 0c29, 0C86,558E,4671,0047,00C3,F 0c3e, 0085,4730,0027,84A7,00{3,1 c - . 84A7,00(2,B F, 0080,073C,0027, 0C3 ;20172 120173 =11 ;20176 .20178 SET MM.NOINT, ;20190 201N ;20192 ;20193 220194 120195 WBUS <~ MASK ,AND. 3000 DON'T ALLOW _ANYMORE INTERRUPTS TEST MBZ BITS OF MASK FOR ILLEGAL OPER MBZ BITS ARE SET GO TELL CHARLIE ;20181 ;20182 ;20183 ;20184 :20185 ;20186 ;20187 ;20188 ;20189 =110 es - - - e > o T - - o - TEMP4 <= MASK'0000 + m e e e o e ey 0 e T ¢ MCTEMPSI_ROTEMPA], SAVE SHIFTED MASK FOR TESTING LATER WHICH INSTRUCTION 2727 ;110 CALLG POINT STACK TO RIGHT PLACE IR<2-0>7 " o VA_RUSP]_D=-CONX(4), PUSH RBS=, K . MASK NEXT/PC.CALL-MAS - o SAVE STATE IN CASE WE FAIL e DEC STACK BEFORE PUSHING MICRO2 0c4B, 0C80,08%D,023D,8047,08C0,0 385+ T LR P N) =3 OO O OTM D = O 000~ OV O WSS (NN AN = OO 00 v LS [t 0C4A, 0084,3016,44D1,0047,00C4,8 j=l=] [elaTeolelelelwle el lelele LolOOCOCODODOOOOOOOO0O 0C35, 0081,29(2,4DFD,8047,00C4,A R (T PP R I NPT T 033, 0181,2F92,0030,7C67,00¢3,5 PO MR 0C31, 0481,2016,401D,8467,00C3,3 ST 0C2F, 0C84,0592,4037,84A7,00C3,1 oY NORU A2 RO NININY NI NUNONO AU NI ND AL NI NNV U PR PR PR PR R 0C2D, 0586.0030,0030,4047,0002,F L 0028, 0480,0592,4020,0508,00C2,D T N — — 2 Y LSTLCLNTNTLE LN LN LN SN LS C1a8 18 1,6 PONINONIPONVNI RS V00 nons NN Ty pr R Gar G Glr SR G P r Y o 3OOOOOODOOV Procedure Call P PCAL . MIC L NN NN N AUNI NNV ~- CMT098.MCX 16:30:35 28-NOV-83 : L 6 CLOKX Rev 13.00, Clock rate = 160ns CALLS, CALLG WRITE MCTEMPOI,SIZELLONG] : PUSH NUMBER OF ARGS ONTO STACK MCTEMPOI p-zLITOCBY : TEMPO GETS NEW SP UA_RCSPI_MLTEMPOI f SP <= D-8 PC.CALL-MASK.MASK: DR ZEXT(MTMDRD), : THROW AWAY ANY HIGH WORD CRAP ADR_MCMDRI.AND. OLIT8L15.] : MASK OFF DV AND IV BITS OF MASK SIZECWORD] : PC,CALL=FIND.REG: bL_MSS MCMDR, WX<15-0>,NE.0? : FIND MOST SIG BIT SET IN MDR : FIND OUT IF MDR = 0 e mec e —cco oo m s H MDR = 0 TEMP4 <- MASK'PSW SIZECWORD], ; EXTEND FROM BIT 15 60 BACK TO PUSHR OR CONTINUE CALL FLAG3? NEXT/PC.CALL-DONE.REG $10mmmmm RCTEMP4] RB.OR.ZEXT (MTTEMP3D), PR R WB_PL*2, WB5-053 H :; WBUS GETS PLATCH#*2 :; GO PUSH THE PROPER REGISTER Page , -~ ,,,,,, MICRO2 1M(0%) Procedure Catt CMT098 . MCX PCALL .MIC 28-NOV-83 16:30:35 M6 CLOKX Rev 13.00, Clock rate = 160ns ¢ CALLS, CALLG o Page o { 489 ;20226 =000000 120227 PC.CALL=PUSH,RO: :20228 0C00, 0480,05BE,4024,05D8,04C8,5 0C01, 0084,3016,44D1,0047,00C4,8 ;000000=========c~ommmmmmnnnecan : 120229 ;ggggg WRITE RCRO1,SIZECLONG], PUSH,NEXT/PC,CALL=DEC. SP1 PUSH RO ONTO STACK : 120233 120234 RCTEMP4] RB.OR.ZEXT(MCTEMP3]), SIZELWORD], * EXTEND FROM BIT 15 120232 ’583%2 IS THE EXIT POINT OF PUSH REG mmme :: THI' e ———————— 1000001 = meemum TEMP4 <~ MASK'PSW FLAG3? NEXT/PC.CALL~DONE.REG | ! : 120237 PC.CALL~PUSH,R1: 0002, 0880,05BE,4024,45D8,04C8,4 120238 120239 ;5852? 120242 0C03, 0081,2C12,0030,0(67,00C3,5 0C04, 0880,05BE,4024,85D8,04C8,4 PUSH,NEXT/PC.CALL=DEC.SP emmm ; e mmm—maman ;0000711 ===mmmm MDR_MIMDR].AND,ZLITOC13, 120247 120248 mm ; e —————— :000100=====s-cmmmmm WRITE RCR21,SIZECLONG], * PUSH R2 ONTO STACK ’58322 NEXT/PC.CALL=F IND.REG 120246 PC.CALL~PUSH.R2: ;585?8 ;20252 :ggggz PUSH,NEXT/PC.CALL=DEC.SP j 0C06, 0€80,058E,4024,C5D8,04(8,4 i , 0cu?, 0181,2012,0030,3067,0003,5 120257 * THROW AWAY BITS OF ALL PUSHED REGS * GO FIND NEXT REGISTER TO PUSH * GO SUBTRACT & FROM SP 1000101 —=emmmmmmmmmemcem——————- ; MDR _MIMDRI.AND.ZLIYOL3], NEXT/PC. CALL~F IND.REG 120255 PC.CALL-PUSH,R3: 120256 ) * GU SUBTRACT 4 FROM SP 120243 120251 0C05, 0981,2012,6030,1C67,00C3,5 000010 == =m-mrmnmencnmmmn——an ; * PUSH R1 ONTO STACK WRITE RCR11,SIZECLONG], 1000110 ; THROW AWAY BITS OF ALL PUSUTD REGS " GO FIND NEXT REGISTER TO PJSH =rmmms - mmmemcccmann——— : WRITE RCR31,SIZECLONG], * PUSH R3 ONTO STACK ;58523 PUSH,NEXT/PC.CALL=DEC. SP 120260 100011 = mmmemmmemmm——————————— ; 120261 20262 MDR_MCMDRI.AND,ZLITO[?3, NEXT/PC. CALL=F IND.REG GO SUBTRACT 4 FROM SP ! THROW AWAY BITS OF ALL PUSHED REGS * GO FIND NEXT REGISTER TO PUSH | ' H H MICRG2 1M(01) Procedure Call {MT098.MCX PCALL \MIC ¢ 0C08, 0880,05BE,4025,05D8,04C8,4 i u 0C09, 0581,2¢12,0030,7C67,00C3.5 28-NOV-83 16:30:35 ¢ N 6§ CLOKX Rev 13.00, Clock rate = 160ns CALLS, CALLG ;20263 PC.CALL- PUSH.R4: === 1mmmmmmmmmmmmmmeae H ;001000= ;20264 WRITE RCR4],SIZECLONGD, : 65 02 ;2 ; PUSH,NEXT/PC.UALL=DEC.,SP ;20266 120267 ;001001 ==mmmmmmeammcacnans ———— ;20268 MDR MIMDR].AND.ZLITOCOF], ; 120269 ; :585;9 NEXT/PC.CALL-FIND .REG Page PUSH R4 ONTO STACK GO SUBTRACT 4 FROM SP THROW AWAY BITS OF ALL PUSHED REGS GO FIND NEXT REGISTER TO PUSH 120272 PC.CALL- PUSH.RS: Ju 0C0A, 080,05BE,4025,45D8,04C8,4 U 0coB, 0181,2C12,0030,FC67,00C3,5 U 0C0C, 0C80,05BF,4025,85D8,04(8,4 U 0COD, 0581.,2(12,0031,FC67,00(3.5 J QCOE, 0880,05BF ,4025,C5D8,04(8,4 _ U OC{OF, 0181,2¢12,0033,FC67,00C3,5 220273 ;20274 ;20275 ;20276 ;001010 =mmmmmemcmm e man——— : WRITE RCRSJ,SIZELLONG], : PUSH RS ONTO STACK ; GO SUBTRACT 4 FROM 5P PUSH,NEXT/PC.CALL-DEC.SP L ; ;20277 MDR MEMDRI.AND, ZLITOCIF], : 278 ;20 : NEXT/PC.CALL=FIND.REG ;20279 220280 120281 PC.CALL- PUSH.R6: s; e cnmc :001100-~-cmsemmmmnn ;20282 : WRITE RLR61,SIZELLONG], ;20283 PUSH.NEXT/PC.CALL-DEC.SP ; 120284 ;20285 :00110) ~=memcmmmnmmmm e mnan—— : ;20286 MDR_M[MDRJ.AND.ZLITOC3F], ; 87 1202 NEXT/PC.CALL=FIND ,REG : 220288 89 02 ;2 ;20290 PC.CALL- PUSH.R7: :001170=mmmmmcemmanmmmam e 220291 wR]TE RCR7],SIZECLONGI, : ;20292 ; PUSH, NEXY/PC CALL-DEC.SP : 20293 120294 0011171 =mmmmmm e m e mmmmm e; ;20295 ;20296 ;20297 MDR MCMDRI.AND.ZLITQL?7F], NEXT/PC, CALL=FIND.REG ; THROW AWAY B8IT7TS OF ALL PUSHED REGS €D FIND NEXT REGISTER TO PUSH PUSH R6 ONTO STACK GO SUBTRACT 4 FROM SP THROW AWAY BITS OF ALL PUSHED REGS GO FIND NEXT REGISTER TO PUSH PUSH R7 ONTO STA(CK GO SUBTRACT 4 FROM SP THROW AWAY BITS OF ALL PUSHED REGS : GO FIND NEXT REGISTER TO PUSH 490 .~ LYY MICRO2 CMT098.,MC X PLALL MIC 1M(01) Procedure Call 28~NOV=-83 16:30:35 B 7 CLOKX Rev 13.00, Clock rate = 160ns + CALLS, CALLG o Page ;20298 PC,CALL=PYSH,R8: :20299 0C10, 0880,058E,4026,0508,04C8,4 :20300 ;58%8} :20303 0c11, 0581,2¢12,0037,FC67,0003,5 ;20304 :58382 e; ;010000 mmmmmmmmmmmammamcaaca WRITE RCRB1,SIZELLONG], PUSH,NEXT/P(, CALL=DEC.SP * PUSH R8 ONTO STACK : GO SUBTRACT 4 FROM SP ;010001 ~=mmmmmmmemmmema s —mm—— MDR_MIMDR].AND,ZLITQLOFFI, NEXT/PC. CALL=F IND,REG THROW AWAY BITS OF ALL PUSHED REGS * GO FIND NEXT REGISTER TO PUSH 120307 PC.CALL=PUSH,R9: :20308 ) 0C12, 0C80,05BE,402¢,45D8,04(8,4 :20309 ;ggg}? 120312 0C13, 0181,2¢12,003F ,FC67,0003,5 ;20313 ;ggg}g ) 0C15, OD81,2F92,0030,1C67,00(3,5 PUSH,NEXT/PC. CALL=DEC.SP : PUSH R9 ONTO STACK : GO SUBTRACT 4 FROM SP 1010011= == mmcmmmem oo m o camaae ; MDR_MCMDR).AND.ZLITOLIFF], NEXY/PC.CALL~-F IND.REG ' THROW AWAY BITS OF ALL PUSHED REGS Y GO FIND NEXT REGISTER TO PUSH 120316 PC.CALL=PYSH,R10: 120317 0C14, 0CB0,05BE,4026,85D8,04(8,4 :010010===msmocesmcncscnaanaaans ; WRITE RCR9),SIZECLONG], 120318 ;gg%;g :20321 120322 ;58332 ;010700 =wsmmmmammmmm——————a——a- : WRITE RCR10J,SIZECLONGY, PUSH,NEXT/PC.CALL=DEC, 5P * PUSH R10 ONTO STACK GO SUBTRACT 4 FROM SP :010107 = mmmmmmmmmmm e s cmmna e ; MDR_MCMDRJ.AND.OLITB(33, NEXT/PC.CALL~F IND.REG * THROW AWAY BITS OF ALL PUSHED REGS : GO FIND NEXT REGISTER TO PUSH 120325 PC,CALL=PYSH,R11: 12026 , 0C16, 0B80,05BE,4026,0508,04(8,4 , 0C17, ©581,2F92,0030,3C67,0003,5 10710110==rm=mmmavomeamcanananaa- ; * PUSH R11 ONTD STACK 120327 WRITE RCR111,SIZECLONG], 120330 e mmmaeoaae : FOR CHARLIE ;010111 mmmmmmmmmmmmmm :sggsg 120331 120332 PUSH,NEXT/PC.CALL-DEC.SP MDR_MLMDR].AND.OLIT8(71, NEXT/PC, CALL=F IND,REG : GO SUBTRACT 4 FROM SP THROW AWAY BITS OF ALL PUSHED REGS : GO FIND NEXT REGISTER TO PUSH o 491 MICRO2 CMTO98.MCX PCALL.MIC 1M(01) Procedure Call U 0C18, 0C80,058E,4027,05D8,04C8,4 2B-NOV=B3 : ¢ 7 CLOKX Rev 13.00, Clock rate = 160ns CALLS, CALLG Page 492. , ;20333 PC.CALL-PUSH,R12: 011000 ====m-ssccmcmcaemcaa——. : FOR CHARLIE 120334 * PUSH R12 ONTO STACK WRITE RLR1231,SIZECLONGY, 120335 ;ggggg 120338 U 0C19, 0181,2F92,0030,7¢67,00¢3,5 16:30:35 120339 ’58?2? * GO SUBTRACT 4 FROM SP PUSH,NEXT/PC.CALL=DEC.SP e ; FOR CHARLIE mmmmm ee 101100 =mmmmmm : THROW AWAY B]TS OF ALL PUSHED REGS P GO FIND NEXT REGISTER TO PUSH MDR_MCMDRJ.AND.OLIT8(15.1], NEXT/PC.CALL=F IND,REG 120342 PC.CALL=PUSH,R13: 120343 U 0C1A, 0880,058¢,4027,4508,04C8,4 120344 ‘58??2 f LR L ——— awmw===; FOR CHARLIE Y PUSH R13 ONTO STACK GO SUBTRACT 4 FROM SP WRITE RCR1331,SIZECLONG], PUSH.NEXT/PC.CALL=DEC. 5P 150347 =100010 ——————; emenm 100070= =osmmme TEST THIS REGISTER'S BIT IN MASK ZLITOL13, WE_MEMDR) . AND. $20349 120348 U 0¢22, UD81,2(12,0A30,0847,00¢0,0 :ggggg 120352 =100100 ;20353 U 0C24, 0581,2€12,0A30,1047,00C0,2 $ 20354 ;ggggg 120357 =100110 120358 ] U 0c26, 0981,2¢12,0A30,2047,00C0,4 120359 .gggg? 120362 =101000 , ) ] J 0C28, 0OD81,2012,0A%0,4047,00C0,6 120363 120364 .sg;gg 120367 =101010 , U QC2A, 0581,2012,04A30,8047,00C0,8 ;20368 120369 58%;(1) 20372 =101100 120373 J 0C2r, 0D81,2012,0A31,0047,00C0,A 120374 120375 WXTEQ.07,NEXT/PC.CALL-PUSH.RO ;100100 =mmcmm ; e mmmnc——aan : WB_MCMDRI . AND. ZLITOC2], WXTEQ. 07 NEXT/PC.CALL=PUSH.R1 Y TEST THIS REGISTER'S BIT IN MASK } $100710=mmcmmscanmana——— e WB_MCMDR1 . AND. ZLITOC4], WX.EQ.0? ,NEXT/PC,CALL=PUSH.R?2 * TEST THIS REGISTER'S BIT IN MASK ’ :101000==mmmmmseemmmcmmm————— ; WB_MCMDRJ. AND, ZL1TOL8], WX EQ.07,NEXT/PC,CALL=PUSH.R3 ;101010 mmmmme e e e WB_MCMDR . AND. ZLITOL103, 1 TEST THIS REGISTER'S BIT IN MASK N ————— : WX EQ.0? ,NEXT/PC.CALL=PUSH.,R4 Y TEST THIS REGISTER'S BIT IN MASK ; $101100======m=maca=maccmesnanan ; WB_MCMDRJ . AND. ZL1TOL20], WXTEQ. 02, NEXT/PC, CALL-PUSH.RS ; Y TEST THIS REGISTER'S BIT IN MASK ¢ ‘ : ; ! Procedure (a L U CC3A, 0981,20D2,0A38,0047,0001,8 U 0C48, 0085,A592,4031,0047,00C4,0 U 0C49, 0484,073D,0127,8047,003F,9 TR T A R U 0038, 0181,¢DD2,0A34,0047,00C1,6 ne U 0C36, 0981,2DD2,0A32,0047,00C1,4 . U 0034, 0981,20D2,0A31,0047,0001,2 PUNL AU NN NI NLNLNSPLNLTL NN NI PN MOANV AL NLNINLNV RN e O TR P U 0C32, 0581,2012,0A38,0047,00C1,0 P R T U 0C30, 0581,2012,0A34,0047,00C0,E LRt P PP U OC2E, 0D81,2012,0A32,0047,0000,( 28=NOV-83 —— 1M(0 OOQOOOOOOOOOTOOOOOO [alelelelels] NN AN L N N LN AN A N N AN LN AN U NN N O O e e o e N N il A oo OO0 O O 00000000000 COCOCOUWCONN NN Nk =200 2 2 D b a3 = O O OO OO OOOO0 EagAN =2 OO OO NONN I AN = O 00 NN ~NO WD -~ OO0 000 NN DUANY = O D 00 NION N B L PCALL.MIC MICRO2 PR TR LR : CMTO98.MCX RSN NPV NNV PUNL PV NIV IV NI NO N COOOOOOOCOOOOOOLOOOOOO ; 1 =101110 16:30:35 ¢ D 7 CLOKX Rev 13.00, Clock rate = 160ns CALLS, CALLG ;101110mmesmmmmmmmncem e e e e n e: N TEST THIS REGISTER'S BIT IN MASK ;110000 ==smmmmmecmcm e: WB_MCMDRI.AND,ZLITOL80], H WXTEQ.0? ,NEXT/PC CALL- PUSH.R? : TEST THIS REGISTER'S BIT IN MASK WB_MCMDRI.AND.ZLITO(40], WX EQ.07? ,NEXT/PC,CALL=PUSH,R6 =110000 =110010 ;110010 mmmmmma e e m e: w8 _MCMDRI.AND.ZLITO[100], ; TEST THIS REGISTER'S BIT IN MASK :110100==mmmmmmmmmmmmm.m— e; UB _MCMDRI. AND,ZLIT4[32.1, : TEST THIS REGISTER'S 81T IN MASK WXTEQ.0? ,NEXT/P(C.CALL-PUSH,R8 =110100 WXTEQ.0? ,NEXT/PC.CALL~ PUSH.RY =110110 2111000 : : ;110110-s=mecumtvnmanmemnamna——a : WB_MCMDRJ.AND. JLIT4L64.T, WXTEQ.0? ,NEXT/PC. CALL=PUSH,R10 398 : : TEST THIS REGISTER'S BIT IN MASK ;111000 =cmememccecmmnmm e a e H FOR_CHARLIE WB_MCMDRI.AND,ZL1T4(128.] ; TEST THIS REGISTER'S BIT IN MASK WXTEQ.0?7 ,NEXT/PC.CALL=PUSH.R11 =111010 ) ;111010mmmmmm e m e e; WB_MOMDRJ.AND.ZLIT4[256.], WXTEQ.07 ,NEXT/PC,CALL=PUSH,R12 FOR_CHARLIE : TEST THIS REGISTER'S BIT IN MASK =0 PC. CALL=DONE .REG: RCTEMP7] MIPC], NEXT/PC. TALL~PUSH.PC : ; SAVE PC RR it intvistetudalbeidlledeledebdedetet RLSPI_RB+CONX(4) : FIX_STACK IRD1 ; DO THIS FOR PUSHR Page 493 i 1 t i 3 E CMT098.MCX PCALL MIC MICRO2 1M(01) Procedure Call E 16:30:35 28=NOV-83 7 CLOKX Rev 13.00, Clock rate = 160ns : CALLS, CALLG Page 494 ;20421 =000 :58255 PC.CALL=PUSH.PC: 0040, 0080,7592,4020,05D8,04C8,5 :20424 ;ggzgg :20427 0C41, 0586,4(53,867F,FB47,00C4,2 :20428 ‘%8fi§3 WRITE MLCTEMP71,SIZELLONG], PUSH,NEXT/PC. CALL=DEC.SP1 ;001 === mmmmmm e o ee e ; MCTEMP4]_MB.ANDNOT.ZLIT28[511.1,; TEMP4 <~ 0000'MASK'PSW'0000 1R<2-0>7 : 120431 PC.CALL=10: :20432 0C42, 0080,058E,4027,45D8,04(8.,6 :20433 ;Sgégg $20436 * PUSH OLD PC ONTO STACK : $010=mmmmm s mmm oo cm e ; WRITE RCR131,SIZECLONG], PUSH,NEXT/PC. CALL-DEC.SP2 : SAVE FP ON STACK : GO DEC STACK BY 4 e -===; EXECUTE FOR CALLS ONLY 043, 0986,4052,4030,1047,00C4,2 120437 $20438 MCTEMP4] MB.OR.ZLIT28[23, NEXT/PC.TALL=10 ; 0C44, 0C80,058E,4027,05D8,00C4,5 358225 WRITE RCR121,S1ZECLONG] : SAVE AP ON STACK 120443 0C45, 0084,073(,0427,84A7,00C5,0 : 20444 ;58222 120447 =00 0C50, 0D80,0EF6,4030,F047,04C8,7 ;20448 120449 :5822? 120452 051, 0580,4093,8027,FDD8,04C8,5 0052, 0480,003A,403D,8487,00¢3,7 0039, 0586,3£12,0038,8047,00C3,8 0C38, 0580,0¢37,0660,05D8,00C4,6 e S L L LR L L LY : DEC SP VA_R[SP1_RB-CONX(4), FLAGO? H j00=mmmmmmm—m e e c e ; HERE IF STACK NOT LONGWORD ALLIGNED PL_L30.], : NUMBER TO SHIFT SP EXTRA BITS BY PUSH,NEXT/PC.CALL=SAVE.SP.BITS ;0] mmmmm ; GO PUT BITS IN MASK ee; 120453 WRITE MLTEMP4].ANDNOT,ZLIT8BLOFF],; CLEAR MBZ BITS OF PSL :nggg PUSH,NEXT/PC.CALL~DEC.SP? 120454 :20457 ;ggzgg i 120460 ' 0C37, 0485,8592,4037,4047,0003,9 P : TEMP4 <= 0010'MASK'PSW'0000 20461 SIZECLONG], ;10 =mmmmm PC_a e :"PUSH MASK WORD ONTO STACK : me e ; : POINT PC TO PROCEDURE RS sm e s e S : mmmm e mmmoeee s : | mmmmmmmmmem oo o e oo oo oo : ! ;nggg RCR13]_MLVA] : FP <= SP ;58222 MCTEMP3]_MB.AND.OLIT0[272.] : CLEAR BITS 3-0 OF PSL :20468 WRITE ZL1T0001,SIZELLONG], : PROVIDE THE MAGIC CLEARED WORD ;20464 120467 120469 IR<2-0>? : WHICH CALL FOR THE LAST TIME !! ! . PCALL .MIC MICRD2 1M(01) Procedure Call 120670 =110 120471 16:30:35 Fo7 (LOKX Rev 13.00, Clock rate = 160ns : CALLS, CALLG :%82;§ NEXT/PT. CALL=TEST.IV.DV 0047, 0484,6710,0027,0047,00C5,3 :20474 RCR12) _MLTEMP6J~CONX(4) 0¢53, 0081,75BE,46D1,6047,00C5,4 ;382;2 * AP <~ ARGLIST ; m : CALLS e 11]omeeommmm ¢ AP <= STACK ADDRESS OF NUMARG Eggz;g PC.CALL=TEST.IV.DV: WB_RLTEMPS], 120479 " DRIVE LEFT JUST MASK TO WBUS ;ggzg; Y TEST IV DV BITS 120480 * ADD ANOTHER 2 TO PC FOR GOOD MEASURE PC-PC+2 MB_XB, WB331-30>7" 120483 =00 120484 PC.CALL=EXIT: 120485 0C54, 0CBO,3002,413D,8007,003F,9 120486 ;ggzgg :20489 — 0 055, 0186,3012,4031,0047,00C5,4 ;58490 120492 120493 0056, 0186,3C12,40%4,0047,00C5,4 120494 ;58232 120497 0C57, 0586,3012,4035,0047,00C5,4 120498 :58238 100 mmmcmmmemeemmememne—————— ; " DON'T SET IV OR DV PSL_MLTEMP3], IRDT R Y GASP ,..GASP FINALLY !!!tin e oratalepdeduirki ; MCTEMP3)_MB.OR.ZLITOL20], NEXT/PC.TALL=EXIT YUSET IV ; e c e s e mm e n e H NEXT/PC.TALL-EXIT : ;10emmmm em MCTEMP3] MB.OR.ZLITOL801, Y SET DV ;1lemmeeccnicnn momeemm———a————— ; ML TEMP3]_MB.OR.ZLITOLOAO], NEXT/PC.TALL=EXIT : SET IV AND DV : 120501 PC.CALL~DEC.SP: ;20502 0(84, 0884,073C,00A7,84A7,0002,0 120503 ;582815- . 20507 0C85, 0884,073C,00A7,84A7,0000,1 jeemsmmmsesseseeccccmcanccemenoas ; VA _RISP]_RB=CONX(4), RETURN [32.] ; RETURN + 32 ;58293 ittt tuabuintmmem———— ; VA_RLSP]_RB~CONX(4), RETURN 1] Esgg%; PC.CALL=DEC.SP2: 0c86, 0884,073(,00A7,84A7,0000,2 " DEC SP AND PLACE IN VA 120506 PC.CALL=DEC.SP1: 120508 120513 ;58212 VA_RLSP] _RB=CONX(4), RETURN [?] : DEC SP AND PLACE IN VA P RETURN + 1 ' DEC SP AND PLACE IN VA ; RETURN + 2 Eggg}g PC.CALL=SAVE.SP.BITS: 0c87, 0884,6A7E,4081,0047,0000,1 120518 120519 Page 495 ;110===m=cmcemccccemaea——- ecaee; CALLG RR123_MLTEMPO], 0084,0592,4037,0047,00C5,3 0c46 o LX) CMTO98.MCX 28-NOV-83 RITEMP4]_RB.OR, (ML TEMP6],ASL, P)., TEMP4 <= SPX0'MASK'PSW'0000 RETURN LT3 ; ; MICRO2 CMT098.MCX 1M(01) Procedure Call PCALL MIC 16:30:35 28-NOV-83 6 7 s RET :Sggg? .T10¢ " Procedure Call 320522 SRR ;20523 . AR AR RET ARk kR ;20524 OO Input SRR AR AL TR AT SRS 120526 .REGION/IRD1.R1L,IRD1.R1H 120527 =000 120528 PC.RET: ;20529 U 0288, 04B6,373D,0027,44A7,008,8 U 0c88, 0180,3¢11,0022,04B0,00C8,9 : RET" Rk R Rk A R TR kKRR KA GPR 13 AR ARARAA LA AR A TR AKX A N Pointer to stack frame ARSI LRSS ARLALALAALL LGS ;000==m=cmccmommcaommconnnaaen ; 120530 VA_MCTEMP3]_RCR131+CONX(4), * POINT VA TO MASK ON STACK 120535 ;sgggg READ,$1ZELLONG], vA_METEMP3I+20170C64.1 Y GET MASK WORD " SET UP VA FOR MAX PROBE * FOR THE COUNT ONES ROUTINE STEPC_14. ;Sgggé Eggg%z LREGION/PCALL.R1L,PCALL.RIH/PCALL .R2L ,PCALL .R2H/PCALL .R3L ,PCALL .R3H :20538 U 0C89, 0981,2092,0A31,0047,00C6,0 ! Page 496 CLOKX Rev 13.00, Clock rate = 160ns 120539 ;5822? 120542 =0 120543 et ————-; WB_MIMDR].AND,ZLIT24[32.], WXTEQ.0? * RET FROM CALLS OR CALLG 2?7 ; By : VA_VA+4 * CONSTANT FOR LATER : * CONSTANT FOR LATER U 0060, 0580,0F76,4030,6447,00C8,A 20544 120545 sLor12.9, NERT/PC ., RET~PROBE U 0C61, 0D80,0F76,4030,6047,00C8,A 238223 SL_[12.3 * PROBE FOR NUMARG ALSO 120550 PC.RET=PROBE: 120551 U 0CB8A, 0180,0EF6,47A0,805F,08C5,C 479 120552 :20553 120554 =0000 120555 =1100 U 0C5C, 0485,B592,4033,0047,0562,8 ;20556 ‘38?25 120559 =1101 U 0C5D, 0485,2077,05F1,4047,007E,5 120560 ;sggg; 120563 =110 U 0C5E, 0C9D,2077,05F1,4047,00€2,5 . J 0C5F, 0860,3711,0020,04A7,00(8,8 ;20564 120565 ;58229 120568 21111 120569 ;120570 el L L LH PROBE READ?,SIZECLONG], PL_(16.3 * ACCESS 0K 727 ; ;1100=w=mmemmcamnnu=-= mmmmmmm——; RCMM. TEMP1] MCVAJ, PUSH,NEXT/MM.PRB.READ. TBM TNV ¢ SAYE VA * LET CHARLIE DO THE WORK ;110)emm=nemamemceaccaanmmanenm—- ; RCTEMPS] _MCMDR]. X2, FLAGT?,NEXT/PC.CALL-TNYV ¢ GET MASK INTO TEMPS ¢ WAS THIS EXACT OR APPROX PROBE? ;1110==m=m===mmma—cmcncaanccnn : ACY RLTEMPS]_MCMDR].XZ, DEC STEPT, FLAGT?,NEXT/PC.CALL=ACY ¢ GET MASK TO COUNT THE REGISTERS, : STEP COUNTER <= 13 ; ;111]=eewsmscesceencnn e : ACCESS OK !! SEY MM.NOINT ¢ DON'T ALLOW ANYMORE INTERRUPTS VA_MLTEMP31+CONX(4), ¢ POINT VA TO AP ON STACK i 28=NOV=83 0c8D, 0885,2592,4027,4450,00C8,E 0ce68, 0181,0037,0020,0450,04C9,4 0c69, 0D80,6C12,0A30,1047,0006,A O S T j 067, 0589,6012,0A30,0847,006,8 T T e 0C66, 0080,2592,46F0,0047,00C5,8 N TR PR TR PR T 0c8F, 0084,2077,0A71,8047,08(6,6 P R 0C8E, 0081,2002,403D,8487,00C8,F T J 0c8C, 0¢85,2592,4027,0450,00C8,D e R 0c65, 0485,2592,4020,8450,00C8,¢ lelelololalaleleleleleleleleleleleleleleleled COOOCOOOOOOOOODOOCOQOOOCOOOC O O~ G~ Or O O L0 TN LTLNAA IR LN W U i i i iviuiuiiuawg [eNe NN o N oo N v o de e NN NN NN OOVO OO 00 CO 0000 0ICOO00 0000 e o0 a0t OO O OO0V 00OV NN NS WD = 00 O 2 DD = O O 00 O N 2NN = OO €0 O N P (N = OO NN INAN 2 OO Py P O 0C64, 0C80,0036,4030,0047,00FF,8 PR TR TR P 0C8B8, 0D81,2092,0A37,F847,0006,4 PORLNLALAINLOLNLNININAINIAL N RLAL NIALNL NN N NS N NN NN NI N AR NINAU NI NINI NI PIPORINIPINONS P MICRO2 Procedure Ca L Y CMT098.MC X PCALL.M] ¢ H 7 16:30:35RET CLOKX Rev 13.00, Clock rate = 160ns o e D WB_MCMDRJ.AND.ZLIT8[255.3, Page ¢ : WXTEQ,0? H NEXT/IE.OPER.FAULT TEST MBZ BITS OF PSW : LET CHARLIE WORRY ABOUT [T R ivintetatt it ettt bttt : RCTEMP2] MIMDR], :; SAVE MASK IN TEMP2 READ,SIZECLONGD, H GO GET AP RCR12J_MCMORY, : RESTORE AP ;; POINT TO NEXT LONGWORD ON STACK VA_VA*4 VA_VA¥4 ; GET OLD FP ;; POINT TO NEXT LONGWORD ON STACK RCR13I_MIMDRD, : RESTORE FP VA_VA+4 ; POINT TO NEXT LONGWORD ON STACK READ, STZECLONGI, : GET RETURN PC READ,STZELLONG], bcmemor : SET PC TO RETURN ADDRESS RCTEMPGI_MLTEMP2].XZ, : GET A CLEAN REGISTER SAVE MASK W_mereme21, : DRIVE MASK TO WBUS WX.NE.0? ; NO REGISTERS TO POP WB<31-30>? ,NEXT/PC.RET-IIX.STACK; Ne L T T P WB_MLTEMP6].AND.ZLITOL1], WX, EQ.0? L LT REGIST ERS START TESTING G_RE T ; KESTORE REGISTER 0 ?7 ; GET REG 0 FROM MEMORY READ,SIZECLONG], VA_VA+4 POINT TO NEXT LONGWORD ON STACK TELL SUBROUTINE WHICH REGISTER THIS RNOM_LO], GO RESTORE REGISTER .GPR PUSHTNEXT/PC.RET=WRITE -------------------------- XL Y ] WB_MCTEMP6].AND. ZLITOC2], WX, EQ,0? : RESTORE REGISTER 1 ?? : 1S 497 ) MICRO2 CMT098.MCX 0C6E, 0181,DC37,0020,1C50,04C9,4 0C6F, 0580,6012,0A30,8047,00C7,0 0981,pC37,0020,2450,04€9,4 , 0D80,6C12,0A31,0047,00(7,2 0D81,DC37,0020,2¢50,04(9,4 . , 0080,6C12,0432,0047,0007,4 = OO NN = OO 00 IO N D NN = O D 00 IO N S AN 0C6D, 0580,6C12,0A30,4047,00C6,E i 7 16:30:35RET CLOKX Rev 13.00, Clock rate = 160ns : GET REG 1 FROM MEMORY ; POINT TO NEXT LONGWORD ON STACK READ,SIZECLONG], VA VA+4 RNOM_C 1 i, PUSH,NEXT/PC RET=WRITE.GPR o e e e e D S WXTEQ.0? =0 : TELL SUBROUTINE WHICH REGISTER THIS IS ; GO RESTORE REGISTER : RESTORE REGISTER 2 ?? : ;Qemmmem—mmean e ————— - READ, S1ZE[LONGI, VA_VA+4 : GET REG 2 FROM MEMORY : POINT TO NEXT LONGWORD ON STACK BUSLNEX T /PC . RET-WRITE. GPR i 60 RESTORE REGISTER RNOM_[23, (B_MLTEMP61.AND.ZLITOL8], WXTEQ.0? =0 i TELL SUBROUTINE WHICH REGISTER THIS IS : RESTORE REGISTER 3 27 ; ;Quemmmmceme—————— emmmmmmm————.; READ,SIZELLONGJ, VA VA+4 5 * GET REG 3 FROM MEMORY s POINT TO NEXT LONGWORD ON STACK PUSHINEXT/PC.RET-WRITE.GPR : GO RESTORE REGISTER RNOM_(3 we _MCTEMPOJI.AND. ZLITO[10], WX-EQ.0? 0649 =0 : TELL SUBROUTINE WHICH REGISTER THIS IS : RESTORE REGISTER 4 ?7 : READ,S1ZECLONG], VA_VA+4 : GET REG 4 FROM MEMORY : POINT TO NEXT LONGWORD ON STACK gggz PUSH;NEXT/PC RET-WRITE.GPR ¢ GO RESTORE REGISTER 0652 RNOM_C4], = 0657 0658 0659 =0 06060 0661 0662 8222 0665 0666 0667 ! ;0-mmsemmesemmdcn e n e —————— ALH 0650 0651 0656 ) v UB_MLTENPOI.AND. 2L 1T0041, g 0655 ‘ Page 498i m; ces e e s n e oo e e mmmmm ;Qmmm =0 O NI 0C6C, 0581,DC37,0020,1450,04(9,4 OO O- OO OO RO ON OO E o N o L TV W T W TU W T LV (a8 S AN AAS LA AN LA LA S LAN [ St 0C6B, 0180,6C12,0A30,2047,0006,¢ e P R O T T T PR e T o R T T R LA TR LR DR DR R Rl 0t6A, 0581,DC37,0020,0C50,04C9,4 felelalelelelclelelolalalalelelelelelelalele oo e lololo el el Procedure Call AONLNVRLAYAYNIAININI NUNL RN NN NIAVNININ NN N AININININI NN NINI NN NININVNI NN NI TININI NI NINO Y RCALL MIC 28-NOV-83 1M(01) I ;]mmeoecmmmmcsssccsssscsescomeees : wa MLTEMP6],AND, 21.1T0L20], WXTE0.0? = + TELL SUBROUTINE WHICH REGISTER THIS IS ;Q=m=m=mome—esaccscccececeoas READ S1ZELLONGI, VA_VA+4 RNOM_C5], PUSH;NEXT/PC.RET-WRITE.GPR ; RESTORE REGISTER § 77 : : : GET REG5 FROM MEMORY : POINT TO “NEXT LONGWORD ON STACK : TELL SUBROUTINE WHICH REGISTER THIS 1S : GO RESTORE REGISTER lmscemsecscescsssesooseooosce == wa _MLTEMP6],AND,ZL1TOC40], WX7E0.0? * RESTORE REGISTER 6 27 : ; . | : | ‘ U 0C76, 0981,0037,0020,3C50,04C9,4 U 0C77, 0D80,6C12,0A38,0047,00C7,8 0581,0(37,0020,4450,04C9,4 T 16:30:35 : 7 J CLOKX Rev 13.00, Clock rate = 160ns RET Page ;0 ; VA VA+4 RNOM_C6], H POINT TO NEXT LONGWORD ON STACK ;; TELL SUBROUTINE WHICH REGISTER THIS 1S :; READ,SI1ZECLONG], :; 60O RESTORE REGISTER PUSHINEXT/PC.RET=WRITE.GPR - " 0 T o > S o 0 g e o e GET REG 6 FROM MEMORY g N s ¥ H RESTORE REGISTER 7 2? UB MLTEMP6],AND.2L1T0L80], WXTEQ,0? : ()=mmmme e nscan sradnna—an -H READ SIZE[LONGJ, ; VA VA* H RNOM_L73, ;; :; PUSH,NEXT/PC RET=WRITE.GPR GET REG 7 FROM MEMORY POINT TO NEXT LONGWORD ON STACK TELL SUBROUTINE WHICH REGISTER THIS IS GO RESTORE REGISTER Rttt ittt “-; UB _MLTEMP6].AND, ZLITOC1001, H RESTORE REGISTER 8 ?? WXTEQ.0? :0 e 0 H o i e g . G G O e READ, SIZ&CLONGJ. * GET REG 8 FROM MEMORY VA VA* RNOM_C8], : POINT TG NEXT LONGWORD ON STACK ; TELL SUBROUTINE WHICH REGISTER THIS 1S ua _MCTEMP6].AND. ZLIT4[32.], ; RESTORE REGISTER 9 ?? : GO RESIORE REGISTER PUSHTNEXT/PC.RET-WRITE. GPR T T P U 0C78, PR PR TR LY P T T U 0C75, 0580,6C12,0A34,0047,00C7,6 O O R u 0C74, 0D81,DC37,0020,3450,04C9,4 NN NONO CO0000 0000 NN NN NN DN = OO 00 DN = OO0 O 1M(01) Procedure Call OO 00O W0 -2 CDNDO0 O PCALL.MIC 28=-NOV=-83 MICRO2 PR TR TE TR ; (MT098.MCX AU NIALNAINDALNL NN N NI NLNNI NNV NINJ PV NINVNV NN OCOOCOOCOOOCCCTOOOROOOCOOOOD OO OO OO OO OTM : N WXTEQ.0? ; P U 079, 0180,6DD2,0A31,0047,00C7,A 1y ¥ 00 NN TN N N TN N SN SN SN NI N TN SN N NI N B et = L S OO O DODOOOO AN S AN 2 OO0 NS AN — 4 0C70, 0980,6DD2,0A34,0047,00C7,E L U 0c7r, 0181,0037,0020,5450,04(9,4 OO0 COOCOOOOOOO0O T I S N v 0C78, 0180,6DD2,0A32,0047,00C7,C N LRy P A U 0C7A, 0181,D€37,0020,4C50,04C9,4 ESLSLS LN NI NN N SIS TS TN 18 T T P - ¢ ;0 ----------------- - -y : GET REG 9 FROM MEMORY READ,SIZELLONG], ; POINT TO NEXT LONGWORD ON STACK :; TELL SUBROUTINE WHICH REGISTER THIS IS VA_VA¥4 RNOM_L9], :; GO RESTORE REGISTER PUSHTNEXT/PC.RET-WRITE.GPR ]-——-——-------——--a ---------- - ¢ RESTORE REGISTER 10 ?? : we _MCTEMP6].AND, ZLIT4[64.], WXTEQ.0? ------------------ CLL DL READ, SIZE[LONGJ T VA_VA¥4 RNOM_(10.3 PUSH?NEXT/PC RET-WRITE.GPR L I ; GET REG 10 FROM MEMORY ; POI NT TO NEXT LONGWORD ON STACK ;; TEL L SUBROUTINE WHICH REGISTER THIS IS : G0 RESTORE REGISTER __--~-------------------—-----~ we _MLTEMPHD. AND. ZLIT4[128.1], WXTEQ,0? H RESTORE REGISTER 11 ?? H 499 e CMT098 , MCX PCALL.MIC MICRO2 1M(01) Procedure Call 28~NOV~83 ;20717 =0 : RET 7 CLOKX Rev 13.00, Clock rate = 160ns Page : GET REG 11 FROM MEMORY :20720 ig0r2] RNOM_L11.3, PUSH;NEXT7PC.RET=WRITE. GPR : TELL SUBROUTINE WHICH REGISTER THIS IS : VA VAY4, POINT TO NEXT LONGWORD ON STACK ;]mmm=mmomsceecssnse e em e ; WB_MLTEMP21, $20724 WB<31-30>7 ;20705 i DRIVE MASK TO WBUS : TEST BITS TO GLUE STACK BACK TOGETHER = 120707 120728 PC.RET=FIX.STACK: :20729 ;00mmmmm e m oo m e : STACK ALREADY 0K 0C58, 0C85,8592,4037,8047,009,1 RLSP]_MLVAD, $20730 20731 NEXT/PC.RET<WRICH. INST 120733 0¢59, 0885,8711,0007,84A7,00C9,1 NEXT/PC.RET=WHICH, INST 20735 120737 GC5A, 0C85,8711,0017,84A7,00C9,1 0C58, 0987,8C11,0030,1847,0009,0 090, 0C84,0592,4037,84A7,00C9,1 : SP <= SP : ;00mmommmmmemme—m——cecesacaes ; VA RCSP] MLVAJ+CONX(1), $20734 PSP <= SP+1 : 10=mmmmemmmemeccmeemsceecemoeos : {A_RLSPI MLVAI+CONX(2), 120738 20759 NERT/PC.RET=WHICH. INST 120741 : SP <= SP+2 : ;1lemecmemmme—cceo—cecseconenee ; P TEMP <= NEXT SP 20742 ATEMPO_VA+ZLITOL3] 120744 emsmmmeecmememsmmeeeeceeeceeee- ; VA_RLSP] MCTEMPO], :20745 ;20706 NERT/PC.RET-WHICH. INST : FINALLY FIX SP ; 120748 PC.RET=WHICH, INST: 120749 0091, 0180,2C92,0A71,0047,00C8,0 $20750 1 120751 :20752 jmmmmmemmmemmemcmemem—escaseeees : CALLG WB_MCTEMP21.AND.ZLIT24[32.], WXTNE.0? : FIND OUT WHICH CALL WE'RE RETURNING ; 120753 =0 0c80, 0080,2002,413D,8027,003F,9 ] 0C81, 0080,0036,4020,0450,00¢9,2 ;20754 PC.RET=EX]T: 120755 T Qmemmmmmmcmemmmmememeeeeeaceees : CALLG :20756 PSW_MLTEMP2], : LOAD CC BITS 10757 320759 120760 80761 $20763 0C92, 0485,259E,4007,8047,00C9,3 $20764 :20765 IRDY : DONE lesmoscessseesesccccesaccaceee- : CALLS READ, sizECLONG], : GET NUMARG fmmmmmmsossacsssseeecnen e ; SIZELBYTED : ONLY 256. ARGS PLEASE VA_VA+4 RESPI_ZEXT(MIMDRI), 500, | i ;Q==e=sssmmssmseeemeee——eeeeeeee ; READ S 12ECLONG], ;20723 0C7F, 0C80,2592,46F0,0047,00C5,8 K 120718 :20719 0C7E, 0581,DC37,0020,5C50,04C9,4 16:30:35 : POINT STACK TO NEXT LONGWORD : THRCW_AWAY ANY GARBAGE N . CMT098.MCX PCALL.MIC MICRO2 1M(01) Procedure Call 28-NOV~-83 ;20766 SIZECCONG], 120768 ;20769 NEXT/PC.RET-EXIT ;20770 220771 PC.RET=- WRITE GPR: 120772 0C94, 0885,2592,408(,C047,0000,1 7 RLSPI_MLVAJ+(RB.ASL.SIZ) ;20767 0¢93, 0885,85D1,0027,8047,00¢8,0 L 220773 ;20774 -0 * ;20775 Page 16:30:35RET CLOKX Rev 13.00, Clock rate = 160ns RLGPR.R] MLMDR], RETURN £1 ; PUSH STACK PAST ARGUMENTS : ASL BY 2 ; LEAVE ; WRITE THE REGISTER ; RETURN +1 ;20776 PC.CALL-ACV ;20777 0C25, 059€,5D53,8030,7847,00(9,5 . 0C27, 0480,0036,4030,0047,0168,6 ;20784 ;20785 ;20786 2%25, 059€,5D53,8030,7847,00¢9,5 2827, 0186,8(12,4030,2047,0168,6 0C95, 0C80,59C2,4DFD,8047,00C6,2 0Cc62, 044F,5036,4030,0187,0009,6 063, OD9E,5AD3,8030,0847,0009,5 0096, 0186,5C12,0880,F847,00C8,2 082, 0081,85D1,0021,44A7,0002,3 0(83, 0881,85D0,0021,44A7,0008,A M[TEMPSJ MB.ANDNOT.ZLIT12[15.], : THROW AWAY DV, IV AND MBZ BITS ;20778 ;20779 :20780 ;20781 220782 ;20783 DEC STEPT, NEXT/PC.CALL~COUNT,ONES ; STEP COUNTER <= 12 : ----------------------------- ; NO ACCESS NEXT/MM PCALL _ACV_ENTRY 2825 ; CHARLIE'S PROBLEM NOW kszzzz=zzszzzzszszzszssszssss===p DEC _STEPT, ; ;20787 NEXT/PC.CALL-COUNT.ONES H ;20788 : 20789 ;1%z=szssssszssssssssszssessss=z; : 20790 2827 ; MLEKRCODI_MB,OR. 2L1T0C4], ;2079 NEXT/MM_ PTALL _ACV_ENTRY ; ;20792 93 ;207 UNT . ONES: ;20794 PC.CALL-CO 5 79 : 20 PL_MSS M[TEMPSI, Y ;20796 ;20797 WX<15-0>.NE.0? ; ;20798 1Q====cmmmerm e e e e; ;20799 =10 [TEMPSJ STEP(C,SET FLAG1, : ;20800 ;20801 ;20819 ;20820 in PCS v STEP COUNTER <= 12 NO ACCESS #+ u-code in PCS *» SET PROPER ERROR CODE CHARLIE'S PROBLEM NOW FINDA SET BIT IN MASK REAL BIT 0 7?7 MASK=0 NEXT/PC TALL-F IX. PROBE GET NON-DENSITY INTO TEMPS ; SO WE'LL KNOW WE'VE BEEN HERE BEFORE AL TENPS ] MB.ANDNOT.ZLITPLL1D, & CLEAR_THE NEW FOU.D BIT ;20802 ;2080 ;20804 DEC STEPT, ;20805 NEXT/PC.CALL=COUNT.ONES ;20806 ;20807 220808 PC.CALL~=FIX.PROBE: ;20809 MLTEMPS) _MB.AND.ZLITOL1F], ;20810 108N 1R<2>? 20812 D 220813 =0 VA_MCVAD+ (RETEMPSI.ASL.SIZE), ;20814 SIZECLONG], ;20815 . 20816 ;20817 ;20818 oxx y-code M[TEMPSJ MB.ANDNOT.ZLIT12(15.1, ; THROW AWAY DV, IV _AND MBZ BITS NEXT/PC. CALL-APPX. PROBE ; KEEP TRACK OF HOW MANY H E CLEAR GARBAGE BITS OF STEPC ; BRANCH ON CALL OF RET ; CALLS GALLG : GET_# OF BYTES NEEDED : MULT # OF CLEAR BITS BY 4 ; ;lemmmmmmmmmmmmmee—ee—eeoneaas : RET VA_MCVAI-(RLTEMFSI.ASL.SIZE), ¢ GET # OF BYTES NEEDED SIZECLONGI,NEXT/PC.RET-PROBE ; MULT # OF CLEAR BITS BY 4 501 QFA: CNTOCLODJLOS.ADD CNTTONOPILPC.CALLSG ;20831 ;20832 ;20833 1CODE ;20836 ,0OCODE 120837 :ggg%g OFB: FPD CNOPJLIE.OPCOD.DEC IRDICLODILOS.RED OFB: CNTOLLODILOS.ADD CNT1INOPILPC.CALLS Ldbs 120834 ;20835 L .OCODE ; JADD .CALLG 0S.ADD PC.CALLS ; : Ird Rom Definition'' ; FPA MEM FPA REG 0PS [NOP]ILIE.OPCOD.DEC [LODILOS.ADD J, ] [LODILOS.ADD [NORILPC.CALLG JL0S.ADD JIPC.CALLG [NOPJLIE.OPCGD.DEC CLODICOS.RED ]’ ] [LOD]LOS.ADD [NOPJICPC.CALLS JLOS.ADD J{PC.CALLS ;CALLG i ; ~ ;20828 ;Sgg%g ;20827 MEM oW REG 0PS ,ICODE OFA: FPD [NOPJLIE.OPCOD.DEC IRD1CLOD]ILOS.ADD Procedure Call " |S] ;20824 . 20825 ;20826 ~m . NOBIN CLOKX Rev 13.00, Clock rate = 160ns -] ) ;20821 ,10C ;20822 ;20823 page 502| ¢ Ird Rom Definition [T R PCALL.MIC 28-NOV=-83 16:30:35 [N ] Procedure Call : 7 Ll H MICROZ 1M(01) CMT098.MCX e H m JCALLS 1, ] 120848 ;20849 120850 ;20851 Jlue ;Sgggé OFA: SIZE [BYTEZ [BYTEX L 02 C 0L Y[ 01 ;CALLG Eggggg OFB: 0J [ 01[ 0) [ 01 ;CALLS Eggggg Q04: SIZE [LONGJ [BYTEJ L ©01[ 03 C SIZEL ©03C 01C 0JC 01 ;RET 120860 ,UCODE 120852 120853 - .DCODE M Procedure Calt : Dsize Rom Definition' AD.IRD CUCC mm - JRET e bt NS [SETEF I . [RD 1€.BAD o < TM 1E.BAD.IRD mrme CNTTLNOP ] C1E.BAD.IRD o ] o 120847 CNTOLNOP [1£.BAD.IRD o 004: 4 .OCODE FPD [NOP] [IE.D PCOD DEC IRDTINOP] £PC.RE TM 120846 004: Lol 120844 120845 ,1(ODE e 120843 Loty ;20841 ;20842 el :20840 AD.IRD J. ] i : : ; MICROZ2 (MT098.MCX MISQUE .MIC 1M(01) MISQUE.MIC 28=NOV=83 16:30:35 N 7 CLOKX Rev 13.00, Clock rate = 160ns ;20862 .T0C 'MISQUE. MIC" ;20863 .TOC ''REVISION 33.0" :Sgggg H . 20882 : 20883 ;20884 ;20885 Revision History' ; REV EXPLAINATION TR ;20874 ;20875 ;20876 120877 ;20878 ;20879 ;20880 ;20881 JJoc ! 33 32 Fix the instruction of INSQHI with reserved operand, | Save mmtemp3 prior to unlocking header in case of tb miss, T ;20873 LNOBIN caused by Check all the entry purging the header from the tb,then restore. 3 Lsb of header, even if software inter-lock is set, and it bits 1 or 2 is set, O ;20866 ;20867 ;20868 : 20869 ;20870 :20871 ;20872 Jetf Peng, J. Heom, G. Koeckhoven, Brian Allison, CHARLIE MCDOWELL : 30 29 28 27 26 take reserved operand fault Alsc acquire hardware interlock prior to unlocking header . Fix aroblem in QU.UNLOCK routine to properly restore the registers when the instruction has faulted. Fix REMOx] reg mode dest to properly disable header .ne. addr check 27=MAY-=-80 Fix interlocked queues to properly page fault, Set stack tlag on halt to tell censole to attempt restart/boot. Fix intertocked queues to set MM,NOINT before trying to clear lock. Initial release. ;20886 BIN Page 503 MO MICROZ Misc, and Queue 2 8=NOvV=83 504| : XFC" Misc, and Queue . XFC Extended Function Call E Resources CkAGZ Used by exception micro code :'tt!*itiflt*'«wtit*ittt*tfitt*fi***fi***t**ttttkk**ttttlfl!*tflflt****itt**t****ti**t* REGION/IRDT ,RIL,IRD1.R1H =000 MS.XFCi S m=seemmeccccmncsnccann e H VA_MLSCBBI+2LITOL14], SET FLAGZ, : LOAD MACRO VECTOR ADDRESS ; NO MORE PARAMETERS TO PUSH. Misc. and Queue : NOP'' ; T R NEXT/JE.FAULT LTOC ' ,-*tti**fittI&tfittifit*tt&fifi*tilkkt&!RRlttk!ttfltfitltwwtwttt*tfit**fiittit*****tw**ii No Operation PC <= PC = 1 PC Resources ;;w!llttfifikfltifi*t!'*i*tiflttfl*t*itttfittiifltkfltfififit*t*fi***fl***fi**i***i****ii*'iti N S N NOP H =000 MS.NOP: j=~=eev=msmmmrvsicacammennanae- : PC_M[PCI=-2L1TOL1], NEXT/GL.NOP.IRD1 u 0360, 0081,AC10,0030,0087,0000,2 H : : BpPT" :TO( '" Misc, and Queue R "**t*t**t**tt*tiitt**fifitntt Y3080 2202200222222 U 0308, 0DS50,EC11,0031,64A7,00EC,D Page R T L T J 02¢8, 0950,E(11,0030,A4A7,00EC,D 8 ;tt'tt*’ttfikttfifl'ttt!Qt**ttktttttt*k*t"tt*t!tflQQt**i***ii****fi*t**tlttiQtfltittt R T PR R R T L L b LTOC ' B 16:30:35xrc CLOKX Rev 13.00, Clock rate = 160ns H BPT Breakpoint Fault 3 Resources VA H FLAG? 33243322 RRdE] Used by exception code ;wuwtwtanwttwnwt'wwttknwtfittt*ttw*ttttttttttt1Qtwt**&*fitt*i*ti*t*t*t*ttfittittn .RESION/JRD1.R1L.IRD1.R1H MS.BPT: VA_MLSCBBI+ZLITOL2C], SET FLAGZ,NE¥T/IE.FAULT 3 LOAD MACRQ VECTOR ADDRESS. ;7 NO MORE PARAMATERS TO PUSH. REGION/MISQUE ,RT1L ,MISQUE.RTH/MISQUE .R2L ,MISQUE ,R2H/M] SQUE ,R3L ,M]SQUE ,R3H | ’ (MT098.MCX M1SQUE . MIC r ; ; e e CMT098.MCX MISQUE.MIC e MICRO2 h— TM(OT) 28-NOV~83 Misc. and Queue ;Sggg} LT0C ' 16:30:35 C t HALT : 8 CLOKX Rev 13.00, Clock rate = 160ns Misc. and Queue 220932 R T e R TS S TR AR AR SRSt R AL R A AR A AAR AL A LA HALT Halt 120938 ; 120939 ; ;20940 ; Resources 1EMO1 FILLAG3 ;20643 ; 220044 ;20945 Hold PSL to check mode Used bg exception code PC <= PC=1 PC Used to set HALT bit CRAR 120941 120942 Qutput 505. : HALT" 220936 ; 220937 ; Page Sets HALT bit in console register HALT I HMARARREXEE AR EKERAH R AR RFARR AR RR AR AR AR RN R IR AR R RA Rk ;00946 ,REGION/IRDI,RIL,IRDY.RMH ;20947 =000 ;20948 MS.HALT: U 0310, 0886,1036,4030,0087,00¢9,7 U 0c97, 0980,1092,0A30,1847,00(8,8 220949 MCTEMP1]_PSL H ;Sgggg WX, EQ.0? : 3583%% LREGIUN/MISQUE.R1L ,MISQUE.R1H/MISQUE .R2L ,MISQUE .R2H/MI SQUE ,R3L , M1 SQUE R3H 120954 WB_MCTEMP1I.AND, ZL1T24[3], ; 120957 =0 J 0cB8, 0418,0036,4030,0047,0038,0 U 0cB9, 0981,A(11,0030,0C87,00C9,8 ;20958 ;Sgggg $20961 ;Sggé% : o ;20964 U (98, 096E,CC37,0030,3067,0000,1 ettt bbb L DD D b H ;5832? $0m e st mmm e CLEAR FLAG3, NEXT/I1E.OPTOD.DEC e; : PUSH PCBACK=-2. ; TAKE A PRIVILEDGED INSTRUCTION FAULT. ;lmmmmmmmmmmeeamsmam—e————e——— ; PC_MLPCI+ZLITOLT] ; POINT THE PC TO THE NEXT INSTR + 2. Jemmememsammace . s — s amS—————— ; ; SET HALT ERROR CODE ;20965 MCFPDOFFSET]_ZLITOLG], 120968 1: sexwxxxk INTERRUPTS AND EXCEPT]ONS HANDLED IN WCS BRANCH TO 2001 (HEX). ;sgggg SET STACK FLAG ¢ TELL CONSOLE TO LOOK AT FRONT PANEL ;20969 CN. CONSOLE : U 0001, 0180,0037,0036,0247,0009,A U 0C9A, 0180,0037,0034,82(7,0088,4 ENTRY FROM BOOT CODE ;20970 MS.HALT,MICRO: 220971 eesescccseescevsenccceecoonona. : ENTRY FOR MJCRO CODE DETECTED HALTS. ;588;§ CRAR_ZLIleEOCOJ 120974 ;20975 CONREGS_ 7L 1116(%0], 120976 s CRAR_3 jmmmm—— e ~eummemmammesmomaaa- ; s SET HALT, AND HALT PENDING. NEXT/CN.TYPE.PC H St e e e — w im e o . . . i (MT098.MCX ; MISQUE MIC H MICRO2 1M(01) Misc. and Queue 16:30:35 28-NOV-83 ;Sgg;g LT0C "' 220979 R :sggg?; 120982 : ;20983 ; ;20984 ; 120985 ; 120986 ; ) D 8 CLOKX Rev 13,00, Clock rate = 160ns o Page : INDEX INSTRUCTION Misc, and Queue L INDEX Q Subscript Low Limit TEMP4 0 Pass multiplier to MULSUB.MDR TEMP? RYEMPY Save subscript Save low Limit TEMPS ;20987 ; : 20988 : ;20989 ; :5838?; RTEMP10 D 120992 : FLAG3 Subroutines $20995 AL S AR LA TR A A AL AL A AL AR LA R AL AR MDR Resources ;20994 ; L AR ! subscript.rt, low.rl, high.rl, size.rl, indexin.rl, indexout.wl Input ;20993 ; ; : INDEX INSTRUCTION'' R R A T e R i 506! Pass multiplicand to MULSUB.MDR_O Save high limit Save subscript + indexin Set if range trap occurs. . 0S.RED i MULSUB.MDR_0 : 0S.WRT1 120996 i 1E. INDEX.RANGE :Sgggg: 220999 :**tt**tt*kt**t****k«*ktkt**t****t*k*tt**fittt*************************t**t**** ;21000 ;21001 .RCGION/IRDX.R1L, [RDX.R1H/IRDPX.R2L,IRDX.R2H 221002 =000 :21003 MS,INDEX: ;21004 U 0318, 0086,703A,418D,8047,0410,0 U 0314, 0484,002¢,7182,8047,0410,0 U 031C, 0C84,0582,4021,98(7,00CA,0 L. c ’5}88% PUSH,NEXT/0S .RED :21006 ese LGD INC BRA?, —— o : : SAVE SUBSCRIPT, ; : FETCH HIGH LIMIT. $00]====mmmmmmmmm o mmm e ; :21010 ;210M RCTEMP9] @ :S}g}% PUSH,NEXT/0S.RED $21014 ;21015 J10mmmmmmmmm————————————————— ; R[TEMP10] ; SAVE HIGH LIMIT, ‘5}8}; PUSH,NEXT/0S .RED ;21016 :21019 U 0318, 0€81,2001,2181,C047,0414,0 wmm e MLTEMP7] Q, $121009 U 0319, 0484,002C,7182,4047,0410,0 ;000 ;21005 ;21020 ;21021 :S}gg% 121024 ;21025 :S}ggg i LOD INC BRA’ Q_D, i SAVE LOW LIMIT. LOD INC BRA? £01 e e D_MCMDRI+RCTEMP7], LOD INC BRA?, PUSH NEXT/OS.NRT1 : : s FETCH INDEXIN, SIZE[LONG] ALUS_SIGND . e; : SAVE SUBSCRIPT + INDEXIN. H ; FETCH INDEXOUT. :100=~==mmmmmmmmmmaemmmm— -: RCTEMPE] D i s FETCH SIZE. ; SETUP MULIPLICAND FOR MULTIPLY. : ;21028 REGION/MISQUE .R1L,MISQUE .RTH/MISQUE .R2L ,MISQUE ,RZH/M] SQUE . R3L ,MISQUE ,R3H : ; | ! A [ ; : e e ~ MICRO2 1M(O1) {MT098,M(X Misc. and Queue MISQUE.MIC 28-NOV-83 ;21029 =000 16:30:35 E 8 CLOKX Rev 13,00, Clock rate = 160ns N : INDEX INSTRUCTION ;000=~====memmmmmememccemmeceo~ : 121030 MCTEMPL) Q, Y SETUP MULTIPLIER FOR MULTIPLY. U OCAD, OCB&,403A,4B6D,8047,0403.,0 ;s}ggg PUSH,NEXT/1L.MULSUB,MDR_O Y COMPUTE (INDEXIN + SUBSCRIPT) * SIZE U OCA3, 0485,200A4,402C,55DA,00CA,1 121035 121036 ;g}ggg REDST.RI_MLMDR].OR.Q, WRITE NOTREG,SIZECLONGI,CCOP2, NEXT/MS. INDEX. 50 * RESULT 1S POSITIVE, USE Q. : : 121031 131034 =011 121039 U OCA4, 0485,2008,002C,55DA,00CA,1 121040 121045 ‘5%829 121048 =01 U 0099, 0880,7003,0862,8047,08CA,5 374* ;0]]==mswememscmsommmmeeae——- ; :100===mmmmmmmmm RIDST.RI_MCMDRI-Q e; Y RESULT IS NEGATIVE, USE -@Q. jmmemmmesmmcemeessss—eos——eseos H WB_MLTEMP7I-RLTEMP9], SIZECLONG],SIGND CMP? : Y IS SUBSCRIPT LESS THAN LOW LIMIT? ;0] emmmmmmm——m e e e a——————— ; SUBSCRIPT 1S GREATER OR EQUAL THAN LOW 121049 WB_RLTEMP101~MLTEMP?], : :51825 NEXT/MS, INDEX, 60 P 1S SUBSCRIPT GREATER THAN HIGH LIMIT? 121050 121053 U 0C98, 0C58,0036,4030,0047,00FB,A ; ;51825 i WRITE NOTREG,SIzefLONGD,ccOP2 131043 MS. INDEX.50: 121044 U 0CA1, 0880,7000,0862,4047,08C9,9 374% SIGND CMP?.SIZECLONGJ, 121054 ;g}ggg SIGND CMP?,SIZECLONGD, : i1 ]mmmmmmm———————— ~——eeemamnn ; SUBSCRIPT IS LESS THAN LOW LIMIT SET FLAG3, NEXT/IE. INDEX.RANGE : PUSH PC ON TRAPS. : 21057 =01 U OCAS. 0U80,0036,4130,0047,003F,9 , U 0CA7, 0(58,0036,4030,0047,00F8,A . 60: 121058 MS, INDEX 121059 P0)mmmemmmcm e ——— : SUBSCRIPT IS LESS OR EQUAL THAN HIGH : ‘5182? 1RD1 121062 ;Nammemcmememam e e e ————————— ; SUBSCRIPT 1S GREATER THAN HIGH LIMIT 121064 NEXT/IE.INDEX.RANGE 121063 SET FLAG3, * PUSH PC ON TRAPS, : ] Page 507| | 1] i | ! § | : CMT098.MCX MISQUE .MIC MICRDZ 1M(01) Misc. and Queue 16:30:35 28-NOV~83 ;51822 .T0C "' F ¢ PUSH 8 gLOKX Rev 13.00, Clock rate = 160ns Page ¢ PUSHR'' Misc., and Queue ;2106? :********t*t*******k**t*************************tti*i*t***t**********t****t*** 221068 . PUSHR 121070 ;21071 ; 121072 ; Input MDR Resources TEMPO TEMP 121069 ; 121073 ; mask.rw TEMP? 121074 TEMP4 ;21075 ; Save zero extended mask operand TEMP7 ;21076 ; 121077 RTEMP9 121078 ; RTEMP10 ;21080 ; 221081 ¢ 121082 ; VA 21079 ; ;21083 ; Mask operand G . Subroutines PRB.WRITEQD PRB.WRITE DEC.SP COUNT .ONES 121084 ;21085 ;51839 H PC.CALL-FIND.REG ;21088 E PUSHR FIRST DOES AN APPROXIMATE PROBE TO DETERMINE IF ALL 15 GPR'S ;S}gg% H SP - N4 WHERE N IS THE NUMBER OF REGISTERS TO BE PUSHED. (NOT PC) CAN BE PUSHED ON THE STACK. IF THE APPROXIMATE PROBE FAILS THE NUMBER OF BITS SET IN THE MASK ARE COUNTED AND AN EXACT PROBE 1S DONE. WHEN PROBEING, THE ADDRESS PASSED TO PRB.WRITEX IS ;21089 ; 221090 ; 221091 :-21892 :-t*w*fl*fi*ttt'l*t*tfitt**W**nQ*ttt**t****k*it************i****i****ki**i***t*ikt* 12109 221096 .REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX.RCH :5}835 MS,PUSHR: U 03A6, 0C86,05BE,4037,8047,00CA,° U 0CA2, 0980,0010,0031,E4A7,00(A,8 ;21099 fi[TEMPOJ RLSP] ; MOVE STACK POINTER_TO AN MTEMP. ES}}8§ VA_MLTEMPOI-ZL1TOL60.] * LOAD VA TO PROBE STACK. :5318? .REGION/M]SQUE .RTL ,MISQUE.RTH/MISQUE .R2L ,MISQUE .R2H/MISQUE .R3L ,MISQUE .R3H 321104 =00 U UCA8, 0085,259E,4790,805D,00C9,C 479+ ;15 GPR'S WILL BE PUSHED (NOT PC). ; SAVE Z2ERO EXTENDED MASK ;5}}83 PUSH,NEXT/MS .PUSHR, PRB ; 21107 2111 :S}}}% 121114 221115 J OCAA, 0966,1¢37,0030,7047,00CC, ¢ Il L L L L EL DL e L DRl S D L) : DO AN APPROXIMATE PROBE ASSUMING ALL PROBE WRITE?, RCTEMP2] ZEXT(M[MDR]), 121110 U 0CA9, 0880,0003,0037,84A7,0579,A el ;21105 ;21106 ;21116 :5;}%5 _ SI1ZECWORD], ; 101 mmmmmenmmsmcesncmanea—————— ; RETURN FROM COUNT.ONES, VA _R{SPI-MLTEMPO], PUSH,NEXT/MM,.PRB.WRITE . NR s LOAD VA FOR EXACT PROBE. ; NO RETURN IF ACV OR TNV, ;10=mmmmmmm————————————————————— ; EXACT PROBE IS OK, MLTEMP1] 20 1TOCOE], SET MM, NDINT, NEXT/MS.,PUSHR.PRB, DK ; LOAD COUNTER FOR ADDRESSING GPR'S, ; STOP MEM MNGMT FROM TAKING INTERRUPTS, H | 508, e T e CMT098.MCX MISQUE . MIC . Y —— A — A Mk bt o n MICROZ et wmn 1M(01) Misc, and Queue 28=-N0V=-83 16:30:35 G 8 CLOKX Rev 13.00, Clock rate = 160ns ¢ PUSHR Page ;21119 =1100 191120 MS.PUSHR.PRB: 21121 0C9C, 0485,8592,4033,C047,0561,8 121122 ;g}}gz 121125 0¢9D, 00BD,259€,4010,0047,00CC,7 121126 121127 ;S}%Sg 121130 121131 0C9E, 00BD,259E,4010,0047,00CC,7 121132 :5}}§2 121135 0C9F, 0966,1C37,003C,7047,00CC,C 121136 ;S}}gg 11100===mm==m=mc—emmmmmm—————— ; PROBE NOT VALID (PTE NOT IN TB) RCMM, TEMP1) MEVAD, PUSH,NEXT/MR.PRB.WRT. TBM ;110] mmmmm e SAVE VA AND PROCESS A TB MISS T0 * LOAD THE PTE BACK IN THE TB. e e na————— -=; RETURN+1 FROM MM.PRB.WRT.TBM, RCTEMPOY ZEXT(MCMDRY), SIZECWORBI, STEPC_30., NEXT/MS.COUNT.ONES * GET COUNT * FOR EXACT PROBE. : :1110==smmcamcmcnam e me————— : NO ACCESS OR RETURN+2 FROM RCTEMPO] _ZEXT(MCMDRY), SIZECWORBI,STEPC 30., NEXT/MS. COUNT . ONES * MM.PRB.WRT.TBM, GET COUNT : FOR EXACT PROBE. : 111 mmmnmene e mamea—————— ; APPROXIMATE PROBE WAS OK, MCTEMP1]_2L1TOCOE], SET MM.NDINT * LOAD COUNTER FOR ADDRESSING GPR'S. STOP MEM MNGMT FORM TAKING INTERRUPTS. 121139 =0 ;g}}z? MS.PUSHR,PRB.0K: 0cce, 0081,2E52,DB50,0047,0CCB,1 354% 0cch, 0480,073p,0027,85D8,00C8,1 121142 0_MIMDRI,SL.1,S1ZECWORD], Y SHIFT BIT MASK AND EXAMINE BIT 15. ;g}}zé PUSH,NEXT/MS . PUSHR.LOOP ; 121146 ne e ————————— : RETURN FROM PUSHR.LOOP TO PUSH SP. mccemme ;]mmmmme 101143 ;S}}zg STGND CMP?, WRITE RISPI+CONX(4),SIZECLONG] ' BRANCH ON SIGN BIT. ; PUSH UNDECREMENTED SP. 121149 =01 ;g}}g? MS.PUSHR.bOOP: 0CB1, 0485,473C,0027,84A7,00CA,6 0cB3, 0885,473C,00A7,84A7,0000,1 0CA6, 0558,2F92,0031,FC67,00C3,5 121152 VA_RCSP]_RB=CONX(4), * PREPARE TO PUSH ON THE STACK. ;5};%2 NEXT/MS., PUSHR . MASK : 161159 PUSH RBSS 191153 PUSH RBS:, ES}}gg MS.DEC.SP: 121158 VA_RCSPI_RB=CONX(4), ;g}}g? RETURN L+11 Esg}gg MS.PUSHR . MASK : MDR_MCTEMP21.AND.OLITBL03F], 131164 121165 121166 SET FLAG3, NEXT/PC.CALL=F IND.REG * SAVE IN CASE OF FAULT * PREPARE TO PUSH ON THE STACK. * SAVE IN CASE OF FAULT : : CLEAR MASK<15:14> : SET FLAG TO INDICATE PUSHR ¢ JUMP TO CALL TO FINISH PUSHING. 28=-NOV=-83 1M(01) Misc. and Queue U 0CDO, 0CB0,0036,47B0 .005F,00C8,C 479* U 0Cb1, 0186,0¢10,0030,1047,00(8,0 U 0CBO, 0480,0001,0037,8447,00(8,2 =2 OO0~ AN D00 NN N SHAND = O = O OO N eh e e h D d D d d ed b md e b d e b b b o ad ek d ad e e = O DO NN SN AN = O 000 NN U 0CAB, 0580,0C11,0051,DCA7,00(D,0 b b ok o} ok b b b b o U 03A7, 0086,058E,4037,8047,00(A,8 o T T T e R O TR TR T T LR LR R N LA LR O PURLRLAIAU RS RIALTINULAIRINL AN NN PINIRINLAJ AINONL A NN NI AJNINONI NI NI NN NI AN NS P PPN LR P4 O N SN ;2 b D D a3 ;g D b b d o add D e M1SQUE. MICROZ2 e b b b b D e e oh b b b b b b ek b ed b b d b ek AIABNUNUNDNUNINONUNOLAINONLNINI NI N —b b e b —3 NN N NN N NONON O P e S OO0 COOOOOO NV VOV OO0 OO OO 000000 CHCO COODA0 OO H CMT09&.m§é et o ; .70C ' H 8 o Page 510| 16:30:35P0PRCL0KX Rev 13.00, Clock rate = 160ns : POPR" Misc. and Queue ~t*****tlt*ttttti**itttttttttk*tfit**t*t*tttkfifl********t*t**fi***k**t**ti**t**** . POPR ’ . . . . . . . Input MDR Resources TEMPO . 0 0 . ) . i ! Q VA : . ’ Mask operand TEMP4 TEMP? RTEMPY RTEMP10 . . | mask.rw Subroutines . . ¢ PRB.READO PRB.READI DEC.SP COUNT.ONES . [} . . ; ’ : . ; . ] . 0 POPR FIRST DOES AN APPROXIMATE PRUBE TO SEE IF ALL 15 GPR'S CAN BE POPPED OF THE STACK(NOT PC). IF THIS FAILS, THE NUMBER OF SET BITS IN THE MASK ARE COUNTED AND AN EXACT PROBE IS DONE. THE ADDRESS PASSED TO PRB.READX IS SP + 4%N ~ 2. THE GENERAL FORM FOR POPPING WOULD BE SP + 4*(N=1) BUT SINCE PRB.READX USES DSIZE AND DSIZE IS WORD AND WE ARE INTERESTED IN POPPING LONGWORDS WE MUST PUSH THE ADDRESS UP TWO MORE BYTES GIVING SP + 4%(N=1) + 2 WHICH IS EQUAL TO THE ORIGINAL SP + 4*N - 2, } | . :t**tittttnfl*ttiiit*tflnt'!t*tfl!t*kt*fltt'RtkNfit*t***t**tt*t**t*****Q****i*t**ii LREGION/IRDX,R1L, IRDX.R1H/IRDX.R2L,IRDX .R2H MS.POPR: --------------------------------- MCTEMPOI_RLSP) : MOVE SP TO AN MTEMP. | .REGION/MISQUE ,R1L ,MISQUE .R1H/MISQUE .R2L ,MISQUE ,R2H/MISQUE .R3L ,MISQUE . R3H R Ry R L L VA_MCTEMPOI+ZLITO0(59.) =0 ;Qmmsmmmommo oo Y PROBE READ?,SIZELIDEPI, PUSH,NEXT/MS.POPR.PRB T Y T L N ; e e : DO AN APPROXIMATE PROBE ASSUMING ALL : 15 GPR'S WILL BE POPPED (NOT PC). : PUSH FOR JUMP TO COUNT.ONES S LU SRR L : RETURN FROM COUNT,ONES, MCTEMPO]_MB-ZL1T0C23 ; --------------------------------- VA_MLTEMPOJ+RLSP] : LOAD VA FOR EXACT PROBE. | MICRO2 1M(01) Misc. and Queue U 0CBD, 00BD,259E,4010,0047,00CC,7 U OCBE, 00BD,259F,4010,0047,00CC,7 U OCBF, 0C60,05B8E,4037,84A7,00(8,4 J 0CB4, 0886,1E77,0030,0047,00C8,6 uU 0cB6, 0181,2C01¢,7010,8107,00¢8,5 it ddon R 1 ! 1 1 124 O~U!wa—‘O‘Om\IO\AZ\WN—'OOm\IO‘U‘J\WN—'Oom\l U 0CBC, 0485,B592,4033,0047,0562.8 N T T T I T T U OCAF, 0C60,058BE,4037,84A7,000C8,4 R L T R U OCAE, 0085,8592,4039,(047,00F5,D LELELNL LT ST TN L ST S N L NS L S A S A LA LA S LA DA S A v(NS ST S 1 V] B B 2 DR A IR IR N AT N N PO PO TU RO PO PO RDTU NN =2 —3 =2 U OCAD, 0(80,0036,4030,0047,00F6,1 it At 1) OCAC, 0485,B592,4033,(047,0562,8 L 005F 479+ ,08CA,C ) 0CB2, 0C80,0036,478B0, 28-NOV~83 PORLALALNLA NI RDAININI NDRJ RN NI N NINUN N RN b AN> AT NNb AL NI NIRL NI NN AINLNLAININOAI NIV 3 b b d e b o)k md e b ek h o e D ek amad It (MT098.MCX MISQUE.MIC 1 8 16:30:35P0PRCL0KX Rev 13.00, Clock rate = 160ns PROBE READ?,SIZELIDEP] Page PROBE VA, (PTE NOT IN TB) : SAVE VA AND PROCESS A _TB MISS TO : LOAD THE PTE BACK IN THE T8. 51100===mcmmmmecccman e - PROBE NOT VALID RTMM. TEMP1] MCVAT, PUSH .NEXT/MR. PRB. READ. TBM ;1101 mommme REXT/IE. TNV s e e ee: ; CATCH RETURN+1 FROM MM,PRB.READ,TBM TAKE A TNV FAULT. 110 REMM TEMP3]_M[VA], NEXT/IE.ACVTM PROBE NO ACCESS OR RETURN+Z FROM SAVE FAULTING ; ADDRESS AND TAKE AN ACV FAULT. {A_RLSPI, ;; MM.PRB.READ.TBM, EXACT PROBE ; MM,PRB,READ.TBM, WRITE ACCESS OK OR RETURN+3 FROM NEXT/MS. POPR.PRB. OK MS POPR.PR? s s g g Y T IS OK : LOAD VA FOR FIRST POP. :; STOP MEM MNGMT FROM TAKING INTERRUPTS, SET MM, NOINT, O RCMM, TEMP1] MLVAD, O PUSH,NEXT/MA,PRB, READ., TBM PROBE NOT VALID (PTE NOT IN TB) SAVE VA AND PROCESS A _TB MISS TO H LOAD THE PTE BACK IN THE TB. ¢ ; 11101 mmmmemm e e — e m e ; RETURN+1 FROM MM.PRB.READ.TBM, RCTEMPO] _ZEXT(M[{MDR]), S1ZECWORD],STEPC_30., s GET COUNT ;s FOR EXACT PROBE. }Sz NEXT/MS. COUNT ONES : 1247 1248 1249 ;1110====mmmmmmemcman m——— ====; NO ACCESS OR RETURN+2 FROM RITEMPO] ZEXT(MIMDR]), ; MM,.PRB.READ.TBM, GET COUNT SIZELWORD],STEPC_30., : FOR EXACT PROBE. %Sg? NEXT/MS, COUNT ONES 1252 1253 1254 ;111 =ccmmmm em e e : APPROXIMATE PROBE WAS OK, A RLSP], ; LOAD VYA FOR FIRST POP. SET MM, NOINT ; STOP MEM MNGMT FROM TAKING INTERRUPTS. ;sgg NEXT/MS,POPR.PRB, 0K : : %sgg MS.POPR.,PRB,OK: }323 MCTEMP1] =1 1261 1262 S; Q_SEXT.M[MDR] STEPC_[16.3, ; 1263 STZE[NORDJ ; H iy plir JEry PR Q- G-yl Quir Ge Qi Gihr G Gr il Sl il M T pr Qv L Qi u 0cp2, 0080,0339,96FD,8047,08(8,5 335~ u 0cD3, 0080,0036,4130,0047,003F,9 POLRININRINININI RN NSRRI NI NN NINOTUNINVNO NN OO0 0 CO 000D N NN N NN NSNNNOONOVON O O AR = O OO0 NS WD = OO0 IO S TR TR TR I NNV AL NNV T T S U 0CC3, 0C8S,2592,403C,C047,00CB,5 NN U 0CB?, 0084,0730,0027,8480,00¢C,3 S U 0CBS, 0085,DE7C,0330,4047,00C0,2 J : POPR Misc. and Queue R MISQUE MIC NINVIVNI N H CMT098 . MCX AONI NNV ANV ANV NN : 28-NOV~83 16:30:35 MICROZ 1M(01) 8 CLOKX Rev 13,00, Clock rate = 160ns Page 512 =01 1S .POPR.LOOP: RNUM RLTENP1]_RB+1, © INCREMENT GPR ADDRESS. NERT7MG FORR. INNER ; DBZ STEP ' CHECK TO SEE IF DONE. N el ; READ, VA_RUSPI_RB+CONX(4) " POP OFF OF THE STACK. RCGPR.R]_MIMDR], * LOAD THE GPR. NEXT/MS, POFR. L 00P =0 MS.POPR, JNNER . e e " S o > : o gg(gglgggg*o).RR.1, : ROTATE BIT MASK AND TEST BIT<31>, NEXT/MS.POPR.LOOP ; <31- IRDY e . i ; ; : CMT098.MCX MISQUE .MIC MICRO2 1M(01) Misc. and Queue 28~NOV-83 ;%}ggg LT0C ' Page 513 CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 : COUNT.ONES ROUTINE : Misc. and Queue 321289 JRRARIRIRE R KRR TN IR IR IR SRIR KRR R KRR RN AR MS.COUNT.ONES COUNT.ONES ROUTINE" AR AR AR ARk ddok bk kkkd :5}53? H Entry points 121292 ; Input ;21294 ;21295 Resources E%}ggg ; ;21300 ; 4 times the number of set bits found TEMPO Qutput THIS ROUTINE CALCULATES THE NUMBER OF BITS SET IN TEMP0<15:0>. ;21302 ; DECREMENTED FOR EACH SET BIT FOUND IN TEMPO<15:0>. 121293 ; :g%ggg : :21301 ; ;21303 ; The word to be counted TEMPO 30 decimal STEPC STEPC Holds the count . Used for finding next set bit PL STEPC IS INITIALIZED TO 30 BY THE CALLING ROUTINE, IT IS THEN SET BITS ARE DETECTED BY SCANNING FOR THE MOST SIGNIFICANT BIT SET AND THEN CLEARING THAT BIT, COUNTING IT AND REPEATING. ;21306 ;ttkittk**kk****t**tfit*tkt*t****tkt*******fi****************************Q****k* ;s%%gé H ;21307 ;21308 MS.COUNT,.ONES: ;21309 U 0CC7, 0€80,09C2,4DFD,8047,00C8,A : U OCBA, 0486,0036,4030,0187,00CC,B ;21310 :S}%}; WX<15-0>.NE.O? 121313 =10 ;10mmmmm ;21314 :g}%}g 121317 221318 U CCBB, 059€,0AD3,8030,0847,00CC,7 u 0ccB, 0185,0012,0030,F847,00CF,C U OCFC, 0986,0013,0030,F047,00CF,D U 0CFD, 0886,0301,C080,0047,0000,1 I ettt tatiataledelntntnd Lodn ol ~=; LOAD PL AND BRANCH IF MTEMPO=0 PL_MSS MCTEMPO], ;21319 ;S%%S? e ; ; SRKSTA<O0>=WX<15:0>.NE.O mm e MLTEMPO]_STEPC, mmae e ; TEMP0=0, NO MORE SET BITS. ; # BITS = 30, - STEPC NEXT/MS.TOUNT.ONES10 ;1] mmmmm e o ; s m e mn ; TEMPO ,NE, O MORE BITS TO COUNT. MLTEMPO) MB.ANDNOT.ZLITPLL1], DEC _STEPT, NEXT/MS.COUNT.ONES Esgggg MS. COUNT ., ONES10: ES}%S? 121326 MCTEMPO]_MB.AND.ZLITOL1F] ; CLEAR THIS BIT AND COUNT IT. H : * CLEAR UNDEFINED BITS FROM STEPC. jmmmmmmmemmmmmmmemeeameemeee ; ;5}%5; MCTEMPO]_ZLITOL30.]-MB 121329 ;21330 e e Rt ; MCTEMPO) _(MB+RLTEMP0OD) ,RL.1, ; RESULT IS 4 TIMES NUMBER Of SET BITS. RETURN [¥1] : 221331 ; LDAD NUMBER OF SET BITS INTO TEMPO. PR R 2 2 4 e N S AN N = OO @I g AP 37 : MOVPSL : MOVPSL'' f dst.wl MOVPSL Input (Dest is register) RNUM VA Address of dst : Resources TEMP1 Temporary ; MOVPSL moves the PSL to the destination psecified by VA or RNUM, é Input (Dest is memory) : 514§ i | i i Register number of dst to hold PSL ;*'(*****fi***'{******t*****t**k**t***t*****t**t*************************'\"‘(****** Z .REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L,IRDX,R2H B AN — OO 0O b ad b ok b R b e e b e D N A U U N N O A NN N N N (NN d % NG U A O 3 md ad emd b D D b d mmd ok b o Page CLOKX Rev 13.00, Clock rate = 160ns g ;**tk****tt**t***iit***t************t***********t**********t***t************** AT N N LA AT Ll U A U U L TR TR R T TR O TR TR PRPR R U 0D00, 0C84,1592,412(C,45DA,003F,9 e T U OCFF, 0886,1003,803D,4047,0000,0 LU NN LEL LN LS U OCFE, 0BBO,047E,F807,F847,00CF,F 8 L 32 .TOC "' Misc. and Queue N0 00 NN Misc. and Queue U 03A9, 0886,1036,4030,0087,00CF,E 16:30:35 28-NOV-83 1M(01) O~ OO LTI LSS B o HISove.mic MICRO2 AU = CMT098.MCX b L e LS TSTLE LS LN LNT N LS TS LN LS L TS TaN LS S S S AN LS [y 8] e MS.MOVPSL: * - g o 8 - MCTEMP1]_PSL s o 8 0 P o O 2 W 4 A § ; .REGION/MISQUE .R1L ,MISQUE ,RTH/MISQUE .R2L ,MISQUE .R2H/MI SQUE .R3L ,MISQUE . R3H § e s A o (g G e e e LONLIT_L3020FF00) ¥ e e T : LOAD MASK OF MBZ BITS. * W o w w * MCTEMP1]_MB.ANDNOT.RCLONLIT] : FORCE MBZ BITS TO ZERO, L L D R R RCDST.R) MLTEMP11,WRITE NOTREG, SIZE[LONGI,IRD1 : g : : CMTO98.MEE MISQUE .M MICROZ2 TM(OT) Misc. and Queue 16:30:35 28-NOV~83 ;§}§22 .T0C ' M8 C(LOKX Rev 13.00, Clock rate = 160ns : BISPSH, BICPSW : BISPSW, BICPSW" Misc, and Queue 321365 SRR KRR AR AR AR IR AR IR AR AR H AR RAR IR ;21366 BISPSW 121368 ; ;S}%gg ; Input BICPSW 221367 ROk Rk ok ke d kb % mask.rw mask,rw MDR Mask operand Temporary to hold PSL TEMPY 121371 ; Resources 321374 ; BISPSW AND BICPSW MODIFY PSW<7:0> BY ORING OR ANDNOTING ¢§}§$9 : CHANGED IF MASK<15:8> IS NOT ZERO. ;%}%;g : Used by exception code if reserved oper FLAG3 WITH A MASK WORD. A RESERVED OPERAND FAULY 1S TAKEN AND PSW NOT 121375 ; 221378 ;*******tt*****t**tt«**tt***Q**t*t****kt*************************************t ;21379 :slgg? .8EGION/1RDX.R1L,1RDX.R1H/IRDX.R2L,IRDX.RZH U 0292, 0D81,2D92,0A37 ,FB47,04CD,4 Egjggg MS.BISPSW: QB_M[MDRJ.AND.ZLITB[OFFJ, }21384 E CHECK MASK<15:8> MBZ ;S1§§g ; ;21385 WX.EQ.0?, 101388 U 0293, 0C81,¢002,4030,4027,0000,2 ;21389 ;g}gg? P et e e L; 0 H ; NEXT/GL.NOP, IRD1 e el : 121394 WB_M[MDR].AND.ZLIT8LOFF], ; CHECK ;g}%gg PUSH,NEXT/MS.BIXPSW.MBZ ; 221395 121398 U 029F, 0C81,2003,0030,4027,0000,2 PSW_MCMDRJ.OR.RLTEMP1], 121392 MS.BICPSW: ;21393 U 029E, 0D81,2092,0A37,F847,C4(D,4 : PUSH,NEXT/MS.BIXPSW.MBZ ;21399 ;5}28? WX.EQ.0?, ; MASK<15:8> MBZ T ot T: PSW _M[CMDRI.NOTAND.RLTEMP1], NEXY/GL .NOP. IRD1 H ; ES}ég% REGION/MISQUE .R1L,MISQUE .R1TH/MISQUE .R2L ,M]1 SQUE ,R2H/MI SQUE .R3L ,MISQUE .R3H 121404 =0 ;21405 MS,BIXPSW.MBZ: 221406 U 0Ch4, 0418,0036,4030,0047,00FF,8 :21407 ;S}zgg 121410 U 0CD5, 0€B6,1036,4080,0087,0000,1 121611 ;21412 N : MASK<15:8> .NE. 0, RESERVED OPERAND, CLEAR FLAG3, s PUSH PCBACK=2. ; NEXT/1E.OPER.FAULT P MCTEMP1]_PSL, RETURN [+1] e ——— : ; H ; Page 515° SN =2 OO0 NN syl : Resources Q Entry operand TEMP1 Save entry TEMP3 TEMP4 Save (pred)+4 Save (pred) MDR ittt it iRttt it Predecessor operand TEMP2 H H : s At il s entry.ab, pred.ab Input ; Page 516 : INSQUE INSTRUCTION" Misc. and Queue : H I O O N O R O A A I BN BN BN D IS B W N NN O A CLOKX Rev 13.00, Clock rate = 160ns : INSQUE INSTRUCTION INSQUE AN b D e b 8 82323252233 3222222 82282222y : d D emd d D b b b o D md b b D b d e} e b e b d O e 1+ fre2, 0880,0036,4020,0050,00CD,6 £O AU J 0CC1, £085,2592,4030,84A7,0579,8 “~a U 0CCO, 0580,1C11,0030,24A7,0579,8 L10C ' O AN L (AR = O O 00 N ONMA B AN = OO 00 N CHAN b b PONIND R R N ANV L P TR T P O R T PP PR PR TR T PN P AU AU RJ R RDAL AU AU R RS R RV NI NV N AL NV N AL NI NI NV U 03AA, 0086,103A,403D,84A7,00CC,0 e =l o It bt Inb b Rt Sl AT AT N AU TN RO N PO N =3 =3 = 3 e 3 3 Misc. and Queue D D D b MISQUE .MIC N 16:30:35 28-NOV~83 1M(01) TR ; MICRO2 D : C(MT098 . MCX Save pred VA MM.PRB.WRITE .LUNG subroutines }t*t****it**t*t**t***k****fi****t*t***k***k***kk****kfi"*********k************* .REGION/IRDX.R1L, IRDX.RTH/IRDX.R2L, IRDX.R2H QU. INSQUE : ¢ SAVE ENTRY. VA_MCTEM®1] _RLZEROJ,OR.Q .8SGION/MISOUE.R1L,flISQUE.R1H/MISQUE.R2L.MISQUE.REH/MISOUE.RSL.MISQUE.RSH H VA_MCTEMP1]+ZLITOL4], 40 0t et e e o S i e e O e g et § PUSH,NEXT/MM.PRB.WRITE.LONG : PROBE ENTRY+4, ;0 : e T T e e e e ; SAVE PRED IN TEMP2. VA_RCTEMP2] MIMDR], PUSH,NEXT/MM.PRB.WRITE.LONG o~ o T i e T READ,S1ZELLONG] T W : PROBE PRED. g o ¢ ¢ GET (PRED). CLOKX Rev 13.00, Clock rate = 160ns = e 21 o T o o O ey VA RCTEMP3] M[MDRJ*CONX(& PUSH,NEXT/MM PRB.WRITc.LO ;1 VA M[TEMP1]*ZL1T0[03. - INSQUE INSTRUCTION - -t 9 r~1% : B & - 1] O = OO0 NS LN OTM W S ANNU = OO0 NN N S WD = OO0 N P T T L T T N ol NN NNNNNNOOONOO OO OO O NIV WV VILIAL P COCOOOCO WD =2 3 O CO o o o B W o S P TR TR PR PRSR P RV L S S U ot B b e .. upod, UC80,1592,40A0,0508,0000,1 [N LN S v LN 1) 0CCe, 0480,4000,0120,8847,003F,9 T R 0CCs, 0580,2C11,0030,04A7,04D0,4 ad occa, 0180,3¢11,0030,04A7,04D0,4 o e A 0003, 0880,2592,4020,0508,00CC,4 b o 0p0e, 0480,003¢,4030,0447,0000,3 D b 0001, 0485,2592,4021,05D8,0000,2 bk o 0?7, 0560,1¢11,0030,04A7,0000,1 L ST N ST CL LS TV LSRN, S LNT S LSS LC LS LN N VLS LN LN 0485,¢711,0020,(4A7,0579,8 > ot —d 0coe, b b b b ok D b md b d D D d md d ek e h o Y e AP A B S Rl A LR Ll 2Pl S L] ek ke ard Queue ¥ Misc. S MISQUE MIC 16:30:35 28=NOV~B3 M0 S ’ . MICRO2 EL (7098 . MCX . Page SAVE (PRED)+4 IN TEMP3 PROBE (PRED)+4. LOAD ADDRESS OF NEW ENTRY. ALL REFERENCES ARE OK EXCEPT ENTRY, WHICH SEY MM_NOINT ; WILL BE WRITTEN FIRST. QRITE.SIZEELONGJ, i SET FORWARD LINK IN ENTRY TO (PRED) s ; WRITE MCTEMP?J?SIZE[LONEE : SET BACK LINK IN ENTRY TO PRED. RLCTEMP4]_MLMDR] ; SAVE (PRED) FOR SETTING CONDITION CODE ;00 VA_MCTEMP3I+ZL1T0EO% PUSH,NEXT7QU.WRITE, TEMP1 : LOAD VA WITH (PRED)+4, SET BACK LINK IN OLD SUCCESOR TO ENTRY o‘,-unne--fiafiflns ------- - o - : VA_MLTEMP21+2L 170003, PUSH,NEXT/ZQU.WRITE, TEMPY ; LOAD VA WITH PRED, : SET FORWARD LINK IN PRED TO ENTRY, . ]O -------------------- e WB_MLTEMP4I-RLTEMP2], g£g€1,SIZE[LONGJ. ; COMPARE FORWARD AND BA(CK LINKS : IN ENTRY TO SET CONDITION CODES. QU.WRITE.TEMPT: -------------------------------- GRITE MLTEMP1],SIZELLONG], RETURN [+1] ; H 517 Misc. and Queue 151 %gl 131 P T O Vs N IS AN) = O N0 00 TS W) = O N0 0O N O O NP AU =< O 00 L L] D ed = CR LT 3 —3 D eh TR PR T b e b T T T b e b D O e B ok 3 D ok T U 0D05, 0880,0036,4020,0450,00CD,8 4 5 5 5 5 5 5 5 15 15 15 }g} e ah R T U 02A3, 088%,203A,403D,84A7,0000,5 e T T T U 0242, 0085,8592,4031,0047,0579,8 D e [ASIaCLNT VTN LNTAN LS 1V 1, V]AORLNLNINSNLRJINAL U RSN AR RUNL AU RN NN RORLAI NI N AL NS RV NV NI PO NINUNL A AN U 03AB, UBBY,2592,4030,84A7,0000,5 U 0CD9, 0065,2592,4030,44A7,0000,6 Lo e ’ ’ b} CLOKX Rev 13.00, Clock rate = 160ns Misc, and Queue ’ . ’ ; ; entry.ab, ; MDR VA . : ’ ; L4 Subroutines kv Addr RNUM MDR Addr Entry operand address Entry operand address (entry+4) Entry TEMP4 Address of destination *| i 5 MM.PRB.WRITE.SI 0S.WRT1 ; ] ’ CRNRRR AR AR AR AR R KRR AR ; kAR AR Rk kR Rk ko k Ak Ak Ak Ak ko deh ko wkw .REGION/IRDX.R1L,IRDX.R1H/IRDX .R2L, IRDX.R2H QU.REMQUE . REG: VA_RCTEMP21_MLMDRI, NERT/QU . REMGUE. 10 ' SAVE ENTRY IN TEMP2. : QU REMQUE , MEM: RLTEMP4] MLVAJ, PUSH,NEXT/MM,PRB , WRITE . LONG [ : SAVE ADDR IN TEMP4 (DESTINATION OPER)., * PROBE ADDR. : }gsg 0 151535 121536 READ,SIZELLONG], VA_VA+4 i Qmmmmmm e mmmmmm s e READ,SIZE[LONG], VA_RETEMP3] MLMDRI+CONX(4), PUSH,NEXT/MM.PRB. WRITE . LONG D ! PSR OSSR ; VA_MCTEMP2] 0 ‘ SAVE ENTRY IN TEMP2. };52 JREGION/MISQUE . R1L, MISQUE .R1H/M]SQUE .R2L ,M1 SQUE ,R2H/M1 SQUE .R3L ,MISQUE .R3H %égg 0U.REMAUE . 10: 21534 j MM.PRB.WRITE, L 0?6 ; }gg; 151537 : ;g;g | ! (entry)+4 then (entry) MM.NOINT ’ Rk VA TEMPY TEMP TEMP3 ; R AR AR AR A R AR KR AR Q Input (Dest 1is register) ’ AR AR addr.wl Input (Dest is memory) Resources f : REMOQUE"' [ i Page 518 t REMQUE REMQUE ; 3 9 RNk R AR AR RN AN RN R R KRR KN AR R RN KR AR ; 1520 121530 _ LT0C "' 1517 }g}g 121529 U 0CD8, 0485,2711,0020,(4B80,0579,8 16:30:35 28=NOV=83 1M(O1) DD DD MISQUE .MIC MICROZ NN NN ; CMT098.MCX OCOOOOOOOO 0 VOV OV OV OYVWCO DX ; c TP VA _RCTEMP] MIMDRI, SET MM.NOINT Y GET (ENTRY), 1 ; ’ ——— ; P GET (ENTRY) +4, SAVE (ENTRY)+4 IN TEMP3. * PROBE (ENTRY)+4. : * LOAD (ENTRY+4) IN VA & SAVE IN TEMP1, ALL REFERENCES OK, DISABLE INT. ! ; ; CMI098.. M E% MISQUE .M MICRO2 1M(O1) Misc. and Queue ;21537 U 0D0O6, 0884,3710,0020,(5D8,00CD,A 16:30:35 28-NOV-83 ;21538 ;g}gzg 0 121541 :21542 CLOKX Rev 13.00, Clock rate = 160ns : REMQUE Page jmmmmmmmme e m e e ——— N ; WRITE,SIZELLONG] RCTEMP3]_MCTEMP3I-CONX(4) Y SET FORWARD LINK OF PRED TO (ENTRY). : SAVE (ENTRY) TO SET CONDITION CODES. jQm m m e ; VA_MCTEMP3]+2L1TOL4], : LOAD (ENTRY)+4 * SET BACK LINK OF SUCCESOR TO (ENTRY+4) U 0CDA, 0980,3C11,0030,24A7,04D0,4 ;51222 PUSH,NEXT7QU.WRITE, TEMP1 U 0CDB, 0D80,4C11,0030,04A7,0000,7 121545 :S}gzg ilemsemmmeseseeceseeeceeeoeeeeee ; {A_MLTEMP4I+2L1TOL0] * LOAD ADDR(DESTINATION OPERAND ADDRESS) 21548 U 0DO07, 0884,2592,402C,45DA,0000,8 121549 ;S}gg? 121852 U 0p08, VC80,3000,0020,4847,0000,9 121553 :S}ggg 21556 U 0D09, 0480,2000,0120,5047,003F,9 jmmmm s m——meomemm—mea—eae ; RCDST.RI _MLTEMP2) WRITE NOTREG,SI7EELONG] : SET POINTER TO REMOVED ENTRY, jemmemmmesmcmsecemeeececoceoeoes ; WB_MLTEMP31-RLTEMP1], ; CCOPT,SI1ZELLONG] ; SET PSL<N,Z,(>, fmmmmmmmm e ————————— e ; (COP2,SIZETLONGI, ¥ SET PSL<V>, 121557 UB_MCTEMP21-RLTEMP11, 121559 IRD1 121558 ; : ; 519 ; : e CMTO98.MCX MISQUE.MIC - MICRO2 T e bt 1M(01) Misc. and Queue e 16:30:35 28~NOV-83 E 9 CLOKX Rev 13.00, Clock rate = 160ns 1 o o——— - : INSQHI Page 520 : INSQHI" :5122? LT0C "' Misc, and Queue ;21562 ;t*********k***************k*******t****t***t*i*t*t*******t******************* ;21563 ; INSQHI entry.ab, header.aq ;21565 ; Input MDR Q entry Resources TEMP1 TEMP2 (header) header - entry TEMP5 entry ;21564 ; $21566 . | 121567 ;21568 ; 121569 TEMP4 ;21570 ;21571 121572 ; 221573 ;21574 ; ;21575 ) Subroutines )] header header (needed to release lock on fault) successor MM.PRB.WRITE.SIZ . QU.REMQHI20 QU.SET.LOCK :S]?;g H 321578 Etttt*tt**t*k********k***t*************w************************************** 121579 ;S}gg? .8EGION/IRDX.R1L,IRDX.R1H/1RDX.R2L.IRDX.R?H Eg}gg§ QU. INSGHI : U 02AC, 0885,2592,4031,04A7,04D2.9 :21584 ;g}ggg 121587 U 02AD, 0808,1001,2031,06A7,00CD,¢ :21588 :S}ggg VA_RLTEMP4] MCMDR], PUSH,NEXT/Q0,SET.LOCK * LOAD ADDRESS OF HEADER AND SAVE IT. ; SET THE SECONDARY INTERLOCK. Ll : R R ottt VA_D_M[TEMP1J+RLTEMP4], CLEAR FLAG1 : LOAD ADDRESS OF CURRENT HEAD. ; MAY BE SET BY QU.SET.LOCK FOR_REMGXI .REGION/MISQUE .R1L ,MISQUE .R1H/MISQUE .R2L ,M1SQUE .RZH/MISQUE .R3L , I SQUE . R3H U obQc, 0180,5C11,0030,24A7,0000,D J 0DOD, 0080,e592,4020,0508,0000,E T R R n (=] AN = OO0 O NG R S AR — D D eL D d ek el D D e b D o e e s wmd o h b o od o o b mh d ©880,0038,002D,8508,00CE,A b e A O u GDOF, PP P LN P J ODOE, 0D80,0¢31,0030,24A7,0000,F VAN NND = O 0 00 IO A B ARD = OO0 00 NN A 0C80,1001,1020,85D8,0000,C e u OCbF, D 0C80,4002,403D,84A7,C0FF.8 P S U OCDE, TIC L U 0DO0B, 0960,5C12,0A30,3847,00(D,E D d d D d d T T A T U ODOA, 0486,503A,403D,84A7,0000,B fe Yoo e NoNeNe No NoNo Ne NoNo Ne Neo XoNo Yo Yo Xo Jo do o ok otadridididriiviividridyitptd ok o) P ST T LY i e e i R R R Y o T 1) [olelelelolalelolleDallolNoNeNol U 0CDC, 0C00,0036,47B0,005D,0068,4 479« U 0CbD, 0884,4008,0030,8047,0000,A 28-NOV~83 and Queue PR TR T PRCYR Misc. R MICRO2 LN SN S TN LN S LN LN NENTN NN NN LS TN, S L E LN LS LR LS [N 1P 1A TaN L (M T098.MCX MISQUE.MIC ; : F 9 16:30:351NSQ£%0KX Rev 13.00, Clock rate = 160ns Page Y —— RO —— ; CLEAR FLAGO, ; SET BY QU.SET.LOCK FOR CC SETTING PROBE WR1TE,SIZECIDEP], : PUSH.NEXT/MM.PRB.WRITE. $12 : CHECK THAT SUCCESSOR CAN BE WRITTEN. RLTEMP2] MLTEMPGI-0 : SAVE HEADER = ENTRY {A_MLTEMP5 RCZEROI.OR.Q LOAD ADDRESS OF ENTRY AND SAVE IT. UB MLTEMPSI.AND.ZLITOL7], CHECK ENTRY FOR QUAD AL IGNMENT SET MM_NOINT,WX.EQ.0? H jQ==meemcmmcancnne- kil bt H VA MCTEMPLT, : NOT ALIGNED, RESERVED OPERAND. LOAD ADDRESS OF HEADER Rttt iteteiut ettt : ALIGNMENT NEXT/IE . OPER. FAULT : IS OK. WRITE,S1ZECLONGY, : SET FORWARD LINK IN ENTRY A MCTEMPSI+ZLITOLEY : LOAD ADDRESS OF ENTRY + 4 GRITE MCTEMP2],SIZECLONG] : SET BACKWARD LINK IN ENTRY tApeaLitotas : LOAD ADDRESS OF SUCCESSOR + 4 Q_MLTEMPTI+RCTEMP2) URITE -0.SIZECLONGI. NEXT/QU. REMGHI , 20 : ; SET BACKWARD LINK IN SUCCESSOR GO RELEASE SECONDARY INTERLOCK. 521 ;: CMT098.MCX MISQUE.MIC 6 9 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28-NOV-83 1M(01) MICRDZ2 + INSQTI Mis¢. and Queue :S}gsg LT0C ' 522l Page ] : INSQYI" Misc. and Queue 521628 ;**t***************t********kt***t*****************************t**t*********** entry.ab, header.ag INSQTI ;21629 ; 121630 ; ;21631 021632 | 121633 ; ;21634 ; 121635 Input MDR Resources TEMP1 121636 ; 221638 ;21641 , (header) header (needed to release lock on fault) TEMP4 TEMPS header - entry MDR tail = header successor D 121637 ; :21639 ; ;21640 ; header entry 0 Subroutines MM.PRB.WRITE.SIZ QU. UNLOCK Qy.SET.LOCK ;S%gzg ; ;216&4 E**t*tk**t**t******n*k***t*********k*tt*t***********************t************* 121645 ;g}gzg .SEGION/JRDX.R1L,lRDX.R1H/IRDX.R2L.IRDX.RZH U 0282, 0885,2592,4031,04A7.04D¢,9 Es}gzg QU. INSQTI: VA_RLTEMP4] MCMDR], 121650 ;S}gg; 121653 U 0283, 0508,4011,0030,24A7,0001,0 U Cp10, 0000,003%6,4020,0050,0001,1 U 0Dpi1, 0881,2001,0031,04A7,00D1,2 ;21654 ;21655 PUSH,NEXT/Q0.SET.LOCK ;1m m m e m e CLEAR FLAG1, VA MCTEMP4I+ZLITOEG] * LOAD ADDRESS OF HEADER AND SAVE IT : mm e ; ; MAY BE SET B8Y QU.SET.LOCK FOR REMGXI ; LOAD ADDRESS OF HEADER + 4 :S}ggg .REGION/MISQUE . RIL,MISQUE.RTH/MISQUE .R2L ,MISQUE .R2H/MISQUE .R3L ,MISQUE . R3H 121658 :g}ggg 121661 121662 CLEAR FLAGO, READ,SIZELLONG] * SET BY QU.SET.LOCK FOR CC SETTING ; FETCH (HEADER + 4) femmmemmmmmmmmm—eemem—eee———— ; LOAD ADDRESS OF TAIL VA_MLMDRI+RLTEMP4] : TAIL = HEADER + (HEADER + 4) (MT098 . MCX MISQUE .MIC | Misc. and Queue 28-NOV=-83 U 008, 0460,4002,403D,84A7,00FF,8 : H 9 CLOKX Rev 13.00, Clock rate = 160ns INSQTI ;===zzszsmsszzoazscsszasszox=ass; 121663 U 0D12, 1981,B(12,0430,3847,00CC,8 16:30:35 Page ws patch to PCS x+ ; CHECK TAIL FOR QUAD ALIGNMENT ;21664 WB_MCVAJ.AND.ZLITOL7], 321667 SO0RRRRARBARRREBRUBRBRRRERGRERRE; BAD ALIGNMENT, RESERVED OPERAND. ; LOAD ADDRESS OF HEADER VA_MCTEMP4],SET MM.NOINT, DISABLE MEMORY MANAGEMENT TAKING INTS ; NERT/1E.OPER.FAULT ;S}ggg WXTEQ.0?,PATCH 121668 ;21669 :g}g;? 221672 ’ H . %% replaced in PCS xx SOVHRRRRRNRRRBNRRRANARRARINGEBY; «* replaced in P(S x* ;21673 RLTEMPS5] _MLTEMP4]-Q, ; SAVE HEADER - ENTRY U 0CC9, 0484,4008,07B1,405D,0068,4 479 ;S}g;g PUSH,NEXT/MM.PRB.WRITE.S1Z ; CHECK THAT TAIL CAN BE WRITTEN U 0CCA, 0480,003A,403D,84A7,00D01,3 521677 :S}g;g STORBBRNNARERBRARRRRARRRANNRAMNE,; »* replaced in PCS *x . LOAD ADDRESS OF ENTRY VA_Q,NEXT/CI,PATCH.RET U 28(8, 0460,4002,403D,84A7,00FF,8 221680 éBC8; ,21681 ;21682 JO0%anwennwknnhncnwrnannnnnniwx; BAD ALIGNMENT, RESERVED OPERAND. ; LOAD ADDRESS OF HEADER VA MLTEMP4],SET MM.NOINT, ; DISABLE MEMORY MANAGEMENT TAKING INTS ULY NERT/1E.OPER.FA . ;11Mvalidity failure U 28C9, 0484,4008,0031,4047,028C,A U ?8CA, 0480,0036,4780,005D,0D68,4 479+ J 28(B, 0480,003A,403D,84A7,0001,3 121674 ;g}ggz 321685 28(9: PROBE WRITE?,SIZELIDEP]. H ; %% code in PCS w+ JOTHraRk TR RN R KRR AR C KRR kN Nhwn; *% code in PCS wx : SAVE HEADER = ENTRY ;S%ggg RCTEMP5]_MLTEMP4]-Q 221688 28CA: Rek; ** code in PCS #» Ak RKL JRRRKRARKRAKARAKXRARRAAR ;21689 PROBE WRITE?,SIZECIDEP], ;S}gg? PUSH,NEXT/MM.PRB.WRITE.S1Z ;2]692 28(8: JTO*RARK R Rk k ke h Rk ;S}ggz VA_Q H ; CHECK THAT TAIL CAN BE WRITTEN Ak Nk Kk Nkh; **x code in PCS *x ; LOAD ADDRESS OF ENTRY ! . CMT098.MCX MISQUE MIC MI.CR02 1M(01) Misc. and Queue 16:30:35 28-NOV=-83 1 9 CLOKX Rev 13.00, Clock rate = 160ns : INSQTI :g}ggg C1.PATCH.RET: 0013, 0161,BC12,0A30,3847,00CE,0 121697 ;%}ggg 21790 =0 WB_MCVAJ.AND.ZL1TOC?], SET MM.NOINT,WX.EQ.0? * CHECK ENTRY FOR QUAD ALIGNMENT * DISABLE MEMORY MANAGEMENT TAKING INTS e B L S; 0CED. 0C80,4002,403D,84A7,00FF,8 121701 121702 VA_MITEMP4], NERT/IE.OPER.FAULT : LOAD ADDRESS OF HEADER : OCET, 0C80,5592,4020,05D8,0001,4 351582 WRITE MCTEMPS],SI1ZELLONG] * SET FORWARD LINK IN ENTRY 0b14, 0CB0,0036,4030,0447,00D1,5 2108 121707 1 jeemmememmmemeeesesesecmeeesea- ; : :5};83 VA_VA+4 121710 jmmmmmmmmmmmmmmmmmmeeseemsees ; WRITE,SI1ZECLONG) 0_MCMORI +RETEMPS | 0D15, V481,2001,1021,45D8,00D1,6 217 ;g};}g 0D16, 0481,2592,4A70,0047,00CE,2 121715 ;g};}g UB_MCMDR], WXTNE.0? 121718 =0 P 21714 Page P ¢ SET BACKWARD LINK IN ENTRY : EEEEE L LR L L ; CHECK IF FIRST ENTRY IN QUEUE : ~w; SAVE FORWARD LINK TO ENTRY : WHICH WILL BE STORED LATER IN HEADER 121719 MCTEMP1] _RLZERO]-Q, 0CE3, 0881,2001,0031,04A7,0001,7 35};52 VA_MIMDRJ+RLTEMP4] 0017, 0880,0038,002D,85D8,00D1,8 121725 ;5};§g o L EL LS : WRITE -Q,SIZELLONG] : SET FORWARD LINK IN OLD TAIL TO ENTRY 0D18, 0580,4C11,0030,24A7,0001,9 ES%;?? VA_MLTEMP41+ZL1TOL4] 121732 jemmmmmmmeeeemeseesamamm—a———— ; 0CE2, 0886,1038,0030,8047,00D1,8 , 0D19, 0480,5003,002D,85D8,00D2,C 121720 NEXT/QU. TNSQTI.10 ; : LOAD ADDRESS OF TAIL ES};gg QU. INSQTI.10: 121733 121734 WRITE RCZERDI-MLTEMPS], S1ZECLONGI,NEXT/QU, UNLOCK : LOAD ADDRESS OF HEADER + 4 ¢ SET BACKWARD LINK IN HEADER : GO RELEASE SECONDARY INTERLOCK. 524 i ; H (MT098,MCX M1SQUE MIC MICRO2 1M(01) Misc., and Queue 16:30:35 28~NOV=-83 ;s};gg .T0C "' J 9 CLOKX Rev 13,00, Clock rate = 160ns : REMQHI ' Page 525 ! : REMQHI'' Misc. and Queue 32173? ;kt*tt***ktkk*t***fit*t**tt**tt*t**tk*****i************t***k*t***************** 221738 ; 121739 ; 121740 ; ;21741 ;21742 121743 ; 121744 ; REMQH] header.ab, addr.wl Input VA Q TEMP1 Resources 121746 ; ;21749 ; 221750 ; :g};g; ; header = entry TEMPS entry D . (header) TEMP? TEMP4 ;21745 ; ;21747 221748 addr header header (needed to release lock on fault) successor MM.PRB.WRITE.SIZ .20 QU.REMAHI QU.SET.LOCK Subroutines ;21753 ;*t****t***k*****t*t**tt*****fi****t*tt******t******k************************** ;21754 221755 _REGION/IRDX,R1L,IRDX.R1H/{RDX.R2L,IRDX.R2H I . REG: ;21756 QU.REMQH u 03A§, 0981,2€1¢,7020,0CA7,0028.,4 ;21757 ;5};28 P 121760 QU.REMOHI: ;21761 U 02BA, 044D,B00C,7031,04A7,04D2,9 ;21762 ;21763 ;S};gg 121766 U ¢2BB, 0800,4001,2030,44A7,00D1,A U OD1A, 008D,1592,4A70,0047,00CE, 4% U OCE4, 0484,0582,4030,8047,00D1,C ;21767 e L L e b ety ; REGISTER MODE ENTRY POINT Y e ; CLOBBER MDR TO AVOID RESERVED OPERAND, L DL L L e CE LU e ww==: MOVE DESTINATION ADDRESS TO Q AND 0 Q_M[VA], VA _RCTEMP4] SET FLAGY, PUSH,NEXT/QU.SET.LOCK ; LOAD ADDRESS OF HEADER AND SAVE IT. : SET FOR USE BY QU.SET.LOCK ; SET THE SECONDARY INTERLOCK. e TR ; HEAD = HEADER + (HEADER) F T CLEAR FLAGO, ; SET BY QU.SET.LOCK FOR CC SETTING ;21768 VA D _MLTEMP4{I+RLTEMP1] : LOAD ADDRESS OF HEAD AND SAVE_IT, ;g};;g WXTNE.0? 121774 =0 SRR R PR RS ; R ;S};gg REGION/MISQUE.R1L ,MISQUE .RTH/M]I SQUE .R2L ,MISQUE .R2H/MI SQUE .R3L ,MISQUE ,R3H : CHECK IF QUEUE IS EMPTY WB_MLTEMP1], 121771 121775 ;g};;g ;21778 u 0CES, 0884,0582,4020,8050,0001,8 e e e B Q_MCMDRI VA_zZLITOC1] 121779 ;21780 H RUTEMP2] D, NEXT/QU.REMQHI.10 P e e EREE R ; READ,SI2E[LONG], RLTEMP2]_D ; SAVE ADDRESS OF HEADER AS NEW HEAD : ; GET FORWARD LINK FROM HEAD AND MOVE ; ADDRESS OF HMEAD FOR NEXT CALCULATION | : {%T;gggm)c( MICRO2 1M(01) Misc. and Queue U 0D1B, 0485,2001,0030,8047,0001,¢ u OD1C, 0D80,2C12,0A30,3847,00CE,6 28=NOV-83 16:30:35 ;21781 ;g%;g% K 9 CLOKX Rev 13,00, Clock rate = 160ns 1 REMQHI Page 5261 § i jmmememmmcememccmcsumn S ; NEW HEAD = HEAD + (HEAD) RCTEMP2]_MCMDRI+RB 351;32 QU,REMQHI.10: WB_MLTEMP2],AND.ZLITOL7], 121786 ' SAVE ADDRESS OF NEW HEAD * CHECK NEW HEAD FOR QUAD ALIGNMENT :5};35 121789 =0 WX7EG.0? : e ; BAD ALIGNMENT, RESERVED OPERAND U OCE6, 0460,4002,403D,84A7,00FF,8 ;g};g; NERT/IE.OPER.FAULT DISABLE MEMORY MANAGEMENT TAKING INTS U OCE?, 0580,2C11,0030,24A7,00CE,8 121793 :S};gg o I R VA_MCTEMP21+ZLITOL4) ' LOAD ADDRESS OF NEW HEAD + 4 121790 121796 =0 121797 U OCE8, 0480,0036,47B0,005D,0D68,4 479+ ;s};gg U OCE9, 0460,003A,403D,84A7,00D1,D U OD1D, 0084,0582,402C,45DA,00D1,E U OD1E, 0580,2C11,0030,24A7,0001,F 121800 mmm e s emmmmm ;0mmm PROBE WRITE?,SIZELIDEP], PUSH,NEXT/MM.PRB.WRITE.SI12 * CHECK NEW HEAD + 4 FOR WRITE ACCESS p * LOAD DESTINATION ADDRESS :21803 121804 ;g}ggg e L LS ; : * WRITE DESTINATION POINTER TO ENTRY WRITE NOTREG,SIZELLONGJ 121807 e b EE L C : et RIDST.RI.D, UA_MLTEMP21+2L1TOC4] ' LOAD ADDRESS OF NEW HEAD + 4 , e L L L L L———— 121811 121812 CLEAR FLAG2, WRITE,SIZELLONG], CLEAR HERE, THEN SET IF LAST ENTRY SET BACKWARD LINK IN NEW HEAD ;31212 WX.EQ.0? * CHECK IF REMOVED LAST ENTRY 121813 | e ; DISABLE MEMORY MANAGEMENT TAKING INTS P L VA_Q,SET MM.NOINT ;s}ggg ! | " LOAD ADDRESS OF HEADER ;g}gg; :21810 U OD1F, 0014,4000,0A20,85D8,08CE,A 345+ VA _MLTEMP4],SET MM.NOINT, : RCTEMP2]_MCTEMPZ 3~RB, * SAVE FOR CALCULATING HEADER LINK i : 21816 =0 121817 QU.REMQHI,20: 121818 U OCEA, 0486,158F,0030,8047,0002.C _ U OCEB, 0C56,158F,0030,8047,0002,( e ===<; DID NOT REMOVE LAST ENTRY FROM QUEUE * SAVE HEADER FORWARD LINK : 121819 :S}SS? MCTEMP1] ~RLTEMP2], NEXT/0U.ONLOCK 121822 m ; REMOVED LAST ENTRY FROM QUEUE secmmm e . ——— mmmecm {]mmmms 121823 121824 MITEMP1) -R[TEMP2], SET FLAGZ,NEXT/0U.UNLOCK * SAVE HEADER FORWARD LINK Y PSL<Z> <= 1 t ’ 1 MICROZ2 (MT098.MCX MISQUE.MIC 1M(OT) Misc. and Queue L 16:30:35 28-NOV-83 9 : REMQTI ;21827 2233232222322 322223 23] P 2 2222 A ;21828 REMQTI header.ab, addr.wl ;21830 :21831 ; 221832 . Input VA Q Resources TEMP1 ;21833 ; ;21834 221836 ; ;21838 ;21839 ; ;21840 ; :S}gzg : Subroutines 2222 22222822t stid] J! (header) TEMP? header - entry TEMPS entry D ;21837 ; ALt addr header TEMP4 ;21835 ; : REMoQTI" :S%gsg LTOC "' Misc., and Queue ;21829 ; Page 527 CLOKX Rev 13.00, Clock rate = 160ns header (neeued to release lock on fault) successor MM,PRB.WRITE,SI1Z QU.REMQHI ., 20 QU.SET.LOCK | :'21843 :'***********kti**t*t*ktt*t**t**ttt****kt&'lt*flt*fi***i***t****************t***** ;21844 :21845 _REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H ;21846 QU.REMQTI.REG: 03AD, 0181,201(C,7020,0CA7,002C.A ;21847 :%%gzg 0 PR 121850 QU.REMQTI: ;21851 02CA, 044D,B00C,703%1,04A7,04D2,9 el L L D bt et ; REGISTER MODE ENTRY POINT e Q_MLMDR] vA_zZLITO[1] 1= m e ; CLOBBER MDR TO AVOID RESERVED OPERAND. e cm s nanae. ; MOVE DESTINATION ADDRESS TO Q AND ;21852 VA_RCTEMP4]_Q Q_MCVAJ, ; LOAD ADDRESS OF HEADER AND SAVE IT. ;%}ggg PUSH,NEXT/QU.SET.LOCK ; SET THE SECONDARY INTERLOCK. ;21853 121856 SET FLAGT, ; SET fOR USE BY QU,SET.LOCK Pe; 02(B, 0000,4C11,0030,24A7,00D2,0 121857 CLEAR FLAGO, : SET BY QU.SET.LOCK FOR CC SETTING ;21858 VA _MLTEMP4]+ZLITOLA4) ; LOAD ADDRESS OF HEADER + 4 :g}ggg .REGION/MISQUE.R1L,MISQUE .RTH/MISQUE .R2L ,MISQUE .R2H/MISQUE .R3L ,MISQUE .R3H 0D20, 0880,0036,4020,0050,0002,1 E%}gg; READ,SIZELLONG] Y FETCH LINK TO TAIL 0D21, 081,2001,2031,0047,0002,2 :21863 :S}ggé LR EE ; Te ; SAVE ADDRESS OF TAIL D_MIMDRI+RLTEMP4] 121866 b DDttt ; B el 0p22, 0080,0C32,0A30,3847,00CE,C S ;21867 121868 WB_D.AND.ZLITOL?7], WXTEQ,0? ; CHECK TAIL FOR QUAD ALIGNMENT H } % (MT098.MCX MISQUE MIC MICRO2 1M(01) Misc, and Queue 28-NOV=-83 16:30:35 ;21869 =0 00FF,8 OCEC, 0460,4002,403D,84A7 0CED, 0580,0C31,0030,24A7,0002,3 121870 ;21871 :21873 ;21874 101876 0D23, 0884,0582,4020,8050,0002,4 ,E 0D24, C485,2001,0030,84A7,00CE ;21877 OCEF, 0580,2C12,MA30.,3847,00CF,0 0CFO, 0460,4002,4030 84A7,00FF,8 0CF1, 0760,003A,403D,84A7,0002,5 0D26, 0D80,4C11,0030,24A7,0002,7 , _ 0De8, 0480,2003,0021,0508,00D¢,¢ e cmecmnemmm e; : LOAD ADDRESS OF LINK TO NEW TAIL et S S L R; ; FETCH LINK_TO NEW TAIL READ,S1ZETLONG], : MOVE D TO TEMP(FOR LATER CALCULATION) e L L; : COMPUTE ADDRESS OF NEW TAIL et ; PROBE WRITE?,SIZECIDEP], ¢ CHECK THAT NEW TAIL CAN BE WRITTEN : PUSH,NEXT/MM.PRL.URITE. $12 :21887 121888 ;mmmmmmmmmec s cmee oo cmneeae ; i CHECK THAT NEW TAIL IS QUAD ALIGNED UB_MLTEMP21.AND.ZLITOL7], 121891 =0 121892 ;Qmmmmmmmmmmmmm oo mceomm e ; BAD ALIGNMENT, RESERVED OPERAND : LOAD ADDRESS OF HEADER VA_MCTEMP4],SET MM.NOINT, 121889 WXTEQ,0? : : DISABLE MEMORY MANAGEMENT TAKING INTS 21893 NERT/IE.OPER.FAULT $21895 ;g}ggg ;lmmmmmmmmccmaemceme e : DISABLE MEMORY MANAGEMENT TAKING INTS : LOAD ADDRESS OF DESTINATION VA_Q,SET MM.NOINT 121899 P EE R L L L e ; RIDST.R) D, : : WRITE DESTINATION POINTER TO ENTRY 121900 WRITE NOTREG,S1ZELLONG] 121902 121903 I ee e EE ; VA_MCTEMP41+ZLITOL4] : LOAD ADDRESS OF HEADER + 4 121906 ;21907 121910 :21911 :S}g}g 121914 0CF3, 0C10,2002,403D,84A7,00D2,8 mmmemco ;g}ggg 121909 <0 0CFe, 0156,1C37,0030,0047,00D2,C ;1o VA_D+ZL1TOL4] P e VA_RCTEMP2]_MIMDRI+RB ;21884 : LOAD ADDRESS OF HEADER * DISABLE MEMORY MANAGEMENT TAKING INTS NEXT/1E.OPER.FAULT :21915 jmmmmmmmmmemmesems———aec—meooa- ; WRITE RITEMP2]-MLTEMP4], SIZELLONGI,WX.NE.0? : SET BACKWARD LINK IN HEADER ; CHECK IF REMOVED LAST ENTRY ;0mmmmm oo : ! QUEUE IS EMPTY, ZERO HEADER : ; MCTEMP1]_ZLITOLOD, SET FLAGZ, NEXT/QU.UNLOCK ;1m m m e em (LFAR FLAG?, e mae e mae e ; H 21916 VA_MCTEMP2] 121918 21519 Dv e; WRITE RLTEMP4I-ML[TEMP2], : SET FORWARD LINK IN NEW TAIL 21920 SIZELLONGI,NEXT/QU.UNLOCK : LOAT ADDRESS OF NEW TAIL ; " Page 528 Y e L- VA_MCTEMP4],SET MM.NOINT, :21880 21881 121905 0027, 0080,4003,0460,8508,08CF ,2 339+ : REMQT] RCTEMP21_D $21898 0D25, 0884,0582,402C,45DA,0002,6 CLOKX Rev 13.00, Clock rate = 160ns ;g}g;g :21883 =0 OCEE, 0480,0036,4780,005D,0D68,4 479x M9 i : : CMTO98.ME§ Misc. and Queue MISQUE.M 16:30:35 28-NOV=-83 MICRO2 1M(01) N 9 CLOKX Rev 13.00, Clock rate = 160ns ¢ QU.SET.LOCK Page 529 : QU.SET.LOCK" :5}35} LT0C ' Misc. and Queue ;21923 ;tt**tt**t*tt*tww**tx**tt*t**ttt*k****k***fii**t*t***********t**********t****** 221924 :21925 ; 121926 ; 121927 ;21928 Entry points QU.LOCK Input VA TEMP4 Q Address of header Address of header 1f INSOXI then address of entry FLAG! [f INSOXI then clear 1f REMQXI then set ;21929 ; ;21930 ;21931 121932 1f REMQX] then address of destinatien ;21933 Resources MDR Read header 121935 ; ;21936 ; Output TEMP1 FPDOFFSET (header) 19. ;21934 ; Set FPD ;21937 ; Set it queue is empty else clear FILAGT Set if queue is empty else clear FLAGZ Set SOF TWARE INTERLOCK ;21938 ; 121939 :5132? ; 1is quad aligned and not equal to 121942 QU.LOCK checks that '‘header'' 21944 ; Then the header is read and the software interlock checked and ;21943 :S}gzg ; ‘addr'’ or “‘entry'’ respect!velfi for REMOGXI and INSQXI. set if clear. 221947 Ek**w*kk*t***w*******t*t*fl***tt***tit*****tt“**t***t*t*****t*******tk*t******k 121948 :S}ggg QU,SET,LOCK: U 0D29, 0D8V,4C12,0A30,3847,00CF,4 U OLF4, 0080,0036,4030,0047,00FF,8 ' ) U OCFS, 0080,4008,4A70,00647,00(F,6 U OCF6, 0C80,0036,4030,0047,00FF,8 < QCF?7, 0080,0036,4020,0053,0002,A ] J OD2A, 19EE,(C37,0030,9847,0002,8 * CHECK HEADER FOR QUAD ALIGNMENT 121957 WB_M[TEMP4 ,AND.ZLITOL7], $21954 =0 —— : mne e ———————————— 1Q-mmmemmmee ;S}gg% ;S}ggg 121957 WX, EQ.0? : NEXT/IE.OPER.FAULT L T ; TAKE A RESRVED OPERAND FAULT ; e ; CHECK HEADER .NE. (ADDR OR ENTRY) ; (ADDR IF INSQ, ENTRY IF REMQ) :21958 ;S}ggg WB_MLTEMPA].XOR.Q, WXUNE.O? 121961 =0 ; e s :g}g@% NEXT/IE,OPER.FAULT 221964 P ; (3 R eL L L L L L L : TAKE A RESRVED OPERAND FAULT L D H ;s%ggg READ.MOD.LOCK,SIZELLONG] :-2]967 RR K% jump RN AR KARA KRN, JERNAAAREXRAXRRRPR ;21968 ;21969 ; ATTEMPT TO SET SECONDARY LOCK to PCS xx M{FPDOFFSET]_ZLITOL19.],SET FPD,; SETUP ?0 RELEASE LOCK IF FAULT OCCURS RPATCH 1M({01) Misc. and Queue ;21970 121979 121980 OCFY, 0448,1592,4A30,0047,08(F ,A 322« OCFA, 0508,1012,40A0,0DD8,0000,1 _ ¢ OULFH, GDS0,1012,40A0,00D8,0000,1 NEXT/QU,COCK, CHECK ; *+ replaced in P(S #+ SCF TWARE LOCK SET,wB<2-1> NOT ZERO THIS SHOULD GO TO IE.OPER.FAULT ; BUT THIS WAY SAVE MODIFYING THIS ROW WXTEW. 07, NEXT/QU, CHECK, AL 16N STVRRREBNENRREBARRERRRRANRRRANEN RCTEMP2] FLAGS,CLEAR FPD, ; NEXT/QU.ONLOCK.10 : SOF TWARE LOCK ALREADY SET PREPARE TO SET CONDITION CODES »+ replaced in P(S % 121986 QU, CHECK.ALIGN: SONBNRARRNNRRRRUARRRRRRRERRRRRAN; % replaced in P(S «¢ 121987 VA MUTEMP4],SET MM,NOINT, : LOAD ADDRESS OF HEADER : 21988 : DISABLE MEMORY MANAGEMENT TAKING INTS NERT/1E,OPER,FAULT 221989 ;21990 21991 Qu. CHECK., ALIGN 1: 121992 U RCTEMP1] MCMDR],WB<1=057, ;21993 ;21994 121995 = ;21996 ;21997 . 21998 : 21999 ;22000 222007 122002 .22003 ;22004 122005 . oy ¢ ; SET FLAGT, WB_M[TEMPTJ.WX.E0.0? o o Oy o - - e W CLEAR FLAGT, SIZECLONG],RETURN [+1] ¢ ; : : ................................. h0§[15m913LOR.ZLITOC1D, LAG2,RETURN [+1] SEE HEADER COMMENT ; CHECK IF QUEUE IS EMPTY TO SET CC'S VRITE.UL MCTEMP11.0R.ZLITOC1D, 2>C7C: OCF8, 0460,4002,403D,84A7,00FF .8 ;21982 ;21983 ;21984 ;21985 =0 Page L refl aced in P(S *+ ; SET INCASE LOCKED OUT ; SEE IF LOCK ALREADY SET 121974 ;21975 =10 121976 QU.LOCKED AL IGH: 10########################fi####' ;21977 w8 JMLTEMP1].AND, 2L ITOC7], H ;21978 ;21981 OCCF, 0CEA,0036,4030,8387,00D2,E CLOKX Rev 13.00, Clock rate = 160ns QU.SET.LOCK JHRRARANRNRARARARERRAARBRRRGRRAR m— 0CCE, 0DBO,1C12,0A30,3847,00CF,8 121973 810 SET FLAGO, ~n'—vm 0DeB, UBAS5,¢592,4270,6047,0131,2 ;21971 :21972 : —_— ) . 16:30:35 28-NOV=~83 e M1SQUE MiC ’ M]CROZ LNES (MT098.MCX :: RELEASE HARDWARE LOCK, AND SET SOF TWARE LOCK SEE HEADER COMMENT RELEASE HARDWARE LOCK, AND SET SOF TWARE LOCK, SET PSL<Z2> FOR REMQX] NO ENTRY TO REMOVE 530- e e 28-NOV-83 U 2934, 0CE4,0036,4030,8387,0002,¢F U 2935, 0480,0036,4030,0047,00CF,9 P S P S J 2933, 0180,1c12,0A30,0847,0493,4 335+ S U 2932, 08EQ,1592,4020,0508,00FF,8 AU MUNUNL PN PO NUNL NV RSN L U 292L, 0980,1(12,0A30,3047,0A93,2 335+ TR T 2928, 0045,2592,4030,4067,0292,¢C OO0 ~JONN S AN = O 000 NN NS NN = OO 00 ~NIO Misc. and Queue PUNCOUPOPONS AN N O —d oed b o b b —b — = MISQUE .MIC R H CMT098.M(X 1M(OD NUN N N ADNUN NN H MICROZ2 16:30:35 : 10 CLOKX Rev 13.00, Clock rate = 160ns Page QU.SET.LOCK wx y-code in P(S ** SET FLAGO, : SET INCASE LOCKED QUT ; SEE IF LOCK ALREADY SET WB_MCTEMP1).AND.ZLITOL6, : wx y~code in P(S »+ CHECK IF (HEADER)<2-=1> BITS ARE ZERO N0:::::::::' WRITE.UL MUTEMP1),S12ELLONG], RESERVED QPERAND, TAKE FAULT EXIT H RELEASE HAREWARE LOCK B_MCTEMP11.AND.ZLITOC1], :Y CHECK IF 2ND INTERLOCK BIT SET RCTEMP2]_FLAGS,CLEAR FPD, ZND INTERLOCK IS SET PREPARE TO SET CONDITION CODES *%x y=code in P(S *x RITEMP1]_MCMDR] WX EQ,0? ::::::.‘.’:::::::::::::: CLEAR FPD, NEXT/IE.OPER.FAULT WX.EQ.0? NEXT/QU,ONLOCK.10 H H % y=-code in PCS *x *% y~code in P(S »» : : : 2ND INTERLOCK ISN'T SET EXTQ0 CHECRLALTON T = : Wt y=code in PLS *x« ; ; MICRO2 CMT098.MCX 1M(01) Misc. and Queue MISQUE .MIC 16:30:35 28=NOV=83 D 10 CLOKX Rev 13.00, Clock rate = 160ns : QU,UNLOCK :%gg;? .TOC ' Misc. and Queue e e 322052 R ;22033 ; :22034 ;22035 ;Sgggg ; 122038 : ;55828 : Page : QU.UNLOCK"' LA A AR T AL A A AL AL A AR AR SR ARAARRAAALEL Entry point QU.UNLOCK Input TEMP1 TEMP4 New contents of header Address of header QU.UNLOCK is the normal exit for REMOXI and INSQXI. QU.UNLOCK.10 is branched to if lsb of header already set 322041 ;******t*w*k**k**wiik****t***t*******k*****ik*******************t************* ;22042 122043 :55822 QU.UNLOCK: U 0Db2C, 0CED,4002,403D,84A7,00D2,D . U 0b2D, 0884,0036,4020,8393,0902,F E LOAD ADDRESS OF HEADER 355829 VA_M[TEMP4J.CLEAR FPD 102048 jm m e e e; 122049 :5%82? READ.MOD.LOCK,SIZE[LONG], RITEMP2]_FLAGS : THIS 1S AN ENTRY FOR SOF TWARE ;22052 QU.UNLOCK,10: U O0D2E, 0C80,2592,4030,00A7,00D2,F :22053 :sgggg $22056 U OD2F, 0480,1592,4120,0508,003F,9 fmm=mmm—emsemeeesccsneammeeeenee : INTERLOCK ALREADY SET CC_MLTEMP2] ie e; 122057 WRITE.UL MCTEMP1],SI1ZECLONG], 222061 RE bbbt ERE bbb SEEEAREEE 122063 CHEERRE R R R 122058 ;22059 ;22060 122062 ; ! PREPARE TO SET CONDITION CODES. IRD1 ; RELEASE BOTH INTERLOCKS H ; the following 2 locations are in decmal.mic module R R R bbb b4 122064 ; ;++++++++ force address ++++++++; 122065 ;1296: :55829 JQU.RESV.OPER: ; $22068 jmmmmmmmmmm—mmooeoooecamees ; SAVE FAULTING ADDRESS INCASE ;35898 : MLCTEMP6]_RLMM, TEMP3] 222071 21297; (+++4++4 force address +Hi+tdten; ;22073 ; READ.MOD.LOCK,SIZELLONG], :558;2 H NEXT/QU.RESV.FIX 102072 222074 ; 122077 CAN'T COMPLETE INTERLOCKED QUE INSTR : IN CASE OF A TB-MISS ON HEADER oo Do cmmm e : GET SET TO READ HEADER CLEAR FPD, ; WITH HARDWARE INTERLOCK IN EFFECTY : ;REMAINDER IN DECMAL MODULE ;22078 ;1052: ++++tr+ force address ++++tttin; 322081 E WRITE.UL M[TEMPT].ANDNOT.ZLITO[13, 120084 110661 ;+++++++ force address +ettdis; ;Sgggg JQU.RESV.FIX: 55582% : SIZELLONG] ; CLEAR SOFT LOCK BIT ; AND UNLOCK HARDWARE INTERLOCK ! 532, ) H ; (MT098.MCX MISQUE.MIC MICROZ 1M(O1) Misc. and Queue 16:30:35 28=NOV=83 ;22085 ; ;22086 ; ;Sgggg : CLOKX Rev 13.00, Clock rate = 160ns ¢ QU.UNLOCK et hstetuptuiubdedeteetetaidetet i ; RECOVER ORIGINAL FAULTING ADR RCMM. TEMP3] MLTEMPG], ; RETURN TO EXCEPTION HANDLER FLOW NEXT/QU.RESV.EXIT 22089 FREE.OD30: U 0D30, 00£0,1592,4020,05D08,008F,D E 10 force address i 533, g i! i tHtiretix; ;5588? st++++++ $22092 WRITE.UL MCTEMP11,SIZECLONG], :Ssggz Page CLEAR FPD : RELEASE BOTH INTERLOCKS ; 122095 0BFD: 222096 QU.RESV.EXIT: Jttetttt force address +Htttiiing 122097 U 0BFD, 0885,E036,48B0,0047,04F5,A ;22098 ;Sg?gg 122101 0BFF: U 0BFF, 0480,0036,4030,0047,00FE,2 ;22102 ;22103 RLCTEMPO] _RBSP,RBSP.EQ.0?,PUSH, NEXT/1E.RBS.RBACK ;Httt+++ force address NEXT/IE.PACK.DONE ; ROLL BACK SIDE EFFECTS : tHttitiikg ; INCASE A TB-MISS HAD OCCURRED , .0CODE 00A: .BAD.IRD .BAD.IRD CNOPJLIE.BAD.IRD CNOPILIE. OPCOD DEC CNTOLLODJLOS.RED CNTTENOPIIMS. INDEX CLODJLOS.RED ; INDEX CLODILOS.RED CNOPJLMS. INDEX CNOPJLIE.OPCOD.DEC CLODILOS.ADD 05C: CNTOLLODICOS.ADD CNTTINOPILQU. INSQHI CLODJLOS.ADD [NOPICQU. INSQOHI 0 50: JHALT CNOPJLCIE.BAD, IRD 05C: FPD [NOPI[LIE.OPCOD.DEC IRD1LLODILOS.ADD .0CODE ;BISPSW CNOPILIE.BAD.IRD .BAD.IRD .BAD.IRD . 1CODE .1CODE 0 D: ] CNOPJLIE.BAD.IRD FPD [NOPJCIE.OPCOD.DEC IRD1LLODILOS.RED .0CODE 1, [NOPJLIE.OPCOD.DEC . HALT [NOPILMS £PD [NOPILIE.CPCOD.DEC IRD1{LODILOS.ADD [NOPILIE.OPCOD.DEC CLopIL0S.ADD CNTOCLODILOS.ADD CNT1ONOPILQU, INSQT] LLODJLOS.ADD ENOPILQU. INSQTI [ (] DNARY = OO0 NN 00A: CNTOCNOPICIE.BAD.IRD CNT1INOPILIE.BAD.IRD [NOPJLMS.BICPSW CNOPILIE.BAD.IRD s INSQHI ; INSQT! -~ 000: FPD [NOPILIE.OPCOD.DEC IRD1INOPILMS. HALT ;BICPSW i .1CODE FPA MEM CNOPJLIE.OPCOD,DEC CNOPILMS.BPT jS]] e 003: CNTOLCNOPICIE.BAD.IRD CNTT1INOPICIE.BAD.IRD 534 CNOPJCMS.BISPSW CNOPJLIE.BAD.IRD .BISPSW .BAD. IRD 003: FPD [NOPJLIE.OPCOD.DEC IRD1INOPILMS.BPT .0CODE FPA REG [NOPILIE.OPCOD.DEC CLODILOS.RED D0 ~ - O N0 DN PR G i Gl P LN Sl .BICPSW .BAD.IRD [} 5 ) DN o OO~ PR —~ P AN AURD — 2] (] e Gl L ST ST VTRV ST O] n DS IS O BSOS IS S S P Qi AT UT g ESONT LY NN 0PS fNOP][IE OPCOD.DEC [LODILOS.RED 088: FPD [NOP]LIE. OPCOD.DEC IRD1LLODICOS.RED .0CODE 0B8: CNTOLNOPJLMS.BISPSW CNTT1LNOPI[IE.BAD.IRD . ICODE Page : Ird Rom Definition" and Queue |S =2 OO0 NS NN — OO0 0NN Y S SR S PR RU NI b — s S 3 iatpie Sl G GUr G i QI S Sl Sy G s 2 we ey ma Brvs . Se Sc%eme ae i tavene . s MO Misc. . 1CODE . ICODE v . e T Sesivive F 10 16:30:35 CLOKX Rev 13.00, Clock rate : Ird Rom Definition MEM .1CODE OPS REG 0B9: FPD ENOPJLIE.OPCOD.DEC IRD1CLODILOS.RED E .0COD 0B9: CNTOLNOPILMS.BICPSW CNT1INOPILIE.BAD.IRD 000: noruraPuNUINLRL NNV AUV U PO NI N o ;22104 .70C "' .NOBIN .0CODE R N Misc. and Queue 28-N0OV-83 [ S]] OO D OO R AN NI AL AN A AL N NN RS NI N rU RO NV NN ON JASLAV] MO AR NI NGAINO NI AN NI N NN NI AL AN PO RN NI NI N YT T MISQUE .MIC MICROZ [N CMT098.MCX : .0CODE 088: .ICODE 05 E: .0CODE 0 5€: .1CODE 05 F: .0CODE 0SF: .1CODE 00F: [S] ) I pS MS.MOVPSL 1E.BAD.IRD [NOPJCIE.OPCOD.DEC [NOPI[MS.NOP CNOPJEIE.OPCOD.DEC S . NOP IRD1CNOPI[CM CNTOCNOPILIE.BAD.IRD , IRD CNT1INOPILIE.BAD CNOPILIE.BAD.IRD [NOPICIE.BAD.IRD FPD CNOPJLCIE.OPCOD.DEC CNOPILIE.OPCOD.DEC CLODILOS.RED j| ] CNTOCNOP]CMS.POPR IRD CNT1ENOPILIE.BAD. [NOPJLMS.POPR CNOPI[IE.BAD,IRD JIMS.POPR JCIE.BAD.IRD FPD CNOP]LIE.OPCOD.DEC [LODICOS.RED IRD1LLODICOS.RED [NOPJCIE.OPCOD.DEC IRD1CLODILOS.RED [MS.PUSHR (I1E.BAD.IRD . PUSHR CMTOCNOPJLMS CNTT1INOPILIE.BAD.IRD [NOPJLMS.PUSHR CNOPILIE.BAD,IRD S.WRT2 U.REMQH! CLODICQU.REMQHI.REG CNOPILQU.REMQHI IRD1LLODILOS.ADD ] ] [NOPJCIE.OPCOD.DEC CLopIC0S.ADD CNTOLLOD]CQU.REMQTI.REG CNTTLNOPILQU.REMQTI ] 0S.WRTZ JCQU.REMET] CLODILQU.REMATI.REG [NOPILQU.REMQTI FPD [NOPJILIE.OPCOD.DEC IRD1LLODILOS.ADD .0CODE .REG 00F: CNTOLLODILQU.REMQUE .MEM CNT1LNOPILQU.REMQUE sREMQH] fLoDILOS.ADD CNTOLLOD]LQU.REMQGHI.REG CNT1INOPILQU.REMQHI [NOPJLIE.OPCOD.DEC MS.PUSHR IE.BAD.IRD CNOPJLIE.OPCOD.DEC FPD CNOP]LIE.OQPCOD.DEC IRD1[LODIL0OS,ADD FPD 1. ] [N oP]L 1E.OPCOD.DEC L op1L 0S.ADD [0S.WRT2 MEM . UE [QU.REMQ fL 0DJE QU . REMQUE .REG [N oP1L au. REMQUE .MEM S.WRT2 20 0B8: BAD.IRD . MOVPSL CNOPJLMS [NOPILIE.BAD.IRD U.REMGHI sREMQTI ;REMQUE T| . 1CODE MOVPSL CNTOLCNOPJ]LMS.MOVPSL . IRD CNT1CNOPILIE.BAD | ; INSQUE sMOVPSL S.WRT2 20 .0CODE 0BA: LOS.ADD LQU. INSQUE CNOPILIE.OPCOD.DEC [LODILOS.WRTY FPD [NOPJLIE.OPCOD.DEC IRDICLODICOS.WRTY FPD CLODILOS.ADD [NOPILQU. INSQUE FPA MEM ’ e . 1CODE 0BA: JCQU. INSQUE FPA REG [SETI 0 01: i€ 0S.ADD —ata .0CODE J ] | CNOPILIE.OPCOD.DEC CLODILOS.ADD SR) . 1CODE 001: 0PS MEM Page 535; 160ns Ird Rom Definition it .0CODE 0 DC: CLOKX Rev 13.00, Clock rate it . 1CODE 0D C: CNTOCLODILOS.ADD CNT1INOPILQU. INSQUE G 10 [S==] S 00E: : 20 .0CODE REG 0PS FPD LNOPJLCIE.OPCOD.DEC IRD1LLODICOS.ADD [l ) 16:30:35 i [N S G ) = OO0~ O =S OO NN S NN = OO0 NN DN OO0 CVOOPEECOE NNNNVNNNNNOROROROOON g iy = O 000N NN AN OO O NN OO YOV OOOOOOOOOC OO O DO NI A M RO RO RSN NI AJAI N NL NI NI N R RN RN AUNL NN R RN 1N W AINADAG roNunsNNDPLRY NNV RBNITL VNLASTHNSNS ke kD D d ad e o e D d d ok D b D S e b b e e D b D D e h ) b D PONININONINONIADININD — == b b 3 = b ed b b 3 s S v S TS I A TACIA T LA 4 ST ST ST ST TS TN, TaN L L N e s ®e ®r me ma Te Ve me Mo W N ey Te Ve S (NS [RSLSLSLSTS ST LNTN T STV NS 1S 1) V] NUNRLNL NI AN NINIA NN RO NN NN NININU N e T N T T TR P O L R Y} . 1CODE 00E: 28-NOV=-83 L] . MICRO2 1M(01) Misc. and Queue CMT098.MCX MISQUE .MIC YY) R : | FPA MEM —— DX mm ) ow e -n" .« P mm — > ¢ - — e [NOPILFX.IE. FD.RET [NOPILFX.IE. FD.RET Lo Ll M s FPA REG Page 160ns Ird Rom Definition —d —— mm DX e oo . s Bnal mm : gy Bt CNTO(NOP]E FX.1 CNTTINOPILFX.1 0 (LOKX Rev 13,00, Clock rate [NOPJLMS.XF(C [NOPJ[MS.XFC > > .OCODE 0 FC: 0P$ FPD [NOPJLMS.X C C IRDIINOPICMS. X : H [ | S} . 1CODE 0FC: 16:30:35 28-NOV=-83 inalnsl b d D ed D AORININONOND ITETEIED AONIRIRURIND ORI RO RN ..~ NSO MISQUE.MIC H MICRO2 Misc. and Queue I {MT098 . MCX S| ] H JXFC 536 PO NI N b 3 NOy i and Queue CLOKX Rey 13.00, Clock rate = 160ns : Dsize Rom Definition (worD) L 03 C 03 0] L 0l [ 0 ;BISPSW SIZE { o1C o03C o0C 0] L 01 L 03 ;BPT SIZE [BYTE] [WORD] ELONG] [QUAD] [WORDJ [LONG] sHALT (used by micro verify) SIZE CLONG] [LONG] [LONG] L[LONG] CLONG] CLONG] s INDEX SIZE [BYTE] TouADI L 03[ 0] L 01 SIZt (BYTE] feuapJ L 031 C 01 L 03 SIZE [(BYTE] (BYTEJ L 01 [ 01 L 01 SIZE froned T 03 C o031 01 [ 03 SIZE f o2l 0C 01l ol L 03 S1Zt (worRD) L 01 C 01C 03 L 03 SIZE {worDJ L 03 C 03¢t 01 C 01 SIZE [QUAD] CLONGI [ 01 C 02 [ 0] SIZE [QuUAD] [LONG] [ 01 ( 0] [ 02 SIZE [BYTE] 0] [ 0] { 03 SI1ZE [LONG] CLONG] [LONG] [LONG] [LONG] [LONG] [LONGI T ;22252 . BIN NLSSMANN o M SIZE 01 s INSQH] M ;BICPSW 0] ; INSQT! Mmoo, 0] 0] ; INSQUE 01 sMOVPSL A C 0] +NOP 01 ;POPR TMM@ 0] 0] s PUSHR TM@m 0] [ 0] sREMQHI M~ o01C 0] JREMQTI —/ 03 C SOV [worDJ L N Dsize Rom Definition" NP OV . 110 SIZE noFURI NI NI NLNVNI NI NI NI NI NN NINO NP AN AN N AN PO PO ATV N NU N NN = W RLAL POND AL NN NN R NI AN NN PN N A PORI NN N NI ANV PN NN PO NI NNV AUNINI PO MU MU YYD = WSand Queue 16:30:35 28-NOV-83 0] s REMQUE s XFC Page 5371 H : (MT098.MCX MISQUE.MIC MICRO2 1M(01) Misc. and Queue 28-NOV-83 J 10 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : Dsize Rom Definition 22252; This page intentionally left blank. i H MICROZ2 (MT098.MCX . MIC CHAR CHAR.MIC 1MC01) [ASIANI\NT N1 V1,81 O O] TR PEIEY CLOKX Rev 13.00, Clock rate == 160ns Gerard Koeckhoven, John DeRosa, B. WARD ;ggsgg H PORIMVNL NI NN K 10 "'"CHAR.MIC"' "'REVISION 23.0" ;22253 .T0C ;22254 .T0C I EEY 16:30:35 28=NOv=-83 Revision History" . . Explanation SwaE a couple un-constrained words with INIT.MIC to make a return =19 work correctly. . Fix SKPC to read longword aligned Fix MATCHC to compare src length with obj Fix MATCHC to not clobber RO . Optimize MATCHC fix length as longwords . ) . . . Fix MATCHC to not immediately exit the instruction after it finds the SRC length to be equal to zero, . , , géé ?AT Hfi to exit the instruction immediately when the obj length > ength. Fix MATCHC FPD bug if bus error/fault initial release. ;22273 in (S.t3 loop. BIN CMT098, .MCX CHAR.MIC MICRO2 1M(01) Character String 28=NOV~-83 :SS%;? .T0C L 10 " Character String : Move3 : ouTPUT 322276 R 222278 : ;22280 : 122277 122279 ;22281 122282 ;22283 122284 ;22285 ;22286 122287 122288 ;22289 :22290 122291 Page [ 1 16:30:35 CLOKX Rey¢ 13.00, (lock rate = 160ns : Operand fetch and Initialization e L e LENGTH 0 TEMP1 R1 PC TEMP2 R3 ' ' SOURCE ADDRESS ' ' ! ' DESTINATION ADDRESS Re DELTA PC*0(8BITS'24BITS) : CC SET (RO-R0O) ; ‘! " 1(ROTATED LEFT BY 8) TEMP6 : FPD SET RESOURCES TEMP6 FOR SAVING DELTA PC SUBROUTINES CS.EXP.FiLLER EXPANDS TEMPS 122292 ; : ;22295 : ;22297 L A T R L AR LA L R RL 122299 222300 ;22301 SHARRRRK R AR AR AR KRR MOV(5 ; : ;22303 Q ;Ssggz 122296 ;22298 ;22302 : : ; R2_DELTA P('R2 CS.R2.GETS.DELPC.R2 QUTPUT KRR R KRR R KRRk R ke Ak AR R RO MIN(SRC LGTH,DEST LGTH) SOURCE ADDRESS ' " N ;22305 ;22306 H ; R1 PC ;22310 : FLAG!? i TEMP2 TEMPS TEMP3 ' o FILL (EXPANDED) DESTINATION LENGTH : ; MTEMP10 R3 SRC LGTH = DST LGTH DESTINATION ADDRESS ;22314 H R2 DELTA PC'O(BBITS'2481TS) ;22317 ;22318 : ; FPD SET 222307 ;22308 ;22309 ;22311 ;22312 122313 ;22315 122316 : : : ; : RESOURCES ;22321 : SUBROUTINES 122323 T ; ' TEMP6 (C SET ;55358 ;22322 SET(FOR CMPC5 AND MOV(CS) VA : : R e R A e 1(ROTATED LEFT BY 8) (TEMP10_RO-TMP3) FOR SAVING DELTA P( CS.EXP.FILLER EXPANDS TEMPS CS.R2.GETS.DELPC.R2 et A i R AR AL R2_DELTA PC'R2 AR i ! ' TEMPS e ! A AL ' VA H R A e L e RO )] H i : Operand fetch and Initialization'' | T : ; : H : H 540 AR i f AL ARARAL O N DS AN — D0 00 12234 12234 ;2234 12235 52235 RN KRR R A ARk ARk ke ke ko ko k A AR R AR AR RN OUTPUT CC IS NOT SET Q,RO DO NOT HAVE LENGTH SAME AS MOVC3 EXCEPT: (MPC3 R I R T e ek eA A AR SAME AS MOVC5 EXCEPT: QuTPUT (C IS NOT SET RN AR KA AR AR KRR AR A AR A ARk kAR AR : QUTPUT ; SO : kA bk ek ke ke o ke kA ko MIN(SRC LGTH,DEST LGTH) ' ' " R1 SOURCE ADDRESS " X TEMPS TEMP? ESC(EXPANDED) TABLE ADDRESS PC TEMP2 ; TEMP3 DESTINATION LENGTH H FLAGI SET(FOR CMPC5 & MOVC5) H H FLAGO H ; g%g . FPD H S%g ; ;2236 H =2 OO O e e H : R N A kAR Ak D H 236 ok o MOVTC and MOVIUC 12235 : e Aok ok ok t ittt tinlld 282 st Rttt 323 22203228 s 222232 CMPC5 MTEMP10 12236 e e a il it tltndd A0ttt22t 202 s s s 223 tsseyss (33232 H 32235 (RO WILL GET IT IN CMPC3) e o e ok A L gk e e A A Yo T W o ok e 52235 19233 RN A NN AL T PRI Page XS B~ B AN = O D 00 O O N SN = O D 00 NN 3(0 234 M 10 16:30:35 CLOKX Rey 13.00, Clock rate = 160ns : Operand fetch ar i Initialization PP 28-NOV=-83 SN LTSN N LT S I WO L ST A ST O T oS T A A e e e R A AT U LA LA AN U AN AN NN N AN AN N A N £ 05 5 B DN NN N IW N N N AU RS PO OO N R P PR T P P TR TR T O T T LML NI NLNV NI NN NN AINV ALV PL NI N T ~ewae MICRO2 1M(01) Character String T CMTO98.MCX CHAR.MIC AUNU NN MU RUNDALA AU R RU RU AU MU A RO RLNL AN NP ; ; R3 ; ' SET(FOR MOVTC & MOVTUC) SRC LGTH - DST LGTH DESTINATION ADDRESS DELTA PC'O(8BITS'24BITS) TEMPG 4 (ROTATED LEFT BY 8) RESOURCES TEMP6 FOR SAVING DELTA P(C SUBROUTINES (S.EXP.FILLER EXPANDS TEMPS ; : " SET (S.R2.GETS.DELPC.R2 R2_DELTA PC'R2 ;*tk**tttt*t*tttt***k***tk***************************ii*i*fi***i**fi***t* : 541 ! : N 10 CLOKX Rev 13,00, Clock rate = 160ns Page Operand fetch and Initialization TR TR AR AR RNAN KRR RRR AN KA Ak deh ko kb SPANC and SCANC QUTPUT Rk k Ak Ak Rk kR kv ek Ak d % N LENGTH ADDRESS L TABLE ADDRESS MASK ORIGINAL P( ey ey ey e s 1311323222322 32222222228 Tkt e de R o ok TR e W K Rk e e Xk kT ek ok R SET sl A R A R Attt KTk e ke ek sttt dtd ke ke Rk ke kR Rk ko ke ARk ek ek ko T e LOCC and SKPC N A A CHARACTER LENGTH TEMPS RO D OUTPUT ORIGINAL PC ADDRESS R I Q PC R1 N R SOOOOOOOD V0V OO0 OV00C0000m00 b ]LSS N1 ST, CORNBNINLNLNINONLNVLRL N ML RV NURUP PSRV NV NAN LN BN BN DN DS B 2 DU A N AN N N NN N NN SN \lO‘\J\bWN—‘O‘O@\lO‘\J’IJ\WN—'OOm\lO‘\flbe\)-—’O‘Om\lO\hwado\Ow\lo\Mb o T S ¥] N ST S I VT ST ST ST ST N Ser_rOnY New.e. L R R R TP L A N T N T R TR TR PR PR T T Sevetena -~ ;22 16:30:35 R S T PR T e eT 28~N0OV-83 1M(01)) MICRO2 Character String N VNI NONINO N NNV NONL NNLNASAV PR NS NUNL NV AL NS AUNUNO PO NI NONO N PONLNUNVNLNL * CMTO98.MCX (HAR,MIC SUBROUTINES KARRK KRR AR KRR AR R AR A KRR R AR R AR CS.EXP.FILLER AR Ak R R dk ko ko kR AR R AR ARk R ko Rk EXPANDS TEMP5 Ak ARk Ak ok Kok dk ok ko kAR ek e ke ko kAR A i sk Ak e e MATCHC QUTPUT R2 Q R3 VA RO D P R1 FLAG3 DELTA PC'0'OBJECT TL LE NGTH (8,BITS) ' (8)"( 16 BIT s) 0BJECT ADDRESS SOURCE LENGTH SOURCE ADDRESS SET (MATCHC FLAG) HELPS RESOURCES TEMPE SUBROUTINES CS.K!.GETS.DELPC.R2 :ttt**t\‘i*tttt****t*t**t**ii (322222282 IN DELTA PL SUB R2_DELTA PC'R2 RRRR3RSR R R AR RS ds)] 542 e {MT098,M(x : CHAR,MIC 28-NOV=83 tM(01) Character String 2240 TR TR p § MICRO2 NG N IS AN = O N0 00 o 2261 ! 2241 R 1 2241 T | e | N [ R ggz} 8 1 : Operand fetch and Initialization R R L R e O 2241 REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L, IRDX.R2H — O O 00 IO LN I (AN — OO0 NON N I NN =3 OO R T 22421 sgzs NEXT/0S.A0D =0 (S.0S,MOVC3.(MP(3.1: LOD INC BRA?,REXT/0S.ADD PUSH,RLTEMP2]_MLMDRJ, STEMP2_source address, READ dest. 2242 ;1 MCTEMPO] ZLIT8(C1],SIZELLONG], ; ;TEMP6_100, anything pending? T T MNININLNLNDND u 0303, 0986,6DB7,0820,0847,08A6,4 350 RCTEMP1] _D_ZEXT(MLMDRI), 2242 N 0 0302, 0885,2592,4180,8047,0412,0 *TEMP1_D_lLength, READ source address LOD INC BRA?,SIZE[WORD], 5225 T ] AR A AL AR AL AL ; CMPCS5, MOVCS, MOVTC, and MOVTUC enter at (S.OS.MOV.(MP,INT, 352; T u O3AE, 0085,259E,6190,4047,0012,0 R I LA LA A R LA ,‘fiwflkfififi'!fittfififlt!'4'1t*tfi*ififittiltkfitti*iQ*t!tit*ttittttttfitttfiflttflQfl!t‘t 22415 (5.05.MOVC3, CHPCS: 2241 Page CLOKX Rev 13.00, Ctock rate = 160ns * CMPC3 and MOVC3 instruction flows begin at (S5.05.MOVC3.(MPC3, 2240 i 16:30:35 L L D L 2262 2 2% 2 22&% saddress ALLOW INT? .8EGJON/CHAR.R1L,CHAR.R1H/CHAR.R2L,CHAR.RZH/CHAR.R3L,CHAR.RSH INT: 22433 (5.05.MOV,CMP, 2243 4 122644 ;GPR2_0, FPD_0, nothing pending or ;timer service R; 22643 ngz 22662 mo; NEXT/TS.0$.MOV. CMP, IN 2243 3542 o R{R2]_0,SET FPD, ggfi% N DA , ] i OAGS, 0480,0036,4AF0,0047,04F7,0 R U OA64, OCEL,0587,0034,8047,00A6,( $Qmmm 2243 PUSH, INTPEND OR TIMER?, NEXT/1E.SERV.IP.TS2 sYes, RETURN=1 or roll back =0 (S.0S.MOV, CMP. IN: L ittt bbb L PUSH L L L L e P L L- ;R2 GETS DELPC'(24 BITS)O 1244 ;sszz RER3Y _vA MCMDR], NEXT/TS.R2.GFTS.DELPC.R2 J 0A6D, 0886,9587,0030,0047,0044,5 o044 12245 {emmmmememeaeeeem————————————— ; ;lero GPRO decrement FLAG (used in MCTEMPS]_0 4 DALS, 0886,0587,0030,0047,0045,4 25522 MCFPDOFFSETI_O . . ) o OAS4, 04684,2592,4674 ,4487,00A%,8 CC NN N B NN = O D00 N ) ] E ,04A8 7 J UAGL, 0885,2592,4034,(4A ;2245 $ 3¢5 ;2245 12245 sR3I,VA GET DESTINATION ADDRESS JRET+] ;pack routines) 1Guess a RETURN+4 from MM or IANDE jomosmesmmeos—ssscasacameeees : PC_RCR1)_MLTEMPZ], [R<2=0>? JGPR1_P(_Source address, which ;inst, are we? 543 TM(01) 28-NOV=~83 Page CLOKX Rey 13,00, Clock rate = 160ns o o W8 D~RLTEMP1], (COP2,SIZELLONG], NEXT/CS.M3 . }MOVC3E283¢ (C_src. Len=src. len, ;join up with other MOV's ;00)ememmmmmmmmcm e e e e e e e —a RCROJ_D-0,CCOP1,SIZECLONG], WX.EQT0? ,NEXT/CS. (3.1 1CMPC3029], GPRO_length, ;set €C, is length =07 XDO Mmrm— =Z O~ e L R L e . DO X rM— . £ 0~- ;set CC, is length =0? e Dy Mea— ZZ~- A A kR Al Ak - - O S W Y - - EMQVTC[?EJ. load code 400, join up ;with other MOV's > e P - = = P T =z here) :CMPC5[2D], GPRO_length, o A load length, is it =0? s join up S o o o g N O N ol S Sl S ;000msmmmmmmmce em e mey— J OA3F, 0586,6D87,0030,2047,00A3,C S U O0A3E, 0586,6D87,0030,2047,00A3,¢ cNn : Operand fetch and Initialization S U 0A3D, 0084,05B0,0A24,0847,0885,2 386+ 16:30:35 o 4 0A3C, 0484,0582,5A74,0047,00AF,0 OO OO0 NN NNNNNNNNARPOROO OO\ O N NN = OO0 O N B AN = O O NN S NN = OO v 0A39, 0(84,0580,0A24,0847,08B5,2 386+ NI AR NNV RU NI NN N AN N PLNIAI NI NPV NVNON) Lt QA3E, Q0BO,0020,0020,5047,00A3,C ST N LE 1S AN 1A 1S Ia N ) NOALALNLNINL NV NN RINLNLNI NNDELSTSTST (haracter String MURUNS ML ML CHAR (MIC MICRO2 S R T TR T R N R v R : (MT098 ,MCX e S - ‘MOVIUCL2F1, ditto U O3AF, 0481,2016,419D,8467,0012,0 U 0381, 0(86,A03A,403D,8047,00A4,0 U 0A40, 0085,2592,4180,8047,0410,0 U 0A41, 0485,259E,4181,4047,0410,0 U 0A42, 0885,259E€,4190,(047,0412,0 U 0A43, 0048,A592,7030,0047,04A9,A . J 0A44, 0086,A000,06D0,(847,08A6,1 338+ ; : AR Page CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 : Operand fetch and Initialization eI dss s s ss s eyt R 2122332322023 8233 22332 e CHAR.MIC 28=NOV-83 s ailiiiiislalsttits MOVLS AND CMPCS OPERAND SPECIFIER EVALUATION BEGINS HERE MOVTC AND MOVTUC JOIN THE FLOW AT CS.OS.MOVTC.TUC.CONT AR AR R AR KRR R AR AR R A ANk AR AR AR AR KRR XR ARk kA Rk kk ok IRDX.R2H .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, CS.0S.MOVC5.CMPCS: T - O B g e o }MDR source lLength for QREG placement, MDR_ZEXT (MIMDRY), JREAD source address s12FCWORD],LOD INC BRA?, ADD NEXT/0S. €S.0S.MOVC5.CMPC5.1: - - —— 1 > = o 0 o S o ‘MTMP10 GETS SRC LENGTH MLTEMP101_Q .REG 10N/CHAR,R1L ,CHAR.R1H/CHAR.R2L , CHAR. R2H/CHAR.R3L, CHAR.R3H =000 ;000=============mmoomoecueann PUSH,RCTEMP2]_MLMDRI, - LOD INC BRA?,NEXT/0S.RED PUSH, JGET QOBJECT LENGTH LOD INC BRA?, NEXT/0S.RED ;BUT INTO 0S ROUTINE JRET+1 JBYTESIZE sTEMPS GETS FILL SIZECBYTE], RCTEMP5]_ZEXT(MIMDRI), 212233122302 22 22222y en 1M(01) Character String S T T T N N TR TR TR PR P TR e L TR LA R LD R LIk dt il H MICRO2 CMTO98.MCX -~ ; D 11 R sy RSS2 THIS 15 WHERE MOVTC MOVTUC JOIN THE FLOW KRR R AR RN AN RN AR AR ARk ARk ko ko ko kR 00Nttt iitddtts] ke k ke kkkkhhkhkkkkhk o o o S e A S PUSH JGET 0BJ ADDRESS RCTEMP3] _ZEXT(MLMDRI1), LOD INC BRA?, JTEMP3 GETS OBJ LENGTH ;BUT INTO 0OS ROUTINE PUSH, *EXPAND FILLER SETTFLAGY, NEXT/CS.EXP.FILLER JRET#+1 SI12ECWORDT, NEXT/0S.ADD D_Q_MLTEMP101, ;100> wmmem e e oo MLCTEMP10] MB-RLTEMP3],C(COP1, WwB<31-30>7,S12ELWORD] JWORD ' SWORTH JRET+1 'D,0 GET SRC LENGTH JFLAGY SET FOR MOVTC,TuC,C5,CMPCS e; JMTEMP10_src.len - dest.len, set CC, :what's the polarity of our result? : 545| (MT098.MCX (HAR . MIC MICROZ2 1M(01) Character String 28-NOV~83 ;22539 =01 0A61, 0080,3592,7030,0047,00A6,3 122540 :5522} 22543 =11 122544 ;22545 CA63, 0986,6DB7,0820,0847,08A6,4 350% 122546 ;22547 16:30:35 E 1 CLOKX Rev 13.00, Clock rate = 160ns : Operand fetch and [nitialization D L L B LD L R L L L L S LI O R e ;1le m m em e D_Q_MLTEMP3] ‘Source length >= Dest. length e METEMP6] _ZLIT8L01],SIZELLONGD, ALLOW INT?, NEXT/(CS.0S. MOV CMP.INT ‘(Src.len¢ dest. len.,), iload TEMP6, anything pending? Page ; 546 : Operand fetch and Initializati on 160ns Page sdd 2Rt2 2222 23 X223 2222222002 :*************t**t**tt**tt***t** 22232222 ; Beginning of MOVTC and MOVTUC. ;**t****i*tt********t*********** kkdk Ak ko dkdeok ok ok ko k ko IRDX. R2H LREGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, CS.0S.MOVTC.MOVTUC: fDR_ZEXT (MIMDR1) , S 1ZECWORD], ;(0 Source length), READ source ;address LOD~INC BRA?,NEXT/0S.ADD (S.0S.MOVTC.MOVTUC.1: P o e O e e e G e e T MCTEMP101_0 T e IMTMP10 GETS SRC LENGTH , CHAR.R3H .8SGION/CHAR.R1L,CHAR.R1H/CHAR.R2L.CHAR. R2H/CHAR.R3L . PUSH, RLTEMP21_MIMDR1, LOD INC BRA?, — © O 00 IO LN IS ARD = OO G0 O N S NN = O D 00 NN L B S NN NNNNNNOOO-ONO OOO~ ONOM NN NI CLOKX Rev 13.00, Clock rate NEXT/0S.RED JGET FILL ;TEMP2 GETS SRC ADDRESS ;BUT INTO 0S ROUTINE SRETH+1 . PUSH, SIZELBYTE], RLTEMPS5] ZEXT(MLMDRI), LOD INC BRA?, JTEMPS GETS FILL ;BUT INTO 0S ROUTINE JRETH1 $GET 0BJ LENGTH sFLAGO INDICATES MOVT(C, TUC :TEMP7 GETS TABLE ADDRESS DN N NEXT/0S.ADD ;GET TABLE ADDRESS ;BYTESIZE NEXT/0S.RED JRETH] ~O NEXT/(S.0S.MOVTC.TUC.CONT PUSH, LOD INC BRA?, 1 " P F 11 16:30:35 SET FLAGO, RLTEMP7] _MIMDR], COCOO00CH 0000000 U 0A6B, 0480,0036,4030,0047,0044,2 i unuuiuauvnuiuiuaununluau wvTwviuvivauaunviuaLau L v viuauaununuavaua viurLautun TR TR R T U QA6A, 0045,2592,4181,0047,0410,0 -y ea U 0A69, 0085,259E,4181,4047,0412,0 T T U 0A68, 0085,2592,4180,8047,0410,0 T TR TR T R e U 0383, 0C86,A03A,403D,8047,00A6,8 P P U 0382, 0481,2016,419D,8467,0012,0 i) = OO0 00 3 Character Stri ] T Sev.tanmetenens CHAR MIC A PONI NPV NI PONO N POPORLRIAIAI NN LN RN LR PV PLNINONDMPORONL AL NIAINLNDPVNI (MT098.MCX 28-NOV=-83 M1 ALAVALND R AR A RS RININ N MR NI NI NIAININRL NN NI R NI NN NI N NIN NN RN PO N ; MICROZ :BUT INTO 0S ROUTINE k ok k k% 547 YR CMT098.MCX CHAR.MIC MICROZ 1M(01) Character String 28-NOV-83 ;22588 :22589 122590 16:30:35 G 11 CLOKX Rev 13,00, Clock rate = 160ns Page : Operand fetch and Initialization ;***************kk*********t**fi****t******t**t************************* : Beginning of SCANC and SPANC. ;**kt***********k*t*********tt*********************i******************* ;22591 RDX .R2L, IRDX.R2H 122592 .REGION/IRDX.R1L,IRDX,R1H/I ;22593 122594 CS.05.SCANC.SPANC: 0384, 0081,2016,619D,8047,0012,0 0274, 0885,2592,41B0,4047,0412,0 0275, 0085,2592,4180,8047,0410,0 ‘ 0276, 0485,259E,4001,4047,00AC,0 0ACO, OB8ED,A592,4034,8047,04AA,2 0AC1, 0884,1592,4034,4487,00A7,4 0A74, 0884,0582,5A24,1047,08AD,8 322x 122595 122596 ;22597 ;22598 :22599 =00 222600 ;22601 122602 222603 ;22604 ;22605 122606 ;22607 ;22608 ;22609 : 22610 ;22611 122612 D_ZEXT(MLMDR1) ,S1ZECWORD], LOD INC BRA?,NEXT/0S.ADD . PUSH, RCTEMP11_MLMDRJ, LOD INC BRA?, NEXT/0S.ADD ‘GET TABLE ADDRESS ‘R1 GETS ADDRESS BUT INTO 0OS ROUTINE TRETH] ittt ittt it ; ‘GET MASK PUSH, RCTEMP2] MIMDR], ‘TEMP? GETS TABLE ADDRESS LOD INC BRA?, NEXT/0S.RED *BUT INTO OS ROUTINE ‘RET#1 L etttk bt H 122613 ‘BYTESIZE SIZECBYTED, 222614 ‘TEMP5 GETS MASK RLCTEMP5]_ZEXT (MCMDRI) ;22615 122616 ;22617 ;22618 .8EGION/CHAR.R1L.CHAR.R1H/CHAR.R2L,CHAR.R2H/CHAR.R3L,CHAR.R3H ;22619 0mmm e e m e e e: 122620 ) PUSH, ‘R3 GETS VA ;22621 SET FPD, $SET FIRST PART DONE 622 122 RCR21_MErc3, ‘R2 GETS PC 623 ;22 NEXT/TS.0S.R3.VA.GET. TMP2 TRET+1 ;22624 122625 ;22626 bC_RTR1I_MLTEMPT] “"7iPC GETS ADDRESS ;22627 ;22628 ;22629 RCROJ_Q_D, ) *RO,0 GETS SRC LENGTH ;22630 CCOP2; PSET cC 222631 SIZECLONG], 150 CCOP2 DOESN'T GET A VALIDITY CHECK 122632 WX.EQ.0? ‘IF LENGTH =0 LEAVE ;22633 : ; CMTO098.MCX CHAR.MIC MICROZ2 1M(01) Character String 28=NOV=-83 16:30:35 H 11 CLOKX Rey 13,00, Clock rate = 160ns : Operand fetch and Initialization Page 549 122634 =0 :552%2 CS.0s. SCSP BEG: U OAD8, 0116,€C37,0030,2847,0086,B 322637 :Ssggg M[FPDOFFSETJ ZLIT0C5], NEXT/CS.SCSP,CLEAR FLAG2 25522? €S.SCSPLEXIT: U 0AD9, 04E0,05BE,4034,8487,0081,8 ;22642 122643 PC RCR2],CLEAR FPD, NERT/CS.MTC.R2_0.IRD1 Load FPDOFFSET, 1/0 FLAG_O Restore PC, FPD_O, IRD1 in MOVTC ccde ; H CMT098.MCX CHAR.MIC MICRO2 1M(01) Character String 28=-NOV=-83 16:30:35 122644 222645 122646 122647 N CLOKX Rey 13.00, Clock rate = 160ns : Operand fetch and Initialization Page 550 ARk A AR R kR AR Ak KA R AR KRR AR AR AR KRR R XK AR N AN KAk ok SRR AR ; Beginning of LOCC and SKPC. kK kh kAE IHR IR KAk RRI AR AR RRA IR NRA A KRRIRR PERKEEA TR ARRARARAR :Sggzg REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L ,IRDX.R2H Egggg? €5.0S.LOCC.SKPC: RCTEMP5_ZEXT (MCMDR]), 122652 U 0385, 0C85,259E,4181,4047,0010,0 ;22653 ;ssggé SIZELBYTE],LOD INC BRA?, {TEMPS_character, READ length NEXT/0S.RED $22656 = 122657 €S.05.LOCC.SKPC.1: 122658 122659 ;fmmmmcemcemsmmeeesemmmmeeaooee ; PUSH, ;GET ADDRESS 122661 122662 D_ZEXT(MLMDR]), LOD INC BRA?, :22660 U 030A, 0881,2016,619D,8047,0412,0 U 0308, 08E9,A592,5030,0047,004E,4 ;Ssggz :20665 ;gsggg SIZECWORD], ;WORD'SWORTH NEXT/0S.ADD JRET+1 R ;RO,D,GETS LENGTH ;BUT INTO 0S ROUTINE TS; SET FPD,Q_MIPC] sFPD_1, QREG_PC sggggg REGION/CHAR.R1L,CHAR.R1H/CHAR.R2L ,CHAR,R2H/CHAR.R3L, CHAR.R3H 122670 =0 ;22671 U 0AE4, 0485,2592,4034,4487,04A9,A U CAE5, 0086,(€37,0670,3047,00A4,6 J0==mmmmmmme v m e: ;22672 122673 PUSH, PC_RLCR1]_MLCMDR], JEXPAND FILLER :R1,PC GETS ADDRESS Egsg;g MCFPDOFFSETI_ZLITOL61,1R<2=0>? :Load FPDOFFSET 122674 NEXT/CS.EXP.FILLER JRETH] 122679 ;22680 =110 122681 (S.0S.LOC: :22682 ;110= U 0A46, 0C84,0580,0A14,0847,08AF,6 386% U CA47, 0C84,05B0,0A14,0847,08AF,( 386% o mm o e oo nes eH ;22683 RCROJ_D=-0,CCNPT,SIZELWORD], 122686 122687 17)mmmm o mmmmm e coommcsmoeaaee -; RCROJ_D=-0,CCOP1,SIZELWORD], ;GPRO_length, set (C, is length =0? :Ssggg ;22688 WX.EQ.07 ,NEXT/CS.LOC WX.EQ.0?,NEXT/(S.SK ;LOCCL3A], set CC, is length = 0? ;(into SKPC flows) Ly MICRO2 1M(01) CMT098.MCX Character String CHAR.MIC 28-NOV-83 16:30:35 f J N1 Page 551| CLOKX Rev 13.00, Clock rate = 160ns : Operand fetch and Initialization Rk ko bk ok ko ok & R ;22689 JERRKKIRTRIIIRIK A AR RRIIRII KAk R W R 122691 IRRARARE KA N IRAKRARIRKR I AR kAR AR R KR IR KRRk AR AR XTI AN Kk K dh kX kk : 22690 ; Beginning of MATCHC. ;22692 ;ggggz LREGION/IRDX.R1L ,IRDX.RTH/IRDX.R2L,IRDX.R2H Esgggg €$.08 MATCHC: 122697 RCTEMP1J_ZEXT(MCMDRI), 0386, 0485,259E,4190,4047,0012,0 122698 ;ggggg SIZECWORD],LOD INC BRA?, NEXT/0S.ADD }TEMP1_low WORD from MDR, READ obj. ;address 122701 =000 ;22702 CS.0S.MATCH(C.1: ;22703 0320, 0085,2592,4180,8047,0410,0 122704 :55582 $22707 D_ZEXT(MLMDR]), ;22711 ;SS;}% 0324, 0484,05B2,4034,0047,003E,8 JTEMP2_obj. address, read src. length TR ; ;22710 +GET SRC ADDRESS sIZEEWORD], *WORD* SWORTH LOD INC BRA?, ;BUT INTO 0OS ROUTINE NEXT/0S.ADD ;D GET SRC LENGTH JRETH1 s; e mm—aa:010=m=mmmmmammmmame ;22715 ;22716 ;sg;}g PUSH,R[R2] _Q_MLTEMP1], ccoP1,SIZETWORD],SET FPD, NEXT/CS.R2.GETS.DELPC.R2 122719 ;01 mmmm e m e e ; 122720 0323, 005D,2592,4034,4487 ,04AA,2 LOD INC BRA? ,NEXT/0S.RED PUSH 122714 0322, 04EC,1592,5014,8847,04A8,E e mnen e H e m onosa =mmmmc ;22708 22709 0321, 0881,2016,619D,8047,0412,0 ;000 PUSH,RLTEMP2]_MLMDR], ;22721 ;S%;g% 122724 :S%;Sg _ PUSH,SET FLAG3, PC_RLR1]_MIMDR], NEXT/CS.DS.R3.VA.GET.TMP2 :GPR2 & QREG_TEMP1, set CC, FPD_1, ;GPR2_deltaPT in BYTE #3 JMATCHC FLAG_1, GPR3 VA, ;R1,PC GET SOURCE ADDRESS JRETH1 :100=mmmmmmmmm——————m——————— ; REROJ_D s RO GETS D (SRC LENGTH) 122727 ;22728 3EB: . 03B, 0480,003A,4A3D,8047,0087,A 122729 222730 122731 sxwxaxxFORCE ADDRESS**wansswrnws; WB_0,wX.EQ.07, NEXT/CS.MAT,SET . FPDOFF ; 0 TO WBUS + 1S OBJECT LENGTH = 0? ; CMT098.ME§ (HAR.M MICRO2 28~NOV-83 1M(O1) Character String ;5§;§§ .T0C K1 Page CLOKX Rev 13.00, Clock rate = 160ns : General Routines 16:30:35 : General Routines'' Character String " 3%%;?? LREGION/CHAR.R1L,CHAR.RTH/CHAR.R2L ,CHAR,R2H/CHAR.R3L, CHAR.R3H 222736 PRAKK KKK RR AR RN AR AR RIR RN KRR AR A KA KK KA TR RN IR R A XA ® OUTPUT RESOURCES ;22737 ;22738 . ;22739 . 122740 ; 222747 ;227642 AR KK IR KRR KK kAN R2 PC DELTA PC'0'R2(8)(8)(16) FOR DELTA CALCULATION TEMP4 FOR DELTA (ALCULATICN AR Ak AR :55;22 CS.R2.GETS.DELPC.R2: U 0ABE, 0485,A592,4031,0047,00A9,6 235;22 U 0A96, 0(85,9003,0031,0047,00A9,8 ;Sg;?g jmmm e ae s os oo ; JR2_DELPC'R2(DELPC IS 8 BITS) ;RETURN +1 RETURR [13 ;SS;?% J22755 RMANKARKANIIA KKK AR 122757 1Rk aAH AR K I 222756 ;TEMP4 GETS PC-PCBACK RCR2) RB.OR,(MLTEMP4J.RL.24), 222751 $22754 k¥ e S SR L ; RLTEMP4]_RB-MLPCBACK] :22750 U 0A98, 0884,43BE,4084,8047,0000,1 R KR AR KRR K KR KRRk ok ko dok ek :TEMP4 GETS PC RCTEMP4]_MLPCJ 182047 FOR DELTA CALCULATION PCBACK OUTPUT KKK A KRR K HRAR I AR KRR AR I AR AR AR KAk kA kKRR IR R IRK AR R KA KRR TEMPS5 KA Rk Rk kAR kxw & TEMPS ' TEMP5 ' TEMP5 * TEMP5 IRIEAURHHRERRERAK AR AR Kk Kk ;22758 :Ssggg CS.EXP,FILLER: U 0ASA, 0486,5392,4020,0047,00AA,0 Egggg} :22763 U 0AAD, 0886,5392,4090,0047,0000,1 ;22764 :gs;gg 100767 P r IR ' TEMPS (TEMPS IS 8 BITS) *TEMPS_0'0'TEMPS MCTEMPS5]_MB.OR. (MB.RL.8) v ettt ; MCTEMPS5]_MB.OR.(MB.RL.16), JTEMPS_TEMPS'TEMP5 (TEMPS 1S 16 BITS) RETURN [T1 A R AR AR R AR A LA RS A SRR AL AL JRETH+1 AR R EAR AR ARAAARAALAAAREALALALA AL LAY ;22769 :gs;;? (S,0S.,R3.VA,GET,TMP2: U GAA2, 0884,2592,40B4,C4A7,0000,1 122772 222773 VA_RLR3] MLTEMP2], RETURN (T3 :R3_VA GETS TMP2 JRETH1 552 ; MICRO2 {MT098,MCX iM(07) Character String CHAR.MIC 28~NOV~-83 i Page 553 LN CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 i : General Routines ;22774 ;kk*t*t****t****t*tw**kiwvtt*****t*********t*h*************i**i***i**ifl**tt«* IR T R TS I :SS;S% CS.GEN.RESP(: ORIGINAL VALUE PC QUTPUT :22776 ;22777 Ryt IR DELTA PC IN <31-24> R2 INPUT ;22775 FOR RESTORATION TEMPO RESOURCES AT R SRR A RS AL E A SRR TE R AR AR S AR AALA AL ALAL AL AALLLA LA Egggg; MLTEMPOI_RLR2].RR.24 U 0AAA, 0D86,0C12,0031,F847,00AB,0 Eg%;gz 120787 fiETEMPOJ_MB.AND.ZLITO[OSFJ }TEMPO_TEMPO AND 3F (DELTA PC ONLY) e me————— meemee jmmmmmme :5%;33 REYURN £1] U 0ABO, 0(481,9001,0080,0487,0000,1 Eggggz CS.GEN.RESPC.1: PC_MCPCBACKI+RLTEMPOD, ;22791 102792 ;HrARIIRKIKIKKK N AN KRR INPUT 122793 ;22794 122795 122796 ; ;22797 122798 :ggggg CS.FIX.MATCHC.IND: U 0AB2, 0484,8002,0034,8047,00A8B,4 . ) U 0AB4, 0884,(002,40B4,8047,0000,4 JPC_PCBACK+DELTA P( JRET+1 ER AR AR AR KRRk kKRR FPDOFFSET kA kK MTEMP8 RO AR KAk 3FFFFFFF BIT<29~0>SAME AS INPUT R2 A AR AR R kAR HAS 80000000 OR 40000000 G00D<29-0> R2 QuUTPUT AR AR AA KR ARERKNIRKHKRAT OO AR R AR ' ! | i | BIT<31-30>_FPDOFF<31-30> h[RZJ_METEHPBJ.AND.RB :22803 ;22804 e LS L; ;PUT BITS 31-30 OF FPDOFFSET INTO R2 RLR2] MLFPDOFFSET].OR.RB, RETURN [4] i R R A SRR KRR kA Kk R Ak k% Esgggg :22805 ] ‘TEMPO_DELTA PC IN LOWEST 8 BITS U 0AAS, 0086,0287,0024,8047,00AA,A 122788 f ;R?_R? STRIPPED OF BITS 31 AND 3( JRET+4 l {MT098.MCX CHAR.MIC MICRO2 1M(01) Character String 28-NDV-83 M1 : MOV(3 Page CLOKX Rev 13.00, Clock rate = 160ns " 322808 ;kt***tt*tt*t*t***k*t****t*t****t*k*************k***********it*t*tt**it : 22810 ; ;22813 H ;22811 222812 ;22814 ;22816 ;22817 ;22818 ; MovC3 ; H INPUT ; ;22819 : ;22822 : 122820 ;22821 ;22823 122827 J ;22825 ;22826 ;22828 ;22829 222830 N H N ; : R1 SOURCE ADDRESS ; R2 TEMP6 FPDOFFSET CC SET H ; : : TEMP2 H ; : 22824 LENGTH v R3 VA : ; RESOURCES TEMPO<1=0> ;22838 :22839 ; TEMP6 RTEMP12 ;22845 ;22846 122847 ;22848 ;22849 : 22850 222851 122852 ; : ; : ; ; ; : ; ; : (RO-RO) DESTINATION ADDRESS LENGTH Q TEMP4 MTEMPY DELTA PC'0O(BBITS'24BITS) "o @ bits of length, After Low moving the LONGWORDs of an aligned dest., these bits are the number of extra RYTEs to ! ! i : g | | move. ] CODE Holds XB data | FPD GPRO decrement flag. =0 if GPRO is decremented after a READ/WRITE. (BYTE move) >C 1f GPRO is decremented before a READ/WRITE and must be MTMP11 PC adjusted before packing. 1 SOURCE ADDRESS CC SET FLAGO FLAG? FLAG3 (RO=R0) 0 0 0 VA i | | 1(ROTATED LEFT BY 8) 0 for RETURN+4 R3 D R2 TEMP2 ;22840 ;22841 :22842 122843 ;22844 DELTA PC'O(BBITS'24BITS) LENGTH SOURCE ADDRESS : ; ' RO R1 122836 ;22837 ' DESTINATION ADDRESS ‘ ' Set ;22831 $22832 122833 ;22834 ; ' FPD ; ; H H ;22835 : RO D Q ; 554! : Move3! Character String :Sgggg .T0C ;22809 t 16:30:35 DESTINATION ADDRESS ! . ; | ! ‘ ; H (MT098.mEé CHAR, : MICROZ2 1M(01) Character String 28=NOV=-83 &80%%:35 122853 ; ;22855 ;22856 ;22857 122858 : H ; H ;22860 122861 H H ;22854 122859 ;22862 ;22863 122864 : N 11 CLOKX Rev 13.00, Ciock rate = 160ns QUTPYT ; : ; R RO R1 SUBROUT INES et 0 ADD OF ONE BYTE BEYOND R2 R3 THE SOURCE STRING 0 ADD OF ONE BYTE BEYOND R4 0 RS cC (S.GEN.RESPC e A e Page 555 THE DESTINATION STRING 0 NZV(=0100 (2 SET) A AR R AR R R AR A AR AR AN ! 28=NOV=83 M = OO0 NI 16:30:35 8 12 ¢ MOV(3 = SO0 O\ NN 2 O 000 O NI N BN N LS AINY = O O CO NIO O QO Page CLOKX Rev 13.00, Clock rate = 160ns Moves INPUT 80 MINCSRC LGTH,DEST [GTH) D gg AN OQOODOOCOCOOO VOOV OD D OO 0 0 00 00 Co 0 Ca OO CoCo 0O NNNNNNNSNNNOPEDOONO N NLNU N PONLPLNOND MU NV AUNLNJ RUNND N PO NN NLNL N N NUND NN NN N U CONOAU NN ADNIAL AL 20 G O N0 0 0O 00O 8 090 00 0300 €0 0o €O 0o € o€O €0 0O 08 00 00 00 0O 0O Co 00 Co £ G2 00 G0 o Co Co 0000 o o0 mimavaea . e L N - AU AU RO P N P AU LA RO U AL N I MU P O T I S T T O O T U RS DU R RO AU U RS RU AU RO NN PO PO NLNU NN AU N NN NN (haracter String PP CHAR,M M1CROZ2 AU U : CMTCQB.MEE " " SOURCE ADDRESS LX) TEMP? TEMPS e " FILL (EXPANDED) TEMP3 FLAGI MTEMP10 FPDOFFSET DESTINATION LENGTH SET(FOR CMPC5 AND MOVC(S5) SRC LGTH - DST LGTH 0 for RETURN+4 sz code for pack routine. DESTINATION ADDRESS R2 DELTA PC'0(BBITS'24B1TS) TEMP6 (C SET FPD ZLITOCL9.] in MOVCS seperate 1(ROTATED LEFT BY 8) (TEMP10_RO=TMP3) SET RESOURCES SAME AS MOVL3 WITH THE FOLLOWING TEMPS FILL CHARA(CTER MTMP10 DIFF OF SRC & DEST LGTH 1 FLAGT OuUTPUT RO # OF UNMOVED BYTES IN SRC STR R1 (NE.Q IF SRC>DEST LGTH) ADD OF ONE BYTE BEYOND R2 BTRING THST WAS MOVED R3 ADD OF ONE BYTE BEYOND THE DESTINATION STRING 0 0 R4 RS ¢ THE LAST BYTE IN SRC N_SRCLEN LSS DSTLEN 5_3RCLEN EQL DESLEN C_SRCLEN LSSU NSTLEN (X223 28220 RAREARRRRRRRRARY 556 CMT098,MCX (HAR . MIC MICRO2 1M(01) Character String ;22909 =0 122910 (S.M3.1: 0AFO, 0080,0036,4670,0047,00A5,6 sttt :553}2 NEXT/CS.M3.MTUC JIR<2-0>7, bbbt : ;Length =0, which inst. are we? {]eemmmem—temmae e ——————— ———— 22916 WB_MLTEMP21-R[R3], STEMP2 < R3? $CHECK SIZECLONG] ;ggg}g 120919 0ABG, 0480,0037,C6F0,0047,00A3,A CLOKX Rev 13,00, Clock rate = 160ns :22911 122912 :22915 0AF1, 0C80,2000,0024,C047,00A8,6 ¢ 12 28~NOV=~83 &80%%:35 jemsmeeememmeeeecemsecemeemene : ALKC?, 122920 ;gggs; NEXT/(S.SRCADD,VS.DESTADD t1S TEMP2 < R3?727 ; 122923 122924 =00 122925 =01 £22926 €S.MOV.R4,GETS. 0 222927 0AAD, 0CB4,05B7,0035,0047,04AA,5 OAAE, 08E4,05B7,0434,8047,00AF,8 122928 122929 :Ssggg $22932 122933 $22934 $122935 ;ggggg 122938 0AAF, 0080,A592,46F0,0047,0048,1 $22939 ;5532? 1 01 mmmmemamm—m—————————— wem—; PUSH RER4S 0 Nexr/ts GEN.RESPC RESTORE PC IR4 GETS 0 SRET+1 ;10=mummmmnmmmm——————————————— iR2 GETS 0 RCR21_0, “CLEAR FPD CLEARTEPD FLAGO?, NEXT/CS.MOV.RS5.GETS.0 $MOVTC,MOVTUC? ; ;1l=wme—mssceesesmmmseseness o we M[TEMP1OJ WB<31-30>7, NERT/CS,M5 iMOVCS flow, is MTEMP10 < 02 122942 122943 =0 :Sggzg CS.MOV.RS,GETS.0: i OAF8, 0484,0587,0135,4047,003F,9 0AF9, 0480,058F,6034,(047,00A8,8 UABB, 0C84,0582,4035,4047,00A8,F 0ABF, 0084,7592,4134,0047,003F,9 353329 :22948 ;Sgggg :22951 ACRS_0, 1RD] 1GPR5_0, %*IRD1w« (1o - : b_RCR3] R :GPRS_GPR3 GneEE e :22952 RCRSI_D 122955 RIR3I_MLTEMP7], IRD1 EEEE LR : {GPR3_table address, **IRD1#+ Page 557 s — e — - —————— u 0ACC, 0CB6,4E7D,0034,C4A7,00ACE U 0ACE, 0880,8080,243D,8487,0083,8 u 0838, 0086,6DB7,02F0,1047,00A4,8 u 0839, 0586,(037,0030,4847,00AD,0 u 0ADO, 0C85,A592,4033,4047,0081,2 FLAGO? JTMP2> = R3 MOVTC(TUC)? IN.0O NEXT/CS.MOV.VA,END. tNO OVERLAP ------------------------------ MTMPB_D+TMP2 MOV BACKWARD {IS DEST ADD > LARGEST SRC ADD WRITEN WB_RLR31-MLTEMP8], S1ZECLONG] JCHECK ‘IS DEST ADD>LARGEST SRC ADD? : O00 Too) SN FLAGO’ nrONRDND e e e -, - —————————— —— ;YES OVERLAP,R1_FINAL SRC ADDRESS b S D ¢ e S T R g 8 e e a o 'FINAL 0BJ ADDRESS e o e e e e o MCTEMP4]_VA_RLR31~1 T O ¢ :TMP4,VA_FURTHEST ADD FOR WRITING BACK ----------------------------- - PC_D_MCTEMP8I-1,FLAGO? PC furthest address for backwards READ, ;are we MOVTC(TUC)? ) ‘No. {oad FPD code 200, anything M[TEMPé] JIL1T8C2], MM ALLOW,INT?, : pending? NEXT/CS.M3.WR.BACK Yes, e 420 0 e e i i R O g W O O Lload FPDOFFSET ;Move backwards in MOVTUC code I J QA(B, 0084,0039,0034,€047,00AC,C PLNUNINLNINLNLNLNLAL LN N NL NNV NN NI NN RS LS U 0A53, 0884,8592,4034,4047,00AC,8B 558 ; =10 s, SRCADD VS.DESTADD: NN u 0452, 0880,0036,4430,0047,0083,( 1 MovC V(3 Page *******tt***k*************t*************i************************tt*** OCTCOOOOOOO0 QONN NNV = OO 0¢80,0037,C6F0,0047,00A5,2 CLOKX Rev 13.00, Clock rate = 160ns NN U OAC6, D 12 TEMP2 contains source : Here to d1verge flow if overlapping MOVE. 1f TEMPZ2 < GPR3 and : address and G R3 has the destination address. MOVE, overlapping ; TEMP2+(src.len) > GPR3 we have an VOO0 [s TeclaleT NOWWA .o U OAC4, 0480,8003,0024,C047,00AC,6 D N LTI 4 U 0A3B, 0886,8021,0030,8047,00AC, e T T T T S e O i R T S I N AL TR T L LR u 0A3A, 0880,0036,4430,0047,0083,¢ 16:30:35 ;**t********t****kt*t****fi*!tk******************i**i**i*ti**t*t***t**** PO PLASPONPVNININD CHAR.MIC 28-NOV-83 LS S S LS [ S LA S LA S LS AN IASIA S PO ; CMT098 . MCX ST NS T S L H ) MICRO2 (haracter String 28-NOV~83 = OO =000 ;0 RCTEMP12]_XB PC_PC+1, - NEXT/CS.M3,WR.BACK.1 ;001 RIETEMP12] _XB PC_PC+1, T Ty ) L A NEXT/CS.M3.WR.BACK.1 ;010 5 = o B PUSH, INTPEN NEXT/IE.SER =100 WD) = O 000 NN LAV - - - - - . - = OO0 N DM NI AN ; something pending, RETURN-1 or pack up. ;t**********************************************************fit********* o s e e e e § r cm e e o e e emcmmr fi 1 00=comcmmo 1BUS { ;EMPSJ MB.AND.ZLIT16L0FF1, NEXT/CS.MOV.PACK.BEGIN 1 ML 1 ——— s = 2 . A = 8 o e 2 DO 00NN EMP53 MB.AND.ZLIT16C0FF], NEXT/CS.ROV.PACK.BEGIN T ;11 MCTEMPS] MB.AND.ZLIT16L0FF], - = o U e e 0 e e O v e Gt W NEXT/CS.ROV.PACK.BEGIN exception, pack up }BUS exception, pack up : ;Ints. ¢ pending, pack up =0*x (S.M3.WR.BACK.1: WRITE RLTEMP12 NEXT/CS.M3.WR. [52 N} 0581,4C10,0030,0¢87,00FC,9 P T 04890,058E,4003,0508,00AD,2 T T 0A4E, 0986,5D12,0037,F847,00BA,6 NN 0A4D, 0986,5D012,0037,F847,00BA,6 ; This_is the backwards READ/WRITE loop for writing backwards in a_ * MOVC3 or MOVC5. =009 is nothing pending or timer service, =010 is NI 0986,5D12,0037,F847,008A,6 : ;t**************tk*****t****t**********t**********i**t***tt*t*******t** OO 00 OA4A, 0480,0036,4AF0,0047,04F7,0 A AL N N AN N N U N N A A N N N AN N NN NN NN NN N <ttt W AN NN NN NN NN N [olelelwlelelolw L] CODOOOO OCOOOCOOOOCOCOOOLUWDOTCOOOOODOOC O BN AN N LN N N R N N D PO PO N D NN X ¥ PurPar G i Gl Shar Pur Glr G by - ) (O P e N R AR R g S .. T 0A49, 0C85,7592,4003,2047,00A4.8 R N N T T T T T N TR TR TR PR TR P TR Y P 0A48, 0€85,7592,4003,2047,00A4,8 ¢ MOV(3 R ST i PC_MIPCI-2LITOL1], L e NEXT/CS.MOV.PACK Db b b LD Db EBUS exception, fix PC, pack up ;in IANDE code I 1M(01) Character String i Page 559 <O MICRO2 LT NT S TA ST AT S ST\ STA S [N TS 1A ] ~N CHAR .MIC ASLSLETL ST SLNTSTCEETNT S EC TN T T SIS 1Y)LELSHNLEL SN LN CMT098 . MCX E 12 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 : H CMT098 . MCX CHAR.MIC MICRO2 1M(01) Character String U 0AD2, 0(80,0040,203D,8487,00AD,4 U 0AD4, 0484,0E7D,0A34,0047,0883,A 378« 28-NOV~83 16:30:35 : MOVC3 F 12 CLOKX Rev 13.00, Clock rate = 160ns ;23051 CS.M3.WR.BACK.1A $23052 PC_D_D=1 :23053 ;23054 ;23055 RCROJ_RB=1,WX.EQ.0? ;ggggg 123058 U 0B3A, 0486,4080,02FD,84A7,00A4,8 223059 :23060 ;23061 ;23062 123063 U 0B3B, 0886,4080,05FD,84A7,00AA,D ;23065 23064 =0 iDec. PC by 1 ‘Dec. length, are we finished? 0 VA_MCTEMP4] MB-1,MM,ALLOW.INT?, No, dec. dest. address, anything NERT/CS.M3.0R.BACK ‘pending? VA MCTEMP4]_MB-1,FLAG1?, NEXT/CS.MOVIR4.GETS.0 Yes. are we MOV(C5? Page 5605 ; (HAR.MIC MICROZ M01)) Character String MOVC3 12 CLOKX Rev 13.00, Clock rate = 160ns Page TR PR PR PR TR T ******************fi*************************w******t*t**************** PR T =0 CS.MOv.V A END.IN.0O: Are we LONGWORD aligned? UB _RCR3], WR31-0>.NE.0?, NEXT/CS.M3.WR —-—-—--_-----------_-----—-_--- M[FPDOFFSET] ZL1T0(9], MM.ALLOW.INT? NEXT/CS.MTC.WR 81 N I I T U 083D, 0186,0(37,02F0,4847,00AB,C G ; The loop for moving characters (normal move) is here. ; =0 is MOVC3 or MOVLS5. =1 is MOVTC or MOVTUC. TR TR TR TR TR VR PN U 0B3C, 0480,05BE,43B84,C047,00A5,0 16:30:35 '****kfl******tt***t*t******t***********k********t***fi&***************** rorororI AN AN UNIN U N NN : CMT098.MCX 28-NOV-83 =000 CS,M3.WR: ;0 i < o o B T o o dr # WB_RLROJ~CONX (4) ,WB<31=30>7, NERT/CS.M3.WR.L U 0A50, 0C80,073C,06E4,0047,08A9,5 376 :1s anything pending? ‘We are LONGWORD aligned, > 1 LONGWORD sleft? CS.M3.WR. B R[TEMP12] XB PC_PC+1, NEXT/CS.M3.WR.BTA U 0A51, 0485,7592,4003,2047,00A5,8 e =101 T ek b d e e — L A P (NN HRINNIA NN {} 0ASF, 0581,A(C10,0030,0C87,00FC,9 $10]m=mmmemcm s e mm e H :BUS exception, pack up NEXT/CS.MOV.PACK.BEGIN [ASLISTANTANT N 1aN 1oN 16 ] U 0ASB, 0€89,058E,4003,0508,00AD,( :until done or aligned MCTEMPS] MB.AND.ZLIT16L0FF1, ..o U 0A55, 0986,5D12,0037,F847,00BA,6 {Not LONGWORD aligned, move BYTEs =0xx CS.M3.WR. 8. A $0A ko m e mecummm e m————m———— WRITE RLTEMP12],SIZE[BYTED, NEXT/CS.M3.WR.B.B 1** ............................. PC_MLPCI-ZLITOL1], NERT/CS. MOV, PACK EBUS exception, ftix PC, ; in IANDE code P ack u P 561| CHAR,MIC MICROZ2 1M(01) Character Stm U OB3E, 0C84,0E7(,0384,(4A7,08A5,0 374+ U 0B3F, 0084,0E7C,0034,C4A7,0084,0 L R T A T U 0ADC, 0884,0E7D,2A34,0047,08B3,E 378« TR TR TR PR : CMTO98. . MCX [RSTAS LIS T ST N1 STAN [ W1 oS Ea U 1o W 1)V 1o V] H 27~NOV=-83 : 16:30:35 H 12 MOVC3 CLOKX Rev 13.00, Clock rate = 160ns Page (S.M3.WR.B.B: RCROJ_D_RB-1, WX,EQT07 =0 ettt ettt VA R C Rg] RB+1,WB<1-0>.NE.O?, NERT/CS.R3.WR :]mmmmmm——m——m—— e ecaccmn—- VA RCR3] RB+1, NERT/CS.R3.R1 PC ;Dec. length, are we done? - ; ;Inc. dest. address, are we aligned? ;Yes, inc. dest. add., finish inst. 562 b D D D D d d b ek N A O PO RS O AU NI PO NI b b e mah N R N W o o e U 0AE8, 0084,073C,02E4,10(7,00A5,8 L U OAEO, 0084,9003.€034,0047,00AE,8 BB I B D A i T U QADE, 0886,05BE,4034,0047,00AE,0 b R S P T N i T T T U 0A97, 0886,9587,0030,0047,00A5,1 T T U 0A95, 0D86,9C37,0030,1847,00AD,E LSNP = O 00 NN = OO OO N — Character String NN CHAR.MIC X : CMTO98,MCX 28-NOV=-83 1M(01) 3LV ST S SN, ST ST oS 1S SN TS 1N TN TN TAN TN AN 1a N Ta S Ta S 1) o) LA LA N LA LA U LA A AN U N O NN N (NN NN N NN : MICRO2 16:30:35 112 CLOKX Rev 13,00, Clock rate = 160ns : MOVC3 Page :****i*iiii***t**k****t**fitt*****'*t**tt*t**t*********t**t***********i* ; Writing forward, LONGWORD aligned. ; move, =11 =01 is >=1 LONGWORD left to is < 1 LONGWORD left, READ/WRITE BYTEs. ;****k*********k**tk******fi****************t*******************fi****t** =01 CS.M3.WR.L: MCTEMP9I 2L 1TOL31, ‘Set FPD GPRO decrement flag NEXT/CS.R3.WR.L1 (S.M3.WR,LB: MLTEMP9]_0,NEXT/CS.M3.WR.B “Clear FPD GPRO decrement flag (S.M3.WR.L1: MCTEMPO]_RLRO] Bt e g G B B ot Ot 1<1-0> hold # of extra BYTES to move ;after finishing LONGWORDs R e RCROJ_RB-CONX(4) ,ALUS_UNSGN, MM.ALCOW. INT? iDec. length BEFORE write, ;ALUS_polarity, anything pending? CHAR.MIC MICROZ2 1M(01) Character String 123146 123147 ;23148 123149 U 0A58, 0885,7592,4023,2047,00A7,8 U 0AS9, 0885,7592,4023,2047,00A7,8 U OA5SA, 04B0,0036,4AF0,0047,04F7,0 ; U OASE, 0986,5D12,0037,F847,00BA,6 of . *************** ks*tt********fi*****i*************************t***t***t* 123150 ;23151 =000 ;23152 CS.M3.WR.6 LOP: 223153 RETEMP12] _XB PC_PC+4, ‘Move a LONGWORD ;23154 NEXT/CS.M3.WR.LTLOP1 ;23155 ;23156 123157 ;03158 123159 123160 ;23161 ;23162 123163 ;23164 R[TEMP12] XB PC_PC+4, 123166 ;23167 ;23168 ;23169 ;23170 ;23171 Move a LONGWORD NEXT/CS.M3.WR.LLoP1 ;010mm—m e PUSH, INTPEND OR TIMER?, e, Something pending, RETURN =1 to ;loop or pack up e n mrmnem o mncascman 100~mw M[TEMPSJ MB.AND.ZLIT16LOFF], ‘8us exception, pack up NEXT/CS.ROV.PACK.BEGIN ------—---------------------- [TFMPSJ MB.AND.ZLIT16L0FF], ;23172 ;23173 NEXT/CS.ROV.PACK,BEGIN ;23176 223177 = NEXT/CS.ROV.PACK.BEGIN 123174 ;23175 e NEXT/IE.SERV.IP.TS2 .~ U 0A5D, 0986,5D12,0037,F847,00BA,6 Page CLOKX Rev 13.00, Clock rate = 160ns ; =000 is nothing pend1n? =010 is ints. or timer pend1n? ; 1E.SERV.IP.TS2 will RETURN -1 if timer service, so =001 is a duplicate 123165 =100 U OA5SC, 0986,5012,0037,F847,008A,6 J 12 ************‘***k*******fi***ii*i**t*****t******Q****tt*tt*t*****t***** —_ : CMT098.MCX —_ : 28-N0v~83 &6vg0135 - e e S e e 2 e e M[TEMPSJ MB,AND.7LIT16LOFF], ;BUS exception, pack up ‘Ints. pending, pack up ;23178 ) QA7C, 0981,AC10,0030,2487,00FC,9 ;23184 ;23185 123186 123187 c)u- - x.d u 0A78, 0889,058E.4023,05D8,00AE,A 123179 =0xx 123180 CS.M3.WR.bLOP1: ;23181 WRITE RCTEMP 21,5812 123182 NEXT/CS.M3.W .L.LOP 123183 1*q ............................. PC_MCPCI-ZL1TOC4], NERT/CS.MOV.PACK ‘BUS exception, tix PC, pack up 564 ; e e 42 mm < camba s m e ——s, MICROZ CMT098 . MCX 1M(01) Character String CRAR . MIC 28-NOV=-83 16:30:35 K 12 : MOVC3 CLOKX Rev 13.00, Clock rate = 160ns . A: :g%}gg CS.M3.WR,L.LOP U QAEA, 0084,073C,2B64,1007,00A9,2 RCROJ _D_RB=~CONX(4) 123190 ALUS_ UNSGN OLDALUS? ;gg}gé 123105 i ) U 0B41, 0084,0592,6034,0047,00A9,7 :GPRO was nonzero last time thru locp, NERT/CS.M3,WR.L.LOP, MM.ALLOW. INT? $23200 ot e LY :S%gg; VA RCR3]_RB+CONX(4) i loop back GPRO was zero, we may be done jes=memmemmccmecmececscecnmenee ; MLTEMPO) _MB.AND,ZLITOL3], ;23204 ;23205 WX.NE.0?TM ;Do we have any extra BYTEs to move? ;23206 ;23207 =0 ;23208 (S.M3.R1 PC 123209 U 0B40, 0885,A592,4034,4047,0084,8 “what was previous GPRO? 123197 :sg}gg 123203 U OAEC, 0D86,0012,0A70,1847,00B4,0 ‘Dec. length for next pass thru loop, P ~mmmmm——— VA_RCR3)_RB+CONX(4), 123196 U 0A93, 0084,073D,0024,C4A7 ,00AE,C 565 123193 :23194 =10 U 0A92, 0884,073D,02E4,C4A7,00A5,8 Page 123210 0 [0esesessemccncmsancescancneeee—— R[R1J MLPC], :5%2}5 NEXT/TS.MOV,BUT.FLAG! 123214 RLROJ_D_MLTEMPO], 193513 123215 *(No, YGPR1_PC, Clear GPRQ & split on :opcode fmiimmmmmmm e e ——— for/r TM3.UWR.LB ‘Yes, GPRO_1, 2, or 3, move BYTEs | frr i MICROZ ,E 0586,CC37,0030,4847,00AF (B03, 0€80,058E ,43B4,C4A7,0084,4 t 0B44, 0480,073C,06F4,0047,08A8,5 376% 0845, 0080,5592,4000,0508,0080,4 0804, 0884,0E7D,2A34,0047,08B4,6 378x 0B46, 0484 ,0E7C,03B4,(uA7,08B4,4 374x 0847, 0884 ,0E7(,0034,C4A7,00AA,D R A 050E,6DB7,0030,1847,0080,3 S L N T T T IE Y P AR QAFE, AN =2 O 000 U QAF4, N ,4 084,A593,2034,0047,00AF R 0AB3, O 0884,A592,4034,0047,00AA,D NOONOC OO ONON 0AB1, R TR TR TRTR TRTR PR TS PR T L GUB0,A592,46F0,0047,00A8B,1 OO CO T N O e 0880,0036,4670,0047,00A6,E DN IS IS D IS S S DN A AN N AN W N NI RO NS RO PO RO NI TUN) =3 =2 e b T VN AV NS AN = O 00 ~I0 IO AN DNNRD = O O 00 NN IS AN = O D 0O NN A S N = O O ONO\N Character String T 0B42, 28=-NOV-83 M0 TR TR xS M T098.MCX CHAR,MI(C .T0C 16:30:35 L 12 CLOKX Rev 13.00, Clock rate = ¢ MOVCS Page : MOvCS' Character String " 160ns =0 CS.MOVTC.TUC.FIN: 1R<2-0>7, NEXT/CS.MOVTC. TUC. TMP10=0 A et tab i tekieb WB_MCTEMP103,WB<31~30>? =01 CS.M5: L etttk btk RCROJ_MCTEMP10], NEXT/TS.MOV.R4.GETS.O P R e ———— [ RCROJ_D_~MLTEMP10] ‘RO_D_=MTHMP10 MCFPDOFFSETI ZLITOLO] EPack up instead of RETURN+4 ;**********t****ii***tk****kl‘tt*****Q**t*ll‘****fliii********t*i***t***** ; Here for MOVCS to till the extra destination with the FILL character. ;*'tfi**‘t*****t*fifi***'«**fi*********i(*t****t*i**fi*t****k*****t**t******t*tt ACTEMPG] _ZLITBL3], CLEAR FLAGI WB<1-0>.NE.0?, VA_RCR3] ‘Load 300 code, clear MOVCS5 flag o ‘Is address LONGWORD aligned? =0 S.M5.WR: WB RCROI-CONX(4),WB<31~30>7, NERT/CS.MS.WR.L S.M5,WR.B: 20 WRITE MCTEMPS],SIZE(BYTE]D ‘No, WRITE a BYTE of fill ACROI_D_RB-1,WX.E0.07 36PRO_DREG_Length-1. are we finished? e [ S EL L L L VA_RCR3) _RB+1,WB<1-0>,NE.0? WR RS, S NERT/C R L L L T VA_R[R3) RB*+1, T e NERT/CS.ROV.RG.GETS.O P LT P ENo, inc. dest. address, are we LONGWORD ’ ;aligned now? T T : 566 ; : MICROZ CMT098.MCX 1M(01) Character String CHAR.MIC 28-~NOV~83 16:30:35 M 12 Page 567 CLOKX Rev 13.00, Clock rate = 160ns ¢ MOVCS :23271 ;**lk*t******t*flkkt*l**flt**t*t*tt*t****t*t*t*******t**fl**t**fi**fit*fiit** ;23273 123274 : left, =11 is < 1 LONGWORD left. ARk SRR KRR AR KR IR H IR A KRR KA KA KRR R R AR R ARk :23272 ; MOVCS fill write =~ dest. is LONGWORD aligned, =01 is >= 1 LONGL/ORD :23275 =01 ;23276 CS.M5.WR.L: 123277 e irtadnbde bl ettt H U 0ABS, 0586,9(37,0030,1847,0080,6 123278 :ggggg MCTEMPO) 20L1T0C3], :Set FPD GPRO decrement flag NEXT/CS.AS.WR.L1 Egggg; CS.M5,WR,LB: U 0AB?, 0086,9587,0030,0047,0084,5 223283 fi[TEMP9]_0.NEXT/CS.MS.WR.B ;Clear FPD GPRO decrement flay, READ/ U 0B06, 0086,058E,4034,0047,0080.8 :23238 MCTEMPO] _RLROJ 1<1-0> has number of extra BYTEs (if U 0BU8, 0884,9003,C034,0047,0080,A }ggggg RCROJ_NOT (MLCTEMP91) .AND,RB :Make GPRO evenly divisible by 4 ;23284 ;23285 ;g%sgg CS.M5.WR.L1: ;23289 123294 U 0B0A, 0884,073(,02E4,1007,00A8,8 :23295 :S%Sgg 123298 fomcmmmmmmmm e ee———— ; RCROJ_RB~CONX(4), ) JRERERIR R KRR AR KRR AR R RN RNAA R RN ;23302 R KN C AR TR _ R r Rk ok A L R A LA IR R A AR A AR AR A AR AR AR AL AR AAARRARAASAAAAA WRITE MLYEMP5],SIZE[LONG], EWH]TE LONGWORD ot fill $23309 ;23310 ;0lesmmmam e ——— e WRITE MLTEMPS],SIZECLONG], e: JWRITE LONGWORD of fill :S%%gg :g%%}; ;23314 :S;g;g ) kkkh ok kokkokk ; =00 is nothing pending, =10 is ints. pending or timer service. ; TE.SERV.IP.TS? will RETURN =1, so =01 is a duplicate of =00, ;23306 :23313 U DABA, 0480,0036,4AF0,0047,04F7,0 ;Dec. GPRO & Latch polarity into ALUS, canything pending? ALUS_UNSGN, MM ALLOW.INT? ;23303 =00 :Sg%gg CS.M5,WR.L,LOP: J OAB9, 0C80,5592,4020,05p08,0080,F ;any) to move after moving the LONGWORDs ;23299 ;23300 ;23301 U 0ABY, 0C¥0,5592,4020,05D8,0080,F JWRITE BYTEs NEXT/CS.M5.WR,.L.LOPI NEXT/CS.M5,WR.L.LOPI ;10=mmmmmmmmmmemmemsm o mememae o : PUSH, INTPEND OR TIMER?, NEX!/IE.SERV.IP.TS2 ;Something pending, RETURN -1 or ;pack up MICRO2 CMT098.M(X (HAR.MIC 1M(01) Character String 28-NOV-83 16:30:35 N 12 : MOV(5 223317 (S.M5.WR.L.LOP1: ;23318 ; QRUF, 0084,073(,2B64,10C7,00A9,E 123319 :S%ég? ;23332 =10 123323 o OA9E, 0084,073D,0G2E4,C4A7,00AB,8 0A9F, 0484,073D,0024,C4A7,0081,0 ) 0810, 0586,0C012,0A70,1847,0084,8 Page CLOKX Rev 13.00, Clock rate = 160ns ettt triataieteledeti ittt t it ‘Dec. tength for NEXT pass, what was RLROJ_D_RB-CONX(4), ‘previous leng.n? ALUS_ONSGN OLDALUS? Lttt atetstetainindletn e DAl ALl %> 0, inc. dest. address, loop back ;23326 VA RCR3] RB+CONX(4), NEXT/CS.M5.WR.L.1OP, MM.ALLOW, INT? ;s§§§g NX VA _RLR3]I_RB+CO(4) ‘= 0, inc. dest. address 123324 ;23325 9335 ] ;23331 ;23332 :Sgggz ettt dalnleete ettt -= MCTEMPOJ _MB.AND,zLITOL3], WX.NE.O? ;Are we finished? 123335 =0 ;23336 (S.MOV, BUT FLAGT: 0B48, 0(84,0587,25F4,0047,00AA,D 123337 ;23338 ;S§§28 123341 0849, 0484,0592,6034,0047,00A8,7 ;23342 :g%%zz 123345 Qem==mmemmm——memccamcsccnccnen=; FLAG1’ RLRO]I D_V, NEXT/(S. MOV, R4 GETS.0 ;lemmmemm;eeemececccccceaooe ——— R L . 23348 ; =111 is MOVTUC. 123349 » 0AS6, 0C84,U587,25F4,0047 ,00AA,D ] i QAS7, Q080,A592,46F0,0047,00AC,5 123352 223353 ;Sgggg 103356 ;23357 :Sgggg ;GPRO_1, 2, or 3, finishing writing JBYTES R R A R R A A AL ; Enter below on IR<2-0>? BUT. SRR KRNI AR :23350 =110 ;23351 CS.M3.MTUC: ) MOVCS OR CMPC5? R[ROJ MCTEMPO], NEXT/TSTMS.WR,LB 123346 123347 RO AND D GET A O B KRR KRR IR R A R AR SRR SR AR KRNI AR R ettt tatatatatdabedbtodd kol H FLAG1?,RCR0O] D_O, NEXT/CS.MOV.R4TGETS. 0 RO AND D GET A O ;MOVC5 OR CMPCS? D: WB_MLTEMPiI0],wR<31-30>7, NERT/CS.MTUC.END LIRS AL AR AME AL =110 is MOVC3, MavC5, or MOVTC. +1s MTEMP10 < @? RKA KRR Tk Rk kR’ 568 (MT098,MCX CHAR M]( MICROZ 1M(01) Character String 28~NOV=83 16:30:35 B 13 Page CLOKX Rev 13,00, Clock rate = 160ns : MOVTC and MOVTUC : MOVT( and MOvTUC" Character String ;g%%g? T0¢ ' 323362 ;23363 ;.tttufit-'---tntttttttt«aaat«taqat~«aaqtnqnaan~q~qnnnnnn~t-.t-ntttttna. MOV T(C ; 23370 23371 ; H 123364 123345 ;23366 }2336/ 123368 223369 223372 123373 123374 INPUT H ; ; N K i RO 0 MTMPB D R1 PC MIN(SRC LGTH,DEST LGTH) " ! ' ' ' ' T " ' SOURCE ADDRESS " o TEMPS ESC(EXPANDED) TEMP? TEMP3 ; J ; ' " DESTINATION LENGTH TEMP? FLAG! TABLE ADDRESS SET(FOR (MPC5 & MOvV(S5) SRC LGTH - DST LGTH ; MTEMP10Q ; R3 123379 ;23380 ; . R2 TEMPG ;23382 : FPD DELTA PC'O(BBITS'24BITS) 4{ROTATED LEFT BY 82 SET RO # OF UNTRANSLATED BYTES R1 (NE.O IF SRC>DEST LGTH) ADD OF QONE BYTE BEYOND 123375 ;23376 223377 ;23381 ;23383 :23384 J : : ; ;23385 . 23386 ; ; ;23389 ) ;23387 ;23388 ;23390 233N :2339% ;2339 ;23394 223395 23396 ;g%ggg e DESTINATION ADDRESS IN SRC STR THE LAST BYTE IN SRC STRING THAT WAS TRANS R2 0 R3 ADD OF H RS ADD OF ONE BYTE BEYOND ; Ré4 ; H ; 0 v_0 H J ; ; : C_SRCLEN LSSU DSTLEN RESOURCES SAME AS MOVCS WITHM THE FOLLOWING TABLE ADDRESS TEMP? RTEMP12 FLAGQ Holds XB data 1 _1 IF MOV BACK FLAG3 H 223404 : ;23406 R H THE TRANS TABLE THE DESTINATION STRING N_SRCLEN LSS DSTLEN Z_SRCLEN EQL DESLEN (C R ;23401 ;23402 . 23408 2L11009) B : 223403 QUTPUT H H ;23399 ;23400 FPDOFFSET SUBROUTINE S R R CS,GEN.RESPC R A LR R R AR AR AR AR AR AR 569 Character String N P 16:30:35 c 13 N B Page CLOKX Rev 13.00, Clock rate = 160ns : MOVTC and MOVTUC AR RN AR AN N RN MOVTUC R R A R R RN R AR R R R AR KRR RN RN AR AR KRR SAME AS MOVIC EXCEPT: OUTPUT RO R1 R AN RN RO Ak AR b # OF UNTRANSLATED BYTES IN SRC STR INC (=0 [F SRC STR Ww/0 ESC ADD OF EXHAUST OR OF ONE BYTE ESC BYTE TRANS OR ESC BEYOND THE LAST BYTE IN SR( H STRING THAT WAS TRANS ; R3 R4 RS . ; : : ; : H ; c A N Ll S A L LA A LA N U AL AL AN U LA N AN kB k2l S 2t NN NN N O SN NLSTNLET ST VTSI ST NI N LT S LIS E SIS TS 1N [ 8 . ws e me RSN O N P A e T e ;23407 28-NOV=-83 L R T MICRO2 e =X 3 tM7098. (HAR, — i 1M(01) RESOURCES ADD OF THE TRANS TABLE # OF BYTES IN DEST STR ADD THAT WOULD HAVE TRANS BYTE IF NOT FOR EXHAUST OR ESC OR ADD OF ONE BYTE BEYOND THE DESTINATION STRING N_SRCLEN LSS DSTLEN Z_SRCLEN EG. DESLEN V_TERMINATED BY ESC C_SRCLEN LSSU DSTLEN SAME _AS MOVC5 WITR THE FOLLOWING TEMP7 HLAGO TABLE ADDRESS 1 1 If MOV BACK FLAG3 'w*tRtRW*fi**fifi*fi(l*fi*fi*fitifl*tt**tti*fi*fit*ttiiti**titttt*:ttfitt*itiii*itttt*tt 570 ; ; (MT098.MCX CHAR.MIC MICRO2 1M(01) Character String 28~NOV=83 16:30:35 D13 : MOVTC and MOVTUC :sgzgg CS.MOVTC.TUC.BACK: J 0B12, ODSE,6DB7,02F0,3047,00A8,C SET FLAG3,MM.ALLOW.INT?, :23436 MLTEMPG] ZLIT8C6] ;23440 ;23441 SREHKR AR TRRRKR A K HRARAKARIAARRKA KRR KRR ; Here on MM,ALLOW,INT? BUT. R Rk ; =10 is something pend1n8 RETURN =1 or pack _up ;: PR=01TRERaraSDH is a duplicate ot =00 for IE.SERV.IP,TS2 A e i RETURN. PR ST SIS SR L L L1 ;23446 =00 ;23647 (S.MTC, wR‘ ,23448 123449 ;S%ég? IRZ2-0>7 ,NEXT/CS.MTC.VA ‘5%22@ IR<2-0>? ,NEXT/CS.MTC.VA :23456 T ;23457 ;sgzgg _ ;23461 i J UA67, 0L81,7000,1841,6047,08AC,2 374 e PC_translated character's address e L LR EE L ; NEXT/JE SERV.IP.TS2 =110 = m e ;23464 RLTEMP12]_XB PC _PC+1, 23467 I ;sgzgg ;23468 ‘5%293 123471 =10 ;23672 JPC_translated character's add, PUSH INTPEND OR TIMER?, ;23462 CS.MTC.VA: :23463 $110m U 0A66, 0485,7592,4003,2047,0081,E IA AR AR j0Temmmesmmcmememeeemccossaneeeeo PC ZEXT(XB<7=0>) +RLTEMP7], ;23453 123460 TR j00~emmmmmmmemm e cem e n s; PC 2EXT(XB<7=0>) +R[TEMP7], 123052 J OABE, 0480,0036,4AF0,0047,04F7,0 spending? ; =00 is nothing pending. ;236443 ;23444 ;23445 U 0ABD, 0481,7015,0641 ,E487,00A6,6 ‘write back FLAG, load code 6, anything 123437 123442 U QABC, 0481,7015,0641,E487,00A6,6 Page CLOKX Rev 13.00, Clock rate = 160ns s NEXT/CS.MYC.FOB PRE eH ;Write a BYTE from the XB T Q_XB-RLTEMP5] PC_P(C+1, STGND CMP? {MOVTUCL2F], ?et next BYTE & is it tequal to fiL03? L vttt statuinl il ;23473 write (XB) BYTE, il 0AC2, 0480,5009,04(0,05p8,0084,C ;23474 :S%fi;g WRITE MCTEMPS]+Q,SIZELBYTE], U 0AC3, 0480,A592,46F0,08E7,00AC,5 123479 wB M[TEMP1OJ WB<31-30>7,SET V :PSL<V>_1, MTEMP10 < 0? FLAG3?, NEXT/CS.MTC.FOB :GO TO COMMON FLOW WITH MOVTC : 571. : 28-NOV~83 1M(01) Character String 123480 ;23481 12348 0ACS, 0480,05BE,6034,0047,0081,C 0AC7, 0080,A003,2034,0047,0084,A ;2348 ;g%fig 12348 ;ngg :23489 ;23490 12349 0817, 0CE4,7592,4034,C047,0081,8 :2349 ;ngg ;5358 .. 0B4D, 0084,0E7D,2A34,0047,088B5,0 378+ AN =3 © 0 A0 0 00 YO AN L ANND = OO 00 O L 0B4C, 0C84,0E7(,0034,4487,0082,3 O = PR TR TR2 AL Ty Sy R T ) 0B1E, 0080,05BE,44(3,05D8,0084,C TIL NI T T 0B1C, 0484,A001,0034,0047,00B84,A P I S P P 0B1B, 0084,0587,0134,8047,003F,9 OV N ;2350 2235 =01 CS.MTUC.END: ;01 emmmm ey * D_RLRO], :D GETS RO NEXT/CS.RO.GETS.RO+10 ;RO_RO+TMP10 FLOW T e e e S L L LS e ; sD_RO=TMP10 D_RLROJ~MLTEMP10] =0 (S.MOVT.R5.GETS.VA: o vintaitatekte et b bt Ll bbbt H JRET+1 JR5_VA PUSH, RLRS]_MLVA], JRESTOR PC NEXT/TS.GEN.RESPC flmmo s mesm e ; ;***************i*****i***k****k**k************************i****‘*****i ;g;gg "235 ¢ MOVTC and MOVTUC Page RLR4]_D :9349 1235 CLOKX Rev 13.00, Clock rate = 160ns NN 2 OO O N 0B4B, 0884,0582,4035,0047,0081,7 ;S§23 E 13 16:30:35 NN NDASNORONIPDTLUNLN) D = b = D B D 2 2 OO D OO 0B4A, 0885,B592,4035,4047,04AA,5 ;2349 ;2349 AN = O (HAR.M MICROZ2 VTR NN = OO0 @ NI CMTO98.ME¥ ;Load GPR4 it o; RLR3I_MLTEMP7]1,CLEAR FPD JGPR3_TEMP7, FPD_O ;**t******i******tt***tt*t**t**********k***kfik***fi********************i ; Other Character String instructions exit here. CS.MTC.R2_0.IRD1: RCR2]_0, IRD1 CS.RO,GETS.RO+10: ¢ et 4 e o iGPR2_0, **IRD1%* e g S Rt RCROJ_MCTEMP10J+RB, 2 O NEXT/TS.MOVT.R5.GETS.VA CS.MTC.FOB.PRE: v o i 20 o Oy B0 & {RO_RO+TMP10 : o WRITE RLTEMP12],SIZELBYTE], FLAG3? b P ‘Are we writing backwards? =0 CS.MTC.FOB: PC_RCR11_RB+1, NEXT/CS.RO~1.FOR *PCLRT_R1+1 ;DEC RO sttt bbb ettt : RCROJ_D_RB-1, :DEC R NEXT/CS.MOVT.DEC.PC ;DEC P WX.EQ,0T, ;FINISHED? , 572; H (MTO98. ,MCX CHAR.MIC MICROZ2 1M(01) Character String 28-NOV~-83 16:30:35 F 13 ¢ MOVTC and MOVTUC :23533 CS.RO=1.FOR: P T U 0B23, 0084,0E7D,2A34,0047,08B4 ,E 378* 123535 123536 123537 ;23538 =0 123539 U OB4E, 0C84,0E7C,02F4,C4A7,00AB,( 123540 VA RCR3] _RB+1, 123545 ;Sgggg JFINISHED? . . VA-GPR3_GPR3+1, anything pending? jlessmssecmesescmemmmcmecmeeeaee; NERT/CS.AVT.FINISH ;23546 123547 =0 ;23548 CS.MOVT.DEC.PC: 123550 ; JRO,D_RO-1 0mmescsesccssecscmmencon e VA RCR3] RB+1,MM,ALLOW.INT?, 123544 123549 U 0B50, 0484,0E7D,0033,4487,0082,4 WX.EQTo NEXT/cs.M C.WR 123543 U 0B4F, 0084,0E7C,0034,C4A7,0085,1 REROJ RB-1, ;235412 123564 Page CLOKX Rev 13.00, Clock rate = 160ns VA,R3_R3+1 ; ;Qmmmmmmmecsccemceccoeanemsuao e PC RCTEMP13]_RB-1, NERT/CS.MOVTTDEC.VA ‘PC,TEMP13_TEMP13-1 *GOTO DEC VA FLOW ;23553 (S.MVT. FINISH 123554 2000 ilemmeemeemmcemmmcesccecsceescesae., ;23555 U 0B51, 0C40,05BE,44F4,C4A7,0084,2 ;23556 123557 ;ggggg VA RCR3], SET FLAGO, FLAG3?, NEXT/CS.MOVTC,TUC.FIN vA R3 “SEY FLAGO FOR MOVTC,TUC *FORWARD OR BACK? *F INISHED e ;Sggg? CS.MOVT.DEC.VA: 0B24, 0086,4080,02FD,84A7,00AB,¢ ;23562 123563 ;23564 123565 VA_MCTEMPG) _MB=1,MM,ALLOW.INT?, VA & TEMP4 _TEMP4-1, anything pending? NEXT/CS.MTCTUWR ;23566 =110 C ;Sgggg CS.MOVTC.{UC.TMP10-0: 0AGE, 0080,A592,46F0,0047,00A8,1 ;23569 ;23570 ;23571 ;23572 U 0A6F, 0080,A592,46F0,0047,00AC,5 ;23573 123574 WwB_MCTEMP10],WB<31-30>?, NERT/CS.M5 P R ‘1s MTEMP10 < 0? e e e ; WB_MLTEMP101,WB<31-30>7, NERT/CS.MTUC,.END +Is MTEMP10Q < 07 ; (goto MOVTUC) 573 : 6 13 CLOKX Rev 13.00, Clock rate = 160ns Page (MPC3 and CMPC5 : CMPC3 and CMPC5" () Character String o CMPC3 INPUT D TEMP? R1 sl st ol diaileiiiiiliil it LENGTH SOURCE ADDRESS DESTINATION ADDRESS I R TR TR TR TE TR TR Y N 2122120020281 222 2222223222322 s T DELTA PC'O(BBITS'24BITS) I N 1(ROTATED LEFT BY 8) 8ET A N FPDOFFSET T L RESOURCES RO Re R3 D TEMP6 TR RTEMP13 PC R T FLAGO FLAG] e FLAG3 LENGTH DELTA PL'0(BBITS'24BIT7S) DESTINATION ADDRESS LENGTH CODE . Holds data for comparison 80URCE ADDRESS Y 0 T T — 16:30:35 [ T O N L A O OO OOV OO N N N ] (AN A N A N O OO OO . e = Yol lelelelwlwlelelmls Ko Lollo Nalloh o] O O 0 00 00 O3 0000 00 CO 2000 L0 NN NN AN = OO O NN AN = OO0 NN S NN 2 QOO NA NS W= O0VEB O e A LN U AT A Ul L AN AT U N LA AN AN U A N UL iV N AT LA LA U T T PR P T T NIRIR NI PO N P P P T T e O T TR T [ N N I T T TSR DI T I P AT SR CHAR.MIC PP . MICRO2 1M(01) Character String PLNLAL AL AL AN RUAINIRI NN NN RAINIRI NN RS AR RN NI R PO RIR PN 8 . MCX CMT09 28-NOV-83 . QUTPUT RO R1 # BYTES LEFT IN SRC STR INCL BYTE OF INEQUALITY ADD OF BYTE OF INEQUAL OR _OF ONE BYTE BEYOND RZ THE SOURCE STRING RO cC N_1ST BYTE LSS 2ND BYTE R3 ADD OF BYTE OF INEQUAL OR OF ONE BYTE BEYOND THE DESTINATION_STRING Z_1ST BYTE EQL 2ND BYTE v_0 CZ1ST BYTE LSSU 2ND BYTE :tk&t*tttt*******tt*******t*****k***************t*fik**********k***i**** 574 Page CLOKX Rev 13.00, Clock rate = 160ns : CMPC3 and CMPCS sk kR ARk A R AR AR CMPCS R AR KRR R RARR AR AR RRR KRR A KA D [ TEMP? TEMPS TEMP3 FLAGI MTEMP10 FPDOFFSET cg " N FILL (EXPANDED) DESTINATION LENGTH SET(FOR CMPC5 AND MOV(C5) SRC LGTH = DST LGTH 0 DESTINATION ADDRESS R TEMP6 DELTA PC'O(8BITS'24BITS) RO # BYTES LEFT IN SRC STR INCL BYTE OF INEQUALITY ADD OF BYTE OF INEQUAL OR OF ONE BYTE BEYOND THE SOURCE STRING # BYTES LEFT IN DES STR INCL BYTE OF INEQUALITY OUTPUT ;é?OTATED LEFT BY 8) R1 R R3 ; H H H ADD OF BYTE OF INEGQUAL OR OF ONE BYTE BEYOND THE DESTINATION_STRING N_1ST BYTE LSS 2ND BYTE z _1ST BYTE EQL 2ND BYTE cc RESOURCES R R R L S D 0(8BITS'24BITS) PC VA FLAG] 1 FLAGO 2 ST BYTE LSSU 2ND BYTE L C H S D MP6 R v c FLAG3 R DRESS ON ADDRESS D RTEMP13 s L SOURCE ADDRESS ; R " g} FPD H ; ; ; H ; ; b Ak bbbk sk MIN(SRC LGTH,DEST LGTH) 80 INPUT RN a for comparison DRESS — O WY £ H13 — — = A AN N AN N WYNONLNLRLNINDNITVNIN) i = O WONO NI NN = O 000NN W= OVoN N NoNoNoJo JoJoJo Jo Toole le el el cat ~al=al "ol =ad[o Yo NoNoNeNoNo D D2 BN D PN NN s e Mo e NIV T I I T I L L R s AU = O D00 O NS~ WMD) — O O 0 I ORI(= ey e, - O S S N N I T TR TETE TR PR PR PR PR TR P TR T ST NN TSN L T NTAN Ta S 11N N a¥) [a¥) U N RN RNLAL NI PNV NNV NV PO N PN PO PV R PO TN TV NOND N A UM AN N R N NN N AN N AN A LA N N NN N N NN LN N U N N N A AN R NN LN AN 16:30:35 —OCDVOD m W= 28-NOV-83 Character String A T T e CHARMIC [LSLSLNT NN N A A LA U LA LA (MT098.MCX 0 R AR AR 0 AR ON ADDRESS AR AR RN RRRRRRREY : CMT098,MCX CHAR.MIC MICROZ2 1M(OT) Character String H 123689 RCR31_MCVAJ,WB<1-0>,NE.0?, :§§2§? : Character String ;23664 ,10C 123665 ;23666 =0 :s%ggg €S.C3.1: U 0B52, 0C85,B592,4384,(047,00A7,0 113 Page 16:30:33“’C3 CLOKX Rev 13.00, Clock rate = 160ns 28=NOV-83 (MPC3'"! YGPR3_VA, is address LONGWORD aligned? NEXT/TS.C3.(0P Eggggg CS.CHP.RY,GETS PC: U OBS53, 0885,A592,45F4,4047,00AC,8 Eggg;g RIRTI_MLPC,FLAGT? ‘GPR1_PC, are we CMP(5? 123676 =00 123677 CS.CMP.CLREPD: 123678 U OAC8, 0BE6,02B7,0024,8047,04AA,A :23679 PUSH, CLEAR FPD, ;§§225 NEXT/CS.BEN.RESPC.1 123680 :23683 U OACS, 0486,25BE,44F4,4047,0085,4 U OACA, 0986,CC37,0030,4047,0082,6 123684 123685 {5308y 123688 123689 123690 = :23691 ;23692 U 0B26, 0884,A592,6B64,0047,08A8,8 351« 00====—mmmommemensmmnmem——s : 123693 ;Sgggg . JFPD_0, restore PC & RETURN+1, MLTEMPOJ_RCR2J.RR.24, ;0] =mmcmmseenvenmen e ———————— ; METEMP2]_RIR1],FLAG3?, STEMP2_PC, are we MATCHC? NEXT/CS.TMP.R2.GETS D | MIFPDOFFSETI_ZLITOL8] ‘Entering ofseperate flows, pack up RETURN+4 ;instead ot : RCROI_D MLTEMP10J,SIZELLONG], SIGNDTMCHP? ,NEXT/(S.C5 :GPRO_D_MTEMP10, what is polarity ;of result? 123694 = :g%ggg S.CMP,R2.GETS.D: U 0854, 0484,05B2,4134,8047,003F,9 }ggggg 123701 U 0B55, OOE8,058f,4A24,0847,0887,( 322+ 123702 ;23703 ;23704 {GPR2_D, #*IRD1#+ RCR21_D, IRD1 P o wB_RLROJ,WX,EQ.0?,CCOPT, SIZECLONG],SFT EPD, NEXT/CS.MAT.Q.GETS.Q=RO LD T : ;G6PR0=0?, and set (C, ;FPD was zero but MATCHC isn't finished :60 TO MATCHC FLOW CMT098.MCX . MIC CHAR MICRO2 ) Character String R AR AN AR R Main loop"' : AR AR AR RAR R AR AR R ARk A AN I AR AR =001 is source 2 address isn't aligned, compare in BYTEs, . The BYTE compare flow cqmgareg until src.#2 address (current) 1is LONGWORD aligned, at which point it splits into LONGWORD compare flows. The LONGWORD compare flow compare until EOS or a miscompare, at which A point it backs up the P( and compares in BYTEs to isolate the different BYTE. Code also enters at (S.C3.LOP.B.INT: on a MM,ALLOW.INT? BUT. =001 is nothing pending, =011 is timer or ints. pending, RETURN-1 A Y After initialization enter at (S.(3,LO0P: on a WB<1-0>.NE.0? BUT. =000 is source 2 address is LONGWORD aligned, compare in LONGWORDs. O N N O R IR TR TR TR RN AR if just timer, else pack up. RN AR ARk kAR ARk A R AR RN AR N AR N AR AR R P =3 OO0 o b b d N SN (AN O b el b ed ek AL — O OO0 PO D BUONINV NP NIND = N VNIIMNN =S OO0~ NN N N NN W Main loop 00 C3.L0P;: lo WB_RCROJ-CONX(4),WB<31=-30>7, NERT/{S.C3.LOP.L " s - o e T e e Ty e e RETEMP13]_TEXT1.d) PC_PC+1, . J1s remaining length >=4? g ¢ e ¢ ‘BYTE compare, READ both sources NEXT/CS.C3.L0P.B ;01 - 1o T o Y o e 2 0 e ROTEMP13]_ZEXT(XB) PC_PC+1, NEXT/CS.C3.LOP.B ARk kA Ak A A Ak AR A AN kb kAR e W o 0 W . $ ;BYTE compare, READ both sources §0717 === mmmmcm e ; PUSH, INTPEN NEXT/IE.SER I DN AN S O VO N 2 25 D O O OO NN ALALALDS D5 2 N 0886,2036,4030,0387,00BC,A IO A AN NN N NN N N N NN N LA A LA S N LA N LA NN O A N AN AN N (ALY (L Und N LA O LN A A AN NN TN N SN SN N NI N SN NI NI NI N N SN NI N NN SN N N NN SN N NN SN NI TN SN SN NN NI NN NN QOOO e TR TR P T TR R T L LI LI LIt U AL RU NI NI NI NUNLNI PO RN NONLNL PO NN O N O S TR T NG NN AU NN T 0886,2036,4030,0387,008(,A e 0886,2036,4030,0387,008C,A 10 RO AL AL RO 0480,0036,4AF0,0047,04F7,0 PR 0085,759€,4003,6047,00A7,A S N (085,759 ,4003,6047,00A7,A AU AU U RO AU RSN AU RO R RN MU 0480,073C,06E4,0047,08A7,9 376+ Page CLOKX Rev 13.00, Ctock rate = 160ns Character String 23705 .70¢C v J 13 <O ¢ 16:30:35 28=NOV~-83 L LU L L UL Y] ) Dttt MCTEMP2] _FLAGS, NEXT/CS.TMP.PACK.BEGIN ;110~==mmmmmmcen e c e M{TEMP2)_FLAGS, NEXT/CS.TMP.PACK.BEGIN ;11 ecemceanccnnant i ——— : M{TEMP2] FLAGS, NEXT/CS.TMP.PACK,.BEGIN :Ints, pending, pack up % T = OO0 00 NOM NS W SN O OO 0828, 0081,2017,0A03,4847,08B5,A 356+ R < N T O y CA7E, OD81,AC10,0030,0C87,00FC,3 16:30:35 K 13 CLOKX Rev 13, 00, Clock rate = 160ns Main 9 NN N N N SN N SN N SN N N SN NI N Y OO OO OV TN NILALRILN TR P TR 0¢80,0036,4000,0050,0082,B IR T L 0A7A, 28-NOV-83 D MICRO2 1M(01) Character Stri ) (MT098.MCX CHAR MIC [ACSLSLSLOLN LWL NN N T TS TN TN [ e S Tae] LA LA AN R A O N N N W NN H : loop =0 €S.C3.L0P.B: .ott-n -------------- - READ,SIZELBYTE JO NEXT/CS. 3.L0P.B8.A R P L e PC_MLPCI~ZLI 10011, T- EBUS exception, fix PC, pack up NEXT/CS.CMP,PACK €S.C3.L0P.B.A: R e e e e e T T X ESet C( on these BYTEs, are they sequal? ; H CMTOQS.ME% (HAR.M MICROZ 1M(O1) Character String 16:30:35 28-NOV-83 L 13 LONGWORDs " 223771 :23772 ;23773 123774 e A AR AR R AR RS AR AL LA LA AR SR AA AL AL AL ; Beginqin? of LONGWORD compare. ; =001 is {remaining) length >= 4, we can compare LONGWORDs. ; =011 is (remaining) length < 4, compare in BYTEs. . ;23776 ; ditferent loop at (S.(3.LOP,L1 which includes interrupt pending/ 223777 123778 ; We pass thru here only once. ; R timer service splits., Al At e e e Subsequent LONGWORDs are read 1in a R 123779 =001 ;23780 CS.C3.LOP.L: :23781 1007 =-socmmmmmcn e mcnnccan e ; ;23782 ;Sg;gz ;23785 U 0A7B, 0085,759€,4003,6047,00A7 A ;23786 ’5?;3% ;23789 =101 ;23790 U 0A7D, 0886,2036,4030,0387,008C,A ;237N :s%;gg :23794 =111 123795 U 0A7F, 0886,2036,4030,0387,008(,A LONGWORDS"' : Character String ;%%;98 .T0C 23775 i) 0A79, 0485,7592,4023,6047,00A8,0 Page CLOKX Rev 13,00, Clock rate = 160ns ;23796 ;g%;gg ettt At e LS R i s i ARt sttt et ; RLTEMP13] _ZEXT(XB) PC_PC+1, JREAD both sources, BYTE 5101 =mmmmec e H NEXT/CS.C3.L0P.B MLCTEMP2] _FLAGS, mcncm e — NEXT/CS.TMP.PACK.BEGIN ARt LI L L MUTEMP2]_FLAGS, L P L L LR LR NEXT/CS.CMP.PACK.BEGIN AR +READ both sources RLTEMP13]_XB PC_P(+4, NEXT/CS.C3.L0pP.[1 N e JBUS exception, pack up LD : ;BUS exception, pack up 223799 ;23800 =0x+ ;23801 €S.C3.L0P,L1: ;23802 L vttt DL bt bl : U 0A80, 0080,0036,4020,0050,0082,C ) U 0A84, 0181,AC10,0030,2487,00F(,8 ;23803 ;ggggg ;23806 ;23807 ;23808 READ,SIZE[LLONG], NEXT/CS.C3.LOP.LT1.A B e et eiattet e beiininletittt : PC MIPCI-ZLITO(6], NEXT/CS.CMP.PACK . . ;BUS exception, fix PC, pack up 579 (MT098.MCX : CHAR.MIC MICROZ2 1M(01) Character String 28=NOV=83 : 16:30:35 M3 CLOKX Rev 13.00, Clock rate = 160ns LONGWORDs :g%g?g CS.C3.LOP.L1.A: U 0B2(, 0681,2003,0A23,4847,08B85,6 345+ 1238 :Sgg}% 123814 =0 :23815 U 0BS6, 0DB1,AC10,02F0,2487,00A7,1 U OB57, (BB84,073C,2A64,0047,08B5,8 377+ . U 0B58, 0C84,073D,0024,04A7,0085,3 J 0B59, 0480,073C,06E4,0047,08AC,D 376+ ;23816 ;23817 ;23818 NEXT/CS.C3.LOP.B.]NT Esggsg R[ROJ _D_RB~CONX(4),WX.NE.O? ‘Yes, dec. length, are we finished? $53830 123823 =0 :23824 :23825 :S%gsg 123828 ;S%g%g §Qm m m e mmm oo (4 g VA_RCR3]_RB+(ONX NERT/CS.TMP.R1. GE PC Sgggg NEXT/CS. C3 LOP L.INT ;23838 123839 No. Is there >= 1 LONGWORD left? Jemmecmcmmceranra— o mmmm—— VA _RIR3]_RB+(ONX(4), ;23834 iYes, bump VA & GPR3 jlmmsmeesccescmmmmmesmemeeseeeusg WB RLROJ-CONX(4) ,wB<31-30>7 ;23833 123837 ) QACF, D484,073D,0024,(4A7,0047,1 $Qmmmmmmm e e No PC_PC~4 to isolate the BYTE, .anythwng pending? ;23832 ) SIZECLONG],WX.EQ.07 iSet (C % are these pieces equal? PC _MUPCI=201T0C4], MMTALLOW. INT?, 123831 =01 J UDACD, 0084,073D,02E4,(4A7,00A8,1 WB_RLTEMP131-M[MDR],CCOPT, Page MMTALLOW, INT?, ;1] mmmmmmm oo e dmm VA_RLR31_RB+CONX(4), NERT/CS.C3.L0P.B, INT ;Yes, compare next LONGWORD, but first ;is anything pending? e iYes, 1=3 BYTEs are left, bump VA 580. [ F v (MT098 , MCX (HAR MIC MICROZ e 1M(01) Character String e e e 28=N0OV~83 : e 16:30:35 L N 13 CLOKX Rev 13,00, Clock rate = 160ns LONGWORDs | :23840 =000 ! | ;23842 (S.C3.LOP.L.INT: ;23843 1007~ mmmmo oo osm e n e n $23841 =001 | i lu CA8Y, 0485,7592,4023,6047,0048,0 ? | S ;23844 ;gggzg 123847 U 0AB2, 0485,7592,4023,6047,00A8,0 ’ 123848 ;ggggg :23851 U 0A83, 0480,0036,4AF0,0047,04F7,0 223852 ;Sgggz 123855 =101 123856 1 DA85, 0886,2036,4030,0387,008C,A 123857 :Sgggg 123860 . UABG, 0886,2036,4030,0387,00BC,A ;23861 :ggggg :23864 i 0AB?, 0886,2036,4030,0387,008(,4 ;23865 123860 RITEMP13] XB PC_PC+4, NEXT/CS.(3.10P.[1 READ both sources ;010=mmmmmmr e e e; ROTEMP131_XB PC_PC+4, NEXT/CS.C3.L0P.[1 ;READ both sources R B L B; PUSH, INTPEND OR TIMER?, NEXT/1E.SERV,1P.TS2 1101 emm e em o nmmsnn s MCTEMP2] FLAGS, NEXT/CS.TMP.PACK.BEGIN §110mm oo e ; MLTEMP2]_FLAGS, NEXT/(S.TMP.PACK.BEGIN 1111 mm : ;BUS exception, pack up eo MLYEMP2] _FLAGS, ss NEXT/CS.TMP,PATK BEGIN . ;BUS exception, pack up Ints. pending, pack up Page : 581" MICRO2 (MTI98 MCx (HAR M1C 1M(OV) (haracter String 16:30:35 28=NOV=83 B 14 TEs ;sgggg JOg ¢ :-23869 R ;23871 L ;23870 ;23872 =0 Character String : L ; Mere from BYTE compare loop. e R RN 153873 (S.(3.L0P,B1: -iQmmemcnncccnn ;')3871, i OBSA, 0BBS,AES1,05F4,4487,00A46,0 0BSB, 0084 ,0E7D,2A34,0047,08B5,C 378 ;23875 ;23876 OHL, 0484,0E7C,03%86,C4A7,08A7,0 374+ v ) ] GH5D, 0884 ,0E70,003%4,04A7,0085,3 PC_RIR1I_MIPC)-1, FLAGY? R A AL 582 BYTEs'' AR A AR LA AL AL AL C = AL =0 is BYTEs are not equal, =1 is equal. R AL R : AL AR LA RAL A AL L AL : g - ¢ i s JPC,R1, PC=1 ;CMPCS? ;g%g;g NEXT/¢§, C3.CLRFPD, ) 123879 ;lmecmamamccaaccmocaaa cmmmmeamas; i bbbttt ieinte H | NEXT/TS.T3.L0P ! :S%gg? :23882 =0 o Page CL8$X Rev 13,00, Clock rate = 160ns ; ;23883 123884 ;g%ggg 123887 123888 ;Siggg RCROI_D_RB~1,WX.EQ.0? R(R3]_VA_RB+1 ,WB<1=0>.NE,07?, | :Dec. length, are we tinished? | iNo, GPR3_VA_address+1, are we aligned? ' iTeemsmseanne e ; VA_RL{R3]_RB+! NERT/CS.TMP.RT.GETS.PC JYes, VA R3 RI+1 160 fo ri_pPT FLow 123891 =0« OAGD, o - DTBO,0036,4030,00467,00A0 8 ;23892 €S (3, CLREPD,T: 23893 et b L L L; ;?;ggg 2 ;23896 . C MG, UUBL,ABY2, 46T 0067 U0AD , RUTEMP4 ] MLTEMPIOQ], :23901 ;0)emmmne 123903 REROJ_MITEMP101+RB, ;23898 23899 $23900 =01 S QADY, QFOC,AD0Y,003%4,0047,0085,3 .sgggg $23906 ] o - QADS, UT08,uu20,2031,00607,00A0,8 ;GOTO FPD FLOW Jlmecmccecrn et m i ————— — ;23897 . 23902 o NEXT/CS.CMP.(LRFPD JTEMP4_MTEMPIO, is it <07 wB<31=3057 (LEAR FLAGY, e mmmm———— CLR CMPCS NEXT/TS.CMP.RY,GETS.PC ;RO _RO=MTMP10Q ;MIRP10 > = 0 ;1evmeceaamcaanaunnan cemmmmm——. :23907 D _D=-RLTEMP4], D _D=MTMP10(IMP4) 123909 NEXTZCS,CMP,CLRFPD JMIMP10 < O 133908 (CEAR FLAGI, :CCR CMPCS B ~::;;§f:;1g;:: e e , e T S H (MTDOB M(X UHAR (M]C € 14 28-N0OV-83 MI(RO? Character String 16:30:%3Pc5 CLOKX Rev 13,00, Clock rate = 160ns i e.mLaLn T E TR TE TR TR RN R RN NN AR AR N AR - N R u 0B3S, 0UD8S,6DB7,UU%U,2047,U0K9,9 RN R A ARR R AN AR NAARARAE AR ARG AR o kb AR AR RAARR R AN AR R AR AR RN RNk R A A A N N NN N AR Y N NN = OO :TMP10=0=NO MORE C(MP=CLEAN UP PC_MLVAD NEXT/CS.C5.S2F iPC_VA o tutttairatale b b- CLEAR FPD,PUSH, MITEMPQI_RIR2].RR, 24, NEXT/CS.GEN.RESPC.1 ;Finished with extra source 1 compare, ;restore P( :100=mcccacmcecmnanacanun mmm— MITEMP2]_RIR1J,FLAG3?, NEXT/CS.TMP.R2.GETS.D {TEMP2_PC, are we MATCHC? NI LN DN B B D N ) —OO0 OO0 00000000 O0OIEGON NEXT/CS.CMP,CLRFPD O d AN Ak A A kA AA ;000==s=sassommme s e m e: PUSH,NEXT/CS.C5,S1F, ;RETURN +3 MLIEMPO S _ZL1TBLZ] S e m. .. R N I o CH2E, 0884,05R3,72034,0047,0083,3 P 04B6,¢5BE ,44F4,4047,00B5,4 R S 0 0ABC, R A AR R A ;00 —cemcmcmme o b: T U 0A8B, 0BEG6,02R7.0024,8047,04AA A AR R AR from SIGND C(MP? split on (Src.#1 length) - (Src.#2 length), is Src.#1 is longer, compare the excess with the FILL character. 1s Saurces are equal in length, finish inst, is Src.#2 is longer, compare the excess with the FILL char. RN R RN AR RRAR J UAB9, OCRQ,NN%6,4030,0047,00AC,8 u 0ABA, 0081,4002,403D,8487,0082,t Here =000 =001 =010 (MpPCSY! : Character String 1 OABB, 0186,6DB7,00%0,1047,0483,7 Page t i ($.€5.5¢F: RIROI_D_=D ‘Get ~(~(extra length to compare)’ MCTEMPSY 7111804, iTEMP6_400, enter src.#2 compare 1 NEXT/CS.T5.82F 583 CMTO98.MCX ’ MICRO2 CHAR M1 C 1M(D1) Character String 28-NOV~83 16:30:35 : D 14 CLOKX Rev 13.00, Clock rate = 160ns Page Source 1 = FILL Source 1 = FILL" : Character String :5%328 .TOC " ;23950 ;tt*kuttitit**tttk*wkkln**tfifik*tfiw*ik*fit***t***t*tfiifi*Qiittttitltittttt ;23953 I ;2%951 123952 : Here for Source 1 = FILL compare. ; Enter at (S.C5.S1F and RETURN +3. A e R AR R A AR This routine is used by SKPC. AR AR A AL A AR A AL ALALAALAALAL L LA 123954 :S%ggg (S.C5.51F: U 0837, 0180,0030,06F0,2047,08AD,5 377+ Eggggg WB_D=2L1T0[4],WB<31=30>? ;23959 ;23960 :23961 R R R i R A e R AR AR AL AL ; =01 is >= 1 LONGWORD in string, compare LONGWORDs. ;=11 is < 1 LONGWORD left, compare BYTEs, 223962 ‘Is there >= 1 LONGWORD left in string? AL ALLE DAL A ; =10 is after comparing a BYTE, finding 1t equal to the FiLL, and : 23963 ; reaching EOS. e R 123964 A R R R R R AR A AR AR AR AR AL AL AR ARALAALAR AL 123965 =00 123966 =01 123967 (S.C5.S1F,.LOP: ;23968 0] e SELLILTY 123969 W8 MCPC],wB<1=0>,NE.O?, U 0AD6, 0485,A592,4084,4047,0000,3 Eg§3;§ £5.05.S1F,B1: Esgggg k[R?J_M[PCJ,RETURN (32 123976 (S.(5.51F,B: EFinished READing BYTEs, RETURN ;23978 WB_ZEXT(XB)=-RLTEMP5] PC_PC+1, ;Compare first/next BYTE with FILL ;23980 NEXT/CS.CS.SfF.BC : ;23977 . . U QAD7, 0(81,7014,0841,6847,08AD,A 385+ R 123979 ;23981 147(: :23982 (S,(5,81F,LOP.-1: ;OxxxxxxFORCE 123984 :23988 WXTEQ.0? ,NEXT/CS.TS.S1F.L © ;23989 123990 173A: ;23991 ; U 173A, 0080,058E,603D,8047,0089,8 . J 1738, 0484,0£71,2084,0047,0000,0 223992 ;S%ggz 123995 1738: ;23996 ;5;33; 410 ;24000 U 0ADA, 0080,05BE,603D,8047,0089,8 ;24002 ;Compare with FILL char. j1wasaaafORCE ADDRESSHAwan*unuk; WB_ZEXT(XB)~RLTEMPS] PC_P(C+1, CCOPT SIGND? ; COMPARE FIRST/NEXT BYET WITH FILL H J10xxx*xFORCE ADDRESSH%wk&asxnxn, D _RLZERO] NEXT/CS.C5.51F.R1_PC-1 ; BYTE IS DIFFERENT, LOAD PC~1 : AND RETURN+3 (11exnxxFORCE ADDRESS*awxwwnwwux; RCROJ_D_D-1,RETURN (02 :93999 (s,(5,51F ,BC: 224001 ; ADDRESS*taxxnsnnex: WB_XB~RLTEMP5] PC_PC+4,CCOP1, :S%ggg 147D 123987 147D, 0481,7014,0B41,6847,0973,A 385+« D; CCOP1 SIGND? ;23983 U 147C, 0081,7000,0421,6847,08B5,E 345% ; LONGWORD ALIGNED? ; NERT/CS.CS5.S1F.LOP. =1 ;S;g;? U 0ADS, 0881,A592,4380,0047,0147,C (10mm e D_RLZERO] nannmr e r e e NEXT/CS.C5.51F.R1_PC-1 ; TRY AGAIN -H ;BYTEs are different, load PC-1 sand RETURN+3 LA 584 CMT098. MCX (HAR.MIC MICRO2 1M(01) Character String 0ADB. 0484,0E71,2A74,0047,08AD,6 372« 124003 124004 ;52882 0898, 0485,AES51,00B4,4047,0000,3 :24007 ;24008 ;24009 ;528}? 16:30:35 28~N0OV=~83 E 14 Page CLOKX Rev 13, OO Clock rate = 160ns Source 1 - Fl {1 585 Dttt otttk H RCROJ_D_D=1,WX.NE.O7, :BYTEs are equal, are we done? NEXT/TSTC5.81F.B1 F.R1_PC-1 =0 ‘ RCR1I_MLPCI=1,RETURN [3] ;24012 €S.(5.51 F L: 085E, 0981,AC10,0030,2487,00AD,7 124014 124015 ;26016 124017 OBSF, 0084,0730,2A64,0047,08B6,0 377+ ;24019 0860, 0485,A592,4084,4047,0000,3 :24022 124023 124024 124025 0B61, 0C80,073C,06E4,0047,08AD,D 376 ;26018 124020 ;24021 124026 ;24027 ;24028 ;24029 224030 224031 :24032 ;24033 CADD, 0080,0036,4830,18€E7,0086,2 OADF, 0C81,7014,0B41,6847,08AD,A 385« “LONGWORD is unequal to FILL, h[ROJ D_D-CONX(4) ,WX.NE.0? “LONGWORD is equal to FILL, dec. length, gecg up PC and ,are we finished? ‘Yes, exit routine ------------------------------- RCR1D _MLPCI,RETURN [3] o oy b ey oy S0 B BV S B0 e B B B S5 L e ‘B _RLROJ=CONX (4) ,WB<31=30>7 KRN R RN AR A KRR KRR AR =01 =11 is GPRQ > 3, kAR ‘No, is there >= 1 LONGWORD left? A RN AR RN R Wb ok bk k% for more LONGWORDS. is GPRO < 4, 1-3 BYTEs are remaining to be compared. *fliktitt!t*tfi**t*tktkkktfl**fi*wfit*t**tt***t***t****t*tt**t***t*t**i***t —--—---_—----------—--_----__- NEXT/CS C5.51F.L,INT,IP,TS? ;24041 NEXT/CS.C5.81F.BC ;24042 - v kAT Rk kAR logp_back ;24036 224037 ;24038 ;24039 :24040 find the first unequal ;JAnything pending before we loop thru? L R ettt WB_ZEXT(XB)-RLTEMP5] P( _PC+1, ccOP1 SIGND? Compare naxt BYTE with FILL 124043 224044 =0 : 26045 €S.(5.51 F L.INT: ;26046 0862, 0081,7000,0421,6847,08B5,E 345% 0B63, 0480,0036,4AF0,0047,04F7,0 ;24047 wB XB-RLTEMPS] PC_PC+4,CCOPT, ‘No, or timer service, compare next ;24049 224050 ;24051 124052 NEXT/IE.SERV,.IP.TS2 BUSH, [NTPEND OR TIMER?, Yes, RETURN=1 it timer, pack up it ;24048 WXTEQ.07 ,NEXT/CS.T5.81F.L *LONGWORD with the FILL char. sinterrupt W i 9} 224034 ;24035 PC MCPCI-ZLITOL4], NEXT/CS.C5.81F.B ~evew. wa ;24013 ; : MICROZ CMT098.MCX 1M(01T) Character String CHAR.MIC 28=NOV-83 326053 1246054 .T0C ;24055 124056 124057 16:30:35 : F 14 Source 2 = FILL : Character String " Page CLOKX Rev 13.00, Clock rate = 160ns 586: Source 2 - FILL" t*t*tt***fi*tkfi*tkt*itt**fit*fi***i*************fi**i*t*i**t!ittt*t*fitt*tt ; Here for Source 2 ~ FILL compare, ********t*******t**tk**tkk****w****k*n**i***t****t*ttt*fit*****fi**t**** ;24058 :24059 €S.C5.52F.1: . U 0B99, 0908,0030,06F0,2047,08AE,1 377+ 126060 ;26061 WB_D-2L1TO[4],WB<31=3057, ;24064 't***kt*ti****tttt**i*i**tfi*tittt*t*fiQ*t'\*1!**1!**t*i*fi***t*t********* 126066 ;24067 ; =10 is after comparing a BYTE, finding it equal to the FILL, and ;24062 :24063 ;24065 ;24068 124069 ;26070 =00 :24071 =01 124072 U QAE1, 0081,7003,0A21,6847,0886,4 345+« N U QAEZ2, 0C85,A592,4034,0047,0089,A U 0AE3, 0C87,7017,0841,6847,08AE,6 385+ U 0AE6, 0C85,AE51,0034,0047,0089,A ;24073 ;24074 ;24075 ; =01 ;=11 ;26077 ‘Is there >= 1 LONGWORD left in string? is >= 1 LONGWORD in string, compare LONGWORDS. is < 1 LONGWORD left, compare BYTEs, reaching EOS. wtt*****fi**t**t***i****ht**fl**it*************fi*t****t*******tt*fiit***t UB R[TEMPSJ XB PC_PC+4, CCOP1 WXTEQ.07? ,NEXT/CS.TS. SZF 124076 ¢s.C5. S?F B1: - A - — - Compare with FILL char. ———— R[R3J _MOPCI,NEXT/CS.C5,.S2F.RO_D ;‘Finished READing BYTEs, exit loop ;24078 :24079 124080 €S.C5. S2F B ;24081 wB RLTEMP5]~ZEXT(XB) PC_PC+1, iCompare first/next BYTE with FILL :24082 CcOP1 SIGND? ;24083 :24084 ;26085 =10 126086 €S.C5,SZF1BC 126087 ;24088 1264089 224090 ;240N U DAE?, 0C84,0E71,2A764,0047,08AE,2 372% CLEAR FLAGI 124092 ;24093 226094 RIR3]_MLPCI-1 NEXT/TS.C5.52F .RO_O ‘BYTEs are different, load PC-1 and sexit loop A Ri em———— : R{RQ]_D_D=-1,WX.NE.Q?, NEXT/TSTC5.82F.B1 JBYTEs are equal, are we done? 124095 ;24096 (S.C5.52F.RO_0: 124098 é[ROJ_O,NEXT/CS.CMP.CLRFPD EGPRO_O, exit loop & tinish inst, I U 0B9A, 0884,05B7,0034,0047,00A(,8 ;24097 : CMT098.MCX CHAR, MiC 16:30:35 28-NOV-83 1M(01)) Character String MICRO2 G 14 Page CLOKX Rev 13.00.LClock rate = 160ns Source 2 = FIL ;24099 =0 U 0B69, 0480,0036,4AF0,0047,04F7,0 OV NS At — NN = OO O D e e e e e d ek 2 O OO O OO OO O *LONGWORD is unequal to FILL, find the first unequal NERT/(S.C5.52F.B :g$$é up PC and RCROI_D_D=CONX(4) ,WX.NE.0? *LONGWORD equal to FILL, are we WB_RCROJ-CONX (4),WB<31-30>? ‘No, is there >= 1 LONGWORD left? sfinished? i 2 b e e PC_MLPCI-ZLITOL4D, O N “emeosan.n 2322202222232 22312233 3322233232233 228223223203 233 2232228222222 RRRiddd] =01 is GPRO > 3, continue comparing LONGWORDs. =11 is GPRO < 4, we have 1, 2, or 3 BYTEs left to compare. BYTE compare loop. Enter i IS 1223232222222 82231228803%832322323002 2322238222023 2222 22282222222 22 R] - NN = O OO NN S b ) b D e e} d b d h e} e s o e ek b A PURU RO FORUTUTONURUIN) = = b e O D00 ONN D AN = OO0 U 0B68, 0081,7003,0A21,6847,0886,4 345+ d ek d b mh e ek o o U QAEB, 0C81,7017,0B41,6847,08AE,6 385+ e e ®e Mo SeBa Bu U OAE9, 0080,0036,4830,18E7,0086,8 e teNa®otona Sa U 0B67, 0480,073C,06E4,0047,08AE,9 376% 2 LN AW AN N A A U 0866, 0CB5,A592,4034,C047,0089,A — U 0B65, 0084,0730,2A64,0047,0886,6 377« e Sa®eSetena e teBo Ba e te et e taNo Ny Voo Ne Ve U 0864, 0181,AC10,0030,2487,00AE,3 URUALAUL NNV N AN NNINL N NN A A NN NINJINI N NV PO NN AL NN NN PVNINV NS NN NS O N N O P N O S O N N S S O S S S 2 L AR S S P o P o bt el el D 2l Sl el ol &~ P ;24100 €S.C5.5¢2F,L: - L - 52 0 ittt TS " - - tstutmstn bttt ; WB_RLTEMPS]=ZEXT(XB) PC_PC+1, C(COP1 SIGND? ;Compare next BYTE with FILL NEXT/CS.C5.S2F .BC =0 (S.C5.82F,.L.INT: g e L L L T WB_RLTEMP5]-XB PC_PC+4,CCOPT, WXTEQ. 07, NEXT/CS.T5.52F L ENo, or timer service, -ompare next :LONGWORD with the FILI ;lmmsemmem e um— e ———- ; PUSH,INTPEND OR TIMER?, :Yes, RETURN=1 NEXT/IE.SERV.IP.TS2 Jinterrupt if time char. pack up it 587 H CHAR,MIC MICRO2 1M(01) Character String 28-NOV=-83 16:30:35 H 14 : SCANC and SPANC : SCANC and SPANC"' Character String :52}25 .Toc " 224143 124144 JRARKI AT RN AR R A N Ak AR RN SPANC and SCANC ; ;24145 H ;24149 124150 124151 ;24152 ;24153 126154 ;24155 H H H : H ; : ;24146 ;26147 ;24148 ;24156 H H ; INPUT ; QUTPUT 126157 ;24158 ; H ;26160 ; :24159 224161 ;26162 124163 ;24164 124165 :24166 124167 ;24168 ;24169 124170 ; H ; ; ; RESOURCES H H :260179 FPDOFFSET RO : ; 124176 ;24178 R1 PC R3 TEMPS R2 FPD H H ; H H 124177 RO D 0 H 22017 124172 126173 ;24174 ;24175 Page CLOKX Rev 13.00, Clock rate = 160ns 1 (MT098 ,MCX H AR ADDRESS " TABLE ADDRESS MASK ORIGINAL PC SET 5 # BYTES LEFT IN STR INCL NONZERO .AND. BYTE .AND. OR ONE BYTE BEYOND R3 ¢C ADDRESS OF TABLE NZVC_0100 IF RO=0 RO LENGTH R1 R2 FLAGI FLAG3 hw LENGTH " N R FLAGO KRR R AR TR XA ARG kAR A THE STRING RO VA PC R R KA ADD OF BYTE OF NONZERO D TEMPS FPDOFFSET ; A RN R1 R3 : ; - ; NZVC_0000 ELSE ADDRESS ORIGINAL PC TABLE ADDRESS LENGTH CHARACTER (FOR CMP'S = 5) ADDRESS 0 0 0 KRR AR AR AR RN RN R R RAN A RN R AR R AR AR AR T AR AR RN R RN 588 : CM1098.MCX CHAR . MIC MICRO2 1M(01) Character String 2B8-NOV~83 ;24180 ;24181 124182 ;24183 ;24184 124185 124186 =0 16:30:35 124189 U OB6A, 0484,0E7(,2024,1047,0089,8 124193 (S.SCSP: ;24194 U 0B6B, 0451,7015,02C4,E4A7,00AE,D 124195 ;gz}gg Page CLOKX Rev 13.00, Clock rate = 160ns : SCANC and SPANC 589 ; ;tttuntnttwtttutuntwttttwttnfl!ttttttttt*ttttt***ttt*tttnlk*ttlfit‘wttttt ; Enter at CS.SCSP from instruction initialization. Each loop ) ; iteration splits to either ($,SCSP.RO.INC: (finished) or nothing is =00 NT?, : (S.SCSP, From CS.SCSP we split on MM,ALLOW,I ; pending, =10 is something pending, RETURN -1 if timer else pack up. RRARA AR AN IR AR :24187 (S.SCSP.RO.INC: ;24188 e ;24190 :52}3; 114 AR AR R AR RN AR AR KRR AR, S matainitedadele bl ol : RERO] D _RB+1,CCOP2, SIZELLORG], NEXT/CS,PC.GETS.PC~1,.SCAN i AR JGPRO_D_GPRO+1, set (C Dt Ot Sttt ; VA_ZEXT(XB)+R[R3] PC _P(+1, SET FLAG2,MM.ALLOW. INT? ;Load table address + offset JSET FLAG FOR POSSIBLE PACKING 124198 =00 ;26199 =01 :24200 U OAED, 0810,0036,6640,0050,00AF,2 124201 :Szggg 124204 J OAFE, 0810,0036,4640,0050,00AF,2 124205 ;stgg ;24208 J QAEF, 0480,0036,4AF0,0047,04F7,0 : 24209 ;S:S%? ) Rttt tataiatiatntaiaiedatetatnt ol ; READ,SI1ZE[BYTE],CLEAR FLAG?, 1R<2-0>7 ,NEXT/(CS.SCSP, SPL JREAD table BYTE R ettt e etIl Ll L ; READ,SIZECBYTE]),CLEAR FLAG?, 1R<2-0>? ,NEXT/CS.SCSP.SPL ;1] mmmmmmme oo PUSH, INTPEND OR TIMER?, JREAD table BYTE e m———; NEXT/I1E.SERV.IP.TS2 124212 =410 ;24213 (S,SCSP,SPL: U 0AF¢, 0084,UE7D,2A14,1047,08B6,( 378% 124215 ;525}9 :24218 J OAF3, 0884,0E7D,2A14,1047,0887,0 378« i 4] (mmmmmmm e mmm e m e ———m e ; RCRO1_D_RB-1,(COP2,S1ZECWORD], WX.EQT07Y,NEXT/CS.MDR.MASK.SCAN L P bttt : ;24219 RCRO]_D_RB=1,CCOP2,S1ZECWORD], ;24221 NEXT/CS.MDR.MASK,SPAN ;24220 ;Set (C, dec length, are we finished? wX.EQ707, ;GPRO_D_GPRO-1, set CC, ;is tRis last BYTE? | ;24214 ; M T098.MCX CHAR,MIC MICROZ2 1M(01) Character String 28=NOV=83 16:30:35 J 14 CLOKX Rev 13,00, Clock rate = : SCANC and SPANC 160ns Page 590| ;24222 =0 ;gzggz {S.MDR,MA8KLSCAN: U 0B6C, 0C81,2016,0A01,4047,00B6,A WB_ZEXT(MCMDRI) .AND.RCTEMPS], SIZELBYTE]D, WX.EQ,07?, 124225 ;24226 124227 ;gzggg NEXT/CS.SCSP.RO. INC :26230 u 0B6D, 0481,2016,0A01,4047,0086,E P AND BYTE WITH THE MASK YZEXT BY A BYTE 115 THE RESULT OF THE AND =U? e it ;24231 WB_ZEXT(MCMDR]) LAND.RLTEMPS], :AND BYTE WITH MASK ;gzsgz WX.EQ.0? 1207 124232 SIZELBYTED, ‘ZEXT BY A BYTE 124235 =0 +24236 CS.RO.D.GETS.RB+1.SC.SP: $24237 Pt e L e “—s; 124238 RCROJ_D_RB+1, 124240 SIZELLONGY, 124239 U 0B6E., 0484,0E7C,2024,1047,0089,B ;%2325 :INCREMENT RO CCOP2; YSET CC NEXT/(S.PC.GETS.PC~1,SCAN 1PC_PC=1=GOTO COMMON FLOW 150 CCOP2 DOESN'T GET A VALIDITY CHECK 124243 (S.R1. GETS PC.SCAN: 126264 U 0B&F, 0885,4592,4034,4047,00A0,9 ;24245 ;32529 0 (leemeeceesessscccmmesasessemeae-] NEXT/TS.SCSP.EXIT 124248 €S,PC.GETS.PC=1,SCAN: : 24249 U 0B98B, 0D81,AC10,0030,0C87,0086,F 124250 ;52525 {GPR1_PC, finish instruction R[R1J M[PC], P D PC_MLPCI-ZLITOL1], e D L e E LR E S NERTZCS.R1.GETS.PC.SCAN JPC_PC-1 : 124953 <0 :stgg CS.MDR.MASK. SPAN: 124256 UB_ZEXT(MIMDR1) .AND.RLTEMPS], :MDR.AND.MASK ;26258 WX.NE.O?, JNOT = 07 U 0870, 0881.,2016,0441,4047,0086,A ;52523 120261 0081,2016,0A41,4047,0086,F NEXT/CS §CSPLRO. INC 1ZEXT BY A BYTE jlemememsmcscvmoscceesecesee—a—.; 124262 uB ZEXT(MCMDR]) ,AND.RITEMP5], :MDR,AND.MASK 124264 WX, NE.O?, iNOT = ;26263 v 0871, SIZE[BVTEJ 124265 SITECBYTE], NEXT/CS.RO,D.GETS.RB+1.5C.SP ‘ZEXT BY A BYTE : 07 Il ;24257 Character String 18620:35 : ;24%68 126269 A ; LOCC 1246271 : ;24270 124272 ;24273 124274 ;24275 1246276 124277 ;24278 ; ;24282 ; 1264283 ;24284 ;24285 ;26286 124289 126290 M ; ;24291 ;24292 ;24293 ;246294 ;26295 24296 RESOURCES H A AR LA ; R1 " ORIGINAL PC ADDRESS " RO #0OF BYTE LEFT IN STR c : ; RO LENGTH R1 ADDRESS TEMPS CHARACTER R FLAG3 R R R R { ! : ORIGINAL PC LENGTH ; ! (FOR LOCC=SKPC'S = 6) ; 0 R ! NZVC_0000 ELSE FLAG] R 2 i THE STR_NG NZVC_0100 IF RO=0 : R i OR ONE BYTE BEYOND ADDRESS e R ! R1 FLAGO R 22 R R ! : i ! ) ! P( 222 ; ! INCL LOCATED BYTE ADD OF BYTE LOCATED FPDOFFSET ; R i ; i 6 : ; L AA AL AR LENGTH Q D ; - 124288 OUTPUI : J ; : CHARACTER TEMP5 FPDOFFSET : ; R R PC : ; ;24287 AR AR R D Q H i :Locc' RO : H ) ; R : ; H 124279 $24280 ;24281 e R INPUT : Page 591! CLOKX Rev 13.00, Clock rate = 160ns Character String " ) 1 K 14 :52529 .T0C ~ C 0 (HAR, TM~ ~ny CMTOQB.REX ~n : 28~NOV=~83 IM(01) - ; MICRO2 ! 0 R R R R R R R R 0 R AR RN ; RS0 RRRRRRRAAS ; (MT098.MCX MICRO2 1M(01) Character String CHARMIC 28-NOV-83 L 14 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns s LOCC Page ;2[,298 't.ttit**!fififittikki*tttt*ittttiktttt*t**tttk*t**t*tfl!tfifi*ttflttflfltflitiit ;24300 124301 : match characters, =1 is length =0, exit instruction. ; When a match is found, or EO5 hit, BUT on JR<2-0> to CS.LOC.MAT. 124299 126302 =0 is length >0, begin loop to ; Enter at (S.LOC on a WX.EQ.0? split. 'tt*tttttttt*ttt*ttt**t**t**it**ttt*k****t*k*****************fiiti«'tttt 224303 =+00 ;24304 =+01 ;24305 (S,LO0C, MAT 224306 U QAFS, 00B6.,ASBE,7A34,0047,08B0,0 322+ M[TEMP1OJ G_D_RLRO], ;Szggg NEXT/CS MAT.RO.Q.D 224308 124311 (S.LOC: . ,A 385+ J OAF6, 0081,7014,0841,6047,08AF U OAF7, 04E0,003A,403D,8487,0000,2 ;#0ls=cemeccocccmcmccwanas m———— :24307 ;26312 WX.£Q.0?,” i x10-mom e m s e a s 124313 wa ZEXT(XB)-RLTEMPS) PC_PC+1, ;26316 111 ------------- ——mm— mm—m————— : ;%2%}8 NEXT/GL NOP. IRD1 ;gi%}g ;24317 . SMATCHCL39], is length = 07 SIGND CMP? ,NEXT/(S.LOC.SPL Q.CLEAR FPD, . :ls thie BYTE = character? ) ;LOCCL3Al, finish instruction ;26320 =10 :26321 (S.LOC,SPL: 110mmmom 26322 U OAFA, 0484,0E7D,2A54,0847,0887,2 372« 124323 :Szggg 24326 J OAFB, 0C85,AE51,0674,4487 ,00AF,5 ;24327 ;Szggg o mmm—mm e RIROJ_D_RB=1,CCOP1,SIZECWORD] WX, NESOT ,NEXT/CS.LOC.SPL No match, set CC, is length = 0 R ettt itaaatde H PC_RLR1] M[PCI-1,1R<2~0>?, . MAT NERT/CS.EOC ;We have a match, which inst are we? ;24330 = :26331 (S.LOC, SPL 1: ;24332 ) U 0B7¢, 04E5,A592,4674,4047 ,00AF,5 u (B73, 0880,0036,4830,18£7,0087,4 ‘R[Rl] MCPC),IR<2-0>?,(LEAR FPD, Length 0, loop is finished, FPD_O 124336 ;Jmmmmm——— Amme—————————— ;Sz%%g 124337 ;24338 ;24339 $24340 =0 ;24341 U 0874, 0081,7014,0841,6047,08AF A 385« ] ) i1 0B?S, 0480,0036,4AF0,0047,04F7,0 jQe=meescscmmecsccmcnmmmcam—aaea, ;24333 ;24342 ;32222 126345 ;24346 ;24347 NEXT/TS.LOC.MAT BEREY ;incase we are LOCC, which inst, are we? Length>0, continue with loup after ,check1ng for timer service/ints. Rt - WB_ZEXT(XB)=RLTEMP5] PC_P(+1, SIOND CMP?,NEXT/CS.LOC.SPL :Nothing pending or timer service, ;compare next BYTE {lmmmmmmmm— e onen e —————— PUSH,INTPEND OR TIMER?, NEXT/IE.SERV,IP,TS2 :Something pending, RETURN =1 or pack sup 592. ; : MI(ROZ2 CMT098.MCX 1M(O1) Character String CHAR,.MIC 28-NOV~83 : SKPC :'21,350 ‘*ttt*fi**i'tifitifiifitktfittfifi*tktfi*tfi*&l*nkttflitclt't'tt'tt*lt*!i**tt***** ;24352 ;gz%gg 124356 Character String ; SKPC uses the same hardware resources and firmware routines as LOC( ; : except H SUBROUTINES €S.C5.S1F.LOP For source compare : OUTPUT GPRO #OF BYTE LEFT IN STR INCL UNEQUAL BYTE 124359 ! Enter at €S.SK: on WX.EQ.0? BUT. ;26362 =00 126363 (S,SK: ;26364 ;24365 126366 :Sfi%gg ; compare routine and RETURN +3, ;24371 :52%;; 124374 =11 26375 224376 124377 =00 is length >0, PUSH to CMP(5 =01 is length =0, finish inst. now. .tntt**wtt*t**u«u*ut«*a*u««tq*tq«t«*t~qaq*wttwtwtttttfit*tttwttw«tw*ttt* e o s anenane : ;00=m=mmmmmecmee WB_D-2L170[4],uBx31-30>7, CLEAR FLAG?1,PUSH, NEXT/CS.C5.81F.LOP 124369 €S, SK,EXIT: 126370 . for: ; ;26361 o : SKPC" :§2§g§ ;24360 0 QAFF, (880,08BE,6014,0847,00AF,D Page (LOKX Rev 13,00, Clock rate = 160ns ' 124353 U QAFD, 04E£0,0034,403D,8487,0000,2 M 14 ;gzgzg .T0C 124351 U DAFC, 0908,0030,06F0,2047,0CAD,5 377+ 16:30:35 10lem er +1s DREG>=4 or <47 —— e r e, PC_0,CLEAR FPD, tPC_Q, FPD_0, exit NERT/GL.NOP, IRD1 P I B e FINISHED RITH LOCC LT L L PR e e WB_R[KOY. CCOP1,S1ZELWORD], NEXT/CS.5K. EXJT inst. ‘Subroutine returns here, set CC, ;exit inst. [ ; i is e {MT098.MCX CHAR MIC B MICROZ2 LR IM(O1) Character String Fem e e 28-NOV~83 amee e e e 16:30:35 1 MAT(CHC e s N 14 Page CLOKX Rev 13.00, Clock rate = 160ns : MATCHC'' Character String :SZ%;g .T0C " f 224330 :ttwttttit'tttt*ttt******t*tt**t*t*t****t**tttttttttttwuntttttttttt*t*t | ;24382 : ' 224384 ; % ‘ ' ) ! i , ! i | ;24381 ;26383 ;24385 ;24386 ;24387 226388 ;24389 ;26390 ;gz%g} ; : Q SOURCE LENGTH ' ' VA ; H : P R1 FLAG3 QUTPUT . ; # BYTES LEFT IN SRC STR ADD OF NEXT BYTE BEYOND MAT(H OR SRC STR 1246406 R? ;24406 . FPDOFFSET 224409 B TEMP1 N Q 126610 24611 1264412 ;264413 ;20414 ;264415 RESOURCES : NZVC_0100 IF RO=0 NZVvC_0000 ELSE R1 : N VA PC : TEMPG D MTMP10 FLAGO FLAG3 N OR ONE BYTE BEYOND RO R3 K : s SOURCE ADDRESS " ' SET (MATCHC FLAG) RZ R3 : : ‘ i #OF UNMAT BYTES 0BJ STR ADD NEXT BYTE IN 08J STR cC ; o RO R1 ; ; ;24607 224408 * RO D ; ;24601 124402 ;26405 ' ; ; ; : H ;24403 (8 BITS)'(8)'(16 BITS) OBJECT ADDRESS ;24396 124397 ;24398 ;26400 DELTA PC'0'OBJECT LENGTH R2 R3 ; . ;24399 INPUT ; ;24393 1246394 24395 MATCHC 7 CODE SET FOR MATCHC 124416 ; :2('(‘18 '-tttttttttttttttfittttttttttttttittttittttttttttt'\ttfi!‘*ttl't"t"t!"' 1244617 N SUBRNUTINES (S.GENL.RESPC 594. TMTO98 , Mry CHAR MIC MICROZ 1M(DY) Character String 28=NDV=83 16:30:35 + MAT(HC B 15 CLOKX Rev 13.00, Clock rate = 160ns Page $ 264619 0BAY: 124420 CS,MAT,SET.FPDOFF,~1; i UBAY, 0586,00%7,0030,3847,0089,F 1441 2442 :522%4 ;26455 08A3: . CBA3Z, 0681,A001,0034,06487,003E,¢C ;264626 126627 ;20428 ;244629 ;246630 ;24431 03EC: CUsEC, U485,B592,4034,4047,003E,D ;24432 ;szzgz ;24635 O3ED: U4FD, UBHU,USHE ,603D,8047,0087,8 124636 ;Stz%g 01enaneFORCE ADDRESSavtatnaddns; ; SRC LEN > OR = OBJ LEN MCFPDOFFSET] 2L 1T0L7], NEXT/CS, MAT, T P53, =1 J11wewndafORCE P _MIPCI+RIROD ; GO READ 15T (HAR ADDRESSttssssstass, ; SRC LEN < 08J LEN . G0 SET RO=-R3 TD PROPER VALUE . AND EX]T INSTRUCTION seenannedfORCE ADDRESStawvesnsnn, sxxneanen s fORIE ADDRESSwettrwnniw, RER1) MIVAL D RCZERD) ; RY GETS OBJ ADDRESS : CLEAR D REG ;24439 =0 :Szzz? (S, MAT, EXII ) WZR, CUES,ARDR,403%6,0047,04AA,5 WP, UREG IS0 ,40%4,0047,0089,¢ CHOC, G6R84,04582,4134, 8047 ,003F 9 226642 ;56652 s 2044 P A 26446 124647 YT ;2{.(,(.0 ;54429 ;244 PUSH R{R3) MIPC],CLEAR FPD, NEXT/CS.GER.RESP( JGPR3_PC, restore P({ & RETURN+1 L Ll N ettt R[ROJ JEXT(MITEMPIT]), GPRO_# bytes in the uvbject string S1ZE(WORD] jeevescsanan LT T LD RCR21_D, 1RDY L L L L L ;GPR2_DREG, *e[Rp1er ;24452 224453 JE6456 (S MAT, TMPS: ;Szzgg ;24459 =000 ] ] UA9Q, 0986,0077,00%0,2047,0448,7 224660 24441 24462 .52222 226465 ] DAGY, Q68U,0030,640F0,0067,0617,0 ) [Semeeemmcecssscmsecenmmm—a—————— : RCTEMPS) 2EXT(M[MDR]), JTEMPS_the BYTE, anything penting? SIZELRYTEY, [P, TS? s s cn s m ey ;000ccmmmecnnnccnc REl'a PYSH, MUFPDOFFSET] 2L 1T28L4]), JFPDOFFSET 40000000 NEXT/ZCS. FIX RATCHC, IND AR L L R 126466 PISH, ;26468 NEXT/ZIE.SERV,IF,15¢ 24667 INTPEND OR TIMER?, iR2_¢31=305201(FOR LOCC) e L L Ll LN JINTERRUPT JBUT : INTQ IE.SERV ROUTINE i SRYDY, COHY,299F,4BUY, S8F7,0049,0 124455 124456 595 [(MTOOB MOX CHAR ML MICRO? 28-NOV=83 TM(01) Character String ;24469 =100 124470 124471 126472 UAYL, 0186,1037,0030,3047,004F,6 0H9F, 0480,0036,4000,0050,0089.0 : ¢ 15 MATTHC CLOKX Rev 13.00, Clock rate = 160ns 100sscnnsnsasessanas R YFPDOFFSET GETS AN 6 ALEPDOFFSETY2LITOL6D, NEXT/CS.LOC :FLOCC (RET AT CS.MAT.10.D.Q) --------------------------------- (TEMPB_SFFFFFFF(FOR AND INTO R2) MCTEMP8I_OLIT24C13F] --------------- N e R T TR ¢ 0 JREAD A BYIE READ,S1ZELBYTE] NEXT/CS,MAT, THPS +MTMP5 GETS 1ST CHAR(READ (HAR) CS.MAT, SET FPDOFF: ------------------------------ H 68+ 0B7B, 0C85,B592,4034,4047,0087,8 D-0.SIGND C(MP?,SIZELLONG], SRC LENGTH < 0By LENGTH ? R[R1J MUVAJ NEXT/CS.MAT, EXIT : 0BJECT LENGTH = O EXIT INSTR AS [F MATCH WAS FOUND D¢ 2D 4 — —t s P =3 MmOe. DKV T-- MEAEMCO Z —=O ;MTMP6 (CODE) GETS A1 JGET RO,Q,AND D JRET+1 ;SET FLAGO ;R3 GETS P( iRESTORE PC [y (S.MAT,R118ET§LA CL: R[R1] MLVAT, :JR1_GETS (LEARTFPD, FLAGO?, NEXT/CS. MAT R2,GETS,10~0 :(LEAR FIRST PART DONE : . 2t = e b m NS NNU = OO0 NN L OO OCOCOOOOOO0O ------------------ -yt 08(D: CS.MAT,R0.Q.D.1: DDRESSweevwtrtann, 'tttfittthREf RO,Q,D GET TEMP1(LENGTH) kCROT_Q_D_MLTEMPY) 0B76: -.t-atwttfloRCE TS LN ADDRES MALAAARLI WwB_M{TEMP101=RLTEMP]] EIRTN 0R*6, 0400,A000,06F0,4047,0849,9 338 © 000N 08D, 0484,1592,7034,0047,0087,6 N UBC2, 08ES,B592,66434,4047,0087,E 2l ok R I WAL 0r45,A592,4034,0047,04AA,5 P S S S A T AR R R LR L Al ol Rl LY JOALA AR UALA LAV UL N LA OEQ1, OBJECT LENGTH NOT EQUAL TO ZEROQ . ; =00 CS.MAT. 90 0BLO, 0986,6087,0030,0847,008C,D : NEXT/CS.MAT.SET.FADOFF.-1 AT 0B7A, 0C80,4028,0861,0047,0884,1 UB A T PR PRI ST ¥ 1) U UBYE, 0986,8E87,0039,F847,0089,F FLRLNING PLRUNL NUNBRLNU NI NUNINL PLNL PLNL NN N u 124473 124474 124475 124476 126477 124478 124479 24480 16:30:35 CLEAR FLAGO,WB<31=30>7 PFLAGO_0, s MIEMP10 < length? Page 596 CMTQ98.MCX MICRO2 1M(01) Character String (HAR M]C 2 1264521 =000 ;26522 =001 124523 i 0A99, 0586,((77,0030,4047,04A8,2 0A9B, 0846,25BE,4034,4047,04AA,5 §] l 0A9C, 0C84,A001,0030,8047,0087,D . 0A9D, ODSE,CC37,0030,0047,00A3,9 124525 ;24526 ;26527 124528 =011 ;24529 ;24530 $ 24531 ;24532 : 24533 124534 124535 224536 ;24537 ;24528 124539 ;24540 124541 ;26542 ;00 ccnsaccunmmmannunnne~ —n——— PUSH, MEFPDOFFSET] ZLIT28L8], SRET+4 SFPDOFFSET_80000000 NEXT/CS.FIX.RATCHC, IND *R2<31=30>210 101 o SR ; PUSH, MLTEMP2) RLR1D, YRET+1 iMTMP2 GETS R1 ‘ i NEXT/CS.GEN.RESPC YRESTORE PC ; SET FLAGD, ;100mmmm e e JSET FLAGO j ; : TEMP2_R1+MTMP10 NEXT/CS.RAT.R3,GETS, THP2 ;10]memmeemmam ; e m e m e ce m e a soH RITEMP2]1 MLTEMP101+RB, ; e mmmww——— MLFPDOFFSETI ZL1TOLQD, ;Load FPDOFESET, SET FLAG3, NEX /7CS.C3 ;enter CMPC3 code set MATCHC FLAG, 124543 . i 0B7C, 0480,0038,1034,0047,008A,¢2 CB7D, 0484,2592,6034,0047,0080,2 o ' 4 O0B7E, U484,A008,0134,8047,003F,9 126544 CS.MAT, 0 GETS 0-RO: 126545 Q-RCROD, ;24546 124547 126548 ;24549 (S.MAT, RS GETS.TMPZ: ;Q_Q=R0 NExr/cs MAT.R1.GETS,R1-0 124550 :26551 ;24552 ---------—---------------fihififi' R[R3J MLTEMP2], NEXT/TS.MAT.R1,GETS,VA,CL ;24553 ;24554 =0 1264555 (S, MAT, R2 GETS.10-Q: o o ;24556 R[R?J _MLTEMPI0]=Q, 124557 224558 IRD1 g R O ; H ¢ C(TMP2) A CLR FPD CODE <0 J 124524 ATCHC Page 597 = 160ns D15 CLOKX Rev 13.00, Clock rate B-NOV-BS 16 30: 35 ‘R2 GETS MTMP10~Q *FINISHED : ; (MT098 ,MCX . MIC CHAR MICRO2 1M 1) Character »iring _ U 0B7F, 0CH4,1592,4024,0847,0081,8 28-NOV~83 ;24559 124560 4361 16:30:35 E t MATCHC . 15 Page 598 CLOKX Rev 13,00, Clock rate = 160ns - ; RCROJ_MCTEMP1, SIZECLONG], CCOPITNEXT/CS.MTC.R2_0,IRD : 1GPRO_TEMP1, set ((, and clear GPR? & :IRD1TMin MOVTC code Eszggz CS.MAT.R?.GETS.R1-Q: jU UBA2, 0884,0038,0034,4047,0087,7 Egzggg 104567 0B77: U 0877, 0C84,0E7(,0034,4487,00BA,4 U 0BA4, 0C84,0038,0034,C4A7,00BA,5 124568 sewnextnwFORCE R1 GETS R1-0 ADDRESStxwaavnnus, 24589 PC_RIR1I_RBH1 10457 24572 e ELELLELLL UL et RIR31_VA_RB~0 :R3,VA GET R3-Q 1264574 U 0BA5, 0084,AE51,0034,0047,008A,1 RIR1_RB~0 104575 ;24576 R1,PC GETS R1+1 j-smeescssssssuescmceccmeeameens ; RCROJ _MLTEMP101-1, NEXT/TS MAT.SET.FPDOFF, =1 e ot 1RO GETS MTMP10=1 :START AGAIN e e v e —— . 4 F 15 CLOKX Rev 13.00, Clock rate = 160ns N O PR RO LENGTH R? DELTA PC'0(BBITS'24BITS) sELTA PC FOUND IN RZ2 TEMPO<1-0> number of extra BYTEs to move SOURCE ADDRESS R1 DESTINATION ADDRESS TR SR i PR TR TR TR P gg E?tevant only it MTEMP9>0, P L CODE TEMP?7 MTEMPO S This is after (GPRO *+ &), TEMPS TEMPG S SSS SRR RRRRRARARRARRRRRRAEED s 1222222282228 02222282338 23222223 INPUT TABLE ADDRESS =0 if we were in a standard move. S >0 it we were MOV(<C5> and were T moving LONGWORDS to an aligned dest, GPRO is adjusted +4 *TEMPO<1 0> due to decrementing betore a WRITE and possible extra BYTEs. DIFF IN SRC LEN,DES LEN MTMP10 pC RTMP13 FLAGS ouTPUT : ' CODES 0.1 2.6 3 ‘RO PC /AVA(16)/\R3(16) s LRl R1 - <== - - Y R2 /\PC(8)S(8IMIC(1B) <-- - - E R3 VA (ALREADY) * R4 R0(16)°(8)C(o‘MB‘F(8) - - < T P RS TABLEADDRESS Cmm - <-- - o o i AR AR DD e MB D RS R e D D WD R R MTEMP bit S D D D D AR e R 2 e A AR v s TTENeY L e S 1= FLAGS e e e 6 e L T O ? T := garbage Y S B S - RSN RRRRRRRRRRRRRRRARRRRRRRRRRRRA)) ! | 2N o VA (ALREADY) BCCIF 2)0R RI3IC(IFT6) DO = X bits in Length =.= delta SN . MY MTEMPY o 599 : MOV FPD Pack routine'’ Character String " H — Page + MOV FPD Pack routine U NS WU—=O00~N SO VONG NS WR SO0 [elelVs lalNal ol aNallo oD allalecle Lo Tod b IS LY b bl eL L e b Tk b 8 LN e Ly ek al O R S I o o e el ok UL NN LS LN LN S LN N LN A O P JJOC 16:30:35 [ 28=NOV-83 M(01) MICROZ Character String e M ®aSe Mo ®e®atatometeDs®e®aSone e to®ototatotateta H (MT098,MCX CHAR MIC NSNS H xS (MTO98,MCX U CHAR MIC MICRO? 1M(012 28-=NOV=83 Character String 0BA6, 0484,7592,4035,4047,00BA,7 0BA7, 0484,5002,403%4,8047,008A,8 0BA8, 0480,9592,4A70,0047,0088,0 16:30:35 : 615 CLOKX Rev 13,00, C lock rate = 160ns MOV FPD Pack routine ;24627 CS.MOV.PACK.BEGIN: ;24628 RLRS]_MLTEMP7] 126629 124630 124631 124632 124633 124634 ;24635 124636 “R5 GETS TABLEADDRESS=PACKING ACR2I_MLTEMPS.OR.RB EMask till into GPR2 (B_MLTEMPO], WK.NE.0? ‘Are we MOV(C<35> moving aligned ;LONGWORDs? 124637 =0 0B80, 0082,A592,4014,8047,008A,8 0B81, 0(84,073D,0024,0047,008A,9 0BA9, 0186,0012,0030,1847,00BA,A u 0BAA, 0484,0001,0034,0047,0088,0 ;24638 CS.PCK. MOV ;24639 R[R?J S1Z M[TEMP1OJ SIZECWORD], 124640 ;24641 1246642 226643 24644 ;24645 124646 ;240647 24648 1264649 $ 24650 124651 U u H iNo, GPR2_deltaPC'Fill'MTEMZIO NEXT/CS.PTK.MOV.1 ‘Yes, GPRO_inc, by a LONGWORD R[ROJ RB+CONX(4) ------------------------------ -- MCTEMPO] _MB.AND.ZLITO[3] S EMask out <1-0> {GPRO_RB+0, 1, 2, or 3, adjustment is ;complete NEXT/TS.PCK.MOV ;26652 124653 (S.PCK,.MOV.1: ;24654 WB_MLTEMP10],WB<31-30>? 126655 124656 ;24657 =01 ;26658 (S.Mov, PACK 1: 124659 M[TEMP?J FLAGS, ;24660 . . ? ey RCROJ_MLTEMPO]+RB, © 0BAB, 0880,A592,44F0,0047,0080,5 - oy o ot 0 A e NEXT/CS.MOV.PACK.2 ‘1s MTEMP10 negative? : TEMP?_GARBAGE 'FLAGS 0807, 0186,6(12,4034,0047,0080,5% ;24661 124662 124663 ;24664 :52225 0BAC, 0580,7€12,1031,F847,008A,D 5 (S.MOV.PA(K.2: 124667 ;2466 ;26669 :0_0"0"0'00FLAGS 0BAD, 0084,600A,4035,0047,008A,¢ :2467§ ‘RG_0'0'CODE 'MTMP10 BIT'0'FLAGS 0B0S, 0886,7036,4030,0387,008A,C OBAE, 0886,8287,0014,0047,00BA,F OBAF, 0084,8002,4035,0047,0081,0 6 $1lommmmmmnmem e mme e —————— MCTEMP6] MB.OR.ZLITOL80D, NEXT/CS,ROV.PACK 1 2246670 1264671 12467 ;24674 124675 ;24676 24677 124678 Page -------------------------------- RCR4]_MLTEMP8],OR.RB IMTMP10 IS NEG TOR IN 1 IN MTMP10 BIT {TEMP8_WORD'0 *R4_RO'CODE 'MTMP10 BIT'?'FLAGS 600- 0C86,85BF,4034,0047,0088,2 4 4 4 4 T o o N E A o P ,00FF, 2 0BBS, 0484 ,8292,4014,0047 N P T 0084,4008,0034,0047,0088,5 A (8B4, N 0885, 0885,A592,5034,0047,0088,4 P u P (B84, TR (880,058F,4033,4487,0088,5 U P 0BB3, 0980.,6010,0430,1047,08B8,4 384+ O Clock rate = 160ns Page ADDRESS*aawwaniw; MCTEMP6]_MB.AND. 2L 1T8LOFF] JMTMP6 JUST HAS CODE IN IT Lt Lo L L et atataietadabdt WBUS_MTMP6=-300 UE MLTEMP6I-ZLITBL3], :NOT EQUAL TO 300? L) WXTNE, 0? u NN TANN) - jewnnnanveFORCE B ------------------ Cummscmeu— *RO GETS PC BECAUSE CODE IS 300 R[ROJ M[P(], NEXT/TE. PACK. DONE I P L M[TEMPbJ MB.RR.B, 1GO TO CHARLIE P P PR T D L TL WB<1-0>2" 1t 4 o 0486,8000,0034,4047,0088,3 4 NNy - OO~ OIS N =S OO 0B08, 4 =S OO O NN NI 0485,A592,4034,0047 ,00FE ,2 N 0BLY, S uB83, 0086,6387,0240,0047,9880,9 337« 4 4 N i N 0882, 0685,A592,4034,0047,00FE, 2 T T T T T N e R P 4 O O 0 0 €0 Co 00 Co Co Lo Co o 0o 2 2 e O OO D OOOOO SO00 V0OV 4 WA 4 4 = OO 0O NN 4 N 4 AUPIN) b s >t b b 4 4 OO OO O oo~ oo NN N NS N N N TN SN NI TN SN SN N TN SN NI N SN N ~No-O 0BB1, 0980,6D90,0A70,1847,0888,2 378+ 24679 0810: LA L L TR T R P PY 0810, 0D86,6092,0037,F847,0088,1 H 15 16:30:35 CLOKX , Rev 13,00, MOV FPD Pack routine 28+-NOV-83 1M(01)) MICRO2 Character 5String LN LVTN LTSIV N e TN 1N TNt V]LELSTNLELN PLRLNLRUNINLNI NN RLALTLRSNL LN PV RSN NI NNLG LS LN (MT098.MCX CHAR M1 01 101 mmmmmmm s e RLROI MCPC], enm s m MTMPb CODE SHIFTED TO LEAST SIG BITS :BIT 17SET? - -~ RO GETS PC NEXT/TE.PACK.DONE 1GO TO CHARLIE SBIT 1 ¥ - ot % 8 0 20 0 5 o 4 0 o e g g e MCTEMP8]_MB-RLR1] S e St O v SEY CODE =2 OR 6 ‘DELTA R3 B M[tEMpr ZLIT0L2], ‘MIMP8-2 bCRLTENPIST 1 CODE=6 WXTEQ,0? YIS IT A 22 GIR3T G RIPCY T SCODE = 2 * . - - T - v - RERR0O]_MITEMPB],OR, (RB,RR,16), NEXT/TE.PACK.DONE *RO_/\VA'/\R3 :G0TMTO CHARLIE ¢ 601 oy ) Character String (] AN O N T [ NS LA Lp N LS Ly S 15 Page : MOV FPD Unpack routine'’ ; Refer to the pack routine banner a few pages back. ;ttll!tttttttttNAfittiitttiififlt*ttfi**fi*t*t*k********ti*!**i*fifltt**tt(tit RDT.RIL,IRDT,RIH .REGION/I £ =00 s OO (PN WY O T TV NP T AN — O 00 O PV routine ; The output of the unpack code is the input of the pack code. ¢ e W W O et O O O o MLTEMP?]_RLR5) ‘TEMP? GETS TABLEADDRESS , CHAR .R3H ,R1L , CHAR .R2H/(HAR.R3L CHAR ,CHAR ,R1H/ CHAR.R2L .REGION/ © o o 00 o S0 o MCFPDOFFSETI_O A 2% 2 AN = O O CLOKX Rev 13.00, Clock rate = 160ns : MOV FPD Unpack ; The input of the unpack code is the output of the pack code. T T A O WA A A MLTEMP9]_0 T S S e o L e S LI ------------------- v o MCTEMPSI_RCR2),RR, 16 N O N LS NN = OO O 115 16:30:35 "tt!’(fiifitfiifilQ':Qttttttt!!!ttll*tl!tttlttttflt!tntttfitwfi**t't***it*fi***** -0 g T T - €5 N B 2 2 O ‘Load FPDOFFSET T T -t izero GPRO decrement flag ey IMTMPS GETS R2 ROT BY 16 :BYTE SIZE CEXP FILLER MLTEMP10I_RLR2] "L TEMP10_GARBAGE ' TEMP10 MCTEMP2]_ZL110080] TTTTIRIND OUT IF MIMP10 IS NEGATED WB_MLTEMP2],AND.RLR4], WXTNE.0? NI e O :0"""""""‘T """""""""" ‘ ‘RETH PUSH, METEMPS] ZEXT(MB), YEXP FILLER BUT 1ST O'FILL SIZECBYTE], =00 b e oy v oy v NEXT/CS.EXP.FILLER OO OO0 O~ Wi o DI NO R Ak T S S S N o NN NNUNOC ANN RN P S o A ol 080D, LNLS WNNU = O 0486 ,A59F ,4010,0047,0080,¢ AR O 080(, S 0c80,2002,0A75,0047,0080,C A 0BBA, SR 0D8%,2037,0034,0047,0088,A R o PO 0BBY, NN N TN NI N YN I e e P T T T 0486 ,A5BF ,4034,8047,0088,9 R 0887, eam. 0886,559€,4000,0047,04A9,4 R 0836, .. 0086,52B7,0014,8047,0088,6 u. u 0BB3, oo, u 0886,9587,0030,0047,0088,8 SR osa?7, 0886,(587,0030,0047,0088,7 RS RUA RINL AR R TONLNLNUNONIND FORUAINLRBRINURLNUN 0Bg6, S S 0328, 0486, 75BE ,4035,4047,0088,6 w N NN N TN SN N N S N TV S TN N N N Y SN SN N NN TN NI N NN N Y NN N NN NN N N NI N SN SN SN N 1M(01) Character String L M CHAR 28«NOV=83 MICROZ AUNU R ALNIAI NI NICL NIALNL NI NI NURI NI NN N N N E aE 2k aE P B P o P PPl 2l 2P aE Ak 2k CMYOQS.MEE 118 BIT SET? ; 0 MCTEMPTO0)_ZEXT(MB), MTMP1O_0'MTMPI0(POSTTIVE) NEXT/CS.MOV.UNPACK . : S1ZELWORD]. ) BUSH, A METEMP2) -1, *WORD ERTENDED —— NEXT/CS2ONPLTMP10. 15, 1EG FRETH 'BIT IS SET tADJUST MTMP10 60¢. [ e : ; it e s MI(RO2 CMT098.MCX CHAR . MIC 1M(01) Character String 28-NOV-83 16:30:35 J 15 fLOKX Rev 13,00, Clock rate = 160ns : MOV FPD Unpack ~outine :52;;9 CS.MOV,UNPGCK 1: LU 0BOt, 0080,05BE,6035,0307,0088,8 352;;3 _ FLAGS_D_RCR4] ;FLAGS 2RE RESTORES D_R4 ) OBBB, 0186,6DB2,0030,7847,0088,C Esz;gg ML TEMP6] _0.AND, ZLITB[OFJ 'TEMPé GETS CODE RESTORED J 0OBBC, 0486,82B7,0015,0047,0088,0 :26784 ;gz;gg jmmmemsmemmmm e eemmem——— e ; MLTEMPB] _RLR4J.RR.16 JMTMP8 GETS GARBAGE 'RO 124787 08B0: U 0BBO, 0486,15BE,4034,0487,0088,E ) U OBBE, U484,859E,6014,0047,0088,F U 0BBF, 0D80,6090,0A30,1847,0888,8 384 ;24788 Pc _MLTEMP1]_RLRO] 124791 R T; RCRO) D_ZEXT(MLTEMPB)), S1ZELRORD] 124795 e=esesccccccacmcm—saa=N R—— 124796 +1S CODE = 3007 WXTEQ.0? : 24801 L e WB_MLTEMP6]-ZL118(2], ;5238§ ; L DL DL LD E S wB<31-30>7 NEXT/CS.MOV.UNPACK.3 : 24804 {1 omm o me :szggg 124808 JGPRO & DREG are restored ) _MITEMP6]-ZLIT8BL3], :Sfi;gg 124807 U OBCO, 0886,45BF,43B4,(4A7,0084,4 JPC(TMP1) MAY BE RESTORED ;26792 ;52532 224800 U OBBY, 0586,((%7,003%0,4847,008C,0 ADDPRESSwawanankaan, ;52;83 124799 =0 U 0888, 0980.6D70,06F0,1047,0881,1 377~ sunnxewnwFORCE oo MLFPDOFFSET]_ZLIT0(9.] ‘No, is code < 200 (codes 000 or 100)? s ‘Yes, reenter MOVC5S seperate flows 0000 =memmmmmmemmmee—oae ammm—————— ; ;24809 ;Szg}? VA_MITEMP4I RLR3], wB<1-0>,NE.D?, ;1s address LONGWORD aligned? NEXT/CS.MS, wR' 124812 =01 :szg%z CS.MOV. UNPACK 3: . J 0B11, 0485,A387,0010,0047,008(,1 224815 ;szglg 124818 U 0B13, 0086,45BEF,43B4,(4A7,00A5,0 ;24819 124820 124821 R[TEMP3] M[PC].RR.16, NEXT/CS.ROV.UNPACK. 4 MTMPb(CODE) > OR= 200 JTEMP3_ GARBAGE'/\VA ;1 lemmmmmmm e ————— VA _M[TEMP4] RLR3], wB<1~0>.NE.D?, NEXT/LS. M3, WR Page 603 Are we LONGWORD aligned? MICRO2 CMT098.MCX (haracter String CHAR.MIC o 1M(01) 28-NOV-83 16:30:35 K 15 CLOKX Rev 13.00, Clock rate = 160ns : MOV FPD Unpack routine o Page 604 ;24822 CS,MOV.UNPACK.&: :24823 0BC1, 0486,359E,4010,0047,008¢,2 08C2, 0C86,45BE,4034,C047,008C,3 0BC3, 0480,3001,1034,C4A7,008C,4 METEMP3] ZEXT(MB), 104877 :Szggg e ettt SA LT e; JTEMP4 GETS R3 MCTEMP4]_RLR3] ;gzggg :24830 ;gzg%; [N 124834 ‘522%2 124837 =00 0814, 0880,0036,44F0,0047,0081,8 ;24838 ;52328 124841 0B1S, 0080,4592,6030,0487,04BC,7 0B16, LUB6,403A,403D,8047,00A4,8 IMTMP3_0'/\VA 124824 :24833 0BC4, 0980,6D90,0A30,1047,0881,4 384+ e ———————— S : 26842 124843 124844 iSanit 124847 ;24848 SI1ZELWORD) PG :ZERO EXT BY A WORD PPoot ; VA_Q_MITEMP3]+R[R3] *VA GETS RESTORED e e L L LI EE R ; WB_MLTEMP61=21178(2], WX7EQ.0? ;15 CODE = 27 ; ittt tintudatuinteiadeidedeb bl - FLAG3? ,NEXT/(S.UNP. MOV ;Are we writing backwards? e e R— ;0] mmmmm PUSH, PC_D_MLTEMP4], NERT7CS.UNP.GET.R3 10 MCTEMP4]_Q,NEXT/CS.M3.WR.BACK 1264849 = TRET+1 :PC GETS FORMER R3 :GET R3 FROM DELTA R3 :TEMP4_GREG (copy of VA), reenter in ;writing backward code of MOVC3 ;24850 124851 =00 ;24852 CS.UNP.MOY: ] CH18, 0880,05BE,4034,04A7,008C,6 124853 124854 ;Szggg ;24857 , ) ) 0B19, 0684,4592,4033,4487,048(,7 0B1A, 0885,8592,4031,0047,008C,5 ;00=me e m e ———— VA _RIR31], NERT/CS.UNP.MOV, 1 : VA GETS UNMODIFIED R3 ; 10l mmmmm e m e —— : 124858 PUSH TRET+1 ;Szggg NERT/(S,UNP,BET.R3 ; 124859 124862 :Szggz } PC_RETEMP13)_MLTEMP4], *RTMP13,PC GET TMP4 10mmmmmmmm e oo ee ; RLTEMP4]_M[VA) JTEMP4_VA, reenter inst. 124865 ;52329 (S.UNP.MOV.MTC: , 0BCS, 0586,CC37,0030,4847,U0AB,t 124868 ;Szggg MCFPDOFFSETI_2L17009.), NEXT/(S.MTC.OR iPack up instead of RETURN+4 Eg:g;; (S.UNP.MOV.1: 0BC6, 0480,05BE,4034,4487,008(,5 124873 PC_RCR1I,NEXT/CS,UNP. MOV, MTC {PC_GPR1, reenter inst. l iH ; MICRO2 1M(01) {MT098 . M(X Character String CHAR . MIC 28~NOV~B3 16:30:35 L 15 CLOKX Rev 13,00, Clock rate = 160ns : MOV FPD Unpack routine :gzg;g CS.UNP.GET.R3: U 0BC7, 0484,159E,4010,C047,908¢,8 U UBC8, 0086,3001,0034,4047,008C,9 ) - J OBC9, 0CB4,3592,4084,C047,0000,1 = —— .- - 104876 RCTEMP3] ZEXT(MITEMP1D), $24879 P :gzg;g :gzggg :04882 124883 $24884 $17€ (WORD] T MCTEMP3)_MB+R[R1) YTMP3_0'TMP1(RO OR /\R3) *ZEROTEXTEND BY A WORD e SE T LR ; $TMP3_R1+/\R3 jmmsseesssmmvremmmmameenee “wmeee ; RCR3) MLTEMP3], RETURR [1] *R3 RESTORED TRET+1 : Page 605. : , | | ! H N CMT098.MCX (HAR MIC 1M(01) MICROZ Character String 28~NOV=83 L10C : 16:30:35 (MPC " M 1S (LOKX Rev 13.00, Clock rate = FPD Pack routine 160ns Page 6065 ; : (MPC FPD Pack routine'’ Character String '*t***tl‘ttttk*itit*tttttttttttiiifi*fi***fitlfitflt***t****i**t*t*t**t"**tfiitttttt LENGTH SOURCE ADDRESS RO R1 INPYT CMPC ; : DELTA PC'O(8BITS'24BITS) R2 ; DESTINATION ADDRESS R3 ; LENGTH VALUE FOR MATCHC ) Q PC : : : : FLAGS ; MTMP10 : : : : RESOURCES ; ouTPUT * CODES 0,1 RO PC FILL CODE DELTA PC SEE R2 LENGTH(DIFF IN LENS) TEMP2 4,5 2,3 D OR MTMP10 <-- MI0(16)ROCIE) VORI 1EMP5 TEMPS - <ee - R1 - P R2 /\PC(8)S(B)C(8IMBIF(6) <=- - P - Y R3 VA (ALREADY) R3 - PC - ; «/\PC(8)0(16)MB?F (6) © /\ MEANS DELTA * MB MEANS MTMP BIT © . (16) MEANS 16 BITS LONG S MEANS TEMPS(M8 MTMP8) 2 MEANS UNKNOWN QuANYITY F MEANS FLAGS « WHAT R2 CONTAINS IF MATCHC 1S OPCODE AND THIS MAY HAPPEN WHEN CODE =0 OR 1 KAN AR AR AN RN AR R NN RN R AN N AN A AN A AR h kR A A b S A A mama A AN b Ak et - e o e h bk h b d ik - 28-NOV=83 16:30:35 : (MPC N 15 (LOKX Rev 13.00, Clock rate = 160ns 24923 CS.CMP.PACK.BEGIN: 124924 ¢ ;24925 0BLA, 08B0,A592,46F0,0047,0081,D 124926 124927 =01 124928 1246929 126930 081D, 0186,2012,0031 .F847,0088,A 124931 124932 ;24933 ;24934 OB1F, 0D86,2C12,4034 .0047,008C,8 ;24935 124936 ;24937 124938 124939 vs(s, 0486,25% ,4000, 0047,0088,A " o s o WB_M[TEMP10],WB<31=30>? ;24945 ;24946 124947 ;24948 0086,2002,4031 L8047 ,04A9,A J 0838, 24549 0(82,2592.,4014 ,8047,008C," ;24950 ;24951 ;26952 ;24953 ; 24954 0812: ;24955 124956 0BCC, 0986,5012,0037,F847,0081,2 a2, 0484,5002,4034 8047 ,008C,F JB(E, 058U, 6D, VEFU LOU4T UBAA, T ;24957 377 ;24958 124959 607 ¢ t1s MTEMP10 negative? o1 M[TEMPZJ MB.AND.ZLiTOL3F], NEXY/CS.TMP.PACK.1 T B *TEMP2_0'FLAGS BIT FOR MTMF10 IS NOT SILT ; T MLTEMP2]_MB.OR.ZL1TO[80] ‘TEMP2_ GARBAGE (24)'1'?'FLAGS MCTEMP2] ZEXTMB), SNOW EXT BY A BYTE SIZECRYTE], NEXT/CS.CHP.PACK.1 124940 =0 124541 CS.CMP.PACK. 1: 124942 ;26943 ;24944 Page FPD Pack routine J1ERQ EXVEND BY A BYTE tR2_0'1'2°FLAGS pusn CRET+1 NEXT/CS.EXP,FILLER JEXPARD FILLER M{TEMP2) MB.OR.RLTEMP6], [ lmmmmmm et e e c e RIR2).S1Z_MLTEMP2], SIZETWORD] MUTEMPS]_MB.AND.ZLIT16[0FF2 sewanr oo FORCE JTMP2 O'CODE'BIT10'?'FLAGS ————— sR2_R2' TMP2(WORD) ; TTEMPS_O'FILL'0'0 ADDRESSwrwwwrwetun, RCRZI_M[TEMPS],OR.RB ;R2_R2'FILL'R2(WORD) WB_MLTERP6I-ZL1T8L4],WB<31-3052 :1s TEMP6 >=400 or <400 i CMT098.MCX (HAR MIC 1M(01) MICROZ String cter Chara ; i {MTIG8 MOy MICRO2 {HAR ML TM(01) tharacter String 28=NOv-83 16:30:35 B 16 (LOKX Rev 13,00, (lock rate = 160ns Page ¢ (MPC-FPD Pack routine ;24960 <000 24961 =001 OAAY, (GGLBS,A592,4034,0067,00FE,2 :26962 52822 (R3] M[PCJ NEXT/1E .PACK.DONE ;2&955 =011 124966 U OIARY, IBR2,AS9C,4011, 8047 C4RE,9 FUSH ;26969 ROTEMP6].S12 MITEMPIOL, 5126 (wORDY, ;Szg;? UARG, DUBK,H4RA,0600,0U67,00AA,b ; . JRETHY _ :SI2F WORD ,TEMP6_0‘MTMP?O(wORD) NEXT/CS.RY.GETS.PC 124979 . ‘TEMP6>:400, finish packing AL ARETEEEE LR IR LR neanman ;24967 104968 : ;001 =m=cmimnann ceesisessscsmsnun; ; 100=cmcammcennanan mesensnm———— 1264973 ML TEMPG] _MB.RR.16, ‘52352 TMPb MIMP1Q! O(wORD) FLAG3? IMATCRC? 14976 -U ] | |, cans, 0084,6000,4036,0047,00FF,2 i Lo UAAY, Q684G,0487,0406,8047,00H8,¢ ‘ LOOBRT, U8EE, LA, LU, M0, DURT S J26977 (S (MPPACK.2: 106578 ;Qe~mmecensencuccanaan R R[ROJ MITEMP6).0R.RA, ;24070 ;gagg? NEXT/YE.PACK.DONE s 2h Be L L e P ;2498% RCR2]_RB.RR.8, : 26986 ;24985 "4086 106987 ;26088 L4989 ;24990 ;34992 24993 2499« 16996 e Aue S utED ;24097 . 04998 ;24999 ‘-3‘,00\) CHPL, U686, UBT, 000G, BUG 7 00AA 8 25001 $ 45002 JR2 GETS ROTATED FLAGO? -Q 18 0 =TMPI1D (Qmmemmcnane S S M[T{Mpz) JMINPZ 0 FOR MATCHT NEXT/CS. FMP PACK.3 : : 1-----.---------o------u-——-n-—' M[!EMP?J R{TEMPY ] JWHAT WE WANT TO SAVE IS TMPY NEXT/CS,IMP PACK, 3 L4995 (S, (M, PACKE, SHEEL DRAS, B0 :GO"TO CHARLIE 126982 ;8“991 CHRD, CTRE,OSHE L ADED GUA S, DORE sRO_MTMP10'RO | mesmscsenceenmace. L L R{R2).SIZ_MLTEMP?], ; L L L R S126[WORDT [e-wesmSemssscecsmseNEERRERURERE. A(RZ]_RB.R..8, NEXTZTS, (MRLPACK, JR2_RZ‘'TEMPZ(WORD) J ;R2 GETS ROTATED BACK JRE_R2'AC16) RS - 608 (MYNGR Mry i MICRO? {HAR M1( TM(O1) tharacter String 2B=NOV-8% ¢ 16:30:35 (LOKX Rev 13.00, Ctock rate = 160ns Character String : CMPC FPD Unpack routine' ' AR AR AR R R 325005 SRR AR AR AN AR N AN AR RAN R R AR RN R R R AR R AR ;25098 ; Refer to the pack routine banner a few pages back, 225006 ;25007 ;25009 bPage (MPC FPD Unpack routine 125008 LT0C ' 16 AR AR : The input ot the unpack code is the output of the pack code. ; The output of the unpack code i< the input of the pack code. R S A L R AR AL AR A AR AR AL AR 125010 ;25011 ,REGION/IRD).RIL,IRDT.RIH i U330, 0086,658E,5034,8307,00uD,1 ;25012 =000 25013 (S.CMP,UNPACK: 123014 ;000=mmmmmmmsommm oo s i : 125015 MLTEMPG]_Q_FLAGS_RIR2) ;Sgg%g REGION/CHAR,R1L ,CHAR,RTH/CHAR,R2L, CHAR ,R2H/CHAR,R3L , (HAR.R3H 35285? (S, CMP,UNPACK . BE GIN: o OBD1, 0886,0587,00%0,0047,008D,¢ U 08b2, 0586,6D92,0030,7847,0082,0 Egggs% 125024 ;Sggsg 125007 =00 :25028 :25029 ) o BB20, 0086,52R7,0014,8467,04BF,8 225030 ;sgg%} 125033 . ) ) v OHPY, C886,559F,4000,0047,06440,4 o L ) o 0B2Z, UIBL,082,00F4,0047,0088,F e e e s sy e — - — MIFPDOFFSETI_O e v ‘Load FPDOFFSET e B LLL; MLTEMP6]_MB.AND,ZLIT8LOF] JMTMPG GETS CODE j00=-wmmmmmmeccocccnnacana el LM PYSH, JRETHY NEXT/Cs.PC.GETS.RY JPC_RY MDR_MUTEMPS5]_R[R21,.RR.16, JMDR,TEMPS GETS RZ ROTATED BY A WORD 0] =mammmmmm e ————— 125034 ;25035 PUSH, MOTEMPS] ZEXT(MB), JRETH JTMPS O'FILLER(BYTE) ;Sgg%g NEXT/CS.EXP,FILLER ;THEN EXPAND T 125039 290640 ;10=mmmmmmmm—m e ameame e ; JTEMPZ_80 MOTEMP2] _ZL1TOLBOL, 125036 ;528?} SIJECBYTE], FLAG3? JBYTETZERQ EXTEND 609 (MTO98, MCX MICRO2 CHAR MI1C (haracter String 28=NOV=-83 :25043 =0 125044 0B8F, 0186,6D87,0030,0847,0082,7 ;Qemescscccncanaraans comamm—a—— 125045 WB_MLTCMPEI-2L178L4], “1s TEMP6>=400 or <4007 ;25047 135049 NEXT/CS. CMPLUNP. 1A {]msesmmemmm e eemmm; WB<31-30>? 125046 UBBE, 0DBO,6090,060,2047,0882,5 377+ ] 16 CLOKX Rev 13,00, Clock rate = 160ns ¢ (MPC FPD Unpack routine 16:30:35 {MATCHC CODE=1 MITEMPG] 20L178L1), 125050 ;Sggg% NEXT/(S.TMP,UNP,18 : 195053 =01 :23054 (5. CMPLUNP, 1A: 125055 = ;0)emmmesmememcesmcccecame-ecea-ae; 0B2S, 0C86,ASBE,6034,0047,008D,7 {CODE = 400 OR 500 WETEMP10I_D_RLROI, ;25056 :Sgggg NEXT/CS.CRPTUNPACK .3 : Eggggg €5, CHP, UNE 18: 0B27, 0486,A287,0014,0047,008D,3 Esggg} 125063 \ 08D3, 0CB80,2002,0A74,8047,0082,8 125064 125065 125066 M[rEMP1OJ_N[ROJ RR.16 = 125067 =00 :25068 , 0B28, 0486,A59F,4010,0047,0082,A 100emmmmrmr e ec e e nen-o : SMTMP10 IS POS ;538;5 NEXT/CS.CMPLUNPACK. 4 1GO TO FLOW ;25070 S1ZELWORDT, (0l emmem e PUSH, 125075 m e :ZERO EXT BY A WORD ————— - METEMP2] -1, ’5285? NEXT/CS.ONP.TMP10.1S.NEG RET+1 TMIMP2 IS NEG,MTMP2 FFFFEFFF tMAKE MTMP10_FFFF'MTMPI0 2528;3 5. CMPLUNPACK .4 }sggg? M[TEMPZJ RCRO2 125082 YTMP2 GETS RO 125084 RIROJ D _ZEXT(MLTEMP2]) *RO,D GET 0'RO(WORD) FLAGS? TMATCHE? 125083 JBD4, 0884,259E,64D4,0047,0089,0 Y18 MIMP1Q NEG? ; RCTEMP10] ZEXT (MB) , 125073 UB2A, 0CBS, 58E,4034,0047,008D,4 ;=eeseseccecscscseccscccomeamoss : WB_ML[TEMP2],AND,RLR2], WXTNE.0? 125069 125074 CHPQ, (886,7F77,0030,0047,048F A YMTMP10 GETS IT'S LEST SIG BITS 125085 125086 2 e===esccmenceesacccacccsoas m———— s1ZE[RORD], YZERO EXTEND A WORD Page (MT098,MCX (HAR M1 MICRO2 1M(01) (haracter String ’ 28=NOV=83 E 16 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : (MPC FPD Unpack routine ;25087 = '52833 cs CMP,UNPACK.6: $25090 UB_MLTEHP6I-2L11802), 0890, 0980,6090,06F0,1047,0882,0 377+ :25091 ;ggggg WwB231-30>7, NEXT/CS. CMP.UNPACK,S 0891, 0481,2387,0020,0467,008D,5 ;%gggg 108094 foR _MIMDRI.RL.8 125097 0BD5, 0085,259E,5010,4047,008D,6 ;25098 ;sg?gg 26101 0BD6, 0C82.1592,4014,8047,9089,0 Page Y1s TEMP6 >5200 or <2007 *(to VA_GPR3 code) jlmesmemocmcemcsccscmmmemmmoeeee *MDR_MDR ROTATED 8 BITS TO THE LEFT jmem=smsecsseceascmsncammmmm—aen; RCTEMP1] Q_ZEXT(MIMDRD) S1ZELWORD) :0.0LD VALUE BACK(MATCHC CUDE) $070°Q(WORD) jommTommoseeemsmeeaeee mm——— 25102 RIR2).S1Z_MLTEMP1], R2 /ARC'2'0LD R2 ;sg}gg NEXT/ZCS. CMP,UNPACK . 6 ; 125103 SIZECWORDY, ;0_D'Q(WORD) 125106 =01 .gg}gg (S.CMP, UNPACK 5: _ o 082D, 0986,C(37,0050,4047,008D,9 ) OH2F, 0780,05BF,43B4,C4A7,00A7,0 125109 ;gg}}? 125112 125113 ;Sgg}g MCFPDOFFSET] ZL1TOC8.D, NEXT/CS.UNP,TMP. (581 iReenter CMP(5, Source 1 vs. FILL i1l=mmmccmmeccmmemnec e ————— VA_R[R31,WB<1-0>,NE,0?, NERT/CS.C3.L0P “VA GPR3, is address LONGWORD aligned? 125116 sgng (S.(MP,UNPACK,3: UBD7, U186,CC37,0030,4047,008D,8 ) 0BD8, 0080,05RE,4034,(487,0089,9 }52153 125121 125102 ;gg}gz MLFPDOFFSETI_2LI1TOL8) ‘ jommmmeseeemee e emed e; PC_R[R3], NERT/CS.(5.52F ) {PC GETS R3 125128 :Sg}sg (S.UNP,CMP, (551 i} i 08D9, C080,056F,4034,(4A7,0048,8 125128 VA_RLR3],NEXT/(S5.C5 $VA_GPR3 611 o ; F CMT098.MCX CHAR,MIC 16 MICROZ2 1M(01) 28-NOV-83 16:30:35 (LOKX Rev 13,00, Clock rate = 160ns Page 612 Character String + SCANC and SPANC FPD Pack routine : SCANC and SPANC FPD Pack routine'’ : Character String “ ;52}%3 .T0C 125131 R L 125134 H ;2513% 12513 125135 125136 :25137 H ; e e RO R INPUT TEMPS ; : : 125142 e LENGTH ORIGINAL PC SAME AS RO MUST PUT INTO R1 FLAGS 125140 r me ROC16) e e et —— e ————— et TEMPS(8) ?2?FLAGS(6) o O ;52}22 125145 PRI ;251647 ; R2 125149 . R3 125151 T LC T L T 125148 :25150 185152 :sg}gz ;25125 § ! oUTPUT ; : RO 125146 ‘ A AR SR LR S PR LS LR AL FILL D PC H L R3 R3 : ;25138 125141 I . - pT(32) ~ ‘ mmemmmess —occssns ~snenems onms=amo i P s R e mm————- , ;o memeeses mmesm——- ILLLI R _mmmemee- R2(ORIGINAL PC) (32T R3(32) (16) MEANS 16 BITS LONG T e e e ee e L ? MEANS UNKNOWN QUANT]TY e i LN SC RSN E S Sen- iniakeinieleindeinit Enatanantt'nntqnuntwtw*wtntwttt*wtt*tt**ii*fiwt*tttttttfi*fitt«fi*fittfitwfifl* ;25156 125157 = 225158 (S.SC.SPAN,PA(CK .BEGI: ;25159 . 1y CB92, 0884,0287,0014,0047,04A9,A U 0893, 0586,5092,0057,F847,008D,A U 0BDA, 0884,5002,4034,0047,008D,8 U 08DB, 0082,0036,4484,0387,0044,8 NEXT/US.EXP.FILLER 125164 . U OAAL, QUBY,AFS1,0034,4047 ,00FE, 2 e S e —. RCROJ RB.RL,.16, JRET+1 RO GETS ROTATED BY A WORD JEXP FILLER [1mmmen wemmmmeeemammm—c——ea———- ; ;2;%22 MCTEMPS] _MB.AND,ZLIT8LOFF) ;e516¢ jemmessmssssssssessssccoueeeeene : 4 igs168 RIROJ_MC TEMP5].OR.RB JTMPS_0'Q'FILL'O iRO_RO' TMP5'0 jmmmmesmme e ———————— ; 25171 R{ROJ.S1Z_FLAGS, +RO_RO'TMPS'27F LAGS :sg%;z FLAGZ? +HAS PC BEEN INCREMENTED? :25172 ;25176 125177 ;Sg};g 105180 ~14e ‘ LEE LD LI LT LEILH :gg}g% ;25161 125175 =0ue U OAAB, 0085,A592,4034,4047,00FE,2 L LR PUSH 125170 . UL ;25160 125181 195182 ;25183 SIZELBYTED, :ONCY WRITE A BYTE ;Qrrmseommem e s mem—————e ; R(R1) MLPC], INOT_INCREMENTED SO JUST STORE PC NEXT/TE.PACK,DONE e o ;G0 TO CHARLIE RO SR ; RIR1I_MLPC]-T, NEXT/TE . PACK ,DONE : INCREMENTED SO STORE P(=1 +GO TO CHARLIE | i (MT098.M(X CHAR . MIC 616 ;25186 Page 613 (LOKX Rev 13,00, Clock rate = 160ns 16:30:35 : SCANC and SPANC FPD Unpack routine : SCANC and SPANC FPD Unpack routine. Character String ' R R R R L AR AR AR AR AL LA ARE AL A } 125190 R MICRO2 1M(01) Character String 28=NOV~-83 :Sg}gé .T0C :25187 ;23188 ;25159 ; The input of the unpack code is the output of the pack code. ; The output of the unpack code is the input of the pack code. ; Refer to the pack routine banner a few pages back, R L e I e A A A AT R AR A AR A SR AR AR AR ALAMALAALAL A AL AL 325191 ;25192 .REGION/IRD1.RIL,IRD1.RIH 25193 =000 ;Sg}gg CS.SC.SPAg.UNPACK: U 0338, 0086,5287,0004,0047,0089,4 Esg}gg 135198 MCTEMPSI_RCROJ.RR.8 iMTMPS_GARBAGE 'F ILL :gg;gg .SEGJON/CHAR.R1L,CHAR.R1H/CHAR.R?L,CHAR.R?H/CHAR.R3L,CHAR.RSH 125001 :25202 y 0894, 0586,5012,0037,F847,04BE,8 u 0895, 0880,058€,4034,0307,0080D,¢ u OBDL, 0C86,A287,0014,0047,008D.D :25203 :Sgggé 125206 :Sgsgg 125209 :Sgg}? i25212 ) . u OHDD, UUB4,AS9E,6014,0047,00AD,8 {0m m m o o e; PUSH, JRETHY NEXT/CS.PC.GETS.RI JPC GETS R1 ONE WORD SUBROUTINE MUTEMPS] MB,AND,ZLITOLOFFT, Rttt L L LA L DD FLAGS_R[RO2 JFLAGS GET LEAST SIG 6 BIYS OF RO jmmmesassesscasescscsmuasnanan- ; MLTEMPI0]_RIROGI.RR, 16 e PR JMTMP10_RO ROTATED BY A WORD e :25213 RCRO) D ZEXT(MLTEMPI0D), ;25215 NEXT/(S.0S.5CSP.BEG 125214 JTEMPS O'FILL SIZECRCRD], e: JRC,D_O'LEFT 16 BITS OF RO J2EROEXTEND BY A WORD sSCANAC SPANC BEGINS S s ; H e 4 e CMTO9R MCX CHAE MIC g en | = e v ma o f . ome MICRO2 o S e ce C e e e ¢ TM(01) (haracter String e e — e 28~NOV=-83 < oo 16:30:35 H 16 Page 614 (LOKX Rev 13.00, Clock rate = 160ns : LOCC and SKPC FPD Pack routine ¢+ LOCC and SKPC FPD Pack routine' Character String :sgg}g LT0C " 2252]8 :tttttttttttwflttt*ttt*tt**i**t**flt**fi**fi&fitfitfinfitQttti&fittttttttittit*t 125221 : :25519 125220 165292 TEMPS : 125223 :Zgggg H H 125228 : ; 35522¢ ;25221 125229 $25230 : L ;R 125237 125238 ;sg%zg MUST PUT INTO R1 ORIGINAL PC TEMP1 uTPUT ;05233 185236 SAME AS RO PC Q RESOURCES : P RO 12523 25238 (HAR D ;25231 125232 LENGTH SHOULD GET PC RO R1 INPUT ; H P P T : e DELTA PC TEMP5(8) emmmeeas _mmmmimmn ammeeees - PL(32) emmmeee- mmme—- _mmmme— I (16) MEANS 16 BITS LONG N H TR T ROC16) e RN AR A e AN AR e RN AR e e RN NN AR AN NN RNRNA TR wdy 35352; (5.L0CC.SKPC.PACK.BE: J OBDE, 0986,5D12,0037,F847,0089,6 Egggzz MCTEMPS]_MB,AND, ZLIT16L0FF] IMTMPS_O'FILL'0'0 125245 = ;0 mm e e m————; PUSH JRET+1 ;sggg? NEXT/TS.RT1.GETS.PC 125249 105252 u 0B97, 0485,9008,0670,4047,00A8,0 :05253 ;ggsgg 125256 =101 J 0A8D, 0480,0036,4030,0047,00FF,2 125257 :Sgsgg 325560 11 _ i J UA8F, 0084,138F,4004,0047,00FE,2 :25261 125262 ;25263 RCROJ_MCTEMPS],OR.RB, *RO_0'FILL'RO(16) (PUT PC INTO RY D Pt —————; RCTEMP1)_Q=MCPCBACK], IR<2-0>? R e LE LL L LLL L L NEXT/]E.PACK.DONE iTEMP1_DELTA PC JIF IR1 NOT SET MATCHC L: JMATCHC DONE SO GO B R ittt tdatalalet ; A[ROJ_RB,OR. (M[TEMP11,RL.24), NEXT/TE . PACK,DONE ;RO_DELTA PC'FILL'RO(16) GO YC CHARLIE I u OH96, 0884,5002,4034,0047,048L,9 125246 =0 125247 25248 e ; ——— e e e CMT098 . MCX CHAR.MIC MICROZ2 1M(01) Character String 28=NOV-83 116 Page 615. (LOKX Rev 13.00, Clock rate = 160ns : LOCC and SKPC FPD Unpack routine ;%gsgg Jtoc " ;25266 SRR R AR AR AN R AR AR R R AR AR AR A 125268 125249 ; The output of the unpack code is the input of the pack code, . Refer to the pack routine banner a few pages back. 125267 ;25270 U 0340, 086,5287,0014,0047,0083,0 16:30:35 Character String : LOCC and SKPL FPD Unpack routine'’ : AR R ; The input of the unpack code is the output of the pack code. HA AN AR AR RN K AR AN RN NN AR ;252N 125272 REGION/IRD1.R1L,IRD1.,RTH 125273 =000 125274 €S,L0CC,.SKRPC,UNPACK: 125275 ;000~~=ommmmoomo e smemne e : :525;9 ~ AR AR AR AR MCTEN 5]_RCROJLRR,16 RN SRR ANT AR AN AN TN N bR : : Rk Ak ; & JTEMPS_GARBAGE'FILL 195078 ;25579 .REGION/CHAR,R1L,CHAR,RTH/CHAR,R2L , CHAR,RZH/CHAR .R3L , CHAR R3H ;sgsgg 25286 1) 0B31, 0086,12B7,0024,0047,04B¢,8 U 0832, 0580,1C12,1037,F847,008D,F U UBEL, 0986,0C37,0030,3047,00BE,1 JRET#) sTEMP1_GARBAGE 'DELTA P{ R et e b: ;5253% 25295 NEXT/CS.PC.GETS.R) ;O0REG_original P( et : e e L 0_Q+MIPCBACK] Sgggg MCFPPOFFSETI_2L17006) 125302 :gg%gz ;25306 125307 :sgggg ;253 ‘ iLoad FPDOFFSET : PR oean TRt “emvennan - MCTEMPO)_RCROD, IR<2=0>? ;00) = m et METEMPI] _RLRZ2], JMTMPO GETS RO SO CAN 2ERO EXTEND J1F MATCHC BIT 1 1S NOT SET e NEXT/CS.BAT.UNP.L.S e; JTEMP1 _R? JMATCHT SO RESTORE TEMP1 ;01locmmmccncnccrcsnmmcumcuancn. H ;25312 RCRO) D_ZEXT(MLTEMPO]), ;52%;; NEXT/(S.05.L0C ;25313 JPC GETS RY Q_MITEMP1],AND,ZL1TOLOFF] ;25296 125310 =011 J DAAB, 0084,059E,6654,0047,00A4,6 e e L L L L LR ; 185291 :sgsgg 125305 =001 U 0AA9, (886,158F,4034,8047,008¢,2 P JTEMPS_FILL'FILLYFILL'FILL PUSH, MCTEMP1] RIRO).RR. 24, 125301 U 0BE1, 0486,05€E,46764,0047,00AA,9 NEXT/CS.EXP.FILLER 125287 125288 125094 v 0B8DF, 081,58009,1030,0047,008F,0 ;00=mmmmmmm e e e e e; JRET+1 PUSH, METEMPS] MB.AND,ZLITOLOFF], JTEMPS_Q'0'O'FILL SJ26CRORD]), IR<2=0>?, ;GPRO & DREG get length, :which inst are we? W u 0B30, 0086,5C12,0037,F847,04A9,A ;23281 ;25282 125283 1 ;25280 =00 ; : (MT098.MCX CHAR MIC MICRO2 1M(01) Character String i J OBE?, 0086,159€,4010,0047,008E,3 it OBE3, 0880,05BE,4036,06A7,008E,4 i ) OBEG, 0B84, 59E,6014,0047,0044,6 125316 ;25317 ;25318 ;25319 125320 125321 125322 :25323 ;25324 ;25328 105326 28~NOV-83 : 16:30:35 J 16 CLOKX Rev 13.00, Ctock rate = 160ns LOCC and SKPC FPD Unpack routine MLTEMP1] ZEXT(MB), NCASE MATCHC RO EXTEND BY A WORD S12ECWORD] ‘- ey o vy [ T R T e 0O 0y P T T T ¢ “VA GETS RESTORED 'RO.D GETS LENGTH Page 616 . ’ CMT098,MCX CHARMIC MICRO2 1M(01) Character String 28-NOV~-83 16:30:35 kK16 : MATCHC FPD Unpack routine’’ Character String ' 325329 125330 AR : ;25332 ; RO ; R1 :ggg%g ;25338 ; ; R2 125340 ; 125343 H 225345 : 125333 125334 125335 :25339 ;25341 125342 ;25344 e ; R A A INPUT A AL ;. s AL AR R3 P ; Note: H H AR AL QuTPUT emssssse e-ssoses secoscoe eocceooo Fc(32) (ALREADY) memmeeses comeeceo B it inie R2(T6) /APC(BY M7 ~ PA(32) (ALREADY) B RO LENGTH MTMP10 :25349 : DELTA PC =pPC =R0 PC VA =R1 =R3 (ODE 16TH BIT OF R? ; - s == (x) := x bits in length ? := garbage : :25350 AL AL AL RO(32) R1 ; ; AR AR AR A /\ := delta ¢ := CODE ;25340 125347 ;25348 IN R2 KRR AR AR AR AR AR AR RN R A R AR A TR KRR AR AR AR AR N A AR R ;25351 :25352 ;25353 REGION/IRD1.RIL,IRDI.RIH ;25354 =000 AR AR R AR KA AR KK ;SZ%%Z CS.MATCHféuNPACK: 0348, 0480,058E,46F4,8047,0083,4 Eggggg } 105359 WB_R[R2) ,WB<31-30>7 iAre we MATCHC, LOCC, or CMPC3? ;Sg%g? rggGJON/CHAR.Rll,CHAR.R1H/CHAR.R2L.CHAR.RZH/CHAR.R3L.CHAR.RSH ) UB%4, 008),058E,4034,04A7,008L,5 _ . ) 0R35, (986,8£B7,0039,F847,0034,0 , 0836, C086,65BE,5034,8307,008D,1 125362 125363 ;ggggg 125366 L VA _R{R3], NERT/CS.MAT UNP,1 ) o e —— : ;VA GETS R3 JMATCHC teatttinilalet mm——— JTEMP8 _3FFFFFFF JL0cCC ;25367 ;Sg%gg ML TEMP8] OLIT24[13F], NEXT/CS.LOCC.SKPC.UNPACK 125370 ;10mvemmsmmeemace naaa cm——— : 125371 ;S§§;% ) ' 617 : MATCHC FPD Unpack routine ;%g%gg T0¢ ;25331 page CLOKX Rev 13.00, Clock rate = 160ns M{TEMP6] 0 FLAGS RLR2], NEXT/CS,TMP,UNPATK ,BEGIN TEMPG,0,FLAGS, GETS R2 JCMPC3 : j } i ; {MT098.,MCX (HAR.MIC MICRO2 1M(01) Character String 28=NOV-83 16:30:35 L 16 s MATCHC FPD unp3ck routine ;sgg;g CS.MAT.UNP.1: U OBES, 0C80,05BE,4034,4487,008E,6 u 0BEG, 0886,15BE,4034,8047,008E,7 ) J OBEZ, 0086,159&,4010,0047,008A 7 ;Sgg;g 105378 (LOKX Rev 13,00, Clock rate = 160ns fic_R[R1J == iPC GETu R1 e —eeemeecoacooao ; ;Sgggg MLTEMP1]_RIRZ] JTEMP1_R2 125381 ;25382 ;25383 jmmmmmemmmmmecmecceesessaseeos ; ;TEMP1 is restored, reenter LOCC MLTEMP1] ZEXT(MB),SIZE[CWORD], NEXT/CS.RAT,SET.FRDOFF =1 :preliminary flow Page 618 ) i e it N TURFUNTUNION[OY L UL PUNT VLS LN LG L UL VL VLV L VTN R TUNTUNT ORI G TR TR R S O N S U N S N N S S N N3 X —TOMMDID M MOADZRC AT "MONMZ X T O X M R SN - TGN TaE s R MICROZ2 TM(O1) MICROZ MICRDO2 MICROZ2 MICROZ2 MICRO2 MICROZ MICROZ MICROZ2 TM(OT) 1M(01) TM(01) TM(01) TM(0V) 1TMM(01) 1M(01) 1M(01) MICROZ2 MICRO2 MICRCr2 MICRO2 MICROZ MICRDZ MICRO2 MICRO2 MICROZ MICROZ2 MICROZ2 MICROZ2 MICRO2 MICRO2 MICROZ2 MICROZ2 MICROZ2 MICROZ2 MICROZ2 MICROZ MICROZ2 MICRO2 MICRD2 MICRC2 MICRD2 MICRO2 MICROZ2 MICRG2 MICRO2 MICRO2 MITRGZ MICROZ MICRCGZ MICROS MICRO2 MICROZ MICRCZ MICRO2 MICRO2 MICRO2 MICRJ2 MICROZ MICROZ MICROZ MI(RO2 MICRCZ MICRC2 MI{RC? MiCRC? MITRIZ MICRGZ J 5 H 1 J K L M N B 6 6 6 6 6 6 6 7 MICRO2 TM(01) E 10 MICRO2 MICRO2 MICRO2 MICRO2 MICROZ2 MICRO2 MICRO2 MICRO2 1M(01) 1M(01) 1M(01) 1M(01) TM(OT) 1M(01) 1M(01) 1M(01) ¢ D E F 6 H ] J 11 11 11 1N 11 1 11 11 r 12 TMOT) 1M(01) TM(01) 1M(01) 1M(01) 1M(01) 1M(01) 1M(0T) 1M(01) 1TM(O1) K 5§ L 5 M5 N 5 B 6 C 6 D 6 E 6 o6 G 6 MICRO2 MICRO2 MICRO2 MICROZ2 MICROZ MICRNZ2 MICRO2 MICROZ2 MICROZ2 MICROZ TM(O1) 1M(01) 1M(01) 1M(OD) TM(01) IM(01) 1M(0OT) c D MICRO2 MICRO2 MICROZ2 MICROZ MICRO2 MICROZ MICRO2 1M(0O1) 7 7 E 7 [ G 7 H 7 1 7 J ? N B ( D £ £ 7 & 3 3 8 8 H 1 8 8 IM(O1) 1M(Q1) 1M(O1) £ 7 L7 M 7 ITM(OT) 6t TM(OD) 1MI01) MO} TM(01} TM(01) TM(01) IM(Q1) IM(CD 1M(OD) 1M(D1) iM(OD) 8 ) 8 o8 L 8 TMIOD M TM{OD) MO o 9 w5 1M(012 MO TMI01) 1:401) MO, TM(OD) TM(Q1 1M(ON M/ 1MIDT: M(0H M(CY) IM((): TMIGY. TMLGT) 8 N 8 B 9 .9 i 9 £ 9 PG 19 .6 v L9 M5 N 9 B A Lo MICROZ2 MICROZ MICRO2 MICRO2 MICROZ2 MICROZ2 MICRO2 MICRO2 MICI02 MICROZ2 MICRO2 MICRC2 MICRD2 MICRO2 MICRG2 MICROZ MICROZ2 MICROZ2 MICROZ2 MICROZ2 MICRO2 MICRO2 MICRO2 MICROZ MICROZ2 MICROZ2 MICRC2 MICRO2 MICRD2 MICROZ2 MICROZ2 MICROZ2 MITROY MIIROZ MICROZ2 1TM(0O1) F 10 6 10 H 10 110 J 10 K 10 L 10 M 10 N 10 B 11 MICROZ MICROZ MICROZ2 MICRG2 MICROZ MICRO2 MICROZ2 MICRC2 MICROZ2 MICRO2 TM(OD TM(O1) TM(OT) 1M(01) 1M(01) TM(O1) 1M(OT) TM(OD) 1TM(O1) 1M(01) 1M(01) 1M(D1) 1M(OD) 1M(O1) 1M(01) K L M N B € D MICRDZ2 MICROZ2 MICROZ2 MICRO2 MICROZ2 MICROZ2 MICROZ iM(OT) 1TM(01) MO 1TM(0O1) 1M(OD) 1M(O1) TM(OT) 1M(01) 1M(01) 1M(01) F 12 G 12 H 12 TM(01) 1M(01) 1M(01) 1M(01) 1M(01) 1M01) IM(01) 1M(01) 1M(01) TM(GT) 1M(01) 1M(01) TM(Q1) 11 N 11 T 12 12 12 1M(01) 1M(01) TM(Q1) M(O1) 1MOD) 1M(01) I J K L M N TM(01) 1M(01) 13 D 13 TM(Q1) 1M(O1) 1TM(Q1) TM(QD) 12 b ¢ 1?2 12 12 B 13 E F 13 13 G 13 MICRO2 MICROZ2 MICROZ2 MICROZ MICROZ2 MICRO2 MICROZ2 MICRO2 MICRO2 MICRO2 MICROZ2 MICPOZ2 MICROZ2 MICROZ2 MICROZ MICRO2 MICRO2 MICRO2 MICROZ2 1M(01) 1TM(O1) 1M(01) 1M(O1) TM{OT) 1M(O1) 1M(01) 1TM(OD 1M(D1) M(OD) 1M(O1) TM(OD) TM(Q1) 1M(OD TM(OD) 1IM(OD) TM(O1) TM(O1) TM(OD) MICRO2 MICRO2 1TM(O1) 1M(OD) MICROZ TM(OT) MICROZ MIC(RO2 TM(OD) TM(O1) 1M(01) H 13 MICROZ2 TM(OT) TM(QD) IM(O1 B 14 ¢ 14 MICRGZ MICROZ2 TM(OY) 1M(QT) 1TM(O1) MO 1M(O1) 1M(Q1) 1M(01) IM(O1) IM(OM) TM(QT) 1M(01) 1IM(Q1) 1M(OT) MO TM(ON) 1M1 MG 113 J 13 K 13 L 13 M3 N 13 D E F G H 14 14 14 14 146 1 14 J 14 X 14 L 14 MICROZ MICRO2 MICROZ2 MICRO2 MICROZ2 MITROZ2 MICROZ2 MICROZ2 MICROZ MICRO2 MI(RO2 MICRO2 MICROZ2 -MI(ROZ - MR IM(OD) MO 1M(01) TW(CT) 1M(O1) TM(OD) TM(OY) 1M(OD) TH(OT) MG 1M(OD) 1M(CT: MO TH(QY) AN COOCOOC VWYV OO OO U GO0 00 OB WD = OO0 NI SMAN 2O 00NN B~ I A WD LN LN A AN A G A NN W NN B DSBS D D DS D TR TR T R NININV NI NIV T T TR e e TN U U - |u 0BEB, 0C86,A5BE,4080,8047,0000,1 MRLA NI NN U OBEA, 0C82,A592,4010,8047,008E,8 L , U 0BE9, 0C85,A592,4084,4047,0000,1 T UTUT T VWA R R R U 0BES, 0080,058E ,4084,4487,0000,1 A ‘ PIND Character String A B CHAR.HI% U LT T A H PINIRVNI PN IH 28-NOV=83 1M(01) MICRDZ CMT098.MC .T0C 16:30:35 8 1 (LOKX Rev 13.00, Clock rate = 160ns ¢ FPD Subroutines ' Character String : FPD Subroutines'' (S.PC.GETS.R1: BCRIRTILRETURN C13 iPC_GPRT, RETURN +1 CS.RT1.GETS.PC: @ o o g RLR1) _MLPCI, RETURR [1] -~ IR1_GETS PC YRET+1 CS.UNP.TMP10.1S.NEG: RCTEMP2],S1Z_MLTEMP103], SIZECWORD] MCTEMP107_RCTEMP21, RETURN [1] STEMP2_FFEF 'MTMP10(16) ; TiMIMPTO_FFFF'MTMPTO JRET#1 Page- 619 MICROZ (MT098.MCX CHAR.MIC . TMM(01) Character String 28-NOV-83 1 ¢ 16:30:35 CLOKX Rev 13.00, Clock rate : Ird Rom Definition LICODE_ 029: FPD MEM REG 0PS [NOPJLCS.CMP.UNPACK 0PS IRDTLLODILOS.RED .OCOVE EPD [NOPJLCS.CMP UNPACK RD1L).0DICOS.RED FPA REG [NOPJLCS.CMP,UNPACK LLODILOS.RED JLCS.0S.MOVC3.CMPC3 1 £Cs.0 .0S.MOVC3.CMPC3 (¢s.0 S.MOVC3. (MPC3.1 JLCS.O S.MOVC3. CMPC3.1 1 .1CODE 020: s Ird Rom_Definition” - Character String $25407 ,70C 25408 IRDTLLODILOS.RED s.0 .05 .MAT(CHC S.0 S.MATCHC,1 -T3I TJMTINY 437 OrTCNV—IMN J 3 J0€S.0S. MATCHC JICS.0S.MATCHC.1 .0coo £ 0 2E: CNTOENOPJE CNTTINOR] ;LOCC JEC J0C 0S.LOCC.SKPC . 0S.LOCC.SKPC.1 3. ] sMATCHC 1. L ¢s.0 S.MATCHC [ ¢s.0 .0S.MATCHC.1 JECs. 0S. M ATCHC JICS. 0s. M ATCHC.1 ] J ;MovC3 3. sMOVCS .CCODE 0 3 2C €s.0s.MOV(C 5 +CMPC5.1 ] E ¢ g.MATCHC.UNPACK MOV.UNPACK ¢ [NOPJLCS. CLODILOS.RED 0 L S.MO V.UNPACK L S.RCD .1C0oD £ [CNOFILCCS .05.L0CC.SKPC [INOPJIL(S.0S.LOCC.SKPC.1 = 0S.RED bl 9y . 1CODE 039: FPD L[NOPJLCS. VATCHC,UNPACK L €S.0S.MOVCS5.CMPCS €. SKPC.UNPACK %. S 0CC.SKPC.UNPACK ] 03A: FPD [NOS JOCS.L ] S IRD1LLODICOS.RED CNT1LNOPI[CS,0S,L0OCC.SKPC.1 ;s CHPCS 3. ] S.MOVC5.CMPC5.1 CNTOLWOPJLCS.0S.LOCC.SKPC L CMPC3 wv .1CODE .0CODE 03A: 3, S.MOVCS.CMPCSH 02D: CNTOENOP] £cs .0S.MOV(S5.CMPC CNT1INOPILCS.0S.MOVCS. CMPC FPA MEM It C .0 S.MOVC3.(MPC3 €5.05.MOVC3.CMPC3 3, [LNOPJCCS ] 3.1 c .0 S.MOVC3.CMPC i €5.0S.MOV(3.CMPC3.1 [NOPJCCS NOPJLCS.CMP,UNPACK CNOPILC Lo01C .RED [LODILOS ] page 620| 160ns 1 .11 ¢S.M0 V.UNPACK 0S.RED ] ¢ .0 S.MOV(CS5.CMPCS [NO PILCS.0 $.MOVC5.CMPCS 1, [NO PILCS.0S.MOVCS. CMPCS5.1 JCC .0 S.MOVCS.CMPC5.1 ] wv CS . MOV. UNPACK INOPIL CLOD] 0S.RED $MOVTC 1. ] ENGRIEER:GE: MOVTC.MOVTUC .13E5328 S.MOVTC.MOVTUC.1 3. MOVTYC.MOVTUC S.MOVTC.MOVTUC X : CMTO98.MCX ;25459 195460 :ggzgg CHAR.MIC MICRO2 1M(01) Character String ,1CODE_ ; oPS REC, 02F: FPD [NOPJILCS.MOV.UNP..CK 0CODE 1RD1£LODIC0S . RED g 135463 02F: CNTOCNOPI[CS.0S.MOVTC.MOVTIUC 125466 125467 . 1CODE 02A: FPD [NGPJILCS.SC.SPAN.UNPACK 125470 02A: CNTOLNOPJLCS.0S.SCANC.SPANC :ggzgg :ggzgg :nggg 0cODE :522;2 0CODE :ggz;g IRD1£LODILOS . RED IRD1LLODICOS.RED 038: CNTOLNOPILCS.0S.LOCC.SKPC CNT1CNOPILCS. os. €.SKPC.1 .1CODE ‘5?23% 125484 0CODE 1RD1CLODIEOS . RED 028: CNTOLNOPJILCS.0S.SCANC,SCANC 125485 T CLOKX Rev 13.00, Clock rate= 160ns Page : Ird Rom Definition MEM ] JCCS5.0S.MOVTC.MOVTIUC ] ] i [NOPJLCS.MOV, UNPACK 0PS FPA REG [LODICOS.RED 1, CNOPILCS.0S.MOVIC.MOVIUC JLCS.0S.MOVIC.MOVTUC [NOPJLCS.SC.SPAN.UNPACK 1, 1LCS.05.SCANC.SPANC [NOPJLCS.0S.SCANC.SPANC J[CS.0S.SCANC.SPANC CLODICOS.RED ] 038: FPD L[NOPJLCS.LOCC.SKPC.UNPACK ] 125480 125481 1 CNT1ENOPJECS.OS.SCANC.SPANC,1 JLCS.08 .SCANC SPANC.1 ] 1CODE i5re ] 16:30: 35 FRA MEM 1, 028: FPD [NOPJI[CS.SC.SPAN.UNPACK 3[€5.05.L0CC. SKPC 3[CS.0S.LOCC.SKPC.1 1 ] ] ] JLCS.0S.SCANC.SPANC ;SCANC J 1, [NOPI[CS.0S.SCANC.SPANC.1 JLCS.0S.SCANC.SPANC.1 ] [NOPJLCS.LOCC.SKPC.UNPACK 1, ] ] CNTIENOPTECS. OS.SCANC. SPANC. 1 JLCS.0S.SCANC.SPANC.1 1 1SKPC (LODILOS.RED h| (CNOP)LCS.0S.LOCC.SKPC J0€S.0S.L0CL. SKPC [NOPILCS.SC, SPAN,UNPACK ], CNOPICCS.0S.LOCC.SKPC.1 CLODICOS.RED [NOPJLCS.0S.SCANC.SPANC J[CS.0S.LOCC.SKPC.1 b 1L[(S 1, ] ; SPANC SCANC.SPANC 621 JMOVTUC ] ¢NT1ENOPILCS.0S.MOVTC.MOVTUC.1]ECS. 05, MOVTC. . MOVTUC. 1] [NOPILCS.0S.MOVTC.MOVTUC.1]0CS.0S.MOVTC.MOVTUC. 1] 125473 125474 28=-NOV=83 1, [NOPIECS.0S.SCANC.SPANC.1 JLCS.0S.SCANC.SPANC.1 J CMT098.MCX MICRO2 Character String 28=NOV=83 E 1 2%8 029: SIZE [WORD] [BYTE)J (BYTEJ L 01 L[ 03 ;CMPC3 235 020 S1Z¢ CWORD] [BYTE] [BYTE] [WORDJ [BYTEJ [ 01 ;CMPC5 232 03A: S1ZE [BYTEJ [worpl [BYTEI L 03 C 0L 03 ;LOCC 232 039: S12E [WORD] [BYTE) [WORD] [BYTEI L 01 [ 01 ;MATCHC 485 028: SIZE [WORD] [BYTEJ [BYTEJ L 01 [ 01 ;MOvC3 gg 02c¢: S1Z€ [WORD] [BYTEJ CBYTE] [WORD] [BYTEJ [ 01 ;MOV(S 85 02€: SI1ZE (WORD] [BYTE] [BYTE) [BYTEJ] [WORD] [BYTE] ;MOVT( 82 02F : SIZE C(WORD] [BYTE] [BYTE] [BYTED [WORD] [BYTEJ ;MOVTUC 82 02A: SIZE CWORD]) (BYTE] [BYTE] [BYTEDJ [ 0 [ 01 ;SCANC Q07 038B: SIZ€ [BYTE) [WwORD] (BYTEJ [ Q) [ 01 ;SKPC 11 .uCODE STV " : Dsize Rom Definition' 01 LC 03[ SIZE [wWwORD] [BYTE] [BYTEJ CBYTEI L 125312 .BIN Page : Dsize Rom Definition .DCODE 01 C B CLOKX Rev 13.00, Clock rate = 160ns 4R6 .TOC g% 02B: Character String 16:30:35 zgg IUIVTNI VTN NIWVINVIVIES I T T T Sy e wr mrmeme S o Ve Mshate e Ma e e MAINPUNIALNSNININLNLNI NN RJINDNVNI AV NL PNV NI NAONS CHAR MIC 1M(01) 01 [ 0] ,;SPANC : : - : - 622 - | % T : MICRO2 (MT098.MCX DECMAL . MIC 1 %(01) 28=NOY-83 DECMAL .MI] 16:30:35 F 1 CLOKX Rev 13.00, Clock rate = 160ns o . 1 Page 623 325513 .10C ''DECMAL, MIC' :25514 ,T0C ''REVISION 29.0' Jeff Peng, Jim Heom, Gerard Koeckiwyon, John DeRosa, CHARLIE MCDOWELL :sgg}g : 525517 125518 ;25519 ;25520 ;25521 ;25522 :25523 125524 123925 123526 .NOBin ,70C '* ; itev, ; 29 ; 28 ;23527 ;25528 . 27 ; 122330 :23531 ;25532 ;23333 ;25 125529 125534 ; 26 . 24 125535 ; 23 125537 125538 ;25539 125540 ;23541 125542 ;22 ;25536 . - Explanation The location of u-code 1312 § 1313 are not used. . across page boundary in reverse direction , Merged some locations into common code to save 4 locations Set MM.NOINT during the write of (VIPL to avoid problem with the Write Crossing Page Roundry routine. . force some addresses and make some documentation changes Fix ASHP to take a reserved operand abort when dest len > 31. Fix CVIPE instruction to clear the Z-bit when SRC len > Dest len whenever the sr: len > dest len and the source string is not equal to zero and the first byte after a possible zero byte is not an illegal ascii character then a reserved operand fault will occur. Fix CVITP and (VTSP illegal byte detection fixed in 22 Fix VTIPS instruction to clear the 2-bit when source lenght = 1 29-MAY=1980 . Fix CVTTP to 2ero upper nibble of 0 length result if a page fault 18~JUNE=1980 . Fix CVITP and CVISP to take a reserved operand fault for all illegal bytes ;25547 ;21 225550 ;20 - Set mm.noint for addp4 ~(works for sub also) when writing 12=JUNE=1980 Fix CVILP to alwags properly set/clear 7 if overflow occurs. Fix CVIPS and CVTPT to properly set (C's if destination length = 0, ;23545 ;25548 125549 Revision History" agcurs trsing to write the result, ;25543 125544 :29546 : that overflow. . Fix (VIPS 3nd CVIPT to set I if the srclen > dstlen and dstlen is even. Fix coryerts (n save flags if interrupted with FPD set. Fix GIVP to take reserved iltegal BCD digits, Initial release. operand if divide Loop hangs do to :25551 BIN | ! CMT098.ME§ DECMAL M MICRO2 1M(Q1) 28=NOV-83 Decimal String :§§?§§ .TOC ' . J 16:30:35M0vPCL0KX Rev 13.00, Clock rate = 160ns Page 624 1 MOVP'! Decimal String T L e L e A L] L 125554 L :3&2%9 : 123338 323559 :sggg? : The instruction initializatizes, READs data, masks in the sign, : WRITEs data, checks for zero destination, etc., then sets (C. ; CMPP3 does operand fetch and preliminary initialization in MOVP code. 125562 125563 ;25564 125565 ;25566 : : : H : :25568 125569 ;25570 123571 H : ; : 128555 & :25567 ;255?§ : ' MOVP len.rw, srcaddr.ab, dstaddr.ab Input MDR Length Resources GPR1 GPR3 TEMP1 TEMP3-TEMP6 Base address., source Base address, destination Misc. storage Packed Decimal data, memorg format, LSB in byte#3 of TEMP3, MSB in byte#0 of TEMP6 : FPDOFFSEY MTEMPB : STEPC 12557 : MDR 125575 125576 ;25577 :25578 ;25579 : : : H ; VA DREG QREG PSL<C> 125574 125580 ;55581 :2558¢2 125583 125584 125585 125586 125587 :sgggg : WDR : WRITEsS 1/0 address Misc. temp. storage pitto .1 so DS.WRITE thinks dest, is odd. Legal even sources will be written progquy,_and illegal even sources (high nibble >0) will have the unpredictable : a nonzero high nibble. : result of writing H ; : FLAGO FLAG] FLAG? : FLAG3 : :2559§ 12559 H : 125596 R kAR AR RN AR R R AR RR AR RE IR R AR AR :Sgggg 1/0 counter READS ; : :25590 125591 LIroc17.) . Source & Destination Length : : Output GPRO the dest, with Used in DS.WRITE, masks PSL<C> Value of PSL<C> before IRD? <Z>image, initially 1 <N>image, initially 0 0 GPR1 Base add., source 1 cC v_0, NZ modified GPR2 GPR3 0 Base add.,, destination AR R RN RARR R R AR R AR RN AR R R I : ' 51 : ) 6 1 —— : ; CMT098.MCX DECMAL .MIC _ MICRO2 1M(Q1) Decimal String S 28=NOV-83 16:30:35 H : MOVP 1 CLOKX Rev 13.00, Clock rate = 160ns I Page 625 :55g97 JREGION/IRDX,R1L , IRDX.R1H/IRDX.R2L, IRDX.R2H :22538 DS.MOVP: U 0387, 0485,2E5E,0190,4047,0012,0 125600 NEXT/0$.ADD,SIZECWORD], :sgggg LOD INC BRA? 125601 RLTEMP1] _SEXT(MIMDR]), $TEMP1_Length, *READ Source address 125604 =0 :ggggg DS.MOVP.2: v 0312, 0880,1001,A180,8107,0412,0 325607 :%gggg 125610 v 0313, 0080,1¢13,8A30,F847,0101,8 ;25611 :Sgg}% fiUSH,NEXTIOSADD,LOD INC BRA?, STEPC_D_MLTEMP1].SR.1 STEPC D_L/2 for DS.READ, READ dest. “address ;le=mtmmeeseemmeseecmeeeeeeeeeeo; UB JMCTEMP1],ANDNOT.ZLITOC31.], WX.EQ.0? Is the length ok? ;sgg}é lgEGION/DECMAL.R1L.DECMAL.R1H/DECMAL.R2L,DECMAL.RZH U 1018, 080,0036,4030,0047,00FF,8 125616 ;ggg}g NEXT/IE.OPER. FAULT ‘«xReserved operand faultwx U 1019, 00EC.002C,7974,4047,0104,4 ;25650 R[R1J 00Q D SET FPD,PSL<(>? YGPR1_src¢. base address. what's current 128619 125621 ;25622 ;25623 =0 : 25624 U 1044, 080D0,2592,4034,0047,0100,6 . U 1045, 0C4D,2592,4674,0047,0100,4 ¢ 1006, 0580,0037,0670,0847,0100,4 125625 :sggsg 125628 125629 :gggg? et T Le )=smemmmecec—meccmemeeeeeeeanes 125636 =140 *PSL<T>? (Q_garbage) LT CLEAR FLAG1 RCR3J_MIMDRI, NEXT/DS. MOVfi .PSCC FLAG1_0. R3_dest. address, set PSL<(> jlommmemsceseescscmme s ————.———— SET FLAG1,RCR3]_MLMDR), 1R<2=0>? ,NEXT/D3.MOVP. INIT Ezggg% DS.MOVP.2.PSLC: Eggg%g | ¢, 2LITOL1T,1R<2-0>7 FLAG1 1 PSL<C> is set, which inst. jare we? iPSL<C>_1, which inst. are we? | ! 125637 DS.MOVP,INIT: ;35638 J 1004, 0486,858E,4030,4047,0100,D U 1005, 0486,858E,4030,4047,0100,E ; 1#0mmmmmmmamamen e aaae- :556 9 MLTEMPS) R[TEMPTJ. T i55644 RLTEMPEI RLTEMMI T, iCNPP3L3ST, Load Length NEXT/DS . TMPP uree teng H ggé? : NEXT/DS.MOVR, INIT.2 JMOVPL34], MTEMP8_dest. length ; . load source lengt | |i : e - (MT098 .M X DECMAL . MIC MICRO2 1M{gT) De¢cimal String 28-NOV-83 16:30:35 I 1 Move 1 CLOKX Rev 13.00, Clock rate = 160ns Page 125645 DS.MOVP.INIT,.2: :sggzg DS.MOVP.REE: 125648 100D, 0586,0€37,0820,8847,090i,C 350« 125649 ;gggg? MCFPDOFFSETI_ZLITOC17.], ‘Load FPDOFFSET, anything COUNT OR INT TIMER?,SIZELLONG], :pending? NEXT/DS.MOVP,.STATE. INT 125652 =000 125653 =011 :25654 1018, 0480,8¢52,9870,1907,0100,1 :25655 :zgggg N bttt - STERPC_0Q_M[TEMPB].SR.1,ALUS?, NEXT/DSTMOVP.SIGN sRETURN-1 from DS.READ, STEPC_Q_L/2. ;what is sign? 355658 DS.MOVP,STATE,INT: 123656 101C, 0C80,00A1,0034,44A7,0505,D ;23660 :Sggg; 125663 101D, 0480,0036,4AF0,0047,04F7,0 125664 i 1050, 0080,8591,A4B0,0047,0100,8 . NEXT/DSVREAD ;VA points past sign byte, read src. ;101 mme mmmmememaeea—enae ————-; PUSH, INTPEND OR TIMER?, ;Something pending, return =1 or NEXT/1E.SERV.IP.TS2 }55669 $25670 123671 IR KRN AR RN AR RN AN AR R R AR RN AR AR AR RN AR AN AR RN NN AR AR AN : Here after reading source. =01 is positive source, =11 is ; negative source. TR AR KRR sbranch to [E.PACK.DONE AR AR AR AR R R R R AR AR AR R AR AR R AR R AR AR ;25673 =01 :S§2;§ DS.MOVP,SIGN: ‘ 125676 Mask positive sign, <N>image_0 ;532;5 125679 1003, 015€,3192,4030,6847,0105,1 ) ;Nothing pending or timer service, ;sgggg ;25672 1001, OD1E,3(92,4030,6047,0105,1 100 =mrmrme—n————— S el : PUSH,VA_D+R[R1J+1, 125680 ;gggs; 633 3;5 :25684 =0 :22685 125686 ;ggggg MCTEMP3] _MB.OR.2LiT24[0C], CLEAR FLAG3,NEXT/DS.MOVP.WRITE (N remmm s cm e e AARAR NN n————————— ;. MCTEMP3] _MB.OR.ZLIT24(0D], SET FLAG3,NEXT/DS.MOVP.WRITE :Ditto, but negative source L e tntuvie ettt debontatnietide m——— D MCTEMP8).SR.1,FLAG2?, sLoad DREG for potential sign byte NEXT/DS.MOVP.FLAGS srewrite, what is <Z>image? Eggggg DS.MOVR.WRITE : 1051, 085C,05B8E,4034,C447,052C,E 125691 165692 VA RCR31,PUSH,SET FLAG2, NERT/DS.WRITE VA Base address, init, < <image, WRTTE data S 626 Decimal String H Dest. CLOKX Rev 13.00, Clock rate = 160ns : AN RN R KRR N AR is written, A AN from above, =00 A RN NN R AR AR AR KRR R Rk R AR ARk Rk kAR AR FLAGS have (C data. FLAG2?: =0*0 is dest. is nonzero, <NZ> are ok, t =1%0 is dest. is 2ero, check for =0 written to dest. and change FLAG3 & sign byte to positive. 2) From -0 change, FLAG3?: =0+0 is dest. is +Q, <NI> are ok. =0%1 is dest, is -0, dest._+0, FLAG3 0. We BUT tn ASHP code after tixing sign nibble & FLAG3 Tf necessary. RN RN R AR RN R AR A NN RN RN R AR AR Rk ke ke Rk Rk DS.MOVP.FBAGS CLEAR FLAG1,FLAG1?, {BUT on old FLAG! value (PSL<C>), NEXT/DS.MOVP.EXIT 1evs mask_0 v ¢ o ;0*)oemcmnnmmamen e WRITE ZLITOCOCD,S1ZZ2ECBYTE], <N>image_0, dest._+0 in sign byte CLEAR FLAG3,NEXT/DS.MOVP, FLAGS 11‘0-------------- - o . VA D+RLR3], FLAGS’ ;Load VA for possible sign byte EAD, NERT/DS.MOVP. FLAGS :1s dest. pos =0* DS.MOVP, EXIT: T e 1m0 LT B o B 0 Ot I P 8 . T | 627| Secting CC" 2 overlapping splits occur: ) Page Setting (C P TR TS T AN R AR o1 A RND — OO 00 Vom»um—he'ooo-uo-mz\wm—-»o-ooovombm .T0C ' CO O NN ONONONON U AT SN SN NN TN ¢ 1002, 0t+9,00%6,4030,0047,0100,0 ANV u 1070, 0884,0036,4034,8387,0138,€ P S J 100C, 0080,0021,04F4,(46A7,0100,8 U LW T Ui i uiun v i v TN N SN N TN N SN TN TN N N TN SN TN NN NN TN N NN OO N L v 1009, 0918.0€37,0000.65D8,0100,8 T TR TR IR I PR TR U 1008, 0C08,0036,45F0,0047,0100,0 16:30:35 PR R Decimal String J 28~NOV=-83 L 1M(Q1) OOOOOOOOOC 00OV 000 PONIAINONININDNI L) —b b b b b b =3 2 DECMAL . MIC MICROZ2 N : CMTO9R . MCX Nf\)f\')r\)f\."\l’\)'\)NNMNNNNN’\)NNNNNNNNNMT\JNNNN‘\M‘N LAY I TV ; TR B o O T B A e e e B TR Y SET FLAGO ,NEXT/DS.MOVP,EXIT T Y W § Y ) T (=0%0) or neg (=0+1)? % ; ; e c—tem—— CMT098.MCX DECMAL MIC MICRI2 1M(QD) Decimal String 28-NOV-83 ‘§§;§3 .T0C '* 16:30:35 K CLOKX Rev 13.00, Clock rate = 160ns Page : CMPP3 Decimal String ;*Ylfi*kt*********t******i‘(i(fi‘(*fitfi***it***tt*ttt*t**ttt*t**t!*ti*w**tt*t** ;gg;gz ; CMPP3 len.rw, srcladdr.ab, srcladdr.ab 325735 "3??%9 125738 in MOVP code to evaluate operands and perform : CMPP3 begins o preliminary initialization. ; CMPP4 initializes and enters (MPP3 code at DS.CMPP3: if the source ; lengths are equal or the longer source has leadln? zeroes, (MPP3 ; microcode will read the source base address from TEMP1 & TEMPZ :52;2% : a source and bumped the ''base address'' up to avoid extra $29744 c. : Sources are read, signs remembered, and a isrc.#2i=lisr41! 125746 :gg;zg : : In the Input banner, '+'' means for CMPP4, 3257245 ; instead of GPR1 & GPR3 because CMPP4 may have read leading bBtes from : ; 105752 125753 H : 125754 Input Source 1 address Source 2 address TEMP1* TEMP2* Source 1 address (see above) Source ¢ address (see above) FPD : MTEMPS 126756 ; DREG 125758 : 125757 ; : :35759 . 25760 : : 125763 ; 125761 ;25762 125764 :25765 125766 ;25767 125760 :25799 125770 25771 .e577¢ 125773 125774 : ; : : H : : : H : : : ; 125778 ; 125779 =1 Source Length STEPRC L/2 Length Checked for reserved operand <Above, plus:> L/e Source 2 sign Sgurce 1 sign FLAG3 sybtraction is zero (src=src), =1 {f subtraction result is ngnzero (src<>src) =0 {f Source 1 {s zero =1 1f Source 1 is nunzero Misc. data READ addresses FLAG2 DREG VA MDR TEMP3-TEMPS | tault FLAGO FLAGT ; 223775 125776 125777 Resources i GPR1 GPR3 : 125755 READs. ; subtraction done, 125749 125750 125751 ! ; ;25739 125740 125741 { : CMPP3"' :'55?31 125732 628 =0 if result of source Data Holds source 2, memory format, | | | sign nigble zero, LSB in byte#3 of TEMP3, MSB in byte#0 of TEMP6 ; : RTEMP1Q-RTEMP13 Source 1, momorg format, gign nibble zero, LSB in byte#3 of : FPDOFFSET TEMP3, MSB ir. byte#0 of TEMP6 i | _iL1ibred.a U s SN NN NN CO Lo 0000000000 NN W — O AL 10, 1,0, lV, LV, 1V, ] T T Decimal String P - 16:30:35C 28-NOV~83 MO POROAONINIIVND (MTO98.MCX DECMAL MIC MICROZ . ’ 3 . . ’ . L 1 Page PCLOKX Rev 13.00, Clack rate = 160ns MPP3 Qutput GPRO GPR1 GPR2 GPR3 gase add., source 1 Base add., source 2 NZ modified, VC_0 cC 3222302288322 0 22282222ttt 22z ettt tlit ittt ) 629 (M7098.MCX MICRO2 1M(QD) 28=NOV=-83 Decimal String DECNAL MIC 16:30:35 Mo CLOKX Rev 13,00, Clock rate = 160ns : (MPP3 Page ;25787 REGION/DECMAL.R1L,DECMAL.R1H/DECMAL .R2L,DECMAL.R2H :gg;gg DS.CMPP3: MCFPDOFFSE)_ZLITOL20,3, 125790 100, 0186.C£37.0820,A047,0904,2 350« ;gg;g% NEXT/DS.CMPP.REE 125794 =00 ;25795 1040, 0180,0¢37,0860,00A7,0106,1 ;25796 ;Sgggg 125799 225800 1041, 001(,3592,4A72,8047,0506,4 ;25801 ;Jgggg ‘Load FPDOFFSET, anything pending? COUNT OR INT TIMER?,SIZECLONG], ; 225791 ;00— mer e v e m— CC_ZLITOCO] ALUS?,SIZELLONG], NERT/DS.CMPP.SRC2.SI1GN :RETURN-1 from Src.#2 READ, guess tsrc.H1ssrc. 42, what is src.#2 sign? ;0] mmmemmmem ———————————— RLTEMP10] MCTEMP3],CLEAR FLAGS, RETURN- from Src.#1 READ, PUSH for WX .NE.0?,REXT/DS. CMPP.SRC1.1, PUSH ‘source 2 READ, move src. #1 into RTEMPs, scheck source#i for zeroness : gggg DS.CMPP,R?S . ; gggg ;25809 v ; VA_D+RLR11+1,PUSH,NEXT/DS. READ, Noth1ng pending or timer, READ src.#1 1R22=0>? ‘spliting on opcode TB e L OLL T: PUSH, INTPEND OR TIMER?, ;Check for ints,/timer, return=1 or NEXT/IE.SERV.IP.TS2 spack up 3 4 1065, 005(,4592,4032,0047,0107,D T T IR R 1064, 0084,4592,4A72,0047,0107,C DU A i T T 1043, 0480,0036,4AF0,0047,04F7,0 125806 PR TR TS 1 1042, 0880,00A1,0674,44A7,0505,D g-g---n----—-——-—--~~—_--u----- R[TEMP11] MCTEMP4] WX.NE.O?, NEXT/DS.CHPP,SRCT.% - - S " O ¢ ;Source 1 is nonzero, don't ‘BUT on this longword =0 DS.CMPP, SRC1 2: A L L L T e T Y P Y ) RCTENP12] MCTEMPS,WX.NE.07, NEXT/DS.CRPP.SRC1.S O 107C, 0084,5592,4A73,0047,0108,C 2€5(,5592,64033,0047,0108,D 4 LTEMP11J MCTEMPL] SET FLAG3, NEXT/DS.CRPP,SR.1.2A L 107D, T DS.CMPP,SR(1, 2A: D T L T L LY fi[TEMP12J M[TEMPSJ SET FLAG3, NEXT/DS. CRPP,SRCT, $A Y L :Source 1 is nonzero, don't BUT on this i Longword 630 .~ [ _— (MT098,MCX MICROZ DECMAL MIC -——— 1M(C1) —_— 28=NOV~83 Decimal String 16:30:35 N1 CLCYX Rev 13.00, Clock rate = 160ns + CMPP3 o Page 125834 =0 125835 DS, CMPP,SRC1.3: 125836 108C, 0484,6592,4A73,4047,0104,4 108D, 005C,6592,4B873,5847,0104,9 ittt iaiattitnialdntale ey 125837 :ggggg RCTEMP13] MLTEMP6] ,WX.NE.O?, NEXT/DS.CRPP,SRC1.4 E%ggzg DS.CMPP,SRC1. 3A: :25842 RITEMP13) MLTEMP6],SET FLAG3, :sggzz ALUS? ,NEXT/DS,CMPP.SR(1,SGN :Source 1 was nonzero, don't BUT on this ;portion, what 15 source 1 sign? 195845 = :%ggzg DS.CMPP.SR(C1.4: 10A4. 0480,0036,4870,1847,0104,9 ;Sgg?g H 10A5, 0458,0036,4870,1847,0104,5 - ALUS?,NEXT/DS.CMPP.SRC1.SGN }what is source 1 sign? ) ;25850 ;gggg} R S ettt smamam———— : SET FLAG3,ALUS? ;Source 1 is nonzero, ditto 195853 125854 = ;25855 DS, CMPP,SRC1,SGN: 125856 1049, 0408,8001,A67D,8107.2101,5 ) 1048, 0C48,8001,A67D,8107,0101,5 ) Rttt ettt e e D D e S DL : 125857 CLEAR FLAG1,IR<2-0>?, :Sgggg NEXT/DST CMPP.SRC2 125861 e ;25858 125862 ;ggggz STEPC_D_M[CTEMP8],.SR.1, 3ET FLAG1,I1R<2=0>7, STEPC_D_METEMPBI.SR.1 ;Positive, FLAG1_0, load STEPC & DREG ;for source 2 READ, which inst. are we? ; :Negative, FLAG1_1, ditto 125865 =101 :25866 DS.CMPP.SR(C2: 125867 1015, 0010,00A1,0034,(4A7,0105,D 1017, 0010,00A1,0030,84A7,0105,0 110 ememmcnecnnane wmemmmm————— : 125868 ;Sgggg VA_D+R[R3J+1,CLEAR FLAGZ, NERT/DS.READ 125671 (11 wemmmmm————— m—eamamemere ———; ;25872 ;25873 VA D+RLTEMP2]+1,CLEAR FLAGZ, NERT/DS.READ JCMPP3[35], Point VA past sign byte, ssub. result FLAG_0 for when we return :CMPP4L37], Point VA past sign byte, ssub. result FLAG_0 for when we return 631 MICROZ2 1M(QM1) 28=-NOV-83 Decimal String v 10BC, 0080,6040,4A63,5007,090C,2 358« U 108D, 0450,6040,4023,50€7,010¢,2 VIV IO U 10B5, 0450,5040,4023,0047,0108,D AW U 1084, 0880,5040,4A63,0047,0908,( 358« AN U 10aD, 0€50,4040,4022,€047,0108,5 N0 0 O N0 00000 VOO0 OO0 OO0 0V V00000 COC0CDEOMAVCO NN NNNN PONIFVTUNINONIND D b b o 2 3 2 B D OOOOOOOOOO VO NOMN PHANND = OO0 NN NNV =2 O 0N own:flunrac»oarqonn:flnn»ac»oarflo“n:wnn»dc»oarvownb U 10AC, 0080,4040,4A62,C047,0908,4 358+ o Wo®eBa®pBgsBota®oBeWeTo®etoteBataSatototn U 1063, 0440,3000,4A62,8047,090A,( 358+ vt il L iLawlasuauauiviviviLvi U UL Liln iUt 0 DO OO0 OO O 0 00 00 00 £ Co 0o 00 0000 00 00 00 G0 00 I GO 0000 00 COC8 00 00 00 0o 00 U 1061, 0C00,3000,4A62,8047,090A,C 358+ e MaBe de@ate Be s Ba e totoDeSeNetePa e tate o RoBo (MT098.MCX DECMAL .MIC MUALALANININLTBNUALNAIAININL AN NINLNINININIAINLNI NI NINININININI AL TVN NN NN NINLNAS NI R AN NP RO ND RO : e ma e 8 s ®. 80 e BB : 16:30:35 8 2 CLOKX Rev 13.00, Clock rate = 160ns Page 632 + CMPP3 ttt*t**t***tt*t*k*k*fii**i********t**it**itti*tttttkt'n*t*'t'tttttttttt ; Sources have been read, here on source 2 sign split. ; =01 : =11 is source 2 is pos1t1ve. is source 2 is negat1ve. a nonzero result. ; We subtract the LONGN RDs looking for ; have one, we don't split on the rema1ning subtracts. Once we 'tt*ttt*ttttwt*tkttt***w**t***i*******t***t**k*************tfl«tttfittttt =01 DS.CMPP, SRC2 SIGN: - NB (M[TEHPSJ-R[TEMP1OJ) 8CD, WXTNE,07,CLEAR FLAGO, NEXT/DS.CMPP.SUB. 1 .02, 8 O 0 0 0 ‘Begin subtracting, check for inonzero result ipitto 0 0 e UB (MCTEMP4J=RCTEMP111=ALKC: .BCD, WXTNE.0? NEXT/DS.CMPP.SUB,2 ;Last sub=0, next TEMP, BORROW 1 _______________________________ SET FLAG2, 1Sub>0, next TEMP, BORROW, don't split Wb_(MLTEMP4 J-RLTEMP112-ALKC). BCD, NERT/DS.CMPP,5SUB.2A . : =0 DS.CMPP, SUB 2: UB (MCTEMPSI-RCTEMP121~ALKC) .BCD, WXTNE.0? ,NEXT/DS.CMPP,SUB. 3 ;Sub=0, next TEMP, carry BORROW DS.CMPP, SUB 2A: SET FLAGZ, W8 (M TEMPSJ-R[TEMPTEJ-ALKC) BCD. Sub>0, carry BORROW, don't split NERT/DS.CMPP.SUB.3A =0 DS.CMPP, SUB 3: NB (MCTEMP6I-R[ TEMP131~ALKC) .BCD, NE.0?, ALUS UNSGN NEXT/DS.CMPP.SUB.LAS ;Sub=0, Last TEMP, carry BORROW, save BORROW in ALUS DS.CMPP,S?B3A: T F% ' 1Sub>0, Llast TEMP, carryBALUS_BORROW SE WB_ (M rsnéo] RCTEMP131-ALKC) .BCD, ALOS_UNSGN 1 N N NO N D AN NN WAL N 3 OO O I B AN IS S B B O BN BN B =2 O O 00 IO~ LN LN =3 OO0 i uiviviuviviuaviiiuiuiuaw I OHD < n PO VAIVIUILALILN 10VQ DOVOOVO0OO00O0 OO0 0 OO0 O OO0 O000 OO LIAN AW U D00 NN IS AN DD =2 v 1026, 0580,0037,0130,40A7,003F,9 NNNNOOOOOOOSONON O LA IA U 102¢, 0080,0036,4130,0047,003F,9 O S U 106F, 00E4,05B7,05F4,0047,0102,C I S U 106D, 04E4,0587,05B4,0047,0102,0 D00 00O OO0 OO0 O LA L R T T T T T T T o o N U 103, 0C54,0587,0874.,9847,0106,D NV —= O 00 Decimal String U 10C2, 0484,0587,0874,9847,0106,D ¢ 2 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : CMPP3 28=NOV=83 ' LW M DECMAL R AL : MCX CMTO.98 FORINIAINLAININBNVOUNIN NJIRDNL NV NV NVNJNAINLAINONLNDNININL NI ANLIVALTUNININVNS I PONIND : Page +CMPP, SUB LAS: RER?J0.ALUS?, NEXT/DS. CMPP, FLAGS ‘Result=0, begin to finish inst., :Was there a BORROW? : SET FLAGZ2,R[RC1_0, ‘Result>0, ditto ALUS? '**tt*t**i**i**tt****t*t*tt*tt**tttttt**ttt*t**t*t*ti*t*******t****ti** ; Subtraction done, data saved in FLAGS: ; FLAGO = 0 it source ¢ is pos., 1 if source 2 is neg. : FLAGI = 0 if source 1 is pos., 1 if source 1 is neg. H FLAGZ = 0 if 2|-o1|. 1 if 021<>:1: ; FLAG3 = 0 if source 1 is zero, 1 if source 1 is nonzero s Here from ALUS? BUT on BORROW: : =01 is BORROW=0 : '11“;s RORROW=1 (CARRY=1), 142! >= 41! (CARRY=0), !#2! < 141! . (subtraction was the '‘wrong '*reztt;t******kt*t****ttt******k***t***ttttttW****************t******* DS.CMPP. FI(.)/;\GS RCRO] 0.CLEAR FPD,FLAG<2-0>?, :Clear GPRO, FPD_0, split on sub. R[ROJ 0,CLEAR FPD, FLAGT? ‘Clear GPRO, FPD _0, what's source 1 SRR AR AR NEXT/DS.CHPP, FLAGS. 0K 0 RN AR R AR NP AR RN R RN AR AN iresults R A AR AR R AR AR ARk Ak : Subtraction was wrong: if Source 1 was positive, : regardless of source 2 sign. ke then Src,.#1 > Src.#2 If source 1 was negative, then ; Src.#1 < Src.#2 for any source 2 sign. : currently is zero (0)), Load CC 7f necessary (CC *ttt*ttttt*ik**t*ttt*t*t&ktktt*t*******t*t*t******t*tt*******ttt****** 1RD1 T iSrc.#1 > Src.#2, CC is already zero, Tev[RDwx o o B 0 CC ZL1T008.1,1RD1 iSPc.#1 < Src.#2, Load CC, **IRDIw» U 1023, 0980,0¢37,013%0,20A7,003F,9 U 1024, 0580,0C37,0130,4047,003F,9 U 1025, 0080,0036,4130,0047,003F,9 U 1026, 0580,0¢37,0130,40A7,003F,% . U 1027, 0080,0036,4130,0047,003F,9 g 2002 : CMPP3 FLAG3 =0 1t source 1 ; by if not. is negative. OOQO The BUT splits are as follows: 00: Sources are equal 01: Sources are equal if Source 1 is zero, else src.#1 > src.#2 10: 11: Sources are equal if Source 1 Sources are egual is zero, else src.#1 < src.#2 00: Src.#1 < Src.¥2 B BB 01: 10: 11: Src.A1 > Src. 42 Src.A1 < Src.#2 Src. 41 > Src.#2 tki****tt*t****kfifit*i***t*t*ii*t*i(i***t**titttttttttttttttttitttttt DS.CMPP.FLAGS.OK: ;0 €C_2L1TOL4],IRD1 00 =mmmmmemmm e mm—n——————— ———— FLAG3? ,NEXT/DS.CMPP,=0+0 iCC already has 0 loaded (guess for :Source | nonzero case), is source 1 :nonzero’ P N ITOte Y AR, 101 mmm did we icC_data ata f for sourcel<>Q, 160, did icorrectly? guess e m———— —em——- —menanan : cc ZLITOL4], IRDY J100= s 6011 DS.CMPP,EXT1: gg}% :101 R tc _ILITOC8.1,IRD?Y eS A AR LR L AL LI : For CMTO66 ; This entry is for DS.CMPP,FLAGS gg}g IRD1 6016 ;11Qrmmmnenmovsnsncenenancnannan: 28}; 634 FLAGO =0 if source 2 is positive, =1 it source 2 is negative. 6005 28?8 o =1 it nonzero. FLAG] =0 if source 1 is pos1t1ve. =1 if source 1 NEXT/DS, CKPP.=0+0 6008 is zero FLAGZ =0 1f sources are equa[ -‘- N . -.~...-.-.-.~.-.~.....~.s.-.-.~ =000 a2 dssdsss s Subtraction was the correct way, here on FLAGS2=0> split, where: 8882 2889 Page CLOKX Rev 13.00, Clock rate = 160ns 2223220220 0222 232033321 222 32X 2333231323303 232 202420220 D000 <O OO OO0 VO 0 VOCOO000 000000000000 N NN~ OOmNO*\JIJ\LNN—‘O‘OQNO‘W&WM—*OCQ’VO‘W&\ 5 D 2 iCC is zero already €C_2L17008.1,1RD? 6019 DS.CMPP.EXIT 6020 Memmmccmccnnnneeccenesesecane H 6021 IRD1 sCC is 2ero already i U 1022, 0080,0C37,04F0,40A7,010C,6 5 <O OO0 D000 OO0 OO0 0O O 0O U 1021, 0880,0036,44F0,0047,010C.6 e ®e e Beme e BeBo BothobetaeBoohoto SeloateaSee SodetoteteneRaRoRe®aDoWa® SotoNeBsSs®ebovsneme U 1020, 0980,0€37,0130,20A7,003F,9 wwuinuiivuviviuiuauviviviuTuiuauiuivioaLauivi Decimal String M ; . MIC DECMAL 16:30:35 28-NOV-83 1M(01) AINURUAIPORLAININANININL NI NN RV PVPLNI N PL U NI NININININLAINININL NN LN NINVNI DT PRI AVNUNINOND : MICRO2 e B : CMT098.MCX CMTO98.:E§ DECMAL., MICROZ2 1M(01) Decimal String ) 28=N0OV=~83 INERAAE R 126022 E 2 AR RN AR 16:30:3SCMPP§L0KX Rev 13.00, Clock rate = 160ns IR KRR R AR R IR RR AN CRRAKRR Page E 635| Rk h R hkhhh ke : Here on FLAG3? split: =0 is src.#1=0, =1 is src.#1<>0. (C is : set for sr¢.#1<>0 case (either 0000 or 1000). IRERR AN AR R R AR RN RN IR AR R AR RRR R R RAR KRR ARKRARRA R K ;26053 126024 126025 ;26026 =0 10¢7, 0080,0036,4130,0047,003F,9 :Sgg%g 106031 ;26032 ) N iQemmemmmomecmeaees e ; CC_ZLITOL4],IRDT e IRD1 TM < 10c6, 0980,0037,0130,20A7,003F,9 < 126027 DS.CMPP,~0+0: 126098 - H (MT098,.MCX DECMAL.MIC MICRO2 1M(O1) Decimal String + CMPP4*! :%28%2 LT0C " Decimal String 326035 RRRA R :%gggg : CMPP4 srcilen.rw, srcladdr.ab, srcllen,rw, srcladdr.ab : R IR AR R kKR k ek ko AR R R R A R AR AR AR 126039 126040 126041 : 26042 : ; ; : :52822 ; patch things up and branch :%ggzg ; ADDP4 and SUBP4 use this code for preliminary initialization. :26049 : :26043 126044 ;26050 126051 H ; : : 226056 126057 : : 126058 126059 26060 26061 126062 DREG ; H ; 226073 : FLAGO : 1EMP? Base address of source 2 to be i 0 | 0 ; 126080 H 126084 Output : GPRO A used for source READs used for source READS Source Lengths GPR1 Base add., source ! GPR Base add., source 2 GPR : R 0 1t src.#2 len, > src. A1 len. 1 if src.#1 len. > src.#42 len. | (If leading bytes <>0:) : 2L170018.] dur1ng seperate Flows (leadin? byte READS) Ditto Base address of source 1 to be DREG TEMP1 : :56083 L/2, source 2 Base add., source 2 L/2, source 1 126078 ;26082 Source 1 address Source 2 Length L/2. source GPR3 STEPC MTEMPS 126081 Returns date Used for XB READs (1f leading bytes =0 or lengths are equal:) Output GPR1 Base add., source 1 H : ; ) Holds Istream PC source 1 Length : : 126079 . Misc. data GPRO TEMP1 FPDOFFSET H : Source 1 length BCDSIGN evaluation READS TEMP? ; 126069 :56070 into CMPP3. ALUS VA TEMP2 TEMP3 TEMPS : ; 126075 :528;9 Resources : : : 126067 126068 126074 MDR MDR PC H 126071 126072 Input : : 126063 : 26064 :sgggg After initializating, we split on the difference in the byte length of the sources. [f equal, we branch to (MPP3 code, else we read the leading bytes of the longer source. When a nonzero byte is read, the absolute value of the lon?er source 1§ known to be greater ; than the shorter source and all that remains is to read the ; sign bytc. If the leading bytes of the longer source are zero we 126052 126053 126054 126055 | i Page 6361 16:30:35CMPP£L0KX Rev 13.00, Clock rate = 160ns 28~NOV~83 126036 . C R R Mouified R ——— e A A e bt mvem - en o i ; ' A seemem— ——— el e i I : . CMT098.MCX DECMAL MIC MICROZ2 1M(01) Decimal String 28-NOV-83 16:30:35 6 2 CLOKX Rev 13,00, Clock rate = 160ns : (MPP4 Page 637| ;56085 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX.R2H ;22839 DS. CMPP4: 0389, 0485,2E5E,0190,4047,0012,0 126088 RCTEMP11_SEXT (MCMDRJ), :ggggg NEXT/0S. ADD :26089 SIZELWORBI,LO0D INC BRA?, iSave len#1, get add# 126092 =00 oa27c, : :52832 DS.CMPP4. S2: 0085,2592,4180,8047,0410,0 126095 :ggggg 126098 027D, 0885,2E5E€,0190,€047,0412,0 027E, 0480,1002,6B30,D8E7,010D,A ACTEMP2] _MCMDRI,NEXT/0S.RED, PUSH,LODTMINC BRA? ;01 mmmmmmmmeee wmmmsmcaseee ———es; 126099 :26100 RCTEMP3]_SEXT(MCMDRJ), SIZELWORD),PUSH, 22108 10 126101 Esg}gg ] 156105 :Save Add. #1, get len. 42 STEMP3_Length#2, READ add.#2 LOD INC BRA?,NEXT/0S.ADD D_MCTEMP11.0R.RCTEMP3],1P.TS? ;OR lengths for check, ints. pending? :Sg}gg .GEGION/DECMAL.R1L.DECMAL.R1H/DECMAL.R2L.DECMAL.R?H 126109 10DA, 0D80,0C33,8A30,F847,010D,F 126110 :Sg%}; 126113 1008, 0480,0036,4AF0,0047,04F7,0 :26114 :gg}}g ;Qm m m e mm——ee e e —e——— : WB_D.ANDNOT.ZLITO[L31.], WXTEQ.0?,NEXT/DS.CMPP4.S3 {1-mrm ;Nothing pending, lengths ok? e em———— ; PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.IP.TS?2 :Something pending, FPD=0, return =1 ;it timer service = 126117 ;gg}}g DS.CMPP4. S3: 0c80,0036,4030,0047,00FF,8 25215? NEXT/IE OPER.FAULT *Bad. reserved operand fault 100F , 00E¢,2592,4034,4047,0101,1 126122 126103 le=mmemwes commmeumemn . ———— R[R1J _MCTEMP2),SET FPD $GPR1_Address #1 i 100E, (MT098,MCX DECMAL MIC MICROZ 1M(01) Decimal String 1011, 0885,2592,4884,C047,0105,8 28-NOV=83 126124 126125 126126 16:30:35 H ¢ CLOKX Rev 13.00, Clock rate = 160ns : CMPP4 o= e e s—e e; RCR3I_MLMDR], IR<2>? 126127 10E8, 0486,958E,4280,C047,010F,E 10E9, 0084,1591,8031,8047,0103,1 MLTEMP9] _RLTEMP3], WB<0>?, 126130 ;Sg}gg NEXT/DS. TMPP4,ADD Esglgz DS.CMPP4 . REE : RCTEMPG]_MLTEMP11.SR.1, :26135 ;gg}gg B NEXT/DS.TMPP4. (1 ' 1 Page 638 . :GPR3_Source 2 address, which inst, sare we? 1ADDP4L20] or SUBP4L221, is dest. odd? $CMPP4L37], TEMP6_L/2, src.#1 126138 ;26139 =0 10FE, 0580,0C37,0030,0047,0101,A :sg}zg DS.CMPP4 . ADD4 : 126142 €C_2LI1TOLO], ‘{Even dest., PSL<C>_0 ;gg}zz NERT/DS.CMPP4 . ADD4 . 1 10FF, 0180,0C37,0030,08A7,0101,A 126145 ;sg}zg ;1emmeemans OO EEEELEREEEEEY :0dd dest., PSL<C>_1 cc_zLiTor1l 101A, 0C86,85BE,4030,4047,0102,8 352}23 DS, CMPP4 . ADDG . 1 Egg}g? fi[TEMPB]_R[TEMP1J 126152 1028, 0084,9592,4032,0047,0111,2 ;26153 ;26154 ‘Copy Source 1 pointer jmmeememememmamam—emeana———————— : RLCTEMP8I _MLTEMPO], NEXT/DS.ADDP4 ;Source 2 § Dest, tengths are loaded, ;continue in <ADDSUB>P4 | 28-NOV-83 16:30:35 2 l CLOKX Rev 13.00, Unequal Llengths 2N MICRO2 1M(Q1) Decimal String becimal String ¥o ¥s Ne ¥o¥o e o Vo N e Yo N o Ro NoNe N Na Yoo Te Yo e e o el e o . : MCX (MT0.98 DECMAL.MIC . e 126155 .Toc :26156 126157 :26158 ;26159 :26160 e R :26161 126162 126163 e ;26164 AR RN R . ’ . . . [ . . . '} . . Unequal lengths'' AR KRR AR RN AR AR AR KRR R R AR A AR AR AR R AR AR AR ARk AR CMPP4 continues here after spliting from <ADDSUB>P4, Ak kb ks [f byte lengths of the sources are equal we split to (MPP3 code. If the byte Lengths are not equal, the leading bytes of the longer If all the lead1n? bztes are zero, we split to, string are read. CMPP3, else we read the sign byte of the longer string to determine which inequality (C to set. SRNRA . Page Clock rate = 160ns IR AR R R R AR R IR AR AR R AR KRRk ke kbbb kkk ke k T :26165 126166 DS.CMPP4.C1: ;26169 88199 Eg ;g 35 7% =00 126176 RCTEMP7]_MCTEMP3].SR.1 ------------------------- “ewew EPC_MLTEMP6)~RLTEMP7], GNDTMCMP?,SIZELL.ONG] }TEMP?_L/Z, source 2 STEPC byte length differences, split ;on polarity of result U 1078, 0C45,A592,4034,0047,0104,D :g N O N U 1036, 0u80,6000,0861,C107,0907,8 374% R R 126167 126168 I U 1031, 0884,3591,8031,€047,0103,6 ;g v 107A, 0405,A592,4034,0047,0103,C ;26180 ;S g; :26183 ;26184 126185 Po e e o Yo No e Xo ¥ u 1079, 0880,1001,A030,8107,0106,0 O 126179 RCROI_MLPCI,SET FLAGO, NEXT/DS.CMPP4.L1 120188 e ES gg 126191 U 1046, 0480,7000,0031,8107,010A,E U 104D, 0C80,05BE,4034,4487,0104,E 126192 ‘ggigf ;Store lstream P( ;01 mmmmmmmvm—m—————————————— ; STEPC_D_MLTEMP1].SR.1, NEXT/DBS. CMPP4, 34 J(Src.#1 Len, = Src.#2 Len,) ;Adjust & enter CMPP3 code ;10=====mmmmmemcossecemiecennne ; RCROI_MLPC],CLEAR FLAGO :(Src.#1 Len., < Src.#2 Len.) PC_RCR3] ‘Point XB to base of longer string ;26186 = U 103%¢, 0880,058B€,4034,0487,0104,6 1(Src.#1 Len. > Src.#2 Len.) :Store Istream PC jSeeeeemmemems e ————— e ————— STEPC_M[TEMP7]-RLTEMPG], NEXT/DS.CMPP4 . PRELOP 126195 :32}89 0S.CMPP4L, L1 : 126198 PC_RLR11,NEXT/DS.CMPP4.PRELOP {STEPC _positive difterence between :lengths, loop through excess :Point XB to base of longer string 639 DECMAL (MIC U1 28=NOV=-83 16:30:35 pecimal String ., 0p80,1€13,8020,0008,0105,B U 1058, 0484,6592,4039,0047,008F,D U 1060, 0486,258F,4034,0047,0106,8 u 1068, 0486,85BE,4030,4047,0106,E J 106E, 0086,15BE,4034,4047,0100,E Jo2 CLOKX Rev 13.00, Clock rate = 160ns : fe o e Yo No oo Moo e o RoNe Vo T T6 NoTo o Mo ool oglnalele Lot o ot oo AUNLALNI PV NI PO RV AL NNV NINI PRI AVNV PV NN NI TV NPV NINV NN N NORINLAVAINOTONUNINY = = D D el b 2 b S OO O OOV OOOY OO~ O N S AN =2 O O 00 IO U8 LNV — O D00 O VIS AN OO0 H MICROZ2 1M(01) A T T T e e O L TR TR PR P P P e e TR A A TR PR TR LA LR L (MT098,MCX FUNDALAIC ANLANDANUNUNINLNICJNLNINUNINININS NJAJNUINI NI DN NI NIMINININLAI PN NI NI PRI NI NS NINI N NN NININONI NN : Unequal lengtfis ;**i*ttiQ*ii*kttkkttttttt*ttttt'ittlfittltttittt**titt*t*it*****i*t*tt** ; Source byte lengths are equal, copy base addresses & enter (MPP3. ;*t**t******************fi***********t**t*ttttttttttttti*ttt*t*tti***tt* HAARAALA AR LR :The next two words here hopefully witl be in locations 21052 and 1066 IAARA AL LR LR LS QU.RESV.FIX: Jtteetet force address +tettties; WRITE.UL MCTEMP1],ANDNOT,ZLITOL1], SIZECLONG] sttt++++ force address RCMM. TEMP3] MLTEMPG], NEXT/QU.RESV.EXIT FRAAALIL AL AR R R A4 ; CLEAR SOFT LOCK BIT ; AND UNLOCK HARDWARE INTERLOCK +++tttttn; : RECOVER ORIGINAL FAULTING ADR ; RETURN TO EXCEPTION HANDLER FLOW RA00 000204 34: DS.CMP., P4 MCTEMP2] RLR3D, NEXT/DS.CMPP4.FREE2 :And source 2 length, enter CMPP3 :fitt*!*tttw******t**tttt*ttittitt**tfi*tt*t*ttttt***fltt**t*ttt**tfit**t*t 30 6231 6232 : Source 2 length was longer, the leading bytes read, and all were zero, : Source length_source 1 Ushorter) length, Source 1 base address_GPR1, ; and adjust Source ¢ base address to account for the extra bytes read. 65%2 :ttttttti*ti*ttttQ*tflR*t*tfi*fi*tk*ti!!*ttttiil't*itntltttiitfiiii‘iii***' 6 gggs DS,CMPP4, FREE?: 22%2 MCTEMP8]_RLTEMP1] 6239 :This patch frees up two locations :Copy source length H ottntvtnonietmintrstaentel b L LU Dl fet L L 6240 MCTEMP1]_RCR11, ggzg : MCTEMP8] _RCTEMF1] g 2; 6243 : 6246 gszg : 136349 i | Page 640} ;Duplicate souice 1 length i ; f ; NEXT/DS.TMPP3 H PP mmemmeemeea———— i jmmmmmemmmme e ————— ; : MLTEMP1]_RCR1] ;MTEMP8_source length ;Source 1 base address_GPR1 ' H g g? DS.CMPP4,ELOP.2L: ; 232% Q_MCTEMP?I=RCTEMP6] {QREG_ditference in bytes i U 1074, 0880,7000,1031,8047,0107,8 i : CMTO98.MCX DECMAL.MIC . MICRO2 1M(01) Decimal String 28=NOV=83 126234 U 1078, 0086,2039,0034,0047,0106,8 ;26%55 :52229 326258 16:30:35 K 2 CLOKX Rev 13.00, Unequal lengtfis Clock rate = 160ns RS R R L L R R LR A AR E L 126262 R +HAVE BEEN REARRANGED TO SAVE 2 LOCAYION TO ACCOMODATE ;C(MT066 CHANGES R KRR R R KRRk kR R AL SRR 126268 ; and adjust Source 1 base address to account for the extra bytes read. ;26298 AR AR A R S ;26265 126266 126267 641| ;Source 2 base address_baset+offset, ;enter (MPP3 code STHE TWO ROUTINES DS,CMPP4,ELOP.2L AND DS.CMPP4 .34 126263 ;56264 Page jemmmesensessmmeen. mememesee——- H MLTEMP21 RLR3]+Q, NEXT/DS.TMPP4 FREE? ;26259 126260 :26261 T ) AR A A A ARkl kA ek kR ; Source 1 length was lon?er, the leading bytes read, and all were zero. ; Source length_source 2 (shorter) length, Source 2 base address_GPR3, ,'t*t*t**tt*t*t*t*************t****************tk*tt****fi**i*l***fi*i*iii :262 ;26271 DS.CMPP4 ELOP, 1L : U 107€, 0086,858E,4030,047,0108,6 U 1086, 0C86,25BE,4034,0047,0108,E U 1088, 0880,6000,1031,C047,0109,F Esg%;g 126276 :Sgs;g 126279 :Sgsg? :26282 U 109F, 0486,1039,0034,4047,0100,E ;26283 126284 MLTEMP8]_RLTEMP3)] jmmmmmmmeme MLTEMP2]_R(R3) {MTEMP8_source length ee : :Source 2 base address_GPR3 e L; Q_MLTEMP6I-RLTEMPT7] jmmmmmmm ;QREG_byte length difference e mmmmee——————— ; MCTEMP1]_RLR1]+Q, NEXT/DS.TMPP3 iSource 1 base address_basetoffset, :branch into C(MPP3 microcode ' T MICRO2 IM(OT) 28-NOV=83 Decimal String NINLNL NI NLNINLAUTUNININVNLNI NN NINVCLTI NI NINV NI NPT (MT098.MCX DECMAL . MIC ;26285 16:30:35 1 AR R - CLOKX Rev 13.00, Unequal lengtfis R AR KRR Clock rate = 160ns R A AR AR Page Rk ARk R AR E AR AR KRRk ARk is clear if source 2 is longer and set if source T is longer. ; FLAGO ;26286 ; PC points to the base of the longer string. ;26287 126288 ; GPRO has the Istream PC, 126289 R 126290 e R R A AR AR AR LA AR AR AR R AR LSRR AR AL H 2581 0S.CMPP4 .PRELOP: 10AE, 0586,CC37,0030,9047,0110,2 : 253% MLFPDOFFSETI_2L1TOC18.] E 6295 SEER AR AR RN :26297 : =1 26296 N RRR AR AR R ek ARRAR KR AR AR RRA KRRk ; =0 1s data is left to READ in string, or first READ. is STEP(=0, no more data left. SHRRRRNE R ERRRE R AR TR = DS.CMPP4,LOP: R RRA R R AR R AR IR RN I Rk A R AR AR EREAD first/next byte, is it nonzero? .1 PC_RCROJ,FLAGO? [ JRestore PC WXTNE,0? ,NEXT/DS, CMPP4,LOP. SPL T PR} TR =0 nhh W QB_ZEXT(XB) PC_PC+1, RA AN AR AR A AR AR AR AR AR AR AR AR A Ak kA ARk ko kA ALl leading bytes were zero, PC is restored. =0 is source 2 length was the longer of the two, so the source 1 length is the amount [eft to be read. =1 is source 1 length was the longer of the two, etc., 'tsig:***i**fiii**i**fifiiiilQ**i****ki***I***i&**i******fl*fitt*‘*tlt*iit"‘ PP = OO0 NC NSNS = OO0 NONN S NN A N AN NU O PUNIND 3 b s b b b md ik ek =2 D D OO OO AN CAT A NN N AN U U AR R U : OO T S 1111, 0089,3001,A03D,8107,0107,¢ L PR T N 1110, 0880,1001,A03D,8107,0107,4 OO :2630 TR P 1103, 0480,05BE,4434,0487,0111,0 12630 Ay 1102, 0481,7016,4A4D,A047,0111,A PUNLNUNINLAINININY R < :26299 : g%g = OO 126298 {CMPP4 (seperate flows) IANDE code Qnommmemanmmanona—————— —————— ; STEPC_D_MCTEMP11.SR.1, *STEPC_DREG_shorter Length/2 $TEPC _D_MLTEMP31.SR.1, iDitto NEXT/DSTCMPP4.ELOP. 2L NEXT/DSTCMPP4 ELOP, 1L ‘continue adjusting for CMPP$ 642 0480,7001,0034,C4A7,0108,0 U 1080, 0484,0587,0004,8050,010C,4 O U 111F, 0480,6001,0034,44A7,0108.0 LN U A N A A U AN AN N N AN N N N N R AN LR A N N D5 B B B B DN N A LN LN A RNV RONI PO PO N AN AT = OO 00 O LS NN =2 O 000 O NN U 111E, [e o= Yoo oo Mo NoNoNe N NaNoXoNo No To 2o No ToJo Jod u 1118, 0€80,05BE ,4434,0487,0111,E R T T u 1114, 0080,0036,4330,0047,0110,2 o R O N S LT DECMAL.MIC 16:30:35 28-NOV=-83 MICROZ2 MO Decimal String NUNIND NV NVNNLADNONINONO N : CMT098.MCX AOALNI VN PLAJNL PV : M 2 CLOKX Rev 13.00, {lock rate = 160ns unequal iengths Page 't******t*it*****k**fi***fii****fit*i*tu*tttQtttt**t.tfittttittiitttttt**** =0 is data=0, BUT on Step Counter to =0*0 or =0*1 splits at ; DS.CMPP4.LOP:. =1 is data>0, we have a winner, httt*Q*ti**ifit**ttfit*****ttt*******t**t**tt*t**tt****t*****tt**ittfltti =0 DS.(MPF4. LOP SPL: DBZ STEPC? ,NEXT/DS.CMPP4,LOP 1 - G ;0 - o [ S O - -mwmm ;Restore PC, which src., are we reading? pC _RCRO1.FLAGO? A o e e e e e e o o e B o e e G e e § VA_MLTEMP7J+R[R3], NERT/DS. CMPP4,UNEQ. SGN ‘Source 2, read sign byte 1 * VA MCTEMPGI+RIR1] SGN: DS.CMPP4.UNEQ. v - - - - :Source 1, read sign byte - READ,S1ZELBYTE],R[R2]_0 : 643| (MTQ98.MC X DECMAL . Ml C MICRO2 1M(Q) Decimal String 28-NOV-83 16:30:35 N : ¢ CLOKX Rev 13.00, Unequal lengrfis Clock rate = 160ns Page ’52229 DS.CMPP4,UNEQ, SPL: 10C4, 04E1,2592,4430,0007,0112,6 WB_MIMDRJ,ALUS_BCD SIGN.ZERO, 126348 126349 126350 ;26351 =0 FLAGO?,CLEAR FPD 126352 1126, 0884,0587,0874,1847,0104,9 1127, 0084,0507,0874,1847,010A,1 10A1, 0180,0C37.11130,00A7,003F,9 t 10A3, 0580,0€37,0139,40A7,003F,9 RCROJ_0,ALUS?, NEXT/DS. CMPP4.UNEQ €ce 126354 126356 126357 "which source are we? ;0=msmmmmmmmm———————————— e 126353 ;26355 Ev:luate the sign, Wrap up the inst., 000 126358 :26359 =01 :26360 leesesceccmcccscecccccccas aaeey R[ROJ 0,ALUS? iSrc.#1 is larger, GPRO_O 0t e m e ———— ,.1:>:2:, and source 1 is positive ;26361 CC ZLITOL0T, IRDY 126363 R R ittt bttt : ;26362 :ggggg _ Src.#2 is larger, GPRO_O €C_ZLITOL8], IRDY Ji1>121, and source 1 is negative 126366 126367 =01 ;26368 DS,.CMPP4. UNEQ.CC2: ;26369 10A9, 0580,0037,0130,40A7,003F,9 :Sgg;? 10AB, 0180,0037,0150.0047,Ui3F, 126373 126372 R e et L D L L b Lty : €C_ZL1TOL8], IRD ;11i<i2y, and source 2 is positive j1lmmemmmececmceeeecmmeeeeeeee . CC ZLITO(OJ IRD1 _ Jsthici2t, and source 2 is negative 644| : H CMT098 MCX DECMAL .MIC MICROZ2 1M(QN) Decimal String 28-NOV-83 16:30:35 8B 3 CLOKX Rev 13.00, Clock rate = 160ns Page : SUBPG and ADDP6 Decimal String 3263;9 RIRIR R 126378 : SUBP6 sublen.rw, subaddr.ab, minlen.rw, minaddr.ab, diflen,rw, :36381 : ADDP6 addllen.rw, addiaddr.ab, addZ2len.rw, add2addr.ab, 126384 : MULP and DIVP perform operand fetch and preliminary :Sgggg : Instructions initialize and branch inio ADDP4 code, 126389 :26390 : : Input MDR addllen.rw Resources TEMP1 Misc. data DREG ORs Lengths :ggggg ‘22§§§ ;5g§gg 126391 : 26392 126393 126394 126395 126396 126397 126398 126399 :26400 126401 ;26402 126403 ;26604 126405 126406 126407 :26408 126409 :322}? ;26412 : : ; : : : H : H : : : : : H ; : : : : ; : : : = g : SUBP6 and ADDPS" :Sg%;g LT0C ' 2263 645 R KRR Rk KRR AR RN AR AR AR RN R R difaddr.ab sumlen.rw, sumaddr.ab initialization in this code. TEMP2 TEMP3 TEMP4 TEMPS MDR Output Ditto Ditto Ditto Ditto READS GPR1 GPR3 GPR4 Base address, source | Base address, source 2 0 RTEMPS Source 2 Length Destination Length GPRS MTEMP MTEMP FPD cC Lengths Base address, destination Source 1 Length Set . _0 1f destination is even, 1 1f destination is odd Thecked for Reserved Operand Fault Enn&n*nvttttwnnuuttwwwnttwtntu*twtwwttw*twttttwtttttttttttttttwttttttttt ; ; i [ e s H : CMT098.MCX DECMAL . MIC MICRO2 1M(01) Decimal String 28-NOV-83 16:30:35 ¢ : 3 CLOKX Rev 13,00, Clock rate = 160ns : SUBP6 and ADDP6 : Page ;26413 ,REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L,IRDX.R2H 126614 =00 :ng}g DS.ADDPG: ;26417 U 0288, 0C85,2E5E,0190,4047,0412,0 :26418 126419 $26420 126421 ;26422 126423 U 028%, 0885,2E5£,0191,4047,0412,0 u 028A, 0080,0022,6031,4047,010C,E 2266424 :ggzsg 4 i2642v :26428 :nggg RLTEMP1]_SEXT(MLMDR]), Hold Length #1, PUSH,S1ZELWORD] ;routine. NEXT/0S.ADD,LOD INC BRA°, get addr. #1, PUSH for RETURN rom Sth OSR Next ADDP6 microword .15 DS.ADDP6.2: ;0] mmmmmmm e e m e e RETEMPS]_SEXT(MLMDR]), PUSH,LOD”INC BRA?, NEXT/0s. ADD, S1ZECWORD] TEMPS_Dest. Length, READ dest. :address ;10=msmommmem e caecasn e : . D _D.OR.RLTEMPS], :MDR has dest. add., OR it n NEXT7DS, ADDF6. LEN 126431 :26632 =00 326433 DS.ADDP6.2: 126434 U 0294, 0085,2592,4180,8047,0410,0 126435 :ggz%g 126438 U 0295, 0885,2E5E,0190,0047,0412,0 J 0296, 0085,2592,4831,18€7,0120,8 ;00mmmrmmmm—mmmmmmm NEXT/0S.RED,LOD INC BRA? RCTEMP3) _SEXT(MLMDR)), ;26441 S1ZELWORD] 128408 126444 :26445 +Hold addr#1, get length #2 ;0lmmmmmsmmmavammanmna——————— ; ;26439 126440 e: RLTEMP2] _MIMDR],PUSH, PUSH,NEXT/0S.ADD,LOD INC BRA?, 10 RCTEMP4] _MLMDR],IP.TS? :26446 = :Hold Length#2, get addr.#2 YEMP« Source 2 address, anything ipending? 126447 ,DE CMAL .R2H .R2LECMAL :sgzzg .8EGJON/DECMAL+R1L,DECMAL .RTH/D 126450 v 1208, 0880,1002,6180,€047,0010,0 U 1209, 0480,0036,4AF0,0047,04F7,0 jQmmmmmmmmmmmemcececeeeececaes - $26451 bONETERP11.0R, RCTEMP3], ;06454 lammmnmmm———— wammmm—————— :sgzg% 126455 126456 LOD INC BRA’.NEXT/OS RED INTPEND OR TIMER?, PUSH. NEXT/IE.SERV.IP, 182 :D_Source Length OR, READ dest. length, ;RETURN TO DS,ADDP6:+ RETURN-1 or roll back 646 : : (MT098.MCX DECMAL . MIC MICRO2 1M(01) 28-NOV=-83 Decimal String 16:30:35 R H ;26460 ; init, SRR y 10D1, 0084,4592,4674,0047,0102,9 126465 :26466 126667 =0 126668 :52293 126471 ;562;§ doulod J 1208, 00EC,2592,4034,4047,010D,1 2 126474 ;s 2;5 T u 120A, 0¢80,0036,4030,0047,00FF,8 H o] CLOKX Rev 13,00, Clock rate = 160ns Page A A AL L L R R AR AR AR LA : 647: ; AL : Ope;and fetches done, check lengths for legality, do preliminary AR AR A ;26461 ;26462 DS.ADDP6.LEN: 126463 126464 3 : SUBP6 and ADDP6 : 26457 ;ggzgg J 10CE, 0580,0(33,8A30,F847,0120,A b AR AR R R R AR KRR AR Rk RAA N AR RA A, jeeceemccsscsceccssenscscces UB LANDNOT,2LIT0[31.1, ;Are lengths ok? WXTEQ.0? Q==m-smecssccmccocscocneaneeoae H NEXT/IE OPER.FAULT T et e e UL L L CE LY RCR1I_MLTEMP2),SET FPD :Source 1 address {wommesmmssasssesascscsessacoo—. ; RLR3I_MLTEMP4], IR<2-0>? ;Source 2 address, which inst, are we? Te do g e —_ ;26484 26485 . s (i et oy o S 2t o S o e S 4§ :26486 ;26487 126488 126489 iy J 102F, 0885,2592,4035,4047,013F,C 126482 126483 L'\ u 102D, 0085,2592,4035,4047,010D,6 26481 oo Na Yo N J 1028, 0085,2592,4035,4047,0100,6 ;26480 . e =S e eNo U 1029, 0085,2592,4035,4047,0100,6 X :26427 =001 126478 ;26479 : : CMTO98.MCX DECMAL .MIC MICRO2 1M(01) Decimal String 2B8-NOV-83 16:30:35 E 3 CLOKX Rev 13.00, Clock rate = 160ns : SUBP6 and ADDP6 RN KK RR AR RKRKERRR IR AR ARk kb hk ko bwrkkkekddnen 126490 SRR ;26492 ittit**ti****tt*ti*t**it*tt*******t**********t***ttt****************** 126491 | Page 648! - { ADDP6, SUBP6, and MULP continue initialization 126493 .ggzgg DS.ADOP6.EXIT: U 10D6, 0084,5592,4282,0047,0120,C 552239 126498 =0 RCTEMPBI_MLTEMPS],WB<0>? :26500 CC_2LIT0L0], 126499 v 120¢, 0580,0¢37,0030,00A7,0100,C U 1200, 0180,0037,0030,08A7,010D,C :%ggg; :26503 ;sgggg iDest. Length, is it odd? ;0emsssmemccccncsanoncucocnanen H NERT/DS.ADDP6.EXIT.2 :No, even, PSL<C>_0 ;1ommemmmanan e EEE R ; cC_ ZLJTO[1J :Yes, PSL<C>_1 ; :26506 ,Sgggg DS.ADDPG6.EXIT.2: U 10€4, 0C84,0587,0035,0047,0110,8 E%gggg 126511 ;Sgg}% $26514 U 1108, 0486,958E,4030,C0047,0111,2 ;26515 126516 MCTEMPB] _RLTEMP1) Source 1 Length jmmessemmcmemeccccmcmeesscscones; RER4]_0 JGPR4_0 T —mmmmm——— MLTEMPO)_RLTEMP3], NEXT/DS.ADDP4 ;Source 2 Length, rest of work is in {ADDP4 code i i i 1] U 10D¢, 0C86,85BE,4030,4047,010,4 o OO iviuiunuiuauuiiviuauauviviuv Liuvnvaiuviuvnioivivnunwug OO OO OO OO OO I S I D I I I 5 2 2 B W LN LAANIANNI NI DO N NI NN NS NN =3 b —2 AN —= OO 00N DO O N AN = OO 00 NOMNN B WU = O 000 NIC WV PN — OO 00NN L A R T R P N R T R T N O T T T — 28-NOV-83 (o] 1M(01) Decimal String . MICRO2 NINVNINI NI ALNIN 3NV NUNL FPOTLAL NN N NININI N PNV NI NI NS PLNININVNV NN (MT098.MCX DE CMAL .MIC URLANLAINLINI RN ; e A S TT P ; 16:30:35 F 3 CLOKX Rev 13.00, Clock rate = 160ns Page 649! : ADDP4 and SUBP4 Decimal String R T R : ADDP4 and SUBP4'' e A2 i e s i ls it il il nsd SUBP4 sublen.rw, subaddr.ab, diflen.rw, difaddr.ab ADDP4 addlen.rw, arddaddr.ab, sumlen.rw, sumaddr.ab MULP initializes in ADDP6/SUBP6 code. continues here, performs majority of work in MULP code, and returns to ADDP4 code to set CC & convert =0 to +0. SUBP4 and ADDP4 perform operand fetch and preliminary initialization in CMPP4 code. SUBPG6 and ADDP6 do their own stuff and branch to ADDP4 code. ALL 5 instructions enter at DS.ADDP4: ; ; H Input (& means only for ADDP6, SUBP6, or MULP): Source 1 address GPR1 Source 2 address GPR3 GPR4 GPRS : : MTEMP8 MTEMP9 RTEMPS FPD ¢c Resources Zero (&) Destination address (&) Source 1 Length Source 2 Length Destination Length (for ADDP4 & SUBP4 this is equal to Source 2 Length) =1 =) if Desy. is even =1 if Dest, is odd <Above, plus:> | TEMP? Misc. Data TEMP3~TEMPS Source 2 holder RTEMP10~RTEMP13 Source 1 holder FPDOFFSETY STEPC WDR MDR VA ALUS DREG QREG L1014, 1/0 routine counter WRITES READs 1/0 address overflow & sign checking Misc. data Ditto H H CMT098.MCX DECMAL (MIC MICRO2 1M(Q1) Decimal String 16:30:35 28-NOV~83 G 3 CLOKX Rev 13,00, Clock rate = 160ns + ADDP4 and SUBP4 126560 126561 : : FLAGO 126563 :26364 ; : FLAG! 326567 : :2657 ;§2§§§ ; : ;263562 126545 126566 126568 :26569 $26570 ;26574 i FLAG? FLAG3 : ; : H ; Output GPRO GPR1 GPR2 GPR3 PSL<3:0> Page 650 1) Source 2 sign 2) DS.,WRITE temp. 3) masks <C> 1) Source 1 sign _0 before WRITE 2) <v>image, <Z>image, initially 1 <N>image 0 Base address, source 1 0 o Base address, destination Set/cleared, etc. :'tit.'i*itti*******t**t**ttktfitt*'(**********k********tt***tt*********itt Decimal String DS.ADDP4: DS.ADDP4 .REE: fi[FPDOFFSETJ_ZLJTO[I&.J, A R T e T P }Pack routine code, anything pending? COUNT OR INT TIMER?,SIZELLONGI, NEXT/DS.ADDP4,SRC1 =00 =01 ;0lmenmemmmmcse e ece s e e e e~ ; NEXT/DS.ABDP4, SRC2 e O T Page CLOKX Rev 13.00, Clock rate = 160ns : ADDP4 and SUBP4 ot et s o Gt 2 A b S Ot P A S B JSTEPC_D_L/2 for source #2, ;which inst. are we? e e ey e VA_D+RLR11+1,PUSH,NEXT/DS.READ g 1 > O 0 By 0 D e O O INTPEND OR TIMER?,PUSH, NEXT/IE.SERV.IP,TS?2 B P s G W :No ints, or timer service, read ;source 1, RETURN-1 : ¢ ;Yes, RETURN=1 or to [E.PACK.DONE s o o - RETEMP10]_MCTEMP3],A.US?, ADDPx, SUBPx, begin moving source 1, i1 RCRO] MCTEMP8].RR.24, NEXT/DS.MULP : JMULPC25], mask in src.#1 CLEAR FLAGI RETEMP11]_METEMPL], iPositive NEXT/DS,ADDP4 . SRC1SGN ;what is sign? U 1088, 044(,4592,4032,0047,0111,C ~ § U 10B%9, 0€0(,4592,4032,0047,0111,¢ L N U 120F, 0884,83B87,0024,0047,0118,3 T N T T T U 120E, 0484,3592,4872,9847,0108,9 T T T R U 1083, 0480,0036,4AF0,0047,04F7,0 3% STEPC_D _MCTEMP9].SR.1, IR<2>% ,REXT/DS.ADDP4 . OPC P u 1082, 0€80,00A1,0034,44A7,0505,D H NORUNINUNLAUNLNINLNVMRL L NI AL N PO NI AL NINLNINININVNI NI PO u 1081, 0C80,9001,A88D,8107,0120,E 16:30:35 FONI NN NI LR LA LR DR L U 1117, 0586,0037,0820,7047,0908,2 350+ OO U 1112, 0080,8001,A03D,8107,0111,7 Il LN - OO DECMAL. MIC OO H CMT098.MCX 28-NOV~83 1M(01) NI NJINL N PPV RININININOND . R M1CRO2 ENegative length 651 CMT098 . MCX DECMAL.MIC N MICRO2 1M(01) Decimal String 111¢, 0484,5592,4033,0047,0112,8 126621 126622 1128, 0884,6592,4033,4047,0112,A 1128, 0080,058D,A5B2,0047,0105,8 1129, 0880,0E7E,9872,1907,050C,D : P L 3 CLOKX Rev 13.00, Ctock rate = 160as 1 ADDP4 and SUBP4 TR P R A DL LT T Y 126624 I - 126626 - - - - 1 MLTEMPG), - - EEoaeeveene " DS.ADDP4 .REWR :26627 126628 126629 $26630 ;26631 126632 126633 ;26634 :26635 126636 - - - :fi*ifi*fii*titkkkfl*t*titt**t*******t*t***tt***ittt*tt**lt*t*t*tt*ttthwttt ; Source 2 read at =10 will RETURN-1 to =01. PUSH is made at ; =01 for RETURN-1 froum future DS.WRITE call, and will RETURN to =00. ;t*****i*t*iifi*fikt*k*t***t*t***********ii******t*fi*ti***it*t*t*t**t*t*t ;00 =mmmmm oo nr e — ~; 126637 D _RCTEMP8].SR.1,FLAGK2=0>?, NEXT/DS.ADDP4 . FLAGS ;26639 126640 PUSH,NEXT/DS.ADDP4,.SRC2SIGN, 126638 126641 iNow read source 2 L e ;D_otfset for dest. sign byte, :split on <ZVC>image ettt ettt H STEPC_Q_RLCTEMPB8].SR.1,ALUS? 126642 126663 DS.ADDP4 +REWR: ;26644 JSTEPC_O_L/2 for DS.WRITE, what is ;source 2 sign? --------------------------- -t 112A, 0880,00A1,0034,C4A7,0505,D 126645 ;26646 VA_D+R[R3]#1,PUSH.NEXT/DS.READ 126652 CLEAR FLAGO,IR<2-0>?, NEXT/DS.ADDP4 , OPCODE 126647 126648 ;26649 =01 : 26650 DS.ADDPQ.S?C?SIGN: 126651 10¢D, 0800,0036,4670,0047,0113,0 10CF, 0040,0036,4670,0047,0113,0 Page 126623 : 26625 U 16:30:35 28-NOV~83 126653 126654 : 26655 126656 P D il ‘Source 2 is positive, ‘which inst, are we? et ttedatalataitatn Llmenmn———- : SET FLAGO,IR<2=0>? ;Source 2 is negative, ditto 0880,05BE,4535,44A7,0113,8 e 16:30:35 N 3 CLLOK4 Rev 13,00, Clock rate = 160ns Page 1 ADDP4 and SUBP4 RN AR RN R RN AN RR A RN AN AR RAA N R R AR R AR AR KR AR Ak Rk Ak kAR e Y Sources are READ, signs remembered in FLAGS1-0>, QREG & STEPC are T VA load & decision Loaded for DS.WRITE, here on IR<2=0>? BUT tor on whether to add or subtract, All 4 BUT splits BUT on old value of T O N SN = OO 00 TM = OO0 DN = O 000 NO VA S AN TRTR PR TR P R R P R ¢ 1132, 0880,05BE,4534,C4A7,0113,8 N TEL TR U 1131, 0880,058BE,4535,44A7,0113,4 e S N R T U 1130, 0880,058F,4534,C447,0113,4 y 1133, 28-NOV-83 653| ; o ' FLAGK1~0> to sgl1t on source signs, T 1M(01) Decimal String PP T MICRO2 OO AIVAAN 000D CO 00 NN NN NN NN NN OO ONONONONONOR CMTO98.MCX DECMAL . MIC OO OO PPN OO [e Nalvaloaloaloats Yolo To olIO H DUNLALAININU NI NDNINUNI RLIJINONVNI NI PVND JTONININI NNV ; J =%00 is ADDP4[20] =«01 is ADDP6[21] =+«10 js SUBP4L22] =x11 is SUBP6L23)] AR RN R R AR A AN ! : RN kAR R AR AR R AR AR i AR AR Rk AT AR R AR R TRk ! =+00 DS.ADDP4.OPCGDE: PR VA_RCR3], NERT/DS.ADDP4.ADD.SPL,FLAG<T=0>? D ettt : VA R[R5], ; NERT/DS.ADDP4,ADD, SPL,FLAG<1=0>? | VA_RCR3), ; NERT/DS.ADDP4.SUB.SPL,FLAGST=~0>? ———— H e s e na s s wen ] Jemmav VA_RLRS], NERT/DS,ADDP4 . SUB.SPL,FLAGST=0>? : PR ; : (MTO98,MCX DECMAL .MIC MICRO2 1M(01) Decimal Steing 28=NOV=~83 PU N 16:30:35 K 3 : ADDP4 and SUBP4 e L 126688 ; sign_of source 2. ;26689 126690 :26691 126692 :26693 ;26694 126695 =00 R Y L ;26685 126686 126687 b L i U 1134, 0C1E,3001,4022,8047,0113,F FLAG3_D if destination is expected to be positive, ; FLAG31 if negative. ; =00 i5 +2 + +1, do addition, s =01 is =2 + +1, do subtraction. : =10 is +#2 + -1, do subtraction. ;=11 is =2 + =1, do addition, L I L R J 1135, 005E,3000,4022,8047,0115,0 U 1136, 081£,3000,4022,8047,0115,0 CLEAR FLAG3, MLYEMP3] (MB*R[TEMP1OJ).BCD, :26702 ‘Dest. is positive et ittt NEXT/DS.ADDP4 ,ADD ;Dest, is negative 126703 . 26704 ;52;82 SET FLAG3, MITEMP3] (MB=RCTEMP101) ,BCD, NEXT/DS.KDDP4.SUB 126707 126708 110 v m e —————— (LEAR FLAG3, ;Dest. 126709 ;Sg;}? 126712 U 1137, 045E,3001,4022,8047,0113,F :00mmemmsmmmmsees e s s eeem . 126698 126699 :52;8? ;26713 126714 126715 bbb i i : ADDP<46> inst, here on FLAG<1-0> BUT. Assumption is made that ; tsrc. 420 > lsrc, A1, and destination sign 1s guessed to be the ;26696 DS.ADDP4, ADD SPL: 126697 Page 654 CLOKX Rev 13.00, Clock rate = 160ns MLCTEMP3) (MB*R[TEMP1OJ) BCD, is pos. NEXT/DS.ADDP4.SUB i1leme mmmcmmecr e e ———— : SET FLAG3 MLTEMPI] (MB*R[TEMP1OJ) .B(D, NEXT/DS. ADDP4 , ADD :Dest, is neg. A A T 28-NOV~83 U 1138, 005€,3000,4022,8047,0115,0 126746 PR 3 CLOKX Rev 13,00, Clock rate = 160ns AR N R R AR AR AR R RN N AR AR R A AR ; SUBP<46> inst, here on FLAGK1~0> BUT. Page AN AN AR RN R AR AR TR AR RA TN Assumption is made that : isrc.#2! > isrc.#11, and destination sign is guessed to be the : sign_ot source ¢, FLAG3_0 if destination is éxpected to be positive, SRR 3.1 1t negative. [=] : — 00 is +2 = +1, subtr-act sources. 01 is ~2 - +1, add sources. }0 is +2 - -1, add. 1 is =2 - =1, * RN subtract. AN RN NR KRR R RN RARNRR AR R C AR AP AR R AR AR R =00 SUB. SPL: DS.ADDP4. CLEAR FLAG3, MCTEMP3] (MB-RCTEMP101).BCD, iDest. is positive NEXT/DS.ADDP4. SUB R et dte el : SET FLAG3, :Dest, MLTEMP3] _(MB+RLTEMP10]).6CD, is negative > ¢ M N < m NEXT/DS.ADDP4.ADD - 2 = OND 00 O NP NN S AN 2N U 113A, 0C1E,3001,4022,8047,0113,F S B U 1139, 045€,3001,4022,8047,0113,F A AT W LA N A NI TONORO N PO RO PO TUNS — — — T S T TR T T e M T T T N T A U 1138, 081E,3000,4022,8047,0115,0 . : ADDP4 and SUBP4 qn *> 000NN Decimal String 16:30:35 Semitsvenimevana 1M(QD) N = OO N SN = OO DECMAL.MIC MICROZ2 T : (MT098.MCX MINUNLNINDNINL NV ALNI NNV NVNI NPV N NPV NTVNLNI NN NS OO ORI TOOONTNO NN N N N N SN N N N SN SN SN N N N SN SN SN NI N TN NN Y ; FLAG3, 953] (MB~R[TEMP101) ,B(D, .ADDP4.SuUB EDest. iS poS. iDest. is neg. kR Rk kR A AR ; 655: ‘ .~ ; CMT098.nEé DECMAL, MICROZ2 1M(01) Decimal String 16:30:35 28-NOV=-83 M3 CLOKX Rev 13.00, Clock rate = 160ns Addition Addition"' : Decimal String Page :sgzzg .T0C " 126750 ; Finish adding sources, split on destination sign & mask in 226;49 ;26751 26752 126753 126754 THRRRR ARk R KRR AR Ak kdkh ke Ak ko A AR ; preferred sign. ! 6565 RN RN Branch is made to DS.WRITE due to PUSH made ; after source 2 READ. longword carry is made via ALK<(>. L e e R L L R L AL ] :Sg;gg DS.ADDP4.ADD: U 113F, 0886.4041,4022,0047,0114,3 Esg;gg U 1143, 0086,5041,4023,0047,0114,8 :52;29 :26759 126762 MCTEMP4]_ (MB+RLTEMP11J+ALKC) .BCD' jmmmmmmmemm— e m oo em e cme e ; C) .BCD MCTEMPS]_(MB+RLTEMP12]+ALK e s e e————em oo m e mon e s oen e~ U 1148, 0886,6041,4023,5007,0114,E 126763 :ggggg MLTEMP6]_(MB+RLTEMP13]+ALKC).BCD, ALUS_UNSGN U 114E, 0480,0036,4870,1847,010D,5 :‘26"66 ;Sg;gg : ------------ ALUS? 126769 =01 :26770 U 1005, 0048,0036,44F0,0047,0121,0 J 1007, 0808,0036,44F0,0047,0121,0 126771 ;gg;;§ ;126774 :Sg;;g D S RA A " ;Was there overflow? ;0)ememmmmcasnnacccccoctcnnoonne : SET FLAG1,FLAG3?, NEXT/DS.ADDP4.WRITE . :Yes, <V>image_1, what is dest. sign? ;1] mmmmrmmca—————— e mm————— : CLEAR FLAG1,FLAG3? :No, <V>image_0, what is dest. sign? 06777 26778 126779 R AR ;26780 ;26784 ;=1 is FLAG3=1, dest. 126785 .26786 = U 1211, 0156,3092,4030,6847,012C,E R KRR R R AR KRR AR R AR AR AR ; Here from addition or good subtraction, ;26781 ;26782 26783 U 1210, 0556,3092,4030,6047,012C,E AR KRN AR R RN R R ARk <V>image is 0 (ok) or ; 1 (ov already from carry out). PUSH for DS.WRIJE was made after ; return from reading source 2 & we RETURN+1 to there, : =0 is FLAG3=0, dest. is positive, init, <Z>image. SRR EERRR is negative, AR TR RR RN ;26787 DS.ADDP4 WRITFE : :26788 DRt atae ittt : ;26789 METEMP3) MB,OR.ZLIT24L0C], init. <Z>image. AN KRR RR RN RN TRk AT kkhkdkk ! ; :sg;g? NEXT/DS.QRITE,SET FLAGZ 226792 Jlmmcucccanencannresnrsennenen - ! NEXT/DS.WRITE,SET FLAGZ : H 26793 : 20794 MCTEMP3] MB,OR.ZL1124[00], i | e e ; : {(MT098,MCX DECMAL (MIC MICRO2 1M(01) Decimal String 2B8=NOV-83 s e eon 16:30:35 : et et rin e e N3 CLOKX Rev 13.00, Clock rate = 160ns Subtraction :gg;gg .T0C ' 326797 SRR KRk kR KRR Rk 126799 126890 ; due to guess that isrc.#2! > isrc.#1i. [If a BORROW state exists ; after last subtract, subtraction was made the wrong way (i.e. 126798 Decimal String : Page Ak Subtraction'' kR Ak kAR AR AR AR RN R A KRR AN NN ; Finish subtraction, with sign of destination the same as source 2 ;26801 ;oisrc.é2i <~:src.#1:5 and a O-dest. subtractior. is made to correct ;26003 ;26804 ; are reversed. JRERARAE AR RN AR RRA AR 126802 ;26805 : the situation. Also, in such a cuse the destination sign & <N>image AR ARk AR AR AR A kRN Ak :Sgggg DS.ADDP4.5UB: U 1150, 0€86,4040,4022,€047,0115,2 u 1152, 0€36,5040,4023,0047,0115,7 Eggggg $26810 ;Sgg}; 126813 MCTEMP4]_(MB=RCTEMP111-ALKC) .BCD;BORROW '‘from'’ last subtract jmmmmmememmceaeeomass mmeesoesos ; MLTEMP5]_(MB=-RLTEMP12]-ALKC) .BCD jomemt e ————————————— ; 226814 MLTEMP6] _(MB-RLTEMP13]-ALKC).BCD, U 1164, 000C,0587,0870,9847,010F,5 26819 RCTEMP21_0,ALUS?,CLEAR FLAGT u 10ES, 0880,0036,44F0,0047,0121,0 ;ggggg L 1157, 0486,6040,4023,5007,0116,4 iy 10EY, 0084,2000,4020,C047,0116,6 ;ggg}g 126820 26821 ;26822 =01 ;26823 126826 ; 126827 ALUS_UNSGN ;Save BORROW state in ALUS :TEMP2_O for O-dest. correction, ;<v>image_0, was sub ok? B R et ittt : F 63? ,NEXT/DS.ADDP4 WRITE ;Yes, split on dest. sign 0 ;1 ;1Mmmmmmmmcmmmmmceecmccceeamenes;: ROYEMP3]_(MLTEMP2]-RB) .BCD :No, begin correction 657| ; : CMT098. ML X DECMAL.MIC MICROZ2 1M(Q1) pecimal String 326830 LA ;sgg%% H AR U 1171, 0484,2040,4021,4047,0117,2 ! U 1172, 0854,2040,44E1,8047,0121,2 :égg%g 106837 e —_ AL AL ALLALAARS LALLM ARLALLAL LATRk AR R A AR R AR AR RN R R R R R AR R R AR AR AR R AR R RN esmesemcmseeeaes secmmsmmeenmane; FLAG3?,SET FLAG? L mataiietetaiainlnlattdted et LU LU == SET FLAG3, : 26850 jlmmmmmm ;26853 kRt w jusemmeseesmeeeesuesseeememene- METEMP3) MB.OR.ZLIT24LO0D], ;26851 126852 ARk [TEMPé] (M[TEMPQ]-RB-ALKC) BCD Carry BORROW : 26847 :Sggzg AR kRN * Finish correcting dest., reverse signs, and branch to DS.WRITE. e me - ———————— et dshtnal] RLTEMP6) (H[TEMPZJ RB=ALKC).BCD,;Init. <2>image to 1 ;26846 U 1213, 051E,3(92,4030,6047,012C,€ Correction'' : 126840 126841 ;26845 U 1212, 095E,%(92,4030,6847,012C,E Correction R[TEMPS] (M[TEMPZJ-RB-ALKC) BCD :gggz% Page 658 CLOKX Rev 13.00, Clock rate = 160ns :Sgg%g 126844 =0 ) 4 Decimal String ¢ 126834 B ' :sgggg JOC ;26831 iU 1166, 0084,2040,4021,0047,0117,1 16:30:35 28=NDOV-83 NEXT/DS.WRITE iDest. was positive, s now neg.. ‘mask in correct sign oo e -~ CLEAR FLAG3, MCTEMP3] _MB,OR,2L1T24L0C], NEXT/DS.WRITE , ;Dest. was neg., is now pos., mask in Jpos. sign S : : CMT098.MCX DECMAL MIT . MICRO2 1M(Q1) Decimal String - —— R - Page 659| 28-=NOV-83 16:30:35 ¢~ 4 CLOKX Rev 13.00, Clock rate = 160ns : CC setting : :%gggg .TOC- ' Decimal String 126856 26857 126867 SRRRR AR R =000 : : =010 : =100 : =110 : 3) From =100 split below: J =000 : =001 dest. dest. dest. dest. Dest. if dest. it dest, if if it if Eggg;; R R AR KRR TR R AR AR AR R RR AR R :26873 v 1059, 0018,0021,0674,C4A7,0101,E 126874 : 26875 ;sgg;g $06878 U 105A, 0884,0036,4034,8387,0138,E ;26879 :sggg? ;26882 =100 U 105¢, 0080,0036,44F0,0047,0105,8 U 1056, 0018,0036,4030,0047,0105,8 ;26883 R[RZJ FLAGS, NEXT/DS CCPCIRDT y 101F, 0€80,0021,0035,44A7,0101¢ i ; iCC is set, finishk inst. in ASHP code f f VA_D+R[R3] i ;<N>image_0, guess xxxP<4> for VA tpointing, which inst. are we really? -010 ---------------------------- RLR2]_FLAGS,NEXT/DS, CCPCIRD1 :CC is ok, finish inst. in ASHP code ;100=mmmmmmmmm e ec e —————— FLAG3?,NEXT/DS,ADDP4. FLAGS B8 C110 :26888 CLEAR FLAG3,NEXT/DS.ADDP4, FLAGS Ensure €(_0110, sign nibble is what iwhat is sign of dest,? g tever it i% 356395 WRITE ZLITOEOL SIZELBYTE], i80898 ‘ :36900 VA D+ NEXT/DS.ADDP4 FLAGS,SIGN :sgggg 3 ;007 =mmmmmm e e s——meee; LEAR FLAG3,IR<2=0>7, NEXT/DS. ADDP4 . FLAGS.SIGN, :36891 ;26892 =110 :22882 DS.ADDP4.,:LAGS«SIGN: J 101¢, 0180,0€37,00060,6508,0105,8 ! i ) | : i AR AR R TR N :Sgggg ;26889 126890 = I : i is nonzero, no OV is nonzero, OV is zero, no OV is zero, OV is zero, no OV, split to: is positive is negative ;ggg?g DS.ADDP4. FLAGS U 1058, 0884,0036,4034,8387,0138,E i RN A KRR R RN R bk : <ADDSUB>Px and MULP enter here with DREG containing dest.L/2 and s utilize overlapping BUTs: ¢ 1) From DS.WRITE RETURN: ;26868 =000 é ¢C setting'’ AR R AR R AR AR IR AR AR KRR ;26858 126859 ;26860 126861 126862 ;126863 126864 126865 . 26866 : NEXT/DS.ADDP4.FLAGS IVA is ok, dest._+0, finish inst, DA DRIRST, T*MULP[25],ADDP6[213,5UBR6L231, VA ito correct byte ® oint ! ; : : j : | ; CMTO98.“E§ DECMAL. MICRO2 1M(Q1) Decimal String 28=-NOV~83 4 16:30:35MULPCL0KX Rev 13.00, Clock rate = 160ns Page : MULP" :5238; .TOC ' Decimal String 326903 : 26904 126905 SRR ; : MULP mulrlen.rw, mulraddr.ab, muldten.rw, muldaddr.ab, 126908 H MULP begins in <ADDSUB>P6é code, continues in <ADDSUB>P4 code ; also done in <ADDSUB>P4 code. ;52389 26909 :ggg}? ; : RN ARRAR AR AR AR AR AR AN AR R AR AR AR AR R kbR and enters at DS.MULP. (C( setting and -0 to +0 conversion is ; 126914 : overlapping adds to destination TEMPs. :sgg}g ; Llongword is zero. :26915 126916 :26917 : : : H : 26920 :26921 126922 : : ; 126924 : ;26923 226925 126926 :26927 126928 226929 126930 :26931 ;126932 $26933 : : : ; : ; : : : : The destination is created in MTEMPB-MERRCOD using the Source 2 is the “outer loop'’, Source 1 the "“inner loop'’. To_speed things up an outer loop pass is skipped if the source ¢ longword s zero, and an inner loop pass is skipped it the source 1 multiplier Input GPRO GPR? GPR3 MTEMP8 in byte#l Source 1 address Source 2 address GPR5 Destination address GPR4 TEMP3-TEMPG lero | . RYEMPB STEPC DREG cc Source 1, memory format, s1§n nibble zeroed, LSB in byte# of TEMP3, MSB in byte#0 of TEMPS Destination Length L/2, source #2 L/2, source #2 =0 1f Dest. is even BCDSIGN data Checked for Reserved Operand =1 126934 126935 H : 126937 H FPD ; , double~and~divide method for multiplication of longwords with ALUS Lengths :26936 RR RN prodlen.rw, prodaddr.ab 126912 126913 660 : =1 it Dest. is odd Fault Wi : D . CMTO98. MCX . MICRO2 ' o 1M(01) Decimal String DECMAL (MiC ) 28=N0V=~83 126938 126939 126940 126941 126942 16:30:35MULPCLOKX Rev 13,00, Clock rate = 160ns : : : H 126943 126944 ;26947 : 126949 :26950 : : 126948 126951 126952 126953 126956 126955 126956 126957 126958 126959 226960 :26961 126962 126963 126964 126965 126966 H : ; ; H H : : : H : : : : : ; 126970 :26971 : H : : 126976 : H 126977 ; :26930 126981 H H H : : : 126978 126979 126982 :26933 126984 126985 126986 ;26987 126988 126989 126990 ;26991 126992 TEMP2 TEMP3=-TEMP6 TEMP? RTEMPS RTEMPY : : : H H : ; ; : Page MTEMP9 in byte#0 Partial Product result from multiplication of a source 1 longword and a source 2 Longword, MSD in byte#0 of TEMP1, LSB in byte#3 of TEMPO Misc. data format, Holds Source 2, memory LSB in byte#3 of TEMP3, MSB in byte#0 of TEMP6 Binary value of src.#2 longword Destination Length Destination Longyord counter, values from 0~3 indicate which destination longword we are adding to: fommen o ———— prmnmntmm——— o0 L1 12 13 and values -1 to -3 indicate we are pointing to '‘imaginary’’ longwords where ov. can occur RTEMP10=-RTEMP13 Holds Source #1, memory format, see description of source #2 MM. TEMPO MM, TEMP1 MM, TEMP2 MM, TEMP5 : : 126974 126975 TEMPO & TEMP1 ; 126967 126968 126972 126973 ( Above, plus: ) GP : ; ; ; 126969 Resourves : : ; 126945 126946 — MTEMP8-MERRCOD Misc. data Points to current source 1 longword as a 0-=3 code, see description of destination ointer isc. data . Ditto *MM.TEMPO is not needed after any call to IE.SERV.IP.TS2. MM.TEMPx are not referenced after any BUS exception or an int. is found pending* Destination data, memory format, LSB in byte#3 of MTEMP8, MSB in b‘re#O ot MERRCOD. FPDOFFSET STEPC RNUM DREG QREG FLAGO FLAG FLAG? FLAG3 *MERRCOD is not referenced after an¥ BUS exception.* ILITO016.] 1/0 routine counter Points to current Source #2 TEMP (opy of RNUM . Misc, data in Source 2-to-binary routine and DS.WRITF DS.WRITE temp., masks PSL<C> <V>image 1) Source 1 sign 2) <2>image 1) Source 2 sign 2) <N>image i 661 DECMAL (MIC MICROZ 1M(Q1) Decimal String ;26993 126994 126995 126996 126997 28-NOV~83 16:30:35 F ¢ MULP ; : H H . Qutput 4 CLOKX Rev 13.00, Clock rate = 160ns GPRO GPR1 GPR? GPR3 GPR4 GPR5 cC Page 662 0 Base address, source 1 0 Base address, source 2 0 . Base address, destination €_0, NIV set/cleared 126998 ;59888 : : :-27001 :'**fi*tttittttttt*****tt*i***t*****t*tt*iit*tttt*t*t*iti**wtk*****t***it* li H (MTO%8 . MO X u 1184, 0884,659¢,4033,4047,0113,D U 113¢, U 1130, (880.1341,0034,C4A7,0505,D u 1M13f, 0586,#(37,0030,0047,0118,F U 118F, 048¢ ,0337,0870,1847,0110,5 Decimal String LREGION/DECMAL .R1L,DECMAL . R1H/DECMAL .R2L .DECMAL ,R2H 4 - " - Sy - RCR21_MLTEMPO],ALUS? ESave Source #2 length for possible cpack=up, what is source 1 sign? 111} [ PRSP P PP R LEAR FLAGZ, CTEMP8] ZLITOL0], EPositive, begin to zero dest. temps [] ] [} t 1 [ ] 1 ] [ [} [} [} ¢ [} [ ] [ [} [ 1 1 ] ] EXT/DS.RULP.2 1 4 DS.MULP: [] 1 1 1 NN NONN S = OO W) —= O 000~ O LI Page 663| Initialization after ADDP4/SUBP4A'! ENegative. ditto £ SSMANND 2 OO NN B Initialization a fter ADDP4/SUBP4 EDivide Src.#1 by 10. to slide ;sign nibble away ‘New MULP IANDE offset ---------------- - - - - ¢ ;Save Source 1t ------------------- CUT T e L L] RCTEMP111_MCTEMP4] NI U 1188, 0284,%492,4033,0047,0118,A NN D W) = O 00 N U 1186, 0484 .4592,4032,€047,0118,8 2 OO U 1184, 0C84,2592,4032,8047,0118,6 CLOKX Rev 13.00, C lock rate = 160ns [ RCTEMP13) MCTEMPS], sNow read source 2 NEXT/DS.MOLP.READ ----------- - - e o o 0 - - 0£01,PUSH, ----------------------------- iZero a dest. TEMP, divide source 2 :by 10 to slide sign nibble out ‘Read Source 2, RETURN=1 - MCTEMP103_20L170L03 AN U 1056, 0986,t37,0030,8047,0118,4 O U 1054, 2185, 37,0030,0047,0528.8 N N N N SN N NN NS NN SN SN N N Y U 10FB, 0156,8737,0030,0047,0105,4 NN NG NN N SN N SN N NN N N SN N N N N TN N N NN NN N ~ NN NN TN N NN S U 10F9, 0916,87%7,00%0,0047,0105.4 L10C ' —_ Decimal String u 1183, 0C84,94592 ,4B74,9847,010F,9 16:30:35 28=NOV=83 1M le o ot oo [alelelelelaloleln alelel etfalelelelalelelalclalalelalclclclelelclalelelalalelolelalelelelelele RIRORORUTUR)DN — — — s 3 2 = 2 DOV OO A A RO PO PO NN LAV AT S S I N S D 2 B I B LA LM N LA LN N L DECMAL M{C MICROZ PUNONINLAINURDAIANLAINIAVNINIPURLRININI NI NN NININ NI NINJRURINUNININLN NIPLNLRV TV NN NI NININININLNI NI TONVNOND H CMTO98 i X e S T T T T P e L T T T R T T R TR A TR T P L L LR LA LR LA LI ; 4 6 MCERRCODI_0,ALUS? ALL dest. gemgs._o. what was Jsource 2 sign? f MICRO2 (MTO98.M( X DECMAL (ML 1M(O1) Decimal String 327057 .70C ;27058 ;27059 =01 227060 127061 ) 1105, 0519,0(35,2030,1847,0119,3 127062 :s;ggz :27065 v 1107, 0b5%.1(35,2030,1847,0119,3 1193, 0884,0582,4033,C047,9119,8 1198, 0484,i:582,4832,5867,0121,4 16:30:35 28=-NOV=-83 :27066 :g;ggg CLOKX Rev 13.00, Clock rate = 160ns : Multiply Loops'' : ) ittt bbb - . ;Positive, RNUM_D_points to low CLEAR FLAG3 RNUM_D ZLIT6C3J. ;LONGWORD of source 2 NEXT7DS.MULP. TOP ;1] mmmmmmmemececcccoonceconiaae : SET FLAG3, _ _ :Negative, ditto RNUM_D_2LIT0L3) 35;898 DS.MULP. TOP: 127071 RCMM, TEMP1]_D {Source 1 TEMP counter_3 to point to ;27072 8000 Page Multiply loops Decimal String " ’ H o4 ;first source 1 longword 3538;2 RCTEMP9I_D,IP.TS? Init, dest. longword counter to 3 127077 ;57878 L L L A A A S A AR AR AR A AR ARl 227080 ; longword, Vf it's 2ero we skip over this pass thru the loop. Here ;27082 R il diddd ;27079 127081 ;27083 = R ; Top of outer multiply Loop, ; on IP.TS? split. AR AR AR A AR RNUM points to a legitimate source 2 AR AR AR SRR AR ARttt ittt :g;ggé DS.MULP.LORZ: 1214, 0C8%,0837,0A70,8047,0114,0 . 1275, C430,0036,4AF0,0047,04F7,0 27086 :g;ggg :27089 127090 :S;gg; RCTEMP2]_MCTEMP.R).BCOSWP WX.NE.0?,NEXT/DS.MULP.LOPé.2 ‘Get arithmetic format of next/first ;word, is it zero? Te ———— PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.IP.TS2 :Something pending, return =1 or branch to [E.PACK,DONE 127093 ;27094 =00 ;g;ggg DS.MULP.LORZ.2: _ it "140, 0084, 0E7D,06F2,4047,0915,1 371« 157097 ;s;ggg : :27100 1141, 008o,C37,0030,7847,051E,2 127101 107102 RCTEMP9I _RB-1,WB<31-305?, NEXT/DS.RULP.END L Rt iYes, skip this loop pass, dec. ;dest. counter, are we done? ittt andattatatodetetsntotuluinidete : PUSH,MCMM, TEMPOJ _2LITOCOF], NEXT/DS.MULP, SRT2BIN :Ng. load nibble mask, TEMP?_ ibinary value of TEMPS 664 e ; . ea e —— s e e MICRO2 CMT098.MLX DELMAL M1C Decimal String :27103 127104 ;27105 127106 227107 :27108 27109 U 1142, 0480,058F,4273,0047,0114,4 16:30:35 28-NOV-83 1M(Q1) : 1 4 Page CLOKX Rev 13.00, Clock rate = 160ns Multiply loops ;t*ttktiitk*fi*k*kktt*tfltkfi!k*tfltflt*tltkit'tttt*ittttt't***t*t****ti**fi* ; Top of Inner (Source 1) lqofi. ; to the dest, parallels which The beginning TEMP for adding TEMP we are reading from source 2, but : not soyrce 1,.after splitting to decide which portion to multiply, : we split again to decide where, if anywhere, to adc it. :tttttitii*ttt***t**t*tt*t****************************t«**i**t****t***t :S;}}? DS.MULP,.LOP1: ES;}%% QB_R[MM.TEMP1J,wB<1-O>? ;Uhich source 1 TEMP are we? terlh ;27115 =00 ;27116 U 144, 0456,058E,4A73,4047,0114,8 127117 ;S;}}g :22120 u 1145, 0086,05BE,4A73,0047,0114,8 U 1146, 0486,G5BE,4A72,0047,0114,8 . U 1147, 0086,058E,4A72,8047,0114,8 ;0 m e e MCTEMPOD RLTEMP13], e s ——— : NEXT/DS.AULP.LOPT.MUL ,WX.NE.O? ;0] =mwmmammmmmmmmmean e ;07121 MCTEMPQ] RLTEMP12], 127124 127125 ;10mmmmmm—————————————————— MLCTEMPO] RLTEMP11], :5econd source 1 :-271 2, (N mesmmmnern e rccneercncnn - ;§;1§§ igr1g6 20 so e vl .. ;Last Source 1 longword, is it zero? NEXT/DS.AULP.LOPT.MUL .WX.NE.0? NEXT/DS.RULP,LOP1.MUL ,WX.NE.0? MUTEMPQ) _RLTEMP10], WX.NE.OQ? ;Second-to-last source 1 ;is it zero? :is it zero? longword, longword, JFirst source 1 tongword, ;is it zero? :24' 106 127133 = :S;}gg DS.MULP.L8P1.MUL: , J 1148, 0084,0E7D,06F3,0047,0910,D 371+ . u 1149, C0&s,0%87,00%0,4047,0510,3 U 114A, 0080,058F,4232,4047,0103,8 127136 ;S;%;g 527139 RCMM, TEMP1] RB-1,WB<31-305?, NEXT/DS.MULP.LOP‘.END 101=rrocem RCTEMP1] 0,PUSH, NEXT/DS.RULP.MUL 127145 WB_RLTEMP91,WB<5=0>7 :s;}zg ;add it, is it the last source 1 TEMP? e r ee; ;27140 27141 27142 80143 :iero Source 1 temp,, don't multiply or ;Nonzero, high partial proo._ 0, multiply it by source 2 temp value in ;TEMP? :Into which dest. temp(s). does this ;get added? WT09B.ME§ JFCMAL (M MICROZ2 1M(Q1) pecimal String 28=NOV=-83 Jo109, 0486,A001,4020,0047,9119,F ;27160 ;S;}g; 127163 127164 ;S;}gg ;27168 :g;}gg e J o 10s, (886,8001.4G70,0v47,0114,¢ ;27172 :;;};2 2 ;27175 =111 ;27176 2777 v 103D, G841 ,0E7D,u0f3,C047,0910,0 371 J 103, 084C,0E7D,06F3,(047,0910,0 371 ; Sources have gegn multiplied gartiag grqduqt in TEMPO and TEMP1. ; TEMP we begin adding to during a loop pass. ; OV can occur here in 2 ways: : 1) Carryout from addin gart1al proguct to dest. temps. ; : H 2) Dest. pointer (RTEMP9) <0 (=1, <2, =3). The current source 2 temp. and source 1 temp. are nonzero, hence if we are pointing past the highest dest. temp. we know we have ov. ‘-i*tfltfiittttkfitttfittfittttfitttit't**tt**tt*iitt*ttittl‘ititttitittttttt*i 127178 MCERRCOD] _(MB+R[TEMPO]),.BCD, NEXT/DS.MOLP.LOP1.0 ;(0)Last Dest. longword 211100 = mmmmmmmmmmmmmm s- MCTEMP10]_(MB+RLTEMP0]) .B(D, NEXT/DS.MOLP,LOP1.1 :(1)Second-to-Last dest. longword ;11101Q=mummmmmmmmmmmmmmmm—am—a ; MLTEMPO) (MB+RLTEMP0]),.BCD, NEXT/DS.RULP.LOPT.?2 . (2)Second dest. NEXT/DS.MULP.LOP1,3 PR R R U :(3)First dest. longword R St . SET FLAG1,R[M4, TEMP1]_RB«1, wB<31-30>?, 127181 ;1111105 cmmmmmamen s m e n— ; :s;}gz 127186 ;27187 SET FLAGT,RCMM, TEFP1] _RB-1, W3¢<31=30>? ,NEXT/DS. . MUCP, LOPT.END ;tinished? (=2), ditin 11111] =nmmmmmm o mm s memm ; $ET_FLAG1,RIMM, TEMP1] RB=1, WB<31=30>? ,NEXT/DS . MULP,LOP1,END . ;(=3%iWe are pointing past the dest. ;temps., *Ovx, dec. counter § is Loop NEXT/DS.MULP.LOP1T.END ;27182 longword 111101 === mm e e ————; MLCTEMP8] (MB+RLTEMPO]) .BCD, ;S;};g 127185 U 103F, 084C,0E7D,06F3,C047,0910,0 371~ AA ;27158 =111000 :27159 J1M1000=mwemmm e ncccccccasa - 127167 u .0*A, 06486,9001,4020,0047,011A,¢C Rk Rk indicates which destination ;27156 . AR R ; Here from WB<5=0>? BUT on RTEMPY, which 127154 ;27155 ] RR R :27150 :27152 ;27153 Wy 1038, 0086,B0(:*,4020,0047,0119,A Page Multiply loops AR ;2715? ' CLOKX Rev 13,00, Clock rate = 160ns SRR KRR AR RRRARR AR ERN RN R RIRN RN 227151 i 4 ;27148 :2714 . ; 16:30:35 J $(=1), ditto 666: 0486,A041,4020,4047,0118,2 NN 12721 et 272 ;S;g} ;2721 LN S~ LAIND =3 O o722 22722 ;2722 ;2 2¢ 12722 U 1180, G086,A041,402D,8047,0118,2 12722 S;S% J 1182, 0086,8041,4020,9007,0114,C 12723 12723 12723 12723 D00 IO J 11AE, 0086,9041,4020,4047,0118,0 ;2729 18722 CLOKX Rev 13.00, Clock rate = 160ns Multiply Page Lloops ;t*ttk*tittttt*fik*t*ittlk!ttittlt‘"l\Ntt*tt!twfi"tittttt*ttfi*ttt*titfi* ; RTEMP9=0, TEMPO was added to MERRCOD. . CARRYOUT after adding to TEMP1, Ov occurs if TEMP1+ALK(>0 OR ;kkittti!iti*t**fittttt (2322222232222 2232222 2223233233332 DS.MULP.LOP1.0: B e 0 e £ (i B A L D D e U D L 33232 28822 D WB_(MLTEMP11+ALKC) .BCD, ALDS_UNSGN,WX.NE.0?, MEXT7DS.MULP.LOP1.ALUS ;'thtttti!tilktltttittflfittttwttfinwflffittfififl**!RQ'Q**W**'**t*tfi**fitt*t**i ; RTEMPO9=1, [EMP) was added to MTEMP10, ; CARRYOUT data in ALUS. Add TEMP1 to MERRCOD, store :*tktttti*t**tfitli*nlt*ifi!*tkittktktfittt**i*ittittti*tw*t*'tttfiii*fii*it DS.MULP.LOP1,1: L T R L e L L LD - o MCERRCOD] (MBsRLTEMP11+ALKC).BCD, ALUS_UNSGR,NEXT/DS.MULP.LOP1.ALUS ;kitilttitkttnttltt!lttfitllfittl!ltwll!tt!1ttll'Wfi'*t*i*t*tii******t***fi : RTEMP9=2, TEMP0 was added to MTEMP9, Add TEMP1 : to MERRCOD, store CARRYOUT data in ALUS. to MTEMP10, CARRYQUT ;ttttt!thtttttt*t*t*kl*tii*ttttt!*ttt*t*iitittittt*tttttfittttitttti*tQi DS.MULP.LOP1.2: ------------------ voenmmnmoesenreem METEMP10]_(MB+RLTEMPTJ+ALXC) .BCD, NEXT/DS.MOLP.LOP1.23 ;tttfitfitfifl*ttt*ififitk*tfitk!fittltll*atttktt*t!tt!w*!t*tflfi&t*tt*ttflttt**fit ; RYEMP9=3, TEMPO was added to MTEMP3., Add TEMPT ; to higher TEMPs, store CARRYOUT data in ALUS, to MTEMP9, carry ;ttfifltlt*litfittttttfi**ttttttitt*it*ti*titttt**ttttt*ttt*tfittt*fii*ittt*t DS.MULP.LOP1.3: B AN 3 ;2722 MCTEMP10]_ (MB+ALKC) .BCD DS.MULP.LOP1,23: @ v o s O O S S et s Ot B MCERRCOD] (MB+ALKC) .BCD, ALUS_UNSGR W- {RTEMP9 codes 2 and 3 join here 1 U 11A(, i e7el 2721 2721 N PR VR TR N I I A TR TE TS PR PR P PR PR NINVNONSIND NINL PN NN PN P e I UFINVNI NI [ u 119F, 0486,8041,4020,50C7,0114,( — OO0 N DMN INMAINS 2 O 00 NN S LR = OO0 00 Decimal String U 119A, 0(80,1041,4A6D,90C7,0914,( 364« 16:30:35 28-NOV=-83 1M(01) 0 OG0 IO W B DECMAL (MIC MICROZ : NN N : (MT098. MCX N NN SNSNSN NN N : 4 K 1M(O1) R =2 OO0 00 NO N SN = OO0 00 NIC W N MW N = OO 00 NN N B 16:30:35 L 4 CLOKX Rev 13.00, Clock rate = 160ns Page Multiply loops : R AR R RN R AR AN NN AR RN RR RN N R AR AR RN AR AR N R : Directly with CARRYOUT data AR AR AR r Ak ke ; End of Source 1 & Source 2 loops. The parital product in TEMPO and : TEMP1 has been added to the appropriate destination TEMPs or checked ; for ov. Enter at DS.MULP.LOP1.ALUS: 1) in ALUS. _ ; 2) On a WX.NE.Q? BUT with CARRYOUT data in ALUS from adding TEMPO : to MCERRCOD], the highest destination TEMP. ; Enter at DS.MULP.LOP1.END: ; 1) From =01 and =11 splits in DS.MULP.LOP1.ALUS: code gn a WB<31-30>? BUT, =01 is back down Source 1 by a lorgword, =11 is we have just finished a pass thru source 1, consider agk1ng down Source 2. : ; 2) From =111101, =111110, and =111111 splits in DS.MULP.LOPT1.MUL(+3) code on a WB<31-30>? BUT. Same splits as reason #1, having come trom an overfiow-from-extra=longwords case. ;*tk*fi*****Qt**t**t*i***ttfikl**t*tt*t*itt***tt**t***t*t**tt*t***t*t**** =00 DS.MULP.LOPT,ALUS: ALUS? ‘Was there 0V? ;01 WB<31-30>? ,SET FLAGI, ----- - 0 S P S e EMM. TEMP1 3 RB-1, ITEMP1>0 from RTEMP9=0 code, NEXT/DS.MULP,LOP1.END =11 ; :0V from CARRYOUT (ALUS BUT) or i<V>image_1, dec. source 1 counter, shave we1z1n1shed a pass through all of ;source 17 L it sy otk H RCMM. TEMP1]_RB-1,WB<31-30>? :Ng OX tzom CARRYOUT, dec. counter and scheck 1 O N = OO 00 O N 376+ NN TN TN TN NN N N Y N N N N SN N SN SN NI NI N NN NN N N N SN SN SN N SN NI SN SN NI N SN NN N 110F, 0084,073D,06D2,4047,0915,1 NN NN NNNOONONONONONON O OO UnNUNUILYTUITUALIVIAYAFTLES D £ L5 5 O B B I £ L T PR R e R O v 1100, 0084,067D,00%2,4047,0114,2 AURINDNINL PV 114F, 0084,0F7D,06F3,0047,0910,D 3714 T Y S O O T T O < U 114D, 084C,0E7D,06F3,(047,0910,D 371« N NN N Decimal String U 114C, 0480,0036.4870,1847,0114,D et 28=NQV-83 AL NLNAININD NN NINUNO NI NLAL N PONLN PNV NINIAONL P NLNLNINOLND LTV NNPORLNLNVNL DECMAL.MIC MICROZ2 LA CR T H (MT098.MCX NINDNURIND NUNI NN RL NLRLNLNY N NN PLNL NI NPV NN NI PV NV PV TLNI NI NN ; =01 DS.MULP.LO$1.END: 0 000 T - RLTEMP9] RB-1, ‘Not yet finished with '‘inside loop'’, NEXT/DS.RULP,LOPI :back” down dest., loop back 11 RLTEMP9]_RB+CONX(2) ,WB<31-30>? Yt T O O O P e G e D S S, S O e o S- : ;Finished pass thru source 1, inc. ;dest. pointer, check it - 668 ; H CMTO98 ,MCX DECMAL (MIC MICROZ 1M(Q1) Decimal Strind 16:30:35 28-NOV~83 M , 4 : Page 669 CLOKX Rev 13.00, Clock rate = 160ns End of loops, Destination write End of loops, Destination wr§ : Decimal String : :g;g;g .T0¢C ' 22?279 R 127282 : = =1, we are finished. We also BUT to here from skipping over a R A R il At A A A A R AR AR LA AR AR AR AL AR AR ! ! : ; RTEMP9 was 0 - =3, Adding 2 gives 2 = =1, which indicates which TEMP ; we would add to next pass thru the outer (source 2) loop. If RTEMP9 127280 ;27281 ;27283 ; zero Source? TEMP. 127284 227285 =01 TRRRRA RN KRR AR R KRNk RN RH TR ARR AR | ? XK ARk ; ! ] 227286 DS.MULP.END: :27¢87 U 1151, 0081,D00A1,203D,8047,011C,0 ) J 1153, 0c84,8592,4830,D867,0121,6 ittt bttt bbbt H ;27288 :g;ggg 127291 :27292 ;1 lmmmmcemm—e— e cam—aaa ————; ; NEXT/DS.RULP.FINISH | RCTEMP3] MCTEMP8],IP.TS?, ;%;ng ] | i :>=0, ok, inc, source 2 pointer to Jnext source 2 TEMP RNUM_D D+1, NEXT7DS .MULP.LOP2.LOOP :<0, =+All donex*, begin moving | ;destination to DS.WRITE TEMPs | 127295 ;g;sgg DS.MULP.LOP2.LOOP: U 11¢0, 0884,0737,0013,0047,011C,2 : TSl tuinisbnbuinindiniied et H ;27298 RIMM, TEMP1]_CONX(2) ;2729¢ ;source 1, loop back & split if 227304 ;anything pending 127301 ;27302 U 11¢2, 0084,073D,0803,D8E7,0121,4 NEXT/DS.MULP.LOP2,IP.T5? 127306 ' 5 | 227307 ;27308 RN AR 127309 : =0 is nothing pending or timer service, =1 is something pending, 0 : AR AR AR AR RETURN =1 or branch JRKKNARKNRKKAR KRR A AR R to IE.PACK,DONE RN R R AN AR ARk i dedoh = ;27312 P.FINISH: DS.MUL 127313 ;27314 J 1216, 0084,9592,4031,0047,017C,A 127315 ;g;glé }2731é u 1217, 0480,0036,4AF0,0047,04F7,0 ;27319 :SZ§S? Qummmmm e ; RCTEMP4] MLTEMPY], NEXT/DS . AULP.FINISH.1 NEXT/IE.SERV.IP,TS2 U 11CF, 0884,8592,4031,8047,0115,4 127307 ;27328 i sk AR AR Ak A e RN oo AR AR AR oo N ok e o f ! ; I ? . 127332 Eg;ggg A AR it T T: PUSH,INTPEND QR TIMER?, : :S;ggz DS.MULP.FINISH, 1: U T1CA, 0484,A592,4031,4047,011C,F ‘ RIMM.TEMP1] RB+(ONX(1), 127303 ;27%1; l jmmmmmeesmsessceumssm—c——seseses H :%;ggg 127310 ! ;MM.TEMP1_3 to point to beginning of RCTEMPSI_MCTEMP10) ’ eemmsemammmmmmeene—————————— ; RLTEMP6]_MCERRCOD] DECMAL.MIC 1M(01) 28-NOV=-83 Decimal String 12733 U 1154, 0180,BC12,0A77,8047,0521,8 ] J 1155, 0080,058D,A582,004" ..05,8 12733 :gggg 127335 ;2733 ;2733 ;2733 ;2733 :2734 J 1156, 0C50,05BE,4575,44A7,0500,A :2734 12734 ;2734 ;S;§2 12734 ;2734 ;2734 A N AN A A AN AN N N NN N A RAT LA N AN AN U IO WA N N A R I NN NNNNNNNNO OO OO O O v i NN SN SN SN N TN TN TN N N TN TN N TN N N N TN NN N N N N N SN N Y LA U 100B, 095E,3092,4030,6847,012C,E SN RINURI NI ] O _ U 100A, 051E,3(92,4030,6047,012C,C P A T T T T N U 1219, 0048,0E7€,9032,0107,0128,(C T T U 1218, 0880,0E7E,9032,0107,0128,¢C PR TR T PR TR TR RN N RS AIRLCLNVNLRLNINLNL NV NI PO TPV TLNY NN ;2734 ;2735 16:30:35 4 N CLOKX Rev 13.00, Clock rate = 160ns : Page End of Loops, Pestination write NB _MCERRCOD].AND,ZLITOLOFO], WXTNE .07, PUSH, NEXT/DS.MULP. F INISH.2 PUSH for DS.MUL10 RETURN+2, is high inibble zero? 0lmmmmmmmemmmmecmeeemee—eeeeeR[TEMPBJ SR.1,FLAG<2-0>7, Dest is written, set up DREG for -0 NEXT/DS ADDP4 .FLAGS ‘conversion, split on CC image to :ADDP4 code ;10==esmmmemsccccccse e ce e, H ) ;Load dest. base addtess, split_on sold FLAG values of source 1 & 2 signs, :PUSH for DS.WRITE RETURN [="1 VA_R[R5].P FLAGT (FLAG2 XOR.FLAG3)?, SET FLAG?Z, NEXT/DS.MULP.FINISH.SIGN ‘**fik*ti**i**t***tk*kfiflfifit**ktit*fi**fifi*flfitflt*t**fl*fi*k*t****i****tt****t ; ; =0 is high nibble of dest. =1 is high nibi le of dest. is 2ero, no ov. is nonzero, ov. : STEPC_Q_DS.WRIIE data & ve branch to DS, MUL10 to clear sign nibble. *ttfi*tt**Q*****************fl*****i**t***t*tttt*******ti*ttl*l*****t*it =0 DS.MULP. FINISH 2: . - - - - STEPC Q_R{TEMPB].SR.1, NEXT/BSTMUL10 - ! 1 _______________________________ $TEPC_0_RCTEMPS).SR.1 NEXT/DS MUL10 SET FLAG AR SetawatLn, ., MICRO2 O N BN AN = O O G0 NI VN B AU — © O 8 NN N B AN = OO ; CMT098.MCX OO0 IO LN L (NN =2 O O 00 IO N 2TM (AN — O D CO ; R R S A .<V>image_1 R R R R RSNl RRRRRtR R Rl d Here on XOR BUT of FLAG3 and old FLAG2 values. =10 is dest. 15 positive, mask pos. s1gn & <N>image_0. =11 is dest. is negative, mask neg. sign & <N>image_1. Note that th» PUSH for DS.WRITE was ma e at DS.MU P FINISH,1+4 and that the -0 dest. check is made in ADDP4/SUBP4 code. *ttiilt*li'*ti!tttttttttit*fittfittttitttfitt*tttttiit*'tttti'titttltitiit =10 DS.MULP, FINJSH SIGN: AL VEMP31 M3 OR 2L1T2400C), CLEAR FLAG3,NEXT/DS.WRITE P et ) uttultumiintntatnlabeind.- MCTEMP3] _MB.OR.ZLIT24[0D], SET FLAG3,NEXT/DS,WRITE 6?0 ; H (MT098.MCX DECMAL .MIC MICRO2 ' 1M(QT) 28=NOV=83 Decimal String 16:30:35 B § CLOKX Rev 13.00, Clock rate = 160ns : Multwpl1cat1on routine ;sggg? .T0C *' Decimal String ;27382 AR 127387 ;27388 27389 H : : 127392 : 127383 : 27384 :S;%gg ;27390 127391 ;5;;82 Input TEMPQ R Rk Rk ks % ; Resources : 127399 :27400 : H 127402 : 1274604 : TEMP1 Packed decimal data, memory format | Zero (00 Int. check Made no more than <max. TEMP? FPDOFFSET : :2;§38 127403 Multiplication routine' AR KRR RN RR R KRR R AR RN : : H 227401 : ; : Double=and- D1v1de is used to multioly TEMPZ(binary) by TEMPORTEMP1 : (Packed Decimal) 127395 ;S?39$ Page TEMP2 7> cycles ago Copy of TEMP? Accumulates product, memory TEMPO=-TEMP1 Product, MSD in TEMP1, LSD in TEMPO, memory format format, MSD in MM, TEMPZ Zero (0) H TEMP? : Int. check TEMP7 uUntouched Made during myltiplication, Microword on RETURN is cycle 127405 127406 : : ;27409 :27410 : TEMP? is assumed to be a binary va[ue <x99999999, [f TEMP1 is : 2ero, and TEMPO has valid Pac Pecimal data, no ov can occur e :3;685 S ;S; }} . +1 Returns : : since 99999999, x 99999999, < 9999999900000006. Ikltttt!twttttttttttttfltttt!tli!!tt!itflifl**tfl*fl*t*i**ififl*fl*ii'*fi****fi* ol 27415 DS, MULP,MUL: i hdsntanietntetnionintatatninbeledlobo bl Ll LDl Lol -, RCMM. TEMPS] 0 lnit. product accumutators N ok 2T T 27616 27417 27418 27419 27420 27421 27422 27423 P U 110B, 0086,25BE,4281,0047,0121,A P DAYWA y 1107, 0084,0587,0039,8047,011D,8 FPE YR P U 11D3, 0084,0587,0033,8047,011D,7 PAT S 4 R R 127413 127614 loop = MM.TEMPZ2, MM. TEMPS Qutput Binary multiptier Nonzero § oy e 2 O i o D e S e O MCTEMP2I_RLTEMP7I,WB<0>" ‘1s muttiplier odd? 671 ; H (MT098,MCX DECMAL . MIC MICRO2 1M(O1) Decimal String 28-NOV-83 16:30:35 C 5 CLOKX Rev 13.00, Clock rate = 160ns Multiplication routine Page ;27424 =0 :%;zgg DS.MULP.MYL.LOP: U 121A, 0880,2592,4A70,0047,0121,C J 1218, 0084,0001,4023,8047,011D,F 107407 :5;253 107430 NERT/DS.MULP.MUL . EZER i o ; i ]mmmmmmmmmmmmmom e o ese e ; RIMM.TEMPS]_(MLTEMPOJI+RB) .BCD :27434 127435 (e em e E e emtss———e——m .- ; RCMM.TEMP2] (ML TEMP1J+RB+ALK(C).B(D, :§;2§$ 672° {No, could be even or zero 127431 ;27432 127433 U 11DF, 0484,1041,4029,8047,0121,D WB_MLTEMP2],WX.NE.0?, ! } :Yes!, Partial product_par. prod. iplus CURRENT multiplicand H NEXT/DS . MULP.MUL.DD 127438 = :s;zzg DS.MULP.MSL.EZER: u 121c, 0¢86,05BE,4B33,98:7,0122,0 127441 MCTEMPO] RCMM.TEMPSI,IP.TS?, NEXT/DS.RULP.MUL.EXIT Eg;zzg DS MULP.MUL,DD: :Multiplier is zero, TEMPO & TEMPI U 121D, 0€86,0001,4020,0047,011E.,0 33;229 fi[TEMPOJ_(MB+RETEMPOJ).BCD EDouble multiplicand :5;22% 127448 J 1160, 0486,1041,4B20,5b657,0121,E 127449 :S;fig? 127452 =0 127453 u 121€, 0486,2001,828D,8047,0921,A 355+« ;27456 :s;zgg 107457 v 121F, 0480,003%6,4AF0,0047,04F7,0 ;27458 :5;228 } :partial product, anything pending? jmmmmmememme—m—— e —————— ; MCTEMP1]_(MB+RLTEMP1]+ALKC) .BCD,;Anything pending? 1R, TS? f ; i | ;Qe==mcemmmmmcacmmccccenam——e : MITEMP2] MB,SR.1,WB<O>?, NEXT/DS.AULP.MUL.LOP :No, divide multiplier by 2, is it odd? {lmmmmm=mom oo - PUSH,INTPEND OR TIMER?, NEXT/IE.SERV.IP.TS2 1Yes, RETURN=1 or to IE.PACK,.DONE i i 127461 127462 =0 LP . MUL.EXIT: 227663 DS.MU ;27664 u 1220, 0886,158E,4089,8047,0000,1 127465 :S;zgg 127468 e e v 1221, 0480,0036,4AF0,0047,04F7,0 227469 ;27470 H i , honatalall et bttt H MUTEMP1] RCMM,TEMP2], RETURN [T] :Nothing pending or timer service, sRETURNH ;Jeemsessmassesnenesnemnae mmmme-; PUSH,NEXT/1E,SERV.IP,TS2, INTREND OR TIMER? ;Something pending, return =1 or Jnever., [ e ; ; —— (MT098. MCX DECMAL. MIC e ————— - MICROZ 1M(QT) Decimal String e 28-NOV-83 ;5;2;5LTOC "' 327473 CLOKX Rev_13.00, Clock rate = 160ns Source#2-to=binary routine : ; . 27480 ; Page A KRR AR AR R * AR RR RN Sy ; DS.MULP,.SRC2BIN converts an 8-digit Packed Decimal value into binary. < 2427, : NO ov. can occur since 99999999 ; ; ;g;zgg H 0000000F WM. TEMPO Input : 27481 127482 PD data, BCDSWP'd into TEMP2 arithmetic format CMDR : =ABCDEF GH] : Resources 127486 ; ;ggzgg : ;57490 ;ttttttt*w*i*tttt*t*tt*t*t*t*ttfi***tt**l*lt**tttttt*it**twttt**tttt**** 127487 ;276491 ’ 673 Source#?=to=binary routine'’ JANENRA KRR I ER AR R RN R AR R AR NIRRT RN 57078 ;27483 D 5 Decimal String 127474 127479 e 16:30:35 : : ;27475 :s;z;g | e H OREG Holding digits Output TEMP? Binary value of TEMP2 Return +1 Constructing value MM, TEMP2 . ! ! ; ;g;zg% DS.MULP,SRCZBIN: U 11€2, 0R"4,2387,0021,0047,0115,8 33;232 127496 =00 127497 U 1158, 0484,D252,0031,0047,053D,E 127498 ;s;ggg 17501 u 1159, 0080,D292,1020,8047,053D,D U 115A, 0084,2387,0019,8047,0115,¢ 127502 :S;ggz 127505 127506 : 27507 :27508 = RLCTEMP?]_MLTEMP21.RR.24 INibbled1_'a* 100=memwmem——— O R[TEMP/J ((M[MM TEMPO] RB) RR.4.AND.MB).SL. 1. PUSH,NEXT/DS.SR.BIN. MUL10..2 (0l mme e —————— O_MCMM.TEMPO],AND. (RLTEMP2].RR. 24) POSH,NEXT/DS.SR.BIN.MUL10. JTEMP? ''A''Q, f1n1sfi mult1ply by 10 ;0_'8", .aad and multiply by 10 ;10mmwmemssees—ssecseccsccesases; REMM TEMP2]_MLTEMP2].RR.16 TEMP? has ABO, MM.TEMP2_''C'*in .n1 bble#t ;27509 ;27510 =00 27511 U 115C, 0480,D252,1039,8047,0530,D U 1150, 0080,0002,1039,8047,053D,D U 115E, 0484,2387,0009,8047,0116,0 ;00menemmmmn e m—— e n e n e, 127512 :s;g{z _MCMM. TEMPO1, AND, ( (MB R[MM.TEMP21) .RR.4), POSH,NEXT/DS.SR.BIN.MUL10. 127515 i37516 j0l=emmemmcceccesemesccsesesmea.; thm TEMPQJ, AND,R[MM.TSMPBJ 10_'D"", add and multiply by 10. ;§;§}§ 207519 ;27520 :5;255 i ;0_''C"", add and ,mult1ply by 10 PUSH NEXT/DS.SR.BIN.MUL1T 10emmmmmmmememsmemmemeteceeeee; R[MM TEMP2]_MITEMPZ2).RR.8 TEMP? has ABCDO, MM,TEMP2_'t'' in inibbles - : H CMT098.MCX DECMAL.MIC MICRO2 1M(Q1) Decimal String 127523 =00 127524 U 1160, 0480,D252,1039,8047,053D,D 127525 :g;ggg ;27538 1161, 0080,0002,1039,8047,053D,D 177529 ;§;§§? :27532 U 1162, 0480,0252,1030,8047,053D,D U 1163, 0080,0002,1030,8047,011E,4 U 1184, 0C84,0039,0081,C047,0000,1 :27533 :S;g%g 127536 ;sgggg $27539 :27540 16:30:35 28-NOV-83 : E 5 CLOKX Rev 13.00, Clock rate = 160ns Source#2~to-binary routine ;00mmmmmvmm e me e Q_~CMM. TEMPOJ.AND. ( (MB R[MM TEMP21) .RR.4), POSH,NEXT/DS.SR.BIN.MUL10. Page . ;0_"'E"', add and multiply sby 10. ;0lmmmcccemcnacecca e aan- &_MCMM.TEMPOD. AND RCMM,TEMP2], POSH,NEXT/DS.SR.BIN.MUL10. ;Q_'f'', add and multiply by 10. (memmsmssmtn e ——————————— Q MLMM. TEMPOJ.AND, ( (MB RLTEMP2]).RR.4), ;0_'"6", add and multiply by 10. POSH,NEXT/DS. SR.BIN.MUL10. P e ot .~ 0 _MIMM,TEMPOD. AND. R[TEMPZ] ;TEMP7 has AB(DEFGO, Q_'H" Te L L: RLTEMP7]_RB+Q,RETURN [11 ;TEMP7 has ABCDEFGH, RETURN , 674° Decimal String AR AR R Page 6751 CLOKX Rev 13.00, Clock rate = 160ns : DIvP" R R R R AR R Rk kA A kAR A Rk A AR AR Ak ke kA kA ARk kR k W DIVP divrilen.rw, divraddr.ab, divdlen.rw, divdaddr.ab, divdaddr.ab, quolen.rw, quoaddr.ab Instruction performs operand fetches and preliminary initialization in <ADD=SUB>P6. The following notations Done via restoring divide, used throughout the instruction: Q=DV/DR : Q(LB) What we're doing Length of Q, bytes DV(LD) DV(LDNLZ): DR(LD) : DR(LDN L2): Length Length Length Length Length DS.DIVP,REE.x: Unpack reentry points, such as DS.DIVP.REE.1: Q(LD) DV(LB) : DR(LB) : [ov] : Length of Q, digits, no Length of DV, bytes of of of of of DV, DV, DR, DR, DR, . leading zeros dig‘ts . digits, no leading zeros bytes . digits digits, no leading zeros figaaggé window on dividend, held in MTEMP8 - During init. check is done for divide-by-zero trap condition and DV=0 (Q_+0, CC_4) in that order. Divisor (DR) is held in RTEMP8-RTEMP11, LSD to MSD, with the least signif. nibble in the sign nibble position, ie. the data is shifted right arithmetically one nibble. Dividend Window ([DV]) {s held in MTEMPB-MERRCOD, LSD to M3D, and is DR(LDNLZ) digits in length, Input GPRS DR base address (address #1) DV base address (addrecs #2) 0 base address (address #3) Lengths Eheited for Reserved Operand GPR1 GPR3 TEMP] TEMP3 TEMP5 DR(LD) (length #1) DVILD) (length #2) Destination Llength au W N O NS (AN = OO 00 il I I B O VIS (NN ONONONOr OO OO O = OO 00 NN NN NN : DIVP e S T e R R T TETETE PY PR PR Y P TN 1 S NN o F T 22 o LT0C "' O LN S~ AN OOODCOO0 NVNONS s 16:30:35 R = €3 000 NN AN IUHUT AU NN TN SN N SN NSNS F 28-NOV-83 — O WD 00 AU N FI PPN NPT i i VIl LU T i SN SN N N SN N SN TN N TN SN N N SN N PININL NI ROFUINI NI AR RN AL AL PRI AU N NN SN N N N N N SN SN N SN SN N N N N AVILA LY Decimal String LAV ATV DECMAL MIC 1M(Q1) AUNINLALININY AINLAL NN : MICROZ e A T T T A R T T T T R R P T T e T P : CMT098.MCX e 16:30:35 G DIVP 5 Resources <Above, plus: > GPRO A P T TEMPO-TEMP3 Constructs [DV] during init., TEMPO TEMP1 TEMP2 TEMP3 ata afterwhich... Holds Q digits for writes <0>: TEMP4 L PR P PR P T D N éD?(LD)) in byte #2, pack/unpack TEMP5 P TR TR TR in byte#3 GPR4 P T T e N Holds (PC~PCBACK) and pack/unpack data in other See banner on StateSave bytes. Unpack routine. and code (DR(LDNLZ)), pack/unpack data GPR2 TEMP6 TEMP7 Holds DV bytes from memory 0=DR is negative, 1=DR is pos. General temp. . Result of #Q digits that get 2ero equation. For any @ digit, TEMP4+T will tell ov (=), last ov (0), or ok (#), providing each digit (output or no) causes TEMP4_TEMP4 +1 During init.: DV(LD), Main: Q(LB)=1 (Q(LD)/2), accounting for written bytes Init.: Q(LB)=1 (Q(LD)/2) Main: General General temp. LIT/LITRL temp. for use with FPDOFFSET (bvl holder, LSD to MSD *MLERRCOD] 1s not needed after any BUS exceptionw 1%. (after StateSave) QREG Beneral temp, MTEMP8-MERRCOD FPD RTEMP8-RTEMP11 RTEMP1¢ RTEMP13 Stack (SP) DREG MDR, WDR R Page 676I CLOKX Rev 13.00, Clock rate = 160ns T T : AN N NN TN SN N N N TN SN N SN N SN S SN S NS SN S S 1o S ®a e B0 My ®uu s e aBometo toBa®e®aVoPotobautatbohswows PR N I S A TR TE TR T T Y P OOCOOCOOO VOV VO OO0 VWO = O D 00 NN TN -2 OO 00 NOMUA AN 3 OO G IO N S NN 2 OO 00 NIO N B 28-NOV~83 MICROZ 1M(0T) String vecimal O e —t OO0 Ry e AT AL P (MT098. MC X DECMAL, Ml ¢ e AR e e FURBNIALABRLNIAIALNNI AL NI AN IR N FONINU RIAININIAUN NN AN AL NORV NI AINONITUTLRINITVNS NN e P e e VA X8 PSL<CC> ALUS DR holder, LSD to MSD, Misc. data Ditto (OV] holder Points to last byte ot [DV] on stack Gen. temp. 170 Points to next @ byte (low add, MSD end) after init. is done Points to next byte of DV in memory after init, 0 1f dest., is even Rolds DR sign while reading (OV] during init, 65 65 65 69 65 65 gg 65 PR PR TE TR TR N DS PR ZETE PE PR PR P FLAG? PR TE PR FLAG3 Qutput GPRO GPR1 GPR2 GPR3 GPR4 GPRS PSL<NZV(> PR Page 677] ‘ | it dest. is odd =~ f next @ digit is high le for TEMP i{ next @ digit is low nibble for TEMPQ <y> bit image: 0 before first loop <I> bit image: =1 before first loop ~1 on ov (nonzero digit lost) _0 if nonzero digit written O 4 64 22 FLAG? T 4 5 CLOKX Rev 13.00, Clock rate = 160ns FLAGO S A H : DIVP P 4 00 IO N B LR ~— O 10 00 NN 4 AN = O O 00 NI BN OO OO DO O £ NN A AL NSNS N N TN TN TN TN N SN SN SN TN TN N TN SN SN SN N SN TN SN N N T T P PR P O PETETE PE TRPP PR P TRT Decimal String S DECMAL . MIC NONU AL NS NONINIPONONI NV RLNINININUS NPV NI NI NIPVNININONS NS H (MT098.MCX 16:30:35 28-NOV=83 1M(01) L : MICROZ R R RN AR A AR RN AN AR R R R AR KRR R R AR to destination =0 if th1s low nibble s comglet ng a byte with high nibble zero (first Q@ byte to be assembled) =1 otherwise 0 Base address, source 1 0 Base address, source 2 0 . . Base address, destination C_0, NZV modified R R ARk Rk kR ke k ke ! i ! i | : CMT098.MCX DECMAL M]C MICROZ 1M(Q1) Decimal String 28~NOV-83 ;g;ggg .T0C '* 16:30:35 I : 5 Clock rate = 13,00, CLOKX Rey _ ) Initialization Decimal String 160ns Initialization" 35322; .REGION/DECMAL .R1L,DECMAL .R1H/DECMAL .R2L ,DE CMAL .R2H Es;ggz DS.DIVP: 11EC, 0586,CC37,0030,00A7,011F ,E 116E, OCED,A592,4034,0047,011F,0 11F0, 0C85,9003,0034,0047,011F,2 11F2, 0¢84,0287,0004,0047,011F,7 11F7, 0480,05BE,4281,4047,0122,2 Eggggg 127667 ;g;ggg 127670 ;5;2;5 127673 MCFPDOFFSETI_CC_ZLITOLO] ‘FPDOFFSET_0, guess even dest., e L L LR L L ; RCROJI_MLPCI,SET FPD iGet PC, figure & store PC-PCBACK jremmme e n—————— R ; RCROI_RB=M[PCBACK) jeeeseseessemmmssmemessenn—————- ; 127674 RCROI_RB.RR.8 Eggg;g WB_RLTEMPS),WB<0>? ‘1s this an odd dest.? 127679 =0 27680 DS.DIVP. INTA: 1222, 0C84,5591,8031,8047,011F,8 127682 :S;ggz ;27685 1223, 0180,0037,0030,0847,0122,2 ;27686 :g;ggg ACTEMP6] MCTEMPSI.SR.1, NEXT/DS.DIVP, IN1 ‘L/2, destination (Q) jlmmmmmmem e e ——— : cc_2L1t0C1], NEXT/DS.DIVP,INIA ;Set € bit, odd destination 127689 ;5;239 DS.DIVP,INT: 1178, 0484,1592,4031,0047,011F ,A 11FA, 0484,3592,4031,4047,011F,C 127692 127693 127694 127695 ;S;ggg RCTEMP4I_MCTEMP1] ‘Adjust from xxxP6 code, copy 1DRILD) jmmmmmmceecceeeesaan wmmmm—————— RCTEMPSI_MLTEMP3] iDitto, copy DV(LD) 127698 DS.DIVP,REE.1: 127699 11F¢, 0080,4001,A03D,8107,0109,1 197700 107701 ieedemaeas TSP — SO ——— STEPC_D_MLTEMP4],SR.1, NEXT/ZBSTDIVP, IN2 {STEPC_D_L/2 tor DS.READ Page 678 : (MT098.MCX DECMAL . MIC MICROZ2 1M(01) Decimal String 28~NOV=83 127702 =000 227703 U 1090, 0480,00A1,0034,44A7,053C,0 U 1091, 0484,4387,0AD5,0047,04F7,0 J 16:30:35 : Initialization ;2;;82 NERT/DS.READ.DIVP.DR 227709 127710 PUSH, INTPEND OR TIMER?, NEXT/JE SERV.IP.TS2, 32?713 RRRRR RN AR AR R AR Rk R ;2?716 H AN AR R AN ;S;;}} e n e s necc e : ) i | . AR R R RN R AR AR AN ARk AW R AR A AN A AR AR AR AR AN R ARAR KRR R AR KRR RR AR A AR R AR ARk Rk ke ek ek RER?J 0,NEXT/DS.DIVP.PCK.12 Zero GPR2 tor future masking, pack up ;27723 PC_RCR3], :Point PC for DV read 127722 ;01 1emumnmmem e e e mam e ; ;g;;sg NEXT/DS.DIVP.DRSGN ;100===mmmmmmmm oo cmsm s ; ;27727 PC_ZEXT(MLCTEMPQ])+Q,SIZELBYTE], ;DR=0, PSL<V> & FPD are ok, take trap 127730 ;10)mmmmemm—m—————a—ee e ————— MCTEMP3] ZLITOL1], iInts. pending from =001, pack up ;5;;58 NERT/IE.FLT.DEC.DBZ ;g;;%; 127733 i ;See if something's pending, load GPR4 ES;;S? u U 1095, 0986,3037,0030,0847,0109,2 . *No, or timer service, RTEMP8-RTEMP11_DR ; RETURN+2 from DS.READ is exception, RETURN+3 is ok read. : RETURN+4 is DR=0, we restore PC and take a 0 divisor trap. 127726 U 1094, 0480,0019,0000,0487,00F8,9 } R[RéJ_M[TEMP&J.RR.16 227717 :g;;}g DS.DIVP.PgK.12.PRE: u 1093, 0080,058E,4034,0487,011F,E 679 3 ;000=memmemccconcncan eemm————— DS.DIVP. 1~2 ;37707 ;27708 ;001 meme Page CLOKX Rev 13,00, Clock rate = 160ns VA D+RLR11+1,PUSH, 107704 127714 ;27715 Y 1092, 0(84,05B7,0034,8047,0117,A 5 NEXT/DS.DIVP.PCK.12.PRE ; ’ : : (MT098.MCX MICROZ DECMAL .MIC 1M(O1) Decimal String u 11FE, 0084,5711,8013,0047,0120,5 28-NOV-83 CLOKX Rev 13.00, Clock rate = 160ns Initialization fi[TEMP12]_(M[TEMPSJ+CONX(2)).SR.i:RTEMP12_DV(LB) :%??23 ttttttttttt'ttt*ttktttwtttttttt*t*t**t*****k**t****Q**i*tttfi**i***tt** 127742 127743 ; RTEMP12 has DV(LB) : Load DREG with DR(LDNLZ)~1 127746 jemmmmwemmmmemececeeectecee- —-ee; ;g;;zg (from GPR2) and read [DvV]. D_RIR21-1 W ‘ ! e e L e LT L L e 227?56 tttitttitt'ttttwtttttlttttttttt*utti!tttt*t**tt*t*i*ttwtfiwuttttfi*i\k** 227758 227759 : to DV str1ng, check for ints. & timer service. =011 {s DV= 0 and SIGN ; NIBBLE IS ZERO, INVALID SOURCE STRING... fix PC and IRD1. ;27760 227761 WX.NE.O? ;Get first/next byte from DV, is it t2er0? ¢ Here on WX.EQ.0? split from DS,DIVP.DVIN.1, 127767 127768 ) U 109E, 0186,3C37,0030,1047,0117,A 127769 :g;;;? ; ;27772 =11 ;27773 127774 :g;;;g perri? 127778 ;S;;gg ! ! =010 is more le -t**wfittt*t*!tfit*t*ti***ifi*tww*ittt*t*t**ttktt**tt**t******t*********** ! DS.DIVP.DVIN, INT: 27762 ;27763 1010 mmmcmcmncin e n - cum——— ;27764 :S;;gg ! ;-nw*wtt'tttttwttwtwttuwnttttwttwttw*tt******t**t**i**«wt***fiitii*ttttt R[TEMP?J JEXT{X8) PC PC+1, NEXT/DS,DIVP.DVIN.1 :S;;gg i ; PC has DV base address (MSD) 127752 127753 227757 J 1090, 0186,3€37,0030,1047,0117,A l f ! ;27751 U 1098, 04E7,929(,7024,0047,0132,5 680 3%;;;% 1217 127749 =000 :27750 =001 U 109A, 0480,0036,4AF0,0047,04F7,0 Page ! ’ :g;;zg U 1099, 0C85,759E,4A41,E047,0122,4 : , [ 5 227734 DS.DIVP.DRSGN: :S;;ig DS.DIVP.REE.2: 227741 v 1205, 0880,087D,2034,8047,0109,9 16:30:35 K PUSH, INTPEND 0 TIMER?, NEXT/1E.SERV.IP.TS2 ‘More left to string, check for ints., JRETURN =1 for next byte or +4 101 emm et ———-; MTEMPO _RLROJ.RR.24 0Q _PCBACK, CLEAR FPD, NEXT/DS. DIVP.BAD TEMPO (PC=PCBACK) in low byte, +Q_PCBACK, ! ;10 esorcnnmcvcnmm e n—— ~m—— MCTEMP3] ZLITOL2) ;Load int, code 2, pack up ; ;Load int., code 2, pack up i NEXT/DS.BIVP.PCK, 12 1110-mnamnm e MLTEMP3) ZLITO[?J‘ NEXT/DS.DIVP.PCK. 12 tix PC and IRD1 ———— . | i ; ; (MT098,MCX DECMAL . MIC MICRO2 1M(01) Decimal String 28=-NOV~B3 127781 16:30:35 L 5 CLOKX Rev 13.00, Clock rate = 160ns R R Page Initialization : A e AR A AR A AR AL AR A AL AR ; Here on WX.NE.0? split from leading byte reads, DV 227782 AL AL AL AL AL ***tttt*ttti*tt***********t*****************k***t*fi*t***twkw*ttiwtttwt ;27782 <0 ;277 ;27785 DS.DIVP, DVIN 1: ;27786 Qmmememcecccecccsccnmescnnacneay 127787 R[TEMP12J RB=1 J 1224, 0084,0E7D,0A33,0047,0909,A 378% ;S;;gg 127790 e R 127791 RCTEMP12]_RB~1 U 1225, 0804,0E7D,0A33,0047,0922,6 378« :S;;g% 127795 227796 :g;;gg e e ————— (m m m 127805 L <0 :two? ;Yes, DV is 1 digit + sign, we don't NEXT/DS.BIVP. TMPSAL 127802 127803 127804 ‘No, is this 1 digit (Low nibble) or e —————————— T MLCTEMPSL] ZLITOC1], ;27801 ;273?3 mmmeme WXTNE.0? ,NEXT/DS.DIVP.DVIN.DIG :27800 127806 127807 27808 0 is it 51?n byte?, ,and ctear FLAGO for possible use later WB_MCTEMP7].AND,ZLITOLOFOQ], 127799 U 1227, 0586,4€37,0030,0847,012F,7 Byte is non-zero, CLEAR AGO,wX EQ.0? 12779 =0 U 1226, 0980,7C12,0A77,8047,0122.8 yte is’ zero, anymore bytes left in WX.EQ,07,REXT/DS.DIVP, DVIN INT ;DV? AR ‘care if it is 0 + sign, load TEMP4 and senter MTEMP loading code A A R AR R AL R L AR A AR AL AAL AR ARALA AL R : Nonzero, nonsign byte has been read RTEMP12 has # bytes left in DV : AFTER this byte, DREG has GPR2-1 20 is 1 digit this byte (high nib ; zero), =1 is 2 dlg1ts tt*fitt*i***tt***t&tttt*twtfit*ktt*t**fi***t**tt*t*t***tt*tt**t*t***i*tw* 27 ;g;g}; DS.DIVP, DVIN DIG: U 1228, 0086,453D,0033,0047,012F,7 U 1229, 0086,4C37,0030,0847,0120.6 u 1206, 0086,45D1,0013,0047,010F,6 U 12F6, 0880,0671,2030,0047,012F,7 127813 :s;g}g 97816 :S;g}g 127819 M[TEMP&J RCTEMP12]),.SL.1, NEXT/DS.BIVP, TMPSPL TEMP4_DV(LDNLZ). 1 digit this byte ;lemmmessemmmmeecesmeceemmneeeee M[TEMPL] _errorid $TEMP4_DV(LDNLZ), 2 digits this byte jememmmssemeessesecessemeeeese - :5;3%9 MLTEMP4 ) MB+(RETEMP12] ASL.T) 127822 memeemaEee—eesemnmsEERe e ———. 127823 127824 D_D=1 ;And fix DREG to account to 2 digits sread already 681| 1M(01) 1167, 0181,0¢37,1030,0047,012F,8 1169, 0580,0C30,06F0,B847,0916,D 377% 1168, 116D, 0081,0€37,1030,0847,012F,9 0181,0(37,1030,1847,012F,B 12F 8, 0986,1¢37,0030,0047,012F,9 TeBeNoRhono e B o ®e e Be e e 116F . 0p81,DC37,1030,1047,012F,A ooty Be Sa®e®eoBeBe Su®y By 0ot 1165, 0D80,0¢30,06F0,7847,0916,9 377« ossBete 12F7, 0980,0C30,06F0,3847,0916,5 377« e TMaBaBe®o®otsva® Decimal String e bo®o®e DECMAL.MIC MICRO2 28-NOV-83 16:30:35 M 5 T ,A 0986,2(37,0030,0047,012F N 12F9, 12FA, ,8 0586,3C37,0030,0047,01¢F Page 682; CLOKX Rev 13,00, Clock rate = 160ns Initialization :Now split to decide which MTEMP to ;deposit this fraction of a lon word ;in. DREG has DR(LDNLZ) MINUS THE ;NUMBER OF DIGITS IN THE BYTE JUST READ. =01 WB_D-ZL1T0[15.],WB<31=3057, NERT/DS.D.VP.TMPSPL.1 iD>=7., we aren't in TEMPO ettt bt b H RNUM_Q_ZLITOCO], NEXTZDS.DIVP.MT1 ;No more than 1 s TEMPA longword total, store =01 DS.DIVP.Tg?sPL.1: WB_D-ZL1TOL23.3,WB<31-30>?, NERT/DS.DIVP.TMPSPL.? iD>=15., we aren't in TEMP1, :decide between TEMP2 or TEMP3 R tatetutniniabmataiate ———————————— : RNUM_Q_ZLITOC1] NEXT7D3,DIVP, M2 :No more than 2 longwords total, istore TEMPH Bs.olvp.rgpspL.zz RNUM_Q_ZL1TOC3], NEXT7D3.DIVP.DRDV iD>=23., we start in TEMP3, : load MTEMP# i b aiaiatrenneantatelie bl b b bt d Dl : RNUM_Q_2L1T0L2] NEXT7D3.DIVP, MT3 ;D<23., we are_in TFMP2, tand zero TEMP3 load code ;wtttttttt**n*lt*flkktttRtk*t***k****t**k*i**t**ifll*t*flt**tti**ttfi*****t* ; 2ero unused high MTEMPs ;t&***tt**t**t*tttk***ttlk*t***t****t*t*ttt*ttt*tfit*tt*wtttnt*t*ttttt\'t DS.DIVP.MT1: MCTEMP11_ZLITOCO] ! bS.DIVP.MT2: P TEYS L 8 . MCX CMT09 MCTEMP2]_ZLITOLO) DS.DIVP,MT3: MLTEMP3]_ZLITOCO] ) t H : (MT098 JMCX DECMAL .MIC Decimal String N 5 Page CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 28-NOV-83 Initialization = O O <o O OO O VOOOVDO N IS AN O O 00 O O DOV ANND =~ ; RNUM & QREG have the TEMP# to store the high fractional longword. ; TEMP4 has DV(LDNLZ), GPR2 has DR(LONLZ). R O T T A R L AL L L AL DS.DIVP. DRDV “1s DV(LDNLZ) >= DR(LDNLZ)? WB_MCTEMP4I1=RLR2], wB<31=-30>? ;0 - = ;{split will be to =00 or =11) . = = - - ; = WB_(D+CONX(1)).SR.1,WB<1=0>7, ;Yes, split on <1-0> of total # digits NEXT/DS.DIVP.MT.FILL .to get ;tkttktfitifi*tkttttfltkttktttttflkki*fl****t**t!***fi****!t***fi*********t**fi ; QV(LDNLZ) < DR(LDNLZ). Q will get +0, CC will get +0. . ( Dividend < Divisor ) - e 28 TYYy XXX XX ; L T A TR Case is of the ftorm: ; FLAGO was cleared at DS.DIVP.DVIN.1+1 when the first ronzero DV byte TEMP4 (DV(LDNLZ)) witl be loaded with GFRZ (DR(LDNLZ)) was read. so the O(extra) value will be one less than G(LD), The ‘‘zero high dest. bytes'' code wilt zero all of Q except for the sign byte (or do nothing it Q(LD)=1 or 0) and the first & last subtraction will produce a zero digit in the sign byte. After loading TEMP4L § setting FLAGO, we branch to DS.DIVP.MT2 to clear the upper TEMPs and enter this code again. FLAGO being one indicates that the SR TEMPs have been cleared. NAN R - PV N AL NI PVNO RO PUND NS NI NURL N NI NN ANV O 0 U 12FC, 0084,0587,0033,4047,0122,D PORININY —b b b = b —2 b Dt =t (DL= U 1228, 0086,45BE,4034,8047,012F,C ARSI AT AN NU N RBRL AL U N NS AU NNV U 122A, 0946,1037,0030,0047,012F,9 N NN N N TN NN TN N Y u 1173, 0186,0037,0430,0047,0122,A NN N TN N N U 1170, 0C80,0731,8240,0047,0917,4 387+ £UROAAININD U 12FB, 0480,4000,06F4,8047,09.7,0 338« T T S R TR TR TR Py e I TR PR PR O ! NN NNNNNNY ~ NN NN NN NN NN NN NN o0 0000o O €000 €6 €O 0o Co 00 CO 00 OO X 00 00 000000 OOV OO OVOVOOOY co Q0 OO 0000 CO CoOUD 0000~ < QOO NO NN =Oo O NN NI NN — O OTM :*********!i**k*tktiit***i**t*kt***ifi*tt*k*t**k*it*ttfitttttttttt**t**tt R - ;0 - s R RN AR A NN AN AR R AR ARk AR R Rk Rk bk ke ke kv ke ok o - R e D 2 - MLTEMP1] 2 LI10C01,SET NEXT/DS.DIVP . MT?2 e FLAGO, :Zero TEMP1, set fiag, zero TEMP2 :& TEMP3 MLTEMP4]_RLR2] STEMP's are clear, DV(LDNLZ)_DR(LDNLZ) RITEMP13]_0, ‘Clear for packing if wnverrupted. NEXT/DS.DIVP.PRE.STACK ; 683 o ; : = ¢ —— s o (MTO98.§E% DECMAL. e e MICROZ2 1M(Q1) Decimal String 28=NOV=83 16:30:35 B 6 CLOKX Rev 13,00, Clock rate = 160ns Initialization ERAR RN IR AN RRR N NN AR RN RN R NR AR Page AR AR KRRk RR kAR RS ;27954 R 127946 227927 ; TEMP? has byte read in a readz , : RNUM and QREG has TEMP# for the longword fraction 127929 ;27930 127931 ; PC points to next DV byte . . ; RTEMP12 has number of bytes left in DV : Here on <1-0> split on total # of digits to get in [DV] for longword ;27933 ;*tfittttitttitfitttttitttttttt*t**l‘*t***ttttt***t*tt*i*tttttifit*i*****tt 127925 127928 127932 127934 =00 to ?et after TEMP? : DREG_has # of digits ; Unused TEMPs have zero loaded : fractional alignment. ;g;ggz DS.DIVP.MT.FILL: u 1174, 0887,0287,0801,D8E7,010¢,0 127937 ;ggggg :27940 u 1175, 0484,7387,001C,0047,0117,8 U 1176, 0084,7387,002¢,0047,0101,2 ) v 1177, 0487,058E,4031,0047,0106,2 ;27941 ;2;82% ;37944 127445 ;s;uzg 127948 127949 ;S;ggg ;27952 MUTEMP.R) _RLTEMP7].RR.8, ;Byte left, load it into low 1P, TS?,NERT/DS.DIVP.MT . LOAD :byte, anything pending? (0l==sccccccmmnnn en e ane H RETEMP.RI_MLTEMP7].RR.16, NEXT/DS.DIVP.MT.FILL.W ;10mmmmmmmm e e :Word left, shift this hyte around ———— ————— RCTEMP.RJ_MLTEMP7J.RR, 24, :3bytes Left, shitt this byte around NEXT/DS.DIVP.MT.FILL.3B ;1] =mmemmeemmamma——————- —————— MCTEMP.R]_RLTEMP?7], ;Longword is high fraction, hold onte NEXT/DS.DIVP.MT.FILL.L ;this byte :2?953 :t*ilttt*ttttfitfitttfitfittttttttttttttt*t*ttt*ktk****ttttlt**fitttttt*ifiit* 127954 ; ;27925 Continuation of word fraction read SRR AR AN KR AR AR AR AR R AR RO R ARRAR RN R AR R AR AR AR RN AN R R TR :27956 =00 ;27957 DS.DIVP MI,FILL.W: ;27958 U 1178, 0084,067D,0033,0047,051B,A ;27959 127960 127961 127962 ¢ 1179, 0880,0730,2810,1867,010C,0 127963 ;27964 127965 ;127966 ;00rmmmommmem e s n e o e et aanca. oH RUTEMP12) RB=1,PUSH, NEXT/DS,SR.18 U 1174, 0884,33BE,4014,00647,0124,C 127970 ;S;g;; :load current TEM ) ettt dabetsorutaintatntel ] D _D-CONX(2),IP.TS?, :RETURN+1 NEXT/DS.DIVA,MT.LOAD 127967 227968 DS.DiVP.P(K,12: :27999 ;We're reading another byte of Dv, :read next byte, Batch in and and TEMP has word, stor 2 more digits read ;107 -oemconceccecannunnneennuan : RCRO) RB.OR.(M[TEMP3].RR,16), NEXT/DS.DIVP.PCK.12.(ON is ok, ;split on something pending, account ;RETURN+2 {s exception, code is :loaded,mask into GPRO and pack up : H (MT098,MCX DECMAL .MIC MICRO2 1M(OD) Decimal String 28-NOV=83 127973 127974 16:30:35 C AR AR KRR AR AR R AR NN AR ; Continuation of 3 byte fraction fill IR RRERERAR AR AR AR AR AR AR ;27975 127976 =0+ 127977 DS.DIVP, MT FJLL 38: 227978 U 1012, 0485,759€,4013,6047,012F,D . J 1016, 0186,3(37,00350,1047,0117,A 127979 :s;gg? 127982 ;27983 ;s;ggg Page (LOKX Rev 13.00, Clock rate = 160ns Initialization : SREAKE AR 6 AR RN RRA AR AR RN R AR kR bR Ry j0mkemmeccscmcnmmmesccccn e e sasn., R[TEMP13] ZEXT(XB) PC_P(+2, NEXT/DS.DTVP.MT.FILL.3B.1 iRead next word e e P LR ; MLTEMP3] _ZLITOL2) NEXT/DS.BIVP.PCK. 12 ;BUS exception, pack up, code #2 127984 :g;ggg DS.DIVP.MT.FILL.38.1: ,E U 12FD, 0887,0292,4013,4047,012F U 12FE, 0484,073C,0013,0047,012F,F u 12FF, 0880,0730,2820,18E7,010C,0 335333 MCTEMP.RI_MB.OR. (RCTEMP131,RR, 16} 127991 jemmemmsmesemmeeneea—. —m—ee- - ;s;gg% RUTEMP12]_RB-CONX(2) ;?7994 ——————————————————— ERLLLL LD LT N 127995 :27996 Ch b_pCONX(A) 1P, TS’ NEXT/DS.DIVA.MT.LOAD ;We read 2 more bytes ot DV ;and 4 more digits, any ints. ;penging? Rk d 685 {MT098,M( X DE CMAL (MIC MICRO2 Decimal String T 127998 Initialization ; Continuation of high longword fraction read R DS.DIVR MT.FILL.L: : B o 0B A R L e e 3 e D 6 LA MM A AL LA AR AL A LA AL AL AL : 08 8 L . T M -:BUS ' exception, pack up (code #2) NEXT/DS.DIVP.PCK.12 g JsRead in next WORD b o ed b h NN = O 000~ RCTEMP13] _2EXT(XB) PC_P(+2, NEXT/DS.DIVP.MT.FILL.C.1 PUSH,NEXT/DS.SR,18 ‘Patch byte and word together, read & M[TEMP.RJ_HB.OR.(RfTEMP1BJ.RR.245 :mask in next byte, RET +1 or +¢2 j0lorssrcmnnn s cr e s ———— H RUTEMP12]_RB=CONX(2), :We read 3 more bytes = OO0 NO N QOO0 NONN '301, 0(84,0E70,0833,°8E7,010C,0 < COOOOOOOOOOOOODOOOOOOOOOOCOVOOC ; Page CLOKX Rev 13.00, Clock rate = 160ns 03 82 AN RINVNUNINI NO RO NI NN ~3 b b =2 b T T R P P T T P P NN NPV NINVNONI N o T NI T i 1300, 0180,0¢30,2030,3047,0130,1 R T T UL NS AL ML NINLNNLNL N NNV 17E, 0884,33BE,4014,0047,0124,C U RNV MU RN 117D, 0C84,073¢,0013,0047,0130,0 S I T T O 117¢, 0087,0292.4023,4047,0518,A GO0 Co 00 00 00 20 G0 G0 Co Co 0o 1066, 0186,3€37,0030,1047,0117,A OB Lo 00 00 €O €0 20 O ; 1062, 0485,759€,4013,6047,0117,¢ 00 00 00 0 6O €0 Co 0o Co G G | 7999 00 =Qxx 02 : 6 ;ttfififit*t*tiittflktttttfittt.tt'&ntttttnttttut'!'ttnll#fittttttttttttt*'tt ;27997 01 D 16:30:35 28=NOV~83 1M(Q1) j from DV (-1 done NEXT/DS.DIVP.MT.FILL.LT ;2 ¢ycles lLater) Y ;1 H NEXT/DS.DIVP.PCK.12,(ON icode #2 is loaded, pack up RCRO] RB.OR.(MI[TEMP3].RR.16), DS.DIVP MT.FILL.LY: ;BUS exception from read, int, 7 D_D=2L1TOC6] 3 more bytes=6 more digits RLTEMP12]_RB=1,IP,TS? ‘Anything pending? 686 e ; : e s CMTOQS.QE% DECMAL., e MICRO2 ————————————— 1M(01) Decimal String ;28031 e E 16:30:35 28-NOV~83 ;28032 128033 e SRR AR AN 6 Initialization AR AN AR AR ANA N AR RN U 10¢0, 0881,0088,123D,8047,0907,3 400« 128038 ;sggzg L :28042 U 10C1, 0680,0036.4AF0,0047,04F7,0 :Sggzg 128046 =101 ;28047 u 10¢5, 0186,3€37,0030,1047,0117,A NEXT7DS.DIVP.MT.LOAD.SPL ;00 mmmmmm e e ne PUSH, INTPEND QR TIMER?, NEXT/IE.SERV.1P,TS2 P SRR LI SR L :Nothing pending or RETURN-1, :Back down 1 MTEMP and see if done m e e; :Something pending, RETURN =1 or +4 ;28052 R L L A 128054 128055 : =110111 is BUS excegtion. pack up (from =110011 split). : =111111 is RNUM & QREG went negative, we are done loading [DV]. 28049 ;28059 ;28060 :sggg; :28063 ;28064 ;Sgggg 128067 =111111 +28068 128069 ’538;? ARNR ;101 =mmenennm e e e e maaaaane H ;Interrupt code #2, .ack up NEXT/DS.BIVP.PCK,.12 A R LA AR A AR AL A LSRR ARA R AL R AR ARERR LSRR AL AARRLE L : =110011 is read & store next LONGWORD. R ;28057 =110011 ;28058 DS.DIVP,MT,LOAD.SPL U 107F, 0484,0537,0033,4047,0130,4 e L L L MCTEMP3] 2ZLITO(2], ;28056 U 1077, 0186,3037,003(,1047,0117,A Rk AR 128048 ;28053 U 1073, 0885,7592,4(2(,2047,0130,2 RN R ;000~=mmmomncnieenmnccnassanean H RNUM_Q_Q«1,WB<5=0>7, :28041 DS.DIVP.MI.LOAD,INT: ;28043 R RN ; Here from high fraction read on IP.TS? split, or from reading 1 of 3 ; (maximum) next LONGWORDs to DS.DIVP.MT.LOAD: directly. L L L ;28034 ;28035 =000 :28036 DS.DIVP.MT,LODAD: ;28037 Page CLOKX Rey 13.00, Clock rate = 160ns ;110011emmmmm e L e e RCTEMP.R]_XB PC_P(C+4, e e e L TR S AL AL A A -: NEXT/DS,DIVP.MTTLOAD.LW ;11011 =mmmmmmmamaamommaemn——— ; MCTEMP3] ZLITOL2], NEXT/DS.DIVP.PCK.12 P R RN JBUS exception, pack up, int. code #2 i iseinvinrmnonestain el ; RCTEMP13] MCTEMPOJ], CLR3B, NEXT/DS.DYVP.DV.SHF JRTEMP13_Last [DV] byte read 128072 :538;2 DS.DIVP MT,LOAD,LW: u 1302, 0180,0030,2030,4047,0130,3 3538;2 D_D-ZLITOC8.] i8 less digits left (unless sign lw.) U 1303, 0084,073C,0023,0047,010C,0 00 . 128079 nERIERRIORGT, T THLess in oV, DV, Lo p loop P back ' i4 less bytes es Lett left in bac NEXT/DS,DTVP,MT.LOAD Y : 687: : ; CMTO98.HE§ DECMAL., MICRO2 1M(01) Decimal String 16:30:35 28-NOV=83 ;28080 F 6 Initialization JRAAAAAE RN AR RARERIK AR R RA RN R KRR AR AR R A ARk ek bRk : 28081 Eggggg WB_RCTEMP12],WX.EQ.0? :28088 =00 28089 U 1180, 0C80,0022,4A3D,8047,0122,C AR : RTEMP13 has last byte read in high byte, zero in low 3 bytes. RRRAR KRR AR R KRR KRR R KRR Rk ;2888% ;28 ;ggggg DS.DIVP.DV.SHF: U 1304, 0480,05BE,4A33,0047,0918,0 322+ Page 688 CLOKX Rev 13,00, Clock rate = 160ns ettt itttk kb ok kAW Ak doR AR Rk kkkw kR iWas all of DV read? b A; , . ;No, DREG is zero if we read exact amt., ;=1 if we read 1 more than needed :¢8090 :gggg; We_D,wX.€Q.0?, NERT/DS.DIVP.DIGSHF ::Sgggz ;tttt***i**t**t\'*k*****tk***k*****tkk***w*t*tt****t******fi**fi*i******** :28096 ; 1) At DS.DIVP.MT,SHIFT: because all of DV was read. ;28099 ;28100 : H . Enter below: 28095 28097 : 28098 ;Sg}g; : sign nibble, . s 2) At'DS.DIVP.DIGSHF: from =00 sgl1t above. o1 Shift out All of DV was not read, =0 i{s 1 more digit was read than desired, shift out low nibble, =1 is [DV] is fine as is, store it on stack. SREARRERER AR RAR AR RRR NI R IR I IR NI R WA R I d kAo e e b Egg;gz DS.DIVP.MI,SHIFT: u 1181, 0186,7€37,0030,0047,0528.,4 128105 :sg}gg :28108 U 1182, 0C80,058E,4037,84A7,0130,5 ;28109 :gg}}? _ PUSH,NEXT/DS,DIV10.DIVP, MCTEMPZ]_ZLITOL0] $10=m :Divide TEMPO-TEMP3 by 10. s me e; VA R[SP], NERT/DS.DIVP.PRE.STACK.1 :Prepare to store [DV] on stack 128112 :28113 =0 ;Sg%}g DS.DIVP,D]GSHF: J 122C, 01856,7(37,0030,0047,0528B,4 128116 ;gg}}g 7 PUSH,NEXT/DS.DIV10.DIVP, MCTEMPZ] _ZLITOCO] EDivide TEMPO-TEMP3 by 10, RETURN +1 Egg}gg DS.DIVP.PRE.STACK: U 122D, 0C80,058E,4037,84A7,0130,5 Esg}g} VA_R[SP] *TEMPs are shifted, VA_top of stack Egg}gz DS.DIVP.PRE.STACK.1: u 1305, 0886,858E,4030,€047,0130,6 U 1306, 0086,A58E,4030,8047,0130,7 Egg}gg 128127 fi[ERRCOD]_R[TEMP3] josesmenen e L L LS LS EE R ; ;gg}gg MCTEMP10]_RLTEMP2] v 1307, 0086,95BE,4030,4047,0130,8 :28130 :S§}§5 MCTEMP9)_RLTEMP1] U 1308, 0886,858E,4870,1847,0118,5 ;28134 fi[TEMPBJ_RCTEMPOJ.ALUS? 108133 iMove [DV] to high MTEMPs vttt trinmptstetetet ettt : eececcecssmeesssiseseccenes —— :What is DR sign? o ; : ; (MT098.MCX DECMAL MIC MICROZ 1M(O) Decimal String 28=NOV=-83 16:30:35 G : 6 Storing Dividend on Stack Storing Dividend on Stack' A L L A R L L R AL A S A RARA AL A LA LA : :Sg}gg .T0C ' Decimal String 228137 R ;28139 ; exit when RNUM (QREG)=7, 128138 ;28140 128141 =01 ;28142 L ; We move up stack worksgace area while moving down MTEMPs. I R I ST AR AR AT AR R AL U 1187, 0186,2037,0030,0047,0130,9 128146 ;Sg}gg ;== ————— mrem e ————— ; MCTEMP2]_2LITOLO) ;DR is negative U 1309, 0886,1287,0023,4047,0130,A Esg}gg DS.DIVP.STACK: Esg}gg MCTEMP1]_RCTEMP131.RR. 24 108153 U 130A, 0081,8(10,2030,84A7,0101,0 ;28154 ;gg}gg ‘ AM AL Rt ettty —em——ee—— H MCTEMP2] ZLITO[1], ;gg}zg Loop will RLRAARARR AL 128143 U 1185, 0586,2037,0030,0847,013C,9 Page 689 CLOKX Rev 13.00, Clock rate = 160ns NEXT/DS.DIVP.STACK ;DR is positive ‘TEMP1_last byte read into low byte jumsmemmeceosemmen———— -mseesee; VA _D_M[VA)-ZLITO[16.], NERT7DS.DIVP,STACK. INT ;Back up to beginning of workspace area ;(to DREG for SP setting) ! :gg}gg DS.DIVRP.STACK.LOP: U 1308, 0081,b08BB,123D,8447,0900,7 400« 128159 ;Sg}g? VA_VA+4 ,RNUM_Q_0~1, wB<5-0>7 ,NEXT/DS.DIVP.STACK.WR ‘Advance up stack, MTEMPs, and see ; 1t done (WB=7) i 128162 =00000 | ;28163 =001 ;28164 DS.DIVP.STACK.WR: , iy 1007, 0C84,0582,4837,98£7,010D0,8 128165 228166 :gg}gg $58169 =01111 128170 u 100F, 0081,0592,4020,0508,0130,8 228171 :Sg};g i 10011 e mmenenncun sememenemn———- : RCSP] D,IP,TS?, NEXT/DS.DIVP.QF IX 101111 mommmmm ;Point SP past stack workspace area, ;split on ints, pending } e e —-—; WRITE MLTEMP.R],SIZELLONG], NEXT/DS.DIVP,STACK,LOP :Nothing pending, loop back =OR~ not ;finished writing stack, loop back ; K, 128174 DS.DIVP.STACINT: ;28175 U 1010, 0081,DC37,1AF0,5847,04F7,0 U 1014, 0186,3%C37,0030,1047,0117,A . PUSH,IRTPEND OR TIMER?, ! ANUM_0 _7L1T0C11.], ;Start with MERRCOD, check for ints, :gg};g NEXT/IE.SERV,IP,TS?2 =1 or +4 128180 =1001 U 1013, 0186,3(37,0030,1047,0117,A :10000vcmconmmmcnmnan e nc e : 128176 128177 ;before writing to stack, RETURN i2eie) ; :gg}gz ; T L NEXT/DS.DIVP.PCK,12 pack pack up, code # ) JBUS exception, {aus cxception, P P P (58180 ; s eI TN LT S {:Ints. Ints. 128185 =10100 :Sg}gg _ | § NEXT/DS.UIVP.PCK.iB y pending, pending, 9. P pack pack up. #2 up, €0 code P ¢ P ; ; - p— — — ainm (MT098.MCX DECMAL .MIC — MICRC2 1M(01) Decimal String 28-NOV-83 16:30:35 : Zeroing high dest, bytes Decimal String : Here on iP.757 split after saving [DV] on Stack. :28198 ;28199 128200 ;28201 128202 128203 R :28210 ;28211 128212 ;ggg%z 128215 =101 ;28216 ;28217 :535}8 _ A A R A AL R AR AR AL A AL A AR A A LS AR AAE AR We calculate the ; ! % i ; high number ot @ digits to get zeroed via the following algorithm: i i Qlextra) = Q(LD) = DV(LDNLZ) + DRC(LDNLZ) = 1 : 1f Q(extra) is > 0, Q(extra) is the number of high (most significant) | i . ; ; ; digits to get zero'd (ie, extra digits), If= 0, nothing is done. If7¢ 0, Q(extra) is the number of output digits to be swallowed by the DIVP main loop before beginning to write the infinite precision least significant digits of the guotient. JRRREEN R ;28204 =000 F IX: 128205 DS.DIVP,O E.3: VP.RS DS.DI g :Sgsg Esgsgg R Page 690; Zeroing high dest. bytes' : ;28193 Egg}gg U 10DD, 0084,63BE,4005,0047,0132,A CLOKX Rev 13,00, Clock rate = 160ns . :Sg}gg u 1009, 0D86,3C37,0AF0,1847,04F7,0 6 :Sg}g? .T0C 328192 u 1008, 0880,05BE,4035,44A7,0130,C H AR AR AR R R VA_RCRS],NEXT/DS.DIVP.OFIX.1 A R KRR RS RR R AR AR AR :VA_G MSD address ;007 =mrmmsmmmamm o am e ——————- ; PUSH,INTPEND QR TIMER?, NEXT/IE.SERV,.IP,TSZ, M{TEMP3]_2L1TOC3) ;Something pending, RETURN=1 or +4 ;10]emmommmmcmcm e —e oo oo —onne : RLR4] _RB,.OR, (M[TEMP6],RR,8), NEXT/BS.DIVP.PCK,34 RN ;TEMP3 has int. code#3, load JTEMP6, finish packing ; ] ;28224 ;08225 ;28226 ;28227 ;28228 ;28229 ;28230 e Y ;28222 1¢8223 Page CLOKX Rev 13,00, Clock rate = 160ns leroing high dest. bytes AN R R AR A AR AR AR AR G(extra) AR AR R R RN R AR RN AR RN R RN R IRR AN RNk X v computation. [f PSL<C> is =0, we do the =1 in the , If Q{extra) is >= 0, we set flags based on PSL<(> (=0 if even dest., =1 if odd dest.) since the first 0 digit placement will depend on 0(LD) evenness/oddness. [f Qextra) ¥s <0, we set flags based on: . LeLD)<0> s PSL<C>] Qfextra) + ( Q(LDI<O> ) . This value will indicate in which nib. 0 digits start (high/low). If this result is even, we have an even Q(extra) and Q(LD) OR an odd Q(extra) and Q(LD), in which case Q@ digits begin in the Low nibble. It the result is odd, we have an odd/even or even/odd pair of Q(extra) and Q(LD), and the first Q digit goes in the high nibble of the first A S byte. t+*Note that the case of DVILDNLZ)<DR(LDNLZ) caused TEMP4_GRP?2, so Qlextra) will get Q(LD)=-1 (for even or odd Q(LD)). D ;28233 ;28234 ;28235 6 equation will cancel out. ;28231 ;28232 1 Q(LD) s ( (TEMP6,SL)+PSL<(> ), and DVILDNLZ) is (TEMP4), If PSL<C> is =1, the +PSL<(> in the calc. of Q(LD) and the -1 in the Q(extra) TR TR TR 128221 AR PR R ;28220 : T DECMAL M]( Decimal String €0 0000 OO 00 CO 00 CO 00 o CO 00 00 00 £9 .00 OO0 CO Go0B Co 0000 0o G0 0o ; CMT098,.MCX 16:30:35 28~NOV~B3 1M(Q1) NN S N N N N N L N N N L N A A S A A A A LA LA S I DN 2 D DD B B DN RN W NN NN N PO TU N RO RO PO DY H MICROZ "tQttttttt*ttt*tttt*tittttt*tt*itt***t**t**t**t*****k*tt***t*t*t*wfi*t*k 128236 128237 g 0S.DIVP.QFIX.1: ;S U 130C, 0086,4503,0951,8047,0122,E U 122E, 0586.4C10,0030,0847,0122,F ;2 ;g 0 ; ;28245 =0 }58 g 128247 fi[TEMP&J_(R[TEMPéJ.ASL.1)~MB. PSL<(>? 0 MCTEMP4]_MB-ZLIT0(1] i ;Do partial Q(LD)=DV(LDNL2) 740 ~1.. (Even Q(LD)) e RISt H ;(0dd Q(LD)),.Make Q(extra) by adding JDR(LDNLZ), what is sign? U 122F, 0486,4001,0864,8047,0918,9 374% ;28248 ;sgsgg METEMP4) _MB+RLR21,SIGND CMP?, SIZELLONG] U 1189, 0080,0036,4970,0047,0123,0 333532 PSL<C>? ,NEXT/DS.DIVP,QF IX.FLAGS Eaieé)split on evenness - oddness of 128255 ;28256 u 1188, 0880,40C1,028D,8047,0923,0 344 ;28257 ;sgsgg ’ JNescececenrunncnenn e ; WB_MITEMP4I+RLZ2EROI+PSLC, wB<0>? :QCextra) + (0 if even dest,, 1 if odd ;dest,)..is result odd/even? $28260 =0 :sgsg; DS.DIVP.QF IX.FLAGS: U 1230, 0980,0C37,0030,2807,0130,D U 1231, 0980,0¢37,0030,6307,0130,D 28263 :28264 128265 e 128268 ;28269 128270 FLAGS 2L 1TOCS], NEXT/DS.DIVP.UFIX.SPL FLAGS_ZL1TOCOC] ‘First Q di%it goes in low nibble of ;first Q byte, set flags accordingly & ;init, <ZV> images iFirst Q digit goes in high nibble ot ;first Q_byte, set flags accordingly & sinit, <ZV> images 691 ; ; (MT098,MCX DECMAL MIC MICROZ 1M(01) Decimal String 28-NOV-83 ;282?1 J 6 A AL 16:30:35 : AR CLOKX Rev 13.00, Clock rate = 160ns Zeroing high dest. bytes ARt ARt AL AAALALALALAALLLLALALAL] A RS SRR S 128272 * FLAGS are set, TEMP4 has Q(extra) L R R 128273 74 82 12 ;28275 DS.DIVP.QFIX,SPL :%gg;g DS.DIVP,REE.4: U 130D, 0C80,05BE,4B61,0047,0906,8 351+« 128278 :ggggg WB_RLCTEMP4],SIZELLONG], SIGND CMP? ,NEXT/DS.DIVP.QFIX.FIL Page A R A A A A A AA Ewhat is sign of Q(extra)? 128281 =0000 ;28282 =011 128283 U 1067, 0586,6C10,04F0,0847,0123,2 128284 128285 ;28286 ;28287 ;28288 :28289 ;011 mmm e es e- NEXT/DS.DIVP.QFIX.FIL.CK ; Here on SIGND (MP? split. 128292 JRRIAIRIIHHKAK KRR ; 128296 . 28297 :Sgsgg 2 (Q(LB)=1)_(Q(LB)~1) =1 (another byte ,wr1tten), what is digit/nib. flag? If <= zero, fine, else write high zero Q-bytes checking for ints. with each write, ;28293 =1000 ;28294 DS, DIVP,QFIX,.FIL: ;28295 RETURN from write/int. check, *fittktfi**fifitn*tt*i*ti*tifit***QQt***i**fifitii*tt*iit**tti*t*ii*ittt*ttti ;28290 ;28291 U 1063, 0D80,0C37,0AC0,05D08,04F7,0 mmmn s MCTEMP6) MB-ZLITO[1],FLAG3?, 11000 mmmemm KRR AR KRR Ak h ke ke ke ke ki ek kbbb bk ek e e r—mm————————— PUSH SIZE[BYTE),WRITE ZLITOLO], .Q(extra) is (still) >0, write INTPEND OR TIMER?, :2eroes, check for ints., return NEXT/IE.SERV,.IP,TS2 =1 or +4 353%8? DS.DIVP,oréx.PRE.SS: J 10689, 0086,558¢,403%1,8047,0130,F 128302 :Sgggz $28305 U 1064, 0(86,558E,4031,8047,0130,F u 10£C, 0586,3C37,0030,2047,0132,6 MLTEMPS) R[TEMP6J NEXT/DS.BIVP.SS :1010======mmmmm o meam e; 128306 ;sg;gg MCTEMPS] _RLTEMPS], NEXT/DS.DIVP,SS 128309 =1100 ;28310 22831 MITEMP3] ZL1TOL4], :Sgg}% _ 10k, load TEMPS with remaining Q(LB)=1 _ ;0k, load TEMPS with remaining Q(LB)-1 ;1100 —eemmanans cmmmescsen—— NEXT/DS.DIVP.PCK.4 ‘BUS exception/ints. pending, ,pack up, int. code #4 f 692. : : (MT098 ,MCX DECMAL .MIC MICRO2 1M(01) Decimal String 28-NOV=83 16:30:35 K : 6 CLOKX Rev 13.00, Clock rate = 160ns Page leroing high dest. bytes 128314 LA R LA AL R AL R 228317 128318 ; 2 digit byte. JRRAIRHR IR A RR AR AR R IR AR AR KRR RI AR :28315 ;28316 ;28319 = ; Mere after writing a cero byte to high & on FLAG3? split. ; =0 is we wrote 1 digit to @ (first byte, even dest.), =1 is R KRR ARE AN AR AW ;Sggg? DS.DIVP.QSIX.FIL.CK: 128322 U 1232, 045E,4080,086D,8047,0918,C 380« ;28323 ;gggsg :28326 U 1233, 0986,4C10,0860,1047,0918,C 413« 128327 :sgggg SET FLAG3,MLTEMP4] MB-1, SIGND CMP?,SIZECLORG]. NEXT/DS.DIVP.QFIX.FIL.CK1 Y v PALL future bytes will be 2 digits, ;dec. count by 1 digit, what is sign? e UL L L : MLTEMP4] MB=-ZLITOL2], SIZECLONGI,SIGND CMP DEF? L , ;2 digits in this byte, what is 128330 = 128331 DS.DIVP.OFIX.FIL.CK1: ;28332 U 118C, 0081,8C11,0030,0CA7,0106,8 ;28333 ;Sgggg $28336 U 118D, 0D01,BC11,0030,0CA7,0106,9 J 118€, 011E,4C37,0030,0047,0130,€ U 130E, 0846,5E7C,0031,8047,0130,F ;28337 ;28338 58320 128341 ;28342 228343 28344 = 58348 128347 .28348 128349 ;00ssmmnmnmne e e e — H VA _MCVAJ+ZLITOC1), NERT/DS.DIVP.QFIX.FIL ;>0, more digits to zero fill ;0] mmmmmmmmmmmamamam e eemeee e ; VA MCVAJ+ZLITOL1],CLEAR FLAGD, NEXT/DS.DIVP,QF IX.PRE.SS 10 =0, all done, do StateSave fiETEMP4J_ZL1TOEOJ.CLEAR FLAG3 :<0, do NOT move on to next Q byte, MCTEMP5]_RLTEMP61+1,SET FLAGO :And copy Q(LB)-1 (plus 1) to TEMPS, ;this 0 byte has "l Q digit in low :nibble'’, ie. next (first real) Q digit ;we really zeroed only 1/2 of a byte, ;next Q digit goes in low nibble 693| (] o — . 6 RN Page 694 CLOKX Rev 13,00, Clock rate = 160ns StateSave Decimal String NN SN = O ONONONOM NN AR N L : NN RN R AN RN : AR RN AR dek kAR A ARk StateSave'' kR Ak Ak ke in ints,/exceptions. FPDOFFSET_ZLITOC11.1], TEMP6 is copied to TEMPS before packing, and Here with TEMP5 containing Q(LB)-1, accounting for any zero'd bytes written to Q@ during initialization. A StateSave is: Done already: (OLdSP-1) Stack: 4 : (SP) : gg; : Done in StateSave (* means value is + or 0): : gg; : FFDOFFSET 12837 12837 : ggg : ; : = OO0 N : OO NN D AANN SO O NN WA g 158%7 12838 ;2838 12838 kA Ak On Unpacks, int. code 0 causes a StateSave unpack, ie. an unpack that restores the state of the instruction before entering the divide State is stored in GPR's & stack now == no pack1ng.1s done loops. NNV =2 OO OO S N A T TR TR IR P PR PR PR TR TS PEPR P Decimal String L : : : GPRO GPR2 (0LdSP=-16) ' MTEMPS ! MTEMPO ! MTEMP10 ! MERRCOD ! User (SP)=16. 40 #1 2 #3 40 ZLITOC1.] FLAGS* TEMP2+ Int. Code (zero)(Q) (PC-PCBACK) 12838 12838 12838 : : :' 839 :‘fi***fi****ifi*****‘l***Qi******ifli***ii*fifi'**kt*t'ifi****iii*t*i**I’*tt**tt ;2838 ;2838 ; ggg : : ; GPRG M #? #3 (New) TEMPSx TEMP4 TEMPT» #0 " VA-GPRS* PC(XB) - GPR3+ ne #3 | R (DR(LDNLZ)) : p : = DECMAL.MIC 00 G0 00 GO 00 00 Cr 00 00 00 00 00 £O-00 00 00 00 00 00 GO CD 0o L U WA U LN N N AN NN AT N O LN N LN NN N H CMT098.MCX 16:30:35 28=~NOV=83 1M(OT) U AU AR R PO R NINININL NN N AU R NP AN NN ALNI NI NI NN NN NS NN AINININI NI NI NN : MICRO2 (DR(LD)) Unused, filled zero | : MICRO2 CMT098,MCX DECMAL .MIC 1M(Q1) Decimal String 28-NOV-83 16:30:35 o LI : Page 695| CLOKX Rev 13.00, Clock rate = 160ns StateSave ;Sg%g% DS.DIVP,SS: L 130F, 0081,8000,2035,4047,0131,0 U 1310, 0084,0022,4035,0047,0119,0 Eggggg 128398 ;ggggg 158399 =00 ! 128400 U 1190, 0(84,23BE,4024,0047,053F,2 128401 :nggg :28404 128405 v 1191, 00B7,A000,0034,0047,053E,4 ;28406 :ggzgg $28409 Uy 1192, 0C9C,03BE,4025,0047,0131,1 128410 :ggz%} _ D_MCVAI-RCRS] ‘D_VA offset from GPRS jmmSmemeo—es——eooscmmcsscococnes ; RIR4]_D.OR.RB :GPR4_VA=GPR5 ;0Q==mee=s=em=msmmeeeecce—eceoes; R[ROJ RB.OR, (MLTEMP2].RR,24), PUSH, NEXT/DS SR, GPROIN FLAGS GPRO TEMP2 masked in byte#1, ,mask in FLAGS e S LR LT LY STEPC_14., ‘Load stpec for aborting ma1n loop. ;Load GPR2, Get PC(XB) offse PUSH,NEXT/DS.SR.21, MTEMPO_PC=R[R3] T ] DEC STEP RCR4]_RB. OR (MLTEMPO].RR.24) STEPC 13 GPR4 s done 128413 ;128414 DS.DIVP,REE.O . J 1311, 099E,0C37,0820,5847,0923,4 350+ ;28415 128416 228417 ,2R418 :28419 ettt DEC STEPC, _ bt ; Load stepc for aborting main loop;STEPC_1¢ MCFPDOFFSET) J2LLITO0M, ], COUNT OR INTTTIMER?,SIZECLONG] load FPDOFFSET for 1E.PACK.DONE branch in JANDE code, is tanything pending? ; H MICROZ (MTOS8 . MCX DECMAL .MIC TM(01) Decimal String :ngg? .T0C ;28422 128423 :28‘024 ;28425 =0 128426 U 1234, 0D9E,0037,0030,0047,0119,5 H " N 6 Page CLOKX Rev 13.00, Clock rate = 160ns Main Loops Main Loops'’ : Decimal String kAR AR AN R Rk vk h SHNKRAR KRR RN R IR AR R AR A ARk Ak d Ak ARk ; StateSave has been done, here on IP.TS? BUT. ,’*kfi*l‘ktit**t********t**t*tt***it***k*t**t**itfi******i********t***i***t P e L L ; STEPC_'1. for aborting main loop MLTEMPO] 20L1TQC0],DEC STEPC, NEXT/DS.DIVP.ML.S ;28427 ;ggzgg :286430 U 1235, 0480,0036,4AF0,0047,04F7,0 16:30:35 28=-NOV=-83 ;Nothing pending or timer service, :Zero @ digit holder and begin calc. ;Jemmmmmem———————— o —ee o esoen- 128431 :ggzgg PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.IP.7S2 168434 ;Something pending, return -1 or :go to IE.PACK.DONE KRRk R R AR RN R AR KRR AR KRR KRR AR KA R Rk KRN K ;58435 SRR AR . 28439 : , =01 is previous Q digit was the high nibble, leave TF!PQ as is. H StateSave. ; subtracting until BORROW occurs. 18436 :§8437 ;8438 ; Enter below 3 ways: ; 1) At DS.DIVP.ML.T0: on a FLAGO? split. : =00 is previous 0 digit completeda bytz, zero TEMP), ;28440 ; 2) At DS.DIVP.ML.S: directly from the =0 branch taken afier DIVP ;28641 ;28642 228443 ;28444 ;28445 128446 ;28447 ;28448 :28‘01503 ;28450 . . : 3) At DS.DIVP.ML.S: on a ALUS? split after in.rementing the proper . . 0 digit. J : =01 s previous pass thru loop didn't BORROW, continue = oo : : ; , =11 is previous pass thru loop created a BORROW, check for ints. and restore [DV] to value betore previous pass and decrement appropriate 0 digit. "t!ttt*Qi‘t\'tnttttt*fitt*t*fitt***t*tfii*fit*tfifi****tt*tt*tt**tt*********t* ;28451 DS.DIVP.ML.TO: J 1194, 0086,0037,0030,0047,0119,5 ;28452 :nggz ;00 ccrrcincmony tenmn e ———— : MCTEMPO]_ZLITOLO] $28455 DS.DIVP.ML.S: 128656 U 1195, 0886,8000,4022,0047,0131,4 . J 1196, 0486,8001,4022,0047,0131,5 . J 1197, 0480,0036,4AF0,0047,04F7,0 ;28457 ;ggzgg :28460 ;28461 :sgégg 158464 128465 128466 ) : NEXT/D53.DIVP.ML.S.L (zero 1t muse MLTEMFB]_(MB-RLTEMP8]).B¢D, sMove up 4 longwords, high digits are ;10mmmm=mmm—m———————————————— ; MCTEMP8] (MB+RLTEMPB]).B(D, NEXT/DS.BIVP,ML.S.CON ;Correct [DV] R; PUSH, INTPEND OR TIMER?, NEXT/1E.SERV.]P,TS2 ;Last pass was 1 too many, check tor ;ints, return =1 or never 696 [ e » Dk e b b 1 85 i) — O~ 000~ N N NSNS NON OO U — O 0 00 NIO V1SS O o N 20 D 0O 00 00 0000 COCH 00 OO CO QD N "N B ol ko F o R = OO 00 N0 o NI NN PN NN PUND I I €003 Co Qo QOO O AN 4O D 00 B497 849 849 850 g 8 Main Loops = OO0 O NI L 850 g 8 850 851 851 851 851 851 g 1 1 851 85¢ 852 i MCTEMPS] (MB-R[TEMP91-ALKC) .BCD, :CI_ALK<C> after first subtract NEXT/DS.DIVP.ML.SKIP I ; | | 1312: QU.LICK. CHECK: svvxuny force address *wxsasxxsx; xx NOT BEEN USED g #+ : $10mmmmmmmmem e m e em - ~-=; SOFTWARE LOCK NOT SET WB_MLTEMP1].AND,. ZLITOL6], WXTEQ,D?,NEXT/QU.CHECK.ALIGN OFF2: DS.DIVP.ML.SKIP: saknnnxewwFORCE MCTEMP10]_ DBZ STEPCY 07¢6: ADDRESS*ntnsnwun, (MB-RLCTEMP10J~ALKC) .BCD, ;Fault if looped more than 11 times, ;O0%xwwnwesfORCE ADDRESS*twnswnen; MLERRCOD]_(MB-RLTEMP11)~ALK(C),BCD, ALUS_UNSGR,FLAGO?, : NEXT7DS.DIVP.ML.DIGIT 07F7: :Which 0 ¢igit are we? ;1xawwwaxxFORCE ADDRESS«rnnunnnn; MCERRCOD) 0LIT160120,1, N . WXTEQ.07? ,NEXT/QU.LOCKED.ALIGN ; High nibbie, set up to add 16. R ; (10 ; hex), see {f we sub'd too far (Low nibble), add and see if we went : too far :tttfitt'ttni!tt*tQ!Qtfl*‘i!ttttt!littfi’!Rt*iti*"t!fifi'liifi*tttttiwfi‘iiifi ; Here after adding sub. correction to MTEMP8, ; After correcting the Q digit (decrement), if this byte is finished we decide : what to do with it. ;tttntQt't'fittl'ttttti'tltttt!1QQttitfiitttiififiii!tt!i'i't‘t*t'!tiitQttt DS.DIVP ML.S,CON: ------------------- LI R . ] ' . vt ttavbamalal bt llebet bbbt : ALUS? NEXY/DS.DIVP.ML.S ! ; MAKE SURE IT'S NOT A BROKEN @, 3 EVEN IF IT IS LOCKED UR DS.DIVP.ML.DIGIT: MCTEMPO] MB+1, i ; Illegal BCD digits, fault. ;+*wxa+ force address *asxswssasw; sx NOT BEEN USED** et s tdtaia )=; SOFTWARE INTERLOCK SET WB_MCTEMP1].AND.ZLITOL6], s CHECK (HEADER) FOR QUAD AL IGNMENT MLTEMPOI_MB+7LITO0C15.] ] H NEXT/I€.0PER.FAULT 1313: ; CHECK (HEADER) FOR QUAD AL IGNMENT : AN g } ! = 8503 =0 g 8 O W £ e e Mo 849 ! DS.DIVP,ML.S.L: 823 OO U 1237, 0086,0081,087p,9847,0119,5 49 WALV LIV A TV IO AAILY Jy 1236, 0p86,0011,0030,7847,0123,7 e Sty Se B Re Bahe Se Ba e Be 1 1313, 0980,1C12,0A30,3047,00C(,E FURIALAINLNG AUFONIAAININI AN ASAINLNL NI AN RINBNU NI N NUM RU NN U 07F7, 0186,8F37,0033,0047,00FF,8 e e B e ® e o By Se U 07F6, 0086,8040,4422,00(7,0123,6 s ®uTetoateo e B Be®oBe o O oo U QFF2, 0¢86,a040,4322,8047,007F,6 O o 1y 1312, 0980,1C12,0A30,3047,00CF,8 O U 1314, 0086,9040,4022,4047,00FF,2 00 00 CoCo Co L a00 Decimal String Page 697 CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 28~NOV-83 1M(Q1) oD o®, o Be®ylaBaBe BeSoBeWsPuBuaBadshean, DECMAL .MIC MICRO2 0o Co0o 0O Eo Co €0 0000 OB G0 0 00 £ : (MT098.MC X NINDNINININNUNINI NI NPV ; SN - = LLL LD LD ! (MT098.MCX DECMAL (MIC 1M(01) MICRO2 String Decimal | © 1315, (086,9041,4022,4047,0131,6 1 | | i | l Ve e ;28522 28=NOV~83 16:30:35 : c 7 CLOKX Rev 13,00, Clock rate = 160ns Main Loops MCTEMPO]_ (MB+RLTEMPSI+ALKC).BCD :Add in carry trom last addition Page 698 NI PO RO PO NN M) = OO Q0 NN B NN Main Loops T R e T L T L T L 699 ] FLAGO? ;Which @ digit are we? 0 =0 L Page CLOKX Rev 13.00, (lock rate = 160ns MCERRCODI_ (MB+RLTEMP11J+ALKC) .BCD, MLTEMPO] MB-ZL1TO[0101, SET FLAGD, A AN N L U NS = O O 00 O W DS i — O 0 00 IO W1 S 7 --------------------------------- NEXT/DS.DIVP.ML.S.HIG {High nibble, set nibble flag for low ;nibble next time " 1 ------------------- fi----fi----.: MLTEMPOY MB-ZL ITQLO1],FLAG3? NEXT/DS.BIVP.ML.Q,CLEAR FLAG) :We are tow nibble, this byte is :tinished, set nibble fla? for high ;nibble next time and split on # of ;digits in this byte (=1 {t first byte, e B 8 ;even dest.) ;ttttttttit*ttttfitutfi*!'t'Qk*fiQtthflflfithttittttfifii*tfl.ttiqttflttttifi'tfiit AT = O D 00 IO U1 2 AIILAUVWAWNAN IS DS I B IB ; Enter at DS.DIVP,ML.S.HIG: after fixing TEMPO & clearing NI AN =2 O D00 FLAGO ; on a high nibble. [f TEMP5>0 keep looping, else it TEMP4>==1 ; (0{extra)>=~1), we are done, this last high nibble is really the : last high nibble. ; Q(Lb)=1"or 0, The TEMP4 check is made for the case of and Q(extra) < 0. ;ttttt*ttt*tttttt*tttQfittfitttfi&*fi**flQtw**fl‘&fifiQtfii*itfifiifititfiiti"'fiiit DS.DIVP.ML.S.HIG: WB_MLTEMP5],WX.EQ.0? ‘1s this the last Q byte? RLTEMP1) <Ré MCTEMP1]) .RL.4, ‘No, regardless of O(extra) we keep =0 NEXT/DS ,DIVP.ML,SHIFT ;looping ;1 ------------------- cChnmSEn- - WB_MITEMP4I+7LITOCY], AN OO OO O o o G0 G0 €O 00 00 00 00 0o Lnun unununiuauiuniuaLaLnwuan T D L iLiuiuav o 00 00 CO 0000 00 £ Co 0D 00 £ LTV wTun AL VAT LT A LTV I AT I I NNNNN NSO 1198, 0c84,1237,0030,4047,0131,8 B 1199, 0c00,1002,403p,80€7,0131,E A 1238, 0180,4C11,06F0,0847,0919,9 377+ AR LIV 1234, 0084,1237,0030,4047,0131,8 G i 1318, 0880,5592,4A30,0047,0923,A 322+ €0 000000 C0 000000000000 0o Co Cn € 0o Co Co 0o 0o€000 0D Co CO D 00 CB 5 L L] T T T T T e S T T N P R 1239, 0506,0010,04F0,0847,0123,C T T R 1238, 0146,0¢10,0030,8047,0131,8 R T T LR L 1317, 0(86,8041,4422,0047,0123,8 O j R L 1316, 0886,A041,4022,8047,0131,7 16:30:35 28=NOV=83 MI(ROZ Decimal String AUNURLNININUALNINLNONININIABABINLNL NI NI AN NI NI NLAJ R AN PINIAINI AN N NITUNI NN NI NN NININDNINININD (MI098.M(x DECMAL M| D <01 wB231-30>? ;Yes, are we swallowing extra Q digits, sand it so is this high nibble the last ;to be swallowed (Q(extra)==1)? ;01 mmmmm oo —ae; ALUS BCD SIGN,ZERQ(MLTEMP1)), CLEAR FLAGO,NEXT/DS.DIVR,CC D ittt R{TEMP1] ;Q(extra) >= =1, this {s (really) ;this last Q high nibble, clear <(> :é?gge. do sign eval., write last byte etuinhdaiaddetadately H _(RB MCTEMP1]).RL.4, NEXT/DS.DIVP.ML.SHIFT :Q(extra) < -1, ?et next [DV] digit ;from low nib, of TEMP1 into high nib, ;of low byte, enter [DV] shitt code e i H (MT098 ,MCX DECMAL .MIC MICROZ 1M(Q1) pecimal String Main Loops : I T L ;28578 128579 =0 L ;28583 SIGND CMP2,NEXT/DS.DIVP.ML.Q1, ;28577 ;28584 ;28585 ;28586 ;28587 J 123D, 0886,4081,086D,8047,0919,C 380« $28588 :ggggg ;28591 =00 ;28592 U 119¢, 0080,0592,4A40,0508,0124,0 :28593 ;ggggg ;28596 ARG AA R A AL LALLM A ALE AL now has 0. ; Old FLAGO=1 (TEMPQ is done), here on FLAG3? split, FLAGO LA AR AL L R A R A AR A AL A :This byte has_1 digit (high byte), N ettt Seees SIGND (MP? e en e , shigh nibble, not write, or ok? e: ;10ommmmem e ———eee- ———ee; MCTEMP4] _MB+ZLITOL1] :<0, whole byte is N.G., inc. :sgggg :'28609 128610 ;28611 :28612 ;2%2}2 | . mmmmommm e mm e : : 28600 ;28601 U 1319, 0480,0592,4A70,0047,0124,2 ; ;>0, don't inc, 1t anymore, write ;byte, is it =02 WRITE MLTEMPO],SIZELBYTE], WX.NE.0? NEXT/DS.DIVP.ML.ZER U 119E, 0986,4C11,0030,0847,0131,9 ;28606 » ;This byte has 2 digits, do we clear u 119D, 0180,0C12,0A37,8047,0123,E ;28605 i ;now on, are we clear to write this WB_MLTEMPO].AND.ZLITOLOFO], WX.EQ.0? ,NEXT/DS.DIVP.ML.ZWR ;28602 : e from ;set flag for 2 digits/byt ;28597 ;Sgggg ;28603 = ;28604 , AR AL AR ibyte? MLTEMP4] MB+1,SIZELLONG], ;01 AT | SIZELLONG] ;0 sm m ; i :Sggg? DS.DJVP.ML.Q: ;28582 MCTEMP4) MB+1,SET FLAG3, J 123C, 085€,4081,086D,8047,091A,0 380+ R AL A L A R AR R A ;28576 700: Page CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28-NOV-83 | :=0, don't inc. it anymore, high nibble ;must be zero (even dest.) ;pointer for next time e L L Ll acenca L ! L LY ;And check for lost data (ov) W8 _MLTEMPO],WX.NE.O?, NERT/DS.DIVP.ML.OVC ;'l**'l**t***Q*tttttk**tiktttt**i*tt**ttt!l’*Qtt!tt**tt*tttttlti*ttttw‘*fi* ; TEMPO has full byte, FLAG3=1, and result of TEMP4 _MB+} was ; zero, here on WX,EQ.0? split. If ov, we clear high nibble and ; set FLAG1, ; ;tl*ttiittt'tttki*l***ktt’rtttt*tQt*wt\'tfiitittt*ttt*tttt*tt***t**ittititt = i2 :sgg}g DS.DIVP.ML.ZWR: U 123E, 0148,0012,0A40,7DD8,0124,0 128617 ;28618 :ggg;g :28621 U 123F, 0080,0592,4A40,0508,0124,0 ;28622 ;28623 WRITE MCTEMPOJ.AND.ZLITOLOF], SET FLAG,WX.NE.0?,SIZELBYTED, NEXT/DS.DIVP.ML.ZER P B e WRITE MLTEMPO],SIZELBYTE], :WRITE data with clear high nibble, :set ov flag, split on 2eroness of ;written data L -~ WX.NE,0? NEXT/DS.DIVP.M..ZER ;WFITE data, split on zeroness | Fw} : : MICROZ CMT098.MCX 1M(Q1) Decimal String DECMAL MIC R LR A LRLA L TRLR AR 28624 28625 28626 28627 28628 . Main Loops : T L L L L R T N Page CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28=NOV=83 e i 701 b L L LA A T ; Old FLAGO=1, Old FLAG3=0, here with 1 di?it byte in TEMPO on ; SIGND CMP? split from Q(extra) Q(extra)+1, FLAGO has 0, FLAG3 has 1. ; It Q(extra) is <=0 we don't write byte, if >0 we do. e R R A S e AR AL A A LA R LALLM RS AR LA L L 28629 = Sgg;? DS.DIVP.ML,Q1: 28632 Sgggz U 11A1, 0480,0592,4A70,0047,0124,2 T T T P P PN PN e e R 28635 28636 Sgggg 28639 Sggfi; Rttt L: NERT/DS.DIVP.ML.OVC 1 10emmem . ;=0, if data>0 we have ov condition v mncaancmn——. “emmnemae—, WB_MLCTEMPO],WX.NE.O?, :<0, if data>0 we have ov condition NERT/DS.DIVP.ML.OVC ; FLAGO now has 0. gggg% : has 0, FLAG3 now has 1. O AR A AR AR R RN R R AR R AR R RN RN AR Here on: ; 1) 0ld FLAGO=1, FLAG3=1, Q(extra)>0: RN R R ARk ke , ko full byte, written to dest., . 28659 28651 28654 ; Byte was written to destination, and branch is taken to here on 28656 AT 28655 ; WX,NE.O? split from byte data. AR AR AR 28657 =0 Z2ER: ML, P. 28658 DS.DIV 28659 28660 sggg% S AR ; 2) 0ld FLAGO=1, FLAG3=1, Q(extra)=0 on first inc.: high nibble was : zeroed before writing 1f it was nonzero, FLAGO has 0. : 3) old FLAGO=1, Old FLAG3=0, Q(extra’>=0: 1 digit in byte, FLAGO now 28663 U 1314, 0986,5C10,0030,0847,0124,2 F WB_MCTEMPQJ],WX.NE.O?, ; v 1240, 0081,8(11,0030,0€47,0131,A (1241, 0p11,8011,0030,0CA7,0131,A WX.NE.Q? NEXT/DS,DIVP.ML.ZER 28643 28644 28645 28 646 28647 28648 28649 T T M U 1142, 0480,0592,64A70,0047,0124,2 28640 >0, write byte, check for zeroness WRITE MLTEMPOJ,SIZELBYTEJ, 28664 sgggg J0m o AR ARA SRR A SRR RS RARARRARRSARARARAREAARAERRLR AR —————— cum—caan; VA _MCVAJ+ZLITO[1], Z2ER.1 ML,IVP NERT/DS.D ;Data=0 R ittt b b et H CLEAR FLAGZ2, VA_MIVAJ+ZLITO[1] sData>0 28667 DS.DIVP.ML.ZER.1: 28668 jemmmmssossLa s a s —————meessae e 28669 MCTEMP5) MB-ZLITOL1], ;Dec. Q(LB) 28670 NEXT/DS.DIVP.ML.OVC i : 1§ . u 11AQ0, 0(80,0592,4A40,05D8,0124,0 .- ; (MT098.MCX DECMAL MIC MICROZ2 TM(OM) Decimal String 28-NOV~83 16:30:35 G 7 CLOKX Rev 13.00, Clock rate = 160ns Page Main Loops AR AR KRR KRR KA AR AR AR RN AR AR AR IR AR RN WS 128671 IR AR ;28673 ; 1) From DS.DIVP.ML.ZER: code (all conditions listed in DS,DIVP.ML.ZER ;28672 ; Here on: 128674 : banner, . . . after <2> bit mask and VA increment) directly. : 28675 P 2) old FLAGO=1, FLAG3=1, Q(extra)<0: Whole byte was N.G., WX.NE.0? 128678 H ;28676 128677 H split taken here, FLAGD now is 0. : 3) 0ld FLAGO=1, Old FLAG3=0, Q(extra)<0: Ditto, FLAGO has 0, 128679 ;28680 ; Except for case 1, =0 is data was =0, =1 is data >0, we have ov ; condition. . 28681 ;Zgggg i FLAG3 has 1, : "t**t*titfi****t*fi'(**tt'«*i*t*t*tkttt**tt**tttt****t*tt*i**t***t*fiit***i* = ;ggggg DS.DIVP.ML.OVC: U 1242, 0085,759E,4000,6047,0131,8 128686 ;ggggg ;28689 U 1243, 084D,759€,4000,6047,0131,B ;28690 :Sggg; 128693 RLCTEMP1I ZEXT(XB) PC_PC+1, NEXT/DS.DIVP.ML.SHIFY iData=0, get next byte ;]mmmmmmmme———e e e e e—e————— - SET FLAGT, RCTEMPT)_ZEXT(XB) PC_PC+1 I ;Data>0, ov condition, set <V> image, ;ditto AR R A L A A A AR L 128697 128698 ; We get the next digit to shitt intg [DV] into the highest nibble ; position of TEMP7 and begin the shift. : 28695 ;28696 :2g$38 ; TEMP1 has either next byte from DV or tast byte from DV with the ; low nibble shifted into the high nibble position ( low byte ). '-k**t*tiii*fi***fi*ttk*t**k*t*t**tt**tt**tttt*k**fi\i***t**fittttkt****tl‘t*t 2 :gg;g; 0S.DIVP . ML.SHIFT: u 1318, 0(86,72B7,0000,4047,011A,4 AR AR LA ;28694 128703 MCTEMP7]_RCTEMP1].RR.8 ‘TEMP7<31:28> has next digit ; (MT098.MCX DECMAL. MIC MICROZ 1TM(Q1) Decimal String U 131C, 0880,7237,1030,c047,011A,8 ; 128713 PUSH RLTEMP3] _MLTEMPB].BCDSWP, ;gg;}g ;28717 :gg;}g 128720 Jy 11AB, 08B6,8637,0030,0047,0131,D U 1244, 0C9E,B637,0430,0047,0119,4 U 1245, 0480,0036,4AF0,0047,04F7,0 R L e R A R AR A NEXT/DS.SR.25” R PUSH,MLTEMPB]_Q, NEXT/DS.SR.22 eLL L AR AL RAAL AL JMTEMP8_new MTEMP8, BCDSWP it ;10=mmmmmmmmmemm e e e ey Q_(RLTEMP3] MCTEMP?1).RL.4 10_new MTEMPO ;28733 ;Sg;%g . 28737 AL A L P LR L : Esg;gg 228730 A AL AL ‘TEMP3_old MTEMP8, Q_new MTEMP8 TEMP?_old MTEMP9 ;00 emonmmsnnn Smmessmm——- ———=; PUSH,MLTEMP9]_Q, NEXT/DS.SR.23 {MTEMP9_new MTEMPO, BCDSWP it PUSH RLTEMP3)_MCTEMP101.BCDSWP, :TEMP3_old MTEMP10, Q_new MIEMP10 NEXT/DS.SR.25TM 10=mmmmmmmammcmeanamacscema—a—-; PUSH,MCTEMP101_Q, ‘MTEMP10_new MTEMP10, BCDSWP it ,gg;gg NEXT/DS.SR.24 :28740 :28741 ;gg;z% ;11momommemmecem o mnaan e MLCERRCOD]_MB,.BCDSWP, {MERRCOD_old MERRCOD (BCDSWaPed) STEPC_14., :Load stépc for aborting main Loop. 198744 v 131D, 009E,B237,0B30,D8E7,0124,4 in MTEMPs, P RLTEMP7]_MLTEMP3].8(DSWP 128736 U 11AA, 0(86,A034,403D,8047,053E,A : TEMP7 high“nibble, byte”3 has (DV] digit to shift into LSD position ;Sg;g; 128729 228745 :sg;zg :28748 =0 jesmmssesessssssssseeeemn——— -~ MCERRCODJ_(RLTEMP3] MB) ,RL.4, DEC STEPC,IP.TS? :MERRCOD_new MERRCOD ;STEPC_13 ;Qmmmemeacann sesweecmmaueens ~===;STEP(_12 . 2B749 MCERRCOD) MB.BCDSWP,DEC 3TEPC, 128752 ;28753 Ottty - ;28750 ;28751 ;28754 . 2B755 703 shift in next [DV] digit'' : Decimal String ;28709 ;28728 U 11A9, 0084,A637,0030,€047,053E,8 shitt in next [DV] digit R A A AR A A R IR R AL AR AL ALAAA AR LEAALARLLLAAALALADS LOALL writing, ov checkwng and 2ero_dest, checking have been done. 28727 =00 U 1148, 0€86,903A,403D,8047,053E,9 : Page CLOKX Rey 13.00, Clock rate = 160ns ;28706 ;2B707 ;28716 U 11A6, 0484,9637,0031,0047,0131,¢C 7 " ;28710 U 11A5, 0086,803A,403D,8047,053E,8 H :%g;gg .T0¢C 128708 U 11A4, 06434,8637,0030,C047,053E.8 16:30:35 28-NOV-83 FLAGO? ,NERT/DS.DIVP.ML,TO PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.]IP,TS2 ;No ints. pending. all done o back :for next0 byte, 2zero TEMPO last (TEMPC was a finished Q byte ;Something pending, return =1 or ;branch to [£.PACK.DONE Il ; EMTO98.:E% DECMAL., MICRO2 1M(01) Decimal String 28-NOV~83 16:30:35 1 7 CLOKX Rev 13.00, Clock rate = 160ns Setting C( Setting CC" : Decimal String Page :gg;gg .10C ' ;28758 128759 TRRRK AR ERA AR IR R R KRR AR Rk ARk AR A R AR R AN RN AR ; FLAGO (<C> bit image) is zero, ALUS has BCDSIGN data ;28760 128751 SRR RN RN RIK AR RRA IR KRR AR AR AR ARk dk kb ERA RS ko kd :Sg;g% DS.DIVP.CC: 131E, 0418,0592.4A70,0047,0124,6 28764 :sg;gg 128767 =0 ;28768 1240, 0186,0037,0030,6047,0131,F ;28769 :Sg;;? ;28772 1247, 0580,4C11,0A70,0847,0924,8 378« 128773 ;gg;;g 128776 =0 ;28777 1248, 0948 ,0€37,0030,6047,0131,F ;28778 ;Sg;gg ;28781 1249, 0116,0012,4030,6047,0131,F ;28782 ;Sg;g§ WB_MLTEMPO1,CLEAR FLAG3, :Clear <N> bit image (guess pos.), WX.NE.0? ;is data=07? JQmrmemmmecm e c e st ccnaen e : MLCTEMPOD ZLITOLOL], ;Yes, dest. is +0 guess NEXT/DS.DIVP.CC.DVSGN ettt L L: WB_MLTEMP4]+ZLITOL1], WX.NE.O? sNo, do we zero high nibble? (Qmmemcmcnmmmaccana e ————— - SET FLAGY,METEMPO] _ZLITOLOC), NEXT/DS.DIVP.CC.DVIGN L CLEAR FLAGZ, :Yes, we have ov (<V>_1), dest._+0 sguess ———-; MLTEMPOI _MB.OR.ZLITOLOC] ;No, dest._+{(nonzero), <2> image_0 :58785 :Sg;g? DS.DIVP.CC.DVSGN: 131F, 0c80,0036,4B70,1847 ,011A,D Egg;gg :28790 =01 :287N 11AD, 0580,2012,0A70,0847,0124,A 128792 :sg;gz : 28795 u 114AF, 0180,2012,0A30,0847,0124 ,A ;287%6 128797 ALUS? ') ;What is DV sign? Etrtntateintetedninetnliniatatueddeobebaitieladaly : WB_MLCTEMP2].AND.2LITOL01], WXUNE.O? ,NEXT/DS,.DIVP.CC.DRSGN ;Positive, what is DR sign? 1|mmemccmmnmenesmee -: W8_MLCTEMP2].AND,ZLITOLO1], WX.EQ.0? :Negative, ditto 704 : (MT098.MCX DECMAL MIC MICRO2 16:30:35 28=NOV~83 1M(O1) Decimal String ;28798 o 000 (=] ’\) o] :28799 328 01 : .. : J 7 Page CLOKX Rev 13,00, Clock rate = 160ns Setting CC e e R A R T RS AR AR Rl R e Rl dd : =0 is (DVv+, DR-) OR (DV-, DR+): C is negative (we think). ; =1 s (DV+, DR+) OR (DV-, DR-): Q@ is positivzc, t*****i****t**k*******tt******w**tt**t**t**fi*fi*************fi*t*kt*i*k* ;28802 =0 :ggggz DS.DIVP, CC DRSGN: ! U 124A, 0858,0036,4580,0047,0104,8 :28805 ;sgggg 128808 U 1248, 0080,0592,4000,0508,0132,0 ;28809 :ggg}? 128812 ;28813 SET FLAG3,FLAG<2-0>?, 0 may be negative, set <N> image, NEXT/DS.DIVP.CC.QNP Ysplit on <Z> and <V> images ;leseeseemmomeesmeammeneoee m———— wRITE MCTEMPO),SIZELBYTE]D, ;28814 R ;28816 ; dest, is neg, (C is neg. ;28815 ;28817 ;28818 128819 10 is positive, write byte as is, wrap NEXT/DS.DIVP.CC,EXIT AR AL AR SR L AL th1ngs up LI AR AL LA LA LA AAAAALAALA AL ; Here from DS.DIVP,CC.DRSGN on FLAG<2-0>? BUT. @=0, ov, dest. is neg zero, (C is pos zero. =1l1% ig ;1******************#*t**t*****i**i*****i**l**i********i**illiit***t**i ;28820 =00« ;28821 DS.DIVP.CC.QNP: ;28822 U 1048, 0580,0012,4000,60D8,0132,0 ;28823 :ggggg : 28826 U 104A, 0580,0012,4000,60D8,0132,0 ;28827 :Sgggg :28830 U 104(, 0818,0592,4000,0508,0132,0 U 104, 0D18,0C12,4000,6DD8,0132,0 ;00%=mmomemmmcn e e emmm———— WRITE MLTE MPOJ.OR.ZLITO[ODJ. SIZECBYTE],NEXT/DS.DIVP.CC.EXIT Y Negative dest. : WRITE MCTEMP0O],OR.ZLITOCOD], :Negative dest. SIZE[BYTE],NEXT/DS.DIVP.CC.EXIT $10#mmmmmemmmmmmmmmmm e; ;28831 :sggg% WRITE MLTEMPO),SIZELBYTE], sPos, dest., pos. (C (clear <N>) CLEAR FLAG3,NEXT/DS.DIVP.CC.EXIT ;28834 B ;28835 128836 AR AL AL =01+ is 0>0, ov, dest. is neg, cé is neg. ; =10* is Q=0, no ov, dest. is pos zero, CC is pos zero. . AL AL AL =00+ is @>0, no ov, e L L T DTy WRITE MLTEMPO].OR, ZLITO[ODJ SIZELBYTEJ, CLEAR FLAG3 Neg. dest., pos. (C (clear <N>) 705 : : (MT098 ,MCX DECMAL (MIC MICROZ 1M(Q1) Decimal String 16:30:35 28-NOV~83 K : 7 CLOKX Rev 13.00, lock rate = 160ns Setting (C 28837 A L A I I L A bbb A b L LL ;28839 ;28840 ; finish inst, thru ASHP code, DS.DIVP.BAD: is to restore PC after ; an invalid DV string or an invalid interrupt code encountered during ;28838 ;08841 : FLAGS has CCimage, dest. is written. Fix stack pointer & PC and : unpacking. ;28847 Aok AKR Rk hkkkk ko kk ik R IR R Ak A Kk ok ANRRRR KR ARRRKRRK JHRERARRRERK Esggzg MTEMPO_RCROJ.RR.24 Q_PCBACK :28843 :gggzg DS.DIVP,CC.EXIT: U 1320, 0C87,929¢,7024,0047,0132,1 U 1321, 0480,0019,0000,0487,0132,2 J 1322, 0484,0587,0035,0047,0132,3 u 1323, 0186,0037,0030,8047,0132,4 U 1324, 0884,0001,0037,8047,0110,8 :28848 ;Sgggg : 28851 :3832% :28854 YTEMPO_deltaPC, Q_PCBACK e et ; PC_ZEXT(MLTEMP0J) +Q,SIZEIBYTE] ;PC is fixed jommmemmemen e BT ; RLR4]_O T ;Fix 1 GPR O e L LS : :sgggg MLTEMPO] _ZLITO[16.1 ;28857 228858 T e LEL LT : RLSP] MLTEMPOJ+RB, ;(SP) has old (before DIVP) value, NEXT/DS.ASHP.FLAGS sset CC & tinish ;sgggg ;Stack workspace area 128861 128862 ;28863 DS.DIVP.BAD: ;28864 i 1325, 0480,0019,0000,0487,0102,7 Page 128865 28866 Jomssmsssessssssascosscecescesmsean H PC_ZEXT(MCTEMP0]) +Q,SIZECBYTE], ;IRD1 in CMPP3 code NEXT/DS.CMPP.EXIT 706 ; : (MT098.MCX DECMAL .MI(C MICRO2 1M(Q1) Decimal String 16:30:35 28~N0OV=-83 L : ; 7 Page 707 CLOKX Rev 13.00, Clock rate = 160ns DIVP Pack routine ;ggggg .T0C " ;28869 R ;28871 : was made before entering the main division, no packing is done. ;28870 ;28872 Decimal String AR AR : DIVP Pack routine'’ AR AL R Attt LA AAAL A AAL AR AAEERAL AR ALl : There are 5 DIVP interrupt codes, 0=4. Code 0 is a StateSave which ; Codes 1-4 enter this code in a variety of ways: ) ;28873 : Codes 1 & 2: enter at DS.DIVP.PCK,12,.(ON: with the int. code ;28879 ; Code 3: enters at DS.DIVP.P(K.34: with TEMPé already masked into ;28877 : Code 4: enters at DS.DIVP.P(K.4 with the interrupt code in TEMP3. :ggggg : ;28881 . 28882 ;28883 ;28884 ;28885 ;28886 H : H : H ;28888 ; 228874 ;28876 ;28878 ;28887 ;28889 ;28890 ;28891 ;28892 ;28893 128894 ;28895 ;28896 ;28897 ;28898 ;28899 ;28900 128901 ;28902 ;28903 ; masked in GPRO. : ; * appended to input values means >= zero, less than 1 byte in length Input : FLAGS* TEMP1« TEMP2* TEMP3x TEMP4 TEMP5« TEMP6 GPRO* ; : : ; ; : GPR2* ; ; : : GPR3 GPR4 ; : ; ; GPRS PC ; H 128906 . : . Current FLAG status (#4) Last read DV byte (#3,4) DR sign value (#3,4) Int. code (#1,2,3,4) DR(LD) (#1) Garbafie 2) DV(LDNLZ) (43) : 228904 ;28905 GPR4 and the interrupt code in TEMP3. Resources Q(extra) (#4) DVILD) (#1,2,3,4) Q(LDY /72 (#1,2,3,4) (PC=-PCBACK) 1in byte #3 (£1,2,3,4) (DR(LDNLZ)) in byte #0 (#2,3,4) 0 (#1) DV base address (#1,2,3,4) Untouched (#0) (DR(LD)) in byte #2, zero in other 3 bytes (#1,2,3,4) Q base address (#1,2,3,4) Pointer into DV string VA (#3,4) Pointer into @ string TEMPO Misc, data holding (44) . : H MICRO2 CMTO98.MCX 1M(01) Decimal String DECMAL.MIC M7 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28=NOV~-83 DIVP Pack routine : <All int, codes #2 GPRO #3 #1 GPR2 Output ; : : : : 28907 128908 ;28909 ;28910 : K . 28911 128912 ;28913 ; 43 Code #2 GPR2 #0 ; . : GPR4 Code #3 GPRQ GPR? #3 #1 #0 128922 128923 ; ; GPR4 ;28925 : ;28916 ; 128917 ;28918 ;28919 ;28920 .28921 ; : ;28924 128926 128927 : Code #4 GPRO : GPR?2 ; 128928 : ;28930 ; 128929 : :28931 HR 2182880020222 ;28933 128934 TEMP2 #0 #0 43 (DR(LDNLZ)) on input to pack routine TEMP1 VA-GPR5 #3 rEMP6 (>= zero) PC(XB)=GPR3 (>= zero) 232 8 2333223233333 233 338322333221 2R32222320d42 ;28937 ;28938 =0 I ;28940 e e L L D e L EE L DD L ; Code 1 and 2 packs enter here R FLAGS #0 AR RN R AR R AR A ARk L (DR(LDNLZ)) on input to pack routine 3] HKRR KRR E AN RN AR R AN L TEMP6 #1 43 28935 128936 TEMP4 (DR(LD)) TEMP6 TEMP2 (CR(LDNL2)) on input to pack routine TEMP1 PC(XB)-GPR3 (>= zero) TEMP6 43 GPR4 : '28932 output the followirg> Int. code (PC~PCBACK) TEMPS <Additional packs:> Code #1 GPR4 ; ;28915 He ¥ GPR4 s ;28914 Page L T Ak Ak Rk Rk ko L ;28939 DS.DIVP,PCK.12.CON: U 124C, . ) “084,53BE,4026,8047,053E.,6 ;28941 ;28944 J 124D, 0084 43BE,4005,0047,00FE,2 PUSH,NEXT/DS. SR. 28, :Sggz% 128945 :28946 R[RZj RB.OR. (M[TEMPSJ.RR.24) 00 Pack into GPRZ leesmcsccccmcccdcsccccccccsene - R[RLJ RB.OR. (M[TEMP6],RR.8), NEXT/TE.PACKX.DONE iLoad GPR4, service int. k kv kv ke L L ; 708 CMTO98.MCX DECMAL .MIC 1M(01) MICROZ Decimal String 28-NOV-83 128947 ;28948 ;28949 16:30:35 : 7 N CLOKX Rev 13.00, Clock rate = 160ns DIVP Pack routine Page ;tt*tttti**tt**ttktttt*tt**tt*\***kt******fl*******ii****#**i*i*i***fit** ; Code 4 pack ;****t******k***********t*t********t**************t********t***fi***it** 128950 128951 DS.DIVP.PCK.4: 1326, 0C87,B000,0035,4047,0132,7 1327, 0084,0002,4035,0047,0132,8 1328, 0482,0036,4004,0387,0132,9 _ 1329, 0084,63BE,4005,0047,0152,A ;28952 S : 28954 128955 128956 228957 128958 T 128960 ;28961 128962 128963 ;28964 124F, 0484,23BF,4024,0047,00FE,2 - e e e e O e ¢ e Sy o e A . ¢ ECalc. VA offset }Masked into GPR4 ebaiaiuleohedniabebaiubatutetel -t 128971 ;28972 ;28973 ;28974 28375 28976 =0 ;28978 128979 128980 : 28981 $28982 128983 e Ty e e e e G e et s RCR4J_RB.OR.(MLTEMP6].RR.8) O ¢ {TEMP6, enter common pack with code 3 hktflk*N‘fiwttt&l\lt*ttttt*!**ttt*t*ki*********tt***k******************* : Code 3 pack and continuation of code 4 pack t*tt*ittttit**i****ttttt*t*t******fi*****t*t***i*************i*tt***t** ;28968 ;28949 DS.DIVP.P(K.34: ;28970 ;28977 124E, 0484,03BE,4025,0047,053¢E,4 o il © . 1328, 0087,A000,0034,C047,0124,E e ;28959 ;28967 132A, 0884,338€,4014,0047,0132,8 e 128953 ;28965 128966 U e e ot - E Y W W W W e o ACROI_RB.OR.(MLTEMP3].RR.16) v an * :ioad int. code MTEMPO_PC-RIR3T ‘Make PC offset RER«J RB.OR.(MLTEMPO].RR.24), Mask in PC offset., lLoad GPRZ RCROJ RB.OR. (MLTEMP2).RR. 240, ALL done PUSH,REXT/DS. SR. 21 NEXT/TE.,PACK,DONE ——— 1M(Q1) 8 8 CLOKX Rev 13.00, Clock rate = 160ns P R R T T PR TP P R PR TR N AR Page DIVP Unpack routine Decimal String TOC I &~ IO IS AN = O 000 2 O D00~ O O WN IR I LD — O O 00 —= O DO~ OMMUN = OO0 NCH AN P AN NN 13 O O PR P e L P R R e O T TR - .- [ A N I S T T TE TR TR PR PR PR P TR TR T UMD Y] NALNLNLPONI N NLNV N NINONI NANOVNU N NNNV NINDPONLND OO0 O0{00 C0 00 O £ OB C0 00 02 CO IR COCO00 To O OO 0O 000000 0000V D 00000000 0000 O 0 VOO e etValVe o lVolVo Ve VolVoRVo o Yo o Mol oo 54 [elallalolalalelelo olelelelelole [elelelalalelelelelalolelelolelele O OO 0 00 OO 000 0000000 lelelelelolsleloele el A LALLM AN U AN NN DUNUOONU S = =3 3 b h b b =3 b b Decimal String P 16:30:35 28-NOV-83 AR AR AR AR 710 DIVP Unpack routine’’ AR AR RN R RN N PR R RN There are 5 DIVP interrupt codes, 0-4. RN RGN RRA RN RN NN NNk d Code 0 is the StateSave made befgre entering DIVP main logps. Code 1 is int. check before reading DR during initialization or BUS exception/int, pendina in DS.READ during infit, Code 2 i3 qn{ int. pendln? or BUS exception during [DV] read during initialization, up to but not including the int. check made . before the zero-high-Q-digits code. Code 3 is the int. check made before deciding whether to zero high ! Code 4 is Int. pending or BUS exception during the zeroing of high i [lLlegal values in tne GPR'S are corrected during unpack except for an ! @ digits during init. Q digits., 1llegal interrugt code, which causes branching : DS.CCPCIRDT.DIVP.BAD. ; to : i P MICRO2 NUNLNUNLNLNJALNLNINBNLNINUALNVNJ NN NN N noNY NN : CM1098, M (X DECMAL.M ¢ P ; ; See the banner pa%e for DIVP Pack routine for a listing of all ; values saved for the different interrupt codes. : Input <from initialization:> H Base address, DR GPR1 H ; GPR3 GPRS ; <ALl Int. codes GPRO H H ; H GPR?2 e 43 #1 2 pack the fol[owing:> nt. code (PC=PCBACK) TEMPS TEMP4 ; GPR4 H Code #1 GPR4 ¥3 GPR4 43 GPR?2 #0 ; GPR4 #1 PC(XB)~GPR3 : Code #4 GPRO #0 FLAGS H : GPR2 #0 43 (DR(LDNLZ)) TEMPY : H H ; H : Code #2 GPR? Code #3 GPRO ; GPR4 : H : ::: (DR(LD)) <Additional packs:> H H &2 Base address, DV Base address, 0 kesources QREG ??580 TEMP3 TEMP6 (DR(LDNL2)) ! #1 TEMPZ : #3 TEMPY #0 #3 '] 40 #1 #3 TEMP6 i (DRILDNL2)) TEMPS ! (>= zer:) ) TEMP? VA=GPRS (>= zero0) PC(XB)=GPR3 TEMP6 Misc. temp. (>= zero) a}tt° sc. d data, RC restore Misc. data — - Tj ‘ DECMAL . MICRO2 Decimal String 129037 : ;29038 ;29039 : : :29046 : 129040 129041 129042 ;29043 129044 :29045 129047 129048 129049 :29050 : 29051 ;29052 : 129057 129058 ;29059 ;29060 ;29061 129062 :29063 ;29064 ;29065 129066 129067 0 o o L2 0 ;29068 DIVP Unpack routine Output FLAGS TEMP] TEMP2 TEMP4 : : ;29055 : GPR4 ; ; ; PC : : : ; VA : NN AR R AN AN AN N RN ALUS ; a(LB)=1 (#0) |; Q(LD)/2 (#1,2,3,4) DR restored by calling GPR? 711; i : TEMP6 RTEMP8~RTEMP11 : : : (only necessary for #0 & 4) Last read DV byte (#0,3.,4) TEMPS GPRO : FLAGS (#0,3,4) DR s1gn value (#0,3,4) DR(LD) (41) Garbage (#2) DV(LDNLZ) (43) Q(extra) (#40,4) DVI(LD) (#1,2,3,4) MTEMP8=MERRCOD ; : Page CLOKX Rev 13,00, Clock rate = 160ns : : 129053 ;29056 8 H : H : : N : ; H ;29054 Y 16:30:35 28-NOV=-83 1M(O1) - CMTOQB.SE% ¢ ; i E ; : ! DS.READ (#0,2,3,4) ([DV] restored from stack (40,3,4)) *MERRCOD is not needed atfter any BUS exception* (PC-PCBACK) in byte #3, low | Untouched (#0) (DRC(LDNLZ)) in byte #0, high 3 bytes zero (#1,2,3.4) Untouched (#0) . (DR(LD)) in byte #2, zero filled in other 3 bytes (#1,2,3,4) Pointer into DV string (#0,3,4) Dv Base address (#2) Pointer into Q@ string ] (#0,4) DR sign evaluation data (#2) AR R RN AN N R RN AR AR AR RN ANk Rk i | ; i 3 bytes zero (#1,2,3,4) Untouched (#0) ] ' Rkt ; ; CMTQ98 . MCX DECMAL . MIC MICRO? 1M(Q1) Decimal String 28-NOv-83 16:30:35 b : 8 c LOKX Rev 13.00, (tock rate = 160ns DIVP Unpack routine ;29070 .REGION/IRD1,RIL,IRD1,RIH 129071 =000 :588;% DS.DJVP.UgP: hi $350, 0D8&,CC37,0030,0047,0132,¢ 35385? 150076 MCFPDOFFSETI_ZLITOLO] ‘lero FPDOFFSET ;ggg;g LREGION/DECMAL .R1L ,DECMAL .R1H/DECMAL .R2L ,DE CMAL .R2H 132¢, 0BB0,0707,0404,0047,0132,D 1320, 0C86,058E,403D,4047,0132,E 132, 0084,0002,0035,0047,0132,F 132, 0086,0(37,0030,F847,0133,0 :29079 ;Sggg? 129082 ;53832 129085 :53839 129088 ‘58833 :29091 1330, 0482,0002,0444,8047,0125,0 ;29092 ‘53832 129095 =0 1250, 0884,073E,4004,8047,0125,1 1251, 0486,4287,0014,8047,0133,1 o 1331, 0486,5287,0004,8047,0133,2 1332, 0(8¢,65BF,4034,8047,0133,3 :29096 ;ggggg 129099 :5318? :29102 ot LU L L S ; LONLIT_COTFIF7F7F] jess=mmseseesecssscctescasssseoe ; METEMPO]_RLLONLIT] jmmeweseseemsscemesee—eee—eeenes : RCR4I_MLTEMPO], AND,RB T L L LS : MCTEMPO]_ZLITOCIF) jmmmmemm e R{R2].S1Z MLTEMPO],AND.RB, SIZE(BYTET,WX.NE,0? B e- ;Proper vatue is 1=1f, is it zero? iYes, make it ! ilesecmcrrm e mn e e e ——— MCTEMP4]_RLR21.RR.16 ‘Load TEMP4 data owmemessmmesseemaemeeseeme e: MCTEMPS]_RCR2).RR.8 $29105 J 129107 tEnsure DR(LDNLZ) is legal ie L LT B RER2]_RB.OR.CONX(1) '33}82 129106 ;Ensure GPR4 has correct values e ‘Load TEMPS data ——————— ammamensmm—————— MITEMP6]_RLR2] ;Save GPRZ incase of packup during ‘call to DS.READ Page 712 MICRO2 (MT098,MCX DE CMAL (MIC 1M(QT) Decimal String 1333, 0486,0287,0014,0047,0133,4 1334, 0986,0012,0030,3847,0133,5 28~NOV=83 ;29108 ;gg%}% :29115 ;Sg}}g 129120 :53}%5 . 129123 :Sg}%g 129126 10(8: 129129 ;Sg}g? 129132 1009: 10c9, 0586,4C12,0030,F847,0133,8 10cA, 0186,5C12,0030,F847,0533,A ) 10¢B, 0186,4C12,0470,F847,0118,4 DIVP Unpack routine Page 713 jomwmmmm———ee—e—ceooseos Semeenna; MCTEMPO]_MB.AND,ZLITOLO7] :lnt. code byte to byte#0 ;Mask off unwanted bits T e L L L LU LY, WB_MLTEMPOJ~ZLITOLS], WwB<31-30>7 ‘1s int. code 5, 6, or 7? ;0] mmmmmmmascamemmem—em———————— MTEMPO_RCROJ.RR,24 Q_P(BACK, NEXT/DS.DIVP.BAD,CLEAR FPD ives, illegal FPD situation, ;terminate bad inst, now ;1lesseesscsccsecsccssecsmenees; NB _MLTEMPO],wB<5-0>? .No, it's 0=4, what is it? 000 JCAN'T FORCE AN ADDRESS AND CONSTRAIN [TEMP4J SEXT(MB),SIZELBYTE], StateSave, restore TEMP4 NEXT/DS.DIVP,UNP. 0 i ;001m=m=mmommesmcmasmamanes ———; :29133 MLTEMP4] MB, AND ZLITO[1FJ 129136 10CA: ;010====mm=m==mmomomocemeneanne ; MUTEMPS] MB,AND.ZLITOL1F], ;Code 2, TEMP4 is not needed, fix ; ;01)=mmmm=smmesamamoceammaun—. - | :Sg%gg ;29137 :gg}%g 129140 10CB: ;29141 ;Sg}fi% 129144 100C: 10cc, 0886,4816,4000,8047,0125,8 Rev 13.00, Clock rate = 160ns ;memmmmmemseesse e —eme=; ;Sg}sg +=000 10(8, 0886,4816,400D,8047,0125,2 ¢ LOKX 129111 129119 1183, 0480,0592,4230,0047,010C,8 8 MCTEMPO]_RCROJ.RR.16 129118 =01 1181, 04E7,929C,7024,0047,0132,5 : E ;gg}?g 129114 1335, 0980,0010,06F0,2847,0918,1 377 16:30:35 129145 ;gg}gg NEXT/DS.BIVA,UNP,1 PUSH, NEXT/DS, DIVP.UNP, 2 MCTEMP4]_MB.AND,ZLITOL1F], WX.NE,0?,NEXT/DS.DIVP.UNP.3 ;Code 1, restore TEMP4 & ensure legal svalue JTEMPS, RETURN [+6] :Code 3, ditto, 0 is illegal TEMP4 ;value, is it nonzero? ;10Q=m=mmm=mm==m—m————————————— ; MLTEMP4] SEXT(MB) ,SIZE[BYTE], NEXT/DS.5IVP.UNP.4 ;Code 4, ditto, anything is legal | ; ; -~ ot o CMT098.MCX DECMAL .MIC MICRO2 1M(Q1) Decimal String 16:30:35 2B8~NOV-83 ;29148 ;29149 :29150 F : 8 Page CLOKX Rev 13,00, Clock rate = 160ns DIVP Unpack routine AR SRR AR RN R R RN R AR KRR R RA AR RKAAXKAK R IR ; Continuation of code O (StateSave) unpack T L L R T ANk A d A A AL L L AL L L AR R S 129151 =0 ;Sg}g% DS.DIVP,UNP.O: 129154 1252, 0086,559€,4000,0047,0533,C 1253, 0C86,058E,4035,0047,0133,6 ;29155 :Sg%gg 109158 ;Sg}gg 129161 1336, 0080,0015,0005,44A7,0133,7 129162 :Sg}gz ;29165 1337, 0C84,6592,4034,8047,0131,1 METEMPSI ZEXT(MB) ,PUSH, ERestore TEMPS, restore DR, [DV], and SIZELBYTE], NEXT/DS.DIVP.UNP.C0.034 I e e LS L MCTEMPO] _RLR4] v 0 LS LTRSS ; JRestore VA et R VA_ZEXT(MLTEMPOI)+R[R5], SI2ELBYTE] jmmmmmm—mmeeesem————- ————e———- - 129166 ;sg}gg RLR2] _MLTEMP6], NEXT/DS,DIVP.REE.O 129169 ;591?0 JARRNERR RN AR AR AR AR h AR R AR AR R R AR AR R R kAR NS 129172 ;29173 SRARARE AR R 333};9 MCTEMPS] _MB.AND. ZLITOL1F) 129171 ;Restore GPR2 to StateSave value, Jreenter main loop after FPDOFFSET_11. ; Continuation of code 1 unpack RN R IRk KRR KRRk Rk kR ke :Sg};g DS.DIVR,UNP,1: 1338, 0986,512,0030,F847,0125,4 129178 =0 :29179 1254, (886,6287,0025,0047,053D,F 1255, 0086,659E,4000,0047,011F,C Rttt L bH 129180 MLTEMP6] _R(R4].RR, 24, 129183 ,'1 " ;sg}g; :29184 129185 :TEMPS must be 0-1F :Get TEMP6é data into low byte, fix PUSH,NEXT/DS.SR.26 4t 58 TS 0y T B4 T T ;GPRO, GPR?, and GPR4 O e W O MOTEMP6] _ZEXT(MB) ,SIZECBYTE), NEXT/DS,DIVP,REE.1 W .P ;Fix TEMP6, all done bk 714 ! o : ; ——— e e —— (MT098.MCX DECMAL .MIC -—. MICROZ 1M(01) Decimal String 28-NOV=-83 16:30:35 ;29186 R ;29188 I L AT ;29187 R R 8 G Page CLOKX Rev 13.00, Clock rate = 160ns DIVP Unpack routine A R AR A SRR AR AR T A AR SR AR R A A : tontinuation of code 2 unpack T R AR AR AR LRARALAALMAEALEALLLAALALALLLL L) AR A SRR AR A AAR A AR AR AR MM AL AL AL 129189 :%g}g? sDS.DIVPL,UNP,2: 129192 MCTEMPOI_RCR4J.RR.16 :Byte#0_DR(LD) 129195 STEPC D_SEXT(MLTEMP01).SR.1, iSTEPC_D_L/2 for DR read 129196 :29197 SIZELBYTE] :29198 1339: ;29199 MM.PB,WRITES: ;29200 vt U 1339, 0080,058€,4037,0307,0176,7 ;29201 ;gggg% Guiaiiil et s~mme———— : FLAGS _RIRTMPGPR], s RESTORE FLAGS NEXT/MM.PB.WRITE10 129204 133D: U 133D, 0484,0036,4787,039D,0961,C 479+ ; Hope for location 104A 129207 PROBE WR1TE?,SI2ELBYTE], ¢ PROBE VA USING CURRENT MODE, ;Sgg?g NEXT/OLD16TC : MAKE SURE WE SKIP OLD 1769 :29208 129212 10D0: 129213 :ggg}g 129216 ;=010 U 1002, 0484,6592,4034,8047,00FE,2 129217 10D2: $29218 129219 ;sggsg $29922 10D3: u 10p3, 0086,6287,0025,0047,0125,6 J 10p4, 0480,0019,0000,0487,00F8,9 . ;Sgsgg MM.PB,PROBE : 129211 ;=000 U 10D0, 0480,00A1,0034,44A7,053C,0 : See memory management module RCRTMPGPR]_FLAGS, ; SAVE THE CURRENT EVENT FLAGS ;000~-=~=-= mommommeamaan wmmmmmn - PUSH,VA_D+R[R1]+1, NEXT/DS.READ.DIVP.DR ) ;Point VA past sign byte of DR, read ;DR ;010===recemcomacmemmseoueossus~a P RCR2]_MLTEMPS], :BUS exce8t1on or int. pending durin NEXT/YE.PACK,DONE :DS.READ, GPR's are untouched, ;reload GPR¢ & directly to IANDE ;01l==cmmcmsccceomscmecmccmean. ; 129223 MCTEMP6] RIR4].RR, 24, 129226 10D4: ;29227 ;100=====m=smmemsecamasemesmmman ; PC 2EXT(MLTEMP0))+0,S12ELBYTE], ;DR=0, PSL<V> & FPD are ok, take trap :ggggg ;Sgggg NEXT/DS.DIVP,UNP.2.END sREAD was ok, get TEMP6 data NERT/1E.FLT.DEC.DB2 129230 229231 = :29232 DS.DIVP.UNP,2,.END: 229233 ;Qrmmmcecmmren e macuns memmm—a H U 1256, 0886,659,4000,0047,053D,F J 1257, 0080,058E,4034,C487,011F 129234 :585%2 :09237 :29238 :29239 MCTEMPO) ZEXT(MB) ,SIZE[BYTE], PUSH,NEXT/DS.SR.26 :TEMP6 is done, mask out GPR's ;=== Smmmemescemaen- sommmmena; PC_RCR3),NEXT/DS.DIVP,REE.2 ;Fix PC to point to base of DV, ;reenter inst, ; H CMTQ98.MCX DECMAL.MIC MICROZ2 1MC01) Decimal String 16:30:35 : 28-NOV=83 H 8 Page Rev 13.00, Clock rate = 160ns DIVP Unpack routine ¢ LOKX ARk R KRR R RN Rk AR ARk AN ARk 129240 AR :292(,2 *‘lfifi**i*****fi**tt***fiifi****'*******k***t****tt*ttn*t*t**t*t*********** Esggzg M[TEMP&J L1T0C1] 129248 129249 ;0)em=ssssuessmmeeeeeeeeeee -~ MCTEMPSJ MB.AND,ZLITOC1F) ;TEMPS must be O=1F, unpack DR, (DV1, ;29241 Continuation of Code 3 unpack ;29243 =00 :Sggzg DS.DIVP, UNP 3: U 1184, 0586,4C37,0030,0847,0118,5 U 1185. 0186,5C12,0030,F847,0533,C :gggg? PUSH, NEXT/DS DIVP.UNP.CO. 634 129052 U 11B6, 0886,6287,0025,0047,053D,F U 1187, 0(86,659,4800,1867,0100,8 TEMP4 is zero, make it a legal 1 sand PC ;1Qmmmmsemsseseeccecceecseemes; 229253 M[TEMP6J RLR4J.RR, 24, $0k, get TEMP6 data, mask out GPR's 129257 :Sgsgg 129960 bl TERped pIEATCME) SIZELBYTE], NEXT/DS.DIVP.REE. 3 IP,TS? ;Fix TEMP6, reenter, anything pending? 129262 R 129263 ¥ Continuation of Code 4 unpack ;29254 PUSH,NEXY/DS.SR.26 129261 :295215, .29 0 e e e A A A e AR A RAL A AR A AR lc!ttt*ttt*tttt***'{***********tt*t#***************t******************t* ;Sgggg DS.DIVP,UNP.4: _ U 1258, 0186,5(12,0030,F847,0533,C U 1259, 0486,058E,4035,0047,0133,8 329268 :Sgggg M[TEMPSJ MB.AND.ZLITO[1F] PUSH, NEXT/DS DIVP.UNP.CO. 634 129271 I :Sgg;% 129274 U 1338, 0080,0015,0005,44A7,0125,A 229275 ;585;9 129278 =0 109279 U 1254, 0886,6287,0025,0047,053D,F 129280 ;ggsgé 129283 U 1258, 0086,659€,4000,0047,0130,D 129284 129285 AL MCTEMPO]_RLR4) TEMPS is fixed & legal, unpack OR, .[DV], and PC e e L ELL L Restore VA D --; VA_ZEXT(MLTEMPOJ)+RLRS) SIZELBYTE] ;Q=mmmmsummmmememmesameeceee ——- M[TEMPé] RCR4J.RR.24, PUSH,NEX1/DS.SR. 26 JTEMPS data in byte#0, mask out :GPR's jlemmeesmemmemecmceemcomessoas - M[TEMP63 JEXT(MB),SIZELBYTE]D, NEXT/DS.BIVP.REE.4 JTEMP6 is done, reenter inst. 716] Decimal String DIVP common unpack routine : ;ggsgg .T0C " 229288 AR :29290 ; codes 0, 3, and 4 129289 129291 :29292 129293 Decimal String AR Page 717 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 28~NOV=-83 1M(01) AN R AN AR R AN AR : AR AR ARk DIVP common unpack routine'' h ko ke h kAW kA : DS.DIVP.UNP.C0.034 is the DIVP common unpacking routine for int, ; TEMP6 GPRO Cop{ of GPR2 ) Packed values for each int. code 129295 Input GPR2 Packed values for each int. code :29298 (SP) :29294 GPR1 129296 9297 GPR GPR4 DR base address . DV Base address . Packed values for each int. code Points to bottom of saved [DV] on stack T :29299 129300 :29301 Resources TEMPO~TEMP3 Used as counter by DS.READ QREG RNUM copy VA ; : Qutput : : ; J ; ; Used to reread DR, misc. data STEPC For reads RNUM MTEMP pointer TEMP1 Packed value, last read DV byte RTEMP8-RTEMP11 MTEMP8~MERRCOD DR LDV] as stored on stack GPR2 P( FLAGS ; : ; Subroutines DS.READ.DIVP.DR RETURNS +1 NEVER from memory. *MERRCOD is not needed after any BUS exception« DR(LDNLZ) (again) Restored as DV pointer _byte#0 of GPRO (needed for int. codes #0 & 4, but done for code 3 anyway) EverGth1n ok I1f BUS exception or int, pending In such a case, either gceurs. in DS.READ or_this routine, RCR2I_MITEMPO],NEXT/LE., PACK DONE Also 7t DR=0 during unpack, in which case P{ is restored from PCBACK+deltaPC and divide~by~ zero trap is taken. SRR NN R R AR R A RN R RN NNk R R ARk Rk kR Rk Rk Rk Rk Rk ko k& I OO0 OO0 OO0 0000000000000 OO OO0 OO0 O AU A AN U LN LA U AN R U AT N R LA U U A AN LA AN AN N AR N AN WRLRITUNONINTLVNINVNI D 2 D0 0 B D e B OOV OO0 00 =GO 00 NN I AN = O OO0 O S AN = OO 00 N OSSN TR TR TE TR PR T T O T T e R T O P LR NS LS LN LS LN LS LS TS L ST S TN N L S TS LS TN LS A DA Lot Lo S 4 DECMAL. MIC MICROZ AL LN : CMT098.MCA L H : ; CMT098.MCX DECMAL .MIC MICROZ2 1MOOD) Decimal String 28=NOV=-83 16:30:35 : J 8 Page CLOKX Rev 13.00, Clock rate = 160ns DIVP common unpack routine ;Sgggg DS.DIVP,UNP.CO.034: U 133C, 0486,02B7,0005,0047,0102.A Esgggg MCTEMPOJ_RCR4].RR.8 129334 1024: 29337 U 102A, 0880,0015,0004,C487,0533,A ey ‘Get PC offset into DV innintndintdedet ; :PC is reset 229338 PC_ZEXT(MLTEMPOJ)+R[R3], Esggzg jmm—— PSUEDO SUBROUTINE ===w== JALSO CALLED BY LOC 10CA :Sggzg SIZELBYTE],PUSH ;RETRUN [+6] 199343 133A: :Sggzg DS.DIVP.UNP.2: U 133A, 0086,0287,0015,0047,0133,E Esggzg MCTEMPOI_RLR41.RR. 16 129348 U 1336, 0480,0815,A08D,8107,0000,6 U 1030, 0480,00A1,0034,44A7,053C,0 et eislttenie e eta ittt H 129349 STEPC_D_SEXT(MLTEMP01).SR.1, :29350 129351 ;29352 229353 ;=000 129354 1030: 129355 :Sgggg 129358 ;=010 ;29359 1032: U 1032, 0484,6592,4034,8047,00FE,2 U 1033, 0C80,05BE,4037,84A7,0133,F ;29360 129361 129362 129363 :29364 1033: 129365 ;Sgggg 129368 1034t u 1034, 0480,0019,0000,0487,00FB,9 $29369 :ggg;g ‘Get VA offset ; SIZECBYTE],RETURN [+6] JSTEPC_D_L/2 for DR read ;THIS TSTNOT REALLY A SUBROUTINE :BUT WE NEEDED 2 EXTRA WORDS ;000=-============c==mmmmmmnaeae ; VA _D+RLCR11+1,PUSH, ;Point VA past DR, read it, NERT/DS.READ.DIVP.DR JRETURN +2, +3, or +4 ;010=-=~=-=mmmemmmmscccmuocamene : RCR2]_MLTEMPo], NEXT/TE.PACK.DONE ;BUS exception or int. pendin?, ;Fix GPR's, everything is ok : future unpack for ;01)=--=cesesmcssmcconcccsecone. : VA_R[SP], :0k, set up to read [DV] from stack NEXT/DS.DIVP.UNP,C0.034.C ;100=====om=m=smcememmmmeneanae ; PC_ZEXT(MLCTEMPQJ)+0Q,SIZECBYTE], :DR=0, PSL<V> & FPD are ok, take trap NERT/IE,FLT,DEC.DBZ 59372 ° 129373 :Sg%;g DS.DIVP,UNP,C0.034.C: U 133F, 0880,058E,4034,0307,0134,0 129376 129377 129378 :29379 U 1340, 0D81,D(37,1030,5847,0104,F 129380 129381 FLAGS_RCRO ‘Load FLAGS image, necessary for codes ;40 and 4, but ittt bt b L DL S b Ll : RNUM_Q_2L]1Y0011.], NEXT7DS.DIVP.UNP,C0.034LP &3 gets it anyway :Point RNUM & QREG to highest MTEMP ; : CMT098.MCX DECMAL .MIC MICRO2 1M(01) Decimal String ;29382 129383 28-NOV-83 16:30:35 129384 129385 129386 ;29387 =00011 i K 8 Page 719| CLOKX Rev 13.00, Clock rate = 160ns DIVP common unpack routine ,ttt**tt**ttfii*twktk**fi**t****k*tfitktfi*t***k*****t**t**tittttit*tt*tt** : =00111 is RNUM=7, we are finished looping. =01111 is there is : U 1047, 0086,2287,0004,0047,0134,4 :%ggg% { i : more to read, and =01111 is also where we first enter loop. . =10011 is RETURN+4 from BUS exception during read. IRRKKARRRAR KA RRKKHERA AR AR KRR R Rk ek ke MCTEMP2) _RCROJ.RR.8, NEXT/DS.DIVP.UNP.(C0.034EX ! ii ke kkdwor bk w ;29388 =00111 129389 DS.DIVP.UNP, CO 034L0: 129390 10011 = emmmmccc s n e cnna——, 129391 i ! : ! ! . 1[DV] is read, TEMP2_TEMP2 data in ! ilow byte i 129394 =01111 | :29395 DS,DIVP.UNP,(C0.034LP 129396 U 104F, 0080,0036,4020,0450,0134,1 129397 ;ggggg 29400 =10011 1294017 U 1053, 0484,6592,4034,8047,00FE,2 129402 ;53282 _ :01111 ------------------------- ~; READ,SIZELLONG],VA_VAt4, NEXT/DS. DIVP.UNP. CD.034LC . _ ;1001 1wmmemmemmn e m e e — s: RLR2]_MLTEMP6], NEXT/TE, PACK.DONE ;unpack, bye... ;ggzgg DS.DIVP.UNP,C0.034LC: RCTEMPO]_MCMDR) U 1342, 0087,05BE,4030,0047,0134,3 ;532}§ MLTEMP.RI_RLTEMPO] 129411 129414 U 1343, 0081,0088,123D,R047,0904,7 400 1) 1364, 0486,259E,4000,0047,0134,5 U 1345, 0486,1287,0021,8047.0134,6 129415 :Sgg}g jmmmmmemesccsccccsseacsacnomeees ; NEXT7D3.DIVP.UNP, C0.034L0 ' ! ;Dec. MTEMP pointer, is it =77 ; f , ;( are we done? ) 139418 3 ;582;3 DS.DIVP.UNP.CO.034EX: i E%gzg; $29423 MCTEMP2]_2EXT(MB) ,SIZELBYTE] ‘TEMP2 is done Rt vt S LR ; ; i e vty ; : \ : :Sgfigg :29426 U 1346, 0886,159€,4080,0047,0000,1 (Get data into proper MTEMP emmmsmmmmmmmm—mmeeeeeeeeeeoo ; RNUM_Q_0-1,WB<5-0>?, . ; 129406 }nggg | ’ ;BUS exception, GPR's are ok for future 129405 U 1341, 0085,2592,4030,0047,0134,2 i ;Read (first) (next) lw, of [DV] 129427 129428 MCTEMP1] _RCTEMP6].RR, 24 MCTEMP1] _ZEXT(MB),SIZELBYTE], RETURN [T1] ;TEMP1 data in low byte ;TEMP1 is done ' ; H CMT098.MCX DECMAL.MIC MICRO2 1M(Q) Decimal String 28-NOV-83 16:30:35 L : CVILP" 329431 R ;29432 ; 2294633 . A T A A A A A AR AR AL AL RS IAR LA AR CVTLP src.rl, dstlen.rw, dstaddr.ab Input 129436 ; Q 129438 ; ;29439 ; :29440 ASAAASLALEALA LA LA A AL A Source MDR Destination length TEMPQ Resources 129437 ; i ¢ CVTLP Decimal String ;29435 Page 720, CLOKX Rev 13.00, Clock rate = 160ns :582%3 .T0C '' 129434 ; 8 Save source TEMP1 TEMPZ TEMP3, TEMP4 # of significant digits in result. Destinaion length (not zero extended). 0 for writing out leading 0's ;29442 RNUM Used to write result from TEMP3-7 ;29444 ; 29445 ; STEPC FLAGS Convert loop control, PSL<NZVC> : 29441 ; TEMPS, TEMPO 129443 ; PL : 29446 ; Output :29447 129448 ; ;29449 ;29450 ; 329451 R HEA KR Used to skip Lead1n? 0 bits in source lero RO R1 R2 R3 IR RR IR K IR R AR AR Result lero lero R Destination address R KRR AR AR R AR KRR IR R R RN KRR KK Ak ;29452 ;sgzgz .8[610N/1RDX.R1L.IRDX.R1H/1RDX.R2L.IRDX.RZH ;29455 DS.CVTLP: ;29456 R it H : 29457 RLTEMPS] @ Q.D, s U 031€, 0C84,002C,7182,4047,0412,0 ) U 031F, 0486,05BE,46F¢,4047,0003,1 : 29458 LOD INC BRA?Y :53228 PUSH,NEXT/0S.ADD 029461 : SAVE SRC ; EVALUATE DESTINATION ADDRESS OPERAND l=—se=mcesecceccscoucoso ————e—— H ;29662 ;ggzgz M[TEMPO] RLTEMPI], WB<31-305? ; SAVE SOURCE AND CHECK SIGN. ; ;29465 .REGION/DECMAL.R3L,DECMAL.R3H 229466 =01 :29467 DS, CVTLP 10 ;29468 U 0D31, 0486,55BE,403D,8047,0003,2 129469 ;0 1-s-m-cemovseennao e ettt : SOURCE IS POSITIVE, M[TEMPS] RL2 R0J. ’532;? NEXT/DS.TVTLP, 20 029472 U 0D33, 005€E,0003,003D,8047,0003,1 ; INITIALIZE RESULT REGISTER. ; 1]emmeeccecneoesmascsccsooes -==; 229473 M[TEMPOJ ~MB,SET FLAGS3, ;sgz;g NEXT/DS.TVTLR,10 SOURCE IS NEGATIVE, ; CHANGE = SQURCE TO + FOR CONVERT ; ;29476 DS.CVILP.20: 129477 J 0032, 0C80,09C2,4A7D,8047,00D5,C ;29478 129479 0 eewsmemsesc~ce-cae- Seeeenmeme——— H PL _M5s MLTEMPOQ], WXONE. 0? ; SKIP LEADING 0 BITS IN SOURCE ; CHECK FOR ZERO SOURCE. : " CMT098. . MCX VECMAL . MIC MICROZ2 1M(OT) Decimal String 28-NOV~83 129480 =0 u 0DSC, 041E,65BE,403D,8047,0006,3 | U 0DSD, 0086,6837,0030,0047,00D4,C U Cb4C, 0580,6C11,0030,0907,00D4,E u 0D4E, 0086,6(37,0030,0047,00D5,2 J 0DS2, 0086,0177,0280,0047,0006,0 U OD5E, 0486,0301,(2BD,8047,08D6,0 355« 129485 M[TEMP6] _PL Y MOST SIGNIFICANT BIT INTO STEPC STEPC_MLTEMP61+ZL1TOL1] : MCTEMPS]_2L1T0C0] : INITIALIZE RESULT REGISTER WCTEMPO] MB.RR.P, TTT% SKIP LEADING 0 BITS IN SOURCE. 129486 129491 129492 29493 29494 29495 0 " BRANCH ON MOSTSIGNIFICANT BIT SET WB<0>?,NEXT/DS.CVTLP, 30 ;29496 129497 DS.CVILP. LO0P 29498 M[TEMPOJ 29499 ,5328? 29502 529503 U 0D60, 0480,0036,4330,0047,0006,2 MB.RL.1, WB<0>?,NEXT/DS.CVTLP. 30 : 29509 ;29510 ;2951 129512 ;29513 129514 129515 -0 * SHIFT NEXT BIT INTO BIT ZERO. * AND BRANCH ON IT. s ~———— s L : ; INTPEND OR TIMER?, PUSH,NEXT/I1E.SERV.IP.TS2 =0 ;29506 DS. CVTLP 30: - . = 1 o o D e G ;29519 —-_-~__u~-_~—__-~_--_----uu_--. o T i o O S O G o pBZ STEPT? :29530 SIGN POSITION S ADD CARRY FOR DOUBLE RESULT. ; DECREMENT COUNT OF BITS REMAINING ALTEMPG] (MBYRLTEMPGD).BCD, . DOUBLE LOWER HALF OF RESULT : Wremelo, T o: MOVE DESTINATION LENGTH TO A TEMP FLAG3?, NExr/Ds CVILP.SIGN : BRANCH ON SIGN OF SOURCE. it atninhdstmistntstutntntutdntuddadntnindulnl ;29529 0 W MCTEMPS]_ (MB+RLZEROJ+ALKC) .BCD, ;29527 DS.CVILP.50: 229528 J 0058, 0486,5041,4821,58E7,0005,E BIT 1S ONE, ADD DNE TO THE RESULT, SKIPPING THE NEXT/DS.TVILP.50 ;29520 129521 ;29522 DS.CVTLP. 45 129523 $29524 129525 129526 BIT |S Z2ERO, ADD ZERO TO RESULT, DECREMENT COUNT OF BITS REMAINING g ;29516 129517 DS.CVTLP.40: ;29518 . U 0D63, 0486,203A,44FD,8047,0006,4 ‘ ------------------------------ ; LOAD THE NUMBER OF THE 129487 129488 129489 :29490 129507 :29508 U 0p62, 0486,6001,4021,8047,0005,8 0memcemescecmscconcmsvnmnnmncen H trenpc: RCZERO),CLEAR FLAG3, NEXT/DS.TVILP.45 ;09483 129484 ,Sgggg U 0D56, 0086,5041,432D,8047,0006.2 Page ;29481 129482 U ODSF, 0480,0036,4AF0,0047,04F7,0 U 0D61, 0186,6091,4020,8047,0005,6 M8 16:30:35CvTLgLOKX Rev 13.00, Clock rate = 160ns dint- MCTEMPS]_(MB+RITEMP5J+ALKC).BCD, ; DOUBLE UPPER HALF OF RESULT IP.TS? ,NEXT/DS,CVTLP.LOOP H 721 28=NOV=83 1M(J1) : : U 0D34, 0C84,6637,0030,4047,04D8,F : ; : ; p U 0D37, 0186,1011,0030,4047,0003,6 N P R J 0036, 0480,2014,06DC,4047,08D3,9 349« O R T TS U 0D0%5, 0084,5637,0030,4047,04D8,F : UIAD P A0 AU ND AU AN U 0071, 0480,5592,4A70,0047,0003,4 503 8 CLOKX Rev 13.00, Clock rate = 160ns i CVILP MCTEMP63_MB.OR. ILIT24012.], Y STORE PLUS IN RESULT. METEMPé] _MB.OR.ZL1T24[13.] * STORE MINUS IN RESULT. NEXT/DS.TVTLP.SRCLEN Page : DS.CVTLP. SRCLEN: WB_MLTEMPS],WX.NE.0? 200 * SEE IF RESULT HAS MORE THAN 7 DIGITS, ;0Q==m===me==mce—ececmm—eeoeeos ; LONGWORD RESULT * COMPUTE # OF NON ZERO DIGITS. R[TEMP1J MLTEMPG].BCDSWP, PUSH,NEXT/DS.CVTLP.NON.0.DIGIT : ;01 mmmmmmmcmmemmcoooomeonoee : DOUBLE WORD RESULT RCTEMP1] _MLTEMPSJ.BCDSWP, * COMPUTE # OF NON ZERO DIGITS. PUSH,NEXT/DS.CVTLP.NON,0,DIGIT ; DS. CVTLP CHECK.OVFLW: i : N =0 DS.CVTLP.SIGN: ; 0 Vi U 0D65, (986,6C92,4030,6847,0007,1 : O NN UIVIAVAIVIWIWIAN £ 35 05 D8 D0 D 88 25 D AN AN NN NN N —-o»oco\vomx\wm—-oocowombwm—aoooowownaww—s U 0D64, 0DX6,6C92,4030,6047,0007,1 it il naalaua v Decimal String DECMAL (MIC NN R NN NI NN N PO NI NI AN AN AR RN H MICRO2 CMT098.MCX 00 0 O 0000 OO0 00 000000000V 0V000O000 : 16:30:35 UB 2EXT(MCTEMP21)-RLTEMP1], WB<31-30>?,S121LWORD], i1s destination length < result length? NEXT/DS. CVTLP. 70 ;1 memm e cm et sccner e ———— MCTEMP1] MB+ZLITO[8] NEXT/DS.TVILP.CHECK.OVFLY ; CORRECT FOR DOUBLE WORD RESULT : :29562 =01 529563 DS.CVTLP. 70 ;29564 F U 0D39, 0180,2¢17,8A10,F847,00D6,8 _ U 0038, 0048,259€,42%0,0047,0006,6 i Lo . e et e 129565 WB_SEXT (M[TEMP21) .ANDNOT.ZLITOL1f], ;Result <= Destination sgggg WX.EQ.0? ,NEXT/DS.CVTLP.8C 129566 ;29569 129570 129571 SIZECWORD], Rttt WB_ZEXT(MLTEMP2]),SIZELWORD], SET FLAGT,WB<0>? . :Result > Destination, check for even or iodd dest. length (for high nibble) K4 22 - i CMTO98.MCX ; DECMAL .M] C MICRO2 1M(01) Decimal String 2B-NOV=83 129572 =0 ;59573 L 0D66, 0480,259E,4210,0047,0007,0 | U 0D67, 0C85,2592,4030,04A7,00D6,A 16:30:35 e o e e e e e CLOKX Rev 13,00, Clock rate = 160ns Page : CVILP ;Qmmomsecnomen o semesccees ; , - } JEven dest., which nibble do we zero? WB_ZEXT(MCTEMP2]),SI12ELWORD], 129577 129578 ;lmmesmecceimmaman—aae mmmccmnues; VA_RLTEMPO]_MCMDR], Y CHECK THAT FIRST BYTE OF DESTINATION ;Sgggg WB<5-052 ,NEXT/DS.CVTLP.OVFLW NERT/DS.CVTLP.83 ‘ . 129574 ;5gg;g 723 ! i ; CAN BE WRITTEN, | | 129581 =110000 ;2958§ DS.CVTLP,OVFLW: ;2958 U 0070, 0586,6C93,8037,8047,0006,9 U 0D72, 0586,6D13,8037,8047,0006,9 U 0074, 0186,6D93,8037,8047,0006,9 :29584 ;Sgggg . ! NEXT/DS.TVTLP.81 :0f destination 1 | 129592 =110100 ) ;sggg? 129593 129594 ;Sgggg 129598 129599 29600 139602 =111000 :29603 U CD78, 058¢,5(93,8037,8047,0006,9 , MLTEMPG]_MB.ANDNOT.2L1T24[0F0], :Dest. length=0, clear high nibble of 129587 =110010 129588 :110010mm=mmmmmm— e ——— : 129589 MCTEMP6]_MB.ANDNOT,ZLIT16(L0F0], ;Dest. length=2, ditto 129597 =110110 U 0D76, 0186,6¢13,8037,8047,0006,9 ;110000 ==c-vmmccmccimnmnaa ; i 29604 ;ggggg ; ! NEXT/DS,TVTLP. 81 ;110100 m=mammccmencumanccua=n MCTEMP6]_MB,ANDNOT,ZLITBL0FO], ;Dest. NEXT/DS.TVTLP.81 ;1107110 mmm e m o e m e} MCTEMP6]_MB.ANDNOT,ZLITOCOF0), NEXT/DS.TVTLP.81 :Dest. length=4, ditto length=6, ditto ;111000 mmemmsmcuacnacamannnsan : MCTEMPS]_MB,ANDNOT,ZLIT24[0F0], :Dest. length=8, ditto NEXT/DS.TVTLP. 81 139607 129608 =0 ; ; 1 ; ’ ! ; | :Sgg?g DS.CVTLP. 80: U 0D68, 0C80,0036,4030,0047,00FF,8 338215 NEXT/1E.OPER,FAULT ; 3532}2 DS.CVILP.B1: U 0D69, 0C85,2592,4030,04A7,0006,A 2532}2 -0 139617 DS.CVTLP,83: 129618 U 0D6A, 0480,0036,4780,005p,0D68,4 479+ 129619 ;sggs? 129622 U 0D6B, 0886,358E,4830,98E7,0006,C L VA_RLTEMPO]_MLMDR] 109603 :29624 : CHECK THAT FIRST BYTE OF DESTINATION T PROBE WRITE?,SIZE[BYTED, PUSH,NEXT/MM.PRB.WRITE,S12 : ; CAN BE WRITTEN, ;lemmmmeem——————— — ——————; MCTEMP3]_RCZERO]D, 1P.15? * CLEAR TO WRITE LEADING 0'S ; : H : MICROZ (MT098,MCX 1M(OT) Decimal String DECMAL MIC 28=-NOV=~83 129625 =0 \ U 0D6C, 0086,458E,403D,8047,0007,3 U 0D6D, 0480,0036.,4AF0,0047,04F7,0 129626 16:30:35 ¢ 9 CLOKX Rev 13.00, Clock rate = 160ns : CVILP ;Qmemmm———— R weemennen MCTEMP4]_RCZERDD, 129627 : CLEAR TO WRITE LEADING 0'S :Sgggg NEXT/DS TVTLP.WRT.DST 29630 $]mmmmmmmemcm—————————— s ; ;Sgggg PUSH,NEXT/1E.SERV.IP.TS2 129631 INTPEND OR TIMER?, Page ‘ p ; Eggggg DS.CVILP.WRT.DST: U 0D73, 058%,D¢37,0030,3047,0007,5 3532?9 RTEMP7_RNUM_2LITOC6] 129638 J OD75, 0886,2015,801D,8047,0007,7 jmmmemssesermasesavenssve——em— - 129639 ALTEMP2] ZEXT(MB).SR.1, ;Sggzg SIZECWORD] 129642 Jemmmeesemmsme—cseescsmmecness ; 129643 J 0D77, 0450,0081,0030,84A7,0007,8 129644 ;Sggzg 0 : : VA_MLTEMPOI+RCTEMP2]+1, * SET FLAG2, NEXT/DS.CVTLP,90 : VWil E CLEARED ON FIRST NON ZERO * DESTINATION DIGIT ACTUALLY WRITTEN 129647 DS.CVTLP.WRT,LONG: 129648 U 0D38, 0465,DE7D,0031,(047,0007,8 129649 129650 :sggg; 129653 129654 © OD3A, 0C65,DE?D,0471,0047,0088,0 129655 :sgggg 129658 880: U 0880, 0181,109%,8A30,7847,0007,A 129659 ;58229 329662 881: U 0881, 0881,1592,4430,0047,08D7,A 322+ :29663 ;ggggg (0tiemealommacncnau. T ANUM_RLTEMP?]_RB-1, SET MM, NOINT, NEXT/DS.CVTLP.90 : : : ;l¥=mmsreecssecccsmammseeeceaae- : RNUM RCTEMP7]_RB-1, SET MM.NOINT, MM.NOINT? : ; : :Qtxs«s++xFORCE ADDRESSt*#+wssxwe: | AST WORD OF DESTINATION WB_MLCTEMP.R+11.ANDNOT., ZL1T24[0FJ ; CHECK FOR ZERO IGNORING THE SIGN WXTEQ.0?.NEXT/DS.CVILP, 85 sixxaanexxFORCE ADDRESS*wwxxxxxw; NOT LAST WORD OF DESTINATION WB_MLTEMP .R+1], WXTEG, 07, NEXT/DS.CVTLP,85 : CHECK FOR ZERO ALL 8 DIGITS ; 129666 =0 U 0D6E, 0581,0093,8A30,7847,0007,4 129667 FREE.OD6E: 129668 ;0reanesl OCATION NOT USED s+sxxww; LAST WORD OF DESTINATION :29669 WB_MLTEMP,R].ANDNOT, ZL1T24[0FJ. ; CHECK FOR ZERO IGNORING THE SIGN ;532;? WXTEG.07,NEXT/DS.CVTLP.85 150672 FREE.ODGF: J OD6F, 0C81,0592,4A30,0047,08D7,4 322+ 129673 ;532;2 1t~w*'LOCAT10 WB_MLTEMP R, kX T USEDw«n«nawnw; NOT LAST WORD OF DESTINATION 0? : CHECK FOR ZERO ALL 8 DIGITS=0 150676 -0 .Sgg;g DS, CVTLP.85: 129679 vA_M[VAJ JLITOL4],CLEAR FLAG2, - DESTINATION IS NON 2ERD CLEAR PSL<2> 724 ; i (MT098.MCX DECMAL.MIC MICRO2 1M(01} Decimal String 28=NOV=83 16:30:35 i Sggggg DS.CVILP.90: 353ggg 129688 VA_M[VAJ 2LITOL4] | ;sgggg v OD3D, 0080,058E,456C,0508,9003,8 u OD3F, 0981,8C11,0030,1CA7,00D8,A : jeeemeecesmeccocee- e W8_MCVAJ-RLTEMPQ], SIGND CMP?,SIZECLONG] $29691 =01 : ; Y; 129692 WRITE RLTEMP.R],SIZELLONG], : ;ggggg NEXT/DS.CVTLP.WRT.LONG p 129696 ;1lemmscmmncaancn——- ——emenem; 129693 FLAGT?, 129697 .sgggg -0 =Uw Page 725, ; 129686 DS,CVTLP,93: 129687 u 0D79, 0C81,B8000,0860,0047,08D3,D 371 (LOKX Rev 13,00, (lock rate = 160ns NEXT/DS. CVILP, 93 ;20680 | 9 : CVTLP F 0D74, 0511,BC10,0030,24A7,0007,9 0078, 0581,810,0030,2447,0007,9 D VA_MLVAJ+2LITO[3], NERT/DS.CVILP. 100 * IF OVERFLOW CHECK FOR ZERO DESTINATION : ; 129700 DS.CVTLP.WRT.BYTE: 129701 u 0D3C, 0080,058E,400C,0508,0007,E 129702 ;53582 £29705 J OD3E, 0480,05BE,444C,05D8,0007,¢ 129706 ;58;82 :29709 =0 5 0D7C, 0961,0012,0A77,8047,0007,E : D ; WRITE R{TEMP,.R],SIZELBYTED, MM NOINT? ; : Y ; P WB_MLTEMP, RJ AND.ZLITOCOFO, ;Sg;}g WX.NE.0? ,NEXT/DS.CVILP.95 129711 129715 129716 ;sg;}g " ; NEXT/DS.CVTLP.95 129710 129714 U OD7D, 0561,0012,0A77,F847,0007,E 10%omemmiecaccmnaceovana——- ———; WRITE RLTEMP,R],SIZELBYTE], SET MM.NOINT : . D e; w8 M[TEMP RJ AND ILITOCOFFY, SET MM.NOIN WX.NE.0? ; ; 129719 DS. CVTLP.95: 029720 u OD?E, 0161,8(10,0030,0CA7,0008,4 {A_MIVAT-7L1TOL13, : ;gg;sz NEXT/DS. CVTLP. 100 ; Plemseccemanaa se ; CLEAR FLAG? : 109702 :29725 u OD7F, 0911,B8010,0030,3CA7,00D8,4A 0smemvmcsmacoesmsscacenocsnnones : 129721 129726 109727 SET MM,NOINT VA MLVAI=2L1TO[1], : ; i ! T i F : LSO (MT098.M(X DECMAL MIC - MICRO2 U 1M(O1) Decimal String — E 28=NQV-83 e o 9 16:30:35CVTL£L0KX Rey 13,00, Clock rate = 160ns Page ;29728 DS.CVTLP.100: 029729 . U ODBA, 0481,B000,0B60,0047,08D4,1 371+ ; ¢ CD41, 0CB4,0287,05EC,0047,00D3,¢ u OD43, 0884 ,0587,0034,0047,0008.8 U ODBB, 0484,0587,0034,4047,9008,¢ U OD8C, 0(B4,0587,0034,8047,00D8,D WB_MLVAI-RCTEMPO], $29733 =01 129734 L RCTEMP.RI_RB.RL.8, ;gg;g; 129735 ;53;39 129738 ;gg;zg 129741 ; SIBND CMP?,SIZELLONG] : e FLAG1?, NEXT/DS.CVTLP.WRT.BYTE F ; : : IF OVERFLOW CHECK FOR ZERO DESTINATION D: RCROJ_O ; jmmm—mmem——e e ——-; ;Sg;2§ RCR11_0 :29744 jmmmmemseecmmeccecsosamecscseoos ; ,sg;zg 129747 U OD8D, 0880,058E,4562,4847,00D4,4 jeosseesmcccssecmseccnsccocconeos : 129730 129748 ;53;§8 ; RCR21_0 jemmemeceemceccomeecoccseo-scae- ; WB_R[TEMP9],CCOP1,SIZE[LONG], FLAGT (FLAGS.XOR.FLAG3)? 129751 =00 129752 DS.CVTLP.DONE: U 0OD44, 0484,0592,4134,0047,003F,9 129753 ;29754 129755 129756 U 0D45, 0484,0592,4134,0047,003F,9 U OD46, 0418,0036,4030,0047,0004,7 U 0D47, 0885,2036,4030,0387,0008,E U ODBE, 0480,2592,4030,00A7,0004,4 129757 129758 :53;28 :29761 ;53;g§ 29764 ;gg;gg 129767 ;gg?@g ;¢v/?0 R ; NO OVERFLOW R[RBJ _MLTEMPO], IRD1 ;Condition codes are set, copy dest. ;address & **IRD1%x ;0]mmmmmc—eeccceeecemae—e—————— ; NO OVERFLOW RER32 _MLTEMPO], IRD1 5 10=mmmm e mmmm CLEAR FLAG3 P D :Condition codes are set, copy dest, raddress 8 **IRD1wx e ORI MLTEMP2]_FLAGS e ; OVERFLOW AND PSL<N,2> = 00 OR 11 : CHANGE TO 00 OR 01 e S : OVERFLOW AND PSL<N,Z> = 01 OR 10 : USE FLAGS TO SET CONDTION CODES jmemememem—e e nen——————————— ; CC_MLTEMP2],NEXT/DS.CVTLP.DONE :CC is set, IRD1 ;Sg;;5 DS.CVTLP.NON.O.DIGIT: U OD8F, 0(80,19¢2,403D,8047,0009,0 U 0D90, 0086,183D,803D,8047,0009,1 Esg;;z 129775 ;sg;gg 129778 U 0D91, 0886,1001,808D,8047,0000,2 129779 :129780 PL_MSS MLTEMP1] ; j==memocecmmmmscecccccamcmcoeao. : MCTEMP1]_(RLZEROJ+PL).SR.1 : P; MCTEMP1]_MB.SR.1, RETURN [¥2] ; ; 726_ ; ; (MT098,MCX DECMAL.MIC MICRO2 1M(O1) Decimal String 16:30:35 28~NOV-83 :sg;g% .T0C ‘" 329783 3RRA ;gg;gg ; F 9 : CVTPL Decimal String Rk R R CVTPL . cvrpL” A KRR R R kAR AR R R R R srclen.rw, R R KR KRRk KRRk Kk k% srcaddr.ab, dst.wl 129786 : Input MDR Source length ;29788 :29789 ; 129790 ; ;29791 Resources TEMPO TEMP? TEMPS TEMP6 Next source digit Intermediate results Save source address OF used to extract nibbles 129793 ; MTEMP10 Save VA 229795 STEP( 129787 ; Inputing source digits MDR 129794 ; Set if overflow FLAGI :29796 : Output 129799 ; ;29800 ; ;29801 ; O8O3 AR ;29802 Save ZEXT(source length) TEMP7 129792 ; 129797 ; 129798 ; FPDOFFSET Set to 0 RO R1 lero Source address R3 Zero R2 R A A AR kAR R A kR AR AR AR lero AR AR KRR :29804 229805 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H :Sggg? DS.CVTPL: ARk ARk U 03BA, 0485,259E,4191,€047,0012,0 ;29809 :Sgg}? U 0388, 0086,258E,403D,8047,0009,2 3533%% DS.CVIPL.02: Eggg}g MCTEMP2]_RLZEROJ Esgg}g .REGION/DECMAL .R3L,DE CMAL .R3H + INITIALIZE RESULT U 0D92, 0986,6(37,0030,7847,0009,3 Esgg}g * USED TO EXTRACT NIBBLES 109820 U 0Dp93, 0580,7(13,8A30,F847,0008,0 U 0p80, 0080,0036,4030,0047,00FF,8 U 0081, 0D8G,7C11,8030,1107,00D9,4 U 0094, 0C85,2592,4031,44A7,0009,5 U 0095, 086, BE,4031,4047,00D9,6 129821 :298%2 129823 229824 =0 ;Sggsg 109827 ;Sgggg 09830 ;53%%; :09833 129834 LOD INC BRA?,SIZELWORD], NEXT/0S,ADD : ; EVALUATE SOURCE ADDRESS OPERAND MLTEMP6] _ZLITOCOF] 0 Kk kR E SAVE ZEXT(SOURCE LENGTH) é[TEMP?J ZEXT(MIMDR]), ;29808 Page CLOKX Rev 13,00, Clock rate = 160ns eemmmmmmmmscmesmesescesceeeee—- -; w8 _MITEMP71.ANDNOT.ZLITOL1F], : CHECK SOURCE LENGTH WX EQ.0? : ;Qemmeeccceencaconena e NEXT/IE OPER.FAULT el : : ;lememmmmcwmmmmccccscemcccceao-s ; STEPC (M[TEMP?J*ZLITO[ZJ) SR.1 TN m ; LOAC # OF BYTES IN SOURCE e . ——————————————— : VA_RLTEMPS]_MIMDR] : LOAD AND SAVE SOURCE ADDRESS ;Tmmmmmmmmmmmmmme——e—————————- ; MLTEMP10]_RLTEMPS) ¢ SAVE VA ke hek 727 ; : CMT098.MCX DECMAL . MIC MICRO2 1M(Q1) Decimal String J 0096, 0980,0EF6,4030,2047,0008,2 28-NOV=83 16:30:35 G 9CLOKX Rev 13.00, Clock rate = 160ns ¢ CVTPL :29855 ------ s e G -Iy - ;ggg%g PL_L4] Page Y USED FOR ROTATING 129838 =0 | ] 728| i | :gggzg DS.CVTPL.SKIP.ZEROS: U 0D82. 0586,AC11,0300,00B0,0008,4 U 0083, 0886,7036,4030,0187,0009,7 129841 129842 :53322 :29845 ‘53329 $29848 J 0097, 0586,7¢12,0030,F847,0009,8 129849 ‘%33«55? READ,SIZELBYTE]. vA_METEMP102 MB+ZLITOC13, DRI STEPC?,NEXT/DS.CVIPL.20 * READ SOURCE BYTE : : ;|vmmmmmmm o ; MLTEMP7]_STERC * SAVE # OF BYTES REMAINING IN SOURCE e e D; MUTEMP7]_MB.AND.ZLITO[1F], NEXT/DS.TVTPL.CHECK.OVFLW * MASK OF GARBAGE FROM SOURCING STEPC : 129852 DS.CVTPL.20: U 0D84, 0885,259E,4A40,0047,0008,2 , U 0D85, 0881,217E,2031,8047,0008,8 129855 ;ggggg :29858 © 29859 ;29860 (0 m e ca e e e m e a e: RCTEMPO] ZEXT(MLMDR]), * SIZECBYTE],WX.NE.O?, NEXT/DS.CVIPL,SKIP,ZEROS CHECK FOR ZERO ; * SKIP LEADING ZERO'S s 1m=mmmmmmmmms e m e coe oo ene ; D_(MCMDRJ.RR.P) ,AND ,RCTEMP6], NEXT/DS.CVTPL.END.CONVERT : ; i :29853 29854 : DECMAL .MIC U 0D48, 044F,217E,0031,8047,0009,9 U 0D49, 0DBO,0C10,06F0,1847,08D4,D 377+ P T PR U 0D98, 0180,7C10,0B60,2847,08D4,8 413*% PRTE PR TR TE DX TSI YN H (MT098.MCX 1M(01) String l Decima MICRO2 H 9 16:30:35 TPCLOKX Rev 13,00, Clock rate = 160ns 28-NOV-83 Page 29861 t&wit*wt*t*t*it*fittktttitt*tw*tti*k*******tt*ttitt*twit**ttttn*w*w**t* 29864 wt*ntt*tttutwuntt*nu*t***x*ntx*txn****finkt#*i&**fifi*i*tt***t********t** 29862 29863 * We've read a nonzero BYTE from the source. The first gverflow ; ctheck is made from the number of significant bytes/digits. 29865 58329 DS.CVIPL,CHECK.OVFLW: 29868 23393 29871 =00 29872 29873 29874 29875 29876 sgg;g ; CHECK IF LESS THAN 10 SIGNIFICANT ; DIGITS IN SOURCE. WB_MCTEMP?2-2L1T0C53, SIGND CMP DEF?,SIZE[LONG] ;00=~-e~mecccecccnnccccnmcaenen- : MTEMPO (MDR.RR.P) ,AND.RLTEMPS], ; SET FLAG1,NEXT/DS.CVTPL.CONVERT L e mm——— NB MLTEMPO)=-ZLITOC3], ;Check it greater than 2,200,000,000 WB<31-30>7,NEXT/DS.CVTPL.30 ;0 2120100700100:10s ) 29879 DS,.CVTPL.LOOP: 29880 e e ; U OD4A, 0(B7,217E,0031,8047,0009.9 U OD4B, 0881,217€,2031,8047.00D8,8 29881 MTEMPO_(MDR.RR.P) .AND.RLTEMP6], : 29883 29884 :11 ----------------------------- : 29882 29885 29886 29887 29888 =01 NEXT/DS,CVTPL. CONVERT (MCMDR].RR.P).AND.RLTEMP6], NEXT/DS CVTPL.END, CONVERT 29889 DS.CVTIPL.30: :29890 L U OD4D, 044F,217€,0031,8047,0009,9 U OD4F, 0c87,217€,0031,8047.0009.,9 129891 29892 29893 ;29894 sgggg : e o R SR . GET LEAST SIGNIFICANT DIGIT : eH MTEMPO_ (MDR.RR.P) .AND.RLTEMP6], SET FLAG1,NEXT/DS.CVTPL.CONVERT P MTEMPO_(MDR.RR.P) ,AND.RCTEMP6] : ; ggggg DS.CVTPL.CONVERT: U 0D99, 0886,2001,€030,0047,0009,A Sgggg 29901 U 0D9A, 0086,2501,0420,8047,0008,6 U 0D86, 0C47,2002,0031,8047,0009,9 29902 29903 29904 29905 =0 29906 sgggg 29909 29910 u 0087, 0506,AC11,0300,0080.,00D4,A 29911 29912 MOTEMP2]_(MB+RLTEMPOD) .SL.1 s : ADD NEXT DIGIT AND SAVE RESULT*2 talntauiebetudninde - MCTEMP2] _MB+(RLTEMP2],ASL.2), FLAGO? ; FINISH MULTIPLY BY 10 (2+(2X)+2X) ; RIGHT OR LEFT NIBBLE? JQm=encaccncncnnencncrnnsnnannn. ; MTEMFO_MDR.AND .R[TEMP GET RIGHT NIBBLE SET FLAGO,NEXT/DS.CVTPL "CONVERT * SET TOGET LEFT NEXT TIME (lemmemecsceemmen e e ——————— READ ,SIZELBYTE],CLEAR FLAGO, va_METEMPT0] MB+ZLITOC1], DBZ STEPC?,NEXT/DS.CVIPL.LOOP Read next BYTE & get left nibble, ‘FLAGO 0 to get right nibble next time, :branch on # of source BYTEs remaining 729 | DECMAL .M MICROZ 1M(01) Decimal String 28-NOV-83 R L R AL A AL R AR AL S AL A AL AR ,29913 R ;29915 129916 = JEREAERAERERARRIRRAIRIAR AR AR AN N RANRR AR AR 229914 Page 730! 16:30:3schPEL0KX Rev 13.00, Clock rate = 160ns ; End of CVIPL loop. Make final check for overflow & WRITE dest. i % AL LA kAR kR i { % ! :Sgg}g DS.CVTPL.BND.CONVERT: 0088, 0081,2002,4180,80(7,0414,0 0089, OCEE,(5BE,403D,8047,0009,8 0D9B, 0484,05B7,0874,9847,0005,1 0D51, 0084,0021,06E0,8847,0805,9 338« 0D53, 0884,0021,0030,8047,00D9,C , 0D9C, 0486,2003,06ED,8847,08D5,5 344+ 109919 ALUS_BCD SIGN.ZERO(MIMDRI), : LATCH SIGN OF SOURCE | :gggg% PUSH,NEXT/0S.WRT1 ; EVALUATE DESTINATION OPERAND. ! :29920 129923 :sggsg :29996 ! {NmeSmmemesmeeonecomsaneons e: RCTEMP2] _D+RB,CCOP1,SIZELLONG], : RESULT 1S POSITIVE H ;0] mmmmmm oo e; :583%5 WB<31+-3057 ,NEXT/DS,CVTPL.50 129933 T R : RESULT IS NEGATIVE | ; DO FINAL CHECK FOR OVERFLOW :Sgggg RLTEMP2]_D+RB 129936 129937 e et ; M{TEMP2)_-MB,CCOP1,SIZECLONG], . RESULT 1S NEGATIVE OF MAGNITUDE. :29940 TR ;Sgggg 129944 :29945 ; ADD LEAST SIGNJFICANT DIGIT TO RESULT WB<31-3057 : DO FINAL CHECK FOR OVERFLOW RK R AR AR AR AR AR kAR AR AR A AR RN R ARk R during initial AR R KRR RN Rk s src. read, R R AR A AR AR ;129949 WB MLTEMP2),WX.NE.O?, :29952 129953 129954 i ; data overflowed (and TEMP2 is infinite precision Low swgnif1cant ; digits) OR data is zero (src. ==0), check for overflow SRR :sggg? k KRRk K : Negative source overflow checks, =11 is present data is ok, check is present ; for overflow detected during initial source read. =01 129946 ;29947 =01 129948 =t ' : :29930 199929 =01 i ilmmmmmmmmsemmeecee—mmeeme—ma—a— ; MLFPDOFFSET]_RLZERO],SET FPD RLR21_0.BCD SIGN,ZERO? 129943 0D57, 0084,0587,05F4,C047,0004,0 : :Sggsg 129941 :29942 j 0D55, 0880,2592,4A70,0047,00D5,4 LOD INC BRA?, R v ettty H NERT/DS.CVTPL.NEG.OVR L R AR RN RR e RCR3] 0,FLAGY?, R AR . :Overflow if data isn't zero ! % B —em————; NEXT/DS.CVTPL.NO.OVFLW ; CHECK IF OVERFLOW DETECTED EARLIER : ! I ~7 CMTO98.M§§ : 19 = OO0o I Pelloliallolisl ol e} o] Page T R Y splits. Overlapping Enter at 1) DS.CVTP 50 on a W8<31- 30>° BUT from positive source overflow check. =01 is data is ok, check for previous overflow. =11 is data overflowed, 2) DS.CVTPL.NEG.OVR: on a WX.NE. 0’ BUT from negative source overflow check. =10 is data is ok (=0), check for previous ov. N :29963 9 *kt*tt*i****fi**uk*t*i*fifi**t*t***i**tt*t*ttt**t*tt*ttt**ttt*tt***t***** OO OO0 0O0 [o o Mo N, 1V, 1V, 10,1V, IR TR T TR P NAININD NI NININ) Y Decimal String P J 16:30:35 pCLOKX Rev 13,00, Clock rate = 160ns 28~Noy=83 1M(QD) AR KR AR L MICRO2 PR ’ (MT098 .M CX DECMAL .M 1C =11 is data overflowed. RN AR AR A A AR AR AR RN AR AR AR ARAR AR AR A kA Ak ke kb de ke 00 01 DS.CVTPL..50: ---———-_---_-- ---------------- RCR310.FLAGI?, NEXT/BS.CVTPL.ND.OVFLW 0059, 0084 ,0587,05F4,C047,00D4,0 ; CHECK ]F OVERFLOW DETECTED EARLIER : DS.CVTPL. NEG OVR: il%537% LFLAG1?, AR Tbe bRl ho. oveLu 0D5A, 0084 ,05B7,05F4,C047,0004,0 -0 obss., 0884,0587,0034,C047,00D4,2 =0+ -—-—--------------------—----' R[R3] 0,NEXT/DS.CVTPL .OVERFLOW DS.CVTPL. NO OVFLW: K 0040, v o o 0 - RTR13 MLTEMPS). B e e e e o O e e i RER1J “MLTEMPS],SET v op4e, 0084,5592,4034,48E7,0082,0 0820: DS.CVTPL.CLEAR.RO: ttt*t**fitFORCE : NO OVERFLOW H 8 Ty e 0 R sA e ADDRESS**kkkkhnw; : NEXT/DS. CVTPL.WRT.DST OFFO: 0884,0587,0034,0047,0005,0 =(Qxx ;xwwwaaxsxFORCE e O - ; OVERFLOW OCCURED RCROJ 0,SET MM.NOINT, 0820, 0064,0587,0034,0047,0005,0 JOvertflow - - NEXT/DS.CVTPL, CLEAR RO 0484,5592,40364,4047,0082,0 DS.CVTPL. OVERFLOU OFFQ, :: CHECK IF OVERFLOW DETECTED EARLIER ; ADDRESS®*xwaswxs; RIR0J_O ; DS.CVIPL.gRT.DST: 0D50, 00E4,2592,402C,45DA,0000,2 '3 0885,A592,4034,8047,0134,7 }g 0D54, 3 i3 1347, 0885,8592,4034,0047,0134,8 i3 i3 WR1T: NOTREG,SIZECLONG], ; NEXT/GL.ROP.IRD1 ; RCDST.R] MLTEMP2],CLEARFPD, ---------------------------- : THE WRITE DID NOT COMPLETE R[REJ _MLPC) : SAVE PC +REGION/DECMAL .R1L ,DECMAL. RIH/DECMAL R2L DECMAL.R2H " e RCROI_MLVA] e e e i SAVE DESTINATION ADDRESS 731; CM1098.MCX DECMAL.MIC MICROZ 1M(OD) becimal String . 1348, 0484,2592,4034,0047,00FE,2 28-NOV-83 ;30010 30011 ;ggg}% 130014 ;30015 .10C "' 130016 16:30:35 K 9 (LOKX Rev 13.00, Clock rate = 160ns ¢ CVTPL Page jmmmmmssemescscecosssaotaaomoos= : RLR3]_MLTEMP2], NEXT/TE.PACK.DONE . Decimal String : SAVE RESULT : : FPD unpack*’ ;ggg}g DS.CVTPL.IRD1: 1349, 0484,0587,0134,0047,003F,9 2;88}3 RCR0I_0,IRD1 130021 .REGION/IRD1.RIL,IRD1.R1H ; 130022 =000 130023 DS.CVIPL.UNPACK: 0358, 0C80,058E,4034,8487,0134,A : 30024 ;58852 _ :000=-osmmenmemcosoiimonconn ne==; PC_RLR2] * RESTORE SAVED PC 134A, 0886,2036,4030,0087,0134,8 338855 "REGION/DECMAL .R1L , DECMAL .R1H/DECMAL .R2L ,DE CMAL .R2H 130029 MCTEMP2]_PSL ‘Write back CC to reassert arithmetic 1348, 0080,2592,4030,00A7,0134,C 30032 130033 jemmmmeeccacen—e——— en e ———— H CC_MLTEMP2) 134C, 0886,C587,0030,0047,0134,D Eggggg MCFPDOFFSEYI_O 134D, 0880 05BE,4034,04A7,0134,E 134E, 0464,0587,0034,8047,0107,2 ) 1072, 04EC,05BE,4024,C5D8,0134,F 230030 130031 30033 :30038 ;gggzg :30041 ;gggzg 130044 =0%% 130045 :ggggg 130048 1076, 0085,A592,4034,8047,00FF,7 30049 ;gggg? strap if we set V jmmmemmsmmmememeeeeeea- mmme—e— : VA_RIRO] 130054 : RESTORE DESTINATION ADDRESS jommmmmemmmmm—mmmese——eeeeeeoe i RCR2)_0,SET MM.NOINT ; Q*Ammmsmcsememcscmmeocsescsene- : WRITE RCR31,SIZECLONGT, CLEAR FPD,NEXT/DS.CVTPL.CLR.R3 : {I¥ke mmm e emm—— e e mm——m———— ; THE WRITE DID NOT COMPLETE RCR21_MCPC], NEXT/TE.PACK.DONE }ggggg DS.CVTPL.CLR.R3: 134F, 0084,0587,0034,0047,0134,9 : MIGHT FAULT AGAIN, BE PREPARED RCR31_0,NEXT/DS.CVTPL, IRDY : SAVE PC ; ; l 732, : CMT098.MCX DECMAL MIC MICROZ 1M(01 ) ) Decimal String L LT0C "' 9 16:30:35CVTP$LOKX Rev 13.00, Clock rate = 160ns 28=-NOV=-83 I ; Page : CvIPT" Decimal String .*t*****t*****tt*itt**t****t***tt***t***t*ifi*****fl*t*ittii*tt*ttit***tt*t***** srclen.rw, srcaddr.ab, tbladdr.ab, dstlen.rw, dstaddr.ab H CVTPT E Input : Resources H H : : MDR Source length TEMP1 Zext(source Length) ; Output ; RO lero R1 R2 R3 H E Source address Table address lero extended destination length Address of last destination byte FPDOFFSET H ; TEMP?2 TEMP3 TEMP4 TEMP? Subroutines Set to OA . Source address lero Destination address DS.CVTPN DS.TABLE.ADDR DS.CVTXX,SETCC ftt**&*t*tt*ttwtwttttutwwwtxrtww*tttfitwt*w**k*kt**w****************tiw**&****i ,IRDX.R2H +REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L DS.CVIPT: U 038C, 0485,259E,4190,4047,0012,0 000 RCTEMP1]_ZEXT(MLMDRY), leEEWORDJ. ; SAVE LOD INC BRA?, NEXT/0S,ADD ZEXT(SOURCE LENGTH) * EVALUATE SOURCE ADDRESS OPERAND DS.CVIPT,020 R{TEMP2] MIMDR], U 0360, 0885,2592,41B0,8047,0412,0 0361, 0485,2592,4180,0047,0410,0 * SAVE SOURCE ADDRESS LOD INC BRA?, : R[TEMPB] H[MDRE * SAVE TABLE ADDRESS PUSH, NEXT/0$.RED . EVALUATE DESTINATION LENGTH OPERAND PUSH, NEXT/05.ADD LOD INC BRA?, ; EVALUATE TABLE ADDRESS : EE&ET5219555T(M[MDRJ)LSIZECWORD], ; SAVE ZEXT(DESTINATION LENGTH) i) 0362, 0r85,259E,4141,0047,0412,0 PUSH,NEXT/0S,ADD 3 EVALUATE DESTINATION ADDRESS OPERAND 733 - CMTO98.M§§ DECMAL .M MICRO2 1M(O1) Decimal String M9 16:30:3SCVTP$L0KX Rev 13.00, Clock rate = 160ns 28-NOV-83 :30102 DS.CVIPT,RESTART: : 30103 0363 0SEE,CC37,0030,5047,0528,0 L :30104 et ; 734. | | et Lt L L L L L L ; MCFPDOFFSETI_ZLITOLOAD,SET FPD, ; :%8}82 PUSH,NEXT/DSTCVIPN 130197 0364, 0484,0587,0034,8047,0537,E R Page f ; CONVERT PACKED TO NUMERIC ! :100=m==mmemsmmmammsem———————— ; 130108 RCR2J O, PUSH,REXT/DS, TABLE ,ADDR ;%8}?3 . : , ; : LOAD TABLE ADDRESS OF LAST BYTE ] 130111 DS.CVIPT.SETCC: 0365, 0484,05B7,05F4,8047,010A,8 ;30112 +30113 FLAG1? ,NEXT/DS.CVTPT, 20 ‘%8}}% 130116 0366, 0C80,7002,45CD,84B0,010A.,0 | ;10 e e mcme e e e c e m——— RLR21_0, ; i ; IF OVERFLOW, CLEAR PSL<I> ;110=mmm e ————wmwwwwnee=; |F OVERFLOW, CLEAR PSL<ZN 130117 READ,SIZECBYTE], :gg%}g VA_METEMP?],FLAGY? ; GET BYTE FROM TABLE : LOAD ADDRESS OF LAST DESTINATION BYTE i 30120 ;§8%§5 .8EGION/DECMAL.R1L,DECMAL.R1H/DECMAL.R2L,DECMAL.REH M =% :30123 DS.CVTPT.10: 130124 10A0, 0081,2592,4B40,1DD3,011E,8 1042, 0011,2592,4B40,1pD8,011E,8 B : NO OVERFLOW BCD SIGN.ZERO?, ; ;30125 WRITE M[MDR],SIZELBYTE]D, :%8}2g $3012 NEXT/DS.CVTXX.SETCC :30126 130129 ;30130 30131 :%8}§§ | : WRITE LAST BYTE : P L D : OVERFLOW, CLEAR PSL<Z> WRITE M[MDR],SIZECBYTE], ; WRITE LAST BYTE BCD SIGN.ZERO?, : [ ;30135 DS.CVIPT,20: 10A8, 0480,0036,4R70,1847,011E,8 :ggggg C $30140 10AA, 06410,0036,4B70,1847,011E,8 130141 130142 ! CLEAR FLAG2,NEXT/DS.CVTXX,SETCC ; 130134 =0+ ;30136 130137 : ;0%e cmmmrcmmm e n e e ; NO OVERFLOW BCD SIGN.ZERO?, : NEXT/DS.CVTXX.SETCC R : R el ; OVERFLOW, CLEAR PSL<Z> BC(D SIGN.ZERD?, : CLEAR FLAG2,NEXT/DS.CVTXX.SETCC ; \ ; IM(Q1) 01 01 0153 0154 0155 0 0157 8} 0 0 Decimal String e Gi Ghur Giiv Ghir Gl ur Gl Sl G GG Qs GunrPur P i : CVITR" ;********'(ttfli***ifitttkfiitttt*tfiittti*t*tttt*tt**t*****t**fit***t**it**i’****i*i srclen.rw, srcaddr.ab, tbladdr.ab, dstlen.rw, dstaddr.ab ; CVITP ; Input : Resources : "~ MDR H ; TEMPO ; : ; length) TEMP4 lero extended destination length TEMP7 Address o2f last destination byte FLAGO Set to indicate 0 length destination ¢ TEMP6 MDR : Converted sign from table Zext (source ; ; Source length TEMP1 TEMP2 TEMP3 Cutput : Subroutines bs. CVTTP: — Page : CVTTP H H ; : S DOOOOOOOOOOVOOCOIIOOCOOTOOC U 0369, 0485,2592,4180,0047,0410,0 KA LA AN U LA A LN LA A U A AL U G U 0368, 0885,2592,4180,8047,0412,0 e e P P R M A U nd N U AN A N o R 0 FSNPPI PR 01 N U R T T T R T T R R R 01 .T0C ' 9 16:30:35 _ (LOKX Rev 13.00, Clock rate = 160ns NOCC OO T N N N O AN U (AN U AT A 8} UL WU D B D S B O D R AN N 8} vl 01 OO OO N 8} jao\ll:*wf\)floOCD\JO*\J\J\WI\JdOO(D‘\IO-\JTJ\WT\)—!O\OCE\'QWJ‘LNN—'OOCD\IO‘WJ\W Decimal String U 038D, 0485,259,4190,4047,0012,0 N 28-NOV~83 NN NN NN DECMAL .MIC MICRO2 AL H CMT098.MCX BICOCOMDOICOCOD ; Source address Table address L Source byte . Save byte from table RO lero R3 Destination address R1 R . L Source address lero, . DS.CVINP DS.TABLE.ADDR DS.CVIXX.SETCC.0Q7 DS.CVIXX.SETCC.06 IRDX . R2H LREGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, figgEfiéi5;%%%3?&Efi5§53j§12§EGBEBi; ; SAVE ZEXT(SOURCE LENGTH) cop NEXT/BS.ADD : EVALUATE SOURCE ADDRESS OPERAND DSICVIT02 e ; RLTENR2] HEHOR | PUSH,NEXT/0S £ ADD : EVALUATE TABLE ADDRESS ;001 : SAVE SOURCE ADDRESS RLTEMP3] M[MDR], s PUSH,NEXT/0S.RED ; EVALUATE DESTINATION LENGTH OPERAD LOD INC BRA?, SAVE TABLE ADDRESS 735 [ ] ; : e e (MTO98,.MCX DELMAL ,MIC e MICROZ 1M(Q1) Decimal String U 036A, 0BBS.259E,4A51,0047,0037,0 U 0370, 0446,4081,003D,8047,0037,1 ! 28-NOV~83 ;30188 ;§8189 , U 0372, ODEE,CC37,0030,5047,9535,F M[TEMPAJ “MB+1,SET FLAGO : PRETEND DESTINATION LENGTH IS ONE ;gg}gg 372: ;001s-==scmsmammnas S— -; LOD INC BRAZ, | ; PUSH,NEXT/0S.ADD ;ggggg i PUSH,NEXT/DSS CVTNP 130205 :28589 - ;011=mcmcemesemecmeaee——n et RETEMPGI ZEXT(XB) PC_PC+1, M[TEMP6] REZERDD, CLEAR FLAGO, NEXT/DS . TVITR.PLUS :ggs;g VA_METEMP?] ZERO LENGTH SOURCE . CLEAR ZERO LENGTH DESTINATION FLAG * GET BYTE FROM TABLE RCTEMP6] ZEXT(MLMDRI) * EXTRACT SIGN AND LAST DIGIT ;§855§ ALUS_BCD S{GN.ZERO : :30925 ;ggssg 13028 =01 y 1188, 0C80,0036,4030,0047,00FF,8 :302;9 ;%853? :30232 ;ggggz 0 S1Z2ELBYTE], : J 125D, 0880,0036,4430,0047,0125,F 00 jeemmmemcecceecesceees. ammmmm——— w8 ;LertorJ-Mtremch w82 * CHECK IF LASY DIGIT IS LEGAL BCD : bt —m—— BCD CHECK MCTEMP6)?, NEXT/DS.CVTTP.LEGAL.SIGN * CHECK IF LEGAL SIGN NIBBLE, : $11emeseocenacsacnn semmamma—a- - REXT/1E.OPER. FAULT ¢ LAST DIGIT IS NOT LEGAL WCD DIGIT NEXT/1E.OPER. FAULT 130239 J D FLAGO? ~ f ;ggsgg :30240 ! SAVE SIGN AND ZERD FOR BRANCHING Eggsgg DS CVITP. LEGAL. SIGN: U 125¢, 0C80,0036,4030,0047,00FF,8 | ; : LOAD ADDRESS OF LAST DESTINATION BYTE 130220 :30221 i : AND WRITE +0 DESTINATION ;10)=memsmmcemcmemcscsasemsass - READ SI1ZELBYTED, 1 LOAD TABLE ADDRESS OF LAST BYTE :100=m==n== semmseemeeamoo———ans ; ;ggsgg , { GET LAST SOURCE BYTE PUSH,NEXT/DS. TABLE. ADDR 130210 130214 t CONVERT NUMERIC TO PACKED 130508 DS.CVTTP. ZERO. SRC: 130004 J 1189, 0880,67FD,498D,8047,0925,C 387+ j | 130017 .REGION/DECMAL .R1L,DECMAL .R1H/DECMAL .R2L, DECMAL .R2H U 1351, 0180,6C13,06F4,F847,0918,9 377+ ! * EVALUATE DESTINATION ADDRESS OPERAND :%85%3 DS.CVITP.SETCC: U 1350, 0(85,259F,4001,80C7,0135,1 ; MCFPDOFFSETI_ZLITOLOAL.SET FPD, ; :30201 130213 375t U 0375, 0780,7002,4000,8480,0135.0 ; $30199 DS,CVTTP.RESTART: :30200 010mmmmmmmmm———— e mmm oo e ; 130209 U 0374, 0406,658E,403D,8047,010€,1 } ;gg}gz 130004 373t U 0373, 0C85,759E,4001,A047,0537,E ;000====w-mwmwms=m=em—eaueamaae- ; ¢ CHECK IF ZERO LENGTH DESTINATION :30196 3 736| 5 | ; WX.NE. 02 130192 3701 Page v O ey A rsnpaJ _ZEXT(MCMDR]),S1ZELWORDI, i SAVE 2EXT(DESTINATION LENGTH) :30}9? 130195 371: U 0371, 0C80,0036,4180,0047,9412,0 B 10 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns ¢ CVTTP e : NOT LEGAL BCD SIGN NIBBLE —— ; : CHECK IF DESTINATION LENGTH IS 2ERO T— : ¢ 10 CLOKX Rev 13.00, Clock rate = 160ns Page CVTTP iQmemmeeccecmammcn e e nn e ; (C_MLTEMP6] MB.AND.ZLITOLOFQ], €C.0 AS HARMLESS SIDE EFFECT OF BRANCH . SAVE LAST DIGIT FOR LATER USE. 8(D SIGN.ZERO(DEF)?,SIZECLONG], *: BRANCH OM SIGN AND LAST DIGIT=07 S Ottt ; WX.EQ.0? : - o e s o S O e G B ; CH ; (L B G ey e e W § fADR_MLTEMPG.ANDNOT. ZL ITOLOF0, : SETTMFLAG1.NEXT/DS.CVITP.DLEN.O & i L i We_MLMDRI.AND.ZLITOLOFO], CLEAR FLAGO, —mTM NEXT/DS.CVTITP,CHK.SIGN < NS W) = OO/ NOWN 0 16:30:35 -l o = [elolelelelelelelelelelol o Lol o el ALY LN N SN TN LU LS LN LN LY LN N LN 18 [ I I I I TV LV LW o R P P R ol ol o NN R TR TR TR R PR U 1261, 0586,6012,0867,80A7,010¢,0 L P S U 1260, 0948,6(13,8037,8467,006F,0 e N J 125F, 0101,2012,0A37,8047,0126,0 P N 5(12,0867,80A7,010E,0 N NN A P Decimal String N LA AN AN U AN N U 125E, 28~NOV=83 1M(01) ) mm MICRO2 AL (M7098,MCX DE CMAL ,MI(C N : : LAST SOURCE DIGIT IS ZERO AG FOR SETTING CONDITION CODES DIGIT FOR WRITIN BYTE LENGTH PACKED DES !NA 10N OF e intntnid ) AS HARMLESS SIDE EFFECT OF BRANCH teiaiedie b itataindmoce P Rl trtniariai €C_MCTEMP6) MB.AND.ZLITOLOFOJ, - SAVE LAST DIGIT FOR LATER USE. 8¢B SIGN.ZERO(DEF)?,SI1ZELLONGY ; BRAN(CH ON SIGN AND LAST DIGIT=07? 737 e n e 1 i 10£3, 0UD58,0037,04B0,6067.010E,2 1086, 0D18,0037,05F0,6(67,0118,D 118D, 0118.6012,4000,65p8,011E,9 118F, 0881,2592,4000,05D8,011E,9 0BFO, 0986,((37,0031,7047,0135,0 = OO o NN O LN £ --------------------- - : DS.CVITP,PLUS: ;00 Page NON ZERO POSITIVE RESULT (LEAR PSL<Z> POSITIVE RESULT (LAST DIGIT IS Q) WRITE LAST DIGIT AND PREFERRED '+'. WRITE MCTEMP6].0R.ZLITOLOC], SIZECBYTE],CLEAR FLAG3, NEXT/DS.CVTXX.SETCC.06 CLEAR PSL<N> DS.CVTTP,glNUS . WRITE MLTEMP6).OR.ZLITOLOD], SIZECBYTE],CLEAR FLAG2, NEXT/DS.CVTXX.SETCC.08 NON ZERO NEGATIVE RESULT WRITE LAST DIGIT AND PREFERRED CLEAR PSL<Z> '~', £ N = OO 00 D 10 16:30:35chT£LOKX Rev 13.00, Clock rate = 160ns =000 DS.CVTTP.CHK,SIGN: ;00 CLEAR FLAG2 1011 mmmmm oo s NEGATIVE RESULT me SET PSL<N> MDR_ZLITOLODI,SET FLAG3, O 0510,6£12,4000,6008,0109,8 O N I NI = O O 00 IO LN D AR = O ND Q0 10E1, 0118,6012,4000,65D8,011E.9 L N LN L LN LN LN N S N S S LN LS LS 1t S 1) 8] ORI NINDNI NPT NI NNINI NN PN P OO NI OO OO0 0 OD00CO0000 000000 COC0 N NN N NNNNN ~NOOOT OOV 1 1080, 0€10,0036,4030,0047,010F 10E2, 28-NOV~83 Decimal String TR TR T P PR PR TR TR PR PR IR LR PR PR PR T LY DECMAL . MIC 1M(Q1) AT AU NN N LA AR U L S N U AT AN N A (N G U AN A U O N N A A U AN NN L NN AN OOOOCOOOOOCOODLOOOOO0O0O OOOOOOOVDOCOOODOOCO ! MICROZ2 T A I (MTO98,.MCX FLAG2? ,NEXT/DS.CVTTP, MINUS T L F [ —— —— =0 RESULT IF OVERFLOW WRITE -0. IF NOT OVERFLOW WRITE +0. MDR_ZLITOCOD],CLEAR FLAG3, FLAG1? 0 Y S ;01 L . WRITE MCTEMP6],0R.ZLITOLOCT, SIZELBYTEJ,CLEAR FLAG3, NEXT/DS.CYTXX.SETCC.06 (1 lmmmmmmmmmmmmmcmmae e e ———— WRITE MCMDRI,SIZECBYTED, NEXT/DS.CVTXX.SETCC.06 0BFO: sxkxnxsxwxFORCE DS.CVTTP.DLEN.O: MCFPDOFFSETI 2L1 NEXT/DS.CVTTP, SE (LAST DIGIT IS O} CHECK FOR -0 WRITE +0 RESULT CLEAR PSL<N> WRITE =0 RESULT ADDRESS*awwwawnw, —«— P s PACK ROUTINE INATION FOR ZERO 738 I ; CMTO98.MCX DECMAL .MIC MICRO2 1M(01) Pecimal String :30297 LTOC ' ] 16:30:35 28=NOV-83 130298 + E 10 CLOKX Rev 13,00, Clock rate = 160ns CVTPS Page : Cvrps'! Decimal String D —d gy md e L Lo Lo Lo oo ] AWNI = OO0 NN ANV — O A ; CVTPS : Input MRR Source length : Resources TEMP1 Zext(source length) ; : : ; : : ; OQutput FPDOFFSET Set to QA RO lero R2 R3 Zero Destination address Source address R1 DS.CVIPN Subroutines DS.CVTXX,SETCC 'kkkfi*k*ti*&**ifit*Q*fi****t****t*t*i*t*****t***t************t*****t*k*******t** REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H DS.CVTPS: RETEMP1]_ZEXT(MIMDRD), SIZE[WORDJ. ; SAVE ) P LOD INC BRA?, O W PoroRN) D 00 Temporary TEMP? ; : : Source address Destination address Zero extended destination length Source bytes TEMP2 TEMP3 TEMP4 TEMP6 , NEXT/0S.ADD ZEXT(SOURCE LENGTH) E EVALUATE SOURCE ADDRESS OPERAND =00 DS.CVTPS, 02 = O RN R srclen.rw, srcaddr.ab, dstlen.rw, dstaddr.ab : S PO R ) e R e — OO 00O OQOOOOOOOOOCOOVOVOOOTO OOODOOODODOOODOOOOODOOTOOOO LN A NN LN NN N AN N NN LA LA LA LA A AN U U U AN A LA N NN AN N NN A LA L AT L AU A N A N U R[TEMPZJ MLMDR], ¢ SAVE SOURCE ADDRESS PUSH,NEXT/0S .RED s : EVALUATE DESTINATION LENGTH OPERAND B N NN AN LOD INC BRA?, O PUSH,NEXT/0S . ADD DN D B DN NN AIND = OO 00 P LY L P B e R[TEMP&] ZEXT(MCMDRD) ,SIZECWORD], ; SAVE ZEXT(DESTINATION LENGTH) I U B U 1352, 0€80,3711,0000,0467,010E,8 e S S e U 0246, 0485,2592,4030,0047,0135,2 e Se e e U 02A5, 0C85,259E,4191,0047,0412,0 e SaBmatetotonteo U 0244, 0085,2592,4180,8047,0410,0 e tete ha®e U 03BE, 0485,259€,4190,4047,0012,0 o to So ®e uBo®eBeBePaBetoBeBe Dot BoBo®eBo e To®eboeven, VMNUflNUflNUNNUflNUMNUflNUflNUflNUflNUflNUflNUflNUflNUHNUHNUHNU“NUHNUflfluflfiuflflbflflu‘ 130299 .***fi******tt***i*i****ittttt**iit**t**iitt***ttttt*ht*t*ttttt***ti!tt*t****t* LOD INC BRA?, ; EVALUATE DESTINATION ADDRESS OPERAND DS.CVTPS. RESTART _ [TEMP3] M[MDRJ : SAVE DESTINATION ADDRESS REGION/DECMAL.R1L,DECMAL.RTH/DECMAL .R2L ,DECMAL .R2H & - T o e B B 0 Gy A MDR_MLTEMP3]+CONX (1) S G i 42 ¥ i SAVE ADDRESS OF FIRST DESTINATION DIGI 739: ~ews CMT098.MCX DECMAL .MIC MICRO2 1M(01) 28-NOV~83 Decimal String 16:30:35 F 10 CLOKX Rev 13.00, Clock rate = 160ns t CVIPS ;30347 =000 130348 =011 :30349 DS.CVTPS.CONVERT: 130350 10EB, OSEE,(C37,0030,5047,0528,0 101 130351 :ggggg PUSH,NEXT/DSTCVTPN 130354 10EC, 0880,66F7,0DC0,05D8,010E,D 10ED, 0880,073C,0004,C4A7,0135,3 10EF, 0810,073C,0004,C4A7,0135,3 mmememmmmmmemmeeme—————— MLFPDOFFSETI_ZLITOCOA],SET FPD, : * CONVERT PACKED TO NUMERIC PL : ; WRITE LAST DIGIT * CHECK LAST DIGIT FOR ZERO 130355 ;ggggg WRITE CVTPN(MLTEMPGY), SIZECBYTE],$<3-0>.NE.0? +30358 130359 :10]~=eemmmmmmmcmmmme—caeee————— : VA R[RSJ CONX(1), * RESTORE DESTINATION ADDRESS 130362 =111 130363 P B D VA ansn CONX(1), :gg%gS NEXT/DS.CVTPS.NRT.SIGN ;gggg? NEXT/DS.CVTPS. NRT SIGN 130364 , o} CLEAR FLAG2, H et : ' : H 130367 DS.CVTPS.WRT.SIGN: ;30368 1353, 0880,6592,4870,1847,011¢,1 230369 2 ;ggg;g BCD SIGN.ZERO? $30372 =01 11¢1, 0580,0¢37,05C1,5DD8,011C,4 130373 :gg%;g :30378 11¢3, 0D58,0C37,0541,6DD8,011C,4 emeemmeeccccseosees e el H UB MLTEMPG], : CHECK SIGN OF SOURCE : ;0] mmmmmmmmcm—esem e e ————————— : WRITE ZL1TOC281,S1ZECBYTE], FLAG1? ,NEXT/DS. CVTPS SETCC * STORE LEADING '+' ; IS OVERFLOW FLAG SET? Bt bttt eytnpet ; 130377 ;30378 WRITE ZLITOL2D1,SIZELBYTE], SET FLAGS3, * STORE LEADING '-' H :gggg? 00 NEXT/DS.CVTPS.SETCC ? CHECK FOR OVERFLOW AND =0 130379 FLAGI (FLAGZ.XOR.FLAGS)?. H 130382 DS.CVIPS.SETCC: 11C4, 0484,0587,0034,8047,0135,4 130383 100==mmmemmmmmm— e ammm————————— ; NO OVERFLOW AND DESTINATION NE 0 ;gg;gg RCR21_0,NEXT/DS.CVIPS.FIX.R3 130386 11¢5, 0580,0¢37,0001,5008,011C,4 Y R : NO OVERFLOW AND DESTINATION = 0 130387 WRITE 7L1TOC28],S1ZECBYTED, ;ggggg NEXT/DS.CVTPS.SETCC 130390 11€6, 0414,0587,0034,8047,0135,4 11¢7, 0414,0587,0034,8047,0135,4 110mmmeemm :gggg% (30395 130395 ’%8%39 NEXT/DS.CVIPS.FIX.RS 000 : e cmacemm——————————— ; OVERFLOW AND DESTINATION NE 0 RCR2] _0.CLEAR FLAG2 130391 * STORE LEADING '+' * CLEAR PSL<2> : ;1lemememeseccssscsccceacacacaae : OVERFLOW AND DESTINATION = 0 CLEAR PSL<Z> R[RZJ 0,CLEAR FLAG? NEXT/BS.CVTPS.FIX.RS : 30398 DS.CVTPS.FIX.R3: 130399 1354, 0484,067D,0874,0847,011F,8 130400 130401 000 emmcemeccscceescecneeeccsesee—— : RCR3]_RB-1,BCD SIGN.ZERO?, NEXT7DS. CVTXX.SETCC : : Page 740 : : CMT098.mE§ DECMAL., MICRO2 1M(01? Decimal String 6 10 28-NOV-83 16:30:SSCVTS£LOKX Rev 13.00, Clock rate = 160ns ;%828% .70C " 741 Page o : CVTSP" Decimal String ;30404 ;*ttt**tt*i*tttt*tttkt*ttt*ttt*ttt**ti*t*t***i*****tt*************i**********k srclen.rw, srcaddr.ab, dstlen.rw, dstaddr.ab ;%8282 : (VTSP 3%828; : Input MDR 130409 : Resources TEMP1 Source length lext(source length) TEMP4 lero extended destination length 230410 230411 230412 ; :30413 ; 30414 :30415 TEMPS TEMP7 MTEMPS FPDOFFSET :30416 130417 ; :30418 ; :30419 ; Cutput :%825% ; Source address Save sign . Source byte | Save destination address Constant FOFQ Set to DA RO R1 lero Source address R3 Destination address R2 130420 ; 230421 TEMP2 TEMP3 lero ;******it*************k**********t*****************i******************\t******* ;30424 LREGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H ;%8252 DS.CVTSP: 130427 U 03BF, 0485,259E,4190,4047,0012,0 130428 ;%82%3 2A8 RCTEMP1]_ZEXT(MCMDRI),SIZELWORD], ; SAVE LOD INC BRA?, NEXT/0S.ADD ZEXT(SOURCE LENGTH) H ; EVALUATE SOURCE ADDRESS OPERAND 130431 DS.CVTSP.02: U 02A8, 0085,2592,4180,8047,0410,0 30432 : 30433 130434 :%82%2 130437 2A9: U 02A9, 0C85,259E,4191,0047,0412,0 U 02AA, 0885,2592,4031,0047,0135,5 ;30438 230439 ;ggzz? 130442 2AA: :%8222 $00%wwxxxxFORCE ADDRESS*xxkwaxww, RCTEMP2] MLMDR], : SAVE SOURCE ADDRESS LOD INC BRA?, H PUSH,NEXT/0S.RED : EVALUATE DESTINATION LENGTH OPERAND ;Qlmmmm=e=mcememcmemeccema—eeeee ; RCTEMP4] ZEXT(MCMDR]) ,SIZECWORD], : SAVE ZEXT(DESTINATION LENGTH) LOD INC BRA?, H PUSH,NEXT/0S.ADD ; EVALUATE DESTINATION ADDRESS OPERAND ;10m=momemmmcmmcene. ————————— ; RCTEMP7]_M(MDR] s SAVE DESTINATION ADDRESS E%gzzg +REGION/DECMAL .R1L ,DECMAL . RTH/DECMAL .R2L ,DECMAL ,R2H U 1355, 0(80,2002,403D,84A7,0135,6 ;ggzzg 130449 U 1356, 0986,2¢11,0000,0850,0135,7 u 1357, 0881,27c2,40FD,8047,011¢C,8 230450 30451 130453 130454 VA_M[TEMP?] E LOAD SOURCE ADDRESS jmesessecsemmsssenescesessesees- ; READ,SIZECBYTE], MCTEMP2I _MB+ZL1T0C1) : READ SOURCE SIGN BYTE : SAVE FIRST SOURCE DIGIT ADDRESS [mmmmmmmcemm——em—ee—e————— m———— ASCI1 SIGN(MLMDRI)? ; BRANCH AND SAVE SIGN . (=] i o NNNONOCONONONONONONON oMLY B = OO CO NN DMANND = OO D O O T T - R R 1358, 0480,7002,403D,8467,011(,C : H 10 CLOKX Rev 13.00, Clock rate = 160ns H ; SAVE BCD - ;0 MCTEMP33_ZLITOCQD], H L : iteietaetuientrnotstnaininide Seeemmme- : METEMP3]_2L1TOLOCT, ; SAVE BCD + NEXT/DS.TVISP.20 =1 Page CVTSP NEXT/DS.TVISP.20 P ; L e r : CLEAR FPD,NEXT/IE.OPER.FAULT DS.CVTSP.20: . - . MDR_MCTEMP7] SRR - AR AR - RN AR A AR Ak ; CVINP returns 2 ways: : =01 is normal return, - : RESTORE DESTINATION ADDRESS ko Rk kA Ak Ak kA kA ke ko bk ke kk : =10 is either Dest, length=0, Source length=0, or dest. and source O : lengths=0, [If <V>image is set, (last) dest. BYTE _sign of source, It <v>image is clear, (last) dest. BYTE_LOC]. ktt**titttt*i*********t**t***t******’l****t***t********************i*** =00 DS, CVTSP RESTART: M[FPDOFFSETJ LITOCOA],SET FPD, Load FPDOFFSET, convert Sep. to Pack., PUSH,NEXT/DSTCVTNP ‘RETURN +1 or +2 11¢D, 0485,759€,4001,A047,0135,A [TEMP6] JEXT(XB) PC_PC+1, NEXT/DS TVISP.40 iNormal return, get last byte 11CE, $10mmmmmmmmeccnmcccnnns e n ey;Dest. length = 0, Point GPR1 R[R1]_RB-1 ;source base add. 11¢C, ODEE,CC37,0030,5047,0535,F 0884,0£7D,0034,4047,0135,9 to n § 1359, 0586,(037,05F0,0047,0108,8 o v ot o o g e i B e e e B MCFPDOFFSET] 2L1TOL18], -l U o LD .. N 0CE0,0036,4030,0047,00FF,8 S v 11cB, [ lololelalelelelelelelelle Lo lelo Lol 119, 0186,3037,0030,6047,0135.8 A U 16:30:35 28=-NOV-83 NN N N 11C8, 0586,3€37,0030,6847,0135,8 .. MICRO2 1M01) Decimal String A CMTO9B.MCX DECMAL. MIC e TE TR PR P et n s (N N NN N N AT N (O e NLA A L - P e e O FLAG1?,NEXT/DS.CVTSP.0.DEST e S : LOAD OFFSET OF SPECIAL PACK ROUTINE : DID WE HAVE 0Qv? 742! .o CMTO98 . MCX DECMAL .MIC MICRO2 1M(01) Decimal String 28-NOV-83 16:30:35 110 Page _ CLOKX Rev 13.00, Clock rate = 160ns : (VTSP ;28232 DS.CVTSP.40: 135A, 0480,8002,2031,8047,0135,8 1358, 0580,0C33,4A31,8047,0126,2 1262, 0C80,0036,4030,0047,00FF,8 3%8232 D_MLTEMP8].AND.RLTEMP6] :30497 130498 130499 Jmem m m e —————— WB_D.XOR.ZLITOL301, WXTEQ.0? :30501 =0 :ggggg Y T LT Inst. will pack up to service this NEXT/IE.OPER.FAULT :30500 :30504 1263, 0086,67FD,498D,8047,0926,4 387+ § == MLTEMP6] CVTNP(MB), BCD CHECR? :30505 ;ggggg :30508 =0 1264, 0880,6002,4030,0467,0135,C 1265, 0080,0036,4030,0047,00FF,8 ;ggg}z : MAKE SURE RESULT DIGIT GIT IS 0-9 ;0=m==emeseccsecessessssesceeees; * OR TOGETHER LAST DIGIT AND SIGN HDR_MCTEMP61. R, RLTEMP31, NEXT/DS.CVTSP.SETCC :30509 ;ggg}? 130512 ; CONVERT THE LAST 0 jleememecmcecccmcccanee R NEXT/IE OPER.FAULT ;Inst. will pack up to service this $30515 ‘%8?}9 DS,.LVTSP.SETCC: 135¢, 0D86,CC37,0030,0047,0135,D 135D, 0884,0E7D,0034,4047,0135,0 Eggg}g $30520 ;gggs; $30523 ;30524 $30525 MCFPDOFFSET]_2L1TOC18] T RLR11_RB~1,NEXT/DS.CVTTP.SETCC *l’t*ti*tit**fi*tt*fik*k*fik*tt*tt*k*****t**t**ttk*t***********t**it****** : Zero length destination, here after returning from DS.CVINP on a ;30526 ; FLAG1? BUT (=0v is no 0OV, =1~ is OV). n*ktuttRl’*ttttfi*it*twtt**t*t**ttt***********t******k*k***fi*****it****i $30527 130528 =0« 130529 DS, CVTSP 0 DEST: 230530 1088, 0980,037,0000,6508,011E,9 :30531 :ggggg 130534 1084, 0880,3592,4000,0508,011€,9 :30535 130536 0r--mecssccescncmcmmnossscaenen ORITE ZL110C0C],S1ZELBYIED, NEXT/DS.CVTXX.SETCC.06 ;]mmmmme s m e e memmonm oo WRITE MCTEMP3),SIZECBYTED, NEXT/DS.CVTXX.SETCC.06 H . . (MT098.MCX DECMAL .MIC MICRO2 1M(Q1) Decimal String 28~NOV=83 ;ggg%g LTOC ' 16:30:35 J 10 : DS.CVINP Dpecimal String : DS.CVINP'' ;30539 A A A d e e . 30540 ; :30541 ; ;30542 ; :30543 . 130544 130545 ; ;30546 ; ;30547 ;30548 30549 230553 ; Entry point Input TEMP1 Resources TEMP1 TEMP4 TEMPS TEMP6 MTEMPB STEPC Subroutines 130557 ; 230538 230559 . ;30560 AR SRR AT E AL IR AR QREG AR AR AL LA AL Source length Destination_length Constant 3030 Source digits L Constant FOFQ digits source Loop on remaining Temporary DS.CVIXX.SETUP JE.SERV.IP.TS2 1E.OPER.FAULT :ggggg : 30556 : At A DS.CVTNP ;%822? : 130552 Page CLOKX Rev 13.00, Clock rate = 160ns DS.CVINP is called by DS.CVITP and DS.CVISP to do the conversion except for the sign and the last digit since these are handled differently for trailing numeric and leading‘sgperate strings. The source is read and converted a word (2 digits) at a time. ;t**k*t*****************k********ti*******************t*t*i***t*t***t**t*tt**t 230561 :gggg% DS.CVINP: 135, 0780,07FF ,F878,7847,0135,F 135F, 0086,85BE,403D,4047,0126,6 :ggggg $30566 ;ggggg 130569 =0 1266, 0780,07FF ,FE?E,7847,0536,8 1267, 0480,1000,0861,0107,0910,0 374+ LONLIT_[OFOFOJ ; MASK TO CHECK FOR VALID ASCII DIGITS ommmmmsescmssososens Sesmsemenen : MCTEMPBI_RLLONLIT] B ; e e LR ; : MASK TO CHECK FOR ASCIl ZERO ; 230570 :%8?;5 LONLIT _[30301, PUSH,NEXT/DS.CVTXX.SETUP :30573 D T; ;%82;2 _ SIZECCONG],SIGND CMP? 130574 SAVE MASK TEPC_MLTEMP1}-RCTEMP4], s LOAD COUNT OF EXCESS SOURCE DIGITS ; COMPARE SOURCE AND DESTINATION LENGTHS 330577 DS.CVINP.STRIP,ZEROS: 1100, 0881,7814,1B41,6047,0909,6 385+« 130578 130579 B Dt L LI DL L L : Q_SEXT(XB)~-RLTEMP5] PC_P(C+1, ;Throw away :gggg; NEXT/DS.CVINP.CHK.OVFLW ;30580 130583 1101, 0180,1€10,0860,1047,091D,4 413« 130584 ;30585 ;ggggg ;30588 1102, 0880,4000,0030,4107,0136,0 130589 :%823? STGND CMP?, ;01=mmmmmmeccmmcmancecancceanen ; WB_MLTEMP1]=Z2L1T0(2], SIGND CMP DEF?,SIZELLONG], NEXT/DS.CVINP,CONVERT leading zeros and check s for overflow s H CHECX # OF REMAINING SOURCE DIGITS : R ettt tatnlal~w==e: LOAD # OF EXCESS DESTINATION DIGITS STEPC MLTEMP4I-RLTEMP1], NEXT/DS.CVINP,50 ; T0 FILL WITH ZEROS H 744 (MT098.MCX DECMAL .MIC MICRO2 1M(Q1) 28=NOV~83 Decimal String K 10 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : DS.CVINP Page 130592 =10 :ggggz Ds CVINP.CHK,OVFLW: 1096, 0C84,5009,0031,8047,0136,3 1097, 0586,1C10,0330,0847,011D,0 ‘Undo earlier subtraction and see if thlS is a legal BYTE 130595 :gggg? fiETEMP6] MECTEMPS]+Q, NEXT/DS.TVINP.CHK. BAD 130598 : 30599 ;llesmmmeemcemeemeemceeeeeeeeeo : M[TEMP1J MB=ZLITO[1], : ;§8285 NEXT/DS.CVTNP.STRIP.ZEROS 130600 pBZ STEPL?, H ; 130603 30604 DS.CVINP.50: 0581,B(11,0030,0CA7,0120,B L T; + WRITE ZEROS TO DESTINATION : DECREMENT COUNT OF DTSTINATION DIGITS NEXT/DS.CVTNP.F!LL 0 H le=mememeesmemesecscmooscoossosses : DBZ STEPC? : DECREMENT COUNT OF DESTINATION DIGITS DS.CVINP,8TORE.ZERO: wRITE JL1T00N],SIZELBYTE], ; WRITE ZEROS TO DESTINATION NEXT/DS.CVTNP.FILL : DBZ STEPC?, : DECREMENT COUNT OF DESTINATION DIGITS DS. CVTNP FILL DONE: DS. CVTNP FILL: R L L L R L A MLVAI+ZLITOL1], [2] DBY STEPC? NEXT/DS. CYTNP, STORE. ZERO L - T CHECK # OF SOURCE DIGITS REMAINING - NEXT/DS.CVTNP.CON [S -0 SIGND CMP DEF?,SI = wB MLTEMP13=-2L1T0 [=] -----Q‘---nn-----o-——---u-—--‘0 —r PO NONO R PO NUTORONY = AR L A N N AN A M U N A AT U U e L T T L MORE TO FILL :: BUMP DES INATION ADDRESS : AN LA 126D, 0D81,B(11,0330,0CA7,0126,A LN A G 126C, Y URITE JLITOC0],SIZELBYTE]D, pBZ STEPL?, 0 06 =0 CHECK IF _ODD OR EVEN ; LENGTH DESTINATION Ty mmeo 82 WB_MLTEMP4] ,WB<0>? VA MCVAd+2 NERT/DS.CV —_r 82 —d b b b b b bl ) A A A N N U U 0613 U AT A 0180,1€10,0860,1047,091D,4 413« 82 [elelolelelelelelalelelelelole lolelel 1268, 060 06 [e v ReNeNv e No e No Jo o Noto e e losloalen 126A, 0D80,0037,0300,0508,0126,( O T TR T T U i P PR TR TR TR TR TR PR 1269, 0480,0036,4330,0047,0126,A LN N NN $30608 1268, 0D80,0C37,0500,05D8,0126,¢ jmeemmessessecceseccuesceseecees ; :ggggé Q\hfll\\NflJ—flC><3CD‘dO\\hJ\LNflJ—*<>\OCD‘QCFLnJ\tNflJ—*(?\OCD‘Q 1360, 0080,4592.4280,0047,0126,8 130605 ATION ADDRESS 745| : H CMT098.MCX DECMAL. MI( MICRO2 1M(O1) Decimal String 28-NOV-83 L 10 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : DS.CVINP Page ;30637 =00 ;ggggg DS, CVINP.gonvsnr U 1104, 0580,1€10,0280,0907,091D,8 377 STEPC M[TEMP1J 2LITOC1], £30640 ;§8221 WB<0>% ,NEXT/DS.CVINP. 60 130643 U 1105, 0C85,759€,4001,A047,0136,1 RETEMP6)_ZEXT(XB) PC_PC+1, NEXT/DS.TVINP.SINGLETM U 11D6, 0480,1592,4A30,0047,0926,E 322 3%8228 wB _MCTEMP1],WX.EQ.0? . 130650 = 130651 130652 =0 :ggggz DS.CVINP.RETURN: Rr2] _0,RETURN [+1] Eggggs . o] 130657 U 126F, 0854,0587,0084,84E7,0000,2 : e e RN; 130644 130645 U 126E, 0884,0587,0084,8047,0000,1 " LOAD # OF SOURCE BYTES REMAINING = 1 0 : 30658 ;ggggg * FETCH NEXT TO LAST SOURCE BYTE : '?gw maq digits are left to convert? . or ‘1 digit left, normal return ;]=m=eeeesesceeeecsmeesee ———maee; R[R2J 0,MDR_0,SET FLAGZ, RETURN [+21~ No digits left(0 len, dest.), t<Z>image_1, take special RETURN 130661 =00 30662 DS.CVINP.60: 130663 00=-=m=mmremmmmamc—a———————— : ODD # OF SOURCE DIGITS TO CONVERT U 1108, 009D,759E,4011,A047,0127,0 130667 130668 u 1109, 049D,759E,4001,A047,0536,1 R[TEMP6] ZEXT(XB) PC_PC+2, DEC STEPT,NEXT/DS.CVINP.LOOP 130664 ;ggggg = 130669 ;ggg;g :30672 U 11DA, 009D,759E,4011,A047,0127,0 130673 ;ggg;g ) * FETCH NEXT 2 SOURCE DIGITS + DECREMENT # OF REMAINING SOURCE DIGITS ;0le=mmmmmeemmmsc—mem—eeeeee ~===~; EVEN # OF SOURCE DIGITS TO CONVERT R[TEMPb] ZEXT(XB) PC_PC+1, * FETCH NEXT SOURCE DIGIT DEC STEPT, PUSH,NEXT/DS.CVINP.SINGLE DECREMENT # OF REMAINING SOURCE DIGITS : GO WRITE FIRST DESTINATION BYTE 10=mmmmmmmm s m oo : RITEMP6] ZEXT(XB) PC PC+2, DEC STEPT,NEXT/DS.CVINP.LOOP * FETCH NEXT 2 SOURCE DIGITS : DECREMENT # OF REMAINING SOURCE DIGITS 130676 =0 :ggg;g DS, CVINP.LOOP: 130679 U 1270, 0c80,8002,1481,8047,0107,1 30680 ;gggg; 130683 2 U 1271, 0480,0036,4AF0,0047,04F7,0 130684 130685 4 MLTEMPSI.AND .RLTEMP6 ], FLAG2?, NEXT/DS CVINP. CHK. INPUT Y MASK 10 CHECK FOR LEGAL ASCII DIGITS Y CHECK FOR ZERD UNTIL FIR : NON ZERO DIGIT FOUND ;l=m=mmmmmeesecceccccccccemcaee- ; iNTPEND OR TIMER?, PUSH,NEXT/IE.SERV,IP,TS2 : : ; 746 Decimal String U 1070, 0010,5008,4A30,0047,0127,2 ! U 1071, 0080,5008,4A30,0047,0127,2 U 1075, 0480,5003,4A31,8047,0107,0 U 1272, 0080,0036,4030,0047,00FF,8 U 1273, 0880,67FD,498D,85D8,0927.4 387« u 1274, 0581,8(11,0330,0CA7,0127,6 v 1275, 0080,0036,4030,0047,00FF,8 U 1276, 049p,759E,4B11,88E7,0127,0 y 1277, 0884,0587,0084,8047,0000,1 M 10 16:30:35 CLOKX Rev 13.00, Clock rate : DS.CVINP 28-NOV~-83 VOOV 0V DONINVRVPONINININD b b b e b b ek 2 3 SOQOOOOOCOONVVV CONOMNINAND SOV NN LN = O QDGTMC)\n#flflhd-flChOOD"dCh\hJ\hNFO-JCD(Kn‘QO‘ CMT098 ,MCX L . M1C DECMA men A I T P e R T T P e T Y AR LA TR TR PR 2R T T ; : MICROC =0*0 DS.CVINP.gON ZERO: - e T o 0 Ty Sy O D e W W e 160ns Page ap w ? WB_MLTEMP5].XOR.0Q, CLEAR FLAGZ, ; CHECK FOR LEGAL ASCII DIGITS ; CLEAR PSL<Z> : WX.EQ.07 ,NEXT/DS.CVTNP.80 . INPUT: DS.CVINP,BHK I L ---------------------- LEL B A[TEMPSJXOR.Q, : CHECK FOR LEGAL ASCII DIGITS WXTEQ.0? ,NEXT/DS.CVINP.BO =141 =0 ey o D e ;11 i D WB_M[TEMP5J.XOR. RLTEMP6], - : CHECK FOR ASCII Z2ERO WX-EQ.0?,NEXT/DS.CVTNP.NON, ZERD : DS. CVTNP 80: ---------------------- - NEXT/IE OPER.FAULT URITE CVINP (MLTEMPG), SIZELBYTE], BCDCHECK? =0 B R .#ns{E will pack up to seryvice this ; fau : : WRITE 2 DESTINATION DIGITS (1 BYTE) ; FINISH CHECK OF INPUT DATA et endndalellelele bl L D VA_MLVAJ+Z2LITOL1], D82 STEPC?.NEXT/DS.CVINP.90 : INCREMENT DESTINATION ADDRESS ; DECREMENT # OF REMAINING SOURCE DIGITS ilemmmme e cmncmmcmmum e e ———— NEXT/1E.OPER.FAULT ; will pack up to service this =0 DS.CVINP, 90 h[TEMPéJ ZEXT(XB) PC_PC+2, : GET 2 SOURCE DIGITS 1P.T37.NEXT/DS.CYTNP, LOOP : CHECK FOR INTERRUPTS AND LOOP DEC STEPT, i1 RCR2]_O,RETURN [+11 ; DECREMENT # OF REMAINING SOURCE DIGITS ; 1 SOURCE DIGIT REMAINS, NORMAL RETURN 747 H (MT098.MCX DECMAL .MIC MICRO2 1M(01) Decimal String 16:30:35 : N 10 CLOKX Rev 13.00, Clock rate = 160ns Page I ; 28~NOV-83 CVTINP Eggggg 30733 U 1362, 0D80,0C33,4A31,8047,0127,8 U 1278, 0080,0036,4030,0047,00FF,8 U 1278, 0C80,0036,4030,0047,00FF,8 ;0==me=smmmsee—me—eeeeeeeeeeees ;gg;gg ;gg;zg 30744 =0 U 127A, 0080,6277,0A01,85D8,0127,¢ WXTEQ.0? :30736 130737 =0 130740 U 1279, 0086,67F,498D,8047,0927,A 387+ eesmesmemmesmese—caecscccoseo-s; W8_D.XOR.2LITOL301, $30735 130741 130745 :30746 ;gg;zg 130749 ;ggggg MASK TO CHECK FOR O AND VALID DATA D_MLTEMPB].AND .RLTEMP6] 30734 NEXT/IE.OPER. FAULT 000 ' CHECK FOR VALID ASCII DIGIT . . JPack up to service this fault ;lemsmesesememmesmececmeeeoeee- -~ M[TEMP6] CVINP(MB), BCD CHECR? T e CONVERT SINGLE DIGIT FINISH CHECK FOR VALID ASCII DIGIT AND L DINC 0 NIBBLE ET NG CC WRITE (MLTEMP6] RLTEMP61).RR.4, SIZELHYTE],WX.E0.0?, NEXT/DS.CVTNP.SINGLE .10 jlesmesmemese—meeemeecseemmeeeee NEXT/JE OPER.FAULT :30752 =0 :30753 DS.CVTNP.SINGLE.10: 130754 U 127c, 0511,BC11,06030,0CA7,0126,E , , U 127D, 0581,8C11,0030,0CA7,0126,E 130755 ;gg;gg 130758 30759 :30760 j0m=mmcmemsesmmeccmecescmeeeoee; YA MCVAT+ZLITOL1], CLEAR FLAGZ, INCREMENT DESTINATION ADDRESS CLEAR PSL<2> AND TAKE NORMAL RETURN NERT/DS. CVTNP.RETURN lmmomem e ommomeen eT VA MLVA1+ZLITOL1], NERT/DS.CVTNP.RETURN | t '%85%0 DS.CVINP.SINGLE: U 1361, 0480,8002,2031,8047,0136,2 748 * INCREMENT DESTINATION ADDRESS * TAKE NORMAL RETURN ; : MICRO2 CMT098.MCX 1M(01) Decimal String DECMAL MIC 28-NOV=83 g 11 Page 16:30:35DS ce#ggx Rev 13.00, Clock rate = 160ns R R AR RN R AR R AR AR RN R AR AR RN 130761 AR AT R AR KRR KRR AR ;3076 ; digit, take a reserved operand fault, else set <v>image. :3076§ ;30;2% : Here when leading BYTE of source isn't ASCIl 2ero. SRR RA N TR RN AR AR NN RN AN RN N ANRARURRA R AR R AR ‘ 749 If illegal AR R R R AR b bk kb kb vid :30 gg;gg DS.CVINP.CHK.BAD: i 1363, 0880,67FD,498D,8047,08BF4 387+ ;30768 130770 OBF4: u 0BF4, 0C80,8002,2031,8047,008¢F,3 \ OBFS, 0CB0,0036,4030,0047,00FF,8 : 3077 :%8;;% 130774 OBFS: ;%8;;2 BCD CHECK MCTEMPG)? ' ;Oxavs#x+¢FORCE ADDRESS*aauenuns; D _MCTEMPBI.AND . RLTEMPG], NEXT/DS.CVINP.CHK.10 ; CHECK THAT B1TS<7:4> ARE 3 FOR ASCll : 0=9 (HEX 30-39) ;1wsxusxssfORCE ADDRESStaswunnax; NEXT/IE.OPER.FAULT ; BI1715¢3:0> ARE GREATER THAN 9 :30778 DS,CVINP,CHK.10: J OBF3, 0980,0033,4A71,8047,0127,F 230789 :gg;g; 130783 =0 :30784 v J 127, OD4&E,1(10,0330,0847,011D,0 ) ‘ v 127F, 0C80,0036,4030,0047,00FF,8 ixaxceanvefORCE ADDRESS*anwwwans; WB_D.XOR,ZLITO[30], WX NE.O? MCTEMP1] _MB-ZLITOC1],SET FLAGT, :§8;g§ NEXT/DS.CVINP,STRIP, ZERQS :30786 130789 :30790 : ;Q==eens sememesmmcsecsamenmesa—e ; OVERFLOW, SET V FLAG ;30785 DBZ STEPT?, []=mmememmmecsccecamm—sen————— : NEXT/IE.OPER.FAULT . ‘ 130777 0BF3: 30779 .- [ e 130798 ;30799 ;30800 230801 130802 :gggg ;30805 ;30806 :%838 ;30809 ;308 1 2308 1 ;ggg 1 :%08 j 081 :3 081 ;3 081 ;3 081 )3 0819 - . . ‘¢80, (78C,067E,7E7F,7847,0536,8 C 128, iB6,U27EF,4037,4047,0136,4 o . _ 134, JUBG,TO0C,ABEY, U067, 091D, 0 374 ; ; : ; Entry point DS.CVIPN Input TEMPI Resources TEMPO O O 00 NON N S 120794 ;30795 130796 130797 Decimal String OB IS AN = O OO NO VTS AN 33079 J0C ' OIS LIND = O N0 00 :gg;g 16:30:35 ehu — Decimal String :3 8%5 ;3 ;3 082 .3 835 .3 ;3 082 23 835 3 :3082 3 3082 ;3083 ¢ 1 28=~NOV=83 OO0 DE CMAL MIC 1M(01) CLOKX Rev 13.00, C(lock rate = 160ns Page : DS.CVTPN 750 : DS.CVIPN" :W"ii*'ttfittttiit**********fitiit******fit****ii**it*tflfi**t!fifit**'t*wifitittfl!tt ; TEMPY TEMP4 ; (onstant 33 Zext(source length) | lero extended destination length ; TEMPS ; STEPC Loop control MENMORY ALl but Llast digit and sign written TEMPG Last source byte (digit and sign) ; ; . TEMP6 Output : ; ; Subroutines FLAGS Constant 30303030 Source byte Intermediate condition code setting DS.CVTXX,SETUP 1€, 0PER,FAULT DS.INC.VA.BY.2 1E.SERV.IP.TS2 : i H DS.CVIPN is used tc d» most of the conversion for DS.CVTPT and DS.CVTPS, : difterently for trailing numeric and leading seperate strings. It converts all but the last digit and sign which are hangled :*tttitt**tiktt*tt*t*******fitt*ttttt*tifi*tti*tttttt*ifittt*ttfifittittttt!it!tt*t =0 DS.CVIPN: LONLIT_[303030303, PUSH,NEXT/DS.CVTXX.SETUP R it USED TO WRITE LEADING ZEROS H rimistedats ittty H MLTEMPO]_RLTEMP5],0R. ((M3 RB),RR,4) ; USED FOR CVTPN ROTATER FUNCTION ettt it ottt itttssum—e - D_MLTEMP1]~RLTEMP4], STGND CMP?,S1ZELLONG] . LOAD # OF EXCESS SOURCE DIGITS ; COMPARE SOURCE AND DESTINATION LENGTHS i MICRO2 (MTO98.M(X CMTO98.MCX MICRO2 DECMAL MIC 1M(01) Decimal String 28-NOV=-83 :30831 =00 1100, 0680,1592,4280,0047,0128,F ' | © 110D, 0(B0,1592,4A30,0047,0928,4 322+ ; 11DE, 0880,4000,0030,4107,0136,5 1365, 0880,0036,4370,0047,010F,0 16:30:35 D 11 CLOKX Rev 13.00, Clock rate = 160ns : DS,CVT : ODD OR EVEN SOURCE LENGTH? THROW AWAY : EXTRA DIGITS CHECKING FOR OVERFLOW :30832 ;ggg%z 130835 :30836 8 M[TEMP1J WX.E0.07, 130839 :gggz? ;10m=—==ecmmememcocccessccecnsue ; DESTINATION LENGTH IS GREATER §1ere _MCTEMP4]-RLTEMP1] : LOAD # OF LEADING ZEROS TO WRITE 3§8§2§ 000 STEPC.GE.4? DECBY4 ;0lm==sm=escesscecacccmeseceaes ==; LENGTHS ARE THE SAME : ODD OR EVEN SOURCE LENGTH? NEXT/DS.CVTPN, CONVERT i LENGTHS ARE THE SAME, DO THE CONVERT : ARE THERE 4 OR MORE ZEROS TO WRITE? 130846 DS.CVIPN.WRT.ZEROS: 10F0, 0080,1592,4A30,0047,0928,2 322+ :30847 :30848 ;ggggg :30851 10F1, 0080,5592,4000,0508,010F,7 . 10F2, 0080,5592,4010,05D8,0538,0 _ 10F5, 0480,0036,44F0,0047,04F7,0 001 =m == mmmmm oo : $010=mmmmmmmmmmmmnacmcameo e- ;ggggg $30860 ;30861 :30864 WRITE MLTEMPS5),SIZECWORD], PUSH,NEXT/DS. INC.VA,BY,2 : PUSH,NEXT/DS.INC.VA.BY.2 : WRITE 2 ZERQS THEN ONE ZERD ; INCREMENT DESTINATION ADDRESS BY 2 :100====mmmmcocmcmmoccano e aae ; WRITE MLTEMPS],S1ZE[LONG], : WRITE 4 ZEROS AND LOOP $30867 101 mmmecmmsescccecemmeecenonene : ;ggggg PUSH,NEXT/1E.SERV.IP,TS2 :30875 INCREMENT DESTINATION ADDRESS BY 2 :0]]=mmmmmmmm——cmsccecm—emaaeae : WRITE MLTEMPS),SIZECWORDI, INTPEND OR TIMER?, Eggg;; DS.CVTPN.WRT.ZERO.LP: ' 10F6, 0D81,8C11,0370,2447,010F,0 : WRITE LAST 2 LEADING ZEROS NEXT/DS.CVIPN.WRT.ZERD.LP $30873 :30874 CHECK FOR ZERO LENGTH SOURCE : WRITE LAST LEADING ZERD : :ggggg 130868 . e ccemeneee ; :30855 :30863 10F4, 0C80,5592,4020,05D8,010¢,6 NEXT/DS. CVIPN. 40 WRITE MLTEMPS],SIZELBYTED, NEXT/DS.CVTPN. 20 $30859 10F3, 0080,5592,4010,0508,0538,0 $000=====c=e=mmocmcmmmmmmmeeoen : WB_MCTEMP1],WX.EQ.0?, : :30852 ;§8ggz :30856 751 ;00=m=mammommmm—m—cmaacac e ; SOURCE LENGTH IS GREATER WB_MLTEMP1],WB<0>?, NERT/DS.CVTPN.STRIP, ZEROS ;ggggg Page VA MLVAJ+ZLITO[4], STEPC,GE .42 DECBY4, NEXT/DS.CVTPN.WRT.ZEROS : : : : INCREMENT DESTINATION ADDRESS BY 4 » SO CMT098.MCX DECMAL . MIC Decimal String 16:30:35 28=NGV~83 EN (LOKX Rev 13.00, Clock rate = 160ns : DS.CVTPN :ggg;g DS.CVTPN,20: 10F7, 0581,BC11,0030,0CA7,010F,0 130878 ;ggggg 0 VA_MCVAJ+ZLITOC1], NEXT/DS.CVTPN.WRT.ZEROS 130881 DS.CVIPN.40: 130882 1282, 0480,1000,02B8D,8107,0928,6 344* P 130883 WB<0>%,NEXT/DS.CVTPN,EVEN,LEN 130886 1283, 0151,810,0030,0CA7,010F,8 +30887 ;ggggg -0 752 % INCREMENT DESTINATION ADDRESS BY 1 : L I LT ; LENGTHS ARE THE SAME, DO THE CONVERT $TEPC LMLTEMP1I-RLZERO], ;ggggg Page Y LOAD # OF REMAINING SOURCE DIGITS ; CHECK IF ODD OR EVEN LENGTH P T et LU : ZERO LENGTH SOURCE, POINT VA TO VA_MLVAI-ZLITOL1],SET FLAG2, NERT/DS.CVTPN.RETURN * LAST DESTINATION BYTE, NORMAL RETURN : *30890 DS.CVTPN.CONVERT: 1284, 0480,1000,028D,8107,0928,6 344* 130891 130892 ;ggggz 130805 130896 1285, 0885,759€,4081,A0C7,0000,2 (Qmemmmemmmeeom———————————— : LENGTHS ARE THE SAME, DO THE CONVERT STEPC_MLCTEMP1I-RLZEROJ, : LOAD # OF REMAINING SOURCE DIGITS WB<0>7 ,NEXT/DS.CVTPN.EVEN.LEN : CHECK IF ODD OR EVEN LENGTH = 130897 ;ggggg 0 ;lemmeee;eccceescccceececceseees :; 2ERO LENGTH DESTINATION, R[TEMP6J _ZEXT(XB) PC_PC+1, * GET LAST SOURCE BYTE ALUS_BCD“SIGN.ZERO, RETURM [+2] * LATCH SIGN FROM LAST BYTE * TAKE SPECIAL RETURN +30900 DS.CVTPN.EVEN.LEN: 130901 1286, 049D,759E,4A01,A047,0928,8 322+ 10mmmcesmmmemmmmeemee—ee—e—e——— ; EVEN LENGTH, CONVERT 1 DIGIT FIRST. 30902 RLTEMP6]_ZEXT(XB) PC_PC+1, ;28382 WX.EQ.0? ,NEXT/DS.CVTPN.SINGLE 130903 DEC STEPT, * GET SOURCE BYTE, CHECK FOR ZERO AND * DECREMENT # OF SOURCE DIGITS REMAINING 130904 DS.CVTPN.ODD.LEN: 130907 1287, 0599,8(10,0030,24A7,0136,8 L LO L L : ODD LENGTH, CONVERT 4 AT A TIME +30908 :;8393 " VA_MLVAD-ZLITOC4], DET STEPC,NEXT/DS.CVIPN.LOOP : BACKUP DEST ADDRESS T0 BEGIN LOOP : DECREMENT # OF SOURCE DIGITS REMAINING 3%33}5 DS.CVTPN.SINGLE: 1288, 0816,6237,0031,8047.0136,6 130913 MCTEMPG] (RLTEMPG] MB).RL.4. Y SHIFT TO CONVERT ONLY 1 PACKED DIGIT :ggg}g NEXT/DS.CVTPN. SINGLE .WRT : $3091% 130917 1289, 0886,6237,0031,8047,0136,6 $30918 ;ggg;g CLEAR FLAGZ, 2 * CLEAR PSL<Z> SINCE DIGIT IS NON ZERO. jl-emmees;mscmamcscccscseceasese : M[TEMP6J (RCTEMP6] MB).RL.4, NEXT/DS.TVTPN. SINGLE.WRT * SMIFT TO CONVERT ONLY 1 PACKED DIGIT : 130921 DS.CVTPN.SINGLE.WRT: 1366, 0498,66F7,0000,0508,0136,7 : 30922 130923 130924 O Aottt d ittt e H WRITE CVIPN(MCTEMP6D), ; SIZELBYTE],DEC STEPC : WRITE FIRST DESTINATION DIGIT i . MICRO2 1M(01) H H CMT098 . MCX DECMAL .MIC MICROZ2 1M(01) Decimal 3tring U 1367, 0081,BC10,0030,1CA7,0136,8 16:30:35 28~NOV~-83 F 1 CLOKX Rev 13.00, Clock rate = 160ns ¢ DS.CVTPN Page jemmee—memmecseececneeeesmseen- ; INCREMENT DESTINATION ADDRESS. :30925 ;gggsg VA_MIVA-ZLITOL3] Y (VA=3) + 4CIN NEXT CYCLE) = VA + 1 130928 DS.CVTPN,LOOP: 130099 U 1368, 0880,0036,4370,0447,010F,8 130930 :ggggg 1 000 imeescmemeecm—me—eeemeeeeeee—eee ; VA_VA+G, STEPC.GE .47 DECBY4 ' INC DESTINATION ADDRESS. ARE THERE 5 OR MORE DIGITS REMAINING. 130933 10F8: 30934 DS.CVTPN.RETURN: 130035 P o e ; 1 DIGIT REMAINING. ] U 10F8, 088 ,759E,4081,A0(7,0000,1 U 10FA, 0C85,759€,4A01,A047,0928,A 322x 130936 130937 130938 130939 10FA: 130940 ;2010 30941 %832% 130944 10FC: 130945 ;=100 U 10FC. 0085,759E,4A11,A0C7,0928,C 322+ U 10FD, 0480,0036,4AF0,0047,04F7,0 RLTEMP6I_ZEXT(XB) PC_PC+1, ALUS BCDTMSIGN.ZERO, RETURN [+13 * GET LAST SOURCE BYTE. * LATCH BCD SIGN. ; ;0710--—===s-cm=e=e=em——m———ee——- : 3 DIGITS REMAINING. RCTEMP61_ZEXT(XB) PC_PC+1, WX.EQ.07 NEXT/DS.CVIPN.LAST3 * GET NEXT TO LAST BYTE. : CHECK FOR NON ZERO DIGITS. ;100=====s=mecmcmcemm—————ceam- ; 5 OR MORE DIGITS REMAINING. 130944 RLTEMPG ] _ZEXT(XB) PC_PC+2, ;gggzg WX.ED.0? ,NEXT/DS.CYTPN.WRT.LONG * 130950 10FD: ;101==——===——c=—cs=mmmme~cmcm=== ;S OR MORE DIGITS AND AN INTERRUPT ;ggggg PUSH,NEXT/1E.SERV.IP.TS2 130947 130951 ALUS_BCDTMSIGN.ZERD, INTPEND OR TIMER?, Y GET NEXT 4 DIGITS (2 BYTES) ' LATCH BCD SIGN (IN CASE LAST). * : 1S PENDING. 130954 =0 :ggggg DS.CVIPN.LAST3: U 128A, 0810,66F7,0010,05D8,0136,9 130957 GRITE CVIPN(MLTEMPSD) ' CONVERT AND WRITE 2 DIGITS. ;ggggg NEXT/DS.CVIPN. INC.VA : 130958 130961 U 1288, 0880.66F7,0010,0508,0136,9 U 1369, 0081.8711,0010,04A7,010F,8 130962 ‘§8322 SIZECWORD],CLEAR FLAG2, ;]m m — e emem—e— e ———————; WRITE CVIPN(MLTEMPGI), S12ECWORD] Eggggg DS.CVTPN, INC.VA: 130967 VA_MLVAI+CONX(2), ;ggggg - * CLEAR PSL 2 (NON ZERO DIGITS) NEXT/DS.CVTPN.RE TURN ' CONVERT AND WRITE 2 DIGITS. : * INCREMENT DESTINATION ADDRESS. ; Eggg;g DS.CVTPN.WRT.LONG: 130972 U 128¢, 0010,66F7,0020,0508,0136,8 130973 :§83;§ 130976 U 1280, 0080.66F7,0020,05p8,0136,8 130977 30978 WRITE CVIPN(MCTEMP6]), SIZECLONG],CLEAR FLAGZ, NEXT/DS.CVTPN.LOOP * CONVERT AND WRITE 4 DIGITS. ¢ CLEAR PSL Z (NON ZERO DIGITS) : slomemmmmnmmmeem——m e e — e e —————— : WRITE CVIPN(MLTEMP6]), SIZECLONG],NEXT/DS.CVFPN.LOOP * CONVERT AND WRITE 4 DIGITS. 753 : CMT098.MCX DECMAL .MIC MICRO2 1M(01) 28=-NOV~83 Decimal String 6 N 16:30:35DS Cs%gfix Rev 13.00, Clock rate = 160ns Page :30979 =0 ggggo DS.CVTPN.STRIP. ZEROS: 30982 U 128E, 0485,759€,4A01,A007,0929,2 322+ u 128F, 0180,0€30,2030,0847,0136,A 130986 30087 130989 30990 U 136A, 0CB5,759E,4A01,A0C7,0929,0 322+ $30991 30952 --; SOURCE LENGTH IS EVEN, ALUS_BCD~SIGN.ZERD,WR.EQ,0?2, NEXT7DS. CVTPN. STRIP, SNGLE : STRIP 1 LEADING 2ERO AND CHECK ; FOR OVERFLOW ;loesmmmmmmcseesseesemeseeeas =-; WHEN D BECOMES NEGATIVE ALL ; LEADING DIGITS HAVE BEEN STRIPED. B_D-ZLITOL1] 000 je=m=me=cemme—se—e—cccccmommeees RCTEMP6]_ZEXT(XB) PC PC+1, ALUS_BCD"SIGN. ZERO,WX.EQ. 07, NEXT7DS. CVTPN.STRIP.LOOP ¥ CHECK FIRST 2 DIGITS FOR OVERFLOW : 0994 =0 :3 ;30995 DS.CVIPN.8TR1P.LOOP: -1 ---------------------------- p=ZLITO[2],WB<31=30>7, NEXT/DS CVTPN, STRIP.MORE :Possible overflow, strip next digit, ‘check for last source digit iStrip next2 digits, check for last ssource digit =01 DS. CVTPN STRIP.OVFLW: D~2LITQC1],wB<31=-30>?, sEr FLAG1, NEXT/DS.CVTPN.STRIP.MORE 111 mmmmmmm o ee wa _MLTEMP6].AND.2LITOLOFO], WX TEQ.0? Overflow, <V>image_1, strip next ;digit, check for last source digit CHECK LAST SOURCE DIGIT FOR ZERO NEXT/DS.CVTPN,STRIP.LAST =0 DS, CVTPN STRIP.SNGLE: D=2L1T0L21,WB<31-30>?, i0vertlow, <V>1mage 1, strip next digit, NEXT/DS.CVTPN,STRIP .MORE goneé not zero) check for last source sEr FLAGT, :(dec., DREG by 2, tRen minus indicates v = ' ] o ;digi A w DD b s 3 RO RO RO RO PO PO TORY 3 3 s ot 2 o -l NEXT/DS.CVTPN.STRIP.OVFLW © i -l Qb Sl S ndud *dCF\nx~uuho-4<>MDco*qounx\Lnnu-a<>qDoo~dCNth\uuv-a g OOOOOODOCODOOOOOOOODOOROOOOD pust Gt G-ttt D p-2L1T0C13,WB<31-305?, wniD P PR TR TE PR PR T N O R A N NN 31004 8 T I A A U 1293, 0980,0030,26F0,1047,091E,5 377« T U 1292, 0148,0030,26F0,1047,091E,5 377% TN [ T ¢ 11E3, 0180,6C12,0A37,8047,011E,6 g 8 R RN U 11E1, 0148,0030,26F0,0847,091E,5 377* 3100 AN G AN N R 0980,0C30,26F0,1047,091E,5 377% 31000 AN (N U u 1291, '§8388 LN LA U 1290, 0180,0C30,26F0,0847,091E,1 377* 130997 A T ’ :30983 ;30384 RCTEMP6I_ZEXT(XB) PC_PC+1 Str1p next digit, (dec. DREG b{ 2, then .m1nu< indicates done, not zero) check sfor Last source digit 754| 28-NOV~83 0580,6C12,0430,7847,0128,8 u 1296, 00£0,0036,4020,0053,0105,2 S u-gunit il Ghuti- i i CLOKX Rev 13.00, Clock rate = 160ns Page DS.CVTPN ! MORE DIGITS TO STRIP RLTEMP6]_ZEX (X ) PC_PC+T, ALUS_BCD~SIG .2 RO.WR.E0.07, NEXT7DS.CVTP S RIP.LOOP ZZ— e s . o e GET NEXT 2 SOURCE DIGITS CHECK FOR OVERFLOW ey D e e O e G AND LOOP LEADING ? 1GITS HAVE BEEN STRIPPED LAST DIGIT STRIPPED IS OVERFLOW SET SOURCE LENGTH EQUAL TO DESTINATION ALL O SET FLAG1, METEMP1] _RLTEMP4],WX.EQ.0?, LENGTH, AND CHECK FOR LENGTH EQUAL 0 NEXT/DS.TVTPN.CONVERT.10 S— |L 0 ALL LEADING DIGITS HAVE BEEN STRIPPED SET SOURCE LENGTH EQUAL TO DESTINATION LENGTH, AND CHECK FOR LENGTH EQUAL 0 MCTEMP1]_RLTEMP4] ,WX.£Q.07?, NEXT/DS.TVTPN.CONVERT.10 e e . g e e G O ESTEPC_firemaining source digits - 1, STEPC_MLTEMP1]-ZLITOL1], CONVERT. 20 wB<0>7 ,NEXT/DS.CVTPN, 3- : 0BF8: DS.CVTPN.CONVERT.20: ;OxxtekaxtaxFORCE result even or odd? ZERO LENGTH DESTINATION, TAKE SPECIAL RETURN ADDRESSw*whwwww; ;STEPC is now even, #remaining digits ;was odd, convert 4 at a time & begin STEPC.GE.4? DECBY4, NEXT/DS.CVTPN,RETURN J1xenwnxxxFORCE ADDRESS**xwxxxxx:STEPC 1S NOW ODD, #REMAINING DIGITS WAS JEVEN, CHECK DIGIT FOR ZERO THEN WB_MLTEMP6].AND,ZLITOLOF], WX.EQ.0? ,NEXT/DS.CVTPN.SINGLE :GO CONVERT IT JHt++++++ 1297: QU.RESV.OPER: i i e g force address ++t+iidd; ; CAN'T COMPLETE INTERLOCKED QUE INSTR . - B . MCTEMP6]_RIMM, TEMP3)] 1296: ;is - -- RETURN [+2] 0BF9: 755, | S DS. e L : H 11 =00 =01 0 L e LU U U U N U NN O N A R N NN N NN D R U 1297, 0486,65BE,4039,0047,0129,6 R N e U 0BF9, Ut LN U L A U i A A U N U U 0BF8, 0080,0036,4370,0047,010F,8 G-l gl G U 1295, 0880,0036,4080,0047,0000,°2 COOOOOOOOOOCOOCOOOCOOOOCODOOROOOOOOOOOOOCLOOOODOOO ,8 377« U 1294, 0580,1{10,0280,0907,088F pubuubub b Sui b Qui st Gl Guit S u 11E7, 0486,158E,4A31,0047,0929,4 322% e Sa®s®eBeBe®e Bato®, B e®aBySeSa®o®etoRoBe®sBatetoBeata®soVeoto®etia U 11E6, QC4E,15BE,4A31,0047,0929,4 322+ LN LA LA LA A M A AT A UM N A LA N U 11E5, 0C85,759E,4A01,A0C7,0929,0 322+ A4 Decimal String 16:30:35 ~m 1M(OT) NNV =2 OO0 DECMAL.MIC MICROZ2 by H CMTO98,.MCX L L L e O e S S e b v A L L o NNNNNOOOOONOONORONOM LN T L NN =2 O 000 NN BAANNY =S O DO NNV = OO0 N OMNSSIWNI = SO 0O NN ; sH++++++ o force e St address e e o i . . +++teetes; O READ.MOD.LOCK,SIZELLONG], CLEAR FPD, NEXT/QU,RESV.FIX SAVE FAULTING ADDRESS INCASE IN CASE OF A TB-MISS ON HEADER . . WITH HARDWARE INTERLOCK IN EFFECT {REMAINDER IN DECMAL MODULE ! ; H {MT098.MCX DECMAL.MIC MICRO2 1M(OT) 28~NOV-83 Decimal String ;§}8;2 .TOC " 16:30:35 IN CLOKX Rev 13.00, Clock rate = 160ns t DS.CVTXX.SETUP Decimal String ;g}g;g : Entry point DS.CVTXX.SETUP 131080 Input LONLIT i Address of next opcode ORing the operand lengths 331089 : Output RO Source length VA Destination address R1 R3 TEMP5 PC ;31095 ; 31096 31097 ; b b o b e 31101 D g %8% : Subroutines . Set (assume PSL<Z> is set until non zero found) This setup is called by DS.CVTNP and DS.CVIPN to initialize the, GPR's and setup PC for sourcing and VA for writing the destination. b ek oD b 31105 % %89 DS.CVTXX.SETUP: b b % }8% b~M[TEMP1J.0R.RETEMP43 9 o e e e B i e e B e {First are operand lengths legal? B R O 4 O R W WB_D.ANDNOT.ZLITOLO1F], WXTEQ.0? - - - - S O T 0 CLEAR FPD,NEXT/IE.OPER.FAULT No, roll back :1 : RCROJ_MLTEMP1],SET FLAG2 ;Yes, save source lLength ; ASSUME PSL<Z> SET UNTIL NON ZERD FOUND b b o d ok h ed b b aaD d b D b d D 31110 31111 31112 31113 31114 31115 31116 31117 31118 31119 31120 31121 31122 31123 31124 31125 31126 , i ; 1E.SERV.]P.TS? 1E.OPER.FAULT 3 ]Ol. :'titttt*ttt**t************t**********kl\****k********************************k* d P P T T T S e N N T S e R LRL] 31098 ; g ?88 H Source address Destination address Constant from LONLIT Source address FLAG2 b ek : : ! ! Destination address MDR DREG ; ; ; ; i i Destination length TEMP4 PC Resources 231094 U 136€, 0084,2592,4034,4487,0136,F Source length Source address E%}ggg : :31090 : 31091 . 31092 . 31093 U 136D, 0485,A592,4032,0047,0136,E Constant to be loaded into TEMPS TEMP1 TEMP2 :%}832 : U 1299, 0054,1592,4034,0047,0136,D 5 : 131084 ; u 1298, 0CE0,0036,4030,0047,00FF,8 i : DS.CVTXX.SETUP"' 231083 . U 136(, 0p89,0033,8A30,F847,0129,8 i 756| ;310?? ;k***t****t******i**********t**t**************t*t*****t**tk*t*w****t*t*****i** :31081 ; ;31082 ; U 1368, 0(80,1002.,6031,0047,0136,C Page bC_R[R1]_M[TEMP2] : POINT PC TO SOURCE ; | l ; CMT098.MCX DECMAL .MIC MICROZ 1M(QT) Decimal String $31127 U 136F. 0086,55BE,4B3D,58E7,0129,A ;31128 :%}}%8 131131 =0 $31132 U 1294, 0085,2592,4084,C4A7,0000,1 J 1 : DS.CVTXX.SETUP 1IP.TS? ; ! ; : CHECK FOR INTERRUPTS et ettt bl A il ; 131136 1mmmmmm 131138 PUSH NEXT/IE.SERV.IP,TS2, :31139 ; 757 jmemmmm———m—e—tseocssssesssaese H METEMPS]_RILONLITD, VA _RLR3] MLMDRJ, ;%}}%g Page CLOKX Rev 13.00, Clock rate = 160ns : 31133 31137 U 1298, 0085,2592,4AF4,0047,04F7,0 16:30:35 28-NOV-83 :Nothing pend1ng or timer service, save RETURN [T1 e e me INTPEND OR TIMER?, RCR3) _MLMDR] . ‘dest. address & RETURN et mcncaes GPR3_dest. address incase we pack up z ; NN S DD D I AN = O s I Decimal String = OO AN (NN NN AN OO O N B APV = O N0 00 NN N I (AN — O OO0 O B8 N OM A NN NNNNNNNAO o b e J 1374, 0084,3592,4034,0047,00FE,2 LN U U 1373, 0884,43BE,4014,8047,0137,4 NN L L U 1372, 0484,03BE,4024,8047,0137,3 .T0C ' A\ = € u 1371, 0886,05BE,4034,0047,0137,2 N A A L U AN (U O y 07F9, 0882,0036,4004,8387,0137,1 R U LA (A N AN LA L AN N b h b ok ek it b ik o ah o b b D oh b b e e D D b b e — B b b d b ot b b e b b sad b oD b aad D 3 D b mnd b b d b b b b e =3 d e J 07F8, 0884,0287,0004,8047,007F,9 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 S D e b e d b i ) e d b D d b e NN U I AN N N A NN N N e S R T T T T T T R O R R R It U 1370, 0484,0592,4034,8047,007F,8 K1 28-NOV-83 : DS.CVTXX.PACK H ; : : s s szttt Al dd TEMPO PC-PCBACK TEMP4 RO (R1 & R3 Zero extend destination length Zero extended source length Source and destination address) Input TEMP3 ; ; ; ; 22 DS.CVTXX.PACK Entry point : ! : DS.CVTXX.PACK" 13232232223 22332222223333%2 2232232228222 : . Page 758 Table address if any Table address if any RO Qutput ; R1 R2<5-0> <15-8> <23-16> Source address F lags Source length Destination length R3 Destination address H <31-24> PC - PCBACK ;itt*ti****it***it*i*ii*t**t***ik**t*t*t**tt***t**t**tflit*****t**t*********t** DS.CVTXX.PACK: RCR2I_MLTEMPO] 7F8: ‘deltaPC sukukkkkxk FORCE ADDRESSkaxakxnns; RCR2]_RB.RR.8 7F9: . SHIFT TO MAKE ROOM FOR FLAGS shennnnwawnFORCE ADDRESS*wawwtnny, RCR2].SI1Z_FLAGS,SIZECBYTE] ; SAVE FLAGS MCTEMPOI _RLRO) iMask in Source length B e o D s v O s s e O v a8 e 4 T e o e o S O e O L RCROI_MLTEMP3], NEXT/TE .PACK.DONE A 0 S oy LR At @ O . o L S e e O g o T [ i T T g ¢ Y iLoad Table address, pack is complete i | Decimal String QOO CMT098,MCX DECMAL.MIC N : 1M(Q1) d D ) b b ek d e ) ek e} b ; MICROZ2 S b D b b D et e A U LN N O U NN N N N ;31192 H }g 13179¢ $31196 U 0?FA, 0080,05BE,4034,8307,0137,6 U 1376, 0986,1C12,0037,F847,0137,7 U 1377, 0p86,5C12,0037,F847,0137,8 J 1378, 0086,25BE,4034,4047,0137,9 ;*tt*\‘.‘*tk*fikk**t‘t****tfi***k******ififi***i‘lfii*‘(fi**i*****ifil*iit**i*iti‘k*it*t*)\'t 3 Entry point DS, CVTXX.UNPACK : ; Input RO R1 R2<7-0> <15-8> R3 : ; ¢ Qutput <23-16> TEMPT TEMP? 200 Sg ; : PC MDR 203 : mad e} d ek TEMP3 TEMP4 199 «b —2 2 3 b 3 b —3 b b QD O OO 204 205 NN AP RSB0 NS PRSP NI U OFF3, 0886,5287,0024,8047,007F,A + DS.CVTXX.UNPACK"' ; ; o o o d B h e b d o ok D b d D b b b b b b md b b e D o b b o LSLELETNTST, ST STNT N ST STNT NN SN WSS LS LU NS 1N 1N 1 VL0 S AN U 1375, 0486,55BE,4034,8047,00FF,3 LN LA LA U A AN AU U LA A G LA G U LA A L A LA U U L (A B 7 U 0378, 0086,12B87,0004,8047,0137,5 A S P A I N T TR TR T M Y TR PR PR TR TR PR I 131197 198 N S WA = OO CO NOM A T AN ~ O D00 IO 18 231189 31190 31191 Decimal String : DS.CVTXX.UNPACK . TEMPS Table address if any Source address PC ~ PCBACK Source length Destination length Destination address Source length Source address Table address if any Destination length PC - PCBACK Address of next opcode Destination address DS.CVIPS.RESTART subroutines DS.CVISP.RESTART DS.CVIPT,RESTART ; DS.CVITP.RESTARY H SRR KRR AR AR AR - E 18 }g L10C ' O LN S~ LAIND = O O C0 IO N S AT — OO GO N E : }g Page CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 NP —3 © O CO : L 11 28-NOV~83 S~y Decimal String N (MT098.MCX DECMAL . MIC ek o H 1M(QD) N AT N A AN A H MICROZ R R R R R AN RN R RN AR R AR R RN A AN kAR R ARk k kA Ak k kA kb ke hhd .REGION/IRD1,RIL,IRD1.RTH 378: ;axkrxne 2 4FORCE ADDRESS*tkknrnwk; DS, CVTXX.UNPACK: ;000-w=mmmmmomomecmcsasnsosonaas : MCTEMP1] _R[R2].RR.8B ;Get Source length .REGION/DECMAL .R1L,DECMAL .R1H/DECMAL.R2L, DECMAL .R2H fi[TEMPS]_RCR?] 0FF3: saannnek ¥t FORCE 3 NOP LEFT TO AVOID ROM CHANGE ADDRESS*axnannwwn; MCTEMP5]_RLR2].RR.24 7FA: sewhwaxx e xFORCE :Get delta P ADDRESSwwxwwsnnn, FLAGS_RTR2] ; RESTORE FLAG3 MCTEMP1]1_MB.AND.ZLITOLOFF] {ZEXT length & delta PC T 0 0% = D .- --------------------------------- MCTEMP2]_RLR1] ¢ RESTORE SOURCE ADDRESS : 759. . ~s e (MT098.MCX DE CMAL .MIC MICRO2 1M(OT) Cecimal String 1379, 0086,35BE,4034,0047,0137,A 137A, 0086,4287,0014,8047,0137,8 1378, 0186,4012,0037,F847,0137,C 28-NOV-83 :31234 131940 emmemesemmem—eeccecsmmoeeaeeee ;§}§2; :31244 ;%}gzz 131248 :%}ggg :31252 :g}ggz :31256 ;%}ggg 131259 =110 1106, 0080,058E,4034,467,0037,2 jo===c=scsmeesa EERGETTUEILLII Iy jemmmmmmesssemesssssscemenenaee- ; MCTEMP4]I_RLR2).RR.16 JRestore destination length 131255 =100 1104, 0080,058E,4034,0467,0036,3 : DS. CVTXX.UNPACK 131237 ;g}%%g :31251 1101, 0080,05BE,4034,0467,011C,C CLOKX Rev 13,00, Ctock rate = 160ns MCTEMP3]_RLROJ 131247 =000 1100, 0880,073C,0004,C467,0024,6 LINE| ;g}ggg :31243 137¢, 0C81,9001,0671,4487,0110,0 16:30:35 :31260 ;g}gg; : RESTORE TABLE ADDRESS OR ... [TEMP4]_MB.AND.ZLITOLOFF] e LL L L PC_MLPCBACKI+RLTEMPS], IR<2=0>? Restore PC with deltaPC ;in TEMPS, which inst. are we? ;000-=======m=o=csemcoun —mmmm——- ; MDR_RLR3I-CONX(1), NEXT/DS. CVTPS.RESTART : : ;00T == oo e ; MDR_R(R3] NEXT/DS. CVTSP,RESTART ; : ;100==-se-ssmeasmmesecnasa SECEES : MDR_RLR3], NEXT/DS.CVTPT RESTART ; : ;110======me=eemeeececeae——- we—-; MDR R(R3], NEXT/DS.CUTTP.RESTART ; : Page : 760; 28-NOV-83 J 1098, 0058,05BE,4032,0487,0109,¢C U 109¢, 0CE6,5036,4030,0387,0137,p | Wt 37"), 1880,5592,4030,00A7,0134,9 : DS.CVTXX,SETCC'" String 223208228201 82 R0ttt T Page DS.CVIXX.SETCC 2122233222232 2 333202323 8RRttt Rinind Entry points DS.CVTXX.SET(C Input TEMP8 FLAGS Address of next opcode L. Intermediate value of condition codes Resources TEMPS *smporary for moving tlags to PSL<NZVC> Output PC PSL<FPD> Address of next opcode Clear Subroutines DS.CCPCIRDT.CMPP DS.CVIXX.SETCC.06 DS.CVTXX,SETCC.07 L . . . . . ) s . SRR AR R R R R . R Ak W R R R R AR R R kR R R R R KRR R Rk Rk ko ok Aok ok Rk bk ko ko ke =00 Ds.cvrxx.gsrcc: PC_RCTEMPR),CLEAR FLAG?, ; NEXT/DS.CVTXX.SETCC.10 : Ds.cvrxx.gercc.06; 5C_RCTEMPS], ; NEXT/DS.CVTXX.SETCC.10 §10mmmmmzmmnnee - o e g Sty 2ot e St SET FLAG3, NEXT/DS.CVIXX.SETCC H DS.CVTXX.?ETCC.O?: -------- -y P PC_RLTEMPB], CLEAR FLAG3, =0%* FLAG2? LA IS L Decimal CLOKX Rev 13.00, Clock rate = 160ns R O~ t NN R OO 00 16:30:35 R AN — .10C ' PP NI NN N IMANNI = O OO0 QOO N U PO P RO P R N AN AN AL U W v 11E8B, 0018,05BE,4482,0487,0109,8 —_-— e ODOOOOCOOOOV VO OVOVOO < L) =2 O OO O A I N =3 D O 00 NION NI ey U 11EA, 0458,0034,4030,0047,011E.,8 LN (A AN AL DI TR PR PR TS T TR T O T T T S U 11E9, 0080,058BE,4032,0487,0109,¢C e R I T O N T T T e o T T N L L U 11E8, 0010,058E,4032,0487,0109,( RN NN NI NN RLNIND NI NINIAINININV!"oy RO RO Y AU AU NALNLNINLCLALNLNL 0 € Co 0o o o COCOCOC0CO NN NN NNNINNOPROOOO-O MICROZ 1M1 ) Decimal String Y (MT098,.MCX DECMAL.MIC LA Lnd N L LA N LA L A2 U LA A N N AN U A AN g O (NN AL AT N LA N AN N L« o N A LA AN N O (R AT (N L A A NV AN AN AN b utebat-Bui-buul i il Gui-Sui-gui G G ; : IFf RESULT NOT ZERO SET PSL<N> DS.CVTXX.SETCC.08: ;0% - o 1 PC_RITEMP8],SET FLAG3 H DS.CVTXX.SETCC.10: I MITEMPSI_FLAGS,CLEAR FPD e e - o o CC_MITEMPS], - NERT/DS.CVTPL, IRD1 o * GPRO_O and IRD1 in DS.CVIPL code ; ModiTied for rev94 to save a word 761" e ! (MTQ98 .M i : DE CMAL (MIC et o e ottt e e 4o MICRO2 et 1a e 1M(O1) Decimal String B 12 16:30:35 ~ 28-NOV=83 t Mis¢ Subroutines :%}g}g JOC "' Decimal String 331316 R R : Misc Subroutings'' R AR IR AR I AR AL AR ALARAALAALL LML AL] ;%}%}g : En*ry Points DS.TABLE.ADDR ! 131319 Input VA | 31323 Qutupt TEMP? 231326 3 This is used by DS.CVITP and DS.CVIPT when looking up the byte X . 131320 ;%}%g; : :g}gsg : ; ;%}ggg H TEMP3 TEMP6 VA Destination address ‘ ; ' i | ? i i Address of desired byte in table ; i Save destination address (input VA) | in the table. i 531329 Ennt~~~ntnttutnwwt-nt-twtnttatq~w-tuanntuntuaqntttwttw«wtttwttwttt*tttttw*tt« . ;;;gg; DS, TABLE.ADDR: ; mg;‘ $31335 J 137F, (880,3001,0081,84A7,0000,2 i Table address Byte to be converted (table offset) :31330 ¢ 1376, 0085,8592,4031,0047,0137,F 762.: Page (LOKX Rey 13.00, Clock rate = 160ns 131336 :g}%%g RLTEMP7]_MCVA) : ' Pt e “ VA MUTEMPII+R{TEMPG], RETURN [+2] 251339 R AR N N N R ; : RN AN RN AR RN AR AR R AR NN TR R AR RN R ;%}%2? ; Entry Points DS.INC.VA.BY.2 ;;}%2% ; Increment the VA by 2. AR TR Rb ;31344 E'htttttttn*ttttt"ittttiitttiitiittiti*ttfifiitti*fititfiit*fi\fit\‘tittit“tii‘*it ;31345 331346 DS,INC.VA.BY.2: ) ] CN3BD, DU8Y B0, U0BD, 1487 Q5FF LE L ;31347 ;31348 :31349 P L L DL L LD ; vA_M{vA)+ZL1T0L[2], RETURN [~2] : : - . (MT098 M(x DE CMAL JMIC MICROZ ¢ 12 Decimal String :%}%2? LT0C *' Decimal String }31352 IR :g}%gg ; 131353 Page 16:30:35ASHPCLDKX Rev 13.00, Clock rate = 160ns 28=NQV=-83 1M{Q1) AR R : ASHP'' A RN AR RN AR RN AR R R AR AR R RN R R AN R RN RN RN ; ASHP ¢nt,rb, srclen.rw, srcaddr.ab, round.rb, :31356 : : ; 1t the count is odd, we shift by 10, to even we shift by bytes (100.) until count is zero. A negative count will cause the round operand to be added after shiftirg, 131360 : Input MDR cnt.rb :31363 :31364 H : Resources GPR1 Base address, source ;31357 ;g}%gg 31361 :31362 131365 :31366 131367 231368 :31369 131370 ;313N $31372 :31373 ;31374 ;31375 131376 131377 ;31378 131379 :31380 231381 : 31382 ;31383 131384 231385 ;31386 dstlen,rw, dstaddr.ab ; ; : H : GPR3 TEMP3-TEMPG TEMP/ MTEMPS MTEMPO MTEMP10 FPDOTFSET RTEMPE H : ; ; ; : ; H ; : RTEMPQ RNUM DREG QREG ALUS ; ; ; H : : ; : ;31391 : ;31397 ;31398 ; H ;310! s 131396 :31399 231400 IS H 23 2L1T0015.3 Round operand . Points to TEMPs during 1/0 Copy of RNUM, general data Temp. for DS.WRITE Stares sign of source and loop =1 if odd destination Also masks out PSL<(> <y> image, initially 0 =0 if Count operand is >=0 =1 it GPRO is <0. image) lero (O) Base address, source lero (0) PSLCNZV> A TN R R AR AR Count operand Becomes <Z>image when calling DS.WRITE. =0 it source is pos., =1 it source is negq, GPR1 GPR? GPR3 : DS.READ resource (<N> iTAE RN RS PR NN AN A As count i3 dec., the WRITES 10 =0 if even destination FLAG3 Qutput i [8.]1, used to rotate bytes READs : : ; . Count operand control, :31392 131395 i i format, LSB in byte#3 of TEMP3, MSB in byte#0 ot TEMP6 used for Zero (0) fitl Source Length Destination Length Absolute value of (ount operand WDR VA PSL<C> FLAGY FLAG? ! : Destination address Packed Decimal data, memorg BYTE counter for 1/0 routines ;31389 231390 : 1 : STEPC FLAGOD ;31388 Once get it even. ALUS_polarity of result PLAT(CH MDR 131387 ;31393 131394 : 763. Base address, destination moditied R AR AN R R RN R RE R AR R TR R R AR R RN R R R RER i RN Sy aoomwowawm—noomwowbwm-»o-om\lomb N e b OOOOOO R A A0 AN Page (LOKX Rev 13.00, (lock rate = 160ns 764 Initiatization Initialization' : Decimal String .T0C DS.ASHP: - IS AN = O 000 O - - o - - - - - RCTEMP8] SEXT(MEMDRY), LOD INC BRA?,NEXT/0S.RED b b -3 NI NONUNY —3 b 8 = PO RO DS RO N N AN N N AN AN A 2 I D - AUSH, S1ZELBYTE] b ol e P LRl o o P N N S SR AR AR AR ¥ S PR o L uiaulgulaudSuiuiui-ul il Guir gl i gl T ] 12 8EGION/1RDX.R1L.IRDX.R1H/1RDX.R2L,IRDX.REH CO O 129D, 0480,0036,4AF0,0047,04F7,0 DN 8 B D D B J 0186,7(37,0180,0047,001¢,0 N N N N N N N N N 129¢, N s 0287, 0485,2E5E,0810,D8E7,0129,¢C Gt et tuttut GeBo, (485,259t,4782,4047,041G,0 Y PP TR TR 0285, 0085,2592,4180,8047,0410,0 N U U U U A » 02B4 A 0C85,2E5E,0190,4047,0412,0 R S N P P R R PR T VTR TR TR PR P PR PR R S 0327, 0880,1002,6030,0047,0138,1 AN A AU LA (A N M L A U U A LU A O N A8 N A AN TN LN AT N A AN N N W NN Decimal String i 0328, 0085,2E5¢,0182,0047,0410,0 16:30:35 28~N0OV=83 JLASAR Do PUSH to return after (ast operand, Store COUNT operand, read srclen.rw ;(We will continue at DS.ASHP,2:) O —ve- D MCTEMP1].0R.RLTEMP3], NEXT/DS.ASHP,LENGTH =00 DS.ASHP, "\J MI(RC2 KA U A A (MTQ08 Mrx DECMAL (MIC Here after last operand read, OR ;Source & Destination lengths --------------------------- - Rrrenp13 SEXT(MIMDRY), LOD INC BRA?,NEXT/0S.ADD, TEMP1_srclen.rw, read source address PUSH, SIZELWORD] ----------—----—----------u RfTEMP?J M[MDR],PUSH, LOD INC BRA?,NEXTZ0S.RED ;10nemmmmmmemeemenemaeemmacaa= RITEMP9]_ZEXT(MCMDRI), SIZELBYTED,PUSH,LOD INC BRA?, :TEMP2_srcaddr.ab, read round.rb RTEMP9_ROUND operand, read dstlen.rw NEXT/0S.RED h[rfmpi] SEXT (M[MDR]), SIZECWORD],IP.TS? - JTEMP3_destination ‘pending? length, anything SEGJON/DECMAL.R1L+DECMAL.R1H/DECMAL .R2L ,DECMAL .R2H fl[TEMP?] €C_2LITO LOD INC BRAT,NEXT , or timer service, shift-in temp. (C(guess eyen dest.)_ zero, read staddr.ab without PUSA, return to S.ASHP: +1 INTPEND OR TIMER? PUSH, NEXT/IE.SERV,IP.T§2 :Yes, see what it is, roll back if int, ipending | ; is CMTQ98 , MCX DECMAL JMIC MICRO2 1TM(017 Decimal String ! Page 765: CLOKX Rev 13.00, Clock rate = 160ns : Initialization 131451 IR R AR AR RN AR AR KRR XA R ARk k ok ; RRR IR AR, : ; Operand reads are done, DREG has OR of lengths. R R RANGNERRKI AR R R KR AR KRR AR AR IR AR AR AR : : 131453 DS.ASHP,LENGTH: :31454 jmmmeemwsssesce—ccscccssuesescas H J 1381, 0980,0¢33,8A70,F847,0129,E 131455 :%}229 121458 =0 : £ 12 SRR AR AR R AR AR RN R AR R 131452 | 16:30:35 131449 131450 i i 28=NOV=B3 331459 U 129€, 0086,85BE,4B30,58E7,012A,0 “ 129F, 080,0036,4030,0047,00FF,8 :31460 ;g}zg; :31463 WB_D.ANDNOT.ZLITO(31.3, WX NE.O? sttt H | NEXT/DS.ASHP, INT( | ;Yes, store source length, PT —S ; NEXT/IE.OPER,FAULT 131469 RCR1]_MLTEMP2],SET FPD, 31472 ¢ 12A1, 0480,0036,4AF0,0047,04F7,0 131473 ;é}é;é ; MCTEMP8] RLTEMP1],IP.TS?, :%%zgg 131466 =0 ;g}z;g : | ! ;anything pending? | :No, **reserved operand fault 231467 DS.ASHP.INTC: ;31468 et ei ettt H U 12A0, 00EC,2592,4034,4047,0138,2 , JAre lengths legal? . ] . ! | | ; . ;Nothing pending or timer service, NEXT/DS.ASHP, INIT ! ;load source address & FPD_1 1 St ; PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.IP.TS? f :Yes, return =1 or roll back ! 131476 ; ‘%}2;; DS.ASHP, INIT: U 1382, 0085,2592,4034,C047,0138,3 J 1383, 0086,958E,42B0,7047,012A,2 Eg}zgg 131481 RCR3J_MCMDR] ‘GPR3_Destination address jmmmemmmmmeeeeem—eee———eeeaaa—— : :g%zgg MCTEMP9]_RUTEMP3],WB<0>? 131484 TR ;%1435 :31486 ;31487 :31488 JMTEMP9_destination length, is it odd? AR AR RKRR AR AR AR KRR RN KRRk h R AR AR ARk kR kW ; polarity of Count., TERREAR AR R AR Initialization splits on evenness/oddness of dest. R RAR IR AR KRR AR AR KIIRIRKARIARKRAK IR AR +31491 DS.ASHP.(NT: 31492 ;Qememmmmmeeemmmmnenn en e: U 12A2, 0C16,A5BE,4B62,0047,091E.D 351« y 12A3, 0980,0037,0030,08A7,0124,2 131494 :%%282 131497 131498 ! ; After FPD unpacking we reenter at DS.ASHP.REE: directly to split on 131489 =0 ;31490 DS.ASHP.REE: ;31493 ! MLTEMP10] _RETEMPB], SIGND CMPT,NEXT/DS.ASHP.CSIGN, SIZELLONG],CLEAR FLAGZ ' i i(no, even,) What is sign of count? ; {]mmmmmmmmmmm—— . —— e oo : CC_ZLITOL1],NEXT/DS,ASHP.CNT R KRR KK ;Yes, PSL<C>_1, check pointer ; U 12A4, 0880,9E52,9870,1907,011F,1 U 12A5, 0C80,00A%1,0034,44A7,0505,D U 11F1, 001€,A080,02AD,98(7,091F,4 344+ U 11F3, 085E,A080,02AD,98C(7,091F,4 344x P 1 i ] 1 1 1 1 1 1 1 — L] [elelelelelelelolelells) L NN N N R N PG N LAS P G R U 1385, 0080,8001,A030,8107,0124,5 LA AN LA U N A N A U AN A A S U U LNPt AT NN N O (N N G NN N A G NG Gl Gui S PP i Gt Gl it S L G G U 1384, 0D80,0EF6,4030,4047,0138,5 T T e O R TR T T U 11EF, 0856,A003,003D,8047,011E,D o Decimal String U 11€D, 0986,0(37,0030,7847,0138,4 16:30:35 28-NOV-83 1M(QT) \O(X)\JO\h&\wl\)—\O‘Om\lOWJ\WN—‘O*OG)\JOWJ\WN—‘OOG)'\JOU'I-L\WN—'O*O DECMAL.MIC MICRO2 N NN N N H (MT098.MCX \.nu'l\.n\.n\.nuv\.nmu’l\n\.nu-uu.n\nmu'nm\n\nmm\n\nmu\mmmmmmmmmmmmmw-fi ; ! F 12 : CLOKX Rev 13.00, Ctock rate = 160ns Source READ and sign decode : Decimal String ' DS.ASHP.(SIGN: ;0 e e e L L L L ; Source READ and sign decode' LD MCFPDOF FSET] L 1T0C15.3, ;(Count>=0), load IANDE ASHP offset NEXT/DS.ASHP-PRE.READ PR R e e L S L LO T SET FLAGZ ,MCTEMP10]_-MB, Count<0, set FLAG, make it pos. NEXT/DS.ASHP.CSIGN DS.ASHP.PRE.READ: fiL_[B.J ® o - oy ‘Load PLATCH for byte rotates e e e e STEPC_D_MLTEMP8].SR.1, e 0 O O . IN SHP. SOURCE NEXT/DSTA 152 STEPC Q_MLTEMP9].SR.1,ALUS?, NEXT/DSTASHP.LOOP. SGN’ } S PUSH,VA_D+RER1]+1,NEXT/DS.READ 1525 DS.ASHP.SQURCE IN: 8 1L/2, source, STEPC is loaded STEPC 0. L/2 for future DS.WRITE call, .what Is"sign of source? ACTEMP10] MB-1,S1ZECLONG], ALUS_SIGND,CLEAR FLAG3, WB<0>7 ,NEXT/DS.ASHP, LOOP SPL = | z ! .............................. 153 } % ! ,Point VA past sign byte, read source =01 DS.ASHP, LOOP SGN: 153 1537 % g Page 766 =01 } g 152 1530 } g ; iPositive source, dec. count, is result todd or even?, & ALUS_polarity of resutt ) }lemmecccccccecccesscmcscassces; M[TEMP1OJ MB-1,SI1ZELLONG], ‘Negative source, dec. count, is result ALUS_SIGND, WB<0>?,SET FLAG3 jodd or even, & ALUS_polarity of result i i i ; Page 767. b 29 .T0C 42 :****fi**t******t*fi*tt***k****ttittt**i***t**t********tt**********ttt*** i 44 ;t***tt*ttit*tt*********t*********************t*************t*********t ; Beginning & Loop of ASHP shift : Decimal String ' : Beginning & Loop of ASHP shi| ; ASHP shift loop begins here 45 =90 46 DS.ASHP.LOOP. SPL 48 MCTEMP10]_MB-CONX(2) ,ALUS_SIGND,:Count is 0,2,4..., dec. count for rext 49 g? FLAG2? ,NEXT/DS.ASHP.NIB,POSH 32 ;(byte) decision, split to nib. code, :PUSH for DS.xxx10 RETURN [+2] ;0] mememecenne s —e e e : . . f ‘ i i ‘ 53 gg MCTEMP10] MB-1, ALUS? ,NEXT/DS.ASHP,BYT, SPL ;Count is =1,1,3...1it was even & is ;again, is it neg or pos.? i ! 56 R ; ; ;what is polarity of this pass? ! gg ALUS? :We've shifted source by a nibble, 59 AR 2 AT AR AR R AR AR KRR AR AR R Ak Ak kA kb kb kh ok kb k ko k kb & Here from first Count decrement (original count was even) or after a byte-shift pass o~ the nibble shift pass from an odd count. ALUS was loaded with the signd compare of the Count decrement (by 2) for ; this pass. | . . . . ; =01 is Count is positive or zero, it was positive, decrement it for 3 Z : next pass & shift by a byte. . . : =11 is Count was negative after being decremented, we just ; our last pass. finished ;****k**it***t**tt***k**k*********************k***************t******** =01 DS.ASHP.BYT.SPL: - ] =y 0 Sy i | | ! | i i F i s e MCTEMP10] MB-CONX(2).ALU§ ?IGND.EDec. count & store polarity for next FLAG2? ,NERT/DS.ASHP.BYT.SA 1 - e e o S ;pass through, which way are we ASHing? e e S8 MCTEMP7] _RLTEMP9].RR.8,FLAG2?, 1 SO0 NN NSNS OO0 oW ! j 6? QO NNNNNNNNNNOOARPIOOONONON b e b b D e N N U LA N N LA NN b h ed o b od md md e o AT LA AT (AT U e b e U 11FB, 0886,7287,0482,4047,0116,8 LAY LA U 11F%, 0C086,A710,0490,18¢7,010€,A ek oD A N AT A L N b b D a3 b b d b AT U LA N N U U U 11F6, 0480,0036,4B70,1847,011F,9 D ) d d d D e N N N N ek e N e A A T TR T T T e P T P R TR TR PR TR PR TR P PR TR TR 2 U 11F5, 0486,A080,087D,9847,211F,9 43 ! CLOKX Rey 13.00, Clock rate = 160ns NEXT/DS.ASHP,DONE : P ;Rotate round operand to proper byte, swhich way are we shifting? I Decimal String U 11F4, 0CB6,A710,0490,18¢7,0515.8 16:30:35 28-NOV-83 1M(O1) N DECMAL . MIC MJCRO2 . e : CMT098.MCX u-mmmmm\n\nmmmmmmm\nmwwmu’mmmmmmmmmm\nmwmw\nmmmm ; G 12 : ; CMTO98.MCX DECMAL .MIC MICRO2 1M(01) Decimal String 28-NOV-83 : 31581 131582 :31583 131584 =0x+ 16:30:35 H 12 : RS RAAT AT CLOKX Rev 13.00, Clock rate = 160ns Page Beginning & Loop of ASHP shift AT LIRS ; Byte chifting. ARSI R AR LESARALAALAAESS AL AR =0+ is Count operand is >0, =1** is (Count operand <0. t**itti**t*t***tt*t*t*ti*tt*t*tt*tt**********************i*t*t**ttt*** :%}ggg DS.ASHP.BYT.SHF: J 10EA, 0980,6C12,0A77,F847,012A,8 U 10EE, 0486,38F7,0031,0047,0138,6 :31587 ua“MLTEMPS3. AND 2L 1TOLOFF ], 131560 ;1% kmm=—escscmecccecceccce—ceses; :%}ggg :31591 231592 :31593 U 1386, 0086,48F7,0031,4047,0138,7 131504 ;%}ggg 131597 U 1387, 0486,58F7,0831,98E7,0124,6 U 1246, 0086,68F7,087D,9847,011F,9 M[TEMPSJ (RCTEMP4] MB) .RL.P M[TEMP6] (RCZEROJ MB).RL.P, :31607 :31608 iDividing, shift 4 TEMPs by a byte ‘toward Low end jee=mmmemeeecoecmemcececceeeeenae ; 131601 =0 131602 ;31603 :%1282 out? MCTEMP4]_(RCTEMP5] MB) ,RL.P MCTEMPSI_(RLTEMP6] MB).RL.P, :g}ggg Multiplying, will we shift anything jemsmcemeesemeeececececeeceeeee; $31598 131606 u 1247, 0480,0036,44F0,0047,04F7,0 WXTNE.0?,NEXT/DS.ASHP,BYT.BIG IP.T8? :Int. check here ;0=m===m=mmmemcmccesccoomsemeseo; ALUS? ,NEXT/DS.ASHP, BYT. SPL jlem==emescmcmmccc—mcecacccceees; INTPEND OR TIMER?,PUSH, NEXT/IE.SERV.IP.TS2 . Nothing or timer service, loop back RETURN-1 or branch to IE.PACK.DONE 768 28-NOV-83 3 ;**fi*****i*ttitiikii**iktt*tt*t*!t*l‘!it*it!t*l’t*ttit**it*tt************ I 4 TEMPs by a byte from high end, DS.ASHP.BYT.BIG: v o ey e e RLTEMP6]_ (MLTEMPS] RB).RR.P, o W NEXT/DS.ASHP.BYT.BIG.2 R Dttt R il et SET FLAG1, RLTEMP6]_(MLTEMP5] RB).RR.P et : ;<V> image_1 - DS.ASHP.BYT.BIG.2: ACTEMP4]_(MCTEMP3] RB).RR.P, IP.TS? :Anything pending? =0 ; RCTEMP3] (MLTEMP?] RB).RR.P, % ALUS? ,NERT/DS.ASHP.BYT.SPL 3 Rt 3 3 ; =0 g 3 769: i :**t**ttt*itt*t*i*ttt************t**k******k******t*******************t 2 g CLOKX Rey 13,00, Clock rate = 160ns Beginning & Loop of ASHP shift ‘No, or timer service, TEMP7 is zero, s loop back etttk H INTPEND OR TIMER?,PUSH, NEXT/1E.SERV,IP.TS2 :Yes, RETURN=1 f : or branch to IE.PACK.DONE I : 000 NN N Sy e S Gui il Qui Yl Wi Qi Sl G ¥ it Pui Gl PG ut-put-ul Gt Quit-uul Gt Qui-Su Gyt gt 2 Page ; e it Gt P Gl Gl GGl G G R S 2 2 2 2 16:30:35 : ; Bgte shift, multiplying. =0 is nothing will be shifted out from ; TEMP6, =1 1s something will be lost, we have overflow. We shift [11, S P Y TR TE PR TR P U 12AB, 0480,0036,4AF0,0047,04F7,0 N LN N U AN A A A AT A N U 12AA, 0084,7137,0870,0847,011F,9 L U 1389, 0484,3137,0831,18E7,012A,A R U 1388, 0084,4137,0031,4047,0138,9 TN U T A G T U 12A9, 044C,5137,0031,8047,0138,8 TR T P P R T P N NN N N N N U 12A8, 0C84,5137,0031,8047,0138,8 AN — OO 0 AN SN = OO 00 NN WSS WO = OO MICROZ2 1M(01) Decimal String oo Se oo NoNo Xe No Yo No No Yo o Ne ToNo To No To To Yo Yoo Yo o Yoo dolo o g (MT098.MCX DECMAL .MIC N AN N NN ; : Decimal String J 12 CLOKX Rey 13.00, Clock rate = 160ns Beginning & Loop of ASHP sh1ft Page — O '*tt*t*ttttt*t***k**k**t*****k******t*************t**tititttt***ttt*t*t : Nibble €10.) shift being done. Here on FLAG2? BUT, =0x+ is count>0, ; we are multiplying. =1%+ is we are dividing. PUSH for multiply ; agd divide routines was made at DS.ASHP.LOOP,SPL: and we will RETURN NN OOV NN = NN NS = OO Qi G- Sy PR PR N P N AN O R N O S T T P L AN N LN A N T G-t gl Sinipuld Gl GGl G R R it G N N g LA NN P U 12AD, 0448,0036.4030,0047,01¢8.C L U 12AC, 0080,0036,4030,0047,0128,¢ bttt Sl Gt G U 115F, 0480,0036,4030,0047,0128,8 TN LA LA U 1158, 0D80,6C12,0A77,8047,012A,C 16:30:35 28-NOV~83 1M{01) N DECMAL .MIC MICRO2 N H (MTO9B.MCX Lo YooY Jo JoXo No To Jo Xo Ho JoTe No Jo Ho o oo Yo Todod OO ULV LIS SN S DN DO B I ; ‘ ., ‘t***k**i***t***************t*k*******************t*t*tt******it*i*tt** =0 DS.ASHP,NIB: 0R e - e 0 S D S A e e hB MCTEMPG6).AND.ZLITOLOFO], WX NE.0? ,NEXT/DS.ASHP .NIB.B1G R R e b ¥ ;Will we lose anything on shift-out? ] e R NEXT/DS.DIV10 =0 DS.ASHP, NIB BIG: e e e ‘Divide=by=10. e —— .- Nothing lost, do multiply —---—-—m-u—--——h----~—------.-' SET FLAG1,NEXT/DS.MUL10 Overflow, ditto 770 ; H CMT098.MCX DECMAL MIC MICRO2 1M(OT) Decimal String ;g}ggz .T0C ;31665 : 31666 :31667 131658 K 12 CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 28~NOV-83 : Adding Round, writing dest. AR A A i i it AL LA . 1 Adding Round, writing dest.''. : Decimal String ' ' Page 771f AR AR ARE AR AASAMALALLAL RS LS f : Shifting is done, Round operand is rotated to correct byte for add ; if needed, STEPC & QREG are loaded for DS.WRITE call. Here on ;s FLAG2? sp[lt, =0xx s positive AR shift, =1xx is pegative shift. AL R AR AL A A AL AR A AR MMM AL A A A A 131669 R ;31673 WB_0-CONX(1), :31675 NEXT7DS.ASHP.SIGN A A AR A A AR ! ! | LD 131670 =0xx 231671 DS,ASHP,DONE: ;31672 ottt L L DL L L L LU C ; U 1168, 0080,0734,04C0,10C7,012A,E :31674 131676 :31677 i ! ;Force ALUS<1>_1, what was sign of ALOS_UNSGN,FLAG3?, ssource? ; : i ! ettt .= : U 116C, 0086,3001,4021,0047,0138,A : 31678 MOTEMP3]_(MH+RLTEMP71).B(CD ;Add round to most signif, ;digit shifted out ; U 138A, 0C86,4041,4020,8047,0138,8 Eg}ggg MLTEMP4]_(MB+ALKC) .BCD tAnd add ALK<C> up the string |i U 1388, 0086,5041,402D,8047,0138,¢ U 138C, 0986,3(093,8030,7847,0138,D 131679 : ;31684 ettt H MLTEMP5]_(MB+ALK() ,BCD :31687 jeSS=ssecemsesssssseussseme———— H : :%}ggg 131690 U 138D, 0086,6041,44ED,9007,0124,E et :g}ggg ;31691 ;g%gg% :31694 131695 $31696 $31697 ;31698 + 31699 231700 =0 MLTEMP3]_MB.ANDNOT.ZLIT24[0F] i i U 12AE, 0586,3092,4030,6047,0128,1 ;%%;8? :31708 U 12AF, 0186,3092,4030,6847,0128,1 131707 ;31708 i ;ALUS_CARRY data. what was source ALUS_UNSGN,FLAG3? R R IR ;sign? AR AR AR AR R AR ASA AN AARA R AL SR AL AN ; FLAGO=0 (count was positive) split does FLAG3? BUT to mask sign. If ; ALUS<1>=0, we have ov from adding round operand, if ALUS<1>=1, no : ov (Count>0 forced ALUS<1>_1). IR AR AR R KRR R R AR ER KRR RN RR AR AR Rk kk % RRER R 231701 DS.ASHP,SIGN: 31702 ;31703 : :Zero sign nibble position I Tt -; MITEMPG] (MB+ALKC).BCD, PR , : L tateeta et s tet e duteiat wm——— . . MCTEMP3] MB.OR.ZLIT24[0C], ;Source i¢ positive NEXT/DS,ASHP,SIGN.2 lecvsusasacmmerasmassssmese—. ; MCTEMP3] MB,OR,ZLIT24L0D], NEXT/DS.ASHP,SIGN,?2 ;Source is negative i ; ! ! H H (MT098.MCX DECMAL .MIC MICRO2 1M(Q1) 28-NOV=-83 Decimal String L 12 CLOKX Rev 13.00, (lock rate = 160ns : Page Adding Round, writing dest. ;31709 ;****tfl***tttt‘(ttktfitittttt*tt*ttt*th**ttt**t**ttkttk*i*tt******ttt*tkfl 231711 R :31710 ;31712 =0 $31713 U 1280, 0880,9591,A580,0047,0110,8 16:30:35 :31714 ;%};}5 H o] ; PUSH is made at DS.ASHP.SIGN.2 for DS.WRITE call(s) e e R AL T AR AR S AR AR SR AR AL AL LA LA ;0mweemccemcsncccccoos s c s nan=s D MLTEMP9].SR.1,FLAG<2+0>?, NEXT/DS,ASHP, LAGS YRETURN from WRITE, D L72, spllt on <ZVO> to =000, =010,7=100, or =110 ;g};}g DS.ASHP, SIGN 2: y 1281, 0850,05BE,4B74,DCA7,051F,D 131719 131720 PUSH ALUS?,VA_RIR31,SET FLAG? 72 131722 U 11FD, 0448,0036,4030,0047,012C,F U 11FF, 0C80,0036,4030,0047,012C,¢ ;31723 =01 :31724 :%};gg 121727 131728 .Load base dest. address for DS.WRITE, ;Init, <Z>image ;0]osmcccecnnonscncnnmonmmenn SET FLAGT, NEXT/DS.WRITE {CARRY=1, <V>image_1, write data P NEXT/DS,WRITE ,Ok, write data ; CMT098.MCX DECMAL MIC MICROZ2 1M(O1) De¢imal String AR AL AARALARLALA A ML LA L LA ;g};%g ; from =100 (overlapping). FLAGO=0 for FLAG<2~0>? split. : 31741 ;31742 :31743 bbb bbb A R A e ; i ! | ; : g R[RZJ FLAGS ,NEXT/DS.CCPCIRD1 ‘Dest. is nonzero, nonov, ok ;(Also trom FLAG3? split) ' i ;001 mmmm e cmcccmcnncn e ey ) ! CLEAR FLAG3,NEXT/DS.ASHP.FLAGS , WRITE ZLITQOCOC),SIZECBYTE], 131747 ;010=mmemmmm o e e mcmc oo aa oo seeas ; ! 1100~ =vmmeammm—aaaaa —emmmma———; i :%};22 :%};zg 31750 =100 :31752 ;i%;gz 131755 =110 [r———————r St sremp s . ! to set CC & finish inst. * DIVP branches directlyS RtoA DS,ASHP.FLAGS L AR E AR AL R A A AR LA LML A A AL AL LA R R : 7731 131744 131751 y 110k, 0418,0036,4030,0047,0110,8 ; BUT table from FLAG<2-0>? split above and a FLAG3? split :%};gg DS, ASHP, FLAGS: 131740 Page Settinyg €C'' RIAAIA MMM AL LA LA A 131737 =000 J 110C, 0880,0021,06F4,(4A7,0110,8 : Decimal String ;31731 131735 U 110A, 0884,0036,4034,8387,0138,E Setting CC " 131736 u 1109, 0118,0¢37,0000,65D08,0110,8 : CLOKX Rev 13,00, {tock rate = 160ns ;g};%g .T0C 131732 U 1108, 0884,0036,4034,8387,0138,¢ 16:30:35 28-NOV-83 M 12 231756 ;g%;gg — RLR2]_FLAGS,NEXT/DS,CCPCIRD1 VA_D+R[R3J,FLAG3?, e e ;Dest, is nonzero, ov, ok e e ! ; : is zero, no ov, is it negative? ;(BUT to =000 or =001 CLEAR FLAG3.NEXT/DS.ASHP.FLAGS —— :<N>image_0, tinish inst. ‘Dest. NEXT/DS.ASHP.FLAGS 10 (From FLAG3? split) WRITE +0 to dest., :Dest. is zero, ov, dest. is ok, CC<N>_0 1M(0%) 28-NOV=-83 e N N kAR Ak Ak AR kR ARk A kA Ak GPR2 has (C image, dest, is finished, kA ko i This is a common instruction exit for all Packed Decimal instructions. Note that certain R T ADDP<46> and SUBP<46> enter directly at DS.CCPCIRDT. ASHP enters directly at DS.CCPCIRDT, CVTxx instructions finishing through DS.CTVXX.SETCC code enter at DS.CCPCIRD1,CMPP, DIVP enters directly at DS.CCPCIRDI. MOVP enters directly at DS.CCPCIRD]. MULP enters directly at DS.CCPCIRD?, | ! i | DS.CCPCIRDT: * T Ay ¢ E(MULP(ASHP.DIVP,MOVP.ADDP<46>,SUBP<46>) O tC_R[R23 N0 00 ;copy S oy o o © o e o o RCR21_0,CLEAR FPD, A e e G R NI 5 S NEXT/BS.CVTPL. IRD1 R ;+§+*++++++++++++++ R T image to CC iFix GPR2, clear FPD ; RCROJ_O IRD1 is available else where R : the next word loc 1390 is removed for mm fix O~ 00 774 ! N S NN = SO 00 NN N NN OO Page Setting (( ;itttl*flit*fltfiktttt*kit****t*t***t******t****t**t******t*******t******* N N~ N £0 00 00 £0 0000 0000 G0 st sttt Pt 0 Sttt CLOKX Rev 13.00, Clock rate = 160ns : instructions listed here enter ASHP code before DS.CCPCIRDY, RO N NN sl NN N N Qutt G NN NN SN fuct -ttt N N SN N NN N NN N NN SIS -Gt D AN P PR P AW A P T N U A N TR TR T LA N L N e S S U 138F, 04E4,0587,0034,3047,0134,9 A N T P T L L AT AN G LA NN L U 138E, 0C80,05BE,4034,80A7,0138,F 16:30:35 AR KRR AR AR R AR KRR R AR AR AR AR NS W OO Decimal String L MICRO2 NN NN (MTO98.MCX DECMAL . MIC PR TRTR TR : I ; : N 12 ' S o e e RCROJ_O, IRD1 o G e O L(CVTxx) GPRO is ok, IRD1 4 i 775 : ;fitfik*tfil*'hfi!\t*tllt!l!!tQW!t!1111fl!!'!!Qttt“'ttt*ttt*t**tti*fi*t*fitt&fl ; Pack routines for some Decimal String instructions, ; ; Instruction: ADDP4 : SUBPY4 . ADDP6 . SUBP6 ; ASHP : MULP ; : ;. : ; MOyP CMPP3 (MPP4 CMPP4 FPDOFFSET: 14, Enters at: DS.DS.PCK.GPR2.2-3 15. 16. DS.DS.PCK.GPR2.3CON DS.DS.PCK.MULP 14, 14, 14, 17, 20. 20. DS.DS.PCK.GPR2.2=3 DS.DS.PCK.GPR2.2-3 DS.DS.PCK.GPR2.2-3 DS.DS.PCK.GPRO.{ON 0S.DS.PCK.CMPP34 DS.DS.PCK,CMPP34 DS.DS.PCK.CMPPR4 18, (leadging byte READs (seperate flows)) Some of the fOllOHifl? inputs are set up in the [ANDE FPDOFFSE] BUT table. M=MOVP, (3=(MPP3, (4=(MPP4 in sep. tlows, C6=(MPP4 when in CMPP3 code, +=<ADDSUB>P<46>, »=MULP, i S T P input GPRO MTEMP8 (Source 1 L) in byte#l, 0 fill GPR? MTEMP9 (Source 2 L) TEMP] MTEMP8 MTEMP9 RTEMP8 RTEMPY FLAGS READiIng base address, source #1 ((6). Source 1 Length (C4). READiIng base address, source #2 ({&) RTEMP8 in byte#1 (), Source 2 Length (C4), Source 1 L (ML3(6+TM) Source 2 L (+*) Dest. L or Count operand (+*) Round operand (*) FLAGS (MC3C4CH++") TEMP3 Data rotation & calc. L P PCBACK TEMP§ TEMP Resources "=ASHP: in other bytes PC (MC3C6). (%), deltaP( (Istream) ((4) (++%) Points past |stream (+x*) Opcode +2 (MC3C4CHH*) : | et OO AL NI O OO OV A NN 2D OO NC OURUPURINOALNINVNY 3 b b b b ek ek -2 - 2 =2 O OO OO £ ¢ 00 €0 00 00 Co $O 00 03 €O 00 OB C3 GO €O 01 €0 00 €0 Co Co 00 (D b mnd e e e b e b h ok ik o b b > b b TR TR T DI TN i b d eh ok B e w. .. AN L L Lad A A N L AT U LA A A U A G A LA U L U R . i e e b e :3180 ;3180 . 3180 :3180 ;3180 Page : DS.DS.PCK routines' Decimal String ' IR PP 13179 13179 CLOKX Rev 13,00, Clock rate = 160ns ¢ DS.DS.PCK routines UL =2 D d wrd o D d ;3179 13179 ;3179 L R i ‘ i NWA = OO0 b e 13179 13179 .10¢ 16:30:35 T O :' 79 :3179 O NN ;g H ) 28-NOV-83 LI 1M(QD) Decimal String D DECMAL ,M]C MICRO2 eh e ek ; {MT098.MCX A LA U AN A LA ) A UM N AN N NN AR ; : ‘ B 13 — e+ e MICRO2 e AIVES B DN DN I B B B £ I WHIN UM WIWN L AIND €SO0 O N I UANND = OO0 N WL NS = OO D 0 G0 G 60 00 o €0 00 000 Co €O 00 Co Co 0o 00 €O 00 CO OO N AN D e d ad R 3LTR L AN b [ D b wmd et —b b TR A A AR N i LN A LA AR N b b N A R b e YR AyN Decimal String I 16:30:35 28=NOV=83 1M(QD) b —d DECMAL JMIC e — : {MT098 . M(X e TN A LA L : em— e L oo c13 ¢ DS.DS.PCK routines For all instructions except CMPP4 during Qutput * 776 Page CLOKX Rev 13.00, Clock rate = 160ns segerate flows: * GPRO #0 FLAGS 1 MTEMPB * 2 <Unused> 3 PC-P(BACK ’ 4 GPR2 #0 MTEMPY (not MOVP, (MPPc34>) [ 1 RTEMP8 (not MOVP, C(MPP<34>) 2 RTcMP9 (ASHP only) For CMPP4 during seperate (leading byte READsS) + flows: GPRO #0 TEMP3 (Length #2) H [ 1 H TEMP1 (Length #1) 2 One (1) 3 PC~PCBACK ’ H GPRZ #0 'Base address''-Base address (src.#1) H 1 'Base address''-Base address (src.#2) H ; Note that some instructions change FPDOFFSET values during the course : : of execution, * ; TR + eg. initialization, AN R R RN AR RN 'MULP'' Looks & packs like ''ADDP6'’ during R RN R AN RN R R R AN RTRE RN AR RN RN N T RGN AR PR RS b {MT098.MCX DELMAL.MIC MICROZ 1M(01) Decimal String 28=NOV=83 16:30:35 D 13 (LOKX Rev 13,00, Clock rate = 160ns : DS.DS.PCK routines Page :g}gg; 25.DS.PCK.GPRO.CON: 1391, 0485,9003,0034,0047,0139,2 Eg}ggz RCROJ_RB=MLPCBACK] icalc. deltaP( Eg;ggg DS.DS.PCK.GPRO.CON.A: 1392, 0(84,0287,0004,0047,0139,3 1393, 0484,838E,4024,0047,0139,4 1394, 0482,0036,4004,0387,00FE,2 E;}ggg $31859 ;g}gg? RCROJ_RB.RR.8 P ) T e RCROJ_RB,OR, (M[TEMP8].RR,24) Eg}gg% DS.DS.PCK.MULP.EX: 131864 RCR01.SI1Z_FLAGS,SIZELBYTE], ;g}ggg NEXT/1E.PRCK.DONE LT {FLAGS, all done 131867 ;31868 1395, 086,3287,0022,0047,0139,6 :%}ggg DS.DS.PCK.GPR2.2-3: ' }g}g;} ‘Move & mask RTEMP8 data (0=1F) 31873 1396, 0484,3002,4034,8047,00FD,1 131874 ;g}g;g MLTEMP3J_RLTEMPBI.RR.24 T et —mmm———; RCR2]_MCTEMP3].0R.R8, NEXT/BS.DS.PCK.GPRO ‘Next loc. is in IANDE BUT table 131877 131878 :g}ggg DS.DS.PCK.GPR2. 3CON: 1397, 0086,3287,0012,4047,0139,8 1398, 0(84,3002,4034,8047,0139,9 1399, 088¢,358,4032,0047,0139,A 1394, (884,359 ,4002,0047,0139,5 }g}gg; :31883 :;}ggg :31886 MCTEMP3)_RLTEMP9].RR.16 {RTEMP9 data into position R e L L L L; RCR21_MLTEMP3],0R.RB e e L LTemme——— : ;351887 MLCTEMP3] _RLTEMPB] 131890 131891 T L; RCTEMPB]_JEXT(MCTEMP3), 31893 NEXT/DS.DS.PCK.GPR2,2~3 ;31888 : 31889 ;31892 SIZELBYTE], :Count operand can be anything, mask Jout top 3 bytes 777 13A6, 0484 ,33BE,4004,0047,0139,4 = O D 0o NI 778. ; CMPP3=CMPP4 gack during common flows enters here with GPRO containing ; PC on an [R<2-0>? split. =101 is CMPP3, =111 is (MPP4. ;tt*tt*t*t!t*ttt*t*ttttktttt**ifi*******ifi****fi***fi*************ti**i**i =101 DS.DS.PCKigMPP34: ;101 RLROJ_RB-MLPCBACK] CON.A NEXT/DS.DS.PCK.GPRO. O N S NN Page ;t*******fi#fi*t*i*k*k*ifitiiitfifi*fi*fififiQ**t**kt*iti*ttfit‘t*itttti*'tkttttfi VT B~ OOOOOCOCOO VYV OO0 O UL AN = OO 00 AN =2 000 NN = = — PRS2 A PR PLNLNLNOPLRU AN — OO QO NION A S N I LN N W NN B 2 OO 00 BN S I IS (NN NN AL S GUEPPET S GNT QU G SN CLOKX Rev 13.00, Clock rate = 160ns : DS.DS.PCK routines - + o e e Y oy o ey e - . - 9 S oy Yy T B o e o ¢ --------------------------------- RIR2]_RB.OR. (M[TEMP2].RR.24), NEXT/DS.DS.PCK.GPRO.CON DS.DS.PCK.CMPP4: --------------------------------- --------------------------------- --------------------------------- --------------------------------- @ o1 o o0 ey ot I s T O o i e e e RCROJ_RB.OR. (MCTEMP11.RR.24), ; NEXT/TE.PACK.DONE ! | I i DS.DS.PLK.MULP: RSy S S e b e L ) e R L L L TR T L L ECaL. deltaP( o o oy P P b P o o S e A 0 4 W P T T - B O 0885,9003,0030,(047,013A,6 BN BN D 13A5, 0885,A592,4030,C047,013A,5 PR S 13A4, P U TR W 13A3, 0484,3002,4034,8047,013A,4 I 2 0484,13BE,4024,0047,00FE, Ui PP 13A2, 0084,3002,4034,0047,0134,2 O 13A1, 0D86,3D37,0030,0847,0134,1 i Gl Quir iU 13A0, 0884,3002,4034,0047,0134,0 pbgulautout Suiini Quit ui 139F, 0C84,0287,0004,0047,0139,F LA LA NN L A A LA AT LA AT AT A N LA LA N G 139¢, T T T 1390, 0084,23BE,4024,8047,0139,1 e T 139C, 0084,1592,4034,8047,0139,D TR T T O 1398, 0886,2000,0034,€047,0139,¢ OO NN N P TR TR 2 1037, 0486,1000,0034,4047,0139,8 TR TR TR PR PR T P P T R A TN N AN O NN N N LN bt NS U U U AT N N L LN N U AN O N N NiN G AN N QN N A b gt Gu- G Qi i Gt G Qui gt Qe Gl S 1035, 0485,9003,0034,0047,0139,2 E 13 16:30:35 28-NQV=-83 MON MICRO? R g Strin al Decim elVolalNalVoXa Nollalle N o Nolla Lo llo L oo Lol oL a]olVolVelVelVelVe NolVolVe N NolValie Nalle o NalolisRelle Lo Lo La ) o}Nol X el el ale lo 1o To 1o Tos) CMTO98.ME§ DECMAL .M N . T o oy o Yoy T S oy e P RCROJ _RB.OR.(M[TEMP3].RR.8), NEXT/DS.DS.PCK.MULP.EX b § 1M(Q1) 28=NOV-83 Decimal String 231949 ;31950 131951 : 31952 ;31953 131954 :31955 ;31956 : 31957 +31958 131959 + 31960 131961 $31962 ;31963 131964 :31965 ;;}ggg e $31968 :%%ggg (] MICRO2 — CMT098.MCX DECMAL .MIC o H oONONONONONO T UYL LILR VTN S ; 16:30:35 F13 CLOKX Rev 13.00, Clock rate = 160ns Page ¢ DS.DS.UNP ' Decimal String bk : : longer source., GPRO & GPR2. i This FPD pack/unpack is special and uses both ) _ : DS-standard in GPRO, and special in GPR2. : 0) During common flows with (MPP3. ’ ! : This FPD pack/unpack is . ! ; ; <ADDSUB>P<46> pack is DS-Standard: GPRO and lLow word of GPR2 ; only. No int. code is needed, restart is at DS.ADDP4.REE:. ; and we ensure things by ANDing the bad , | ; values are > 31., the GPR's have 1llegal data due to user meddling value with 1F. :31978 ;%}8;8 ; GPRO & GPR2 aren't zeroed after unpack because the packed values ; are forced in fresh during each interrupt/BUS exception. ;31981 ;g}gg% ; In this banner, M=MOVP, (3=CMPP3, (4=(MPP4 in sep. flows, C6=CMPP4 ; when in (MPP3 code, +=<ADDSUB>P<46>, *=MULP, *=ASHP, :31984 231985 ;31986 R : : ;32000 32001 ! . :g}g;? 231997 ;%}383 ! : 1) During "'seperate flows'', which is the leading byte READs from the ; 1f MTEMP8, MTEMP9, or (for <ADDSUB>Px and MULP ONLY) RTEMP8 unpacked 131992 131993 131994 : 31995 131996 j CMPP3 pack is DS-Standard, GPRO only, no int. code needed. : Restart is at DS.CMPP REE:. H : CMPP4 has 2 interrupt environments: . 31974 : 3199 | kA k ok ok k ; MULP pack is DS-Standard: GPRO and low word of GPR2 ; only. No int. code is needed, restart is at DS.ADDP4.REE:. ;31987 : 31988 ;31989 ;31990 | 1 31971 ;%}g;g $31975 779 : DS.DS.UNP" :kR AR RN R AR AR AR A RR RN AN AR kA AT A AR A AR R AR ARk ok ko ke : ASHP pack is a DS standard Back with no int, code needed: : inst. is restarted at DS.ASHP.REE:. : H MOVP pack is DS=Standard, GPRO only, no int. code needed. : Inst. is restarted at DS.MOVP,.REE:. : : i Input GPRO #1: : H ; ; k2: ; : ; ; : ; GPR2 #3: #0: #1: : : ; : #0: FLAGS*(MC3C6+x4) TEMP3*(C4) MTEMP8* (M(3C6+%*) TEMP1%(C4) . lerg, unused (int. code) (MC3C6+%*) 1% C4) PC=PCBACK(MC3C4CO+%") MTEMPO* (+44) TEMP1*x(C6) RTEMP8(++*) This is (x) for all except ASHP TEMP2x ((6) 42: RTEMPO(*) <+ appended to values means for byte it is >=0> Resources TEMPQ TEMP3 Restores PC (MC3C4CO+x*) Temp. storage(+**) | i : ; (MT098,.MCX DECMAL . MIC MICROZ2 1MQTD) Decimal String 16:30:35 28=NQV-83 : DS.DS.UNP : 32002 $32003 132004 132005 ; H ; ; ;32007 ; ;32006 :32008 ;32009 ;32010 ;3201 :32012 132013 132014 :32015 132016 ;32017 : 32018 Source L (MTEMP8) (MC3(6+%*) MTEMPY RTEMPS Dest. L (MTEMPD) (*) Source 2 L (MTEMPO) (++) Count (RTEMPB) (%) Dest. L (RTEMP8) (+x) Round operand (RTEMP9) (*) Untouched(MC3C4C6+x%) H : TEMP?7 STEPC Zero (0)(*) Source L/2(MC3(6) : GPR2 ; : ; : DREG PC Note: Page Source 2 length(C4) RTEMPY9 GPRO H ;32024 MTEMPS : : ;32021 : 32023 TEMP2 FLAGS(MC3C4CH+x*) Source 1 length((4) ‘'Base address #1'' ((6) ‘Base address #2'' ((6) FLAGS TEMPT TEMP3 H : ; ; : :32022 Qutput : $ 32019 132020 G 13 CLOKX Rev 13.00, Clock rate = 160ns Untouched (MC3C4Ch+**) Source L/2(MC3(6) Pointing past Istream (MC3C4CH+®) PLATCH_[8.] and FPDOFFSET ZLITOL15.]) at DS.ASHP,REE:. FPDOFFSET_ZLITO[17.] at DS.MOVP,REE:. FPDOFFSET ZLITO£14 ] at DS.ADDP4.REE: t*t**tttii*t**tt*tt*tt**ttt*&utt**tt*t**tti**t***t**fik**t*t*t******ttt ; 780 ; CMTO98.M§§ DECMAL.M 28-NOV~-83 16:30:35 : H 13 Page 160ns CLOKX Rev 13.00, Clock rate DS.DS.UNP ;32025 .REGION/IRD1.RIL,IRD1.RTH + 32026 =000 0380, 0880,05BE,4034,0307,013A,7 132027 DS.DS.UNP: ;32028 ;000===scmmenemm e e e 132029 FLAGS_RCRO] : 32030 = $32031 :gggg% REGION/DECMAL .R1L ,DECMAL .R1H/DECMAL.R2 L.DECMAL .R2H 13A7, 0487,929C,7024,0047,013A,8 13A8, 0480,0019,0000,0487,013A,9 24 Q_PCBALK MTEMPO_RLROJ.RR. $ 32037 ;32038 PC_ZEXT(MLTEMPOJ)+Q,SIZE(BYTE] : 32040 132041 MLTEMP8) _RLROJ.RR.8, MDR_ZEXTTIR) 32046 MLCTEMP8]_MB.AND,ZLITOC31.3 e eseeecs s m ot cem oS e moe = : 32039 13A9, 0486,82B7,0004,0567,013A,A 13AA, 0586,8C12,0030,F847,013A,8 13AB, 0081,2592,4230,0047,010A,6 10A6, 0C86,958E,4034,8047,0138,2 10A7, 0C86,95BE,4034,8047,0138,2 1086, 0080,8001,A03D,8107,0100,0 1087, 0C80,8001,A67D,8107,0105,5 ;PC is restored Gttt Ll ;32042 :32043 ‘MTEMP8 data in Low byte, MDR_Opcode joTSmemes—ssessommesmus soee see- 132045 132046 :32047 EMTEMPB_packed value. ;value was illegal., 132048 132049 jmmmemesem— e ————— ———wem—- —— H WB_MIMDR], WwB<5~0>? :Yes, ;32053 ;10011gmmmem - 132050 232051 ;32052 =100110 e rm e c e m 132057 132058 11001711 =memmmm e c e e— MCTEMP9] RLR2], : 32062 ;1101105 : 32056 : 32059 NEXT/DS.DS.UNP.2 132060 132061 =110110 :32063 emmmm e e m STEPC_D_MLTEMP8).SR.1, ;32064 : 32065 e em NEXT/DS"MOVP.REE ;32066 1110111smmmmmec e e remmmma——— 132068 NEXT/DSTDS.UNP, CMPP34 132067 STEPC_D_MLTEMPB].SR,1,IR<2=-0>2, 132069 ;1111 ;32071 . , e MLTEMP9) RLR2], NEXT/DS.DS.UNP,?2 : 32073 1s a legal value, continue unpacking, :which inst, are we? 132054 : 32055 ;32072 If the packed new value :legal packed decimal length <= 31. : 32070 10BE, 0C86,95BE,4034,8047,0138,2 {TEMPO_deltaPC in byte#0, Q_PCBACK :32034 : 32035 132036 Qem~menmem e cccccnnnae MCTEMP9] _RLRZ2], n ’ 1M01) MICRO2 Decimal String NEXT/DS.DS.UNP,2 - MOVPL341, STEPC_D_L/2 for DS.READ, sreenter 1inst. 1CMPP3L35], CMPP4[371, STEPC_DREG ;DS.READ data, which inst. are we? {ASHPLFB], get MTEMP9 data — (MT098.MCX MICRO2 DECMAL .MIC 1M(01) Decimal String :32075 ,'32076 $32077 =101 omm o oa e taane = e e miam e 2 el e o s ek 113 28-NOV~-83 :32074 e s 16:30:35DS DgLSfié Rev 13,00, Clock rate = 160ns TR EKR KK IARKIR R KA KRR RRIIRhRk AR Ak Page kAR Rk Rk 782 kw kAR ; CMPP3 & CMPP4 split here. CMPP4 has 2 interrupt codes to decipher. 22 Y3 SL RTINS AS RS2SRSS S2 2222200022800 201 . 1222223282233 32 2 :ggg;g DS.DS.UNP18MPP34 0186,C(37,0820,A047,0904,2 350* 1057, 0¢80,02B7,0274,0047,0928,2 337+ 1282, 0086,15BE,4034,8047,013A,E 1283, 0C84,8592,4030,4047,013A,C 13AC, 0086,35BE,4034,0047,013A,D 13AD, 0186,3C12,0030,F847,010€,9 MCEPDOFFSET] _IL1T0L20.3, CMPP3[35], load FPDOFFSET, anything COUNT OR INT TIMER?,SIZELLONG], :Dending? E%Sggg 133087 =0 232088 2 $ 32089 WB R[ROJ RR.16,WB<0>? M[TEMP1J RCR2], YCMPP4 (#0), TEMP1_src.#1 offset data Eg%ggz RETEMP1J _MCTEMPS] CMPP4(#1). copy src.#1 length ;32082 $ 32090 :32005 NEXT/DS,CMPP.REE Qmemmemmmmemcm—seccccsonscsscnsy NEXT/DS.DS.UNP.CMPP4 .0 e L L P L; ;ggggg MLTEMP3]_RLROJ 132098 : 32099 ;===—=smme—eemccesssscceceseceeee ; MITEMP3]_MB.AND.ZLITOL31.3, ;Legalized, reenter CMPP4, seperate ;§S}8? 132102 NEXT/DS.TMPP4.REE u 13AF, 0086,22B7,0004,8047,0138,0 : 32107 R 132111 MCTEMP1]_ZEXT(MB)+R[R1], {TEMP1_offset+base address E%S}}g fi[TEMPZJ_R[R?J.RR.B ;TEMPE_source#2 offset ;32112 132117 1380, 0086,2015,0004,(047,0138,1 . 1381, 0186,(C37,0820,A0647,0904,2 350% ; flows '*t***t*tt**t*k*tk***k**itt*t*t*k**t*t*k******tt**t***nt*fit***fitttt**kt ; (MPP4 interrupt code #0 cont1nues here. TEMP1 has source 1 : "base address offset We don't mask out illegal packed offsed ; values since it won't affect the instruction. 232108 :gg}?g DS.DS.UNP.CMPP4,0: 0886,1015,0004,4047,013A,F ;TEMP3 data 132103 232104 : 32105 132106 13AE, SCMPP4L37], which int. code are we? A R A R SIZECBYTE] I AR R R A A IR A AR AR A R AR AR Adddd] b R R; ;32118 METEMP2] _ZEXT(MB)+R(R3], ;TEMP2 offset+base address 132122 MCFPDOFFSETI_ZLITOC20.1, tLoad FPDOFFSET, anything pending? ;32124 NEXT/DS.CMPP,REE 132119 232123 SI2ELBYTE] COUNT OR INTTTIMER?,SIZELLONG], I 1055, 132080 $ 32081 H : (MTO98.MCX DECMAL MIC MICRO2 1M(01) Decimal String 16:30:35 28=NOV=-83 J 13 : DS.DS.UNP ;32125 SRR KRR ARk kR AR R ;32127 Ll L e ;32126 232128 Page CLOKX Rev 13.00, Clock rate = 160ns AR AR R R R AR AR ER R AR RN ; <ADDSUB>P<46>, MULP, and ASHP continue unpacking here L AR RN R AN AL A L L L 783 i ;gg}%g DS.DS.UNP.2: U 1382, 0186,9C12,0030,F847,0138,3 132131 MCTEMP9]_MB.AND.ZLITOC31.] IMTEMP9 packed data. J 1383, 0081,2592,4230,0047,010A,F 3%5}%2 WB_MCMDR],WB<5-0>? ‘Which inst. are we? 132132 32137 =101111 $32138 J 10AF, 0CB6,3287,0004,8047,0138,8 U 108F, 086,3287,0004,8047,0138,4 ;32139 :gg}fi? 32142 If illegal data ;was packed, MTEMP9_legal data <= 31. 31011)] mmmmmmmm e e eee : MCTEMP3] RCR2].RR.8, JADDP4L20], ADDP6L211, SUBP4[22], NEXT/DS.DS.UNP . NASH ;SUBP6L23], MULPL25], get RTEMPB data $11111 ] =mmmmmmcemame—c o eaeae ; ;gg%zz MCTEMP3]_RLR21.RR.8 132145 :§g146 :t*i*ititi*ltktttk*l!'{ttitlttt*tltfitt*'ttt*!kfikflk*tfl!k"**tt*ii**fi**fii* ;32148 132149 :32150 e :32147 JASHPLF8), get RTEMP8 data : ASHP continues unpacking here, R R A A A A A At R A A AR i i U 1384, 0084,3E5E,0002,0047,0138,5 RCTEMP8) SEXT(M[TEMP3D), SI1ZECBYTE] JRTEMP8 is unpacked U 1385, 0086,3387,0000,0047,0138,6 Egg}gg MCTEMP3]_MB.RR.8 iRTEMPY data in Low byte U 1386, 0C84,359E,4002,4047,0138,7 :32158 :%S}gg 132161 U 1387, 0186,7C37,0030,0047,0124,2 132162 ;gg}gz $32165 it il j==m=emsesmmom—s——m—-cnocecssaae : :32151 232152 32157 it i e B De —— §om ee ——— ; RLTEMP9) ZEXT(MLTEMP31), SIZELBYT MCTEMP?7]_2L1TOL0], JRTEMPS ;TEMP?7_0, NEXT/DS.ASHP.REE restart inst. ;32166 "tt'lttiitikttfitttttttttfit*flfilfit.t*ttt‘t*it'tilttifi!tQtii*‘*.‘l‘ifitfifltt ;%S%gg '-*tt*fit*i**ti*tkfittttttfitfltttttit*itttlt**tttt!t*l‘*!itttttl!iittiti*t‘* 132167 ; ADDP4, ADDP6, MULP, SUBP4, and SUBP6 continue unpacking here, Egs};g DS.DS.UNP.NASH: 32172 ;32173 :32174 } U 1389, 0084,3592,4032,0047,0111,2 130175 ;32176 132177 MCTEMP33_MB,AND,ZL1TOC31.] e T RITEMP8] M[TEMP3], NEXT/DS,ADDP4 . REE :RTEMPB data is unpacked, it it is sillegal, it is now legal e —————— ; :Reenter ADDP4 code Il yU 1388, 0186,3012,0030,F847,0138,9 . (MT098.MCx : : DECMAL (MIC MICROZ 1M(Q1) Decimal String e 16:30:35 28-NOV=-83 : DS.DIV10.DIVP :32183 ;32184 I ; ;%S%gg ; : DS.DIVI0.DIVP divides a Packed Decimal number by 10, Input Output $32190 H :3219¢ AR ; ; 132193 =0 gs%gg DS. DIV10 DIVP: ;%ggg? 132200 ;%g%gz 132205 ;§§§89 :32208 =0 ) J 12B6, (0(84,7277,0030,(047,053E,F U 1287, 088¢,0637,0080,0047,0000,1 232209 ;32210 ;§§§%; 132213 :32214 Returns KRR RN Packed Decimal data, memory format, LSB in byte #3 of TEMPO, MSB in byte #0 of TEMP3 TEMP7 Z 132199 TEMPO~TEMP3 : 132188 :‘32196 ;%g}gg 784 : DS.DIVIO.DIVP' Decimal String ,ttttttttttttttttttttttt*tt*itttt*kttnu«t\nttnttt*ttt*tttwtttnmn*nt 132191 U 1388, 0€84,3%277,0030,8047,0128,6 Page 232180 232189 U 13BA, 0884,2277,0030,4047,0138,8 CLOKX Rev 13.00, Clock rate = 160ns " $32185 U 12B5, 0484,1277,0030,0047,0138,A K 13 :§5};g .T0C :%g}g; ,F U 12B4, 0C86,0637,0030,0047,053E I Zero (0) TEMPO~TEMP3 old data divided by 10. TEMP7 +1 RRREAR AR PUSH NEXT/DS.SR.123swP, METEMPOI _MB.BCDSWP Zero (0) RAR AR AR R AR ARk ke Ak Rk BCDSWP TEMPO=TEMP3 ileesssmemmmem—mmeeeeneee; R[TEMPOJ (MCTEMP1] RB).RR.4 iDjvide by 10., starting with LSD jmmm=mmme—mmemecceecccecmeooceeo ; RCTEMP1]_(MLTEMP2] RB).RR.4 et L P RLTEMP2]_(MLTEMP3] RB).RR.4 Q==mems-ssessssssessosesosos - R[TEMPSJ (M[TEMP7] RB) .RR.4, PUSH,NEXT/DS.SR.123SWP ? Sh1ft 2ero in high nibble, BCDSWP ‘TEMPT=3 ;lmmmmmmmecmommcemcmcecmmm e MLTEMPO]_MB.BCDSWP,RETURN [1] i :ALL done. RETURN+1 T : : CMT098.MCX MICRO2 1M(Q1) 28=NOV=83 Decimal String DECMAL . MIC 16:30:35 L 13 CLOKX Rev 13,00, Clock rate = 160ns : DS.DIVIO ;%sg%g .T0C " ;32217 ;%gs%g '**tkttlt*ttttltx**t*tkt!t‘ttt*tttt*ttflttttt*fl*twt*ttk***************** : DS.DIV10 divides a Packed Decimal number by 10. :32220 : :32222 : ;32221 Decimal String TEMP3=-TEMPS ; TEMP? old data divided by 10, j Zero (0} PNJAD AU AU AL AU A NONI N NI NI RONL N NLNLNLNLN) NONLNININVND TEMP3-TEMP6 TEMP? U 138C, 0084,5277,0031,0047,0138,D U 138D, 0884,6277,0331,4047,0128,A U 12BA, ((84,7277,0031,8047,053E,C U 1288, 088¢,3637,0080,0047,0000,2 [ e e a4t = e e - 7 Tt S A S A T TS 7 Ty o ) U 1289, 0484,4277,0030,C047,013B,C 32233 § S%g 32236 J0m=mmmmmm e e s ———— : PUSH,NEXT/DS.SR,456SWP, MLTEMP3]_MB.BCDSWP i i : i : ) ;BCDSWP TEMP3-TEMP6 i O i § Sgg RLTEMP3]_(MLTEMP4] RB).RR.4 32239 - 32240 32241 32242 32243 32244 32245 32246 32247 32248 32249 32250 32251 j Zero (0) 132231 DS.DIV10: 32232 ‘ . , : Returns +2 .**fi**fiii*fifltti*ttt*t'«******‘(*t*t*t**tt*********\‘(***i*********it**tti\* $32230 = Output ; format, LSB in byte #3 of TEMP3, ,‘3 227 :32228 :3 229 0 , MSB in byte #0 of TEMP6 I H : 785 Packed Decimal data, memory 132225 232226 1 : DS.DIVIO" Input : :%SSSE U 1288, 0(86,3637,0030,0047,053E,C Page - T P P Y T Gy e TM ‘Divide by 10.. starting with LSD - RLTEMP4]_(MLTEMP5] RB) .RR.4 bl i L LDt e e b bl b Dl b R[TEfiPé] (MCTEMP7] RB).RR.4, PUSH,NEXY/DS,SR.4565WP DL L E??' ero in high nibble, BCDSWP e 0 B 0 5 0 fi[TEMP3J _MB.BCDSWP,RETURN [2] :AlLL done, RETURN+2 i CMTO98.ME§ DECMAL .M MICRO2 1M(Q1) Decimal String 28-NOV=83 16:30:35 M 13 CLOKX Rev 13,00, Ctock rate = 160ns :%Ssgg .TOC " Decimal String 332254 IR RN AR 132255 ; 132258 ; ;%Sgg? : :%Ssgg 132259 E%sgg% Page : DS.MUL1O : DS.MUL10" RN R RN RN AR RR AR ARRR R AR AR RN ARk kb bk bk ki bRy : DS.MUL10 multiplies a Packed Decimal number by 10. ; : Input TEMP3=TEMPS Packed Decimal data, memory format, LSB in byte #3 of TEMP3, MSB in byte #0 of TEMP6 TEMP3-TEMPG Output +2 Returns Old data multiplied by 10. 3;5322 ; 332266 ;fi***t&fiittfi*tt*tti*fl*ttt*tt*tttfit#t*itttttttttt*t*ttt*ttt*ttttt*ttit*t 132267 =0 786: ‘ ': ;32268 DS.MUL1O: 132269 128C, 086,3637,0030,0047,053¢,¢C 128D, 0886,6237,0031,4047,0138,¢ 138E, 0486,5237,0031,0047,0138,F 138F, 0486,4237,0330,(047,012B,E 132270 ,%SS;; 132273 :%S%;g 132076 :ggg;; 133579 :gssg? 132282 =0 ) . 12BF, (0886,3%237,003D,8047,053E,¢C 12BF, 088¢,3637,0080,0047,0000,¢ 32283 :32284 :gssgg :32287 132288 et dab s tatainid —————— METEMP3] _MB,.BCDSWP,PUSH, NEXT/DS.3R.456SWP ]mmse ‘ JBCDSWP TEMP3-TEMP6 f s mmmmes e ; MLTEMP6]_(RLTEMPS5] MB) .RL.4 e ;Multiply by 10,, starting with MSD et MCTEMP5]_(RCTEMP4] MB) .RL.4 {rmmmmmmmmme e e MLTEMP4]_(RLTEMP3] MB).RL.4 ettt ittty ;o PUSH,NEXT/DS.SR.456SWP, MUTEMP3] _(R[ZERO] MB).RL.4 , , ;Shift zero in low nibble, BCDSWP JTEMP4=6 P et bt : MLTEMP3] _MB.BCDSWP,RETURN (2] ; ;B(DSWP TEMP3, all done | 28~NOV~83 8 N Q ; : 0 1 ; 3 : 2 H 4 : 7 : H 5 6 :32308 ; 318 $323n ;32312 ;32313 PR SO A i R THE 7 PEARKR T : 2 3 4 5 6 : DS.READ" Decimal String " I : ; ; H H .T0¢ Page : DS,READ TR TR T 9 0 1 CLOKX Rev 13.00, Clock rate = 160ns RN S AR A ARk h kv ke kA kh ok ko DS.READ has 3 entry points: ke ) kA Ak kA A R A AR AR . 1) DS.READ: to read a Packed Decimal string into TEMP3-TEMPG. 2) DS.READ: on an JR<2-0>? BUI to read a Packed Decimal string into TEMP3-TEMP6., =101 is (MPP3[35], and the READ takes place as if the routine was entered directly at DS.READ:. =111 is (MPP4[37], and VA is reloaded with a different address, the length offset from the adjusted "‘base address''. This costs1 extra cycle. Please read the banners on the CMPP4 and (MPP3 instryctions. 3) DS.READ.DIVP,.DR: to read a Packed Decimal string into . ATEMP8-RTEMP11 and perform the manipulation & digit counting that DIVP requires. In this banner means for code which enters at DS.READ: and takes either spiit (=101 or =111). "'%' means for code which enters at DS.READ.DIVP.DR:, *'$"* means for code which enters at the =111 split oft : ; ; DS.READ:. nothing means for both. Input Intcheck VA Made no more_than <Max. loop>=27. cycles before calling routine. ) (Base address of string)+(L/2+1) $32314 : $32321 232322 $32323 ;32324 132325 132326 ;%s%sg H ; ; : ; ; ; Resources MDR RNUM DREG FLAGO ;32329 ; Output TEMP3-TEMP6 (*) Packed Decimal data._memor 232331 ;32332 $ 32333 ;32334 ;32335 22336 : : : : H ; 232339 32340 ; ; ;32315 132316 $32317 : 32318 ;gg%}g 232330 $32337 232338 132341 132342 XY T Decimal String 16:30:35 N 1M(QD) N DECMAL . MIC MICROZ2 L (MT098,MCX : N 13 ; ; ; ; : : ; : : : STERC DREG ($) TLMP1 ($) FPDOFFSET GPRO (%) L/2 Source Length Adjusted base address of source IANDE offset code deltaPC in byte#3 Used for KEADs Points to current TEMP Copy of RNUM . Used to remember which mode we're in TEMPO-TEMP3 (%) Used to read in source striny MTEMPE (%) Used to calc. DR(LDNLZ) format, LSB in byte#3 of IEMPS. TEMP3 RTEMP8-RTEMP11 MSB in byte#0 of TEMP6, si?n nibble clear, unused (high TEMPs zeroed L1 if (Bus. cycle excep. or int.) AND (FPDOFFSET=0), See below for special. RETURN (%) Packed Decimal data, memory format, LSB in byte#3 of TEMPO, MSB in byte#0 of TEMP3, unused (high) TEMPs zero tilled. This s source divided by 10., sign nibble out, zero shitfted in, 787 ; (MT0G8, M X DECMAL M]C MICRNZ 1TM(Q) Decimal String 28=NOV=83 16:30:35 B 14 CLOKX Rev 13.00, Clock rate = 160ns Page ¢ DS.READ :32343 ;35%66 134345 ; : : :32348 132349 $32350 ; ; ; PSLev> (%) Made before RETURN,.microword on return is cycle #3 _1 11 DR=Q : QREG (%) TPCBACK it DR=0 ALUS BCDSIGN evaluation data =1 +2 Always (Bus crclo excep. or int,) AND (FPDOFISET=0). See output section for TEMP3 listing. ;§5§49 ; 4 132351 $32352 Intcheck (%) : ; T . 132356 : 32357 ;32358 532359 GPR2 (X) Intcheck (v) ; ; ;35353 ‘§~§§§ FLAGO FPD (%) TEMPO (%) : ; H ; ; Returns » =0 (») =1 (¥} DR(LDNLZ) ) Made before RETURN..microword on return fis c;cle n? 0 if DR=0 PC it DR=0 Data read ok, DR<>0, +3 (%) ; :gs%gg H ;32364 ; Note that Decimal String uses this routine with FPDOFFSET=0 for 252366 132367 ;82368 =101 : MULP,ASHR), L L L R ;52368 ; ; . ;55361 :3¢360 788. 4 (%) DRx(, see output section for data on this return. : DIVP, nonzero for all other instructions (MOVP,(MPPx,ADDPx,SUBPx, L L LRI L R L T R TR A L Y 132369 DS,READ: . 32370 1101~ caccaccncncncccunanaes LLTCE 108D, LSO, D84, 2080,18474, 0030 0 OYUAF, QUBG,0VAY Q030 ,44A7,0108,D :32372 ;32373 ;32374 ;§$§;g RNUM_D_ZLIT0{3),CLEAR FLAGO, sLow TEMP {5 TEMP3 NEXT7DS . READ.?2 R R L Tl 1 : VA_D*RCTEMP1]+1,NEXT/DS.READ J¢«CMPP4 special entry, reload VA :;3%;; DS.READ.DIVP.DR: ;gsggg ANUM_D_ZL1TOLOT,SET FLAGD iLow TEMP is TEMPO : 32381 , ) . i TR, L18Y,BOT0,0370,2447,0108,0 ;32382 DS.READ,2: . 132383 ememeeceaeececcans S ;32384 132385 VA MVA)=2L1TQ[4], STEP(.GE .42 DE(BY4 —— ; JPull back VA to lowest LONGWORD, thow much is left? Fo— e DAY, B3N, E0R0,0047,0130,0 e ST, e S ;32371 L S ———— = OO WP Y W I N B N R 16:30:35D O ¢ 14 Chg(x Rev 13.00, Clock rate ;'l'!tRfittflflfififlflfifitflfitfliflitttt*'wfiiQflnfitiititt'tfitttfiitfii.fltt‘tthttttltn : STEPC BUT taSls.. =g00 is 1 byte left in string, =001 is 1 word left ; ; ; in string, = 10 is bytes Left in strin string, =10918nd =101 are > ! longword pending a 1 split, =01177s 1 t longword left 1n in string, with something :QQ!.t.t"iQttifiQfiitlfltfitlQfltt'tttttfiitt'ttttttittt!ttttfittfit!fifi'!i(t'. DS.READ.LOP: 0000 === =====m==mmmemmmmnmmn s VA_MCVAI+ZLITOL3), NERT/DS.READ.BYT : 0001 1 ==mmmmmme e mmcena—. - : ;Word lett, point VA VA MLVAD+ZLITOL[2], NERT/DS,READ,WRD :0010-====m===cmmcammae —————— ; ';Middle of string, something pending, END OR TIMER?,PUSH, /1E.SERV.IP,T¢ JRETURN=1 or never 011 mmeeecmccecmescrcccae e MCTEMP$)_ZLITOC],RETURN (2) ---------------------------- ‘BUS exception 10 X I P IS L . ;3 bytes leftt, point VA to low word VA MCVAD+2L1T0(2], NERT/DS,READ. 3B OV LS NN =+ O 000 N S N N O N N N N N PUNINUALNUPNOR — U586,3037, MURY, D867, 0000, ¢ N N P I 1089, E2t P D58y, 5040, DUBG, CBG 0000, ¢ '8, I T 0H8A,30 37,0080, (847,0030,¢ A R 0480,0036,4AF0,0UL7,04F 7,0 P 1084, 0880,0036,4040,0050,013C,A IO L ol S O T R A AR AR M 0080,0036,4020,0050,013¢,D T 1083, O O 0D81,BL11,0030, 1447,0114,3 .. 1082, e [P 0D81,8(11,0030,14A7,0117,8 eana 1081, PO J NN — O 0 00 R PRI S SRR 0981,8(11,0030,1CA7,0116,A P 1080, S WU - O V0N O N T s v b =t b b st b mb = = D OO O OQO OO0 00 YO 0000V VDA T o~ Decimal String T DECMAL (M1 28-NOV=83 1ot e A LA AN A AU A L A Lt A A A W (s e U LA L U L LA U AN LA LA U LA AN LR U A U Ut LN A AN AN AL N U PU AU P AURU NS NN AU NJ AU AL RUNLNL NN R NN RN NONL PLNINUNORY Ny AONRLAL PN AU AU TMTO98 MO X L T Y LY RMITEMP3Y_ZLITO[1],RETURN [21 T ilnt, nending ; (MTIGB M(x MI{ROZ2 CECMAL MIC MDD 28=NOV=83 Decimal String NONINLNINL NS NLNI N PPN NONLND : 16:30:35 D 14 (LOKX Rev 13.00, Clock rate = 160ns ¢ DS.READ Page 232428 ;Ottttttitt'.fihfiiQtttlttifitfltlifitttltfit‘tttlttttt!ltttIttqt'tt"'tttntt 132430 ;tttt"vt"ttt!ttw'tittttt'ttttttt'ttttttttttttt‘tit*tt*tfiQQQQQQQttQQQQ ; ;3 4%9 ;3263 Continuation of Byte read =0 132632 DS.READ,BYT: ' ;- 114A, 0480,0036,4000,0050,013¢C,2 w 116E, U586,3C37,0080,0847,0000,2 . 13(2, 0881,2016,4000,8467,213(,3 132433 $32434 NEXT/DS.RE 232438 MLTEMP3] _ZLITOL1],RETURN (2] ;32437 :]tl -- s 0 e e e ;32439 ;32440 DS.READ.BYT,1: 32647 : MDR_ZEXT (MIMDR1),SIZE[BYTE] ;32442 132443 $32444 U 13¢3, 0085,2387,080C,18£7,0108,A READ,SIZE( ;32435 1326436 132445 ;%gzzg 132448 ;32449 e e § . JBUS exception L L L L L L ilero high 3 bytes Lol o ———— R[TEMP,R] M[MDRJ.RR,8, NEXT/DS,READ.EX,IP,TS? :Load TEMP, finish up ;l!ttQfifitiiittQitfitttttttttttittfitifiitt"ttflothtfit'tttfll""!"tn't't't ;32450 ; Continuation of word read ;tfififittfitttitittitttttfitifititfiitfittflttfitttittt.t*fiflttttttt*t*!t*'lttttt :32451 132452 =0re ;32453 DS.READ.WRD: 132454 A U 1178, (U8(,0036,4510,0050,013C,4 2 117F, $586,3037,0080,0847,0000,2 : 32455 :ggzgg 132658 ;%szgg UL I EE R L - —e———— READ,SI12E[WORD], NEXT/DS.READ.WRD,1 et Dttt ; MLTEMP3] ZLITOCY),RETURN (2] ;BUS exception :%S:g; DS.READ.WRD,1: w1304, 0C81,2016,40°D,8467,073(,5 . ] o 1305, 0485,2387,081(,18E7,0108,4 ;gszgz 132465 132466 132467 MDR_ZEXT (M[MDR]),SIZE[WORD) ;lero high word [eemmeessccscssencseeccesse==——— H RCTEMP.R]_M(MDRI.RR.16, NEXT/DS.READ.EX,IP.TS? ;Load TEMP, finish up 790 (MT098 . ,MCX DECMAL MIC MICRO2 1M(OW) Decimal String 32468 e N T TR T T T S N N P R TR T T A TR LR R PR T T E 14 28=NOV=-83 16:30:35DS ngng Rev 13.00, C(lock rate = 160ns HA AN R RN R AR N AR N R RN RN Continuation of 3byte read 32469 32470 IR RN RN RN AN NN AN NN R Page NN AR R RN RN R RN AN R AR AR AR AR RRRRRRAN AR AR AR AR 791 NN ARk k 326471 =0« 32472 DS.READ, 38 32473 11A3, 0880,0036,4010,0050,013(C,6 11A7, 0586,3€37,0080,0847,0000,2 e; 32474 READ, SIZECWORD], ;Read low word %gz;g M[TEMP3J JILITOC1],RETURN (2] iBUS exception, RETURN+2 32475 NEXT/DS.READ, 38.1 gszg? DS.READ.3B.1: 0981,8¢10,0030,0CA7,013C,7 13¢7, 0085,2387,001C,0047,0118,8 %Sfig% 32484 §§2gg 0481,D0A1,237D,8047,0108,0 O IS O D 2~ el el OO OOOOOOOVY helof = OO 00 NN N NN = OO 00 NN LN OO AN ON N B AN A NN DNV NN VTWVT UL 00 13¢C, b e 0¢85,2592,403C,0047,013C, ¢ b DB e wd 138, b 0581,8C10,0030,24A7,013(,B LNTUIMALA VWAL 13CA, N U LA U 0085,238BE,4B2(,18E7,0108,A U 13¢9, N O 13C8, 0881,2016,4000,8467,013C,9 32493 AN 0586,3C37,0080,0847,0000,2 LA UNE N U UN U 18C, gszg; N AN A LA 0087,€487,0000,0050,013C,8 PORLNLADNLAU NN RN RLNSNLNLNL NI NN 1188, ‘Point VA to last byte I ; e RLTEMP ,R]_MIMDR].RR.16 32487 =0%x 32488 32489 32490 VA_MIVAJ=ZLITO[1] ;Move data to high word B T READ,SIZE[BYTE], READ last byte, clear low word METEMP.R] MB.CLR28, ;in TEMP NEXT/DS.READ.3B.2 P T MLTEMP3]_ZLITOL1],RETURN (2] {BUS exception, RETURN+2 DS.READ.3B,2: MDR_ZEXT (MCMDR]), S1ZE(BYTE) tHigh 3 bytes_0 ------------------------------- RCTEMP.RJ_RB.OR. (MCMDR].RR, 24), NEXT/DS,READ.EX,IP,TS? ,TEMP has completed 3 bytes, ;tinish up kfitkttiQ**Qfi*fi*Qflfififiti.t'tfiiilttifiitQQttfiQttt.it'titifi'ii"tfllflt"Qlti : Continuation ot Longword READ, middle of string wwuwn*tttttnwttt*wtttttnt*ittw!t*it*t**fitttii**tttttttttitttittt**ttwi DS.READ.MID: VA_MCVAJ-ZL1TOC4] :Decrement VA KCTEMP.R]_MIMDR] “iGet data Rl e e L el bl b ANUM_D D+1,STEPC.GE.4? DECBY4, NEXT7D3.READ.LOP Ll EPoint to next TEMP, Lloop back I 13C6, MICROZ2 il v awvavIwIuiuiLa GTLAVAWALAIUNIAA S 85 B 58 05 05 B8 £ 2 2 WA AW N R A N IR ROTUN D DO LR OO ) — CFLHJ\bMflJ-4C>MDGD\JONAJ\UHU—ACLOCO‘doflht\bvhrfl<DMDC°‘UONAI‘UMN%H(D(D AN TS et v CLOKX Rev 13,00, Clock rate = 160ns Page DS.READ Continuation of longword read, end of string *tttttt*tt*tt*tttttfittttttt****tt*********t*#****i**i*t**itiit*i*i*tt* DS.READ. LONG: T e e RCTEMP.R1_MIMDRI,IP.TS? Y T Y ‘Get data **ttiittt*tt*t*ttt*itttt*ttttt*tttitfitt**tt*tttfl*fi*fi*‘t't*fi******tfiifit : Source read, enter on IP,T5? split., : on which mode we're in, T After nothing or timer we split 2223232322222 827233328 2333332333333 3388833232322 23 8RRRRtRA] =010 DS.READ. EX: 1010~mm~mememucanceccem——ne————— : WB_MLTEMP3].BCDSWP, ALUS_BCD SIGN.ZERO,FLAGO?, NEXT7DS.READ.EX. SPL L1 ;Guess standard DS.READ, Llatch BCD sign ;eval., which mode are we really? I: PUSH, INTPEND OR TIMER?, NEXT/IE.SERV.IP.TS2 R v N N N A N R Y T S LS 08890,063F,403D,8007,013(,E LA A rect, iwvivivivaiviun s Lnwv PR NN L e o A i N T N LA A2 G U 0880,0022,423p,8047,0111,0 O . 12€0, : F 14 *ttittt'tt*tttttktitttit#tfi*ttt***fit*fi****t*it**#ti*fit**ittiitifitiitii ivuuv viuiruviaa N N Y R NN A T R A PO N N LN AN T TR TR TR TR T (N N A L TR 0586,3(37,0080,0847,0000,2 PR TR T 2 P 108F, (A N A 0480,0036,4AF0,0047 ,04F7,0 T 1088, TETE PR TR PR PR PR T 0€80,363k,443D,80C7,012¢C,0 A U U (AT L G 1084, PLRLNY N PN PLNONINO N v Lav {aN Ias Lt datd AOPLNLAL Decimal String 13CD, 0085,2592,483C,1867,0108,A 16:30:35 28-NOV~83 M0 LA (N L R (MT098.MCX DECMAL MIC bl H MLTEMP3]_ZLITOC1],RETURN [2] ;Int. pending, RETURN+Z =0 DS.READ, EX SPL: NERT/DS READ. EX R D.WB<5=0>?, ‘DS.READ, which TEMP are we in now? we MCTEMPQ],BCDSWP, DS, READ.DIVP,DR, latch BCD sign eval. ALDS_8cD SIGN.ZERO, NEXT7DS.READ.EX.D J(DREG = 3, 4, 5, or 6) ;from sign TEMP 792 (MT098.MCX 28=N0OV=83 Decimal String 2557 LR 0586,5€37,0030,0047,0111,5 1115, 0586,6C37,0030,0047,0111,6 LR L 1114, T 0986,4€37,0030,0047,0111,4 N 0586,3(93,8080,7847 ,03FF ,F e e R R R 1116, P N AR IR TR R R 1113, 2558 %ggg 2566 Sgg; 2569 gg;? 2572 2573 Sg;g ) e ) 1200, 0586,8(37,0030,4047,013C,F T T T T 0480,0022,4270,8047,0120,0 2577 1202, 1203, 0086,8(37,0030,8067,013D,0 0186,8(37,0030,0047,013D,1 0586,8(37,0031,0047,012C,2 Page : DS.READ JRAAR AR R AR KRR R KRR AR RN R R AR R AR AN RARAEARTRR Rk Rk ke ¢ Zero unused TEMPs, zero sign nibble & RETURN=1 (DS.READ) At e M[TEMP4J JZLIToCol 3100=memmm A e A L L AL R AR LA A AR A 3, zero TEMP4, TEMPS, and TEMP6 e nn e cn MCTEMPS]_ZLITOLO] e cncan ‘{4, zero TEMPS and TEMP6) '101 ---------------------------- ; MLCTEMP6] _ZLITULO] i 110mmmm er e : (5, zero TEMPG) e e m e aa : MCTEMP3]_MB.ANDNOT,ZLIT24[0F], RETURN [=1] (6, TEMPs are full, do sign eval) 10R==> we zeroed high TEMPs, eval. sign 2578 *t**k*t*itt*i*tttt**t*ktt**t**t*****tt*ttti**ktttfi*t*tfitii*'t*t*wt'flfi* 2 579 2 ggo : DS.READ.DIVP.DR mode cont1nues here. We clear unused (high) TEMPs, : divide the string by 10, to shift out sign nibble, and _count the ; number of significant digits & store tne result in GPR2. 2581 *tt*******I’t**ttt******tttttttt*t**********t****t******fi******fl****tt* 2583 Sggé DS.READ . EX.D: Sggg 2588 =00 2589 = 2590 Sgg; 2593 1201, CLOKX Rev 13.00, Clock rate = 160ns 2576 2 58 2 13CE, G 14 16:30:35 it At R 2559 2360 =000 2561 DS.READ.EX.R: A LA N U A R AT N N U LA U AT LA U U U L SN A N N U U NN N N N U LA N N O A N AN NN N TR L LA NN DECMAL.MIC N A . 1M(Q1) 2594 Sggg 2597 2598 Sggg (N N LA AT . MICROZ 2601 2602 5282 WB_D,WB<1-0>? ‘Which TEMP are we pointing to now? ;00<em-smeccmccmcnccmmncassnan——— M[TEMPBJ ZLITOCS8,2 NEXT/DS.READ.EX.D.0 TEMPO Maximum of 8 digits in this ,str1ng el LT L L O MCTEMPB] ZLITOC16.3, NEXT/DS.READ.EX.D.1 {TEMP1, Max. of 16. digits ;1)mmmmmmmcmecen e m e M[TEMPSJ ZLIT0C24.], NEXT/DS.READ.EX.D.? (TEMP2, Max. of 24. digits L Rtnoetmatntsoumtatintet bt S L DL : MOTEMP8] _ZLITO[32.], ;TEMP3, Max, of 32, digits (reall NEXT/DS. READ. EX.D,SET only .31 'db?t zéro will be shifted in .v idivice 793 ~r : C(MT098.MCX MICRO2 1M(01) Decimal String DECMAL . MIC H 14 28-NOV-83 16:30:3505 R CLOKK Rev 13,00, Clock rate = 160ns o Page 794 ;35282 DS.READ,.EX.D.0: U 13CF, 0986,1037,0030,0047,013D,0 Eggggg U 1300, 0186,2¢37,0030,0047,013D,1 Eggggg DS.READ.EX.D.1: Eg%g}; MCTEMP2]_ZLITOLO] Eggg;f DS.READ.EX.D.2: i (Zero high 2 TEMPs) U 1301, 0586,3€37,0030,0047,012C,2 Eggg}g MCTEMP31_ZLITOLOJ i(Zero high 1 TEMP) 132617 A bbb LR 132620 SHRER KRR 232618 :32619 MCTEMP1]_ZLITOLO] ; High TEMPs are zero, RNUM & DREG points to current TEMP (0-3), ; and MTEMPB contains the maximum number of significant digits. RR KKK :32621 =0 132624 ;%gggg 132627 U 12¢3, 0p81.0C12,0A77,FB47,012C,4 :32628 ;ggg%g RARARRARRR AR AR RNk kAR Wk kR kkk W : :gsgg% DS.READ.EX.D,SET: U 12€2, 0186,7C37,0030,0047,0528,4 Zero high 3 TEMPs MCTEMP71_ZLI1TOL0],PUSH, NEXT/DS.DIVI0.DIVP Load zero for shift-in, divide string ;by 10, to shift out sign nibble {emmemmmcmcccmmce e coeaee o WB_MLTEMP.RJ.AND,ZLITOLOFF], WXTNE.0? :1s high byte of current TEMP ;nonzero!? 132631 = :ggg%% DS.READ,.EX.D.LOP: U 12C4, 0581,0092,0A77,F847,012C,6 30634 :gsggg 130637 u 12¢5, 0981,0012,0477,8047,012(,C 232638 :%ngg WB_MLTEMP.R].AND.ZLITBIOFF], NERT/DS.READ.EX,D,LOP1,WX.NE,0? iNo, is byte#1 nonzero? e L; WB_MLTEMP.R].AND.ZLITOCOFO], WX.NE.D? ,NEXT/DS.READ.EX,D,EX :Yes, is the high nibble of this byte snonzery? 132641 = :§522§ DS.READ.EX.D.LOP1: u 12¢6, 0981,0012,0477,F847,012C,8 132644 :%5222 132647 U 1207, 0586,8¢10,0030,1047,013D,4 132648 :ggggg 130651 = WB_MLCTEMP.RI.AND.ZLIT16COFF), WX NE.O? ,NEXT/DS.READ.EX.D.LOP2 ‘No, is byte#2 nonzero? jlommmmsoseimsanan eememes : MCTEMP8] MB-ZLITOL[2) NEXT/DS.READ,EX.D.LT8 ;Yes, max. sig, digit is in byte#1, ;dec. counter by 2 :gggg% DS.READ.EX.D.LOP2: J 1208, 0181,0092,0A77,F847,012C,A ] J 12(9, 0186,8C10,0030,2047,013D,5 132654 :%gggg 132657 :32658 132659 WB_MCTEMP.RI.AND.ZLIT24CO0FF ], WXONE .07 ,NEXT/DS.READ . EX.D.LOP3 T e INo, is the lowest byte nonzero? PSR e LR ; MCTEMP8] _MB-ZLITQ[4] NEXT/DS.READ.EX.D.LT16 :Yes, max. sig. digit is in byte#2, ;dec. counter by 4 ! MICROZ do oo To ToJo Jo 8 (oJo-][= - 2] NNNNNNNNNOOOOOOOONONO N — OO0 O AN SANNI = O 0D 00 O NN O OONONONONONO fo Yo+ NoNeeNoNe e No Yoo U LA [ : Page DS.READ M[TEMPSJ MB-ZLIT0[8.] NEXT/DS.READ.EX.D.LOP.END No, this TEMP was zero, dec. :by @ LONGWORDs worth counter -—-----.-~---—-------------o--- ;Yes, adjust counter etttk et Tl Rl D WB_MCTEMP.R].AND.ZLIT24[0F0], WXTNE. 0°,NEXT/DS READ.EX.D.EX :lIs the high nibble of this byte ;nonzero? tt*Qt*t*.it*fiki*tttttttltittttittttifittttt*ti*ittt*tttt*tfit*tfltttfit'tt ; Current TEMP is zero & TEMP8 has been decremented by 8. [f no more H }Emgs exist, return for DR=0, else loop back to check next lowest ;t*t*ttttttttttt*t'tk*tt*tt*t*t***tk**t***tfliQ*Q*****ti**fl***tiit*i*i*t DS.READ. EX.D.LOP.END: o S O Wy RNUM_D_D=1,WB<31=30>? Are we negative? P ot w8 _MLTEMP.R]I.AND.ZLITOLOFF], No, is byte#0 of this TEMP nonzero? 1 L4 TEMPé RIROJ.RR.24 Q_ PCBACK ‘DIVP divisor=0 RETURN+4 WXTNE.Q? ,NEXT/DS.READ.EX.D. LOP 2690 ET V,CLEAR FPD,RETURN [4] SR s (loop thru this TEMP) :Yes, all TEMPs were 2ero, take L OOCOCOOCOOOVOO be NONSNS = OO0~ o ;kttttttitt*tuttktfi*fittttt*ttt\tt*i*tfittt!fifitfitfifi*fi‘ttttt!*flt**ii*Qiit* NNNNNNNNOOONO ORI NINNLNINLNI NNV AL N U 13D5, 0D81,0D12,0A77,8047,012(,C L J 1304, 0981,0092,0A77,8047,012¢,¢ S SR I T TAE TR Ty DTSR J 1207, 0CE7,929C,70A4,08E7,0000,4 114 CLOKX Rev 13.00, Clock rate = 160ns =0 DS.READ. EX D.LOP3: N U 1204, 0D81,0C12,0A77,F847,012C,4 LA A A NN AN AN AN N U A LA AU N A L U 1303, 0481,D0A0,26FD,8047,0920,4 344« O U U U U U U U T T T S N AN (N N N U AN A T U 13D2, 0D81,0092,0A77,8047,012¢C,C TETE TR TR PR PR PR PR R y 12¢B, 0D86,8¢10,0030,3047,013D,2 A 12CA, 0086,8C10,0030,4047,013D,3 NN NNV PN NNV IO AINONINI TV NN N NOALININLNINL Decimal String N AT AN LA 0 16:30:35 28-NOV-83 M0 ) TR T CMT098,MCX L . MI(C DECMA N U N N : H ; Continuation of some BUTs in the DS.READ.EX.D.LOPx sequence. ;tttttn*tttt*tttttkt*iitti*tttt**ttttitttttttt!tittt*ittt*iit*tttittti* DS.RCAD. EX.D.LTS: M e T ettt Il L B _MLTEMP.R].AND.2LIT8C WXTNE.0? ,NEXT/DS.READ,E DS.READ., EX.D,LT16: bl e i i il dndudnbnin b wB MCTEMP,RI.AND.ZLIT16[0F O], WXTNE.0? P .Ia nibble #5 nonzero? 795 N —— (MT098.MCX DECMAL (MIC MICRO2 1M(01) Decimal String 28-NOv~83 :32708 ;32709 132710 :32m 132712 :32713 132714 J 12¢C, 0J84,8651,0034,8047,013D,6 1y 12¢D, 0084,8592,4034,8047,013D,6 16:30:35 e e CLOKX Rev 13.00, Clock rate = 160ns IR AR ; R AR RRAR AR KRN RA RN AR 138722 :gs;gz KRR RN The highest nonzero byte has been discovered. L u 1307, 0884,1592,4032,4047,013D,8 L NEXT/DS .READ.EX.D,EX.F ;lmmemm e e ; RCR2]_MLTEMP8) J 13p8, 0484,2592,4B32,98E7,0111,8 Egg;gg RLCTEMP8I_MCTEMPO) 132729 jmmmmmm—eemeom—mmescacececseens : :gsgg? 132732 :gs;%z 132735 =000 ;32736 J 1118, 0484,3592,4082,(047,0000,3 :32737 :gs;gg 132740 @ 1119, 0480,0036,4AF0,0047,04F7,0 ;3274 :§§;2§ 132744 =101 132745 ¢ 111D, 0586,3(37,0080,0847,0000,2 ;32746 ;gggzg } . ; =0 is high nibble of current byte is zero, the MSD is in the low : nibble of this byte, GPRZ2_MTEMPB-1, ; =1 is high nibble of current byte is nonzero, GPR2_MTEMP8. E%S;gg DS.READ.EX.D.EX.F: U 13D6, 0884,0592,4032,0047,013D,7 A AR KAk ko ; MTEMPB c¢ontains the number of most significant digits if the high ; . nibble of nonzero byte is nonzero (ie the 'most most'". e Ry R R R A L R 132715 :32716 =0 132717 DS.READ.EX.D.EX: :32718 Lt ttavisiuhvinrtetatattettetetd ottt H :32719 RCR2]_MCTEMPB]-~1, ;gS;S? Page ¢ DS.READ ' RCTEMPOI_MLTEMP1] jmmemmmeemmeseesssscecsosmeme——e ; RECTEMPI10J_MLTEMP2],]P,TS? ;Anything pending? ;000~=csmmccmmomcmcnecan e nn e H ROCTEMP11] _MLTEMP3], RETURN [3] :No, or timer service 1001 emmmmm—mmmmm———maee am——— PUSH, INTPEND OR TIMER?, NEXT/IE.SERV,.IP.TS2 ;Yes, RETURN =1 or +4 ;10)=m=mecmmanemn ee e -; MCTEMP3] _ZLITOL1], RETURN [2] .int. pending e L TR T A (MT098.MCX DECMAL . MIC MICROZ 1M(01) Decimal String 28-NOV-83 16:30:35 " 332751 AR 132754 : 132757 132758 : ; 132755 132756 :32759 $ 32760 32761 132762 232763 32764 CLOKX Rev 13.00, Clock rate = 160ns R A At I AR A R ; : : : : i ; VA calling routine, . Base address of string ! ! FLAGI ;32769 : 132771 132772 : ; : : ; : $32775 ; 132777 ;32778 132779 ; ; ; $32776 132780 ;32781 132782 232783 132784 132785 132786 FLAG? Resources ; Returns =0 it dest. is even ! <Vy> image 1 =1 if dest. is odd : <2> image, =1 befor~ call ; % Used in WRITEs ! ! ; Destination Least Qignif. digits written ? Intcheck Made before first write.. microword on return is cycle #58, ! FLAGI R AR RN AR AR ; ! Points VA after PROBE FLAGZ R . ’ . Points to current TEMP Copy of RNUM : H ; L/2 Lse. RNUM DREG FLAGO ; ‘ <Max, loop>=-8. cycles before Loop control H ; bEtefi3 of TEMP3, MSB in byte#0 TEMP6 FLAGO WDR TEMP? Output : Nonzero Made no more than STEPC QREG ; H AALALALLA LA FPDOFFSET Intcheck ; ;gs;;z AL LALLM DS data, memorg format, LSB in $32766 :32770 AR A TEMP3=-TEMP6 PSL<C> ;gg;gg ; : DS.WRITE writes a Packed Decimal string from TEMP3=TEMPG, Input 797 : DS.WRITE'' Decimal String ; 132765 Page : DS.WRITE :%g;gg .T0C :gg;g% K 14 high nibble clear if pSL<>=0 0 _1 i if overflow occured 0 it nonzero written to memory TEMP3~TEMP6 Barbage -1 Always KRR R R AR KR KRR RARKRRRR AR AR AR KR AR AR AR AN RN R RN hK I 7 0480,0036,4AF0,0047,04F7,0 ¢ i -y Q= ne T o L 14 CLOKX Rev 13.00, Clock rate = 160ns D D e G D 0 AN T RNUM_D _7ZLITOC3],SET FLAGO, et T L DL L L L L R RN RN L L L L L) R NN AR R AN AR “Calc. sign byte +1 AR AR AN AR AR AR AR AR R AR AR AR AR AN RN Top of DS.WRITE loop. No int. checks occur after the first check since WRITE must be completed for ADDP4=SUBP4, Note that we have probed the last accessed byte of the dest, so if an exception or TB miss occurs, it will be during the probe g nothing will written. AN AN RN AN AR AR R KRN RR R AR AR R AR NN AR R ARk have been kk ek kb ke O P YK T WA iy SRR JPROBE lowest accessed byte Dl RLTEMP7] _MLVAJ+Q+1,1P.TS? A ,Pofnt RNUM & DREG to first TEMP, PUSH,NEXT/MM, PRB WRITE.NR ieiiabaiebe Page DS.WRITE RAAAAARALAARRAR AR AR A2 A0S L N A NN~ OO0 00~ N O O 00 NN (NN OOV OO OO0V OO = O W E1 Y] N pry B DO OO oo OO O — OO0 N0 b b NN e ok b O b e b OO 9] 1201, — U 12n0, 0560,7010,0370,24A7,0112,0 Lrd L A A LA G Gl LA A Ut LA A U A LA U A LA U 12CF, 0885,B089,0831,D8€E7,0120,0 A U U LN LR AN N U 1208, 0541,0C35,2030,1847,0579,A 16:30:35 28-NOv=-83 M0 ) String AUNURLNLNS NUNINOTVNLNINUNLNINOND PUAOLAL N ANV NI NDAV TV PO NN NI NN N N NN SN N NN N N N ©9 €0 0o Co 0o Co o 00 Co 00 0o ¢ GO Co OO CO QO OO OO0 00 N DECMAL .MIC MICRO2 Decimal e S N O T T TR P P PR TE TR PE TR P P : . MCX (MT098 ;WE ARE GOING TO SET MM.NOINT ANYWAY - PROBE CAN'T BE TRUSTED R R R ‘-0 ------------------------------ : SET MM_NOINT, VA MLTEMP7]-ZLITO([4], STERC.GE.&? DECBY4, NEXT/DS.WRITE.LOP.1 sWE WON'T ALLOW INTERRUPTS ANYWAY ;Point VA to first ;longward, how much is letft? ;lmenmmcacmcamnancnen - ————— : PUSH, INTPEND OR TI NEXT/IE.SERV.IP.TS ke ko 798 [ A i mmemmm s et e s e e e weleamesmmr (MTQ9B.MCX DECMAL MIC MICRO2 TM(O1) Decimal String 16:30:35 28-NOV-83 LIRIA Page CLOKX Rev 13,00, Clock rate = 160ns : DS.WRITE :gsgg? DS.WRITE,LOP: . 1309, 0981,BC10,03%70,244A7,0112,0 :32822 :%Sgsz VA MLVAI-2L1T004) STEPC.GE.4? DECBYH :Point VA to next LONGWORD, ‘longword, how much is left? 132825 =000 132826 DS.WRITE.LOP,1: | ] U 1120, 0581,8011,0970,1CA7,012D,6 :32807 132828 ;gsggg $32831 U 1121, 0181,8011,0970,14A7,012€,0 ) J 1122, 0p81,BC11,0430,1CA7,012F,8 U 1123, 0880,0036,4970,0047,012E,C ;35832 ;gaggz :32835 ;32836 ;00)mmmsmmmemacm—— —— VA _MLVAD+2L]70[23 PSLCC>?, NERT/DS.WRITE.WRD Egsgzg PSL<C>? ,NEXT/DS. WRITE LNG 35835 32843 ;gggzg 132847 ;ggg?g } BYTF left, point VA, is dest. odd? ) TEWORD left, point VA, ditto. $010====mmmcmmmcomcmeocemcma; VA MCVAJ+ZLITOL31,FLAGO?, NERT/DS.WRITE.38 :32846 U 1125, (0487,0592,4420,0508,012p,2 T 132837 32842 U 1124, 0481,0592,4420,05D8,012D,2 B VA_MLVAI+ZLITOC3],PSLCL>?, NERT/DS.WRITE.BYT 011 38YTE$ left, point VA to low byte, is this first longword? {LONGWORD left, is dest. odd? 1100 mmm=memm e m o mccec s mnam; WRITE MLTEMP.R],SIZE[.ONG], FLAGO? ,NEXT/DS.WRITE . MID 1> LONGWORD lett, WRITE it, is this itirst longword? 1107 smmmmmmmrmmm o men e s m s : WRITE MLTEMP.R],SIZELLONG], FLAGO? :> LONGWORD left, WRITE it, is this itirst longword? f 799 OB AN = O NNV = OO O OO N NUNUNDAL NN AL NN NN NDNVLRL NNV NN NO N €0 o 00 0o o Co 00 0o CO 00 0o 0ot 00 Co €0 Co o O3 Cn 00 Co TR N AN A AN AN L N T T R R i 2 12D5, 0011,00A1,203D,8047,013D,9 F U 12D4, VU81,D0AT,203D,8047,0130,9 A T v 1203, 0901,0093,8A70,7847,012D,4 N N LA G 0081,0592,4A70,0047,012D 4 N N 1202, LA N UL J N AN N i 1 N 14 CLOKX Rev 13,00, DS,WRITE Clock rate = 160ns Page n 16:30:35 28-NQV-83 1M(OD) 02 MICRG2 Decimal String NNOOOOCOC OO OO VNIV YL AL CMTO98.MCX DECMAL Mi{ A ; ; tt*ttti'fi!*t*k*fiiWfii****fi*flfli**fit*kt*kk**t**t*fittt***'*ttQflfiifi*‘ttii*fi : Continuation, middle of string. : tirst longword <=0 1is not first longword, =1 is k\fl**tttfltt*wtktttttlt‘ttttht*ttfitwitttw*t****t*********t*t****t*A**fi =0 DS.WRITE. MID ¢ o o o S 0 P B4 e ey W R g ¢ WB MCTEMP.R] . WRIT NERT/LDS LD L R DL DL X el DL WB _M{TEMP_R].ANDNOT,ZLIT24[0F1, WXTNE.O?, CLEAR FLAGO L iDitto, without sign nibble =0 DS.WRITE. MID 2: e e — et — e —————— ————— JNo, S e .. e RNUM D_D+1,(LEAR FLAGZ, NEXT7DS. WRITE.LOP inc. to next TEMP, loop back - sYes, inc., pointers, ;loop back clear <Z> image, ? 800 TR ;%Sggg R R RN TR RN R Page AR A AR AR A RAR AR AN AAARARNARARNARORAN I RN (ontinuation, BYTE write. CARRR AR =0 is even dest., AR AR AR AR R AR R R R AR ?% AgDNOE ZLIT’&[OFJ, AR =1 RN RN AR RN RARRRNONARRRRARRNAR RN TR ET R ,Do we have overtlow, even dest.? cJussesermcrsmanscanma e e m———— o _MITEMP,RI.ANDNOT. ZLIT?&[OFFJ,,Overflow, ocd dest.? WXTNE.0? =0 RLTEMP.R]_RB.RR. 2, FLAGO? ,NERT/DS.WRITE.BYT, EX D e erra b SET FLAGY,FLAGO? ‘No, get byte into position, is this sfirst WRITE? SO LOC LS ;Yes, RCTEMP.R] RB.RR. 24, NEXT/DS.WRITE,BYT EX set <v> image, is this ‘and get it into position tirst BYTE, 'Q'!t'tt'!tll.t!!lttt!'lttttttttt'tllllt'll't't'fili"t"'tt'lt"t""'fi -0 * Even string, =1 is no ov. =0 is ov :tQtttttfittttlutfittttt'!ltfifitttt!tt'tt!titittttt'ttitittttttttttttittit 132900 DS.WRITE.BYT.Ev: L o _ YCA, L TeF 0093, 4080 R0GS, 0D ,H . - e JE R U 232901 ;32902 ;%Sggz 132905 '32906 R bbb Ll bl SET FLAG!, MUTEMP.R]_MB.ANDNOT.ZLIT24[0F0) Ty image_1, zero high nibble jlesemmescaacaanan. mmmmmm———— R[ MP R]_RB RR.24, 801 TN T is odd dest. T 896 32897 16:30:35 (LOKX Rev 13.00, Ciock rate = 160ns : DS.WRITE PN Ty TR T A M U W A L I O P P [ | w » R o Y209, UuaC,UeB7, 0420 ,0047,012D,C AU AN A LN A AN LA A L A i U U , 2 12b8, uB86,02B7,0420,0047,012D,( S o107, QI81,0093,8A77,F847,0120,8 VA LA AL Lt A o 12D6, ODB1,009%,8A30,7867,012D,A B 15 28-NOV=-83 N H MI(&O2 1M(01) Decimal String O 0 O OO0 OO OO COCOCI OO N NN NN NN = O OO MOMM\A S AP0 - O D00 N O B «MT098 MO x DECMAL ML - CYSC — w A0 PR POTIRUAL AU RUTLRL NI ASRINI NN N AU NP N NDOSIO NN €0 €0 €3 00 £33 G0 €0 OO €3 00 0 Co Q0 €O €0 €O €O € €O CO-0o € o OO P (And) get BYTE into position, is this . R L IMTOGR M X DECMALLMIC MICROZ 1M(OT) Decimal String ;32908 ; 32909 32910 : 16:30:35 28-NUV~83 : TRRARA AR €15 (LOKX Rev 13.00, DS.WRITE Page Clock rate = 160ns AR RN R RN AN RAR R R RA AR AR AN R AN R NN RN R A RN RN RN AN RNN ARk e d bd 3 From even and odd BYTE paths, =0 is last WRITE, =1 is first WRITE, ; and mask out sign nibble accordingly when checking tor zero to dest. tltihtititt‘tfitttttfl.ttfltiflfltitfiitttttltttfl*!*llttitlt!'ttititti**it** 32911 ;32912 =0 ;32913 DS.WRITE. BVT EX: 0S81,0012,0A77,F847,012D,E Q1Y1,0012,0A77,8047,012D,F ;32914 ;32915 332916 ;32917 132918 232919 ;32920 : 32921 s e e wa _MCTEMP.RI.AND.2L!TOLOFF], WXTNE.O? ,NEXT/DS,WRITE,RYT, OUI ], .............................. wa _M[TEMP,R],AND,ZL | TOLOFQD, WXTNE.O?,CLEAR FLAGO $ 32922 =0 ;52923 DS.WRITE.BYT.QUT: UL81,0%92,4000,05D8,01¢F,2 {017,0592,4000,0508,07¢F,¢ 232924 ;32925 ;32926 ;30927 132928 §2029 130930 ls byte nonzero? - > - ————— NRITE MLTEMP.R],SIZEIBYTE], NEXT/DS.WRITE.EXIT P .thto, without sign nibble :Byte is zero, WRITE § exit Y T WRITE MLTEMP.RJ,S [ CLEAF. FLAGZ2,NEXT/DS.WR J ,Byte {5 nonzero 802 N FMTIGR MOy : MITRZ? DE WAL MLy TM(QD) Decimal String 28=NOy=83 ;32931 D15 16:30:35 (LOKX Rev 13,00, Clock rate = 160ns Page 803 : DS.WRITE Qw't!!wtntttuwttQfltflttfitnttfiififiitfittitfit*itttfittfi*t'tfiittifittfifilflfiiflfifi Continuation,WORD WRITE, =0 is even string, =1 is odd string. :329§2 ;32933 ;32934 =0 R R R R R R AR L AR LA ARl : :ggg%g DS.WRITE.WRD: , U TPEC, GD8Y,UDTE,0A77,8047,012E,¢2 ] ] 132937 UB_MLTEMP.RI.AND.ZLITI6L0F01. :;gg;g 132940 ] i VAR GEAY U490, 0A70,0047,09¢F ,4 375¢ :Is high nibble zero? WXTNE.O? ,NEXT/DS.WRITE .WRD,EV BT ;3294 wB MLTEMP,R]-(MB,CLRZB), :;ngg WXTNE. 0°,NEX1/DS. ITE WRD,OQUT 1s extra word nonzero? 13294 =0 +329645 DS WRITE,WRD,EV: ;32946 ) o TeEd, JURY,06Q0,0870,0047,092L ,4 3750 : ; ) o 12E3, (0Y4F,0DYS,B037,8047,012E,4 | B ettt il el inbuinlaleleledad el ;32947 wa _MLTEMP.R]-(MB.(LR2B), 132950 [lmmmenes ER 132952 MOTEMP,R]_MB.ANDNOT,2LI1T16L0F0];<v> image_1, zero high nibble, don't ;gsgzg WXTNE,0? ,NEXT/DS.WRITE.WRD.OUT ;52981 SET FLAGY, ;32953 232954 .fiven siring, high nibble ok, :is extra word ok? GRS EELEEELEEY vah nibble nonzero in even Str1ng .check extra word as we have QV 132955 ;32956 R :32958 ; string. 132957 L L L L L R On BUT, =0 is ok, =1 o . . UOBY L3RBT, W0, LA0E, 01086 132963 WB_MLTEMP.RJ,RR,16, ;%5322 NEXT/DS WRITE, NRD EX ;32964 w8 _M[TEMP,R],RR,16, 33?97% TER N AR A $ 32974 SRR R 132969 WRTTE,S12ECWORD],FLAGO?, :ggg;? o , o CCET, USG7,0098,8030,7847,0108 ¢ 32978 :§Sg;8 S ; é :3298% ;32984 RN R R RN R RN i =0 is last WRITE, =1 132975 =0 i3€976 DS.WRITE.WRD, EX: A LR AN KRR AR RN A A RNR “is this ftirst WRITE? SET FLAG1NEXT/D§ WRITE.WRD.EX 15297 VR, (081 (ABT,0A70,0u67,012F,¢ LA AR ALl RN RO Rk ® ! it, {lemeevanava cemevsmmmanne— m———; : 32968 130977 A Qet data in low word, WRITE WRITE,S1ZELWORD],FLAGO?, 132967 , i . < YEG, 0449,0387,0410,0508,0128,6 AR is high word is nonzero, <V>image_1 R R A AR AR AR A AR AR R R AR RN IR 132959 ;32960 =0 ;32661 DS.WRITE.WRD.OUT: ;32962 ;Qemesmmcacrcncnconnnra = G, R : Here on BUT or to DS.WRITE.WRD.OUT: directly if OV occured in even T R ;Ditto, we have 0OV KRR N AN RN A RN R R is first WRITE RN R R AR AR R AR RN R RN RN RN R R RN R R ARy R R RhE Qmmessmcmcsccemsonmnonmna e wB _M[TEMP R],CLR2B, WXTNE.02 NEXT/DS.WRITE .EXIT :Clear high word, did dest._zero? VT TiClear sign (g0 nibble nib tor zero to dest, CLEAR FLAG METEMP R ME. ANDNOT. 2L 1T24COFD, ichack NEXT/DS. WHITE WRD,EX ; ; CMTOO8 . MC X MICRO2 DECMAL M 1M(01) Decimal String 28-NOV=83 CLOKX Rev 13.00, Clock rate = 160ns Page : DS.WRITE 132985 AR ;52987 SRR ,35086 E 15 16:30:35 ; R R A L LA R R R AR RN AR A A L AR AR Continuation of 3BYTE WRIYTE, =0 A LA A A A L LA is last WRITE, AR AR =1 AR AN LA AR AL AL AAAL AL is first WRITE, RNk R ANN R 232988 =0 232989 DS.WRITE.38: $32990 iQmmmmmmemmsn e e -, 1268, 0981,0092,0A77,F847,012E,A : 32991 ;gsgg% 32994 1269, 0D01,0092,0A77,8047,012E,A ;32995 :%gggg WB_MLTEMP.RI.AND.ZLIT24[0FF), WXUNE.O? ,NEXT/DS.WRITE .38 ,NZ ;No sign, is byte nonzero? lmmmm - ; CLEAR FLAGO,WX.NE.O?, WB_MCTEMP.Rj.AND.ZLIf26[0FOJ ;FLAGD_O, is high nibble nonzero? 132998 =0 12EA, 0087,0387,0020,0047,013D,A . 12e6, 0017,0387,0020,0047,013D,A $32999 DS.WRITE.3B.NZ: ;33000 ;Qmummcense s e———— Smem——— . 233001 MLCTEMP.R] MB.RR.24. :Yes, get BYTE into position :%ggg% NEXT/DS.WRITE, 38.0UT :'33001. + 33005 :1 -------------- ERLLLLLLLLLLL L DL CLEAR FLAGZ, :<2>image_0, get BYTE ;%%889 MCTEMP.R]_MB.RR,24 . into pos. $33008 :§§8?3 DS, WRITE.38.0UT: 13pA, ((81,0592,4000,05D8,0130,8 4 13DB, 0487,04F7,0030,0047,013D,C 3%%8}} :33013 233014 $33015 233016 $33017 13p¢, 0581,8010,0970,14A7,012E,0 133018 133019 WRITE MCTEMP,R],SIZELBYTE) IWRITE low BYTE jammsmmsssesmmmmsssmmm—— ———— MITEMP,R]_MB.CLR1B ;Set up to have WORD-WRITE ;remainder ot WRITE Jmmmmmemmmscccecemsnana - ———— VA _MLVAJ-ZLITO(2], PS[<C>7,NEXT/DS.WRITE.WRD for us code do ;Point VA to last WORD, split +sWORD=WRITE code into ‘ 804. {MT098.MCX MICROZ2 DECMAL . MIC TM(O) Decimal String 28~NOV=-83 233020 ;33021 :33022 :33023 = 16:30:35 F 15 CLOKX Rev 13.00, Clock rate = 160ns Page ¢ DS.WRITE RIAAIEI AR AR EA AR ; Continuation, last LONGWORD PN AR RN RN AR KRR RARA R RARLARRAARARSALRESRSAALEMAARALE AL R R AR AR KAR RN RN RN R KRR RN AR ARk :g%ggg DS.WRITE.LNG: 1eE(, 0DB1,00'2,0A37,8047,012¢E, ¢ 133046 ;%gggg :33029 126D, 0481,0592,4420,0508,012F,0 233030 ;gggg} WB_MCTEMP.R).AND.ZLITOCOFQ], :Even destination, is high nibble WX.EQ.0? ,NEXT/DS.WRITE.LNG.EV B e .nonzero? S- WRITE MCTEMP.R],SIZELLONG], . :0dd dest., WRITE it, FLAGO: ,NEXT/DS.WRITE.LNG.EX :1s this first WRITE? 133033 = :33034 DS.WRITE.LNG.EV: 12EE, oD4F,0013,8037,8047,012€,F ;33035 ;33036 ;g%ggg :33039 12EF, 0481,0592,4420,05D8,012F,0 :33040 ;%%825 sttt bttt bbbttt : . SET FLAGI, iEven dest,, high nibble nonzero, MCTEMP.RI_MB.ANDNOT.ZLITOLOFO) B v e WRITE MLTEMP.RI1,FLAGO?, SIZELLONG] ;<v>image_1. zero high nibble ——————; :{high nib zero,) WRITE it, stirst WRITE? is this :33043 =0 233044 DS,WRITE.LNG.EX: : 33045 H ebdiulvintulndtntnluintntdatdtuieiileiabdobe bl 4 12FG, 0881,0592,4A70,0047,012F,2 . . v 1¢F, U101,0093,8470,7847,012F,¢ 133046 ;%%82; 133049 233050 133051 W8 _MCTEMP.R],WX.NE.O?, sLast longword, NERT/DS.WRITE.EXIT B Ve ittt (LEAR FLAGO,WX.NE.O?, is it nonzero? bH WB_M[TEMP.Rj.ANDNOT.ZL]T24[0FJ ;First longword, is it nonzero? ¢(no sign nibble) 805 i l : r —_ : H —— MICRO2 (MT098.MCX DECMAL MIC 1M(O1) Decimal String 28=NQV-83 6 15 : DS.WRITE "'u.fifi*fiiiifiitttfittiittikitlttttfit'ttt!tfitfi*tlt\lttti'iliit*'ttflfit******* ;33056 SRR RN ; Common DS.WRITE exit, Last WRITE has been completed, nere from : WX.NE.O? BUT on written data. =0 is last WRITE was zero, =1 is ; nonzero. 233057 =0 233058 DS.WRITE, EX]T 333059 ;33060 ;;%825 133063 U 12F3, 0010,0C31,0230,0847,0912,C 377« : ;33052 :33053 :33054 133055 u 12F2, 0D80,0(31,0230,0847,0912,C 377+ Page 806: CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 :33064 0 IR ARN K AR R ARRR KRR KRR AR AR R R AR RR AR ARk 0emeemsmssescscmccscconscncnmnan) WB D+ZLITOL1],WB<5~0>2, tWhat is the next TEMP number? NEXT/DS.WRITE.EXIT.OV jlememeeeememcececeececeee- ——— CLEAR FLAGZ.WB_D+ZLITOL1], _ <Z>image_0, what is next TEMP number? ‘§§822 WB<5-0>? 233067 33068 TR RN N A RN N NN RRNAR RN RN RN A RN AR AR R RN R AR AR AN R Rk : Check unwritten TEMPs for overflow. '33069 ;'«fitfit**fititifiih‘\&ttti*ttt*i«ttilittii*ittt*iittfitiiitttttfi*fiittfi'ttt!tt* ;33070 =100 233071 DS.WRITE.EXIT.OV: U 112C, 0486,5002,4031,0047,0112,D 33072 ;g%g;z :33075 i u 112D, 0020,5002,4A71,8047,012F,4 233076 ;33077 ;ggg;g $33080 ;33081 4 U 1128, 0020,6592,4A70,0047,012F . v 112F, 0020,0036,4080,0047,03FF ,F 33082 ;%gggz :33085 ;33086 $33087 233088 $33089 ;100=smmmmmmm e e m e ——————; MCTEMP5J_MB.OR. R[TEMPAJ tAre TEMP4=TEMP6 zero? 107 == mmmm oo m e : CLEAR MM.NOINT, WB_MITEMPS],.OR.RITEMPG], JWAS SET AT START OF WRITE ROUTINE ;(Are TEMP5 & TEMP6 zero?) WXTNE.0?,NEXT/DS.WRITE.EXIT.OV.6 Le- CLEAR MM.NOINT, WB_MLTEMP6] WX, NE.O?, H NERT/DS.WRITELEXIT.OV.6 e e e EEL LR CLEAR MM.NOINT, RETURN C[-11 JTEMPG? L EEEEE PR : ; :We wrote TEMP3-5 and some part of ;TEMP6, RETURN ~1 : 33090 = ‘%%83} DS.WRITE,5x1r.0V.6: J 12F4, 0080,0036,4060,0047,03FF ,F J 12F5, 0848,0036,4080,0067 ,03FF ,F khhh Eggggz :33095 :33096 RETURN [~1] iNo Ov, return ;lemmamammmmamcmmeacsem———————— SET FLAGY,RETURN [=1] iSome TEMP(s) is >0, Ov., return s ] ; H e CMTO98 ,MCX DECMAL . MIC e — I . MICRO2 1M(O1) Decimal String i H 15 28-NOV-83 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : Small Routines Page ;ggggg L10C ' Decimal String :'33099 ;‘t*“*Rlfitifitkttttttttti*t*tkkttt*itttttt********ttt**ii*Q****tfi***t*i' ;33101 133192 ; microcode and are for the most part visually apparent. ; some routines are part of other rcutines. 233100 ! U ;%g}gz 807 : Small Routines'’ ; Small Routines are used at various locations in the Decimal String SRR AR AR AR RN RN R R AR R AR R RN AR IR AR A KRN Note that RR AR R AR KR KRR ARk ok E%%}gg REGION/DECMAL ,R1L,DECMAL ,RTH/DECMAL . R2L ,DECMAL .,R2H $33107 ;33108 IENEA AR 233N . :33109 ;33110 "33112 RR AR AR AR AR RN AR R AR R AR AR RRARA AR AR AR R RN AN AR R R AR ; DS.SR.BIN.MUL10, adds the binar6 value in QREG to the binary value ; in TEMP? and multiplies it by 10. DS.SR.BIN.MUL10..2 is the trail end., Both are used in MULP. ;ttitfi*itQtfitfitttttfififiit**tfitkttkt*&**tfii**ttt***tt**t‘t*kt***ttt***t*fi :gg}}z DS.SR.BIN.MUL1O, : u 19DD, 0884,0039,031,(047,013D,E Egg}}s ; 6 RCTEMP7]_(RB+Q).SL.1 :TEMP7_<data>'0 ;gg}}g DS.SR.BIN.MUL10..2: J 13D, 0886,75D1,00A1,0047,0000,1 133119 ;g%}g? 133122 MCTEMP7)_MB+(RLTEMP?1.SL.2), ;33123 AR 233124 : used by DIVP to zero appropriate bytes in GPRO, GPR2, and GPR4, :33125 R R R :g%}gg DS.SR,26: u 13DF, 0186,0037,0037,F847,013E,0 o 13F0, 0884,03BE,0004,0047,013E,1 v 1381, 0884,038E,0015,0047,013E,2 };%}gg 133130 ;%%}g} 133133 ;gg}gg :33136 o 1362, 0C84,0002,00u4,8047,0000,1 ;TEMP?_cdata>( RETURN [T1 ;33137 :33138 R ] A R R AR A A R fi[TEMPO]_ZLITOEOFF] A A A R L R AR R AR AR A AL AR LS AR RALE R R R A AR AR ARl EByte mask oi H RLROJ_RB.AND.(MLTEMPOJ.RR,8) :GPR0O_zero'd low 3 bytes Jmeemm e s e e e m e m e ——————————————— : RCR4I_RB.AND.(MLTEMPOJ.RR,16) ;Zero out bytes #0, 1, and 3 ot GPR4 e a e; RLR2]_MLTEMPO].AND.RB, RETURN (1] ;2lero out high 3 bytes, GPRZ, JRETURN +1 O [N e e e ettt s ——— = OO CLOKX Rev 13.00, Clock rate = 160ns Page Small Routines : ;tttttilt'!'!i!iflRtiti*ttttfi*t***ti*fi****k*******i*i*fii*tfiit*tkttt*tl*fi ; DS.SR,18 is used by DIVP code to manipulate pieces of fractional ; LONGWORDs. RETURNs +2 if BUS exception occurs, ;tttflttttttwtutttttwt*ut*tt**t*ttt**************fi****fi***********i****i =Qnw DS.SR.18: LT L L L LU P RCTEMP13]_ZEXT(XB) PC_PC+1, ) ——— :TEMP13_next BYTE NEXT/DS.SR.18.CON A e ettt itttk H MITEMP3] _ZLITOL2),RETURN [21 JRETURN +4 from BUS exception, RETURN +2 sfrom routine, int. code #2 DS.SR.18.CON: MLTEMP.R]_MB.OR.(RLTEMP13].RR.8). RETURN [1] :Mask in new byte into byte#3 ;of current TEMP .‘ti**fifl**‘*fi**t**i**tflW*N't!Q*‘t**t!*fltii**iw*Qfi**ti#fi*tfitfififit*ti*fififittfifi ; Used by DIVP to do packing and StateSave operations on GPR2. N3 DS.SR.21" S 322 2322233323322 e e o o ot A o RCR2]_RB.OR.(MLTEMP11.RR.8) 1 G S e 0 e e e 0 e 0 e R G SR A D S e AR e O ey G e Gy W Oy s ] o o~ e = — m e g = — 0 ~ 8YTE] > ¥ m DS.SR.28: ~ RCR21_RB.OR. (MLTEMPS].RR.24) - S W = OO 00 NN I15 16:30:35 R b b ek d b D ol b D D D b e D o T O N S NRL 2 OO 00 NON TSN D d b d d ek b d d e md e i B e e b D PR P T P b O AN = O OO0 0884,33BE,4094,8047,0000,1 e J 13E6, 0884,459F,4000,(047,013E,7 NNNNNNSNOCONONONONON O OOV NI NN S SN D B S S D DWW U 13E5, 0484,53BE,4024,8047,013E,6 — —ed d U 13E4, 0484,13BE,4004,8047,013E,5 S T T R O T T U 13E3, 0887,0292,4083,4047,0000,1 L A L U L LA L A A LA LA U L AT L U U AT N LA UL Und L N U U NN GOV A N LA A L o Ll U N L U U G AN U U N O P T O J Y1BE, 0586,3C37,0080,1047,0000,2 TR T R P TR L TR I U NN U N U U s AN A NN AN o AN N N AT U AN N N N N Y J 11BA, 0885,759€,4003,6047,013E,3 u Y3E7, 28-NOV-83 Decimal String DECMAL.MIC © M01) w MICROZ —z (MT098.MCX ------------------------------- 2332308323022 33333233233333383333332342 4] e § {GPR2, byte#3_TEMP1 :GPR2, byte#1_TEMPS ETEMPA could be negative (DIVP) RCR2]_RB. OR.(M[TEMP31.RR.16), "Ecpaz. byte#2_ZEXT(TEMP4) RETURN (1) . 808. MICROZ 1M(Q1) pecimal String TR TR TR P S J 15 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns Page : Small Routines Rk R R R AR AR R AR AR R AR AR AR R R R R BCDSWaP MTEMPS kAR AR R AR R AR AN R A A RAA RN AR AR RN TNY ;**ttkt&*i***t***t*****ifi*t*it**t*i*****i****tti**fl**t*{ttiit***fl**ttt' DS.SR.2¢2: e T T T T LY LY MCTEMPB] _MB.BCDSWP,RETURN [1] T 1) 138, 0C86,8637,0080,0047,0000,1 28-NOV=83 LA A AT LA A G A AT AT AT A LA A LA A LA U U LA O LA A U O AL N AN LN L U LA UAT LA U A U S A N (A AT A AL G LA U N LA A O LAAAT N A A AT N NN PORURINRVNONIRINUN) — b S b cd b b b b b = 2 2 De b b i OOOOOOOOOOV VOV VOOV VYOOI N~ QO O N S AP = O OO NN VIS D = OO NN E W) 2O 0~ I=Po =22 {MT09 DECMA Ll ] H H - oo — U 13EA, 0886,A637,0080,0047,0000,1 u 13E6, 4(80,3237,1081,(047,0000,1 b P U 13E9, 0886,9637,0080,0047,0000,1 I I T TR T ! R I ; B(DSwaP MTEMP9 s Rk DS.SR, 23! ¢ R R Rk R AR R I kRN R R AR AR AR AR R T T AR AR R AR R AR R AR T AR AR R RN R R AT NN AR 2 - MCTEMP9] _MB,BLDSWP,RETURN [1] ;tkttttt*ttt*t*t'kk**fikt****'*t*t********fifi**fi*fi*t*Qii*tfifitfi**flttittfifii ; BCDSWaP MTEMP10 :**t***i*t*tkt*tkitt***k*k*ifit**fik****fi*fitfik***********‘*******Q*fii**** DS.SR.24: fi[TEMP10]_MB.BCDSNP.RETURN [11 :BCDSWP MIEMP10 ;**tt*tti‘iiitkt*t*tfitttttk*flfitfifitfi*t*tQttttfi**fl't*fit*tt***fi*****tflifii* ; Used in DIVP to shift a LONGWORD by a digit (x 10.) PR AR Ak N R 1 . DS.SR.25" oy 4 Ak AN R Ak e o o B o o s _(R[TEMP7] M{TEMP31).RL.4, RETURN [1) A Dt 6 kA e A P ARk khhk 10_""new'" TEMP3 kb hkk bk hdacad 809 ; : 1M(Q1) 2 NRU = O 000 NN N ES LW -2 O 000 NN B AN - O OB NN SWNNV = OO0 L N LA U AN AN R U LA AN N A LA A LA N AR AN N U N NN O N A LA NS LN\ NN LN T S o 1N MNUNDNUNLNLNLNL NDNL FUNUALNLPLALFL PN NN NO NUVLSTRUNTNT D I B D DM R N AN W AN N DO RO NONO PO NUNO NN — 2 = = b 3 2 b 3 bo NN iy WA TR T T T R L “amo . N Ay 0882,0034,4084,0387,0000,1 N AT G U AL A N A AN N O A N DU i 13F2, L AR R T T 131, 0886,3637,0080,0047,0000,1 Yy 13r0, 0086,2437,0030,0047,013F,1 TP 0886,1637,0030,0047,013F,0 g A (A (o U U 13EE, 0886,6637,0080,0047,0000,1 e LA 13eD, 0C86,4%637,0030,0047,013E,E LAl U LA LA S Decimal String 13£C, 0886,4637,0030,0047,013E,D 13eF, 28~N0OV-83 U G DECMAL MIC MICROZ2 L A LN LA U CMT098.MCX 16:30:35 K 15 CLOKX Rev 13.00, Clock rate= 160ns : Small Routines Page ;‘tttttii!ttt**tkkt&!tltttlllttki*t'l*twtflttt*t*t**t**tt**&***********t : ?sod in DS.DIV10 and DS.MUL10 to BCDSWaP data to and from arithmetic format. : :*t**t*******i*fi****fitiit*it****i*t*i***t***t****t***ttn*ttk*tittttflt*i DS.SR,4565WP: MLTEMP4]_MB.BCDSWP ¢ - S o . 0 - - - 0 0 B i fi[TEMPSJ_MB.BCDSWP e S8t G S T B P O " e o ———- P e G B S MLTEMP6]_MB.BCDSWP,RETURN [1] ;tfit&tii*ttltt*flttttlttt**tt*it'ttfl'!***kflQ*Q***tt*t*ti**titi***tit**i* ; Used in DS,DIV1I0.DIVP to BCDSWaP data to & from arithmetic format. AR AR DS,3R, 125SWP: S O R R R AR R R R AR R R A R A A A A AR AR R R Rk kb . T Y W v $ - . sl aintshda o o o s ekt o i e o O Bt St § it MLTEMP3]_MB.BCDSWP,RETURN [1] Udulainl :tt!fit't*itttfittt*tttti**ttt**itt*tt*tt**fi*fii***i*fi***fl*fli*****fi*ii**fl* . Used by DIVP to mask in FLAGS. :tflfl**'fifiiti*fiifiii*fii*fitittiitit***t*tii***i***i***it**t*i**iii*i*iiiti DS.SR.GPROIN.FLAGS: @ m it o e A e e RER01.SIZ_FLAGS,RETURN [1], SIZELBYTE] g Y YFLAGS, GPRO is done fi 810: : CMT098.MCX MICROZ DECMAL MIC 1RO Decimal String 28-NOV-83 133246 . ;33248 (NOBIN 233250 LI1CODE_ 133249 ;33251 ;33252 ;33253 : 33254 .0OCODE :%gggg .1CODE ;33260 .0CODE +33264 ,1CODE : 33267 .OCODE 133261 :%gsg% 137265 :33266 133268 :ggs%g JLDS.CMPP4 OF8: CNTOLNOPJICDS,ASHP JIDS,ASHP CNT1INOPILDS.ASHP,?2 ] ] 035: CNTOLINOPILDS.MOVP 1LDS.MOVP CNT1INOPILDS.MOVP.2 0CODE ] 037: CNTOINOPILDS.(MPP4 JIDS.CMPP4 ;33288 .0OCODE ;33292 133293 ;33294 ;33295 133296 133297 IRD1LLODI{OS.RED CNTIINOPILDS, CMPP4L, S2 ,1CODE :g%sg? JIDS.MOVP.2 237: FPD [NOP)[DS.DS.UNP ;33285 : 33289 JIDS.ASHP, 2 035: FPD [NOP]LDS.DS.UNP IRD1LLODICOS.RED :g%gg? ;33286 133287 JIDS.CMPP4,S2 ] ] L 1(ODE :%gsgz S.CMPP4 S.CMPP4.S2 JIDS.CMPP4, S2 ] ] OF9: CNTO[LODILOS.RED JLOS.RED . 1CODE ) 036: FPD LNOPI(DSCVIPL UNPA(CK .0CODE !RDICLODICOS.RED 036: C(NTOINOPJILD®,(VIPL CNTIINOPILDS.CVTPL 0e 0PS JIDS.CVTLP J ] 1 1 1 J ] J ] 1 1 ] | ] JLBL.CVIPL JIDS.CVTHFL.O2 FPA REG CLODICOS.RED ] OF9: FPD [NOPJLIE,.QOPCOD,DPEC IRD1[LODI[OS.RED CNT1ENOPILDS.CVTLP Page : Native Mode IRD Specs'' [NOPJLDS.DS.UNP 1 OF8: FPD [NOPJLDS.DS.UNP IRD1ILODILOS.RED ;33278 ;33282 20: CNTOLNOP S.RED MEM JIDS.ADDPG JIDS.ADDP6.2 ,0OCODE ;33279 ] 21: CNTOINOPJILDS.ADDPG CNT1INOPICDS,ADDPG, 2 33274 ,%gg;g S.DS, UNP IRD1CLOD .CLOKX Rev 13.00, Clock rate = 160ns Decimal String ] ] . 1CODE 133275 REG ' 21: FPD [NOPJLDS.DS.UNP IRD1CLODILOS.RED 33271 233272 133273 ; L 15 : Native Mode IRD Specs 20: FPD [NOP CNY1INOP $33257 :33258 133259 133247 16:30:35 CNOPJLDS.CMPP4 ) FPA MEM 1IDS . CMPP4 JIDS.CMPP4, SQ [NOPJLDS.DS.UNP [LODICOS.RED 1, ] [NOPI[DS.ADDP6 [NOPJILDS.ADDP6.2 JIDS.ADDPS J(DS.ADDPS .2 CNOPJLDS.DS.UNP [LODILOS.RED J, ] [INOPJLDS.ASHP JIDS.ASHP CNOPJI(DS.DS.UNP [LODILOS.RED 1, ] [NOPJCLDS.MOVP (DS . MOVP CNOPJLDS.DS.UNP 1, ONOPI[DS.ASHP,?2 UNOPJI[DS.MOVP,2 JIDS.ASHP, 2 J1Ips.Move, 2 {LoDIL0S.RED h] [NOPJLDS.CMPP4 JCDS.CMPP4 CNOPJCIE.OPCOD,DEC CLODI{OS.RED 1, ] CLODJLOS.RED JL0S .RED [NOPJEDS.CVTPL.UNPACK 1, CNOPJIIDS.CVTPL JDS.CVIPL [NOPJI[DS.CMPP4,S?2 [NOPIIDS.CVTLP [INOPJIDS.CVIPL.02 :ADDP4 J INOPILDS.(MPP4,S2 [LoD)(0S.RED 1 1, DS .CMPP4,S2 JIDS.CVTLP ], ] ;ADDPS 1, ] s ASHP 3, ] ; CMPP3 1, ] : CMPP4 ], ] s CVTLP 1, ] s CVTPL ] J[DS.C TPL.02 1, ] : 811: ' MEM ] FPD [NOPJLDS.CVTXX. UNPACK IRDTCLODILOS.RED J ] CNTOLNOPIIDS.CVIPT CNTT1INOPI{DS.CVTPT. 02 JLDS.CVIPT JIDS.CVTIRT, 02 . [CODE 0 08: FPD [NOP] €os. (v TXX.UNPACK +OCODE 008: J ] C(NTOCNOP) [DS. (VTIPS JIDS.CVIPS JIDS,TVTPS.02 . 1CODE 024 .0CODE 024: IRD1CLODICOS. RED (NT1INOPILDS (VIPS,0¢2 . 1CODE 009 ,0CODE 009: . 1CODE Dele .0C0DE 027 . 1CODE 0 34: .0CODE 034 . 1CODE 025: .0CODE 0 25: FPD [NOP) L IRDICLOD] [ (NYO[NOP]E CNTTLNOPIL +UNPACK j| .02 JIDS.CVISP DS, CVISP,02 pDPE JADDP6.2 J ] 1 1 1(DS.ADDPG, 2 IRDITLODICOS. RED ] ] (NTOLNOPILDS. MOvFP CNTT1INOPILDS. MovP.2 JLDS.MOVP JUDS.MOVP,2 FPD IRDTLODI[OS.RED ] ] CNTOINOPI[DS.ADDPO CNT1INUPILDS.ADDPG. 2 JIDS.#0DP6 JDS.ADDRG.2 [NOPILDS.CVTTP INOPI[DS.CVTTP,02 d £os LCVITP 1 [DS.CVTTP,02 [NOPJLDS. CVTXX.UNPACK [LoD1{0S.RED ] ] [NOPJLDS.CVTIPT INOPILDS.CVTPT,02 i D S.CVIPT 02 30D S.CVIRT, [NOPJ(DS.CVTIPS ENOPI[DS.CVTPS.02 ; CVTPS S CVIPS { PS. (o S.CVTPS,02 ;CVTSP [LOD1COS.RED ] ) [NOPIIDS.CVISP [NOPI[DS.CVTSP,02 CNOPJEDS.DIVP.UND [LODICOS.RED ] 1 [NOPI[DS.ADDP6 [NOPIIDS.ADDP6.2 ;DIVP {0 $ .ADDP6 { DS.ADDPS, 2 ;MOVP [NOPJ(DS.DS,UNP [LODILOS.RED J 1 [NOPJ){DS.MOVP [NOPILDS.MOVP.2 CNOPJIIDS.DS.UNP [LODILOS.RED ] ] JCVTTP s CVTPT ¢ [NOPJILDS.CVTXX.UNPACK ] ] JLbs.ADDPE [LODI[OS.RED + [NOPJEDS. CVTXX.UNPACK (LODILOS.RED ] FPD [NOP] [ps. DS, UNP [NOPI[DS.DS,UNP ] J FPA MEM ] ] INOPI[DS.ADDP6 [NOPI[DS.ADDP6.?2 sMULP S.ADDPS - CNTTLNOPILDS.CVTTR,.02 JLDS.CVITP JIDS,CVITP,02 026: CNTOLNGPILDS.CVTTR CrS FPA REG [NOPJLDS. CVTXX,UNPACK (S ] Page 160ns 16:30:35 [ T3 IRDTCLODICOS.RED M5 CLOKX Rev 13.00, (lock rate t Native Mode ]RD Specs 28-NOV~83 oo B .OCODRE REG 0PS FPD [NOPIIDS.CVTXX, UNPA K DO NS NN = OO0~ o AN =S O OO o o R A VN T T AN = O VO N LAl LA A AL N U LN N AN LA R W LY A NN e W NS W) SO0 NN N R WY AN A AN N A U SN AN AN LN N LA L N L N A AT LA L N U AN AL N AN N N N AU LA LA N LA A AN A A L N N N LSLN1\V] ROMUNORNUPDRUNL = o o= s b 2 s O OO (=1 2w A WA N N A AN W L N N N NN N N A TR TRTR avema N N AT LN A NLA R R P NN BN N NN N N LA U G N U A L P A L LA L AN A R O T ;33302 . 1CODE 0 26: >> ;33298 ;33299 $33300 P T Decimal String L . MIC DECMA : 1M(O1) = (MT098.MCX H MICRO2 812; ; H ;33346 :33347 $ 33348 ;33349 233350 33351 33352 ;33353 133354 $33355 $33356 ;33357 133358 ”\ IMOOY) MICROZ Decimal String (MT0S8.MCX DECMAL .MIC (ICODE__; 16:30:35 : 15 Page CLOKX Rev 13,00, Clock rate = 160ns Native Mode 813! IRD Specs f 0PS REG 022: FPD [NOPI{DS.DS.UNP ,0CODE 28=NOV=-83 IRDICLODILOS.RED 022: C(NTOCNOPILDS.(MPF4 CNTIINOPI{DS.CMPP4,S2 ,1C0DE 023: FPD [NOPI[DS.DS.UNP IRDICLODICOS.RED L QCODE _. 023: (NTQ[NOPILDS,ADDPE (NTI1INORIIDS,ADDPRS, 2 ] MEM ] JIDS.CMPP4 JIDS.CMPP4 . S2 JEDS.ADDPS, 2 J, [NOPJLDS.(MPP4 [NOPILDS.CMPP4,S2 JIDS. CMPP4 JIDS.CMPPR4, S2 INOPJLDS.DS.UNP fLODILOS.i¢D 1, hj INOPJLDS.ADDPS J(0S.ADDPS CLODILOS . RED ] ] ] ] JIDS.ADDPS OPS FPA REG [NOPJLDS.DS. UNP ] ] [NOPILD5.ADDP6.2 FPA MEM ] 1IDS.ADDPE. 2 i ;SUBP4 rMIDG8 MIX DE CMAL LM C H 13338y, Tor ;33361 133362 .DCope ;33360 MICROZ 1M(Q1) Decimal String " B8 16 2B=NOV-B3 Decimal String 16:30:35 (.0kX Rev 13.00, ClLock rate = 160ns : DSIZE ROM specs - .+ DSIZ2E ROM. specs''- - - : '%%%22 02%: S1ZE [WORD) (BYTE] [WORD) (BYTE) [ 01 ;ADDP4 .2%%22 02t S1ZE [wORD]) [BYTE] [WORD]) [BYTE]) [WORD] [BYIE] ;ADDPE ;z%%gg 0F8 SIZE (BYTEY (wORDY [BYTE] [BYTE] [WORD] [BYTE] ;ASkP 3%2%98‘ U3S: SIZE [WORD: [BYTEY [BYTEJ [ 03[ 03[ 01 ;(HeP3 §§§§3 037 SIZE [WORD] [BYTE] [WORD) [BYTEJ [ 03 [ 0) ;CMPP4 Egg;s 0F9: . SIZE [LONG) [WORD] [BYTED[ 01C 01 01 ;CviLP :%2%;2 C3¢: SiZE [WORD] [BYTE] [LONG) [ L 0t ¢l ovrpL ;%%%;g 026: SIZE [wWORD] [BYVE] [BYTE) [WGRD] [BYTE) [ 0J ;CvITP E§§§g8 024: SIZE CWORD) [AYTE] [BYTE] [WORD] [RYTES [ 01 ;CVIPT ;%%%g; 008: S17E [WORDT [BYTE] [WORD) [BYTF] [ 03 0 01 .CvIPS E%%ggS 009: S1Z6 [WORD) [8YTE] [worD) [BYTEI L 01 [ 01 ;CvISP, ;zgigs 027 S1Z¢ [WORDY [Br1£) LwoRD) [BYTE] [WORD] (BYTE] ;DIVP ;§;;8? (%4 G170 01 ;movp ;;;;gg 025 5126 {wOoRDD £8YTED (WORD) [BYTED [WORDY [BYTE]D MULP Eg%%g; Ve S1JF TwGRD) [BYTED [WwORDY [BYTED [ 01 ;5uBP4 E§§§g§ ues: SiJE {WCRDR) [RYTED [WORD]) [BYTE] [WORD] [BYTE] | SUBPG ; & H 4 : 6 . 8 . {, [wWORD) ThYTEDY [BYTEYT [ 0) [ 03 ( ¢1 { 0) L B 133304 2 §339e ;33397 B ;33398 ; ;33399 ;33400 Jobry ot K IRETIN £340/ 13308 R 000Dk R A A R A R A A A A A A AR A AR AR A A A AR A AR ARl DEOMA R R A A A ;33404 A ,BIN A AR A R AR AR A AR AL = = = Page = = 814 = = i t MICRC2 (MT0GB. M(X EDIT . MIC EDIT.MIC | 28-NOV~83 1M(OT) 16 CLOKX Rev 13.00, Clock rate = 160as 14:30:35 - ;33405 .10C "EDIT . MIC £ 33606 .T0C “REVISION 13,0 i : ;%%23; : 133409 NCBIN 158311, 1334612 :33413 TOC ' Reyicion Mistory' ; ExPLAINATION ;33415 ;13 ;3% oM 133610 133414 REV Fix EDI{TP{ to get proper data Fix that RO ang Re don't get clobbered, ;33618 Initial release. ;10 Gerard Koeckhoven, CHARLIE MCDOWELL in RS :33616 ;12 . . . Fix REPLACE_SIGN to work 1f a page fault occurs doing the tix up, 133410 BIN ' Page 815 CMI09B.MCX EDIT.MIC D 16 1M(01) 28-NOV-83 16:30:35 CLOKX Rev 13.00, MICRO v INITIALLZE fdit Packed to (haracter string ! AT LA A N AN P DD DN NN P ol ok 2 U A A o U AP L AT U o A LA ok AU A ol ol b AT N G . 816 Edit Packed to Character string : INITIALIZE" ; EDITPC : Input MDR : Resources MDR : srclen.rw, srcaddr.ab, pattern.ab, dstaddr.ab : : H Output : H : R3 Pattern address TEMPQ Pattern byte from XB TEMP2 TEMP3 TEMP4 Save P( Return code for FPD Save sign byte MTIMPO FPDOFFSET PC RO Save ASCIl '0' for conversion Set to 0 for all EDITPC Used to prefetch pattern bytes Source length remaining R5 Next destination byte address TEMP1 MTEMPS : RQ : ; H Subroutines IE.OPER,FAULT Temporary Temporary Save source length Save PSL for easy access of (C's Sign'Fill re? ster 0S.ADD 10 ED.POD. TE.SERV.IP.TS H : ED.PACK H : Fetch other operands Save operands H : : ; H Source length (srclen). SA TEMP2 TEMP3 : : This section contains the initialization code for EDITPC and also ; containg the main 'pattern oporator“ toop (ED.LOOP). ; CHARLIE'S FLOWS 6.1 : : : Following this is a section to do the '‘pattern operator decode' (ED,POD), seperate sections for each fla.tern operator and read and store routines very similiar to those described in the SRM. ‘ttttltltttnnutttttttttttituttfitfliitttntttitttttlti'titfiifiitfiitt!tt'tt.tttttti LREGION/IRDX,RIL,IRDX.R1H/IRDX.R2L, IRDX .R2H ED.EDITRC: w8 SEXT(MCMDRJ) ANDNOT . 2L170E1FJ SiZngggb Y i ; CHECK IF SRCLEN GRTyY 31 LREGION/ZEDIT,RIL EDIT. RYR/EDIT,R2L,EDIT, k?H/ED!T R3L,EDiT.R3H w A B R Page ,‘kt**t**fiifi*tttQt*ttttttfitflfifiififi!n*!!*Qnfittfihktflflfittfitfifil!fit'tfiifihitfifii'fi*iiii T U AN LA LA L 0 .8 U T4ES, 0c80,00%6,4030,0047,00FF A AN U W U PO AU W NP RO N NONO-ORONON O O OO~ O IULA LA LIV LALN VAN 2 o o B 5N I D B WA N LA — O D00 O U S N = O O O NN Sy — —b D NOCO O VIS AN — O D00 O N 2N — OO0 ~NO~ B AN LN N A AN UL LT LN LA A W e 1 Lad AN N LR AN LA U aE DD [ e N W R [P S e O P T T M (A OV O L T LA AN Ui (U LA U AT A U L AT AL L NN G e R S T rd U 03C1, 0581,21F,8A10,7847,G14E,8 U O T T PR PR P TR PR TR e A AT LAY L AN WA A LA LA A W U A U0 W N U I PP PR SRRY 33420 LTOC ' Clock rate = 160ns NEXT/IE OPER,FAULT : SRCLEN IS GRTU THEN 31 i i ; CMT098.MCX MICROZ EDIT.MIC 1M(01) Edit Packed to Character string 133472 ; 1469, 0685,259E,4190,4047,0012,0 £ 16 28-NOV=-83 16:30:35 133473 133474 ;%gz;g CLOKX Rev 13.00, Clock rate = 160ns : INITIALIZE Page {leemcmansnnnnacan———- wmmmmwm———; RCTEMP1] ZEXT(MCMDRD), SIZECWORD], : ; SAVE SRCLEN LOD INC BRA?,NEXT/0S.ADD Y FETCH SRCADDR (RETURN VIA IRDX ROM), E%gz;g .REGICN/IRDX.R1L, IRDX.RIH/IRDX ,R2L, IRDX.R2H 132479 =00 133480 ED.EDITPC,02: 133481 028C. 0586,€CC37,01B0,0047,0412,0 . 02BE, 0086,358D,8030,4047,014E,4 i: MCFPDOFFSETI_ZLITOCOD, Y SET FPD PACK BRANCH OFFSET ;ggzgg PUSH,NEXT/0S.ADD Y FETCH PATTERN ADDRESS 133483 :33486 02BD, 0886,203A,418D,8047,0412,0 B 133482 LOD INC BRAY; : $0)=mm=mem s mmcm o e 133487 MITEMP2] Q, * SAVE SRCADDR ;ggzgg PUSH,NEXT/0S.ADD * ;33488 :33491 ;ggzgg : LOD INC BRA?, e e et e MLTEMP3]_RLTEMP11.SR.1 FETCH DESTINATION ADDRESS L LT EEL R ; Y GET LENGTH OF SOURCE IN BYTES Eg%zgg "REGION/EDIT.RIL,EDIT.RIH/EDIT.R2L,EDIT.R2H/EDIT.R3L,EDIT.R3H 1464, 0080,3001,0030,84A7,014F,0 1450, 0C85,2592,4000,€050,0150,5 1505, 0085,2387,0001,0047,0150,8 1508, 0480,2002,403D,84A7,0151,0 ) 1510, 0880,058E,4270,4047,014E,A 14EA, 0884,2592,4004,4050,0151,8 14E8, 0884,2651,0034,4047,0151,8 E§§239 VA_MCTEMP3)+RCTEMP2] 33498 Pt mmmemmmnne 133499 :ggggg :33502 ;ggggz $33505 ;ggggg 33508 READ,SIZECBYTE], RLTEMP3]_MCMDR] ' * GET ADDRESS OF SOURCE SIGN BYTE, : FETCH SOURCE SIGN BYTE. : SAVE DESTINATION ADDRESS e R L LT : RCTEMP4]_MIMDR].RL .24 * jm=mems sesemeccesssassssssenes ; VA_MLTEMP2) * WB_RLTEMP1], WB1=05? 133510 133513 ;10=evacecuacancnnn ammmmmmnn———.; READ sxfecavrgJ. ; ;ggg}S NEXT/ED.ERITPC.10 ;égg}g RCR1I_MLTEMP2]-1 333519 LOAD SOURCE ADDRESS [mmesmceormeuama———— cmmmmmmm———— 133509 ;ggg}? 10 133514 SAVE SIGN BYTE ROTATED FOR SIGN CHECK. Y INITIALIZE THE READ ROUTINE * BRANCH ON RIGHT OR LEFT NIBBLE RER1I METEMP2Y, : T ; ; ; E%%gsg LD.EPITPC, 10: U 1518, 0084,1592,4034,0047,0152,F 152E, 0084,3592,4035,4047,0154,A }gggsg : 33504 133525 RCROI_MCTEMPT] * SAVE SOURCE LENGTH Tttt L LR CELEL AL LY ; ACRSI_MLTEMP3] * SAVE DESTINATION ADDRESS 817 (MT098.MCX MICRO2 EDIT.MIC 1M(01) 28~N0OV=83 16:30:35 tEdit Packed to Character string 1544, 0586,2037,0031,0047,0155,6 1556, 0450,4636,4DF0,0047,0150,6 133526 ;;gggg 133529 :g;g%g 133532 =10 1506, 015€,3C37,0030,60A7,0156,6 1507, ODB6,3C37,0030,2047,0155,8 CLOKX Rev 13.00, Clock rate = 160ns INITIALIZE ntmieiytetmiuinbuiulotepoteintetutniutnininteletetets === MCTEMP2]_2L1T0L203 ¢ {m = ; BRANCH ON SOURCE SIGN BYTE BCD SIGN MCTEMP41?,SET FLAG2 ; SET PSL<Z> FLAG. $10==smsemmoomiocanenaan eammme; (C_MCTEMP3]_ZLITOLOCT, * CLEAR TEMP3 (EXCEPT LOW BYTE) ;ggggg NEXT/ED.MiNUS : :33534 133537 ;ggg%g :33541 :33542 Page INITIALIZE FILL CHARACTER TO BLANK. :33533 :33540 1558, 0D86,2D92,4031,0047,0157,3 ¢ F16 SET FLAGS, : SOURCE HAS MINUS SET N, 2, CLEAR V,C 1)mmmemcmcmemeceaeans ammmeamen; CLEAR TEMP3 (EXCEPT LOW BYTE) cc m[renp33 2LITOC4) : SOURCE HAS PLUS SET N, CLEAR Z,V,C Di; MCTEMP2]_MB.OR.ZL1TBL20], NEXT/ED . SIGN.FILL ;%ggzz ED.MINUS: 1566, 0586,2D92,4031,6847,0157,3 Egzgzg MCTEMP2]_MB.OR.ZLIT8L2D] 1573, 0084,2592,4034,8047,0157,A Sggggg EDLSIGN.FILL: Eggggg RCR2I_MLTEMP2] : INITIALIZE SIGN TO BLANK ; P INITIALIZE SIGN'FILL TO MINUS'BLANK ; '133551 ED.DONE.0S.EVAL: 1574, QAED,A592,4030,8047,0157,€ 0 157€, 0084,002C,7034,0487,0158,8 1588, 0086,8036,4030,0087,014F,2 , 14E0, 0880,0277,0230,0047,014F 1 , 14E1, 0480,0036,4AF0,0047,04F7,0 133552 ;;gggz et : OPERAND SPECIFIER EVALUATION IS RCTEMP2I_MCPCI,SET FPD : COMPLETE, SAVE PC AND SET FPD $33555 G L L LB EEE T ; 33336 1111 B ;ggggg 200 ;ggggz 133545 ;33566 ;ggggg 133570 14E5, 0D81,AC10,0030,0C87,014F,6 1466, (586,3DB?,0030,5047,0165,0 i USE XB TO PRE=FETCH PATTERN BYTES. D mrrsMPaJ _PSL,NEXT/ED,LOOP ; : KEEP PSL WHERE 1T IS EASY TO GET AT, 333561 ED.POD: ;000e=s=msummmmncunsuannsnmnunnn ; 133562 133569 E£0.LOOP: 14£2, 0085,759E,4B00,38E7,014E,0 PC_RIR31_G @_D 133571 ;;gg;g 133574 =101 ;ggg;g :.3577 1335728 ;%gggg ) wa (M[TEMPOJ RCTEMPOD) RR.4, 5=0>7 ,NEXT/ED.POD. 10 : BRANCH ON PATTERN BYTEC7:4> 1001 =mmmsmmmmama e : GO SERVICE THE INTERRUPT AND IF INTPEND OR TIMER?, PUSH,NEXT/1E,SERV. IP, 152 R : :010=smmnmeecmomcmocnamnnnunnnn ; RCTEMPO) _ZEXT(XB) 1P, T5?,NEXT/ED.POD PL_PC*1, : 1T WAS THE TIMER, RETURN = 1 FETCH PATTERN BYTE : IF NO INTERRUPTS, DECODE THE PATTERN ;101=s==memcscmosmemmm e : EPD PACK RETURN FROM INTERRUPT CODE, PC_MIPCI=ILITOL1] : THROW AWAY LAST PATTERN BYTE FETCH A et ——seee “===~; FPD PACK RETURN FROM UTRAPPED MCTEMP3] 2L 1T8L0AY, NEXT/ED, phck ; SOURCE XB AT ED,LOOP, SET FPD CODE, :D GO PACK IT UP, A 818. , 6 16 Page 28~NOV=-83 16:30:35 CLOKX Rev 13,00, ¢ éock rate = 160ns : PATTERN OPERATOR 0ECOD Edit Packed to Character string 1M(01) 14F7, 0586,3087,0030,4847,0158,¢ W R RN NRRANR ARk LAZ AR AR RN R R R ARttt Rttt d) Entry points ED.POD.10 Input TEMPO Pattern operator Output TEMP3 Count for EOS$FILL, EOSMOVE and EOSFLOAT or return code if reserved operand T I YR SR RRR A AR AR A mmmminm IR T AT T TR SRR OOUOOU P ED. RESV OPER “40=4 . AC Subroutines R This routine decodes the pattern ogerator and passes control to the proper routine to process that operator. IR PO RS Byte operand for operators 40-47 TEMP6 AARA Charlie's flows 6.2 SRR SRR R RRiaRtis Rilllt] LRSS AAAR AR RSN ARARR Rttt lll]) =111011 ED.POD.10; ;111011 o R L L R R WB_MLTEMPOJ=ZLIT SIGND CMP DEF?,S DY ; PO = OX, 1X, 2X, 3X, 8X, 9X, AX, BX ; ISOLATE 00=04 NEXT/ED.POD.20 NB MITEMPOI-2L ; PO = 4X, 5X, 6X, 7%, (X, DX, EX, FX ; ISOLATE 40-47 ;001 ; SIGND CMP DEF?, =001 MLTEMP3] 7 NEXT/ED, RE U"— AN A AN N A AT P T Lo e e L 158€, 0886,3002,4030,0047,0165,0 AR ED.POD. 15 RETEMPéJ ZEXT(XB) PC_PCH1, PO = 4B=4F, 5X, 6X, 7X, CX, DX, EX, FX ; PO = 40-47 NEXT/ED.Z0=47 pay 0C85,75%¢,4001,A047,0159,8 T 14F3, Edit Packed to Character string : PATTERN OPERATOR DECODE"’ .JOC " wny —aoooo\:ambwm—-oocowo\abumaoo@wOwbwm—-oom NIONAN D NN 2 O O CO IO NI (NP — 0080,3DB7,0030,5047,0151,A LA AN A LA 14F1, 0980,0010,0862,4047,094F ,1 413+ CATATLAT LA LA AT A LA 14FF, 0580,0010,0860,2847,0950,9 413+ AN A A AT AT LA AN A AT U A U U 14FB, e T T N R O U U WA AT A U U U Ut L U LN LN L U U U TS TR TR PR PR P PR P PR PR PRI A LA A L LN O N AU AN AN TR PR TR TN 2 L i Lt LN U U A AU LA U U AT AN O U A LU L U LA U U U U AN A AL LR LT UL LA L i [o 0o Mo NoNu Xe No NoNv No Moo NoNoNo Yoo to T JodoJo Jo Jo g 3 O O~ONO O OO OO~ LN VN0 O OO0 O G000 0oL Cocn o0 0o CALMLAILANUNDNINORUNUNITUNUNY bb=DDD D 2 OOCOOOOOOOO MICRO2 ; ; FPD PACK RETURN FROM UTRAPPED SOURCE XB AT ,=4, SET FPD (ODE, ------------------------- i SAVE PATTERN OPERATOR, GO PACK [T UP, 819: EDIT.M MICROZ IM(OT) 2B<NOV-83 16:30:35 Edit Packed to Character string H 16 CLOKK Rev 13.00, Clock rate = 160ns : PATTERN OPERATOR DECODE i Page 820! | ; :33634 =01 ;33635 ED.POD.20: 133634 1509, 0180,0C10,0864,0847,0951,9 413 1508, 0880,05BE,4230,0047,0150,0 107 =mcmemcemmce e canae -: PO = 05-0F, 1X, 2X, 3X, 8X, 9X, AX, BX . ; ISOLATE FILL, MOVE AND FLOAT i ; , ’§§2§§ g?zgfrgnPOJ=ZL1T0[81], }gggzg SIGND CMP DEF?,NEXT/ED.POD.30 133641 ;1lememmmammem e ——————wmmmm=; PO = 00-04 ) WB<5-0>7 ,NEXT/ED . 00=04 | 133642 ;gggzz WB_RITEMPOJ, : i : SEPERATE 00,01,02,03, AND 04 133645 =01 i 133646 ED,POD,30: ; 1519, 0580,0C10,0865.8047,0952,9 413+ 1518, 0D86,3DB7,0030,5047,0151,A 133447 133448 10 emmmmneenmmemm e —————— ; PO = 81-8F, 9X, AX, BX WB_MLTEMPO1-ZLITOL0BO], ; ISOLATE FILL, MOVE AND FLOAT :ggggg NEXT/ED.POD .40 133652 133653 1lommmeemmeeeeccemneeeeeeeaee : PO = 05-0F, 1X, 2X, 3X, 80 M[TEMP3J Ll 0AJ, ; 133649 ;%gggg SIGND CMP?, 31ZECLONG], NEXT/ED. REs PER _ , 133659 ;gggg? 133662 1528, 0886,358€,4230,0047,0150,F 133663 ;;gggg . 133666 =001111 150F, 0D86,3C12,0030,7847,0155,9 133667 133668 ;g%ggg 133671 151F, 0586,3C12,0430,7847,0151,C ;3367§ :§§2;4 133675 152F, 0586,3C12,0A30,7847,0156,4 133676 ;ggg;g NEXT/ED.RESV.OPER f ; f ; ;0]eneccnncnin e Lo -; PO = BX MCTEMP3) ZLITBLOAD, } ; 133657 ED,POD.40: 1529, 0D86,3DB7,0030,5047,0151,A ; : ; 133656 =01 133658 ; : ; ;1] mmmm e m e mmmecaaaameaane=: PO = B1-8F, 9X, AX MCTEMP3] _RLTEMPO], WB<5=052 : SEPERATE FILL, MOVE AND FLOAT : ;00111 ==mmmmcemccec e cemna———— ; MCTEMP3] _MB.AND,ZLITOLOF], ; NEXT/ED.FILL t ) ‘ : ;011111 =mmmmemsammcamcanan m——— MCTEMP3) _MB.AND,ZLITOLOFI, WX.EQ,0?INEXT/ED . MOVE ; : ;10111] mmmemmmmmm e - MCTEMP3] _MB.AND.ZLITOLOF], WX.EQ. 02 INEXT/ED, FLOAT : p | CHI098.M : H (MT098.MCx EDIT.MIC MICROZ 1M(0O1) 28-NOV=-83 16:30:35 Edit Packed to Character string Edit Packed to Character string : PATTERNS 00 - 04" 333681 R ;33682 L R AR A A AR £0.00-04 Entry points :3%685 : Input :33688 . : 33689 . 133650 . 133692 ; 133691 Cutput Current PSL FLAGO PSL<C> signiticance bit TEMPS Character to be stored ign'fFill register MTEMPS PSL with modified condition codes FLAGO PSLLC> 133696 . 133697 ; . This routine processes the following pattern operators: ED.EXIT ED.LOVP ED.STORE .NOINT 00 EOSEX]Y 133699 ; 01 EOSEND_FLOAT 33701 ; 03 EOSSET _SIGNIF : 33700 ; 02 133702 133703 : 33704 ;33705 04 EOSCLEAR_SIGNIF EO$STNRE_SIGN (hartie's flows 6.3 'tttttit*tflittti'ttttt*ttfiifi*tttfltitttitttt**tt*ififi't*ittttt**t*t**iifit***t'i* ;33706 ;337207 .10C "' :33708 =000 Edit Packed to Character string : 2337209 ED.GU=04: ;33710 ;000- mmmmmmmmmn e ce — e ——— s ;%g;}} NEXT/ED.EXIT ; EOSEND" EOSEND 233713 ,70C '" Edit Packed to Character string : ;33715 MCTEMPS) RIR21.RR.8, ;33718 ,10C "' ;33719 ;33720 Edit Packed to Character string EOSCLEAR SIGNIF' ;010=e=mcommmcnec e e ; EOSCLEAR SIGNIF (C M[TEMPBJ _MB,ANDNOT, CONX(1) ; CLEAR PSW<C>, :gg;g% NEXT/ED LOOP 133724 ,70C ' Edit Packed to Charac‘er string : ;33714 U 1503, 0046,8712,4000,00A7,014€,2 AR ARt At iiiti il tlld MTEMPS PSL<(> . R AR Subroutines 233698 . J 1502, 0006,8713,3000,00A7,014¢,2 Page 133693 ; 133694 ; 133695 ; U 1501, 0886,5287,0404,8047,014F ,4 A LA R R2 ;gsggg : y 1500, 0€80,0036,4030,0047,0163,3 CLOKX Rev 13,00, Clock rate = 160ns + PATTERNS 00 - 04 ;%gggg LJOC ' ;33683 . 133684 ; | 116 :§§;}9 133721 ;33725 ;33726 133727 ;33728 EOSEND FLOAT'' J00lecmmmmcnrr e ncnacccanau— . ; EOSEND FLOAT FLAGO? ,NEXT/ED.END. FLOAT CLEAR FLAG ¢ PREPARE TO STORE ; BRANCH ON PSW<(C>, SIGN ; : EO$SET SIGNIF' LR T et tatuteitaniataintainlatet s EOSSET SIGNIF (r M[TEMPSJ .MB.OR, CONX(1) : SET PSW<(>, SET F : NEXT/ED LOOP H 821 : - ——— xS— b (MT098.MCX EDIT.MIC MICRO2 1M(01) 28=NOV~83 16:30:35 Edit Packed to Character string : CLOKX Rev 13.00, Clock rate = 160ns EO$STORE SIGN .3;7%9To¢ " Edit Packed to Character string : 133731 M[TEMPSJ RCRZ21.RR.8 133730 1504, 0486,5287,0004,8047,0160,8 J 16 ;%%;%% : s NEXT/ED.STORE .NOINT® ; PREPARE TO STORE SIGN ; H ;33735 ED.END. FLOAT :3373¢ ;0e-ew=esemsecnmccscsnccccccnanes H ; thF4, U(46,8712,4000,00A7,0160,8 ; 164F5, 0480,0036,4030,0047,014€,2 ; : 133734 =0 ) : 822 EQOSSTORE SIGN' 100===ccmecanncunan wenweuwmmmeu~: FO$STORE SIGN ) Page ! ' i 133737 £C_MLTEMPBI_MB.OR. CONX(1) , : PSW<C> IS CLEAR, A :%g;zg NEXT/ED, STDRE.NOINT : ; :33738 133741 133742 SET FLAGO, ; SET 1T AND STORE THE SIGN, jle=emesmecona m—————— e ——— ; NEXT/ED LOOP s PSW<C> IS SET, DON'T DO ANYTHING ; ’ {MT098.MCX EDIT.MIC MICRO2 1M(01) K 16 28-NOV-83 16:30:35 Edit Packed to Character string :§§;22 .T0C "' CLOKX Rev 13.00, Clock rate = 160ns Page : PATTERNS 40 « 47 Edit Packed to Character string : PATTERNS 40 = 47" 233745 ,tttttt*wt«fittwttwtfi*t**t*kttktttttt***t**fi**tfifitw**itt*fi*fi*ii**fi**k*#*ifi***ii 133746 Entry points ED. 40=47 133747 ; Input ;33748 ; TEMPO Pattern operator TEMP6 Byte operand Resources D Temporary 133753 ; Qutput R2 Sign'Fill register : 33755 : 33756 133757 ;33758 ;33759 133760 133761 : 33762 Subroutines 133749 ; R : 33750 ¢ ;33751 ; 233752 ; 133754 ; ; . ; : : ) . . ED.LOOP ED.INSERT ED.BLANK.ZERO ED.REPLACE.SIGN ED.ADJUST, INPUT This routine processes the follow1ne pattern operators: 40 EOSLOAD_FIL 133763 ; 133764 ; 33765 : : 33766 . 33768 ; : 33769 ; ;33770 ; 133771 ; 41 EOSLOAD SIGN 45 EQO$BLANK _ZERQ 42 43 44 133767 ; S33772 Sign'Fill register EOSLOAD”; PLUS EO$LOAD _MINUS EOSINSERT 46 47 Charlie's AR AR AR RN EOSREPLATE _SIGN EOSADJUST_TNPUT flows 6.4 AN AR R RN RN AR RN R ARk khk 133773 233774 ED.4O=47: 233775 emmesmmmsccccmcmccsmseeenenemee— H v 1598, 0080,058t,4230,0047,0153,8 133776 ;] RLTEMPO]D, ;%%;gg .ToC "' Edit Packed to Character string : ;%%;;g WB<5=0>7? J ; SEPERATE 40,41,42,43,44,45,46, AND 47 EOSLOAD FILL' 233781 =111000;111000==m~mmsmmmcacncnnaancnaa= : EOSLOAD FILL U 1538, 0482,6592,4006,80647,014E,2 U 1539, (0880,05BE,6034,8047,014F,8 233782 :2%;32 RIR2).S1Z_MLTEMPG], SIZETBYTET,NEXT/ED.LOOP ; LOAD SILL BYTE, H ;%%;gg .T0C '* Edit Packed to Character string : 133787 133788 11100 semesmmmnavcnavaennnn =ww=: EOSLOAD SIGN D RCR21,NEXT/ED.LOAD, SJGN . MOVE SIGN'FILL REGISTER INTO DREG EOSLOAD SIGN' ; 823 (MT1098, Eé EDIT.M MICRO2 TM(OD) 28-NOV-83 Edit Packed to Character string ,§§788LTOC ' 153A, 0C80,058E,64F4,8047,014F,8 333791 133792 ;gg;gz E%%;gg.T0C ' :33797 1538, 0480,05BE,64F4,8047,014F,C 153C, 0880,00% .4430,0047,0150,C 133708 ;ggggg :33801 ;ggggg :33804 153D, 0884,6003,0485,4047,0151,1 133805 ;;gggg :33808 153E, 16:30:35 0880,8592,4230,0047,0157,B 153F, 0(86,358E,6034,0047,0158,8 133809 ;%gg}? 133812 133813 :%%g}g L 16 : CLOKX Rev 73.00, Clock rate = 160ns EO$LOAD PLUS Edit Packed to Character stri.g : Page EOSLOAD PLUS" $111010============mmmmemmmeenee ; EOSLOAD PLUS * MOVE SIGN'FILL REGI TER INTO DREG FEAGS’ NEXT/ED.LOAD.SIGN : D RCR2], Edit Packed to Character string : EOSLOAD MINUS'' 1111011 ==mmmsmmesemmn e m e: EOSLOAD MINUS * MOVE SIGN'FILL REGISTER INTO DREG D_RCR23, FLAG3?,NEXT/ED.NOT . MINUS : $111100===2o=cmmmc=mecmmcmneneas ; EOSINSERT FLAGO? ,NEXT/ED. INSERT * BRANCH ON SIGNIFICANCE 1111101 = msmmem s mmn e RIRS)_RB-MLTEMPG], m e -; EO$BLANK ZERO FLAG2% ,NEXT/ED.BLANK, ZERO * BACK UP DESTINATION ADDRESS ; 11111105 =m = mmmmmmmm em e : EOSREPLACE SIGN WB_MLTEMPS) WBZ5~0>7 ,NEXT/ED.REPLA TE.SIGN ¢ BRANCH ON PSL<N,2> ;11111 memm e wmmmmmenane; FOSADJUST INPUT MLTEMP3]_D_RLROJ, NEXT/ED. ADJusr INPUT : : 133816 =0 14F8, 0D80,0C32,2037,F847,0159,A 14F9, 0480,0036,4030,0047,014E,2 133817 ED.LOAD.SIGN: 133818 B 133819 D_D.AND.ZLITOCOFF], 133820 NEXT/ED.SAVE .NEW.SIGN Eggggz NEXT/ED.LOOP $33853 y : * : CLEAR OLD SIGN BYTE * EOSLOAD PLUS, BUT SOURCE IS MINUS 133835 =0 :gggsg ED.NOT.MINUS: 14FC, 0480,0036,4030,0047,014E,2 14FD, QD80,0C32,2037,F847,0159,A 3%%253 33830 :§§§§} NEXT/ED.LOOP * EOSLOAD MINUS, BUT SOURCE IS PLUS loesseeseessesseccesscseeeseees : o _D.AND.2LITOCOFF] : CLEAR OLD SIGN BYTE ©33833 £D, SAVE.NEW.SIGN: . ] 159A, 0484,6382,4024,8047,014E,2 033834 ;33835 : 33836 [semssmmsseemssseccssssessessaes H R[R2] D.OR. (MLTEMP61.RL.8), H NEXT/ED LOOP : ' 824: 4 [+ o —— e T o e eY € = o T o P T s e T F e T T T B e e e e e T e e o o T e e e T e e T T e T T e e T T T T P e M EEErEESRFE EEEEEEEEETEEZES ; ;o ' , CMT098.MCX BRI M (e i MICRO2 1M(01) ' 28-NOV<83 16:30:35 Bdit_Packed-to Character string ' 81 : . CLOKX Rey 13,00, (lock rate = 160ns . EO$INSERT. i :%3837 LT0C ' Edit Packed to Character string : :3% 40 ; :33841 Entry points Input ED. INSERT TEMP6 }gggzg : Output Essgzg ; subroutines TEMPS ED.STORE,NOINT S Page 825 N Sy EO$INSERT'' :' gggs ;"****\‘**'H\'***fi*t**t*****\'*****t****'{tttt*t*ti*itt**ktttt*tfl'tt*t\‘**!********** s ¥777n1§§32§ : E%észg ; Egggg? ; :33 S% : ;%; §4 — ———R2 Character operand ceLo_Sign'FiLL register T Character to be inserted This routine processes the following pattern operator: EO$INSERT 44 Charlie's flows 6.5 T R L e R A R A A A AL A A A A LA A AL ! 133835 = :ggggg ED.INSERT: u 150C, 0486,55BE,4034,8047,0160,8 ‘ TN ) u 150D, 0486,55BF,4051,8047,0160,8 . var - t SIGNIFICANCE IS NOT SET, STORE FILL 133858 MCTEMPS] RCR2], 133861 e nn e ——— ————— : {]vnmene .g%ggg : 33862 133863 NEXT/ED,STORE.NOINT MLTEMPS]_RLTEMPG], NEXT/ED,STORE .NOINT : : : SIGNIFICANCE IS SET, STORE CHARACTER H | I i| i CMT098.MCX -EDIT.MIC... . ... MICRO2 1M(OT) 28-NOV=83 , 16:30:35 . Edit Packed to Character string U 1515, 0986,6010,06F0,0847,0951,4 377+ P U 1514, 0486,55BE,4034,8047,0560,6 S S T T e TR T YRTE T P PR PR PR PR PR PR P T S PRTR DRPR T wwwwwmwwwwwwwmuuwuwwwwwwwwwwmwwwumwuwwwwwwwwwwwwwmwww U 1511, 0484,6001,0035,4047,014E,2 U LN AN A LA N N A A AT OB U N AT L G AT AT TN A AN LA NN A AT LAY G0 o SO0 0o Co 0 OB 00 00 G0 o 000 €O G0 0o €0 00 C0 00 €0 o010 00 GO C0 00 £0 4 00 00 CO O ,3382? LTOC ' CLOKX Rev 13.00, Clock rate == 160ns Edit Packed to Character string : gg : Entry goints 69 ; Imput 70 ; LA i iAo S - TEMP6 R2 _ R5 __ length operand Sign'Fill register Destinatio. address Resources TEMP6 TEMPS Pass fill character to ED.STORE ;9 ; Output TEMP3 FPD return code 78 : Subroutines ED.LOOP 84 : 95 ED.STURE This routine processes the following pattern operators: EOSBLANK_ZERO 45 g% ; 92 93 94 Counter for blanking with fill ED.PACK g? H 85 86 87 88 89 90 91 , | LA A AAAAAMAAAALLAAALALLEA 73 ; 79 8265 - ED.BLANK.ZERO ;5 : ;g H ; EO$BLANK ZERO'' . : Charlie's flows 6.5 :t**tk*tti**t*****i**t******tt*****fi***fi****tt****t*** ST RS20 00020 dd R =000 =001 ED.BLANK.%S?O: s 100 RLR5) MCTEMPGI+RB, NEXT7ED.LOOP * UNDO PREVIOUS MICRO INSTRUCTION | * IF VALUE IS NOT ZERO, | 9 6 ED.BLANK.%ERO.LOOP: % 98 gggg MCTEMPS] RLR2), PUSH,NEXT/ED. STORE 1 STORE FILL p 133601 133902 1101 emmmcnnmc s en——————————— : RETURN + 1 FROM ED.STORE MCTEMPE] MB-2L1T0C13, * DECREMENT COUNT OF BYTES TO BLANK OUT. ; gggg NEXT/ED.BLANK.ZERO.LOOP 133003 133907 ; %ggg 33911 : gg}% wB<31-3057, * CHECK IF NEGATIVE ; 133915 133917 f ! | | ;1 110mmnm —————— «-wwmuaeemss: RETURN + 2 FROM ED.STORE ' NEXT/ED.BLANK. ZER0.PACK ; MITEMP3) RCTEMPS], ;11 ; FPD PACK RETURN FROM ED.STORE, t SAVE COUNT AND PACK IT UP, memcmccamm e nnn e R NEXT/ED.LOOP : M[TEMP3] MB,OR.ZLIT8L8], NEXT/ED.PACK DONE * SAVE PACK CODE. ; ‘ i : %g;g ED.BLANK.ZERD.PACK: U 159€, 0186,3092,4030,4047,0165,0 Page EO$BLANK ZERO AR E LSRRI AR LA 133910 U 1517, 0480,0036,4039.0047,014E,2 ; CERRAAAA 33006 U 1516, 0486,358E,4031,8047,0159,E C 1 o= T X MICROZ 1M(C1) 28-NOV-83 16:30:35 U 0BF6, 0581,AC10,0030,0¢87,015A,E U 15AE, 0884,0£7C,0035,4047,014F,7 = O OO0 AN TO NONON) — — RO PO = O NDO0 NN AL AN L= LA U AHUANMUA LA AHNENINO N OO0 00 NN EOSREPLACE SIGN R R R AR AR RN AR R AR AR RN Entry poinrts l ’ Input c n TEMPS - RS Qutput ’ AR AR AR - - VA : EOSREPLACE SIGN' Rk R AR AR AR RN R AN ARRARR KRR L Length operand Destination address Pass fill to ED.STORE.NOINT.10 . l 0 _ Subroutines ED.STORE.NOINT. 10 ED.LOOP T H . This routine processes the v l 46 ‘ l ‘ SRR AR H N Charlie's R AR R flows 6.6 following pattern operator: EO$REPLACE _SIGN AR R R AR R R ARk Ak R R Ak ARk kR kR ko kK kK kk % =111011 ED.REPLACEi?é?q: AR A N Lt LA NEXTZED.LOOP * DESTINATION IS NON-ZERO, DO NUTHING. P Re — ; DESTINATION IS O, CHANGE SIGN TO FILL VA_RCRSI-MLTEMP6] : LOAD ADDRESS OF DESTINATION SIGN feewmmme e ma————————————————— ; ED.STORE.NOINT.10 WILL ADD 1 TO RS %gzg RCRSI_RB=1 ggg? 0B8F2: otttt*wtaroncc ADDRESS#a**xwunwn, 3957 WRITE RCR2J,SIZECBYTE], 3055 0BFG6: gggg ;1%% +xxxFORCE ADDRESS*aw#+wxxws; FPD RETURN FROM UTRAPPED WRITE pc_MCPCI-ZLITOL1 Y FIXUP PC FOR PACKING gggz 395 3960 827 Address of destination sign TEMPS . 3947 3958 Page ED.REPLACE.SIGN c ggzg WATUAILAT LM LA LA LA LA U 0BF2, 0C80,05B¢,4004,8508,0161,4 CLOKX Rev 13.00, Clock rate = 160ns AR l i i Edit Packed to Character utring : ggzg NAA AT ) U 15AB, 0484,0E¥D,0035,4047,008F,2 4 : 1 .10C ' 3944 v U 157F, 0480,6003,0035,44A7,015A,8 P LN LAl LA N LA T T T S I R T IR T AR LA AU LA P PR P A AN A N T P LRTR P R T L] A LA N o AL L CAS U U AN I A U U U L LA AU U N RSN O O VO N0 O NN O OGO O OO0 OO OO0 NOADOO O ot cmm meee. .-Fdit—Packed .to Character string U 1578, 0480,0036,4030,0047,014E,2 D P FOR'A NET EFFECT OF NO CHANGE, NEXT/ED. STORE.,NOINT. DONE Y STORE FILL : -------------------------------- ; RCRST RB+1, NEXT/ED.POD.16 - : RESTORE RS : | e i e X ¢ - < 28~NOV=83 16:30:35 MICROZ2 1M(O 1 : . Bdit_Packed. to Character string : k] : AR AR CLOKX Rev 13,00, Clock rate = 160ns EOSADJUST INPUT RER AR AR AR R R R Entry points - - lnpu - L 133967 ; 1 133968 ; LR LR $ 33969 . 33970 ; LR L %3971 : 3972 ; . 3398§ 33983 33984 33985 33986 33987 33988 33989 gggg? : . ; . . ; kkkh Length operand Source length D Output RO Adjusted source length R PR PR PR PR PR IR TR P ED.ADJUST.INRUT Count of ¢haracters to discard i Subroutines 828 Input character from ED.READ PSL<V,C(> TEMPS FLAGO FLAG] TEMP3 Modified PSL PSL<C> PSL<V> . FPD return code'count of chars to disgar ED.LOQP ED.READ ED.MOVE .PACK This routine processes the following pattern operator: EO$ADJUST_INPUT 47 . Charlie's flows 6.7 :fi*twtt*tt*t*****ttttthtt*tfifi*****t****k********************fifi******i**ttitti* ED.ADJUST, INPUT: 33994 NEXT/ED.ADJUST.LOOP N I U 1588, 0C86,3014,06D1,3047,09%4,9 349« 33993 33995 =00 SIZECWORD),WB<31=30>7, R 33996 ED.ADJUST,QVERFLOW: L MCTEMP3] _ZEXT(MB)~R[TEMP6D, PR T 33992 O T P P PR 3%930 : 33981 Nk AR AR AN RRRRRARRANRRRA YRR R R ARk kA TEMP3 TEMPS . . ; AR Resources e SR L 33973 33974 33975 33976 33977 33978 33979 AR AR AR Page EO$ADJUST INPUT" Edit Packed to Character string : ;33961 ,Y0C ' i :23964 : E L U 1549, 0986,3C10,06F0,0847,0952,1 377+ P u 1586, 0082,0582,4014,0047,014E,2 e —————— ———— NEXT/ED.ADJUST.SET.CC Y SET PSL<V,C> 34001 ED.ADJUST,LOOP: 34002 D SR; 34003 METEMP3) MB-ZLITOL(1], 34005 34006 NEXT/ED,ADJUST.P1 34004 34007 =11 U 1548, 0€84,3387,0014,0047,0158,E 1(mmmmm MCTEMP81_MB.OR.ZLITOL31, W51 3057, DESTINATION LENGTH IS GREATER : THAN INPUT LENGTH R —— JESPUS—¢ Ar~0J_MLTEMP3].RR.16 34010 ememanaem e —————— meome e —————; 34011 34012 LENGTH IS GREATER THAN : DESTINATION LENGTH, : DISCARD EXTRA INPUT, 34008 34009 S SOURCE RCR01.SIZ.D, SIZECWORDI,NEXT/ED,LOOP LOAD COUNT OF EXTRA ZERQS : TO RETURN FROM READ ROUTINE. b gzggg 0186,8(12,4030,1847,015C,A R v 1548, 33998 I P 33997 T ;. -y —_— CMT098.MCX EDLI.MIC . MICRO2 . 1M(01) 16:30: 35 ... 1 CLOKX Rev 13,00, Clack rate= 160ns . EO%ADJUST INPUL,__“ S :34013 =000 v 1521, 0080,0036,4030,0047,055F,2 - 2B-NOV=83 ... .Edit Packed to Character string : ' e e - ' U 1522, 0080,5592,4A30,0047,0954,8 322« U 1523, 0480,0036,4030,0047,014E,2 134014 =001 ;320}5 ED.ADJUST,P1: Eézg}g :34019 124020 134021 ;gzggg $34024 ;gzggg 134027 =101 J 1525, 0986,3D92,4030,1047,015D,0 U 15CA, 098v,8C1z,0030,7807,015¢,E U 15CE, 0016,8713,8020,00A7,01564,9 :34838 ;%2033 _ PUSH,NEXT/ED.READ By ; e LUEELLLLL LI———; WB_MLTEMPS], WX:EQ.0?, NEXT/ED.ADJUST.OVERFLOW ;011 ~==mmmmmmmmm NEXT/ED.LOOP : ;101=mss-mommmeemmommoeees —————— ; MCTEMP3] MB.OR.ZLIT8L2], NEXT/ED.MOVE.PACK 3§2g§§ FLAGS_MCTEMP8].AND.ZLITOCOF] 134036 CC_MCTEMPB]_MB.ANDNOT.CONX(4), 134038 NEXT/ED.ADJUST.LOOP 2234037 : e: 2%2821 ED.ADJUST.SET.CC: 134035 : : ; ; : SET PSL<V,C> jeemmsmwommseneemam—a——en.————— : CLEAR FLAGE. : CLEAR PSL<Z> : . Page 829 , - L - CMT098.MCX CEDLT.MIC MICRO2 ... ... 1M(01) 28-NOV~83 16:30:35 _ CLOKX Rev 13,00, Clock rate = 160ns . .Edit Packed:to Character string 134039 ,T0C *' :gzgz? .T0C '* : PATTERNS 81 - AF o Page 830 Edit Packed to Character string : PATTERNS 81 = AF" EOSFILL Edit Packed to Character string : :- 48[,% "t***.i‘c*t*****kt*i*ttt*tkttfi*k*t\‘*'t****'('{t**tttttfitt*tt*********t*******i***fltfi ;§2024 : - - T T Entry points IR4A045 ; ED.FILL " Input :%2829 : TEMP3 ’ R2 Count operand Sign'Fill register Pass fill character to ED,STORE 134048 : Resources TEMPS TEMP3 Loop counter 534051 3 Output TEMP3 FPD return code ;34053 ; Subroutines ;gzggg : :34052 ; +34084 : 134055 ; 134056 ; ED.STORE ED.PACK €D.LOOP 134061 ; EOSFILL 8X 134059 : $34060 : A . This routine processes the following pattern operator: :gzggg : R R L Charlie's flows 6.8 R e e e e A e A LA A L R A A A A AL AL A A AL AL AL LA AR 134063 =00 $34064 =01 134065 ED.FILL: 134066 1559, 0486,55BE,4034,8047,0560,6 134067 :ggggg :34070 155A, 0586,3C10,0A70,0847,0956,8 378+ ) 1558, 098%,3092,4030,3047,0165,0 1568, 0430,0036,4030,0047,014E,2 i 1569, 0486,55BE,4034,8047,0560,6 156A, 058v,3¢10,0A7y,0847,0056,8 378+ . 1568, 0086,3092,4030,3847,665,0 ;0] ommmnmome s————————— : PUSH,NEXT/ED. STORE MCTEMP3] _MB=ZLI1TO[1], ;§4874 1] ]mmemnans sommaan e s 134075 ‘%28;9 : ;10=mmmnans o ELE L L ; 134071 ;ggg;g ; STORE FILL MCTEMPS]_RCR21, DECREMENT COUNT OF FILL CHARACTERS WX.NE.O? NEXTZED.FILL.LOOP ' ————— MCTEMP3] MB.OR.2L1T8L6], ; NEXT/ED.PACK : ‘ 3320;8 ED.FILL,LOOP: 2%2%3? NEXT/ED.LOOP ;§4034 MCTEMPS] RLR2) 2 EDLFIIL.P2: 12408 ;34083 : 42 25 1 0 0 :32882 Eg@gg? +34088 ;32033 E§4891 ;3409§ 13409 ; 1 e eB G e P S $ * STORE FILL PUSH,NEXT/ED. S TORE ; ;](ereevumuenenmnemmnnnm————— ; RETURN + 1 FROM ED.SOTRE MCTEMP3] _MB=2LITOL13, : DECREMENT COUNT OF FILL CHARACTERS WX.NE.0?TNEXTZED.FILL.LOOP : CHECK IF DONE 1]]mmmeeemessccrecanannanaannn -~:: RETURN + 2 FROM ED.3TORE FPD PACK RETURN FROM ED.STORE, fCTEMP3] _MB.OR.ZLITBC7], NEXT/ED.PACK : SAVE CODE AND PACK IT UP. | | : ; CMT098.MCX 1c EDIT.MI MICROZ2 1M(01) 28=NOV=83 16:30:35 to Character string E dit Packed . :32882 .T0C '* E 4006 : 489? : : 34098 ; H 1 ) CLOKX Rev 13,00, Clock rate = 160ns : EO$MOVE Edit Packed to Character string : » Page 831 EOQ$MOVE"" MMM AR AR A AR R RN RAA RN KRR ERNN AR R AR IREA AR AR Kok hhkkkok kb Entry points ED.MOVE _ Input ;34099 ; $34100 ; $34101 ¢ :%2}8% : 134104 Resources 134107 Qutout ~_ TEMP3 - MIEMPS Count operand Current PSL Sign'Fill register Re PS?<C> significance bit FLAGO TEMP3 Loop counter TEMPS Pass character to ED.STORE TEMP1 (Last digit read)'TEMP1<7:0> 134109 ; RO Corrected source length 234111 :3411§ : PSLLC> FLAGO Set if non zero digit moved PSL<C> :%2}82 : :34108 © TEMP3 134110 ; (FPD return code)'(loop MTEMPB ; 34113 ;34114 Subroutines : 34115 $34116 ; Current PSL . counter) if interrupted - ED.STORE 36117 ; ED.REA ED.RESV.OPER ED.PACK ED.LOOP 34118 ; 134119 ; This routine processes the following pattern operator: :gfi}g? H X 134122 : 34123 134124 EOSMOVE Charlie's flows 6.9 :gl{:j{sg itt**k'(‘ttt*k****it**********fi*i***i******ttt*tt*t*tt**i*iifitfi.litti*' KRRRRANRNK Eifi}gg ED.MOVE : Y 151¢, 0480,0036,4030,0047,0153,1 ‘ U 1510, 0D86,3092,4030,5047,0151,A U 1530, 0480,0036,4030,0047,014E,2 U 1531, 0CB0,0036,4030,0047,055F,2 u 1532, 1580,5C12,0A30,7847,0555,0 ;gz%%g NEXT/ED . MOVE . P1 13413 [ PGP . : 134132 :32}32 000 E MCTEMP3] MB,OR.ZLITBLOAZ, : NEXT/ED.RESV.OPER H E§Q}§S ED.MOVE ., LOOR: Esz;gg NEXT/ED.LOOP : ;§41§8 ED.MOVE .P1: 134140 3] :00)memmcennnn csmcuumnan meeeneee; PUSH,NEXT/ED.READ ED.MOVE.P2: 33a14§ 1364144 B 134145 :34149 13414 ; o —— ; WB_MCTEMPS].AND,ZLITOLOF], PUSH, WX.EQ.07 ,NEXT/ED.MOVE,SIONIF H : PUSH FOR JUMP TO €D,.STORE : {MT098.MCX MICRO2 1M(O1) 28~NOV-83 16:30:35 Edit Packed to Character string ; 2}2 = O 0 O AN S i 13415 1534, 0986,3D92,4430,1847,0152,C 1535, 0D8y,3D92,4030,0047,015D,0 13415 : 2}2 3415 H 2}2 O N - (NN — O 000 1533, 0086,3C10,0A70,0847,0953,0 378+ 13414 : 3414 NS Y EDIT.MIC U AT LA LS A LA . 11 s CLOKX Rev 13.00, Clock rate = 160ns EOSMOVE 101 1 wmm T MCTEMP3] _MB=-ZLITOL1] ———— Page 832 - : RETURN + 1 FROM ED.STORE ; DECREMENT COUNT OF DIGITS TO MOVE NX.NE.O?.NEXT/ED.MOVé.LOOP ; CHECK IF DONE :100=mmmmmnnmeamneammaaaammmn=e; RETURN + 2 FROM ED,STORE MUTEMP3) MB.OR.ZLITBL3) : FPD PACK RETURN, SAVE CODE FLAGO?.NEXT/ED.MOVE.UNCéNVERT _ ; CHECK 1F STORING DIGIT OR FItL— -~ ;101 =mmmmmm e —— - wewssmae; RETURN + 4 FROM ED,READ MITEMP3] _MB.OR.ZLITBL(] : SAVE CODE AND PACK IT uUPR, A AN A A AT 134159 ED.MOVE ,PACK: 13416 1 %1 134 1 ; 21 1 i34174 3 : 21 1550, 0546,8(12,4030,0847,015D,2 1551, 0880,0036,4430,0047,0156,0 _ 1502, 0C16,8713,8020,00A7,0156,1 1 i34 1 134 1 : 34 134 134 ] a1 : 4183 1341 :341 341 134189 {34190 1560, 0C86,558E,40%4,8047,0160,6 1561, 0186,5(11,0031,8047,0160,6 341 1341 34195 1341 1341 I N NOON OO : 21 O OO0 OGO 3OO0 COCOC0C0C0 CO OO0 CO “N TM N NSNS } 41 CO IO AN I LN =5 O O CD IO A £ LN 5 O OO ~OTM LN £ LN — O 000 152p, 0186,1090,0031,8047,0165,0 ;34165 AT LA AP 152¢, 0986,1C12,0037,F847,0105,0 ey RCROJ RB41, : NEXT/ED.PACK 134164 =0 A A ' H 2}2 AN LA L UM AT S A AT A L M AT U N A U AATA AT U L 15D0, OR84,0E7(,0034,0047,0165,0 3416 ED.MOVE.UNCONVERT: : 7 MLTCMP1] MB.AND.ZLITOLOFF, 2 SAVE A 2ERO NEXT/ED.PACK : R — S— . : SAVE UNCONVERTED CHARACTER 3 MECTEMP1] _MB-2L1T8L30), NEXT/ED.PACK =0 ED.MOVE.SJGNIF: B e L L METEMPB] MB,OR.ZLITOL1], T T 2T SET FLAGD,NEXT/ED,MOVE.CLEAR.Z 2052 o S0t 1 FLAGO? ,NEXT/ED,MOVE . STORE ED.MOVE.CLEAR.Z: o e § : te M[TEMPG%_MB.ANDNOT.CONX(&), : NEXT/ED,MOVE .STORE.DIGIT ; CLEAR FLAG i CLEAR PSL<Z> =0 ED.NOVE.STORE: MCTEMPS]_RCR2], NEXT/ED.STORE ED.MOVE. STORE,DIGIT: MCTEMPS] MB+2L1TOL303, NEXT/ED.STORE i STORE FILL : : STORE CONVERTED SOURCE DIGIT ; ; ! X ¢ MICRO2 1M(01) 28-NOV=B3 16:10:35 J : Edit Packed to Character string 1 CLOKX Rev 13,00, Clock rate = 160ns Page EQS$FLOAT :%2;33 LYOC ' Fdit Packed to Character string : EOSFLOAT"! ;3(‘201 :*t******t***k*****tt***&*t**t*ifi*fiti*i*iiiilttififlfiit*ittfititttt*titt***ttit** ;3450% : ;34203 ; 134204 Input :§4308 : :34210 ¢ Resources 134213 ; ;34214 ; ;34215 ; Output 34205 ; ;34206 ;32287 : ED.FLOAT Entry points _ TEMP3 ;%fig}} : 234216 134217 :34218 :34219 134220 ; ; 134221 . 136222 ; , Subroutines Loop counter Pass character to ED.STORE (Last digit read)'TEMP1<7:0> (FPD return code)'(loop counter) Currant PSL PSL<C> FLAGO set if non zero digit moved PSLLC> ED.STORE ED.READ ED.RESV.OPER ED.PACK ED.MOVE ,UNCONVERT ED.MOVE.PACK This routine processes the following pattern operator: :34 : ;3423% :fittt\'*k*t*t***fiit**tt*ttt*tttt*ttfl*fi‘!ti*tttttttifi*ttttktfit*tii*ttttfi*t*t***t 134209 134230 ; $34231 13423 9X EOSFLOAT Charlie's flows 6.10 :§4234 20 i U 1564, 0080,0036,4030,0047,7154,1 134235 ED.FLOAT: 34936 ;gzg%g ;34239 U 1565, 0D86,3D%92,4030,5047,0151,A . Save digit read while storing sign ED.LOOP 154224 :gfiggg : TEMP3 TEMPS TEMP1 TEMP3 MTEMPS 134223 :34225 ; ;34226 . Current PSL | . S\En'Flll reglster PsC<c> signiticance bit MTEMP10 ; . _ Count operand MTEMP8 R2 FLAGO 134240 34241 0nemm e ——————— - NEXT/ED.FLOAT.P1 ; (jememmenencsscssssmnnannnea ———— MCTEMP3) MB.OR.ZLITBLOAD, NEXT/ED.RESV.OPER : H ! 833 EDIT.MIC 1M(0YV) MICROZ 28-NOV=83 16:30:35 Edit Packed to Character string 1 K 1 CLOKX Rev 13,00, Clock rate = 160ns EOSFLOAT 134242 =000 +34243 ED.FLOAT.LOOP: 134944 :ggggg 1540, 0480,0036,4030,0047,014E,2 1541, 0C80,0036,4030,0047,055F,2 : 1000=mmmmmmmcan—ee———— ———— NEXT/ED.LOOP : :§4§47 ED.FLOAT.P1: 134248 ;gzggg P ] L —— ————— even; PUSH,NEXT/ED.READ : 124251 ED.FLOAT.P2: 1349592 1010wmon e m—————————ce————— —— 134253 ACTEMP10]_RCTEMPSI-0, 134354 1542, 0C86,A5BC,0841,4047,0D51,2 415+ 134255 :34258 1543, 0586,3€10,0A70,0847,0954,0 378+ ;gzgg? p WX.NE.D27NEXT/ED.FLOAT.LOOP : CHECK IF r 1s ZERO * DECREMENT COUNT OF DIGITS TO MOVE * CHECK IF DONE ;100 c=mmmen weunesenscenennemn: RETURN + 2 FROM ED.STORE ;3436 MCTEMP31 MB.OR.ZLIT8CS) ;gzegé FLAGO?. NEXTZED.MOVE.UNCONVERT * FPD PACK RETURN, SAVE CODE. ; STORING FILL OR DIGIT? .101==aa—ess-~e-—--~~—-——~u~—--~; RETURN + 4 FORM ED,READ 134067 ;zzggg NEXT/ED.FLOAT.SIGNIF $01]mmmmnnn o ; RETURN + 1 FROM ED.STORE 134266 1545, 0986,3092,4030,0847,0150,0 % PUSH FOR JUMP TO ED.STORE METEMP3]_MB=ZLITOC1) 1334259 33426§ 1544, 0586,3D92,4430,2847,0152,C : PUSH, SIGND CHMP DEF?,SIZECBYTED, ;gzggg MCTEMP3) MB.OR,ZLIT8C13, "n YK CMTN98 . MCX NEXT/ED.MOVE. PACK * FPD PACK RETURN FROM ED.READ, : SAVE CODE AND PACK IT UP. Page ‘ 83fl cMT098 . MCX MICRO2 L IM(01) 28~NOV-83 16:30:35 = CLOKX Rev_13.00, Clock rate = 160ns : Edit Packed to Character string EDIT.MIC ' 1 EOSFLOAT Page 835 136270= .34571 ED FLOAT.SIGNIF: (36272 (10memmmeees e e a ; ;34573 1512, 0946,8(12,4430,0847,0155,2 134374 RCTEMPB] MB.OR.ZL1TOC1], : +LAGO? ,NEXT/ED,FLOAT.CHK.PSLC : SEv FLAGT, ;gzg;g : 34277 ED.FLOAT. 10" 134278 1513, 0884,A592,4431,4047,0157,4 (1l memmm——————————————— ~===; RESTORE TEMP5, IT GETS CLOBBERED 134279 RCTEMPS] MLTEMP101, +34280 124281=000 134282 =010 FLAGO?,NEXT/ED,FLOAT.STORE * If THE SIGN 1S STORED. ; 134283 ED.FLOAT.CHK.PSLC: 134284 1010 134286 CLEAR FLAGZ, 134285 ;gzggg PUSH,NEXT/ED.FLOAT.STORE.SIGN 134389 1553, 0884,A592,4431,4047,M157,4 1554, 0186,3092.,4030,2847,0150,6 ;01 mmmm e —————————————— ; RESTORE TEMPS, IT GETS CLOBBERED RCTEMPSI _MLCTEMP103, FLAGO? ,NEXT/ED.FLOAT.STORE 134290 ;gzgg; 134293 15DE, N186,1€12,0037,F847,015E,A MITEMP3]_MB,OR.ZLIT8L5] , 15EA, 0884,A3BE,4020,4047,0165,0 15E€, 0C86,5287,0004,8047,0160,6 1574, 0¢86,558E,4034,8047,6160,6 1575, 0186,5C11,0031,8047,0160,6 ;gggg; s 2 D 134303 134304 ;%2382 ; CLEAR SIGNIFICANCE BECAUSE * IT WILL BE REDONE AFTER RESTART ;me=meececececssesesemesceeoonees - MCTEMP1]_MB.AND. ZLITOCOFF) * ERASE DIGIT SAVED BY ED.STORF et H RLTEMP1]_RB.OR. (MLTEMP101.RL.8), ; SAVE DIGIT WHICH IS IN TEMP10 NEXT/ED. PACK ; ATTEMPS] RLR21.RR. 8, ' STORE SIGN 3§2§8§ ED.FLOAT.STORE,SIGN: 134309 : FPD PACK RETURN, SAVE CODE. jommmemmcscmeccceceecccceseomees ; £C_MCTEMP8)_MB,ANDNOT.CONX(1), CLEAR FLAGOTM 134297 :gzsgg 134300 * IF THE SIGN 1§ STORED. : 1 100=m=mmmmnm—m——————eem————— ~<; RETURN + 2 FROM ED.STORE ;gzggg ) 134305 15D+, 0806,8713,8000,00A7,015D,E . SIGNIFICANCE WAS ClEAR, : CLEAR PSL<Z> ;32%}? 0 NEXT/ED. STORE : 134314 ;gzg}g METEMP5]RLR2), 134317 134318 ;leseswsswesssmococcecececasccsose- ; M[TEMPSJ MB+ZLITOL30], * STORE CONVERTED SOURCE DIGIT }§4312 ED.FLOAT STORE : :3[,313 -------- e btiataiabbbetu bt LD 134319 NEXT/ED.STORE NEXT/ED.3TORE STORE FILL : : i 1552, 9¢16,8713,8020,00A7,055E,¢ mmm o ————————————— ; PSLCCY> = 0, CC_MCTEMPB]_MB.ANDNOT.CONX(4), MICRO2 1M(01) 28-NOV-83 16:30:35 DN =32 RO R1 See below -Source address Resources gIEMP10 Temporary i P T vk ek T T Zero extended source nibble See below Source address T R T T TSMPS RO R1 ED.RESV.OPER,.ABORT 1E.SERV,.IP.TS This routine reads the next nibble from the source or returns a zero if R0 is negative. RO<31-16> contains a negative count of zeros to supply and R0<15:0> contains the source length remaining. Charlie's R AR KRR R flows 6.11 R kAR R R AR R AR AR AR AR AR R AR A ARk A AR A Ak {mTmemmenmo o s —— e MCTEMP10]_RLR! 1=0, 4353 =00 4354 100 mm e e: RCROJ_RB-1, ; NORMAL READ 4350 2%25 SIZECLONG], SIGND CMP? kv k ——— : ; : ; zggg wB<1-0>? ,NEXT/ED.READ. 10 4357 4358 ;0] mmmmn mmmmm e e; RCROJ_RB-1, ; LENGTH = 0 : ;10mmmsmmentree——————a—————- ; | NEXT/ED.RESV.OPER :34361 U 1584, 0D86,5€37,0030,0047,015F E Input Subroutines R ; zggg : ED.READ Output T G A N A AT AU A Ui U R S U 1589, 0484,0E7D,0034,0047,0151,A Entry points 4348 4349 NN WA U L AT U 1588, 0C84,0E7D,0274,0047,0952,6 371+ Page 836] MDR 4346 4347 ED.READ: U 15F2, 0486,ASBC,0B64,0047,0958,8 415« AR AN AR AR AR AR AR AR KRRk bk kA RN kAN A R RN KRR AR KRR RN AR RN R P PN PR T KK N AR I OO0 2 B I D B A R A LA LN U AN A WA SRR , Edit Packed to Character string : SOURCE READ ROUTINE'' O =S O OO NN S WD = O O N SN T bl o AN NN A L l at 2 o L o o AU AR (A N G AN A L AN LA LA A ) T TS D IR PR PR P P A TETE PR AT NN A N AN T N T I T i S e e T AT U WA AN G N N U .TOC '* (LGAX Sev 13,00, Clock rate = 160ns : SOURCE READ ROUTINE Edit Packed to Character string A A A N N N RO PO PO RO MO PO PO RO PO N EDIT.MIC N R (M7098.MCX AN N U N N : D ; M1 436% : ?§24 L MCTEMPS]) ZLITO[0], = NEXT/ED.READ.50 : : ; RETURN A ZERO : » CMT098.MCX 10 N 1 1M(01) 28-NOV~=83 16:30:35 CLOKX Rev 13,00, C' MICRO? : SOURCE READ ROUTINE Edit Packed to Character string $34365 =10 ;74366 FDLREAD.10: 134367 1526, 0C84,0730,0004,44A7,014E,3 1527, 0085,2592,4B31,58£7,01%6,2 J10=msms e nc s e cc 1346368 VA R[R11 RB+CONX(1) : 34370 :3437 ;34372 LR ro RCTEMPS] MLMDR], 134309 ;34373 134374 et NERT/ED.READ.FETCH.BYTE ck rate = 160ns Page 83?é eH : : tattadtet bt -; ; IP. 752 NEXT/ED.READ.DONE : 134375 Qe 234376 ED.READ.FETCH.BYTE: $34377 L ettt ottt bt bl H 14E3, 0980,0€F6,4000,2050,015F ,6 14E7, 0880,0036,4080,0047,0000,4 134378 READ,SIZELBYTE], . :34380 NEXT/ED.READ.FETCH.OK } ;34379 134351 ;3‘382 :1** ---------- ------------------; ;34383 RETURN [+4] 234384 234385 ED.READ.FETCH.OK: 134386 JmTm m 15F6: 0485,2177,083",58E7,0156,2 1562, 0986,5012,0080,7847,0000,1 1563, 0480,0036,4AF0,0047,04F7,0 1567, 088C,00345,4080,0047,0000.4 e 134393 134394 ;34395 234396 : 34397 + 34398 : 34399 :34400 =111 134401 : 34402 e m——— ——— : : ;010mmmrrme cm e R tadat) H MCTEMP5) _MB.AND,2LITOLOFI, RETURN [+#1] : : R R e taa e e DL L L L E DL ; INTPEND QR TIMER?, ; PUSH ,NEXT/IE.SERV.IP,TS2 . WILL RETURN-1 B RA o RETURN [+4] : :34403 ED.READ.50: [ ISFE, 0936,AD11,0030,0847,0160,2 : 34404 1602, 0C84,A592,4084,0047,0000,1 T Otttk H 234405 ;34406 MOTEMPI0]_MB+ZLIT16(1] 34408 R[RO MLTEMP10], 34407 ;36409 CATCH RETURN + 4 FROM UTRAPPED : READ AT .~4, TAKE FPD RETURN. ;26387 RLTEMPS] _MCMDRI.RR.P, ;34388 1P, TS8? 234389 : 34390 =010 234391 ED READ,DONE: ;34392 u :; USED TO FETCH LEFT NIBSLE PL_L4], : ettt L DL L DL L : RETURR [+1] : ; IF UNLY TIMER CATCH FPD RETURN FROM IE.SERV.IP.TS TAKE SPECIAL RETURN TO CALLING ROUTINE i EDIT.MIC. 1M(01) ? L10C ' oF o A A AR A A T af A o P B AW g o F o o o i A ek R LRe Itk g b b ed wed sk med bl ok i3 %4415 ¢ . TEMPS.___._____ Character to be stored 0 Qutput . ._ .. . . __ __ RS Destination address VA Address to be written TEMP1 TEMP5<8:0>' TEMP1<8:0> 1f interrupted O LN IS AIND —2 DNININI NN NN — ED.STORE _Input _Resources . : ;ttt*ttt**fit***t****t*fitk*********fi*ifi***t**ifit*k*itl***tk*****t‘!***itti!ti‘t O OO O O ULV B O I Do LN I AAIND =3 O D00 LHAAND =2 OO0 MO AN B LIRS —3CND00 R = O AN I+ AN — O O 00 N A A A R A LN LA U AT s 2 D BN B DA DD P NN IS DI D D DS P I D B DB D D I I IS DD D DN B D D DD PN D D D D X D D I I v 1577, 0886,1292,40A1,4047,0000,¢ R v 1576, 0DB6,5C12,0037,F847,0157,7 -~ y 1572, 0480,0036,4AF0,0047,04F7,0 AT U 1571, 0c84,073D,0085,44A7,0000,1 Lt v 1570, 0€84,0730,0085,44A7,0000,1 - U 14F6, 0D86,5C12,0037,F847,0157,7 Entry points g : RS Incremented destination address This routine writes the character in TEMP5 to the memorv location addressed by R5 and CHECKS FOR INTERRUPTS, When complete control is returned to the calling routine, Chartie's flows 6.72 ED.STORE: ----- g O S T 0 - - - - - - . VA_RCRS) =0xx 0 )R so s s * ' ; o s 0 9 9 e e o e S ee- WRITE MCTEMPS],SIZELBYTED, MM, ALLOW, INT?, ; NEXT/ED.STORE .DONE N B U 14F2, 0480,5592,4200,0508,0157,0 A A A I AT LN AU AN AL U AT AT A U 1606, 0880,05BE,4035,44A7,014F,2 S T T T O T T AN L LA N R U eO R T e A AN AN 3 9 ; A A ANAN g L LA I R T eTR T T T . 8| % ;ti*it******ttt******ttfi**i*tt*t!*tt*t*tttit!*t********************t********** 3eal : _ Page 83 Edit Packed to Character string : STORE SYRING OF CHARACTERS' .1** ...... o e T : RETURN + 4 FROM UTRAPPED WRITE ¢ AL TEMPS] MB.ANgA%kITOEOFFJ. NEXT/ED.STORE, : CLEAR ALL BUT BYTE TO BE SAVED 2000 OO * VA RERSE_R§+conx<1>, RETURN : [¥1 ; :0 Jommm———————————————————— VA _RCR5)_RB+CONX(1), RETURN g¥1§ PR ;o 2 Rev 13,00, Clock rate = 160ns 28=~NOVv=83 16:30:35: STORE ® CLOKX . - Edit Packed-to Character string STRING OF CHARACTERS MICRO2 CATCH RETURN=1 FORM IE.SERV.IP.TS CONTINUE WHERE INTE RRUPT OCCURED. LY CMT098 . MCX H 01 fuounnanuuasnnnunmanmmannmnnn; INTPEND OR TIMER?, PUSH,NEXT/1E.SERV. [P, TS2 =110 mnmm - ——————————————— 11} (menm MCTEMPSI_MB.AND, ZLITOCOFF] ED.STORE.PACK: o e e e ; ; CATCH FPD RETURN FROM [E.SERV.IP.TS : CLEAR ALL BUT BYTE TO BE SAVED cwauenGumnen. MCTEMP1]_MB.OR. (RCTEMPSI.RL.8), : SAVE CHARACTER THAT WAS BEING WRITTEN RETURN [#2] : TAKE SPECIAL RETURN TO CALLING ROUTINE x ' i i | i CMT098 MCX CEDIT.MIC MICROZ 1M(01) c 28-NOV-83 16:30:35 Edit Packed to Character string ;gzzgz .TOC ' _ 2 CLOKX Rev 13.00, Clock rate = 160ns | 839 Page : STORE SINGLE CHARACTER Edit Packed to Character string : STORE SINGLE CHARACTER' 33446? ’ttti*ttt*t*k*ttt**ttt****tk***t*******t******************i******t*t*********i ED.STORE.NOINT Entry points ;gzzgg : 134470 E - Input 3322;2 : Resources VA 134475 ; :%22;9 : Output TEMP1 R5 ;344?8 : Subroutines ED.LOQP ;gzz;; : 134479 ; $34480 ; $34481 :gzgg% : 134484 30485 TEMPS _ Destination address ) Address to be written TEMP5<8:0>' TEMP1<8:0> if interrupted Incremented destination address ED.PACK . This routine writes the character in TEMP5 to the memory location addressed by R5. When complete control is transfered to ED.LOOP. R Charlie's flows 6.12 R R AR 134486 :gzzgg FD.STORE.NOINT: 1608, 0080,05BF,4035,44A7,014F A _Character to be stored RS :gzfigg AR R AR AR KA AR KRR KRR VA_RCRSJ KRRk Rk Rk ko ; $34497 =0ww : 34492 ED,STORE. NOINT 10: : 34493 0ke ee e —— : 14FA, 0880,5592,4000,0508,0161,4 134494 ;gzégg WRITE MCTEMPS],SIZELBYTED, 14FF, 0D86,5012,0037,F847,0160,A :34497 ;gzzgg D T ; RETURN + 4 FROM UTRAPPED [TEMPSJ MB AND. ZLITOCOFF] ; WRITE AT .-4, TAKE FPD RETURN 160A, 0486,1292,4021,4047,0161,3 1613, 0D86,3087,0030,2047,0165,0 NEXT/ED.STORE. NOINT DONE H H 134500 :%2%%} 0 jmmesmmmeceesmeeecoeceeseeoeeeee ; 134503 : 34504 000 eeemesmasmsssesescccccenceeeses ; M[TEMPSJ ZLIT8L04], . :gzggg MCTEMP1]1_MB.OR. (RCTEMP5J.RL.8) : SAVE CHARACTER BEING STORED NEXT/ED.PACK : 34507 ED.STORE.NOINT.DONE: :34508 1614, 0084,0730,0005,44A7,014E,2 134509 234510 jeessescssescscsmescccsesssussees H VA_RCR51_RB+CONX(1), NEXT/ED.COOP : ; kR ko _ v 1579, 0(84,1592,4034,0047,0163,6 31 ) ~—lnput--- -~ - T TR TSR T TR i P T Entry points e A AR Rt e st t it ittt Output - TEMP] TEMP? MTEMPS RO P¢ RO R1 - Original soyrce length PC of next instruction Current PSL Remaining source length (should be ) Address of EO$END pattern operator + 1 Original source length L Address of most significant source digit 0 eddress of EOSEND pattern operator R3 This routine does the final cleanup and setting of GPR's, Charlie's flows 6.16 ;tt****t*t*t****i****t***t***t************t**tt***t*t************************t 32 33 ED.EXIT: 34 35 36 37 38 39 40 41 42 - ED.EXIT N 21 22 23 24 25 26 27 28 29 30 Page 340 S o e S - - WB_RLROJ, : CHECK IF ALL SOURCE DIGITS WERE USED WX7EQ.0? Ae : S RIROI_MLTEMP1] O My S o - : e w1 e w22 j A AT LA LA G e AT U 1578, 0480,0036,4030,0047,0151,A L A LA A U L B O A A u 1633, 0080,05BEf ,4A34,0047,0957,8 322% 20 : Edit Packed to Character string : EXIT" S 516 517 18 19 CLOKX Rev 13.00, Clock rate = 160ns I — e g}g ¢ e R e Rttt A2 CA NN S e - g}; LT0C ' D t EXIT - - -- . .- Edit Packed .to Character string C-EDITMIC TN LA AN N A LN AN LGN I I I i St i : . MCX (MTO98 28=-N0OV=-83 16:30:35 1M(01) A N A TR YL TR PR } MICRO2 : 28-NOV-83 16:30: 35 Edit Packed. to Character string 1636, 0484,0587,0034,8047,0163,8 1638, 0086.1001,803D,8047,0164,2 1642, 0084,1003,0034,4047,0164,6 1646, 0485,AE51,0034,C0047,0164,A 164A, 04£0,2002,403D,8487,0164,E 164E, 1M(01) 0186,8C13,44B0,4047,0150,A 1504, 0084,0587,0135,0047,003F,9 150€, 0080,8¢93,8030,4007,0150,A Y YETETE TETE PR PR TR TR FE PRTR PR TR TR PR P M MICRO2 N AN LA A A LA A LB N N AN AL N AN L NN AT N NN (NN B A N e O e L S S o e R St Tab et e i S b ViU v viuviviuiuiviunaiuiui i vl oDk at ak bl o ~JOrONO~ONONON OO O O LTI €000 O VT IS NN =3 OO 00 “ONMN D AN — OO o O S 8??.MCX P M E EXIT 2 CLOKX Rev 13.00, Clock rate = 160ns PC_MCTEMP2], CLEAR FPD 0 0 e O e e MCTEMP8I _MB.ANDNOT.ZLITOC8D, =0« . ' PREPARE TO CLEAR PSL<N> IF NEEDED : BRANCH ON PSL<Z> FLAG2? ED.EXIT.10: '0** ---------------------------- RCR41_0, IRD1 1** --------------------------- PSL _MCTEMPB].ANDNOT,ZLIT24(8], NEXT/ED.EXIT.10 . "% CLEAR PSL<FPD,N> Page 841 - Edit Packed to Character string 34571 U 151E, 0485,9003,0030,8047,0165,2 R0 NN 1P I FPD PACK ROUTINE R ___ ED.RESV.QOPER _._ED.RESV.OPER.ABORT it tisnd ED.PACK Entry points EN 16> ' TEMP5<7:0>'SRCL 2¢31: N =S D 00 : ; ARt s siiiiiit sttt IR e R et e A : Page CLOKX Reyv 13,00, Clock rate = 160ns Edit Packed to Character string : FPD PACK ROUTINE'' .rToc R 2 Input TEMP1 TEMP3 0<31:16>'FPD CODE'LOOP COUNT : Output RO -zeros<15:0> ' (source length remaining) O N £ LRI =< N0 00 NIOMA N O OO0V O 00 C0CO00 COMOOOO 000 N N NN : F : : RZ MDR<8:0>*DELTA PC'SIGN'FILL — OO G0 AT LALA U 1514, 0485,AE51,0034,0047,04FF.8 O L WA LA U A N U 1650, 0C85,A592,4034,0047,0151,E T T T R e T T T T e T P P T T TR T Y TR TR ] . pve! N0 0 DO OOO Y OO0V EDLT.MIC Fo B i UL (o 37 O O~ Orunuiun ULV ViV = .4 CMT098.MCX 28~NOV=-83 16:30:35 1M{01) L Ad LA N LA LA U U AN N LA N LR N R NN O aF o el At A AR : MICRO2 : : R1 ; Current source address R3 : : : fault or next operator it interrupted. R4 RS TEMP5<7:0>"SRCLEN'FPD CODE'LOOP COUNT Address of next destination byte. Charlie's flows 6.13 MAALLAEALAS IS ARLEALL AL L L AL L] IZ32 RS20 00 R R 2R dddidsitatiat it dlsl ED.PACK: RCR31 MLPCI, > = or X D T P D WPy NEXT/ED.PACK.10 ED.RESV.OPER: s0nn - 0 s = oot e B RCR3)_MLPCI=1 0 S e T G Ry ; RESERVED QPERAND FAULY PUSH,NEXT/IE. OPER.FAULT ED.PACK.1?: LA o So T A e O " . Address of pattern operator causing W RLTEMP21_RB-MLPCBACK] VTR Y mme - ; RETURN FROM RESV OPER FAULT ’ . [ -4 842 CMTO98.MCX EDIT.MIC MICROZ 1M(01) 16:30:35 28~NOV=-83 Edit Packed. to Character string ¢ 2 CLOKX Rev 13.00, Clock rate = 160ns : FPD PACK ROUTINE ;34605 ED.PACK.20: 1652, 0084,23BE,4014,8047,0165,4 1654, 0081,2012,0037,F(67,0165,6 1656, 0085,238€,4004,8047,0165,B 1658, 0481,9001,0030,8487,0166,3 34606 34607 3808 gzg}? 34612 %22%2 34615 : __MDR_MCMDRI.AND. ZLITOCOFF] jmm——— et RCR4] _ZEXT(MLTEMP1D) 34623 34624 : : PREPARE TO SAVE LAST SOURCE BYTE : SAVE LAST SOURCE BYTE READ atsmtveotealalil bt : 34619 gzgsg : jemmmemmesmmeee rtana il - RCR21_RB.OR. (M[MDR1.RL. 26) PC_MLPCBACKI+RLTEMP2] 34622 1667, 0484,3292,4015,0047,00FE,2 jmmmmeomssmessssccscscoescessses) RCR2J_RB.OR. (MCTEMP2.RL.16) 34616 34617 34618 1663, 0484,159E,4015,0047,0166,7 2 ; {mmmmemmemc—cc-ssscccsscsceccnnan : S1ZELWORD] : : CLEAR LEFT HALF TO 'OR' IN TEMP3 ittt e ~: RCR4J M[TEMPSJ OR. (RB.RL. 16) NEXT/TE. PACK. DONE ; : Page 843 : - CMT098.MCX EDIT.MIC H 2 _ CLOKX Rev 13,00, Clock rate = 160ns 28~NOV=-83 . 16:30:35 Ml CROZ2 1M(O1) Edit Packed to Character string : FPD UNPACK ROUTINE :%2225 LT0C ** Edit Packed to Character string : FPD UNPACK ROUTINE' ;%2258 : Entry points A }34659 R L 134630 ; __Input : 34631 ED .UNPACK . R% R : 34634 =zeros<15:0> ' (source length remaining) Current source address MDR<B:0>*DELTA PC'SIGN'FILL . Address ot pattern operator causing faulg ?r next operator it interrupted. TEMP5<7:0>'SRCLEN'FPD CODE'LOOP COUNT R4 RS Address of next destination byte. TEMP1 0¢31:8> ' (source length remaining) : 34640 TEMP3 Loop count (if apnropriate) 34642 ; MTEMP8 :gzg%g : 34638 34639 ; Output TEMP? 34641 : 34644 ; Y AL A 0<31:16> ' SIGN * FILL MDR 2¢31:8> ' (last source byte read) A S A A A L R AR 134649 ;34650 .REGION/IRD1.R1L,IRD1.R1H $ 34651 =000 :gzggg ED.UNPACK: }§22§§ Current PSL RZ Charlie's flows 6.14 R AR AR A AR AR A AR AR AR AR RAAAALALAAALALALLALLLLAAS MCTEMP2)_RCR2J.RR.16 ) Eizgg? REGION/EDIT.RIL,EDIT.RIH/EDIT.R2L,EDIT ,RH/EDIT.RIL,EDIT.R3H U 1668, 0186,2C12,0037,F847,0167,3 { 1673, 0885,9001,0030,8047,0167,7 Egzggg MCTEMP2]_MB.AND.ZLITOCOFF ] +34660 + i34 661 9 o RCTEMP2]_MLPCBACKI+RB . Character to be written (if appropriate) FPDOFFSET :gzgzg : 134647 PC of next instruction TEMPS ;34643 U 0388. 0486.2287,0014,8047,0166.8 . R1 ;34635 Page Sl d Attt A st A LA LA AL AR AL A AA AR AL ALALY) RO 34632 $ 34633 . o cemammenu : 5 CMT098 . MCX EDIT.MIC MICRO2 1M(01) 28-NOV-83 1 2 16:30:35 = CLOKX Rev 13.00, Clock rate = 160ns to Character string Edit Packed 1677, 0880,0287,0024,8467,0167,8 1678, 0886,75BE,4034,8047,0167,D 134662 Jeemmmmmamamm :gzggz 134665 1683, 0080,05BE,4034,C487,0168,8 MCTEMP?I_RLR2] 1688, 0C86,1287,0015,0047,0168,E 168, 0986,1C12,0037,F847,0169,3 1693, 0086,((37,0030,9047,0169,7 1697, 0086,75BE,4034,4047,0169,8 1698, 0880,058E,4274,0047,0153,6 : RESTORE LAST SOURCE BYTE READ ; 0 134675 ;gzg;g 134678 jeememseecsssssscsesseccesseee.- : PC_RLR3] : jmemccemesssasse mmmmmmemseessae MCTEMP1]_RLR4].RR.16 : E e | ——————————————————— MCTEMP1]_MB,AND.ZLITOCOFF] 134681 =00 jmwmemeccwcsccmcmmmescccsscnaees; 134684 s anam—————————— ; [ emesmmeneo ‘%2232 134687 :gzggg 10 - ; ; ;gzggg ‘%22%% | jmomommmeseseme e cmmmemeeen : RCR2]_ZEXT(MLTEMP?D), SIZECRORD) 124669 :gzg;g :gzg;z Page ! emmmmamemm e e e e . —————————— ;gzggg 130672 '845 s ——————————— ; fMDR_RCR21.RR. 24 :34668 167D, 0484,759E,4014,R047,0168,3 : FPD UNPACK ROUTINE ' + : | MLFPDOFFSETI_2LITOCOD : MCTEMP?]_RLR1) : PREPARE TO ADJUST SRCADDR [eesmssmmmsiesmememanam———— — WB_RLCROJ,WB<1=0>? BRANCH UN RIGHT OR LEFT NIBBLE 134690 ED.UNPACK,03: 1536, 0486,35BE,4035,0047,0169,E 134691 134692 ;gzggg $34695 1537, 0C84,067D,0031,£047,0153,6 134696 ;gzggg PR ] [ TR——— N c————- ; ALTEMP3] RCR4), : NEXT/ED. ONPACK .05 ; i])mmmmmmmsesmmen e ———: RCTEMP7) _RB-1, NEXT/ED.ONPACK.03 * WILL BE LOADED INTO R1 IF : INTERRUPTED DURING A READ 3%2933 ED.UNPACK.05: 169¢, 0D86,3C12,0037,F847,016A,0 16A0, 0086,8036,4030,0087,016A,2 16A2, 0980,8C12,0030,7807,016A,E 16AE, 0486,C287,0005,0047,0168,3 2;2;81 53470§ 30704 13470 '§2;82 134709 .gg;}? 134712 1683, 0980,0C10,0840,5847,0955,5 413+ ,§4713 ;34714 MLTEMP3]_MB.AND.ZLITOLOFF) | ' : MCTEMPB]_PSL ---------------- ———— ———: ! jmemmmmmmmeesceeenmesem—eema——— : {wmmmann e —————————————— ; fACTEMPOI_RLR4].RR.8 : f FLAGS_MLTEMPBI.AND.ZLITOLOF] jmeemeesmmsasmmmmemmeccocneeaee- ; B METEMPOJ-ZLITO[OBJ. SIZELBYTE],SIGND CMP DEF? ' : | CHECK FOR VALID PACK CODE. {MT098.MCX EDIT.MIC MICROZ2 1M(01) 28-NOV=83 16:30:35 Edit Packed to Character string 1555, 0C80,0036,4030,0047,0038,0 :34715 =01 ;gz;;g 324713 34719 ;gz;gg 337+ 1557, 0880,0287,0205,0047,0958,0 134722 =110000 134723 1580, 0084,7592,4034,4047,0153,1 1581, 0884,7592,4034,4047,0154,1 1582, 0884,7592,4034,4047,0152,1 1583, 0086,52R7,0025,0047,0153,2 1586, 0180.0036,4030,0047,0155,9 1587, 0€80,0036,4030,0047,0156,9 1588, 0CB86,658F,4030,0047,0151,4 1589, 0086,058E,6030,047,014F,3 1584, 0480,0036,4030,0047,014E,2 Page 846 1 - ;0] mmemmmmamm —mmmemee T NEXT/IE.OPCOD.DEC P| WB3Z5-0>? WB_RLR4) .RR.8, : SOMEBODY MESSED UP THE REGISTERS. —— qo— : ; , | ] —— ; L : ADJUST SRCADDR TO REDO READ : 134727 :110001 =memmsemuauanan N T 134728 - : FPD UNPACK ROUTINE RCR1] ML TEMPT) NEXT/ED . MOVE . P RCR1] MCTEMP7U, : ADJUST SRCADDR TO REDO READ : ;gz;gg NEXTZED. FLOAT,P1 34731 $110010=======mmmcemmccmmccnoenn : | NEXT7ED.ADJUST .P1 | 134732 ;32;32 3%47%5 134734 ;gz;gg 134740 ‘%fi;fi} 134743 1585, 0886,5287,0025,0047,0154,2 CLOKX Rev 13.00, Clock rate = 160ns 134704 ;gz;gg $34739 1584, G086,5287,0025,0047,0160,8 J 2 RCR1] MCTEMR7], : ADJUST SRCADDR TO REDD READ : 11001] mmmmmmemmm———— N - MLTF¥P5] RCR41.RR.24, NEXT/ED,MOVE P2 :110100===mmmmmnanana e MCTEMPS] RLR%1.RR,24, WEXT/ED. STORE .NOINT :11070] == mmmmmm ¢ RESTORE CHARACTER TO BE WRITTEN ; : RESTORE CHARACTER TO BE WRITTEN : 134747 cm e ———:110110==mmmmmm—cacc ;gzgfig NEXT/ED. FILL :34750 )= mecmecncncnacan mmmmmem—- ; 111011 134753 134754 ;gz;gs MCTEMP6] _RCTEMP3], 34739 124758 ;gz;gg 34761 ;gz;gg ) 5 : RESTORE CHARACTER TO BE WRITTEN : MCTEMPS]_RLR4J.RR,24, NEXT/ED.FLOAT.P2 NEXT/ED.FILL.P2 | - ———————— ; 134744 ;gz;zg ;gz;g; l : : i ;111000 ==v=mmmmmeemnmunnn———— ; ; NEXT/ED.BLANK. ZERO.'.00P ; 5 | MCTEMPOI D _RLTEMP3], | :11100] wmmmmmmmamem————————— ;: RESTORE PATTERN OPERATOR NEXT/ED.POD. 15 ; NEXT/ED.LOOP ; ;111010w emmmamenw= —————— T : ! ! K 2 16:30:35 gLOKx Rev 13.00, Clock rate = 160ns : Ird & Dsize Rom Definitipn E dit Packed to Character string MOX 1M(01) MICRUZ 16 1C . oPS REG ACK 1CED 038: FPD CNOPJICED.UNP Jros .RED IRD1LLODILOS .0CODE 038: UCODE CNTOLNOPILED.EDITPC LE CNTIONOPICED.EDITPC,02 (E ] ] 0PS FPA REG [NOPJLED.UNPACK fLODILOS.RED ] h| [NOPJLED.EDITP(C [NOPJCED.EDITPC.02 SI176 (WORD) [®BYTE] [BYTEI [BYTEJ [ ;34785 .BIN [ 8] S .1CODE_ .DCODE 847 ;34;22 .TOC ' Edit Packed to Character string : Ird & Dsize Rom Definition NOBIN 038: Page 28-NOV-83 01 C 0] JEDITRC FPA MEM CED.EDITPC [ED.EDITPC.02 JEDITPC L 2 MICRO2 1M(01) 28-NOV=83 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns t Ird & Dsize Rom Definition Edit Packed to Character string 34785; This page intentionally left blank. Page 848 : H MICROZ2 CMT098,MCX MPRCHM MIC 1M(01) MPRCHM M]( 28-NOV=83 16:30:35 M2 CLOKX Rev 13.00, Clock rate = 160ns ;34786 .T0C ''MPRCHM MIC'' 34787 .10 'REVISION 38.0°" ) :gz;gg : Jeft Peng, Brian Allison, CHARLIE MCDOWELL $34790 © 234791 ;34792 (NOBIN ;34793 134794 ,T0C '' Revision History'' ; REV EXPLAINATION $34797 ;37 - 1, 34795 134796 134798 $34799 ;34800 ;34801 ;34802 ;34803 ;34804 ;34805 ;36806 ; 38 36 ; 35 ¢ ; 34 - Jump to PCS to pick up microrev number Add new IPR number 63(decimal) to check for TB hits, . thange MTPR TBDR to take a reserved operand fault if attempting to disable both halves of the T8, , . Azsign permanent addresses to free locations (where possible) Ada a BUS/PRB.RD.PTE.K to_microword ODFA to cure a deadlock problem that occurs when runn1n? 3 massbuses at the same time. Fix deposit to IORESET trom the console to not take interrupts. Have halts detected in CHM tel' console to took at the front panel. Change MFPR ACCS to use branch on FPA present not IRD rom. Initial release. $34807 +BIN ' Page 849 : : (MTO98.MCX MPRCHM,MIC MICRO2 1M(01) MTPR, MFPR, CHMX 28=Ngv=-83 ;%2%88 T0C N 16:30:35 : SELECT IPR 2 CLOKX Rev 13.00, Cluck rate = 160ns ;34810 FERIRAHRE KKK R AT ERIRIR IR Rk R IRk kAR MP,SELECT.IPR Entry points ;%28}5 ; ck kR AR RRk Rk f%zg%z : Input TEMP] Internal Processor Register number E%zg%g : 134817 : Output TEMPZ2 IPR(TEMPT) if TEMP1 is 0D Resources RNUM 3%2359 ; Subrout ines 1E.0PCOD.DEC :gzg}g ; FLAG3 L. , . Cleared if priviledged instruction 134822 THIS ROUTINE DECODES THE REGISTER NUMBER IN MTPR AND MFPR ;34826 ; IT DOES A RETURN + 3 IF 1T IS A LEGAL REGISTER NOT ONE OF THE ABOVE. ;34823 ; 134824 1346825 134827 INSTRUCTIONS. 1T DOES A RETURN + 1 IF IPR(RNUM) IS THE CORRECT REGISIER. IT DOES A RETURN + 2 If SP IS THE CORRECT REGISTZR. IT DOES A RETURN + & IF AN ILLEGAL RFGISTER NUMBER. ;gzggg : IT TAKES A PRIVILEDGED INSTRUCTION FAULT IF THE MODE IS NOT ZERO. 134830 : CHARLIE'S FLOWS 3.2 ;3/‘831 134832 850 : SELECT IPR" MTPR, MFPR, (HMX ' Page ;'l**t".'i 2383288222020 2202332322223 3233333332033 3333333322202 RRdda] ;34833 .?%géON/MPRCHM.RTL,MPRCHM.R1H/MPRCHM.R2L.MPRCHM.RZH/MPRCHM.RSL.MPRCHM.RSH :X4835 MP,SELECT,1PR: :34838 J ODAC, 09806,1C13,8A30,7847,0008,8 :34837 i34838 $34840 u 0DAD, u ODAE, J ODAF, 0880,(592,46F0,0047,00DA,9 0880,(5%2,46F0,0047,000A,9 0880,0592,46F0,0047 ,00DA,9 :1100~=emmnmammm—nm———————— : WB_MLTEMP1].ANDNOT.2LITOLOF), WXTEG.07,NEXT/MP.SELECT.IPR10 : SEPERATE REGISTER NUMBERS O=F FROM ; THE REST AND HANDLE SEPERATELY. $110] mmmmmmmm eme e; 13484 W8_MLFPDOFFSET], 134844 134845 —; T P W8 _MIFPDOFFSET], H 134842 34343 ;34846 134847 :34843 134849 134850 ;34851 WB<31-305? ,NEXT/MP.SELECT.PI %3%31-30>7 ,NEXT/MP,SELECT.Py ; : P R R aiataiatalntate i It E DL Lt H WB_MCFPDOFFSET], : WwAZ31-30>7 ,NEXT/MP.SELECT.P1 ;34852 = 134853 MP,SELECT.FI: U 0DA9, 0418,0036,4030,0047,0038,0 J 0DAB, 0080,0036,4030,0047,0004,¢ : 34855 :gzggg +34858 ;34859 R e ; NOT FROM (ONSOLE MODE (L. AR FLAGS3, NEXT/IE.OPCOD.DEC P . PUSH PCBA(X=2 : PRIVILEDGED INSTRUCTIEY D ; FROM CONSOLE MODE NEXT/MP SELECT.IPR ; IGNORE PSL<TURM>. TM 134854 _ H MICRO?2 1M(O1) CMTQ98,MCX 28-NOV-83 16:30:35 . o ‘ ' U ODBS, 0881,D5BE,4BBO,4047,000C,0 ug_mCT np13ANDNOT 2L 1TOC3¢ ) 134863 ;34864 134866 ;34867 WXTEG, 07, NEXT/MP.SELECT.IPRSO = U 0DCO, 0886,258E,408C,8047,0000,1 memmmmsmmmussve (RLIPR.RD, HEvENP2] C¥1] 134875 M[TEMP?J RSSPJ u 00C1, 0C86,258E,4087,8047,0000,2 u 0DC2, 0880,0036,4080,0047,0000,4 :34%76 34807 :34879 : : ' : DECODE REGISTER NUMBERS IN 0-F RANGE. nmmennemenam==; REGISTER NUMBER = 8,9,10,11,12, OR 13. i3u8re ;gzgga ' i REGISTER NUMBER MUST BE LESS THAN 64, jlememmsmmmmmmemcees—sesececeee- ; ANUM_RLTEMP11 IPR CHECK? <00 13898 134870 MR, SELECT 1PR20: 134871 Page 851' CLOKX Rev 13.00, Clock rate= 160ns :34860 =0 i34861 MP.SELECT, IPR10: U 0DB8, 0180,1C13,8A31,F847,00D8,¢ I RETURN : READ IPR(RNUM) FOR MFPR. : SELECT IPR(RNUM). | B —— memmmemennn; | ¢ READ SP FOR MFPR. RETURN (%2 ¢ SELECT SP. ;10=m~mmmmmammmnmamam e aeee ; REGISTER NUMBER = 5.6.7,14, OR 15. 3880 RETURN [+4] : ILLEGAL REGISTER NUMBER. :34882 § 1l mm e e e e ; REGISTER NUMBER = 0,1.2.3, OR 34888 WB_MLTEMP1], | U ONC3, 0480,0036,4780,0207,0808,8 479+ ;34883 BSL<IS. CURM>? ; CHECK IF IN KERNAL OR’IN F€RAUPT MODE. 7411R YT EET YL A —— ; KSP WHILE IN KERNAL MODE U 0DBB, 0480,1592,4A30,0047,08DC,0 322+ ;34887 134889 U ODBF. 0180,1010,0430,2047,080¢,0 384« WX7EG.0? ,NEXT/MP.SELECT.IPR20 :"1F SELECTING } SELECT SP INSTEAD. 1111 =wmmemmmn———————————————— : ¢ IF SELECTING ISP WHILE ON INTERRUPT ; STACK, SELECT SP INSTEAD. ! | 34895 30808 §Qmmmcetmmmeeaaann mmemammmmmmeew; REGISTER NUMBER IS GREATER THAN 63. ITLEGAL REGISTER NUMBER, RETURN [+4) ! | 13489 w8 JETEMP11-2LITOL4T. ], :34390 ;34801 134893 =0 WB_MCTEMP1]-ZLITOL4], WX7EG.0?,NEXT/MP.SELECT.IPR20 134894 MP,SELECT,IPR50: U ODBC, 0880,0035,4080,0047,0000,4 U ODBD, 0580,1C10,06F1,4847,08DE,9 377+ 3;4393 ;34900 134902 =01 U ODE9, 0180,1C10,06F1,8847,08DE,D 377+ U ODEB, 0D8O,0EF6,4080,C047,0000,3 134903 34904 ;§4906 L] 134907 134908 ;lovsmaunnmausassmnsnn—.—————— ; REGISTER NUMBER IS IN RANGE 16.-63. WAZ31-30>? : CHECK IN IF RANGE 41.-54, ' | : Y o e : REGISTER NUMBER IS GREATER THAN 40, WB_MLTEMP11-2L1TOL53.], i CHECK IF LESS THAN 55 WB231=30>2,NEXT/MP.SELECT. IPR6O : e b _r24.1 RETURN [ +32 ——— memmwsmem=s; REGISTER NUMBER IS IN RANGE 16.-40. ~ ¢ LOAL PL FOR USE BY SOME MXPR'S : RETURN AND DO A WIDE BRANCH ON TEMP1, | ! { : L1h (MT098,MCX MPRCHMLMIC MICROZ2 1M(01) MTPR, MFPR, CHMX 28=-NOV~83 16:30:35 c : SELECT IPR 3 CLOKX Rev 13.00, Clock rate = 160ns , . o . Page 852 ) :34909 =01 134910 MP.SELECT, IPR6O: 134911 U ODED, 0D80,0EF6,4080,C047,0000,3 ' J ODEF, 0880,0036,4080,0047,0000,4 e ; REGISTER NUMBER IS .N RANGE 55 -63, PL_[24.], 134912 RETURN [ +3] ;gzg}z 134915 134916 [T * LOAD PL FOR USE BY SCME MXPR'S ' RETURN AND DO A WIDE BRANC! ON TEMP1. | [, mmmeemcmme ; REGISTER NUMBER IS INRANGE 41.-54. RETURN [+4] ; ILLEGAL REGISTER NUMBER. - i CHMX S .TOC "' O N0 O OO0 00000 CLOKX Rev 13.00, Clock rate = 160ns Page : MTPR'' MTPR, MFPR, CHMX - : HTPR : Input : Resources A : A ; src.rl, procreg,rl S Destination processor register number MDR MM. TEMPO Temporary ; ; H : LONLIT Ck : Pass register# to SELECT.IPR, and temp TEMP2 MSCAR STEPC : Temp for wr1t1ng interval timer regs TEMP1 Temporarl D , L ... Source operand Q . : g A 3 D .****tt**t**kk***t***ktk****************t*************i************tt***tt**tt A T T P N IR MFPR, LA NN TPR, AT : &?530:35 28=N0OV=-83 MO LA MPRCHM MIC ICRO2 CAHAIN AN L H CMT098.MIX Subroutines . MBZ checks Getting MSB set in rotater SELECT.IPR IE.OPER.FAULT : : JE.ICR.SERV2 IE.SERV.IP.TS2 I MTPR IS BROKEN INTO 3 SECTIONS. : FOR GROUP 2 SP (THE CURRENT STACK POINTER) SHOULD BE USED H : FOR GROUP 3 A WIDE BRANCH MUST BE DONE ON THE REGISTER NUMBER. CHARLIE'S FLOWS 3.2 : : FOR GROUP 1 THE REGISTER NUMBER CORRESPONDS WITH RNUM FOR IPR(RNUM). INSTEAD OF KSP OR [SP. U 0394, 0080,C592,46F0,0047,00€5,1 .85810N/1RDX.R1L,IRDX.R1H/IRDX.R2L.IRDX.RZH ;0 - 9 0 e St 100 s T S TR O W S W W RCTEMP1J_MLMDR],PSL<]S.CUSM>?, PUSH,NEXT/MP,SELECT.IPR 2 T : ¥ : DECODE THE REGISTER NUMBER INTO : ONE OF THREE GROUPS. $00) mmmem e e m e e e e e**MBZ CHECK** RNUM_RLTEMP1] IPR CHECK?, ; SEPERATE ANUM 0-4 FROM OTHERS. H NEXT7MP.MTPR.GRP1 ,010_--¢a-g~.. ....... cemeuenmmna: RCSP1 @ G D ;. GROUP 2, USE SP. NEXT/RP,MTPR, CHK. CON o MP.MTPR: .o o oo ONONONONUIaaLnLIVILnLaLa[0 L U 0393, 0086,103A,403D,8047,0009,D OO0 OO0 OVOOVOO L ODO00DOOO U 0392, 0c84,002C,7037,8047,00E7,8 oMo SeRa®e®utamaBoBa®, SeBotats Se e, U 0391, 0081,D5BE,4BB0,4047,00D8,6 LA o U 0390, 0885,2592,4780,4207,0CDA,C 479% LA AT LA AT AT LA LN AN LA LN AN N A LA AN (N AN e o o A a2t hE AL Al A A 1349 ooo\:o-mbwm—ncsooo\no-ms\wmaoooow ,**tk**t**k**********tt**tt**kttttwt*twt**wt*t**tt*******fl*****fit**********t** e meta S : 4 iy Ay T T G O : A . O e o¢ M[TEMP1] Q,NEXT/MP,MTPR,SPLIT LR ; GROUP 3, MOVE SOURCE TO TEMP eeetutntnt e mm————————— : wB_MCFPDOFFSET], WBZ31-30>?,NEXT/MP MTPR.BAD.IPR; BAD IPR NUMBER FORM MP,SELECT.IPR 853 CMTO98.MCX MPRCAM MIC MICROZ 1M(01) MIPR, MFPR, CHMX 28~NOV-83 16:30:35 E 3 CLOKX Rev 13.00, Clock rate = 160ns Page gzg;q qSGION/MPRCHM.R1L,MPRCHM.RTH/MPRCHM. R2L ,MPRCHM,R2H/MPRCHM.R3L ,MPRCHM. R3H 3497% MP.MTPR.G?PT 0086, 0086,103A,403D,8047,0009,D . 00B7, .0884,002C,703(,8047,00E7,8 ;3497 134974 134975 134976 134977 e o e e © **MBZ CHECK®* ¥ o e -y GROUP 3, DO A WIDE BRANCH. NB _MLMDR], 134982 wB<h=0>?, 983 134 NEXT/MP. MTPR BRANCH 134984 134985 134986 =000000 34987 MP.MTPR.BRANCH: 1000 34988 = 0DC8, 0084,002C,73BA,0047,00DC,4 0pc9, 0B80,0039,FFFF,F847,00D09,F . ODCA, 0884,002D,738A,8047,00DF,0 00CB, 0B80,0401,FFFF,F847,0009,E opcc, 0884,002D,7388,0047,00€3,0 opcp, 0180,06F6,4030,8047,00DA,8 1 54989 134990 134991 134992 134993 134994 : 34995 134996 134997 134998 :34999 135000 :35001 135002 135003 135004 +35005 +35006 135007 :35008 135009 :35010 235011 135012 ;35013 135014 :001000===~=mmeana=a DO MBZ CHECKS ON NUMBERS 8.9.A,B.C,D. * MOVE SOURCE TO TEMP1 RFIPR R1 Q @D, NEXT/MP.ATPRTCHK. CON ;34978 134979 134980 MP.MTPR.SPLIT: 34981 0D%D, 0C81,2592,4230,0047,000C,0 - - REPOBR]_Q **«MBZ wWB<1=0>"NE.O CHECKw* NEXT/MP.MTPR.POBR ;001001 ~=~=mmewmmen --------- - LONLIT [OF8£0C0001, **MBZ CHECK** NEXT/MP MTPR.PXLR ;001010 rmmmmmmnmana REPIBRI_D @ o3-D- *xMBZ CHECK** WB<1=0>"N NEXT/MP. MTPR.P1BR {ONLIT 77000001, **MBZ CHECK®* 1001100 memmcmm—n—ne *xMBZ CHECK %+ *+«MB7 CHECK*+ EXT/MP MTPR.PXLR RESBR] D Q @ D, wH<1-0>,.RE. 07, NEXT/MP MTPR,SBR 001101 ------------[22.1, NERT/MP MTPR.SLR 854 XX et e ey e __ i CMT098.MCX MPRCHM.MIC ~ MICRO2 1M(01) MTPR, MFPR, CHMX 28«NOV=-83 e e b Page 855 CLOKX Rev 13.00, Clock rate = 160ns A?530:35 35015 =010000 135016 1010000 =======mmmsvmemmmacam——— ; REGISTER NUMBER 10 = PCBB. 135017 U 0DDO, 0484,002C,7389,4047,00E6,8 o U 0DD1, 0380,0600,000F ,F847,00DA,A v ODD2, 0880,13B7,0010,07A7,00€7,8 135018 ;ggg;g U 0DD5, 0886,F00D,7280,0047,00E0,6 ;010010 mmunmnmemmmmm—————aem——- ; REGISTER NUMBER 12 = IPL. :ggggg NEXT/MP.MTPR. CHK. CON 135006 135030 ;gggg; 135034 ;ggggg 135037 35038 ;gggzg 135042 ;gggzz 135045 U 0DD7. 0080,(592,46F0,0047,00E5,1 U 0DD8, 0886,0036,4030,0167,0066,D U 0DD9, 0086,0036,4030,01E7,00E0,F U ODDA, 0080,C592,46F0,0047,00E5,1 NEXT/MP.MTPR.SCBB 1PL_MLTEMP11.RL.16, : : 01001 ~=mmvmmemenn——————————— : REGISTER NUMBER 13 = ASTLVL. MCTEMP1I MB.AND.ZL1TOL7], NEXT/MP,RTPR.ASTLVL NEXT/MP.MTPR. SRR , : CLEAR MBZ BITS : :010100==~~wmcnmcneumnanaannnn-- ; REGISTER NUMBER PL_MSS MLSISR] ; : 1010101 m=mmmmmm—————— emwwe====; REGISTER NUMBER 15 = SISR. MESISRI D WB<0>?, NERT/MPMTPR SISROS : : CHECK MBZ BIT. :010110=mmmmmmmmmn———————————.—- : REGISTER NUMBER 16 IS RESERV<D. WB_MLFPDOFFSETI, : WB<31-3057,NEXT/MP ,MTPR,BAD. IPR ; 101011 =mmmemmnmnemnet————a————— : REGISTER NUMBER 17 = CMIERR. $35049 135050 L e —— ——— : REGISTER NUMBER 18 = ICCS. MCMM. TEMPO] TCSR,IICR, : 135053 011 001 ------------------------ ; REGISTER NUMBER 19 = NICR. [MM TEMPO]_TCSR. %CR. : :ggggé 35054 ;;gogg WB331-30>7 ,NEXT/MP.MTPR.BAD. IPR NEXT/MP,MTPR.ICCS05 * CMIERR IS READ ONLY. : NEXT/MP.MTPR.NICR ; +35058 WB_MCFPDOFFSETI, : 235021 :011011= mmmemmm e —— «~=we=; REGISTER NUMBER 1B = TODR. 335857 ;gggsg :35863 :35064 , 14 = SIRR. WB_MCFPDOFFSETI, :gggzg S : 135046 135062 U 0obB, 0186,3D37,0032,8947,00€5,2 : 135025 ;gggsz 135041 U 0DD6, 0080,(592,46F0,0047,00E5,1 NEXT/MP.MI1PR.PCBB H 2010001 =mmemmmm—————— ——m——————— : REGISTER NUMBER 11 = S(BB. LONLIT C3FFFFEQQ, ; 135033 U 0DD4, 0080,F9C2,403D,8047,0008,3 : , 07 135021 135072 135029 u 0DD3, 0586,1C12,0030,3847,0008,0 RCPCBBI_Q Q_D, WB<1=-0>7NE ;01101 0=mmmmmmmmm——————————— : REGISTER NUMBER 1A = ICR (READ OMLY). wB231-305?,NEXT/MP,MTPR.BAD. IPR TOYCR_M[ TEMP3) ZLIT16[5?J. : SETUP ADDRESS AND RESET TQYCN. NEXT/RP,MTPR.TODR : STEPC 14., + STEPC WILL BE USED FOR LOOPING. ~e CMT098 . MCX MICRO2 MPRCHM . MIC 1M(01) MTPR, MFPR, CHMX 0DDC, 0D80,0D37,0034,0267,0086,7 28-NOV-83 ;35065 135066 ‘%?825 335069 0bDD, 0080,C592,46F0,0047,00E5,1 135070 ;%gg;} 135073 ODDE, 0480,1592,4200,0047,00E6,F 0DDF, 0980,0037.0030,0267,00E6,7 ODES, 0880,0088,028D,8047,0864,0 400+ , 00E6, 0580,0¢B7,0030,4687,00E8,E . ODE7, 0980,0087,0030,26 /.u)E8.E ODE8, 0180,0EF6,4030,5047,0069,0 e ncan e e : REGISTER NUMBER 1D = CSRD {READ ONLY). : MTPR.BAD.IPR ; =30>7 ,NEXT/MP WB<31 :011110=mmmemnnn memmeemomesem—ns: REGISTER NUMBER 1E = (STS. :ggggg NEXT7MP . MTPR, T(58 135082 :ggggz 135086 ;ggggg . 35090 ‘§§83§ + 35094 :ggggg 135007 ODE4, 0C8C,0088,038D,8047,08E7,6 403+ e 1011111mmmmmmmmc————— “——————— ; REGISTER NUMBER 1F = CSTD. 135093 ODE3, 0C84,14F7,0A30,8047,00€7,2 ;011101 m WB_M[FPDOFFSET], ; 135077 135089 ODE2, 0580,0037,0032,0247,00E8,A NEXT7MP,MTPR, TU58 NEXT/MP.MTPfi.CSTS 135078 :§g89g 5190 3§5181 :§510§ ; §}°4 ;§s185 w8 MCTEMP1],WB<0>?, TRAR_ZLIT16L01, ; CHECK IF SETTING BREAK. : ; : :100000===m=mmmcmmm—m—eceeen- -=; REGISTER NUMBER 20 = RXCS. CRAR_ZLIT16L80], NEXT7MP . MYPR, CONSOLE : CRAR_2 H 1100007 e =mmmrmemmmmmm—————————— ; REGISTER NUMBER 21 = RXDB (READ ONLY), WB_MLCFPDOFFSET], . , MTPR.BAD. IPR ; WB37=3057,NEXT/M :100010m=mm=mmmm——c—m———————— ~~; REGISTER NUMBER 22 = TXCS. CRAR_ZLIT16(401, NEXT7MP . MTPR. CONSOLE ; CRAR_? : 110001 ] =mmmmmemmmm m——n———— wwe=: REGISTER NUMBER 23 = TXDB. RLTEMP2] MLTEMP1].CLR1B, WX.EQ,0? ,NEXT/MP.MTPR, TXDB ; CHECK IF ID FIELD IS 00. ; :100100=mmm=mmmman—c—————————— : REGISTER NUMBER 24 = TBDR. w8 _.NOT.Q,WwB<1=0>.NE.0?, NERT/MP.MTPR.TBDR ; CHECK IF DISABLING BOTH HALVES. : :10010) = mmmmm——————— escemeeasma=s;: REGISTER NUMBER 25 = CADR. SEE IF TURNING ON CACHE. WwB_.NOT,0,WB<0>?, NERT/MP.MIPR.CADR : :100110mwmmwmnmmmenncamam———— --; REGISTER NUMBER 26 = MCESR. +35106 :%g} g 135109 MEMSCAR_ZLIT24(8 ; NEXT/ P.MTPR.MEMEfiR : 1100111 ewovncuvasunssmannaman==n; REGISTER NUMBER 27 = (AER. : 5111 NEXT/MPTMTRR,MEMERR (33110 :iiéfls 138115 Page cmc : REGISTER NUMBER 1C = (SRS, e cncccnccanncans ;011100 =mmcm TRAR_ZL1T16L80] * TRAR_?2 :ggg;g 135085 ODE1, 0080,592,46F0,0047,00E5,1 CLOKX Rev 13.00, Clock rate == 160ns 135074 135081 0DEO, 0580,0037,0034,0247,00E8,A ;?530:35 6 3 MEMSCAR 2L 1T24E4] ; ; s [T T: LR TR ENABC TN 0R b SABLING ) NEXT/MP.MTPR.ACCS ' 856 : 4 CMTO098.MCX MPRCHM.MIC MICRO2 1M(01) MTFR, MFPR, CHMX 28-NOV~-83 ;?;30:35 H 3 CLOKX Rev 13.00, Ctock rate = 160ns page $35116 =110111 135117 111011 mmmmcccnccnamnannn c—emne- : REGISTER NUMBERS 29 TO 36 ARE RESERVED L ODF7, 0DB6,1¢37,003C,8047,00E7,9 u ODF8, 0980,0CB7,0030,0687,00E9,1 135118 :gg};g 135121 135122 ;gg}gz 335155 U 0DF9, 0108,0C37,2030,04A7,00E4,8 U ODFA, 04B0,003A,403D,84B7,00E9,3 U ODFC, 0080,0592,46F0,0047,00€5,1 u 0DFD, 0480,0339,803D,8287.00E7,8 NEXT/MPTMTPR. MME : ;111001 smmmecncanmn e nanna———— ~; REGISTER NUMBER 39 = TBIA. Y INITIALIZE D AND ; CLEAR FLAG FOR CALL MP.INVALIDATE.TB CLEAR FLAGY ,NEXT/MP.MTPR.TBIA Egg}gg 9113010 ------------------------- ; REGISTER NUMSER 3A = TBIS. :32155 13513 :gg}gg CORMPLETE CPU BUS CYCLES, NEXT/MP.MTPR,TBIS ' ADD THIS TO AVOID MASSBUS PRUBLEM ' 1110 mmeeccn - cemvemanmwawa: REGISTER NUMBER 3B = TBDATA. ¢ LOAD ADDRESS FOR WRITING T8. : ;351;5 ;gg}Bg VA_RCPOBR], NERT/MP.MTPR. TRDATA 135138 135139 ;gg%é? 1111100=mmmmmmmmmm——————————— ; REGISTER NUMBER 3C IS RESERVED. : WB231-30>7, ,NEXT/MP.MTPR.BAD.IPR : 135142 135143 111110]= emnnmmnnn —————— cmmemmmwe=; REGISTER NUMBER 3D = PMR, PME_Q.RR.1, * WRITE HARDWARE PME. ‘%E}fié 135147 ;gg;zg 135150 U ODFF, 0880,C592,46F0,0047,017F,B :111000====ecceemaan ) : REGISTER NUMBER 38 = MME, MEMSCAR_ZL1T24(0], VA_D_ZL1TOCOD, 135146 U ODFE, 00R0,C592,46F0,0047,00E5,1 : REGISTER NUMBER 37 = IORESET. ; 135126 :-35134 U ODFB, 0C80,05BE,403A,04A7,00£9,5 MCTEMP1] 20L1T0L400.37, NEXT/MP.RTPR, IORESET 135151 135152 WB_MCFPDOFFSETY, NEXT/MP.MTPR, CHK. CON ; ;111110 mmmmemmnmnc—e———————————- : REGISTER NUMBER 3E = SID (READ ONLY). WB_MCFPDOFFSET], : WB231-30>? ,NEXT/MP.MTPR.BAD, IPR ; :11111]mmmomcnmmmmmanac e n————— ; REGISTER NUMBER 3F = TBCK WB_M[FPDOFFSET], WB231=30>7,NEXT/MP.MTPR.TBCK : : CHECK FOR TB HIT ) ] 857 LYED] (MT098.MCX MPRCHM.MIC MICROZ 1M(01) MTPR, MFPR, CHMX 28-NOV=83 135153 +35154 135155 0DC4, 00AD,(592,46F0,0047,017D,9 opcs, 0080,C592,46F0,0047,00E5,1 0DF4, 0080,0592,46F0,0047,00€5,1 ODF5, 0586,1093,8037,F847,00DA,7 ;33}2? :§S162 : 35163 :35168 135169 ;35170 35171 =0 135172 ODFO, 0580,0D31,06F8,0047,08DF,1 377« _ ODF1, 0080,(592,46F0,0047,00E5,1 0DfF2, 0080,(592,46F0,0047,00E5,1 0DF3, 00A0,(592,46F0,0047,017D,9 Page 858 CLOKX Rev 13.00, Clock rate = 160ns IXMEREERERRENRRRR AN R Rk wkkhntnrss CONTINUATION OF GROUP 1 REGISTERS THATY JRARRRRAERERRARRERNARR RNk wneanks TAKE MORE THAN ONE WORD TO COMPLETE., wB<31-30>?, NEXT/MP.MTPR.DONE H jlemmercannnnscnannnnencnsnowsse s WB_MLFPDOFFSET], UB?31-30>7,NEXT/MP MTPR.BAD.IPR ;35164 ;35165 ;35166 MP,MTPR.PXLR: SETUP STEPL FOR CONSOL *xMBZ CHECKww ®#eMBZ CHECK#w ; ; e mmemm— e ————————————————aa wa _M(T MP1] AND RCLONLIT], H WX EQ. R **MBZ CHECKw+ H e DL LD L L EL L DL DL H WB_MCFPDOFFSET], H ««MBZ CHECKw» : 35173 ,BAD.IPR ; .MTPR>7? 1-30 WB<3,NEXT/MP : 35175 Dbty : MLTEMP1.,_MB. ANDNOT ZLIT?&[OFFJ : **MBZ CHECK%+ ---------------- - **”Bz 35174 ;35176 :35177 : 35178 0DA7, 084,1592,403C,8047,00€7,8 i 3 135156 =0 : 35157 MP.MTPR. POBR' ----------------------------- ; : 35158 UB M[FPDOFFSETJ STEPC 2. ; +35159 135167 OD9E, 0080,1002,0A3D,4047,0CDF,4 A?égO:SS 1 ;35179 : 35180 235181 RCIPR.R] MLTEMP1], e : NEXT/MP RTPR, CHK. CoN 135182 =00 ;35183 MP.MTPR.P1BR: ;00wmnemmnusmnan 135184 w8 D+ZL!T16[1OOJ ;35185 wB<31-30>? ;gg}gg :35188 MP.MTPR. PXBR 110 :3518 $35190 ;3519 v 0 0 0 e H vH H **MBZ CHE(K** H B 08 B **NBZ e CHECK** WB M[FPDOFFSETJ. H wB331-30>7 ,NEXT/MP ,MTPR.BAD.IPR ; :35192 135193 MP.MTPR. $8R10 ----------------------------- : 135194 UB MLFPDOFFSET], : 5 19 : 35 WB331-30>7 ,NEXT/MP ,MTPR.BAD.IPR ; 135196 :35197 L D iubebuintninbrntmbegatini etk : ;35198 =1 : 35199 +35200 CHECK** WB_M[FPDOFFSET],STEPC 2, wB231-30>? ,NEXT/MP ,MTPR ,DONE ; SETUP STEPC FOR CONSOI, : «*MBZ CHECKww *«MBZ CHECKw» ! CYEY] e CMT098.MCX MPRCHM. MIC MICRO2 1M(O1) MTPR, MFPR, CHMX 28=NOV-83 16:30:35 : MTPR J A e e e e 3 CLOKX Rev 13.00, Clock rate = 160ns » e ———— Sy Page 859 35201 =0 0E30, 0580,0CB2,0A37,F847,00DF,2 0E31., 0080,C592,46F0,0047,00E5,1 +38202 MP,MTPR.SBR: 135203 Y [ e ——ana——————— 135904 WB_D.AND.ZLIT24[0FF], ; ;gg%gs WXTEQ.0?.NEXT/MP.MTPR. SBR10 : 335209 **MBZ CHECK*+ ------------------------------ ; ;ggg?g **MBZ CHECK++ : wa _MCFPDOFFSET], 125208 WB<31-30>7,NEXT/MP.MTPR.BAD. IPR : 35211 MP.MTPR.SLR: 135912 0DA8, 0880,10F7,0A30,0047,08E3,4 323+ jememssmmmcanseacesses ————————— 138213 WB_MCTEMP11.ASR.P, ;ggg}g WXTEQ.0? :35216 =0 0E34, 0080,C592,46F0,0047,00E5,1 : B e LT : 135217 WB_MLFPDOFFSETY, A%MBZ CHECK%* ; . BAD.IPR ; wB231-30>7 ,NEXT/MP . MTPR ;ggg}g 135020 DE35, 0C84,1592,403C,8047,0087,8 **MBZ CHECK** : 0 135221 ;%ggg% lemmemmemmmeeeeeeeeeee —meemmene; «XMBZ CHECKw+ p hrxpn R1_MLTEMP11, NEXT/MP.RTPR. CHK. CON : R CONTINUATION OF GROUP 3 REGISTERS THAT KRR aAheknenwnt JHRRAKRARRARNARRRR 135334 ;ggggg JRKRRERARRKRARKKRANRRARRRRRNERR KR TAKE MORE THAN ONE WORD TO COMPLETE. 135227 =0 0E6B, 00A0,C592,46F0,0,47,017D,9 135328 MP,MTPR,P(BB: ;35229 B e 135230 WB_MCFPDOFFSET], STEPC 2. ;gggg; WB<31-30>7,NEXT/MP,MTPR.DONE 135233 0E69, 0080,(592,46F0,0047,00E5,1 plemmesieseenn e wa MCFPDOFFSETY, $3523% : ; SETUP STEPC FOR CONSOL ; —— ; +35237 MP,MTPR,SCBB: 0DAA, 0C80,003B,(A3D,4Ui47,00E¢,A 1352939 1 ;ggszg 135342 =0 OE6A, 0080,€592,46F0,0047,00E5,1 13534% :gggzg 155345 OE6B, 0886,E03A,403D,8047,0067,8 135047 135348 **MBZ CHECK#+ wB231-30>? ,NEXT/MP, MTPR.BAD. 1. R ; ‘§§§§2 135938 7 **MBZ CHECK*+* jecmemcmammmessoae anmnennenm———— WB_RLLONLITI.NOTAND.Q, WX EG,0? ; ; -o-e—e~~~-~a~~~~m-—~~-~*-~------: WB_MCFPDCFFSETY, WB231=30>7 ,NEXT/MP . covmmnannanamna Mcsc 810 **MBZ CHECK** MTPR.BAD,IPR N n e ————— - NEXT/MPTMIPR. CHK ., CON »2MBZ CHECK** ; ; **MBZ CHECK** - : 3 28=NOV~83 MICRO2 1M(01 ) MTRR, MFPR, CHMX (MT098.MCX MPRCHM MIC U ODBO, 0180,1€11,0230,1847,08DC,7 377+ U ODCF, 0080,C592,46F0,0047,00E5,1 U ODBA, 0986,2C12,0030,7847,00D8,E : : =xx0111 L i+ ettt e m B **0111 ......................... : < < ers Page 86C : WB<31-30>? ,NEXT/MP,MTPR .BAD. PR § MP.MTPR.SIRR: h[TEMPZJ_Q 5 8 7 * 0 S L L - L L et ot ol ettt DL Dbl B G ; (CON'T u0 MUX/Q.S SO MOVE TO TEMP) W - o * IGNORE SOURCE<31:4> MITEMP2]_MB.AND.ZLITOLOF) 8 Q © 0 s e T L O e e M S ) METEMP?J-PL S{ZECLONG], 1 5 CHECK®® L e —— mm————— ; P R WB_MCFPDOFFSET], : 1 2 § «*MB2 SIGND € =00 o mm——n ; QQummm o SOFTIPR_MLTEMP2].RR.16, P * COMPARE IPL OF THIS REQUEST WITH ; HIGHEST PENCING SOF TWARE REQUEST. ——————— ; NEW INTERRUPT PEQUEST HAS IPL HIGHER : THAN CURRENT SOF TWARE IPL, UPDATE v 0E00, 0880,2387,0010,0787,0060,2 ? NEXT/MPTMTPR. SIRR10 J OE01, 00A0,C592,46F0,0047,017D,9 8 9 ? ;0= nmmann- P ~w=; INTERRUPT ALREADY REQUESTED AT WB_MLFPDOFFSET],STEPC 2 : THIS IPL, PON'T DO ANYTHING. o e H NEXT/MP_MTPR, CHK.CON 9 0 i 1] S CLOKX Rev 13.00, Clock rate = 160ns : MIPR ASTLVL _MLTEMP1J.RL,24, 4 0 U ODBE, 0080,2810,0B60,0047,08E0,0 410+ e 3 K ---------- LL LRI y 0083, 0086,203A,4030,8047,0008,A —— «+MB7 CHECK* e coemssasmanemnes rmmm———— ADD 3 AND CHECK FOR CARRY INTO BIT 4. 35<?[6§”P‘3*ZL"°[33 4 ly 0pe7. 0C80,1387.0000,0707,00€7,8 16:30:35 - WB231-30>7 NEXT/MP.MIPRIDONE : HARDWARE REGISTER FOR ARBITRATION. } SETUP STEPC FOR CONSOL ; MP.MTPR,SIRR10: U VED2, 0880,2B(2,403D,8047,000C,6 4 U 06, 0186,FAD2,4030,0847,00E7,8 8 5 6 7 ;10mmmmmmm e -smemmmamesasw==; [OAD PL WITH IPL OF NEW REQUEST. : MLSISR] .MB.OR, ZLITPLETJ. NEXT/MPTMTPR. CHK. CON : UPDATE SISR. H CMTO9B.MCX MPRCHM MIC MICROZ 1M(01) MTPR, MFPR, CHMX 28=NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns s : MTPR Page 861 l . ;35289 =00 135290 =01 135291 MP,MTPR.SISR!: 135392 Y1| R cenmmum————— 0EQ5, 0486,1837,0030,0047,000C,E 135793 ;ggggg ACTEMP1] PL, NEXT/MP.RTPR.SISR10 3%2%89 MP.MTPR.S%SROS: 0EQ6, 0C80,F9C2,4DFD,8047,0CE0,5 ODCE, 0080,1387,0010,0787,00€7,8 ; 135298 PL_MSS MLSISR], Y GET IPL OF HIGHEST SO WARF INTERRUPT. ;ggggg NEXT/MP.MTPR.SISR * CHECK SISR<31:16>.NE.v 135299 135302 0EN?, 0080,(592,46F0,0047,00€5,1 * PREPARE TO LOAD SOFTIPR. 135303 ;ggggg WX<31-16>.NE,0?, ;1] mmmmomm————— cm e ee ; WB_MCFPDOFFSETY, : WB<31-30>7? ,NEXT/MP.MTPR.BAD.IPR ; SOME M8Z BITS WERE NOT ZERC. Eggggg MP.MTPR.SISR10: 135308 SOFTIPR_MLTEMP1).RR.16, ;ggg?g H NEXT/MPTMTPR. CHK.CON Y LOAD HARDWARE REGISTER FOR ARBITRATING ; SOFTWARE INTERRUPTS. 135317 =0 135312 MP.MTPR.I(CS: 135313 0E6C, OD86,DD12,0038,0047,00DE,A 0E6D, 0880,D3B6,"210,0047,0CF8,3 337+ 135314 (Qmemmmm e e ———————— ; CATCH RETURN~1 FROM IE.ICR.SERVZ MMM, TEMPO] MB,AND,ZLIT16L1003, ; USE CURRENT VALUES FOR TVP AND VP NEXT/MP.MTPR.1(CS10 : 135319 WB_,NOT.(MCMM.TEMPOJ.RR.16), : BEGIN INTERVAL TIMER SERVICE. ;ggggé PUSH,NEXT/1E.1CR.SERV2 : ;ggg}g Eggg}g MPMTPR. 1¢CSO05 135320 WB5-05?, * BRANCH ON TCSR<SR,TR>. }gggs; MP.MTPR.1CCS10: ODEA, 0480,0020,7030,0047,000E,C ODEC, 0586,2C32,0037,8847,00DE,E ODEE, 0180,0€72,2030,4047,00DF ,6 0DF6, 0CB6,23B2,4010,0047,00E0,3 0EO3, 0880.0D002.4030,8167,00£7,8 Eggggé :35397 :gg%gg $35330 ;gggg; 135333 b_a a_p fomeoe ¢ CAN'T DO MUX/Q.S SO MOVE TO D. e —————— ; MLTEMP2]_D.AND,ZLITOCOF 1] * CLEAR MBZ BITS IN SOURCE(EXCEPT ERROR) jmmmmmmemmemmceeccoceacenemnne : d_p.AND.ZL1T28[8] * LOAD D WITH ERROR BIT ONLY. jemmemmsmmem————ae—..————————— ; LOAD USER DEFINED BITS IN ;gg%gg MCTEMP2]_D.OR. (MB.RR,16) 13533¢ 135337 Lommmmmmeamamanmnnenes o nnnn——— ; FCSR_MIMM, TEMPOI.OR.RCTEMP2], : TCSR_(E,TVP,IR,IE,SC,T,5R=0,TR=0,VP,R) :35338 NEXT7MP.MTPR, CHK . CON ¢ COMET ORIENTATION (E,IR,IE,SC.T.R). : S CMT098.MCX MPRCHM.MIC MICRO2 1M(01) MTPR, MFPR, CHMX 28=NOV=83 ;?520:35 M3 CLOKX Rev 13.00, Clock rate = 160ns Page 862 $35339 =10 135240 MP.MTPR,N]CR: 135341 B L cmm—— 135342 0EQE, 0886,103A,403D,8147,00£0,4 :gggzz INIR_MCTEMP12_Q NEXT7MP. MTPR.RICR10 Y LOAD INTERNAL HALF OF NICR. : Egggzg MP MTPR.N]CRO5: : OEOF, 0880,D386,0210,0047,0CF8,3 337* 135347 135348 ;ggggg UB. .NOT, (MCMM.TEMPOI.RR.16), WBZ5-0>7, PUSH,NEXT/IE.ICR.SERV2 : BEGIN INTERVAL TIMER SERVICE. * BRANCH ON TCSR<SR,TR>. ; Eggggg MP.MTPR,NICR10 0E04, 0086,258E,4038,8047,00E0,D Eggggz MCTEMP2] _RLSPNICR.SPICR] 0EOD, 0084,1592,4038,8047,0062,9 138355 ;ggggg eeercmemcm—eeceemmeeeeeccceeeen : * LDAD SPNICR (DESTROYING SPICR). RCSPNICR.SPICRI_MCTEMP1) 35358 0E29, 0482,2592,401B,8047,0062,F OE2F, 0C80,1386,0850,0047,08E2,A 373+ 135350 ;ggggg :35362 gg%gz \ SAVE SPICR. jeemescmseccesseseeceeeseeseeees : RLSPNIZR.SPICR].SIZ_MCTEMP2), SIZECWORD] : RESTORE SPICR. ; jmmm=mtmememmmocoscmmoueeee———— ; METEMP1]<31=16>.EQ.FFFF? s TEST SPNICR FOR ALL ONES. 135365 =10 135366 MP.MTPR. NJCRZO OE2A, 0580,0D12,0032,1967,00E7,8 0E2B, 0186,DC92,4030,0847,00E3,6 , 0E36,. 0189,0012,003A,1967,0087,8 135367 135368 ;ggggg 135371 ;ggg;g 1383720 135375 :ggg;g 1Qeceoscconanannnmmmensmmnanm—- ; SPNICR IS NOT ABOUT TO OVFLW CLEAR $CSR_MCMM, TEMPO].AND. ZLIT16043]," ; RELOAD TCSR, BE SURE AND NOT NEXT7MP.MTPR. CHK. CON :'CLEAR TCSR<E.IR,SR,TR>, 1leessmeesessceescsesceeeoas ~==; SPNICR IS ABOUT TO OVERFLOW, M[MM TEMPOJ_MB.OR.ZLIT2401] Y SET TVP. omme—meecemecececececeseseceee- ; tCSR_MCMM, TEMPOT.AND.ZLIT16L1431, ; RELOAD TCSR, BE SURE AND NOT NEXT7MP MTPR, CHK. CON : CLEAR TCSR<E,IR,SR,TR>. 135378 =0 B} OE6E, 0D80,0037,0032,0267,00€6,7 0E6F, 0180,0037,0036,0267,0084,4 135370 MP,MTPR,CSTS: ;35330 jQcvemenumasann e —————————— ; NOT SETTING BREAK 135381 ;ggggg 135380 135385 TRAR_2L1716[40] NEXT7MP.MTPR, TUSB i TRAR_1 : lemmmeccsccsseses B it - TRAR 2L11161000) i SEND BREAK CHARACTER TVP H i (MT098,MCX MPRCHM .M C MICROZ 28~NOV=83 1M(u1) MTPR, MFPR, CHMX OF44, 0886,2036,4030,03E7,00E4,8 0E4B, 0980,2012,4030,82E7,00€5.0 0ES0, 018(,2D12,4032,02E7,00E6,E 0ES52. 0C86.103A,437D,8047,0009,F OD9F, 099t,2037,0031,0047,00€5,7 0ES7. 0998.0EF6,4030,0047,00€5,8 0ES58, OD80,0F76,4030,A047,00E5,A OES5A, 0D86,3D37,0030,89A7,00€5,C :35386 16:30:35 N 3 : MIPR CLOKX Rev 13.00, Clock rate = 160ns MCTEMP2]_TUSBREGS $35389 fmmeSSemeemsm e e ee s ———— ; : :gggg? mmmmmmeamme NEXT/MP.RTPR,CSTS :ggggg Egg%gg MP.MTPR. TODR: MCTEMP1]_Q, 135398 . 135401 STEPC.GE-4? DECBY4 ' MOVE SOURCE TO MTEMP FOR SHIFTING. t STEPC_10. (DON'T ACUTALLY BRANCH) et ; MCTEMP2]_2L1T160201,DEC STEPC 35404 ;ggfigg PL_C01.DEC STEPC Y USED TO EXTRnCT DATA NIBBLE, STEPC_S. ;g;zgg §L_[20.1 ‘ USED TO EXTRACT DATA NIBBLE. $35410 vttt L; ;ggzjg NEXT/RP,MTPR, TODR,ADR :35407 135411 : CONSTANT FOR ENABLING MEMORY,STEPC_9. jmmemm——ae e ; R ot :35420 _ i 0E71, 00AD,(592,46F0,0047,017D,9 135491 135402 ;ggfgz $ 324 TOYCR MCTEMP3 ZLIT16L173, : : TOYCR_MLTEMP3] MB-ZLIT16[13, NEXT/MP.MTPR.T7DR.ADR OESE, 0880.,107E,6030,81A7,00E6,0 0E6D, 0486,1277,0030,4047,00E6,2 | 0E62, 0980,0033,43%1,81A7,00E7,0 ; E ! : LOAD NEXT TOYOS ADDRESS. : | P e; | WB_MCFPOOFFSETY, WB231-30>7 ,NEXT/MP.MTPR.DONE z STEPC_2, RESET STEPC INCASE CONSOLE MODE. * DONE WRITING TOYOS. + | | | E%g%gg TOYCR_MLTEMP3],0R.RETEMP2] 135429 smemmmmmmmemamm—mmem—————eemmane ;ggzgg % i ;gg@sg MP.MTPR.TODR.ADR: OE5C, 0480,3002,4030,81A7,00E5,E g EEE L LU SEL R PR T ; ;ggz}g MP.MTPR.TODR.LP: ;;gz}g ' ; ;ggzgg 135417 | oo nn ; 135414 =0 0E70, 0586,3D10,0030,09A7,00E5,( 1 || TUSBREGS MLTEMP21.0R.ZLIT160401."; CLEAR TUS8 BREAK 135393 t | * READ CURRENT COLD START FLAG TUSBREGS_MLTEMP2).0R,ZLIT160107 ; SET TUS8 BREAK 13530 ; g Gt S L L LR: :gg%gg ;ggzgg ; Page 863! ¢ LATCH TOYOS ADURESS. § ? TOYCR_D_(MCTEMP11.XZ).OR.RCTEMP2) ; EXTRACT DATA NIBBLE, WRITE TOYOS. ! ;%gz%z MCIEMP1]_(MB RCTEMP1)),RR.4 | 135435 jmmmmeomsmananase ~emmmmnn cmmmn; 135437 P82 STEPC?,NEXT/MP,MTRR.TODR.LP : 8 NIBBLES WRITTEN? 135432 135435 T "y TOYCR_D.XOR.ZLI116[30], * SETUP NEXT DATA NIBBLE * DISABLE MEMORY, END TOYOS WRITE CYCLE. { R s .:_: e — CMT098,.MCX 8 MICRO2 1M(01) _,,.MRR_CHM(MI.C_;_’.._’_, LT T e e _MI.PRL_MF‘E_RI;,CHMX T . '\ OE67, 0080,1387,0010,02E7,00€7,8 28-NOV-83 16:30:35 . : MTPR s ot U 072, 0980,2093,4A30,7847,00E7,4 ' U 0E?3, 0180,0037,0030,0247,00E8,A T TTTTIT T I T CLOXKX Rev 13,00, ClLock rate = 160ns ee et m = i mm—= e et ee b e e e am 135439 +35440 el e e - : P —— .y Page 864 | ;33221 NEXT/MP,RATPR, CHK, CON fem m e —————————— mam———; : : CONREGS_MCTEMP11.RR.16, NEXT/MPTMTPR. CHK. CON 135445 :ggzzg Egsaso ;3§2g1 -0 NEXT/MB,MTPR, CHK, CON * HEGISTER SPECIFIED BY MEMSCAR., * CHECK IF ID FIELD IS OF, 135455 WB_MCTEMP2).XOR.ZLITBLOF], 135458 Jlmmmemamane e v ——————— WXTEQ.0? ,NEXT/MP.MTPR, TXDB.10 135459 ;ggzg? 0 CRAR_ZLIT16L0] NEXT7MP,MTPR. CONSOLE . L WRITE MEMORY STATUS AND CONTROL 26, MEMSCR_MLCTEMP11,RL, Eggzg% MP.MTPR. ' XDB: ;%gzgg ; : ; ,335445 MP.,MTPR. CONSOLE : ? ? “ ID FIELD IS 0. TRANSMIT CHARACTER. : ;§222§ MP.MIPR.TXDB.10: U OE74, 0080,(592,46F0,0047,00E5,1 Egs«ea WB_MCFPDOFFSET], ;nggg v 0E75, 0980,1C10,0840,2047,08E2,C 413+ $]mmaemmm e e : ID FIELD IS OF, 135468 ;ggggg " : =2 U OE2D, 0980,0D37,0036,0267,00E8,C :§g473 :352;2 U OE32. 0C80,0036,4030,0047,00E7,8 U OE33, 0p81,DC37,0030,0047,0082,3 SIGND CMP DEF?,SIZECBYTED ;00emmnemmnnaman * DECODE DATA FIELD FOR ID FIELD = OF. : e ———————— : DATA > 04. 13547 wa_nsrp OFFSET], : WRE3IT=30>7 NEXT/MP,MTPR,RAD,IPR ; ONlY FOO,F01,F02,F03, FO4 ARE LEGAL. {0]umansamnnmmnnnn——————————— ; :ggz;g NEXT7ME,MTPR, TXD8. 20 ;§5479 Essago U OE2E, 058C.1C10.0840,1047,0863,2 413+ WB_MCTEMP13-2L1T0L4) $33471 MP.MTPR.RESV.OPER: 135472 U QE2¢, 0080,(592,46F0,0047,00E5,1 ¢ ID MUST BE 00 OR OF. WB<31=3057,NEXT/MP.MTPR.BAD.IPR : :35467 TRAR_ZL1116L0C0] w8 MCTEMP1J-2L110E2E. i32082 o1 10 SIGND CMP DEF?,SIZELBYTE] Esgzag o NEXT/MP.MTPR, CHK. CON 135488 ANUM_C0] 3%54 7 135489 ¢ DATA = 04, CLEAR COLD START BIT. : i = $10smmmmmmmmmm e e ee : DATA < 04, 35481 ;35482 . ? e ——————————————————— TUSBREGS MLTEMP1),RR. 16, : Eggzzg MP.MTPR.MEMSCR: U OE8B, 0480,1387,0000,0607,00E7,8 ot ;35438 MP,MTPR,TUS8: 135444 U OE8A, 0880,1387,0010.02¢7,0067,8 4—‘ S NEXT780.B00T.CLR.FLAGS : CHECK IF DATA = 02. : * DATA = 00,01 AND 03 ARE NOPS, —— - ' ZERO TO HAVE BOOT DO UVERFY. : DATA = 02 DO A BOOT, i i |r _ MTPR, MFPR, CHMX 0E42, 0D81,BC11,02F0,25A7,00E4,5 0E43, 0D80,0CB”,0030,3687,00€8,8 _ 0E45, 0980,0C30,2A30,0847,08E4,2 384+ L S 0E41, 0980,0DF7,2032,0047,0487,8 g g% 2551 3551 % g} 35518 =2 O NN = OO N D W oo i il uUiualuiu 0E40, 0D80,0CB7,0030,3687,00E8.,B i OE8D, 0080,0587,0030,0607,00€7,7 IR TR LR TR TS PR PRP T T 0E?7, 0180,0CB7,0030,1E87,00E8,8 3 35495 3 13549 13549 : 3 23 3 3 28 3 3 50 3 gg 3 2 50 3 50 3 50 k] 50 3 50 3 51 3 51 N 0E76, 0980,0CB7,0030,0687,00E2,¢ 132437 T T OE8C, 0980,0037,0030,02E7,0067,8 : MTPR 0O = OO 00 IO LIS NN =3 OO 00 N 3 13549 3551 3552 3552 gggss 35524 235525 235530 13553 :%gg%% 235535 ;ggggg ;35538 0€47, 0080,0592,46F0,0047,04F6,D CLOKX Rev 13,00, Clock rate = 160ns o TUSBREGS 2L I1T16L01, : 35539 :35540 o : i Page 865| s | ; NEXT/MP.RTPR. CHK. CON : MP,MTPR, TBDR: —m ; MEMSCAR_ IS NOT NEEDED HERE ANYMORE s mm—————— ;Qmemmmnmmmmvmom MEMSCAR_ZL1T24(0]. * DO NOT BiSABLE BOTH HALVES, INSTEAD NEXT/MPTMTPR.RESV.OPER TAKE A RESVERED OPERAND FAULT MP.MTPR.TBDR.0S: MEMSCAR_ZLIT24[31, : : NEXT/MPTMTPR.MEMSCR FREE.QES8D: gwnknsk| QCATION NOT USEDw*axxwksww; MEMSCR_O ,NEXT/MP,MTPR,TBDR.05 ; e c e c e m e e e3 mm e 00 MEMSCAR_ZL1T24[6], H NEXT/MPTMTPR.MEMSCR : 10]~mmecracatnsnmamas e u———— H D_ZLIT4L40], : POSH,NEXT/IN.VA_O H MP.MTPR.CADROS: ;10 emme e e — e a - mem——a- : VA_VA+4 CLEAR CACHE, H MMTALLOW, INT?, H NEXT/MP.MTPR, CADR10 D N ettt L L Lt : MEMSCAR_ZL1T24L61], 135526 NEXT/MPTMTPR.MEMSCR 235527 =00 235528 =01 :35529 MP,MTPR,CADR10: 135534 OE46, 0980,0C30,2A30,0847,08E4,2 384* . B C 4 ; 3 23 MP.MTPR.TXDB.20: uiaiunuiuviviiua CMT098.MCX MPRCHM.MIC 28-NOV=83 16:30:35 MICRO2 1M(O1) 10— ——— wn——— Brumm D _D-ZLITOL1), : : . —— : WX,EQ.07 ,NEXT/MP MTPR. CADROS : H $10mmmm e a - : CATCH RETURN=1 IF ONLY TIMER D D-2L170L1], wX.EQ.0?,NEXT/MP.MTPR.CADROS J1lemmeccnemm : OR CONSOLE MODE. : e — . ————————— : SERVICE INTERRUPT OR TIMER WB_M[FPDOFFSET),WB<31~30>7, PUSH,NEXT/1E.SERV.IP.TS ; CHECK IF IN CONSOLE MODE. ; | i B 1 CMTO98.MCX - MPRCHM.MIC - . MICROZ2 - 1M(O1) MTPR, MFPR, CHMX 28-NOV-83 16:30:35 : MTPR D 4 CLOKX Rev 13,00, Clock rate = 160ns Page 866 ;gggzg MP .MTPR.MEMERR L OESE, 0086,2036,4030,0647,00E8,F , 235545 U OE8F, 0080,2293,8000,4607,00E7,8 U OE90, 0880,1177,0030,02A7,00€7,8 MLTEMP2]_MEMSCR Egggzz 135544 * FETCH CURRENT CONTENTS 0000 jemmeemmemeceeeseeeeeceeeca—osaes) ;gggzg MEMSCR_MCTEMP2].ANDNOT. (RLTEMP11.RL.24), ; BIT CLEAR MEMORY REGISTER NEXT/MP.MTPR. CHK., CON Eggggg MP.MTPR,ACCS: 135551 fPA,ENABLE _MCTEMP11.RR.P, ;%gggg -0 NEXT/MP.MTPR. CHK. CON : * WRITE SOURCE<15> TO FPA ENABLE. : 135554 MP.MTPR.CHK.CON: ;ggggg MP.MTPR, IORESET-1: U OE76, 00AQ,C502,46F0,0047,017D,9 $35557 ;ggggg UB_MLFPDOFFSET],STEPC2 WB331-30>7,NEXT/MP.MTPR.DONE * SETUP STEPC FOR CONSOL : 135560 MP,MTPR,JORESET: lu OE?9, i30,0036,42F0,0043,007€,8 U O7E8, C18%,1C10,0A70,0843,08E7,8 378% ] U 0769, i, 1037,003C,8047,00E7,9 135561 O —— ; CHECK FOR INTERRUPTS 135564 PEB: ;Q0%xwaxx*FORCE ADDRESS*axakhkkw; :%ggg% U UZEA, UR36,1037,0AFC,8047,04F7,0 % (UNLESS FROM CONSOLE) 35565 35564 10 RESET, MCTEMP11 MB~ZLITOL1], 135569 7EQ9: 135570 ;O1axxax%4FORCE ADDRESS*x%*#xx%w; MCTEMP1] ZLITOC400.3, * RESTART IORESET AFTER TIMER SERVICE ;ggggg ;ggg;; 135573 7EA: _ 10 RESET,MM.ALLOW.INT? WX.NE.O? NEXT/MP.MTPR. JORESET=1 NEXT/MP.RATPR, IORESET : : ; ;10%xxxxxxFORCE ADDRESS*#xwkkxt; 135574 MLTEMP1]_ZLITOL400.1, * START OVER AGAIN IF ONLY TIMER 135576 PUSH,NEXT/1E.SERV.IP.TS2 : 135575 INTPEND DR TIMER?, : T CMT098.MCX MPRCHM. M1 MICRO2 28=N0OV-83 16:30:35 1M(01) MTPR, MFPR, CHMX : MTPR 4 CLOKX Rev 13.00, Clock rate - 160ns ! Page 867 i 135577 MP . MTPR MME: --------------------------------- SAVE IN RTEMP13 FOR THE CONSOLE. MEMSCR_RCTEMP131 MITEMP1J.RL. 24,, WRITE MME BIT. 135573 NEXT/MP.MTPR,FLUSH.XB 135580 [V AV, ) 0 H 00000000000 00R00M NN~ . E : 35578 u 0E91, 0C84,13B87.0003.4607,00E9.4 : 35581 =00 435582 MP.MTPR. TBIA , lu 0E48, 0581,8081,0030,2507,04E5,4 35583 135587 PUSH.NEXT/MP. INVALIDATE.TB ;ggg g 135587 U 0E4A, 0481,A002,403D,8487,00E7,8 Y INITIALIZE ALU, MUX, ROT, AND LITRL * THESE FIELDS ARE THE SAME IN THE LOOP ;01 meemmcenc e ——————————— ; 135588 U OE49, 0508,0CB7,22F4,04A7,04E4,C : iB D+7LITBL4], VA_D ZLIT24[801,CLEAR FLAG1, 35589 ;ggg ? MM7ACLOW. INT? PUSH,NEXT/MP.MTPR, TBIA20 135592 b _MCPCI,NEXT/MP,MTPR.CHK.CON : INVALIDATE SYSTEM SPACE TB. ' CHECK IPEND OR TS CIN CSA<i>). Y PUSH FOR JUMP TO MP.INVALIDATE.TB L ; CATCH RETURN FROM MP.INVALIDATE.TB ;ggggz 135505 = ; FLUSH THE XB. 125594 MP,.MTPR,TB]A20: 135597 ;00mmmmemmmm e n em————— U 0E4C, 0D81,8081,0030,2507,00E5,4 135508 tB_D+zL1TBL4], ;ggggg NEXT/MP. INVAL IDATE.TB 135601 =10 U OE4E, 0C80,0036,4AF0,0047,00F7,0 135602 ;ggggz INTPEND OR TIMER?, NEXT/1E.SERV.IP,T§2 135605 FREE.QE92: 135606 U 0E92, 0r80,003A,403D,8047,00E7,8 * INITIALIZE ALU, MUX, ROT, AND LITRL sxxxaxx 135607 WB_Q, ;ggggg * THESE FIELDS ARE THE SAME IN THE LOOP N: SERVICE THE INTERRUPT OR TIMER. : OCATION NOT USED® k% ks NERT/MP.MTPR. CHK.CON * SET CONDITION CODES. : 3%22}? MP.MTPR.TBIS: U UE93, 0C81,B58E,403D,8507,00E9,4 Eggg}g t8_RLZEROJ ¥ INVALIDATE TB ENTRY 135614 MP.MTPR.FLUSH.XB: 135615 U OE94. 0481,A592,4030,0487,0067.8 ;35616 ;ggg}g 2 jesmccccccccccscessusccccscccees H FLUSH XB, NEXT/MP.MTPR, CHK.CON : ; 3;2258 MP.MTPR.TBDATA: 1) 0E9S, 0884,1477,0030,4047,0069,6 Eggggg 135623 U DESG, (081,B58E,4030,4507,00£7,.8 135624 135625 ACTEMP1]_MCTEMP11.RL.9 ¥ ROTATE FOR LOADING INTO TB, 000 jemmem—mecsan- e : '8 RCTEMP11, NERT/MP.MTPR. CHK., CON ¢ LOAD DATA INTO THE T8, : | 3 > 17DE: ;1110%%%x*xFORCE ADDRESS*%#*x*xkkk; ; NOT A HIT LEAVE V BIT CLEAR WB_MCFPDOFFSET], : T .MTPR.EXI WBZ31-30>7,NEXT/MP ge53. L546.7(87,0030,8847,0096,C ADDRESS*xwwknkik; H LOAD VA FOR DOING PROBE AND SET CC. VA_Q,SIZELLONG],CCOP2 Al il 17DF: =01 # % kuxshkik, k2w %FORCE ADDRESS 111 SET V,WB _MCFPDOFFSET], WB<31=3057,NEXT/MP MTPR,EXIT MP.MTPR. EX]T - T A O 2 8 i S G e S T B ; TB HIT, SET YHE V BIT : : LABEL USED BY IANDE : CLEAR FLAGS IN FPDOFFSET FOR IANDE. o M[FPDOFFSET] _RCZERO1, MP.MTPR.R%?ET+STEP(: : RESET STEPC FOR CONSOLE TYPING. ; SAVE PSL FOR CONSOLE. ; RETURN TO CONSOLE MODE FLOWS. PEC STEPC, RLTEMP12] PSL, 17D9: NEXT/CN.PROMPT MP.MTPR.DONE: 01*******FORCE ADDRESS*aukwkxhk, 11 * xxwx**FORCE DEC STEPC, RLTEEMP12] PSL, NEXT T/CN.PROMPT ADDRESStxwxwwhwwn. UB Q,£COP2,SIZECLONG], IRD1 1708: H SET CONDITION CODES ON SOURCE PR R T A AN AT LA 1705, U49(,G036,4033,0087,008A,F shkknkknukk*FORCE ADDRESS*¥kkukkkw; : CHECK FOR A TB HIT. PROBE READ?,SIZECAYTE] ;11 kkuwnw*FORCE [ 1709, 0080,003A,412D,9047,003F ,9 17FC: A LA A U A LN N U AT A 0E4F, 0890.0036,4033,0087,008A,F 17FB: MP.MTPR.TBCK: AT LA N AT LA QE4D, 0086,C58E,4130,8047.003F.9 T R N 17DF, (LR0,592,46F0,08E7,90E4,D CLOKX Rev 13.00, Clock rate = 160ns D D L 17D&, OBB(,(592,46F0,0047,00E4,D TR T R 17FC, 0CBO,LU36,4780,005F ,097D,E 479~ e T N O T Sy R A LR D L 1778, 0480,003A,402D,94A7,017F,C 16:30:35 : MTPR uaunuaug MYPR, MFPR, 28-NOV-83 4 i 1M(01 ol M]CROZ N NN N AN (G O N N AN RN R A AT U N N L N CMT098.MCX MPRCHM . MIC. F RESET STEPC FOR CONSOLE TYPING. SAVE PSL FOR CONSOLE. RETURN TO CONSOLE MODE FLOWS. =01 MP.MTPR, BAD IPR: 0 € e s D e o S ey O tLEARFLAGS T B T W Y R R NEXT/IE.opeé FAULT ¢ ; PUSH PCBACK~2 ; TAKE A RESERVED OPERAND FAULT, --————------——--—-------—-—-- N M[TEMP?] JL1T240111,STEPC_2, NEXT/CN.ERROR + : RETURN TO CONSOLE MODE FLOWS. CHTOSE.MOX H ; MPRLHAMLC - MICROZ 1M(01) MTPR, MFPR, CHMX 28-NOV-83 :%gg;} JOC ' ‘ ;35673 R 16:30:35 4 6 Page CLOKA Rev 13.00, Clock rate = 160ns 1 MP,INVALIDATE.TB : MP.INVALIDATE.TB'' MTPR, MFPR, CHMX e L L L ik bt dbbihtn b AL AL LA LA AR MP, INVALIDATE.TB AR AL LA AL AL AL AL :%gggg Entry points 135676 ; 135677 :ggg;g : Input VA ¢ D STEPC FLAGI 135680 : Output FLAG? Eggggz : 135685 ; Used to address T8 VA & D Resources NOTE: ]t is necessary for proper invalidation that D<8> = 0. :35687 ALU, MUX. :gggg% : 235686 ; 135688 ; ;ggggg : Address to begin_invalidating at. Count of double TB entries to invalidate If clear will invalidate 32+STEMC entries STERC Set always lero always Also the cycle that calls this routine MUST have the same ROT, LIT, and LITRL fields as the invalidation loop instruction, 1t cannot however be used as part of the invalidation, E§§681 Et*t***t*ttt*t***ttkit***t*t**&k**********fi******t*****fit**tt*wtt**twfi*tttktwt 1356 =00 INVALIDATE.TB: :3569%g MP, :%ggg ‘ . v 0ES4, 014),0pB1,2330,2536,0085,4 :35696 VA_D_D+ZLIT8L4] INVALIDATE TB, ; INCREMENT VA IN BIT 10, ;ggggg NEXT/MP. INVALIDATE.TB ;s LOOP, ;35697 :35700 ) U 0ESS, 0519,8DB1,05F0,2507,00E65,4 U 0ES6, 0&30,0036,4080,0047,0000,1 p87 3TEPC?, (0] mmmm e mmmm———- R ;35701 18_D+ZL 11841, ;§§;82 FLAG1? ,NEXT/MP, INVALIDATE,.TB 135702 135705 ;gg;gg _ : -~ SET FLAGH, ma e —————— P [ [e—— Emmmmm RETURN [+1] : : . DO LOOP TWICE. : 869 [ ; L e e CMT0H MOX ERCHRLRIC MICRO2 1M(01) MTFR, MFPR, CHMX 16:30:35 28-NOV=83 ;35708 .TOC " CLOKX Rev 13.00, Clock rate = 160ns ¢ MFPR MTPR, MFPR, CHNK ;35710 SRRRA AR AR R R . H o4 : MFPR" AR R R A AR RN ERATAAT RN R AR ARk k& ;%g;}} : MFPR procreg.rl, dst.wl E%g;}z ; 335?15 ; Input MDR Resources MM, TEMPO ‘Source processor register number Temp when reading interval timer regs TEMP?2 Temporary 135716 ;35717 TEMP1 ;35718 ; MSCAR :357%0 : ;35721 SL LONLIT 135722 135723 135724 135725 135706 ! Subroutines ;35731 : 35732 SELECT,.IPR 1E.OPER.FAULT 1E.ICR,SERV? 0S-WRT ' Share writing of destination IL.MOV.B.W.L.MEM :;g;sg ; 135799 : 135730 Pass register # to SELECT.IPR PL 135719 . MFPR IS BROKEN INTO 3 SECTIONS. FOR GROUP 1 THE REGISTER NUMBER CORRESPONDS WITH RNUM FOR IPR(RNUM). FOR GROUP 2 SP (THE CURRENT STACK POINTER) SHOULD BE USED INSTEAD OF KSP QR ISP, :gg;%z : FOR GROUP 3 A WIDE BRANCH MUST BE DONE ON THE REGISTER NUMBER. 135735 CHARLIE'S FLOWS 3.2 :35;%9 .‘*W'fi*'(*l"fiwfitl'i*fifi't'dkt*fifififitfififi****fifi****ifii*t**i*****t***t***ii\i*‘*i*‘i***t ;35 ;35738 REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L.,IRDX.R2H :gg;zg MP.MFPR.7PA: U 03¢5, 0780,0¢37,0030,0907,0039,8 E%g;fi; éTEPC_ZLITO[1] E LOAD STERPC TO INDICATE PRESENCE OF FPA 135743 =000 :35?62 MP.MFPR: :357(,5 U 0398, 0885,2592,4780,4207,0CDA,C 479+ ; DECODE THE REGISTER NUMBER INTO 235750 ;§§;§1 MDR_O, NEXT/MP ,MFPR. CHK.CON : USED TO CLEAR @ FOR CONSOLE ; i3302s BORCD, T USED To CLEAR O FOR CONSOLE 135746 ;gg;zg 135749 U 0399, (:680,0036,4030,0467,000A,6 U 0394, 480,0036,4030,04E7,00DA,6 |U SUPU -000unau--.n-aa-aggaga -------- LK fi[TEMP1] MCMPR],PSL<]S.CURM>?, PUSH,NEXY/MP.SELECT.IPR : ONE OF THREE GROuPrS. 1001 mmm== mmmmmmem—————— ——— : 33575% MP.MFPR,WR]TE : 135756 NEXT/MP,MFPR. CHK . CON ; ' Page 870 MICRO2 1M(01) 28=NOV=83 16:30:35 1 : MFPR 4 CLOKX Rev 13.00, Clock rate = 160ns smmmmmmr 7 8 9 0 1 {01 3 4B MCFPDOFFSETI, ITNINISN N N TN N SN N NN N SN N NSNS NSNS AN NN NN NN NN ONONONONON OO AR NN AR T T VALY <L AAALI A WNAULVIAWVI U AU TN U T : P L 039C, 0080,05%92,46F0,0047,00E5,D A U 0398, LUB0,1592,4230,04E7,00£0,0 AT TRTR MTER, MFPR, CHM MPRCHMMIC N F o (MT098.MCX AU U : 2 weM?fsnp1n WwB<5-0>?, Page e NERT/MP. MFPR.BRANCH Y USED TO CLEAR O FOR CONSOLE : GROUP 3, DO A WIDE BRANCH, ; —— ; BAD IPR NUMBER FROM MP,SELECT.IPR L] S WBI31-30>7,NEXT/MP. MFPR,.BAD. IPR ; : . g :888688/MPRCHM.R1L,MPRCHM.RlH/MPRCHM.RZL.MPRCHM.RZH/MPRCHM.RSL,MPRCHM.RSH - ' 1 NEXT/MP,RFPR. CHK. CON p 135774 : g kcrEMPaJ MCSCBBl, NEXT/MP.RFPR. CHK . CON :; : : U GEC. 1i906,2EF6,4030,8087,00E9,7 i / 1¥Enog ) L _ ) U OE11, U0B4,ES92,4030,8047,00DA,6 135769 =010000" ;010000==wuwevevneeconmau-wn=n==: REGISTER NUMBER 10 = P(BB, 135770 MCTEMP2] RLPCBBI, : A A U 0E10, VL86,25BE,4039,4047,00DA,6 A LN RN N N N U 135763 MP,MFPR, BRANCH: 3 SRy J OF13, 0Hv8o,2kF6,4030,0747,0089,9 . U 0E14, 0OB0,C592,46F0,0047,00E5,D J OE1S, (:884.r592,4030,8047,00DA,6 , 'y OF14, (080,0592,46F0,0047,00€5,D ' .a; ;gg;g4 E§57gs ---------------------- ~-w; REGISTER NUMBER 11 = $(BB. .0100 Qumewamcmcvnnmemcannanasn=: REGISTER NUMBER 12 = [PL. MCTEMP21 PSL,PL_[16.], NEXT/MPRFER. IPT : ; 101001 | =meecmccmnm e m————; REGISTER NUMBER 13 = ASTLVL. MCTEMP2] ASTLVL,PL_[24.1, NEXT/MP MFPR, ASfLVt ; H .010100 -------------------- memn; REGISTER NUMBER 14 = SIRR(WRITE ONLY) 135786 WB_MCFPDOFFSETY, $35789 135790 010101 = wwemwew ———— wemmwem=e=: REGISTER NUMBER 15 = SISR. RCTEMP21 MLSISRI, : :gg;gg ;§§;31 33579§ 135794 135795 WB231-30>7 ,NEXT/MP.MFPR,BAD, IPR ; NEXT/MP.RFPBR, CHK. CON ; ;010110 PTTT L S REGISTER NUMBER 16 IS RESERVED. WB_MLFPDOFFSET], ; WB31-30>7,NEXT/MP.MFPR.BAD, IPR 871 (MT098 .MCX MPRCHM, MIC Page CLOKX Rev 13.00, Clock rate = 160ns ;0101112 rmmmmmmcmmcc e enanann «-; REGISTER NUMBER 17 = CMIERR, MCTEMP2] ZL1TOLO] Y CLEAR TEMP TO BUILD RESULT IN. ) 135800 235801 011000====w== wesmemcuuwmaemvese; REGISTER NUMBER 18 = I((S. ! i i} 0E1A, 0086,0036,4030,01¢:7,00E7,8 $35803 ;35804 35805 SO Y J 0E19, 008),0592,46F0,0047,0085.D ;35802 :3%8 9 e TS . 135798 135799 + 35808 :35809 : gg ? - Sur . u 0E18, 018v,2EF6,403%0,81E7,00E9,E . $35812 Qi S G DU = I AU N A NS UL — SO0 IO MU A AN NI DU 2P B LUAILATUHAT o o kat € V300 IO N S AN =2 O O 00 [ U OE24, 0980,0¢B7,0030,1€87,00€8,3 LALAIVHAN NI UL U QE23, 0080,(592,46F0,0047,00E5,D 090000 0000 SO DOO u 022, 0080,0037,0032,0247,00E8,1 ¢ B AU AL AT VT U AA I AN N WY O CO00 230.C0 00 CHOD O Q000 OO0 G0 0D 00 00 € O TR L TR TR XY P PR P PR TR P Y AT UG R PR PR T o N AN AN ANLA T y 021, 0980,0057,0030,0247,00E8,1 R U 020, 0D80,0037,0034,0247,00E8,1 A U AT AT AT U OE1F, 0080,C592,46F0,0047,00E5,0 UL U OE'¢, 0D80,0037.0032,0267,0068,0 LA U JE1u, 0980,00%7,0030,0267,00€8,0 A LU A U U A R U R R U AN iu DE1C, 0D8U.0w37,0034,0267,00EB,0 PONU DD ~n PP P PR T |4 OE1B, 0986,0C37,0030,3047,00E7.D ;35813 135814 5815 5816 5817 5818 $819 P R N - 4 135796 35797 N LN U G A A IR NN NN ; J . ¢ 0E17, 0186,2C'%7,0030,0047,00D0A,0 . 28-NOV-83. 1?530:35 MICROZ2 1M(01) MTPR, MFPR, CHMX NEXT/MP.RFPR. CMIERR : CTEMP21 T .IICR PL_C16.3, & EXT/MP, n R.ICCS ; 101100 =mwsmmmsanee cmmememmne——- : REGISTER NUMBER 19 = NICR(WRITE ONLY) NB_MCFPDOFFSETJ : IPR : WBZ31-30>7 ,NEXT/MP.MFPR.BAD, : :011010mmwconmnmmnannn-— wesme===; REGISTER NUMBER 1A = ICR. ACMM. TEMPOT_TCSR. 11CR, : : MP . MFPR.ICR NEXT/ 1011011 ommmamnnm e ——— ; REGISTER NUMBER 18 = TODR. MCTEMPOI ZLITOL6J,STEPC_14. : RETRY COUNT IS 6, STEPC IS FOR LOOPING NEXT/MP.RFPR. TODR : :011100===== coswmmammnmmanenaas=e; REGISTER NUMBER 1¢ = (SRS. TRAR_ZL1T16L803 * CRAR_2, PL_O : NEXT7MP.MFPR. TUS8 011101 ------- CL TR LTS S L L bl YRAR_ZL 1T16(03, NEXT?HP,MFPR.TUS8 ;011110 REG]STtR NUMBER 1[) = CSRD. : : mmmmenn mamn cremorvcwsann; REGISTER NUMBER 1F = (STS. TRAR_ZL.1T160403 NEXT7MP. MFPR.TUSS ¢ TRAR_1, PL_O ; ;01111 Tmmammccnncnn ammmmeensana- ; REGISTER NUMBER 1F = CSTD (WRITE ONLY) UB_MCFPDOTFSETI, WBI31-3057,NEY)/MF.MFPR.BAD.IPR : ;100000 smemmnenmuunmmaneannna~ ; REGISTER NUMBER 20 = RXCS. CRAR_ZL1T16[80], * CRAR_2, PL_O NEXT7MP. MFPR. CONSOLE : 100001 = ~mwmmnnmmanns cmm——————— ; RECISTER NUMBER 21 = RXDB. CRAR ILITI600] NEXT7MP, MFPR. CONSOLE : : :100010~eseonanmsnnnnaan ———————— ; REGISTER NUMBER 22 = TX(S. ERAR. ZL1T16040], NEXT7MP ,MFPR, CONSOLE ¥ CRAR_1, PL_O : ' 1100011 ==mmmnmmne cmmmem——————— ; REGISTER NUMBER 23 = TXDB(WRITE ONLY) we MEFPDOF rJ : WB231-3057 ,NEXT/MP.MFPR.BAD.IPR 100100 ==eemmeamaummm———————— : REGISTER NUMBER 24 = TBDR. MEMSCAR 7L1124[3], NEXT/MPTMFPR.MEMSCR ; : 872 ; L MICRO2 CMT098.MCX MPRCHM.MIC 1M(01) MTPR, MFPR, CHMX 28=N0V=83 ;35851 U 0E25, 0580,0CB7,0030,3687,0068,3 135852 ;ggggz 135855 U 0E26, ODBO,0CB7,0030,4687,00E8,3 1y 0E27, 0180,0CB7,0030,7687,00E8,3 . U 0E37, 0080,(592,46F0,0047,0085,D U OE3A, 0080,C592,46F0,0047,00€5,D U OE3B, 0480,058F,403A,046A7,00E8,5 U OE3C, 0080,C592,46F0,0047,00E5,D ;35860 ;gggg; 135864 ;ggggg NEXT/MPTMFPR.MEMSCR : 11007110~ vevevmveuovnnnamnean=m==; REGISTER NUMBER 26 = MCESR. : : NEXT/MPTMFPR,MEMSCR MEMSCAR_ZL1T24L47, : NEXT/MPTMFPR.MEMSCR . 101000~==m==mm=m=m=m=: m=eee-e=sc; REGISTER NUMBER 28 = ACCS. FPA PRESENT?, NEXT/MP.HFPR.ACCS : : 135872 :ggg;z ;111000 mwmmmmmmmm e MEMSCAR_ZL1T24(03, mm e m———— : NEXT/MPTNF PR, MME * REGISTER NUMBER 38 = MME. : ;11100 wmmmmunuwn ----~~------*--; REGISTER NUMBER 39 = TBIA(WRITE ONLY) 135876 W8_M[FPDOFFSET], 135879 111010 ------- meascussmsnenaacas; REGISTER NUMBER 3A = TBIS(WRITE ONLY) ;ggg;g 135880 WB231-3057 ,NEXT/MP MFPR.BAD. IPR: B_MIFPDOFFSET], : ;gggg; w5231-30>°,~5 T/MP.MFPR.BAD.IPR ; ;32885 NEXT/MP.Mrfin TBDATA 135883 35884 3§5889 35888 :%gggg :3589§ ’§§§34 111011--- ---------------------- ; REGISTER NUMBER 3B = TBDATA. VA_RCPOBR 11111007 mmmmmmm—m—— e ————aam e :; REGISTER NUMBER 3C IS RESERVED. 823 30>7 ,NEXT/MP ,MFPR.BAD, IPR w8 g PDOFFSET], ;111101 ~enenmanumcamanmaeaeneae=; REGISTER NUMBER 3D = PMR. MCTEMP1] ncpcael. NEXT/MP RFPR,P * GET BASE ADDRESS OF : PROCESS CONTROL BLOCK. 11711110 mwmmmmemm————————— e ———; REGISTER NUMBER 3E = SID (READ ONLY). :35899 b ZLIT2402] MCTEMP1]_ HARD.REV, 335399 ;%gsgs 3* LOAD ADDRESS FOR READING TB. NEXT/MP.MFPR.SID : LOAD PROCESSOR 1. AND HARDWARE REV : U OE3F, 008:,0592,46F0,0047,00€5,D :§§301 ;111111 amemmm e : REGISTER NUMBER 3F 1S RESERVED. w8 Mgrpoorrssrl. : wB<31-30>7 ,NEXT/MP . MFPR.BAD.IPR ; U 0E97, 0580,0F76,4030,2847,0069,8 135905 SL_C5) ‘ ”\ : MEMSCAR_ZL1T24(6], 135867 =110111 ;11011) =mwemewmmnonena————— oo ; REGISTER NUMBERS 29 TO 37 ARE RESERVED WB_MLFPDOFFSET], 135868 WB<31-3057 ,NEXT/MP. MFPR.BAD. IPR ;ggggg 135805 U OE3E, 0D86,1C(B6,6030,1227,0068,8 Page b&/3 ;100101 -emmmmmcmmanan mmmeeenene -; REGISTER NUMBER 25 = CADR. :100111~eemrmsmamaunanmmmn=ua=w; REGISTER NUMBER 27 = CAER. 135801 U 0E3D, 0C36,15BE,4039,4047,00E8,8 CLOKX Rev 13.00, Clock rate = 160ns 135859 :%gggg 135875 U OF39, 0080,L592,46F0,0047,0085,D 4 MEMSCAR_ZL 172483, }35371 U OE38, 0180,0(B7,0030,0687,00ER,4 : MFPR K 135856 135863 U OE28, 0(80,0046,4C30,0047.00FF ,E , 16:30:35 : 35900 E§§g§§ MP.MFPR. IPL : ! ; © CMTQ098.MCX MPRCHM.MIC MICRO2 28-NOV~83 1M(G1) MTPR, MFPR, CHMX 16:30:35 L 4 : MFPR CLOKX Rev 13.00, Clock rate = 160ns ' Page 874 ;35906 MP.MFPR.XTR.WRITE: $35907 0 jmmmeememmmmmem——eemc—cccco—e-ee ; U 0E98, 0C84,2077,0030,8047,00DA,6 U 0E99, 0980,0F76,4030,1847,00E9,8 U ODAO, 0180,0CB7,0030,7687,04E9,A 135908 RCTEMP2] MCYEMP21.XZ, ;ggggg NEXT/MP.RFPR. CHK . CON 135911 MP.MFPR.ASTLVL: : : :ggg}g ) ; 135012 135013 ;ggg;g 135922 ;ggggz $35925 U 0DA2, 0D80,0CB7,0030,1687,04E9,A U ODA3, 0180,0CB7,0030,6E87,04E9,A L e EE e L LS ; * LOAD ADDRESS OF SAVED MODE REGISTER. D : .CMIERR PUSH,NERT/MP.MFPR.BUIL MEMSCAR ZL1T24[13, :010mmmm oo e e; ;011 mmmmmmn mmmm Smmmmm——emm—— ; * LOAD ADDKESS OF TB GRCUP PARITY ERR. MEMSCAR _ZLIT24L0D], :ggg;; 135934 :ggggg 135038 ;gggzg $35942 U 0E9A, 0086,1036,4030,0647,0069,8 U OE9B, 0886,1387,0020,0047,00E9,C U OE9C, 0086,2237,0030,8047,00E9,D U OE9D, 0884,13FE,4080,8047,0000,1 : LOAD ADDRESS OF READ LOCK TIMEOUT BIT. :35929 135930 :ggggg PUSH.NERT/MP.MFPR.BUILD.CMIERR PUSH,NERT/MP,MFPR.BUILD.CMIERR 135043 ‘§§32§ ) ;10]=mmmemm e anmmm e e m MEMSCAR_ZL1T24[91, ;ggggg 135053 + ;110 mm e e WB_MCFPDOFFSET], * LOAD ADDRESS OF TB HIT REGISTER. e; PUSH,NEXT/MP.MFPR.BUILD.CMIERR * LOAD ADDRESS OF BUS ERROR REGISTER, ; cm e s c s e n e : WB231-30>?,NEXT/MP.MFPR,DONE Egggzg MP.MFPR.BUILD. CMIERR: Egggzg MCTEMP1]_MEMSCR :35950 ; :100====m~~sommmmmeeenene e ——— : MEMSCAR ZL1T24[0C], PUSH,NEXT/MP,MFPR.BUILD.CMIERR $35941 MP,MFPR,CHK,CON: U 0DA6, 0880,0592,46F0,0047,00E5,9 ; MEMSCAR_ZL1T24L21, 135937 U ODAS, 0980,0CB7,0030,4E87,04E9,A PUSH,NERT/MP.MFPR.BUILD.CMIERR * LOAD ADDRESS OF CMI DISABLE REGISTER. 135926 $35933 U ODA4, 0580,0(B7,0030,6687,04E9,A NERT/MP . MFPR.XTR.WRITE Eggg}g fip.mrpa.chennz MEMSCAR_ZLIT24[0E], +35918 : 35921 U ODA1, 0D80,0CB7,0030,0E87,04E9,A femmemmmmm—————————— cmmmemma—; SL_[32, : ; CHECK IF IN CONSOLE MODE. LOAD DESIRED STATUS REG INTO MTEWP, jessmsummmenmene———e e e———————— ; MCTEMP1]_MB.RL.8 Y ROTATE DATA FROM <27:24> TO <3:0>. smemannaa mmmmmmnn———————— ; ROTATE DESTINATION TEMP TO MAKE ROOM :gggge MCTEMP2]_MB.RL.4 135086 feeeemumummmmmsuamam—.———————— ; EXTRACT NEXT 4 BIT REGISTER AND H 3 135057 135958 ? FOR NEXT & BIT STATUS REGISTER. RCTEMP2)_(RB.OR,MCTEMP11<3-0>), ; OR INTO LOW NIBBLE OF DESTINATION. RETURN [¥1] ; ! | | : © CMT098.MCX MPRCHM.MIC MICROZ2 1M(O1) MTPR, MFPR, CHMX 28=NOV~83 16:30:35 ) M4 : MFPR Page 875 CLOKX Rev 13.00, Clock rate = 160ns 135959 MP.MFPR.ICCS: U OE9E, 0886,20F7,0030,0047,00E9,F U OE9F, 0780,03FF,FFF9,F047,00EA,0 T ; SHIFT ICCS INTO LOWER WORD LEAVING 135960 ;gggg; MCTEMP2]_MB.ASR.P 135963 jmmmmmmmmmmmmmmmmemmemeeeeeoeeee ; ;ggggg LONLIT_C800000C1] :35966 U OEAD, 0886,2002,003D,4047,00DA,6 ;;gggg NEXT/MP.RFPR. CHK.CON 135971 ;ggg;g : ;Qmemmemcocemmmcmame——————————— ; CATCH RETURN =1 FROM INTERVAL TIMER NEXT/MP.RFPR.!CR10 WBR5=0>?, PUSH,NEXT/1E.ICR.SERV2 135077 ;ggg;g * CLEAR MBZ BITS IN ICCS. METEMP2] _RLSPNICR.SPICRI.RR.16, : Eggg;g MP.MFPR,ICR: 135076 WB_.NOT. (MCMM.TEMPOJ.RR.16), U OE7B, 0880,D3B6,0210,0047,0CFB,3 337« * LOAD MASK FOR MBZ BITS. jommm e CE L : MCTEMP2] MB.AND.RCLONLITI, 135067 135970 =0 J QE7A, 0486,2287,0018,8047,00EA,1 * THE ERROR BIT IN BIT 31. ; : BEGIN INTERVAL TIMER SERVICE. * BRANCH ON TCSR<SR,TR>. : 135080 MP.MFPR.ICR10: 135981 U OEA1, 0082,D592,4010,8047,00EA,2 U OEA2, 0186,2D10,0030,0847,00DA,6 U OE7C. 0886,25BE,403D,8047,00DA,6 e — e — s ———— ; 135082 ACTEMP23.S1Z_MCMM, TEMPO], 135985 135086 :ggggg jommmteessmmmeemem—seeaseen——— ; * CORRECT FOR SPICR=ICR<31:16>+1 MLTEMP2]_MB-ZLIT16(13, WEXT/MP.RFPR, CHK.CON ; ;ggggz SIZELWORD] 0 Eggggg MP.MFPR.TQODR.RETRY: 135991 ;ggggg METEMP2] PC2EROD, NEXT/MP.RHPR. CHK . CON : ; * TO MANY RETRIES. : }ggggg MP.MFPR.T?DR: U 0E7D, 0885,45BE,403D,8047,00EA,3 U OEA3, 059E,3037,0030,89A7,00EA,4 3%2339 MLTEMP4] _RCZEROD ;35908 jm memn memm———————— e eeen : ;ggggg DEC STEPC 135999 ' TOYCR_MCTEMP31_ZLIT16L171, ZERO TEMP4 TO BUILD TOYOS * SETUP ADDRESS + STE®C_13 FOR FIRST PASS ;ggggg MP.MFPR.TODR.LP: U OEA4, 0580,3D12,4031,01A7,00EA,S U OEAS, 0980,0F76,4030,2047,00EA,6 U OFA6, 0886,1036,4030,0127,0064,7 Eggggg :36006 ;%gggg :36009 136010 TOYCR_MCTEMP31.0R.ZLIT16020] | : LATCH TOYOS ADDRESS | | | jmmmmmemmmmmmemcenmmnmcemse e; | P vt e L L; i §L_r4] MCTEMP1]_TOYOS. TOYCN ' WAIT FOR DATA TO STABALIZE. : READ DATA S - } 0586,6012,0037,F847 ,00EA,E &?520:35 ¢ S o T o o o B S s O Page 876 | CLOKX Rev 13.00, Clock rate = 160ns B MOVE TOYCN DATA T0 BITS <15:0> i ey O L O R O Y S W Y RCTEMP5),S1Z_MLTEMP1], ; BUILD TOYCN IN RTEMPS 1 BYTE AT A TIME STEPC.GE.4? DECBY4, H SIZE[BYTE], : NEXT/MP.MFER.TODR. 99 ; =000 MP.MFPR, TODR.99: =001 ;001------------------u---------' MLTEMP6] _RCTEMPS), STEPC_147 ,NEXT/MP _MFPR.TODR.20 ;01 - > > G+ G 650 G B P D B e B3 e e e T T Y WB_MCTEMP5].XOR,RLTEMP6], STEPC = 13,9,5,1, 14,10,6,2 SAVE PASS 1 TOYCN SETUP STEPC FOR PASS 2 $ e ; COMPARE PASS1 AND PASS2 TOYCN VALUES. ; WXTEG,0?,NEXT/MP,MFRR, TODR. CHK e en e — e : :100mmmmcenmemmem MCTEMPS] MB.RL.8, ; : NEXT/MF ,RFPR, TODR. 20 PREPARE FOR NtXT TOYCN BYTE 110 et e e ccas e e * CHECK IF IN CONSOLE MODE. WB_MCFPDOFFSET],WB<31-30>?, PUSH,NEXT/1E.SERV. IP.TS : MP.MFPR.TODR.?O: hCTEMPAI MBLRR.4 : PREPARE FOR NEXT TOYDS NIBBLE '---------------uwg-m~-~-—-—u---‘ TOYCR_MCTEMP3] MB-ZLIT16[1], + WEXT/RMP ,MFPR,TODR.LP : =0 MP.MFPR, TODR CHK: SETUP NEXT TOYOS ADDRESS gn&--h-n-uun-—.—-—------------‘ NEXT/MP HFPR,TODR.RETRY (e : —— e e cGaa emmmr e rrr—r—r r——————— RLTEMP51.S1Z MLTEMP6].BCDSWP, SIZELBYT LT L L T e L L L LT T e T T T e e L MITEMP6]_MB.AND,ZLITOCOFF] . : T T T Y DECREMENT RETRY COUNT, SETUP STEPC FOR RETRYING PASS1. g BYTE QRDER IN TOYCN o ’ ~ E0 <o M[TEMPOJ _MB=~ZLITOL1],STEPC_14., - N fid—‘CDiDOO‘uO\ULblNfiJ—-CNOCO‘doflflJ\UflnJ—JCNOCD‘dCh\hS\UiflJ—‘ LN B & OO OO OO OO OO O TR T . [ es. e, AN LA AN N AN N NN oS0 NN SHANND — O D CO NAD = C , 0186,5093,8037,7847,00EA,D RO , 0882,6637,0001,4047,00EA,( A .. . ., 05B6,0010,0A70,0847,08t7,( U 0086,3010,0030,09A7,00EA,4 S N T TR T YAy c.mo . O , 0486,4277,0031,0047,00€A,8 W U . 0080,0592,46F0,0047,04F6,D AN L U ., 0086,5387,0020,0047,00EA,A SN 0¢80,5003,4A31,8047,00E7,E N P , 0CB6,65BE,4031,4047,00EA,A LN AN U U LA A U (A U O LA o R T ] , 0482,1592,4341,4047,0008,0 P PO . 0886,1387,0010,0047,00EA,9 O H2V0O0VOOOOOCO [elelelelalelelslelelolelelolele] OOC NN NI NN = 3 b b =3 3 b oD NN ANDALNOTVNO . NIWIANIWNUVINUI IS IS DS D B B PN I NN OEA7, 0084,107E,4031,0047,00EA,8 28-Nny-83 MFPR, SOOC O OO MTPR, D P N N R MICROZ2 N U N N 8 LM N N N NN I (N NN CMTO98.MCX MPRCHM MIC & N ] : TEMPS_ZERD<31:24>'TOYCN<23: 05 t TEMP6_ZERD<31:8>'TOYCN<31:24> ; : CMTO98.MCX MPRCHM.MIC 28=NOV=83 16:30:35 MICRO2 1M(01) MTPR, MFPR, (HMX .1 MFPR ly OEAE, 0880,5292,6001,8047,00EA,F ‘ -|u OEAF, 0086,4276,0A31,0047,00E8,0 : 36064 ;ggggg 326867 136068 ,;%gggg 136071 =0 U OE80, 0886,22B1,0011,0047,00DA,6 136 7§ : 2 ;a :36075 u OE81, 0886,25BE,403D,8047,00DA,6 u 0EBO, 0186,2F76,4030,43E7,00€8,2 :268?9 : 20; CLOKX Rev 13.00, Clock rate = 160ns P P O_MCTEMPS].OR, (RCTEMP6I.RL.24) Page 877| N ; DREG_TOYCN jmm———— cemecmmm—————— ~==ee==e; DO FINAL SHIFT TO ALIGN 10Y0S MCTEMP4]_(MB.RR.4).NOT, WX.EQ.07 Y QUTPUT OF TOYOS 1S INVERTED. : CHECK FOR BATTERY FAILURE jQeacannumnmn————— Amemmm————— MCTEMP2] D+(RCTEMP4I.RR,16), NEXT/MP.RFPR, (HK. CON : RESULT IS TOYCN(DREG) + TOYOS(TEMP4) : j e ——————— weeeemaaee; * BATTERY FAILURE, RETURN ZERO : NEXT/MP.RFPR. CHK . CON } | s l R ‘ | MCTEMP2) RLZEROD, MP,MFPR, TUSS: Egégrg : 36080 e —eemen - . 136082 : 136081 MCTEMP2]_TUSBREGS, ; :%2 NERT/MP ,MFPR,CONSOLE, 10 i 2 sL (87, : ; : +36085 MP,MFPR,CONSOLE: ; 136 36086 U OEB1, 0986,2F76,4030,43C7,0068,2 ;32088 J 0EB2, 0D80,0EF6,4030,8047,00E9,8 3%2835 o mmmm e LI LL L LAY fi[rgmpzn_co~nscs. sL_(83 }%gggg MP,MFPR, CONSOLE.10: 6.]. ; NEXT/MP MFPR,XTR,WRITE PL_C1 136094 MP.MFPR,MEMSCR: 136095 u OEB3, 0586,2F76,4030.,2647,00£9,8 :36899 13609 : ; {emmmmnnme e ——————————— R : NEXT/MP RFPR.XTR WRITE ; MCTEMP2) MEMSCR,SL (41, : ' ! i' 0EB6. 0c84,02F7,0030,0047,00€8,7 0ER7, 0886,25BF,4030,0047,00CA,6 OEB8, 0180,1€11,0032,E4A7,00E8B.9 0EB9, 0186,2(B7,0034,0040,00E8,A U OEBA, 0c85,2302,C030,8047,000A,6 > = I~ AR N A N N N LA AN AN AT N A U NN LA N AT AN AR N MO A NONUPONIN) 3 b ) b b b o 3 2 S OO OO O OOOOOVO O 00 IO N T LN = O 20 00 IO LN S~ WAINY =2 OO0 IO N S AINU = O\D G0 NIOMNES AN = O Do ,00€8,6 OEBS, 0085,F592,4030,005F D% 2 £ D NN 2 € 0eB4, 0986,2F76,4030,0E47,00E9,8 AN A A AN AR LA AN U 0186,2(37,0030,0047,00DA,6 AT U OFFF, e T T T O T T T T T T e L L T R TR TR L L dd 6 OFFE, 0586,2¢37,0030,0847,J0DA, LA A AN AL o AT UM U s LA AL N LA A LA 0E83, 0086 ,BEB7,0031,C047,017F,9 .. 0E82. 0986,8F37,0032,4047,017F,9 ¢ 28-NOV-83. &?égO:SS OO OO OO OO OO OO [ 2% Yo e ¥e No No NoNe Yo do YoJoXoJoJole Lo Lo OO b b A ok hk ek b + b b d e Ak d 2 2 OO S s ek 3 b D e md b b kb 3 b oD b 3b o = M]CRO2 MTPR, MFPR, A (MY 098.MCX MPR CHM.MIC 5 CLOKX Rev 13.00, Clock rate = 160ns Page 0EB2: FREE.OE82: i (mmmmmmmmm—m——m——e—meea oo meaae : FILLER NOT USED MCERRCOD_OL1T16L72.],NEXT/IE .UNUSED. CS 0E83: FREE.OE83: ] mmmmmmmme———————em— e cesaae ; FPA IS NOT PRESENT MCERRCODI_OLIT24(56.1,NEXT/1E . UNUSED. CS OFFE: MP.MFPR.ACCS: +170%#x*x«FORCE ADDRESS*#%xwsasw; FPA IS PRESENT MCTEMP2] ZLITOC1], ; NEXT/MP ,RFPR,CHK, CON OFFF: ; ;111%axsxxFQRCE ADDRESSwwwawswsx; FPA IS NOT PRESENT MCTEMP2) ZLITOCOJ, ; NEXT/MP.RFPR. CHK, CON ; MP.MFPR .MME : MCTEMP2] MEMSCR,SL_[13, ; NEXT/MP.RFPR,XTR, WRITE ; MP,MFPR, TBDATA: RCTEMPOI_TB S o o D T S ; i Oy 2y O )y D O RS O 7 B TR Oy 99 Ol e MLTEMP2] RCTEMPOD, B R O T o e S P 200 W e TG D R S S e ¢ O Wy W $ : NEXT/MP,RFPR, CHK, CON : MP.MFPR.PMR: VA_MCTEMP11+2L1T0092.] * LOAD ADDRESS OF PMR BIT. ¢ FETCH PMR AND LOAD MASK. S mm oy - G0 o v - .o -y 0 o G o o RCTEMP2] (MCMDRI.AND.RB).RL.1, NEXT/MP . RFPR.CHK. CON - : MASK ONLY PMR AND ROTATE TO BIT 0. : 28-NOV-83 b D o b D o : MFPR MCTEMP1] MB.RR.16, PATCH,NERT/0FF6 D D e b PR TR P PR L] T P R : ; weF6: ~ b 0FF6: MCTEMP2] C.OR.ZLITBL<MICROREV>],: NEXT/OFFT b b b D ed sxkkakkkaxFORCE ADDRESSwxaawwdkn, CRAUBURARRRRRBRRRRBERERBBBRBIRRY *ux MICROWORD REPLACED IN P(S %% MCTEMP2]_D.OR.ZLITBL94.] : ;%4 %x&xx*“FORCE ADDRESS*txxxsrns; e J s e i e NEXT/MP.MFPRTCHK. CON b e e : =01 P .MFPR. DONE -----—-—-u-------—---—------- . 4 MLTEMP2), LOD INC BRA?,NEXT/0S.WRT1 ; NOT IN CONSOLE MODE. IL.MOV.B.W,L.MEM_DOES THE WRITE : EVALUATE DESTINATION OPERAND 0S.WRT! WILL BRANCH TO Il..MOV,.B.W,L.MEM TO WRITE THE SRR L iy OO i Puaf- i Sl G Qi Qu G o COCOOOCE QO I NN SN O OO O OO OO WITH THE VALUE IN Q D i etvioinaiata et b b b b b D) : CONSOLE MODE MDR_RLTEMP2], : MOVE RESULT 70 MDR FOR CONSOLE. NEXT/CN.E.GPR. IPR ; RETURN TO CONSOLE MODE FLOWS. TR T *xx MICROWORD IN PCS wx DESTINATION LN N N LN AN AN N TR TR TR TR TR DI T DU 0ESF, 0D86,7CB7,0030,8847,0096,¢ [P OE5D, 0418,0036,4030,0047,00FF.8 ROTATE HARDWARE REV TO PROPER POSITION xx% JUMP TO PCS #%* RCTEMP2].S1Z_MLTEMP1], SIZELBYTED, ;MERGE PROC ID, MICRO REV AND HARD REV D et D OFF1: 136108 N OE58, 0080,058E,4030,8467,0090,6 Page e R P 5 CLOKX Rev 13.00, Clock rate = 160ns D Y QE59. 0080,2592,5180,0047,0014,0 o OFF1, 0€82,1592,4000,8047,00DA,6 16:30:35 MP MFPR.SID: D e OFF6, 0DB6,20B2,4032,F047,00FF,1 N P T TR TR TR 2BF6, 0186,20B82,4033,1047,00FF,1 T 0EBB, 10f%,1387,0010,0047,00FF,6 AOOSOONONOM ALAUNAMTWVNUIVIWINRSS D P BN 2 bO D NN = SO0 NN NNV =2 OO~ O P MICRO2 1M(01) MTPR, MFPR, CHMX s AN LA U g g L N LN N N AEUN AN A R A AN N AN N U (o Y5 N Xa¥e Vo X, No Xe¥oNo Yo do Yo No g0 Re tolealealedelelon CMT098 . MCX MPRCHM, MIC =01 ¥0 MFPR,BSD.IPR: {LEAR FLAG3, NEXT/IE.OPER.FAULT ALTERP71 ZLTT24E111, NEXT/CN,ERROR NOT IN CONSOLE MODE. : PUSH PCBACK=2 ; T: TAKE A RESERVED OPERAND FAULT. CONSOLE MODE. RETURN TO CONSOLE MODE FLOWS. 879 MPRCHM . MIC MICROZ 1M(01) MTPR, MFPR, CHMX U 03c8, 0Dp85,pC37,0030,1047,00€8,C OO ORI OO RO OOOO OOO AN y 03¢7, 0D85,DC37,0030,0847,00€8,C AT v 03c6, 0185,DC37,0030,0047,00€6,3 N AN LA N A AN N L LA NN L I T T T T e O O O N LR LR R LR TR TR PR P T P L R AL AR N A A N O LA AN AN U AN AT NN RN LN O R OV A DAL ALRL LE] NN :3 23 ROOONO 1361 :361 : 361 ;3 28~NOV=-83 AINVNNINLTLNIPLNL N NNV PITONYI RUAL NUNVNL R NSRRI NI AXNVNI PN PUNONVINVITIUNNY — = =2 2 3 S ad b AN AN LIRS AU NON POTU RO NI RN b — —3 P eir i e PR APt Sl e telelataleTolota o Mol el e Rolla Do b el o) ol g dndrdey IAE )= OO OO NOMAL NN = S OO NI AN = O\ Qo NN 00 O N B NN = OO OO NOMNINNI 2 O 0D~ O ;361 1361 ;361 LN RN H CMT098.MCX e s L10C "' : 16:30:35 CHMK, E CHME, 5 CLOKX Rev 13.00, Clock rate = 160ns CHMS, CHMU Page ¢ CHMK, CHME, CHMS, CHMU" MTPR, MFPR, CHMX ;*******t**k*****i*t*fi*****************************t*****iit**t*t************* code.rw H CHMX H Input MDR Code operand H Resources TEMPO Hold PSL to_extract CURM H : TEMP?2 ; Temp to switch stacks Save new P( TEMPS : ; H H TEMP7 MTEMPS MDR sp H ESP Save mode selected by opcode New PSL KSP H SSP ; ; uspP VA J PL : RNUM SL H Subroutines PRB,WRITE1 1E.PUSH.PSL.PC IE.LOAD.PC ; H Save code operand TEMP4 : H ; MINU ( TEMP?7, PSL<CURM> ) TEMP3 CHMX CHANGES THE MODE TO THE SPECIFIED MODE UNLESS ALREADY RUNNING : AT A MORE PRIVELEDGED : THE NEW STACK BEFORE INITIATING THE APPRUPRIATE CHMX EXCEPTICN. H 1S INITIATED. H H H STACK. MODE. CHMX IS NOT ALLOWED IF ON THE INTERRUPT CHMX PROBES AHEAD TO MAKE SURE IT CAN PUSH 3 LONGWORDS ON IF THE STACK PROBE FAILS THE APPROPRIATE FAULT, ACV OR TNV, CHARLIE'S FLOWS 3.6 ;*t*ttt****tt&tt*t*t*t*tt*ttttt*t*tt*t*******flt**i*******************t*****t*t LREGION/IRDX.,R1L,IRDX.RTH/IRDX.R2L, IRDX.R2H CH.CHMK: RTEMPZ_RNUM _ZLITOLO], * SAVE MODE SELECTED BY OPCODE. RTEMP7 _RNUM ZL6T0[1J. + SAVE MODE SELECTED BY OPCODE. RTEMP? RNUM 2L1TOC2], ¢ SAVE MODE SELECYED BY OPCODE. NEXT/CH.CHMR. 20 : CH,CHME: NEXT/CH.CHMX.1 H CH.CHMS: NEXT/CR.CHMR. 10 ; 880 Y =2 28=NOV=83 MICRO2 M{PR, MFPR, 0E09, 0884,4592,4038,4047,00EC,0 0EQA, 0884,4592,4038,8047,00EC,0 0EOB, 0C84,4592,4038,0047,00£C,0 0E0C, 056E,CC37,0030,5047,0000,1 0ECO, 0486,4E7D,003(,84A7,00EC,1 R M T TR TS L : : SAVE MODE SELECTED BY OPCODE. 2L ,R3L ,MPRCHM.R3H CHM,R MPRCHM H/MPR ,MPRCHM.R2H/ JREGION/MPRCHM.R1L ,MPRCHM,R1 CH.CHMX.10: METEMPOI_PSL,PL_[24.] ; EXTRACT PSL<CURM> TO COMPARE WITH ; MODE SELECTED BY OPCODE. &caa T : oé'mf?EES?SZG;?EF«SBSTIBT""":- COMPARE MODE SELECTED BY OPCODE SIZELLONG],WwB<31=30>? : WITH PSL<CURM>, =01 LD ee —RETEMP2]_RNUM_MTEMRO, XZ, H NEW MODE IS PSL<CURM>. NEXT/CH.THMX.30 : 20: CH.CHMX. RUTEMP21_MLTEMP7] ; NEW MODE 1S MODE SELECTED BY OPCODE CH.CHMX.30: MCTEMP4] RLSPI, PSL<IS.CORM>? ; PREPARE TO SWITCH STACKS. ; 21000 ;1000==wmw==m semmmmenem o ———— ———— RLKSP] _MLTEMP4], : NEXT/CR, CHMX. 40 : SAVE SP IN KSP. R P I N I 0EN8, 0084,4592,4038,0047,00€EC,0 T T OEBF, 0886,45BE,4787,8207,08€0,8 T P R TR T 0E63, 0484,7592,4030,8047,00E8,F Page e OE61, 0085,0077,0030,8047,00EB,F TR IR TR T OEBE, 0850,7090,06E0,0047,08E6,1 NEXT/CR,CHMR.10 LI L OEBD, 0580,0F76,4030,1047,00EB,E 5 {LO KX Rev 13.00, Clock rate = 160ns RTEMP? RNUM_ZLITOL3], L OEBC, 0186,0£F6,4030,C087,00€E8.D F L 03c9, 0985,DC37,0030,1847,00E8,C 16:30:35 CH. CHMU: TE Y — et MPRCH =0 CMT09 1100 ~emmreme e m e m e: RLESP]_MLTEMP4], NEXT/CH.CHMX.40 : H :1010=mmammemnmmaem———————————- ; RLSSPI MLTEMP4], NEXT/CR.CHMX.40 : ; SAVE SP IN ESP. SAVE SP IN SSP. 11011 mmenmuresnnennnnannmmman—m-; RLUSPJ Mtrenpaa, NEXT/CH.CHMX.4 ; SAVE SP [N USP. H ;1100=sesmenmacnmenacsuanmann~os : MCFPDOFFSETI_ZLITOLOAD, : CHMX IS UNDEFINED ON THE INT STACK SET HALT ERROR CODE SET STACK FLAG : TELL CONSOLE TO LOOK AT FRONT PANEL ------- SemMuBsvmanusmeensceeswe. ; PREPARE TO PROBE NEW MODE_STACK AREA ] NEXT/MS.HALT.MCRO CH. CHMX. 40 VA_MCTEMP4]_RCIPR.RI=1 ' HALT, : FROM NEW SP-1 TO NEW SP=-1 2. 0E87, 016E,(C37,0030,5847,0000,° 0ECS, 0C6C,073(,0027,84A7,00E1,6 0ECo, 0086,40%6,4030,0087,00€(,7 OEC7, 0880,058EF ,4030,86A7 ,00£(,8 PR PR PR T TETE P PR PSR PRV 28-NOV-83 1 6:30:35 : CHMK, G 5 CLOKX Rev 13.00, Clock rate = 160ns CHME, CHMS, CHMU RCTEMP3] SEXT(MLMDRD), SIZECWORD] =00 Page 882 o SAVE OPERAND [N TEMP3, ; wex MM.PRB.WRITE1 DESTROYS MDR w=x ;: PROBE SP-1 WITH THE MODE : SPECIFIED IN TEMP2 (RETURN IF OK). 100=mmmmm—enm e — e MCTEMP2] MB.RL.24, PUSH,NEXY/MM,PRB,WRITE1 «xx MM,PRB,WRITE1 DESTROYS MDR ww« : PROBE SP=12 WITH THE MODE : SPECIFIED IN TEMP2 (RETURN IF 0K). H L Rttt atabatetmingmtionindadetudetnbdnid-~ VA_MCTEMP4I=201T0L11.], PUSH,NEXT/MM,.PRB.WRITE1 1]Qnmmmm—————————— e —— : ) MLTEMP?]_(MB*RLTEMP?MY .1, SET MM.NDINT ACTEMP7]_MLSCBBIRB, CALCULATE MACRO VECTOR ADDRESS OFFSET = TEMP7 « 4 o ADD OFFSET TO 5CB8. :; 1P.T5? = : CHECK FOR INTERRUTPS. ¢ NO INTERRUPT, OR RETURN FROM TIMER '-0---------------fin~--~rm---w-—- M : SERVICE, LOAD MACRO VECTOR ADDRESS. VA_MCTEMP?1+ZLITOC40], NERT/CH.CHMX.45 : iINTPEND OR TIMERZ, . PUSH,NEXT/IE.SERV.IP,T52 ; SERVICE TIMER OR INTERRUPT : 45 CH. CHMX. READ , PHY B O o G i S ; 0 s O B iy o e B Ot 0 KD A PR B 40 e e e 1 WA RCTEMPS] MCMDRI,CLEAR FLAGE, WB<1-0>.RE.0? =O + : 0-0 ------------------------- - SET FLAG3.NEXT/CH. CHMX. 50 MCFPDOFFSETI_ZLITOCOB], SET STACK FLAG NEXT/MS,HALT.MfCRO SAVE MACRO VECTOR IN TEMPS. BRANCH ON MACRO VECTOR<1:0>=0, MACRO VECTOR<1:0>=0, LOAD NEW SP _AND GO PUSH PC, NOT PCBACK=¢ RESPI_MCTEMP4I+1, [— amemmn————————— E— - READ MACRO VECTOR Y —emamema 0E86, 0c5¢,4€50,0037,8047,00EC,5 OO OEC4, 0015,2592,4381,4047,00£8,6 AN LU N (AU N N DS N A LA NNUnd NN U N N A U AN NN N CONONONO OO OO OO ONOONOONON OOPO OO 4 0EC3, 0¢80,0036,4030,0040,0U0EC, AT AU A AN LA LN N (A OE85, C480,0036,4AF0,0047,04F7,0 DA N O 0E84, 0180,7¢11,0032,04A7,00€C,3 e Moo BeGeBa®oBoteteta®eto®oBoto o oty BeBuaPeBeBoBo®oBeNedaSestevade P OEC2, 0C84,E001,0831,DBE7,00:8,4 o MaBo 0E66, 0c66,7301,0031,0047,00€C, 2 N LU A 0E65, 0p80,4€10,0030,5LA7,0579,8 oo 0EG4, 0486,23B7,0000,0047,0579.B A LN 0EC1, 0085,2t5€,0010,0047,00E6,4 e ® e me CMTO98.MCX MPRCHM, MIC MICRO2 1M(0 1) MTPR, MFPR, CHMX MACRO VECTOR<1:0> NOT EQUAL TO 0 OPERATION UNDEF INED. SET HALT CODE TELL CONSOLE TO LOOK AT FRONT PANEL AND HALT. CH. CHMX.50: VA_RTSP)_RB=CONX(4), SEY STACR FLAG ; : PREPARE TO PUSH ONTO THE STACK. ME?EMP«J_PSE ------------- : SAVE OLD PSL TO PUSH ON STACK. PSL(PREV_CURM ISCURM_RLTEMP2D) BEGIN TO BUILD NEW PSL., t : H CMT098.MCX MPRCHM, MIC 1M(01) MICR 02 MTPR, MFPR, CHMX L OEC8, 0886,8036,4030,0087,00E8,8 ‘ 28=NOV=83 $36349 U OE8%, 0C84,073(,0027,84A7,00EC,9 136359 U 0EC9, 0C80,3592,4020,0508,00EF,5 : 36360 136361 CLOKX Rev 13.00, Clock rate = 160ns t C(HMK, CHME, CHMS, CHMU Page 883 ; MOVE NEW PSL INTO MTEMPS, jQesemsesmeccsecscemeseme—eaa - ACTEMPB) MB.AND,OLIT2401071, :36353 136356 .ggggg § MCTEMPBI_PSL Essgsz 20 ‘%2%22 H jewmmassssseseseessame———————— ; %g%g? ~ |v 0E88, 0986,8£92,0038,3847,04F0,5 16:30:35 PUSH,NEXT/1€.,105 0 : CLEAR NEW PSL<CM,TP,FPD> : GO PUSH PSL AND PC ON THE STACK. jlemmmmmemmeeeeececcscscsseseses ; VA RISP]_RB=CONX(4) ; PREPARE TO PUSH OPERAND ON THE STACK. jmmmmmm—mmosescesessemen ——ee; WRITE MLTEMP3],SIZELLONG], NEXT/1E.LOAD,PCOT ; PUSH OPERAND ON THE STA(K. ;: FINISH INITIATING THE EXCEPTION. : ; (MT098.MCX MPRCHM,MIC ;36363 : 36364 MICRDZ2 1M(01) MTPR, MFPR, CHMX 136362 .T0C .NOBIN 236365 136366 REG .1CODE OBD FPD ENOPJ[IE OPCOD DEC ;36368 ,0CODE ;56372 .1CODE :36375 ,0CODE 36367 : 36369 .gg%g? $ 36373 136374 136376 .%g%;g 08D: CNTO[NOP]ECH. CHME CNT1CNOPILIE .RAD, IRD .0CQODE :ggggg ] ] 0BE: CNTO[NOPJECH. CHMS JECH.CHMS CNT1CNOPILIE.BAD. IRD .I1CODE ;36388 36389 ,36390 ,%g;g; IRD1TLODILOS.RED .0CODE 0BF: CNTOLNOPILCH,CHMU CNTT1CNOPICIE .BAD. IRD 36393 .1CODE .36394 236395 :36396 136397 -gg%gg 36400 :56401 ;36402 : 36403 136404 : 36405 [1E.BAD.IRD 0BF: FPD [NOP][IE.OPCOD.DEC 0pB: FPD CNOPJ]CIE. PCOD DEC .0CODE IRD1CLODI[OS.RED 0DB: CNTOLNOPI[MP MFP .I1CODE 0DA: .0CODE ODA: JLIE.BAD.IRD 1, ] ) JErH, CHMK s CHMK | CNOPICIE.OPCOD.DEC CLODILOS.RED ENOPJ[CH.CHMK CNOPJLIE.OPCOD.DEC CLOD]COS.RED 1, J s CHMS [NOPJECH.CHMS CNOPILIE.BAD. IRD %ECH+ CHMS CriNPICIE.APCOD.DEC 3. J ] J ) J ] JIMP.MFP FPD [NOPILIE.OPCOD.DEC ] CNTOCLODILOS.RED JLOS.RED ) J ] JIMP MTPR [NOPJLIE.BAD.IRD ] CIE.BAD.IRD + CHMU [NOPJLCH.CHMU [NOPILIE.BAD.IRD JECH, CHMU JCIE.BAD, IRD ENOPJEIE.OPCOD.DEC 3. [NOP][MP.MFPR.FPA %EMP.MFPR.FPA ENDPJ[IE.OPCOD.DEC 1, [LOD%EOS.RED IL0S.RED (NOPICIL.MOV.B.W.L.MEM [NOPILMP.MTPR s CHME JLIE.BAD.IRD J LODILOS.RED b ] fLODILOS.RED CLODILOS.RED ] J[IL.MOV B.W.L.MEM CNT1INOPI(MP . MTPR JLCH. CHME JLIE.BAD. IRD | CNT1INOPILIL. MOV, B W.L.MEM IRD1LLODILOS.RED [NOPJLCH.CHHE [NOPILIE.BAD.IRD ] JCCH. CHMU JCI1E.BAD,IRD FPA MEM J ] LODJ[0S.RED JLCH. CHME JLI%.BAD.IRD : 1rd Rom Definttion' 1. J 0BE: FPD CNOPJCIE.OPCOD.DEC IRD1CLODILOS.RED 136386 ;36387 i g[CH.CHMK ;36382 136383 Page FPA REG 0PS ENOPJ[IE.0OPCOD.DEC MEM 0BC: CNYOCNQPJLCH,CHMK .ICODE 5 CLOKX Rev 13,00, Clock rate = 160ns MTPR, MFPR, CHMX ' g CNTT1INOP]CIE.BAD, IRD 1 + Ird Rom Definition 0BC: FPD ENOPJEIEQPCOD.DEC IRD1{LODILOS.RED :36379 :36380 136381 IRD1CLODICOS.RED 16:30:35 28=NOV=-83 JMFPR IL.MOV.B.W.L.MEM ] JCMP MTPR JMTPR 884 i + 36420 ;36421 +UCODE 01 0] 0] :36422 .BIN o J SIZE CLONG] CLONG] 01 J 35 0] s CHME 0] ; CHMK 0] s CHMS 0] s CHMU 0] 0] JMFPR 0] 01 +MTPR e CLOKX Rev 13.00, Clock rate = 160ns Rom Definition R ODA: [LONG] [LONG] 0] o SIZE 0] e B 008: 0] 0] BN 0] 01 o SIZE (WworD) [ 0] 0] e B : OBF 0] size LB 01 0] TR o TN oo SN oo BN o RN o | (worpd [ o | SI2E o T 0BE : 01 0] T 02 o [WorRDI T e TR SIZE 01 e T 0BC: o B 0] o T (worDl £ Lo 136418 136419 SIZE 36;30:35 : Dsize Rom Definition’ Do T 1364617 08D: R + 36409 136410 ;3641 : 36412 136413 ;36414 : 36415 136416 o : 36408 28=N0OV=83 MTPR, MFPR, CHMX " e TR 136407 .T0C .DCODE T : 36406 MICRO2 [ : : 1M(01) MTPR, MFPR, CHMX . MC X CMT098 M¢ MPRCHM1 e e G we et e — ———tr Page 885 = — e4 MPRCH =00 * M09 MICRO2 1M(01) MTPR, MFPR, CHMX 28=NOV=83 K 5 1 Rev 13.00, Clock rate = 160ns CLOKX + Dsize Rom Definition 16:30:35 36422; This page intentionally left blank. Page 886 PRLDSV.MI PRLDSV. MIC 28-NOV-83 16:30:35 L 5 CLOKX Rev 13.00, Clock rate = 1€Nns ;36423 .T0C ''PRLDSV.MIC' :36424 ,TOC "'REVISION 19.0" CHARLIE MCDOWELL :ggzsg : .NOBIN .Toc " Revision Wistory' : REV EXPLAINATION 19 Fix PROBE instructions to flush the X8 after restoring the PSL to avoid erroneous ACVs due to prefetch while PSL had modif:ed current mode bits to execute the probe, Also fix to report no access if probe across a page boundary with first page access ok but not valid, DA —t 18 o~ H MICROZ CMT098. MCX LSRR ; 1 ?(01) and second page no access, . 29-MAY-1980 Change SVPCTX to save the SP in KSP as well as the PCB it executed while on the kernal stack, . Add BUS/PRB.RD.PTE to avoid machine hang clearing TB. Initial release, .BIN 136443 Page 887 U 032A, 0885,259€,4010,0047,0573,9 : U 0328, 0484,3E51,0780,C05F,094E,C 479% u 14EC, 0485,6392,4033,0047,0562.8 U 14ED, 0180,8C12,0A30,1047,0557,( U 14EE, 0¢80,1002,403D,8007,016C,D J 14EF, 0081,8001,0030,(4A7,0168,7 e T O T T e TR T TR P P e N TR LR TR R L St L ' 28 NOV-83 16:30:35 M5 .70C '* : PROBER'' PROBE, LDPCTX, SVPCTX H*kfi*****fl**t**k***t***\'k**tfi*it'(***t*t*t********************t****t*********** mode.rb, len.rw, base.ab : PROBER 3 Input ; Resources H : ; Mode TEMP Save PSL Length TEMP3 Save ZEXT(Length) - 1 MM.TEMP? Subroutines R Q MDR PR.PROBEX.SUB CHARLIE'S FLOWS 3.1 L Save VA if TB Miss I A T T A R A R AR i s iR e et s s ats 8E610N/IRDX.R1L,lRDX.RTH/IRDX.R2L,1RDX.R2H 46 PR.PROBER: ;Q=mmmemme e mem e m e — gg PUSH.NFXT/PR.PROBEX. SUB 46 Page 888 CLOKX Rev 13,00, Clock rate = 160ns + PROBER SVPCTX OO O\ N \NIUINNLI U S D S PO PROBE, LDPCTX, V 1M(01 OOM\JO\AS\MN—'OOw\lOU’I-‘\WN ~ QOO0 NO TS PRLDSV.MIC MICROZ DD H (MT098,.MCX AN LA A A LA NN LN A O AN I N U N AN D ANAN N AN Po 2= NoNoNo NoNo X NeNo o Ne Ro e g s e e e il : 46 3646 ;3647 RETEMP3] ZEXT(MCMDRI), SIZECNORDJ., SAVE ZERO EXTENDED LENGTH P Eadelniainbutnintistabutntetetabuinintelnlointlattb - RCTEMP3] MLTEMP3]-1 SIZECBYTEJ,PROBE READ? : SAVE ZEXT(LENGTH) =1 %22;5.REGION/PRLDSV.R1L,PRLDSV.RTH/PRLDSY. R2L PRLDSV.R2H/PRLDSV.R3I.,PRLDSV .R3H 36473 =1100 36474 ,1100--------------------------- ; PROBE NOT VALID (PTE NOT IN TB) RCMM. TEMP1] MLVAD, ; SAVE VA AND PROCESS A TB MISS TO 36477 36478 3110) == mmmmmmcm e e m e s ——— ; CATCH RETURN+1 FROM MM.PRB.READ.TBM WB_MCERRCOD],AND. 2L [TOL21, : CHECK IF FAULT REFERENCEING SPTE ggz;g ggzgg 36481 36482 ggzgz 36485 36486 PUSH,NEXT/MA.PRB.READ., TBM PUSH,WX.EQ.0? ,NEXT/PR.TAV ; LOAD THE PTE BACK IN THE TB. : (1110~ ee==s=~a=-w=; PROBE NO ACCESS OR RETURN+2 FROM PSL_MLTEMP1], NEXT/PR, PROBEX.ACV : MM.PRB.READ.TBM, RESTORE PSL ; SET CONDITION CODES AND DO IRD1 i11)]mewemesmmesmccececesnen e ; READ ACCESS OK OR RETURN+3 FROM VA M[VAJ+R[TEMPSJ ; MM,PRB,READ.TBM, CONTINUE. 16(D, 16EE, 0880,05BE ,403D,9047,016E ,E 0481,A592,4030,0487,0000,2 16:30:35 << . : o 1 i § CLOKX Rev 13.00, Clock rate = 160ns - - . . $126CBYTE],PROBE READ? =1100 ;11 RIMM, TEMP1] MIVA], - v G W 2P T T T s o PROBE NOT VALID (PTE NOT IN T8) SAVE VA AND PROCESS A _TB MISS TO A LOAD THE PTE BACK IN THE TB. PUSH.NEXT/NM.PREB.READ, TBM R Rt ettt d e dtadtutntutnl eae- WB_MCERRCOD],ANN.ZLITOL2], PUSH,WX,FQ.07,NEXT/PR, TNV O B e MM,PRB.READ.TBM, RESTORE PSL SET CONDITION CODES AND DO IRD1 NEXT/PR, PROBEX.ACV READ ACCESS OK OR RETURN+3 FROM MM,.PRB,READ.TBM, RESTORE PSL. SET CC TO INDICATE ACCESS OK. lmmcmm—c e n—t———————— PSL_MLTEMP11, =0 PR.TNV: CATCH RETURN+1 FROM MM.PRB.READ.T8M CHECK IF FAULT REFERENCING SPTE PROBE NO ACCESS OR RETURN+2 FROM el . ——— PSL_MLTEME1], 1] Page PROBER s . NEXT/PR.PROBEXUK ¢ - TNV NEXT/IE. a1 - ———— RETURN [+2] FAULT FETCHING SPTE RESTORE PSL AND TAKE A TNV FAULT. NOT A FAULT FETCHING SPTE RETURN TO INDICATE ACCESS OK, ORCE ADDRESS*wuwnknnw, swxnxaextw} 17F8: PR.PROBEX.OK: e o WB_R[Z NERT/P 0 O e o B o e At o e B o Bt Bt e ¢ 341,£00P2,SIZECIDERY, 03 S om = O 00N O N = OO O NN S NN O TS NN« DN O DS S DD v IR SN = S0 00 O NS = O 0 00 1778, 0C80,0E7¢,002D,9047,016E & IO VIS 1570, 0880,0036,4080,0047,0000,2 T i 157¢C, 0480,1092,4030,8007,00f6,1 AT , 0480,1002,403D,8007,017F,8 154F TN 154€, 0c80,1002,403D,8007,016C,D AN 0180,B¢12,0A30,1047,0557,C I 154D, 00 VYV VOV OO NINURLNLNJNINUN) 2 e e S 2 D S L O OOOOOOOCO 154¢C, 0485,8592,4033,0047,0562,8 28-NOV=83 § PCTX A N AT NN AN O LA AL A A A N U N N A AN NN N NN RN I N S N o 0o o No o Yo NoSo e o Jodo So o do o do o nn’a OOP3N 1687, 0C80,0036,4780,005F,0954,C 479% LA AN NG PRLDSV.MIC 1M (0% MICRO? PROBE, L DPCTX, T R TR TR PR PR PR PR LR TR P P TR P P TR LRI T2 PR CMT098.MCX N ROBLX.FLUSH SET CC TO INDICATE ACCESS OK. PR,PROBEX.A(V: © 1 L " o S 0 T e o e e @ o -————— w8 R[ZERGJ,CCOPE.S!ZE[IDEPJ, NERT/PR.PROBEX.FLUSH PR,PROBEX.FLUSH: FLUSH X8,NEXT/GL,NOP, IRD1 SET CC TO INDICATE NO ACCESS. FLUSKH XB TO AVOID ERRONEQUS ACV DUE TO PREFETCH WHILE PSL WAS CHANGED 889 ~ MICR PROB ) U 155D, 0180,8012,0A30,1047,0557,C 1556, 0¢80,1002,4030,8007,016C,0 U 155F, 0c81,8001,0030,(4A7,0173,8 16:30:35 : B 6 CLOKX Rev 13.00, ¢ lock . PROBEW .70C ** PROBE, LDPCTX, SVPCTX AR P - AN RN rate = 160nsr 'Page 890 : PROBEW'' N AR AN AR N RN RN AR AR AR AR AR R AN ARk ® mode.rb, len.rw, base.ab Input Q Mode - Length MOR - P P P N AR PROBEW PR IR Y SRR i VAP T T TR P T TR P N T LR R TT PT P Save PSL Resources TEMP1 TEMP3 MM, TEMP1 Subroutines PP..PROBEX, SUB o R U 155C, 0485,8592,4033,0047,0561,8 R N U 0333, 0¢84,3651,0780,(05D,0955,C 479« e U 0332, 0885,259€,4010,0047,0573,9 : oo 3;N0v-83 CHARLIE'S FLOWS 3.1 L SANNER RN RN AN RN NN AR AN AR Save ZExT(Length) -1. Save VA if TB Miss AR *tt*********t*t**fi**fii**ifii*ii*itifit*i AR § .REGION/IRDX.R1L.lRDX.R1H/IRDX.R2L,IRDX .R2H 8 PR.PROBEN RETEMP3) ZEXT (MCMDR]) , SIZEEWORDJol SAVE 2ERO EXTENDED LENGTH PUSH NEXT/PR.PROBEX, SUB 9 ? 1 4 -------- 0 2 60 =5 0 ¥ W ¢ 4 I 9 €9 0 A O T T O RCTEMP3 1 _MLTEMP3]=1, ey 3 SAVE ZEXT(LENGTH) = 1 TEJ,PROBE WRITE? L SIZE £ LBY RIL,PRLDSV.RTH/PRLDSV.R2L PRLDSV.R2H/PRLDSV.R3L ,PRLDSV.R3H DS L DSV. LREGION/PRL z1100 i1 1 0 0 s 5 € 62 e et O 2 B MM.TEMP1] MLVAZ, MM us H,NEXT/MR,PRB.WURT, TBM S PROBE NOT VALID (PTE NOT IN TB) : SAVE VA AND PROCERS A TB MISS TO ; LOAD THE PTE BACK IN THE TB. acsnnannunanunnu= ; O1-sacesiannse 1110)emccocacnn —(N. CMTO98.MCX PRLOSVIMIC L LR LR T L D] : fi —— AAHLAUICAIUAIUANA LA U AN LA AL LN LATLAS LA N ILATS*® AT UASUAT AT L ORI AN WA N G AT U AN AN SN AN OO OO ONONO OO OOONONONONONON ONOSONONON OO- - RO — WB_MCERRCOD),AND, ITO[?J PUSH, WX.EQ.0?,NEX /PR, TNV . CATCH RETURN+1 FROM MM,.PRB.WRT,TBM ; CHECK IF FAULY REFERENCING SPTE RETURN+2 FROM 1 1 10zmmmmmmm e mmeane mmmaman PROBE NG ACCESS OR * MM,PRB.WRT,T8M, RESTORE PSL £ XT/PR.PROBEX. ACY : SET CONDiTION CODES AND DO IRD1 PsL_MCTEMP1], S $111]mmmmmmm o mma oo oo eeee ¢ WRITE ACCESS OK QR RET i1 1 URN*S s MM,PRB,WRT.TBM, CONTINU VA_MCVAD+RCTEMP3] FROM .- : CMTO98.MCX PRLDSV.MIC 28-NOV=-83 MICRO2 1M(O1) PROBE, LDPCTX, SVPCTX $36571 ¢ :%22;% U 156C, 0485,8592,4033,0047,0561,8 136575 :%gg;g fi[MM TEMP1) M(CvA), PUSH,NEXT/MR,PRB. WRT.TBM U 156D, 0180,B(12,0430,1047,0557,¢ U 156E, 0080,1002,403D,8007,016C,D AND PROCESS A _TB MISS : SAVE VA THE PTE BACK IN THE T8. 136587 136588 i e e c -; CATCH RETURN+1 FROM MM,PRB.WRT.TBM (N0 mmmmmcccncncmcccc : CHECK IF FAULT REFERENCING SPTE ;111)==mmmmmmccc e m ee — ~; PROBE NO ACCESS OR RETURN+2 FROM ; MM.PRB.WRT.TBM, RESTORE PSL SET CONDITION CODES AND DO IRD1 s .ACV NEXT/PR.PROBEX ;ggggg | . LOAD 136582 136583 ; 100=mmsnmmmmeemmnnan—ann—— ===; PROBE NOT VALID (PTE NOT IN TB)TO WB_MLERRCOD],AND,ZLITO(2], }36586 u 156F, 0480,1002,403D,8007,017F,8 ; 136579 :gggg? i ' jemesssmsscamesecseeseseeeeewees ; L, 1738, 0080,0036,4780,005D,0956,C 479+ 336578 Page 891 i (LOKX Rev 13.00, Clock rate = 160ns 16:30:35 ¢ PROBEW SIZECBYTEJ PROBE WRITE? $36574 =1100 | 6 PUSH,WX.EQ,0? ,NEXT/PR. TNV ; PSL_MLTEMP1], PR Rtedabetnobeninindalattd smweseeewenes: WRITE ACCESS OK OR RETURN+3 FROM PSL_MLTEMP1], NEXT/PR. PROBEX. OK ; MM.PRB,.WRT.TBM, RESTORE PSL. ; e e i e mmes a e e mw e e ) 6 6 6 u 158¢, 0186,7EEC,7180,0047,0412,0 A UM A AT = OO NP IS W B AN A R T TR TE T P P W) R OO 6622 6624 =0 $36625 :36626 ;ggggg 136630 ;36631 :36633 =01 U 1599, 0480,2387,0000,06A7,0173,€ U 1598, 0480,7387,0000,06A7,0173,E :36634 :36635 ; 36036 M :36638 i 30639 : PR.PROBEX.SUB"' PROBE, LDPCTX, SVPCTX Entry points SUB PR.PROBEX. Input Q Probe mode Output PSL<CURM> MAX( PSL<PREV>, Probe mode) Resources TEMP2 TEMP? PL St Extracted PSL<PREV> Temporary save specified mode Used for loading PSL<CURM> Used for extracting mode bits Subroutines 0S.ADD TEMP1 Save PSL PROBEX,.SUB IS USED BY PROBER AND PROBEW TO PROCESS THE OPERANDS AND PREPARE TO PROBE. CHARLIE'S FLOWS 3.1.2 L e e e L L R L LA R R SET MM.NOINT, : SL_2] : USED TO EXTRACT MODE WHICH IS 2 BITS. eyttt MCTEMP1]_PSL, pL_[22.] : POSITION OF PREV MODE IN PSL. e m— memesmsessem————— : jQemmmmm e RCTEMP21_MCTEMP11,X2 MLTEMP7] 0 Q_D, pL_[0], 36643 | ettt ; : SAVE PSL, m e e : GET PSL<PREV>. e: PUSH,LOD INC BRA?,NEXT/0S.ADD : SAVE MODE OPERAND. : POSITION OF MODE OPERAND MODE BITS, ; FETCH BASE OPERAND. ;1mmmmmm et : WB_MLTEMP2]~(RLTEMP7).X2), SIZECBYTE],WB<31-30>? : COMPARE PSL<PREV MODE> WITH : SPECIFIED MODE. 301 mmmmmmmemome s ——e BSL<CURM> MLTEMP21.RR.8, i USE PSL<PREV MODE> NEXT/PR.PROBEX.SUB.10 ;1lomme ee : n et mm s e e PSL<CURM>_MCTEMP7].RR.8 : i USE MODE SPECIFIED IN OPERAND Egggz; PR.PROBEX . SUB. 10: u 173¢, 0C81,2002,408D,8447,0000,1 LIS PR.PROBEX. SUB: :36629 U 1580, 0080,2090,061,047,0959,9 400+ Page 892 CLOKX Rev 13,00, Clock rate = 160ns '*t*t**tt**fittt**t**ktk*t*t*t**tt*tttt**t***w***t*******t**it*t****w********t* 6619 LA A u 1730, 0484,1077,0030,8047,0158,¢ .T0C ' 6621 R U 173C, 0D86,1EF6,4030,8087,0173,D =2 OO OO ONONOC OOV ONONONONONON OO O O OO O O \TLNUA I O O Rt S Pl Gt P Y o Yo T Tt ta T oo te Yo tre e dlo Nl el e N S 6 AT U 1739, 0560,0F76,4030,1047,0173,¢ AN =3 O O 0O NN adhd OO OO OO ONONONDo i TR TR PR TR TR 2N NN N A N U wN N PR TR P TR T P N AN AN N A AN W TR T T I AT U LA NN AL 6612 6 : PR.PROBEX.SUB PROBE, LDPCTX, SVPCTX OO0~ O\ PRLDSV.MIC 28~NOV-83 16:30:35 MICROZ2 1M(01) AL N N : (MT098.MCX LWL v,] s L od o b o)0 : D VA_MCMDR],RETURN [+1] : MOVE BASE ADDRESS INTO VA | ! i | | GTVO“h’flNmfiJChOGTVOfln&%NA%JCMOGVVO“hb~ R P U 03A0, 0980,037,2030,04A7,015A,8 [L LA AT L PR T N L TRTR TR T PR, PRI PR o PO APPSO o~ lode oo do Yo No No To To 8[s oo Yo Yo Yo Xo Yo o Jo Jo JodoTo OONOONONONCRON O TN ULAN S N BDN 28=NOV-83 MICROZ 1M (01) PROBE, LOPCTX, S VPCTX TRTR TN PR PR P PR T CMTO98.M§§ PRLDSV.M A L (A N U (N N N AN G U NN N N LN N ; : .T0C "' AR E 16:30:35 : E 6 CLOKX Rev 13.00, Clock rate = 160ns PROBE, LDPCTX, SVPCTX R R RR AR LDPCTX Page LDPCTX : LDPCTX" RRR RN A KRN IRRRNRRRRAK AR A AR AN KRR AR AR Load Process Context KR KA AR TR AR ARk hkk ok ; Input PCBB Process Control Block pointed to by PCBB : Resources TEMPO Hold PCBB on MBUS H FLAGT Used to repeat Clear TB loop once H Q Used to Load RNUM for loading GPR'S H Temporary TEMP1 : STEPC subroutines ; : AR Clear TB loop count LS. MODE. CHE CK IE.SERV.IP.TS CHARLIE'S FLOWS 3.7 RREA RN R AR AR AR AARRARR AR AR R KRR A RN RAAR AR AR ARk Rk ARk kdek .REGION/IRD1.R1L,IRD1.RTH =000 LS.LDPCTXaOO ) : PREPARE TC INVALIDATE PROCESS TB VA_D_ZL1T0C0] ,PRLDSV.R3H ,PRLDSYV .R2H/PRLDSV.R3L .REGION/PRLDSV.R1L,PRLDSV.R1H/PRLDSV.R2L =00 ;00 ----------------------------- : : PREPARE TO LOAD GPR'S -1, P3L<IS CURM>?, ; CHECK FOR PRIVILEGED INSTRUCTION FAULT : PUSH,NEXT/LS.MODE. CHECK U 15A8, 0880,0£77,17'40,0207,0D60,C 479« STEPC 14. VA_MCTEMPOI+7LITOL16.], OO OO TR PE T TR TR T P AL AN U 1597, 0480,0036,4AF0,0047,04F7,0 R N U 1596, 0881,D0B9,103D,8040,0173,F O U 15AA, 0DB0,0C11,0B20,84A7,0959,6 416 T8_D+ZL178L4], PUSH,NEXT/MP, INVALIDATE.TB LAAMAT LA AT LA LA U LR N U U 15A9, 0581,8p81,0030,2507,04E5,4 PRPR T 10)mmmm e ——— ; INVALIDATE PROCESS SPACE TB ENTRIES 10==mmm ) =0 s e s SIZECLONG],ALLOW INT? ; : INITIALIZE ALU, MUX, ROT, AND LITRL THESE FIELDS ARE THE SAME IN THE LOOP -=; : ; LOAD ADDRESS OF RO IN P(B, ; (LSS 0' MUST BE 0, SEE CCBR CHART) (0mmmmm e ——mwmne: CATCH RETURN=1 FORM IE,SERV.IP,TS READ.PHY ,RNUM Q_Q+1, : FETCH GPR FROM P(B. NEXT/LS.LDPCTR.BPRS.1 : ------------------------------ : SERVICE PENDING INTERRUPT OR INTPEND OR TIMER?, PUSH,NEXT/1E,SERV.1P.TS2 : ; TIMER SERVICE 893 173F, 0485,2592,433C,(447,0159.¢C 1742, 0c85,2592,403A,0440,0174,3 1743, 0c81,2002,0A3D,4047,015A,6 15A¢, 0C80,0036,4030,0047,00FF,8 1547, 0085,2592,4030,4707,0174,4 1744, 0986,1093,8030,3847,0174,5 1745, 0€84,1592,403A,4440,0174,6 e 1741, 0581,AC10,0030,0C87,0174,2 e oS e e BeeMa e otsSo eatoheDs 8o BeBeBeByhotoBoSe 1740, 0880,0039,FFFF,FC40,0174,1 = OO0 oMW 1590, 0180,0€11,0032,84A7,0174,0 U LA 159C, 0881,D089,103D,8040,0173,F e WatoBou,BebetaSatstavrtonguas . 6 93 =0 94 LS.LDPCTX,GPRS.0: NN — OO0 0o N VN SMNND = OO 00~ NN SN . O NIMANND = OO0 NN LY PRLDSV.MJC F 16:30:35LDPC$§0KX Rev 13.00, Clock rate = 160ns MmN 28=NOV=-83 PROBE, LDPCTX, SVPCTX MICROZ L L LA N N AN N NN N CMTO98.MCX ---------- - @ = e 06 20 o O READ.PHY ,RNUM Q_0+1, ¢ FETCH GPR FROM P(B. NEXT/LS.LDPCTR.GPRS 1 : * LOAD ADDRESS OF POBR IN PCB. A MCTEMPOI+ZLITOCBO.1, NEXT/LS.LDPCTX.POBR : LS.LDPCTX.GPRS.1: RLGPR,.R]_MLMDRI,VA_VA+4, : LOAD GPRCRNUM). NEXT/LS.LDPCTX.GPRS.0 ; pB2 STEPT?, ‘ LS.LDPCTX.POBR: -------------------- LD LI I LI DL READ.PHY VA _VA+4, ; FETCH POBR FROM P(CB. : LOAD MASK FOR CHECKING MBZ BITS. LONLIT_LOF8T00000) PC_MLPCI-2LITOL1] ""% CORRECT PC FOR NO OPERANDS. RCPOBR]_MLMDR], " LOAD POBR, WB_MCMDRI.AND.RLLONLITI, * CHECK MBZ BITS. READ.PHY,VA_VA+4 ; FETCH POLR AND ASTLVL FROM PCB. WX.EQ.0? =0 H o -:O ------------------ - NEXT/IE.OPER,FAULT - 2 - * RESERVED OPERAND FAULT. D D € € s e ¢ MCTEMP1]_MB.ANDNOT.ZLIT24L7) T v o tap e B O T Oy D O O READ,PHY VA VA+4, REPOLRI_MLTEMP1] B D O WD €D ? FETCH P1BR FROM PCB. { LOAD POLR. Page 894 X3 * CHT098.MCX PRLDSV. MICRO2 ML) 28-NOV-B3 PROBE, LDPCTX, SVPCTX ;36737 U 1746, 0885,2592,403A,8040,0174,7 U 1747, OB80,0401,FFFF,F847,0174,8 U 1748, 0980,0C11,0030,24A7,0174,9 jmvemm—— m—————— e ;367%8 * FETCH PILR FROM PCB. REPTBRI_MCMDR] :36741 Page 895 niatini it READ, PHY, ;gg;ag . 6 6 16:30:35 CLOKK Rev 13.00, Clock rate = 160ns Y LOAD P1BR. e ———— ; ;gg;zg LONLIT_L7FC000003 136744 * LDAD MASK FOR MBZ CHECK. e L LI C ; :§2;22 UA_MCTEMPOI+ZLITOC4] 136747 §mmmmmm— : LOAD ADDRESS OF ESP. e mem e m————n; U 1749, 0C81,2002,0A3D,4047,015A,¢C 136748 136749 WB_MCMDRJ . AND ,RCLONLITY, WXTEQ.0? * CHECK PILR MBZ BITS. ; U 15AC, 0€80,0036,4030,0047,00FF,8 E%g;gg ) NEXT/1E.OPER,FAULT * RESERVED OPERAND FAULT, U 15AD, 0D81,2¢92,1034,0287,0174,A :36754 T e L; ;gg;gg PME_Q_MIMDR].AND.ZL1T24[80] 136757 U 174A, 0485,2008,803A,C440,0174,8 Tv L LR R R TSR ; 136758 READ.PHY ,VA _VA+4, ;gg;gg REPT1LRI_MCMDRI.ANDNOT.Q 136761 U 174B, 0C85,2592,4038,4440,0174,C READ.PHY VA _VA+4, :gg;gz READ,PHY ,SET_MM.NOINT, 136769 =0 i fmmmmmmmmmmem————n——— ;gg;gg RESSPI_MEMDR] +36770 pusH, 136772 ;gg;;z PSL<ISTCURM>?, NEXT/LS.LDPCTX.PSL 15CF, 0080,0002,403D,84A7,0174,D 174D, 0€80,0036,4030,0040,0174,E 174E, 0886,158E.4037,8047,0174,F e ———————— ; lmemmmmm—————— e ;gg;;? 011 WRITE MIMDR],SIZECLONGI, NEXT/LS.LDPCTX.PUSH ;36773 LS.LDPCTX,PSL N z P FETCH USP FROM PCB. * LOAD SSP. RCUSPI_MLMDRI, 36776 36780 15¢8, 0180,0C11,0032,64A7,0175,3 * LOAD ESP. mmeommmmm———————— e 136766 136775 U 158D, 0481,2592,4020,0508,015¢,8 i LOAD PILR. * FETCH SSP FROM PCB. RCESPI_MEMDR] 136771 U 158C, 0085,2592,4788,C207,005C,8 479+ ; FETCH ESP FROM PCB. jomemm—— ——————— ————m—————— -~ 136762 136765 U 174C, 0465,2592,4038,8040,0158,C * WRITE HARDWARE PME. { PUSH FOR JUMP TO LS.LDPCTX.SUBY : * CHECK IF ON INTERRUPT STACK. : ee=scae; CATCH RETURN FROM LS.LDPCTX.SUBI : PUSH THE NEW PSL ON THE STACK. ; ;101 J=eccasacemcasmnnnnuana ~-==; CURRENTLY ON KERNAL STACK. 136781 ;gg; ; VA _MCTEMPO1+2L1T0(76.3, NERT/LS.LDPCTX. SUB1 136784 VA_MCTEMPO) : LOAD ADDRESS OF KSP. -------------- S— —Y FETCH KSP FROM P(B, READ . PHY ;gg;fi; ::%g;ag - r§ $36790 136791 * LOAD ADDRESS OF NEW PSL. : ;111] =wemmmsmaceen—aun—————— ~===; CURRENTLY ON INTERRUPT STACK. jmwmamemmmeen=s memmemanaen ———; MCTEMP11_RCSP) : SAVE SP ON ISP. ' (MT098.MCX PRLDSV V.MIC . MICROZ2 1M(01) 28-NOV=83 PROBE, LDP(TX, SVPCTX 174F, 0084,1592,4039,0047,0175,0 1750, 0886,1036,4030,0087,0175.1 1751, 0180,1(93,8030,2007,0175,2 1752, 0485,2592,4037,8047,015¢C,8 15¢8, 0180,0C11,0032,44A7,0575,3 36792 1753, 0084,073C,00A7,84A0,0000,1 H 6 CLOKX Rev 13.00, Clock rate = 160ns t LDPCTX ACIsP1_MCTEMPT] 3§2795 ;36;39 -------------------------------- : ACTEMP1D_PSL : 136798 : jeeemecesmsaseen e ————————— ;ggggg PSL_MCTEMP11.ANDNOT.ZLIT2404] 136801 136802 fe— U ammmmma—— " LOAD NEW STACK POINTER. RLSP]_MCMDR], NEXT/LS.LDPCTX.PSL : ;32302 E%sags ;ggggg LS. LDPCTX, PUSH: VA_MLTEMPOJ+ZLITOL72.], 36808 ;ggggg 136812 ‘%28}2 Page 896 jeeeeseseccssssaes et - :ggggg 136811 15¢9, 0081,2592,4120,05D8,003F,9 16:30:35 PUSH,NEXT/LS.LDPCTX. SUB : CLEAR PSL<IS>. _ * LOAD ADDRESS OF NEW PC. : jlesmesmecmeecceemeseenes ~reemne; wnxre MCMDR],S1ZECLONG], IRD Eggg]g LS.LDPCTX. SUB1: READ.PHY,VA RLSP]_RB-CONK(4), 136817 36818 RETURN [+13" ' PUSH THE NEW PC ON THE STACK. : : FETCH NEW PSL AND PREPARE TO PUSH. ; : s : CMT098.MCX PRLDSV.MIC MICRO2 1M(Q1) 16:30:35 28-NOV-83 : SVPCTX' ;36819 .T0C " PROBE, LOPCTX, SVPCTX AR AR 236821 IRERAARAR AR R AR AR RN R AR AR R AR : gggi : SVPCTX Save Process (ontext ; 2822 : Input PcBB $36826 Resources ;36827 ; Page 897 CLOKX Rev 13.00, Clock rate = 160ns : SVPCTX PROBE, LDPCTX, SVPCTX ' o 1 6 :36828 236829 ;gggg? H RARRER AR RN RN AN Physical address of Process Control Block | TEMPO Hold PCBB on MBUS Q RNUM STEPC Used to Load RNUM for saving GPR'S Used to address GPR'S Loop count for saving GPR'S TEMP1 Temp for PSL and switching stacks. LS.MODE . CHECK Subroutines 3%28%% : CHARLIE'S FLOWS 3.7 : 136834 ;%gg g :ttt*tt'4tfifittfitit***fittt*tt*tttt*ti**ktt****k***tt*A****tl‘***t****tk**fl**ti*tt 36837 .REGION/IRD1.RIL,IRD1,RIH :368%8 =000 ;36839 LS,.SVRCTX: U 03A8, 0081,AC10,0030,0¢87,015¢C,C $36840 :gggz% . :000=m===omsm oo mmmmmemee e ; PC_MLPCI=ZLITOCY] s CORRECYT PC FOR NO OPERANDS. 136845 :gggzg .REGION/PRLDSY.R1L,PRLDSV.RTH/PRLDSV.R2L ,PRLDSV.R2H/PRLDSV.R3L ,PRLDSV.R3H 136846 =0 U 15€C, 0181,DC37,17B0,0207,0D60,C 479+ RNUM_Q_ZL1TOCOD, s PREPARE TO SAVE GPRS. :ggggg PUSH,NEXT/LS.MODE.CHECK : : 36848 336251 v 15C¢D, 00B0,0C11,G030,84A7,015D,C v 15D¢, 0480,05BE,403C,C5C8,0175,4 U 150D, 0480,058E,4037,84A7,0175,5 U 1754, 0881,0089,733D,8447,015D,C J0=mmmccencannuan anecmaun —m—— 136847 .36 5% :ggg§4 =0 PSL<TSTCURM>?, : CHECK FOR PRIVILEGED INSTRUCTION FAULT ;1mmmmmmmaamm e een——————— STEPC 14, VA_M[TEMP63+ZLITO[16.J Zggggg LS.SVPCTX,GPRS.2¢ WRITE.PHY RLGPR.RJ, 136857 ; LOAD # OF GPR'S TO SAVE : LOAD PCB ADDRESS OF GPRO SAVE GPR(RNUM), ,%gggg NEXT/LS.SVPCTX.GPRS 4 : :gggg% VA_R[SPJ] ,NEXT/LS.SVPCTX.PC ; PREPARE TO POP PC OFF OF THE STACK 136866 pB2 STEPC?, fggggz LS.SVPCTX.GPRS .41 :36865 ANUM_Q Q+1,VA_VA+4, : 36867 NEXT/LS.SVPCTX.GPRS,.2 : PREPARE TO SAVE NEXT GPR. H ; LOOP SAVING ALL GPRS. | 16:30:35 1M(01) 28~NOV~-83 MICROZ PROBE, LDPCTX, SVPCTX + 6 CLOKX Rev 13.00, Clock rate = 160ns J SVPCT > =32 st —y PRLDS << 00 CMT09 Page 15€F, 0880,05B8E,4038,05(8,0174,0 175C, 0089,1012,0A70,F547,015E,8 U 15€8, 0986,1012,4030,0847,015€,9 15€9, 0486,058E,4037,85(8,00A3,7 0A37, 0884,0592,4038,0047,0175,D -Jfl—‘—'—‘OOOOOOOOOOOOf, NN ~2 OO0 O LN D UNND =2 0 0 15€8, 0086,1036,4030,0087,0175,¢ goO*O*O*O*O'OO‘O‘O‘OO‘O*O‘O*O‘O‘O‘O‘O*O-O\O‘O‘ U 1758, 0084,073D,07A7,8207,095E,8 479% SN N OO0 0 0 OO 00 CHCO 00 0B 000 0QO000 N N NN NN N SAN = O 0 O3 NN N EMAINS = OO O~ L PAV N2 — O VOO N 175A, 0880,0002,403D,84A7,0175,8 aemew READ,SI1ZELLONG], VA_METEMPOI+ZLITOL72.3 : POP ©C QFF OF THE STACK. : LOAD rCB ADDRESS OF SAVED PC. TR T e * SAVE PC. WRITE.PHY MCMDRJ {A_RCSPI_RB+CONX (4) o FINISH POPPING PC. READ,SIZELLONG], VA_METEMPOI+ZL1T0076.3 : POP PSL OFF OF THE STACK, :; LOAD PCB ADDRESS OF SAVED PSL. (RITE.PHY MTMDRI ; SAVE PSL. {A_MCTEMPOD T : LOAD PCB ADDRESS OF KSP. RLSPI_RBYCONX(4), T FINISH POPPING PSL. H CHECK IF ON INTERRUPT STACK. PSL<IS.CURM>? =1011 ;1011 =mmmmmmmmr e e ———— : SWITCH FROM KERNAL TO INTERRUPT STACK MCTEMP1]_PSL, ; SAVE PSL IN MTEMP, NEXT/LS.SVPCTX. IPL : P L WRITE.PHY RLKSPJ, NEXT/LS.SVPCTX.SPS —— [ : ALREADY ON INTERRUPT STACK. : SAVE KSP : LS.SVPCT X, IPL: WB_MCTEMP1.AND. ZLIT16L1F1, WXTNE. 0? OO 1759, 0881,2592,4030,05(8,0175,A 0 O O 000D 1758, 0580,0c11,0022,6480,0175,9 QRO 1757, 0884,073p,0027,84A7,0175,8 N LA 1756, 0861,2592,4030,05C8,0175,7 o LA LA AN L 1755, 0D80,0C11,0022,44B0,0175,6 e AATOA A LA N ! T T T T e P PR TR T T T T L L R L DL Il i ks A U NN A UL A LA LA N NN AN LN AN N NN A LML d U U TR AT LA OO0 OO G0 00 0000 Co 00 00 00 10 0000 G0 03 o 000000 00 OB 00 0o CO OB 0o 00 CO OO0 D O VD000 00 - ;36868 LS.SVPCTX,PC: : PSL<IPL> <= MAX(1,PSL<IPL>) ; ;Qmmvmmmmm————- cemm——— cwmmmemnn; PSLLIPL>=0, P SET NEW IPL TO 1. MCTEMP1]_MB.OR.ZLIT16L1] Jmmmmmeenn e msn . ————————— WRITE.PHY RCSP],MCTEMPOI_WB 0A37: sxexerert2FORCE ADDRESS¥*aasanin; RIKSPI_MLYEMPO] PSL<IPL> ,NE, O, : SAVE SP IN PCB AND IN KSP. i SAVE §P IN KSP 898 'YX CMTQ98.MCX PRLDSV.MIC MICRO2 M(01) 28-NOV=83 PROBE, LDPCTX, SVPCTX 175D, 0580,1€92,4030,2007,0175,E 175E, 0086,158E,4039,0047,0175,F 175F, 0084,1592,4037,8047,0176,0 1760, 0480,0036,4030,0447,0176,1 1761, 0480,058E,4038,45C8,0176,2 1762, 0C80,0036,4030,0447,0176,3 1763, 0480,058E,4038,85(8,0176,4 1764, 0080,0036,4030,0447,0176,5 $36%15 30218 :36918 : 36319 .2V :36921 i 36920 K 6 CLOKX Rev 13.00, Clock rate = 160ns : SVPCTX eyt ; PSL_MLYEMP1),0R. 2L1T24L4] Eggggg :36928 i 36929 $36931 36932 :36934 i SET PSL<IS> = 1. ;mmen voemmanan rmmseemmm————— ; MCYEMP1] _RCISP) jummmeen= e : SWITCH STACKS. eae LTI ELLIE L~—=; : LOAD NEW STACK POINTER FROM ISP. RLSPI_MLTEMP1] Eggggg LS. SVPCTX.SPS: : LOAD PCB ADDRESS OF SAVED ESP. VA_VA+4 ity e mesesem—————— WRITE.PHY RLESP) jmemm—an= N VA_VA+4 ; SAVE ESP. Re : : LOAD PCB ADDRESS OF SAVED SSP. e LS L L e ; 36933 WRITE.PHY RLSSP) 136937 i36938 jmmmmmsmmmemm——————————— ——— i LDAD PCB ADDRESS (F SAVED USP. VA_VA+4 136940 1765, 0C80,05BE,4138,C5C8,003F,9 16:30:35 136941 136942 : SAVE SSP. jmmmmmm— e L LR ememne— WRITE.PHY RLUSPI, IRD1 : SAVE USP, ; Page 899 H : (MTO98.MCX PRLDSV.MIC MICROZ 1M(01) 28-NOV-83 PROBE, LDPCTX, SVPCTX ;36943 ,70C ' ; 36944 16:30:35 L 6 Page 900 {LOKX Rev 13.00, Clock rate = 160ns LS.MODE, CHECK : : PROBE, LDPCTX, SVPCTX 336945 RN R R AR RNk ,33329 : Entry Points LS.MODE.CHECK 3%2323 ; Input PCBB Eggggg ; Output TEMPO LS.MODE.CHECK"' Rk Ak kR AN KRk Rk Xk Rk ke Saved in MTEMPO PCBB (needed in MTEMP) 36952 ; This is used to check for priviledged instruction faults. :36954 It will RETURN + 1 if the mode is zero and will take a priviledged 136957 CHARLIE'S FLOWS 3.7 :36953 ; ;ggggg : This routine should be called while branching on PSL<IS.CURM>. instruction fault otherwise, ;36923 JRARKIRKAAKRIRRIRRR RN I AR IR AR AR AR K KRR KA IK A IRk ook koo ok ok koo e s i ok 3698 236960 : 36961 =1100 ;36962 LS.MODE,CHECK: 136963 ;1100=mm e mmme e acnceua eI LILOH sAVOID MACHINE HANG CLEARING TB COMPLETE CPU B'JS CYCLES. ;36964 U 160C, 0486,058E,4089,4057,0000,1 U 160D, 0418,0036,4030,0047,0038,0 U 160E, 0418,0036,4030,0047,0038,0 U 160F, 0418,0036,4030,0047,0038,0 ; MOVE PCBB TO AN MTEMP. : 36965 MLTEMPO]_RLP(CBB], 136968 1110 =m=mmmm——————eemema—m—————— ; :ggg;? NEXT/IE.OPCOD.DEC :36972 11110=mm=mm ;%gg;g NEXT/IE.OPCOD.DEC 136976 1N = 136978 NEXT/IE.OPCOD.DEC ;ggggg : 36969 :36073 136977 RETURN [#1] ; CLEAR FLAG3, CLEAR FLAG3, : PRIVILEDGED INSTRUCTION FAULT. e mmmmem e ; ———— CLEAR FLAG3, H : ; PRIVILEDGED INSTRUCTION FAULT. e —————— ————; ; * PRIVILEDGED INSTRUCTION FAULT. X : PRLDSV.MIC ;36980 136981 136982 136983 %gggé 136986 .ggggg 1M(01) MICRO2 CMT098,MCX PROBE, LDPCTX, SVPCTX :36979 ,10C "' .NOBIN .I1CODE 16:30:35 28=NOV-83 OPS REG 006 FPD CMOPILIE.OPCOD.DEC IRD1CNOPILLS.LDPCTX 0CODE 006: CNTOCNOPJLIE.BAD.IRD CNTTENOPICIE.BAD. IRD M6 Page 901 CLOKX Rev 13.00, Clock rate = 160ns : Ird Rom Definition : Ird Rom Definition' PROBE, LDPCTX, SVPCTX ] 1 MEM JLIE.BAD.IRD JLIE.BAD.IRD OPS ) ] FPA REG FPA MEM [NOPJCIE.OPCOD.DEC [NOPILLS.LDPCTX ], ] [NOPJLIE.BAD.IRD JCIE.BAD, IRD CNOPJLIE.QPCOD.DEC CLODJCOS.RED 1. ) (C(LODJLOS.RED (NOPILPR,.PROBER JCOS.RED JEPR.PROBER [NOPJCIE.OPCOD.DEC [LODICOS.RED 1, ] CLODJLOS.RED [NOPILPR.PROBEW JCOS.RED CNOPJLIE.OPCOD.DEC [NOPJLLS.SVPCTX 1, ] [NOPJLIE.BAD.IRD [NOPI[IE.BAD.IRD JCIE.BAD. IRD JCIE.BAD.IRD [NOPILIE.BAD.IRD JCIE.BAD. IRD sLDPCTX 1, ] ;36989 136990 36991 ;36992 . 1CODE 136995 .OCUDE 136993 : 36994 36996 %gggg 00C: FPD CNOPJLIE.QPCOD.DEC IRP1CLODILOS.RED ] ] 00C: CNTOLLODJLOS.RED CNT1INOPILPR.PROBER JL0S.RED J[PR.PROBER 1l ] ;PROBER 1, 1 136999 :37000 ;37001 ;37002 : 37003 ;37004 ;37005 137006 :%;88; .I1CODE 00D: FPD [NOPJLCIE.OPCOD.DEC IRDT1CLODILOS.RED ] ] 00D: CNTOLLODJLOS.RED JLOS.RED .OCODE (NT1INOPILPR.PROBEW JLPR.PROBEW J 1 1[PR,PROBEW ;PROBEW 1, ] : 37009 ;37010 ;370N ;37012 237013 ;g;g}g ;37016 ;37017 L 1CODE 007: FPD [NOPJLIE.QOPCOD.DEC 0CODE IRDTINOPI[LS.SVPCTX 007: CNTOCNQPILIE,BAD.IRD CNTT1INOPILIE.BAD.IRD ] ] JCIE.BAD.IRD JUIE.BAD. IRD ] J JSVRCTX 1, ] : H MICROZ £MT098 ,MC X PRLDSV .MI C ;37018 ;37019 137020 ;37021 137022 137023 ;37024 ;37025 137026 : 37027 ;37028 137029 1M(01) PRORE, LDPCTX, 16:30:35 28-~NOV-83 N 6 CLOKX Rev 13.00, Clock rate : Dsize Rom Definition SVP(TX : Dsize Rom Definition" .1o¢ PROBE, LDPCTX, 006: SIZECL o01C 01C 0J L JLDPCTX 00C: SI1ZE [BYTE] CWORD] [BYTEJ L 0] L 01t ;PROBER 000: SIZE [BYTE] [wORD] [BYTEJ [ 01 ( 0] ¢ ; PROBEW 007: S1IZEC 0L 01t sSVPCTX .DCODE .UCODE 03C 0L SVPCTX 031C 03C 0L[ 137030 .BIN t 160ns Page 902% ,” CMTO98.MCX e 28=NOV=83 JANDE . MIC |ANDE (MIC . MICRO2 1M(01) - 16:30:35 g7 S , o CLOKX Rev 13.00, Ctock rate = 160ns ;37031 .70C !'IANDE.MIC' :37 gi .TOC "REVISION 45.,0" Jett Peng, Gerard Koeckhoven, (HARLIE MCDOWELL :%;034 ] .NOBIN ;37037 .T0C ' Revision History'" 137039 ; REV EXPLAINATION ;45 Modify machine check(utrap 28:) routine for TB parity error recovery, i b4 Read modify ACVs go thru read ACV micro trap, and must be P S T TR N PR TR TR PR TR A 2 37035 o - T CANCEL XFC fix of 39 Fix interval timer Broblem. Fix unaligned read across a page boundary to not clobber VA if a fault it taken with FPDs1 PE P Page 903 Disable interrupts during Logging of machine check. ; Reassign FEE with 3Ef . an the second half of the read, More on unaligned read bug, Was causing KSNV because stack flag was left set if tb miss routine tried to service an interrupt. 41 40 39 38 Fix machine check code to sqt MM.NOINT before pushing params on stack. Fix when FPD set & access violation § no TB miss f.e. the PTE is In the TB but access is not allowed the MDR will not be clobbered. Use Location 3EE instead of FEE to avoid ROM changes Fix XFC instruction to Back-up Fix "REI'* instruction to check the P( bg one and clear all flags betore for odd 5/19/80 Cleanup and improve the comments. going to WCS, P({ when entering compatipility mode 5729780 gg?gagacial pack routine entry for CVITP destination length O, 37 R R P P P e IR TE ~ detected, so just taking a read tbmiss is no good. : : 42 . ,; e Make changes for CMODE reserved opcodes (see CMODE revision 20). Ensure that a TB-miss and AC{ Violation don't cause problems Assign permanent addresses to free tocations (where possible) Fix machine check to disable cache on cache parity errors. fix FD opcode decode, Remove Q 0 from FX.IE.FD.RET. fix WRT BUS ERR double error halt. A AR LU D I =~ — O O~ N B AifY =00 00O AN N N ONOO O O~ OO O Or NNUmAUIY LI ;43 : {hange halt code to 5. Clear FPA traps to avoid erroneous trap, Set stack flag on halts to tell console to look at Load PC with B WY AL LN = O O CO NG ~ NN o e e ) NN AT U JUAAHA A WAL LA N NS N SN N W NN N B U UA LATUAN LA LA U A LN LA AN LA A U e Bt Bt Bt i Bk i Joa oo Jon: Jac o Juasd ~ Lot OOOOOOOOODODOOD QOOOOOOOOOOOOD < WALA : - - . Fix disabling Fix consale front panel. SCBB+offset on halt dus to vector<1:i0>=3, of cachs on cache machine checks. Tnterrupts to properly clear transmitter interrupts. ! ! Fix handling of FPA detected faults. ! Fix KSNV to always raise the IPL to 1F. Initial release, i Load VA and set MM.NOJNT for interlocked queues with FPD set. 36 ; 237080 BIN i ; s : CMT098 . MCX MICROZ2 Interrupts and Exceptions ) T1ANDE .M]C 28=~NOV~83 1M(01) :§;88; LT0C ' 16:30:35 ?"-w_;»_-;“‘-d._.ufl,fl,_,d,_”_”m_ - . CLOKX Rev 13.00, Clock rate = 160ns : INTERRUPT WIDE BRANCH Interrupts and Exceptions Page : INTERRUPT WIDE BRANCH'' ;37033 ;ifit*ttt*ttfittttQtttitttwttttttttt*twtitiwQifitw*&wfiwt&wtt*t*t**ii*ttttfiittt*tt 84 2370 : :37885 OF THE INTERRUPT ROUTINES. THE FIRST INSTRUCTION CONTROL THIS 1S A TABLE OFTAKEN IS TRANSFERRED TO HERE AND THEN : 37086 ; A WIDE BRANCH IS Eg;ggg : (SEE INDIVIDUAL ROUTINES FOR INPUT AND MODIFY LISTS.) :%;835 : TO THE APPROPRIATE ROUTINE, ;37091 2*tntttttttttttttttt#tt*tfitt*fitk**ttt*t**fit******tt**ktt*t*t**kkttttwtwtt***tt :37092 :37093 ,SEQUENTIAL 137094 38: +37095 IE.INT,WIDE.BRANCH: 237096 I1E.SOFT,INT: ;111000 mmwmmmmme e cacanna- :37097 Jv 0038, 00BO,EC11,2034,0047,04F4,0 237098 :137099 : 37100 b _M[SCBBI+ZLITOL80) P SH.NEXT/IE.SOFT.IfiL 137101 ; LOAD BASE ADDRESS OF SOFT.INT VECTORS. : WILL RETURN+10(hex) WHICH WRAPS ; TO LOCATION 08 237102 1E.CONSOLE.INT: +37103 . U 0039, 0186,8D037,0030,A047,00F9,C 137104 :E;}gg ;111007 =~enmmeccmucancanaaaann —p NEXT/1E,TONSOLE, INT2 37107 1€.UNIBUS. INT: _ U 003A, 0D80,0(B7,0030,1687,00F7,7 137108 : 37109 ;g;}}? ; LOAD THE NEW IPL INTO THE NEW PSL. MCTEMPB]_ZLIT16[14]) ;111010 mmmnn MEMSCAR_ZLIT24[2] e ; JUMP TU CONSOLE INTERRUPT ROUTINE. e nnnen - -; NEXT/IETUNIBUS. INF2 : LOAD ADDRESS OF UNIBUS INTERRUPT REG. ; JUMP TO UNIBUS INTERRUPT ROUTINE, $37112 1E.INT.TIMER: JX7113 u 0038, 0050,6C11,0036,04A7,00F6,E J37114 :;;}}5 SET FLAGZ,NEXT/IE.INT,TIMER2 ; LOAD THE MACRO VECTOR ADDRESS. ; NO MORE PARAMETERS TO PUSH. sn 33711? 1E.connecrso.n L L LT : 1111100 ~onvwmna= L 37118 ¢ 003C, 0550,6C11,0032,A4A7,00F4,A 11101 = = o : VA_MCSCBBI+ZLITOLOCO], ;37119 ;37120 137121 VA _MCSCBBI+ZLITOL54], SET FLAG?, NEXT/IE.CORRECTED ,MEMZ ; LOAD MACRO VECTOR ADDRESS. ; NO MORE PARAMETERS TO PUSH. H 904 CMT098.MCX ; ~ LANDE .M1C : MICRO2 1M(01) 28-NOV-83 Interrupts and Exceptions 16:30: 35 D 7 CLOKX Rev 13.00, Clock rate = 160ns : INTERRUPT WIDE BRANCH Page 137122 1E,CACHE.PAR]ITY: ) U 003D, 0C80,00%6,4030,0047,0000,1 137123 ;37124 ;g;}%g $111101==mmee e ummuwanwemwwe; SET ERROR CODE TO PUSH ON THE STACK. ; CHECK IF IN CONSOLE MODE. MCERRCOD]_ZLITOL3], ; NOW ARE EXCEPTIONS*%#xxtwwx NEXT/MS.HALT.MICRO 137127 1E.WRT.BUS,ERR: cn e 1111110 emvmm e VA _MLSCBBI+ZLITOL60], :37129 SET FLAGZ, :37130 ;37128 ) U 003E, 0550,8C11,0033,04A7,00F0,¢ ;g;}%; NEXT/1E.WRT.BUS,ERR2 e e: ; LOAD MACRO VECTOR ADDRESS. ; wxwFLAG CLEARED IN NEXT CYCLE=** : JUMP TO WRITE BUS ERROR ROUTINE. 137133 1E.POMER.FAIL: 137134 U 003F, 0950,£C11,0030,64A7,00F4,7 :37135 :37136 ;%;}gg R R et e VA_M[SCBBI+ZLITOLOCT, SET FLAGZ, ; LOAD MACRO VECTOR ADDRESS. ; NO MORE PARAMETERS TD PUSH. ; **HARD ADDR** : CATCH RETURN FROM IE.SOFT.IPL NEXT/1E.POWER.FAIL2 ; JUMP TO POWER FAIL ROUTINE. 127139 ,RANDOM 137140 :3512} 8: U 0003, 0€86,8287,0011,4047,00F3,8 137143 137144 M[TEMPBJ RCTEMP5].RR. 16, NEXT/IE.SOFT,INT3 * LOAD IPL INTO PROPER BITS OF NEW PSL. ; CONTINUE WITH SOFTWARE INTERRUPT FLOW. 905! H H CMTO98.MCX TANDE .MIC MICRO2 1M(01) 16:30:3° : 30 28=NOV-83 \ E 7 Page 906 CLOKX ( Rev 13.00, Clock rate = 160ns : Initiate Exception or Interrupt Interrupts and Exceptions ¢+ Initiate Exception or Interrupt' Interrupts and Exceptions ;g;}zg .TOC ' ;37147 ;****t**tt****t**tfit*tttt**t*t*t****t***t*******t***tt***wt*wt*********i**t*** : 37148 ; + 37149 ; ;37150 : 37151 ; ;37152 ;37153 ; :37154 ; ;37155 , ;37156 ; Entry points IE.ABORT 1E.TRAP JELFAULT 1E . INTERRUPT Resources s$P,1SP,KSP,ESP,SSP,USP VA ,MDR PSL PC,PCBACK Save old PSL TEMP4 :37157 . 137158 ; TEMPS Macro interrupt vector MTEMPY Temp to switch stacks ;37159 ; MTEMPS ;37161 ; ;37162 ; MTEMP10 FLAGO 137160 : 37163 ; 37164 ; New PSL Temp to switch stacks 0 = EXCEPTION 1 = INTERRUPT 0 = INTERRUPT MODE 1 = KERNAL MODE FLAGY : 37165 ; 137166 ; 137167 ; ;37168 ; FLAG2 0 = MORE PARAMS TO PUSH RETURN TO CALLER 1 = NO MORE PARAMETERS, DO IRD1 0 = PUSH PCBACK -~ 2 FLAG3 ;g;}gg : 1 = PUSH PC 137171 ; 37172 ; 137173 ; THIS IS THE MAIN SUBROUTINE USED TO INITIATE ALL INTERRUPTS AND EXCEPTIONS (EXCEPT CHMX). THE EXECUTION STACK IS SWITCHED TO BE EITHER KERNAL OR INTERRUPT, THE OLD PSL AND PC ARE PUSHED ON 137175 RN 137174 ; NN R AR L THE NEW STACK AND A NEW PSL AND PC ARE LOADED. AR AR R AR RR AR R AR AR AR AR AR AR AR R RN R RN ARk K . 3 . (MT098.MCX .M IC 1ANDE MICRO2 1M(01) 28-NOV~83 Interrupts and Exceptions 16:30:35 F 7 Page 907 CLOKX Rev 13.00, Clock rate = 160ns : [nitiate Exception or Interrupt ;37176 ,REGION/IANDE.R1L,IANDE.RIH/JANDE ,R2L, 1ANDE .R2H/1ANDE .R3L, IANDE .R3H .3717? QECC: *********FORCE ADDRESS********* :37178 [E. ABORT' .g;}gg 1E.TRAP: OECC, 0CB86.8036,4680,0087,00EE,8 ; SET IPL IN NEW PST TO CURRENT IPL. 37181 M[TEMPBJ PSL, 237184 OECD: ;ax%awdxx*FORCE ADDRESS*uakskxuw,; ;37187 : 37188 MLCTEMP8]_PSL, CLEAR TP, :;;}g% STACK FLEG?, NEXT/IE EXCEPO1 ;s CHECK FOR KSNV. :g;}gg XE.FAULT:1 0ECD, 0496,8036,46B0,0087,00EE,8 : 37189 137190 :37191 =0 ; SET IPL IN NEW PST TO CURRENT IPL. ; ON FAULTS CLEAR PSL<TP>, STACK FLAG? : CHECK FOR KSNVY, 30192 IE.Excepoa OEE8, 0D06,8E92,0030,2047,00€D,6 37194 M[TEMP8] MB.AND. 0LIT24[4J ; CLEAR PSL<CM,TP, PD CUR> IN NEW PSL. 137198 NEXT/1E.EXCEPO2 : :37195 137197 :371 98 OEE9, 0C86,95BE,4037,8047,00F9,8 ;37199 ;g;gg? CLEAR FLAGO, -------------- - M[TEMP9J RLSP1, : CLEAR FLAG TO INDICATE EXCEPTION, - : BEGIN TO SWITCH STACKS FOR KSNV, NEXT/IE.RSNV ; INVALID KERNAL OR INTERRUPT STACK. 137202 1E.EXCEPO2: 0ED6, OD6E,8D12,4036,0047,00ED,A 0EDA, 0080,0036,4030,0067,00EE,A OEEA, 0C80,0036,4030,00€0,00EE,C 137203 1 137204 137205 137206 137207 jecmmmmmecccecesscmeesssesueeess ; SET PREV MODE IN NEW PSL TO 11 M[TEMPBJ MB.OR.ZLIT16L0C0], H SET STACR FLAG H jommmmmm s memsmmmmemmeeas : . AVOID ERRONEOUS TRAP. : 37208 CLEAR FP TRAPS "3721 0 --------------- .l.fl----_--—---_--. 237209 37211 READ PHY, ; READ THE MACRO INTERRUPT VECTOR :37213 NEXT/IE.20 : ;37212 ;37214 ¢ AVOID ERRONEOUS TRAP, CLEAR ARITH T1RAPS, ] 237215 1E.INTERRUPT: 137216 OEEE, 0840,0036,4680,0060,00EE,C :3?51? :37218 READ.PHY ,SET FLAGO, CLEAR ARITH TRAPS, ;37221 R ;g;g%g 137222 ;%;552 ;372%5 1E.20: OEEC, 042D,2592,4271,4047,00€F,0 jmmmmr s moowmnsurcnneeaneennanss: SET FLAG TO INDICATE INTERRUPT, STACK FLAG? R L ; CHECK FOR KSNV, L L L AL A A LA AL AR A e AR L ; DETERMINE IF THIS INTERRUPT OR EXCEPTION]S TO BE HANDLED ; ON THE KERNAL STACK, INTERRUPT STACK OR TRANSFER TO W(S. ;Qrmwemon= o sob e 137226 R TEMPSJ MLMDR], 137228 WB<1=0>7 ,NEXT/IE.25 137227 : READ THE MACRO INTERRUPT VECTOR s AVOID ERRONEQUS TRAP, CLEAR STACK FLAG, Lttt LY ; SAVE THE MACRO INTERRUPT VECTOR : ; BRANCH ON VECTOR<1:0> ! : H MICROZ (MT098.MCX IANDE ,MIC 28-NOV=-83 16:30:35 1M(O1) Interrupts and Exceptions D D e R ey D e B B e e e e L e S P N e R R PUNININIAINIAININININI DN TO NN NI NI PONINLTOND : L] 137233 =00 137234 1E.25: 137235 237236 137237 MCTEMP9] RSP, PSL<;S,CORM>?, 137239 :37240 MLTEMP9] RESPI, : PREPARE TO SWITCH STACKS CLEAR FLAG,NEXT/IE.60 : CLEAR FLAG TO SAY NEW STACK = IS L e Ly Y e W W 137238 : INVALID KERNAL OR INTERRUPT STACK. ;00==ww==e- wesna- bt SET FLAG1,NEXT/IE.KSTACK ~==3; HANDLE ON KS (UNLESS ON IS) ; PREPARE YO SWITCH STACKS : BRANCH ON PSL<]S> : SET FLAG TO SAY NEW STACK = KS fummmemmnem——- e ww=wa=: HANDLE ON IS PSL<IS.CORM>? :37241 137242 237243 137244 ;10mmnmm e ; BRANCH ON PSL<IS> m e mummeaee; HANDLE IN WCS :37246 MCFPDOFFSET)_ZLITOLBI, : SET ERROR CODE, AND JUMP TO WCS. 37248 NEXT/2001 : 60 TO MS.HALT.MICRO (ADR=01) IF NO WCS SET_STACK FLAG, s 137247 T S U OEF2, 096E,CC37,0030,4047,0200,1 ; BEGIN TO SWITCH STACKS FNR KSNV, NEXT/1E.RSNV 3053 137245 , : Initiate Exception or Interrupt MLTEMP9]1 RLSP], r U OEF1, 040E,958BE,4787,8207,08EE,B 479« Page 908 CLOKX Rev 13.00, Clock rate = 160ns ;37230 b U OEFO, OC4E,95BE,4787,8207,08ED,B 479+ T 7 : ‘I .............. L L TLT ———— ;37229 U OEED, 0C86,958€,4037,8047,00F9,8 6 :37250 : TELL CONSOLE TO LOOK AT FRONT PANEL ;1lemmcennem s —— wm——— : MCFPDOFFSETI_ZLITOL?], SET STACK FLAG U OEF6, OD81,BC11,0030,1487,0000,1 :37254 :37255 30938 jmmmm——— e e LT: : LOAD SCBB+OFFSET+2 INTO PC PC_MCVAD+ZLITOC2], NERT/MS.HALT.MICRO ; OPERATION UNDEFINED, HALT e U OEF3, ODGE,CC37,0030,3847,00EF,6 :37251 37232 137258 TR R RN KA R KRR AR KE AR AR AR AR AR AR AR AR AR RN RN RN R kRN 137259 :37260 :g;gg% : SET ERROR CODE : TELL CONSOLE TO LOOK AT FRONT PANEL 1011 ; SWITCH STACKS IF NECESSARY AND SET PREV MODE IN THE NEW PSL, ; ALSO SET NEW PSL<IS> IF HANDLING THIS ON THE INTERRUPT STACK. 137263 IE.KSTACK: 137264 . U OEDB, 0886,A5BE,4788,0207,08F2,8 479+ MCTEMP10]_RLKSP1, ; FETCH NEW STACK POINTER ;3;228 NEXT/IE.SAVE.éP : TO SAVE OLD STACK POINTER :§7569 137269 IE.50: U OEDF, 0586,8(92,4030,2047,00¢6F ,B 1101 e mmmmcnnenan= e +37265 1372270 13727 PSL<IS,CURM>? ; BRANCH ON CURMOD ;111lwcmemmemmnmnncunnmcscnacnae : MCTEMP8]_MB.OR.ZL1T24[41, NEXT/IE.85 : SET NEW PSL<]S>=1 : ——— e e v ‘ CMT098.MCX 1ANDE MIC MICROZ2 1M(01) 28-NOV-83 Interrupts and Exceptions :37272 =101 ;37273 1E.60: OEEB, 0586,8(92,4030,2047,00EF ,E 137274 :g;g;g 137277 OEEF, 0586,8(92,4030,2047,00EF,B 137378 ;g;ggg 137281 1E.65: 0EFB, 0986,8F12,0031,F847,00ED,7 137282 :ggggz 16:30:35 H 7 CLOKX Rev 13.00, Clock rate = 160ns : Initiate Exception or Interrupt ;1011-smesummmm e e ——— e ————— H MCTEMP8] MB.OR.ZLIT24[41, NEXT/IE.YISTACK OEFE, 0C86,A5BE,4789,0207,08F2,8 479+ + SET NEW PSL<IS>=1 ; 1111 mmmmmmmmm e m e —————; MUTEMPB]_MB.OR.ZLIT24[41, NEXT/IE.&S + SET NEW PSL<IS>=1 ' jw-==mssescescmecceecemeeeen ———; MCTEMP8] _MB.AND.OLIT16C3F], NEXT/1E.PUSH.PSL.PC Eggggg 1E.ISTACK: % SET NEW PSL<PREV MODE>=0 : 137287 MCTEMP10] _RLISPI, * FETCH NEW STACK POINTER ;g;ggg NEXT/IE.SAVE.SP ; TO SAVE OLD STACK POINTER 137288 - Page 909 ; BRANCH OM CURMOD PSL<IS.CURM>?, 137291 =1%00 137092 1E.SAVE.SP: 137293 2100~ m 0F28, 0884,9592,4038,0047,00F1,6 137294 ;g;ggg 137997 0F29, 0484,9592,4038,4047,00F0,A 137298 :g;ggg :37301 QF2A, 0€84,9592,4038,8047,00F0,E 137302 ;g;ggz 137305 0F2B, 0084,9592,4038,0047,0060D,5 137306 ;g;ggg T: R[KSPI_MLTEMP9], ; SAVE OLD STACK POINTER IN KSP NEXT/1E.80 L RLESP]_MLTEMP9], : B NEXT/IE.70 D — —mm—————; RLSSPI MLTEMPYI, * SAVE OLD STACK POINTER IN SSP eB ; NEXT/IE.90 ; NEXT/IE.?5 RLUSPI_MCTEMP9I, c 37311 :g;g}% Eg;g}g 1E.75: C OFOE, 0586,8F12,0035,F847,00€D,5 0F16, 0186,8F12,05F1,F847,00€D,5 ‘37315 ;g;g}g 37319 1€.80: 237331 137502 : SAVE OLD STACK POINTER IN USP _ Eg;ggg 1E.70: 0FOA, 0586,8F12,0033,F847,00ED,5 ; : SAVE OLD STACK PDJNTER IN ESP MCTEMP8] _MB,AND,OLIT16[7F1, * SET PREV MODE IN NEW PSL TO EXECUTIVE. MCTEMPS8] _MB,AND,OLIT16L08BF], * SET PREV MODE IN NEW PSL TO SUPERVISOR NEXY/1E.90 NEXT/IE.90 : : . MCTEMP8]_MB, AND 8L1T16[3FJ. FLAG1?,NEXTZIE.9 : SET PREV MODE IN NEW PSL TO KERNAL, : IF NEW MODE=KERNAL, DON'T RELOAD SP, CMTO098.MCX 1ANDE .MIC MICRO2 N 28-NOV-83 1M(01) Interrupts and Exceptions :§?§54 1E.90: : 16:30:35 7 CLOKX Rev 13,00, Clock rate = 160ns 1 Page 910 Initiate Exception or Interrupt 137323 =01 OEDS, 0C84,A592,4037,8047,00ED,7 0ED7, 046(,073C,0027,84A7,00F1,E 137325 RCSPI_MCTEMP10] 137326 27 1373 137328 IE.PUSH.P?%.PC 137329 ;37330 137331 :3733§ 13733 0F0S, 0886,8487,0030,0007,00F2,1 0F21, 0B80,067E,FB07,FB47,00F2,2 137350 0EDD, 0028,7592,4420,0508,00EF,4 QEf4, 0580,0037,05F0,EFA7,00F0,0 ; BITS<31-16>, THEN SET FLAG3 TO PUSH P( LY ; — ;{ CONTINUE INITIATING THE EXCEP OR INTER LOAD MASK OF PSL MBZ BITS, L e L e L VA_RLSPJ_RB~CONX(4), : ARE THERE MORE PARAMS TO PUSH? DL L DL ———— PUSH,FLAB3? ,NEXT/IE.GET.PC MORE PARAMS TO PUSH. :: PREPARE_TQ PUSH ONTO SP. ; IF FLAG3 SET PUSH PC ELSE PCBACK=2 ;0% emmmmm—m e ——— ———————— ~e=; WRITE MCTEMP?),SIZELLONG], CLEAR STACK FLAG,RETURN L*11 N STy — $373 0EDC, 0084,073C,04E7,84A7,04F0,8 =0*0 : PUSH THE PC OR PCBACK~2 AND RETURN TQ PUSH MORE PARAMETERS, s NO MORE PARAMS TO PUSH. 11 RQumm——— cmmeneamsessene——————— VA_RLSPI_RB-CONX(4), PUSH, FLAB3? ,NEXT/IE .GET.PC O % PREVIOUS MODE WAS COMPATABILITY MODE. : MOVE PCBACK=-2 TQ PC TO CLEAR PC_MFPCBACKI=CONX(2), SI1ZECLONG],FLAG2? g g = OO 0O : : URITE MCTEMP4J.ANDNOT.RCLONLITI,' ¢ PUSH OLD PSL ON STACK, ;37352 :37%52 : : LOAD NEW PSL. : 1 o----------------—----- -------- H SET FLAG3 137345 NEXT/IE.105 137346 137347 I D ee ;37348 R LONLIT_L3020FF00] 237349 NNNNNNNWO OO OO O VI QED9, 0428,7592,4040,0508,0000,1 : DISABLE MEMORY MANAGEMENT INTERRUPTS NEXT/IE.110 137342 NS NN 0ED8, 0084,073C,04E7,84A7,04F0,8 : SAVE OLD PSL TO PUSH ON STACK. PSL_MLTEMP8]_MB<31-16>.0, 137340 137341 137351 0F22, 0C80,4003,84AD,4508,00€D,8 hCTEwP4l PSL, :; PREPARE TO PUSH ONTO THE STACK. WB<31-3057 : CHECK IF WAS IN COMPATABILITY MODE. 137336 137337 ;«xwsxxxxaeFORCE ADDRESS**#unnwnn; ;37338 0F05: ;37339 1E.105: :071=wemmmmmmmmmmmcem————ecaema—- ; 137343 OF 07: 137344 0fF07, 0859,9710,0010,0487,00F0,5 Y; SET NEW STACK POINTER. ; SET_MM.NDINT, 137335 L L VA_RLSPI_RB-CONX(4), SET STACR FLAG 137334 QF1E, 0866,4036,46F0,0087,00F0,5 Y LY T LT L L L L :01 ------------ EL P L ottntmvenesiminlntemisintntetnedaintiittey H WRITE MCTEMP7],SIZECLONGI, CLEAR STACK FLAG,FLAGO? QEF4: ; PREPARE TO PUSH ONTO SP, :; IF FLAG3 SET PUSH PC ELSE PCBACK-2 C OR PCBACK~2 AND : : D TO RAISE IPL TO 1F ;xxexxxexxFORCE ADDRESStnwawnns; 1E.LOAD.PC: iPL_[1D] FLABT? NEXT/IE.RAISE.IPL ; : TION PL TO CHECK FOR POWER FAIL ———— e =l t ~- . CMTO98.M§§ [ANDE M MICROZ 1M(OT) 28-NOV=83 Interrupts and Exceptions ;%7376 OEF5: 16:30:35 J 7 CLOKX Rev 13.00, Clock rate = 160ns : Initiate Exception or Interrupt Page 911 sunaskienexFORCE ADDRESS*¥wwwxnxk; 137377 1E.LOAD.PCO1: 137378 OEFS5, 0980,5C13,8030,1C87,00E4,D 137379 ;g;gg? H i]omteeceememmeaceamne———————— ; INTERRUPT OR VECTOR<1:0>=0 0 =0~ PC_MCTEMP5J],ANDNOT.ZLITOL3], NERT/MP MTPR,EXIT ; PC _ MACRO VECTOR<31:2>'0<1:0> : 37382 JE.RAISE.IPL: OF00, 0D86,8D12,4030,F847,00F0,2 137383 ;g;ggg B ea=ew==; EXCEPTION AND VECTOR<1:0>=1 MCTEMPBI_MB.OR.2LIT16L1F] 0F02, 0980,5C13,8030,1C87,00F2,6 Eg;ggg IE. CHECK ., DBL . ERR: PC_MLTEMPS5],ANDNOT ., ZL1TOL33 Eggggg 0F26, 0C80,0036,4AF0,0047,00F0,1 ;g;gg; :37390 : RAISE IPL TO 1F. ? PC _ MACRO VECTOR<31:2>'0<1:0> D tL L LN LI B ; : CHECK FOR POWER FAIL OR WRT BUS ERR. INTPEND OR TIMER? 137303 = 0FO01, 0480,8002,403,8007,00€4,D 0F03, 0180,0D37,0030,E7A7,00F3,6 0F36, 0480,0036,4030,0047,00F3,A OF3A, 0CB0,0036,4AF0,0047,00F1,5 ;37394 1E.RESTCRE,IPL: 137395 0] mmemmmm———————— memmmmmm——a——— ; POWER FAIL, LET IT GO THROUGH : RESTORE 1PL PSL_MLTEMPB], 137304 ;g;ggg NEXT/MP MTPR.EXIT 137299 ;1 lmmmmemmcrecmcmm e m e : NO_POWER FAIL, ;g;figg 137002 jmmmmmmmmmmmmemmm—en e m————en- ; Nop :37405 jmmmmemmm———— e e oeescmeenas ; :g;zgg 127409 ‘%?2}? 137412 0F17, 0480,8002,403D,8007,00€4,D * SET IPL TO CHECK FOR WRT BUS ERROR. ;g;zgz :37408 =01 OF15, 0480,0036,4780,0047,08EC,F 479% IPL_C1C] : 137413 ‘%52}? INTPEND OR TIMER? * WAIT 1 CYCLE FOR ARBITRATION TO SETTLE : CHECK FOR WRITE QuS ERR. ;0] =mmmmc o mmnm—————— ; THERE IS A WRITE BUS ERROR MICRO VECTOR?, NEXT/IE.CLEAR. INT * BRANCH ON UVCTR SIMPLY TO ¢ CLEAR THE INTERRUPT ;1] mmmem e wmmmmn e ; THERE IS NOT A WRITE BUS ERROR PSL_MLTEMP8], NEXT/MP.MTPR.EXIT ¢ RESTORE IPL : AND CONTINUE WITH NORMAL PROCESSING 132416 =111 QECF, 0080,C592,46F0,0047,00EE,6 137417 1E.CLEAR.INT: 137418 L D e e ———— ; THERE IS A_WRITE BUS ERROR ;g;z;g 137421 =10 OEES, 0458,8002,403D,8007,00F3,E 0EE7, 096E,CC37,0030,2847,0000,1 137422 WB_MLFPDOFFSET],WB<31-30>2 i CHECK BIT 31 FOR DOUBLE ERROR :10~m==n P e; ;g;zgz PSL_MLTEMP8],SET FLAG3, NEXT/IE.WRT.BUS.EXCEP ¢ RESTORE PSL, SET FLAG TO PUSH PC 137425 e ; 137408 NEXT/MS,HALT,M{CRO ; : ; : (MT098.MCX TANDE MIC MICROZ 1M(01) 28=NOV~83 Interrupts and Exceptions 16:30:35 K 7 CLOKX Rev 13.00, Clock rate = 160ns : Initiate Exception or Interrupt Page 912 ;g;zgg IE.WRT.BUS.EXCEP: U OF3E, 0186,0C91,0032,0047,0003,E U OF08, 0585,9C10,0080,1047,0000,1 137431 :%;2%% <0 Eggzgg 1E.GET.PC: RTEMP7_MLPCBACKI-ZLITOC2], 137436 ;g;zgg ;37439 y OF09, 0185,AC10,0080,0047,0000,1 MCFPDOFFSET] MB+ZL1T24(401, NEXT/IE.WRT,BUS.ERR 137440 237441 RETURNTML +1] Y SET BIT30 TO TRAP DOUBLE WRITE ERRORS : ! GET PCBACK=2 TO BE PUSHED ON THE STACK ; jlemcscccacananenanean ceeememnn; RTEMP7_MLPC1-ZLITOLOD, RETURNTML+1] % GET PC TO BE PUSHED ON THE STACK. : : H CMT098.ME§ TANDE .M MICROZ2 1TM(01) 28-NOV=-83 Interrupts and Exceptions ;%;22% .T0C 337444 Rt ;g;zzg ; 137447 : 137448 ; 16:30:35 ;37452 CLOKX Rev 13.00, Clock rate = 160ns : SOFTWARE INTERRUPTS ' e R R A e R S IS LA SIS A AR AL AL Entry points 1E.SOFT.INT3 Resources SISR Bit causing interrupt is cleared ;g;zgé ; Interrupt vector address MTEMP8 New PSL SOFTIPR IPL of next highest software interrupt Set to indicate no more params to push IE.SOFT,IPL 137456 : Subroutines 137459 : The new IPL is calculated from the SISR. ;g;zgg ; $ 37460 ; $37461 : 37462 ;37463 237660 913 Temporary FLAG2 ;37453 ; - AL LLLLL AL AL AL Base address of software interrupts VA Output AL LALLM D TEMPS Rage : SOFTWARE INTERRUPTS'' Interrupts and Exceptions :g;zgg : 137451 ; ' L7 1E.INTERRUPT A new PSL is loaded into a temp with onlg the IPL bits set, The macro vector address is 4+«1PL + SCBB + 80Chex), The bit is cleared in the SISR and the IPL of the next highest software interrupt is loaded into SOFTIPR for arbitration by the hardware. IRXRAARKRRKKAEA R AR A AARAAKRREARERRRR AR ERARER R AR ko by 137465 137466 ;37467 ;1E.SOFT.INT: ;37468 501000~ ~~=memcemmenncce e n——— : : LDAD BASE ADDRESS OF SOFT.INT VECTORS. 137469 D_MLSCBBI+ZLITOC803, 137473 ; MCTEMP8]_RLTEMPS].RR.16, 137476 OF38: ;axaxxxxxFORCE ADDRESS***a%xsns; }g;zgg RLTEMPS5]_RB.ASL.2 :37470 ; ; 137471 ;37472 ;%;Z;g ; PUSH,NEXT/IE.SOFT.IPL ;11000 ; ~meomcrcnncrmcn e ————— ; NEXT/IE.SOFT.INT3 : LOAD IPL INTO PROPER BITS OF NEW PSL. : ;§;2;§ 1E.SOFT.INT3: U OF38, 0484,05F7,0021,4047,00F4,1 137481 U OF41, 0040,0021,0031,44A7,00EC,E $37482 137483 ;37484 =0xwnx ;37485 ;37486 U OECE, 0556,FAD3,8030,0847,04F4,0 ;37487 ;g;zgg 137490 U OEDE, 0480,5387,0010,0787,00EE,E 137491 :%;Z%% _ % THE VECTOR OFFSET IS IPL*4, jmmmmmm———oc—a—n mm——————— m———— VA_D+RLTEMPSI, SET FLAGO : LOAD ADDRESS OF MACRO VECTOR. : THIS IS AN INTERRUPT, L Rttt - MESISRI_MB.ANDNOT.ZLITPLL1], SET FLAGZ, PUSH,NEXT/1E.SOFT.IPL , : : CLEAR BIT IN SISR FOR THIS INTERRUPT. NO MORE PARAMETERS TO PUSH. ;14K A ko memee e mna e cmc—————- ; SOFTIPR_MLTEMP5].RR.16, NEXT/IE . INTERRUPT J : LOAD SOFTWARE IPR REGISTER USED BY THE ; HARDWARE FOR ARBITRATION, i : CTngg.m%X C MICROZ 1M(01) 28-NOV-83 Interrupts and Exceptions 16:30:35 M7 1E.SOFT.IPL Interrupts and Exceptions ;37496 R ;g;zgg H et AR R A fntry points E%;ggg ; Resources PL Get most significant bit set in SISR Eg;gg% ; Output TEMPS IPL of highest software interrupt pending 137503 :37505 CHARLIE'S FLOWS 2.2 ek kR R AR AR AR AR R A A L AL LA AL LA SR A L A 1E.SOFT.IPL AR AR R A AR AR KRR AR AR AR AR : 37506 0F40: senxnknkwxFORCE ADDRESS**%wxwxnx; Eg;ggg PL_MSS MLSISR] :%;ggg 1E.SOFT.IPL: 37511 U OF46, 9C86,5837,0080,0047,0001,0 1E.SOFT. IPL"" : ;g;zgg LTOC ' ST7504 U OF40, 0880,F9C2,403D,8047,00F4,6 Page 914 CLOKX Rev 13.00, Clock rate = 160ns ;37512 137513 R AL AAL AL ALA AL L EERAARA AR RRARRRARRRR KR KK * LOAD IPL OF HIGHEST SOFTWARE INTERRUPT L L L L: MOVE IPL INTO A TEMP SO IT CAN BE v MLTEMPS] _PL, RETURN [¥16.1] AL ; SHIFTED FOR BUILDING A NEW PSL. : ; H H CMT098.MCX TANDE .MIC MICRO2 1M(01) 28-NOV=-83 16:30:35 Interrupts and Exceptions ;%;g}g .TOC ' N : POWER FAIL 7 Interrupts and Exceptions : POWER FAIL" SRS ES L AL AR 237516 TSI ;%;g]g : Entry points IE.POWER.FAILZ LAAA AL LALE AL AL LALLM 137519 Cutput New PSL 137523 ; Load interrupt vector address into VA. $37520 ; ;%Zgg% : : 37524 ; 237525 R Page 915 CLOKX Rev 13.00, Clock rate = 160ns TEMP8 VA FLAG2 Interrupt vector address Set to indicate no more params to push into a temp with only IPL bits set. AR HAKARKARERIRRRAIRI AR AR IR LA AL EAL AL A R AR R RO Load new PSL RN R AR XN KRRk kb obbok ok : 37526 :g;ggz ;1E.POWER.FAIL: 137529 ; VA_MLSCBRI+ZLITOLOCD, * LOAD MACRO VECTOR ADDRESS. :g;g%; H NEXT/1E .POWER.FAILZ ; JUMP TO POWER FAIL ROUTINE. ;37533 0F47: sauxxewa k¥ AFORCE ADDRESS#*#wxkxwx; 137534 MCTEMPB]_ZLIT16L1E], ;37530 ; SET FLAGZ, ; NO MORE PARAMETERS TO PUSH. :%;g%g 1E .POWER.FAILZ: 137537 NEXT/1E.INTERRUPT Y SET IPL=1E IN NEW PSL, s INITIATE THE INTERRUPT, it U QF47, 0986,8D37,0030,F047,00EE,E ; H ) , CMT098.MCX e IANDE MIiC v MICRO2 1M(01) 28-NOV-83 Interrupts and Exceptions B 8 CLOKX Rev 13.00, Clock rate = 160ns e : WRITE BUS ERROR . Page 916 : WRITE BUS ERROR" ’ :%;g%g .10¢ "' Interrupts and Exceptions S = E 751,0 Nt.itflfit*t*'t*"'ttfififi**tttttttt****t*ttt**fitttfifit*tfl**fi'*tfl'*fit*"'.tt'ttfi'*! Entry points : ;521 : - 16:30:35 - - ; 7§4§ ; Output . 137544 ; :gggzg : 137547 137548 ; AU : 37550 1E,WRT.BUS.ERR2 MTEMPS Load interrupt vector address into VA, R T into a temp with only IPL bits set. e R e I I ;§;§g1;18 WRT,BUS.ERR: : 755% : H ;ggg H New PSL Interrugt vector address Set to indicate no more parameters VA FLAG2 {A_MCSCBBI+ZLITOL60T, SEY FLAG R Load new PSL AL R AL R AR A R A AL AAA L AR AR LA AR AL * LOAD MACRO VECTOR ADDRESS. ¢ NO MORE PARAMETERS TO PUSH. 137556 =0 :37557 1E.WRT.BUS.ERRZ: :%?558 -------------------- emmmamanser (LEAR FLAGZ TO REGAIN CONTROL U 0F0C, 0116,8037,0030,6847,04E€,E v OF0D, 0OD8B0,0D37,0030,EFA7,00F0,2 : 37559 :%;gg? METEMPBY ZLIT16L1D], CLEAR FLAGZ.. SET [PL=1D [N NEW ¢ INITIATE THE lNTERRUP?. PUSH,NEXYZIE, INTERRUPT 137562 P : 57563 T TSR iPL JL1DI NEXT/1E,CHECK.DBL.ERR ; CHECK FOR DOUBLE WRITE BUS ERROR ~ i Interrupts and Exceptions 3;264 10C "' 7569 7570 ;g N NN N NN N NN N N LTI T R T P A U U Ul LN U A LA LN P U OF4A, 0186,8037,0030,0047,00EE,E HA VIV VIVE 7 NN TE PR PR PR O 7573 8 CLOKX Rev 13,00, Clock rate = 160ns : CORRECTED READ DATA ERROR Page 917| : CORRECTED READ DATA ERROR' Interrupts and Exceptions H Entry points J1E.CORRECTED.MEM : Output MTEMP8 : Load interrupt vector address into VA, ; : : AR New PSL Interrupt vector address Set to indicate no more parameters VA FLAG2 into o temp with orly IPL bits set. R AR R AN AR § o Ve 0 AR R AN AR AR R 0 O T O G BV s B R AR AN R R kAR R AR VA_MLSCBBI+ZLITOLS4D, OF4A: ;wxsxnwaexaFORCE ADDRESS#*awswwanw; ST FLAG2 1E.CORRECTED MEM2: MCTEMPBI_ZLIT16[1A3, NEXT/1E.INTERRUPT AR AR AN AR A RA NN R AN RN AR ARk ; LOAD MACRO VECTOR ADDRESS. : H Load new PSL S W- ; NO MORE PARAMETERS TO PUSH, . N ;g c :tfi*fifi*fltfitt*ti*ttt**tttt***ttttttttttttQt**t*tt**t******t**tfit*t*iw**‘flfi*i*it - 75 N LA AN N ' OCOCDO0CD0000 N NN N N NN NNNAO-OAONO O N IR 2 OO 00 NN N SN — OND 00 N0 1ANDE (MIC 16:30:35 : ? ET LR TM(O1) AN A N H MICRO2 CMT098.MCX PREYE TS PR TR TR TR 1) : 28-NOV-83 L=1A IM NEW PSL. _IPL= NITIATE THE INTERRUPT. 28-NOV-83 16:30:35 1M(O1) Interrupts and Exceptions P S O T T TR TR PR PR PR IR TR LR TR TR TRT 7 8 9 0 1 2 3 4 5 6 7 8 9 0 Interrupts and Exceptions : MEM ERR, (S PARITY, BAD IRD, TEMP HALT" TR TR ] PR PR R IE.CS.PAR]TY 1E.BAD. !RD 1E.UNUSED.CS TR TR T Input FPPOFFSET<31> 1 2 Set if in CONSOLE, BOOT or UVERFY code. 1f FPDOFFSET<31>=1 then FPDOFFSET<2:0> are as follows: FPDOFFSET<2:0> FPDOFFSET<2:0> FPDOFFSET<2:0> FPDOFFSET<2:0> IR IR T 5 6 FPDOFFSET<2:0> (0 1 2 4 ERRCOD RTEMPO Error code Save MDR to push on the stack FLAG2 Cleared to indicate more parameters Resources SL Used to extract MSCR's Subroutines JE .MACH. CHECK01 1E . ABQRT 1E.MACH, CHECKO? Qutput VA Interrupt vector address Save MDR, MA, AND VA Initiate the exception Push machine check params 2222822222222t R AR XTSRS I R ZAT SRR A4S RS2 SRR s dd ld i 3 T8 PARITY ERROR RECOVERY 5 6 7 forcing TB miss and then retry the fault micro-order. 1f machine gets 18 parity error, try to recover from 'SOFT' error by % 8 9 0 7621 7622 T T T 37624 Resources FPDOFFSET bit<30> is used as 1B P.E. flag bit<29> is a flag to indicate that 1B P.E. occurs while memory management ERRCOD MM, TEMPS is in progress used as temporary location to save MEMSCR temporary location to save VA 222 S22 8222280 Po o Yo Yo Yo Ve Yo No e N S T 37625 28: :w*TRAP ADDR** ; MEM.ERROR 1S DETECTED BY A MICRO TRAP, RROR: .MEM,E 1€ 29 37 3762 Jmmem——mmm e —————————— - mumemences ; SET ERROR CODE TO PUSH ON THE STACK. 37 58 M[ERRCODJ 2L1T0C2], : NEXT/IE.MEM.ERRT0 : CHECK IF IN CONSOLE MODE. 37631 20: ;**UTRAP ADDR** ; CS.PARITY 1S DETECTED BY A MICRO TRAP, N g; 38 o 37632 1E.CS. PARITY: 37633 2~ jeesessceccceccccmecsacccacsessss ; SET ERROR CODE TO PUSH ON THE STACK. 37634 %;ggg M[ERRCOD] LITOL1D, NEXT/IE.MEM.ERR10 37637 3F8: saxwnwknxr FORCE FOR DEFROM DEFAULT*wwawawwnns 37639 37640 eeesceeen. b csteitaiintetetly w==n==~=: BRANCH FROM UNUSED IRD ROM SLOT. MCERRCOD] 2LITOC7], * SET ERROR CODE T0 PUSH ON THE STACK. o U 0020, 0D86,BC37,0030,0847,00F5,6 U 03F8, 0186,8(37,0030,3847,00F5,6 - CONSOLE mode - UVERFY - BOOT - BOOT 5 = BOOT 3; 233233222222022 2222222223238 2222332323223 2802 U 0028, 0086,BC37,0030,1047,00F5,6 Page 918 CLOKX Rev 13.00, Clock rate = 160ns : MEM ERR, CS PARITY, BAD IRD, TEMP HALT e S 4 8 ****k**fi****&tttk*t****k**flt****k*titt**tttt*it*t**t**t******* **tk********k*t ; 1E.MEM.ERROR Entry points e DL AL oo N oo N, oo N o N o No No e Ne N No No No Yo Jo Yo Xo o o o AL L Rl Rl i :3 2 3 LT0C ' D P ;3 ;3 .% 7 8 9 0 1 hJ—‘—hfl-fl-‘—fl—fl—fl—‘-6<>CDCDCDCDCDCD(D(DC)QD%D1DflD<POiDflDMDMDOOCDCD .3 ;3 b idridriirtir Aty idpigcpcud LNLNLMLNLNLNLNLN\NLNU“NLNthNUMN&NLhUfldLNL&UflNLNkN&H SN NN N N N NN TN TN SN S TN SN TN TN T SN SN SN NN SN SN N SN SN SN NN SN N SN N ;3 T 1ANDE (MIC MICROZ2 T H (MT098.MCX O N : : CHECK IF IN CONSOLE MODE. 37638 1£.8AD. IRD: 37641 NEXT/IE,MEM.ERR10 s CHECK If IN CONSOLE MODE. | i . : CMT098 MCX [ANDE .MI(C E 8 (LOKX Rev 13,00, Clock rate = 160ns 28-NOV~83 16:30:35 MICRG2 1M(O1) Interrupts and Exceptions : MEM ERR, (S PARITY, BAD JRD, TEMP HALT 137642 137643 3F9: U 03F9, 0586,BC37,0030,3047,00F5,6 sxxdxxwws FORCE FOR IRD1 DEFAULTHawtanwiun Page ;37644 1E.IRD1.ERROR: oub et tndcemenena=~wa=: AN [RD1 FAJLED TO USE THE IRD1 ROM, et 137645 ; SET ERROR CODE TO PUSH ON THE STACK. MLERRCOD] ZLITOL6], ;37646 ; CHECK IF IN CONSOLE MODE. NEXT/1E.HEM.ERRIO 137647 919 l H H CMTO98.MCX TANDE .MIC MICROZ 1M(OV) 28-NOV-83 16:30:35 Interrupts and Exceptions U 17F9, 0484,B592,4035,8047,00F5,6 F 8 CLOKX Rev 13.00, Clock rate = 160ns : MEM ERR, (S PARITY, BAD IRD, TEMP HALT 137648 17F9: jwwskkwaaxFQRCE ADDRESSaxxxaaxwx; :g;gg% NEXT7IE.MEM.ERRTO 137654 OFS56: ;#xxaxx**xFORCE ADDRESS*aasakws; 137557 ;] JHEFPDOFFSET], Ig;ggg 1E.UNUSED. CS: RCR6] MLERRCOD], 137651 :g;ggg 1€ MEM.ERR10: ) u OF56, 0080,(592,46F0,0047,00F7,D ;;;ggg 00 :37660 =01 u OF7D, 1D80,0CB7,0030,4687,00F4,8 u OF7F, 0480,0592,4230,0047,00EF,8 U OEF8, 01A6,7CB7.0031,0047,0096,¢ u 0EF9, 0880,0036.40B0,0047,0000,1 u OEFC, 0880,0036,4080,0047,0000,2 : FROM THE CONSOLE. ¢ CHECK IF IN CONSOLE MODE ; ;0] =mommmmememmsccenane ——eeee ; NOT IN CONSOLE MODE MEMSCAR_ZL1T24[8], : LOAD ADDRESS OF MCESR, DISABLE INTS :37663 NEXT/1E.CHECK.FOR.CACHE : 137662 dr66s <11 PATCH o1 ; *% jump to PCS to check if TB parity error : RETURN TO CONSOLE, BOOT, OR UVERIFY. Eg;ggg ) WB_MLFPDOFFSET],WB<5-0>? 137668 OFF8: ;*xaxtxx¥aFORCE ADDRESS*wasxwwws; ;g;g;g NEXT/CN.ERROR 137674 OEF9: ‘%?2;2 ;111001 ==smemmmmcmcemmuneeananas : : RETURN TO MICRO VERIFY RETURN [+13 237669 1E.RET,TO, CN.BT."IV. :111000=-wm==m=mmmammmscmmnena : RETURN TQ CONSOLE. 137670 137671 MCTEMP7] 7L 11240201,STEPC_2, : BAD READ/WRITE TO MEMORY ; ;111010=~==~====cmosccanacancan ; RETURN_TO BOOT, 137678 VA_RCTEMPQJ_MLVAI-CONX(4), : POINT BACK TO OFFENDING WORD :g;ggg RETURN [+2] ; :g;ggg 137681 OEFC: 137684 OEFD: u OEFD, 0580,0D81,3080,14A7,0000,1 i MOVE ERROR CODE INTO GPR FOR ACCESS 137661 137677 OEFA: U OEFA, 0C85,B8710,00A0,04A7,0000,2 WB<31-30>7 Page 920 :37685 :37686 RETURN [+2] : ;111100==smmmmmmcmammn—e— e : RETURN TO BOOT. ;111101=me-mmcunne wm==sw=--=--==; RETURN_TO BOOT. : POINT TO NEXT PAGE ; RETURNTMC+13 VA_Q D_D+2L 17823, ; : CMT098.MCX TANDE .M C G 8 CLOKX Rey 13,00 28-NOV-83 16:30:35 MICRO2 1M(01) Interrupts and Exceptions : MEM ERR, CS PARITY, BAD IRD ' U OF4B, 0486,9036,4030,0647,00F5,9 U 0F59, 0180,9(92,0A30,4047,0AB4,B 335+ U 2B4B, 0D80,BC10,0A30,1047,0AB4,C 399« U 2B4C, 0480,0036,4030,0047,0286,C 047 330 ,0AB4,E U 2B4D, 0880,(592,46F0,0 U 2B4E, 0086,B036,4030,0647,0285.0 U 2B4F, 0480,0036,4030,0047,0286.C Page 921 137687 OF4B: ;37688 1E.CHECK.FOR,CACHE: 137689 %;28? ####’##’#######fi###############' % code replaced in PCs : READ MCESR TO CHECK FOR CACHE ERROR. MCTEMP9]_MEMSCR ;37692 SHRRRNNNRNNBRUNRRNRRRERRRRRARERY ; : C ECK BUS ERROR B]T WHICH :37693 UB MCTEMPS].AND.ZLIT24L081]. 237696 2B4B: ;=S=zz=ssxzSssszssosassszsssosss; WXTEQ.0? :g;ggg : NCLUDES CACHE PARITY ERRORS *% code i PC H HECK IF A BUS OR TB MACHINE IT*'S ;37697 W8 M[ERRCODJ LITOCR), ;3?700 2B4C: ;Q==c=cozz=sossszz=ssozzszssIoss; ;; NUT A BUS OR TB ERROR NEXT/PCS.1E.CHECK.FOR. CACHE 337703 2B4D: 137704 ;%;;82 ;1::::::::::::::::::::::::::::::; WwB_M[FPDOFFSET]., H (HECK FOR TB PARITY ERROR fLAG, : BIT FPDOFFSET<30> we<31-30> ;3??0? 2B4E: ;37708 ;10====sszzxTzsszzSSTSITSTRSRSSS; 8 FLAG ISN'T SET : R AD MEMSC R TO CHECK FOR TB ERROR MCERRCOD]_MEMSCR, WXTEQ,0? :g;ggg ;g;;g; ;%;;93 33?711 2B4F : ;g;;}g 137714 ;37715 NEXT/PCS,TE.TB. PE : CHECK : ERRCODISA TEMPORARY LOCATION 11==================:===:=:=:::; NEXT/PCS.IE.CHECK,FOR. CACHE : TB FLAG IS SET, RETURN TG NORMAL ‘ 2B50: MACHINE CHECK FLOW 237716 PCS.1E.T8B,PE: U 2850, 0D80,B(92,0A70,5047,0AB5,2 329+ ;37718 :%;;33 237?21 2B52: U 2B52, 0986,(€52,4030,2047,0285,1 U 2853, 0D86,BC37,0030,1047,0286,C ;=ESZ=CZIEz=Ia=IIXSTTITIIZIITTITET; wa _MLCERRCOD].AND.ZLIT24(0A], WXTNE. 0? H ;Qs=ssssz=sssssssasssazsssssIass) CHECK FOR ERRORS OTHER THAN TB P.E. IT IS THE FIRST TB PARITY ERROR : 37722 MCFPDOFFSET] MB.OR,2L1T28L041, 137735 2853: 137726 ,1===========:========::==::===:; MCERRCOD]_ZLITOC2], : OTHER THAN T8 PARITY ERRCOD ;%;;gz :%;;5; 137789 NEXT/PCS.IE.T NEXT/PCS.TE.CHECK.FOR,CACHE : SET 7B FLAG H SET ERRCOD TO INDICATE BUS/U.B. UNAL/CACHE ERROR, RETURN TO NORMAL ; MACHINE ROUTINE I ;37717 o . CMT098.MCX TANDE .MIC MICROZ2 1M(01) 28=NOV=83 16:30:35 Interrupts and Exceptions CLOKX Rev 13.00, Clock rate = 160ns : MEM ERR, (S PARITY, BAD IRD, TEMP HALT Page 922 ;37730 2851: :g;;g% PCS.IE.TB.PE.1: 2851, 0480,05BE,403D,8607,0285,4 2B54, 01B0,CC92,0A31,0047,0AB5,6 335 2B56, 0CB0,0036,4030,0047,0286,1 2RB57, 0D80,BC92,0A30,0847,0AB5,8 335+ 2858, 0885,B8592,4033,8047,02B5,B 2859, 0080,0036,4030,0047,0686,3 2855, 0081,A592,4030,0487,0285,A 2B5A, 0080,0036,4080,0047,0000,0 . JSSTSNTESESITRTIIIESISTXISZSIISSS, ; CLEAN UP MCESR E%;;gz MEMSCR_RLZERO] ;37735 2B54: ;==ssssssssssssssssssszszssizszaxg ;37736 :g;;gg WB_MLFPDOFFSET].AND.ZL1T24020], ; CHECK FOR MM PTE BUS CYCLE FLAG WX.EQ,0? 33?739 2B56: ;0=====zzs=zsssossszssIsssoszass) s MUST BE MM PxPTE BUS CYCLE ;g;;z? NEXT/PCS.IE.TB.PTE 33?742 2B57: ;|szs=zs=soozsssszszszzzzzsszcss) : 37743 WB_MCERRCODI.AND,ZLIT24[011, 337746 2858: 137747 ;Qss=zsss=cEsssssSISsIRIRISNSIES,) RLMM.TEMP5) _MCVA], ; IS XB FETCH, SAVE VA 237?50 2B59: ;1=====ussmsss=zzzs=cISsoSSSISE); ;g;;zg WX.E0.0? ;g;;zg ;37751 337754 2B55: ;g;;gg ;3?757 ZB5A: :g;;gg 37760 ; CHECK FOR XB FETCH NEXT/PCS,.I1E.TB.PE.? PUSH, NEXT/PCS.1E.TB.PE.INVALIDATE :g;;gg ; MUST BE I OR D STREAM BUS CYCLE ; CALL SUBRQUTINE TO INVALIDATE TB jSSssszIsoSssTsRosssoISISsSIszosD FLUSH XB ¢ STITTTTITITTTISESRIRTISINTEIS=SE; RETURN [+0] ¢ RETRY FAULT UCODE : ;37761 PCS.IE.TB.PE.2: ;37762 ;37763 2B58, 0881,A001,003D,84A7,06B6,3 2B5¢, 0081,AC11,0030,24A7,06B6,3 2850, 0880,058€,4033,84A7,0285,¢ 28SE, 0C81,A592,4030,0487,0285,F 2B5fF, 0480,0036,4030,0047,0286,0 2860, 0480,0036,40F0,0047,0000,0 ;ISEs¥==o=TE=SEs==oISEIITISSIISSE) VA_MCPCJI+R[ZERO], ; SET UP NEW VA ; GO TO INVALIDATE 1B 237764 :g;;gg PUSH, NEXT/PCS.1E.TB.PE.INVALIDATE ;3?767 2BS(: : 37768 237769 ;SIS SSTISIEIITILTTTIRITTITaoE; ; SET UP VA VA_M[PCI+ZL1TOLO04], PUSH, : GO TO INVALIDATE TB :%;;;? }37772 2B5D: NEXT/PCS.1E.B.PE.INVALIDATE ;ZEEITITISITTITRTFTITFSTISSTINETS; ; RESTORE ORIGINAL VA ;%;;;2 VA_R[MM,TEMP5] 237775 285E: =R EEEETRCCRISESSESSSSSSSASESS) 30008 FLUSH xB ;3?778 2B5SF ;§;;§8 ,SoSENsEEsSEToEREEEEII=ITTSITSIZSES] NOF l ;3?781 2B60: :37782 ;SSsssscsszssszsssazaszzsszssIssEs) RETURN AND INHIBIT DESTINATIONS,; ALL DESTINATIONS INHIBITED : 137783 NEXT/0 ; WAIT FOR FLUSHING COMPLETE : RETRY THE FAULT UCGDE | (MT098.MCX IANDE .M1C MICROZ2 1M(O1) 28-NOV-83 Interrupts and Exceptions 16:30:35 1 Page : MEM ERR, (S ;37784 2861: ;37785 PCS.IE.TB.PTE: 137786 2861, 0186,€C53,8030,1047,0686,3 2B6e, 2863, 2B64, 2865, 2B66, 0080,0036,4080,0047,03FF ,F 0480,0036,4030,0057,0286 4 0980,0¢8B7,0030,1E87,0286,5 0086,B8036,4030,0647,0286.6 0980,0¢B?,2030,5607,0286,7 2B67, 0481,B5BE,403D,8507,0286,8 2B68, 0980,0c87,0030,6E07,0286,9 ;SESNSEISSSSSSsIIISSEIZNsoozssIa ;37787 MLFPDOFFSETI_MB,ANDNOT.Z2L1T28L2],; CLEAR MM PxPTE BUS CYCLE FLAG :g;;gg NEXT/PCS.IE.TB.PE,INVALIDATE .37788 33?791 2862 :37792 :30793 :37794 :37795 2B63: PUSH, : GO FLUSH XB FOR POSSIBLE NONHIT : TAG GROUP MACHINE C(HECK jTESSIISSSSSsISSINSCICSSISSSSESD) RETURN [=11] : SPECIAL M PxPTE BUS CYCLE RETURN ; TO MM.GET.PTE20 OR H TO MM.GET.WRITE.PTE32 {37796 PCS_IE.TB.PEINVALIONTE: 37798 CPU BUS CYCLES COMPLETE ;37800 2864 }TESSTESSESSESZSISsSnNISIISSTTSSIC) ; LOAD ADDRESS OF 1B GDR :g;gg; MEMSCAR_ZL1T24[3] 237803 2B65: ;S=SEsESSISSISSSTESESISITSISSSEST) ; SAVE TB GDR :%;ggg MCERRCOD]_MEMSCR 23?806 2B66: JETTIISESISSTSTSISTSTISTTIIESEES]) :%;ggg 237809 2B67: H STEER GRCUP 0 ;TSSSTESSSSSSSSSSSSIISISSSaISIIT) MEMSCR_ZLIT24[0A) : INVALIDATE TB GPRO :g;g;? 18_REZERO] ;37812 2B68: JSSSSsSSsoESII=ZI=ZI2TIITIIISISS; ;g;g}z MEMSCR_ZLIT24L0D] H STEER GROUP 1 ;=SSSzsassSI=szsszsssssasssassas) 0C81,B58E,403D,8507,0286,A ;37815 2869: :§5319 2B6A, 0480,8592,4030,0607,0286,8 ;37818 2B6A: :g;g}g H INVALIDATE TB GPR1 ;Ss=szosSsssssss=agssszsasszzzazs; MEMSCR_MCERRCOD] : RESTORE T8 GDR ;37821 2B68: JEssssssmsrEsssSoaEssnaaszsTzsSEa) 2B69, 2B6B. 0880,0036,4080,0047,0000,1 ;%;gg% TB_RUZERO] RETURN [+11 923 CMT098.MC§ 1ANDE .M1 MICRO2 1M(01) 28-NOV=-83 Interrupts and Exceptions 16:30:35 J : MEM ERR, (S 8 g KX Rev 13.00, Clock rate = 160ns 1 TY, BAD IRD, TEMP HALT Page ;37824 2B6C: 2B6C, 0€86,9036,4030,0647,0286,D 37802 PUS.IE.CHECK.FOR CACHE . e eeeccsoneas ;g;ggg < 337829 2B6D: ,A 286D, 0580,9C92,0A70,4047,008F OBFA, 0C60,0036,43F0,0047,00ED,0 0BFB, 0960,0(87,0030,2687,008F,7 ;37830 ;37831 fi[TEMng_MEMSCR i ; READ MCESR TO CHECK FOR CACHE ERROR jE=zz=szza=zsszzszsszsssssossszzas; RETURN CONTROL TO CCS WB_MCTEMP9],AND,.ZLIT24[08], WX.NE.O? ;37832 I1E.CHECK.FOR.CACHE,CONTINUE: . CHECK BUS ERRROR BIT WITH ; INCLUDE CACHE PARITY ERROR 137833 0BFA: 237834 :g;g%g sOxknenxwxFORCE ADDRESS**xwx%sxx*; NOT BUS ERROR (IE NOT CACHE ERROR) ; DISABLE INTERRUPTS SET MM.NOINT, FPD? ,NEXT/IE.MACH,CHK .RBACK H 337837 08FB: 1kxkwxxxtFORCE ADDRESSw*xxxxwxx; BUS ERROR, CHECK FOR CACHE ERROR : DISABLE INTERRUPTS ¢ LOAD ADDRESS OF CACHE ERROR REGISTER MEMSCAR_ZLIT24L4] ;37838 ;37839 SET MM.NOINT, 924 0F5C, 0580,0087,0030,0E07,00F2,4 QEDO, 0885,E036,4BB0,0047,04F5,A 0002, 0080,U036,4130,0047,003F,9 ,F 17FF, 0480,0036,4030,0047,017F €O OO0 CHCH 00 COCHCOCO 0O CO 00 0B €00 C0 00 00 T QED4, 0980,0F76,4030,2047,00F7,6 NN TN SN N S 0ED3, 0D10,EC11,0030,24A7,04EC,D N AL LA 0ED2, 0C1D,2592,4032,4047,04F5,E N R €O OED1, 0986,C091,0230,2847,08FC,0 377+ 925 Clock rate = 160ns TEMP HALT sxwnnkkkkxFORCE ADDRESShhwaxnnke; ; READ CACHE ERROR REGISTER MCTEMPO] _MEMSCR ;wxwxsxxwxFORCE ADDRESS***#akx; H CHECK IF TAG OR DATA CACHE ERROR WB_MLTEMP9Q].AND,.2L1T24L0C1, WX.NE.O? H =0 IE.MEM.EBR?O: NOT CACHE ERROR ; ATTEMPT TO PACK OR ROLL FPD?,NEXT/1E . MACH. CHK .RBACK BACK. CACHE ERROR DISABLE THE CACHE : LOAD ADDRESS OF CACHE DISABLE REGISTER ttutuindalebitlededtetdedt - ettt MEMSCAR_ZLIT24L6] = O 000N 0F25, 0580,0(87,0030,3687,00F5,C OO 00 Co 0000 €0 0000 00 80 CO 00 Co Co 00 Co 0O COCo 0F24, 0480,0036,43F0,0047,00£D,0 o ©o 00 Co 00 Co 00 0D 00 0O 00 €0 O 0BFC, 0580,9C92,0A70,6047,00F2,4 0BF7: OBFC: 000 OO0 COCRCO 0000~ NI~ NNNNNNNAOOONO NN N BN N = OO0 NOMNINWNID = OO0~ 1IN — DO OBF7, 0(86,9036,4030,0647,008F,C L] K 8 fl!) 28-NOV=-83 16:30:35 CLOKX Rev 13.00, \ TM MICRO2 : MEM ERR, CS PARITY, BAD IRD, Interrupts and %--eotions LN N N G AL N AR LA LA N N U NN NN NN LN N LA N AN LN U LN LR AN N AN N UL LA SN NSNS SN N N NN S NN TN N N NN NI N I N Y SN SN N NN SN N SN SN SN N TN N NI NI N N NINNSNNN (MTOG8.MCX [ANDE .MIC T DISABLE THE CACHE. BEMSCR_ZL1T24[1], ; NEXT/1E.MEM.ERR20 =000 IE.MACH.CBK.RBACK: RCTEMPOI_RBSP, ;; SAVE RBSP TO LOAD INTO THE STEPC. PUSH,NEXT/{E .RBS.RBACK ;: ROLL BACK THE REGISTER SIDE EFFECTS. ; ; SET CODE FOR RETURN FROM FPD.PACK. RBSP.EQ.D7, : CHECK FOR RBSP = 0 ;00 MLFPDOFFSETI_MB+ZLITBL5], . 2 O 0 g s o O S G S : wB<5-0>7 ,NEXT/IE.FPD,PACK IE.MACH.C8§.FAULT: - o - oy e O Sy S iy e § Wy S RCTEMP9] MCMDRI,CLEAR FLAG3, ¢ FPD WAS SET, PACK IT UP. CLEAR FLAG TO PUSH PCBACK=-2 SAVE MDR, P(, AND VA TO ; PUSH ON THE STACK, PUSH,NEXT/1E.MACH, CHECKO1 LOAD MACRO VECTOR ADORESS, CLEAR FLAG2 MORE PARAMETERS TO PUSH. P Pe SL_£43, PUSH mACHINE CHECK PARAMETERS, PUSH,NEXT/IE.FAULT INITIATE THE EXCEPTION. NERT/IE .MACH, CHECK(2 - oy o o NEXT/GL .DBG.NOP S o D IE.WRITE.MSCR) H AND BEGIN THE MACRO EXCEPTION HANDLER. 0002: GL.NOP.IRD1: 17FF: GL.DBG.NOP: LOAD SIZE OF MSCR'S(SEE e T T e Wk W g o & . : ; H CMT098.MCX 1ANDE MIC MICROZ2 1M(01) 28-NOV-83 16:30:35 L 8 interrupts and Exceptions : MACHINE CHECK ROUTINES :37893 .10C '' ;g;ggé L.TOC ' Interrupts and Exceptions Interrupts and Exceptions : MACHINE CHECK ROUTINES' 1E .MACH. CHECKOT : A LR AR e L A AL AL e R 23?896 R ;g;ggg : Entry points 1E .MACH, CHECK01 RTEMP10 Output 137903 ; Save MDR, MA, and VA to push on the stack. ;37904 JRRANRNERR AR RTEMP11 RTEMP12 LA LA LA AR L AL LA LA save PC 137899 ; :37900 ; ;g;gg; : Page 926 CLOKX Rev 13.00, Clock rate = 160ns . Save VA Save Saved Mode Register KA ERR A RRARHAR IR ARA KRR AR AR KRk ke kR Wk : 37905 U OFSE, 0085,A592,4032,8047,00F6,0 U 0F60, 0885,8592,4032,C047,00F6,2 U 0F62, 0D80,0CB7,0030,0E87,00F6,C ECKO1: 06 1E ,MACH.CH ;379 e LL PR LR ; e :37907 ;g;ggg 37910 ;g;g}; 137913 ;g;g}g 137916 U 0F6C, 0084,0036,4083,0647,0000,1 137917 :37918 RTTEMP10]_MLPCJ ; L S L L L L; e RCTEMP11]_M[VA] : Ot e L LT ; MEMSCAR_ZLIT2401] : LOAD ADDRESS OF SAVED MODE REGISTER T memeemeae; RCTEMP121_MEMSCR, RETURN [+T] : : & S : CMTO98.ME§ .M LANDE MICRO2 Interrupts and Exceptions : T o ] Page CLOKX Rev 13,00, (lock rate = 160ns 1E.MACH.CHECK(? Interrupts and Exceptions e Entry points e R L S A 1E .MACH.CHECK02"' AR A AR AR SR A AR SR T AR 1E.MACH.CHECKO2 input RTEMP8 RTEMP9 RTEMP10 RTEMP11 T P et AR R LR A DL AR AR LA Saved WDR Saved MDR Saved MA Saved VA LML , Saved ''Saved Mode Register' RTEMP12 Resources MEMSCAR VA STACKFLAG Subroutines IE.WRITE.MSCR IE.LOAD.PC+1 7936 T 7937 7938 The parameters pushed are: OO LI B B B FO =3O OO NN AN = OO N Length Parameter Error Code . VA P( at time of error MDR S N N SN SN NN SN SN NN TN N N N N Y SN 946 Decrement the SP This routine pushes the machine check parameters onto the stack. 7939 7940 7941 7942 7943 944 945 Push MSCR(MSCAR) on the stack Finish initiating the mach check MS.DEC.SP O 7934 7935 S T 7930 7931 ;3%% DD 00000000000000 2% FO P AR P I JUR WA T T E T N A R U OEEO, 0580,0087,0030,4687,04F3,0 ;gsg A U 0t’6, 0980,VEF6,4030,C047,00EE,0 7924 7925 7926 7927 AT AT A AT AT LA LA LA AT U A LA Ui LA LA AT Ui A N LN U AN T T o TR TR TR PR TR P N A N N NN U AT O O WA A R LA ;gg% 16:30:35 LAt e s TLTETE PR PR PR T AL T A AN TR TR 2 - 3;3}8 .T0C ' L : 28~-NOV-83 1M(01 ) e Saved Mode Register (MSCR #1) READ Lock Timeout Register (MSCR #2) T8 Group Parity Error Reg\Ster (MSCR #D) Cache Error Register (MSUR #4) . BUS Error Reglster (MSCR #9) ggchine Check Error Summary Register (MSCR #8) PSL .-tttt*tfltfi*k****t*fii***i*t**ktfi***tt*fiii**k**fiit***t***I**t**t*t****t*t**itt*i IE.MACH, CHECKOZ: N 2000 Y W T G D6 e Gy e S e S W W * LOAD POSITION OF MSCR'S ON WBUS. ;00Q0=====mssmmsmmememmmeemaees : + PUSH THE MACHINE CHECK ERROR SUMMARY ; REGISTER ON THE STACK 927 1M(01) 28-N0V-83 MICRO2 Interrupts and Exceptions 8 Page 16:30: 35 CLOKX Rev 13,00, Clock rate = 160ns 1€ .MACH. CHECKO02 ;001 recmnrcmmtnurem e ————— ; OEES, 006C,073C,0027,84A7,00F2,¢ ofac, 046E,95BE,4033,0047,04F3.1 ;010=vmrrmmmm et e H MEMSCAR ZLIT24[4] ; LOAD ADDRESS OfF CACHE ERROR REGISTER : PUSH CACHE ERROR REGISTER ON THE STALK PUSH,NERT/1E.WRITE.MSCR ONOON NN N NN oo~ OO0 OO0 0D OO N N N N R N N N NV Oeta4, 0580,0(37,0030,1687,04F3,0 SN NN NN N S SN TN N SN TSN N SN N NN -~ QEE3. 0980,0¢B7,0030,6E87,04F3,0 SN AN LA LA NN A OFE2, 0980,0CB7,0030,2687,04F3,0 . ;c.-.-.~‘-.~.s.-.-.s.-.-.s.~.-.~.~.~.c.-.~. OEg?, 0180,0¢87,0030,4E87,04F3,0 ;01]osc m PUSH TB GROUP PARITY ERROR REGISTER ; TB GROUP PARITY ERROR REGISTER :; ON THE STACK e -H ;100mmsmmmm e MEMSCAR _ZLIT240021, e ——— e ; : LOAD ADDRESS OF READ LOCK TIMEQUT. PUSH,NERT/IE.WRITE,MSCR : PUSH READ LOCK TIMEOUT ON THE STACK, 979 - - . =y - - . VA RISP]_RB=CONX(4), - - - -t : : PREPARE TO PUSH ONTO THE STACK SET STACR FLAG ~--~~----_---—--~_-------n----- HLTEMPO] RCTEMP12], 984 ; PUSH SAVED MODE REGISTER ON THE STACK SET STACR FLAG, PUSH,NEXT/IE.WRITE .MSCR.0O : : ;e —————emmm————— ; : VA_RLSP]_RB-CONX(4), SET STACK FLAG =000 0F10, 0080,058BE ,4022,4508,04C8,3 : PREPARE TO PUSH ONTO THE STACK ; 000~ emsmmmemmmcnmmnm—————ane : WRITE RLCTEMP91,SI2ELLONGI, : PUSH THE SAVED MCR ON_THE STACK PUSH,NEXT/MS.DEC.SP : PREPARE TO PUSH ONTO THE STACK ;001 mmmme e e s e eae e H WRITERLCTEMP101,SIZELLONGI, PUSH THE SAVED PC ON THE : PREPARE TO PUSH ONTO THE STACK STACK ;010==—cummcommnm e n—— _———; WRITE RLTEMP113,SIZECLONG], PUSH,NEXT/Ms.DEC.SP ; PUSH THE SAVED VA ON THE STACK ;" PREPARE TO PUSH ONTO THE STACK ;07 7=mmmms Smssssmssemmsems————— NN ¢; PUSH THE ERROR CODE ON THE STACK = OO0 AN —=O PULH,NEXT/MS.DEC.SP : WRITE MLERRCODI,SIZELLONG], :100mmemmemcmnam— e ————— PUSH THE LENGTH PARAMETER ON THE. STACK WRITE 7L1T0[287, SIZELLONG], (LEAR STACK FLAG, . PC GO LOAD NEW PC AND PSL, FLAGO? ,NEXT/IE.L 0AD N AN NN 0fF13, 0080,8592,4020,0508,04(8,3 — = = OO0 OO (F12, 0480fOSBE,4022.C508.04CQ.3 996 ©000 000000 Co 0000 CO00 0O 000~ OODOODOVDOOOOO AN N NN DI NN 0F11, 0080,058E,4022,8508,04(8,3 ,4 0528,0(.37,0421,45D8,00€EF s MEMSCAR ZL1T24EODJ PUSH,NERT/1E.WRITE.MSCR OFeD, 0C61,073(,0027,84A7,00F1,9 0F 14, ; LOAD ADDRESS OF BUS ERROR REGISTER : PUSH BUS ERROR REGISTER ON THE STACK MEMSCAR ZL1T24[9], PUSH,NERT/1E. WRITE.MSCR aewe . 8 . MCX CMTQ9 IANDE .MIC PUSH,NEXT/MS.DEC.SP :; PREPARE TO PUSH ON THE STACK 9281 Exceptions Iy Iy n *h ] v 0F31, 0028,9077,00A0,0508,0000,1 O OO U OF30, 046F,9036,4030,0647,04(8,3 N AR : 16:30:35 ’ B 9 CLOKX Rev 13.00, Clock rate= 160ns 1E.WRITE.MSCR PN AR AR A AN NN AN RN RN R AR R AR AR P AN Entry points IE.WRITE ,MSCR TE TR P AN Input MEMSCAR PL i RANN RN NS Address of desired MEMSCR 24 (DEC) Resources MTEMPO Temporary Subroutines MS.DEC.SP VA <= SP <~ SP - 4 ez = - R S TR L st AN AR AR AR R AN R R A AR AN o Page - 929 1E.WRITE .MSCR"' JOC ' Interrupts and Exceptions AN C - : R DOV O NINONINIODNINY b —8 =3 —b b —b S = O 0 00 O NP — O 000 O TSN Intgrrunts an A MICRO2 P IANDE. Mic 28-NOV-83 L (MTO98.MCX 0 1M(01) lero oxtond the selected memory status and control register and push it on the stack. ttfitQQQtttttttfltiitttttttnntttltltttiQfititttfi*fiifl'{t*Qt*fifi**********‘***'l**'*'l a0 JIELWRITE. MSCR. ptadahuiidetstealaindini seseceve=se: [0AD MEMORY STATUS AND CONTROL fiETEMP9J MEMSCR, SET STACR FLAG PUSH,NEXT/MS.DéC.SP ; REGISTER ADDRESSED BY MSCAR : ; PREPARE TQ PUSH ON THE STA(K IE.WRITE MSCR,O: {lawmeaemocamomauacseseasennanes; Pl MUST BE 24 AND SL MUST BE 4 TO WRITE MCTEMP9].XZ,SIZECLONG), CLEAR STACK FLAG,RETURN [+11° : EXTRACT THE 4~BIT REGISTER, AND PUSH i [T ON THE STACK. i : ; ! i f ; - ; : - CMT098.MCX 1ANDE .MI1( - MICROZ 1M(01) —— e 28-NOV~83 16:30:35 e e e e e e c 9 CLOKX Rev 13.00, Clock rate = 160ns Interrupts and Exceptions : INTERVAL TIMER INTERRUPT :gggz; LJOC " Interrupts and Exceptions 138044 Entry points 1E,INT.TIMER Cutput MTEMPB New PSL FLAG? Set to indicate no more params o t INTERVAL TIMER INTERRUPT" ;38043 PR AR AR AR AR AR AR KRR RN AR AR A RN AAAR AN ER TN LAk A ok ;38045 ; 138046 . 138047 | :gggzg : 38050 Resources :38053 ; Subrout ines ;%ggg; : ;3gggg R :3 Interrupt vector address VA A save TCSR.TICR MTEMPS Used to reset the interrupt TCSR,1ICR A L IE. INTERRUPT R R LI LR AR R R AL AR A AR A AL AL AA AL A LA L AL LLLLL :ggggg ;IEINT.TIMER: VA_MCSCBBI+ZLITOCOCO0, 138061 OFGE: wu ADDRESS*wxwwxawn; k¥ xFORCE saex $38064 MCTEMPB] 7L 1160181, 5%3828 H SET FLAG2,NEXT/IE.INT.TIMER2 :ggggg 1E, INT, TIMER2: u OF6E, 0586,8037,0030,C047,00EE,E : LOAD THE MACRO_VECTOR ADDRESS. 38058 138065 NEXT/1E.INTERRUPT : NO MORE PARAMETERS TO PUSH. : SET IPL=18 IN NEW PSL. : INITIATE THE INTERRUPT, o Page 930| ! = 1 ; ; OF1D, 0081,9C10,0030,1487,0000,2 OF1F, 0D80,0D37,0031,02E7,00F8,A OF8A, 0D80,EC11,0037,A4A7,00F9,4 R A AR R AR AR Entry points RN AR AR ARk kA kA Nk 1 1T232223223 2223232323332 IE.TU58 20300t Cutput VA Interrupt vector address : Resources PL Used for r otatin : TY58 interrupts are signaled by th ¢ hardware Like a unibus interrupt : Temp to TEMP5 TUS8 registers. g registers. If a unibus interrupt is detected is passed to here from the ontrol ¢ occur and a write vector did not : without a write vector occuring. ; unibus interrupt flows. H ho ld TUS dt ;t****tfik******t*t*i***t***t**tttt*t*t**tt RRRRKKRRR AR K AR R AR ARk kA ko Kk kA kkt 1E,TUS8.CONT: (B .NOT.(MLIEMPSI.RR.P), WB<1-0>.NE.0? =0 i0mromem : FETCH TU58 RECEIVER C/S REGISTER & H ese sn e c e m e- NEXT/IE.UNIBUS. INTS : VA MISCBB]+ZLITOCOFO], : 8 0 T E IVER INTERRUPT, E IVER VECTOR ADDRESS. THE INTERRUPT. TRAR_ZLIT16L0€0] TU58 TRANSMITTER ¢ IF : LOAD ADDRESS OF TU58 C/S REGISTER MCTEMPS]_TUSBREGS : FETCH TUS8 C/S REGISTER 1 Sedudaduiatnbuainindeguntadedninieeliedtebin e: UB_METEMPS1.RR.P, wB<31=30>7 =01 8 INTERRUPT ENABLE AND D ONE BITS. ¢ E = METEMPSI_TUSBREGS,PL_L22.] X ~NONL SN =SSO0V e "o g ==l lmlelwleleliolls el alls] P 0 (v NN = Q000NN W= O 000~[o XV, 0F83, 0480,5177,06F0,0047,00F1,D €O GO Q0 00O 0fF?7e, 0C86,5036,4030,03€7,00F8,3 0o 1 0O 00 CO GO0 OF35, 0980,0037,0036,0267,00F7,E parQuirut-Guir Guir Guiruir Quir Guir- - G- G- uir puiry[=lelelelalel OF34, ©580,EC11,0037,84A7,00F9,4 €000 00 0000 0o 000 OF?7C, 0C80,5176,0380,0047,00F3,4 : E KA Oim IR =2 O DO NSNS 00 O U AN NN W T AN T O N G o L OF78, 0986,5EF6,4030,B3€7,00F7,C RN =3I et o~ o0 0o Q0 Co OO0 0o 0o 0O QD O gg(bcbCDODCDCDCDODCDODODODOO QOOOCOCOOOTOOOO OOOOOOOO =] OO0 O 0000 LG 00 CO00 000000 N N NN NNSNNN LYY U R T Rl i L i AN WA N 38067 : 38068 Page 160ns : TU58 INTERRUPT"' Interrupts and Exceptions : 38066 .T0C '* m TANDE .MIC O RT T T T e S S R TR TR T T AN AN AN U AN N L AN U AT N N NN Ut LN UM Loy LA U LA U U U : CMTO98.MCX - H 9 CLOKX Rev 13.00, Clock rate MICROZ2 M(01) 28-NOV~83 16:30:35 INTERRUPT TU58 : Interrupts and Exceptions ) T CHECK TUS8 XMTR INTERRUPT PENDING : BY ROTATING IT YO BIT 31, 107 =mmm o e L EL I e : PC_MCPCBACKI=-ZLITOL2], NEXT/GL.NOP.IRD1 1] mmnaa mmemm H NOT A REAL INTERRUPT, CONTINUE MACRO. H CAN'T LOAD PC AND DO IRD1 IN SAME CYCL . ——————————— —— TUSBREGS _ZL1716{20] CAMESeBRIIZLITOLOR NERT/IE UNIBUS. INTS TU58 TRANSMITTER INTERRUPT : CLEAR TUS8 TRANSMITTER INTERRUPT TUS8 TRANSMITTER INTERRUPT, LOAD TRANSMITTER VECTOR ADDRESS. : INITIATE THE INTERRUPT. 931 i : H CMT098.MCX 1ANDE .MIC MICROZ2 1M(01) 28-NOV-83 Interrupts and Exceptions E 16:30:35 9 Page CLOKX Rev 13.00, Clock rate = 160ns : UNIBUS INTERRUPT : UNIBUS INTERRUPT" ;%g%}g .T0C "' Interrupts and Exceptions ;38116 R A :gg}]g : A L R Entry points A A TR LA A AR A A AL S AR AL AR AL AL e e 1E.UNIBUS, INT 138119 : ;38120 utput MTEMPS VA New PSL Interrupt vector address 138123 ; :gg}sg ; Resources TEMP7 PC . Temporary Modified if not a real interrupt 3%2}59 ; Subroutines 1E. INTERRUPT 138128 : Issue a UNIBUS ;38130 ¢ ;38131 ;38132 . If a write vector has not occured then it may be a TU58 interrupt. Pass control to the TU38 interrupt code. If there is also no TU58 interrupt then point the PC back to the opcode of the :38134 : 38135 . 1f a write vector has occured then load the interrupt vector address into VA, load the IPL bits in the new PSL and jump to IE.INTERRUPT. :381¢29 ¢ ;38133 ; FE T ;38137 R grant then see if there is an interrupt vector in the MDR by chec ing MSCR #2. . interrupted instruction and continue. e e T L Set to indicate no more params FLAG2 :gg}s% : L L e e L e , . AL TR R A R AR R S S AR A A LA A AL :gg;gg :1C.UNIBUS. INT: 138140 ; MEMSCAR_ZL1T24[21, 238143 0F77: shxkaknkakFORCE ADDRESSthkdxxnnt; :gg}zg J NEXT/IE.UNIBUS. INT? * LOAD ADDRESS OF UNIBUS INTERRUPT REG. ; JUMP TO UNIBUS INTERRUPT ROUTINE. ;38144 1E.UNIBUS.INT2: U 0F77, 0086,8036,4030,066F ,00F9,0 U 0F90, 0886,7036,4030,0647,00F9,1 u OF91, 0980,7C92,0A70,0847,00F3,C 238145 e e R tuatatiadakele St ; ISSUE THE UNIBUS GRANT ; AND SAVE THE IPL IN MTMPS. :%g}zg BUS GRANT MLTEMPB]_IPL $38148 ;gg}gg emmmemmmemmememeeeameemcmsacoes ; MCTEMP7]_MEMSCR ; READ UNIBUS INTERRUPT REG. 138151 :38152 Jommm————— ——memseawenm———— m———— MCTEMP7] BIT24? : SEE IF THERE IS AN INTERRUPT, 932 | ; CMTO9B.MCX TANDE .MIC 23-NOV-83 16:30:35 MICRO2 1M(01) Interrupts and Exceptions F 9 CLOKK Rev 13.00, Clock rate = 160ns : UNIBUS INTERRUPT Page 933 38153 =0 38154 1E.TU58: U 0F3C, 0550,0037,0034,0267,00F7,8 U 0F3Dp, 0080,0587,0030,0607,00F9,2 38155 +38156 ;ggjgg 2 58) :38159 ;gg}g? 138162 u 0F92, 0C54,E592,4031,€047,00F9,3 138163 :§§}2§ 138166 U 0F93, 0C81,2015,0011,C4A7,00F9,4 138167 +38168 ;gg}gg Sae===s; CHECK FI TU58 RECEIVER INTERRUPT Py USRS * LOAD ADDRESS OF TUSB RECEIVER C/$S TRAR_ZL1T16[80],SET FLAG2, : JUMP TO TU58 FLOWS. NEXT71E,TUSB.CONT ettt MEMSCR_O bttt semm—— ' CLEAR BIT FOR READ LOCK TIMEOUT L LI L Sl* MOVE SCBB TO AN RYEMP NO MORE PARAMETERS TO PUSH. * FLAG2 SET RCTEMP?]_MLSCBBI, jmmmmet e m———————— —————— VA_ZEXT(MLCMDR]) +RCTEMP?], SIZECWORD], NEXT/IE.UNIBUS. INTS * COMPUTE MACRO VECTOR ADDRESS. : * INITIATE THE INTERRUPT. Egg;;g 1E.UNIBUS. INT5: U 0F94, 0986,8012,0030,F847,00EE,E 138173 138174 MCTEMPB1 _MB.AND.ZLIT16L1F], NEXT/1E.INTERRUPT % CLEAR NON IPL BITS IN THE NEW PSL. : 3 urd Interrupts and Exceptions 1ANDE ,MIC e ] : CMTO98.MCX N ; 28-NOV-83 16:30:35 MICROZ 1M(OT) 75 L1OC ' 6 9 CLOKX Rev 13.00, Clock rate = 160ns : CONSOLE INTERRUPT Interrupts and Exceptions Page 934 : CONSOLE INTERRUPT'' 138176 ;tt*******tt***tti*t*i****t****ttii**t*****i*t**t***t*t***it**t*************** ;%81?7 ’ :gg};g : Entry points IE.CONSOLE, INT 138180 Output MTEMPS New PSL FLAG2 Set to indicate no more params :38181 ; :%g]g% : ‘ { ’ ;38184 ; +38185 ; .38186 ; :gg}gg : :38189 : 238190 ; :38197 VA Resources CRAR Subroutines 1E. INTERRUPT TEMPS Interrupt vector address Temporary If there is a console receiver interrupt it is serviced first, if there is not a console receiver interrupt it is ASSUMED that there is a console transmitter interrupt. ;3%}8% ;*******t******ti*it***tt***tt*****tttt****«***Wtt****t*********************** ;3 :gg}gg ;1E,CONSOLE. INT: * LOAD THE NEW IPL INTO THE NEW PSL. 138196 : MCTEMPBY _ZLIT16014], 338199 0F9C: suiknsnvkkFORCE ADDRESS**wnxnwunw; :38201 :gggg% —— e o CRAR_ZLIT16L80] : LOAD ADDRESS OF CONSOLE RECEIVER U OF95, 0156.5EF6,4030,83C7,00F9,6 :38204 ;38205 ;ggggg T e MLTEMPS] _CONREGS,PL_[22.1, SET FLAG? ; * FETCH CONSOLE RECEIVER C/S REGISTER ; NO MORE PARAMETERS TO PUSH. U 0F96, 0480,5176,0380,0047,00F4,4 :38208 ;38209 38210 jmmemmmmmmmmme——mm——————————— ; : CHECK CONSOLE INTERRUPT ENABLE AND WB_.NOT. (M[TEMP5].RR.P), : RECEIVER PONE BITS. W821~0> . NE.0? $38212 =0 138213 e mmm—————————————— ; CONSOLE RECEIVER INTERRUPT, ;Qmmm : LOAD RECEIVE VECTOR ADDRESS. VA_MCSCBB)+ZLITOLOFB], :gg}gg : NEXT/1E.UONSOLE.INT2 :38200 IE.CONSOLE.INT2: U OF9C, 0580,0037,0034,0247,00F9,5 U OF44, 0180,EC11.0037,C4A7,00€EE,E U 0F45, 0980,0037,0036,0247,00F9,7 : JUMP TO CONSOLE INTERRUPT ROUTINE. : C/S REGISTER. ’%35}2 NEXT/IE. INTERRUPT 3 INITIATE THE INTERRUPT. 138214 138217 (emmmmemeammm————— ————— amee=; CONSOLE (RANSMITTER INTERRUPT 3LOAD ADDi: OF CONSOLE CONTROL AND STATUS CRAR_ZL1T16[0C0] cmro9a.ngé TANDE , M MICROZ 28-NOV~83 Interrupts and Exceptions 238218 16:30:35 H o9 CLOKX Rev 13.00, Clock rate = 160ns : CONSOLE INTERRUPT ;ggg;g 0F98, 0986,5013,8032,0047,00F9,9 ;gg%gg MCTEMPS]_MB.ANDNOT.ZLIT16[40] 138224 T OF9A, 0980,EC11,0037,E4A7,00EE,E :38271 : READ CONSOLE CONTROL AND STATUS s; e ——— jmmmemmemecmeoemmescmete e ; DON'T CLEAR HALT WHEN CLEARING XMIT ; CLEAR CONSOLE TRANSMITTER INTERRUPT ;ggggg CONREGS_MCTEMPS].0R.ZLIT16[20]1 138227 e wcemwmue; CONSOLE TRANSMITTER INTERRUPT, mmmm—mm—m—————————— 138228 138229 VA MCscBBI+ILITOLOFCT, NERT/IE. INTERRUPT LOAD TRANSMITTER VECTOR ADDRESS. : INITIATE THE INTERRUPT, ' Page 935 iemmvmmmcmmcuma—. nemcnammen——— MCTEMPS5]_CONREGS 0F97, 0486,5036,403C,03C7,00F9,8 0F99, 0D80,5D12,4031,02C7,00F9,A < 1M(01) : ; CMT098.MCX IANDE .MIC MICROZ2 1M(01) 1 28=-NOV~83 16:30:35 9 CLOKX Rev 13.00, Clock rate = 160ns Page 936 Interrupts and Exceptions : KERNAL STACK NOT VALID :%ggg? LT0C ' Interrupts and Exceptions ;%gg%z : Entry points IE.KSNV ;38235 : Input PSLLIS> PSL that would've been pushed if no KSNV $38238 : Output PSL PSL that would’ve been pushed if no KSNV FLAG! Clear to indicate on interrupt stack : KERNAL STACK NOT VALID' 338232 :ttt******ttt*tt**tt********t**t*****k**********k**i*t**t*titt*****w*t******** :%gg%g : ;38239 ; TEMP4 FLAGO :38240 ; FPDOFFSET Set to & if ISNV Resources MTEMPY Temporary to switch stacks :ggség : Subroutines 1E.50 An entry in IE.INTERRUPT 138251 ; Check PSL<IS> if it is set then hatt, otherwise switch to the kernal 138253 ; to IE.50 to finish initiating the exception. TEMPS :gggzz : 138245 ; 238246 138247 ; 138248 ; ;38252 ; :ggggls’ STACK FLAG MM NOINT :*****'«*tkki*******t*t********t******t*t*tt**itt*****'t**************i**l‘*t**** ;38258 ;%gsgg 138261 =101 } U OF9D, OD6E,CC37,0030,2047,0000,1 Interrupt vector stack, fetch the interrypt vector, restore the old PSL and jump Eggggg IE.KSNV: u OFOF, 0480,4002,403D,8007,00F9,D Clear to indicate an exception Set to indicate no more params to push 138242 ; _ U 0F0B, 080C,9592,4038,0047,00F9 E 1 means ISNV FLAGZ ;38241 ; U 0F9B, 0060,0036,4780,0207,08F0,B 479« 0 means KSNV, ; TURN OFF MEMORY MANAGEMENT INTERRUPTS. éET MM.NOINT, ; CHECK PSL<IS> IN NEw PSL. PSL<IS.CURM>? ;1011=m==m=mmmam—mmcmmoaeaaes w=; NEW PSL<I$>=0 MUST BE KSNV, 138262 RLKSP]_MLTEMPI], ; SAVE OLD STACK POINTER IN KSP. 138266 ;111 e mmmom e ——————————————— ; NEW PSL<IS>=1 MUST BE ISNV. CLEAR TLAGT, NEXT/IE.KSNV.10 : CLEAR TO FORCE IPL TO 1F. : :ggggg PSL_MLTEMP4] ; RESTORE OLD PSL. :38269 mem m e 238263 :%gsgg e e m—————————————— ; 238270 MCFPDOFFSET]_ZLITOLA], ; SET ERROR CODE 138272 NEXT/MS.HALT.MICRO H :38271 SET STACK FLAG, : TELL CONSOLE TO LOOK AT FRONT PANEL MICRO2 1M(0O1) CMT098.MCX 28-NOV-83 16:30:35 Interrupts and Exceptions 1ANDE .M1C J 9 CLOKX Rev 13.00, Clock rate = 160ns : KERNAL STACK NOT VALID .335;2 IE.KSNV.10: OF9E, 0486,95BE,4039,0047,00F9,F MLTEMP9]_RCISP] Iggg;g ;38277 . OF9F, 0150,EC11,0030,44A7,00FA,0 OFAD, 0168,0CB7,0030,26A7,00FA,1 OFA1, 0C00,0036,4030,0040,00FA,2 38285 ,ggggg 0FA2, 0C80,4002,403D,8007,00FA,3 . 0FA3, 0(95,2592,4271,4047,00F3,9 0F39, 0C2C,9592,4037,8047,00ED,F = :38288 * LOAD ADDRESS OF MACRO VECTOR. * NO MORE PARAMETERS TO PUSH. jememmmeemeccecccsesccssecesees ; SET IS=1 TO TRAP FAILURE OF READ.PHY PSL(PREV_CURM ISCURM_L4D), SET STACR FLAG * WRICH WILL FORCE AN ISNV. : jmmmmmemmseccemccmseecsaeoma.—- : READ THE MACRO VECTOR AND READ.PHY,CLEAR FLAGO * CLEAR FLAG TO INDICATE AN EXCEPTION. jemmemmmmem——e e —m——— e —————— ; ;ggsgg PSL_MLTEMP4] 138297 138292 mmwemesesmmessccecsccamsceceeoo- ; A : SAVE THE MACRO VECTOR. RCTEMPS]_MIMDRI,CLEAR TP, * RESTORE OLD PSL. R ;ggsgz WB<1=05>?" 138295 =01 138296 ;01 emem—mmmmccecc e aan————— ; VECTOR<1:0> = 1 OR O HANDLE ON IS. * LOAD NEW STACK POINTER FROM IS. RLSPI_MLTEMPOY, ;ggsgg NEXT/IE. 50 138297 :38300 0F38, 0C2C,9592,4037,8047,00EF,2 SET FLAG2 .ggggg :38282 .ggggz ' PREPARE TO LOAD NEW STACK POINTER., e Lt E L ; VA_MLSCBBI+ZLITOCB], 138278 138981 Page 937 38301 38302 ;38303 CLEARTMSTACK FLAG, ; * BRANCH TO END OF INITIATE ROUTINE. ;1T meae ewmwmemwmmmme=; VECTOR<1:0> = 2 OR 3 RLSPI_M[ TEMP9], CLEARTMSTACK FLAG, NEXT/IE.WCS.BASE 1 LOAD NEW STACK POINTER FROM IS. : i HANDLE IN WCS. - ; : CMTOQB'n?é 1ANDE., MICRO2 1M(01) 28-NOV-83 16:30:35 Interrupts and Exceptions Page 938 CLOKX Rev 13.00, Clock rate = 160ns : ACV AND TNV FAULTS :gg%gg .TOC ' Interrupts and Exceptions ;38306 R L L LR 238307 : 238308 ; Entry points T : ACV AND TNV FAULTS' LA AL S R AL LA AR AL A AL AL LA AR b 1E.ACV.READ IE.ACV.WRITE 238309 JE.ACV.XB : 38312 ; 1E.ACV.RBACK ;38310 ; ;38311 ; 1E.ACV IE.ACV.BUT 238313 ; ;38314 ; TE.TNV.RBACK IE.TNV : 38315 ; Error code (unless utrap entry) Faulting address (only utrap entry) ;38316 ;%gg}g : Input ERRCOD MM.TEMP3 338319 E Qutput VA FLAG? Clear to indicate more params to push 138392 ; Resources MM, TEMP3 Save faulting address on utrap entry :%g%g? : ;38323 . ;38324 , Subroutines 138328 : ;38329 ; ;38330 ; 238331 ; :36334 ; : 38335 ;38336 ; Temporarg TEMPO TEMP6 Save RBSP when rotling back Save faulting address IE.RBS.RBACK FPD=0 roll back MS.DEC.SP VA <= SP <= (SP = 4) 1E.FPD . PACK 1E.FAULT FPD=1 pack it up Initiate the fault Finish initiating the exception There are micro code detected ACV/TNV's and hardware detected ACV/TINV's which take different points. The hardware utrap entries must first set the error code and save the faulting address. : 38337 ; ;38338 ; ;38339 . ;38340 ; ;38342 Indicates if on interrupt stack FLAG1 IE.LOAD.PC#+1 ;gg%g% : LSRR Interrupt vector address D : 38325 ; ;gggsg ; U 002F, 0186,8(37,0030,2047,0002,8 S Then they all toad the macro vector address and either roll back register side effects or do FPD packing. Then 1E.FAULT is called and then the error code and faulting address are pushed on the stack and IE.LOAD.PC+1 is called to finish initiating the exception. 002F: AR TR TR SRR A TR AR R RS A LA L S A ;=*UTRAP ADDR#+ :gggzz T1E.ACV.WRITE: ALERRCOD) ZLITOL4], 138345 LA LA LA LSS AN dhddd it ddddubdddohidddaioldatdy JENTRY FOR MICRO TRAP DETECTED ACV WRITE Y SET ERROR CODE (SRM 5.5.4) :gg%zg NEXT/MM.WRITE,TBMISS 38348 002E: - xxJTRAP ADDRw* ; ENTRY FOR MICRQO TRAP DETECTED ACV READ U 002¢, 018¢,8C37,0030,0047,0037,6 3%3%21 MLERRCODI_ZLITOCO) ¢ SET ERROR CODE (SRM 5.5.4) ,F U 0376, 0885,2592,4039,8047,00FF ;%g%gg RIMM.TEMP2]_MLMDR] ; SAVE MDR ;38356 OFFF: :t(*kt\tttfoRCE ADDRESS*axxnaknn: :ggggg 1E.ACV.READ: U OEFF, 0C85,8592,4039,0047,0159,3 i3838% 0376: ;38357 . 38358 : ;erwassesFORCE ADDRESS*exsxexas; RIMM.TEMP31 M[VA], NEXT/MM.READ.NO.ACCESS ; SAVE FAULTING ADDRESS : ; : H MICROZ2 1M(OD) CMT098.MCX 28~NOV-83 16:30:35 Interrupts and Exceptions 1ANDE .MIC 38359 OFAE: L 9 CLOKX Rev 13.00, (lock rate = 160ns : ACV AND TNV FAULTS o Page 939 ;xwwnxnaxxFORCE ADDRESS*#xsaasns; 38360 FREE.OFAE: U OFAE, 0884,0036,4033,0647,00FA,4 138361 ;ggggg fommem—mom—cccceccmeeseea —————— : GET READ/MODIFY BIT TO SEPERATE RCMM. TEMP11_MEMSCR E%gggg IE.READ,ACV: U OFA4, 0C80,0287,0223,C047,0977,7 337+ U 1777, 0986,BC12,4030,2047,0177,F U OEF7, 0986,BC12,4030,2047,0002,3 WB_RCMM, TEMP11.RR. 24, 138360 17771 ;ggg;g ;xsaxasxaxFORCE ADDRESS**awxsnn; * TURN ON WRITE/MODIFY BIT IN ERROR CODE MLERRCODI_MB.OR.ZLITOL4] ;ggggg 138372 138374, WB35=057 , U OF2E, OD80,EC11,23F1,0047,00F5,0 U OF2F, 0C84,0021,0039,(047,00F5,D : ;esaxwaxwxFORCE ADDRESS¥haswhuns; MDR_RLMM,TEMPJ], NEXT/IE,ACV.CHK. CONSOLE 138375 OEF7: 138374 FREE.OEF7: * RESTORE MDR FOR PACKING ; ;sasgg :;;a;;;***ronce ADDRESS* % & % k% k% ; ;ggggg MLERRCODI_MB.OR. ZLITO[4] * TURN ON WRITE/MODIFY BIT IN ERROR CODE 138381 0023: ;**UTRAP ADDR** ;ENTRY FOR MICRO TRAP DETECTED X8 ACV 138384 MCERRCODI _ZLITOCO], ' SET ERROR CODE (SRM 5.5.4) 138387 OF2E: ;#asxsxaxaxFORCE ADDRESS*asaxwrun; 138380 b MLSCBRI+2LITOL20], 1383 : e m . —————————————— ;ggggg 1E.ACV.XB: U 0023, 0986,8C37,0030,0047,0002,2 { BRANCH ON READ/MODIFY BIT. 138366 138372 177F: U 177F, 0880,058E,4039,8467,00F8,0 * READ/MODIFY FROM STRAIGHT READS. ;ggggg 138388 NEXT/MM, XB. TBMISS : mc ' NO ACCESS (DIDN'T FAULT ACROSS A PB). e mm—— e ——————— 11110=mmmmmmemme * LOAD MACRO VECTOR ADDRESS. BRANCH ON FPD. ;gg%gg FPD?,NEXT/IE.PACK,DR.RBACK 138302 OF2F: ;1111=mmcemceccccnans mmmmmmmmmns; ACCESS OK (FAULTED ACROSS A PB), 138303 RLMM. TEMP3]_D+RB, 138305 OFBO: :wswsaxanxFORCE ADDRESS*h#wkauns; 138399 WB_MCFPDOFFSETY, ;§§§3§ NEXT/IE.ACV * INCREMENT ADDRESS INTO FAULTING PAGE. ; ;ggggg 1E.ACV. CHK, CONSOLE : L 0FB0, 0880,C592,46F0,0047,00F5,D 138400 WB231=30>?,NEXT/1E ACV ' CHECK IF IN CONSOLE MODE ; Interrupts and Exceptions 8 g NN = OO 00 NN B AN - Y P N LN N TR T LR I 01 NPV = OO QOIS AN = OO NN 0F33, 0986,8C37,0030,0047,04F8,6 Co 0D 0o 00 0o 0 00 0o G 00 0060 00 Co 00 00 60 00 O Co00 0o G0 GO0 0o 0F32, 0C80,0036,4030,0047,015F,¢ (N L AN A U 0F20, 0980,0037,2780,205F ,08F4,E 479+ O S N 0020, 0880,0036,4830,0047,00F3,2 N N N OFSF, 0480,0592,4230,0047,00F,8 N N NN O N U O N N N L 0F5D, OD80,EC11,23F1,0047,00F5,0 PR TR T ; OA R N N e O N O N e e e T e o o D . i PO AURINVIVAIMININVN) D 2 B b il 2 S S O OO DOOO O [ANDE .MIC 28-NOV-83 1M(01) AN N AN LAT N AT LT A AT LN O AR N U G L U O U e CMT098. MCX MICROZ E 8430 138431 13843 OF4E, 0D80,EC11,2031,0047,00F5,0 ,E OF4F, 0484,0021,0039,047,00F4 QFB1, 0580,€C11,2031,2047,0075,0 0F5D: 16:30:35 M9 CLOKX Rev 13.00, Clock rate = 160ns : ACY AND TNV FAULTS shunnkk ¥tk FORCE o1 1E.ACV: ADDRESS*aaastnus; * LOAD MACRO VECTOR ADDRESS. * BRANCH ON FPD. D MCSCBBI+ZLITOC20] FPD3 ,NEXT/1E.PACK. DR.RBACK 0FSF: 002D: o Page 940 ;11mmmmm=mm===wc=ce—ce—ccmaccae- ; EXAMINE/DEPOSIT FROM THE CONSOLE * RETURN TO CONSOLE OR BOOT, WB_MCFPDOFFSET],WB<5=0>?, NERT/1E.RET.T0.CN.BT. MV : ; ENTRY FOR UTRAP DETECTED BUT XB ACV ;**UTRAP ADDR#* 1E.ACV.BUY: © oy . -y S e T e P e e e s e b § OTHER UTRAPS?,NEXT/IE.ACV.BUT.1 i CHECK IF OTHER HIGHER PRIORITY UTRAPS. 0F20: 0F32: ;waxwxwxxxFORCE ADDRESS*xaaxxwaw; e s s s em m i IE.ACV.SAV.FA DOES RETURN=13 $0#HQ0=mmmmmmm ; CHECK FOR FAULT ACROSS A PAGE BOUNDARY PROBE READ?,SIZE[BYTE], ; LOAD 4 INTO D TO USE AS AN INCREMENT. RBACK L_2LITOL4] NEXT/1E.ACV. shxxkkkktxFORCE lE.ACV.BU{.1i . AR o ADDRESSwxkanmnun,; omom om0 o e e v NEXT/MM.GET.BUT.PTE 0F33: OF4E: e e e M : SOME OTHER UTRAP, DO IT FIRST. ;1%#]]mmmmmectmemememee—e——————— ; MCERRCODI_ZLITOLO3, PUSH,NEXT7ZE.ACV.SAV.FA * LOAD ERROR CODE (SRM 5.5.4) * SAVE THE FAULTING ADDRESS AND LDAD VA, sanxxxkdaxFORCE ADDRESSwhannmnnwn; IE.ACV.RBACK: :1110mmeeemmeevenaemanan ————— ; NO ACCESS (DIDN'T FAULT ACROSS A PB). * LOAD MACRO VECTOR ADDRESS, * ROLL BACK RBS (IGNORE FPD), :3843 ; gzgg D MLSCBBI+2LITOL203, NEXT7IE.PACK.OR.RBACK 138436 OF4F: 138437 ; gz%g ;111)==mmsmmmmm—ecmecacacasea. : ACCESS OK (FAULTED ACROSS A PB), * INCREMENT ADDRESS INTO FAULTING PAGE. * ROLL BACK RBS (IGNORE FPD). NEXT/IE.ACVTRBACK 138440 OFB1: ;xawawwxsxFORCE ADDRESS*awwawsns; : gzzg b _M[SCBBI+ZLITOL243, RIMM, TEMP31_D+RB, : 322% 1E. TNV.RBACK: 13844 138446 OFB2: NEXT/]E.PACK.OR. RBACK * LOAD MACRO VECTOR ADDRESS. * ROLL BACK RBS (IGNORE FPD). g' ;aetsxwwaaxFORCE ADDRESS*r*xxwwun; Y38447 FREE.OFBS: 0FB2, 0484,0036,4033,8647,00FA,5 138448 138449 omememvmmmemee———an cemmemn—e— : GET READ/MODIFY BIT TO SEPERATE RLMM, TEMP5]_MEMSCR : READ/MODIFY FROM STRAIGHT READS, | MICRO2 CMT098.MCX LANDE (M1C 28-NOV~-83 16:30:35 1M(01) Interrupts and Exceptions N 9 CLOKX Rev 13.00, Clock rate = 160ns : ACV AND TNV FAULTS :§§2§? IE.READ.TNV: OFA5, 00B0,0287,0223,8047,08F3,7 337+ 138457 ;38453 $38454 =11011 , OF37, 0080,05BE,4039,8467,0154,1 OF3F, 0880,05BE,4039,8467,00F8,5 , 0FB5, 0880,(592,46F0,0047,00F6,1 138459 138460 : THIS WAS NOT A READ/MODIFY, cnan e cc e ac ;11111 e emcmm : RESTORE MDR FOR PACKING MDR_RLMM.TEMP2], 138463 QFBS: ;wwaxxwx4xFORLE ADDRESS*k#*swkusn; 138466 W8_MLFPDOFFSET], 138uw6G OF61: jxnaxxaawxFORCE ADDRESSHarxaxux; ;0] emmsrcmmamen: comnnm————————— ; NEXT/MM,WRITE.TBMISS.10 ’§32§§ NEXT/IE,TNV.CHK.CONSOLE ;%gzg; ;%gzgg O NS WNND NI = OO O NN O O N o 0FB6, 0485,A592,4089,C4A7 ,03FE,D L S O O N N O el - 0 OO 0000000 0O CO COCOCD COCD A R O T T A ) 0F49, 0480,B592,4420,05D8,00EF,4 N 0F48, 0480,6592,4020,05D8,04(8,3 W) = O 000 N Lk 2l 2kl e NN NN 4 E U OF63, 0480,(.92,4230,0047,00€EF,8 ¢ WRITE TBMISS * TAKE A TNV FAULY 138464 1E.TNV,CHK.CONSOLE: :38465 jemmwmememiecssissesceocsssemee- ; TR TR TE TR PR TR T . * THIS WAS A READ/MODIFY, REDO AS A MDR_RLMM.TEMP2], o Lt LU N UM N LAY N AT LA U N NN G A AN U N W €00 0260 00 G0 Co Co 0o £ Co G0 OO CO 00 00 00 G0 0 0o 0 } m “rmmne; e e e ————— 111011 mmmmcm +38456 WRT31~-3057,NEXT/IE, TNV 238470 IE.TNV: 38471 0F61, 0580,EC11,25F1,2047,00F5,0 % BRANJH ON READ/MODIFY BIT. ; TS ] $38455 WB_RLMM. TEMPS5].RR.24, WBZ5=0>? ? Page 941 D MLSCBBI+ZLITOL24], FBD?,NEXT/IE.PACK.DR.RBACK OF63: ; * CHECK IF IN CONSOLE MODE ; LOAD MACRO VECTOR ADDRESS. * BRANC!! ON FPD. ;1]em=mcmmmmwmcammaoncmaca————- ; EXAMINE/DEPOSIT FROM THE CONSOLE W8 MLFPDOFFSET],WB<5-0>7, NERT/IE.RET.TO,{N.BT.MV : RETURN TO COWSOLE OR BOOT. : =0 1IE.ACV, PUSH PARAM: - 0 e v e o g T WKITE MCTEMP6],SIZECLONGI, PUSH,NEXT/MS.DEC.SP NRITE MCERRCODI, SiZELLONG], FLAGO? ,NEXT/IE.LOAD.P( 0FB6: sanakkxxx*FORCE O : PUSH THE FAULTING ADDKESS. ' PREPARE TO PUSH THE ERROR CODE. ' PUSH THE ERROR CODE. : GO LOAD NEW PT AND PSL. ADDRESS*atksdhis, 1E.ACV, SAV, FA: VA_RCMM. TEMP3]_MLPCJ, RETURN (=131 * SAVE FAULTING ADDRESS. s ALSO LOAD FAULTING ADDRESS INTO VA, N : - CMTO98.MCX IANDE .M I S T e e i . 28=NOV-83 16:30:35 MICRDZ 1M(01) Interrupts and Exceptions T g:gé L10C ¢ B 10 CLOKX Rev 13.00, (lock rate = 160ns : ARITH TRAPS AND TRACE PENDING FAULT i Interrupts and Exceptions : ARITH TRAPS AND TRACE PENDING FAULT' == S IE.ATCR JIE.FPICR !i : :§§49 238498 ; Entry points 1E. INT.DBZ : 8580 : - 138501 ; : g50§ H :38503 : 38505 . : 38506 : 38507 . Output 138508 138509 . $ 38510 Eggg}g 3 Resources 138515 ; Subrout ines VA - FILAG? FLAGS ERRCOD : PCBACK=2 to ! be pushed. Save trap code 1€, TRAP ; Each entry loads the proper trap code into ERRCOD then Loads the initfate the exception, then the trap code is pushed and 1E.LOAD.P(+1 }ggsis ;38529 138530 Q12: ; FORCE ADDRESS FOR HARDWARE BRANCH, MCERRCOD]_ATCR, NEXT/IE.ARITH.TRP :%ggg} 1E.FPTCR: MCERRCOD] _FPTCR,WB<5=0>7, E385g3 :3 g g :% 5%? 0FB8: NEXTZIE.FBA.FAULT, TRAP :: JUMP SAVE TO THE COMMON TRAP CODE. FLOW. : FORCE ADDRESS FOR HARDWARE BRANCH, ; E BRANCH ON tHE CODE FROM THE FPRA ; : tiiubidatatatldedat I del H MCERRCODI_CONX(2), SET Vv NExT/{E.CLEAR.TRP ¢ SAVE THE TRAP CODE. ; SET OVERFLOW. : JUMF TO COMMON FLOW. e FORCE ADDREGSweansnman; sxnnkrwt :% gzg 1e.FLT.pEC.DBZ: 138547 : ; cennnxnttxFORCE ADDRESSwhiwnswnn: 16, INT.DBZ: s E 54% 0Fg9: 138548 ? ;fltifiititfitflkfitti'tfifittfitt**t*****i****t**ifi**tit*ifit*fit*ttifi*\flfifitfitt‘t*flii*t ;38229 IE.ATCR: ;g 221 f IE.FAULT ;335 5 011: ;%gSS :38540 ‘ : ) indicate PC should be pushed on the stack. It will be clear on hardware detected traps which will cause is called to finish initiating the exception, 38537 ! Cleared to indicate more params to push Set on micro code detected traps to ;385 g ; :38533 } Macro vector address macro vector address into VA and calls IE.TRAP or [E.FAULT to :%82 4 U OFB9, 0186,B(37,0030,2047,00FA,6 , $38520 ; . 38521 ; U 0FB8, 0486,8737,0010,38E7,00FA,6 | 1E.LOAD.PC+? :%gg}g : 138519 | 1E . INDE X, RANGE ;ggg%; ; 138516 : ! JIE.FLY.DEC.DBZ IELFLT,OV 1E. TP FAULT : : 38504 . U 0012, 0486,8036,4230,0067,00FF,8 ; ;3 699 :tfik*fii**t*tt*****fitkfit*t*ttfittfifittflifl'itW"tttttt*ttfi*tt*tt**tt**ttt**tt**t** : 38499 ; U 0011, 0086,8036,4030,0067,00F8,4 ; Page -942| MCERRCOD] _ZL1TOC41, NEXT/IE.CCEAR. TRP : SAVE THE TRAP CODE, ; JUMP TO COMMON FLOW. . ; = OO0 NN NNNN N NNNNNOOROSONON O OO0 O N DN =D D00~ ONUN DN = OO0 NN U 001%, 0D50,EC11,0031,44A7,04EC,D P A R O R u OFA?7, 0580,8C12,0020,7DD8,00EF 4 A A A TR TR TR PR Y A u OF85, 0C84,073C,0027,84A7,00FA,7 PP U OF84, 0510,6011,0031,A4A7 ,04EC,C e A P T TR T U OFA6, 0458,0036,4030,00€7,00F8,4 PR PR TR TE u OFga, U15E,B037,0030,3847,00F8,4 T 1ANDE MIC €10 16:30:35 {LOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 MICRO2 v : ARITH TRAPS AND TRACE PENDING FAULT Interrupts and Exceptions P P TRPR ; CMT098.MCX 0A Page sonwannnanfORCE ADDRESS**aaswees; IE, INDEX RANGE: MCERRCODI_ZLITOL7] SET FLAG3 NEXT/IE.ARITH.TRP : SAVE THE TRAP CODE. y: JUMP TO COMMON FLOW. 1E.CLEAR.TRP: WB_ATCR,SET FLAG3 ;aeaxnsaxxFORCE 0 IE.AR]TH TRP: ; READ ATCR TO CLEAR TRAP. ADDRESSx*enswnns; YA MCSCBBI+ZL1TOL34], : LOAD MACRO VECTOR ADDRESS PUSH,NEXT/1E. TRAP : CLEAR FLAG? P : MORE PARAMETERS TO PUSH, [ TP ; PREPARE TO PUSH VA_RLSPI_RB-CONX(4) 1E.ARITH,PSH.CODE: 3 e e 0 g 0 e S WRITE M[ERRCODJ AND.ZLITOLOF], 0 00 S PUSH THE SIZELLONG] TRAP CODE. GO LOAD NEW PC AND PSL. NEXT/IE.LOAD.PC FORCE ADDRESS FOR HARDWARE BRANCH. IE.TP FAULT: VA MCSCBRI+ILITOC28], :: LOAD MACRO VECTOR ADDRESS PUSH.NEXT/IE.FAULT : SET FLAG?. H NO MORE PARAMETERS TO PUSH. (MT098.MCX TANDE .MIC MICRAZ2 1M(01) \ 83 28=NOV- Interrupts and Exceptions 16:30:35 0 10 ;gggg? .T0C ' Interrupts and Exceptions 238582 R 238583 ;38584 R AR A LA LAR A AA A ALA AL L AR AR AL A IE.CM.RESOP Entry points 1E.CM.BPT 138585 ; : 58586 . Page CLOKX Rev 13.00, Clock rate = 160ns : COMPATABILITY MODE EXCEPTIONS : COMPATABILITY MODE EXCEPTIONS' AALALLALA DAL LD b 1E.CM. 10T 1E.CM,EMT 1E.CM.TRAP : 38587 ; IE.CM.ILLINS ;38588 ;38589 ; I1E.CM,0DD :38590 ; 238591 . ;gggg% : Output VA FLAGZ Macro vector address Cleared to indicate more params tc push ;ggggg : Resources ERRCOD Save trap code : 38596 . Subroutines 1E.ABORT :ggggg ; :38599 ; IE.LOAD.PC Each entry loads the proper trap code into ERRCOD then loads the ;38600 ; macrg vector address into VA and calls IE.ABORT to ;38602 ; is calted to finish initiating the exception. initiate the exception, then the error code is pushed and IE.LOAD.PC :38601 ; :38603 LR A R : 38604 A AR R AL AR AT A AR AL A Rl AR AR R A AR At A al A el bl iddd ;38605 .REGION/IRDX.R1L,IRDPX.R1H/IRDX.R2L,IRDX.R2H :38606 =1111 :ggggg 1E.CM,RESOP: U 010F, 0186,8C37,0030,0047,00FD,A MCERRCOD] ZLITOLO], ;38609 ;38610 : 38611 =111« NEXT/IE.CR.FAULT ; LOAD RESERVED OPERAND ERROR CODE. ; JUMP TO COMMON FLOW, ;38612 1E.CM.BPT: 38613 U 000E, 0c46,8737,0000,05E7,014D,0 MCERRCODI_CONX(1), : LOAD BREAK POINT ERROR CODE. ;38616 NEXT/CM-TEST.OSR H 238615 ;38619 U 011fF, 0186,8€37,0030,1847,00FD,A 238621 :38622 138626 138627 ¢ CHECK FOR RESERVED OPCODES 0 jeeewecwescemceccscscmcscsececeses : MCERRCOD]_CONX(2), : LOAD [/0 TRAP ERROR CODE. MDR_ZEXT (DSR) ,SET FLAGO, NEXT/CM-TEST.OSR s CHECK FOR RESERVED OPCODES : MCERRCOD] ZLITOL3], : LOAD EMULATOR TRAP ERROR CODE. : 38623 =1111 :ggggé 1E. (M EMT: NEXT/IE.CM.FAULT 038628 =111 ;386%9 1E.CM.TRAP: ;38630 U 012F, 0986,8(37,0030,2047,00FD,A MDR_ZEXT(DSR) ,SET FLAGO, 238617 =111 ;38618 [E.CM,]OT: 238620 U 001, 0846,B737,0010,05€7,014D,0 sttty H :38614 e : JUMF TO COMMON FLOW. s m e — e s swees———— H ;38631 MCERRCOD] ZL1TOC4], ; LOAD TRAP ERROR CODE. 238632 NEXT/IE.CM.FAULT : JUMP TO COMMON FLOW, +38633 .REGION/IANDE.R1L,IANDE.R1H/IANDE ,R2L, [ANDE ,R2H/IANDE ,R3L, [ ANDE .R3H 944 ; : (MT098,MCX 1ANDE .MIC E 10 CLOKX Rev 13.00, Clock rate = 160ns 28=NOV-83 16:30:35 MICRO2 1M(OT) Interrupts and Exceptions : COMPATABILITY MODE EXCEPTIONS v OFBE, 0D86,8(37,0030,2847,00FD,A ;38634 OFBE: shxknkxktxFORCE ADDRESSHxwwxwxww; 'ggg%g NEXT/IE.CR.FAULT .38635 1E.CM. ILLINS: mmeomessessesscsssmcsaocsaoceoes : 038636 2 138637 MLERRCODI ZLITOL5], : LOAD JLLEGAL INSTRUCTION ERROR CODE. H JUMP TO COMMON FLOW. FORCE ADDRESS*xwkwwnwx; vkxkk shxkkk :38640 0FD9: .ODD: 1E.CM ;38641 Dt; Ol 138642 U 0FD9, 0DB6,BC37,0030,3047,00F4,C 138643 MCERRCOD] ZLITOL6], 238646 OFDA: k¥ k FORCE suxkkwk ;ggggg =0 CLEAR TP H LOAD ODD ADDRESS ERROR CODE. : NEXT/1E.CR.EXCEP .gggzg :gggzg IE.CM.FAULT: U OFDA, 0490,0036,4030,0047,00F4,C JUMP TO COMMON FLOW. ADDRESSH*#%wswnkk, : MUST CLEAR TP AFTER FIRST CYCLE ;38651 IE.CM. EXCEP ;38652 U OF4C, 0D10,ECT1,0031,84A7,04€EC,C 138653 138654 ;ggggg : 38657 U OF4D, 0C6(,073(,0027,84A7,00FA,8 138658 : 38659 :38660 ;38661 U OFA8, 0(28,B592,4420,05D8,00EF,4 Page 2 j0m=me=mmmemcccsccccosccmncnnsne- : H LOAD MACRO VECTOR ADDRESS. H MORE PARAMETERS TO PUSH. : VA MLSCBBI+ZL1TOC30], CLEAR FLAGZ, PUSH.NEXT/!E.ABORT P R e L VA_RISP] RB-CONX(4), b L O we—mmmeee : H : SET STACR FLAG e mmem s s e cm e o -: PREPARE TO PUSH. PUSH THE ERROR CODE. 138662 WRITE MLCERRCOD],SIZECLONG], ; ;38664 FLAGO? ,NEXT/IE.LOAD.PC ; GO LOAD NEW PC AND PSL. 138663 CLEAR STACK FLAG, H 945 : CMTO98.MCX 1ANDE . MIC MICROZ 1M(01) 28-NOV-83 Interrupts and Exceptions ;38665 .T0C '’ :;gggé .TOC '' 16:30:35 F 10 Page 946 CLOKX Rev 13.00, Clock rate = 160ns : ADDR MODE, RESV OPER, RESV OPCODE : ADDR_MODE, RESV OPER, RESV OPCODE'' Interrupts and Exceptions : FLOATING POINT FAULTS Interrupts and Exceptions ;§866é '-t*********t******t*t*****tti***t**tkt**t****t*******t**t**fi***t****fi******it* Entry points $38669 ; 138670 ; 138671 ; IE.ADDR,MODE IE.OPCOD.DEC 1E.0PCOD.CUST addressing mode fault opcode reserved to didital fault opcode reserved to customer fault IE.FLDBZ.FAULT floating divide by zero fault :38672 ; 38673 ; ;38674 IE.OPER.FAULT 1E.OPER.ABORT IE.FLOV,FAULT ggg;g ; 1IE.FLUN.FAULT ;38675 ; 38678 : Cutput 138681 - Resources 138685 ; Subroutines :ggggg : :38682 . :ggggz H 138686 ; ;38689 ; :38690 ; :38691 ; ;38692 ; A Macro vector address TEMPO Save RBSP when rolling back Set to indicate no more params to push FLAG? DREG FPDOFFSET Save macro vector address Used if FPD=1 see IE.PACK.DONE IE.RBS.RBACK roll back register side effects IE.ABORT Save the macro vector address in DREG, then roll back the register side effects or pack up if FPD=1. Finally move DREG (vector address) into VA and jump to IE.FAULT, for floating faults control will return and an error code will be pushed on the stack. AR A KA AR ARKRARRRIRKRARRE RN RN R KRARARA IR IR : 38694 ;38695 OFDC(: sxnakaxxx*FORCE ADDRESS**xxukwsw; $38698 D_MCSCBB)+ZLITOL1CT, :gggg? IE.ADDR.MODE: v OFDC, 0150,EC11,2030,E047,00F6,4 floating underflow fault 1E.FAULT 238687 ; ;38688 ; 38693 reserved operand fault reserved operand abort floating overflow fault :ggggg SET FLAG2,NEXT/IE.INST.FAULY KR I AR KA Ah AN h ARk khdk ¢ LOAD THE MACRO VECTOR ADDRESS. ; NO MORE PARAMETERS TO PUSH. 38701 .REGION/IRD1.RIL,IRD1.R1H : 38702 =000 :gg;gz IE.OPCOD.DEC: U 0380, 0D50,EC11,2030,8047,00F6,4 338705 :gg;gg _ ) MLSCBBI+ZLITOL10], SET FLAG2,NEXT/IE.INST.FAULT E LOAD THE MACRO VECTOR ADDRESS. ; NO MORE PARAMETERS TO PUSH. , IANDE .R3H .R2H/ IANDE .R3L IANDE .R2L, IANDEDE.RTH/ 138708 .REGION/IANDE.R1L,IAN :gg;?g IE,OPCOD.CUST: U OFA9, 0550,EC11,2030,A047,00F6,4 138711 ;38712 D_MCSCBBI+ZLITOL14], SET FLAG2 NEXT/IE.INST.FAULT ¢ LOAD THE MACRO VECTOR ADDRESS. : NO MORE PARAMETERS 70 PUSH, CMT098.MCX TANDE .MIC MICRO2 1M(O1) 28-NOV-83 Interrupts and Exceptions 16:30:35 6 10 CLOKX Rev 13.00, Clock rate = 160ns : FLOATING POINT FAULTS ; FPA RESV OPER IS DETECTED BY A UTRAP :38713 2C: s **TRAP ADDRx** 138715 =eesmeescsccaccccwccoceocaas remm—— 138714 1E.FPA. FAULT ) 002¢, 0150,EC11,2030,047,0001,2 138716 2= ;gg;}g Page 947 M[SCBBJ+ZL1 0C18], T FLAG2,NEXT/IE.FPTCR ‘ LOAD THE MACRO VECTOR ADDRESS. : GO DECODE TRAPS VS FAULTS 238719 I1E.OPER.ABORT: ;38720 OFAA, ODS0,EC11,0030,C4A7,008C,C :38721 2= jemmem—mssscccccccccccsscoceeses : VA_MLCSCBBI+ZLITOC18], SET FLAG2,NEXT/IE. ABORT ;;g;g% 138724 OFFB: H LOAD THE MACRO VECTOR ADDRESS. : NO MORE PARAMETERS TO PUSH. ;wxxaxwkxxFORCE ADDRESS**htkknu«,; ;38725 1E.OPER. FAULT: ;38726 1E.FPA. FAULT TRAP: 138727 :111000=wm~==mm—ecccmcarn—ccenan : RESERVED OPERAND FROM FPA, H LOAD THE MACRO VECTOR ADDRESS. D _ML[SCBBI+ZLITOC18], ;38728 0fF8, 0950,EC11,23F0,C047,00F6,4 OFF9, 0486,8737,0000,0047,00F8,4 :; ROLL BACK OR PACK UP? p; NO MORE PARAMETERS TO PUSH. 138729 ;%g;g? FPD?, SET FLAG2,NEXT/IE.INST.FAULT ;38732 0FF9: 238733 e m e — e — e ; INTEGER OVERFLOW FROM FPA. e mmm ;11100 memm : SET _ERROR CODE MLERRCOD] _CONX(1), : TAKE A TRAP. :%g;gg NEXT/IE.ARITH.TRP : 38736 OFFB: srwnknx k¥ *FORCE ADDRESS**htwhnkk; :38737 IE.FLOV.FAULT: s m e e mum 1111011 ~emm 38738 OFFB, 0516,8C37,0030,4047,00FA,B 38739 MCERRCOD] _ZLITOLB2,CLEAR FLAGE,. ;38742 QOFFC: sakkkkkxx*FORCE ADDRESS***tutwun; '3352? NEXT/IE.FCT.FAULT SET ERROR CODE & INDICATE MORE PARAMS ;38743 1E.FLDBZ.FAULT: e mm e m e e m—— JIMM100-mmmm 138744 OFFC, 0116,8(37,0030,4847,00FA,B 138745 MCERRCOD]_ZLITOC9I,CLEAR FLAGZ, : SET ERROR CODE & INDICATE MORE PARAMS :%g;zg 38748 NEXT/IE.FCT.FAULT QFFD: sukhankkkkFORCE ;38749 IE.FLUNJFAULT: 1110 memmrm e mma e e ccc acam——a ;%g;g? OFFD, 0116,8(37,0030,5047,00FA,8 ADDRESS**%auknnn, MCERRCOD]_ZLITOCOAJ,CLEAR FLAG2, ; SET ERROR CODE & INDICATE MORE PARAMS NEXT/IE.FCT.FAULT ;gg;g% : . 38754 IE.FLT. FAULT' OFAB, 0980,EC11,23F1,A047,00F6,4 138755 ;38756 138757 2= jeseserecscecceccccsseccsessesses) D MLSCBBI+ZLITOC34], PD° NEXT/IE.INST.FAULT H* LOAD THE MACRO VECTOR ADDRESS. H H : MICROZ2 CMTO98,.MCX 28-NOV~83 1M(01) Interrupts and Fxceptions 1ANDE .MIC 38758 0F64: 16:30:35 H 10 CLOKX Rev 13.00, Clock rate = 160ns : FLOATING POINT FAULTS sxkwnkxkxxFORCE ADDRESSwA%xwxxuwk; 59 IE.INST.FAULT: 60 H ettt ——— BEGIN RBS ROLL BACK. U OF64, 0885,E036,4B80,0047,064F5,A U OF65, 0D86,CD91,0230,3847,08FC,0 377« _ J 0F66, 0018,0021,003D,84A7,04EC,D U 0F67, 0084,073C,0027,84A7,00FA,7 ; SAVE RBSP TO LOAD INTO THE STEPC. : CHECK FOR RBSP = 0. H ROLL BACK THE GPR SIDE EFFECTS. 61 62 gz R[TEMPOJ RBSP, RBSP.EQ.07?, PUSH, NEXT/IE RBS.RBACK 65 OF65: bl ) it 66 M[FPDOFFSETJ MB+ZLIT8(7], 69 0F66: 70 385?% ;10-m=cecmcrccoscccnccccannnonne= H RBS.RBACK DOES RETURN + 2. VA_D+RLZERO], H LOAD MACRO VECTOR ADDRESS. CLEAR FLAG3, : PUSH PCBACK = 2. PUSH,NEXT/IE.FAULT : GO INITIATE THE EXCEPTION. 238774 QF67: ;38775 B Rttt utettetatmatt VA_RLSP]_RB-CONX(4), 2; 2 38776 H SET CODE FOR RETURN FROM FPD.PACK : WB<5=057 ,NEXT/1E.FPD.PACK NERT/IE.ARITH.PSH. CODE el FPD WAS SET, PACK !T UP, L) : : PREPARE TO PUSH PARAMETER : Page 948 H s CMTO98.M%§ 1ANDE . MICRO2 1M(01) 28-NOV-83 16:30:35 110 Interrupts and Exceptions ;gg;;g .T0C ' Interrupts and Exceptions 338779 Lt Rt R A T L L T : INTERVAL TIMER SERVICE' S 1E.ICR.DOSERV 1E.ICR.SERV Input MM. TEMPO TCSR.IICR 138785 Output MM. TEMPO TCSR.IICR Resources SPNICR,.SPCIR TCSR.IICR . : 38790 . ;38791 ; This routine does micro service of the interval timer. It has two functions, transfer the SPNICR into the SPICR and 138794 ; SPNICR is the upper 16 bits of the NICR, and ;38796 ;38797 138798 ;38799 :38800 L ; ; . ; ; AR A L increment the SPICR, SPICR is the upper 16 bits of_the ICR. These are both storec :.n one 32 bit register called SPNICR.SPICR. SPNICR.SPICR actually contains SPICR+1 in the lower 16 bits and SPNICR in the upper 16 bits, This is done so that when SPICR is incremented to a state of all ones ( time to set VP ) the stored value will be zero making testing easy (MFPR must take this into account). e e L It A S A S A 238802 AR A :ggggé IE.ICR.DOSERV: :38806 PC_MLPCBACKI-ZLITOL2], 138809 OFBE: ;*xaxxtxxxFORCE ADDRESS*¥wsxsnx; P38813 OFBF: ;x4xaxxaxxFORCE ADDRESS**wxxxxs; 138816 MCMM. TEMPOT TCSR.IICR, +28819 0FEQ: sukkkkektk FORCE ADDRESSH*xxxkhxx; 38821 ;38822 238823 WwB<5=-0>7 :%gggg 238810 :%gg%; NERT/IE.ICR.DOSERV2 Q=== IRD1 m e e nccn e e s e ;ggggé IE.ICR.DOSERV2: ;ggg}g AR S AR AR SR AL AL LA AL ALl b el : FORCE ADDRESS FOR HARDWARE BRANCH. ;38803 14: U OFBF, 0886,0036,4030,01E7,04FE,0 hardware entry point micro code entry point E§g;gz ; ;38795 ; . U OF8E, 0080,0036,4130,0047,003F,9 A IR AL LA LA A AR AR A E A AL b Entry points ;%g;g% : U 0014, 0081,9C10,0030,1487,00F8,F A A A ;38780 ; ;gg;g; : ;38786 ;38787 ; ;38788 ; : 38789 . Page 949 CLOKX Rey 13.00, Clock rate = 160ns : INTERVAL TIMER SERVICE PUSH,NEXT/IE.ICR.SERV * BACKUP PC BECAUSE IRD1 WILL BE : DONE AT COMPLETION ON TIMER SERVICE. ne s CATCH RETURN-1 FROM DOSERV DETECTED : TIMER SERVICE. * BEGIN TIMER SERVICE DETECTED : DURING DOSERV OF IRD1. ;38820 IE.ICR.SERV: U OFEO, 0080,D386,0210,0047,08F8,3 337+ WB_.NOT, (MCMM.TEMPOI.RR.16), ¢ BRANCH ON TCSR<SR,TR> YD CMT098.ME§ TANDE .M MICRO2 1M(O1) 28-NOV-83 Interrupts and Exceptions 0FB3, 0482,0287,0018,8047,00FA,C 16:30:35 J 10 CLOKX Rey 13,00, Clock rate = 160ns : INTERVAL TIMER SERVICE sukkkkkkcxFORCE ADDRESS*¥xwxnnns; ;38824 0FB3: 128825 1£,1CR.SERV2: ;110011 =scmmcmmmmcnmncccncme——e : : 38826 ;gggsg SPICR_SPNICR,NEXT/IE.ICR.INC 138829 OFB7: ;4xsxxkxx«FORCE ADDRESS**awxkikx; 138830 IE.ICR.SR: 138831 C 0FB7, 0882,0E7C,0B58,8047,08F4,2 407% OFBB, 0482,02B7,0018,8047,00FE,7 OFBF, 0080,0036,4080,0047,03FF,F e ————— ; TCSR<SR> IS SET, INCREMENT SPICR. 211011 =mmmcmmemmeeccme RLSPNICR.SPICR].SIZ RB+1, SIZECWORD],SIGND CMP?, 138834 OFBB: ;ggggg ;11101]=mem~eeme=me—ea——ameaaa. ; TCSR<TR> IS SET, DO A TRANSFER, SPICR_SPNICR,NEXT/IE.ICR.SR * TRANSFER SCRATCH PAD PORTION OF ICR. ;11111 mwmommmvacmmomcmcnmeneee ; 138839 OFBF: ;gggzg NEXT/IE.ICR.VP RETURN [=11 E%ggz% IE.ICR.INC: OFAC, 0082,0E7¢,0018,8047,00F8,7 * INCREMENY SPICR, DON'T CHANGE SPNICR. * IF RESULT WORD IS ZERO, THE CLOCK 138832 38833 ;ggggg 138844 ;gggzg RLSPNICR.SPICR1.SIZ_RB+1, SIZECWORD],NEXT/IE.TCR.SR : 1S ABOUT TO OVERFLOW, SET TCSR<VP>. * RETURN = 1 * INCREMENT SPICR, DON'T CHANGE SPNICR. : 138847 =10 138848 IE.ICR,VP: 0F42, 0D86,DF13,8084,0167,03FF,F 138849 138850 e mm—m—m e mm——————— : ICR IS NOT ABOUT TO OVERFLOW, :]Q=mmmmm— fALMM. TEMPO] _MB.ANDNOT.OLIT16[801, ; DON'T WRITE A 1 TO TCSR<IR>, ;%gggg RETURN [=1] 38851 38854 “\ 0F43, 0986,DD12,40%0,1047,00F4,2 +38855 38856 WCTRL/TCSR_RB, Y WRITE TCSR CLEARING SR AND TR. + RETURN-1 ; ICR IS ABOUT TO OVERFLOW, e P MCMM. TEMPOI_MB,OR,ZLIT16[2], NEXTZIE.ICRTVP : SET TCSR<VP> : N Page 950 H : CMY098.MLX TANDE ,MIC MICRO2 1M(01) 28-NOV-83 16:30:35 Interrupts and Exceptions ;ggggg .TOC '* K 10 : SERVICE INTERRUPT PENDING OR TIMER R A A s A A Entry points :ggggz : Input FPDOFFSET 138865 ; :ggggg : Resources MM, TEMPO TEMPO $38868 Subroutines .ggg;q ; 138872 $38873 ;38874 ; ;38875 ;38876 ;38877 A AR A A AR SR AR AL AR AR LA 1E.SERV.IP.TS 1E.SERV.IP.TS2 : 38860 ;38861 ; . 38869 : SERVICE INTERRUPT PENDING OR TIMER'' Interrupts and Exceptions 338859 el 138862 ; Page 951 CLOKX Rev 13,00, Clock rate = 160ns IE.RBS.RBACK 1E.FPD.PACK SR AR LALLM (not if timer service only) Save TCSR.IICR when servicing timer Save RBSP when rolling back Roll back register side effects Pack up FPD instruction 1E.INT.WIDE.BRANCH Service the interrupt If the microcode execution flows detect timer service or interrupt pending it can pass control here and all packing/rollback witl be taken care of and the interrupt initiated. If timer service is needed it will be taken before the interrupt and if only timer service is needed control will return to the execution flows with a RETURN-1, ***t :38873 ;**t*tt**tt***itittvmtttt**t*ktttt*'&***t*******kt*****kk****************** ;3887 ;wwurxwnwkFORCE ADDRESS*¥k#ahwik; ;38880 QF6D: ;38881 IE.SERV.IP,TS: U OF6D, 0C80,0036,4AF0,0047,00F7,0 . U QF6F, 0880.0036,4080,0057,03FF,F U OF?70, 0C80,0036,43F0,0067,002A.8 U OF71, 0886,0036,4030,01E7,04FE,0 ;38882 mmnan———. ; NOT CONSOLE MODE, PROCESS INTERRUPT t e e m st 0o ;%gggg NEXT/IE.SERV.IP.TS2 138886 OF6F: ———— ; CONSOLE MODE, SIMPLY RETURN ;11===== B T $ 38883 sAVOID MACHINE HANG CLEARING TB : COMPLETE CPU BUS CYCLES, RETURN [~1] 138890 OF70: ;x%#xx#*xxFORCE ADDRESS*%kxxkwn; ;38891 IE.SERV.IP, TS2: mmncnas v 100 = ;38892 : 38893 CLEAR FP TRAPS, e mm - : RETURN=-1 FROM IE.ECR,SERV, ; CLEAR POSSIBLE ERRONEQUS FPA TRAPS :%gggg FPD?,NEXT/IE.SERV.FIX.VA ;38896 0F71: ataddeied ; TIMER SERVICE AnD INTERRUPT, Rt ettt ;38897 :ggggg ;38901 ;§338§ 138904 0F73: U 0F73, 0086,D036,4030,01€7,00FE,0 H : : 38887 ;ggggg 338900 0F72: U 0F72, 0880,0036,4080,0057,03FF,F INTPEND QR TIMER?, ;38505 + 38906 MCMM, TEMPO] TCSRLIICR, PUSH,NEXT/IE.ICR.SERV s CHECK TO SEE IF THE VA NEEDS FIXING FIRST DO : TIMER SERVICE, THEN RETURN-1 AND ;s SEVICE THE INTERRUPT, 10mmmmenmccmenan—. o dabatuidnlnduted il ) : NO INTERRUPT OR TIMER SERVICE, COMPLETE CPU BUS CY(CLES, RETURN [-1] sAVOID MACHINE HANG CLEARING TB : ;1]=mmmmmm=ecm—sccecsccececeece- : TIMER SERVICE ONLY, MIMM. TEMPOJ_TCSR,IICR, NEXT/IE.ICR,SERV ; TIMER SERVICE WILL RETURN=-1 + CALLING ROUTINE 70 MICROZ MO 28-NOV-83 Interrupts and Exceptions PR Y CLOKX Rev 13. O Clock rate = 160ns : SERVICE INTERRUPT PENDING OR TIMER Page 952 1*****'**FORCE ADDRESS*********; IF FAULT OM READ SECOND 000C: 000D: 00 : ROLL BACK RBS OR FPD THE INSTRUCTION. ;Twswxxxw*FORCE ADDRESS**kkkkkix; VA_MCVAJ-ZLITOL4], CLEAR STACK FLAG, FPD? NEXT/IE.SERV.IP ;00= s F1X VA FROM UNALIGNED READ : CLEAR TO AVOID ERRONEOUS KSNV ; ROLL BACK RBS OR FPD THE INSTRUCTION. mmm o -=; FPD IS CLEAR. RLTEMPO]_RBSP, RBSP.EQ.0?,CLEAR FLAG3, PUSH,NEXT/1E.RBS.RBACK D OO NON NI ; CHECK IF VA NEEDS CORRECTING sOnnxswkxxFORCE ADDRESS**xxuwkkk; FPD’.NEXT/IE SERV.IP 1P: 1E.SERV. ; SAVE RBSP TQ LOAD INTO THE STEPC. ; CHECK FOR RBSP = 0, ! ROLL BACK THE GPR SIDE EFFECTS. ----------------------------- ; FPD IS SET. MfFPDOFFSETJ MB+ZL1T8L4], WwB<5-0>7 ,NEXT/IE.FPD. PACK ; SET CODE FOR RETURN FROM FPD.PACK : PACK IT UP, m ; RETURN FROM RBS.RBACK s e mes e ;10mmmmmwmmmmcmmemme MICRO VECTOR?, : BRANCH TO INTERPUPT ROUTINES, CLEAR TP, NEXT/IE.INT.W]DE.BRANCH 1n AN y 0r82, 0c90,0036,4780,0047,0803,8 479« L 19 STACK FLAG? =2 u OF81, 0D86,CD91,0230,2047,08FC,0 377% F T U 0F80, 001D,E036,4BB0,0047,04F5,A 16:30:35 02AB: 1E.SERV,.FIX,VA: R A S S U 000D, 0529,8C10,03F0,24A7,00F8,0 TR TR P U 000C, 0CBO0,0036,43F0,0047,00F8,0 PR TS TR PR PR P U 02AB, 0080,0036,4680,0047,0000,C NI — SO0 NONNSNMAN = OO 00~ CMT098.MCX TANDE.MIC ) : : 'ON INTERRUPTS. ; CLEAR PSL<STP> ; ; cMTO98.n§§ 1ANDE, M 10 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 16:30:35 MICROZ2 1M(OT) Interrupts and Exceptions : 1E,RBS.RBACK :ggggg .TOC '* 333937 R $38938 ; : 38939 138940 ; 138941 ; 138942 ; 238943 138944 ; :38945 ; 138946 ; Interrupts and Exceptions A A e Entry points Page 953 : 1E.RBS.RBACK"' A R AR A R RS LA AL AL AR AEE LA AL A AL AL AL AL AL LA 1E .RBS.RBACK TEMPO Input Resources RBSP STEPRC RNUM IE.RBS.RBACK is a routine to roll back the gpr side effects recorded in the register back up stack (RBS), in order to restart an instructton, .'389107 ;ti*iit*******tt**t*****kt***********t*t'fll******ttt*tt******i***************** 138948 138949 = :gggg? 1E,RBS.RBACK: U OFSA, 0080,03F7,003D,C107,00F7,4 U 0FSB, 0880,0036,4080,0047,0000,2 238952 STEPC MLTEMP0)<3-0>. ,RBSP_O, ; LOAD RBSP INTO THE STEPC. :ggggz NEXT/TE .RBS.LOOP : 138955 ;%gggg {]emmemmee—csmsewecnmess———em—= ; THE RBSP Is ZERO, THERE ARE NG RETURN [+2] ; REGISTERS TO BACK UP, JUST RETURN, 138958 =0 ;38959 IE.RBS.LOOQP: 138960 U 0F74, 0887,(036,48B0,0047,00F0.4 U QF75, 0880,0036,4080,0047,0000,2 238961 ;gggg% 338966 :ggggg 0m m m e n oo - RNUM_POPRBS MTEMPO_POPS]1Z, RBS ¥ OR - ?,NEXT/TE.RBS,UNDO H s TEST I'OR INCREMENT OR DECREMENT. s lmmomme - ———— ,mmme - s THE STEP COUNTER IS ZERO, THE RETURN [+2] ; BACK UP ]S COMPLETE. 138967 =0+ 238968 I1E.RBS,UNDO: U OF04, 0084,03FD,033(,C047,00F7,4 U 0F06, 0484,03F(,033(,C047,00F7,4 138969 ;38970 ;ggg;; et ahelobdedodobababe bbb : THE GPR WAS DECREMENTED, R RLGPR.RI_MLTFMP0]<3-0>+RB, ; ADD THE SAVED SIZE BACK_IN, : 38973 pDBZ STEPT?,NEXT/IE.RBS.LOOP ; CONTINUE POPPING RBS UNTIL STEPC=0. T e PRt : THE_GPR_WAS INCREMENTED, 138975 D82 STEPU?,NEXT/IE.BS.LOOP ;38974 R{GPR.R]_(RB-MLTEMP0]<3~0>), ; SUBTRACT THE SAVED SIZE OurT, ; CONTINUE POPPING RBS UNTIL STEPC=0. i TOC o 16:30:35 IR TR kR kAR Entry Points Page CLOKX Rev 13,00, Clock rate = 160ns ¢ IE.FPD,PACK"' Interrupts and Exceptions AR KA RRNRIRANAR N AN NRIN AR KRR A I ARk Ak kkkkhk ke 1E.FPD.PACK khkkw This is a table of the first instructions of FPD Pack1ng routines, 6&U§25u88d by driving FPDOFFSET onto the WBUS and branching on > R N N 10 IE.FPD,PACK shkkkkkk Ak kR T O DO DO O D2V 0OV OOO0 OO O 000 2 00 00 0R CoOCR U000~~~ = OO0~ N =000 -~ AN R R e T T R R L - AN A A R N RN uwwww NN Tocln le 2o loolo] €000 Co 0000 [o TeclalasTo 36)76 T LANDE . MIC 28-NOV~83 MICRO2 ¢ Interrupts and Exceptions This table is branched to from 4 places, IE.SERV.IP.TS (initiate an interrupt), IE.ACV (initiate ACV/TNV), {E.OPER.FAULT (initiate reserved operand fault), and IE.MACH. (HK.RBACK (machine check fault). THESE ROUTINGS DO NOT DO A PUSH TO GET HERE, F R CMTO98.MCX M0 This is to allow some pack routines to regain control by doing a RETURN, the normal thing is to iump to 1E.PACK.DONE which will return control to the proper initiation routine using the code saved in FPDOFFSET<10:8> (see IE.PACK.DONE). SRRNKRK R Tk W % fe ok o e ok ek e ek o e e o ok i il o ok e ok g ok i ok o ok e e o e e ol Wk ek Ok ek . SEQUENT 1AL 0F C: 1E.FPD.PACK 0FCO, 0880,0036,4080,0047,0000,4 ;000000=====m= mm————————————eaee : ;00000) = mmemm QFC1, 0432,0E7(,0004,8047,0070,2 ; EDITPC (RETURN + 4) RETURN L[+4) e cm o e m s vmmnae ; POLYF PACK ROUTINE RCR2]1.S1Z_RB+1,S12ECBYTED, NEXT/FP.POLYF .FPD.SAV,10 : ; ;000010 =mewmmmmm———————m e ; POLYD PACK ROUTINE C RCR2]. s Z_RB+1,SIZECBYTED, 0FC2, 0482,0E7C,05C4,8047,0061,8 READC(FLAGT)?, NEXT/FP.POLYD.FPD.SAY.10 OFC3, 0C85,A592,4034,0047,0071,7 RCR3]_MLPCI,NEXT/CR.CRC.SAVE : : WAS THIS SPECIAL CASE ; 100001) =mmmmmmmemnmcmmmcaaanaa~ ; CRC PACK ROUTINE ; SAVE THE STREAM ADDRESS. 1000100~ m=mm—=sommcemmcmccama——~ ; BUT XB TBMISS WITH FPL=1, DO NOT PACK, : PUSH PCBACK-2 CLEAR FLAG3, OFC4, 0418,0387,0200,0047,08F5,0 337% W8 MCFPDOFFSET],.RR.8, WE25-057 ,NEXT/TE . PACK.OR.RBACK ; SPLIT FLOW BACK INTO INTERRUPT OR : EXCEPTION FLOW THAT CALLED IE.FPD.PACK (S.SC.SP AN, PACK: QFC5, 0480,0036,4030,0047,0089,2 1000101 ~cmcmmmmnmman e ———:SCAJ SPAN BONNIE NEXT/CS.SC.SPAN. PACK BEGI *G0 TO PACK ROUTINE FOR SCAN SPAN CS Locc. SKPC.PACK: 10001 10~mmmmmmnmm——me———————— ;LOCC SKPC BONNIE U OFc6, 0C86,5387,0010,0047,008D,E MCTEMPS] MB.RR.16, NEXT/CS.[0OCC. SKPC.PACK.BE JMTMPS _2'FILLY?Y? ; (MT098.MCX LANDE (M1 ( 11 Page 955? CLOKX Rev 13,00, Clock rate = 160ns 28-NOV-83 : 1E.FPD.PA CK Interrupts and Exceptions M(01) 0F(8, 0886,2036,4030,0387,208C,A CHC PACK: ,§9859 CS.MAT ?03511~ ---------------- ——m——:R2_10 IN BITS 31-30 336026 0fFC7, 0484,8002,0034,8047,00FE,2 16:30 3 R21_MLTEMP8],AND,RS, {NOTPACKING JUST RET PACK. DONE NEXT/IE 3 ‘%38 3390%1 €S.CMP.PACK: 120032 :001000~======s=anacceca m——m————;CMPC3 CMPCS BONNIE ;39058 139033 ;ggggg 139037 0F (9, 0986,5012,0037,F847,008A,6 39038 ‘%3823 :TEMP2 GETS FLAGS MCTEMP2]_FLAGS, NEXT/CS.TMP.PACK .BEGIN 129034 CS.MOV.PACK: 1001001 vemomomnnnn e anin i e MCTEMPS] MB.AND.2LIT16[0FF], CHARLIE : MOVTC MOVTUC BONNIE e ———;JMOVC3 MOVES NEXT/CS.ROV.PACK.BEGIN 1 MTMPS JO'FIEL'0'0 : +39041 DS.CVT.PACK: 139042 OFCA, MTEMPO_R[TEMPBJ-P(BACK, }§98«6 CMPP, ADDP, SUBFP, MULP, ASHP,DIVP 5001011 mmmmmmman= mmm———————:MOVP, PUSH PCBACK ;33022 139047 0F(B, 0418,0387,0200,0047,08F5,0 :001010mwmonmemmnnnnnnnen e —————;;CVTPS, CVISP, CVITP, CVTPT 139043 139048 ‘§38§8 NEXT/DS.CVTXX. PACK CLEAR FLAG3 WB_M[FPDOFFSETI.RR.8, wB25-0>? ,NEXT/1E.PACK.OR.RBACK 3%3831 F1.POLYF.FSD1 AVE: 0FCC, 0082,0F7¢,0404,8047,0024,8 QFCF, 0484,9592,4034,8047,0139,7 CFDO, 0€86,3287,0022,0047,013A,2 : COMPUTE PC OFFSET [ =2 : SPLIT FLOW BACK INTO INTERRUPT QR ; EXCEPTION FLOW THAT CALLED IE.FPD.PACK ktneJ SIZ_RB+1, i INCREMENT ITERATION COUNT 5%3829 NEXT/F.POLYF.FPD,10 ; CONTINUE ON 139054 139085 ;39359 OFCE, 0€84,95%2,4034,8047,0139,5 : 33905§ SIZECBYTE] FPACFLAGOY?, 139058 F1.POLYD.FPD,SAVE: OF (D, 04B2,0E7(,0504,8047,001F,4 : : ' FAULT DETECTED BY FPA? 011071 =cmmmamenmnnmn e ———— ~ 139960 39061 &SIZECBYTE] an.51z RB41, INCREMENT ITERATION COUNTY :: SECOND HALF READ OR :§g 24 NEXT/F|.POLYD.FPD.10 : CONTINUE ON 139045 ;39069 :%gogs 001110 ercmnmmmnmnnnnnnanavn—. : RER2] ML TEMPO], NEXT/DS.DS.PCK.GPR2.2-3 ; $36049 01111-......-_-..----ae-..._..; ‘39 6§ :39§9o ;538;1 33907§ ;39874 139075 READ(FLAGIS FPA(FLAGO)?, : k?nz: Nexrzbs DS P91, pcxLGPR2.3CON ;: HETEMPS] RLTEMP8].RR.24, : ;010000 =====m=mmmmr——————— ; NEXT/DS.BS.PCK.MULP : FAULT DETECTED BY FPA? Yy B CMTO98.MCX 1ANDE (MIC MICRO2 28-NOV-83 1M(OT) interrupts and Exceptions 9076 N e 0FD1, 0485,A592,4034,0047,0139,1 :30073 U 0FD2, 0485,9003,0034,0047,0139,E 0FD3, 0460,4002,403D,84A7,0129,7 T 16:30:35 : IE.FPD.PACK 11 CLOKX Rev 13.00, Clock rate = 160ns ,?wgm ................. +39078 RCRO .%gggg NEXT/DS osficn GPRO. CON L 139082 RCRO)_RB~MCPCBACK], ;ggggz NEXT/DS.DS.PCK. CMPP4 139085 101001 mmmmm :ggggg —; ; : e e —— : NERT/0U.RESV.OPER 139090 ——— NEXT7/DBS,DS.PCK. CMPP3 ; RfROJ MLPC], IR<2-0>7, ;§3831 139096 RCR2].S12_RB+1, $39098 READ(FLAG1)?, 39097 : 100===emm- [ : 39093 139094 FX.POLYG.FPD,SAVE: L DT 139095 0FD5, 0482,0E7C,05C4,8047,0061,8 ; VA_MCTEMP4],SET MM.NOINT, 39086 ;39089 0FD4, 0885,A592,4674,0047,0103,5 LT DS,DS.PCK,GPRO: 139081 T R —— ———————— SIZECBYTEY, ‘38939 ; NEXT/FX.POLYG.FPD.SAV.10 ; : I IN FLOAT.MIC : DEFINED R D a—— cetnmanamanen———— ] 129103 139104 0FD6, 0482,0E7¢,05C5,0047,0200,4 139106 ; READ(FLAG1?, :; 1S 1T SPECIAL READ NEXT/FX.POLYH.FPD,SAV.10 ; DEFINED IN WCS NEXT/20064 :39107 ; 139108 POLYH RER4].S1Z_RB+1, SIZECBYTE] 139105 IN CREMENT ITERATION COUNT s 1S Ir SPECIAL READ ©39101 FX.POLYH.FPD, SAVE 139102 p OLYG : INCREMENT ITERATION COUNT ; 39109 FX,EMODH.FRD: e- EMODH emm e ccmae— 1010111 mcmcmm $39110 : WAS THE PSEUDO RBS USED wB_MCTEMP1]-1, 129119 OF07, 0CBD.1E51,0A30,0047,0A00,8 393+ 0FD8, 0484,0E7C,0034,4047,00FC,A OFEE. 0D86.BF37,0030,8047,0037,8 0378, 0440,0036,4030,0047,00FC,A WX7EQ,0? 139112 : : ;39113 NEXT/2008 139116 :011000=m=vracsrnonnanmenmemnm- : CVTSP ‘%8}}2 H 139117 ;39118 130119 ;gg}sg NEXT/FX,EMODH.FPD.RES RANDOM OFEE: 139122 0378: :39123 RER1J_RB+1,NEXT/DS.CVT.PACK ; DEFINED IN WCS : ;101110%++FORCE ADDRESSw#aawenwx; MCERRCODI_OLIT16016.1] ' CVITP DESTINATION LENGTH = 0 FIELDS LEFT TO AVOID ROM CHANGE saxxerexteFORCE ADDRESShtwnnnnnn; WORD ADDED TO AVOID ROM CHANGE : SET FLAG TO INDICATE DEST LEN=0 §ET FLAGO,NEXT/ZDS.CVT,PACK Page 956! £~ no —_ Interrupts and Exceptions 0 1ANDE .M]C 28~NOV-83 16:30:35 MICROZ2 1M(01) - H CMT098.MCX W : .TOC ' D1 : IE.PACK.DONE CLOKX Rev 13.00, Clock rate = 160ns Page 957 . ¢ 1E,PACK.DONE"' Interrupts and Exceptions g%g}gg ;*fi*fi***fi*tfiltlfiii‘tt*ttt*tt****t**tt**t****t*********i************k***fiii‘fi** :gg}gg ; Entry Points 1E.PACK .DONE Egg%%g : Input FPDOFFSET<10:8> Return code }39131 E All FPD ?ack routines should branch here when packing is complete, ;39133 ,; or exception this is for: :39132 . :39134 ; FPDOFFSET<10:8> contains a code which determines what sort of interrupt :39135 ; ;39136 ; 2 = ACV/TNV 4 - INTERRUPT ;gg}%g H 7 =~ RESERVED OPERAND OR FLOAT FAULT ;39137 ; 5 ~ MACHINE CHECK FAULT/ABORT ;39140 E**i**t*titfi**tti***tttttt**tt*fitit*t**t*t****tttt*tt********************fi**ii : 39141 :39142 OFE2: sunvnnkaxdFORCE ADDRESS#*xx%wwaxx; 39143 1€.PACK.DONE: ;391 :39145 U OFE2, 0418,C387,0200,0047,08F5,0 337+« jmmmmmmm——mme e o ccccsacee L CLEAR FLAG3, ; PUSH PCBAKC=-2 WB<5=0>? ; EXCEPTION FLOW THAT CALLED IE.FPD.PACK ;39146 WB_M(FPDOFFSET].RR.8, 139149 QF50: ;xxaxxxxx«FORCE ADDRESS*#xsanusn; ;39151 c e s m———; THIS 1S LOGICALLY PART OF ACV/TNV smmmcn 10000 ——mmccnne :gg}zg ¢ SPLIT FLOW BACK INTO INTERRUPT OR ;39150 1E.PACK.OR.RBACK: :39152 139153 U 0F50, 0885,E036,4880,0047,04F5,A :gg}gg . U OfF51, 0186,CD91,0230,1047,08FC,0 37/7% U 0F52, 0416,65BE,4039,C047,04FA,D 339156 0F51: PUSH,NEXT/IE.RBS.RBACK ;000 mmwmmm e m e evm :39157 MCFPDOFFSET] _MB+ZLITBL2], ;39160 OF52: :0010mmrmmm :gg}gg 139161 239162 :gg}gz 3‘9165 OF53: U OF53, 0484,073C,0027,84A7,00F4,8 RLCTEMPO] _RBSP, RBSP.EQ.07, : 39166 :gg}gg wa<5-0>? NEXT/IE.FPD.PACK : ROLL BACK THE REGISTER SIDE EFFECTS, s — . ; THIS 1S LOGICALLY PART OF ACV/TNV : SET CODE FOR RETURN FROM FPD,PACK ; FFD WAS SET, PACK IT UP. et e s nann e: ACV/TNV RETURN FROM FPD.PACK/RBS.RBACK CLEAR FLAGZ, MCTEMP6] _RIMM,TEMP3], PUSH,NEXY/1E.PACK.FAULT ;1001 mmmmem : SAVE RBSP TO LOAD INTO THE STEPC. : CHECK FOR RBSP = 0, e mnmr e m VA R[SPJ_RB-CONX(4), NEXT/1E.ACV.PUSH, PARAM ; MORE PARAMETERS TO PUSH. ; SAVE FAULTING ADDRESS. ; INITIATE THE EXCEPTION. e . THIS 1S LOGICALLY PART OF ACV/TNV ; PREPARE TO PUSH THE FAULTING ADDRESS. : RETURN TO ACV/TNV FLOWS 130169 QF54: ;xexxtxax«FORCE ADDRESS**»wswwxs; 139170 1E.PACK.BRANCH: U 0F54, 0090,0036,4780,0047,0803,8 479+ 3917 : 39172 139173 ;39174 :0100=wommoommmmmr e e e e mcn e ; FPD FROM INTERRUPT MICRO VECTOR?, s BRANCH TO INTERRUPT ROUTINES. CLEAR TP, : CLEAR PSL<TP> ON INTERRUPTS, NEXT/IE.INT.WIDE ,BRANCH : RETURN TO INTERRUPT FLOWS i : ; ; = CMT098.MCX TANDE .MIC MICROZ2 1M(01) 28-NOV-83 Interrupts and Exceptions i OFS5, 0C80,0036,4030,0047,00€D,2 : 39175 0F55: .gg};g 339178 OF57: v OF57, 0018,0021,003D,84A7,04EC,D : 39179 : 39180 .gg%g} 130183 OF58: U OF58, 0C84,073C,0027,84A7,00FA,7 $ 3918 .gg}gs 16:30:35 EMN : IE.PACK.DONE CLOKX Rev 13.00, Clock rate = 160ns 1010 emmmmmmn e e n e e EXT/]E MACH.CHK.FAULT ; FPD FROM MACHINE CHECK. ; RETURN TO MACHINE CHECK MICRO CODE. Ll Ll; FPD FROM RESV QPER OR FLOAT FAULTY t b Lt H O Rtt VA D+RL2ERO], CLEAR FLAG3, PUSH, NEXT/IE.FAULT ; LOAD MACRO VECTOR ADDRESS. : PUSH PCBACK = 2. ; GO INITIATE THE EXCEPTION. ;1000=m======m=mcemmmem—m——aceas ; VA_RLSP]_RB-CONX(4), NERT/1E.RRITH.PSH. CODE : PREPARE TO PUSH PARAMETER : +39187 IE.PACK.FAULT: :39188 J OFAD, 0818,0021,003D,84A7,00€C,D jommmseesemmeaeee cemmvesemmmmonn ; 39189 VA D+R[ZERO], ; LOAD MACRO VECTOR ADDRESS. 39191 NEXT/IE.FAULT ; GO INITIATE THE EXCEPTION. : 39190 CLEAR FLAG3, Page : PUSH PCBACK - 2. 958| ; : MICROZ2 CMT098.MCX 1M(01) 28~NOV-83 Interrupts and Exceptions 1ANDE .MIC 139192 .10C ' 16:30:35 F 11 : FD OPCODE ENTRY Interrupts and Exceptions 139703 ;AR AN AAKARARETREIAIRARE R 139194 : Page 959 CLOKX Rev 13,00, Clock rate = 160ns : FD OPCODE ENTRY'' ER IR IR AR IR NIRRT KRk This code checks if WCS is present and enabled, if it is not an opcode reserved to D1g1tal fault is taken. If W(S is present and 139195 239196 ; : 39197 : enabled, a wide branch :%3]33 : of the opcode. is done into WCS on the second byte :39200 :t***t***tt****t***tk*********t*********t**t********fi********t*t****i********* :39201 239202 03C0: sanswxnwxxxFORCE ADDRESS**axxxxsx; 139204 —n;THIS WORD HAS NO EFFECTI REPEAT NONE e m—————— :000===cmrmmreemmecm :39203 FX.I1E.FD.OPCOD: U 03C0, 0C80,0036,4030,05E7,007E,8 ,E U O7EB, 0581,AC10,0030,0C87,007F i xxxxx*PATCH TO AVOID ROM CHANGES :%g%gg MDR_ZEXT (OSR) ;%gsgg 07EB: suxxxnxxxxFORCE ADDRESS*********' 139209 PC_MCPCI-ZLITOL1], 130212 03C4: ;#wkwxakx*xFORCE ADDRESS**%xxwxsx; 139215 Q_MCMDRI, : MOVE TO WORKING MTEMP :ggg}g NEXT/FX.1E.WCS.ENABLED : 130210 0302: ;asaxaxxxxFORCE ADDRESS**xak%xxx; 130922 139223 M[TEMP10] BRA ON ADD?, { NOW IN STORAGE FOR USE * DO WIDE BRANCH ON OPCODE :%gggg : NEXT/FX.WCS.OPCODE ; OFF TO WCS NERT/FX.1E.FD.OPCOD2 ;§35%? * MUST BUMP BACK FOR 2BYTE OPCODES * GET TO A CONSTRAINED ADDRESS ;ggg}g FX.IE.FD.OPCOD4: , U 03C4, 0C81,2592,59F0,0047,003C,2 WwlS DISABLED?, 139216 + IS WCS PRESENT AND ENABLED 139220 FX.IE. ucs ENABLED 130921 1 (mm=—mememmweeeemem——em—meceeeaa ; U 03C2, 0486,A03A,463D,8047,0201,0 U 03C3, 0C80,0036,4030,0047,0038,0 NEXT/2010 139224, 139227 0303: ;l===—-====cc——meeceacemecoseen- : NO NEXT/1E.OPCOD.DEC 139230 776: sannanansaFORCE ADDRESS**xxastn; }%gggz RETURN [+11 130235 7FE: s*axxnrxx«FORCE ADDRESS*aansrtnn; 130937 e 39236 FX,IE.FD.OPCOD2: U 07FE, 0880,0036,41F0,0047,007F ,F : ;gggsg :ggg;; FX.I1E.FD.RET: U 0776, 0880,0036,4080,0047,0000,1 139238 ;ggszg 1 130041 7FF: YES L0D BRA? : NOT HERE * TARGET FOR CNTO,CNT? e e; NEXT/FX.{E.FD.OPCOD3 ¢ GET THE TRUE OP CODE LOADED ; ;xwxwxxxx#FORCE ADDRESS**wthunuw; :%352% FX.IE.FD.OPCOD3: U 07FF, 0C80,0036,4030,05E7,003C.4 139244, +39245 MDR ZEXT(OS NEXT/FX.1E.FD.OPCOD4 * GET THE TRUE OPCODE [N 2ND BYTE : CONSTRAINED ADDRESS . ! ! ; s (MTO98.MCX IANDE .MIC MICROZ2 1M(01) 28-NOV-83 Interrupts and Exceptions 139246 .TOC ' 16:30:35 130948 139255 ; ;ggggg H ok ok o e A o e T : FD CPCODE ENTRY' o e e ok e ok A o ok o o o e e ok ok ok o o oo ok ok ok ok o o ok o ke FPD RESTART WITH OPCODE OF FDxx :ggsg? : :39254 ; CLOKX Rev 13,00, Clock rate = 160ns Interrupts and Exceptions 239249 ; 139253 Page 960 : FD OPCODE ENTRY 39247 o dde kot ok ok Ak ok ko ko $39252 ; o 6 11 This code checks to see if WCS is present and enabled. is not present and enabled an opcode reserved to Digital If WS . fault is taken. . If WCS is present and enabled control is passed to the unpacking code in WCS. 239258 ;*t***********tt*tttt**tkt*tt************t*************t****t***************** : 39259 139260 03F0: ;wxxwxkwxkxFORCE ADDRESS**kkkxw«; : 39262 : 39263 :%gsgg :000===mmmececcen e cecnccccanan ;THIS WORD HAS NO EFFECT I REPEAT NONE MDR_ZEXT (OSR) , JxkekxxkxPATCH TO AVOID ROM CHANGES WCS DISABLED? JRERAKARERAAARTEAKRATRTTR AR KR WA A Eggsgg 07ED: JexenxexwxFORCE ADDRESS*wxawkakx; CONSTRAINED TO NULLIFY BRANCH 139068 PC_MLPCI=ZLITOL1], 239261 FX.IE.FPD.RES: U 03F0, 0C80,0036,49F0,05€7,007E,D U 07eDp, OD81,AC10,0030,0087,007E,E ;%gsgg NEXT/FX.1E.FPD.RES2 * BACK UP PC FOR 2 BYTE OPCODES ; GET TO A CONSTRAINED ADDRESS ¥ FORCE ADDRESS**rtwkiw«k; sxkxnxkx :39271 OFF4: 239272 FX.1E.FPD,RES4: U OFF4, 0D87,2C10,0A72,A847,0A00,2 393+« U OFF5, 0C80,0036,4030,0047,0038,0 ;392?3 239274 $ 39275 e et DL L L===: WCS PRESENT AND ENABLED WB_MLMDRI-ZLITO[55], ; IS IT POLYG FPD 139279 OFF5: ;l-===eeemccmsmccccccsscnacccacaas : NO WCS ;39276 :ggs;g H :%ggg? WXINE.O?, NEXT/2002 NEXT/FX.POLYGH. CHK NEXT/IE.OPCOD.DEC ; : ; DEFINED IN WCS ; DO NOT RESET FPD 139282 :39283 : 39284 7EE: sxkikkkkkkFORCE ADDRESS**axxxnx«; 239285 FX.IE.FPD.RESZ: 139286 ittt bttt : U 07EE, 0080,0036,41F0,0047,007E,F ;39287 LOD BRA?, ; GET THE TRUE OP CODE LOADED :%gggg NEXT/FX.IE.FPD.RES3 : :39290 7EF: skxxkkkk*kFORCE ADDRESS*akkankux; 239291 FX.IE.FPD.RES3: 339292 U O7EF, 080,0036,49F0,05E7,00FF ,4 jeesmmmsssecscemeesccscemsaeoseses : 239293 MDR_ZEXT (OSR), ; GET THE 2ND BYTE OPCODE 139295 NEXT/FX. IE.FPD.RES4 ; CONSTRAINED ADDRESS : 39294 WCS DISABLED? : : H CMT098.MCX IANDE .MIC MICRO2 TM(01) 28-NOV-83 Interrupts and Exceptions 16:30:35 H 1 : REI Page 961 CLOKX Rev 13.00, Clock rate = 160ns -gg%gg .TOC " Interrupts and Exceptions ;39298 SRR KRR AR KRR A KRR : REI" R Jk AR AR R R R kR AR ARk k ggggg : RE! 139301 : Input (SP) (SP+4) New PSL Resources TEMPS MTMP9 IPL of highest pending soft interrupt Temporary to sWwitch stacks :39302 ; 239303 ; 39304 ; 139305 - Return from Exception or Interrupt R $ 39306 ; RTMP8 VA MDR $39307 ; :39308 New PC Save new PC PC $39309 ; SOFTIPR :39310 ; + 39311 LONLIT : 39313 ; ;39314 ; SP ISP furrent Stack Pointer Interrupt Stack Pointer ESP SSP ysp SISR PSL Executive Stack Pointer Supervisor Stack Pointer . User Stack Pointer Software Interrupt Summary Register Program Status Longword D : 39312 ; KSP $ 39315 ; 139316 : 39317 $39318 239319 ;gg%g? ; ; ; ; : 139322 ; :39323 ; 330324 139325 Subroutines Kernal Stack Pointer IE.OPER. FAULT IE.SOFT.IPL Rk ARARAKIRNKIRIKRRRIRAXARIARRRRINRA KRR AR AR AR AKX R F AR A TRk ke dk bk dkkwhd :39326 REGION/IRD?.RI1L,IRD1.R1H U 0388, 0480,058E,4037,84A7,00FE,4 : 39327 =000 ;39328 IE.RE]: ;==m=--mmeccccccscccccncncncannes ; LOAD THE ADDRESS :%gg%g VA_RCSP] ; OF THE TOP OF THE STACK $39331 _REGION/IANDE.R1L,IANDE .R1H/IANDE .R2L, 1ANDE .R2H/IANDE. R3L, IANDE ,R3H ;gg%%g U OFE4, 0485,573D,0027,84B0,00FA,F U OFAF, 0485,2592,4022,0050,00FB,4 U OFB4, 085,573D,0027,8047,00F8,C U OFBC, 08B80,067E,FB07,F847,00F8,D 0FE4, tt**tk***FORCE ADDRESS**:***«** 139334 READ,SIZE[CLONG],PUSH RBS*+, :39337 :ggggg § oo mtm e e: READ,SIZELLONG],RCTEMP8]_MCMDR] ; POP THE NEW PSL AND SAVE THE NEW PC. :%gggg :39340 ;gg%z; 130343 :39344 VA_RLSP]_RB+CONX(4) : ; POP THE NEW PC OFF THE STACK joommmmmmmmmmmeeewem—————— .-- ,PUSH RBS+ RESPJ_RB+CONX(4) s FINISH THE POP. emmm—memmum— e————— ; LONLIT_C3020FF00] ; LOAD MASK TO CHECK MBZ B1TS IN NEW PSL MICRO2 CMT098.MCX 1M(OT) 28-N0OV-83 ;gi30:35 Interrupts and Exceptions IANDE .MIC $39345 OFBD, 0C81,2002,0A3D,4047,00F7,A OF7A, 0418,0036,4030,0047,00FF,8 OF7B, 0881,2592,46F0,0047,00F8,9 _ OF88, 0418,0056,4030,0047,00FF,8 11 CLOKX Rev 13,00, Clock rate 160ns 39346 UB_MIMDRI.AND.RLLONLITI, 139348 ;39349 =0 139350 WXTEG. 07 : PSL ARE ZERO. ELEAR FLAG3, ; PUSH PCBACK-2. :39347 $39351 :39352 139353 :39354 :39355 NEXT/1E.OPER.FAULT Page CHECK THAT ALL MBZ BITS IN THE NEW ; TAKE A RESERVED OPERAND FAULT. et etiisiet et : IF IN COMPATABILITY MODE CHECK WB_MCMDR],WB<31=-30>7, ;; SOME MORE MBZ BITS. NERT/IE.REI.20 +39356 =00 ;39357 1E.REI.1T 0: :00 ------------------- e mene——— :39358 CLEAR FLAG3, : PUSH PCBACK=2. : 39359 : TAKE A RESERVED OPERAND FAULT. NEXT/IE.OPER.FAULT .gggg? ;39362 1E.REI.2 0139363 :39364 ;39365 WB_MCMDRI,REI CHECK?, ; DO AN REI CHECK ON THE NEW PSL. {ONLIT_[OFO000EOI, : MODE MBZ BITS. OFDB, 0081,2002,203D,4047,00FD,D 239367 =11 239368 :39369 ;39370 $39371 39372 b MIMDRI.AND.RLLONLITI *: SAVE CURMOD AND MBZ BITS OFDD, 0980.0CB3,4A30,1847,00F8,8 239374 139375 ;139376 UBD.XOR.ZLIT24[31, : CHECK MBZ BITS AND CHECK CURMOD=3 0r89, 0881,2592,4780,06E9,08F6,8 479% 0F8B, 0B40,0787,FFF8,F847,00FD,B 962 139366 39373 139377 $39378 =01x00 NERT/IE.RE1.50 SET FLAGO WXTEQ. 07 NEXT/IE.REI.10 LOAD MASK TO CHECK COMPATABILITY : REMEMBER COMP MODE FOR LATER : ;39379 I1E.REI.5 0: 0F68, 0CB6,95BE,47B7,8207,08F1,8 479« 0F69, 0586,FC12,4030,2047,04F4,0 0F6A, 0418,0036,4030,0047,00FF,8 0F6B, 0418,0036,4030,0047,00FF,8 0F79, 0480,5387,0010,0787,00F6,8 :39380 139381 ;39382 139383 239384 139385 139386 : 39387 ;39388 139389 :gg%g? L : REI CHECK OK PREPARE TO SWITCH STACKS. MCTEMP9] RLSP1,PSL<IS, CURM>?, NEXT/I1E.REI.60 : CHECK OK BUT PENDING AST, ;: POST SOF TWARE INTERRUPT AT IPL=2 : RECOMPUTE HIGHEST SOFTWARE IPL. 01%0] ===mmmmmcmmce e mmn e ——— : REI MESISRI_MB.OR.ZLITOC4], PUSH,NERT/IE.SOFT. IPL ;01410mmmmmmmmmmm e =} REI CHECK NOT OK, : PUSH PCBACK=2. CLEAR FLAG3, NEXT/IE.OPER.FAULT : TAKE A RESERVED OPERAND FAULT. 139392 01411 mmmmmm—m—————————————— ; RE] CHECK NOT OK, ELEAR FLAG3, : PUSH PCBACK=2, : TAKE A RESERVED OPERAND FAULT. NEXT/IE.OPER.FAULT 139396 =11+01 PS; SOFTIPR_MLTEMPS1.RR.16, : ;39393 139394 ;39395 39397 139398 139399 = NEXT/IETREL. S50 : LOAD SOFTWARE IPR REGISTER USED BY THE HARDWARE FOR ARBITRATION. S ee e CMT098.MCX TANDE ,MIC MICROZ 1M(O1) 28-NOV-83 Interrupts and Exceptions 16:30:35 : J 1 CLOKX Rev 13,00, Clock rate = 160ns REI :39400 =1000 139401 IE.RE1.6 0 :39402 0F18, 0C84,9592,4BF8,0047,00F8,6 QF19, 0884,9592,4BF8,4047,00F8,6 0F1B, 0CB4,9592,4BF8,(047,00F8,6 OF1C, 0884,9592,4BF9,0047,00F8,6 ------------------------- - 139403 R[KSP] MLTEMPY], ;39406 ;39407 P 1] : 39404 239405 :39408 139409 ;39410 OF1A, 0884,9592,4BF8,8047,00F8,6 10 $39411 139412 :39413 139414 239415 : 39416 SAVE CURRENT STACK POINTER. PSL<TPS?,NEXT/IE.RE1.70 —— L RLESPI_MCTEMP91, SAVE CURRENT STACK POINTER. R[SSPJ MCTEMPO], SAVE CURRENT STACK POINTER. PSL<TPS? ,NEXT/1{.REI.70 PSL<TPS? ,NEXT/1E.RE1.70 . R[USPJ MCTEMPS], 139417 :39418 ;39419 : 39420 139421 SAVE CURRENT STACK POINTER. PSL<TPS? NEXT/1E.RE1.70 21 100=mmm=mm=mmmmmmmmmmmaeo——--- SAVE CURRENT STACK POINTER. RCISP] MLTEMP9], PSL<TP3? ,NEXT/IE.REI.70 239422 :39423 = 139424 =0 0F86, 0881,2002,403D,8007,00FD,E 0F87, 0581,2092,4032,0007,00FD,E 239425 IE.REI.? 139426 ;39427 139428 139429 :ggzgg e OFDE, 0080,05BE,4032,0487,00FD,F QFDF, 0(89,0036,4780,0207,08FE,8 479+ OFE8, 0086,95BE,4038,0047,0023,2 I OFEA, 0486,95BE,4038,8047,0023,°2 T 90 S S T e e ey o , 39439 QOFE8: tt******tFORCE :%322% : 39445 139446 139447 ;39448 OFEA: 139449 139450 Y o e S S i T S8 31 PSL<IS.CURM>? 130440 139441 o T PSL _MIMDR].OR.ZLIT24[40] 139434 239435 :39436 ;ggzgg ;39444 OFE9: OFEY, 0486,95BE,4038,4047,0023,2 o LOAD NEW PSL 239432 1E.REI.B 0: : 39433 € S 0 SET TRACE PENDING IN NEW PSL. oy e 9 S B O LOAD NEW PC 100 - e e Tt e BRANCH TO GET NEW STACK POINTER S ADDRESS*xxknkhxx e O G B O A S B M[TEMP9J RCKSP], GET NEW STACK POINTER. NEXT/IE.REI.90 1001 M[TEMP9] RCESP], NEXT/IE.REI.90 . GET NEW STACK POINTER. GET NEW STACK POINTER. Page 963 e ~ MICRO2 CMT098.MCX 1M(01) 28-NOV~83 Interrupts and Exceptions 1ANDE .MIC 339451 OFEB: OFEB, 0486,95BE,4438,0047,0023,2 OFEC, 0080,0036,4130,0047,003F,9 16:30:35 K 11 : REI Page 964 CLOKX Rev 13,00, Clock rate = 160ns ;1011==m=m=mcmcaccmccmccmacccaan ; 139452 METEMP9J _RCUSP], '%8222 NEXT/IE RE1.90 130456 OFEC: ;ggzgg :1100====meme=cececcacmene- —-— Y NO NEED TO SWITCH STACKS. IRD1 139453 FLAGO?, * GET NEW STACK POINTER, * CHECK IF COMPATABILITY MODE. : 139459 0OF8C: 139460 FREE.OF8C: 139461 ;0% xxxxx LOCATION NOT USED*wkxiwk; OF8C, 0084,9592,4137,8047,003F,9 130462 .ggzgz RLSPI_MLTEMP9], IRD1 TM : : 139465 OF8D: 139466 FREE.OF8D: 139467 OF8D, 0SBO,0F76,4030,8047,0423,2 139468 :%gzgg s1nwnsexx OCATION NOT USED* % kw; SL_[16.1,STEPC_14., PU3H : WORD NOT USED 139471 232: 139472 1E.REI.90: 139473 ] 0232, 0084,9592,4137,8047,003F,9 139474 ;ggz;g 129477 233: 0233, 0080,058E,4282,0047,057F 4 139478 ;ggzgg 0xexnxnawaFORCE ADDRESS**x%wnxxw; R[SPJ _MCTEMP9], IRD1 NEXT/IE.PC.CHECK RE] INSTR - * LOAD NEW STACK POINTER AND ‘ BEGIN EXECUTING MACRO CODE. sInwxnxwewFORCE ADDRESS*#hx#x#w%; WB_RCTEMP8],WB<0>?,PUSH, =~ PART OF = PART OF RE] INSTR ~ COMPAT. MODE CLEAR GPR BITS <31:16> :+ CHECK FOR 0DD PC 130481 17F4 139482 IE.P ¢ CHECK: 139483 ;OxxxxxxFORCE ADDRESS**xxxx#wxxx; PC NOT ODD ‘ 17F4, 0580,0F76,4030,8047,00FE,3 139484 ;ggzgg 139487 17F5: 17F5, 0C80,0036,4030,0047,00FD,9 CFE3, 0C85,DBFE,003D,8047,00FE,5 §L_[16.1,STEPC 14., NERT/IE.CLR.GPRS * LOAD SL FOR EXTRACT. : 130488 ;1xwxexxFORCE ADDRESSt*akxkxktx%; ODD PC 139492 ;ggggz jmmmmmmmmm—m—————————————————— ; LOAD TEMPO,RNUM AND PL WITH 0. : RTEMPO_RNUM_PL_0 :ggzgg NEXT/1E.CM.ODD 29491 IE.CLR.GPRS: ; Eggzgg IE.CLR.GPRS1S: 0FES, 0C84,0087,003C,C047,00FF,6 - 0FE6, 0884,0087,037F,C047,00F2,3 }ggzgg RCGPR.RI_RB.XZ 139499 ;mmemm———————————— ————— ————— 139500 139501 R[GPR.R+1]_RB.XZ, STEPC.GE.47 DECBY4 ¢ CLEAR BITS 31=16 (PL=0, SL=16). Y CLEAR BITS 31-16 (PL=0, SL=16). : LOOP ON THE STEP COUNTER, e : H e o = s et i CMT098.MCX [ANDE .MIC e MICRO2 1M(01) 28-NOV~-83 16:30:35 interrupts and Exceptions :39502 =011 7 ,03FF ,F U 0F23, 0080,0036,4080,004 B U 0F27, 0885,D730,0010,0047,00FE,5 :39303 39504 139508 :39507 139508 : REI 1011 L1 CLOKX Rev 13,00, Clock rate = 160ns mmmmmm o RETURN [-11 e e; ; T e; RNUM_RCTEMPOJ RB+CONX(2), NEXT7IE. CLR.GPRS15 ; ; Fage 965 | CMT098.MCX [ ANDE ,MIC MICRO2 1M(01) Interrupts and Exceptions :39509 ,T0C "' ? .NOBIN 2 3 REG oPS JICODE ; OFD* FPD [NOPJLFX.IE.FPD.RES 6 g OFD: CNTOLNOPICFX.IE.FD.RET CNT1ENOPICFX. IE.FD.RET é 9 0 5 0CODE 28~NOV=-83 IRD1CENOPICFX.IE.FD.ORCOD .ICODE OFE: FPD [NOPJLIE.OPCOD.DEC . DEC IRD1ENOPICIE.OPCOD CCODE MEM bl JCFX.IE.FD.RET JCFX.iE.FD.RET . ICODE OFF: FPD [(NOPJLIE.OPCOD.DEC ] 139530 © JCI1E.BAD. IRD 139533 1CODE 139531 139534, 139535 :39536 139537 0CODE 139541 ;gggz% 139548 :ggggg CNT1CNOPILIE.BAD. IRD ,0CODE ,1CODE 057: FPD [NOPILIF.OPCOD.DEC 0C0DE IRDTLINOPILIE.OPCOD.DEC 057: CNTOINOPJ[IE.BAD.IRD CNTTCNOPICIE.BAD. IRD ,1CODE 059: FPD [NOPILIE.OPCOD.DEC oCODE ° 139554 L 1CODE ] oconE 139555 9 8 ' 9 .REI CNTT1ENOPILIE.BAD. IRD $39651 139552 IRD1CNOPILIE 002: (NTO[NOPICIE.BAD.IRD 139544 39545 $39547 OFF: CNTO[NOPJILIE.BAD.IRD 002: FPD [NOPJLIE.OPCOD.DEC 139538 139540 IRD1LNOPILIE.OPCOD.DEC JC1E.BAD. IRD JCI1E.BAD.IRD JLIE.BAD. IRD JL1E.BAD.IRD ILI1E.BAD.IRD IC1E,BAD,IRD CNTT1ENOPIEIE.BAD. IRD 1 JCIE.BAD.IRD 1 ] 1 1 JCFX.IE.FD.RET ICFX.IE.FD.RET [NOPJLIE.OPCOD.DEC (NOPJICIE.OPCOD.DEC 1, b [NOPJCIE.BAD.IRD CNOPILIE.BAD.IRD JCIE.BAD.IRD IRD [NOPJLIE.OPCOD.DEC 2, [NOPILIE.BAD.IRD JCIE.BAD.IRD (NOPJILIE.OPCOD.DEC 1, [NOPJLIE.BAD.IRD IC1E.BAD. IRD [NOPICIE.OPCOD.DEC [NOPICIE.OPCOD.DEC 1, 3 [NOPJLIE.BAD.IRD [NOPICIE.BAD.IRD JCIE.BAD.IRD IC1E.BAD.IRD {NOPJ[IE.OPCOD.DEC h| [NOPILIE.BAD.IRD [NOPILIE.BAD.IRD 1 [NOPJILIE.BAD.IRD ) ] IC1E.BAD, IRD [NOPJLFX.IE.FD.RET [NOPI[FX.IE.FD.RET ENOPIL1E.OPCOD.DEC ([NOPICIE.BAD.IRD [NOPJILIE.OPCOD.DEC bl JC1E.BAD. IRD 1. [NOPILIE.RE] | JC1E.BAD.IRD 0SA: (NTOLNOPJLIE.BAD.IRD 1 ENOPILIE.OPCOD.DEC ] [NOP%EIE.BAD.IRD ] FPA MEM FPA REG 0PS [NOPJLFX.IE.FPD,RES CNOPILIE.OPCOD.DEC b ] CNT1CNOPILIE.BAD. IRD IRD1{NOPIC1E .OPCOD. DEC ] ] h| 05A: FPD [NOPJICIE.OPCOD.DEC J 1 IRD1{NOPIC 1E.OPCOD.DEC 059: CNTOLNOPILIE.BAD.IRD 1 1 ] IL1E.BAD.IRD : Ird Rem Definition' CNOPILFX.IE.FD.OPCOD J ] 139526 139527 ;gggsg Page 966 CLOKX Rev 13.00, Clock rate = 160ns Interrupts and Exceptions °7 T CNT1ENOPILIE.BAD. IRD M1 : Ird Rom Definition 139523 139504 QFE: CNTOCNOPJCIE.BAD.IRD 3 16:30:35 CNOPI(IE.BAD.IRD ] JCIE.BAD, ;ESCD 3, ] ;ESCE 1, ;ESCF J ICIE.BAD.IRD 1, ] iREI b JC1E.BAD. IRD 1, h| ;RESVRD 3, bl 1, ICI1E.BAD.IRD ICIE.BAD.IRD :RESVRD 1, ] 1, ;RESVRD ] JCI1E.BAD.IRD JCIE.BAD.IRD 1, ] - : CMT098 ., MCX 1ANDE (MIC MICRO2 1M(OT) Interrupts and Exceptions REG 0PS 139560 -.1CODE0S8%; FPD [NOPJ[IE.OP COD.DEC 139561 :ggggg 139564 :;gggg 139567 139568 ;ggggg 139571 139572 IRD1CNOPIC 1E,OPCOD.DEC 0C0DE 05B: CNTOLNOPI[IE.BAD.IRD CNTTUNOPICIE.BAD. IRD .1CODE 077: FP> [NOPJ[IE.OPCOD.DEC ocont T 28-NOV-83 16:30:35 IRD1ENOPICIE .OPCOD.DEC IRD 077: CNTOLNOPILIE.BAD. CNTAENGPILIE .BAD. IRD ] N1 : Ird Rom Definition 0PS MEM ] JCIE.BAD.IRD JCIE.BAD.IRD FPA REG [NOPJL1E.OPCOD,DEC J 3 ] ] 1C1E.BAD. IRD JCIE.BAD.IRD Page 967 CLOKX Rev 13.00, Clock rate = 160ns ENOPILIE.OPCOD.DEC [NOPILIE.BAD.IRD CNOPILIE.BAD.IRD FPA MEM ;RESVRD ] JCIE.BAD.IRL IC1E.BAD. IRD v [NOPT: i . 4="0D,DEC 1, [NOPILIE.BAD.IRD [NOPILIE.BAD.IRD JCIE.BAD. IRD IC1E.BAD. IRD ENOF.i« = .i:9COD.DEC 1 3 1, ] 3, ] :RESVRD 1. ) | ! !| e e —— i ' ' " : MICRO2 (MT098.MCX .T0{ '* -DCODE 3%3?39 0FD: Interrupts and Exceptions f p) . . Page 968 28-n0V-83 16:30:35 (LOKX Rev 13.00, Clock rate = 160ns Interrupts and Exceptions JANDE .MIC =3957% ;ggg;g 1M(01) 8 , : Dsize Rom Definition : Dsize Rom Definition' S12¢ CDBLE) [DBLE] COBLE] [DBLE] [DBLE] [DBLEI ;ESCD .. ... = 2. .- o ilizmlisz ocmamozo o .omio g i : i$0578 OfE: SIZEC 03 C 1L O01CL OIC 0IC 01 :ESCE é%gggg 057: SI2E [ 01 [ 0l [ 01 ([ 0J L 03[ 0) ;RESVRD ; 39886 059 S1ZEL 010 01C 01 01C 03C 01 jReswd o e o sEl 010 01T 00 010 010 01 ;RS :%ggg? US58: SI2E 0l L 01 L 01 ( 0) ¢ 01 [ 0] :RESVRD de 077 sET 010 WL 0L 010 010 01 imeswo 136504 ,UCODE O f 03¢ 0 01C 01C 01 01 :ESCF 01 ;REl o - - :39595 ,BIN - -—u-—-——.-q."m- VORI Y 01 C ©I [ T 01C 01C 1 SIZEC SIZEC i 130280 oFF: §§§§§' 002: o= - MICROZ2 . MCX CMTO98 MM.MIC MM, MIC 1M(01) 28-NOV=-83 16:30:35 €12 CLOKX Rev 13.00, ClL ock rate = 160ns :39596 .10C *MM_MIC"' . :%959? .T0C “REVISION 30.0" ;59598 ; 139599 .NOBIN P P AR PUR Revision history" EXPLANATION 30 S$et tlags in MM GET.PTE and MM.GET.WRITE.PTE 29 Set MM.NOINT when processing a page boundary write to avoid servicing an_interrupt after writting the first page. 28 for TB parity error recovery. used loc 1672 | . . . . Clear TB to avoid possible conflict between access violation 27 and XB - TB-miss. . Fix such that the VA will not be off by 4 when reading across 26 Fix such that the VA wilt not be off by B when writing crossing 25 I Y " Jeft Peng, Gerard Koeckhoven, Bri an AlLison, REV Y ) .TOC [ N : 24 23 a page boundry and FPD set and you restart the instruction. a page boundery and FPD set and you restart the instruction Change location 15FC to clear the TB to avoid a conflict between an access violation and a xb~tb miss. Add label MM PCALL_ACV_ENTKY for CALLx to jump to on ACV's Fix bug in MR.PRB.WRITE.S1Z if probe crosses a page boundary. Fix MM.PB.PROBE to properly restore MDR, Add BUS/PRB.RD.PTE to avoid machine hang loading the TB. Initial release. :39624 .BIN CHARLIE MCDOWELL Page 969 . CMTO98.MCX MM MIC D 12 CLOKX Rev 13.00, 1M(01) 28-N0V=-83 16:30:35 : UNALIGNED READ Memory Management ®ICRO2 :39625 .T0C ** :3 RN 0 l ' 0 ‘ Page : UNALIGNED READ"' Memory Management R AN ARR AL RN RRRARRRKRARKA KR AR AR AR A AR AR AR AR AR AR AR AR A AR AWK UNALIGNED READ . Unaligned virtual address Input VA Resources MM. TEMP1 Backup VA OQutput MDR (ompleted read ' . Clock rate = 160ns DSIZE signal Read size . 0 o I ‘ CHARLIE'S FLOWS 1.4 t***tt**fit*ttt**i*tiflktkfi***fifit*tfit***tifit*ttfi*tttk**tt********t*******t**fit* . éF;EGION/MMLRIL,MM_RTH/MM_R2L ,MM,R2H/MM R3L ,MM.R3H «*UTRAP ADDR** MM,UA.READ: 17FA: sakuxaxk2sFORCE : AND REMOVE NO BUS AND VA_X RESTRICTION ADDRESShaxwannnn; SET STACK FLAG, READ.NOTRAP,VA_VA+4 u 17FA, 0068,0036,4030,0442,0152,0 =0xx U 1520, 0C28,0036,4030,0046,0176,8 FLUSH X8 TO RESTART PRE=FETCM FLUSH XB U 0021, 0{81,A592,4030,0487,017F,A SET FLAG TO CORRECT VA If A FAULT, : OCCURS ON THE READ.SECOND IN NEXT H CYCLE. THIS IS NEEDED IF FPD=1 L C T L L) ; Re READ.SECOND,CLEAR STACK FLAG, NEXT/MM.PB.WRITE15 : CLEAR FLAG IF READ IS SUCCESSFUL : 1!* ---------------------------- . u 1524, 0880,0036,4080,0047,0000,4 sGENERAL REGION RETURN [+4]) IF _ACV/TNV WITH PSL<FPD>=1 H CATCH RETURN FROM FPDOFFSET=0 970 ; : CMTO98.MCX MM MIC E 12 CLOKX Rev 13.00, Clock rate = 160ns Moo MICRO2 28-N0OV-83 16:30:35 1 UNALIGNED WRITE, WRITE UNLOCK Memory Management 139657 .ToC " $39658 Page 971 : UNALIGNED WRITE, WRITE UNLOCK' Memory Management $39659 PR KRR AR AR AR AR RR AR AR AR R A AR RN A AN AR AR RN AR AR ANAR AN KA KRR TR KA Ak UNALIGNED WRITE, WRITE UNLOCK. 139660 139661 : 0 ’ 39662 o o Input VA Unaligned virtual address Resources MM.TEMP1 Backup VA WDR ' I 0 I H Data to be written CHARLIE'S FLOWS 1.4 *tt**tk***k**t*tt*t**i*k****tt**fi*******t******************************t***** N :¥*UTRAP ADDR** 2h: MM.UA.WRITE .UNLOCK: i PT WRITE.NOTRAP, : CRITE.SECOND.UL, ; PUSH,NEXT/MH. SAVE . INC. VA U 0024, 0480,0036,4030,004C.0576,6 34: NEXT/MM. BB.WRITE10 U 0034, 0C80,0036,4030,0048,0176,7 25: : : 2 *%UTRAP ADDR* MM.UA.WRITE: Bl T et T 35: v 0035, 0480,0036,4030,004A,0176,7 GRITE,SECOND, T NEXT/MM. PB.WRITE10 3969 $39692 39693 i : PUSH.,NEXT/MM: SAVE. INC. VA U 0025, 0480,0036,4030,004C,0576,6 U 1766, 0085,8592,4083,C447,0001,0 D WRITE.NOTRAP, : : MM.SAVE.INC.VA: RIMM. TEMP1]_MLVAD, VA_VA+4, RETURN [+10] ; SAVE OLD VA, AND INCREMENT FOR : SECOND HALF OF WRITE. e | : H CMTO98.MCX MM MIC MICROZ2 1M(0T) Memory Management 28-NOV=-83 ggggg .TOC ** 16:30:35 F 12 Page 972 CLOKX Rev 13.00, Clock rate = 160ns : CROSSING PAGE BOUNDARY WRITE, WRITE UNLOCK : CROSSING PAGE BOUNDARY WRITE, WRITE UNLOCK Memory Management ggggg 239699 39700 ~ =] o Nl W . 39701 139702 139703 139704 : 39705 139707 ;39708 R T T T e T AA AR AR AR AR IARER R KRR AKIHR ERR TR IKERNRA KRRKRIHR 230608 HRKHAKHHHAAEHKH PAGE BOUNDARY WRITE, WRITE UNLOCK VA Input WDR . DSIZE signal Resources . Subroutines Crossing page boundary virtual address " Data to be written Write size MM, TEMP4 Save WDR MM, P8, PROBE MM.UA.WRITE MM.UA.WRITE.UNLOCK CROSSING PAGE BOUNDARY WRITE, AND WRITE UNLOCK PUSH VA INTO THE NEXT PAGE AND CALL MM.PB.PROBE TO CHECK THAT PAGE FOR WRITE ACCESS. IF THE ACCESS IS 0K, MM_PB.PROBE WILL RETURN=2 WHICH WILL AUTOMATICALLY TRANSFER CONTROL TO MM.UA. URITE OR MM.UA.WRITE ,UNLOCK &?{EHNenge%thDOES THE WRITE. IF THERE ISA TNV OR ACV, MM.PB.PROBE CHARLIE'S FLOWS 1.4 3971?ot A A Aok kT K o ok e ok Y Ak o 139718 139719 26: s #*UTRAP ADDR* Egg;g% RCMM. TEMP4]_WDR o Ok o Tk A R Ak i ok ok ok ek ek o ;gg;g? MM.PB.WRITE.UNLOCK: U 0026, 0485,3592,4038,C4C7,015E,C :39724 =0 U 15EC, 0581,BC11,0030,44A7,0533,D 139725 :gg;gg 130798 u 15ED, 0080,058E,4038,(54A,0133,9 ' SAVE WDR. $0mmmmmmmm e ; VA_MCVAJ+ZLITOL8], PUSH,NEXT/MM. PB. PROBE : LOAD AN ADDRESS IN THE NEXT PAGE. * WILL RETURN=2 TO MM.UA.WRITE.UNLOCK jememe—me—m—memcee—csccseeeseee- ; 130729 WDR_UNROT (R[MM. TEMP41), RESTORE WOR. 139731 NEXT/MM. PB.WRITES : Modified for cmt0G6 139730 WRITE. SECOND, * FINISH THE BUS CYCLE, CHT098.MC MIC MICRO2 1M(01) Memory Management 28=-NOV~-83 ;39732 27: :39733 16:30:35 G 12 CLOKX Rev 13.00, Clock rate = 160ns : CROSSING PAGE BOUNDARY WRITE, WRITE UNLOCK Page 973 ;**UTRAP ADDR** :§3;§§ MM.PB.WRITE: 4 0027, 0485,3592,403B8,(4C7,015F .gg;gg [=3 39738 =0 15F4, 0581,8C11,0030,44A7,0533,D 15F5, 0080,058E,4038,(54A,0133,9 RLMM, TEMP4]_WDR ;Qm—==-c——sssescsecccceeeoeee- : :39739 VA MLVAI+ZLITOL8I, $39742 YD 35740 ; SAVE WDR : LOAD AN ADDRESS IN THE NEXT PAGE. ; WILL RETURN=2 TO MM.UA.WRITE PUSH,NEXT/MM. PB. PROBE : :39743 WDR_UNROT (RCMM, TEMP4]), * RESTORE_WDR. gg;zg NEXT/MM.PB.WR1TES : 139744 130747 :1048: WRITE. SECOND, : FINISH THE BUS CYCLE. Modified for cmt066 ;++++++++ FORCE ADDRESS +H++++4++ 139748:MM,PR,WRITES: 130749;0 :39750 : ;39751 ; : 39752 jeeemmesccsacececcccnee- mem————— FLAGS RLRTMPGPR], NEXT/RM.PB. WRITETO RESTORE FLAGS 139753 MM.PB.WRITE10: 1767, 0481,A002,403D,8487,0176,8 1768, 0909,8C10,0080,24A7,0000,0 ;39754 ettt L L L L S L L L LS 139755 PC_MLPC] 1 Y4 T 139759 R e VA_MLVAJ-ZLITOC4], 139756 :39757 MM.PB.WRITE1S: 39760 —— RETURN AND SUPPRESS BUS CYCLE FLUSH THE XB TO REENABLE PRE-FETCH : : CMT098.MCX MM MIC 28-NOV-8~ MICROZ 1M1 Memory Management .TOC ‘' 16:30:35 : H 12 CLOKX Rev 13.00, Clock rate = 160ns Page 974 MM.PB.PROBE MM.PB.PROBE"’ Memory Management 3**********i**ttiit****tIt***t**t*t**t***t*'fl(*************t*****f************** : MM.PB.PROBE 3 E Input VA Virtual address to be probed Output VA VA - 8 E Resources MM. TEMP1 . Save VA if TB Miss ACV or TNV if Save faulting address Save W H MM. TEMP3 : : H . MM. TEMP4 Subroutines MM.GET .WRITE.PTE IE.TNV IE.ACV E MM.PB.PROBE IS USED TO CHECK THE ACCESS OF THE NEW PAGE IN A ; CHARLIE'S FLOWS 1.4 H H H CROSSING PAGE BOUNDARY MICRO TRAP, IF THE ACCESS 1S OK VA <= (VA=8) AND IT DOES A RETURN-Z2. IF _THERE IS AN ACV OR TNV THE FAULT IS INITIATED AND NO RETURN IS TAKEN. 'tit*tt******tt***t****t***t******ktttk***k*********************************** J104A: MM PB.PROBE: . sxkkxx 3 PROBE WRITE?,SIZECBYTE], ; PROBE VA USING CURRENT MODE. 3 NEXT/0LD16TC : MAKE SURE WE SKIP OLD 1769 H FORCE LOCATION wwwwswxwwx R{RTMPGPR] FLAGS, H SAVE THE CURRENT EVENT FLAGS 161C: P PR OLD161C: 11 LN ANNS = OO 00 ~NION VT & Do LN LO00000 V00O OOOVVO0VOO0 00 00 CO G0 00 00 00 0O GO Q0 CO 00 TR T N A T L O T S S U 161F, 0981,B€10,0030,44A7,0176,A FO U 161E, 0485,8592,4039,C047,017F,6 N N NN A u 161D, 0181,B€10,0030,44A7,0158,2 LAAN LR L LS U 161C, 0485,8592,4033,0047,0561,8 RIMM.TEMP1] MLVAI, PUSH,NEXT/MM.PRB. URT T8M 161D: FROM MM.GET. leTE PYE H DECREMENT VA BY 8 : TAKE A TNV FAULT. 110==mm=mmmmmmmmmmmmm—m—————— ; PROEE NO ACCESS OR _RETURN+2 FROM H MM.GET.WRITE.PTE, TAKE AN ACV FAULT. R[MM TEMP3] _MLVA], NEXT/MM.XB.ACV.~1 161F: H HOPE IT REMAINS AT LOC 161C PROBE NOT VALID (PTE NOT IN TB) ; SAVE VA AND PROCFSS A _TB MISS TO : LOAD THE PTE BALK IN THE TB. ;110]==mm==mm=m=m==————— cm——————— ; CATCH RETURN+1 VA M[VA] -ZL1T0L8], NEXT/MM, XB, TNV 161E: E PROBE VA USING CURRENT MODE. H ;111]--e=m-ooeccsccomcannnnanaan H ACCESS 1S OK. ; PUT VA BACK IN FIRST PAGE. [OO PR fiROBE WRITE?,SIZE[BYTE] R U 1769, 0480,0036,4780,005D,0961,C 479 TR 1769: FREE.1769: e CMTO098.MCX MM.MIC 16:30:35 1M€01) 28-NOV-83 MICRO2 Memory Management 1764, 0080,058E,4038,(54€,0139,0 :39819 176A: 112 CLOKX Rev 13.00, Clock rate = 160ns MM, PB.PROBE WPR_UNROT RESTORE WDR. (RCMM. TEMP4]), DO FIRST HALF OF THE BUS CYCLE. WRITE.NOTRAP REV94 1390: o " T S ST T S e VA_VA+4 ,SET MM,NOINT, RETURN [+1] 1390, 0860,0036,4080,0447,0000,1 1768: FREE.176 B: swhkwx vk FORCE ALL THIS SO WE CAN SAVE ONE ROM ADDRESSw*h#akkkanksk VA_VA+4 ,RETURN [+1] 1768, 0080,0036,4080,0447,0000,1 INC VA FOR SECOND HALF OF WRITE. DON'T ALLOW INTERUPTS NOW INC VA FOR SECOND HALF OF WRITE. 130830 17F6: ;39835 MM. XB.AC V.-1: shkksaxxFORCE 17F6, 0981,8C10,0030,44A7,0158,3 ADDRESSH*kxahunhin; VA_MLCVA1-2L1TOLB], NEXT/MM. XB.ACV DECREMENT VA BY 8 Page =y 975 ; : CMTO98.MCX MM.MIC MICROZ2 1M(01) Memory Management 28=NOV=-83 16:30:35 : TB MISS ;%gggz .TOC '' ;3983? ;39838 ;39839 139840 J 12 CLUKX Rev 13.00, Clock rate = 160ns : TB MISS" Memory Management :*tt*ttt**wt*ttk*tt*t*****w**t**t**t******t************************t******t**t MM.XB., TBMISS Entry points ; MM.READ.TBM1SS ; MM.WRITE,TBMISS ; MM.BUT . XB.TBMISS :gggg} ; ;39843 ; Input VA 139846 ; ;39847 ; 239848 ; Resources MM.TEMP1 MM.TEMP2 MM. TEMP4 ;39850 ; :39851 ; : 39852 ; Subroutines ;gggzg : PC . 139849 ; Faulting address for READ or WRITE TB MISSES Faulting address for XB or BUT XB TB MISSES Save VA Save MDR Save WDR MM.GET.XB.PTE MM, GET.READ.PTE MM, GET.WRITE.PTE MM.GET.BUT.PTE 139853 ; ;39854 ; 1E.TNV IE.ALV : 59855 ; $ 39856 ; ;39857 ; THERE ARE 4 TB MISS MICRD TRAPS, THREE OF THEM (XB TB MISS, : 39858 139859 ; READ TB MISS, AND WRITE TB MISS) START HERE BY MERELY SAVING VA AND JUMPING TO A SUBROUTINE WHICH FINISHES PROCESSING 139862 ; : 39863 ; BUT XB TB MISS ALSO STARTS HERC BUT IT IS NOGT PROCESSED BY AN ACTUAL SUBROUYINE, IT MERELY SAVES VA AND PASSES CONTROL TO THE MISS AND RETURNS TO THREE DIFFERENT LOCATIONS, ONE FOR ACV, ONE FOR TNV AND ONE IF THE MAPPING AND LOADING OF THE TB WAS SUCCESSFUL. ;39860 ; 39861 ; ;39864 ; .ggggg . 139867 ; 139868 139869 Page 976 ANOTHER BLOCK OF CODE WHICH WILL DO THE MAPPING AND RETURN CONTROL TO THE TRAPPED INSTRUCTION. CHARLIE'S FLOWS 1.1 X HAARAKAKKRAXNKNRRRRERAERAR AR A AR AR IR ddd ok Aok ks ko e deok ok sodolodotok ok oeskobookoke ok ;39870 U 0022, 0¢85,8592,4033,0047,0158,1 u 1580, 0¢80,0036,4030,0047,0158,1 139871 22: ; #*UTRAP ADDR*+ ;39872 MM.XB.TBMISS: 139873 e e m e —————————— S : 39874 RCMM.TEMP1] M[VA], ;s SAVE VA, :ggg;g NEXT/MM.X8,TBMISS. 10 :ggg;g 1580: ;655~*****FORCE ADDRESS#*xwkkxxxx; :%gggg NOP ;39881 1581: ;xxxxaxxwxFORCE ADDRESS*#¥%aksny; s CATCH RETURN-1 FROM IE.SERV.IP.TS ;39882 MM, XB,TBM]SS.10: ;39883 U 1581, 0881,A001,003D,84A7,0576,C ;39884 ;39885 100 H memmmr e m e m VA _MCPCI+RCZEROD, e e ancaa ——— PUSH,NEXT/MM,GET . XB.PTE ; LOAD VA WITH FAULTING ADDRESS, : 64 (MT098.MCX MM MIC 1M(01) 28~-NOV-83 : Memory Management 16:30:35 MICRO2 1582: K 12 CLOKX Rev 13.00, Clock rate = 160ns TB MISS i FORCE ADDRESS**watxnrnw, sxxxxaux MM.XB.TNVé MDR_RLMM.TEMP2], 1583: sunxmkkwkkdFORCE CANNOT MAP, TAKE A TNV FAULT RESTORE MDR FOR PACKING ; NEXT/IE.TNV.CHK.CONSOLE 1582, 0880,058BE,4039,8467,00FB, 5 ’ ADDRESS*ahaxwkux, MM.XB.ACVé MDR_RLCMM, TEMP2I, 1584, 0480,05BE,4089,8467,0000,0 : : NEXT/IE.ACV.CHK,CONSOLE 1583, 0880,05BE,4039.8467.,00FB,0 1584: 1585: NO ACCESS, TAKE AN ACV FAULT RESTORE MDR FOR PACKING ;100=m===m==se=essmosemumemmeaas ; RESTORE MDR AND MDR_R[MM,TEMP2] ,RETURN (+0] : REDO THE MICRO TRAPPLCD INSTRUCTION RETURN FROM IE.SERV.IP.TS H RESTORE MDR : AND TAKE SPECIAL FPD RETURN. 1101 —mmmencaas weumsseEmeLamw MDR RIMM,TEMP2], RETURN [+43 1585, 0C80,058BE,40B9,8467,0000,4 Page 2A: i w*UTRAP ADDR«« MM.READ. TBMISS: ROMM.TEMP1] MLVAJ, : H NEXT/MM,READ, TBM]SS.10 0024, 0485,8592,4033,€047,0159,1 1590: sukxxnwwvxxf ORCE ADDRESSt«*t****t; m: e e me e :000=mmmmmmmmm : NOP 1590, 0480,0036,4030,0047,0159,1 1591: SAVE VA, sxunnxwxkxFORCE CATCH RETURN=-1 FROM IE.SERV.IP.TS ADDRESS*hwwrnh®y, MM.READ,TgMISS.10: 1591, ;; PUSH,NEXT/MM.GET .READ.PTE : MM, ALLOW. INT?, 0485,2592,42F9,8047,055¢C,0 1592: 1592, 0980,0¢87,0680,0E87.,003F,C RCMM. TEMP2] _MIMDR1], ;010=--=cmscmcamwermmunen—- ————— MEMSCAR_ZL1T24[13], NEXT/MM,READ, TNV 1593: MM.READ .NO.ACCESS: F D e e L L eH STACKFLAG?, NEXT/MM.READ.ACV 1593, 0180,0c87,0680,0E87,003F ,€ 1594: 1595: SAVE MDR. CANIIOT MAP, TAKE A TNV FAULT PREF'ARE _TO FETCH READ MODIFY BIT CHECK IF READ SEC FROM UNALIGNED READ ADDRESStwwxnawws, MEMSCAR_ZL1T2413, 1595, 0€80,058E,4089,8467,0000,4 ; ; : STACK FLAG?, suwnxwkkwxFORCE 1594, 0480,058E,4089,8467,0000,0 : WO ACCESS, TAKE AN ACV FAULT : PREPARE TO FETCH READ MODIFY BIT J CHECK IF READ SEC FROM UNALIGNED READ : ;100~wmmcmenmenoansaaca ) —— MAPPING COMPLETED OK. RESTORE MDR AND ;101vvwnnomsnnanunnns memenanmman; RETURN FROM IE.SERV.IP,TS MDR_R[MM,TEMP2],RETURN [40] MDR_RLMM.TEMP2], RETORN [+4] :: REDO THE MICRO TRAPPED INSTRUCTION : RESTORE MDR H AND TAKE SPECIAL FPD RETURN. 977 : ; CMY098 MCX MIiC MICROZ2 1M(O1) Memory Management 28=-NOV-83 }8’§?§§5 139940 3FC: L 12 CLOKX Rev 13.00, Clock rate = 160ns sexxnkntxxFORCE ADDRESS*akshikiw; 139941 MM.READ, TNV U 03FC, 0484,0036,4033,8647,00FA,5 U 03FD, 0D29,BC10,0030,24A7,003F,C ;39942 R eadate 239946 3FD: 139947 dlurennwweefORCE ADDRESS*********, CIEAR STACK FLAG ; CLEAR STACK FLAG BEFORE FAULTING 139948 VA M[VA]-ZLITO[4§ NERT/MM.READ. TNV 3FE: 139953 139954 ;%88?2 ;39957 3FF $39958 ;39959 139960 ; THIS IS FROM A READ SECOND REFERENCE ; NEED TO FIX VA BEFORE FAULTING sukknrkkikFORCE ADDRESS**awkukik, 139952 MM,READ, ACv: U O3FF, 0529,B8(10,0030,24A7,003F ,E ; READ/MODIFY FROM STRAIGHT READS. : RCMM. TEMP5] MEMSCR, NEXT/1E.READ. TNV 139951 U O3FE, 0884,0036,4033,0647,00FA,4 ———— : GET READ/MODIFY BIT TO SEPERATE 139943 :%ggzg :gggég Page 978 (Qemmmmmm e RLMM, TEMP1] MEMSCR, NEXT/1E.READ.ACY e a e m - ==: GEY READ/MODIFY BIT TO SEPERATE ; READ/MODIFY FROM STRAIGHT READS. H s1exxxanxxFORCE ADDRESSww#xhnxxw; CLEAR STACK FLAG VA MEVAJ-ZLITotéfi, NERT/MM.READ.ACV ; CLEAR STACK FLAG BEFORE FAULTING s THIS 1S FROM A READ SECOND REFERENCE ; NEED TO FIX VA BEFORE FAULTING CMT098.MCx MM.MIC M0 28=N0OV=-83 MICRO2 Memory Management 28 16:30:35 B MISS M 12 CLOKX Rev 13.00, Clock rate = 160ns Page 979‘ ;*%JTRAP ADDRw* g MM, WRITE TBM}SS: RCMM. TEMP1] MLVAJ, SAVE VA, NEXT/MM,WRITE.TBMISS.10 0028, 0485,B8592,4033,0047,015A,1 15A0: JexxxxwxaxFORCE ADDRESSw*w+ LA AL A $000mmmmmmmmmmmmmmmm CATCH RETURN=1 FROM 1E,SERV.IP.TS NOP 15A0, 0480,0036,4030,0047,015A,1 suknkn s x*FORCE w 15A1: B%M]SS 10: MM.WRITE. o ADDRESS*H#wx khkhw o o o o 0 P S o T e -- - RCMM. TEMP2) _MLMDR], 15A1, PUSH,NEXT/MM, GET.WRITE. PTE 0C85,2592,42F9,8047 ,055E,0 15A2: 15A3: u 15A4, 0 o o O e e P e W G R e CANNOT MAP, TAKE A TNV FAULT RESTORE MDR FOR PACKING B L et MDR_RCMM.TEMP2], NO ACCESS, TAKE AN ACV FAULT RESTORE MDR FOR PACKING MDR _R[MM,TEMP2] ,RETURN [+0] MAPPING COMPLETED OK. RESTORE MDR AND REDO THE MICRO TRAPPED INSTRUCTION £107=2mmnn s mnm e e e RETURN FROM IE.SERV.IP.TS RETORN [+41 AND TAKE SPECIAL FPD RETURN, NEXT/IE.ACV.CHK,CONSOLE 0880,05BE,4039,8467,00FB,0 0480,05BE,4089,8467,0000,0 ;0 MDR_R[MM.TEMP2], NEXT/1E.TNV.CHK.CONSOLE 15A2, 0880,058BE,4039,8467,00F8,5 1543, SAVE MDPR, MM, ALLOW, INT?, 15A4: 15A5: 080,058t ,4089,8467,0000,4 29: MDR RIMM,TEMPZ], RESTORE MDR 1 **TRAP ADDR** MM.BUT, X B.TBMISS: ROMM, TEMP1]_MCVAD, ,C 0029, 0885,85%92,4833,0047,015F OTHER UTRAPS?, NEXT/MM,GET.BUT ,PTE ; SAVE VA ; PATCH Tu DETECT UTRAPS IN WRONG ORDER. CM1098 . MCX HICROZ MM.MIC tMOOT) Memory Management 28=NOV-83 16:30:35 N 12 CLOKX Page 980 ‘ Rev 13.00, Clock rate = 160ns : MM,GET.XB.PTE, MM.GET.READ.PTE : MM,GET.XB.PTE, MM.GET.READ.PTE'" ,Zgggg .T0C " Memory Management :40001 't*t**tfl*tfitk**titttttt*ttttt*ttttkttt****k***t**********t*********t***fli*fit** MM.GET.XB.PTE Entry points :60002 ;40003 ; 40004 MM.GET.READ.PTE ;28882: Input 140007 : Resources ;40008 ; ;288?8; , VA Fauttiny address ERRCOD Error code if ACV or TNV MM.TEMP3 Save faulting address MM, TEMP?2 Save MDR 340011 : Subroutines ;40014 : MM,.GET.XB.PTE CHECKS rfOR A TB MISS ACROSS A PAGE BOUNDARY, SAVES ;288}9 : OF MM.GE/'.READ.PTE. 240018 : MM.GET.READ,PTE CALLS MM.GET.PTE WHICH RETURNS WITH THE NEW PTE [N 40020 1S THEN CHECKED FOR VALIDITY AND READ ACCESS AND IF OK IT IS :288}%: ;40015 , 40019 140021 140022 : 40023 N '40024 MM, GET.PTE 1E.SERV.IP,TS THE PROPER FAULTING ADDRESS(PC OR PC+4) AND THEN JOINS THE FLOW MDR OR ELSE TAKES A SEPERATE RETURN FOR ACV OR TNV, LOADED INTO THE THE NEW PTE TB. CHARLIE'S FLOWS 1.2 N2232322223123 23232233 2282323233 S SR YSRARS SRR SRR R AR R0 Rt R dldd ;40025 :2885? MM.GET.XB.PTE: 176C, 0480,0036,4780,005F,0962,E 479« Ezggsg PROBE READ?,SIZE[BYTE] } CHECK FOR MISS ACROSS A PAGE BOUNDARY, $40030 =1110 240031 MM,GET. XB,PTE10: ;40032 160033 162E, 0085,2592,42F9,8047,015¢C,0 160034 ;288%2 140037 162F, 0085,2592,4039,8447,0176,D 176D, 0C80,0036,4780,005F ,0963,F 479% ) 163E, 0880,0036,4¢F0,0047,015¢C,0 ] 163F, 0080,058€,4083,04A7,0000,3 ;40038 ;28823 140041 ;1110 mmemre e ns; MM, ALLOW. INT?, NEXT/MM.GET.READ.PTE N : RIMM. TEMP2] _MCMDR], : SAVE MDR, ;111 mmmmmmmmmmm e —e———c e; VA VA+4, RCAM. TEMP2] _MIMDR] ; MUST BE A MIGS ACROSS A PAGE BOUNDARY, ; SAVE MDR, jesmmmmmmmmmeme e ———————— ; ;2882% PROBE READ?,SIZE[BYTE] 140044 =1110 ,60045 ;1110=mwmm=w=mmommn oo —emaem e ; : MM, ALLOW, INT?, ;28829 120048 ;60049 ;40050 NEXT/MM,GFT .RCAD,PTE ; CHECK IF STILL A MISS IN NEW PAGE. ; 111]mmmeme = mmmemcmmm—a o ; STALE XB FLAG, NO LONGER A MISS VA RCMM.TEMP1], RETURN L[+3] ; RESTORE VA AND ; TAKE GOOD RETURN, ey et ; i v v : MICRO2 CMTO98.MCX IM(OT) Memory Management MM . M1C 28-N0v-83 ;60051 16:30:35 ;aggga 140055 140059 00 e ———————— : wa<3i : ' SAVE FAULTING ADDRESS, : ;010=—=--c=cccun o “recuunnan; VA_RLMM, TEMP1) INTPEND OR TIMER?, NEXT/1E.SERV,IP,T§2 * RESTORE VA FOR PACK ROUTINE : : SERVICE PENDING INTERRUPT OR TIMER, 140065 :28829 VA_RCMM, TEMP1J. RETURN [+21 * RESTORE VA AND : RETURN INDICATYING ACV FAULT. 140068 MM.GET.TNV: 140069 u 15€5, 0880,058E.4083,C4A7,0000,1 U 1506, 0485,2477,0783,8056,095D,4 479+ ;60070 110]ecanccancenununnnnnanaanaua=; VA R[MM TEMPY], ;288;1 RETURN [+13 140074 ALMM. TEMPS5]_MCMDRI.RL.O, ;288; NEXT/MM,GET, READ PTE20 4007% 140075 140078 , : 60079 NOT VALID TRYING TO FETCH PTE, : RESTORE VA AND * RETURN INDICATING TNV FAULT. 110==ammsmmmacccncsncacncun am==; SUCCESSFULLY FETCHED THE NEW PIE. PTE CHECKREAD?, P THE NEW PTE IS IN MDR Y CHECK IT #OR READ ACCEsSS. : PR L e S : SUCCESSFULLY FETCHED THE NEW PTE, R[MM TEMPS] MIMDRJ RL.9, ; THE NEW PTE IS [N MDR, $40080 PTE CHECK R 40085 u 15D4, 09B&,BC3’,0030,0047,015¢,4 ;48839 4 : 100emvecamccccsmncncnmsnnnan -==: NO READ ACCESS. * SET ERROR CODE AND L1T0C02, fiteaacool NEXT/MM.GET.ACV * JUMP TO ACV RETURN. U 15D5, 0186,8¢37,0630,0047,015¢,5 40090 ;20 31 fi ERRCOD)_ZL1T0C0], 140094 tome, £ TE ¢Py BUS CYCLES, YAVOID MACHINE HANG LOADING THE T8 140098 NERT/UM.GET.WRITE.PTEGO : U 18C7, 0485,2477,0783,8056,095D,4 479+ ;20 1 NEXT/MM.GET. REA6 PTE20 2100 :aooai ;48834 MM.GET.RCAD,PTE20: . U 15D?, 0480,058E,4039,0487,0177,0 " 4%859 ;4§§9 =11 ;48 95 Page 981 . Sr ;aooa% MM.GET.ACV: 100 =mmmmevwnan cummunewsnmewnweas NO ACCESS TRYING TO FETCH PTE, : 60064 J 15C4, 0880,058E,4083,C4A7,0000,2 (000mmmmmmm PUSH, Nexr/fin GET.PTE ;28839 ;28821 Clock rate = 160ns o REMM rsnpszMLVAD, 140058 2010 U 15C2, 0CBO,0SBE,4AF3,C4A7,00F7.0 13,00, =000 140053 140060 CLOXX Rev MM.GET.XB.PTE, MM.GET.READ.ATE 140052 MM,GET,READ PTE: b 1500, 0485,8592,46F9,(047,0550,8 13 P CHECK 1T FOR READ ACCESS. ; . 1---...--a-...asq-ngqnquq-gn-: READ ACCE ss OK BUT NUT VAL lD . NEXT/MM.GET. TRV : SET ERROR CODE AND * TAKE TNV FAULT 11]]emeenmmemmmom e ann——— vA_RLMM, TEMP3 P LOAD FAULTING ADDRESS INTO VA. - : MM, ¢ MITROZ 28-NOV=83 1M(01) Memory Management 240097 .10C ' 01 8} 01 01 N 8} 0144 o U 1560, 0485,B592,46F9,(047,055D,8 01 U 15F4, (186,8012,4030,2047,015C,4 01 A A 8} 0148 ) 8} o u 1562, 0C80,0036,4AF0,0047,00F7,0 CLOKX Rev 13,00, Clock rate = 160ns Page MM,GET ,WRITE.PTE PR TR PR IR LR DR TR PR P Entry Points MM.GET.WRITE.PTE Input VA Subroutines MM.GET.PTE T T R T PN T Faulting address 1E.SERV.IP,TS MM.WRITE.SPTE MM, TEMP1 MM, TEMP2 Save VA Save MDR MM. TEMPS Save new PTE rotated for TB loading MM, TEMP3 Save faulting address MM.GET.WRITE.PTE CALLS MM.GET.PTE TO FETCH THE PTE INTO MDR, MM.GET.PTE RETURNS 4 WAYS, ONE FOR ACV, ONE FOR TNV, ONE IF THE PTE IS IN MDR AND VA CONTAINS THE VIRTUAL ADDRESS OF THE PTE, AND ONE IF THE FTE IS IN MDR AND VA CONTAINS THE PHYSICAL ADDRESS THESE LAST TWQ ARE TO ALLOW MODIFYING OF THE PTE IN OF THE PTE. MEMORY IF PTE<M>=0. ONCE THE PTE IS IN MDR IT IS CHECKED FOR WRITE ACCESS. IF QK AND PTE<M>=1 THEN THE PTE IS LOADED INTO THE T8, IF THERE IS AN ACV OR TNV THE WRITE BIT IS SET IN THE ERKOR CODE AND THE FAULT IS INITIATED, IF THE ACCESS IS OK AND PTE<M>zQ THEN THE PTE 1S MODIFIED AND WRITTEN BACK (0 MEMORY BEFORE LOADING IT INTO THE 718, IF PTE<M>=0 AND VA CONTAINS THE VIRTUAL ADDRESS OF THE PTE, IT IS NECESSARY 10 CHECK THAT THE SYSTEM PTE FOR THAT PROCESS PTE HAS ITS MODIFY BIT SET, IF SPTE<M>=0 THEN THE ENTRY IN THE TB IS MODIFIED TO AVOID A WRITE M=0 MICRO TRAP WHEN WRITING THE PROCESS PTE QUT TO MEMORY. CHARLIE'S FLOWS 1.2 ARRN KRR AR TR AR R AR AR AR R AR R AR ER AR ANNA A NN N A NNNANNAARAN NN R RN AR AN AR AR AR a R AN A T8 PARITY ERROR RECOVERY Resources RN AR FPDOFFSET R AN AN AR AN P R bit<29> as a flag ot MM.GET.WRITE.PTE bus cycle 1n progress AR AR R AR AR AN RN NN RN RN AW 3 MM.GET.NR%&E.PTE: RCMM. TEMP3]_MCVAD, i SAVE FAULTING ADDRESS. PUSH , NEXT/MM,GET.PTE : WwB<31=30>?, =010 INTPEND QR TIMER?, =100 : 1010cmccnacanenonannet srvnmannua; NEXT/]E.SERV.IP.TS2 ; : SERVICE PENDING INTERRUPT UR TIMER. :100=ensmnsoncsmsvmnsmsnmn———— : NO ACCESS TRYING TO FETCH PTE, MCERRCOD) MB.OR,2LITOT4], NEXT/MM,GET ACY ¢ SET WRITE BIT IN ERROR CODE AND ; JUMP TO ACV RETURN. o 982, : : MM, GET.WRITE.PTE" Mamory Management Resources S =2 O D : 16:30:35 ' :ltfittfi**ttt*fifi**i*fi‘c**fifit*i.titttttfitltA‘fiQt!tttnttfi!".Qiltlflfitflflfilititt*iiii S —D(DOQ)\IO‘U’I‘“W\)—'OOW\IO‘W#WN—'OOO’NO‘WJ\MN—‘O'OW\IO*M“WN—‘OONNO‘W SN e P P Gurur G Gur GurghurSurPhv SurPwur-Pa-gr Prr SErper PR Guur GG jur Guer@ne s Gon iy S o e o ad ad ad a 01 01 B 2 2 B 2 I 2 2 DAL U LA AN N AN 8} VAL P T P T P R e e P P TR PR T PR TR oo RO RO RONI N PO ROPONINY —3 —d —b = =2 —3 =3 — -OCOOO0OOVOOY il e A AR AR D A2 F ol 2l 2l aE 2k 2l e 2l 2 e OOOCOOOOOCOOCOOCOOTOOOOOCOOOOOOCOOD 540098 e ® o Baeto BoSoBeMatoteto®ubode ®eNoaBeoteBetitetad, S un® .98 0080 %030%chenoss ; CMTOQB.“E X c13 CMT098.MCX : MM MIC H MICROZ2 1M(OT) Memory Management ] u 15E5, 0986,BC12,4030,2047,015C,5 . U 15E6, 0(85,2477,0783,8052,095F,0 479« 28-N0OV=-83 16:20:35 ;40153 MLERRCOD] MB.OR.ZLITOL4], ;40156 :40157 N et Sttt ; SUCCESSFULLY FETCHED THE NEW PTE. R[MM,TEMPS] MLMDR].RL.9, ; THE NEW PTE IS IN MDR, :zg}gg NEXT/MM,GET.TNV :40158 ;28%28 PTE CHECK WRITE?, NEXT/MM.GET.WRITE.PTE20 IR ;4016§ U 15F0, 0186,BC37,0030,2047,015C,4 U 15F1, 0986,8C37,0030,2047,015C,5 26016 :28}2? medaturt et 0 ; SET WRITE BIT IN ERROR CODE AND : TAKE TNV RETURN. ¢ CHECK IT FOR WRITE ACCESS. : VA CONTAINS THE PA OF THE PTE. ettt -==; SUCCESSFULLY FETCHED THE NEW PTE. R[MM. TEMP5] MLMDRJ].RL.9, PTE CHECK WRITE?, NEXT/MM,GET.WRITE,PTE30 : THE NEW PTE IS IN MDR, ; CHECK IT FOR WRITE ACCESS. ; VA CONTAINS THE VA OF THE PTE ;40166 MM,GET.WRITE.PTE20: :460167 ;000 ==rermmmm—ce—cseccccaccne ; NO WRITE ACCESS, : SET ERROR CODE AND ZLITOL41], MEERRCOD] ;40168 : JUMP TD ACV RETURN. ;28}98 NEXT/MH,GET.ACV 460171 $460172 100 =mmm e e cewmmeenm==w; WRITE ACCESS OK BUT NOT VALID, MCERRCOD] 2LITOL43, ; SET ERROR (ODE AND ;28};2 NEXT/MM.GET. TNV ; TAKE TNV RETURN. :60175 =0M 140176 MM.GET.WRITE.PTE25: 240177 U 15F3, 0981,2092,4030,2548,0176,E WRITE,PHY, : M=0. ;28;3? NEXT/MM.GET.WRITE.PTE33 : 160179 :40182 =111 :40183 U 15F7, 0480,058E,4039,0487,0177,0 L el ~~=; WRITE ACCESS OK AND VALID PTE BUT 169178 140184 :28}32 WDR_UNROT (MLMDR),OR,ZL1T24L47), ; WRITE PTE BACK TO MEMORY SETTING M=1. N e itab e demun oo ——————— : COMPLETE CFU BUS CYCLES, JAVOID MACHINE HANG LOADING THE TB NERT/MM.GET .WRITE .PTE4D : VA_RLMM,TEMP3], : RESTORE FAULTING ADDRESS. :60187 =000 240188 MM.GET.WRITE.PTE30: :40189 1000=====ccmcsnnenniocananannn— =; NO WRITE ACCESS, u 1600, 0186,8(37,0030,2047,015C,4 240190 ;28}35 140193 U 1601, 0986,8C37,0030,2047,015C,5 :60194 :28}82 :60197 =01 NEXT/MM.GET.ALV ; SET FRROR (ODE AND : JUMP TO ACV RETURN. 100]mmommmman—nsnansamm e ———— s WRITE ACCESS Ok BUT NOT VALID, MCERRCOD] _ZLITOL4], NEXT/MM.GET.TNV ¢ SET ERROR CODE AND : TAKE TNV RETURN. ;011emmccmcccccmccr s s cce e e ; WRITE ACCESS Ok AND VALIt* PTE BUT 240198 PROBE READ MODE ON wB?, : CHECK M-BIT IN SYSTEM PTE. 140200 PATCH, ot jump to PCS wx 140199 U 1603, 1¢80,05B€,478D,805E,0964,8 479+ MCERRCOD] _ZLITO[4], :2858; SIZE[BYTE],WB_R(LZEROD], NEXT/MM.GET WRITE . PTE32 H H ] ! Page 983% ;10]wcncnnmmncncnence e e e ; NOT VALID TRYING TO FETCH PTE, 140161 U 1567, 0C85,2477,0783,8052,0960,0 479« CLOKX Rev 13.00, ClLock rate = 160ns GET.WRITE.PTE : :4015¢2 D 13 CMT098 MCX mMIc MICRO2 1M(0T) Memory Management 28=NOV=-83 16:30:35 E 13 CLOKX Rev 13.00, Clock rate = 160ns ¢ MM.GET.WRITE.PTE ;40203 =111 ;28%8? MM.GET.UR%{?PTE31: 1607, 0480,05BE,4039,C487,0177,0 ;40206 : 40207 :28%881011 COMPLETE CPU BUS CYCLES, VA RLMM, TEMP3], NEXT/MM.GET.WRITE.PTE4D AVOID MACHINE HANG LOADING THE TB : RESTORE FAULTING ADDRESS. : 340210 MM.GET.WRITE ,PTE32: $460211 1648, 0086,D03A,403D,8047,0177,1 164F, 0981,2092,4030,254€,0176,E 2A4B, 0086,D03A,403D,8047,0177,1 2A4F, 0D86,(0052,4030,1047,02A4,C 1011################fi##fi####### s+ code replaced 1n PC° * % Q ; M=0 IN SPTE, SAVE :40212 MIMM. TEMPO] 0, 140215 :40216 ;40217 :285}8 ;40220 2A4B: STIVIRRRNRRRARRRBARRIRRARRRRRNAN; ++x code replaced in PCS w+ : M=1 IN SPTE, M=0 [N PROCESS PTE. URITE ONG.NOTRAP, WDR UNROT(H(MDR] OR ZLIT24L47), ; WRITE PTE BACK TO MEMORY SETTING M=1. NEXT/MM,.GET.WRITE. PT533 H 1011=s===ss===z===zzzzss=szszsss=x; wx code in PCS #x 240224 2ALF: ;111 1=ssss=ssssssssssssssss====x; *x code in PCS w» :zgs%z 240221 :283%% NEXT/MM.SPTE.M.EQ.0 : M[MM TCMP0) 0, NEXT/MM.SPTE, M EQ.0 ; M=0 IN SPTE, SAVE Q. H :60225 :28%%9 140228 2A4C MB.OR.ZLIT28L02], MCFPDUFFSETJ NEXT/MM.GET. DRITE PCS33 . M=1 IN SPTE ; SET MM PTE B8US CYCLE FLAG ;40230 :1100=s=====3=sssss=sszIszsussss) :40229 MM, GET WRITE_PCS33: 2ALC, 0981,2092,4030,254E,02A4,D :60231 ;40232 240233 UR]TE LONG.NOTRAP, WDR_ UNROT(M[MDRJ UR 2LI1T2404]) 340236 2A4D ; WRITE PTE BACK TO MEMORY SETTING M=1 : If 1B parity error traped here, takes 1101========s=z===zx=ss=z=ssz333; 2A4D, 0186,€C53,8030,1047,0176,E M[FPDOFFSETJ _MB.ANDNOT.ZL1T28[2]; CLEAR BUS CYCLE FLAG 328528 MM.GET.WRITE.PTE33: 176E, 0181,2092,4030,2467,0176,F 328%25 fiDR_MfMDRJ.OR.ZLIT?4[4J 140243 :40244 eme=ssessssescssscscescseeoeeee ; R[MM TEMPSJ MfMDRJ L.9, ; SAVE PTE ROTATED FOR LOADING INTO TB 176F, 0485,2477,0033,8047,0160,7 1770, 0081,B58E,4033,8507,0161,1 ;28§§g : M=0 IN PROCESS PTE ; RETURN [~1] in recovery routine. zgsgg :28522 NEXT/MM.GETCWRITE.P 31 3 SET M=1 IN NEW PTE. H 328525 MM.GET.WRITE.PTEAQ: : MM,.GET,READ.PTE JOINS FLOW HERE. 340249 E LOAD THE NEW PTE INTO THE TB, ;2852? 1 RIMM.TEMPS], NEXT/MM,GET.WRITE.PTE6O : o Page 984: H H CMT098.MCX MM.MIC MICROZ 1MCOT) Memory Management 28-NOV=83 16:30:35 F 13 CLOKX Rev 13.00, Ctock rate = 160ns t MM.GET.WRITE.PTE ;6025¢ 140253 fim.ser.wnérE.Prsss: u 1610, 0881,A002,408D,8487,0000,3 :40254 140255 140256 PC_MLPCI, RETURN [+3) 140257 ;40258 MM GET.WRITE PTESO: $40259 :460260 v 1611, 0080,05BE,42F3,(4A7,0161,0 VA_RCMM. TEMP1], +460261 MMTALLOW. INT?, NEXT/MM. GET .WRITE .PTESS :40262 ;60263 :60264 =010 140265 u 1616, 0880,0036,4080,0047,0000.4 ;40268 40269 =110 ;60270 ; FLUSH XB TO RESTORE PRE=FETCH : CAYCH RETURN-1 FROM JE.SERV.IP.TS : RESTORE VA AND CHECK :; FOR INTERUPTS IF MM,NOINT IS CLEAR : cm : e ece ;010====mcmemmemec MDR_RCMM. TEMPZ], ;; RESTORE MDR FOR PACK ROUTINE. INTPEND OR TIMER?, :40266 :40267 i U 1612, 0080,05BE ,4AF9,8467,04F7,0 PUSH,NEXT/1E.SERV.IP.TS2 ' Page : :; SERVICE PENDING INTERRUPT OR TIMER. :110~~===mssmmeccccocaconcnn—~ : CATCH RETURN+4 FROM IE.SERV.IP.TS RETURN [+4]) : TAKE SPECIAL FPD RETURN, ) 985 : CMTO98.MCX MM.MIC MICROZ 1M(01) Memory Management 28-NOV~83 ;285;% .T0C '' 340274 R 16:30:35 6 13 Page 986 CLOKX Rev 13.00, Clock rate = 160ns : MM.SPTE.M.EQ.0 Memory Management : MM.SPTE.M.EQ.0" A L LA s L E i b i dbbhbdadbab bttt A A AL SEE LS AL AL AAES SALAAARALL LALLM ;285;2 : Entry points MM.SPTE.M.EQ.0 328555 ; Input VA Virtual Address of PTE (VAPTE) MM, TEMPS Save the process PTE (was in MDR) Q LONLIT Hold physical address of SPTE Mask for PFN 140279 160280 ; MM, TEMPO Resources MDR :40281 ; 240282 : :Zgggz ; . Save @ Fetch system PTE ;40285 E MM.WRITE.SPTE IS CALLED ONLY WHEN WRITING A PROCESS PTE TO MEMORY ;40287 ; PTE'S HAS M=0. ;460289 AND A WRITE PHYSICAL IS DONE TO SET THE M BIT IN THE PROCESS PTE. 160286 ; ;40288 ; 28%8? : 140292 : H0293 ;460294 IN ORDER TO SET M=1 AND THE SYSTEM PTE FOR THAT PAGE OF PROCESS IN THIS CASE THE PHYSICAL ADDRESS OF THE PROCESS PTE IS CALCULATED THE SPTE IS NOT AFFECTED. CHARLIE'S FLOWS 1.2.1 s hdhkikk kAR KL AN NIRRT AR IR AR AR XXX AKRXXIRRKR K IEX R TR TR XK XLk kok ok :28532 MM,.SPTE.M.EQ.0Q: U 1771, 0481,8592,5030,0047,0177,2 140297 6_M[VAJ E SAVE VAPTE. U 1772, 0881,833D,0038,04A7,0177,3 ;2858? VA_RLSBRI+MLVAJ.PTX : COMPUTE PA OF SPTE U 1773, 0980,0CB7.0030,0687.,0177,4 :60302 ;28%82 et e L; MEMSCAR_ZLIT24[01] : LOAD ADDRESS OF MME BIT U 1774, 0080,0587,0030,0607,0177,5 U 1775, 0181,B(13,8030,1CA7,0177,6 140305 :28%89 :40308 :28%?8 $40311 U 1776, 0085,2592,4033,8042,0177,8 U 1778, 0480,0€E77,0030,0607,0177,9 U 1779, 0C81,2477,0030,0467,0177,A ;40312 :28%}2 140315 jmemmmemmmmmemeeeeesseeeseeeecas : MEMSCR_O : TURN OFF MEMORY MANAGEMENT jomsseesesssmeseeessssesese———— ; VA_MLVAD,ANDNOT,.ZLITOL3] ; IGNORE LOW 2 BITS OF ADDRESS. e L L SR L O : READ.PHY GRONKS 2ND MDR SO, MM IS READ .NOTRAP, RIMM, TEMP5]_M[MDR] ; TURNED OFF TO DO A PHYSICAL READ. ; FETCH THE SPTE. SAVE THE PROCESS PTE. §mmemmmeemmemmeseeee -; ;28%49 MEMSCR_~1 140318 }mmmmmmmeseeseeesessesee——a————— ; :40319 MDR_MLMDR].RL.9 : TURN MEMORY MANAGEMENT BACK ON. H CHT098.MCX MM.MIC MICRO2 1M(01) Memory Management 177A, 0480,003A,403D,84A7,0177,8 1778, 0D81,2C13,903F ,F847,0177,C 177¢. 0181,8C12,003F ,FCA7,0177,D 177D, 0481.B00A,4030,04A7.0177.E 177E, 0880,D004,7033,8467,0178.,0 28-NOV-83 :40320 40321 140323 ;Zgggg 140326 ;Zgggg $40329 40330 140332 40333 $40335 1780, 0C85,2477,0033,8047,015F,3 140338 140337 16:30:35 H 13 TLOKX Rev 13.00, Clock rate = 160ns ¢ MM,SPTE.M.EQ.0 jmmmeemsemsmemmee—esmmeeeee—ee ; va_a : RESTORE VAPTE. jmmmmmtem—ssssccsecoecsosessses H Q_MIMDR1.ANDNOT.ZLITOC1FF] : COMPUTE PAGE PORTION OF ADDRESS. fomoseesesomemmemmeemeemeemaee ; VA_MLVA].AND.ZLITOC1FF] i COMPUT BYTE PORTION OF ADDRESS. et Lt ; VA_MCVAD.OR.Q : LOAD COMPLETE PA OF PROCESS PTE. jmmmmmemmm—momeemecto—ceomesae : Q_MIMM.TEMPO] MDR_R[MM.TEMPS] : RESTORE Q AND RESTORE PTE TO MDR. jmemmmmmmmm—mmemo—meeceescooos : RCMM. TEMPS]_MLMDRI.RL.9, NEXT/MM.GET-WRITE.PTE2S : RESTORE MM.TEMPS (ROTATED PTE). ; o Page 987 s : CMT098.MCX MM MIC MICROZ 1M(O1) Memory Management 28=NOV=83 ;28%%8 .T0C ' 16:30:35 113 CLOKX Rev 13.00, Clock rate = 160ns ¢ MM.GET.BUT.PTE Memory Management Page 988 : MM.GET.BUT.PTE" }40340 ,******tw*w*«wwtwwwt«ttt*w**tw*t*****w*****************t*****t***********«***t MM, GET.BUT.PTE Entry points :28%2; : Ezggzz : Input 140345 ; Resources 140346 ; 240347 & ;28328 : PC Faulting address ERRCOD Error code if ACV or TNV MM.TEMP3 Save faulting address MM. TEMPY MM. TEMP? Save VA Save MDR 140350 Subrout ines 340353 E MM.GET.BUT.PTE CHECKS FOM A TB MISS ACROSS A PAGE BOUNDARY, SAVES :460355 ;60356 ; ;40357 CALLS MM, GET.PTE WHICH RETURNS WITH THE NEW PTE IN MDR OR ELSE TAKES A SEPERATE RETURN FOR ACV OR TNV. THE NEW PTE 1S THEN CHECKED FOR VALIDITY AND READ ACCESS AND IF OK IT IS 140360 : CHARLIE'S FLOWS 1.2 :28;?; : 60354 :28;23 : '40§25 MM.GET.PTE 1E.SERV.IP.TS THE PROPER FAULTING ADDRESS(PC OR PC+4) AND THEN LOADED INTO THE TB AND THE TRAPPFD INSTRUCT1 | IS RE-EXECUTED. :tt**tttt*t**ttt*********************************************t***t**tt******** = ;40 :zgggz MM.GET.BugP U 15FC, 0881,B58E,408D.8507,0000,0 U 15FD, 0081,A001,003D,84A7,0178,1 U 1781, 0C80,0036,4780,005F,0965,E 479« Ezgggg 140367 RETURN [+0],TB_RLZERO] ;]emee—sememsseeeeesmeseeeaeooe- : VA MCPCI+RIZERO] :40370 ;28;;5 1110 jmmmemmmesmess e ——————— : PROBE READ?,SIZELBYTE] ¢ CHECK FOR MISS ACROSS A PAGE BOUNDARY. :460374 U 165F, 0885,2592,4039,8447,0178,2 U 1782, 0€80,0036,4780,005F,0966,E 479% R : MM.ALLOW.INT?, : ;40375 R[MM TEMP2]_MCMDR], :28%;; NEXT/MM.GET.BUT.PTE10 :40376 ;40379 ;figgg? 140382 ,zgggz 140385 =110 U 166E, 0080,0036,42+0,0047,0162,0 : LOAD VA WITH FAULTING ADDRESS. ;28%23 140373 fim.eer.eur PTEOS: U 165€, 0485,2592,42F9,8047,0162,0 } SOME OTHER UTRAP NEEDS SERVICE FIRST. ;460386 140387 : SAVE MDR. : 11 mmmcmmmemm e e acccccanaan ; MUST BE A MISS ACROSS A PAGE BOUNDARY. R[MM TEMP2I_MCMDR],VA_VA+4 ; SAVE MDR, e L; PROBE READ?,SIZELBYTE] ; CHECK IF STILL A MISS IN NEW PAGE. ;1110mommmm=mnmmmcmccocannneenas ; MM, ALLOW,INT?, NEXT/MM.GE .BUT PTE10 : : ! % -y CMT098.MCX MM.MIC MICRO2 1M(01) Memory Management 28-NOV=~83 J 13 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 Page : MM.GET.BUT.PTE 240388 MM.GET.BUT.FLUSH: 166F, 0481,A592,4030,0487,0178,3 1783, 0480,05BE,40F3,C4A7,0000,0 1620, 0485,8592,46F9,C047,055D,8 ;40389 1460390 : 40391 240392 140393 140394 RETURN AND INHIBIT DESTINATIONS,NEXT/0 ; 140395 =000 :40396 MM.GET,BUT,.PTE10: ;00 ;40397 RLCMM. TEMP3J_MCVAI, ;40398 WB<31-30>?, ;60399 PUSH,NEXT/MM.GET.PTE 2406400 ;40401 :40402 ;640403 :40404 : 40405 : 40406 1622, 0586,CC37,0AF0,2047,04F7,0 1623, 0480,0036,4030,0047,0165,€ ,E 1624, 0480,0036,4030,0047,00F4 1625, 0480.0036,4030,0047,00F8,1 240407 ;40408 :40409 ;40410 ;40411 240412 140420 : 406421 ;0 NEXT/MM.GET.BUT.PTEOQS - = - -. - e e o e o e O e G 11 -------------------- LT T LK 140432 ;40433 1635, 0986,8(37,0030.0047,00F8,1 1637, 0480,058E,4039,C4A7,0178,4 240438 =11 ;640439 ;40437 NO ACCESS TRYING TO FETCH PTE, TAKE AN ACY AND RNLL BACK REGARDLESS OF FPD NOT VALID TRYING TO FETCH PTE, TAKE A FPD. SUCCESSFULLY FETCHED THE NEW PTE. THE NEW PTE IS IN MDR, CHECK IT FOR READ ACCESS. P SUCCESSFULLY FETCHED THE NEW PTE. RCMM, TEMP5] M[MDR].RL.9, e PTE CHECK READ? -PTE20 .BUT GET NEXT/MM. - -y - - > Sy - - 0 > s MCERRCOD]_ZLITOLO], NEXT/IE.ATV.RBACK THE NEW PTE IS IN MDR, CHECK IT FOR READ ACCESS. NO READ ACCESS, SET ERROR CODE AND TAKE AN ACV AND ROLL BACK REGARDLESS OF FPD. READ ACCESS OK BUT NOT VALID, SET ERROR CODE AND TAKE A TNV AND ROLL BACK REGARDLESS OF ;40434 140435 ;40436 CATCH RETURN+1 FROM IE.SERV.IP.TS, TIMER WAS SERVICED CONTINUE WITH MISS PTE CHECK READ?, RLMM, TEMP5] MCMDR].RL.9, 240431 [4 TNV AND ROLL BACK REGARDLESS OF 240425 240426 ;40427 460428 =100 ;40429 - e O O LOAD FPDOFFSEYT IN CASE PSL<FPD>=1 SERVICE PENDING INTERRUPT OR TIMER. 04— T S oy o vy NEXT/MM,GET.BUT.PTE20 :60430 1634, 0986,B(37,0030,0047,00F4 E CATCH RETURN-~-1 FROM JE.SERV.IP.TS CONTINUE AS IF NO INTERRUPT " ;40422 160423 240424 1627, 0085,2477,0783.,8056,0963,4 479x - - e mmmmm—emeannneaae - ;010=mmm ;404614 40415 140416 140417 ;40418 - T SAVE FAULTING ADDRESS. MCFPDOFFSETI_ZLITOC4], INTPEND OR TTMER?, PUSH,NEXT/IE.SERV.IP.TS2 160413 240419 1626, 0C85,2477,0783,8056,0963,4 479+ Y RESTORE VA, VA_RCMM, TEMP13, - 1621, 0480,0036,4030,0047,0162,0 S S e 0 ;111===== semsmmmmm—————— VA_RIMM, TEMP3] LOAD FAULTING ADDRESS INTO VA, FPD, 989 : CMT098.MCX MM MIC MICROZ 1M(O1) Memory Management L 1784, 0081,B5BE,4033,8507,0178,5 ;40440 ,2822} 140443 U 1785, 0880,05BE,4039,8467,0166,F 1406464 140645 28=NOv=83 16:30:35 K13 CLOKX Rev 13.00, Clock rate = 160ns ¢ MM.GET.BUT.PTE vttt vintebintutnintebd ol e TB_RIMM,TEMP5] ; LOAD THE NEW PTE INTO THE T8, et L L S LR ; MDR_R[MM,TEMP2], NEXT/MM.GET.BUT.FLUSH ; : Page 990 : H (MT098.M{X MM.MIC MICRC2 1M(01) Memory Management 28-N0OV~83 :28229 .T0C '* 16:30:35 L 13 Page 991 CLOKX Rev 13.00, Clock rate = 160ns : MM, GET.PTE : MM.GET.PTE' Memory Management 340443 ;ttfitttxttttat*tt**tt*t*ttw*tt*t**t*t***t**ttt*wttt*fi*tn***wwwtwwwt***tttttttu 1460449 ;60450 ; Entry points MM.GET.PTE Input VA Faulting address :40453 ; Output MDR PTE 160455 Resources ERRCOD Error code if TNV or ACV 160451 ;40452 ; 140454 ; 240456 , 160457 ; MM,GET,.PTE FETCHES THE PTE FOR THE VIRTUAL ADDRESS IN VA, 140460 . ;460461 1604662 ;40463 ; IF THERE IS A LENGTH VIOLATION OR AN ACV OR TNV FETCHING THE SPTE FOR A PROCESS PTE THE PROPER BITS ARE SET IN THE ERROR CODE IN ERRCOD AND SEPERATE RETURNS ARE TAKEN FOR ACV AND IF THE VA CONTAINS A SYSTEM ADDRESS THE PTE IS LOADED INTO TNV. 160464 160665 ; MDR AND A RETURN TAKEN INDICATING THAT THE VA NOW CONTAINS [Ff THE VA CONTAINS A THE PHYSICAL ADDRESS OF THE SPTE IN MDR. PROCESS SPACE ADDRESS THE PTE 1S LOADED INTO MDR AND A RETURN TAKEN ;40466 ; ;40467 INDICATING THAT THE VA NOW CONTAINS THE VIRTUAL ADDRESS OF THE 140468 1604669 ; 140470 PTE eE R 140475 Resources 140471 IR IN MDR. CHARLIE'S FLOWS 1.3 AR R R AR RN U 15DA, 0881,837F,0B6B,4047,095C,1 407+ v 1508, 0186,8(37,0080,0847,0000,4 AR R AR R AR FPDOFFSEY RN AR AR AR A AR AR AR (00mmmmm — 140482 WB_MLVA].VFN-RCPOLR]) ;28232 NEXT/MM.GET.PTE.PO 140483 SIGND CMP?,SIZELLONG], AL AALEALAAALLA AL ALY bus cycle in progress 140481 oo AL LA AR bit<29> as a flag of MM.GET.WRITE.PTE usxxwnnesaFORCE ADDRESS**wwanuwnk, 140486 15D9: U 1509, 0081,837F,086A,0047,095E,1 407« AL 140478 :40479 1508: :40480 MM.GET.PTE: U 15D8, 0481,B37F,086A,4047,095D,1 407+ AL AN T8 PARITY ERROR RECOVERY ;282;2 : TG0477 . Save PSL (double miss only) Save VAPTE (double miss only) MM, TEMPQ MM, TEMPS VA 40038 ;40476 ] R AR R AR ARk R ; : DO LENGTH CHECK. : ;0l-==vsemmecsessmmsuomana—————— : VA IS IN P1 SPACE, W8_MCVA).VPN~RLPILR] : DO LENGTH CHECK. :28238 NEXT/MH.GET.PTE.P1 : 140491 15DA: 140492 160493 ;10===esvscccmmensmeacuus mw-eswe: VA IS IN SYSTEM SPACE. WB_MLVA].VPN-R[SLR] ; DO LENGTH CHECK. ;28282 NEXT/MM.GEf.PTE.SYS 260696 15DR: 240497 (levmeesncccecccoccannnunnnas ~=; VA IS IN RESERVED SPACE, : SET ERROR CODE AND MCERRCOD] SLITO[1J. 1460498 ARk ~===w; VA IS IN PO SPACE. ;40487 140488 R SIGND CMP?,SIZELLONG], SIGND CMP?,SIZECLONGI, RETURN [+% ; : : ; TAKE ACV RETURN, ! ! ' < : MICRO2 CMTO98.ME§ 1M(01) Memory Management MM M U 15C1, 0186,8C37,0080,0847,0000,4 28-NOV-B3 M 13 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 Page 992 : MM,.GET.PTE :60499 =01 :40500 MM.GET.PTE,SYS: 140501 ;0fmmmmemm e cmmm eacsmmmann; 40302 MEERRCOD]_2L1TOC13, : SET ERROR (ODE AND ;40503 RETURN [+%] U 15C3, 0881,8330,0038,04A7,0178,6 :40505 ;40506 ;1lmmmmm e oo VA_RISBRI+MLVAI.PTX : LOAD VA WITH THE PA OF THE PTE. U 1786, 0980,0CB7,0030,0687,0178,7 40500 u 1787, 0880,0587,0030,0607,0178.8 u 1788, 0181,BC13,8030,1CA7,0178,9 U 1789, 0C80,0036,4030,0042,0178,A :40508 140511 4n31e 140514 40315 :40517 40518 $40520 U 1784, 0880,0E77,0080,0607,0000,6 | 140521 40322 : TAKE ACV RETURN. jmmmeesmssmssesmmee————— cm——— ; MEMSCAR_ZL1T24L0] : LOAD ADDRESS OF MME BIT jmmmmmm—mmmemmmsessmemeses—e—— : MEMSCR_O : TURN OFF MEMORY MANAGEMENT jemmmmmmmmmeemesceemme—smmesoae ; VA_MLVAJ . ANDNOT.ZLITO[3) : IGNORE LOW 2 BITS OF ADDRESS. jmmmmmmmmmmmmmmememmen R : READ.PHY GRONKS 2ND MDR SO, MM IS READ.NOTRAP : TURNED OFF TQ DO A PHYSICAL READ. [ ———— e ————————— ; MEMSCR_=1, : TURN MEMORY MANAGEMENT BACK ON. RETURNTMC +63 : MDR=PTE, VA=PAPTE, :40524 = 140525 MM, GET.PTE,PO: $40526 u 15D1, 0186,B(37,0080,0847,0000,4 $40527 40528 :60530 U 1503, 0C81,833D,06FA,04A7,005F 8 371+ 14053 40332 10 mmmommemmn oo —mmmmmmemana- : VPN IS .GE. POLR, MCERRCOD]_ZLITOL1], RETURN [+%] B : SET_ERROR CODE AND : TAKE ACV RETURN. e LR L =; VPN IS .LT. POLR, VA_RCPOBRI+MLVAJ.PTX, WB331-30>7,NEXT/MM,GET.PTE.PX : LOAD VA WITH THE VA OF THE PTE. ; CHECK THAT VAPTE IS IN SYSTEM SPACE. 140534 =01 :40535 MM.GET,PTE,P1: 140336 101 mmmmm oo cre e -: VPN IS .GE. PILR, U 15E1, 0881,B33D,06FA,84A7,095F,8 371 :40537 ;zgggg 140540 u 15€3, 0186,8C37,0080,0847,0000,4 140541 40342 VA_RCP1BRI+MLVAL.PTX WB231-30>7 ;1]mmmm ,NEXT/MM.GET PTE.PX oo : LOAD VA WITH THE PA OF THE PTE, ; CHECK THAT VAPTE 1S IN SYSTEM SPACE. m e ancscmnnnn : VPN IS LT, PILR, MCERRCODI_2L1T0C1], RETURN [+4] : SET_ERROR CODE AND : TAKE ACV RETURN. $40544 =00 . PX: 40545 MM GET.PTE _ U 159, 0586,BC37,0080,1847,0000,4 140547 40348 :40550 140551 140552 ;00=mmmemmmm oo m o eae : VAPTE IS IN PO SPACEL, MCERRCOD) §L1r0£33. RETURN [+% : SET_ERROR (ODE AND : TAKE ACV RETURN, 10]omemsmmsenesennnn EORELELELELE ; VAPTE IS IN P1 SPACE, MCERRCOD) ngroch. RETURN [+4 : SET_ERROR CODE AND : TAKE ACV RETURN. 1i , U 15F8, 0586,8C57,0080,1847,0000,4 140546 MICROZ2 MM MIC 1M(O1) Memory Management 28=NOV~83 15F8, 0586,8(37,0080,1847,0000,4 : N 13 MM.GET.PTE 1460555 PROBE READ MODE ON WB?, SIZELBYTE),WB_RLZEROJ, wamaw ;40557 NEXT/MM.GET.PTE.PX20 e PATCH, ;40556 140558 140559 . 1460560 140561 I L] ELTTTEL L K NLERRCOD] _ZLITOL3I, RETURN [ +4] 140562 ; ; 1460563 =1100 260564 MM.GET.PTE,PX20: STIO0NRRRARRARRIARRURRARRRRIAREN RIMM, TEMPS] _MLVA]D, H 260565 1460566 167C, 0085.8592,4033,805F,0178,D 1678, 0186,8(37,0080,0847,0000,4 :40567 FORCE 32 BITS OF VA 1460568 140569 :40570 =1110 NEXT/MM.GET.PTE.PX32 140572 :40573 RETURN [+Z] :40571 page CLOKX Rev 13.00, Clock rate = 160ns ;10******tt*ttt**k**ti*k******i*' 140553 160554 15FA, 1480,05BE,4780,805€6,0967,C 479« 16:30:35 1 (MT098.MCX PROBE VAPTE TO AVOID NESTED TBMISS. PROBE MODE = KERNAL. % jump to PCS xx VAPTE IS IN RESERVED SPACE, SET ERROR CODE AND TAKE ACV RETURN. PYE FOR VAPTE SAVE VAPTE, NOT IN TB. ; BUS/PRB,RD FORCES ALL 32 IF IN C MODE. ; *x code replaced in PCS #+ STVIQRARNBRBRRRUNURBERIBNERINBHE,; MLERRCOD]_2LITOL1], H SET ERROR CODE AND : TAKE ACV RETURN, ;40574 MM,GET.PTE.PX25: ) 167F, 0981,BC13,8030,1(BF,0178,8 . 1788, 0(80,0036,4030,0042,0178,¢ STVVVRRBRRBBHRRABRERRBARRRRRRUHE; 240575 :40576 140577 VA_MLVAJ,ANDNOT.Z2L1T0C3], FORCE 32 BITS OF VA 240580 SHRRRRANKRNRHBRRBRRRENIRRBARGERE,; READ.NOTRAP, ; ;40578 ;40579 NEXT/MM,GET.PTE.PX25.1 240581 ;460582 1460583 2A7C: . 2A7C, (0085,8592,4033,805F,0178,D , 2A7E, 0186,8C37,0080,1047,0000,4 U 2A7F, 0187,BC13,8030,1(BF,02A7.8 . 2A78, 0586,0(52,4030,1047,02A7,D 2A7D, 0480,0036,4030.042,02A7,A PA7A, 0186,0(53,8030,1047,0178,¢ :1100=s=sssss355333333553=3352T5S; 140584 RLMM,TEMPS] MIVA], 160586 240587 NEXT/MM. GET.PTE.PX32 ;460589 MCERRCOD]_ZLITOL2], FORCE 32 BITS OF VA 260585 240588 2AT7E: . ;40590 4059 2460592 2AT7F : ;40593 3460594 140595 ;60596 H FORCE VAPTE TOQ BE ALLIGNED. : BUS/PRB.RD FORCES ALL 32 IF IN C MODE. 2A7R: ;111 ; SAVE ;; *+« code replaced : ; JTTESLESSETITISTISISITITSIIzIIEEn; ;: MCFPDOFFSET]_MB.OR,ZLIT28[02] ;40599 2A7D: : 60600 ,SITICIITTISISTIISTTIISIISINSISNE; 240601 2460602 ;40603 240604 SA7A: ;40605 140606 in P(S #x % code in PCS «* SET ERRCOD AND TAKE ACV RETURN, ;1111=zz=sz==s3zszzzssssssaszaasy VA _MLVA] ,ANDNOT,2L1T0(3], H FORCE VAPTE TO Bg AL L IGNED. FORCE 32 BITS OF VA i BUS/PRB.RD FORCES ALL 32 1 F IN C MODE. ;40597 ;60598 VAPTE. :; BUS/PRB,RD FORCES ALL 32 IF IN { MODE. 0====s==zzz==z==z==zz3z32s5sss,; RETURN [+3] FETCH THE PTE. READ,NOTRAP H TELL TB RECOVERY THIS IS PTE FETCH E T CH THE PTE. f Lg pErlty error traped here, takes ETURN [=11 in recovery routine. ;jE3ITTIFuSIISsSIsIIzsIsIcanss3=ssE; MLFPDOFF SET]_MB.ANDNOT.ZL1T28L2];; MM,GET,PTE,PX25.1: CLEAR PTE FETCH FLAG 993! t : i i; CMTO98.MCx MICRO2 M MIC 1M(01) Memory Management . :I 178, 0885,2477,0083,8047,0000,7 . ;460608 :140610 460609 28~NOV=83 16:30:35 B 14 ¢ MM, GET.PTE (LOKX Rev 13.00, (lock rate = 160ns T jmmmmemmcmemeenne——————— me———— ; RIMM,rsnps% MLMDRI.RL. 7, RETURN [+7 ;: SAVE ROTATED PIf === =m==w = TAKE GOOD RE TURN. Page 994 . ) o Lo 2o 5 : ! | — - —_ R - ! ! | - = - - I T - e ——— e e MICRO2 (MT098.MCx MM.MIC ——— IM(OT) Memory Management 28-NOV-83 ;40611 € 14 16:3?%33TE ¢ MM.G SRRARARR RN R RN AR N AR R ARE R AR AR : ; THE NEXT SECTION IS FOR PRCOESS SPACE TB MISSES THAT GET A TB MISS 340618 ;fitttittttttttttfltv'ttfltttttfiQQNQkfittt!'fiQQQQQQfittttttQttttiittfiflfiQQQQQ& 140617 ; TRYING TO FETCH THE PROCESS SPACE PTE FROM VIRTUAL SYSTEM SPACE. :282}3 MM.GET.PTE.PX32: 40620 1609, 0586,8(37,0080,1847,0000.4 . 1608, 0081,8330,0038,048F,0178,€ 178€, 0480.0036,4030,0040,0178,F 178F, 0080,058F ,4033,8447,0179,0 1790, 0C85.2477,0033,8047,0179,1 1791, 0085,2477,0783,8057,0969,C 479 169C, 0186,BC37,0080,1047,0000,4 OF va, : BUS/PRB.RD FORCES ALL 32 IF N C MODE. ; PROCESS SYSTEM SPACE TBMISS. : 00 LENGTH CHECK. w8 _ML[VA].VPN-RLSLRJ, SIGND CMP?,S1ZELLONG) 140625 H[ERRCODJ SLITO[SJ 140628 ;1] mmmmmnnen————— —mmmm——= ——-; ;282%? VA_RUSBRI+MLVAJ.PTX 140632 peeemmmsescmeemeceeeee- wemmmwmes; FETCH THE PER PROCESS SPACE 340654 =01 :28259 :60629 ;zgggz 140635 60634 :40638 TR e ———— RETURN [+% FORCE 32 BITS f VA, READ.PHY s SET ERROR CODE AND : TAKE ACV RETURN, ; BUS/PRB.RD FORCES ALL 32 IF IN C MODE. ; LOAD VA WITH THE PA OF THE PTE. : PAGE TABLE PTE FROM SYSTEM SPACE. eeeesscesssescomescmscmeccnaeee : VA_RIMM. TEMPS] ‘ : RESTORE VAPTE om e e e ——————— : 28223 RCMM.TEMPS]_MLMDRI.RL.9 00641 14064 je—e=smccmesmeccsecsscmeamees : PROBE THE PAGE TABLE PTE RCMM. TEMPS] MCMDRI.AL.9, ; THE NEW SPTE IS IN MDR, 140645 31100 M[ERRCODJ ZL1T0C2], :28224 140646 ;28225 :40650 ;28231 anosg 21111 :40654 169F, 1881,B58E ,4033,851F ,0167,F FORCE 32 BITS :40621 :2822% 140649 1690, 0986,B8(37,0080,1047,0000,5 RA A AARARAASRRE AR IRRRRERRRRETRRR RN OO RGN 140612 140613 ;282}? 1780, 0081,837F,0B86B,405F,0960,9 407« Page 995. CLOKY Rev 13.00, (lock rate = 160ns 140855 160656 :60657 PTE (MECK READ KERNAL? ; SAVE ROTATED SPTE ; ;1100====m=smscsmsscuammmu—————— : NO_READ ACCESS TO PROCESS PAGE TABLE. RETURN [+4] 11101 =memamamcmem—an R ACERRCODI_ZLITOL2], RETURN [+8) 111]meneeemnncanene S FORCE 32 BLIS OF VA. 18 _REMM. TEMPS], PATCH, NEXT/MM.GET.PTE ,PX25 : SET _ERROR CODE AND : TAKE ACV RETURN, ===; NOT VALID PROCESS PAGE TABLE. : SET_ERROR CODE AND : TAKE TNV RETURN, : : BYS/PRB.RD FORCES ALL 32 IF IN € MODE. } LOAD THE SYSTEM PTE INTO THE 1B, ¢ *v jump to PCS wx ; — e e v - - L CMT098.MCX MM.MIC MICROZ TM(0 1D Memory Manag ement 28-NOV-83 $4065 :60659 .TOC [X] 16:30:35 D 14 (LOKX Rev 13.00, C lock rate = 160ns Page ¢ Subroutines for Probeing : Subroutines for Probeing'’ Memory Management : Memory Management MM.PRB.WRITE.SIZ"" :48660 AR AR AN R RN R AR 9RN RARRRARNRRAN AN R AN G AR NRAARNAAN R AN RN AN RAN AR AR RN AR AR RANR ;60661 240662 140663 140664 140665 ;60666 .THC ' . . . Entry points MM.PRB.WRITE.SIZ Input VA DSI2E signal virtual address to be probed Size to be probed Resources MM.TEMPI MM, TEMF3 Save VA when calling MM, GET.WRITE.PTE Save faulting address if ACV or TNV Subroutines 1C. TNV . . . ] . . 160667 ;40668 2460669 :40670 ; . ¢ 3 . . :40671 160672 160673 . ’ . ;40674 ; ;40675 . . . . . 3 . . . ’ PR KRR [ 1796: 1E.ACV MM, GET.WRITE.PTE MM, PRB.WRITE.NR . . PRB.WRITE.S1Z PROBES THE ADDRESS IN VA FOR WRITE ACCESS USING THE IF T HE ACCESS IS OK IT RETRUNS + 1 LENGTH SPECIFIED IN DSJZE. IF THERE IS AN ACV OR TNV THE PR OPER FAULT 1S INITIATED AND NO RETURN IS TAKEN. CHARLIE'S FLOWS 5.1 R AR AR RA AR KRR AR AR AN AN RN AR . sunnnnxxa*FORCE : PROBE INITIAL VA. ADDRESS#wtnnnnns MM.PRB.NRIIEbsll: ; PROBE NOT VALID (PTE NOT IN T8) RCMM, TEMP1] M{VAJ, 16R5: 10101 mmmmremec—an B e ] NEXT/IE.TNV 1685, 0c80,0036,4030,0047,00F6,1 ; SAVE VA AND PROCESS A TB MISS YO ; s CATCH RETURN+1 FROM MM,GET.WRITE.PTE TAXKE TNV FAULT. ; LOAD THE PTE BACK IN THE T8B. PUSH,NE X T/MM,PRB, WRT . TBM 1684, 0485,8592,4033,(047.0561,8 d v ARy 3 PROBE WRITE?,SIZELCIDEP] 1684: b ARk bR ORCE ADDRESS#w#wtanns cexexanantef MM.PRB,WRITE,S12.00: 1796, 0080,0036,4780,005D,0968,4 479« NI R AR ANk R AR AR Lt 1686: MM_PCALL_ACV_ENTRY: 70110 wmmmmm e meanm—naee—aa——— : PROBE NO ACCESS OR RETURN+2 FROM ; MM.GET.WRITE,PTE SAVE FA 'LTING NEXT/IE . ALV ; ADDRESS AND TAKE ACV FAULT. RCMM. TEMP3]_MLVAD, 1686, 085,8592,4039,(047,00F5,D 1687: NEXT/MM.PRBTWRITE.S12.10 1687, 0485,8£51,0033,0047,0160,4 168F, 0880,0036,4080,0047,0000,1 ;0111=emeese covemmnmmanmmm————— ; RLMM. TEMP1]_M[VAI=1 168F: ;1111==mwenmen cemmmememmmenm———— RETURN [+1)] PROBE UNALIGNED BUT ACCESS OK OR ; RETURN+3 FROM MM.GET.WRITE.PTE, ; PROBE VA+SIZE-1. ; SIZE DEPENDENT ACCESS IS OK. 996 : CMTO98.E§% MM, MICRO2 1M(01) Memory Management 28-NOV-83. 16:30:35 E 14 CLOKX Rev_13.00, Clock rate = 160ns MM.PRB.WRITE.SIZ ' Page 997 ;40710 =0 ‘28;}5 MM.PRB.WRITE.SIZ.10: U 1604, 0C84,073D,0033,C4A7,0579,A 140713 VA_RCMM. TEMP11_RB+CONX.S1Z, ; : :28;12 PUSH,NEXT/MM,PRB.WRITE .NR ¢ PROBE LAST BYTE. ; 140714 140717 U 1605, 0884,073C,0033,0047,0179,2 140718 ;28;53 140721 U 1792, 0C80,0E7¢,0083,C4A7,0000,1 140722 140723 SIZECIDEP], : ]mmmmemsmmemsccecmaensas ———————; RCMM, TEMP1]_RB=CONX.S[2Z, SIZECIDEP] ; : jmmmmmm——————————ae m—m——— ——— VA_RIMM. TEMP1]+1, RETURN [+1] ; } SIZE DEPENDENT ACCESS IS OK. , | CMT098.MCX : MM.MIC MICROZ2 1M(01) Memory Management 28-NOV~83 .JoC "' AR . . '3 F 14 CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 Page 998 PRB.WRITE.LONG PRB.WRITE.LONG'' : Memory Management KRR KRR AR KRR AR R AR AR RN RGN AR AT A AR R R AR AR AR AR . . Virtual address to be probed Entry points MM.PRB.WRITE.LONG Input VA hd . ’ . ’ DSIZE signal . wkxkekxaxMUSt indicate bytexwaxwxxwxuw . . . . MM. TEMP1 Resources MM, TEMP3 . . Save VA when calling MM.PRB.WRT.TBM Save faulting address if ACV or TNV . . . 3 1E. TNV subroutines . 1E.ACV ’ . . MM_PRB.WRT.TBM MM.PRB.WRITE.NR . . . . . . . . . . . MM.PRB.WRITE.LONG probes the longword specified by VA for write access. It does a return+l if the access is ok and takes a fault otherwise. (Used only in queue instructions. Could be eliminated bg slowing down INSQUE and REMQUE, by 6 and 3 cycles respectively. . . . NS NEN N SN N N N N N NN N SN NN N TINSNNN TR TR TRTR TR 23 Y P 2l ak kAl R O A R P A Eo 16AF, 0880,0036,4080,0047,0000,1 LI < 16A7, 0C85,BE51,0033,0047,0163,C c U 16A6, 0085,8592,4039,0047,00+5,D T N U 16A5, 0080,0036,4030,0047,00F6,1 TRT S U 16A4, 0485,8592,4033,0047,0561,8 o U 1798, 0080,0036,47A0,005D,096A,4 479+ . . . g £~ . [elalelelelelelelelelelelolele Lo le Lo t-l[=1=Twlele] RN . CHARLIE'S FLOWS 1.7 RN A RN AR AN RN AR AR AN AR AR AR AR R AR RRARA R AR AAR AR AR A R hh Ak 1798: ;xxxxwawxxFORCE ADDRESS*hwhnanks; MM.PRB.WRITE.LONG: PROBE WRITE?,51ZECLONG] =0100 : PROBE INITIAL VA. ;0100=mmmmmm e v ; PROBE NOT VALID (PTE NOT IN TB) RIMM. TEMP1] MCVA], : SAVE VA AND PROCESS A TB MISS TO PUSH,NEXT/MM.PRB.WRT. TBM ; LOAD THE PTE BACK IN THE TB. e; NEXT/IE.TNV ; CATCH RETURN+1 FROM MM.PRB,WRY.TBM TAKE TNV FAULT, ;0110mmsne e e ~-==; PROBE NO ACCESS OR RETURN+2 FROM RLMM.TEMP3] MLVAJ], : MM.PRB.WRT,TBM SAVE FAULTING NEXT/IE.ACV ;011 oo man e m e ; ADDRESS AND TAKE ACV FAULT. c e ===<=; RCMM, TEMP1]_MLVA]-1, NEXT/MM,PRB.WRITE.LONG.10 21111 111l =~emscmencmacccecenen =: RETURN [+11 PROBE UNALIGNED BUT ACCESS OK OR ; RETURN+3 FROM MM.PRB.WRT.TBM, ; PROBE VA+SIZE-1, s SIZE DEPENDENT ACCESS IS OK. f 1 ; : CMT098 MCX M.MIC 1M(01) MICROZ Memory Management 6 14 CLOKX Rev 13.00, Clock rate = 160ns PRB.WRITE.LONG 28-NOV~83. 16:30:35 240771 $407 72MM.PRB. NR TE.LONG.10: 140773 U 163C, 0884,073D,0023,C4A7,0579,A U 163D, 0484,073C,0023,0047,0179,3 140774 :40775 240776 240777 v S - - - > - VA RCMM, TEMP1] RB+CONX(4), PUSH,NEXT/MM,PRB.WRITE.NR - - . ; PROBE LAST BYTE. -----------—-----———-----_---_- 240778 240779 140780 U 1793, 0C80,0E7¢,00B3,C4A7,0000,1 - :40781 ;40782 VA_RLMM, TEMP11+1, RETURN {+11 : S}ZE DEPENDENT ACCESS IS OK. Page 999 : ; CMTO098.MCX MM.MIC MICROZ 1M(O1) Memory Management 28~NOV=-83 16:30:35 Memory Management AR AR RN AR KRR :40785 RN Page 1000 CLOKX Rev 13.00, Clock rate = 160ns PRB.WRITE.NR : ;40783 .T0C '' o H 14 : RN A AR R AR PRB.WRITE.NR" AR Tk Rk kR AR Rk kR A Ak Ak '28;39 ; :28;33 E Entry points Input MM.PRB.WRITE.NR VA virtual address to be probed 140790 Resources MM, TEMP] Save VA when calling MM.PRB.WRT,TBM 140793 : Subroutines IE.TNV 28;35 H 160794 MM, TEMP3 Save faulting address if ACV or TNV 1E.ACV MM.GET.WRITE .28;82 H ;40797 E PRB.WRITE.NR IF BRANCHED TO WHILE DOING A BRANCH ON WB<1:0>=0? WILL 240800 ; OTHERWISE 1T PROBES THE BYTE SPECIFIED BY VA FOR WRITE ACCESS, 240798 ; 140799 TAKE A RESERVED OPERAND FAULT IF THE ADDRESS ON WBUS IS NOT LONGWORD ALIGNED, IF THE ACCESS IS Ok IT DOES A RETURN+1, IF THERE IS AN ACV OR TNV ;40801 ; THEN THE PROPER FAULT IS INITIATED, :zgggg H 140804 : AL IR 240806 R CHARLIE'S FLOWS 5.1 A P AR AR R AL AR SRR LR R ;40807 179A: shnknnn kv FORCE ADDRESS**#xawdnw, ;2821? PROBE WRITE?,SIZECBYTE] AR SR AAALAAARALSLEALELAL AL LALLLL :28383 MM.PRB.WRITE.NR: U 179A, 0480,0036.,4780,005D,0968,C 479+ 140812 =1100 ;40813 U 16BC, 0485,8592,403%3,0047,0561,8 U 168D, 0C80,0036,4030,0047,00F6,1 U 16BE, 0C85,8592,4039,C047,00F5,D U 16BF, 0880,0036,4080,0047,0000,1 ;40814 :28%}2 340817 bk ¢ PROBE VA. 100 m=mmmemmmcneceemaoaas wemww=: PROBE NOT VALID (PTE NOT IN TB) RCMM.TEMP1] M[VA], PUSH,NEXT/MM,PRB,WRT.TBM 1110l e e : SAVE VA AND PROCESS A TB MISS TO ; LOAD THE PTE BACK IN THE TB. e rmemncncnananneana : CATCH RETURN+1 FROM MM,PRB.WRT.TBM ;283}8 NEXT/1E.TNV ; TAKE A TNV FAULT. 40820 240821 ;1110mmmmmmm—mmm m ; PROBE NO ACCESS OR RETURN+2 FROM ; MM,PRB.WRT,TBM, SAVE FAULTING RLMM_TEMP3] _MLCVAl, :zggg% NEXT/IE.ACV ; ADDRESS AND TAKE AN ACV FAULT. }40836 240825 L et UL L E L DAL L LD L : WRITE ACCESS 0K OR RETURN+3 FROM RETURN [+1] ; MM,PRB,.WRT.TBM, TAKE OK RETURN. : : CMTO98.M§§ MMM MICRO2 1M(01) Memory Management 16:30:35 28-NOV~83 o 114 Page 1007 CLOKX Rev 13.00. Ctock rate = 160ns PRB.WRITE? : :283%9 .T0C ' Memory Management PRB.WRITE1T" 340828 ;t**t*t*fik*tt*ttt***t*t**tt*tt*tt*ttttttttt**tt*******t**ttfittt***t*i***t***fii MM.PRB.WRITE? Entry points ;283%8 : virtual address to be probed 340831 E Input VA TEMP2 Probe mode 140834 : Resources MM, TEMP1 Save VA when calling MM.PRB.WRT.TBM 140839 : Subroutines IE.TNV :285%% ; 160835 ; ;40836 ;2gg§g : +40840 ; MM, TEMP3 TEMPY MDR TIE.ACV MM.GET.WRITE ;2832; H 140843 :2822? H 140846 A YA Save faulting address if ACV or TNV Save PSL if TB miss kxwkrxk CONTENTS DESTROYED wwawwwnuxe PRB.WRITE1 PROBES THE BYTE SPECIFIED BY VA AND DSIZE FOR WRITE ACCESS USING THE MODE SPECIFIED IN TEMPZ. RIS :40848 CHARLIE'S FLOWS 5.1.X A AR A RS R AR DAL AR AR A AR A AL AR MMM AR AR ALAALEARALLELLE LML ;40849 1798: ;xxwanwwwxFORCE ADDRESS**%#khidk; 140852 PROBE WRITE MODE ON WB?, ¢ PROBE INITIAL VA. :2832? WB_MLTEMPZ] ; AL :28%2? MM.PRB.WRITE1: U 1798, 0480,2592,4780,005C,096C,C 479% ;40853 140856 =1100 U 16CC, 0886,1036,4030,0087,0179,4 140857 ;28328 1110 SIZELBYTE], ;1100===m===m=mm——————- wemwmww=ws PROBE NOT VALID (PTE NOT IN TB) MCTEMP11 _PSL, NEXT/MM,.PRB.WRITE1,10 140860 MM.PRB.WRITE1.05: 140861 U 16CE, 0C85,B592,4039,0047,00F5,D U 16CF, 0880,0036,4080,0047,0000,1 140862 :28322 $40865 1460866 : P R etattntmsrute RCMM, TEMP3]_M[VA], ;111 mmemwm e m : ittt koot ; PROBE NO ACCESS SAVE FAULTING H NEXT/IE.ACV RETURN [+1] : SAVE PSL AND PROCESS A TB MISS, ; ADDRELS AND TAKE AN ACV FAULT. e ————— ; ACCESS 0K : ; : CMT098 MCX MIC MICRO2 1M(01) Memory Management 28-NOV~83 : 16:30:35 J 14 (L PRB.WRIT ;40867 MM.PRB,WRITE1,10: 140868 U 1794, 0060,058E,4030,86A7,016D,C U 16DC, 0485,8592,4033,C047,0561,8 U 16DD, 0420,1002,403D,8007,00F6,1 U 16DE, 0C20,1002,4030,8007,016C,E :40869 :28339 :40872 =1100 e=emessemsemeeeeeee—eeeee——eee PSL(PREV_CURM ISCURM_RLTEMP2D), -t CHANGE MODE FOR CHECK IN SET MM.NDINT ACCESS. TEMP DISABLE INTERRUPTS TEMPORARILY 1100==sszresase smmemmmn ——— TENP1] MLVA], . :40873 RCMM. $40876 .Zgg;g 140877 ;1101 =mmmmmms mmmmmm—emmaeem e —— CATCH RETURN+1 FROM MM.PRB.WRT.TBM RESTORE ORIGINAL PSL, ALLOW INTERRUPTS PSL_MCTEMP11,CLEAR MM.NOINT, ; TAKE A TNV FAULT. NEXT/IE. TNV :40880 :40881 e n e - NO ACCESS RETURN+2 FROM MM.PRB.WRT.1BM mm e == $1110mm RESTORE ORIGINAL PSL, ALLOW INTERRUPTS PSL_MLTEMP1],CLEAR MM.NOINT, ;zgg;g .2ggg§ $40884 U 16DF, 0020,1002,408D,8007,0000,1 Page 1002 :40885 :40886 PUSH,N T AR RB. R . TBM ; SAVE VA AND PROCESS A TB MISS TO : LOAD THE PTE BACK IN THE T8B. NEXT/MM,PRB,WRITET.05 AND TAKE AN ACV FAULT. 1111 ] mmemmmme——————————ce—————— ACCESS OK RETURN+3 FROM RESTORE ORIGINAL PSL, ALLOW INTERRUPTS PSL M[TEMP1J CLEAR MM.NOINT, RETORN [+1] MM.MIC MICROZ2 1M(01) Memory Management 28~NOV~83 :zgggg .70C '* : 16:30:35 K 14 CLOKX Rev 13.00, Clock rate = 160ns 1 : (MT098.MCX MM.PRB.WRT.TBM Memory Management : Page 1003 MM.PRB.WRT.TBM" 240889 ,tt***k**t**tttw*fit**t**t*t**tt*i*t**t*ttkttt*******tfi*tt*fli*tt*t**ttt*it*tt*t MM,PRB,WRT, TBM Entry points :2833?: Ezgggg; 160894 : ;40895 ; 140896 Subroutines MM.GET.WRITE.PTE This routine save MOR, processes a TB miss by calling MM.GET.WRITE.PTE and restores MDR before returning. ,tttttwt*ttttfi*wtttfitttfifinwt*tt*t*kii**ttt*t****fi**tfi**t**ti**it**iifi*******Qt 140897 140898 1618: ;wnsxawxaxFORCE ADDRESS*xaxwxnxx; ;40901 :2888% fi[MM TEMP2) M[MDR] PUSH,NEXT/MR, GET.WRITE .PTE 140904 1619t ;0l=mmwmmmmms=smwmecm—e—eeeeeeee ; :28338 MM.PRB, er TBM: U 1618, U 1619, 0885,2592,4039,8047,055€,0 0c80,058E ,4089,8467,0000,1 140905 :28389 140908 161A: U 161A, 0c80,05BE ,4089,8467,0000,2 140909 :283}? 140912 161B: u 1618, 0480,05BE ,4089.8467,0000,3 160913 :60914 E SAVE MDR AND FETCH THE PTE : MDR _RIMM,TEMP22 ; RESTORE MDR AND TAKE MDR RLCMM.TEMP2], ; RESTORE MDR AND TAKE RETORN [+1] s TNV RETURN ;10m===mm=mmmmmmemaamecccnsmanas ; RETORN [+23 ¢ ACV RETURN ;1l=meweccmens mmeemuesmn————— : MDR_RIMM.TEMPZ2], RETORN [+3] . RESTORE MDR AND TAKE + ACCESS OK RETURN . H CHT098 . MCX MM MIC MICRCZ 1M(01) Memory Management 28-NOV-83 ;283}2.TOC ' : 16:30:35 L 14 CLOKX Rev 13.00, Clock rate = 160ns D, MM.PRB.REATBH Memory Management : MM.PRB.READ.TBM" }40917 'tttttt*ttttkfitt!tttt***t*ktfit*kk*kttt*ifi*fii**i*fifltfiitfitt*iittitttlt*t‘ttitttt :288}8 : Entry points MM.PRB.READ. TBM 32835? ; Subroutines MM.GET.READ.PTE 140922 : ;40923 ;40924 'ittukkfik*tttttt*ttttkfitk*wflt*fin&fitw*tfit**t**fi************t***t*ttt*ttttt*t*ti ;40926 1628: :40925 U 1628, 0085,2592,4039,8047,055C,0 U 1629, 0C80,05BE,4089,8467,0000,1 U 1628, 0480,058E,4089,8467,0000,3 sunnnanttxFORCE ADDRESSHxnnnxnen, ;40927 MM.PRB. READ T8M: :60928 0Qm=semsmssecsessoscaanew mmem——; 140929 R[MM TEMP2] MCMDR], ; :283%? PUSH,NEXT/MR,GET. READ PTE 140932 16291 :40933 ;283%2 ;01=====mm=ncneaus e m———— MDR RIMM.TEMP2], ; RESTORE MDR AND TAKE RETORN [+1] ; TNV RETURN 140936 162A: U 162A, 0¢80,058E,4089,8467,0000,2 This routine save MDR, processes a TB miss by calling MM.GET.READ.PTE and restores MDR before returning. H 10m==-wmmmmacanaaas ————————— .- : RESTORE MDR AND TAKE 140937 MDR RLMM.TEMP2], ;40940 1628: " 1 ------------- u--u-----u------" ;283%3 240941 340942 RETORN [*2] MDR R{MM, TEMPQJ RETORN [+3] s ACV RETURN . RESTORE MDR AND TAKE s ACCESS OK RETURN § Page 1004' : H MICRO2 (MT098.MCX (MODE ,MIC 28=NOV-83 1M(01) CMODE (MIC 16:30:35 M 14 CLOKX Rev 13.00, Clock rate = 160ns ;40943 . TOC *'CMODE MIC" ;40944 .T0C ''Revision 21.0 ' . ;288?2 : Gerard Koeckhoven, Brian Allison H ;40947 ;40948 ;40949 ;40950 ;40951 160852 140953 ;40956 ;40955 :40056 ;40957 ;40958 . NOBIN Revision History' ; REvV EXPLAINATION ; 21 Cause 00D Address traps when the SP is odd in JSR, RTS, MFPx, MTPx and RTI/RTTY ; 20 ;19 the beginning og the instruction. destination address is the P(, ; 18 160969 ;40970 ;17 ;40972 116 quotient equals 8000 when the Dlv: The remainder is not of the same sign as the dividend when the operands are of a ditferend sign. Jero is an acceptable '‘expected-negative'' result, MuL : ASH: Fix ua mentioned in . L. Left shift should not overflow when result sign = originat DIV: 160966 ;640967 .40971 Recover locations 147C and 147D Fix JSR to detect an illegal destination mode ''0'' at fix the TSTB instruction to execute 3s a TSTE 40961 ;60968 Trap reserved opcodes that get confused with RTI, RTT, RTS, 10T and BPY. Fix ODD address check of operands with RTS,JSR, JMP Fix the DIV to not set the V'’ bit when the $60960 ;40965 + ' ,70C "' ;40959 $40962 ;60963 ;60964 ) Fix . problem that calted it overtlow and left result unwritten. Sign extend1ng 0 before the test fixes the problem. MUL,; vbit should not De set when result most neg no. Fix ASH to not set the V bit if the bits shitted out are of the same sign as the sign ot the original and final operand, Initial release, 140973 JBIN sign, Page 1005 : ! : (MTO9B.MCX {MODE .MIC MICRO? 1M(01) Compatibility Mode 28-NOV-83 16:30:35 ¢ 1 N 14 CLOKX Rev 13.00, CLR(B ) CLR( Clock rate = 160ns 1 ! ¢ CLR(B)" Compatibivity Mode .T0¢ R AR R AR R R R RN R RN R AR AR R RN R RN R dest.wx, CLR(B) Input (dest is memory) Input (dest PR RRR AR AR NN AR RN KRR is register) AR AR KA R R AR ARAR AR AR - > s gy S (g o ey o gt e 0 e B B VA Address of dest RNUM # of register to clear L N RN R AR ARk kA Ak A ARk TEST FOR CLR(B) PC NOT REGISTER MODE P( =00 CLEAR MEM LOCATION OR REGISTER PC_RCZERO] 36 rrnadD .]0 ................. - L£ ET 3T ccOP1, s12E£woRD], NEXT/CM.NOP ~OVW» SET THE CONDITION CODES U 02CC, 0882,0587,013C,4DDA,003F,9 U 02cE, 0480,05B&,4010,8(87,0148,C Ak O RNUM.EQ.7? v 0013, 0080,0036,4BB(,C047,002C,C RRRRAAN AR A kAR AN AR AR AN AR AR AN LREGION/ IRDX.R 1L, IRDX.RTH/IRDX.R2L, IREX.R2H EM.CLR-RE?: Page 1006- TER ER MODE PC cfigL BITS IN PC HE PC GET CAUGHT UP SET THE CONDITION CODES U 02CF, 0882,0587,013C,4DDA,003F,9 © 03CA, 0482,0587,003C,4D(:4,0072,2 D A2 0T EGISTER MODE PC L € AR MEM LOCATION OR REGISTER e o O e - - NOT REGISTER MODE PC CLEAR MEM LOCATION OR REGISTER SET THE CONDITION CODES WASTE A CYCLE kW ¥ i r— . e = e CMT098.MCX MICRO2 1M(01) Zompatibility Mode £MODE LMIC B —_— 815 2B-NOV-B3 16:30:35 (LOKX Rev 13.00, Clock rate = 160ns Page 1007 : DEC(B) " 61011 ; DEC(B) A : DEC(BY! Compatibitity Mode ;2}008 .1T0¢ : :'{'1 ?0 .-ttt.tititlliltt!lQ!tttl!ll!t'!tl‘tt't'tfit!'""lttQ‘Q'fi"'.ifitQQQQQQQQ.Q&QQO’Q. 261012 ;2}8}2 : 141015 : 161014 dest.mx VA Input (dest is memory) MOR Input (dest is register) I R A R R A R S A AR A RNUM AR AR Address of dest tontents of dest # of register to dec AL AL AL AL AL AL AL A LLLA L ;61017 _REGION/IRDX.RIL,IRDX.RYH/IRDX.RL, IRDX.R2H ;61018 =) :é}g;g (M. DEC=REG: lu 0017, 080,058,488 ,(467,0030,4 22}8§1 MDR_GPR.R RNUM,EQ,7? 2461024 R{DST.R).S1Z_M[MDR]-1, . DEC THE RIGHT REGISTER 161626 ccort,SI2ELIDEPY, : SEY THE CONDITION CODES 1610 % =00 ;61025 < 0304, 0B8%,265!,013(,4D0DA,003F,9 ;2}8 g 141029 =10 :41030 J 0306, 0981,AC10,0010,0087,014v,7 3 0%07, 088%,2F%Y,030 ,40DAL 003 .9 ;00=mmmmam—— e ————————- e WR]ITE NOTREG, IRD1 i SEE IF SOME IDIOT WANTS TO DEC PC : NOT REGISTER MODE PC ; DO THE RIGHT THING IF MEMORY INST H ne REGISTER MODE PC a==; ;10mevemmmemaveecanonasann PC_MIPCI-ZLITOL1], ccDP1,SIZELWORD] ¢ SCREW UP THE PC ;s SET THE CC*S JUST FOR THE HWELL OF T 610310 ;2}8%% NEXT/CH.TEST.PC.&DD 141034 ;61035 ;41036 1]m= smmmmemmmemesseeae eewwwmww=; NOT REGISTER MODE PC kLDST.R].SIZ-M[MDR]-1. : DEC THE RIGHT REGISTER : DO THE RIGHT THING ]F MEMORY INS WRITE NOIREG, ) ; SEY THE CONDITION CODES CCOPY,SIZELIDER], 161037 :z;g;g {RDY : GO CAUSE AN ODD ADDRESS TRAP H }41840 CM.DE C=MEM: ;461061 ; , _ o S 08B, GAR3,2EST,UU3 ,4DNA,0072,7 jeemeemecssscsccessesunaAnnGaRa L ; NOT REGISTER MODE PC ;61062 RIDST.R).S12_MIMDRI-1, . DEC THE RIGHMT REGISTER 141064 (cori,sizet 16ER], SET THE CONDITION CODES 41063 ;61045 . WRITE NOTREG NEXT/CO.NOP . DO THE RIGHT THING IF MEMORY INST : z MICRO2 1M(O1) CMTO98 . MCX H CMODE i 1 Compatibility Mode JMIC 28=NQV=83 ;floz ! J10¢ 5 CLOKX Rev 13.00, Ctock rate = 160ns 16:30:35 ¢ INC(B) : INC(B) Compatibitity Mode " Page 1008 EQ1 Qg JANAREARRA SRR RN AR AR R LR EARR A LA RARA AR REARARARNACARR R AR e bt b dddbdbttnd 3 ; 610649 ; ;61050 INC(B) dest.mx Input (dest is memory) ;2}82; : x 341053 : AL R T L e VA MDR Input (dest is register) e A R AL IS A R A RNUM AR RAL LA "REGION/IRDX.RIL,IRDX.R1H/IRDX .R2L. IRDX. R2H ;2}822 U 0018, 0480,05BE,4BBC,C467,0030,C Ez%ggg cu.luc-ass 32}828 MDR GPR.R RNUM £Q,7? 1641061 =00 v 030¢, 0c83,2650,013C,4DDA,003F,9 REDST.RI.SI1Z_MIMDRI+1, 141064 CCOP1,SIZECIDEP], ;2}822 141067 =10 141068 J 030E, ODB1,AC11,0010,0C87.0149.7 WRITE NOIREG, IRD1 o LALALLLAALAL LA Y SEE IF SOME IDIOT WANTS TG DEC PC : ADD ONE TO THE CORRECT REGISTER * TAKE CARE OF MEMORY DEST : SET €C'S : : INC THE BC ; SET CC'S * CAUSE AN ODD ADDRESS TRAP 141069 ;2}8;9 241075 ------------------- wewmwwwwww; NOT REGISTER MODE PC ktosr RY.S1Z_MIMDRI+1, : ADD ONE TO THE CORRECT REGISTER 161074 161075 ;218;9 14107 A AL LR LLAL LML 10memmmemmememmonana—s“swmwaunus; REGISTER MODE PC pe H[PCJ’Z%ITOETJ. WRITE NDTREG CCOP1 s1ZeLIDEPD, 1RD1 341878 CM. INC=MEM: ¢ U300, Q0B3,2ES0,U03L,4DDA,0072,2 # ot register to inc ccOP1,s12; EwORD] NEXT/EM.TEST.PC.ODD 16107 U O30F, OCB3,2650.0730.4DDA,003F,9 Contents of dest T wemmumw=; NOT REGISTER MODE PC ;41062 141063 Address of dest P 161080 61081 RCDST.R].S1Z_MIMDRI+1 WwRITE NOTREG 141083 NEXT/C0.NOP 161082 ccopl,sIZef166P) : TAKE CARE OF MEMORY DESY : SET €C'S : ; NOT REGISTER MODE PC : ADC ONE TO THE CORRECT REGISTER : TAKE (ARE OF MEMORY DEST POSET cC's ; - iffi::— MICROZ2 CMTQ98 M X : Compatibility Mode CMODE .MIC : 1M{01; 28=NOV=83 16:30:35 : NEG(B) :2}832 Joc 241086 IR AR ;41087 ;61088 ; ;Z}ggg : u 0061, 0480,05BE,4BBC,(467,0031,4 v 0314, 0883,2593,013C,55DA,003F,9 i J 0317, 0883,2593,013(,55DA,003F,% ] _ v 03CD, 0483,2593,003(,350A,0072,2 ; dest.mx NEG(B) Input (dest is memory) Input (dest is register) ; . VA Address of dest : RNUM # ot register to negate 3 MDR Contents of dest : ! i 32}832 EM.NEG-RE?: 32}882 fiDR,GPR.R ANUM.EQ.7? E SEE IF SOME IDIOT WANTS TO DEC PC ;00=mmmmmnm———————na umwanuwaw; NOT REGISTER MODE PC 141099 =00 ; 41100 4110 RIDST.R].S1Z_-M[MDR], WRITE NOTREG, : NEGATE THE SPECIFIED REGISTER ; TAKE CARE OF MEMORY DEST :2}}82 IRD1 H ccop2,S1ZECIDERT, :41102 ;10memmmonoc e e e e en -: REGISTER MODE PC PC_~M[PC], ; NEGATE P( ;2}}83 NEXT/CM.NOF : 141110 TR i T =e=-=; NOT REGISTER MODE P( ccOP2,size(WORD], 141107 11 41112 [DST.K].S1Z_~MIMDR], WRITE NOTREG, ;2}}}? IRD1 (cOP2,SI1ZELIDEP], 2461113 ; SET cC'S 41119 : SET CC'S : ;61120 61121 meeeccsccmscmascssscnneanan =-==; NOT REGISTER MODE P( fi[DST.R].SlZ_@M[MDR], : NEGATE THE SPECIFIED REGISTER ccor,SIZELIDEP], s SET (€£*'S WRITE NOIREG. NEXT/CO.NOP f | . i ! : NEGATE THE SPECIFJED REGISTER ; TAKE CARE OF MEMORY DEST 241116 CM.NEG=MEM: 7 ? ; SET (C'S 141106 61118 . : NEG(B)*' Compatibicity Mode : :2}882 .?EG]ON/IRDX.R1L.lRDX.R1H/iRDX.R2L.lRDX.R?H 341117 _ Page 1009: ;ntnttttnw*wtttwtt'tttwt*wttqtfltt*qktt'ttttttt*t&t*fltkt'Qtn'Qtwtwnntttittt'ttt 41105 =10 U 0316, 0481,A003,001D,9487,0148,( CLOKX Rev 13,00, Clock rate = 160ns AR AR R AR R A AR R AC AR RAC LR ERAR AR AR AR RGN RN AN NI NR AT Lt atte 141091 f 41092 D15 . : TAKE CARE OF MEMORY DEST : f ) e ; : — (MT098 MCX CMODE .MIC — MICROZ2 1M(01) Compatibility Mode 28 " v-83 ;2}}5% .T0C 341124 R 16115 01126 ;2}}55 : 141129 ;1.11“‘0 16:30:35 : TST(B) £ 15 CLOKX Rev 13.00, Clock rate = 160ns R 1ST(B) A R dest.rx R : Address of dest (ontents of dest | Input (dest is register) RNUM # of register to test ?i 3 SEE IF SOME IDIOT WANTS TO DEC PC fiDR_GPR.R RNUM.EQ.7? e --; NOT REGISTER MIDE PC } ;61139 CCOPI.S]Zé[lDEPJ. | :2%}2? WB_MCMDR] : DRIVE THING TO TEST ONTO WwBUS IRD1 ; : SET CC'S ;10mmmmmmm e — e wwmwwme==s; REGISTER MODE P( ;41143 w8 _MCP() : ;2}}22 IR H 141144 ;41148 ;41149 ;2}}%? CCOPT,STZELIDEP], 141153 ;41154 ;61155 +41156 TEST PC ¢ SET cC'S : ; ; 3 ; ;11mmmmm e ————— ====; NOT REGISTER MODE PC ; IRDY E WB_M{MDR], €C0P1,SIZECIDEP], 141152 CM.TST~MEM: u 03CE, 0C81,2592,4030,0847,0072,2 ; ;2}}§g 141137 =00 11147 U 032F, 0081,2592,4130,0847,003%F,9 ! VA MDR Ez:;gz EM.TST!RE?: 141142 =10 U 032E, 0481,A592,4130,0847,003F.,9 i Input (dast is memory) :*Vtttt#fi*tt****t**tt***itkt*fil‘k*fiQ*QQQQQt*QQ'Qfl."tfittQtfl"fi'fltttttiitifitiiii ;41138 J (32C, 0081,2592,4130,0847,003F,9 . AT AR A A AL AL LA LALLM AL AL LA L LAL ' :2}}%5 .qFGION/IRDX.R1L.lRDX.R1H/lRDX.R2L,lRDX.RZH U 0067, 0C80,05BE.4BBC,C467,0032,C Page 1010 : 1sTB)” (ompatibiiity Mode ' ‘ : DRIVE THING TO TEST ONTO WBUS ; SET (C'S : eeeruemmeevaumecnn- mme==m==w=s=; NOT REGISTER_MODE PC WB_M[MDR], . DRIVE THING TO TEST ONTO WBUS CCOP1,SIZECIDER], : SET CC'S NEXT/CO.NOP H ! : k ! —————— MICRO2 1 OO L RN R O AN SHNNL = O 000 ~N AR D WO 03 IO Ui I~ W) — O O 00 T P ' N~ o b TP e R TR TR TR TR T b D e md i PRTR T b e e 2l b 2l o PR LR P 2 b b S N 2 2k o b wad b b T TT P o O b o od oed o T E o F ¥ AW o O e e e P U 03(F, 0881,2083,003D,95D8,0072,2 o e e o R e U 0337, 0482,0088,013C,D047,003F,9 A b e N U 0336, 0481,A088,0010,1487,0149,7 3 ek U 0334, 0482,008B,013(,D047,003F,9 b o U 0068, 0C80,0587,188B(,C047,0033,4 .T0C OO O DO 000000 COC000CO0D NN NN NN NNNNOOCORO Compatibility Mode ANND — O D 00 ~JO~ WA I (MODE. MIc O S S R D CMT098.MCX T : D h b : ggfi%g;SS 28-N0OV-83 ; AR R R R R R AR R AR AR RAANR AN A RN NN ARRAAAC R dest.mx Input (dest is register) AR R R R RN AR AR R AR RN AR AR { : comes)" VA Input (dest is memory) AR R R AR R ; Page 10115 CLOKX Rev 13,00, Clock rate = 160ns Compatibiiity Mode (OM(B) H E F 15 MDR R RNUM A AR .?EG]ON/IRDX.R1L.IRDX.R?H/IRDX.R?L.IRDX.RZH ] ' AR RO R N RN REY Address of dest Contents of dest # of register to com AR AR RO AR AN AR NARRAARR RN CR R AN Em.com-neg: 80, RRUM.EQ. 7?2 =00 ;00=mmmm e e ———— ~=; NOT REGISTER MODE PC * COMPLEMENT CONTENTS OF REGISTER RCGPR.R].S1Z_Q-RB-1, ccor2,S1ZECIDERT, IRD1 =10 * 70 USE IN SUBTRACT LATER * SEE IF SOME IDIOT WANTS TO DEC PC ; SET CC'S : PR [/ I TraR— cemmcemE—————— ; REGISTER MODE PC PC_Q-MLPCI-1, CCOP2,S1ZECWORD], NEXT/CM.TEST.PC.ODD : COMPLEMENT PC i SET CC'S * CAUSE UDD ADDERSS TRAP ; NOT REGISTER MODE PC ens 1] memmmmevenetmmmnaemmwmm=ee RLGPR.R].SIZ_0-RB~1, * (OMPLEMENT CONTENTS OF REGISTER IRD1 : ccore,S1ZELIBER], ; SET ¢C'S CM, COM=MEM: WRITE R[ZEROJ-MSMDRJ-]. CcoP2,SIZECIDER], NEXT/C0,NOP * COMPLEMENT THE CONTENTS OF MDR TOSET CC'S : WASTE A CYCLE 1 t MICRO2 1M( U 140E, 0483,2177,013C,4847,003F,9 b d b ; : ASR(B) R RN RN RN RANR AN AR dest.mx Input (dest is memory) 3 Input (dest is register) ; AN IR AR VA MDR RNUM b b o b o e cah d b e b et AR AR AR ] | RR R AR AR RN RAR Address of dest Contents of dest # of register to shift REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H CM.ASR-MEM: fiDR_SEXT(M[MDRJ).S]ZE[IDEPJ E SIGN EXTEND TO GET RIGHT SHIFY IN REGION/CMODE .R1L,{MODE .R1H/CMODE .R2L , CMODE .R2H/CMODE .R3L , CMODE .R3H PL_L1] CONSTANT TO ROTATE BY GRITE MCMDRI.RR.P, * SHIFT RIGHT BY ONE NEXT/CO.NOP : WASTE A CYCLE cCOP1,SI2ELIDEP], ; SET CC'S EM.ASR-RE?: T ] :***t*t**tt**t*ifi*.fifiktfifi.ttfittttt.ttttttQttfi!t*'iif*t*ti'*t*it*i***t*******fi* b b e RN ER AR : Page 1012; t ASR(B)'' Compatibiiity Mode ' kb e d b NINIAINIRLNLAINUNY PLINININLPUNLNI NNV L R R SR PR PR TR TR TR TR T P U 140A, 0580,0£F6,4030,0847,0140,E .T0C CLOKX Rev 13.00, Clock rate = 160ns .?EGION/]RDX.R1L.IRDX.R1H/IRDX.R2L.IRDX.RZH S U 1406, 0481,2816,403D,8467,0140,A P U 0071, 0480,05BE,403C,C467,0140,6 I T T T U 1402, 0881,2177,0030,0DD8,0072,2 T U 1401, 0580,0EF6,4030,0847,0140,2 T U 0300, 081,2816,403D,8467,0140,1 Agg?g;SS 28-NOV-83 — =t bk AL A NORIAINIAININONININY AT AN APV POPONONINUND PUN) — 3w ah —d b b md b =2 [=lvlolelelalelelelellelellslalolle] (AL =2 OO 00 NN AADHANND S OO TM ON AN SAAIND = OO CI NC VI SN = OO 00~ oSS Compatibility Mode T CMODE. MIC AN CMT098.MCX T : .&\4\1\4\:\1\‘\hbbl\bJ\bJ\bb&bl\bbbbbbbbbbbbbbbbbbbb — —d ik e D b el i b ol b — ) — ; ' 6 15 MDR_R[GPR.R] * GET OPERAND LREGION/CMODE .R1L , CMODE . R1H/CMODE . 82L , CMODE .R2H/CMODE . R3L , CMODE . R3H MDR_SEXT (MCMDRI),S1ZE[IDEP) P SIGN EXTEND TO GET RIGHT SHIFT IN oo * CONSTANT FOR LATER écosr.RJ.sEz MCMDRI.RR.P, gag?1.5125 10EP], * SHIFT RIGHT BY ONE : SET €C'S 1 | i ! i | | : : MICROZ2 TM(O1) (MT098.MCX Compatibility Mode CMODE .MIC 28-NOV-83 16:30:35 : ASL(B) :215%@ .T0C : ASL(B)'! Compatibicity Mode ' 341236 ;qflttt*ttttttttttt*t*ttktt**t***fi***t*****itk*ttfi*tfitttt&*iwfit*itttt!i**tttt*t i 161238 ; ;2]528 ; ! 41237 ; ASL(B) 141241 ¢ 261262 dest.mx Input (dest 1is memory) VA MDR Address of dest Contents of dest Input (dest is register) RNUM # of register to shift RAKRERAREAARKRRARAR AR ARRKARR AR R AR R RN RN RRR AR :2}%22 .?EG]ON/IRDX.R1L.IRDX.RIH/IRDX.RZL.IRDX.RZH Ez}gzg CM.ASL-REG: U 0077, 0CBO,05BE,403C,C467,0141,0 U 1410, 0087,259t,488(,(047,0141,8 page 1013| CLOKX Rev 13.00, Clock rate = 160ns H 15 AR AR ARk Ez}gzg MDR_RLGPR.R] ¢ GET SOURCE :2}32% RNUM.ED.7? ; SEE IF PC R hh kR Ak : d Ez}ggg JREGION/CMODE.R1L, CMODE .R1H/CMODE .R2L , CMODE .R2H/CMODE .R3L ,CMODE .R3H MTEMPO_ZEXT(MCMDR1) ,SIZECIDEP], ; CLEAR POSSIBLE GARBAGE IN REGISTER 141251 141254 =00 141255 (M,ASL=SHIFT: 1 00wmomnneenm mmvewe bl =wwws NOT REGISTER MODE PC 1641256 :41257 : U 1418, 0C82,0591,C13C,55DA,003F,9 : WRITE MEMORY If NOT REG MODE :2}52? IRD1 ; ;41259 v 03p1, 0087,259€,4030,0047,003D,2 ; SET CC*'S 1 10emmann cmnnnannn- wummanwwummwn: REGISTER MODE PC PC_MLPCI.SL.1, ; SHIFT PC LEFT BY ONE ;2}322 NEXT/CM . NOP : 141264 ¢cOpP?2,S1ZECWORDY, : SET (CC'S RCDST.R).S1Z_MLTEMPO],SL.1, WRITE NOTREG, ; SHIFT LEFT BY ONE ; WRITE MEMORY IF NOT REG MODE ;2}5;} IRD1 : ;461270 f ; (lmmemrrcscnsswasncasenneny wewm: NOT REGISTER MODE PC 141268 1461269 ccorPe,SI2ENIDER]. ; SET ¢C's }41273 REGION/IRDX.R1L,IRDX.RTH/IRDX.R2L, IRDX .R2H ! }215;9 MTEMPO_ZEXT(MIMDRI) ,SI1ZECIDEP] ' CLEAR POSSIBLE GARBAGE IN OPERAND f Jemeem——— sl ~-=:; NOT REGISTER MODE PC § WRITE NOTREG, ccor2,SIZECIDEPT, ! : :2}5;2 CM.ASL~MEM: 141278 U 0302, 0082,0591,C03C,55DA,0072,2 ccor2,sSIZ2ELIDER], 41263 34126? U 141B, 0€82,0591,C13C,55DA,003F,9 : SHIFY LEFT BY ONE WRITE NOTREG, E¢1?62 =10 U 141A, 0081,A001,C01D,9487,0148,¢ fi[DST.R].SIZ,M[TEMPOJ.SL.1. ;41258 241279 RCDST.R].S1Z_MLTEMPOI.SL.T, : SHIFT LEFT BY ONE ;41282 NEXT/(0,NOP : 1461280 161281 ; WRITE MEMORY [F NOY REG MODE : SET CC'S : : ;g§30:35 28~NOV-83 MICROZ M(0%) Compatibility Mode ;61 38 161289 161290 161291 :41292 : ASH" Compatibiiity Mode " T XX 2213238222222 22222 3322222212323 2233322332338 ASH T 61286 141287 .TOC Input count.rw,dest.mw MDR RNUM 22228200l ASH PC will not affect the_real gc. 1413, 0886,158E,403C,(047,0142,9 141295 61296 . is undefined in Comp Mode It will instead shift GPR 7 which This is consistant with the 11/70 and 11/780 161302 161305 4 BL_MCMDR] G O T O O e a0 D e e e G O AR RN RN AN RN RN * GET AMOUNT TO SHIFT BY INTO PLATCH .REGION/CMODE .R1L , CMODE .R1H/CMODE . R2L , CMODE . R2H/CMODE . R3L , CMODE . R3H e ) g e S T S MCTEMP1]_RCGPR.R] 141301 ;61303 141304 1429, 0C86,1A56,4DFD,8047,0141,C Y 141297 141298 141299 :41300 Rttt . Count # of register to shift :41293 AR AR R AN AR R R AR AR R AR R AR AR A AR R AR AR AR AR AR R AR AR AR RN 161294 éfiEgégN/IRDX.R1L.1RDX.R1H/IRDK.R2L,IRDX.R?H 0303, 0(81,28B(2,403D,8047 0141,3 Page 1014 CLOKX Rev 13,00, Clock rate = 160ns T 161284 161285 115 e 161283 L (MT098.MCX CMODE (MIC 1429: ‘21%89 B Y e 8 et s O O ¥ : GET NUMBER TO SHIFTY INTO TEMP1 sokkuaxFORCE ADDRESStwtttunnumun; MCTEMP1) SEXT(MB) .SIZELIDER], SHIFT SIZE?,NEXT/CM.ASH.1 : SIGN EXTEND OPERAND : ;61308 CM.ASH=CHECKV.=1: 1416, 0080,0F76,4030,8047,003E,E 161309 ;2}%}? 261312 03EE: ;41313 41314 U 03EE, 0082,002C,7DF0,C047,0148,2 141¢, 0c82,1A77,303C,C847,0141,6 ;41315 41316 161317 §L_C16.1 LOAD SLATCH WITH 16 saewweesFORCE ADDRESSwwwneawness; GET 16 BITS OF RESULT TO DUAL PORT. R[TEMP3),.S1Z @ Q_D,SIZELIDEP], (PL+SL).GT.32?, NEXT/CM,ASH=CHECKV : : 41318 =00 ;61319 CM.ASH. 1 e ; PLATCH = 1 THRU 31 ;61320 k[GPR.RJ.S{Z Q_D_MITEMP1],ASL.P,; DO_ LEFT SHIFT 141321 141322 CCOP1,STZELIBERY, ;s SET N AND 2 BITS IN ;41323 161324 NEXT/CM,ASH=CHECKY. =1 ; PSL 141325 (M,ASH~STNEG: 141326 141D, 0482,1AB7,003C,(847,0142,2 R GPR.R].S%Z MLTEMP1],ASR,=P, ; DO THE SHIFT, SET 2 AND N ;413% 41330 NEXT/CM.ASH-NEG ; ;41332 ;41333 fi[GPR.RJ.SEZ MLTEMP1], :a1328 261331 1416, 0082,1592,413C,C847,003F,9 1417, 0980,06F4,4031,0847,0141,D :)]wevenuuscancsansascennsnannan ; PLATCH = =1 THRU =31 41327 161334 41335 141336 141337 (¢orP1,512ELIDER], : 1])mmmmm———————— e a oweumua: PLATCH = 0 cC SIZELIBEP], IRDY : RESTORE ORIGINAL CONTENTS ; SO SET CC'S AND LEAVE .-1'|-------—---g-----------n-----: PL_{21] . NERT/CM,ASH-STNEG PLATCH = : PL <= =31 -32 ; SHIFT BY =31 SAME AS SHIFT BY -32 : H (MT098.MCX CMQDE JMIC MICRO2 1M(01) Compatibility Mode 28-NOV=-83 16:30:35 J 15 + ASH CLOKX Rev 13.00, Clock rate = 160ns Page 1015 ;41338 14B82: 141339 (M,ASH=CHECLKV: U 14B2, 0480,3818,0A30,0047,0940,8 356+ ;41;40 141341 ;OnxnaawFORCE ADDRESSts#xtnsansx; PL < 16 WB_SEXT(MCTEMP3])-Q,SI2ECIDEP], : CHECK FOR OVERFLOW WXTEQ.07 ,NEXT/CM.ASH=CHECKV,1 ~ ; ;2}%2% 341§44 14B3: U 14B3, 0480,1592,4A30,0047,0940,8 322» 141345 ;2}%29 sixxnaaxFORCE ADDRESS*whknwwsawk; PLATCH >16 WB_MLTEMP1],WX.EQ.0? ; OVERFLOW? 141348 = 141349 CM.ASH=CHECKV.1: U 1408, 0080,0036,4030,0867,0140,9 1461350 F e : OVERFLOW ;2}%%5 SET V 141353 U 1409, 0980,0032,0A70,0847,0140,C 141354 :z}ggg ; SET V BIT IN PSL jlommmmm e m e e «==; NO OVERFLOW 0 WB_D,AND,2LIT16[1], WXTNE.O? + WB <~ D.AND.00010009 ; CHECK LAST BIT SHIFTED OUT OF GPR 141357 (M,ASH=CHECKC: U 140C, 0080,0036,41%0,0047,003F,9 U 140D, 0886,2036,4030,0087,0141,9 $41358 ;0memmnenaae mesesenreEs e n————— ; CLEAR € : C~BIT ALREADY CLEAR SO LEAVE ;2};23 1RD1 141361 {lemmmnmeccemm— cumunmmuwmmnnann; SET € :2}%3% MITEMP2]_PSL : READ PSL 141364 CM ASH=SET(: 141365 U 1419, 0180,2¢12,4130,0807,003F,9 141366 ;2}%2; femeeemmesmeeem e ————N PSL_MLTEMP2].OR.2LITOL1], IRDT : : SET (-BIT 141369 CM.ASH=NEG: U 1422, 0(81,2BC3,003D,8047,017F,7 }z}igg PL_~MIMOR] : NEGATE PL ASR.=P DOESN'T WORK RIGHT 141374 1767 141375 (M,ASH=TESTC: ;41379 sxnaxneFORCE ADDRESSAXNRansnrtnw; U 17F7, 0080.1177,06F0,0047,0140,5 u 1405, 0080,0036,4130,0047,003F,9 U 1407, 0886,2036,4030,0087,0141,9 14137 WB_M[TEMP1].RR.P, 141380 =01 ;0l=mmmnmemnnn e ———————— 341sa§ 41384 M{TEMP2] _PSL, ;2;%;3 ;2}§g1 141385 WB231~30>? iRD1 ¢+ PUT LAST SHIFTED OUT BIT INTO WB=31 ¢ TEST CARRIED OUT BIT : C~BIT ALREADY CLEAR SO JUST LEAVE ;1]memmemomam——ae e ————-* GET PSL NEXT/CM.ASH=SETC ; GO SET C=BIT ! : H CMT098.MCX CMODE .MIC MICROZ 1M(01) Compatibility Mode ] Page 1016§ K 15 CLOKX Rev 13.00, Clock rate = 160ns 28=NOV=83 16:30:39 : ASHC : ASHC'' Compatibiiity Mode " :2}%89 .T0C ;41388 'k**t*k*'f*tt!iti*tQt*ititifiilii*ii‘lii*i*titifittt*ttt**tt*t!!*t**ttt*t***tt**i** ASH( ; ;61389 ;41390 ; Input ;z}ggg : 141393 ; count.ru,dest.mw MDR RNUM G106 Mt M AR RN R AR R IR R AR IR R AN AR R KRR AR 32}28? fiL_M[MDRJ AR AR Ry 141404 MCTEMP1] _RCGPR.RI.RR.S1Z, E GET SHIFT COUNT 32}28% .REGION/CMODE ,R1L, CMODE .R1H/CMODE ,R2L , CMODE .R2H/ CMODE .R3L , CMODE .R3H :2}282 SIZECIDEP] 141407 Jem m 141408 :2}2?8 * GET UPPER HALF OF OPERAND H e ——————————————— ——; MCTEMP1]_MB,OR,R[GPR,ROR1], SHIFT SIZE? *41411 =00 U 1424, 0484,1A77,0861,0847,0941,5 355+ RN REAKR AR R AR ) :2}%38 CM.ASHC: U 142C, 0086,1A42,4DFE,C047,0142,4 . It witl instead shift GPR 7 which is undefined in Comp Mode This is consistant with the 11/70 and 11/780 +41397 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L, IRDX.R2H U 1428, 0886,12R7,003C,C047,0142.C . # of register pair to shift ASH PC will not affect the real pc 141394 141395 ; U 0304, 0481,28C2,403D,8047,0142,8 Count ; CONCAT TWO PARTS OF OPERAND : BRANCH ON COUNT POLARITY AND SIZE 100evoccmnomcnesnansenmmm————— ; PLATC(H = 1,31 141412 RETEMP4L] _MCTEMP11,ASL.P, Y DO THE SHIFT :2}2}? NEXT/CM, ASHC POS : 41413 SIZECLONG],CCOPT SIGND?, ; SET 7 AND N BITS IN PSL 1641416 CM,ASHC-STNEG: ;0 mmmew et w==; PLAT(H = =1,-31 241417 U 1425, 0C4(,1AB7,0021,0847,0142,1 1416418 RCTEMP4]_MCTEMP11,.ASR.-~P, : DO THE SHIFT ;2%259 NEXT/CM.ASHC-NEG : SET FLAG TELLING NEG SHIFT 141419 SIZEFLONG],CCOP1,SET FLAGI, 141422 U 1426, 0080,1592,4120,0847,003F,9 ;10memmmm—en——— cwmemmmemcnnaneme; PLATCH= 0 141423 WB_MCTEMP1], ;2}232 CCORT, IRD1 SIZECLONG], 1414624 141497 U 1427, 0180,0EF6,4031,0847,0142,5 i :416431 141432 U 1415, 0044,1AB7,0A30,0047,0942,0 325+ U 1417, 0484,1AB6,0430,0047,0942,0 325« ; NOTHING TO DO _EXCEPT SET CC'S ; SET €C'S ON 32 BITS : s o1 L _[21], NERT/CM.ASHC=STNEG : PLATCH <= =31 : SHIFT BY =31 IS SAME AS SHIFT BY =32 CM,ASHC-PDS 0] mm e ———— e e e : RESULT POSITIVE : TEMPO <~ SHIFTED QUT BITS'SIGN BIT ; LEAVE A SIGN TELLING WHERE WE'VE BEEN SET FLAGOD, 141433 ACTEMPO] MCTEMP1].ASR. P, ;2%2%5 WX.EQ.07 ,NEXT/CM,ASHC=TESTV 61437 ;]lee=cwmscececccssescescccees «=~; RESULT NEGATIVE kEIEMPOJ _NOT(MCTEMP1],ASR,-P), ; TEMPG <= SHIFTED OUT BITS'SIGN BIT 1461634 N [ 141438 ;41439 | :1]emescnnnaann et ~ewme=; PLAT(H = g 141428 ;2}2%8 ; SET 2 AND N BITS IN PSL WX, EQ,077 ; IF O THEN NO v s IF O THEN NO V | | i I N N 1432, 0C81,2B(3,0030,8047,017F,7 =0 CM,ASHC= TESTV 0 SET v (M, ASHC-N&G D L o e ; L L b L T T TR IZ,M[TEMP4J‘ AGS1=0>? B S Page 1017 CLOKX Rev 13,00, Clock rate = 160ns 16:30:35 ASHC 0 0 Bt b O B e 0 e e Y Y S R[TEMPOJ _RB.XOR,MINUS1 e oy g g OVERFLOW SET vV BIT IN PSL NO OVERFLOW Y WRITE OUT HIGH HALF OF RESULT ~e®ava Pl AP F o o OO0 O OO NIAUTALUIAIVILN S D Ombww—aoomVOmbumaoom\:ombm—'o i PP o Y A 1431, 0480,058E,4280,0047,0140,( I A Y R P 1430, 0884,0E7f,4030,0047,0143,1 TR PR N WY 2l el R 1433, 0482,4592,453E,0047,0143,0 P P 1421, 0082,4387,003(,C047,0143,3 P U P 1420, 0080,0036,4030,08E7,0142,1 —l—a—l—b—a_‘l——l_t_l—l—l_&_l—b—l—l_l_)—-l—l.—b—l_l—)—‘_l_l Pl o 2l ot o P R oP P Pl ak ok o o bl o P ol ol o CMODE . MIC 1M¢01) 28~NOV-83 MICRO2 Compatibility Mode A L S PRI (MT098.MCX ! L 15 WRITE OUT LOW HALF OF RESULT TEST FOR NEG RESULT : ; COMP THE SHIFTED OUT RESULT ———————— e cmnmam ;01 ommmmmm WB_RLTEMPO], : 5 hL_~MLMDR], :; BECAUSEL THERE ISN'T A RR.=P WBZ0>? ,NEXT/CM, ASH-CHECKC NEXT/CM,ASH=TEST( ; H FTED QUT ; : (MT098.,M(X CMODE .MIC MICROZ 1M{O1) Compatib*lity Mode 28~NOV-83 ;2}225 .TOC 16:30:35 : ADC ' ADC 161671 ;2}2;% : 161474 : A YA : ADC" R AR AR AR KRR RN RRAR AR RN AR ARk h b hhddbbd bk bk dest.mx Input (dest is memory) Input (dest is register) R L R IS AR A RS R VA MDR RNUM L S :2}2;9 ?EGION/IRDX.R1L,IRDX.RTH/IRDX.R2L ,IRDX.R2H 8 CM, ADC=REG:--------- O 14147 ;[.1(.79 U 0088, 0C86,1587,088(,(047,0143,8 ;41480 ;2}23% ; Page 1018 CLOKX Rev 13,00, Clock rate = 160ns Compatibility Mode ;41469 SRR AR AR 161470 o1 M5 M[TEMP1J 0, S RNUM.EQ.7? Address of dest tontents of dest # of register to adc MMM LML LA LA AL AR A AR A AL RAS A -2 ; FREE ZERQ TO OR WITH LATER ; SEE IF SOME IDIOT WANTS TO ADC PC 141483 .REGION/CMODE.R1L,CMODE.RIH/CMODE.R2L. CMODE .R2H/CMODE. R3L, CMODE .R3H ;41484 =00 U 1438, 0482,10C1,013C,C847,003F,9 ;4614685 ;2{239 141488 =10 U 143A, 0081,A0C1,029D,8(87,0949,6 325« ;41489 ;2}23? 141492 U 1438, 0482,10¢1,013¢,(847,003F,9 ;41493 ;2}28? :00=nccmnennanomc e e —————aaa— : NOT REGISTER MODE PC REGPR.R].S1Z MCTEMP1J+RB+PSLC, ccor1,s12ELIBERT, IRD : ADD CARRY BIT TO REGISTER ; SET CC'S ;10=avemmmemmee——n——————————— -; REGISTER MODE PC PC_MCPCI+PSLC,SI1ZECWORD] CCBPT,WB<0>7 ,NEXT/CM, TEST.PC T ; ADD CARRY TO PC ; TEST FOR QDD ADDRESS ! i Dttt ; NOT REGISTER MODE PC RLGPR.R].S12 M[TEMP1J+RB+PSLC, CCOP1,ST2ECIBER], IRDT s ADD CARRY BIT TO REGISTER ; SET CC'S i 341496 .REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L , IRDX.R2H ;2}23; (M,ADC-MEM: U 0305, 0C61,2001,003D,85D8,0143,6 u 1636, 0481,2001,013D,8847,003F,9 141499 ;2}28? WRITE MCMORJ+PSLC,SIZELIDEP], SET MM.NOINT ; ADD CARRY 10 MEMORY LOCATION ; DON'T ALLOW RESTART 32}28% +REGION/CMODE ,R1L, CMODE .RTH/CMODE. R2L, CMODE R2H/CMODE .R3L ,{MODE .R3H 141504 WB_MCMDRI+PSLC,SIZECIDEP], E ADD AGAIN FOR THE SAKE OF SETTING €C'S :41505 CCOPT, IRD1 : ! , i ; ; CMTO98.MCX (MODE .MIC MICROZ 1M(O1) Compatibility Mode 28-NOV=-83 :2}%8? .T0C 16:30:35 ¢ SBC " ; N 15 Page 1019 CLOKX Rev 13.00, Clock rate = 160ns Compatibiiity Mode : s RERRTRATNRN AN Kk 341508 JRRRRAARA A AR AR IR A A h bk hdd bl d bk kkk AR RN ARER AR IR :41509 ; 141510 ; ;2%2%5 ; 141513 61514 SBC dest.mx Input (dest is memory) VA MDR Address of dest .Contents of dest Input (dest is regicter) RNUM & of register to sbc 'w*t*ttk*kk*k*tt***i*tt*tt**ktk*uAR AR R R R R R , 1RDX.R2H :2}3}2REGION/IRDX.RIL,IRDX.RIH/IRDX.R2L RN R R AN KRR R Rk ke ® 141517 CM.SBC~ REG 141518 U 0091, QC86,1587,088(,L047,0144,0 141519 ;2423? jlemeeeee-ceesswecscesceacaaa—a- ; M[TEMP1J 0, RNUM.EQ.7? * TREE ZERO TO OR WITH LATER * SEE IF SOME IDIOT WANTS TO SBC PC 141522 .REGION/CMODE.R1L,CMODE.R1H/CMODE .R2L, CMODE.R2H/CMODE .R3L, CMODE. R3H U 1440, 0082,10¢3,013C,D047,003F,9 141523 =00 141524 ;z}ggg 141327 =10 U 1442, 0481 A0CO,029D,9487,0949,6 325+ 141528 ;2}g§3 161771 U 1443, 0082,1003,013C,D047,003F,9 61 ) ;2};§2 100=mcmmmm e m e ————————————— -; NOT REGISTER MODE "C RCGPR.RJ.SIZ RB=M[TEMP1]-PSLC, ; ADD CARRY BIT TO REGISTER CCOP2,S12ECIBERI, IRD1 + SET CC'S 10=mmmmmmmmmme e e : REGISTER MODE PC PC_MCPCI-PSLC,SIZECWORD], £C0P2,WB<0N? ,NEXT/CM, TEST,PL : ADD CARRY TO PC : TEST FOR ODD ADDRESS ;1]mmmmmmmmmmmmeemmm oo e m oo : NOT REGISTER MODE >C RLGPR.R).S1Z RB-MLTEMP11-PSLC, ccoP2.S12ELIBERT, IRD1 ; AOD CARRY BIT TC RuGISTER » SET (C'S 141535 _REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L,IRDX ,R2H ;2};;9 CM. SBC=MEM: U 03D6, 0861,2000,003D,850%,0143,9 141538 ;2}228 WRITE MIMOR)-PSLC,SIZECIDEP], SET MM.NOINT : ADD CARRY TO MEMORY LOCATION : DON'T ALLOW RESTART Ezggz; .REGION/CMODE.R1L,CMODE ,R1H/CMODE . R2L , CMODE .R2H/CMODE . R5L , CMODE LR3H J 1439, 0081,2000,013D,9047,003F,9 ;41543 141544 WB_MCMDRI-PSLC,SIZECIDEP], £coP2, IRD1 : ADD AGAIN FOR THE SAKE OF SETTING CC'S : A N {MT098.M(x {MODE MI< 28-NOV-83 16:30:35 MICROZ 1M(01) ST {ompatibitity Mode ' e ;2}gzg Joc o B 16 (LOKX Rev 13.00, (lock rate = 160ns Page 1020 . (onpatsbivity Mode : SXTY - '341547 ;itIitlfitttltt!!ttttttltt'tflttQt'Qtttt!'Q'QQQ#QQQQQ#*QQ*GQQQ&Qtttt.ttt‘...!i.' SxT ; 261548 ; J61549 ;2}23? : - 32}2;% : : ;461555 AL R R VA MDR RNUM Input (dest is register) Address of dest Contents of dest ¥ of register to sxt Thig instruction has no etfect on PC 161554 - dest.mx Input (dest is memory) R STAR does the same thing and the 11/70 always clears P( T T I A R R A A A A T TR AR A A AR AR AR A AL AR .R2H .R2L, IRDX :61557 _REGION/IRDX.RIL,IRDX.RIM/JRDX ;61553 (M, SXT: ! ;‘155 1 ! ;461560 i. 2307, 08B0,0036,4230,0087,0143,7 ] wB35=-0>? M AL L AL RALLL b hhhbbhdbhihh . . ded3 edde tndeted it i tututadadedt dndedutndedot wa_PSL, :2}22; A : DRIVE PSL 70 BUS TO TEST N-BIT : THIS IS THE ONLY WAY TO GET BIT 3 :2}2%5 .?gg%??/CHODE.R1L.CHODE.R1H/CHODE.R?L.CMDDE.R?M/CMODE.R3L.CMODE.R3M ; = Je136e 161565 k[DST.R].S%I 0,WRITE NOTREG, :2}%23 NEXT/CO.NOP ;61570 41521 11T levescnvevecaas S wwmw=: N<B]T SET R[DST.E].SzZ -1 ,WRITE NOTREG, ; WRITE ALL ONES TO MEMORY OR REGISTER ;41573 NEXT/(0.NOP ;41567 v 437, 04B2,C5B7,003C,4DDA,0072,2 141822 o Y43E, (082,0E77 0030 ,60DA 02,2 ;11011 evcenvcnvuvasonncemonnmaaa: NaBIT C(LEAR ;41566 €COP1,SIZECIDEP], ccop1,s12ELIBERT, ; CLEAR MEMORY OF REGISTER : SET CC*S ; WASTE A CYCLE POSET (C'S : WASTE A CY(LE : ! { e sy e SR e — S P e ; R kit i % e e e (MT098 . MCX CMODE JMIC e e e MICROZ s - 1M(OT) Compatibility Mode - 28-NOV-83 - - 16:30:35 €16 : ROL8B) CLOKX Rev 13.00, Clock rate = 760ns . ;212;2 I { T Compatibiiity Mode : ‘ROL(B)"' 341579 IRERRARENEENRARREREEAANANR NN RARANENARAANRCERAARErnardndbwndbabrbtidotiertes ! ;4615877 kOL(B) ; ;41578 t 141581 ; 3 Input (dest is memory) ;2}2;3 : ;41582 dest.mx VA Address of dest RNUM # of register to rotate MDR Inpit (dest is register) tontents of dest ‘t'attntttntttttttttttttttfitt'Qn&hq~~0&.tttiq&tttttttttct.ttatw'.'tttntttttttt :2}232\REGION/ IRDX.R1L, IROX,R1H/ iRDX.R2L, IRDX.R2H i Page 1021 U 00AS, 0CBO,0SBE,403C,C467,0143,E U 143, Q081,259D,D030,00647,0144,1 ) . U 1441, GCBO,0036.4BBC,(4E7,0144,4 ' Ezlgag R RDL-REG 32%§§g MDR _RIGPR.R] 321231' Q_ZEXT(MIMDRI).SL.1. SIZELIDEP] : DO INITIAL SHIFT :".189 (e e ————— amEsmueNsnm e 141594 141595 MOR 0, RNUR.EQ.7? 1461596 200 141597 CM,ROL=TEST 141599 ;2}28? 141602 =10 ; Yanh, 0885,A59D,010,0047,0144,5 , , u 447, C083,2009,0130,5047,003F,9 U 1445, 0080,0001,028D,9487,0949,6 344v " GET OPERAND LR3H . R3L , CMODEDE 32}333-REGION/CMODE .R1L, CMODE .R1H/CMODE .R2L, CMODE .R2H/CMO 141598 U labd4, 0083,2009,013(,5047,003F,9 : 141603 ::}ggé 141606 14160/ ;2}288 ;00==neene e * SOMETINNG TD MELP PASS Q LATER ; PC 22 e : NOT REGISTER MQODE P( ATDST.R1.51Z MIMDRI+Q#PSLC, $1Qmmmm e — e RETEMPO) ZEXT(MLPCI).SL. ¢ OSET €C'S ————— : REGISTER MODE PC * CLEAR UPPER BITS AND SHIFTY SIZELWORDI,NEXT/(M. ROL~PC : 1]lemcescommnicccmsscescnmnnmn— ; NOT REGISTER MODE PC REDST.R).S1Z_MIMDRI+Q+PSLC, SI2ECIDERP], cCOP2. IRDT 32}2}? CM.ROL=PC : Ea161§ PC M TEHPO%fiPSLS ccoP. ssxze IDEP ;6161 ;2}g}g * ADD CARRY TO COMPLETE ROTATE SIZECIDEP], CTOPZ, IRDI WB<0>3 NEXT/CM. TEST.PC © * ADD CARRY TO COMPLETE ROTATE 7 SET CC'S S ADD CARRY TO COMPLETE ROTATE : SET CC'S Y TEST PC FOR ODD ADDRESS 41616 .REGIUN/IRDX.RIL, IRDX.R1H/IRDX.R2L, JRDX.R2H ;2}2}; (M. ROL~MEM: y 0308, (881,2590,0030,0047,0144,9 U 1449, 0080,0036,4030,04€7,0144,0 U 144D, 0483,2009,003(,55D4,0072,2 Ez}g}g Q_ZEXT(MCMDRY) ,SL.1,SIZECIDEPY ; DO INITIAL SHIFT 323251 .REGION/CMODE R .CMODE .R1H/CMODE.R2L,CMODE .R2H/CMODE .R3L, CMODE .R3H 32}235 MDR_9 { SOMETINNG TO HELP PASS O LATER 141606 ;41637 RCDST.R].S1Z_MIMD +oop51c WwRITE NOTREGTSIZE DEPJ ccopz : ADD CARRY TO COMPLETE ROTATE * WRITE THE RESULT ancgs 141608 fmessessesmsscesscsmemimmevenoane : NOT REGISTER MODE MC NEXT/C0.NOP P WASTE A CYCLE = CMT 98 M X (MODE .MIC MICRG2 1M(01) Cumpatibility Mode ;gé?g;SS 28-NOV-83 b 16 CLOKX Rev 13.00, Clock rate = 160ns v :6163§ . ROR(B) § Page 1022| : ROR(B)"' Compatibitity Mode ;2}653 .T0C o ;41231 SEARRRARECL AR AR SRR UARR AR RAR AN RN T A AR RN AR A NI AR AR R Rt R RRRARERRRRRERER :61635 ; :2}2%@ : 141636 dest.mx Input (dest is memory) Input (dest is register) VA Address of dest RNUM # of register to rotate MDR (ontents of dest ;61637 't*tfitttt*tttttt'tfitttfihk#fi.fi‘&fittqttlttQtttli!'Qt'*'t'tlt"tttttttitiiitt*tti - ;461638 .REGION/IRDX.RIL,IRDX.R1H/IRDX.R2L, IRDX.R2H ;41639 CM ROR=-MEM: ;61640 etttk : 0309, 0580,0£F6,4280,0887,0143,4 261641 ;61642 :2}222 : DRIVE PSL TO BUS 70 TEST (-BIT ; CONSTANT FOR LATER : (=BIT IS BIT 0 wB_PSL, PL_[1], wB<0>? .R2L,CMODE.S??/CMODE.R3L,CMODE .R3H Efi}gzg .gEGION/CMODE-R1L,CHMODE .RTH./CMODE =z e 2 o e 0y O H N 1434, 0987,2F92,0037,F847,0145,4 1435, Q587,2012,4030,08647,0145,4 1454, Q082,0177,005C,4DDA,0072,2 141647 :2}228 141650 esewsesaww P w7 MTEMPO MDR,AND.OL]ITB[255.], NEXT/CR.ROR-WRITE : TEMPO <~ MDR,AND.FFFEFFF : ;les-e=sccsaescsescesecsas —vm———— ; C-BIT = 1 :2}221 MTEMPO _MDR,OR.Z2LIT16[1] : TEMPO <- MDR,OR.10000 141655 RIDST.R).SIZ2. MCTEMPOJ.RR.P, DO ROTATE AND WRITE ;z;ggg CCOPY NEXT/CO.NOP s SET CC'S =~ WASTE A CYCLE Ei}ggg (M.ROR=WRITE : ;461656 WRITE NOTREG,SIZECIDEP], ; TAKE CARE OF MEMORY MUODE 141659 .REGION/IRDX.R1L, IRDX.R1H/IRDX.REL, {RDX.R2H ;61660 (M.RORB=MEM: ‘]661 . O3DA, 0DB0,0EF6,4280,0887,0143%,( 143C, 0987,2F92,003F,F047,0145,4 e 143D, 0187,2012,4038,0047,0145,4 ------------ CreRERORESNERERB R EMN S 141662 wB_PSL, * DRIVE PSL TO BUS TO TEST C~BIY ‘2}22% w8052 P €-BIT IS BIT 0 141663 PLOL1]. CONSTANT FOR LATER Ez%gg gecxouzcgooe.R1L, CMODE .R1H/CMODE .R2L, CMODER??/CM%OE.R3L,CMODE .R3H 141668 MTEMPO MDR.AND,OLIT8L510.], ' TEMPO <~ MDR.AND.FFFFFEFF ;23298 NEXT/CR. ROR-WR]TE 141671 ;Jesmececcmcsnescanannn cmaumm——— ; C=BIT = 1 141672 141673 HTEMPO_MDR.OR, ZLITU(256 1, NEXT/CR,ROR=WRITE : : TEMPO <= MDR.OR.100 : ; CMT098.M(X (MODE . MIC MICROZ2 1M(OM) Compatibility Mode 28=NOV=83 16:30:35 E 16 : ROR(B) C(LOKX Rev 13.00, Clock rate = 160ns i Page 1023 . ‘2%25? .?EGION/IRDX.RIL.!RDX.R1H/1RDX.R2L,IRDx.RZH 141676 (M.ROR-REG: 41677 00AB, 0580,0037,0030,0067,0145,8 141678 ;2}2;8 P I iuieiuietatntreieteiudniaiedit ittt H MDR_ZLIT16L1], NEXT/CM.ROR-REG.TESTC Ez}gg; CM.RORB-REG: 0081, 0180,0¢37,0038,0467,0145,8 L MDR <~ 10000 : _ , Ez}ggz MDR_2L170L256.1] : MOR <« 100 CMODE .R3H . R3L , ODE IL,CM .R2L , CMODE .R2H/CMODE ODE.R .R1H/CMODE 141685 .REGION/CM | ii Ezgggg ANUM.E0.7? Y TEST FOR PC MODE ; 141691 WB_PSL, * DRIVE PSL 1O BUS TO TEST (=BIT ! ;21282 WB0>? NEXT/CM.ROR-REG.RESULT ; TFST C-BIT :z}ggg CM.ROR=REG. TESTC: 1458, 0480,0036,48BC,C047,0144,8 1448, 0DBO.OEF6,42B0,0887,0147,4 141690 =00 41692 141695 =10 144A, 0D8O,0EF6,4280,0887,0147,F 1448, 0DBO,0EF6,42B0,0887,0147,4 :00=mcmmmmmmm—————————————— ~; NOT REGISTER MODE PC PLOCT], * CONSTANT FOR LATER ;10==cmnmaa S -=; REGISTER MODE PC 141696 WB_PSL, * DRIVE PSL TD BUS TO TEST C-BIT ‘2}633 WB20>? 'NEXT/CM.ROR-PC,RESULT + TEST (=BIT 141697 241900 5 PLOCT]. * CONSTANT FOR LATER : : leccccuunnnunanmrnannnuam=en=n: NOT REGISTER MODE PC 141701 WB_PSL, Y DRIVE PSL 10 BUS TO TEST C-BIT ; ‘2};82 wBz0>? Y TEST C-BIT i 1461702 PLIL1], * CONSTANT FOR LATER 5 141705 = 141706 (M.RORREG.RESULT: 1474, 0887,2003,003(,0047,0145,4 141707 Fy ;2};?8 NEXT/CM,ROR-WRITE 141708 ISl 1475, 0887,2002,403C,C047,0145,4 ;a171§ ;2};}‘ e ' o MIEMPO MDR.NOTAND.RCGPR.R], , : C(=BIT CLEAR P SET OR CLEAR BIT TO BE ROTATED TO MSB ; : {lemmome—eceaccsccscsnnauean w=ns; (~BIT SET MTEMPO MDR.OR.R[GPR.RJ, NEXT/CP.ROR-WRITE * SET OR CLEAR BIT YO BE ROTATED TO MSB : 141715 =0 :'41751 s (=87 SET imenuss; ilmmescccccsanssnanesuan MTEMPO_PC.OR.RITEMP1) E:};?g €M, ROR=PC .WR1TE: 145A, 0880,0177,0280,0087,0149,6 3417§9 e ngrsnpo RR.P, 141728 wB<0>3 NEXT/CM,TEST.PC a7 ccOPT, SI2ELIDEP], : Y SET OR CLEAR BIT TO BE ROTATED TO MSB *; WRITE RESULT TO PC SET CC'S ¢ TEST FOR ODD ADDRESS W ;2};g§ NEXT/CR.ROR-PC.WRITE I ;2};10 : C=BIT CLEAR ? SET OR CLEAR BIT TO BE ROTATED TO MSB ) 147F, 0087,A002,4030,4047,0145,4 R R MTEMPO PC,ANDNOT.RLTEMP1], bi 1476, 0487.4003,8030,4047,0145,A ;41718 H 141716 CM.ROR=PC,RESULT: 1717 P et MICROZ2 CMT0O98.MCX CMODE MIC 1M(01) Compatib lity Mode 28-NOV-83 :2};%8 .TOC 16:30:35 : SWAB F 16 CLOKX Rev 13.00, Clock rate = 160ns . 1 SWABTM' Compatibiiity Mode t - Page 1024 : 341731 TR AR AN RN AR R R AR KRR R AR AR AR R RN AR AR AR RN AR AN AR RN AR AR RR AR TN ;4173% : SWAB 61733 :2};;2 : 341?36 : AN AT v 0088, 0480,058E,403(,(467,0145,C u 145, 0€80,0036,4BB(,C047,0144,C U 144F, 0082,0387,101(,45DA,0146,2 Input (dest is register) A A A AL AL RS I RNUM # of register to swab Contents of dest AR LA AL R AR AL A AL AL AARA AL AL AL . | 241740 . SWAB~REG: . | 22};29 RCTEMPO] M[MDRJ BCDSWP * SWAP BYTES AND PLACE IN SUPROT 31-16 ; 141748 141749 PR ———— ————— —wmm e —————— ANUM.EQ.77, Y TEST FOR PC ;2};2? . U T44E, 0485,A637,0030,0047,0146,5 L Address of dest 32};2% MDR _RIGPR.R) * GET FIRST OPERAND 32;;2%.REGION/CMODE .R1L, CMODE .R1H/CMODE .R2L, CMODE. R2M/CMODE. R3L, CMODE LR3H U 145C, 0835,2637,0030,0047,0145,F U 144¢C, CG082,03B7.101(,45D4,0146,2 L VA MDR ;2};;3 .REGION/IRDX.R1L, IRDX.R1H/IRDX.R2L. IRDX. R2H | U 0308, 0885,2637,0030,0047,0144,C dest.mx Input (dest is memory) NEXT/CM. SWAB-RUN ; :41752 .REGION/IRDX.RIL,IRDX.RIH/IRDX,R2L, IRDX .R2H :2};22 CM.SWAB=MEM: 32};32 RCTEMPOI_MIMDR].BCDSWP | | ‘5 : SWAP BYTES AND PLACE IN SUPROT 31-16 32};25 gsclonxcnoueLR1L,CMODE . RTH/CMODE .R2L, CMODE .R2H/CMODE . R3L . CMODE LR3H ; 141759 (M. SNAB-RUN 161760 00==m=mmmmmmeeeceecuccscceess «; NOT REGISTER MODE PC 1417261 REDST.RI. S12_Q_MLTEMPOJ.RR. S1Z, : ROTATE TO RIGHT POSITION ON WAY TO REG “4176¢ WRITE NOTREG;SIZECWORD]. ; WRITE OUT DEST :2};22 NEXT/CM, SWAB=SET, (( ; 141765 =10 :41769 ;2};28 ;10=mmmmmmanans ~esemsnanmn wm———— ; REGISTER MODE PC ; SWAP BYTES AND PLACE IN SUPROT 31-16 R[IEMPOJ NEPC).BCOSWR, NEXT/CM, SWAB-PC ;. i ; . 141769 141770 ;]]emeesmsmvumammmaamaaceanaaaan ; NOT REGISTER MODE P( REDST.R].S12_Q_MLTE POJ RR $12, ; ROTATE TO RIGHT POSITION ON WAY TO REG 1772 NEXT/CM.SWAB=SET.CC iz WRITE NOTREGTSTZELWOR ; : WRITE OUT DEST ; i — v O WD SN OO > O N SO AL E —tt ol P wmeb e d o el ——d i b b h el S O L F al ak T TR T T S l a S o Fo J 1469, 0080,003A,428D,8847,0149,6 D O O U 1465, 0880,0387,1010,0487,0146,9 N J 1462, 0480,003A,4100,8847,003F,9 CO0RCRAICOTICD N N NN 28=NOV~83 MICROZ 1M(01) Compatibility Mode b CMT098 . M(X CMODE ,MIC NN N SN N N N TN NN SN N N Y : : ;8330:35 G 16 CLOKX Rev 13.00, Clock rate = 160ns Page 1025| (M, SWAB=SET.{(: B_Q s17elsyTed,ccort, : : 1RO (M. SWAB=P(: G 0 4D e oy 63 o et e O B ON LOWER BYTE OF DEST : TR e bC 0 MCTEMPOI.RR.S1Z, et O S17ETWORD] ------------------------ -y WB_0 sIZefBYTE].CCOPY, T 70 wB wB<0>? ,NEXTZCML TEST.PC O ¢ : H ROTATE TO RIGHT POSITION ON WAY TO PL SET CC'S Y : PRIVE DEST TO w8 SET (C'S ON LOWER BYTE OF DEST TEST PC FOR ODD ADDRESS H : CMT098.MCX CMODE .MIC MICROZ 1M(01) Compatibility Mode &89%g535 28-NOV=83 41791 MOV(B) 141792 341795 : R R src.rx,dest.wx Input (dest is register) T A L AL LA A L L Page 1026; : Move)"' Input (dest is memory) ;2%;32 : AN CLOKX Rev 13.00, Clock rate = 160ns Compatibicity Mode ‘ :2};38 .T0C }41790 R ? o H 16 A A AR AR VA Address of dest RNUM # ot register to move to MDR AR R AL AR ALl i | Source AR A LA A A AL A LA DA A A AL A LA AL AR ;21;35 .gEGIONllRDX.RlL.lRDx.R1H/1RDX.R2L.IRDX.RZH AR ;21538 EM.Mova-ngc: U 033A, 0081,2816,5000,8047,0033,¢ 141801 141804 ;]memermmmmm——e e et es e ma————— ; 161806 ;z}ggg 141813 ;z}glg 141816 = 141818 u 033E, 0CB0,003A,429D,8C87,0149,6 u 033F, 082,002¢,711C,4DDA,003F,9 : MOVE TO PC ¢ SET CC'S CCOPT,S12E[BYTE S | | WB<0>3.NEXT/CM. TEST,PC : TEST SOR ODD ADDRESS R2L . IRDX.R2H ;41809 REGION/ IRDX.RI1L, IRDX.R1H/1RDX. 141819 141820 ;21221 24183§ =10 141824 . o Q_MIMDR] : DO THIS TO MAKE COMMON CODE POSSIBLE RRUM.EQ, 2 ; MOV SRC,PC 727 ; 100=wvmvmmemmcneesacannnaan -====; NOT REGISTER MODE PC : SI1ZECWORD], IRD1 | REDST.R).S$1Z2_0 Q. D, WRITE NOTREG,CCOP1, ¢ WRITE TO REG ; SET (C'S i ALWAYS WRITE WHOLE REGISYER 110mmmmmmsmmn e e — e e m e :: MOVE REGISTER MODE PC 10 PC 141895 PC o CCOPT,S1ZECWORD) 141828 141899 e — mm————— ; NOT REGISTER MODE P( RCDST.RI.S12_0 Q. D, : WRITE TO REG ;2}3%} SIZELWORD), IRD1 ;2}359 141830 ; ' 141817 CM.MOV~WR]TE: U 033C, 082,002¢,711C,4DDA,003F,9 ; PC_SEXT(MCMDRY). 22}3}5 CM.MOV=REG: U 00C5, 0481,2592,588(,C047,0033,¢ : DO A SIGN EXTEND FOR MOVB SRC,REG NEXT/CM.MOV-WR]TE 141805 u 0338, 0881,2816,4280,8C87,0149,6 Q_SEXT(FLMDR)),SIZELBYTE], :2;38; WB<0> 3 NEXT/CM, TEST.PC WRITE NOTREG;(COP1, : SET €C'S ! e | : : TEST FOR ODD ADDRESS POSET (C'S : ALWAYS WRITE WHOLE REGISTER 141833 (M.MOV-MEM: e T: RCDST.R) Q w_D, : WRITE 141837 NEXT/CO.NOP 141836 WwRITE NOTREG;SIZECIDEP],CCOPY, TO MEMORY ; SET (C'S * WASTE A CYCLE ifi U 03pC, 0484,092¢,703C,4DDA,0072,2 141834 141835 T : : MICROZ2 {MT098.MCX 1M(01) Compatibility Mode CMODE (MIC 28-NOV-83 16:30:35 (41841 ADD TR S R Ui CLOKX Rev 13.00, Clock rate = 160ns I SN 1 Page 1027 : ADD'' Compatibility Mode ' TR 116 1 ADD ;?}ggg .10 e E£1840 ;qqtttt**ta-qqta--u.ta-ta*tctuu-u«ta**t«n«qnwt**iuctttw«t*wuwwwfiwfiatawt«tt*wtt ; ;418&; H 161843 src.rw,dest.mw Input (dest is memory) A R R Input (dest is register) L R R R R R R AL LA AR R A A Address of dest MDR Contents of dest MDR RNUM Source # of register to add to QREG :2} zg : 141846 : $01847 VA Source LA LA L) AL AAA AL M A SR LALL ;41849 REGION/IRDX.RIL,IRDX 21H/IRDX.R2L,IRDX.R2H :zlgg? CM.ADD~MEM: v 030D, 0€81,2009,0030,00D8,007¢2,2 341852 WRITE MCMDRJ+Q, ; DO THE ADDITION AND WRITE TO MEMORY :2}%%2 NEXT/CO.NOP : WASTE A CYCLE ;41883 cCoP1,S12ECIDER], ; SET CC'S 141856 CM.ADD~-REG: 141857 U 0342, 0083,2001,013(,4DDA,003F,9 _ U 0343, 0881,A592,5030,0047,0146,0D U 146D, 0481,2009,0280,0087,0949,6 337+ (Q0memmnnnn et b atuiy wewnnuanenes NOT REGISTER MODE PC 161858 h[DST.R].SIZ_MCMDRJ*RB ;Z%gg? 1RD1 141859 141862 WRITE NOTREG.SIZE[!DEPj,CCOPi, ; DO ADD AND WRITE REGISTER ; SET €C'S : : ;Temmmmeemca—— e ce e e ; REGISTER MODE PC :2%322 a_mCPC] : GET PC TO ADD TO MDR 141867 PC_MCMDRI+Q, 1 DD 16 BIT ADD TO PC ;41869 WB<0>? ,NEXT/(M, TEST.PC ; TEST PC FOR ODD ADDRESS Eilggg REGJON/CMODE .RIL,CMODE ,R1H/(MODE . R2L , CMODE . R2H/CMODE . R3L , CMODE .R3H ;41868 ! (cDP1,SIZECIDEP), | ¢ SET CC'S i o : » CMTO98, MCX CMODE JMIC MICRO2 1M(01) Compatibility Mode 28=NOV=83 g8é30:35 ;2}3;? .T0C " ———— J 16 e b m———— . CLOKX Rev 13.00, Clock rate = 160ns Compatibitity Mode o [ U D ) Page 1028% ! : sug" 2418?% 'tttttt*t&ttttttitttttttttt!Qttti*t*tt**ttt*ttt**tt*tt*wttntw*itfl*in*i*fifiiifii* src.rw,gest.mw suB 261873 ;41874 Input (dest ' is memory) A Address of dest Source QREG 161875 ; MDR :41879 : ;41877 ;41878 ; ;41879 LRI ;41881 Input (dest is register) RIS A AR S A LA LALLM MDR LA RNUM Contents of dest Source # of register to sub from AR ASAL AL AL ALAALALALLLALL AL LA AL L REGION/]RDX R1L.IRDX.R1H/IRDX.R2L,IRDX.R2H .2}33% €M, SUB=MEM U 03DE, ] 0881,2008,0030,15p8,0072,2 141884 QRITE MCMDRI-Q, ' DO SUB AND PUT BACK TO MEMORY :2}339 -0 NEXT/CO,NOP ; WASTE A CYCLE ;61885 ccor2,SI12eLIDERT, ;41888 CM.SUB-REG: 161889 U 0344, 0883,2003,013¢,55DA,003F,9 _ U 034B, 0081,A592,5030,0047,0147 ,1 et ; SET (C'S i totnneintataintedebedetoly s NOT REGISTER MODE PC ;41890 141891 REDST.RI.S1Z_RB-M[MDR : DO SUB AND WRITE TO REG :2}33% IRD1 : 141894 ;z%ggg ;lmmemcm— wammmam————————————— ; REGISTER MODE PC a M[PCJ : GET PC TO SUB FROM MDR WRITE NOTREG,SIZELIDE 5 ccop2, ; SET (C'S Ez}ggg.REGION/CMODE.RIL, CMODE R1H/CMODE .R2L,CMODE .R2H/CMODE .R3L,CMODE. R3H U671, 0081,2008,0280,1487,0949,6 337« ;41899 1461900 ;41901 Bc o-M[MDRJ ccOP2,S12EL{pEP], WB<0>3,NEXT/CM, TEST,PC ; DO SUB FROM PC ; SET €C'S ; TEST PC FOR ODD ADDRESS ; b | i i | ' i MICROZ2 1M(01) CMT098,MCX : Compatibility Mode CMODE M1C : 28<NOV~83 : 16:30:35 K 16 (MP(B) Page 1029 CLOKX Rev 13.00, Clock rate = 160ns : CMP(B)" Compatibiiity Mode ;61902 .10C ' 141903 ;41984 "fi****fifit*ii*fiiifli**ttitfifiiififiiittiitlkilttt*ttt'l'!*t!t*ttt*t*******ifit***fi***** CMP(B) 241905 : srcl.rx.src2.mx Input (srce is memory) QREG Sourcel MDR Sourcel 141906 H ;61908 ;41909 : 141911 ;tttttttttfi«at*qnntwnu*wnnwwwtntfit**iwttwwtw**ii**w**w*ki***it*k**iwt*t**tt*tt 141907 : Input (src¢2 1s register) ;41910 : MDR RNUM Source? . # of register containing Sucrce? ;41912 REGION/IRDX.RIL ,IRDX.,R1H/IRDX,R2L, IRDX.R2H ;461913 CM,. CMP=MEM: U Q3DF, 0881,2008,0030,1047,0072,2 U 034C, 0081,2000,013C,p047,003F,9 i ] U 034L, 0885,A592,4035,0047,0147,9 _ J 1479, 0081,2000,0135,p047,003F,9 ;61914 41915 141916 :2%8}% QB Q-MCMDR], 0 cCcOP2,s1Z2ECIDEP], NEXT/CO.NOP ; DO THE COMPARE TO SET CC'S ; SET (C'S ;s 141919 (M, CMP=REG: 241920 i Qemmmenomame e m e s==w==c: 41921 Ww8_MCMDRJ)-RLGPR,.R], ; 161922 C(OP2,S12ELIDEP]D, . WASTE A CYCLE NOT REGISTER MODE PC DO THE COMPARE SET CC'S ;61973 IRDY : 41926 T e L L L L L LR ; REGISTER MODE PC RCR7I_MCPC] s GET PC 41924 241925 241927 141928 141929 ;61930 141931 141932 H REGJON/CMODE .R1L,CMODE .RTH/CMODE ,R2L , CMODE .R2H/CMODE . R3L,CMODE .R3KH WB_MCMDRI=R[R7]J Egg?z,sxzetxnepj. : DO THE COMPARE WITH SAVED PC SET CC'S - MICROZ2 CMT098.MCX H ; 1M(O1) Compatibility Mode CMODE .MIC — 28-NOV-83 — 16:30:35 — - L 16 ¢ MUL e b e st T e i e e s e e A | o oo | Page 10301 CLOKX Rev 13.00, Clock rate = 160ns - i i P ;2}8%2 .T0C " Compatibiiity Mode : MuL" ;(,1935 "***i#*itt*ktiitiit*t****l“'lttl‘ttwt\'tWtfifittthtttt**t**t\*****t***tk*\k*kkk**&k 241936 MUL prod.mw.mulr.rw L 41937 Input MDR Multiplicand . ' :Q}ggg ; RNUM 141940 ;61941 ; 41942 AL AR : i 4 of reg to contain product MUL PC will not affect the real p¢ R It will instead use GPR 7 which is undefined in Comp Mode This is consistant with the 11/70 and 11/780 T AR S A R A R AR TR AL RASAR AR ;41944 _REGION/IRDX.R1L,IRDX.R1H/IRDX.R2L,IRDX.R2H S AL LR LALLM ALELALL AL LA LL :2}322 CM.MUL U 03E0, 0(85,2E5E,0031,98(7,0140,0 24194? ;2}323 RLTEMP6] SEXT(MCMDR]), SIZECIDEP],ALUS_SIGND } SEXT MULTIPLICAND ¢ SAVE IT'S SIGN Ez}gg? .SESION/CQODE.R1L,CMODE.R1H/CMODE.R2L,CMODE.R2H/CMODE.R3L.CMODE.R3H 141952 U 1400, 0C86,45BE,4B7¢,(8C7,0003,0 340 :41953 ;2}322 141956 =011 ] U 1403, 0c80,0061,087D,8047,0942,E 380+ 141957 $41958 ;Z}ggg 161961 =100 U 1404, 0480,0061,087D,8047,0942,A 380 141962 ;41963 :z}ggg N METEMP4]_RLGPR.RJ (MP SIGNS?,SIZ2E(] EP], PUSH,NEXT/IL.MULSUB.MDR_O * MULTIPLIER .3 BUY TO THE PROPER PLACE IN MuL SUB H 1011 mmmecmcemmem———————— w==mwa=e; RETURN +3 POS PRODUCT ;100======mm=mm=meea=ea=- wamcesa; RETURN +4 NEG PRODUCT W8_D+ALKC, SIGND (MP?,SI1ZELIDEP], NEXT/CM.MUL-POS WB_D+ALKC, SIGND (MP?,SI2ELIDEP], NEXT/CM,MUL=NEG ; RESULT LESS THAN 2%%15? : EQUAL TO 0 777 : : RESULT MORE THAN -2%#157 ; EQUAL TO 9 7?77 : | 141966 =1 2461967 CM,MUL=NEG: U 142A, 0080,0022,4A3D,8047,017F,2 ;61968 ;41969 :2}3;9 }4197§ U 1428, 0886,1038,0A3D,8047,097F,0 407+ 14197 ;2}3;? (10mmererenmcn e —————~ne=: NO,RESULT EQUAL OR LESS THAN =215 w8 _D,WX.EQ.0?, ; : ;1]emmmenaanm—— e aau——ae emwm==; YES,RESULT MORE THAN =2+%15 | NERT/CM.MUL-NEG.WRT?2 MCTEMP1] R(ZEROJ-Q,WX,.EQ.07, NEXT/CM. RUL-NEG,WRT3 H : ; GET 2'S COMP OF LOW HALF OF RESULT : 141976 17F2: ;41977 (M MUL-NEG.WRTZ: 141978 Rt tatonaidaiatnlaidat ekttt ; LESS THAN =2#%15 ;41979 U 17F2, 084E,1038.003D,8047,017F,0 :41980 ;41981 ;4198% 1773 ;41929 U 17F3, 0880,0039,(87D,8047,083F,A 391+ ;41984 141985 ;41986 MCTEMP1] RLZEROI-C, SET FLAGT, NEXT/CM,MUL-NEG,WRT3 : H : ;lemsnceccscccncnnemenemecccnann ; LESS OR EQUAL TQ ~2%15 wB_(RCZEROJ+Q).SL.1,SIZECIDEP], . SIGND (MP?, : NEXT/CM, MUL-NEG,WRT : s o e e ‘ i ! —— ——y s ! 2222222222222222222?2222222222?222222222222222222222252221&2 g St et St S P St Pmang P S " St S Pt S g S B S Bmeg o S P e Bvof B o S Py g Sg S S S Oy Sp g S S Og St P S e B S g g S St Pt P S RE g e e S 555556666666666666777777?77777788888888888889999999999999000 —— l (MT098.MCX {MODE MIC MICROZ2 1M(01) Compatibility Mode 28=NOV=-83 &8{30:35 B 1 : CLOKX Rev 13.00, (lock rate = 160ne Page 1031: O3FA, Q04E,0063,003D,8047,017F,2 o O A R N S O A A R A o S NN A Y aTLAT ¥ B S o i o g g o el et Rl R S Sl 2ol Sl d POALNUAINDA N NN NUNLML AL AINLNICL R NON NI AL N PLCUNTLND AN NDNUNININVNININDND D D D DD S D 3 b e 2 ;61987 03FA: ;61988 (M,MUL=-NEG.WRT: 141989 141990 ; gg; :61993 03FB: 03FB, 0086,1038,003D,8047,017F,0 :41994 141995 ; 839 ettt e ; RESULT LESS THAN =2+%15 MCTEMPO) _RLZEROJ-D~ALKC, ; GET 2'S COMP OF HIGH HALF RESULT SET FLAGT,NEXT/CM, MUL-NEG WRT?2 P et L L L L L L L L ;s MUTEMP1] RLZEROJ~Q ; NEX1/CM.RUL=NEG.WRT3 ; Q MOST NEG NO OVERFLOW GET 2'S COMP OF HIGH HALF RESULT ;41998 ;61999 17F0: ;62000 CM.MUL-NEG.WRT3: :62001 17Q, 0086,0063,003D,8047,0142,D 162002 : 882 142005 17F1: & Y7FY, 0806,0063,003D,8047,0142,D 1462006 24200 7 ;6200 8 ; 80 9 : ; 10 0 1M 142D J P M[TEMPO] RLZEROJ-D-ALKC, NEXT/CM,RUL-NEG.WRT1 R NEXT/CM.MUL=NEG. WRT1 262012 CM.MUL=NEG.WRT1: 102013 142p, 0082,0592,403(,0847,0148,1 ;462014 ; 8}2 242017 1481 : 3 1481, 088¢,1592,403E,D047,0148,5 018 Rttt MCTEMPO] _R[ZERDI-D-ALKC, CLEAR FLAGO, sxnxxxxFORCE RESULT NOT EQUAL ; RESULT EQUAL TO ZERD ; GET TWO'S COMPLIMENT OF HIGH HALF ; RESET FLAGO ccort, SIZE[IBEPJ ;s WRITE HIGH HALF OF RESULT s RCGPR.ROR1].S1Z_MLTEMP1], s ; NEXT/CM,MUL=READ .PSW : 855 ccor2,SIZECIDERPT, . 142F, 044A,05B2,403(,0847,0142,3 ) 142F, 0(82,0582,403C,(847,0142,3 RESULT 242027 242028 H 8%8 L e L L L L] =w===.; REGPR.R].SIZ_D. ; SET FLAG1. ccort,SIZECIDEP], NEXT/CM_MUL-POS.WRT?2 NO, LARGER OR EQUAL 2%**15 WRITE HIGH HALF OF RESULT 142031 ) YES, 142032 H 8%2 1423 ; SAVE OVERFLow INFO FOR LATER s SET ZBITIF =0 H i eT RLGPR.R1.SIZ D, CCcoP1,SIZELIDERP] ;42037 1462038 RLGPR.ROR1].S12 MLMDR].OR.Q, ccor2, S1ZECiDERY LESS THAN 2+%15 s WRITE HIGH HALF OF RESULT s SET Z BIT IF =0 :42035 CM,MUL-POS.WRT2: sxxxxxxFORCE ADDRESS*xxxsxnnnwnn, 142036 1423, 0883%,2004,403E,0047,0148,5 WRITE L 0 HALF OF ; RESETZ BIT IF NECESSARY 042023 =10 :62024 (M, MUL-POS: 62025 1462026 SET Z IF ZERO ADDRESShaktkhkkkhkn, 242019 :42020 TO ZERD ; GEY TWO'S COMPLIMENT OF HIGH HALF ADDRESS*huwmnnnwwwkwn, RCGPR.R1.SIZ MLCTEMPO], sxnkkkkFORCE : ; WRITE LOW HALF OF RESULT ¢ RESET 2 BIT (MT098.MCX {MODE .MIC MICRO2 1M(OT) Compatibility Mode 1485, 0086,2036,4030,0087,0148,8 142039 142040 :25825 28-NOV~83 142044 :25822 142047 =00 1450, 0880,2002,413D,8007,003F,9 . 1431, 0180,2012,4130,4007,003F,9 1452, 0180,2C12,4130,0807,003F,9 ) 1453, 0580,2012,4130,4807,003F,9 142048 142049 142050 142051 ;42052 142053 142054 142055 142056 42057 ;42058 142059 142060 142061 ¢ t RMUL 1 CLOKX Rev 13,00, Clock rate = 160ns : Page 1032| { i CM.MUL=READ .PSW: 163043 1488, 0186,2E12,053F,B047,0145,0 16:30:35 ; mmmmemmmm—ecmeeeee—————————— ; MCTEMP21_PSL * GET PARTIALLY SET (C'S | pemmmmmme—mmmemmmmeoooces s; i FLAG<1-05? _ ALTEMP2]_MB.AND.OLITOL502.3, : CLEAR N AND C BITS OF PSW BRANCH ON FLAGS TO SET CC'S Y1 . cemmecmecenne ; PSL_MLTEMP2], IRDT 07 == m e m : CLEAR N AND C : e e PSL_MCTEMP2].0R.ZLITOCS8], 1RDT P s SET N CLEAR ( : : P —— ; PSL_MLTEMP21.0R.ZLITOL9], IRDT ‘ e; ;1)mmmemmccenccammeeemme—men——— ; PSL_MTTEMP2].0R.2LITOL1], * IRDT , CLEAR N SET ¢ P SET N SET ¢ : i [e 14B0, 0085,2E5E,0A70,D08(7,0148,0 U 1480, 0980,0037,0130,3847,003F,9 . 1 1481, 0086,05BC,703E,(047,0145,7 SN = OO0 00 NON NS W) = OO0 OO 185 (N U 031, 08AE,15BE,403(,C047,0148,0 COODOOOCOOCCTOOOOOOOOOOOOCOD {MODE .MIC COCOOOCOCO N NN N NN NNNNOOPTOPOO-ONONOTM : MICROZ 1M(01) 28-NOV~83 16:30:35 Compatibility Mode : DIV CMTO98.MCX F P A A AP Al P AP AR i S o o o S Al b af o AU NI NOPU RN NI AN NININUNV R, PPN AVNININININIIY ; 086 .TCC ' SRRk 1 Page 1033? CLOKX Rev 13.00, Clock rate = 160ns Compatibiiity Mode etk hkhk Ak hkk ko DIV D h kb kh kb ¢ DIV ko kk bk hh kk sk k ko k ko ko Ak ok ok ko dend.mw,dsor.rw Input MDR RNUM ok .. Divisor . RN AR AR R AR R A AR AR AR AR AR AR oo .. 4 of reg to contain Dividend DIV PC will not affect the real pc It will instead use GPR 7 which_is v defined in Comp Mode This is consistant with the 11/70 and 11/780 K KRR K koo R A AR R AR ARk KAk Rk kR cfiEg{SN/IRDX+RIL,IRDX.R1H/IRDX.R2L,IRDX.R2H MCTEMP1) .RLGPR.R1, STEPC_6 ¢ GET REGISTER TO MBUS TO ZEXT ; TEST FOR OVERFLOW SET IN LAST CYCLE .REGION/CMODE .R1L, CMODE.R1H/CMODE . R2L, CMODE .R2H/CMODE .R3L, CMODE .R3H --------------------------------- RCTEMP3] SEXT(MLMDR]), ALUS_SIGND,SIZELIDEP], WX.NE.0? =0 ;Zgggg ; ;0==mnem= R et ; ¢c _[73, ¢ IRD1 642089 GET SEXT DIVISOR TO TEMP3 FOR DIVSUB ; GET SIGN FOR ENTRY TO DIVSUB CHECK FOR DIVIDE BY ZERO DIVIDE BY ZERO SET Z,v AND C BITS IN PSW EXIT QUIETLY B; $42090 :2583; Q_RLGPR.ROR1] MLTEMPO]_O, NEXT/CM.DIV-CALL,SUB ; GET LOW HALF OF DIVIDEND : PROVIVE ZERO FOR DIVSUB $4209 =00 $42094 =01 $42095 CM.DIV-FIX. REM 162096 B R et e A DU LRt UL : . tl 1456, 0084,0038,187D,8047,0948,8 436+ W8_Q-R[ZERO], ; :23983 NEXT/CM.DIV-TEST.OV1 : 42101 $42102 ettt leirtiepeiatntaleiet el ; RETURN =1 QU0 WILL BE RVEMPO_Q ~Q,SIZECIDEP], ; NEGATE @ ;42098 ;25%82 162105 242106 $42107 U 1457, 0056,1816,687D,R8(",0444,8 ;62108 142109 SIGND CMP?,SIZECIDEP], SIGND fMP’.NEXT/CM.DIV-TEST.OV : IF RESULT NOT POSITIVE THEN OVERFLOW ; OVERFLOW IF POSITIVE (NOT EQUAL O) CM.DIVCALL suB: ;1lesseemcccscsmascusecnsccouee- : M[TEMP1] D_SEXT(MB), (MP SIGNS?,SIZELIDEP],PUSH, SET FLAG2,NEXT/IL.DIVSUB s ZEXT HIGHM HALF OF DIVIDEND ; SAVE SIGN OF DIVIDEND [N MTEMP1<15> ; SET EDIV FLAG, BUT INTO DIlvsuB i u 1455, 0480,0038,087D,8047,0945,D 436% RETURN ~2 QUO WILL BE + :62097 e 2 O 0O NN S W O OO NN N T (ANNU = O 000 NN ISAND =S O 00 NOM N TN b b b oD b b R b o o 16:30:35 DIV 1 E CLOKX Rev 13.00, Clock rate = 160ns 14B8: CM.DIV=TEST.OV: ;00%*xx*FORCE ADDRESS*+ i********‘ OVERFLOW OR MOST NEGATIVE ] _MCTEMPO].AND.ZL{&S%E ; TEST FOR MOST NEGATIVE QUOTIENT WXTEQ.07 ,NEXT/CM,D 14B9: 0TxxawxFORCE st.ov2 : ADDRESS*#uwnnaxnkk; MCTEMPS] D REM, H; ALUS?, NEXT?CM DIV-TEST.REM1 NO OVERFLOW (QUOTIENT ZERO) UNSHIFT REMAINDER ; TEST FOR UNCORRECTED REMAINDER 14BA: CM,DIV=TEST.OV2: s10%xxxxFORCE ADDRESS*aunsknkkuw; MCTEMPS] D_REM, H; ALUS”,NEXT7CM DIv=TEST.REM? 14BB: =01 ; ;11 xxxxxFORCE ADDRESS*axsnskxunk; SET V,NEXT/CM.DIV-CLEAR,C ; CM,DIV-TEST.OV1: ) it L L L L L L L T; MCTEMPS)D_REM, ; ALUS? ,NERT7CM,D1V=-TEST .REM1 R D SET Vv, NEXT/CM,DIV~CLEAR,C : e L : ; : =00 CM.D]V-TEST REM: ------------------------------ D_MCTEMPSI-RLTEMP3] NO OVERFLOW UNSHIFT REMAINDER TEST FOR UNCORRECTED REMAINDER OVERFLOW! SET v BIT, CLEAR C BIT NO OVERFLOW UNSHIFT REMAINDER TEST FOR UNCORRECTED REMAINDER OVERFLOW !! SET v BIT GO CLEAR C-BIT DIVISOR NEG, REDO CORRECTION ‘ D <= UNCORRECTED REM - DIVISOR TEST REM1: (M.Gly= s o e e B B W B T e e e 0t * WRITE OUT DIVIDEND SET C(C'S TEST DIVIDEND SIGN IN MTEMP1<15> = LN 0080,0021,24F0,0047,0146,0 et m B mh B 1463, —_— u B R RS R 1461, 0082,102C,7AB(,(847,0145,9 L U — O 2 b i d e —d il D e D D b ed D eh b D b 2ad e ad T N b e TR T 1460, 080,5000,2030,7047,0146,1 T Z TR Uy 00%0,0036,4930,08E7,0148,2 N ST . 0(86,5026,AB7D,9847,0146,1 b aad N080,0036,4030,0887,0148,2 Uy NN T 1488, D D T T T S e 14BA, 0086,5026,AB7D,9847,0146,1 D md e e 0086,5026,AB7D,9847,0146,1 T 1489, I PO NORO RO NUNO PO RUIIUN) = e =3 b a3 PR TR T 0580,0092,0A34,0047,014B,A P 1488, 28-NOV=-83 =2 Compatibility Mode .. (MODE .MIC MICRO2 Ao AU L U DS O B BN 25 35 0 B B 25 NN NN NN A CMT098 . MCX R N A R N O N A o o S T al AP P o o o Dl ol ol ol o o o o e e e dnle Sl LN LT NN Y LS LN ST LN ST NS LN LNL S L LSS VLN LGN LSS LN S LS I AP LN LS S TN LS LS LS 1A LN TaS L) N 6 D+R[TEMPSJ - o2y 0 o i Sy > : DTEST <= UNCORRECTED REM + DIVISOR S 2 O P FCAG37,NEXT/CM, DIV~TEST REM : CORRECT REM (ASSUME DIVISOR POS) FOR DIVISOR POS Page 1034 ! IO =2 OO0 i Gy QR Siir i Giir GUar Gir il Glhr- Sl Sr Gl Sli-fiy Gl Sl 28-NOV=-83 AN D ANV = O D00 NN DA 0180,0¢15,8130,0807,003F,9 NNNNNNNOONOC OO OO TR YU T T ! 1483, 0086,0036,4030,0087,0148,3 PR T SIST 1482, Pyl 0482,05B82,403E,C047.0148.2 U 1458, Y L I 1459, 0482,05B3,003E,0047,0148,2 T T TR TR Compatibility Mode o o o af 2P AP g o R 2P 2B b b 2P 2F P P LASTAVONT S LS LU NI AR LS L C L SIS [ S O a0 1o TS 1o W IaV LAV SN ] (M1098.MCX CMODE .MIC MICRO2 LI 1M(01) : 16:30:35 F DIV 1 CLOKX Rev 13.00, Clock rate = 160ns 7 1459: CM.DIV=END: ;01 x%xwxFORCE ADDRESS*wnwnawxxxk: RLGPR.ROR11.S1Z_-D,SIZELIDERP], ; NEXT/CM.DIV-CLEAR.C 1458 ; GO CLEAR (-BIT ;erxnnwxwFORCE ADDRESSw*%wwwwnwix: MLTEMPO] _PSL 1483: DIVIDEND NEGATIVE WRITE OQUT REMAINDER AS NEG VALUE : GO CLEAR (=BIT 1482: (M.DIV-CLEAR.C: ;s sxxxxkx*FORCE ADDRESS**xxxwknix«, ?gBTMCTEMPOJ.ANDNOT.ZL1T0C1J. : i Page 1035! i ;11*xx%*FORCE A DDRESS*x#xxxwawxkk; DIVIDEND POSITIVE RCGPR.ROR1].S12 D,SIZELIDEP), ; WRITE QUT REMAINDER AS POS VALUE NEXT/CM.DIV=CLEA R.C - (ADDRESS 14B8 MOVED IN REV 18) GET PSL (ADDRESS 1489 MOVED CLEAR C~BIT IN PSL IN REV 18) IMC 28=N0V=83 16:30:35 : XOR Compatibility Mode 0r7cC, 0(80,0036,488C,(047,0077,8 AR AR XOR : XOR" PP TR AR RN Input R R RA AR A AR AR AR AR A RN AR AN A AR Src.rw,dest.mw RN AT R AN A AR AN RNUM AN R AR AR R AR R AR R R Rk A Rk Rk UL ettt A R R R R AR R KRR AR bttt ; RNUM EQ.7? : TEST A AR R ARk Ak ARk kA Rk FOR PC AS SOURCE Pmmmmm————a——————————— [ HDR_RLGPR.R], : (RDX [1] : ;10=mmmmmmmammmaan memmmmmmmanane ; MDR MLPC], ; IRDX [1] H; SAVE CONTENTS OF SOURCE REGISTER JUMP INTO 0S.MOD SAVE PC AS SOURCE REGISTER JUMP INTO 0S.MOD ;1 lemmmmmamm - m—————————— m—— MDR_RLGPR.RJ, ; IRDR £1] SAVE CONTENTS OF : JUMP INTO 0S.MOD SOURCE REGISTER CM. XOR=WRITE: tae2e : TEST FOR REGISTER MODE sknnnxakxxFORCE ADDRESS*a®nwswnn; CH.XOR-WRéTEl . Tt Ot Y - W e =y VY REDST.R].SI1Z_MIMDRJ.XOR. DO XOR AND WRITE RESULT WRITE MEM IF NECESSARY WRITE NOTREG,SIZE[IDEP] NEXT/CO.NOP sxnnannxknFORCE SET CC'S ADDRESS#xxannnnx, $010====cmmsmommecmmiocmmanenas : PC_MIMDR).XOR,Q Si2ECIDEP], CLOPT, WRITE PC SET CC'S CHECK FOR ODD ADDRESS DOXOR AND WiITE RESULT O'N WRITE |7 TmMe— pt < o — m x — WB<0>? ,NEXT/CM. TEST.PC : :; :; MEM SET €C'S IF NECESSARY P TS ——— : RNUM.EQ.77, NEXT/CM, XOR-WRITET : : W Register to XOR ?g?{ON/IRDX.R1L,IRDX.RTH/IRDX.R2L,IRDX.R2H f — = O 000 NT W SN — QOO NN & WA= OO AN S OO0 NN PR F S TR Page 1036? CLOKX Rev 13,00, (lock rate = 160ns Compatibitity Mode [ap--17] 0778, .83,2008,403C,4DDA,0072,2 = OO 00 NN NS NN 0C81,2008,4280,0C87,0149,6 O N L AN 0774, 0483,2008,403(,4DDA,0072,¢ phrraivgirSliv Sl iy Sl Sihr it v il Sl SRr v Qg AN NN RINONLNINLTLNINONUNI RO NN NI NAJNI NNV = = =3 = OO N N e To Too] CUPONONONININY b e b e b b =+ 2 3 DO OO OO OOOOOVVOVD NelleXoRialalo-To 0778, 0c80,0036,4480,0047,0077,8 R T o A TR TR 03E2, 0880,05BE,407(,(467,0000,1 e S V. 0347, 0881,A002,407D,8467,0000,1 L 0346, PP 0344, 0880,058€,407(,C467,0000,1 PP 013F, 0480,0036,4BBC,C047,0034,4 R T TR TIC TUE RU Wp S e MICROZ O al o g T o At 20 A I I I IR -t I RN NN NN RO RJAL MY MU RN R AUAI NN NI NLAJNL NN R NI NN NI NDAJ N NI NN NI NINI NI NNV (MT098,MCX {MODE .MIC N O R R R U AUNLAU R AN . 1 6 TEST FOR PC AS DEST k ok k ok J 16B7, 0081,2002,4280,0087,0149,6 R U 034F, 0085,A592,4030,0047,0148,7 KEK KRR AR AR R T SRR : Compatibility Mode R R R AN AR AR R AR R AR AR AR R AR KA R R BIs(8) sre.rx,dst.mx Input (dest is memory) (dest Input + dede e de A e g ok o oy ok ok o o ke e oy is register) ek o ok AR ok o e e Page BIS®)" R AR AR AR AR R R ARk kA Rk wkd &k QR EG MD R Address ot dest Source Contents of dest MD R RN UM # of register to bis VA A Source e o ok o e ke o e ok o ok ook v o o e ok ook e ok e e e ok ek e e e e LREGION/IRDX.RIL, IRDX.R1H/IRDX .R2L,IRDX.R2 H T L L 0 e § Rt e h T zunn = R Emm L > . -t —t (M,B]S=MEM: m S AN = O 0o~ " 1 CLOKX Rev 13,00, Clock rate = 160ns L NN = O OO NN J0C H 1 2t 4 o e e A % St o e o O Z N O AN S AND =D OO NO U 034E, 0483,2002,413C,C847,003F,9 AO OO S I u 03E3, 0881,200A,4030,0D008,0072,2 O I T S e TR T T S e R R (MT098. MCX .M CMODE Mic E N A N A T P ¥ S A o i I ol o o o o P AR P P M 2P F ol o LU IR ST NT NI NI ST T VN NI LN SIS TN T ST N S S S AN Lo S a1y O L e L LA A LUNINLRIND NON NDAUNL NN NN PLNL NN NV NJALNL NI PPV NVPV PV PLTVNONY AP WAL AN LA LA D 25 B 8 I 05 0 2 25 D b DHANIAN AT A e ooy : : MICRO2 1M(01) 1M( 28-NOV-83 ] 16:30 : 35 Compatibility Mode : B 15(8) STER MODE PC AND PUT IN REGISTER REGISTER MODE PC GET DEST OPERAND R[TEMPO] _Mipcd .REGION/CMODE .R1L,CMODE .R1H/CMODE .R2L ,(MODE .R2H/CMODE .R3L, CMODE . R3H 14B7: ;akakxkFORCE ADDRESS**#anansassn; PC_MLMDRI,OR.RCTEMPOY, ; SITELIDEPI,CCOPT, ¥B<0>? ,NEXT/CM, TEST.PC . (1487 FROM, 14BA TO CM.DIV IN REV 18) WRITE ANSWER TO PC ; SET C€C'S . . . : H CMT098.MCX CMODE JMiC MICROZ2 1M(01) 28-NOV-83 6 0:35 Compatibility Mode r BIT ) 11 CLOKX Rev 13.00, Clock rate = 160ns ' 342262 SRR $42263 ; 142264 AR R R RN AR R R AR R RN NRKKRRR KRR AR RN KRR bk BIT(B) src.rx,dst.mx Input (dest is memory) VA Address of dest 162267 142268 ; 142269 A ;62271 Input R R (dest , , e MDR RNUM R A 142273 ;62274 e W8_MCMDR].AND.Q ;255;9 IRD1 142275 ccOPT,SIZECIDER], 4ed79 H L L L L ). LL L b Source # of register to bit L T A A AR AR AND TWO NUMBERS : SET CC's : ] wememwewws NOT REGISTER MODE PC ; DD TEST ; SET CC'S ;42280 ;42281 UB MCMDR].AND.RLGPR.R], cchr1, SIZE[IDEPJ, 142284 ;25532 {]emmesmmme e n e ——————————— : REGISTER MODE PC RLTEMPO) _MIPC] . GE1 DEST OPERAND ;2333% IRD1 : Ezgggg 6%%210N/CMODE.R1L,CMODE.R1H/CMODE.R2L.CMODE.REUZCMODF.RSL.CMDDE.RSH 142289 :42290 J Q3kA, 0481,2002,0130,0847,003F,9 16229 142292 © iawanaxxFORCE ADDRESS*Ararauanas; wa M{MDR].AND.R{TEMPO], Sl?E[lDEPJ CCoPY, IRD1 ;s s : ki kkhw Source Contents of dest _REGION/IRDY.R1L, IRDX.R1H/IRDX.R2L ,IRDX.R2H 142278 CM.BIT=REG: U 0353, (885,A592,4030,0047,003F A QREG MDR is register) 24227¢ CM.BIT=MEM: i 0352, 0481,2002,013C,(847,003F,9 : BIT(B)Y" Compatibility Mode :2%%2? LT0C 142265 ; 1462266 U 03e4, 0081,200% 0130,0847,003F,9 Page 1038 TEST ANSWER SET (C'S AR AR ARl f ; : CMT098 . MCX CMODE .MIC MICRO2 1M(OT) (ompatibility Mode 28=NOV~83 :25532 .T0C 342295 SRR 542296 $62297 16:30.35 : BIC(B) " R R RA :6230¢ ; 202303 R KRR AR A AR A src.rx,dst.mx R A AR R AR R AR AR AR MDR Source RNUM J 03ES, 0c81,2008,8030,00D8,0072,2 ittt b DL DL LA DL I - 1462307 WRITE MIMDR).ANDNOT.Q, ;62308 :25%?8 cceet,SIZELIDEP], NEXT/CO.NOP R AR KRk U 0354, ) 0483,2003,013C,C847,003F,9 U 0355, 0885,A592,4030,0047,0148,6 162313 ;62314 :23232 143317 ;25%{3 AR R ; ; ; . # ot register to bic AR AR AR | N i hR | f ! 1 i . CLEAR SPECIFIED BITS AND WRIIE . SET (C'S : WASTE A CYCLE et bttt et b L b D ; NOT REGISTER MODE PC RCLGPK.R].S1Z_MIMDR].NOTAND.RB, ccort,siZeCIDER], IRD1 ; ; : e ; REGISTER MODE PC RCTEMPO]_MLPC] ! ! $42311 CM,BIC-REG: ;462312 ! Source Contents of dest R AR AR 162304 REGION/IRDX.RIL,!RDX.R1H/IRDX.R2L,IRDX.R2H N AR AR R AR AR Address of dest RN :25%82 (M,BIC-MEM: ! VA QREG MDR Input (dest is register) R j : BlC(BY" Input (dest is memory) :62301 ! ? Page 1039 1 CLOKX Rev 13.00, Clock rate = 160ns Compatibitity Mode BIlC(B) 142298 ; 142299 ;62300 ; | J s CLEAR BITS AND PUT SET (C'S IN REGISTER GET DEST OPERAND i ! | l i | | | 325%%? REGION/CMODE .R1L,CMODE .R1H/(MODE .R2L, CMODE .R2H/CMODE .R3L , CMODE .R3H J 14B6, ((81,2003,0280,0087,0149,6 142122 :42323 142324 PC_MCMDRI.NOTAND.RCTEMPOI, SIZECIDEP],CCOPY, WB<0>? ,NEXT/CM.TEST.PC ; WRITE ANSWER TO PC ; SEY (C'S : i i ! ; H cM1098.m§§ CMODE . MICRC. 1M(OM) 28-NOV-83 16:30:35 Compatibility Mode : BR, BXXX ;25%52 . T0C 242327 SRR $42328 ; 142329 ; 2330 " K 1 R Compatibility Mode Input R AR R A A AR AR AR AR ! Page 1040 : BR, BXXX"' R R AR R Rk A AR AR R AR AR AR ARk B8R disp.bb IR AR AR o CLOKX Rev 13.00, Clock rate = 160ns 0sSR AR R AR R AR AR AR R Rk AR AR Rk i AR Disp R AR R AR RN R AR R ak sk ko ;62335 :23 N O AN N N A A NN R U 014F, 0480,0036,4030,05€7,0148,D AN N 242331 REGION/IRDX.RIL,IRDX.R1H/IRDX,R2L,IRDX.R2H 142332 =1110 :42333 (M.BR: 162334 ;1110 me remmeren e cae e ae e ; MDR_ZEXT(OSR), g NEXY/CM.BRCND~BRANCH : GET BRANCH DISPLACEMENT ; GO DO BRANCH $4338 ;43 g SRR AR KRR AR AR R AR A KRR R K KRR AR AR AR AR K KRR KRR AR AKRR RN ARk R RN R A RN R 8XsX 2342 AR AR = ;1110m ee m——— e e mm— e ———— ; MDR_ZEXT (OSR) BRATST? : ; 0 3 B D 142340 ; 242341 ! U 148D, 0881,2815,(03D,8587,0148,( A L AR ARRAARAN RN OSR R RN AR Disp CRRRRE AR AR RN R AR AR R AR Rk k GET BRANCH DISPLACEMENT TEST FOR BRANCH VAL LN WA U LN A A DILATLA 0080,0036,4130,0047,003F,9 AR AR 42348 42349 .SEGION/CMODE.R1L,(MODE.R1H/CMODE.R2L,CMODE.R2H/CMODE.R3L.CMODE.R3H 42350 42351 (M.NOP! ;Q===mmmmmemmeeeem— e ———— ; BRANCH CONDITION FALSE 42352 1RD1 : NOTHING TO DO FALL THROUGH BRANCH 42353 42354 CM.BRCND=BRANCH: : 42355 Jmmmrme e — e e———— ; BRANCH CONDITION TRUE ; 42356 PC_PC+(SEXT(MIMDRD).SL.1), P PC <= PCHDISPH? : 42357 SIZECIDEPI,NEXT/CM.NOP : WASTE A CYCLE TO LET PC CATCH UP LN v 148¢, 142345 2% 9 L i TS U 01%E, 0080,0036,4870,05E7,0148,C O I8 38 B2 262343 =1110 42344 (M, BRCND: disp.bb Input i : j H H -— CMT098.MCX MICRO2 CMODE ,M1C 1M(01) Compatibility Mode 28-NOV-83 ;§g§§g .TOC 16:30:35 : JSR " } Lo CLOKX Rev 13.00, Clock rate = 160ns Page 1041 L = anen Compatibiiity Mode + JSR" :-":360HR 2112202232222 2222282322320 2233223 3322333222233t itdd] JSR 142351 142367 ; 4236y h2304 U 03E6, 0080,0036,44F0,0047,0148,E Input SRR KRR R KA reg.dest.aw R KRR AR AR AR RAT AR VA RNUM . Address of subroutine # of register to save AR AR AR RRR AR AR R AR AR AR RNk 142365 .REGION/IRDX.R1L.IRDX.R1H/IRDX.R2L, IRDX.R2H 142366 CM.JSR: $h2367 pmmmmm e ; 140368 FLAGS?, : TEST FOR REGISTER MODE ;25%98 NEXT7CM. JSR-TEST.MODE : RESERVED OPERAND FAULT IF SO }zgggg ggcxonlcmoos.R1L,CMODE.RTH/CMODE .R2L , CMODE . R2H/CMODE . R3L , CMODE . R3H 142373 CM.JSR~MODE .OK: U 1464, 0C80,058E,403(,C5D8,014C,2 . 142374 142375 :2§§;? 100=mmmmm e m e e e WRITE RCGPR.RJ,SIZECIDEP], NEXT/CM.JSR=WRITE .REG 142378 =10 1) 1466, 0485,A592,4030,4047,014C,3 e B L ; REGISTER MODE PC 142379 RCTEMP11_MIPC], ;25%39 NEXT/CM,JSR-WRITE.PC 142382 U 1467, 0080,058E,403(,(508,014C,2 ——— ; NOT REGISTER MODE PC : SAVE REGISTER ON STACK : D 142383 WRITE RCGPR.R],SIZELIDEP], ;23%3@ NEXT/CM. JSR-WRITE.REG : SAVE PC FOR LATER : ==; NOT REGISTER MODE PC * SAVE REGISTER ON STACK ; Eéggg? CM, JSR-WRITE.REG: 1402, 0883,A592,403C,C047,0001,0 142338 ;zsggg RCGPR.R1.S1Z _MLPC J 1EEIDEPJ. NEXT/CM. JSR=RRITE. : SAVE PC IN REG FOR RET ¢ SKIP ONE Ezs%g; CM.JSR=WRITE .PC: u 143, 0C80,1592,4030,05p8,0001,0 Ezgggz 0010 WRITE MCTEMP1),SI1ZELIDEP] " 2395 CM,JSR-WRITE.PC.1: _ U 0010, 0880,0002,428D,8487,0149,6 42396 svwnwnwxawfORCE 142397 PC_MLTEMPOD, ;zgggg 1670 ADDRESSwhwwwnww«; WBZ0>?7,NEXT/CM, TEST.PC 142400 CM,JSR=TEST.SP: : PUSH PC : ;42401 Oututxn*tFOR(E 142402 VA_R6_RB-CONX(2) RNUM.EQ.77, * U 1670, 0885,473C,0895,84A7,0146,4 ;2528g 1671 NEXT/CM. JSR=MODE . 0K : U 1671, 0C80,0036,4030,0047,00FD,9 142406 ;25285-0 142403 PC WITH SUBROUTINE DEC SP BEFORE PUSHING REGISTER : SAVE STATE INCASE OF BAD THINGS ;ImawwnexsfORCE ADDRESSHawwnenax; NEXT/IE.CM.ODD ; CAUSE ODD ADDRESS TRAP §42409 CM.JSR=TEST.MODE: 140410 U 148F, 0080,058F,4285,8047,0167,0 TLo4 142412 T jQmemmemmemmceccemcceecsce—n——— : B _RIRGI,UB<0>?, ADDRESS ADDRESS*xxnxxaw«; PUSH RBS-, T STUFF : GO DO IRD1 NERT/CM, JSR=TEST.SP Y : TEST FOR QDD “ r H (MT098.MCX {MODE .MIC MICROZ2. 1M(01) Compatibility Mode 28-1.0v-83 16:30:35 ¢ JSR L | CLOKX Rev 13,00, Clock rate = 160ns : Page 1042. | i b 148F, 0480,0036,4031,0047,00F8,E . ¢ 2 2 2 Eal o 2 v E Py { 3 i 5 i |eemmcmcccemcccceee= —ammmaam NEXT/IE.CM.ILLINS * ERROR TIME | ? Q. D ol o NI LNDSLETLNTLELELS LS LN LSS LU LS S L LS (AN N1 S 1aF [, 1,8 FaF S S S AP 2T 2k SE SR AP P S P oY S o P o o F LR P 2% o RN NN N LA AN AN TONC RS PO PO NI NN 2 2 CO NN I AN = OO 00 NSV = OO Sl P N e AR A R o PR T T NRk R AR AR AR A AR R 1 CM.RTS: ) 01404, _ e ! ) J 1405, 0t8(G,0036,6050,0047,0149,7 : SET UP TO POF WORD FROM STACK NEXT/(M-TEST.OSR P : NOT REGISTER MODE P( SET PC TO RETURN ADDRESS =10 ;10meescccnccencctanancnccnnnann ; REGISTER MODE PC JZEXT(MCMDR]) ,SIZECIDEP], WB<0>? ,NEXT/CM,TEST.P" ;11 mmmmmmme 14C4: H PC s RESTORE :-C FROM STACK s WASTE A CYCLE TO LET PC SETTLE e; PC RIGF.RJ, WB<0>? ,NEXT/CM,RTS-REST .REG NOT REGISTER MODE P( ¢ SET PC TO RETURN ADDRESS ; R[GPR R1.SIZ_MLMDR],SIZECIDEP], : RESTORE REGISTER FROM STACK IRD1 14(5: sVenwwawaafORCE : ADDRESSwwwwwuwww, NEXT/CM. TEST,PC,0DD H s AND GO CHECK FOR RESERVED OPCODES $00= == e: ©C_R[GPR.R], ; WBZ0>? ,NEXT/CM,RTS=REST .REG f CHECK FOR CDD SP ,R1H/CMODE . R2L , CMODE ,R2H/CMODE ,R3L , CMODE . R3H CM,RTS,CONTINUE: ;23223 $62451 # of register to restore MCTEMP11_RLR6],MDR_ZEXT(OSR), SSGION/CMODE.R1L,CMODE 262447 142450 AR ; ;642445 CM.RTS=REST.REG: 142446 ;O«xxxnvxnfFORCE ADDRESS*#*xwswnsn; QUB3,2592,4730,0047,003F,9 ] 1426448 RNUM R AR 111 SET FLAGT,WB<05?, 140641 U 1468, 0480,05BE,428C,(487,014(,4 RTSIan?s AR R AR AR R AR AR i ?E?%ON/IRDX.R1L.IRDX.RTH/IRDX.P2L, IRDX.R2H :25228 142447 162442 AN TR AN AR AR AR R AR AR : RTS, JMP" *tta*tt*****tt**i*tt***tfi*fitt"tt**ii**titit***‘r***fi***i**t*ii*l’fit***it**fifit*l 3 e N O U 146A, 0881,2016,428D,8487,0149,6 L S U 1468, 0480,058E,428C,C487,014C,4 Comparvibitity Mode Page 1043 i P . ' , CLOKX Rev 13.00. Clock rate = 160ns RN RN RN AP S o S T T U 014F, Q44E,15BE,4285,8567,014D,0 .T0C L : o Cwmpatibility AR {MODE .MIC N 28-NOV-83 ;?;30332 l o MICRO2 1M(01) A CMT098 . MCX o ; ; 1 ‘ : : - : CMYOQB.mEé : MICROZ2 (MODE , 1IM{OM) Compatibility Mode 28=N0OV=-83 ;?:30:%2 S, J B 2 TR0 JMP A R A dest,aw Inputs R A R A RN R RN RR R R AR ) Address to jump to VA RR R AR :23229 :REGION/JRDX.R1L.IRDX.R1H/IRDX.R2L,IRDX.R?H 142458 (M. JMP-REG: ) U COD}, 0480,0036,4030,0047,00F8,E . U OQ3t7, Page 1044! :(,2(,52 "tittkitfiktfittt*tttfi**itikfi*l**fi**ttk*tfifitktt***t*QRtkt*!flfl*fli!flfitflttfifltfitfifiifi 142453 142454 ; i f CLOKX Rev 13.00, Clock rate = 160ns i 0881,8002,42¢BD,8487,0149,6 162459 :2522? ittt rt itk i b L- NEXT/IE.CM,ILLINS 142462 CM, JMP=MEM: 142463 142464 142465 ; WB<0>? ,NEXT/CM, TEST.PC CAN'T JUMP TO A REGISTER . DO THE JUMP i bk A e ’ f ! ! ; ettt b T L i Lt O LLELLLY PC_MLVA], RRA AR ARk j WASTE SOME TIME ; i g | i ; l H : 2 ¢ CLOKX Rev 13.00, Clock rate = 160ns MICROZ 1M(O1) 28~NOV~83 16:30:35 : SOB, CLx, SEx Compatibility Mode (MT098.M(X (MODE .MIC 142666 ;42667 ;62468 142469 ;42470 1426471 | T0C " Compatibiiity Mode : SOB, CLx, SEx'' '**flt****ktw**ttiw*tk*****fiW****fi********k**k*********fifl**tfit*****l**i***t***w H : S0B H reg,dest.ab Inputs 0SR RNUM 8ranch displacement # of register to sob ke kA ko hdeohd ko 162472 TREER KRR KRR ARk Ak A ke kA ko ko k ke 142473 "REGION/IRDX.R1L, IRDX.R1H/IRDX.R2L , IRDX .R2H J42474 =111 ;42475 CM.S08: 62676 0C82,0E7D,0A7C,C5E7,0949,0 372+ U 1490, 0080,0036,4130,0047,003F,9 U 1491, U 14C6, N 0181,2012,1031,F847,014C,6 0(86,0038,003D,8047,014C,7 62478 0880,0£52,(030,0587,0148,C 142483 ;42484 ) ;42485 140486 42487 142488 142492 242493 142494 ;62495 0086,0036,4880,0087,0149,2 J 1493, 0081,2003,¢130,00A7,003F,9 0081,2002,4130,0047,003F,9 o M[MDEJ RNB ZLITOL3F) : MASK OFF BAD BITS IN DISP o o o Gy e i i o e O oy T g S AR o e s B ¥ MTEMPO <= -DISP MCTEMPOI_RC2ER01-0 :* BC_PCe(MCTEMPOL.SL. 1), : PC <+ PC=DISPx?2 AR AR AR CLx, SEx AR FALL THROUGH ; RRRR ARttt ittt dittdl) 242496 ; 1424698 flkt*fl*ttkkttt*tiiItttkttflk*fi*fl*ktfltk*tt!R******************************iW*i** : Inputs OSR Info on which bits to set/clear 162499q%?{ON/IRDXLRIL,IRDX,RTH/IRDX,R2L, IRDX.R2H 242500 ;42501 CM-SET.CLEAR: ;42502 : GET PATTERN TO USE INTO PSW MDR_ZEXT (OSR) 42503 162504 242505 .REGION/CMODE .R1L, CMODE .R1H/CMODE . R2L , CMODE . R2H/CMODE . R3L , CMODE .R3H 262507 242508 242509 ;462510 U 1492, : SOB ALL DONE... NERT/CM.NOP 2462506 U 1408, Rk : TEST FOR ZERO IRD1 § ;42489 1462690 142497 U 016F, 0089,0036,4030,05¢7,014(,8 e Ak 242481 geclom/cmoof.R1L, CMODE .R1H/CMODE .R2L, CMODE .R2H/CMODE. R3L, CMODE .R3H 142682 242497 U 14C7, kA * DEC THE COUNT REGISTER : GET DISPLACEMENT INCASE OF BRANCH wXx.RE.0? ;42479 ;42480 ko ko " RLGPR.R1.S1Z_RB~1 MDR_ZEXT(OSRY,SIZECIDEP], 142477 U 015F, Page 1045| MLTEMPOI_PSL, : 1R<2>? :0 : ------------------------------- $62511 ¢C_MCMDR].NOTAND.RLTEMPO], ;42513 ;42514 242515 v 242512 162516 GET THE CURRENT PSL BRANCH ON WHETHER SET OR CLEAR BITS IRB1 Uittt {C_MIMDR].OR,RLTEMPO], IRD1 :: CLEAR THE SPECIFIED CC BITS : ;: ; SET THE SPECIFIED CC BITS .T0C CLOKX Rev 13.00, Clock rate = 160ns Compatibitity Mode : MFP], MFPD' ; H Src.rw Input (src is memory) Input (src¢ is register) T R k kN kR kRl ek Ak ARk kA Ak kR kR kAR MDR Src RNUM # of register to PUSH N E MFPx REGION/ IRDX.R1L, IRDX.RTH/ IRDX.R2L., IRPX.R2H kA kR ARk AR Rk R kA ARk A R CM.MFPI-REG: P R Page 1046 ;********'c*tt***fi**tt***********************t****************t**************** N WB_RLR6J,WB<0>?, NERT/CM.MFPD-TEST,SP T 0080,05BE,4285,8047,0166,8 i sk * TEST FOR ODD SP ; .SBGION/CMODE.R1L,CMODE.R1H/CMODE.R2L,CMODE.RZH/CMODE.R3L,CMODE.R3H e T TR T u 0007, ' 2 T L LR TR TP T3 (MT098.MCX CMODE (MIC B R R N N N N A R N N A o aF ok o e e o D AR R A AR -l ol ol o ol Sl el bl Sl TR MPUNDRINI NN ALININ RJAUNU N NN NI NDALN N AL AU R APV VLML P RNV A AOO NI AL ROR NI NIV NOMNL NN P VIAW A LI LTL DA LT LA LT L LT U L v drlnuvn v it v v i nunui oo OO O NN AN UL IS S5 I BN O D5 2 0 B DS AW NI A AN N W PO N PO N PO PO RJTONON) =3 =3 — O N 2 LAIRD = © O 00 IO W DS AN 2 O 0 00 IO WA S (NN = O N0 00 O VTS AN = OO Q0 NI N BMAIPD — O 00 N ; : D MICROZ2 1M(01) 28-NOV~-83 16:30:35 ¢ MFPl, MFPD Compatibility Mode 0080,05BE,401C,CDD8,0072,2 PC CCOP1,NEXT/CO,NOP Y SET ('S P RLCTEMPOI MLPC], ; Y Py OO S WRITE RLGPR.RJ,SIZELWORD], CCOPT,NEXT/COLNOP : NOT REGISTER MODE PC : PUSH REGISTER POSET €C'S U 146F, 0(80,05BE,401C,CDD8,0072,2 0C80,0592,4010,05D8,0072,2 03E8, 0085,473C,0295,84A7,0972,A 376+ U 1672, 0881,2592,4010,0008,0072,2 L P (=t U 14(9, 0085,A592,4010,0847,014C,9 e U 166E, T T U 146(, T O ;00=mmscccacmsscusnmnmcnnannnan : NOT REGISTER MODE WRITE RLGPR.RJ,SIZELWORD], * PUSH REGISTER =10 REGISTER MODE PC GET PC CCOP1,ST7ECWORDI, NEXT/CM.MFP-PC : SET CC'S CM.MFP=PC: WRITF MLTEMPOJ,SI1ZELWORD], NEXT/CO. NOP ' PUSH PC ; LREGION/IRDX.R1L, IRDX.RTH/IRDX.R2L , IRDX.R2H CM.MF PD-MEM CM.MFP1=MEM: VA_RIR6I_RB=CONX(2), DEC STACK BEFORE PUSHING NEXT/CM.MFPD=CHE K. SP ; PUSH RBSZ,WB<0>?, * CHECK FOR ODD STACK iFggSION/CMODE.R1L.CNODE.R1H/CMODE.R2L,CMODE.RZH/CMObE.RSL.CMODE.RSH FREE.1672; sOxwnwxwxsFORCE ADDRESS*xwxnnxww; WRITE MCMDR],SIZETWORD], CCOP1,NEXT/CO.NOP ; PUSH SRC i SET (C'S ARk ke k 3 e ; : v CMT098.MEX (MODE ¢.MIC MICROZ 1M(01) Compatibility Mode 28=N0V~83 16:30:35 E : MFPI, MFPD 2 CLOKX Rev 13.00, Clock rate = 160ns | Page 1047! 162567 172A: 149568 CM.MFPD=CHECK.SP: U 172A, 0881,2592,4010,0DD8,0072,2 i U 1728, 0CBO,0036,4030,0047,00FD,9 142549 142570 ;O%xkwxexeFORCE ADDRESS*axnnxawn; WRITE MCMDR],SIZECWORD], ¢ PUSH SRC ;252;5 CCOPT,NEXT/CO.NOP 140573 172B: ;252;@ ‘ SET ¢C'S ;1axxxxxxxFCRCE ADDRESS*Hwxxrwx; NEXT/IE.CM.ODD :; CAUSE ODD ADDRESS TRAP 142576 1668: 162577 CM,MFPD-TEST.SP: 142578 ;O**nenewwFORCE ADDRESS*#arwnnux; ;42579 VA_R6_RB~CONX(2) RNUM.£0.77, ; U 1668, 0085,473C,0895,84A7,9146,C U 1669, 0C80,0036,4030,0047,00FD,9 242580 PUSH RBS-, :25235 1669 140583 142584 NEXT/CM.MFPD=TEST,MODE © ; j1axwaxxxxFORCE ADDRESS*¥ %kt kks; NEXT/1E,CM.ODD DEC STACK BEFORE PUSHING s SAVE STATE : CAUSE AN ODD ADDRESS TRAP | : : (MT098.MCX {MODE .MIC MICROZ 1M(O1) Compatibility Mode 28~NOV~83 16:30:35 : MTPI, MTPD ' :'42587 HR T R CLOKX Rev 13.00, Clock rate = 160ns e Input (dst is register) S HHHI KK R AR IR KR kRN R R IR A IR kAR Page 1048| : MTPI, MTPD' R R MTPx dst.ww Input (dst is memory) 142591 ; U259 2 Compatibiiity Mode :zsggg .T0C 142588 ; ;2%%38 : F R s S22222 223222382322l t VA Address of dst RNUM # of register to WRITE R AR R ARk R AR A R ARk ek 162593 .REGION/IRDX.RIL,IRDX.RTH/IRDX.R2L,IRDX,R2H 162594 CM.MTPD: 142595 (M MTPI: U 039, 0481,B004,7285,84A7,014C,A 142596 :42597 2 :Zgggg emmmescscccccecccscessscecsssce- H VA RCR6] Q_MLVA], ; GET ADDRESS OF STACK WB30>? ; CHECK FOR ODD STACK ADDRESS 342600 .REGION/CMODE .R1L,CMODE ,RTH/CMODE .R2L, CMODE.R2H/CMODE. R3L, CMODE .R3H 142601 162602 U 14CA, 0€85,573D,04D5,8050,0149,4 U 14(B, 0€80,0036,4030,0047,00FD,9 14CA :62603 R[Réj RB+CONX(2) PUSH RBS+, ;zgggg 14c8 142606 :2528; <0 0********rORCE ADDRESS********* READ s READ STACK ; POP SP AND TEST FOR REG MODE PC FLAG3? ,NEXT/CM, MTPI TEST. REGMOD ; TEST FOR REGISTER MODE T ;1sesnxxuxFORCE ADDRESS**#wawnnsn; NEXT/1E.CM.ODD ; CAUSE ODD ADDRESS TRAP 142609 CM.MTP]- rssr REGMOD: U 1494, 0780,003A4,403D,84A7,0147,0 U 1495, 0080,0036,4BB(,(047,0147,0 . U 1470, . 0083,2592,401C,4DDA,0072,2 1472, 0881,2002,429D,8(87,0149,6 L 62611 ;zsg}g 142614 ;232}2 £00 . NERT/CM.MTP-WRITE ; ; RESTURE VA j]m=mmmcmmemcecmenssensaaeaas : RNUM EQ 7? . TEST FOR POSSIBLY WRITTING PC 142617 CMMTP=WR]TE: 42618 ;00mmmm e e e — - ——— s NOT REG MODE PC 142619 RIDST.R]. SI1Z_MLMDR],SIZELWORD], ; WRITE REGISTER IF REG MODE 162620 WRITE NOTREG.CCOP1, 142623 =10 ;10=mmmmmmmmm e ma e mm— e —— ; REG_MODE PC :Zggg; NEXT/CO.NOP ; WRITE MEMORY IF MEM MODE : 262624 PC MCMDR], ; WRITE PC :23259 NB<0>? NEXT/CM. TEST PC ; 142625 142628 R U 1473, 0083,2592,401C,4DDA,0072,2 e atk ; 162629 ;62630 142631 CCOP1,SIZELWORD], SET (CC'S ; SET (CC'S TEST FOR ODD ADDRESS ;1lmmemmcecceesceccceceeeeeease. ; NOT REG MODE PC R[DST R).S1Z_MCMDR],SIZELWORD], ; WRITE REGISTER IF REG MODE WRITE NOTREG. CoP1, NEXT/C0.NOP ; WRITE MEMORY IF MEM MODE : SET CC'S 0481,2016,401D,8487,014C,E T4CF, 0085,2387,0010,0047,014(,F o 162660 14CF, 16:30:35 0D80,0012,0670,F827,0140.8 162661 142662 .T0C RTI, RTY " AR G 2 A AR R ] i : RTI, RTT" CompatibiLity Mode AR Page 1049; CLOKX Rev 13.00, Clock rate = 160ns AR AR RN ! . ! R R AR AR R R R R AR AR AR AR R AR RN A AN ARk A h Ak ek k% RTI - TR RTT AR RN R AR AR ARk A ARk ARk kAR kAR Rk Rk ARk ko ko .?%?{ON/IRDX.R1L.IRDX.R1H/IRDX.R2L.IRDX.RZH [aIsRl NN il W B 2P o 2Bl Sh Bl P O e N S 8 O 05 0 I 85 I 8 S (NI = O D O3 O N I ANL = O N0 OC NI VI N O AN 2NN 14CD, O OO 0084,073D,0025,8050,014(,D v LA 14CC, S T 0456,15BE,42B5,85E7,014D,0 NN R NI NDNLND PO o [+ N Ne s NaNeo N NeNoNoNeNoTeNoNeHeoXo JoJoTogo Ko Jo o To Lo Jo < 017F, O P T T L ' mMeon 28=-NOV-83 : Compatibility Mode MICROZ W A AT AP aF 2 S o o L o R L S o~ o ny ALPONLNINVLADN RN NI NN NN NI NI NN . . . MCX (MT098 CMODE MIC M.RTI: M.RTT: ;111 mmmmemm e mee e e m e s aae ; MCYEMP1] _RLR6],MDR_ZEXT(OSR), ; GET ADDRESS OF STACK NFXT/CM-TEST.USR GO CHECK FOR RESERVED OPERANDS SET FLAGZ,WB<0>?, ; CHECK FOR QDD STACK ADDRESS ; .REGION/CMODE .R1L,CMODE .R1H/CMODE .R2L , CMODE . R2H/CMODE .R3L , CMODE . R3H CM,RT], CONTINUE : READ READ STACK PC_ZEXT(MCMDRI) , S1ZELWORD] % STUFF PC FROM STACK RCTEMPO]_MCMDRI.RR.16 * GET DATA TO STUFF PSW WITH PSW_MLTEMPO],AND,ZLITOL1F], * WRITE CC INFO INTO PSW RLR6I_RB+CONX (4) IR<2~0>? : POP STACK : TEST FOR RTT (BIT 2 SET) ko ‘ | CMT098.MCX (MODE .M. C MICRO2 1M(01) Compatibility Mode 28=NOV=-83 16:30:35 H ¢ RTI, RYY ‘ CLOKX Rev 13.00, Clock rate = 160ns : Page 1050, i | ;462663 =011 140664 CM.RTI=TEST,PC: 1408, 0481,A592,4280,0047,0149,6 140F, 0C86,0036,4030,0087,0166,A 140665 142666 :2522; we?o>v NEXT/CM TEST.PC $42669 MLTEMPO]_PSL 142672 166A: 166A, 0980,0€93,8034,0007,0140,B :252;§ TO WBUS TO TEST * TEST FOR ODD ADDRESS T : RTT :252;? 142673 0 * GET CURRENT PSL ;axxxsxxxxnfORCE ADDRESS#wruwxnax; PSL_MCTEMPOJ,ANDNOT,ZLIT24[80), : CLEAR TP SO TRAP WON'T OCCUR NEXT/CM.RTI=TEST.PC : 142676 CM.TEST.PC: 1496, 0080,0036,4130,0047,003F,9 ! Py — : RTI WB_MLPC * DRIVE PC 142677 ;0=mmmmrnnannannennanenannmmeane; :zgg;g IRD1 PC NOT 0DD tOALL OK 142680 CM,TEST.PC.ODD: 1497, 0080,0036,46F0,0087,0147,6 1476, 0C80,0036,4030,0047,00FD,9 1477, 0080,0036.4130,0047,003F,9 142681 142682 ;23232 142685 =10 ;]memesmsmcsmcmemecemessecen——— ; PC 0DD WB_PSL : READ PSL WB<31-50>2 Y TEST TP BIT :10=mmmmmmmmmeemeecemee———————— ; TP CLEAR DO 09D ADDRESS TRAP ;zsggg NEXT/IE.CM.OD * BACK TO NATIVE MODE 142688 i1l emmcmmcnac e n—————— mmmmmmmm; TP SET ;zgggg 1RD1 LET THE HARDWARE : DO THE WORK 142691 14D0: 14D0, 0581,2012,0A31,0047,0149,8 14D1, 0C80,0036,4030,0047,00FD,9 142692 (M=TEST.OSR: 142693 saxwananeef ORCE ADDRESSA*aunnanw; 142694 WB_MCMDR].AND.ZL1T0C38), : ;25232 1642697 14D1: ;25233 ; WXTEQ.0? ,NEXT/CM=-TEST.OSR1 * TEST FOR RESERVED OPERAND ;wwxasxwaxFORCE ADDRESSA*# &k xnux; NEXT/1E.CM,.ODD ¢ CAUSE ODD ADDRESS TRAP 1498, 0C80,0036,4030,0047,0010,F 223;82 142705 1499, 0880,1002,458D,84A7,0141,0 142706 ;2S;8§ 000 NEXT/IE.CM.RESOP * TAKE A RESERVED OPERAND FAULT jeemmmememem—ccecccceeecceoeee ; VA_MCTEMP1], ¥ LOAD VA FOR RTS FLEG<2=0>? ,NEXT/(M=TEST,OSR, CONT'; 262710 =001 ;25;}5 162713 1412, (€84,073p,0895,8050,0146,8 162714 142715 ;:5;}9 ;00 memmcmcmcncmcnnc e nae : NEXT/IE.CM.FAULT * CONTINE FROM 10T OR BPT R : CONTINUE FROM RTS READ, RG6_RA+CONX(2) RNUM.EQ.7?, NERT/CM,RTS, CONTINUE § ? SEE WHERE WE CAME FROM 142709 (M=TEST.OSR,CONT: 1411, 0C80,0036,4030,0047,00FD,A { i 142700 =0 ;25;85 (M=TEST,OSR1: : GET SAVED REGISTER : POP SP : TEST FOR RET P( : : (MT098.MCX MICROZ CMODE .MIC U 1414, 0080,1016,401D,84A7,014C,C R 1M(01) Compatibility Mode I —_—— : 28-NOV=-83 8 =100 9 ? 16:30:35 ! RTI, RYT 2 CLOKX Rev 13.00, Clock rate = 160ns Page 1051 -100 ---------------------------- ; CONTINUE FROM RTI RTT A JEXT(MLTEMP1]), ;ZERO EXTEND VA INCASE OF UNALIGNED READ h"l ; 1 ZE ORDJ,NEXT/CM,RTI.CONTINUE — ; ne NUNLNLRL RN RV R R 0C81,7010,485D,A46A7,0149,A 0c81,4737,203¢,C047,014D,6 O LN S L : 2 CLOKX Rev 13.00, C(M.0S.RED Page 1052 1 Clock rate = 160ns 1 J I | i : : CM.O0S.RED" i + Yemanona. = OO 00 =D OO0 NO NN SN NN W — O DO NV NN = OO O OO NN T AR YK R e 0881,2004,72BL . (4A7,014A,E N N N P 0881,2004,787(,C4A7,0149,E P u ANV e P T e T T N L N N i 0081,2004,787(,C4A7,0149,C Sy uJ Y A N I S 0481,A002,403D0,64A7,0149,A “esen.m. L 0480,05BE ,487C,C4A7,0149,A aE 2 2R 2P aF o S B o o ool o o S 0481,2592,5030,0047,014D,2 N 0€81,2004,707C,C467,2000,1 16:30:35 Comp Mode Operand Specitier 42722 .T0C "' R TR T PR TR - . (MODE .MIC N SN N SN N N SN N N SN TN N N TN N TN N N N N N NN N TN N N TN TN N TN N N SN N SN NI SN SN SN N SN N MO PO T N RO PO N SN NNNONONOCONONON O OO O UM LA LA LY B B IS I BN D B 3 D NN NN N A RN O (MT098.MCX 28-NOV-83 MICROZ Comp Mode Operand Specifier NN NI NI PLNJINLALNOLNI NNV NN NV RUNLNINLNL NP NS RONU A NINDALPINL PN NO NN NJND AUNINLNLAIND - NN NN NN SIS — eI e———— CY R E P R R KRR R R AR A R AR RN AR A RN A R R AR R AR R AR R RR KRR kA XAk kA ko k R MDR is saved in the Q-register and is always destroyed. Evaluates read type operands and places the result in MDR. MTEMPO is destroyed. Read access .k ke d otttk for the operand is checked. bk ok ke kA Ak kA AR kAR AR AR R AN AR KRR AR KA AR R KRR R AN R A AR AR RN :ssgéON/IRDX.R1L.1RDX.R1H/1RDX.R2L.IRDX.RZH CM,0S.RED: ;0000==mmmwommm e e eH 0_MEMDR] MDR_RLGPR.R], : IRDX [1] : ;0001 ~==ce Q_MIMDR], tesmccmcctmcnanonaaue : : NEXT/CM,0S.RED=REGP( H ;001 0ussenccnnan .- VA RCGPR.R], 0DD ADDRESS?, NEXT/CM.0S.RED-0DD. CHECK] VA MCPCD, NERT/CM.0S.RED=0DD . CHECK1 s0100=mmom 0_MIMDR] :: ; ee: VA RIGPR.R], ;; 0DD ADDRESS?, NEXT/(M.0S .RED-0DD.CHECKZ : ;; (0101 emmmscuncemnnn e nu———e H Q_MCMDR] VA_RIGPR.R1], .; 0DD ADDRESS?, : Rn REGISTER MODE PLACE OPERAND (GPR(RNUM)) IN MDR SAVE MDR IN Q BEFORE CLOBBERING IT PC REGISTER MODE PC SAVE MDR IN QREG (Rn) REGISTER DEFERRED MODE ADDRESS OF OPERAND IS PLACED IN VA TEST FOR ODD ADDRESS STE (PC) REGISTER DEFERRED MODE PC ADDRESS OF OPERAN D IS PLACED IN VA ALREADY KNOW I T'S EVEN BUT SAVE A WORD (Rn)+ AUTOINCREMENT MOQDE ¢ OET OPERAND ADDRESS FROM REGISTER TEST FOR ODD ADDRESS ALSO SAVE MDR IN Q (SP)+ AUTOINCREMENT MODE TEST FOR ODD ADDRESS NEXT/CM,0S.RED-0DD. CHECK3 H; ALSO SAVE MDR IN 0Q 20110 H; H: Q@ _M[MDR] wB<0>?, VA_R[GPR.R], NEXT/CM,OSR-GET,IND . H ;; mmm o m e m oo o cmenm ; 011] =mm e VA_ZEXT(XB) PC_P(+2, : 00D ADDRESS?, NEXT/CM,0S.RED=0DD . CHE (K1 NEXT/CM,0S.RED-AUTO.DEC 8(Rn)+ AUTO-INC DEFERRED MODE GET ADDRESS OF ADDRESS OF OPERAND TES) FOR ODD ADDRESS FINNISH IN THE COMMON ROUTINE d#Addr AUTO~INC DEFERRED MODE PC GET ABSOLUTc ADDRESS FROM I-STREAM ; TEST FOR 0ODD ADDRESS : ;1000===memmmecccsmmsncnamen———— : D_CONX.S12,S12ECIDEPT, POSH RBS-,R[GPR,R], =(Rn) AUTO-DECREMENT MODE : GET AMOUNT TO DECREMENT BY s : SP GET OPERAND ADDRESS FROM REGISTER SAVE REGISTER STATE 02DF, 0480,05Bc ,4BBC,€047,0148,4 0081,2592,5030,0047,014D,5 0881,A002,407D,8467,0000,1 v 1464, 0881,2592,5070,0050,0000,1 1498, 0¢80,0036,4030,0047,00FD,9 N SN N N N N N N N N N N ~ -y oy 2p O e ARy o By O -y - b NERT/CM.0S.RED=ADEC.PC :1100==mmmmmmm s wmmmme VA_SEXT (XB) +R[GPR.R] P( Ple2, NEXT/CM. 0S. RED=0DD. CHE CK ! ODD ADDRESS?, NEXT/CM.0S.RED=00D . CHE (K 1 RNUM.EQ.77, TEST HCONS IMMEDIATE MODE SAVE MDR BEFORE CLOBBERING [T MDR M[PC] IRDR [1] LI Y ¢ PLACE OPERAND PC INTO MDR ’ N . g}g CM,0S. RED 0DD.CHECKY: 162822 142823 162824 FOR REGISTER MODE .REGJON/CMODE ,R1L,CMODE .RTH/CMODE .R2L, CMODE .R2H./CMODE .R3L , CMODE .R3H 142816 =0 ;62821 INDEX MODE FINNISH IN THE COMMON ROUTINE Q M(MDR], NEXT/CM. OS RED=IMMEDJATE g}% CM,0S.RED~ REGPC 142819 ;42820 X{(Rn) @ADDR @X(Rn) INDEX DEFERRED MODE MUST DO THIS FOR SPASTA v mmmm - 8 NEXT/CM.OSR~GET.IND.3 805 806 CM.OS.RED=IMED: 807 PR EELEEL T EI LT E L L L ;62815 AUTO-DECREMENT MODE PC Addr X(PC) RELATIVE MQDE IS PC + DISP OPERAND OF ADDRESS CHECK FOR ODD ADDRESS VA PC+SEXT(XB)+2 PC_P(+2, 803 -(PC) OPERAND ADDRESS 1S REG + DISP CHECK FOR ODD ADDRESS 0DB_ADDRESS?, wB_RLGPR.RJ, - SIZE ; AUTO-DEC PC BY 2 ALWAYS VA_MLPCI-ZLITOL2), 802 AUTO-DEC DEFERRED MODE SAVE REG CONTENTS FOR LATER TEST FOR SPECIAL CASE FINNISH IN THE COMMON ROUTINE $101Temm et e :1110m=m a-(Rn) QOPERAND ADDRESS 1S GPR(RUNM) RNUM.EQ. 73, 801 - SIZE TEST FOR 0ODD ADDRESS NEXT/CM.OSR-GET.IND.2 800 AUTO-DECREMENT MODE SP OPERAND ADDRESS 1S GPR(RUNM) SAVE REG CONTENTS FOR LATER PUSH RBS=-, 242814 H ) Page 1053; 160ns Clock rate 1 ;101 VA RCGPR.R1.SIZ _RB=CONX( 2), 99 16281 14D2, CM 0S.RED 0DD ADDRESS?, NEXT/CM,0S.RED=0DD . CHECK 142808 ) g?g ; 2 CLOKX Rev 13.00, PUSH RBS~, £~ 02DE, P 020D, 0881,7816,485D,A407,0149,A L S U : K 21001 NN TN N N N N N N N SIS DA S I T T 0481,7815,085C,E4A7,0949,A 352+« T 0ebC, 16:30:35 VA_RCGPR.RJ.SIZ_RB=CONX( 2), O - A R R T TN e 0D81,AC10,0030,14A7,014D,4 T 0208, 0483,473C,089C,C4A7,0147,8 O ND N0 O OO OO O OO0 00 Co 00 OO CO TR 00 LD NN ~ OO N ON N B (AN — O O QO O N IS (NN = OO0 00 oWy Comp Mode Operand Specifier 0209, 0083,473C,085C,C4A7,0949,A 379+« 02DA, V= 28=NOV=83 M0 S CMODE MIC MICROZ2 P R A N A N N N o o S A A S R Al B o ol o e o R AE AP AL b ol b 2l el b el D b el el g F AURIAUNIAU AN R AL NI NN NN LS NIPONI NN NONJNU NN MDA N PO NI P NONS NONL N NN NN PO NN NN 1A% (MT098.MCX ADDRESS OK READ S1ZECIDEP], Q_MCMDR]. IROX [13 GET OPERAND [NTU MDR SAVE OLD MDR BEFORE KILLING IT . . ------------------------------ : ODD ADDRESS NEXT/]E (M. 0DD : BAD NEWS : ; H CMT098.MCX MICRO2 CMODE .MIC 1M(0O1) 28-NOV~83 Comp Mode Operand Specifier 16:30:35 L 2 CLOKX Rev 13.00, Clock rate = 160ns : C(M.OS.RED 1 ! Page 1054 | 42825 =0 142826 CM,0S.REL=0DD.CHECK: 142827 142828 ee L LT ; ADDRESS OK READ, * GET OPERAND FROM MEMORY 142830 STZECIDEP], 142829 U 149C, 0881,573D,203C,C050,014D,3 U 149D, 0C80,0036,4030,0047,00FD,9 U 14D3, 0882,0582,405(,C047,0000,1 ;zgggg 142833 ‘2§§§§ D_RLGPR.RI*CONX.SIZ,PUSH RBS+, : NEXT/CM.0S.RED=0DD . CHECK2A : T DL CUEE LR LR : 0DD ADDRESS NEXT/IE.CM.ODD Ezgggg CM.0S.RED-0DD. CHECK2A: 140838 RCGPR.RJ.SIZ_D, 14,2839 SIZELWORDT, ;zggz? IRDX (1] ¢ BAD NEWS * AUTO-INC GPR REGISTER * BE SURE TO WRITE ALL 16 BITS : 142842 CM.0S.RED=0DD. CHECK3: 142843 U 149F, 0883,573D,005C,C050,0000,1 U 149F, 0080,0036,4030,0047,00FD,9 e e LL L L DLl : 142844 READ, * 142846 :zsgzg PUSH RBS+, IRDX [1] : ; 1420845 142849 ;zggg? B UPDATE REGISTER INTO DREG SIZE DETERMINED BY INSTRUCTION RCGPR.R).SIZ_RB+CONX(2), ADDRESS 0K GET OPERAND INTO MDR " UPDATE REGISTER BY TWO SAVE STATE IN CASE OF ERRORS U 14D4, 088%,8002,403D,8487,0149,A ;zgggg ¥ BAD NEWS iiutetutteuidettetebt bttt dded ettt H PC_MLVAD, : NERT/CM,0S.RED-0DD, CHECK1 : AUTODEC THE PC Ezsggg CM.0S.RED-IMMEDIATE : , U 14D5, 0C81,7002,401D,A467,014(,0 142859 :zggg? MDR_XB PC _P(+2, NEXT/CM. IRDX : GET IMMEDIATE DATA FROM XB Y LET PC SETTLE Ezgggg CM.0S.RED-AUTO.DEC: 142864 J 14D6, 0C82,0023,085C,C4A7,0949,A 347+« 142865 142866 | | ' {]mmmmmmmme— e e ————————— : ODD ADDRESS NEXT/1E.CM.0ODD 142852 CM.0S.RED-ADEC.PC: ;42853 142854 ’ VA_RLGPR,.R1.S1Z_RB=D, S12ECWORD),0DD ADDRESS?, NEXT/CM,0S.RED=0DD. CHECK1 OPERAND ADDRESS IS GPR(RUNM) = SIZE * : TEST FOR ODD ADDRESS i CMT098.MCX 28-NOV=-83 ;42890 ;42891 ;42892 ;25332 ;462895 U D2€3, 0481,A002,4030,84A7,014A,0 ) ) U 02E4, 0881,2004,787(,(4A7,0144,2 ;462896 U 02E5, 0881,2004,787(,C4A7,014A,4 ¢ CM,05.MOD Comp Mode Operand Specifier § : (M.0S.mOD"' i 232333202220 222223223 2332233333232 3222222322322 MDR 282230222 iN 2] is always destroyed. Evaluates modify type operands and places the result in MOR. A R AR is saved in the Q-register and R MTEMPO 1is destroyed. Write access for one byte is checked RNk AR AR AN AR AR AR AR AR AR AR A R R R AR AR R R R AR R ; | AR R AR KRR Ak ke .gggéoN/lRDX.RTL.IRDX.R1H/JRDX.R2L,IRDX.REH CM.0S.MOD: ;0000===c=scmccmmcnnnmamcan—n——— : Rn Q_MCMDR] MDR_R[GPR.RJ, SET FLAGZ, IRDX (1] : | REGISTER MODE PLACE OPERAND (GPR(RNUM)) ;000 mmmmmmmmm e mm e mmnnaa e ; PC Q_MLMDR) : NEXT/CM.0S.RED-REGPC : SET FLAGS, REGISTER MODE PC { : ; TO TELL XOR ABOUT REGISTER MODE ; i ;0010~=mmmmmmecmnmmcema e ——anan. ; (Rn) REGISTER DEFERRED MCDE vA_RLGPR.RJ, ; ADDRESS OF OPERAND IS PLACED IN VA ObD ADDRESS?, : TEST FOR ODD ADDRESS NEXT/CM.0S.MOD-0DD. CHECK1 ; 1 | i 1001 =~ =rimm e ; (PO ; VA_MLPC], REGISTER DEFERRED MODE PC : ADDRESS OF OPERAND IS PLACED IN VA ALSO SAVE MDR IN Q 0BD ADLRESSY, ;010 mmc ee e me : ALREADY KNOW IT'S EVEN BUT SAVE A WORD ; ; et cne e ; TEST FOR ODD ADDRESS (SP)+ AUTOINCREMENT MODE SP 162905 O _MIMDR] VA_RLGPR.R], ; ;23385 NEXT/CM,0S.MOD-0DD, CHECK3 ; ALSO SAVE MDR IN Q ODD ADDRESS?, CZT OPERAND ADDRESS FROM REGISTER : TEST FOR ODD ADDRESS 10110 meemme o mmncmceann seseees; F(RN)+ G_MIMDR] VA_RLGPR.R], : GET ADDRESS OF 542912 WE<D>?, ; TEST FOR ODD ADDRESS SET FLAGO, NEXT/CM,O0SR=-GET.IND.1 ADDRESS OF ; INFO FOR COMMON ROUTINE OPERAND ; FINNISH IN THE COMMON ROUTINE 101 ]mmemecmccac em e naea . ; 9kAddr AUTO=-INC DEFERRED MODE PC 162916 VA_ZEXT(XB) PC_PC+2, ; GET ABSOLUTE ADDRESS FROM [~STREAM 142918 NEXT/CM.0S.MOD-0DD . CHECK ; obb ADDRESS?, ; TEST FOR ODD ADDRESS : | AUTO-INC DEFERRED MODF 142910 140917 i SAVE MDR [N QREG NEXT/CM.0S.MOD-0DD . CHECK? ;zgg}z ] : SAVE MDR IN O BEFORE CLOBBERING IT :25385 1462906 | ; TO TELL XOR ABOUT REGISTER MODE (Rn)+ AUTOINCREMENT MODE GET OPERAND ADDRESS FROM REGISTER $62901 2 IN MDR 30100====sm==mcemmmcmm e : Q_MCMDR] VA _RCGPR.RJ, ; 1462915 , Page 1055| ;42899 142900 1462911 u 02E7, 0C81,7016,485D,A447,0144,0 . CLOKX Rev 13.00, Clock rate = 160ns NERT/(M.0S.MOD=-0DD. CHECK1 $462909 U 02E6, 0841,2004,72BC.,C4A7,0144,F M2 ;2533; 142904 _ .TOC ' R 00 £ 0000 COC0 A0 COC0 00 TM N TM~ N NN SN NONONO O ONO VLS WRI = OO0 O NN N B WRG — OO ~ U RN NN NI NI NN N N DDNI N NI N NI AN RO P N €O 0o Co 0o 0 €0 €0 CO 00 O 00 €0 0o 00 00 00 00 Co O Co 00 G (=] WA ST ol aE P o) F PAY WA o R ol o ol o TR TR TR DR DU U 02E2, 0480,05BE,487(,C4A7,0144,0 : S TS u 0261, 0C51,25%2,5030,0047,014D,2 ; AR P FORRUAPR IR ; Al b : T J 02E0, 0451,2004,707C,(467,0000,1 , 16:30:35 Comp Mode Operand Specifier O CMODE MIC TM(O1) O ; MICROZ2 P : : i : [ e V28~NOV-83 Comp Mode Operand Specifier MICRO2 (MT098.MC(X s : CMODE .MIC 1M:01) U 02E8, 0C81,4737,203C,C047,014D,9 1100 === mm 42927 oDD ADDRESS’ PUSH RBS=-, ) ] 0881,7816,485D,4407,014A,0 J10]10mmcmmcnccccccccncccncnannne ; VA_RCGPR.R].SIZ _RB=-CONX(2), ;; U 02EF, 0481,A002,4030,84A7,002D,F Page 1056 42934 AUTO~DECREMENT MODE SP OPERAND ADDRESS 1S GPR(RUNM) - SIZE SAVE REG CONTENTS FOR LATER TEST FOR ODD ADDRESS @=(Rn) AUTO-DEC DEFERRED MODE SET FLAGO, NEXT/CM,0SR-GET.IND.? ;; RNUM.EQ.7% ;223%2 H -(SP) OPERAND ADDRESS IS GPR(RUNM) ; SAVE REG CONTENTS FOR LATER :; IN“O FOR COMMON ROUTINE PUSH RBS~-, ;» - SIZE TCST FOR SPECIAL CASE FINNISH IN THE COMMON ROUTINc =-(PC) :25328 R ettt e DL T L L) : VA_MCPC1-ZL1TOL2], : NEXT/CM,0S.MOD=ADEC.PC ;42941 162942 ;1100msrmmemcmm e na e c e e : VA_SEXT(XB)+R[GPR.R] P(C_P(+2, : : 0bD ADDRESS?, X(Rn) INDEX MODE OPERAND ADDRESS IS REG + DISP CHECK FOR ODD ADDRESS 142937 ;42938 142943 ;zsgzg 462947 162948 : Rl R : e 0bD ADDRESS?, ;25823 NEXT/CM.0S.MOD-0DD. CHECK? JIN0= e WB_RLGPR.RI, SEY FLAGO, ;25322 NEXT/CM.OSR-GET.IND.3 142957 ;42958 ;111 mvemmm e VA_MCPCI, ne NERT/CM.0S.RED=IMED 2%32; SEGION/CMODE.R1L,CMODE Addr X(PC) RELATIVE MODE ADDRESS OF OPERAND IS PC + DISP .; CHECK FOR ODD ADDRESS H 3ADDR aX(Rn) INDEX DEFERRED MODE ;; MUST DO THIS FOR SPASTA : INFO FOR COMMON ROUTINE RNUM.EO.??, ,25328 AUTO-DECREMENT MODE PC AUTO-DEC PC BY 2 ALWAYS : e m es P 142952 142953 YAV ; NEXT/CM,0S.MOD-0DD. CHE CK1 VA _PC+SEXT(XB)+2 PC_PC+2, ;42951 U QFF, Q440,058% ,4BB(,C047,0148,4 ;; 142939 $42921 162946 v OJED, : NEXT/CM.0S. MOD 0DD. CHECK1 sbe U 02kC, 0481,7815,085(,E4A7,094A,0 352+ e; :; ,Zgggg 14933 U 02ER, 0D81,AC10,0030,14A7,014D,8 e VA RLGPR.RI.SIZ_RB-CONX(2), 142932 i) 02EA, 0443,47%(,0B9C,C4A7,0147,8 e ;42925 142926 ¢ 02€9, 0C83,473(,085C,C4A7,094A,0 379 2 AUTO-DECREMENT MODE ;1000 ==m=memerccccc e e mn e a—- ; -(Rn) D CONX.S1Z,SIZECIDEP], ; GET SIZE T0 DEC_REGISTER BY POSH RBS=-,RLGPR.R], ;; SAVE REGISTER STATE NEXT/CM.0$.MOD-AUTO.DEC : ;42919 142920 142921 ,2%33% 162924 , N 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : CM.0S.MOD e H; ;; ———— ; : H TEST FOR REGISTER MODE FINNJSH TN THE COMMON ROUTINE #CONS IMMEDIATE GET ADDRELSS OF MODE IMMEDIATE DATA ,R1H/CMODE .R2L , CMODE ,R2H/CMODE .RY* , CMODE LR3R 42963 (M,0S. MOD 0DD. CHECK1: ;42964 242965 4 14A0, 0081,2592,5070,0056,0000,1 42966 242967 142968 42969 J 14A7, 0080,0036,4030,0047,00FD,9 ;62970 00 (Qemmmeemesmccc e s e —— : ADDRESS OF READ.MOD.SIZE[IDEP] H GET OPERAMY Q@ _M[MDR], IRDX [1] H: : {Jmmemeccean: cum—— [y wrm——— NEXT/IE,CM,0DD ; SAVE OLD MC." 00D ADDRESS BAD NEWS ' . MDR ::-ORE KILLING IT : H CMT098.MCX MICROZ CMODE MIC 1M(01) 28-NQV-83 16:30: 35 Comp Mode Operand Specifier 3 CLOKX Rev 13.00, : CM,0S.MOD Clock rate = 160ns Page 1057 142971 =0 :4972 (M, 05,MOD=0DD. CHECK2: 149973 " [Qemmmmmmmmtm e e m e m e m—————— ; ADDRESS OK U 14A2, 0881,573D,203C,C054,014D,7 U 14A3, 0(80,0036,4030,0047,00FD,9 142974 READ.MOD * ,253;5 NEXT/CM.0$.MOD=0DD. CHE CK2A ; 142975 142976 D_RCGPR,RI+CONX,512 POSH RBS+,SIZECIDERS, P 1 T4 S ;25329 eS — ; 0DD ADDRESS NEXT/IE CM.0DD Ezggg% CM.0S.MOD=0DD. CHECK2A: J 14D7, 0882,0582,405(,C047,0000,1 READ OPERAND FROM MEMORY Y INC REGISTER AND SAVE IN D ' SAVE STATE OF REGISTER i BAD NEWS o 42981, RLGPR.R1.SI1Z_D, ' UPDATE REGISTER :25329 -0 1ROX [13 ; SIZECWORD], 142985 * WRITE ALL 16 BITS ;42988 CM.0S.MOD=0DD. CHECK3: U 14A4, 0083,573D,005C,C054,0000,1 i) 14AS, 0(80,0036,4030,0047,00FD,9 42989 142990 142991 142992 25332 | 142995 ;(~==cemdaciesceesusmmscsss==a==- ; ADDRESS OK READ.MOD., GET OPERAND INTO MDR RCGPR.RI.SIZ_RB+CONX(2), ' UPDATE REGISTER BY TWO PUSH RBS+, ' SAVE STATE IN CASE OF ERRORS IRDX [13 : i '2583? emmmm e ——— mmmmmmmmmmw—sas—e; NEXT/IE CM.0DD : ODD ADDRESS BAD NEWS 142998 CM,0S,MOD-ADEC.PC: _ (I 14D8, 0887,B002,403D,8487,0149,A 362999 143000 .zggg; T jemecmsacasusccnenennaaean ———-; BC_MCVAT, * NEXT/CM.0S.RED=O0DD. CHE CK1 : AUTODEC THE PC '2%882 M, 0S.MOD-AUTO.DEC: U 14D%, o OUBZ,0023,085(,C4A7,094A,0 347+ 143005 VA _RLGPR.R).S1Z_RB=D, * OPERAND ADDRESS IS GPR(RUNM) = SIZE 143007 NEXT/CM.0S .MOD=0DD. CHE (K1 ; 143006 SI7ECWORD],0DD ADDRESS?, * TEST FOR ODD ADDRESS ; (MTO98.MCX (MODE .MIC H 883 .T0C ' 63010 SOB0TT s hr A ;43012 ; b 0C87,7016,485D,A4A7,0144,6 TR Page 1038 Comp mode Operand Specifier h R AR MDR R Rk kA ¢ CM.0S.WRT" kR d kA ok Aok A R R Rk R AR AR A AR AR KRR RN KRR AR is saved in the Q-register and is always destroyed. . Evaluates write and address type operands and places the result in MDR. MTEMPO also gets the result No access R AR AR R is checked RN AR AR AR R RRA AR R AR RN KA ARk Ak kA ko kk 017 N TSN N (NN = O OO N B DS AN WA IS D5 B8 D IS 8 O TN WAV N O NN = O OO NN 0 0 NN 02 02 02 02 02 02 S 02 = O N0 00 N O 02 n — 019 =0000 020 CM.OS.WRT: 02 ;0000 ==mecmmmnmem e e m——————— ; O N A ; 3 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns ¢ (M,0S.WRT 018 .REGION/IRDX.R1L,IRDX.RIH/IRDX.R2L ,IRDX.R2H VAN 02F6, 004F,2004,72BC,C4A7,014A,E 016 OO0 02fF5, 0087,2004,787(,C4A7,014A,A 015 QOOQOOOOOOCOOCOOCOOOOOOOOOOO 02F4, 0887,2004,787C,(4A7,014A,8 e 02F3, 0487,A002,403D,84A7,014A,6 ... Lemd < < < O U 02F2, 0486,058E,487C,C4A7,014A,6 S T T Y u 02F1, 0859,2592,5070,0047,0000,1 T T e O S 4 02F0, 0859,2592,5070,0047,0000,1 P PR P LR TR TR TP T RY :43013 014 U 02F7, c MICRO2 1M(01) 28-NQv=-83 Comp mode Operand Specifier R A R R A A N N S S N N aF 2T o i o S O g ) e R Al aP Al P Al o o o ol b b aF aF aF 2P b o L AT NN N A A A LA N NN U AT U N Lt U N L U U LN U N O A NN U N U LN N N N AT O N N N N N N N A e : Q_MIMDR] SET FLAGS, IRDX [1] . :; : ---------------------------- Q_MCMDR] SET FLAGS, IRDX [1] 00D _ADDRESS?, NEXT/CM,0S,WRT=0DD, CHECK1 PC REGISTER MODE PC : SAVE MDR_IN Q@ TO BE CONSISTANT ; ----------------------------; VA MCTEMPO]_RLGPR.R], REGISTER MODE Rn SAVE MDR IN Q TO BE CONSISTANT SET FLAG3 TO INDICATE REGISTER MODE SET FLAG3 TO INDICATE REGISTER MODE (Rn) REGISTER DEFERRED MODE ; ADDRESS OF OPERAND IS PLACED IN VA ; TEST FOR ODD ADDRESS --------------------------- : VA_MTEMPO_PC, ; (PO) REGIST ADDRESS OF OPERA [ e e e e L LR D DL e L : Q_MDR VA_MTEMPO_RLGPR.R1, ; (Rn)+ AUTO] GET OPERAND ADD NER1/CM,.05,WRT=0DD.CHECK1 obb ADDRESS?, NEXT/CM.0S.WRT=0DD.CHECK? ; ALREADY KNOW IT' ; TEST FOR ODD AD NEXT/CM,0S.WRT-0DD.CHECK3 OM REGISTER ; ALSO SAVE MDR | --------------------------- ; Q_MDR VA_MTEMPO_RLGPR.RJ], ; 06D ADDRESS?, RRED MODE P(C LACED IN VA BUT SAVE A WORD (SP)+ AUTO! GET OPERAND ADD ; TEST FOR ODD AD MENT MODE SP FROM REGISTER ; ALSO SAVE MDR IN I e L L LT P LT L ; G_MDR VA_MTEMPO_RLGPR.R], ; 8(Rn)+ AUTO-INC DEFERRED MODE GET OPERAND ADDRESS FROM REGISTER WB<C>?, NEXT/CM,OSR-GET.IND,1 TEST FOR ODD ADDRESS FINNISH IN THE COMMON ROUTINE SET FLAGT, ; ; ; INFO FOR COMMON ROUTINE ----------------------------: arAddr AUTO-]NC DEFERRED MODE PC ; GET_ABSOLUTE ADDRESS FROM I-STREAM s TEST FOR ODD ADDRESS CrT098,.MC X (MODE . M1 ¢ 28-NOV-83 Comp mode Operand Specifier MICRO2 Mo 16:30:35 ¢ D 3 CLOKX Rev 13.00, Clock rate = 160ns CM.OS.WRT i Page 1059i 1 21000 e e D_CONX.S1Z,S1ZECIDEPT, POSH RBS-,RLGPR.R], NEXT/CM,0S . WRT=AUTO.DEC OO NN IS AWRN = O D00~ oOOO OOOOOOCOOOD 0o~ ~ NNNNNNNNOONO T O PR 02FD, 0087,7816,401D,4407,014D,A a2k N AN N P T T [ 081 R 02FC, 0487,7815,001C,E4A7,014D,A O S o o NN N U P 02FB, 0D81,A(10,0030,1487,014D,C o A A 02FA, 0C4B,473(C,0B9C,(4A7,0147,8 [P U P S A A A N U 02F9, 0C83,473C,085C,C047,094A,C 379% ; R[GPR R1.SI1Z_RB-CONX(2), NEXT/(CM.0S.WRT=0DD.CHECK4 : ----------------------------- PUSH RBS-, ODD ADDRESS?, : ; SET FLAGI, RNUM. EQ., 77 NEXT/CM.OSR=GET. IND.2 : : : 5107 mmm e e : PC_MLPCI=ZLITOL2], : NEXT/CM.0S.WRT~ADEC.PC AUTO-DEC DEFERRED MODE : OPERAND ADDRESS IS GPR(RUNM) - SIZE : SAVE REG CONTENTS FOR LATER : INFO FOR COMMON ROUTINE TEST FOR SPECIAL CASE FINNISH IN THE COMMON ROUTINE =(PC) DEC PC AUTO=DECREMENT MODE PC ;1100=mmmmmmmmmmmmeommmcommemeee X(Rn) INDEX MODE VA MTEMPO SEXT(XB)+R[GPR.RT PC_P{+2,; OPERAND ADDRESS 1S REG + DISP NERT/CM.0S.WRT=0DD. CHECK A ; ;1101 - mmm e e ; UA_MTEMPO_PC+SEXT(\@)+2 PC_PC+2,; Addr X(PC) RELATIVE MODE OPERAND ADDRESS IS REG + DISP 11110 === mmmemmmm e ————— : UB_RLGPR.R1, : @ADDR @X(Rn) _ INDEX DEFERRED MODE MUST DO THIS FOR SPASTA RNUM. £Q. 77, NEXT/CM.0SR-GET. IND.3 TEST FOR REGISTER MODE FINNISH IN THE COMMON ROUTINE NEXT/CM.05.WRT=0DD. CHECK1ATM ; : : : i1]z mm s m e ; Q2FF, 0487,A002,403D,84A7,014D,D SAVE REG CONTENTS FOR LATER TEST FOR ODD ADDRESS :1010=mmmmmmmmmmmm oo mmoc e : @=(Rn) VA _RLGPR.R].SI1Z_RB=CONX(2), PUSH RBS=, SET FLAGI, 02FE, 0C48B,05BE,4BBC,C047,0148,4 ; SAVE REGISTER STATE AUTO~DECREMENT MODE SP ; =(SP) ;; OPERAND ADDRESS IS GPR(RUNM) - SIZE 100 E Al aF AR A N LM U YR 02F8, 0481,4737,203C,C047,014D,E e ; =(Rn) AUTO=-DECREMENT MODE : SAVE SIZE TO DEC REGISTER BY VA_MTEMPQ_PC, NERT/CM. 03, WRT~IMED : : INFO FOR COMMON ROUTINE HCONS IMMEDJATE MODE GET ACTUAL ADDRESS +REGION/CMODE.R1L,CMODE.RTH/CMODE .R2L. .CMODE .R2H/CMODE . R3L , CMODE ,R3H CM.0S.WRT-GDD.CHECK1A: 14DA, 0485,8592,4870,0047,014A,6 Nttt ettt el bl bt b b RETEMPO] MUVAD, ; 0DD ADDRESS? : PUT VA IN TEMPO TEST FOR ODD ADDRESS ; CMT098 . MCX CMODE .MIC MICROZ E 3 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns t CM,OS.WRT 1M(01) 28-NQV-83 Comp mode Operand Specifier Page 1060? ;43105 =0 ;43106 CM.0S.WRT=0DD. CHECK1: 143107 143108 14A6, 0881,2592,5070,0047,0000,1 T ;2%}?3 IRDX [1] L 14A7, 0C80,0036,4030,0047,00FD,9 jQmmmcmmcmesseascaessseeesuam——. ; ADDRESS 0K 4 MCMDR], SAVE OLD MDR BEFORE KI!LING IT ;zg}}g i : N D ; OPD ADDRESS NEXT/IE. CM.ODD ¢ BAD NEWS §63114 CM.0S.WRT=0DD, CHECK2: 243115 143116 T 143117 ;2%}}3 14A8, 0081,5737,203C,C047,014D,8 POSH RBS+,RLGPR.RJ, NEXT/CM.0S.WRT-0DD- CHE CK2A 143120 14A9, 0C80,0036,4030,0047,C0¢D,9 femmem o s mmem e mmme b CONK.S12,51ZECIDERT. e ; ADDRESS OK Y GET SIZE TO ADD TO REGISTER * SAVE REGISTER STAT: : jlemmememmemmmeeemseescceeceeees : ODD ADDRESS ;2;}5; NEXT/1E.CM.ODD * BAD NEWS Egg}gz CM.0S.WRT~0DD. CHECK2A: 143125 14DB, 0C82,0021,005¢,C047,0000,1 RLGPR.R].SIZ_RB+D, ;2;}59 0 ' UPDATE REGISTER SIZECWORDY, IRDX C13 : 143128 CM,08. WRT~ nno CHECK3: 14AA, 143109 143130 143137 :2%};5 0883,573D,005C,C047,0000,1 43134 14AB, 0C80,0036,4030,0047,00FD,9 ;zg}gz 1 Qeemmsomemmee—em—mem—cem—ae——- : ADDRESS 0K R[GPR R).SIZ_RB+CONX(2), * UPDATE REGISTER BY TWO PUSH RBS*, ' SAVE STATE IN CASE OF ERRORS 1RDX [1] : PR LE L NEXT/IE.CM.ODD L L L ER : ODD ADDRESS : BAD NEWS ;43137 CM,0S.URT=0DD. CHECKA: U5 1 K143139 14AC, 0C87,2004,707C,C4A7,0000,1 14AD, :2%}29 143142 0C80,0036,4030,0047,00FD,9 ;2%}22 Y Ml — ; ADDRESS OK O_MDR VA_MTEMPO_RLGPR.RI, " SAVE MDR AND LOAD VA AND TEMPO IRDX [1] : jlem—emecmmmcmeeeeecmcseectnien : ODD ADDRESS NEXT/1E.CM.ODD : BAD NEWS 143145 CM.0S.WRT-ADEC.PC: Y3146 143147 U 14DC, 0481,A002,403D,84A7,014A,6 ;2;}23 jemmesiedcmmesmceseseemessecseess : VA MCPCT, : NERT/CM.0S.WRT=0DD. CHE CK1 : PLACE ADDRESS IN VA 32%}29 CM.0S.WRT=IMED: 143152 U 14DD, 0881,7802,401D,A047,014A,6 :2%}22 WB_SEXT(XB) PC_PC+2, NERT/CM.0S.WRT=0ODD, CHE CK1 * PUSH PC PAST IMMEDIATE DATA * WASTE A CYCLE Ezg%gg (M.0S.WRT=AUTO.DEC: 143157 U 14DE, 0C82,0023,085C,C047,074A,( 347+ 143158 :43159 ACGPR.R).$12_RB-D, SIZECWORDI,0BD ADBRESS?, NEXT/CM, 05 .WRT-0DD . CHE (K4 * OPERAND ADDRESS 1S GPR(RUNM) = SIZE * : TEST FOR ODD ADDRESS . : CMT098.M{X CMODE MIC MICRO2 1M(01) 28-NOV-83 16:30:35 Comp Mode Operand Specifier :2%}2? .10C "' ¢ F 3 E CLOKX Rev 13,00, Clock rate = 160ns Page 1061 CM.OSR INDIRECT COMMON ROUTINE Comp Mode Operand Specifier : (M.OSR INDIRECT COMMON ROUTINE'' 143162 =0 :2%}22 CM.OSR-GET.IND.1: 143145 143166 143167 ;43168 U 14AE, 0483,573D,051C,€050,0148,8 ;2%}93 143171 U 14AF, 0C80,0036,4030,0047,00FD,9 ;2%};5 READ * GET ADDRESS OF ADDRESS OF OPERAND FLAG<1=057, ¢ RCGPR.RJ.SI1Z_RB+CONX(2 PUSH RBS*+, © ALWAYS AUTO-INC BY 2 * SAVE REG INCASE OF FAILURE NEXT/CM.OSR.IND=TEST.FLAG P TEST WHICH ROUTINE e CE LR L L LR LT ; NEXT/IE.CM.ODD : 143174=00 +43175 CM.OSR=GET.IND.2: 163176 ] 163177 U 1478, 0081,B002,42BD,8047,0148,4 ;2%};8 143180 =10 143181 U 147A, 0081,2592,5030,0047,014D,F U 1478, 0081,8002,428D,8047,0148,4 et LR ; NEXT/CM.OSR~GET.IND.TST ' VA<O>?, 1 10=mmm e ————— ; PC MODE 0_MIMDRI, :zg}gg NEXT/CM.0OSR=IND.DEC.PC 143184 143185 D VA<0>?, ;2§}§9 NOT PC MODE * TEST FOR ODD ADDRESS ; ; SAVE MDR e SRR R ; NOT PC MODE ; TEST FOR ODD ADDRESS NEXT/CM,OSR=GET.IND.TST ; 43188 CM,OSR=IND.DEC.P(: :43189 143190 vttt el bttt H PC_MIPCI-ZLITOL2], ; AUTO-DEC THE PC ;2;%3; NEXT/CM.OSR.IND-TEST.FLAG 143191 J 14DF, 0581,AC10,0530,1487,0148,8 FLAGST=0>?, : TESTWHICH ROUTINE 143194 =00 U 1484, _ 0481,7815,029C,E4A7,0948,4 349+ 143195 CM,OSR=GET.IND.3: 143196 L 163197 VA_SEXT(XB)+R[GPR.R] PC_PC+2, ; : :2§533 ; 143198 143201 =10 1463202 143203 ;zgggg U 1486, 0881,7816,429D,A407,0148,4 143206 143207 U 1487, 0481,7815,029C,E4A7,0948,4 349+ $43208 ;43209 wB<0>?, NEXT/CM.OSR-GET.IND.TST ¢ NOT PC MODE GET ADDRESS OF ADDRESS OF OPERAND TEST FOR ODD ADDRESS e O ; PC_MODE VA_PC+SEXT(XB)+2 PC_P(+2, wa0>?, NEXT/CM.OSR=GET.IND.TST : GET ADDRESS OF ADDRESS OF OPERAND : : TEST FOR ODD ADDRESS ;11ecemmsccnuenansccnsenncancan ~=; NOT PC MODE VA_SEXT (XB) +R[GPR.R] PC_PC+2, : NEXT/CM,OSR=GET.IND,TST : we<0>?, GET ADDRESS OF ADDRESS OF OPERAND ; TEST FOR ODD ADDRESS : H CMT098.MCX CMODE MIC G MICROZ 1M(OD) 28-NQV=-83 Comp Mode Operand Specifier 1 3 16:30:35 CLOKX Rev 13.00, (! ¢ CM.OSR INDIRECT COMMON e = 160ns Page 1062? | :43210 =0 163211 CM,0SR~- GET IND,TST: ;43212 143213 143214 U 14B4, 0481,2592,5530,0050,0148,8 U 14B5, 0080,0036,4030,0047,00FD,9 163215 :2%5}9 263218 ;2%%38 j0sssemssessccccncnonncunonne e; Q MLMDR], ;; SAVE MDR BEFORE DESTROYING FLAG1~057, TEST WHICH ROUTINE READ,SI1ZECIDEP], NEXT/CM.OSR.IND-=TEST.FLAG H GET ADDRESS OF OPERAND ;; )ememmmcemmccmccccscecnocens e; NEXT/IE CM.0DD ; 143221 ;63222 =00 ;43223 CM.OSR. IND TEST.FLAG: 043224 163225 U 1488, 0(81,2016,485D,84A7,0148B,C U 1489, 0481,2016,485D,84A7,014B,E U 148A, 0487,2016,485D,84A7,014C,0 ;43226 ;Q0msssesesacccccancatnvoconen. : VA ZEXT(MCMDR]), : SI7ELWORD],0DD ADDRESS?, ; 163229 ;63230 L ettt b Lot H VA ZEXT(M[MDR]), ;; FROM 0S.MOD PUT ADDRESS OF OPERAND INTO VA TEST FOR ODD ADDRESS AND WROD INST 163234 163235 L e L L D LD B L L AL L L UA_MTEMFO_ZEXT(MDR}, : SIZECWORDT,ODD ADDRESS?, ;; NEXT/CM.OSR=WRT.END ; FROM OS5 .WRT :zzggg 163231 :2%5%% ;63236 :2%5%; NEXT/CM, OSR=RED, END SIZECWORD],0DD ADDRESS'7 NEXT/(M, 0SR=MOD. END : ; ; FROM 0S.RED PUT ADDRESS OF OPERAND INTO VA TEST FOR ODD ADDRESS AND WROD INST PUT ADDRESS OF OPERAND INTO VA TEST FOR ODD ADDRESS AND WROD INST ;43239 =0 :43240 (M, OSR~RED END: 243241 U 148c, 0880,0036,4070,0050,0000,1 U 148D, 080,0034,4030,0047,00FD,9 1463242 ;2%522 jQemmeesssecsenccenesen e e -H READ SI1ZELIDER], IRDX [1] 143245 P ;2%529 NEXT/IE.CM.ODD H GET ACTUAL OPERAND ; [T —— mmm s — : ;63248 =0 163249 (M, OSR—MOD END: 263250 J 14BE, 0080,0036,4070,0054,0000,1 U 148F, 0C80,0036,4030,0047,00FD,9 Qmesmsscssmscnsssenunnnn e~ : 63251 READ MOD,SI12ECIDEPT, : ;zgsgg NEXT/JE (M,0DD : 263252 IRDX [1] : GET ACTUAL UPERAND ;43257 =0 243258 (M, IRDX: 2463259 (M,OSR~ WRT END: iy 140, 0880,0036,4070,0047,0000,1 J 14¢Y, 0080,0036,4030,0047,00fD,9 ;63260 2463261 143262 ;43263 163264 sQ===sssssmessessscccconocnnocen : IRDX (M : NOTHING TO DO lessesccccoccccnnnnsoncncneonee : NEXT/lE (M,0DD ; CMT098.MCX CMODE .MIC MICROZ MO (ompatibility Mode 28-NOV~83 o- Zw Compatibiiity Mode — (=3 o— 160ns i Page 1063 : Ird Rom Definition'' —— - o x =3 @@ -~o-[a¥]-— ~~[2]&)[[-~--~-fea) oT T LoT LoT e L O e LD s L D e LMLoW e TTR e TS o Vo B e ¥ T e TB o eS e L S e T U 0 MO0 OV O U OU O OU00 U OJ 00U O AU 00U (U A0 0 AN QU A O O DU O UMMM MM A M MM M MMM M M IV MY ;43265 .T0C H 3 16:30:35 CLOKX Rev 13,00, Clock rate : Ird Rom Definition — o [7,] [ OO EE .05.M0D .BIC=REG e oo Vv Wi ao [c M.OS.RED fc M.0S.RED [c M.0S.RED [c M.0S.RED 55 56 —N-t~y E 1 1TE o.« [y TE .0S.RED BIT-REG —.ro TM o “w <@ e e cv o oo X “w D.IRD C=MEM - ©e} %, :BICB,2 1. ] ;8l1s.1 ;8188.,1 —E D.IRD o—y AD xo oa [WTo|an — 1 ;BIS,2 D.IRD |]) — WX a fes)<L— T-MEM JBIC,1 -~ s wE <— S~MEM ;BlsB,¢ ] :BIT,? .BIT=REG .0S.RED .BIT=REG TN oF 1 ] .BIT=-RES — [y <OS.RED COEX [Tt z2Z o —_,Os AD.]RD 1C-MEM oPy -~ i [y X .0S.RED [} (o=1- LI .BIS=RtG 0S.M0OD [CM.BIS-REG M .0S.MOD [y 344 [RST wgiu . oOM<ILC —y - — wE oa <— T~MEM D.IRD [TSWNy Wweuiey s xow . Tf @z .BIC~REG FE X J —s oo .0S.MOD 160ns ~ [2a} bl J J 163351 -—2 ET1 o(5] 1 —- — xox Z2=Z 3 1 CLOKX Rev 13.00, Clock rate 16:30:35 1rd Rom Definition ewE ——wE aFf QaF Oo- cavecanre —o @o— w o @a e e cecatn UMD Qe OO — MICROZ WX WwE — wE 1M(01) 28=NOV=83 : Compatibility Mode CMT098.MCX (MODE .MI(C ;BITRB,1 1, ] ;8118,°2 ;BLE ;BLOS w[}]= page 1064| .3, ;43376 143377 ;43378 012: [gnlan] (ST wius [zafos) [=Y=1 :43379 018: ;43381 ;43382 0(3: xELt ][SNY ;643385 011 ,63388 ;63389 ;43390 01C: xcE OE — LI M.BRCND ;433N 01D —_ EE ][as] RCND 143394 [ CNT? [=Y=) ~ra g — i [2 ]24] Qo o [aYa) aa |SR wuy zafes) aon — aa TM ~—oIy ao aa JBNE M o— Lot M —_ty — Wi DD aa oo [aYa) :BR L]Lo (W] ww aa]ea] [~Y=) —4[sfs an HEY k0]AD.IRD — [2a M g — W 0aQ —— ;BVS QF2: [N} wi) — aa [Tam it []9 — ;43397 OF6: [|Lan e @aq [=Y=) oo e ;43400 082: 08A: REG [CM.CLR-REG MEM [CM.0S,WRT -3 ~0 434627 ;63428 [T .BAD,IRD . (LR=-MEM aa — o [~YaY 3. ] oo [aYa) * [2afza) [=Y~) ao ao 1. ] [LM,CLR-MEM 1L(M. (MP-REG 1 [CM.0S.RED 052 o SO EE .0S.RED £6 [(M.05.RED [+ E M [CM.OS.RED o al < REG [(M.OS.RED MEM [{M.OS.RED (=) [+e] M REG [CM.COM-REG MEM [CM.0S.MOD 088: REG [CM.COM=REG MEM {CM.0S.MOD <oM (09B: REG [(M .DEC=REG MEM [CM,0S.MOD xE LDEC=REG e EE .0S.MOD ] ] JCMP,2 [(M.CMP=-REG [(M.0S.RED ] ] [Wyw—"] EEX .05.RED ] ] .(MP-REG ] J —_— . < COM-MEM ] ] [ST.] wF1. = OM-MEM .BAD, IRD s CC=SET JCMP ] CIE.BAD.IRD J (CM, CMP-MEM .CMP-REG o ~T < s CC~CLR ;CLRB 11 1E.BAD.IRD J ;BPT ¢ CLR [anTanl =T RwB ac 1 [aY-) ST} ;CMPB,1 .BAD.IRD . CMP-MEM BAD,TRD . CMP=MEM 3, ] ~ il s 0 Sa o [aY=) :CMPB,?2 :COM ; COMB .BAD.IRD rars [P DD [~Y=) oo —rs ) UO———G— .CLR=-REG 042: ~N PRI .BAD,IRD .BRCND i = .05, WRT [efs[~¥ =)q —_— wE —_0 WE ~ M ~3 - [T _— Wiy [anlan] [WwTE.3 RWB —_— aa [~Y=} [1an] =X 263402 ;43403 143404 143405 ;63406 143407 ;463408 ;43609 xE o wE ;43401 AD. IRD .BAD,IRD AD . IRD — ;63398 ;43399 3 ] — [ wE 163395 143396 .CM.BPT M.BRCND OE ;63392 ;43393 e M.BPT OE 143383 ;63384 —t — ey wus .BAD.IRD (20121} —— ;BPL —— () Ird Rom Definition O ;63380 .BRCND .BRCND : CLOKX Rev 13.G0, Clock rate = 160ns CNTO IRD1 . OE . Compatibility Mode J 16:30:35 [l 163374 ;43375 FE 28=-NOV=-83 ——y CMODE ] 1M(01) —— [T {M1098, ’ MICROZ .DEC ;DECB i Page 1065| i ; CMT098.MCX : (MODE . M[C 143629 143430 MICRO2 1M(01) Compatibility Mode 28=«N0OV=83 1RD1 : 16:30:35 K 3 CLOKX Rev 13.00, Clock rate = 160ns Ird Rom Definition CNTO CNT1 143431 062: REG [CM.NS.RED 1 [CM.DIV 1 [IE.BAD.IRD 1. :DIV,1 43434 072: REG [CM.OS.RED 1 [CM.DlY 1 [1E.BAD.IRD 1. DIV,2 143637 088: RES [IE.CM.EMT 1 [IE.BAD.IRD J CIE.BAD.iRD 1, JEMT REG [IE.CM.EMT 3 [IE.BAD.IRD J [1E.BAD.IRD 1. JEMT,2 REG [JE.CM.EMT 1 CI1E.BAD.IRD 1 [IE.BAD.IRD 1. JEMT,3 REG CIE.CM.EMT 3 [IE.BAD.JRD J [I1E.BAD.IRD 1, JEMT,4 REG [CM.INC-REG J [IE.BAD.IRD ] CIE.BAD,IRD J. s INC REG [CM.INC-REG J [IE.BAD.IRD 1 [IE.BAD.IRD 1, ;INCB 1, ;10T :f%fi%% ;2§z§2 :zgzgg 163640 089: 143443 098: 143446 099: 3’431.49 092: 143452 QOA: 143455 QC4: :2%22; :zgzzg ;zgzzg ‘2%22? 2%222 :43223 N 143458 OF1: 143467 OE3: 143464 0FS: 143467 OE7: 143470 ;2%228 :2;22% 2%222 MEM [CM.US.RED MEM [CM.OS.RED MEM CIE.CM.EMT MEM [IE.CM.EMT MEM C1E.CM.EMT MEM CLE.CM.EMT MEM [CM.0S.MOD MEM [(M,0S.MOD REG [1E.CM.10T J [CM.DIV 1 ECM.DIV ] CIE.BAD.IRD 3 CIE.BAD.IRD 3 [IE.BAD.IRD ] CI1E.BAD.IRD 1 [Ch. INC=MEN J [CM.INC-MEM 1 CIE.BAD.IRD 3 CIE.BAD.IRD J CIE.BAD,IRD I CIE.BAD.1RD 3 CIE.BAD.IRD J CI1E.BAD,IRD 3 CIE.BAD.IRD J [IE.BAD.IRD ] ] i ] ] i ] ] MEM [IE.CM.IOT ] CIE.BAD.IRD 1 [1E.BAD.IRD 7 [IE.BAD.IRD REG [CM.JMP-REG 1 [IE.BAD.IRD 1 [IE.BAD.IRD 3 C1E.BAD.IRD J 1. NP1 REG [ (M, JMP-REG ] LIE.BAD.IRD 1 [1E.BAD.IRD 1, JMp,2 REG [CM.JMP-REG 3 [1£.8AD.IRD 1 [1E.BAD.IRD 1. NP3 MEM [CM.0S.WRT MEM [CM.0S.WRT MEM [CM,0S.WRT 1 LCM,JMP-MEM J [CM,UMP-MEM 1 CIE.BAD.IRD J LIE.BAD.IRD i i ] MEM [CM.0S.WRT 1 [CM.IMP=MEM 1 [IE.BAD.IRD 1 [1E.BAD.IRD 1, JJMP L4 080: REG [(M.0S.WRT J [CM.JSR ) [1E.BAD.IRD 1, :JSR,1 43473 081: REG [(M.0S.WRT [CM.JSR J [1E.BAC.IRD 1, (ISR,2 143476 REG [CM.OS.WRT 1 [LM.JSR 1 L{E.BAD.IRD 1, ;JSR,3 REG [CM.OS.WRT ) [(M,JSR 3 [IE.BAD.IRD 1, ISR,4 REG [(M.u3.WRT 1 [CM.JSR ] LIE.BAD.IRD 1, ;JSR,S ‘2%283 ‘f%fi;} ‘Z%Z;Q ;2§2;g 090: 143479 091: ;Zgzgg 1436482 43483 OAD: REG [(M,JMP~REG J CCM. JMP-MEM ) C1E.BAD.IRD MEM [CM.O0S.WRT MEM [CM.OS.WRT MEM [CM.0S.WRT MEM [CM.OS.WRT MEM [CM.OS.WRT 1 1 1 ] 1 [LM.JSR [CM.JSR [CM.JSR [CM.ISR {CM.JSR 3 [1F.BAD,IRD 1 [IE.BAD,IRD 3 CIE.BAD.IRD 3 3 1 CIE.BAD.IRD CIE.BAD.IRD [IE.BAD.IRD ] ] ] ] ] ] o Page 1066 { ooyo .( ; 1 4: oi 4: H(-]|M iT_M Po O- ~ E- != 143484 0AY: 081: +0S.WRT .0S.WRT ] ] [CM.JSR [CM.JSR s g Pt 0AD: REG [CM.MFPD-REG MEM C[CM.OS.RED ] ] —C .MFPD=MEM [guTan] [T} [ES]IE] [a ]es] [=Y=) o aa e W MFPI=MEM OE |[ — :43500 263501 UB(: REG [C M.MTPD MEM [CM.0S.WRT 0B4: REG [C (M. MTP] MEM [CM.OS.WRT ~cencmyes —OVUO0M 060: 070: Sal < -o ey e] oo ~ o (2] o< < p| ] B}[ .BAD.IRD MTPI . ’ J J i AD.IRD .BAD.IRD . 1. ] J 11 {M.0S.WRT JLIE .BAD.IRD J [CM.MOV-MEM 3, J [(M.MOVB-REG 1 [ M.0S.WRT 3 ] ]l oo P wiw [=Ya) J J [CM,MOVB-REG [CM,0S.WRT J [IE.BAD,IRD J [CM.MOV-MEM REG [CM.OS.RED MEM [CM,OS.RED ] ] [CM. ML [Cm. muL 1 J [CM.MUL [CM,MuL REG [(M.OS.RED MEM [CM.0S.RED = farpa oo wy o w[=Y =Y —ta REG [CM.NEG-REG MEM ((M,0S.MOD i 1 ] [CM.MOV-REG D.IRD wE o=<L G-MEM . —o Xw [ack AD.IRD .MOV-MEM . AD.IRD . DE OV-MEM o j=] (=) < < .H [T ww f=] o ~ [ewpe—; wadg .BAD,IRD wily [safes) [~Ya) — [+g~d[=>Y=) [=Y=} . BAD, IRD i MTPD ’ JMov,1 ] ] 1 sMovs, 2 ;MOVB, N JMUL [1) _ DD ao 1:1(ssg[~Y=Y e — wuw QD . e JMUL,2 ;NEG —o mr o D, sa 1 [=Y=) NEG-REG .08.MOD JMFPD sMIP] [SETI8] o ao — y oo aa i JSR,. sMFP] AD.IRD 3 ] [T —t pEs j=4 N > 2 M e Tty terte etatn -~ ~F o .BAD.IRD MTPD ;JdSR,6 . J [CM.MOV-REG 1t (M.0S.WRT 041: 051 Lo AD.IRD .BAD, IRD wius Do AD. IRD — wE ;43509 ;63510 ] ] —_— wjres [ea]ae] me ;43508 DX ;43506 163507 .BAD, IRD -4 [s OE (S :63503 — : []Ie [SEW] uJjw (2 1} «BAD.IRD 1. ] JJSR,7 [CM.JSR [CM.JSR 0AS: :43504 143505 an ] ] 143497 ;43498 +43502 ao REG [CM.0S.WRT MEM [CM.OS.WRT xE 160ns CNT? 0QBO: ' ;43499 CLOKX Rev 13.00, Clock rate [anTan] — s — —_— wE —_— WwE wE ¢ )b mNoGO aibd w CNTO —_ ;43488 ;43489 ;63490 ;63491 ;43492 43493 143494 43495 :43496 o —— ;43486 143487 IRD1 > LE ;43485 —£ EM (oY) [+E]oV Ex —~ e— + --~OE< N— “~ ’ 1. ] sNEGB 3 [IE.BAD.IRD J CIiE.BAD.IRD sRESVRD [anlal [S] w s [s]oa) sRESVRD ] ] e [T wus .BAD. o IRD AD.IRD %. JRESVRD Page 1067| 3 . . . . ’ . 2“ L = o~ LA(=] Laal (=34 wy D == ~—re ¢ — = O o o oo oo @ o o o o L oo oo oo oo oo oo oa@ oo — Lt Laal L] o -~ (o} APL 4 o« Lol o c w» Page 1068 (MODE IRD1 ;63594 ;63595 ;43596 0c4: :03599 025 [T S81%8] ao ac oy— an c REG Ll .CM.RESOP MEM [! t.CM.RESOP - » [T uw ao oo [=Y=) [ — wus .BAD.IRD :43605 ;43606 027 Lt ;43608 028: —— — — witg [ra)ea) [=Y=] — [2o 143632 ;463633 . 463634 ;43635 143636 ;43637 ;43638 ;43639 143640 V43641 I “36472 ;43643 ;63664 ;43645 163646 143647 1, ] JRESVRD am RD [NTR [YEIE ) .BAD.I 3, +RESVRD .BAD. IRD — i wuy .BAD. IRD AD, IRD JRESVRD ] ] It .BAD, 0}[2a]s IRD sRESVRD ] J [N wius .BAD,1RD . .BAD.IRD .BAD. IRD 3 ] sRESVRD 1 LIE .BAD.IRD J CIE.BAD,IRD JRESVRD o o~ < [S}] —y— ww .BAD. IRD mrm it — wi [a ]ea} aQc — [2.qaq aa ;RESVRD o [aY] o} [T- [SE)IV [24J24] D.IRD g Wy «BAD.IRD [ S}[FVRE .BAD.IRD mrm [ <T < .BAD,IRD D.IRD 02C: 3 ] .BAD. IRD e Wl «BAD. IRD (2D: REG [IE 1E.CM.RESOP MEM CIE.CM.RESOP Ie.C 02E: REG [1E.CM.RESOP MEM [IC.CM.RESOP .BAD,IRD Q2F: L IE.CM,RESGP € IE.CM.RESOP 030: REG [ IE.CM.RESOP MEM [ IE.C .(M,RESOP [ST wuw ao —r ao 031: REG [1 E.CM.RESOP MEM [IE. tE.CM .RESOP (S} ] ] 033: oo oo ] ] .(M.RESOP REG [IE.C MEM [I1E.CM.RESOP RE G [lE. (M.RESQP ME M LIE .CM.RESOP 1 ] [FeiT .BAD, [sa]ea) IRD AD.IRD 1. sRESVRD e [SWYAE) .BAD eafa ) . IRD .BAD. IRD 1. JRESVRD [T Ul 2 ]e4] AD. IRD 1. ¢RESVRD .BAD.IRD janl M ~ ;RESVRD am (ST} wu .BAD.IRD —e Wi J ] AD., IRD JRESVRD oo aa — @ .BAD. IRD AD. IRD ox .BAD.IRD AD. IRD 1, ] JRESVRD %. ;RESVRD ]24 IRD e —t Wiy .BAD. .BAD.IRD 036 035: .BAD.IRD . [ST— Wiy .BAD.IRD 032: ) 163648 AD . IRD sRESVRD .BAD.IRD (S — [TWRE ) .BAD.IRD [sa)se} ] ] C [ €.8AD. IRD 1E (1C.BAD.IRD 1. JRESVRD [T [SV]E) .BAD. Qo IRD J [IE.BAD.IRD 10 E.BAD.IRD 1. JRESVRD — — [Fe7Ve} [saYea) 1 3 3. +RESVRD .BAD.IRD AD. IRD oo [1E.BAD.IRD ! LIE 1E.BAD.IRD ] —3 143627 1463628 ;43629 ;43630 ;43631 g ww .BAD.IRD .BAD.IRD oy g —— ;43626 p| ] w g .BAD.IRD ] ] > IaY) o 43620 143621 ;463622 ;63623 , 43624 ;43625 160ns — — — — —— [SpTa] 43609 ac — oo — 143607 [Sesy—Y — — : 43604 .BAD.IRD = (NT1 CNTO 026 ;63603 N —— 3600 ;43601 :43602 ! s 3 CLOKX Rev 13.00, Clock rate Ird Rom Definition 16:30:35 [T} — ;63597 ;7 3598 b- — 3 MICROZ 1M{01) 28-NOV-83 : Compatibility Mode — 1) LS — — — CMT098. . ] page 1069 | Compatibility Mode 039: s— 03A: ;43665 ;43666 V3B: x ;63669 1463670 03C: REG [IE.C .CM,RESOP MEM [IF.CM,RESOP :43672 03D IE.C M.RESOP IE.C .CM.RESOP ;63675 143676 03F: i E.CM.RESOP .(M.RESOP [l £E.C 163667 ;63668 $43671 143673 143674 143677 ;43678 J43679 143680 03F: [2afes . IRD [y W .BAD .BAD.IRD el ) .CM,RESOP —t — 243664 AD, IRD . IRD AD .CM.RESQP [IE.CM,RESOP MEM [IE.CM,RESOP RE 6 3 ] — AD, IRD .BAD.IRD ] ] .BAD. IRD [ Wi o aa l:l oa oo [ery—l — sy .BAD.IRD ] ] s — Wi «BAD. (RD .BAD. IRD 040: .BAD.IRD .BAD.IRD ;63684 047 —ta — [FoyeY] o D.IRD o 3 =] $43689 143690 Q4F: 1463692 ;63693 050: ;63696 057: ;43691 163694 ;63695 ;63697 ;43698 ;43699 ;63700 143701 163762 63703 ¢RESVRD %, JRESVRD ——— —— 3. REG [IE (M.RESOP MEM [IE.CM.RESOP @xoa aa [amLo —n wia oa [=Y=) 1:1 aco aa .BAD, IRD JRESVRD AD. IRD AD, IRD sRESVRD —ta Wity oo AD. IRD p| ] Wil J [IE.BAD,IRD J LIE .BAD. IRD [T IE.(M_RESOP 1. | AD. .BAD. IRD AD. IRD (2 20} 1, JRESVRD 1. JRESVRD 1. JRESVRD ] ~ sRESVRD AD., IRD I )(W] — @ L|[om — o@ oo e [y (YNNS} a0 [aY=) oo — aoa JRESVRD JRESVRD IRD o — [2a]se AD. IRD 3, JRESVRD ¢ JRESVRD sS4 1 xcY[~=) [anlanl iRESVRD (=Y 1 ;RESVRD [Ty E](YIS [«¢Jea] [~Ya) oo mr sRESVRD i — wul e IE.CMJRESOP ] .BAD.IRD [ST- [S YTH) [safes) 058: JRESYRD AD. JIRD @ IRD [GUTE] i .BAD, (e — e D@ O TM 1463686 .BAD. IRD AD. IRD D.IRD fanlan) ;43685 —ea wiw .BAD.IRD ] ] ;43681 ;43682 ;63683 3 ] . ~TM 263663 . [amnlan 4][saZ: e wuy .BAD.iRD Mo [T Wi @D [=Y=) [o wvw> mre i—ta g—wiuwg o L aoa — i .CM_ [y RESOP —— )Lam S 63661 ;43662 .(M.RESOP [T¥yl mrm g— moa<LLT — 160ns =— ;43659 $63660 038 CLOKX Rev 13,00, Clock rate 16:30:35 ¢ Ird Rom Definition e [=1 ey — g 143658 -[ ;63657 O=E OE et g —OML O<- [M To¥ [S-T] F=EX xoe aoq — 28=NOV-83 ww [FEYVE} FE >v 1TMM(01) 4 [WTN — MICROZ of= f « gl <f LS« (MT098, CMODE. B AD. [RD AD.IRD (eI [eafas] ao . . — Page 1070| p e H ; - v CMTO98.HE§ CMODE ., C 4 MICRO2 1M(01) 28=NOV-83 16:30:35 (LOKX Rev 13,00, (lock rate = 160ns Compatibility Mode : Ird Rom Definition N 143706 063: REG [IE.CM.RESOP J [1E.BAD.IRD J CIE.BAD.IRD 1, JRESVRD ! 143709 065: REG [1E.CM,RESOP J [1S.BAD.IRD J [1. 3aD.IRD 1, JRESVRD i 143712 068: REG [I1E.CM.RESOP J [IE.BAD.IRD J [IE.BAD.IRD 1, JRESVRD | 43715 069: REG [IE.CM.RESOP ) C1E.BAD.IRD Y [1E£.BAD.IRD 1. JRESVRD 343718 06A: REG [IE.CM.RESQOP J [IE.BAD.IRD ] [IE.BAD.IRD 1, sRESVRD ;43721 068 REG [1E.CM.RESOP J [I1E.BAD.IRD J CIE.BAD.IRD J [I1E.BAD.IRD ] 1, +RESVRD ! 543?24 06C: REG [IE.CM.RESOP MEM [IF.CM.RESOP ] ) CIE.BAD,IRD ] [1E.BAD.IRD ], JRESVRD ! 343727 06D: REG [IE.CM,RESOP 3 [1E.BAD, IRD 3 [1E.BAD.IRD 1, JRESVRD 343730 Q6E REG [1E.CM.RESQP J [IE.BAD.IRD J [IE.BAD,IRD 1. sRESVRD ;43?33 06F : REG [IE.CM.RESOP J [IE.BAD.IRD J [IE.BAD.IRD 1, sRESVRD 143736 073: REG [1E.(M.RESOP J [I1E.BAD,RD J [1E.BAD.IRD 1. JRESVRD 543739 075: REG [IE.CM.RESOP ] [1E.BAD.IRD J CIE.BAD.IRD 1. ;RESVRD J 43742 078: REG [IE.CM.RESOP J [IE.BAD.IRD J CIE.BAD.IRD 1. JRESVRD | 143745 079: REG [1E.CM.RESOP J [IE.BAD.IRD J [IE.BAD.IRD 1. JRESVRD 143748 07A: REG [I1E.CM.RESOP ] C[IE.BAD.IRD 1 [IE.BAD.IRD 1. +RESVRD 143751 078! REG [1E.CM.RESOP J [1E.BAD.IRD J [1E.BAD.IRD 1. JRESVRD 143754 07¢: REG [IE.(M.RESOP J [1€E.BAD.IRD ] [IE.BAD.IRD 1. JRESVRD 343757 07D REG [1E.CM RESOP J [IE.BAD.IRD J [1E.BAD.IRD 1, sRESVRD :z%;}? :2%;}2 :2%;}9 ;2%;58 :2%;5% ;2%;52 :2%;58 ;2%;%; :2%;%2 :2§;§§ :2%;2? ;2%;22 :2%;29 ;2%;28 ;2%;%% ;23;22 ;43758 MEM [IE.CM.RESOP MEM [IE.CM.RESOP MEM [IE.CM.RESOP MEM L[1E.CM.RESOP MEM [1E.CM.RESOP MEM [1E.CM,RESOP MEM [I1E.CM.RESOP MEM [1E.CM.RESOP MEM [1E.CM,RESOP MEM [lE.CM,RESOP MEM [1E.CM,RESOP MEM [IE.CM.RESOP MEM [IE.CM.RESOP MEM [IE.CM,RESOP MEM [1E.CM,RESOP MEM [IE.CM.RESOP MEM [1E.CM,RESOP CNTQ Page 1071| :2%;8% :2%;8; IRD1 f J [I1E.BAD.IRD J [IE.BAD.IRD J [IE.BAD.IRD J [IE.BAD.IRD J [IE.BAD.IRD J [I1E.BAD.IRD [IE.BAD.IRD ] [IE.BAD.IRD ) [1E.BAD.IRD J [1E.BAD.IRD J [1E.BAD.IRD ) CIE.BAD.IRD J [IE.BAD.IRD J [IE.BAD.IRD J CIE.BAD.IRD ] ] ] [1E.BAD,IRD [1E.BAD.IRD [IE.BAD.IRD (NT1 J [IE.BAD.IRD J [1t.BAD.IRD J [1E.BAD.IRD J (1E.BAD.IRD J [IE.BAD.IRD ] [IE.BAD.IRD J [1E.BAD.IRD J [1E.BAD.IRD J [1E.BAD.IRD J [1E.BAD.IRD J [1E.BAD.IRD J [IF.BAD.IRD J [1E.BAD.IRD J CIE.BAD.IRD 3 (IE.BAD.IRD ] CIE.BAD.IRD ] C1E.SAD.IRD : ] J ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ; ; | ; | | 5 ; | (MT098, CMODE [ M01) MICRO2 28-NOV~83 : Compatibility Mode I . 3 ! —< DD Od OO OO OO OO OO OO O O oo O@ 00 O 00 OO OO 00 - ax OWO0 OWis WWw00 00Wil W0 O 00Wi OOWil ooWl Woo Wlo0 OW0 OWl0 OWl0 OLl0 WOik0l WilO 0 Wil0O OOwiw — 16:30:35 0 4 CLOKX Rev 13.00, Ird Rom Definition Clock rate 160ns —— JRESVRD JRESVRD JRESVRD JRESVRD JRESVRD sRESVRD JRESVRD JRESVRD sRESVRD JRESVRD JRESVRD ;RESVRD ;RESVRD ;RESVRD JRESVRD sRESVRD {RESVRD ;RESVRD i Page 1072| MICRO2 TMT098,MCX CMODE . MIC 1 Compatibility Mode (NTO )] | S} =) [ S TR} | N3 ) L [ STE ] g [ Sy ) i |S | ) [ |S [ | 3) (ST ata | -—) | S W) [ W] S [ e T e e e Lo B eL T op2: REG REG Pt T ;63867 ;43868 Ton BN oe T | 0D1: }43865 ;43806 (M.RESOP .CM,RESOP i L | ;63863 ;43864 REG MEM ;43862 .CM_RESOP .CM.RESOP e 12 N o L B oDQ: 4§R60 eY ;43861 o L Y e U ee TR REG MEM S QCF: ;43857 oo Vo TR 43858 ;43859 —— REG MEM — OCE: ot 145855 e Voo TR s Fo T REG MEM e L B 0CD: e L e WO ;43852 ;43853 MEM e Lo REG MEM 143856 I REG MEM .CM.RcSOP .CM.RESOP .CM.RESQOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESQP .CM.RESOP B 0C5: 0CcL: ;43854 . IRD .IRD REG MEM ;43849 ;63850 ;463851 .IRD .IRD 0ct: REG MEM 163848 .IRD . IRD .CM.RESOP .CM,RESOP 0cB: ;43847 . IRD IRD REG MEM REG ;43845 .IRD . IRD 0C0: 0CA: 163846 .IRD .IRD .CM.RESOP .CM.RESOP REG MEM 143844 .IRD .IRD REG MEM 0C9: i4§84] 163842 ;43843 .IRD .IRD 0BF: REG MEM ;43839 .IRD .IRD REG MEM 0c8: ;43840 .IRD .IRD OBE: REG MEM ;445838 .IRD IRD REG MEM 0C7: ;45836 ;43837 .IRD .IRD 08D: e LT :4}833 ;675834 ;43835 .IRD .IRD e IRD1 43831 ’3832 MEM MEM 28-NOV-83 .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM,RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM,RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .CM.RESOP .(M,RESQOP .CM.RESOP : 16:30:35 E 4 CLOKX Rev 13.00, Clock rate = 160ns Ird Rom Definition CNT? ] CIE.BAD.IRD J CIE.BAD.IRD 3. ] JRESVRD J CIE.BAD.IRD 1 [IE.BAD.IRD 1, ] JRESVRD .IRD J CIE.BAD.IRD 1, JRESVRD J CIE.BAD.IR J CIE. BAD.]RD J. ] JRESVRD J CIE.BAD. IRD J CIE.BAD.IR 1. ] JRESVRD J CIE.BAD.IRD J [IE.BAD.IRD 1. ] JRESVRD .IRD 1 [IE.BAD.IRD 1, ;RESVRD J CIE.BAD.IRD J CIE.BAD.IRD 1, ] JRESVRD J CIE.BAD.IRD J CIE.BAD.IRD 1, ] ;RESVRD J CIE.BAD.IRD J [IE.BAD.IRD i, ] +RESVRD J CIE.BAD.IRD J (IE.BAD.IRD 1 ] +RESVRD J [IE.BAD.IRD J CIE.BAD.IRD 1, ] ;RESVRD .IRD IRD J CIE.BAD.IRD J CIF.BAD.IRD 1, ] JRESVRD J CIE.BAD.IRD J CIE.BAD.IRD d, ] JRESVRD J CIE.BAD.IRD J C1E.BAD.IRD 1. ] +RESVRD J CIE.BAD.IRD J CIE.BAD.IRD 1. ] sRESVRD .IRD .IRD ] CIE.BAD.IRD J [IE.BAD.IRD 3. ] ;RESVRD . IRD ] [IE.BAD.IRD 1 [IE.BAD,[RD 1, ] :RESVRD .IRD .IRD BAD. IRD J CIE.BAD.IRD J CIE.BAD.IRD ] ] Page 1073? o JRESVRD U JRESVRD bl +RESVRD Ll JRESVRD Ul JRESVRD bt +RESVRD ol JRESVRD e +RESVRD e +RESVRD Lt JRESVRD LUt +RESVRD sRESVRD sRESVRD ;RESVRD ¢RESVRD IE.BAD.IRD IE.BAD,IRD IE.BAD.IRD 1E.BAD.IRD 1E.BAD.IRD IE.BAD.IRD 1€.BAD.IRD 1E.BAD.IRD OO0 ~ ~ -~ .~ N - [E.BAD.IRD IE.BAD.IRD —t TM VI IE.BAD.IRD IE.BAD.IRD - | S5 S e | NS ~mrm [ ST ~rrm g TMM OU U0 OO0 IE.BAD.IRD IE.BAD.IRD -~ | Y TM [ 3] ) M e ~r 1E.BAD.IRD IE.BAD.IRD UOUD O JE.BAD.IRD 1E.BAD,IRD - oo U OO S S Y e /I W eT VXD e ] T T DV XDV XTI 1E.BAD, IRD IE.BAD.IRD (S [ ] [anlas] ey .BAD, .BAD, O .BAD, .BAD. T .BAD. .BAD, S .BAD. .BAD. 1E.BAD.IRD 1IE.BAD.IRD 2DV .BAD. .BAD, [ .BAD. .BAD. 1E.BAD.IRD 1E.BAD.IRD D®® L e Lo T mm mim mm mm O .BAD, .BAD, —— Pt Lo TR 2 Lan D o Lo| .BAD, .BAD. D [P —— —itd e | S} W) i ] | Sy ) s mm M, RESOP (M, RESOP .BAD, .BAD, —— G e T g e T TN o ¥ e T L [ S | ] ] mm an Taen SO coe T SRR e UT mm — mm —b — N ~ - - - ~ -~ sl il ey ¢RESVRD Lot ey et [S | S—) —a Lad 1IE.BAD.IRD IE.BAD.IRD JRESVRD G s bt — mm mm mm mm mm — e —— b [ eb (e Lonm BN oo T | i L Tome | et — (M, RESOP .CM. RESOP [ e on BENRE o T M, RESOP .CH, RESOP g RFG MEM (M. RESOP (M, RESOP (e Lo B VES8: MEM .M. RESOP M, RESOP mm REG (M, RESOP .CM. RESOP mm 0E6: b s REG NEM (M, RESOP .M, RESOP [Eyey QE4: (M. RESOP .CM, RESOP —b 1643923 REG MEM .CM, RESOP .M, RESOP .BAD. .BAD. —— 163921 0E2: M, RESOP M. RESOP .BAD. .BAD. +BAD, .BAD. eb ;43920 REG MEM (M, RESOP CM, RESOP —— ;62%12 J439N3 ;43914 ;43915 ;63916 ;43917 ;43918 0EO: (M, RESOP (M. RESOP (o Lone T e T B o T BN o T BN oo Lo| ;43909 143910 1E.BAD.IRD 1E.BAD.IRD JRESVRD LU REG MEM — [oun {o | : ODF ;43908 [ ~mre 143906 ;43907 REG MEM [ 50 ) TM ObE: ;463905 e [l | [ Roue SEENE oo Laun| ;463903 ;63904 REG MEM 143902 [S mm 0DD: 1645900 [ S TE ) M 143901 s My REG MEM ;43899 e M opc: ;63898 OO REG MEM IE.BAD.IRD IE.BAD,IRD OO0 mm 0pB: ;43894 . 43895 JL 3896 163897 IE.BAD.IRD 1E.BAD.IRD OT MEM IE.BAD,IRD Ovo REG e mm ODA: 14389 143892 ;45893 XD REG MEM .BAD. .BAD. VDV 0D9: ;43888 ;63889 ;43890 M. RESOP .CM, RESOP ey REG MEM .BAD. .BAD. DV 0D8: (M, RESOP .M, RESOP TT REG MEM VD 0D7: ;43884 143885 ;43886 ;44887 .BAD. .BAD. S ;43883 43881 143882 .CM, RESOP (M, RESOP 1E.BAD.IRD DX REG MEM .BAD. .BAD. 1E.BAD.IRD 1E.BAD.IRD I 0D6: T ;43880 .CM, RESOP (M, RESQP S REG MEM .BAD. IRD .BAD, IRD I W 0D5: ;43878 .4 3879 .CM, RESOP (M. RESOP .BAD. IRD .BAD. IRD GUDA U L3876 163877 REG MEM | ) &) 0b4: CLOKX Rev 13.00, Clock rate = 160ns CNT? N e Lo SR o Do SN mm Lo R[} ;63874 ]:43875 .CM. RESOP .CM, RESOP 4 Ird Rom Definition s Vo TR oo [ e REG MEM mr 003: [Lo T o T BN e Lo BN s s BN oo T| 1143871 143872 F CNTO IRD1 OUo ;43869 ;43870 16:30:35 il 1M01) MI1CROZ 28=NOV=~83 : Compatibility Mode CMT098.MCX CMODE ,MIC Page 1074 $43936 ) ) ) 043937 143938 ;43639 ds Wi aad QEC: w [SEI3] amo;m oo — [T wivy [sa]ra} QOED: ,. 43940 0M—O w~Lir 1;48949 QF9: ;43955 ;43956 REG [IE.CM.RESOP MEM (lE.C .CM_RESOP OFA: xE ¥ERTAY.! 43959 )TR[ @D as LIl — w . IRD AD ;RESVRD —_ — wus ao — xa an JI ] JRESVRD s [)SR — e [ea]12] aoc — t o[=Y=) mr sRESVRD g g .CM.RESOP [=Y=) — (a4[=Y=) .BAD.IRD i — wius .BAD.IRD AD. IRD +RESVRD OFE: OP xE g il STo] .CM.RES o .CM.RESOP ] ] i — .BAD,IRD wiw .BAD. IRD |YN} —_— (o] [ea]:0) [=Y~=1 — [+424[~Y=) OFF: R G CIE .CM.RESOP M M [IE.CM.RESOP ] ] ](-] [FWYVW) .BAD,IRD o ][SWIEN wu —— e — — [TN]E¥] 2] ea) wWE EG [CM.ROL~-REG oE EM (¢ M.0S.MOD — Wil .BAD, IRD .BAD,IRD .BAD, [RD .ROL-MEM 1l £.BAD.IRD J [CM,ROL-MEM ’ [S [sa]e1] oo — .BAD, IRD .RESOP m [-[ac4 [%w] [=[)Y3 e .BAD.IRD it EX .RESOP JRESVRD [ — 143967 ;63968 ;463969 ;43970 OFD: 1, g [SVRS — keA .BAD.IRD X OE ;43965 143966 JRESVRD ;RESVRD —_ [SOIVE) .CM,R []RS ESOP OFRB: aa i [SSITS .BAD.IRD AD.IRD JI i L ma ao — OFC: 163964 J CIE.BAL.IRD 1 [l €.BAD.IRD .BAD, IRD .BAD. IRD (S | 47047 —g — —— 143954 OE ;43953 i JRESVRD [=Y=1 o ac =oYo~ ei[S CM,RESOP .CM.RESOP OF8: [anla] (W] [IN)IN) — @ aoa aoo I :43950 ;43951 @ ao JRESVRD ;RESVRD 3. JRESVRD 1, JRESVRD ] m 63934 i 143935 QEB: ] M i )s SR}[ t ;43933 + an ——y l ;43932 aa o ao — Uy 3. — 163931 s unu a o ] o[=Y=) —— l 143930 i Wi .BAD.IRD .BAD, IRD —— ow .RESOP .RESOP 160ns CNT1 rra | ;43929 QEA: [asT] .43928 CLOKX Rev 13,00, Clock rate CNTO IRD1 96 QE9: i 1439 ;43927 4 Ird Rom Definition [anlan] CMODE MIC G 16:30:35 ][an MICRO2 Imeon 28-NOV~-83 : Compatibility Mode CMTO98.MCX | : 43924 43625 v e | JRESVRD oo s o [=Y=Y o (=Y ~re == 23 ac 1 ol JROL 1. ] ;ROLB Page 1075| f i! CMTO98.MCX l 163979 MICROZ (MODE .MIC 28-NOV-83 : 16:30:35 084+ REG [CM.ROR-REG J 143984 08C: REG [CM.RORB-REG 1 [15.BAD.IRD ) [1E.BAD.IRD ) CIE.BAD.IRD ] REG [CM.RTI 3 CIE.BAD.IRD 3 [IE.BAD.IRD |;2§g§2 ['43987 OCet MEM [CM.0S.MOD MEM [CM.0S.MOD ] [CM.ROR-MEM ) (CM.RORB-MEM ) 1, ;ROR 1, ;RORB ) [1E.BAD.IRD 1, JRTI % ] [IE.BAD.IRD 1, JRTS % 3 [IE.BAD.IRD CI1E.BAD.IRD MEM [CM.RT] l~2§gg; MEM [CM.RTS 3 CIE.BAD.IRD REG [CM.RTT 1 CIE.BAD.IRD 1 [IE.BAD.IRD 2, JRIT * REG [CM.SBC-REG 1 [IE.BAD.IRD 1 [IE.BAD,IRD 1. ;SBC 1143993 | 2§ggé L4 0C6: REG [CM.RTS MEM [CM.RTT 3 [1E.BAD.IRD 3 C1E.BAD.IRD ] :-zgggg !343990 0FO0: 3 CIE.BAD.IRD ) CIE.BAD.IRD ) [I1E.BAD.IRD i 3 3 143996 OR2: 143999 0BA: REG [CM.SBC~REG 1 [IE.BAD.IRD 1 [IE.BAD.IRD 1, ;S8C8 144002 067: REG [CM.SOB J [1E.BAD.IRD 1 [IE.BAD.IRD 1. ;08,1 1144005 077: REG [CM.SOB J [1E.BAD.IRD 1 [I£.BAD.IRD 1 CIE.BAD.IRD ] 1, :508,2 REG [CM.0S.RED J [CM.SUB=REG 1 [IE.BAD.IRD 1, ;SUB, 1 lAzgggg :22889 -‘22882 ';22889 144008 O4E: ‘?28?8 MEM [CM.0S.MOD MEM [CM.0S.MOD MEM ([CM.S0B MEM [CM.S08 MEM [CM.0S.RED ] [CM.SBC-MEM 3 [CM. SBC-MEM J [1E.BAD.IRD ) CIE.BAD.IRD 1 [CM.0S.MOD 3 CIE.BAD.IRD 7 LIE.BAD.IRD 3 CIE.BAD.IRD 1 [CM.SUB-MEM i ] ] J ‘44011 056: REG [CM.0S.RED J [CM.SUB=REG 1 [IE.BAD.IRD 2, :SUB,2 164014 QF1: REG [CM.SWAB=REG 1 [1E.BAD.IRD J [IE.BAD.IRD 1, ; SWAB,1 164017 OF3: REG [CM,SWAB-REG ] [IE.BAD.IRD 1 [IE.BAD.IRD 1, ; SWAB, 1 144020 OFS5: REG [CM.SWAB-REG J [IE.BAD,.IRD 1 [IE.BAD.IRD 1, s SWAR 1 Y44023 QF7: REG [CM.SWAB-REG ) [IE.BAD.IRD 3 C1E.BAD.IRD 1, h| ; SWAB, 1 .44 3 [CM.SWAB-MEM 1144026 0B5: REG [CM.SXT 1 [IE.BAD.IRD ] [1€.BAD.]RD 1, ;SXT 144009 O0AB: REG [IF.(M.TRAP ) [IE.BAD.IRD 1 [IE.BAD.IRD 1. :TRAP,1 144032 QA9: REG [1E.CM.TRAP 1 [IE.BAD.IRD 1 [1E.BAD.IRD 1, ;TRAP,2 '2281% ;228}2 '22813 :22855 248§é ’228§§ :22839 144033 MEM [(M.0S.RED MEM [CM.05.MOD MEM [CM.0S.MOD MEM [(M.0S.MOD MEM (CM.0S.MOD MEM [CM.0S.wRT MEM [it.CM.TRAP MEM [{E.CM.TRAP ] 1 3 [CM.0S.MOD [CM.SWAB-MEM [CM.SWAB-MEM ) [CM.SWAB-MEM 1 [CM.SXT 3 (1€.BAD.IRD 3 CIE.BAD,IRD i : Page 1076{ ] CNT1 143981 ;zggg% CIE.BAD.IRD CLOKX Rev 13.00, Clock rate = 160ns Ird Rom Definition CNTO IRD1 i ! 80 11439 1M(01) Compatibility Mode T H & 1 [CM.SUB-MEM 1 C1E.BAD.IRD ) CIF.BAD.RD 3 [IE.BAD.IRD 1 [1E.BAD.IRD ) [IE.BAD.IRD ) C1€.BAD.IRD ] CIE.BAD.IRD ] ] b ] 3 ] ) i ’ | | | | . ; ! ; (MT098.MCX MICRO2 CMODE MI( Compatibility Mode bun03 . IRD1 b) {403 O0B8: 44037 164039 40040 0B9: 04042 0B3: 142043 {44045 11406 O0BB: {46048 061: 144049 44051 1344052 1M(01) 071: 28-NOV=-83 CNTO : 16:30:35 1 4 CLOKX Rev 13,00, Clock rate = 160ns Ird Rom Detfinition CNT1 REG [IE.CM.TRAP J [1E.BAD.IRD J C1E.BAD.IRD 1, ;TRAP,3 REG [IE.CM.TRAP J [15.BAD.IRD 3 [IE.BAD.IRD 1. :TRAP,4 REG [CM.TST-REG 3 [IE.BAD.IRD 3 [1E.BAD.IRD 1, ;ST REG [CM.TST-REG 7 [1E.BAD.IRD 3 [IE.BAD.IRD 1. ;TSTB REG [CM.XOR MEM [CM.XOR J [CM.05.MOD ] [CM.0S.MOD J [CM.XOR-WRITE 1, :XOR,1 REG [CM.XOR 1 [CM.0S.MOD 1 [CM.XOR-WRITE 1. :XOR,2 MEM CIE.CM.TRAP MEM [IE.CM. TRAF MEM [CM.0S.RED MEM [CM.0S.RED MEM [CM.XOR 3 C1E.BAD.IRD 3 C1E.BAD, IRD ] [CM.TST-MEM J CCM.TST-MEM 3 [CM.0S.MOD ? Page 1077| 3 CIE.BAD.IRD ] EIE.BAD.IRD 3 F1E.BAD, IRD J C1E.BAD.IRD ] [CM.XOR-WRIIE 3 [CM.XOR=WRITE ] ] j ] ] ] . | | | (MY098. | 44058 1. o— L TO0 e (ompatibility Mode .DEDE VOOO AT IAD? D2 U SN 0RO ~= AIM STV ON OGO O = NM T N O QOO O v DM ST W O s (MODE., 1M(01) 28=NOV~83 : Compatibility Mode MICROZ 16:30:35 4 CLOKX Rev 13.00, Clock rate Dsize Rom Detfinition : Dsize Rom Definition" [ i J O— [%2] 160ns Page 1078; CMT098.MCX CMODE . MIC 44 I et e e e e LA 3 eI e L Sl e LD i i L e e e e L s e LS LS L s e L i b i s 44 1M01) 28-N0OV=-83 MI1CRO2 : Compatibility Mode K 4 16:30:35 CLOKX Rev 13.00, Dsize Rom Definition Clock rate 160ns Page 1079 p—emre s CMT098. . (MODE . . . ¢ . . P R N L LAY 3T N3 1M(01) Compatibility Mode P T P T T T e D T T T T O Y T T T N N T IO Y B | o L L L L e B L L D ’ SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFJSSSS RS ZE D— MICRO2 28~NOV~83 : 16:30:35 L 4 CLOKX Rev 13.00, Dsize Rom Definition Clock rate = 160ns Page 1080 | . [ MICROZ 1M(01) Compatibility Mode 28-NOV-83 : 16:30:35 A CLOKX Rev 13.00, Clock rate Dsize Rom Definition S R TRRT NR L R R R R R ] OO0OOOOCOOOOODOOOOOOCOOOOOOOOOCOOOOODOCOLOOOOOODOOO - CMTO98 . MCX CMODE .MIC M 160ns Page 1081 MICROZ CMT098.MCX CMODE . MIC Compatibility Mode RS ce s PR, WOR WOR Y 171 28=NOV=83 COCODOODOCOOOCOOOODOCOCOOOOOOOOOOOOOOOO OR BYT WOR BYT C(WOR (WOR 161 1401) ;44312 ,BIN : 16:30:35 N 4 CLOKX Rev 13.00, Clock rate Dsize Rom Definition 160ns Page 1082 e MICROZ 1M(GTM) 0SR.MIC CMTO98,.MCX QSR.MIC 28-NOV-83 16:30:35 B 5 CLOKX Rev 13.00, Clock rate = 160ns .NOBIN Joc Revision History" : REv EXPLAINATION 31 T DA iy SR 30 Fix OS.ADD_INC.PC for Page 1083: 1 13 .70C "'OSR.MIC" 14 .T0C ''Revision 31,0" . . }g : Jeft Peng, Gerard Koeckhoven, Brian Aliison ~J ; e n D UK T oo instruction PUSHAQ & MOVAQ Code around an undocumented hardware conflict that causes MDR_Q and [RDX in the same cycle not to work properly, causing QUAD and DOUBLE short Lliterals not to work properly when t e‘ are the last byte on a page and there is a TB MISS on the next page. 29=-MAY=~1980 Fix indexed immediate in 0S.80A.QUAD. Fix indexed immediate, . . (hange immediate mode for write type operands to take an addressing mode fault, Initial release, 144334 (BIN cC 5 28-NOv=-83 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns er : OS.RED Specifi d Native Mode Operan = OO0~ U = OO 00 NN N EH AN " R AR + 0S.RED" Native Mode Operand Specifier CRANNA RN A AR Sescvenan £ o P ol o PP P PP o AL Al aE AP A RN AR R A AR AN Rk Ak kv Ak kA 0S.RED: AR 2222223223332 23803 222223282222 ;0 G 101: CLOBBER MTEMPO DEF, N 102 ;0010 mmmmmmmm Q_XB PC_PC+I, s NEXT/0STRED=IMMED ;001]~ e se e FPA_Q_MIMDRJ,LITNXT, e e U 0107, 0C87,7002,402D,A4A7,0049,4 AN N N AN AN o 104 N N LA o o aE AR AP P Ut L U NL L OO0 X £~ PV AR iRl llldd ;0100 -=rmm em e m VA R[GPR.R]_RB-CONX.S!Z, =(Rn) e ;010 sommmmmmme e VA_PCHSEXT(XB)+] PC_PC+] VA GETS OPERAND ADODRESS RBS GETS e NEXT/0S.RED-READ.SAV.EXIT Pe SIZECIDEP], CLOBBER MTEMPO DEF, eT v + CLDBRER MTEMPO DEF, NEXT/0S,RED=READ, SAV, EXIT + DSPLMT D(Rn) DISPLACEMENT MODE ADDRESS OF OPERAND IS REG + DSPLMI PUT GARBAGE IN MTEMPQ VA GETS ADDRESS OF OPERAND VA_SEXT(XB)+R[GPR.R] PC_PC+I, NEXT/0S.REO-READ.SAV.EXIT 107: IRNUMISIZE!-! Addr PELATIVE MODE ADDRESS OF OPERAND IS PC PUT GARBAGE IN MTEMPO SITECIDEP],CLOBBER MTEMPO DEF, 106: AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) = SIZE PUSH RBS-, 105: [N MDR MOR GETS OPERAND FROM [-STREAM PUT GARBAGE IN MTEMPO SAVE MDR IN Q NEXT/0S.RED~READ,SAV.EXIT N R N NNN NN NNNNOOON 2 ok of o o o P P ol S Al AR R Y o o RSS20 S*#cons LITERAL MODE PASS OPERAND TO FPA IRDX {12 o~ P 0106, 0087,7815,003C,L4A7,0049,4 R I*#cons IMMEDIATE MODE GET PROPER AMOUNT OF IMMEDIATE DATA CLOBBER MYEMPO DEF, O R N T T e 0487,7816,403D,8407,0069,4 0S8R R A AR AR AR (Rn)+ AUTOINCREMENT MODE PLACE ADDRESS OF OPERAND IN VA PUT GARBAGE IN MTEMPO INC GPR(RNUM) BY SIZE 0007 === mmmmmmmmmmmm e e fPA_Q_MCMDR] VA _RLGPR.R], NEXT/0S.RED -AUTO, INC 0103, 0087,2592,5070,05E7,2000,1 0105, A kAR AR AR SAVE MDR IMN Q BEFORE CLOBBERING [T CLOBRER MTEMPO DEF,IRDX L[1] MDRTMZEXT(OSR), 0104, 0085,473C,003C,C4A7,0049,4 kA kAR RN Rn REGISTER MODE PLACE OPERAND (GPR(RNUM)) FPA Q_MLMDR) MDR RLGPR.R], 103: U kA AR Ak AR MDR is saved in the Q-register and is always destroyed, Evaluates read type operands and places the result in MDR, MTEMPQ is destroyed. Read access for the operand is checked. iSgGION/OSR.ML,OSR.R1H/OSR.R2L,OSR.RQH/OSR.R3L,OSR.R3H NN A AL O ~ IO 0102, 0481,7002,5030,A047,0048,E .TOC 2 08a7,2004,703C,C4A7,1048,C Y 0101, N 0100, 0487,2004,707C,C467,1000,1 Page 1086} MmMon FS N R A O Al aP P AP P P o e P A F ol o £ (AT U LA U L LA N N LR A U A LN AN A AN L AN N (v WHA VAR AN N B D 3 O D B 2 O DS D NN N ~ MICRO2 e T T R R R- TS (MT098.MCx OSR.MIC P ’ - afAddr ABSOLUTE MODE NEXT 4 BYTES OF [-STREAM PUT GARBAGE IN MTEMPQ 1S OPERAND VA GETS ADDRESS OF OPERAND CMTO98.MCX OSR.MIC MICROZ 1M(01) 28-NOV-83 Native Mode Operand Specifier U 0108, 0887,2004,703C,(4A7,1010,E :44385 108: ;44386 ;44387 ;22%%3 ,44390 109: ;64391 J 0108, 0887,2004,703C,C4A7,1048.A U 010C, 0C80,0036,4030,0047,00F0,¢ U 010D, 0C87,2004,71FC,C047,1440,0 U 010E, 0880,0036,4070,0050,0000,1 e V0OV O WNONN AN U 010A, 0887,7815,003C,C4A7,0049,6 .44392 b&\x\b:\b LD AN N AN NN J 0109, 0C87,7816,403D,8407,0049,6 5 10A: 16:30:35 D 5 : CLOKX Rev 13.00, Clock rate = 160ns Page 1085 : 0S.RED :1000mmememmmmccm e e c e e nc e n e : (Rn) REGISTER DEFERRED MODE FPA G _MCMDR] VA_RLGPR. R1, ; OPERAND ADDRESS IS GPR(RNUM) CLOBBER MTEMPO DEF, ; PUT GARBAGE IN MTEMPO NEXT/0S.RED=READ.EXIT ; R e bt e L D VA_PC+SEXT(XB)+] PC PC+I, L L L L DL ; SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S.RED-READ, SAV oAddr RELATIVE DEFERRED MODE ; VA GETS ADDRESS OF ADDRESS OF OPERAND : PUT GARBAGE IN MTEMPO ; 31010 memmc e et ; aD(Rn) DISPLACEMENT DEFERRED MODE VA_SEXT(XB)+RLGPR.R] PC _PC+I, ; OPERAND IS REG + DATA FROM I-STREAM SIZECIDEP],CLOBRER MTEMPO DEF, ; PUT GARBAGE IN MTEMPO NEXT/0S.RED-READ. SAV ; ;44400 10B: 144401 R R R FPA_Q_MLCMDR] VA RLGPR.RJ, ; ; ARN)+ AUTO~INCREMENT DEFERRED MODE VA GETS OPERAND GPR(RNUM) ;22282 NEXT/0S.RED~READ. INC.4 ; SAVE MDR IN Q }44399 264602 144405 10C: CLOBBER MTEMPO DEF, 11100 == mmmmm e memesm o ;22283 NEXT/IE, ADDR.MODE :64408 10D 244409 J110)~ cs c e ec FPA_Q MDR MTEMPO_RLGPR.R], ;222}9 ; PUT GARBAGE IN MTEMPO aanan ; PUSR,BUT/LOD.BRATNEXT/0S. R0A s; ; ; J44412 10E: ;446413 0S,RED=READ,EXIT: 164414 1110 e mmmmmemccm e ae e e : 144415 READ,S1ZELIDEP], : ;242}9 44 (Rn)LPC] INDEX MODE P( ; JLLEGAL ADDRESSING MODE IRDX [1] : TELL CHARLIE (Rn)CRx) INDEX MODE SAVE INDEX REGISTER IN TEMPO CALL ROUTINE TO GET BASE OPERAND ADD READ MEMORY AT VA SIZE=DSIZE ;44418 246619 ;44420 :22255 0S.RED=AUTO. INC: READ ; READ MEMORY ADDRESS VA AND SIZE=DSIZE 144425 239 PUSH RBSY, 1RDX [1] ; : o 144423 o aF 2k ¥ 2l S kR ke REGPR.R]_RB+CONX.SIZ, 428 OS.RED=IMMED: 429 fPA_Q MCMDRI MDR 0, 430 431 (LOBBER MTEMPO DEF, 432 IRDX [1] Pl S Pl i O 0087,2007,7070,9467,1000,1 mamoss e vavLnL . 085,573D,007C,C050,0000,1 144424 ¢ : GPR(RNUM) <~ GPR(RNUM)+SIZE ; ; SAVE MDR INTO Q PUT OPERAND INTO MDR SAVE STATUS OF GPR(RNUM) ON RBS - - ; (MT098.MCX MICROZ2 1M(OT) OSR.MIC 28=-NOV-83 16:30:35 Native Mode Operand Specifier £ CLOKX Rev 13.00, Clock rate = 160ns : 0S.RED 264433 0S,RED=-READ.SAV.EXIT: ;64434 ;64435 ;64436 J 0494, 0087,2592,5070,0050,1000,1 144437 :222%3 G ailati ittt H FPA_G_MLMDR], s SAVE MDR IN Q READ,SI1ZECIDEP], CLOBBER MTEMPO DEF, IRDX (1] ; MDR GETS MEMORY (VA) ; PUT GARBAGE IN MTEMPO ; $44440 0S.RED~READ.SAV: $444641 ] U 0496, 0081,2592,5020,0050,1049,A U 049A, 0081,2002,403D,84A7,0010,E U 04BA, 0C85,573D,002(,C050,0049,A Jeseessissticsmmsmessssnemeneu——= ; 146442 FPA Q@ MLMDR], ; :22222 NEXT/0S.RED-VA_MDR ; ;44443 S1ZECCONG],READ, ; MDR GETS MEMORY(VA) ;44446 0S,RED=-VA_MDR: $44447 oottt b el H 146448 VA_MLMDR], ; :222?3 NERT/0S.RED~READ.EXIT SAVE MOR IN @ H VA GETS MDR ;44451 0S,RED=READ.INC.4: 244452 binatiialaeidiate bbbl b b b bl b Lt H ;44453 READ, : MDR <~ MEMORY(VA) 164454 RLGPR.R]_RB+CONX(4), ; GPR(RNUM) <- GPR(RNUM)+4 264455 PUSH RBS*, ; RBS GETS IRNUMISIZE!+i 144456 NEXT/0S.RED=-VA_MDR ; : Page 1086 | | ' ‘ i ] | ! ; : (MTO98.MCX MICRO2 OSR.MIC 1M(O1) 28-NOV-83 Native Mode Operand Specifier 16:30:35 F 5 ] CLOKX Rev 13,00, Clock rate = 160ns Page 1087| : 0S,80A 1644457 .T0C "' Native Mode Operand Specifier ; : 0S.BOA" ; Ezzzgg 't**tk*************ttt*******t*t****t***#**ttk**tkt**t**t*******w**t*t*******n 164460 ; 164467 ; :2222% : | SUBROUT INE CALLED BY OPERAND SPECIFIER ROUTINES TO EVALUATE THE BASE OPERANS ADDRESS IN INDEX MODE ;4446L :**t**k*****k**********t*k***k***k****ktk****t**t********tt****w***t****fi***** 44465 ;46666 =0000 ;44467 05.BOA: U 0400, 0C80,0026,4030,0047,00FD,C U 0401, 0(80,05BE,403C,(467,0048,8 146468 NEXT/IE. ADDR.MODE :222;2 NEXT/0S.BOA=INC 44471 44472 144475 U 0402, 0081,7002,403D,A467,047F ,B U 0403, 0¢80,0036,4030,0047,00FD,C 44476 ;222;£ 144479 ;zzzg? 144482 U 0404, 0085,473(,00%C,C467,0040,F U 0406, 0081,7815,003C,C467,0040,E ) U 0407, 0C81,7002,402D,A467,0040,F ) U 0408, 0480,05BE,403(,(467,0040,F Rn REGISTER MODE ILLEGAL ADDRESSING MODE $00710mmmmmeme e mane e —m e e a——— ; l*#cons | ; MDR_XB PC_PC+] PUSH,NEXT70S.BOA= INDEX~-IMMED B ; : ; IMMEDIATE MODE LITERAL MODE ILLEGAL ADDRESSING MODE PUSA RBS-, <~ GPR(RNUM)=SIZE * MDR GETS GPR(RNUM)-SIZE GPR(RNUM) 0101 == =~ommmmcmmcmammaemeen s ; Addr 144488 VA_PC+SEXT(XB)+] PC_PC+], 144491 10110mmmmmmmmm oo : D(Rn) SIZECIDEP],NEXT/0S.BOA-RELATIVE ; RELATIVE MODE $44495 1646496 ;071 mmmmtmmm e me s ; 9WAddr ABSOLUTE MODE MDR_XB PC_PC+4, ; MDR GETS ADDRESS :22285 ;64504 ;164505 ; MDR GETS GPR(RNUM)+DISPLACEMENT : : ;1000===mmmmm e e ————— ; (Rm) MDR_RIGPR.RJ, 100] e e REGISTER DEFERRED MODE ; MDR GETS CONTENTS OF GPR(RNUM) NEXT/0S.BOA=EXIT VA_PC+SEXT(XB)+1 i DISPLACEMENT MODE MDR_SEXT(XB)+RLGPR,R] PC PC+l, SIZECIDEP],NEXT/0S.BOA-ERIT NEXT/0S.BOA-EXIT | VA GETS PC+DISPLACEMENT+S1ZE 144492 ;22232 244500 TELL CHARLIE AUTODE CREMENT MODE ; RBS <= !RNUM!SIZE!=! 146499 ; 10100=-~mmmemmma e —————— ; =(Rn) NEXT/0S.BOA-EXIT ;2223; ; SIZE 1S FORM ROM D : S*Mcons NEXT/1E.ADDR.MODE ; THROW AWAY [STREAM DATA :Zzzgg ;22233 ! i , : 144484 TELL CHARLIE 10001 =m=mmmmemcmnm e m e mam— e ; (Rn)+ AUTOINCREMENT MODE MDR_RLGPR.RJ, : MDR GETS GPR(RNUM) MPR_RLGPR.RI_RB-CONX,S1Z, 144503 U 0409, 0C81,7816,4C3D,8407,0048,D . 144483 144487 U 0405, Q481,7816,403%D,8407,0048,C ;0000====am=mma e mmmaa e; :22298 : f : e eceee ; dAddr PC_PC+I, SI2ELIDEP],NEXT/0S.BOA=READ ; ; RELATIVE DEFERRED MODE VA CETS ADDRESS OF ADDRESS OF OPERAND ' 6 b LS ANV — e SIZECIDEP],NEXT/0S.BOA=READ ; aD(Rn) NERT/0S.BOA=READ, INC 11 o 0 = o - = VA_MIMDR1+(R[TEMPO],ASL.S12E), SIZECIDEPI,RETURN [1] i | * VA GETS ADDRESS OF ADDRESS OF OPERAND ! AUTO=-INCREMENT DEFERRED MODE INDEX MODE PC Y ILLEGAL ADDRESSING MODE 11101emme: smcmmesemesewem—-- ; NEXT/1E.ADDR.MODE * 0S.BOA-EX]T: DISPLACEMENT DEFERRED MODE * PC GETS PC+SIZE $1100===m=msmmmmmm oo e ; (Rn)IPC] REXT/1E .ADDTM MODE Page 1088 C ! : VA GETS ADDRESS OF ADDRESS OF OPERAND $1071 o= mem e wmemmmm=ee; 3(RR)+ VA_RLGPR.RJ, (RnYCRx] INDEX MODE ILLEGAL ADDRESSING MODE § i | TELL CHARLIE | TELL CHARLIE } P : ADDRESS IS INDEX REG + BOA | * GPR(RNUM) <= GPR(RNUM)+SIZE i OS.BOA“INC: RCGPR.R]_RB+CONX.S1Z, PUSH RBS+, NEXT/0S.BOA-EXIT ; ; SAVE STATUS OF REGISTER i 0S.BOA-RELATIVE: VA_MCVAY+(RLTEMPC].ASL.SIZE), SI2ECIDEPI,RETURN [1] 0S.BOA=READ: : ; % ; MDR <= MEMORY(VA) ; - READ. SIZE[LONG NEXT/0S.BOA=EX | FORM ADDRESS OF BOA --------------------------------- —fn v o L v i A LA LT N OV AT N TNO PO N AN NI A LTUA LA LA W N R P P U 07F8, 0081,4710,0080,0467,0000,C 1010mmmmmm s VA_SEXT(XB) +RLGPR.R] PC_PC+l, — i i PO TUTUITUN) D 2 = D e el 2 2 3 2 O O OO TR TR TR P PR P TR P T L TR T N U Q4BE, 0485,573D,002C.C050,0040,E R A R O 0080,0036,4020,0050,0040,¢ A S W N ol ol Y R U 04B(, 0C&1,BSD1,00B0,064A7,0000,1 DA LA LA LA LA LA LT LA L LT AL LA LA L U 04BB, 0085,573p,003C,C047,0040,F DS £ 8 85 B I B I B I U 040€, 0C81,25D1,0080,04A7,0000,1 S o S o 2t et ot aF o E ol R P o F P el ol ol e at b b aE E ok al al Rl Ll ol Ll o o el e el S el el b i _ U 040D, 0CB0,0036,4020,0047,00FD,C e N P T T e O Y U 040C, 0C80,0036,4030,0047,00FD.C T o o A U 0408, 0C80,05BE,403C,C4A7,004B,E o U 040A, 0881,7815,003C,C4A7,0048,D U 048D, 5 MICRDZ2 1M(01) 28-NOV~B3 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns Native Mode Operand Specifier : 05.BOA doooowaux:\wm—-o»ooo\lo-mx\wm—-oomwombwmdoomwom;\wt\)—oom\lo CMT098.MCX OSR.MIC b th : ; { i 0S.B0A-READ,INC: READ,PUSH RBS*, { MDR <= MEMORY(VA) NEXT/0S.BOA~EXIT : REGPR.R] RB+CONX(4), ; INC REGISTER BY 4 7FB: 05 .BOA=INDEX~]IMMED: sAx ANk A v et FORCE ; MDR MLP(1- CONX S12,SIZECIDEP], RETORN [+12.] ; ADDRESSansnaxnan, ; ; BOA 1S UNINCREMENTED PC : (MTO98.MCX OSR.M IC H 5 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : 05.BOA-WRT1 n Specifier d Opera Native Mode MICROZ P T T 0c81, 7816,403D,8407,004C,0 0481 .7001,00560,24A7,0000,1 U 0418, 0880,0001,007C.C4A7,0000,1 U 0419, 0481, 7816,4030,8407,004C,1 O - PR it gal7z, 0881 L7815,003C,0467,0041,F I U 0416, T TR TR P U 0415, v vt v i i i L T LA LT L L 0885,473. ,003(,0467,0041 ,E e U 0414, LN LN LT U 0€80,0036,4030,0047,00FD,( LU VI U U 0413, 00O OO0 ,B 0081 .7002,403D,A467,047F v WA u 0412, F O i U 0411, 0480,0001,003C,C4A7,0048,F OOV OO MOCOC NN NNNNNYNNNOCOOONOOO v oo~ NI AND 2 OO0 N NI NN = O OO N NI ANN 2 OO N NI AN 2O OO B PITE PR TR TR PR P TR T T T 0¢80,0036,4030,0047,00FD,( :\:\4\ J\bb"\bl\l\bbl\l\bl\bbl\J\l\l\-.\J\J\Z\bl\‘\J\J\J\‘\J\bl\‘\b:\b:\-‘\i\b&\b & £ R R R N A T al ol ol N R i aE 2tk k2 2l Al P Pl 2P ol ol el el e e 4/558 .roc U 0410, Page 1089 | 28=-NOV=-83 1M(01) 144599 144600 144601 Native Mode Operand Specifier SRR KRR 0S.BOA-WRT1" R AR AR R AR RN R KRR AR AR AR AR R AR AR Rk k% SUBROUT INE CALLED BY OPERAND SPECIFIER ROUTINES (0S.WRT1) TO EVALUATE ; ; SRR AR AR R AR R AR AR : THE BASE OPERANS ADDRESS IN INDEX MODE AR AN R AR AR AR NN A AR AN KRR AR AR AR R R R AR AR AR =0000 0S.BOA-WRT1: e; NEXT/IE. ADDR.MODE ; ;0001 e mmmmmm e e; VA_MLTEMPOI+RLGPR.R], ; NEXT/0S.BOA-WRT1~INC :0010=mmmmmmm : e e; PUSH, NEX T70S ,BOA= INDE X=IMMED ; MDR_XB PC_PC+], ;001tmemon s e mann s w NEXT/I1E.ADDR.MODE PUSA RBS-, SIZELIDEP], REGISTER MODE ILLEGAL ADDRESSING MODE (Rn) + FORM BOA ek ke w TELL CHARLIE AUTOINCREMENT MODE I*¥cons IMMEDIATE MODE THROW AWAY ISTREAM DATA SIZE 1S FORM ROM TELL CHARLIE -(Rn) AUTODECREMENT MODE MDR GETS GPR(RNUM)=S1ZE : GPR(RNUM) <- GPR(RNUM)-SIZE ;; RBS <~ IRNUMISIZE |~ : H: 10107 =m=mmmmm s nm e e H VA_PC+SEXT(XB)+I PC _PC+I, H NEXT/0S. BOA -WRT1-RELATIVE Ak ke ke LITERAL MODE o ; S*#cons ; ILLEGAL ADDRESSING MODE ;0100 e m e m e cm MDR RIGPR.R]_RB-CONX.S12, NEXT/0S., BOA~WRT1=EXIT H A ARk H Addr RELATIVE MODE VA GETS PC+DISPLACEMENT+SIZE ; ;0110===coocmorommmnnmum e H D(Rn) DISPLACEMENT MODE MDR GETS GPR(RNUM) +DISPLACEMENT MDR_SEXT(XB)+RLGPR.R) PC PC+l, SIZE[]D J,NEXT/0S.80A-WRT1-EXIT a¥Addr ABSOLUTE MODE :100Qmemmnnnecnccncnncannenannns H VA _MLTEMPOJ+R[GPR.R] ; (Rn) FORM BOA REGISTER DEFERRED MODE 21001~ dAdcr RELATIVE VA GETS ADDRESS OF ;0111 mem e s se: VA XB+RLTEMPO] PC_PC+4, IRDX 11 IRDX (1] scmmom N GET BASE OPERAND ADDRESS : : e oo ; VA PCH+SEXT(XB)+] PC_PC+], SI2ELIDEP] ,NEXT/0S.BOA=WRT1=READ! FE DEFERRED MODE ADDRESS OF OPERAND ; ; CMTO98,MCX 0SR.MIC 1 [ 5 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 16:30:35 MICRO2 1M(01) Native Mode Operand Specifier : 0S.BOA-WRT1 66602 U 041A, 0081,7815,003%,C4A7,004C,1 44603 :zzggg 144606 u 041B, 0480,058BE,403C,C4A7,004C,2 U 041¢, 0C80,0036,4030,0047,00FD,C U 041D, 0C80,0036,4030,0047,00FD,C ;1010==m=memmmm e mm e mmem—cceca H A0 (Rn) VA_SEXT(XB)+RL[GPR.R] PC PC+l, i SIZECIDEP],NEXT/0S,BOA-WRT1-READ; 144610 :1100==m=m=mm == memm—m—aeanac e ; 144613 ;222}2 PC GETS PC+SIZE AUTO~INCREMENT DEFERRED MODE : VA GETS ADDRESS OF ADDRESS OF OPERAND VA_RCGPR.R], ;22215 DISPLACEMENT DEFERRED MODE VA GETS ADDRESS OF ADDRESS OF OPERAND ;101 mmm e e ——— : 2(Rn)+ 144607 ‘22283 Page 1090 NERT/0S.BOA-WRT1~READ . INC NEXT/ IE .ADDR,MODE ; ; ;110 mmm e N ; NEXT/1E.ADDR.MODE ; (Rn)EPC) INDEX MODE PC ILLEGAL ADDRESSING MODE (Rn)[Rx] INDEX MODE ILLEGAL ADDRESSING MODE TELL CHARLIE TELL CHARLIE 144616 0S.BOA=WRT1-EXIT: $446617 U 041E, 0881,2001,0070,04A7,0000,1 144618 : e : IRDX [11] ; ;222;3 ) SIZECIDER], IRDX (1] 144621 0S.BOA=WRT1~INC: 164622 U 04BF, 0C85,573D,007(,(047,0000,1 ;1110=mmecvorm e s — e ————— : VA_M[MDRJ+RLTEMPO] 144623 44624 ;22252 RLGPR.R! RB+CONX.S1Z, PUSH RBSY, ; : ;; ADDRESS IS INDEX REG + BOA GPR(RNUM) <=~ GPR(RNUM)+SIZE SAVE STATUS OF REGISTER 144627 05S.BOA-WRT1-RELATIVE: U 04C0, 0881,8001,0070,04A7,0000,1 244628 144629 ;222;? etttk bttt ; VA_MIVAJ+RLTEMPO], ; IRDx 11 : FORM ADDRESS OF BOA 144632 0S.BOA=WRT1-READ: U 0601, 0880,0036,4020,0050,0041,F ;44633 144634 :222%2 et L LD L S L DL : READ,SIZELLONG], : NEXT/05.BOA-WRTI=EXIT 144637 0S.BOA~WRT1-READ.INC: U 04C2, 0C85,573D,002C,C050,0061,E 44638 44639 144640 ; MDR <= MEMORY(VA) PR L PR m—————— ; READ,PUSH RBS+, ; MDR <= MEMORY(VA) REGPR.R] _RB+CONX(4), ;; INC REGISTER BY & NEXT/0S,BOA=WRT1=EXIT i ‘ ¥ (MTOG8.M OSR. I J 0423, 0C80,0036,4030,0047,00FD,C I o 0 ~NON N &~ = OO NN LU NN NI LT OO = OOV P 2l b Al O Ea DS D o [eTe e doXe Yo NoNo No To Jo Yo To Yo To To Xodo el o bl R P o aE aE PP o o B L R R 2k o A F S e - 0422, 0081,7002,403D,A467,047F ,B P 0421, 0480,05BE,403C,C467,004C,4 LR 0420, 0€80,0036,4030,0047,00FD,C P T .a L T e .T0C '' [ed 5 MICRO2 1M(01) 28~NOV~83 16:30:35 CLOKX Rev 1 0S.BOA~WRT2 Native Mode Operan d Specifier 13.00, Clock rate = 160ns Navive Mode Operand Specifier Page 1091 : 0S.BOA-WRTZ' ,fltfittfit*tt*ttfitttittt*w*t*tt**ktt*kfi*t**tttttktttttt*i*t*tt*tt**tttttttttt*wfl ; : INE CALLED BY OPERAND SPECIFIER ROUTINES (0S.WRT2) TO EVALUATE SUBROUT THE BASE OPERANDS ADDRESS IN [NDEX MODE :tfi*tfiktttttt*t**t*t*********k**k«***'f******fiw9(***fi**i*i**************ii****** =0000 0S.BOA-WRT2: 10000~~~ -ommmmmmmmmocc e n e ; Rn REGISTER MODE NEXT/IE.ADDR.MODE 3 ILLEGAL ADDRESSING MODE TELL CHARLIE B e : (Rn)+ AUTOINCREMENT MODE MDR_RLGPR.RJ, : MDR GETS GPR(RNUM) NEXT/0S.BOA=WRT2=INC : PR ; MDR_XB P(_PC+!, : PUSR,NEXT70S .B0A=-INDE X~ IMMED 5001 e m emms NEXT/IE.ADDR.MODE e 1*#cons |MMEDIATE MODE THROW AWAY ISTREAM DATA ; SIZE 1S5 FROM ROM e ; §*%cons LITERAL MODE ; ILLEGAL ADDRESSING MODE TELL CHARLIE ;0100~~=ccnaconamnccccccucmnnna ; =(Rn) AUTODECREMENT MODE MDR_R[GPR.RJ_RB-CONX.SI1Z, : MDR GETS GPR(RNUM)-SIZE 0424, 0885,473C,0030,0467,0042,E PUSR RBS~-, NEXT/0S.BOA-WRT2-EXIT : GPR(RNUM) <= GPR(RNUM)-SIZE ; RBS <=~ (RNUM!SIZE:~! L e S ; Addr RELATIVE MODE VA_PC+SEXT(XB)+] PC_PC+I, ; VA GETS PC+DISPLACEMENT+SIZE U U425, 0Cy1,7816,4030,8407,004C,3 0426, LVBBY,7815,003(,C467,0042 € SIZELIDEP], NEXT/0S.BOA-WRT2=RELATIVE : ; 0110~ s m e ; D(RN) DISPLACEMENT MODE MDR_SEXT(XB)+RI[GPR.R] PC_PL+!, : MDR GETS GPR(RNUM)+DISPLACEMENT T} S1ZECIDEP),NEXT/05.B0A-WHT2=EX| R R R ; afAddr 0427, 0481,7022,402D,A467,0042,E 0428, 0C80,058F,403(,(467,0042,E 0429, 0€81,7816,403D,8407,004(,5 MDR_XB PC_PC+4, NEXT/0S.BOA~WRT2=EXIT : ;1000 mmmrmmmam s st ; (Rn) MDR _RIGPR.RJ, ; MDR GEIS NEXT/0S.BOA=WRTZ=[XIT ABSOLUTE MODE ; MDR GETS ADDRESS : REGISTER DEFERRED MODE CONTFNTS OF GPR(RNUM) ;100 mc e m e ; aAdar RELATIVE DEFERRED MODF VA_PC+SEXT(XB)+1 PC P(+], VA GETS ADDRESS OF ADDRESS OF UPERAND SJZELJDE» NEXT/0S,B0A=WRT2-READ; 5 MC01) CLOKX Rev 13.00, 28-NOV-83 16:30:35 : 0S.BOA-WRT2 Native Mode Operand Specifier 10 g%? (XB)+RLGPR,R] PC_P( READ' Il 144693 0C85,573D,002C,(050,0042,E W ny DO OO OO O b=l - OOD NI e o e 48 L VA AJ+(RLTEMPO].ASL.SIZE), %EPJ,IRDX 13 0S.BDA«WRT2 tmx Rl SIZ Rl St e et e e LD PC GETS PC+SIZE INDEX MODE PC (Rn)CPC) ILLEGAL ADDRESSING MODE TELL CHARLIE ; (Rn)CRx] INDEX MODE ILLEGAL ADDRESSING MODE TELL CHARLIE ; ADDRESS IS INDEX REG + BOA detl bl L LD ; FORM ADDRESS OF BODA ; ; GPR(RNUM) <~ GPR(RNUM)+SIZE SAVE STATUS OF REGISTER ; MDR <- MEMORY(VA) ; MDR <- MEMORY(VA) LA R[GPR.RJ_RB+CONX.SIZ, PUSH RBS*t, NEXT/0S.BOA-WRT2-EXIT 0S .BOA=WRT2-READ: et b b b e b e b READ,SIZELLONG] NEXT/0S.BOA=WRT2=EXIT 144726 0S.BUA-WRTZ-READ,INC: 144727 ;44728 READ ,PUSH RBS*+, 144729 REGPR.R]_RB+CONX(4), 44730 Dttt L DISPLACEMENT DEFERRED MODE VA GETS ADDRESS OF ADDRESS OF OPERAND ; o il 2D (Rn) @(Rn)+ AUTO-INCREMENT DEFERRED MODE ; VA GETS ADDRESS OF ADDRESS OF OPERAND MDRI+ (RLTEMPOJ.ASL.SIZE), IDEP],IRDX [1] 3 NNV ed b b wd —d b b OO NN S P i ol o R A P L R R ol oF o LW o ol S o R R aE al 2k 2l ol 2P N NN N NI N TN SN TN TN Y N TN SN N SNSN N oML RS AININY) [V P W) NN—=C . 0880,0036,4020,0050,0042,E P 0885,573D,003C,C047,004¢,E PR . A A Uy . 0081,8501,0070,04A7,0000,1 2F B U(81,2501,0070,04A7,0000,1 L 0080,0036,4030,0047,00FD,( . PR.RJ, /0S ,BOA-WRT2-READ, IMC bl\b £~ FaS A El P NN N NN N , - DEP],NEXT/0S.B0A-BRT 44694 . 0C80,05BE,403C,C4A7,004C,6 . 0080,0036,4030,0047,00FD.,C o Qo ., 0881,7815,003C,(4A7,004C,5 e HJ¢ 164692 NEXT/0S. BOA=WRT2=EX]T b L Page 1092 Clock rate = 160ns Z=< CMT098.MCX OSR.MIC Ll L D D ; INC REGISTER BY 4 CMTO98.MCX OSR.MIC L 5 Page 1093 | CLOKX Rev 13,00, Clock rate = - uns 1M(01) MICRO2 28-NOV-83 16:30:35 : 0S.B0A-QUAD Native Mode Operand Specifier 1 ; : 144731 144732 JJoc : 05.B0A~GUAD'' Native Mode Operand Specifier RN AR R AR AN AR RR AR AAR AR AR AR A AR KA AR AR AR ARk kR Ak ek Ak k% ;44733R KRR 44734 144735 SUBROUTINE CALLED BY OPERAND SPECIFIER ROUTINES TO EVALUATE THE BASE OPERANS ADDRESS [N INDEX MODE ;46736 1464737 KRKAAARARR AR ANRRAA AR AR Rk Rk k kR kb ko sk ko e e sk e ok e o okt e ook ek ek o 144738 144739 U 0431, QC80,058E,403C,C467,0048,8 ) U 0432, 0181,4C11,0030,4487,008E,F U 0433, 0080,0036,4030,0047,00FD,( U 0434, 0085,473C,003C,(467,0040,¢ 244751 NERT/0S.80 -EXIT.Q :zzggg ;001 mmmmm ee NEXT/1E. ADDR.MODE 144752 ;64753 ;64756 144757 44758 164759 ;44760 164761 U 0435, 0481,7816,403D,8407,0048,¢ U 0436, 0081,7815,003C,0467,0040,E U 0437, 0081,7002,402D,A467,0040,E U 0438, 0480,058E,403C,C467,0040,E U 0439, 0081,7816,403D,8407,0048,p REGISTER MODE ILLEGAL ADDRESSING MODE (Rn)+ - ot LITERAL MODE TELL CHARLIE -(Rn) AUTODECREMENT MODE MDR GETS GPR(RNUM)-SIZE GPR(RNUM) <= GPR(RNQM)-SIZE RBS-~, == msmmm S*#cons ILLEGAL ADDRESSING MODE NEXT/0S.BOA=EXIT 10107 AUTOINCREMENT MODE I*¥cons IMMEDIATE MODE IGNORE ALL IMMEDIATE DATA SIZE 1S FROM ROM MDR RIGPR.R]_RB~CONX.SIZ, PUSH TELL CHARLIE MDR GETS GPR(RNUM) >f‘ U 0430, 0€80,0036,4030,0047,00F0D,C 144740 =0000 F44741 0S.B0A=Q UAD 144742 NEXT/JE ADDR.MODE J44743 44747 144745 :000] =mmmmmmm 144746 MDR_RLGPR.RJ, NEXT/0S.BOA=INC 64747 44748 144749 50010=mmmmmmmm oo PC_MLPCI+2 ITO[BJ ;44750 RBS <= IRNUM!SIZE'!- e oo ae ; Addr RELATIVE MODE 144762 164763 VA_PC+SEXT(XB)+1 PC _PC+I, 144765 44766 ;01105 =mmmmmmommmsamaeeissmnans ; D(Rn) DISPLACEMENT MODE + T MDR_SEXT(XB)+R[GPR.R) PC_PC+l, : MDR GETS GPR(RNUM)+DISPLACEMENT 44768 ;44769 ;64770 L T ———— MDR_XB PC_PC+4, 144764 44767 244777 144772 44773 44774 ;44775 44776 h4777 44778 J44779 SIZECIDEP],NEXT/0S.BOA-RELATIVE : VA GETS PC+DISPLACEMENT+SIZE SIZECIDEP],NEXT/0S.BOA-ERIT - NEXT/0S.BOA=EXIT 1000====m=mmmmmmmmammmmaann MDR RIGPR.R], - e PC_PCsl, SIZECIDEP],NEXT/0S.BOA~READ (Rn) REGISTER DEFERRED MODE dAddr RELATIVE DEFERRED MODE MDR GETS CONTENTS OF NEXT/05.BOA=EXIT 1001 ===mmmmm VA_PC+SEXT(XB)+1 a#Addr ABSOLUTE MODE MDR GETS ADDRESS ; GPR(RNUM) VA GETS ADDRESS OF ADDRESS OF GPERAND ; H (MTO98. MCX MICRO2 OSR.MIC 1M(OT) 28-NOV-83 Native Mode Operand Specifier ;44780 J 043A, 0881,7815,003C,(4A7,0048,D 144701 ;22;2% 44784 U 0438, 0CBO,05BE,403C,C4A7,004B,E U 043C, 0C80,0036,4030,0047,00FD,C U 043D, 0C80,0036,4030,0047,00FD,C 144785 :22;39 144788 ;22;33 14791 :22;8% 144794 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : 0S.B0A~QUAD DISPLACEMENT DEFERRED MODE 1101] =mmemmmmmmcmom e mn e m e ; ®(Rn)+ AUTO-INCREMENT DEFERRED MODE ; VA GETS ADDRESS OF ADDRESS OF OPERAND ¢ PC GETS PC+SIZE VA_RLGPR.RJ, : VA GETS ADDRESS OF ADDRESS OF OPERAND NEXT/0S. BOAZREAD. INC 11005 ====m=mmmomem o mes e ; (Rn)CPCI _INDEX MODE PC 1101 mmmmmmmmmmmcaae —mmmmemmaen ; (Rn)[Rx] INDEX MODE NEXT/1E.ADDR.MODE : ILLEGAL ADDRESSING MODE NEXT/IE .ADDR.MODE : ILLEGAL ADDRESSING MODE 144795 OBEF: ;*axxxxxxxFORCE ADDRESStt*kkkkns; 144798 MDR_M{PCJI~-CONX,S12,SIZELIDEP], .22288 e e NEXT/OS.BOA-WRTZEX]T ——— : . BOA IS UNINCREMENTED PC : 64801 04C7: ;64802 FREE,Q4C7: . U Q4(7, 0880,05F7,0080,04A7,0000,1 ;44803 ;46804 1644805 Page 1094 :1070====2cmmococescnoniacen <==; @D(Rn) VA_SEXT(XB)+R[GPR,R] PC PC+I, SIZECIDEP],NEXT/0S.BOA-READ 144796 0S.BOA=EXIT.QUAD: 144797 e U OBEF, 0C81,A710,0030,0467,0042,E M5 ettt L L L ELE L L L L L LT ; VA _R[TEMPOJ.ASL.SIZE, : S12ECIDEP],RETURN [1] : TELL CHARLIE TELL CHARLIE CMT098 . .MCX OSR.MIC ’ NS fi 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 ¢ 0S.MOD Native Mode Operand Specifier MICRO2 1M(OD) 164814 i 1 TR PR L 144809 164810 144811 ;64812 144813 R 0s.MoD"! Native Mode Operand Specifier ;44806 .Toc 144807 144808 Page 1095 R A RN IR AR AR AR AR AR RN AR AN RRAARAR - AR A AR R AR Rk khk ko MDR is saved in the Q-register and is always destroyed. Evaluates read type operands and places the result in MDR. MTEMP0O is destroyed. Read access for the operand is checked. R AR R AR AR KRR A Ak kA kAR AR kAR AR AR R kA A ARk d ke Ak bk & 164815 ;4482 o Bk S .. - o~ L o B o R TR TR TR 0c87,781¢,403D,8407,004C,9 ol Sl L o R T ¥ 0487,7002,402D,A4A7,004C,9 2F 0117, FoSN oS O S Pl S F 0118, 0087,2004,703C,14A7,1011,E P o v} CF 28 2T 2 P T MR L 0116, 0887,7815,003C,C4A7,004C,9 T o 0115, P ..o, m. ;22 P ; 0114, 0885,473(,003C,04A7,006(,9 RO O N N WAL N N 144 =2 OO0 NN :22 Rn FPA_Q_MCMDRI MDR_RLGPR.RJ, 14 CLOBBER MTEMPO DEF, IRDX [1) NEXT/0S.MOD~ AUTO. INC (Rn) + AUTOINCREMENT MODE PLACE ADDRESS OF OPERAND IN VA PUT GARBAGE IN MTEMPO INC GPR(RNUM) BY SIZE NEXT/IE .ADDR.MODE UNPREDICTABLE, TAKE ADDRESS MODE FAULT $0071mmmm LITERAL MODE S*#cons ILLEGAL ADDRESSING MODE ;0007 ~====smmmcmomammanaaee = FPA_Q MCMDRI VA RLGPR.RI, s I*#cons m oo NEXT/IE . ADDR.MODE PUSH RBS=, 10101 smmmmmmemmmmeee s e UA_PC+LEXT(XB)+] PC_PC+] Addr SIZECIDEP],CLOBBER RMTEMPO DEF, $0110mmmmmmmmmem o e e SIZECIDEP], CLOBBER MTEMPO DEF, ;011]=mmemmmmamamncc e o mm——VA X8 PC Toth CLOBRFP ATEMPG DETY, NEXT/uS.MOD-READ.SAV.EXIT 118: ;1000 mmm e “ne FPA_Q M[MDR] VA _RIGPR,R], CLOBBER MTEMPO DEF, NEXT/0S.MOD-READ.EXIT RELATIVE MODE D(Rn) DISPLACEMENT MODE ADDRESS OF OPERAND IS REG + DSPLMT PUT GARBAGE IN MTEMPY VA GETS ADDRESS OF OPERAND VA_SEXT(XB)+R[GPR.R] PC PC+], NEXT/0S .MOD-READ . SAV.EXIT 117: TELL CHARLIE ADDRESS OF OPERAND IS PC + DSPLMT PUT GARBAGE IN MTEMPO NEXT/0S.MOD-READ.SAV.EXIT 116: [MMEDIATE MODE -(Rn) AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) - SIZE VA GETS OPERAND ADDRESS RBS GETS !RNUMISIZE!-! VA _RKLGPR.R]_RB-CONX.S!Z, NEXT/0S.MOND~READ.SAV.EXIT 115: REGISTER MODE PLACE OPERAND (GPR{RNUM)) IN MDR PUT GARBAGE IN MTEMPO SAVE MDR IN Q BEFORE CLOBBERING IT CLOBBER MTEMPO DEF, 13: N 05 I DN 0 05 2 D UHE HT 119 112: LN B I :22 T VALALA 0113, 0C80,0036,4030,0047,00FD,C ;44 0 G0 00 G0 00 0000 Co €0 € Co 00 00 C0 OO 00 Co 00 0o 00 00 00 € O 0o O €0 Co 0o Co o 0112, 0C80,0036,4030,0047,00FD,C :2282 AP 0111, 0887,2004,703C,C4A7,104C,8 ;4482 16482 AN =2 OO NN NS NN — O ;zzgs NN LS (AN =2 D OO NN SN 0110, 0487,2004,707C,C467,1000,1 :46816 110: ;64817 0S.MOD: ;44818 144819 4482 . ANAddr ABSOLUTE MODE NEXT 4 BYTES OF 1-STREAM IS OPERAND PUT GARBAGE IN MTEMPO VA GETS ADDRESS OF OPERAND (Rn) REGISTER DtFERRED MODE OPERAND ADDRESS IS GPR(RNUM) PUT GARDAGE IN MTEMPO ; H CMTO98,MCX OSR.MI( MICRO2 IM(01) 28-NOV=83 Native Mode Operand Specifier :44858 119: . U119, 0C87,7816,403D,8407,004C,A 144859 144860 '22325 ; 1010mmcmeecmmann e —e————; ab(Rn) ; SIZECIDEP],CLOBBER MTEMPO DEF, +44873 11C: ;zzg;g 144877 .zzg;g DISPLACEMENT DEFERRED MODE OPERAND IS REG + DATA FROM [=STREAM + PUT GARBAGE IN MTEMPO 1101 mmm e e ; B(RN)+ AUTO-INCREMENT DEFERRED MODE FPA_Q_MLMDR) VA RLGPR.RJ, : VA GETS OPERAND NEXT/0S.MOD=-READ, INC.4 : CLOBBER MTEMPO DEF, ;zzg;; RELATIVE DEFERRED MODE * VA GETS ADDRESS OF ADDRESS OF OPERAND : PUT GARBAGE IN MTEMPO NEXT ‘0§ . MOD~READ. SAV 144876 11D: 011D, QCB7,2006,721F(C,C047,1440,0 1100) me et a et m e anan ; QAddr VA_PC+SEXT(XB)+] PC _PC+] SI2ECIDEP],CLOBRER MTEMPO DEF, ;22329 144870 Page 1096 ¢ 0S.MOD : 144865 ; CLOKX Rev 13,00, Clock rate = 160ns VA _SEXT(XB)+RLGPR.R] FC _PC+I, 1446869 U 011c, 0080,0036,4030,0047,00FD,C 6 144864 144868 11B: U 0118, 0087,2004,703C,C4A7,104(,C B NEXY/0S.MOD=READ., SAV 144843 11A: v 0114, 08B7,7815,003C,C4A7,004C,A 16:30:35 SAVE MDR IN 0 1 1100mmmm e 1110~mm e e : (Rn)[Rx] NEXT/IE.ADDR.MODE GPR(RNUM) ; PUT GARBAGE IN MTEMPO —————— : (Rn)CPC] INDEX MODE PC » ILLEGAL ADDRESSING MODE fPA_Q_MDR MTEMPO_RGPR.RJ, PUSA,BUT/LOD.BRATNEXT/0S. B0A YSAVE TELL CHARLIE INDEX MODE INDEX REGISTER IN TEMPO * CALL RGUTINE TO GET BASE OPERAND ADD 144880 11: . 0V1E, 0080,0036,4070,0054,0000,1 44881 0S,MOD=READ.EXIT: 144882 1110 mmemmemm s me e ———— o 144883 READ.MOD,SIZELIDEP], * ,zéggg IRDX [1] : READ MEMORY AT VA SIZE=DSIZE :zzggg 0S.MOD=AUTO. INC: 144888 READ.MOD,SIZECIDEP], * READ MEMORY ADDRESS VA AND SIZE=DSIZE ;64890 PUSH RBST, * SAVE STATUS OF GPR(RNUM) ON R8BS 144889 ) C4CB, 04BS,573D,0070,C054,0000,1 RCGPR.R] RB+CONX.S1Z, 22331 IRDX [1) 1448946 PR 1464895 , J 04CA, 0B881,259:,5020,0050,104C,8 R e L LR DL FPA_Q M[MDRI, 44896 READ.POD,SI2ECIDEPY, 144897 '22388 CLOBBER MTEMPO DEF, IRDX [1] L e L <~ GPR(RNUM)+SIZE L L: { SAVE MDR N Q * MDR GETS MEMORY(VA) : H 144900 0S,MOD=READ,SAV: 144901 jemincscecamcsscssusuwssunesess- ; 44902 fPA_Q MLMDR], © 44903 zzggg GPR(RNUM) : 144893 0S.MOD=READ.SAV.EXIT: _ U 046C9, 0887,2592,5C70,0054,1000,1 * S1ZECCONG],READ, NEXT/0S,MOD-VA_MDR PUT GARBAGE SAVE MDR IN Q : MDR GETS MEMORY(VA) ; 144906 0S,MOD-VA_MDR: U 0418, 0881,2002,403D,8447,0011,F 144907 44508 164909 1 Seeecmecmeacsmescceaesoananean ; VA_MIMDRY, : NERT/0S, MOD=READ EXIT IN MTEMPO : VA GETS MDR H H (MT098.MCX OSR.M IC C 6 1M(01) 28-NOV-83 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns MICROZ ¢ 0S,MOD Native Mode Operand Specifier ) 04CC, 0485,573D,002C,C050,004(,B ’ ' b b 3 . Ny — . Ealat et Lo [ 0000 C ;44910 0S.MOD-READ.INC.4: READ, RCGPR.R]_RB+CONX(4), PUSH RBS+, NEXT/0S.MOD=-VA_MDR MDR <= MEMORY (VA) GPR(RNUM) <= GPR(RNUM)+4 RBS GETS IRNUMISIZE:+: Page 1097' v D 6 CLOKX Rev 13.00, Clock rate = 160ns MICROZ 1M(01) 28-N0V783 16:30:35 Native Mode Operand Specifier : 0S,ADD (MT098.MCX OSR.MIC ;446916 ,70C "' ;44917 144918 164919 ;44920 ;449271 ;64922 ;44923 0120, 0(80,0036,4030,0047,00FD,C 0121, 0087,2004,703C,C467,004D,3 0122, 0481,2592,5030,0047,004C,D 0123, ] 0¢80,0036,4030,0047,00FD,( 0124, 0087,2592,5030,0047,004C,F 0125, u 0126, 0487,7816,403D,8407,004D,0 . 0887,7815,003(,C047,004D,1 0127, 0487,7815,0020,A047,004D,1 ; ; : 0S.ADD" Native Mode Operand Specifier RN R RN N KRR N KRR R ; ; RN AR R AR AN AN AR R AR AR A AR AR R AR AR A R KRR R R operand in MDR. MTEMPO is destroyed. . No access to the operand is checked. AR KRR AR AR KRR RN RN ;44924 ;AR AR KRR AR R 144925 244926 120: 2446927 0S.ADD: :44928 00 mwmmmmm e n e m v m e, Rn NEXT/1E.ADDR.MODE ;44931 121 144932 ;000 =mmemmmmm e e ac o n e ; G _M[MDR] MDR _RLGPR.RI], ;; u 0129, 0c87,7816,403D,8407,004D,¢2 Ak dhhdddek ke ;223%? NEXT/0S.ADD=-AUTO, INC REGISTER MODE 144936 122: 144937 TELL CHARLIE SAVE MDR IN Q@ NEXT/0S.ADD~IMMEDIATE I*#cons SAVE @ IMMEDIATE MODE .223%8 ;0010~wmemmcenmmcc e c -; Q_MIMDR], : 2446940 123 2232; Re e L e Le D L L eH NEXT/1E.ADDR.MODE 5 S*#cons LITERAL MODE ILLEGAL ADDRESSING MODE 144943 1241 244944 ={(Rn) AUTODE CREMENT MODE 144945 ,22829 ;0100===mmmmmmcmmmmemmmcen—————— ; Q_MIMDR], ;: CCOBBER MTEMPO DEF, ; NEXT/0S.ADD-AUTO,DEC 44948 125: 44949 10107 ~mmmeomm e cicc e n sH VA_PC+SEXT(XB) +1 PC PC+] ; Addr RELATIVE MODEC ,2232} NEXT/0S.ADD~RELATIVE ;44953 126: $44954 44955 O L H D(Rn) DISPLACCMENT MODE MTEMPO_SEXT(XB)+R[GPR.R] PC_PC+I, ; MTEMPO GETS ADDRESS SIZECIDEP], ; INSTRUCTION DETERMINES THE SIZE ;64933 144950 22329 44958 1271 44959 .5282? 144964 22822 CCOBBER MTEMPO DEF, SIZECIDEP),CLOBBER MTEMPO DEF, NEXT/0S.ADD=DISPLACEMENT ; ;; H b H NEXT/05.ADD-DISPLACEMENT ; J1000==mmmeemm e mmm e cma e ca e ; 0_M[MDR] MDR_RIGPR.RI, (COBBER MTEMPO DEF, IRDX (1] ; :; : ;1001-===mm=m==mmccseceecaoanaaa ; _PC+SEXT(XB)+] PC P(+] ,; VA 144970 NEXT/0S.ADD-READ.SAV,EX]T SIZ2ECIDEP),CLOBBER MTEMPé DEF, GPR(RNUM) IS THE ADDRESS OF OPERAND PUT GARBAGE IN MYEMPQ TELL CHARLIE SAVE MDR IN Q PUT GARBAGE IN MTEMPG ADDRESS 1S UPDATED PC+DISP PUT GARBAGE IN MTEMPO ; ;011]=m=ccemcccmecmcmmocccnanaa ; MTEMPO_SEXT(XB)+RLZERO] PC_PC+4,; ;64968 44969 k% koo AUTOINCREMENT MODE 144967 129: . ARk (Rn) + 44963 . ARN AR AR AR "; ILLEGAL ADDRESSING MODE :223%8 44962 128: - AR Ak A A AR MDR is saved in the @-register and is always destroyed, Evaluates address type operands and leaves the address of the o Ut 0128, 0(87,2004,707C,(467,0000,1 ‘ Page 1098E : a¥Addr ABSOLUTE MODE RTEMPO GETS ADDRESS, ALWAYS 4 BYTES PC <~ PC+SIZE (Rn) REGISTER DEFERRED MODE GPR(RNUM) IS THE OPERAND ADDRESS PUT GARBAGE IN MTEMPO dAddr RELATIVE DEFERRED MODE VA GETS ADDRESS OD ADDRESS OF OPERAND PUT GARBAGE IN MTEMPO (MT098.MCX OSR.MIC 6 E MICRO2 1M(01) 28=NOV=-83 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns Native Mode Operand Specifier : 0S.ADD 11010 remrnac e mcanan eH aD (Rn) 44973 228;2 SIZEEIDEPJ,CLOBBER MTEMBO DEF NEXT/0S.AuD-READ,SAV.EXIT PUT GARBAGE IN MTEMPO 44976 128: 44977 44978 AUTO-INCREMENT DEFERRED MODE 1101lmmm e m e e e n e : d(Rn)+ Q_MICMDR] VA R{GPR,R], H; GPR(RNUM) [S ADD OF ADD OF OPERAND CCOBBER MTEMPO DEF, N PUT GARBAGE IN MTEMPO ;44971 12A: 449?2 012A, 0B887,7815,003C,C4A7,004D,2 0128, 0887,2004,703C,C4A7,004D,4 v 012C, 0¢80,0036,4030,0047,00FD,C VA _SEXT(XB)+RIGPR.R] PC_PC+l, 223;8 NEXT/0S.ADD-READ. INC 4 144981 120 NEXT/1E.ADDR.MODE ;; ; H : MTEMPO RLGPR.RJ] Q_MDR, 2282? PUSH,B0T/LOD.BRA, NEXT/OS BOA (Rn""PC] INDEX MODE PC (Rn)CRx] INDEX MODE SAVE INDEX REGISTER ; ; PLACE ADDRESS H TELL CHARLIE ILLEGAL ADDRESSING MODE R 11101 memccmcnccnn e c e r v cecccccn- ; 44985 DISPLACEMENT DEFERRED MODE H VA GETS ADDRESS OF ADDRESS OF OPERAND ;1100====e====ccemumcccoacacanan : zzggg 44984 12D: 012D, 0487,2004,71FC,C047,0440,0 Page 1099| 144988 12€: 44989 0S.ADD~INDEX: 012, 0C81,B8002,407D,8467,0000,1 44990 64991 R MDR_MIVAJ, Zzggg IRDX (1] ; 44994 0S.ADD=IMMEDIATE : Y44995 1 emememmeeeeeeeeeceee e e ce———— ; 04CD, 1487,A002,403D,8467,004C,E 28CE, 0881,A711,00%0,0487,0014,0 Q4CE, 0€81,7036,64030,2047,0014,0 . 04CF, 0085,4735C,007¢C,(467,0000,1 ;44996 MDR MLPC], : ;44998 PATCH,NEXT/0S.ADD- INC.PC H ;44997 CLOBBER MTEMPO DEF, : :46999 28(E: 45000 2 000 jmmemmmmsceccccccccmmecccenccee- ; 145001 PC MLPCJ+CONX.SIZ, : ;2%88% NEXT/0S.WRT1 IN MDR PC IS THE ADDRESS OF IMMEDIATE DATA PUT GARBAGE IN MTEMPO xxx JUMP TO PCS *nw *x*x PCS MICROWORD *w» PUSH PC PAST IMMEDIATE +45004 0S.ADD=INC.PC: 145005 THRRBRANBBUERARNBRARNUHRRARRUBIY; MICROWORD REPLACED IN PCS ;2288? PC_PC+]1 MB_XB,NEXT/0S.WRT1 : PUSH PC PAST IMMEDIATE DATA ;45008 0S.ADD~AUTO.DEC: 545009 esssscoccesocscccmssssscacnmeoos : :45010 MDR_RLGPR.R]_RB~CONX.S1Z, ;; ;45017 ;228}% PUSR RBS-, IRDX [1] ; : 1S GPR(RNUM) ~S1ZE SAVE STATE OF REGISTER ADDRESS ;65014 0S.ADD-RELAT]VE: 04p0, 081,25%92,5030,0047,0012,F 45015 45016 0 :228%; jeeemecemcemecccemccmmmmcese ; 0_MCMDKI, ; NEXT/0S. ADD INDEX ; SAVE MPR IN Q ;45019 0S,ADD=DISPLACEMENT: 245020 04D1, (C81,2004,7070,0467,0000,1 DATA ;45021 ;465022 0 jememecccccmccsccccccccsacmoeoas H 9 M[MDRJ MDR_RLTEMPO], 1RDX 1] ; : GET ADDRESS FROM TEMPO ; ; (MT098.MCX OSR.MIC MICRO? MON 28~NOV-83 Native Mode Operand Specifier 16:30:350 6CLOKX Rev 13.00, Clock rate = 160ns F S.ADD i . . . . . . . U 04b4, 0885,573D,006(,C050,0000,1 0 . ) OIS RO T nl i NN N G A NI . ’ N U 0403, 0C85,573D,007C,C047,0000,1 aE l . e e a i ) e . o e ViU + = OO0 . B LA N N 3 [eleleleleleleleleleololelelelelele] u 04D2, 0081,2592,5060,0050,0000,1 ) OO0 NN IS AN . . P R P i . RO NI RO 145023 0S,ADD=READ.SAV.EXIT: G oy o e ! o T - Q_MCMDRY, STZECLONG],READ, IRDX [1] SAVE ANY FIRST OPERAND GET ADDRESS OF OPERAND 0S.ADD~AUTO. INC: RCGPR.R]_RB+CONX.S1Z, PUSH RBST, INC REGISTER BY SIZE 1RDX (1] 0S.ADD=READ, INC.4: O O READ, - REGPR.RI_RB+CONX(4), PUSH RBS+, IRDX (1] ; Page 1100; GET ADDRESS OPERAND ALWAYS BUMP REG BY FOR IN INDIRECT OSR SAVE REG CONTENTS IN CASE OF PROBLEMS - : H {MT098.MCX OSR.MIC G 6 (LOKX 1M(01) 28-NOV-83 16:30:35 MICRO2 ¢ 0S.VADD Native Mode Operan d Specifier 0087,7815,003C,C047,004D,5 U 0137, 0C87,7815,002D,A047,004D,5 U 0138, (086,058E,407(,(467,0000,3 ] Native Mode Operand Specifier kAR AR ; MDR : ; operand in MDR. MTEMPO is destroyed. H i : 0S.VADD"' i A Rk kR R AR R AR R AR A A R AR A R AR A R A AN R AR A KRR AR AR KRR AR A AR R AR Rk k% is not saved and is always destroyed. i Evaluates address type operands and leaves the address ot the 130: 0S.VADD: i $0000=====mmmmmmmmm o m e o : Rn REGISTER MODE WB_RITEMP1].SR.5(IF MDR IS 0), ; SEE IF POS IS GT 31. FOR PAUL IRDX (41 131 ;00071 === mmm = MDR RLGPR.R, CLOBBER MTEMPO, 132: ¢ S*#cons LITERAL MODE TLLEGAL ADDRESSING MODE TELL CHARLIE : SAVE STATE OF REGISTER FOR RESTART : RELATIVE MODE ¢ ADDRESS 1S UPDATED PC+DISP i PUT GARBAGE IN MTEMPO ;011Q==m=m====cmm=cmccamaacaeae; D(Rn) DISPLACEMENT MODE MTEMPO_SEXT(XB)+RIGPR.R] PC_P(+i,; MTEMPO GETS ADDRESS SIZECIDEP], 138: ; ;0101 -===m=m====m=mmm e mmemeee; Addr VA_PC+SEXT(XB)+] PC P(+] SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S . VADD=DISPLACEMENT 137: : SAVE MDR IN Q ;0100====mmmm=mmmmmemecmeama———- ; =(Rn) AUTODE CREMENT MODE MDR_RLGPR.R]_RB=CONX.S12Z, : ADDRESS IS GPR - SIZE NEXT/0S. VADD=INDEX 136: : PUT_GARBAGE IN MTEMPO ;00]]==mwmsmmmmme—m———————e—e——- ; NEXT/IE.ADDR.MODE PUSR RBS-, IRDX [3] 1350 ; SAVE RESULT FOR LATER ;0010-====m—cccemmmccnnnan e ; 1*kcons IMMEDIATE MODE RCTEMPOI _MCPC], : PC IA ADDRESS OF IMMEDIATE DATA NEXT/0S . VADD=INC.P( 134: ; PAUL HAS SET MDR TO ZERO m e ; RN+ AUTOINCREMENT MODE : GPR(RNUM) IS THE ADDRESS OF OPERAND NEXT/0S . VADD-AUTO. INC $"LET INSTRUCTION DETERMINE SIZE : ;0117 =m==mcommcemosomcacocacanas ; @#Addr ABSOLUTE MODE ;1000=======-===m==m=mm=mmmoma- : MDR_RIGPR.RJ, ; (Rn) GPR(RNUM) REGISTER DEFERRED MODE IS THE OPERAND ADDRESS MTEMPO SEXT(XB)+R[ZERO] PC_PC+4,: RTEMPO GETS ADDRESS. NEXT/03, VADD=DISPLACEMENT } PC <= PC4SIZE CLOBBER_MTEMPO, IRDX (3] i i No access to the operand is checked. ALDS_SIGND,SIZECLONG], ) | ;tt*t****t**********t**fi******fi***t******t**********t******t*****t**t*tt*t**** = O N0 0 ~NOM A LSNP =2 OO0 NON N IS WNNS = OO 0O YRR [ U 0136, I P i U 0135, V487,7816,403D,8407,0013,¢ | i NS NN 0485,473(,007C,(467,0000,3 [ U 0134, .T0C '* 133: 2 O D00 N T I P J 0133, 0€80,0036,4030,0047,00FD,C D00 NN LS AN T T 0885,A592,4030,0047,004D,8 A U 0132, DN = O e 0486 ,05BE ,403C,(467,004D,9 T u 0131, 0081,2251,8060,58C7,0000,4 e u 0130, P N A R R A S N A S o S N N A T Al Al 2 A A Sl B Ll o o o o e o R I A I I A L7 LA LA LA A L LA WU U LA LA VAT UL LT LA UL U UL LT U L U LT A AT T T Lt i Ut i v v i o lwleleleleleleolololelelolole] CODOOOOOODOOODODOODOCOOOOOOOODTOOCOOOTOO O OO NI VI VATV LSS O DS O IS B 2 s O OCOVVO0COCCOCCOCO00 00 TM VNN SN OO O VNS NN 45041 ; Page 1101! Rev 13.00, Clock rate = 160ns : PUT GARBAGE IN MTEMPO ALWAYS & BYTES —mn—= = OO IDEP],CLOBBER MTEMPO DEF, . EXIT 0S.VADD=READ —OD—= ,CLOBRER MI_MPO DEF, DD=-READ.EXIT - Pt o oy o o —Q b — O o e e e e o Mmoo b ¥ = e g g Y O TELL CHARLIE INDEX MODE ; SAVE INDEX REGISTER 7L0D.BRA,NEXT/0S.B0A - AUTO~-INCREMENT DEFERRED MODE (RN)CPC) INDEX MODE PC ILLEGAL ADDRESSING MODE (Rn)[Rx] MPOJ_RLGPR.RJ, Sy S ¢ MDR_MLVAJ, : PLACE ADDRESS IN MDR 0S.VADD~DISPLACEMENT: T e g e e e e o e e g Bt e g o m ® ; GET ADDRESS FROM TEMPO d MDR_RITEMPQ], 0S.VADD=READ.EXIT: b md emih v IRDX [3) sI1ZEELONG], b eh ah mh b e h e : READ MEMORY AT ; ; ; MDR <~ MEMORY(VA) GPR(RNUM) <= GPR(RNUM)+4 RBS GETS IRNUMISIZE i+ : VA SI12E=DSIZE 0S.VADD-READ.INC.4: o 0485,573D,007C,(047,0000,3 e} b bt 0c8%,7036,4030,2047,004D,5 L Y 0085,573D,006C,C050,0000,3 e ; b oD et b D g = b ed e a(Rn)+ ; GPR(RNUM) IS ADD OF ADD OF OPERAND ; PUT GARBAGE IN MTEMPO e 0480,0036,4060,0050,0000,3 DISPLACEMENT DEFERRED MODE 3D (Rn) ; VA GETS ADDRESS OF ADDRESS OF OPERAND ; PUT GARBAGE IN MTEMPO Y+RIGPR.R] Pl P(+], b e b 0080,058E,4070,0467,0000,3 b i md N R R R A N S N R R A Y o Tl o - S S LA U A AU LT LA LT ALY U DT LTV AT LT UL U A LT U U U u ; aAddr RELATIVE DEFERRED MODE ; VA GETS ADDRESS 0D ADDRESS OF OPERAND ; PUT GARBAGE IN MTEMPO PC_PC+] ad 0481,8002,407D,8467,0000,3 b U +SEXT(XB)+] | i /0S.VADD~READ.INC.4 b 0086,058E,41F(,C047,0440,0 Page 1102% CLOKX Rev 13.00, Clock rate = 160ns : 0S.VADD BER MTEMPO, D e 0¢80,0036,4030,0047,00FD,C 6 [GPR.R], B 0C86,05BE,403C,C4A7,004D,7 AE 2k 2k el Bl kRl kAl Sl S ol o v vt L v v v i 0087,7815,003(,C4A7,004D,6 _,em e e e s 0487,7816,403D,8407,004D,6 H 16:30:35 —mMmUoo MICRO2 Native Mode Operand Specifier Lo B LB DD D BN B D AN NN AN W NN N T NN NN N PO St il b 2 S D 0 S OO OO0 OO0 OO OO 00 — OO DD O N L AP =S N 00 O N S AN = O 000 NSNS AN = O OO NN S ) = O 0 N NN OSR.M IC 28-NOV-83 -83 o o e e Pl Sl el el g i v i i (MT098. M X .P(: US,VAPD=INC PC_PC+] MB X8, NERT/0S.VADD~DISPLACEMENT ; PUSH PC PAST IMMEDIATE DATA INC: 0S5, VADD=AUTO. RLGPR.RJ_RB+CONX.SIZ, PUSH RBS¥, IRDX [3] * INC REGISTER BY SIZE r ; H —— — e (MT098.MCX MICROZ2 OSR.MIC e 1M(01) 28-NOV-83 Native Mode Operand Specifier ;2242? .T0C "' 16:30:35 1 e 6 CLOKX Rev 13.00, Clock rate = 160ns Native Mode Operand Specifier 345152 PRRH R KR KRR AR RN SRRk kR KRR : OS.WRT1" ARk T ERRAN AR AR RN RN R TR IR R RN $45153 145154 MDR is not saved and will be destroyed in relative deferred, displacement deferred and auto-increment ;45157 ; operand in VA for memory operands and in RNUM for operands ;45155 ;45156 ; 145158 ; 145159 245160 ; :(,5161 Page 1103 : 0S.WRT deferred addressing modes. Evaluates write type operands . leaving the address of the in GPR's, MTEMPO is destroyed. No access to the operand is checked. :*kw*********t*t*****t***k*t*****t**t*t************\H{**i*t*t*****t***t**i****t 245162 ;45163 :45164 2465165 140: ;45166 0S.WRT1: U 0140, 0186,0037,0075,5047,0000,1 U 0141, 0486,05BE,403C,C4A7,004D,3 45167 2465168 10000===mwmmem e e mnemcam e : Rn REGISTER MODE MUTEMPO] ZLITOLOAA], ; PUT GARBAGE IN MTEMPO IRDX [1] ; JUST RETURN =~ IRD1 PUT REG # IN RNUM 265171 141 ;65172 ;000)—memmm e VA_R[GPR.RJ, CLDBBER MYEMPO, ;2;}98 ;45173 c e e; ; (Rn)+ AUTOINCREMENT MODE PLACE ADDRESS OF OPERAND IN VA ; PUT GARBAGE IN MTEMPO :fig};g NEXT/0S.ADD=-AUTO. INC J U 0142, 080,0036,4030,0047,00FD,C ;45176 142: ;zg};g ;0010=wmromcmm e anm e cem e ; I*#cons IMMEDIATE MODE NEX1/1E.ADDR,MODE ; UNPREDICTABLE, TAKE ADDRESS MODE FAULT U 0143, 0C80,0036,4030,0047,00FD,¢ 45179 143: :zggg? ;001 mmm e e mwewmeew=: NEXT/1E.ADDR.MODE s S*%cons LITERAL MODE ILLEGAL ADDRESSING MODE 245182 144: U 0144, 0(85,473C,007¢,C4A7,0000,1 265183 0S.WRT1-AUTO.DEC: 265184 ;0100 e e mmm=; 265185 VA_RLGPR.R]_RB=-CONX.SIZ, ; ;45186 PUSH RBS~-, ; ;zgggg IRDX [1] ; «(RN) AUTODE CREMENT MODE CPERAND ADDRESS IS GPR(RNUM) =~ SIZE VA GETS OPERAND ADDRESS RBS GETS IRNUMISIZEi~! 245189 145: ;65190 0S,WRT1=-RELATIVE: ;4519 U 0145, 0887,7816,407D,8407,0000,) ;1010 =eemmccccnccr e e e cea ; 145192 VA_PC+SEXT(XB)+] ;zg}gg IRDX (1] ;45192 PC P(+] SIZECIDEP],CLOBBER MTEMPO DEF, 245196 146: 245197 0S,WRT1=D]SPLACEMENT: ;65198 ) U 0146, 0C87,7815,007C,C4A7,0000.1 2465199 165200 265201 . RELATIVE MODE ADDRESS OF OPERAND IS PC ; PUT GARBAGE IN MTEMPO + DSPLMT H ;0110mmmmemecenvcnenreensemnnan- ; VA_SEXT(XB)+R[GPR.R] PC _PC+], SIZECIDEP),CLOBBER MTEMPO DEF, IRDX [1] Addr D(Rn) DISPLACEMENT MODE ; ADDRESS OF OPERAND IS REG - DSPLMT ; PUT GARBAGE IN MTEMPO ; VA GETS ADDRESS OF OPERAND : i MICRO2 1M(01) 28=-NOV-83 : 014B, 0C86,05BE,403C,C4A7,004D,8 014¢, 0C80,0036,4030,0047,00FD,C : N ; ; 0086,05F7,01FC,C047,0041,0 04DA, 0080,0036,4020,0050,004D,¢ A S R 014D, U : 04bB, U485,573D,002C.L050,004D,C 04DC, 0(81,200,407D,84A7,0000,1 N = OO M NI S T ik b i eacd cnd —b —3 2 o2 3 QOOCOOCOO = OO O NN e v v i POMN NN AN N N R AR A N DU RO PO NU R PO MO UMD PO =t ; 2 D ; AL = D O 00 NON A D (AN = O OO NN SN 014A, 0087,7815,003C,C4A7,004D,A ; I : (LOKX Rev 13.00, Clock rate = 160ns 1w e m e mmw===; * © CLDOBBER RTEMPO DEF, : IRDX €13 149; OO~ O : ? Page 1104| : 0S.WRT1 VA_XB PC_PC+4 1481 AN S S BN S D8 8 8 : PR AR vivavivawg ; NV RN NUNL MM 0149, 0487,7816,403D,8407,004D,A [ U o o e e v v vt : L LE L v n : ACRUNCNUNSNINUNG AU NI OO NINLNI NI NL N NN NN NI NUNJN) AL AU ; PUALNLNU AU 0148, 0886,058E,407C,C4A7,0000,1 : ; Y o P N A A O A T Al bl AN U T LT T T LT U U T v : P R N N N A A N WYL G T U L LA U LT 0087,7002.,406D,A4A7,0000,1 J 16:30:35 6 —_ Native Mode Operand Specifier NN NUNONY QSR.MIC TN (MY098.MCX J ;1000=-~-m=mmmmmmecemmem—————— : (Rn) VA_RLGPR.R], CLOBBER MTEMPO, : 11001 =mmemmmcmmmmmc e e n—————— ; @Addr UA_PC+SEXT(XB)+] PC_PC+I, SIZECIDEP],CLOBBER MTEMPO DEF, : PUT GARBAGE IN MTEMPO : :1070===~=semmmeocecmmcaem—————— ; 8D(Rn) VA_SEXT(XBY+RLGPR.R] PC_PC+l, : PUT GARBAGE IN MTEMPO NEXT/0S.WRT1-READ : ;1011 =m=eommmmmemmemcmmenm—————— ; @a(Rn)+ VA_RLGPR.R], AUTO-INCREMENT DEFERRED MODE * VA GETS OPERAND CLDBBER MTEMPO, NEXT/0S.WRT1-READ.INC.4 14D DISPLACEMENT DEFERRED MODE : OPERAND IS REG + DATA FROM I~STREAM SIZECIDEP),CLOBBER MTEMPO DEF, 14C: RELATIVE DEFERRED MODE * VA GETS ADDRESS OF ADDRESS OF OPERAND NEXT/0S.WRT1=READ 14B: REGISTER DEFERRED MODE OPERAND ADDRESS IS GPR(RNUM) * PUT GARBAGE IN MTEMPO IRDX (1] 14A: @#Addr ABSOLUTE MODE NEXT 4 BYTES OF I=STREAM IS OPERAND PUT GARBAGE IN MTEMPO VA GETS ADDRESS OF OPERAND GPR(RNUM) * PUT GARBAGE IN MTEMPO : SAVE MDR IN Q $1100===mmmmmmemm st e ; (RMYLPC] NEXT/1E.ADDR,MODE * INDEX MODE PC ILLEGAL ADDRESSING MODE TELL CHARLIE $110 mmmmemcmmem e m e (Rn)[Px] INDEX MODE MCTEMPO] (RLGPR.RJ.ASL.SIZE), : SAVE INDEX REGISTER IN TEMPO SIZECIDEF], BUT/LOD,BRA,NEXT/0S.BOA-WRT1 ; GO TO ROUTINE TO GET BOA 0S.WRT1=READ: --------------------------------- READ,SIZELLONG], : MDR GETS MEMORY (VA) NEXT/0S.WRT1=-DEFERRED 0S.WRT1=READ. INC.4: S READ, - o RCGPR.RI_RB+CONX (4), PUSH P35+, NEXT/0S.WRT1-DEFERRED H = ¢ Y o . ? Y MDR <=~ MEMORY(VA) * GPR(RNUM) <~ GPR(??UM)'Q :; RBS GETS IRNUMISI el : 0S.WRT1~DEFERRED: YA_NIMDRI, IRDX (1] : PUT ADDRESS IN VA : | | ; CMT098,MCX MICRD2 TM(01) 28=NOv=83 Native Mode Operand Specifier 0OSR.MIC H 16:30:35 K 6 I ST T CLOKX Rev 13.00, Clock rate = 160ns : DS.WRT? ;22522 .T0C "' Native Mode Operand Specifier ! Page 1105 : OS.WRT2" ] :(,5255 ;********t*kttttitt*tttt*tt*t**t**t*t**t********k**i*'ltttt*****k***t***'(****** ;45256 MDR is saved in the Q-register and is destroyed in 145257, ;45258 145259 ; 165260 ; relative deferred, displacement deferred and in auto-increment deferred addressing modes. Evaluates write type operands leaving the address of the operand in VA for operands in memory and in RNUM for ;465261 ; 165264 ; '45267 ;*****tk**************k*******k**************t*****t*************************i ;45262 ;45263 ; 145265 165266 ; operands in GPR's. 0S.WRT2 is one cycle longer than 0S.WRT1 for . auto-decrement, relative, absclute and displacement addressing modes. MTEMPO is destroyed. No access to the operand . is checked. 145268 145269 245270 545271 150: 245272 0S.WRTZ 145273 0000~-=—wsmmmec i n v ———— ; 145274 Q_MLMDR], : U 0150, 0887,2592,5070,0047,0000,1 U 0151, Q087,2004,703C,C4A7,004D,3 U 0152, 0(80,0036,4030,0047,00FD,C ) U 015%, 0080,0036,4030,0047,00FD,C U 0154, 0885,473(,003C,C4A7,0015,0 45275 ;zgggg CLOBBER MTEMPO DEF, IRDX [1] :65278 151 145279 ;0001 ~mmmemm e m e Q_M[MDPR] VA RLGPR.RJ, ;Zggg; NEXT/0S .ADD—-AUTO. INC . 45280 ;45283 152: ;Zgggg 165286 153: ) . U 0156, 0881,7815,003C,C4A7,0015,0 e CCOBBER MTEMPO DFF, e e : (Rn)+ AUTOINCREMENT MODE ; GPR(RNUM) IS THE ADDRESS OF OPERAND ; PUT GARBAGE IN MTEMPO ; SAVE MDR IN Q 1001 0wwmrmmmcc e cam e m e : I*4cons IMMEDIATE MODE LITERAL MODE NEXT/IE .ADDR.MODE ; UNPREDICTABLE, TAKE ADDRESS MODE FAULT NEXT/IE.ADDR.MODE ;001 1=-comemnocmcunanan mm—————— ; S*¥cons ;45289 154; ;45290 V100~ mmmmmmmmceememammae=a~s vA_R[GPR.R]_RB-CONX,S1Z, ; PUSH RBS-, ; NEXT/0S . WRTZ ; —(Rn) AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) - SIZE 245291 ;2258§ 010 m~ em e ; ILLEGAL ADDRESSING MODE VA GETS OPERAND ADDRESS SAVE MDR IN Q BEFORE EXITING e e wme==; Addr RELATIVE MODE 45295 VA _PC+SEXT(XB)+1 PC_PC+I, ; ADDRESS OF OPERAND IS PC + DSPLMT :zgggg NEXT/0S.WRT2 ; SAVE MDR IN Q BEFORE EXITING 245299 156: 265300 ;0110 cc v e; VA_SEXT(XB)+RLGPR.RI P(_P(+l, ; :22%8% NEXT/0S.WRT? 145296 245301 ;65304 157 U 0157, 0481,7002,402D,A4A7,0015,0 ; PUT GARBAGE IN MTEMPO : RNUM HAS NUMBER OF REGISTER TO WRITE :zgggg ;45294 155: U 0155, 0081,7816,4030,8407,0015,0 Rn REGISTER MODE SAVE MDR IN @ ;45305 ;45306 SIZECIDEP], SIZELIDEP], R R e VA XB PC_P(+4, NERT/0S.BRT2 ; LET INSTRUCTION DETERMINE S1ZE D(Rn) DISPLACEMENT MODE ADDRESS OF OPERAND IS REG + DSPLMT ; LET INSTRUCTION DETERMINE SIZE ; SAVE MDR IN Q BEFORE EXITING e e L LD ; ; oKAddr NEXT ABSOLUTE MQODE & BYTES OF [~STREAM IS OPERAND ; SAVE MDR IN Q BEFORE EXITING ! (MT098.MCX MICRO2 QSR.MIC 1M(01) 28=N0V=83 Native Mode Operand Specifier 0158, 0CB7,2004,707C,C4A7,0000,1 145307 158: 145308 145309 ;22%}? 145312 159: 0159, 0(87,7816,403D,8407,004D,D _ 015D, 0487,2004,71FC,C047,0042,0 CLOKX Rev 13.00, Clock rate = 160ns ;1000===mrmammcecceaena e ——————— ; (Rn) REGISTER DEFERRED MODE 0_MCMDR] VA_RLGPR.R], * GPR(RNUM) 1S THE OPERAND ADDRESS CCOBBER MTEMPO DEF, : PUT GARBAGE IN MTEMPO IRDX [1] : :100) smmcmmmmeemmcmam e ee e ; @Addr RELATIVE DEFERRED MODE :zgg}g NEXT/0S.WRTZ2=READ : 145314 145319 ’22%3? SIZECIDEP],CLOBBER MTEMPO DEF, : PUT GARBAGE IN MTEMPO ;1010=cemmencecc e namenmn————— ; aD(Rn) VA _SEXT(XB)+RLGPR.R] PC_PC+l, SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S.WRT2=READ : PUT GARBAGE IN MTEMPO : 51011 === mmmmemmmmm e e : ®(Rn)+ 145323 0 _MLMDR] VA RLGPR.R3, : ;22;32 NEXT/0S.WRT1-READ.INC.4 : 145324 145327 15¢: CCOFRER MTEMPO DEF, DISPLACEMENT DEFERRED MODE i VA GETS ADDRESS OF ADDRESS OF OPERAND AUTO-INCREMENT DEFERRED MODE GPR(RNUM) IS ADD OF ADD OF OPERAND * PUT GARBAGE IN MTEMPO ;1100m=mcmmmmmnm o mea————————— ; (RnYLPC] NEXT/1E.ADDR.MODE 145330 15D 145331 11101 ==mmmmmmmmmm—em e e em————e ; (Rn)CRx] INDEX MCDE MTEMPO _RCGPR.R] Q_MDR, ¢ SAVE INDEX REGISTER ‘2§§§§ BUT/LOD.BRA,NEXT/0S.BOA-WRT2 ¢ INDEX MODE PC :22%53 ILLEGAL ADDRESSING MODE ; GET BOA 145334 0S.WRT2=READ: 04DD, 0081,2592,5020,0050,0040,C Page 1106 ¢ 0S.WRT2 ¢ VA GETS ADDRESS OD ADDRESS OF OPERAND 145322 15B: 015¢, 0C80,0036,4030,0047,00FD,C 6 VA_PC+SEXT(XB)+1 PC PC+l 145318 0158, 0887,2004,703C,C4A7,004D,8 L 145313 145317 15A: 015A, 0887,7815,003C,(4A7,004D,D 16:30:35 145335 145336 145337 45338 i ceeecescemmmmemmccmmccemeeeee) Q_MIMDR], : STZECLONG],READ, NEXT/0S.WRT1=DEF ERRED SAVE MDR IN Q : MDR GETS MEMORY (VA) TELL CHARLIE TuC " ’ SRR . AR AR AR K R AR Rn A TR kR Ak ko ke kA Xk k kv k K REGISTER MODE I*#cons IMMEDIATE MODE GET PROPER AMOUNT OF IMMEDIATE DATA S*¥cons LITERAL MODE MDR GETS OPERAND FROM I1=STREAM PUT GARBAGE [N MTEMPO SAVE MDR IN @ Ye FPA_Q MLCMDR],MDR_ZEXT(OSR), (LOBBER MTEMPO DEF, -(Rn) 0100==nmmmmmmmmmamm=mem e VA_RCGPR.RI_RB-CONX.SI1Z, NEXT/0S.RED=READ, SAV.EXIT 165: 1661 O~ muag— mm — 0> « noOw; ~ w - XB)+] PC PC+I, CLOBBER MTEMPO DEF, ~READ.SAV.EXIT O+ RCGPR.R] PC PC+I, LOBBER MTEMPQ DEF, t READ,SAV.EXIT Gt iy S g 4 o O O - B PC_PC+4 BER MTEMPO DEF, 705 . RED=READ.SAV,EXIT AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) VA GETS OPERAND ADDRESS RBS GETS !RNUMISIZE!--) PUSH RBS-, 167: ko k 0_XB PC_PC+l. NEXT/0S.FRED-UNPACK 164 Ak NEXT/0S.RED-AUTO, INC NEXT/0SRED=1m4ED 163: R kAR (Rn)+ AUTOINCREMENT MODE PLACE ADDRESS OF OPERAND IN VA PUT GARBAGE IN MTEMPO INC GPR(RNUM) BY SIZE ;000)==scemeccamemonmcnemmm—— fPA_Q_MIMDR] VA R[GPR,RJ, CLOBBER MTEMPO DEF, 162: Rk PLACE OPERAND (GPR(RNUM)) [N MDR PUT GARBAGE IN MTEMPO SAVE MDR IN O BEFORE CLOBBERING I¥ IRDX [11 161: AR R AR A RN KRR KRR KA KRR ;0 000=mmmmmmmmmmmmm e s m NN S WA= OO0 NN R Rk & Ak CLOBBER MTEMPO DEF, L WA= OV : 0S.FRED" FPA_Q_MCMDR] MDR_RLGPR.R1, I NN SO OO NN KR AR AR AR AR AR 160: 0S.FRED: I T MTEMPO is destroned. Read access is checked. ~a e s aF R P W2 OO0 NN B NN = O uvniuniualuaunuauiug L LA A G AN AN AN o i L N M A AT s . T e TN [ ¢ AR AR AR Page 1107 MDR is saved in the Q-register and is always destroyed. Evaluates read type operands for warm floating point instructions and places the operand in MDR. . R v v v Native Mode Operand Specifier TRRKK KRR KRR AR R KRR AR AR . A v AT i LN SO (o L U A o N LA U LA LD L L L N U L N U AT LT LA N R AL AT LA LU A LU N N LA U U2 U U O AN A A O OO NN 0C87,7002,402D,A4A7,0049,4 LA UL UA LA L LA A U 0167, P LI R 0087,7815,003(,C4A7,0049,4 O U 0166, YK T A T S Y U 0165, 0487,7816,403D,8407,0049,4 N U U 0085,4730,003¢C,C4A7,0049,4 N N A N N R R N A U 0164, N N U 0163, 0487,2592,5030,05€67,104D,E D000 0ACI00CO NN NN NNNNNNOOONONOLo o e e e D o S o o e e L L P S S S T R aF 2 A 0481,7002,503D,A047,0048,E N A U ulée, 0887,2004,703C,C4A7,1048.C L K T e L S T O T U 0161, O N u 0160, 0487,2004,707C,C467,1000,1 T LA T RN TR R T i e A ey - ;45339 — OSR,MIC S x — C(MTO98.MCX — ; M 6 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns MICRO2 M0 28~NOV-83 + r 0S.FRED Sperifiz Operand Native Mode Adar RELATIVE MODE ADDRESS OF OPERAND 1S PC PUT GARBAGE IN MTEMPO - SIZE + DSPLMT D(Rn) DISPLACEMENT MODE ADDRESS OF OPERAND IS REG + DSPLMT PUT GARBAGE IN MTEMPO VA GETS ADDRESS OF OPERAND dN¥Addr ABSOLUTE MODE NEXT & BYTES OF [-STREAM IS OPERAND PUT GARBAGE IN MTEMPO VA GETS ADDRESS OF OPERAND o | ; : e CMT098.MCX OSR.MIC e MICROZ e 1M(01) e 28-NOV-83 e Native Mode Operand Specifier ;145391 1681 U 0168, 0887,2004,703C,C4A7,1010,E lu 0169, 0C87,7816,4030,8407,0049,6 :45392 145393 U 016C, 0C80,0036,4030,0047,00¢D,¢ e 1 6 CLOKX Rev 13,00, Clock rate = 160ns : OS.FRED ;1000====-=ce~cmmcummomncaammnn ; (Rn) FPA_Q_MLMDR] YA R[GPR.RJ, (LOBRER MTEMPO DEF, ;22288 NEXT/0S.RED-READ., SAV $45402 145403 ;zgzgg NEXT/0S .RED-READ. SAV REGISTER DEFERRED MODE : DISPLACEMENT DEFERRED MODE : OPERAND IS REG + DATA FROM I-STREAM : PUT GARBAGE IN MTEMPO ; ;1011====mccmcccccmomccccacanan ; ®(Rn)+ AUTO-INCREMENT DEFERRED MODE FPA_Q_MIMDR) VA RIGPR.R], : :zgzgg NEXT/0S.RED=READ, INC. 4 : SAVE MDR IN 0 CLOBBER MTEMPO DEF, 168417 160 ‘222%% 145415 43416 ;22259 : PUT GARBAGE IN MTEMPO INDEX MODE PC ;1101 =m-mmmcesmcamcesnaccoinan ==; (Rn)CRx) INDEX MODE FPA_Q_MDR MTEMPO_RLGPR.R], PUSR,BUT/LOD.BRATNEXT/0S,B0A 145419 VA GETS OPERAND __ GPR(RNUM) 1100===smmmmmem e e : (Rn)[PC] NEXT/IE.ADDR,MODE : : IRDX [1] ILLEGAL ADDRESSING MODE SAVE INDEX REGISTER IN TEMPO : ; READ MEMORY AT VA SIZE=DSIZE 145422 0S,FRED-UNPACK: ;45423 U 04DE, 0881,2787,0070,0467,0000,1 465424 145625 2= [eeesemcssccsccccesessssewen osw ; MDR_MLMDRI.FPLIT, IRDR [11 i TELL CHARLIE ; CALL ROUTINE TO GET BASE OPERAND ADD 1110===-mm-—=mmmmmemmmmcmaomeas : READ,SIZE[IDEP], | ; $45407 145408 ; : OPERAND ADDRESS 15 GPR(RNUM) : PUT GARBAGE IN MTEMPO ;1010====m=msecmmeceaocae oo aan : @(Rn) VA_SEXT(XB) +R[GPR.R) PC PC+I, SIZECIDEP],CLOBBER MTEMPO DEF, : Page 1108 ;100]=~==m=mm=cmo= smmocmmoneee ; @Addr RELATIVE DEFERRED MODE VA_PC+SEXT(XB)+1 PC PC+] : VA GETS ADDRESS OF ADDRESS OF OPERAND SIZECIDEP],CLOBBER MTEMPO DEF. ; PUT GARBAGE IN MTEMPO :645397 :45398 (45018 16E: U 016E, 0880,0036,4070.0050,0000,1 e 105396 1691 145414 16D: U 016D, 0(87,2004,71FC,C047,1440,0 e NEXT/0S.RED-READ.EXIT 145406 16B: U 0168, 0887,2004,703(,C4A7,1048,A N DR ;zgggg 145401 16A: U 016A, 0887,7815,003C,C4A7,0049,6 :6:30:35 . | s UNPACK FLOATING POINT LITERAL : I ] CMTO98 ., MCX MICRO2 0SR.MIC 1M(01) 28=NOV=83 Native Mode Operand Specitfier 16:30:35 B . 7 CLOKX Rev 13,00, Clock rate = 160ns Page 1109. ¢ 0S.QRED ' ;2%45? .10C "' Native Mode Operand Specifier : 0S QRED" :65429 MDR is saved in the Q~register and is always destroyed. ;45437 145432 ; routines. The least si?nvticant half of the data is left in TEMP1 and the most significant half of data is left in MDR, 345228 IR R AR A AR AR R AN AR AR AN RN AR AR AR AN AR AR R KRR KRR AR AR 245630 Used to evaluate read type operands for quad data type ;45433 ; ;45434 ThSA3S 1465436 0170, 0086,15BE,403¢,C047,004D,F AR :22222 45447 :zgzzg 145450 172: “45451 ;2222% 145454 173: U 0173, U(87,2592,5030,05E7,004E,2 0487,7816,403D,8407,004E,3 0176, GG8BZ,7815,003(,L4A7,004L,3 , . AR KRR NEXT/0S,8RED=REG : 1000] ~m=mmmmm—— AR AR (TOBRBER MTEMPO DEF, NEXT/0S.QRED~AUTO, INC NEXT/0S.BRED-IRMEDIATE © : TEMP1 IMMEDIATE MODE LITERAL MODE ;2222% ¢ PUT GARBAGE IN MTEMPO :0100===mm=m~—emsmmm—mmmm——n- ; =(Rn) . RBS GETS IRNUMISIZ2Ei~! ; OPERAND ADDRESS SAVE PC PC+] NEXT/0S.QRED=READ.SAV.INC SIZECIDEP],CLOBBER MTEMPO DEF, : ADDRESS OF OPERAND IS PC = SIZE + DSPLMT H ;0110=mmmmmmmmm e —— e ————— ; D(Rn) VA_SEXT(XB)+R[GPR.R] P( P(+], ; ;222;§ NEXT/0S,QRED=READ . SAV, INC : ADDRESS OF DISPLACEMENT MODE OPERAND IS REG + DSPLMT PUT GARBAGE IN MTEMPQ ;011 lemmmemmccne e e w=w=w; a¥Addr 65475 VA X8 PC _P(+4 ;s 45477 NEXT/0S,QRED-READ.SAV. INC H (LOBBER RMTEMPO DEF, RELATIVE MODE : PUT GARBAGE IN MTEMPO ;45470 SITECIDEP]),CLOBBER MTEMPO DEF, IS GPR(RNUM) STATUS ON RBS ;0101 =scmceenancnannacnaa e =: Addr ;2222; 1454 7¢ AUTODE CREMENT MODE NEXT/0S.QRED~READ, SAV. INC VA_PC+SEXT(XR)Y+] ;45421 OPERAND * 145465 165466 MDR GETS LOW HALF OF ABSOLUTE MODE VA GETS ADDRESS OF OPERAND © PUT GARBAGE IN MTEMPO ; : . | : 1 GETS FIRST HALF OF DATA VA_R{GPR.R]_RB-CONX.SIZ, PUSH RBS-, add : PUT GARBAGE IN MYEMPO ; : SAVE MDR IN O 145461 A AUTOINCREMENT MODE ;001 =mmmmommcmm e mmmm e we=w; S*Hcons ¢COBBER MTEMPO DEF, RN ; ADDRESS OF LOW PART OF OPERAND 10010 =m=memmmmmm e ; I*#cons RLTEMP1]_XB PC P(+], AR ) REGISTER MODE TEMPO HAS LOW HALF OF OPERAND e ~wm==: (RN)+ Q_M[MPR] vA R[GPR.R], R NEXT/0S,OQRED~LITERAL Y45474 127 V177, Gr87,7002,400D,A4A7,004F,3 AR RRR KR KRR R ;222§§ 165656 145469 176 8] KRR AR © 145464 175: PO1?5, R Q_MIMDR],MDR_ZEXT(OSR), 145460 0174, Q085,473 0034, (4A7,U04E, 3 Read access is checked. 45455 145459 174 U R ;45637 145438 145439 170: ;45440 0S,QRED: ;65441 10000 mmmmencmnn= LELL L L LT T LD N 45449 MCTEMP11_R{GPR.R], : 1656446 0172, 008%,7592,4030,6047 ,004E,1 : ' MTEMPO is destroyed. 145445 171 0171, 0087,2004,703C,C4A7,004E,0 AR ARk CMTO98.M§§ MICROZ OSR.M 1M(O1) 28-N0OV-83 Native Mode Operand Specifier 14548 23 145483 14548 zg 145488 4548 14549 23 : : : : : : : ; 0686,0036,4030,0450,004t,4 : 04ED, 0085,573D,003C,{450,004E,4 (4E1, 0481,7002,503D,A047,0048,E T P T T Q4DF, GCB7,2004, 707F ,L467,0000,1 TEW 2 C17E, NI OTM W L~ (NPU = OO0 0 N O _ 1 017D, 0487,2004,71FC,(047,0443,0 : D D 0O 017¢, 0C80,0036,4030,0047,00FD,C ; A 0178, 0887,2004,703C,C4A7,004E,7 : P S S o a2l S o o i o i , : LU 1A U U LA LA AT LT U U U VT AATLA LA LALLT VLTI LA L DU T T i vt WAL U T LA VT A LU UL VAL LA LT A U U WYL AT U T D DS O IS o I LANPUMURUCUNURVIONUNUND B = 2 = B = 2 2 S OO0 OO0 LVOVOVD 145493 O VLS WM~ : v ] 017A, 0087,7815,003C,C4A7,004E,5 2 D O 00 ; it i 017Y, 0487,7816,403D,8407,004E,5 L u 14548 O 0O NOA £ AN : aun i ) 0178, 0486,058E,403C,C4A7,004E,3 b:‘-bbl\:\bbl\b‘\‘\b.\bl\i\J\bi\i\b&\b:\bbl\t\l\l\l\l\b‘\bb vinun 14547 = O O 00 NN NS NN = OO :45478 178: 16:30:35 7 c CLOKX Rev 13.00, Clock rate = 160ns 51000====m=cmmmmemm—emm——— e : (Rn) * OPERAND ADDRESS IS GPR(RNUM) NEXT/0S.QRED=READ. SAV. INC : ; PUT GARBAGE IN MTEMPO ;100]=mmmmmmmm e ~=; FAddr NEXT/0S.QRED=READ. IND : : PUT GARDAGE IN MTEMPO :1010= == ==mmeccmmmremmmmm e a : aD(Rn) R TR DISPLACEMENT DEFERRED MODE VA_SEXT(XB)+R[GPR.R] PC_PC+l, : OPERAND IS REG + DATA FROM ]-STREAM | NEXT/0S.QRED=READ. IND : ‘ : PUT GARBAGE IN MTEMPO 2101 memmm e w==: ®(RN)+ * VA GETS OPERAND NEXT/0S.QRED=READ. INC .4 ' SAVE MDR IN Q 5 GPR(RNUM) ' Y PUT GARBAGE IN MTEMPO :1100mmmmmmeme e —————— ~<==; (RR)LPC] NEXT/IE.ADDR.MODE LT | AUTO-INCREMENT DEFERRED MODE Q_MIMDR] VA RLGPR.RJ, CCOBBER MTEMPO DEF, 17¢: RELATIVE DEFERRED MODE Y VA GETS ADDRESS OF ADDRESS OF OPERAND SIZECIDEP].CLOBBER MTEMPD DEF, 178 ‘ i VA_PC+SEXT(XB)+] PC PC*+I, SI2ECIDEP], CLOBBER MTEMPO DEF, 17A: REGISTER DEFERRED MODE VA_RLGPR.RI, CLDBBER MTEMPO, 179: Page 1110 : 0S.ORED INDEX MODE PC * ILLEGAL ADDRESSING MODE L — -=; (RM)LRxJ MTEMPO_RLGPR.R]Q_MDR,PUSH, TELL CHARLIE ; INDEX MODE * SAVE INDEX REGISTER IN TEMPQ BUT/LOB,BRA,NEXT/DS.BOA~QUAD ; CALL ROUTINE TQ GET BASE QOPERAND ADD 17E 0s.QRED-RE?DT READ FIRST HALF OF OPERAND READ,SIZELIDEP], VA_VA+L, CLOBBER MTEMPO DEF, POINT VA TO NEXT HALF OF OPERAND PUT GARBAGE NEXT/0S.QRED-READ2 IN MTEMPO 0S.QRED~REG: L T L L L T N L L L T L ) Q_MIMDR] MDR RLGPR.R+1], : MDR HAS WIGH HALF OF OPERAND IRDX (1] : MDR IS SAVED IN Q cCOBBER_MTEMPO DEF, ; PUT GARBAGE IN MTEMPO 0S.QRED=AUTO. INC: g READ, Y MDR GETS LOW HALF OF OPERAND RLGPR.RI_RB+CONX.S12Z, * ADD 8 TO THE REGISTER VA_VA+4 * PUSH RBST, NEXT/0S.QRED-READ2 SET UP VA FOR SECOND HALF READ * SAVE STATE OF REGISTER FOR RESTART H OS,QRED=IMMEDIATE: ¢ - > Q_XB PC_PC+], . e NEXT/0STRED={MMED oy 2 e b B ; GET PROPER AMOUNT OF ; IMMEDIATE DATA H : (MT098.MCX OSR.MIC MICROZ2 1M(01) 28-NOV-83 Native Mode Operand Specifier 16:30:35 D 7 CLOKX Rev 13.00, Clock rate = 160ns i 0S.QRED Page 1111 ;222%} 0S.QRED~LITERAL: U Q4E2, 0885,2592,4030,4047,004E,8 145533 :222%@ RCTEMP13_MLMDR], NEXT/05.8RED-MDR_0 * TEMP1 GETS LOW HALF OF OPERAND Y CLEAR UPPER HALF OF OPERAND 145538 kEAD SIZECIDEP], Y GET FIRST HALF OF OPERAND FROM MEM 145540 CLOBBER MTEMPO DEF, * PUT GARBAGE IN MTEMPO Ezgg%g 0S.QRED=READ. SAV. INC: 145539 u 04E3, 0C87,2592,5030,0450,104E .4 FPA_Q_MLMDR3, 145541 VA_VA+4, ;zggzg NERT/0S.QRED~READ2 * SAVE MDR IN 0Q * POINT VA TO NEXT HALF OF OPERAND ; 145544 0S,QRED=READ2: 145545 U 04E4, 0083,2592,4060,4050,1000,1 U 04E5, 0881,2592,5020,0050,104E,6 145546 145547 ;Zggzg 1 eemmtecemcmmessmes o ees s a———— ; READ, FPA_RCTEMP11.S1Z_MIMDR], SIZECLONGI, IRDX T13] Y GET SECOND HALF OF OPERAND TO MDR * PUT FIRST HALF OF OPERAND IN TEMP1 : Ezggg? 0S.QRED=READ. IND: 145552 READ,SIZELLONG], : GET ADDRESS OF OPERAND ;zgggg ; 145553 FPA_Q_MLMDRI, NEXT/DS.QRED-INDIRECT : SAVE MDR Ezgggg 0S.QRED=INDIRECT: U 04E6, 0€81,2002,403D,84A7,0017,F 145558 VA_MCMDRI, ;22228 NEXT/0S.GRED=READ] * PLACE ADDRESS OF OPERAND INTO VA ; 145561 0S.QRED=READ.INC.4: U 04F7, 0485,573D,002(,C050,004E,6 265562 145563 145564 ;22222 0 eemmemeemesesseeesescececnnnoiene. ; READ,PUSH RBS+, * REGPR.RI_RB+CONX(4), ¢ NEXT/0S,BRED~INDIRECT : GET ADDRESS OF OPERAND ADD &4 TO REGISTER 145567 0S,QRED=MDR_0: 145568 U O4E8, 0C80,0036,4030,04E7,0014,0 145569 145570 | se=Seccceemcemsmessaos me—memunen ; MDR 0 NEXT/0S.WRT1 * CLEAR UPPER HALF OF OPERAND : DO IRDX ; ; ; (MT098.MCX MICROZ OSR.MIC 1M(OD) 28-NOV-83 Native Mode Operand Specifier ;22%;% .T0C "' 16:30:35 E 7 ; CLOKX Rev 13.00, Clock rate = 160ns Page 1112 : 0S.DRED Native Mode Operand Specifier : : OS.DRED" ; 345573 JRRRAKAR KA AR ARk Rk AR ARk AR Rk AR R AR AR IR AR KRR AR AR AR R AKX ;45574 MDR is not saved and is destroyed in all but register 145575 ; 145576 ; :45577 ; ;45578 165579 ;45580 ;45581 ; ;45582 ,'(05583 U 0181, 0486,058E,403C,C4A7,004E,0 i 0182, 0885,7592,4030,6047,004E,C Evalyates read tgpe operands for double data type i routines. Bits 31-0 of the operand are left in TEMPY and bits U 0184, 0885,473(,003C,C4A7,0017,E e L METEMP1] RCUGPR.R], +45589 :zggg? 20010 mv e ee ; RITEMP1] _XB PC_P(C+], ; J 0187, 0487,7002,4020,A4A7,0017,E e e CLOBBER MTYEMPO, NEXT/0S.QRED~AUTO. INC n e ; (Rn)+ AUTOINCREMENT MODE s ADDRESS OF LOW PART OF OPERAND ; PUT GARBAGE IN MTEMPO ; NEXT/0S . DRED-IMMEDIATE N Rt L e D L L L L L EE R L e ; S*"¥cons LITERAL MODE MDR_ZEXT(OSR) ,GFLOAT(FLAG4)?, : MDR GETS LOW HALF OF OPERAND ;zgggg NEXT/0S.DRED-UNPACK ;65606 184: ;65607 ;22283 MLTEMPO] 7L 1TOCO], 1010 e :2;2}2 NEXT/0S .QRED-READ1 ;45616 ;65617 ;zgg}g ; SAVE MDR IN Q PUSH RBS-,NEXT/0S.QRED-READ1 VA _PC+SEXT(XB)+] 145612 ¢ PUT GARBAGE IN MYEMPO 0100 —=mmmm e c e e; VA_RLGPR.R] _RB-CONX.SIZ, . 45611 PC ; RBS GETS !RNUMISIZE!~} ; VA _SEXT(XB)+R[GPR.R] PC P(+], SIZECIDEP],CLOBRER MTEMBO DEF, NEXT/0S.QRED-READI OPERAND IS PC + DSPLMT D(Rn) DISPLACEMCNT MODE ; ADDRESS OF OPERAND IS REG + DSPLMT : PUT GARBAGE [N MTEMPO ; R R ; aKAddr VA_XB PC _PC+4 ; 45623 NEXT/0S.QRED-READ1 H (LDBBER MTEMPO DEF, RELATIVE MODE ; J65621 145602 ADDRESS OF ; PUT GARBAGE IN MTEMPO 0110m oo e c e: : ABSOL'J1E MODE VA GETS ADDRESS OF OPERAND i PUT GARBAGE IN MTEMPO + | 5 =(Rn) AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) - SIZE e ; Addr _PC+] SIZELIDEP), CLOBBER MTEMPé DEF, 186: ! I*#cons IMMEDIATE MODE TEMP1 GETS FIRST HALF OF DATA ;45601 183: ;65602 145603 ' ! i i ! ‘ ; ;45597 182: 145598 ;zgggg : i i ! | L ; Rn REGISTER MODE ; TEMPO HAS LOW HALF OF OPERAND ;000 ~emme e VA_RLGPR.R], ,45620 187: ) L L LA ;65592 181: ;45593 ;45594 ;zgggg ;45615 U 0186, 0887,7815,003(,C4A7,0017,E L L NEXT/0S.DRED-REG ;45610 185: U 0185, 087,7816,403D,8407,0017,¢ g i 63-32 are left in MDR, MTEMPO is destroyed. Read access is_checked, . For G~Float LITERAL FLAG4 is set ;**\\'**************************kt**W*******t**t********it*tfi********i**i******t *» U 0183, 0586,0037,0470,05E7,004B,8 f : and immediate modes. 165584 ;45585 ;45586 180: ;45587 OS.DRED: ;45588 N U 0180, 0086,158E,403C,C047,004E,9 ARk CMT098, MCX OSR.M IC F PO RO O PO 2 OO0 0NN NN RN NN = OO 00 NN N SN 5 2 B 8 D 85 D 8 DTN AN ;1000==cmmmommmmo oo VA_RLGPR.R], eee - Page 1113, CLOBBER MTEMPO, 189t @D (Rn) ;1010=========mmmmomooeoaenn VA_SEXT (XB)+RLGPR.R] PC PC+l, SIZECIDEP], CLOBBER MTEMPO DEF, - VA _RLGPR.R], CLOBRER MTEMPO, D. INC.4 NEXT/0S.QRED-REA 18C: 18D: ;1100=====mo=me=cmmammnmaa - MCTEMPO] RLGPR.R],PUSH, BUT/LOD.BRA,NEXT70S .BOA-0UAD 18E: ;1110=======mm—mmmmmommemeen READ,SIZELIDEP], VA VA4, NERT/0S.QRED=READ2 A(RN)+ AUTO-INCREMENT DEFERRED MODE GPR (RNUM) VA GETS OPERAND PUT GARBAGE IN MTEMPO SAVE MDR IN Q (Rn)LPC] INDEX MODE P(C ILLEGAL ADDRESSING MODE NEXT/IE.ADDR.MODE R DISPLACEMENT DEFERRED MODE OPERAND IS REG + DATA FROM |~STREAM PUT GARBAGE IN MTEMPO NEXT/0S.DRED=READ ;10]]=m===s==smmmmmomecnen—aa IN MTEMPO ®Addr RELATIVE DEFERRED MODE VA GETS ADDRESS OF ADDRESS OF OPERAND PUT GARBAGE IN MTEMPO ;100]=w=mmommomememo oo VA_PC+SEXT(XB)+1 PC PC+], S1ZECIDER),CLOBBER MTEMPO DEF, 188: REGISTER DEFERRED MODE PUT GARBAGE NEXT/0S.DRED~READ 18A1 (Rn) OPERAND ADDRESS 1S GPR(RNUM) NEXT/0S.QRED=READ1 B LNANND = O OO NSNS WA AV e uiiua b v O v v [ 018E, 0480,0036,4030,0450,004E,4 B < o N ; v ; Uua ; Lnln i ; ; To o Jo ko 1o Yo Jo o o T i R S oo it uiuila i L I P N G o ; Yo Yo Yo XaNo No Ne No NeNo Yo Ne o NeSeoNo Xo Jo o 018D, 0086,05BE,41F(,(047,0443,0 ; WL < 018¢, 0c€80,0036,4030,0047,00FD,C : ol S S 0188, 0CB6,058E,403C,C4A7,004E,7 kb 2 c : AN S o ; S ; S 018A, 0087,7815,003C,C4A7,004E,A F 0189, 0487,7816,403D,8407,004E ,A A 0188, 0(86,05BE,403C,C4A7,0017,E N [« 145624 1881 — 7 MICRO2 1M(O1) 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns Native Mode Operand Specifier : 0S.DRED - (Rn)[Rx] SAVE TELL CHARLIE INDEX MODE INDEX REGISTER IN TEMPO CALL ROUTINE TO GET BASE OPERAND ADD READ FIRST HALF OF OPERAND POINT VA TO NEXT HALF OF OPERAND 1M(01) 28=-N0OV-83 Native Mode Operand Specifier O4EC, 0881,7002,403D,A467,0014,0 AT AL S B L O O L 04EB, 0086,15F7,0090,04E7,0000,1 oeooVombuwaoooo\aombwm—aoom\:o-m g b LRI b AR S N P OB P e T S 04B9, 0127,2092,4031,0047,004E .8 A 0488, 085,2787,0030,4047,004E,8 Al 2L AP 2P SR LW S o T O R T 04EA, 0080,0036,4020,0050,004E,6 o PP Q4E9, 0886,05BE,407F,C467,0000,1 - TR b D iy iviuviaivaun OSR.MIC MICROZ PRI OO OO ONCNON CONN VN NNNNNNOOIOOCONONOON O VIV CMT098.MCX o8 5682 45683 16:30:35 6 7 CLOKX Rev 13.00, Clock rate = 160ns ¢ 0S.DRED 0S.DRED=REG: MDR RCGPR.R+1], E MDR HAS HIGH HALF QFf OPERAND ; PUT GARBAGE IN MTEMPO ; CLOBBER MTEMPO IRDX [11 0S5 .DRED=READ: kEAD,SIZE[LONGJ, ; GET ADDRESS OF ADDRESS OF OQPERAND NEXT/0S.QRED=INDIRECT H =0 0S.DRED~ UNPACK s e e O s e e ¥ s o e ) e R R[TEMP1J MIMDR].FPLIT, NEXT/0S.3RED~MDR_O B B 6 W R ; H TEMP1 GETS FLOATING POINT LITERAL GO ZERO UPPER HALF OF OPERAND ------------------------------- MTEMPO MDR.OR.ZLIT8L201], ; MLTEMP1] _RLTEMPOJ.ASL.1, : POSITION SIGN BIT CORRECTLY CLEAR GFLOAT(FLAG4) MDR_O,RETURN [+11 H OR BIT 13 INTO LITERAL ; 0S.DRED-IMMEDIATE: MDR_XB PC_PC+], NEXT/05.WRT1 { GET SECOND HALF OF DATA : GO DO A RETURN Page 1114; . CMT098.MCX OSR.MIC MICRO2 1M(01) 28~NOV-83 Native Mode Operand Specifier 16:30:35 : ' H 7 CLOKX Rev 13.00, Clock rate = 160ns 0S.DMOD i Page 1115 :22232 .T0C ' Native Mode Operand Specifier ;45686 SRRk ;45687 R KRR RNk KRR R AR R AR AR R R AR AN AR AN A RRR AR ARk U KRNk MDR is not saved and is destroyed in all but register mode. 145689 :45690 $65091 ;45692 routines, Bits 31-0 of the operand are left in TEMP1 and bits 63-32 are left in MDR. If the operand is in memory the address of the lowest byte is left in VA. [f the operand is in 245688 145693 ; ;65694 $G5695 : 0S.DMOD" Used to evaluate modify thpe operands for double data type GPR's the register number of the MTEMPO is destroyed. . lowest register is left Write access to the operand is not checked. S HAKKKKKAKRK KKK R KA KK R KRR KRR R KRR KA A ARk kR ok o e ok in RNUM. R ke ok 65696 ;45697 145698 ;45699 190: ;45700 0S.DMOD 0190, 0086.15BE,403C,C047,004E,9 ;45701 145702 ;22;82 145705 1911 0191, 0c86,058E,403C,C4A7,004E,D U 0192, 0780,0036,4030,0047,00FD,C U 0193, 0¢80,0036,4030,0047,00FD,C o 0194, 0085,473C,003C,C4A7,0019,E 0195, 0487,7816,403D,8407,0019,E NEXT/0S.DMOD=-AUTO, INC 145710 192: ;22;%5 145713 193: :zgg}g 145716 194 45717 :22;}3 10010~ e e e NEXT/I1E.ADDR.MODE RR ; e ; I*#cons LITERAL MODE ; ILLEGAL ADDRESSING MODE 30100-=mmommm e e : =(Rn) VA_R[GPR.R] RB-(ONX.SIZ, PUSH RBS-,NEXT/0S.DMOD=READ1 ; PC PC+I SI2ECIDEPY,CLOBBER MTEMPO DEF, ; RBS GETS IRNUM:SIZE!-! ; ADDRESS OF SI2ELIDEP],(LOBBER MTEMPO DEF, NEXT/0S.DMOD=READ1 OPERAND IS PC + DSPLMT ; ; ADDRESS OF DISPLACEMENT MODE OPERAND IS REG + DSPLMT ; PUT GARBAGE IN MTEMPO ; 0NNl e m e e cmc e ccncccncccann ; aKAddr 265731 VA XB PC_PC+4 ; 45733 NEXT/0S.0MOD=READT : CLOBBER MTEMPO DEF, RELATIVE MODE : PUT GARBAGE IN MTEMPO ;0110====m==mm=mmmmmmmce e ; D(Rn) VA_SEXT(XB)+RLGPR.R] PC _PC+l, AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) - SIZE ;0101 ==~==mesmcmmmcemmnaeceenaee ; Addr NEXT/0S.DMOD-READ ;45732 IMMEDIATE MODE ; UNPREDICTABLE, TAKE ADDRESS MODE FAULT e iete b L LUD L e L e D ; S*#cons NEXT/I1E.ADDR,MODE ;22;52 545727 ;22;58 AUTOINCREMENT MODE ADDRESS OF LOW PART QF OPERAND ; PUT GARBAGE IN MTEMPO CLOBBER MTEMPQ, VA PC+SEXT(XB)+] 245?30 197: 0197, 0087,7002,4020,A447,0019,E ; 245721 ;45722 Rn REGISTER MODE TEMPO HAS LOW HALF OF OPERAND ;0001 ~=m=m=emmmmmm e ——————; (Rn)+ ;22;83 145707 ;45726 ] : VA_RLGPR.R], 145795 1961 0196, 0087,7815,003C,C4A7,0019,E NEXT/0S.DRED-REG 145706 145720 195: u 10000---mmcmmcmmmcmmcnccnc e; MCTEMP1] RLGPR.R], ; ABSOLUTE MODE VA GETS ADDRESS 2F OPERAND ; PUT GARBAGE IN MTEMPO , CMTO98.MCX OSR.MIC MICRC2 TM(OD) 28-N0OV=-83 16:30:350 Native Mode Operand Specifier 145734 198: 0198, 0486,05BE,403C,C4A7,0019,E 145735 145736 ;Zgggg 145739 199: 0199, 0C87,7816,403D,8407,004F,0 145740 145741 ;22;25 145744 19A: 019A, 0887,7815,003C,C4A7,004F,0 019¢, 0C80,0036,4030,0047,00FD,( Page 1116% 5.DMOD i ;1000=m=m=ceeesecasceccmecm————— : (Rn) REGISTER DEFERRED MODE ; ;100Tmmmemeecmmmm— e e e e ———: aAddr RELATIVE DEFERRED MODE f VA_RLGPR.R1, CLOBBER MTEMPO, NEXT/0S.DMOD~READ1 * OPERAND ADDRESS IS GPR(RNUM) * PUT GARBAGE IN MTEMPO : VA PC+SEXT(XB)+1 PC_PC+I, SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S.DMOD~INDIRECT :1010=mmmcmcmencccmcan e mm———— ; aD(Rn) DISPLACEMENT DEFERRED MODE ;22;2; NEXT/0S.DMOD-INDIRECT : 145750 145751 ;2g;§§ 345754 19C: ;23;22 145758 ;22;28 SIZECIDEP],CLOBBER MTEMPO DEF, : PUT GARBAGE IN MTEMPO 1101 mmmmmemmmmmm e n e . ; @alRn)+ AUTO-INCREMENT DEFERRED MODE ;1100====sssc=ssccccccceesoneas ; (RN)LPC) INDEX MODE PC 1110 mmmmm e INDEX MODE VA_RLGPR.RJ, CLOBBER MTEMPO, NEXT/0S.DMOD-READ. INC. 4 NEXT/IE.ADDR.MODE * VA GETS OPERAND GPR(RNUM) * PUT GARBAGE IN MTEMPO * SAVE MDR IN Q * dmn e MITEMPO] RLGPR.RJ,PUSH, BUT/L0OD.BRA,NEXT/0S.BOA-QUAD ; - : + OPERAND IS REG + DATA FROM I-STREAM 145746 i | i * VA GETS ADDRESS OF ADDRESS OF OPERAND : PUT GARBAGE IN MTEMPO UA_SEXT(XB)+RLGPR.R] PC_PC+l, 145757 19D 019D, 0086,058E,41FC,(047,0443,0 | CLOKX Rev 13,00, Clock rate = 160ns 145745 145749 198: 0198, 0486,058E ,403C,C4A7,004F,2 17 ILLEGAL ADDRESSING MODE - ; (Rn)LRx] * SAVE TELL CHARLIE ; ! INDEX REGISTER IN TEMPO : CALL ROUTINE TO GET BASE OPERAND ADD i 145761 19E: : :22;2% 0S.DMOD=READ1: 145764 145765 C19E, 0C86,0036,4030,0454,004k ,E 145766 ;22;25 READ.MOD,SIZELIDEP], Y READ FIRST HALF OF OPERAND CLOBBER ‘MTEMPO DEF, * PUT GARBAGE IN MTEMPO VA_VA+4, NEXT/0S.DMOD-READ?2 Y POINT VA TO NEXT HALF OF OPERAND ; 145769 0S,DMOD=AUTO. INC: 145770 READ.MOD, * READ FIRST HALF WITH MODIFY 145773 145774 PUSH RBST, VA _VA+4, * SAVE ORIGINAL STATE OF REGISTER Y POINT VA AT NEXT HALF 145772 Q4ED, 0885,573D,003C,C454,004E,E ittt Lt bl Lmmemm—— 145771 ;2;;;2 REGPR.R] RB+CONX.S1Z, NERT/0S.DMOD=READ?2 * BUMP GPR ; 145777 0S.DMOD=READ2: O4EE, 0485,2592,4020,4054,104E,F ;45778 145779 145780 ;22;35 et R P e D L L B BH READ.MOD, * READ SECOND HALF OF FPA_RLTEMP1]_M[MDR],SIZELLONG], ; SAVE MDR IN TEMP1 NEXT/0S.DMODZDEC. VA OPERAND ; 145783 0S,DMOD=DEC.VA: Q4EF, 0981,BC10,0070,24A7,0000,1 ;45784 145785 145786 jeemeemcccccmmccmcaman—~ - —————— ; VA _MLVAJ-ZL1TOL4], : POINT IRDX (13 : VA BACK TO FIRST HALF ! 5 ‘ : : , f : ; T (MT098 .MCX OSR.MIC - MICROZ2 J 1M(01) 7 CLOKX Rev 13.00, 28-NOv-83 16:30:35 : 0S.DMOD Native Mode Operan d Specifier 145787 0S.DMOD=INDIRECT: ;45788 READ,SIZELLONG], 145789 NEXT/0S.DMOD~-VA_MDR ;22;8? L U 04F0, 0080,0036,4020,0050,004F,1 T L T T T Y Clock rate = 160ns ) LT Y N GET ADDRESS OF ADDRESS OF OPERAND 45792 0S.DMOD-VA_MDR: 145793 VA_MCMDRI, 145794 S Y o o > 0 by o ¢ U 04F1, 0081,2002,403D,84A7,0019,E 45795 145796 PUT ADDRESS IN VA NERT/0S.DMOD=READ1 ;45797 0S.DMOD=READ.INC.4: ;45798 READ, 145799 RLGPR,R]_RB+CUNX(4), 145800 ¢ U 04F2, 0485,573D,002C,C050,004F 1 ;45801 145802 - PUSH RBSt, = S NEXT/0>.DMOD=-VA_MDR T Y " ¢ READ FIRST HALF OF OPERAND BUMP GPR BY 4 SAVE STATE OF GPR page 1117; . CMT098.MCX MICROZ OSR.MIC 1M(01) 28-NOV-83 Native Mode Operand Specifier ;45803 .T0C ' {43808 16:30:35 K 7 Page 1118| CLOKX Rev 13.00, Clock rate = 160ns : 05.508 Native Mode Operand Specifier : 0S5.508" }45806 SERKAERKR A AN AR AR AR AR AR R AR AR AR A AR R A AR A AR KRR AR AR AR 45807 ; MDR is saved in the Q-register and is always destroyed. ;45808 . Evaluates read type operands and places the result in MDR. ;65809 ; :45810 ;45811 ; JASBT2 01A0, 0881,7816,500D0,A047,0076,7 MTEMPO Rk ;45820 1A1: 165821 01A1, 0087,2004,703C,C4A7,004C,8 01A2, 0€80,0036,4030,0047,00FD,C 01A3, 0080,0036,4030,0047,00FD,( 145822 :zggsz 145825 1A2: ;zggsg 145828 1A3: ;22%%3 345831 1A4: ;45832 01A4, 0885,473C,003C,C4A7,004C,9 ;45833 :22%%2 145836 1A5: 145837 01AS5, 0(87,7816,403D,8407,004C,9 ;45838 ;22323 145841 1A6: ;45842 U 01A6, 0887,7815,003C,C4A7,004C,9 ;45843 ;zggzg 145846 1A7: 01A7, 0487,7002,402D,A4A7,004C,9 N R AR AR AR AR AR ARk KAk R A AR R XAk NEXT/C0.SOB-REG J000] mmmmmme e e e wemmmes (RN)+ Q_MCMDR] VA RLGPR,.R], cCOBBER MTERPO DEF, NEXT/0S.MOD-AUTO. INC AUTOINCREMENT MODE : PLACE ADDRESS OF OPERAND IN VA ; PUT GARBAGE IN MTEMPO ; INC GPR(RNUM) BY SIZE 0010=reemmm e e I*#cons IMMEDIATE MODE B D ; S*#cons LITERAL MODE 10100=-~=~mmemcmcercncccc e - ; =(Rn) AUTODE CREMENT MODE NEXT/1E.ADDR.MODE : UNPREDICTABLE, TAKE ADDRESS MODE FAULT NEXT/IE.ADDR.MODE ; VA_RLGPR.RJ_RB-CONX.SIZ, PUSH RBS-, NEXT/0S.MOD-READ.SAV.EXIT ILLEGAL ADDRESSING MODE ; OPERAND ADDRESS IS GPR(RNUM) - SIZE . VA GETS OPERAND ADDRESS ; RBS GETS IRNUMISIZE:-! 01071 ==memmmmmm i oo mnncae e : Addr VA PC+SEXT(XB)+] PC _PC+], SIZELIDEP],CLOBBER MTEMPO DEF, NEXT/0S.MOD-READ.SAV.EXIT ;0110== ; PUT GARBAGE IN MTEMPO H === === oo m o m oo : D(Rn) VA_SEXT(XB)+RI[GPR.R] PC PC+], SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S.MOD-READ.SAV.EXIT RELATIVE MODE : ADDRESS OF OPERAND IS PC + DSPLMT ; ADDRESS OF DISPLACEMENT MODE OPERAND IS REG + DSPLMT . PUT GARBAGE [N MTEMPO s VA GETS ADDRESS OF OPERAND ;0111===m=mecmmemcamaacmcaaeaee ; @afAddr ABSOLUTE MODE : NEXT 4 BYTES OF ;22328 NEXT/0S.MOD-READ.SAV.EXIT ; VA GETS ADDRESS OF OPERAND CLDBBER MTEMPO DET, ]-STREAM [S OPERAND ¢ PUT GARBAGE IN MTEMPO 1000-=~-—semome s c e aeneaa ; (Rn) REGISTER DEFERRED MODE ;45852 Q_M[MDR] vA R[GPR.RJ], : OPERAND ADDRESS IS GPR(RNUM) ,45854 NEXT/0S.MOD-READ.EXIT ; 245853 Xk dk ; GO TO CONTRL VA_XB PC_P(+4 145848 Rk ;0000-~==mmcemrerc e cn e enan . Rn REGISTER MODE Q _SEXT(XB) PC_P(+1, ; MAKE SURE PC IS ACCESSABLE ;45847 145851 1A8: 01A8, 0887,2004,703(,C4A7,0011,E . Read access for the operand is checked. . This routine is used only to speed up SOB register mode Ak kR AR R Rk J45813 ;45814 1A0: ;45815 05.508: ;45816 145817 ;22%%8 is destroyed. Aok cCOBBER MTEMPO DEF, . PUT GARBAGE IN MTEMPO ; : CMT098.MCX OSR.MIC MICRO2 TM(O1) 28=-NOV-83 Native Mode Operand Specifier U 01A9, 0C87,7816,403D,8407,004C,A U 01AC, 0CB0,0036,4030,0047,00FD,C i ;2?328 NEXT/0S.MOD-READ, SAV ;45857 SIZELIDEP],CLOBBER RTEMPO DEF, ; PUT GARBAGE IN MTEMPO H 11010=cmrcerrmnccccam e a ; aD(Rn) DISPLACEMENT DEFERRED MODE ;45861 VA _SEXT(XB)+R[GPR.R] PC PC+I, ; OPERAND IS REG + DATA FROM [-STREAM :2;%22 NEXT/0S.MOD-READ, SAV H ;45862 SIZELIDEP],CLOBBER MTEMPQ DEF, ; PUT GARBAGE IN MTEMPO 1101 = e d e ; 3(Rn)+ AUTO=INCREMENT DEFERRED MODE 145866 Q_MEMDR]I VA RLCGPR.R1, ; VA GETS OPERAND ;2?328 NEXT/0S.MOD-READ.INC.4 ; SAVE MDR IN Q ;45867 145870 1AC: ;22%;5 145873 1AD: U 01AD, 0487,2004,71F(,C047,0440,0 ¢ 0S5.508 R e il LD Dol ; @Addr RELATIVE DEFERRED MODE VA PC+3EXT(XB)Y+1 PC P(C+] ; VA GETS ADDRESS OF ADDRESS OF OPERAND ;45865 1AB: U 01AB, 0887,2004,703C,C4A7,004C,C i Page 1119 7 CLOKX Rev 13.00, Clock rate = 160ns 45855 1A9: 145856 }45860 1AA: U 01AA, 0887,7815,003C,C4A7,004C,A 16:30:35 L ;45874 ;222;2 C[OBBER MTERPO DEF, 1100=m==m === === ; (Rn)CPC] NEXT/1E.ADDR.MODE : PU%4,B0T/L0OD.BRA,NEXT/0S.B0A ; INDEX MODE PC ILLEGAL ADDRESSING MODE ;110]==mmmcacemaceamm—ma - ; (Rn)[Rx] MTEMPO _RLGPR.R] Q_MDR, GPR (RNUM) ; PUT GARBAGE IN MTEMPO TELL CHARLIE INDEX MODE SAVE INDEX REGISTER IN TEMPO ; CALL ROUTINE TO GET BASE OPERAND ADD 145877 1AE: U 01AE, 0080,0036,4070,0054,0000,1 ;45878 0S.SOB-READ.EXIT: 245879 ;1110 mcmcc e v :45880 READ.MOD,S12ECIDEP], + 45881 IRDX [1] e; : : READ MEMORY AT VA SIZE=DSIZE : : CMT098.MCX OSR.MIC ' MICROZ2 1M(O1) 28-NOV-83 Native Mode Operand Specifier 16:30:35 N7 . CLOKX Rev 13.00, Clock rate = 160ns : OS.FIDRED ;zgggg .TOC " Native Mode Operand Speciftier Page 1120| ! : OS.FIDRED'' z ;45884 AR KA IR A KRR AR R R RN AR AR AN R R KA R KRR R AKX AR KT 145885 ; MDR is not saved and is destroyed in all but register ;45886 ; 145887 and immediate modes. Evaluates read tgpe operands for double data type ;45890 ; ;45891 ; ;45892 ; MTEMPQ is destroyed. Read access is checked. . This routine is used only by FPA interface. ;45888 ;45889 ;45393 R kKRR kR KX . routines. Bits 31-0 of the operand are left in TEMP1 and bits 63-32 are Left in MDR. JRKRR KRRk N KR ARk kA kA Ak Ak ke ok ke o ok ook ke ek ok Sk ek ke ok ok K kok ;65894 ;45895 180: 145896 0S.FIDRED: U 0180, 0047,2004,703C,C047,104F,3 ;45897 ;45898 ;0000 =~cmmmmec e nnea. ; Rn REGISTER MODE FPA_Q_MDR MTEMPO_RLGPR.R1, ; GET OPERAND FROM REGISTER :2288? NEXT/0S.FIDRED=REG 145899 ;65902 1B1: 145903 u 01B1, 0007,2004,703C,C4A7 ,104E,0 U 0182, 0C45,7592,4030,2047,004F ,4 e mee e ; ;228}9 NEXT/0S.FIDRED. IMMED 145909 SET FLAGD, (Fn)+ AUTNINCREMENT MODE ; ADDRESS OF LOW PART OF QPERAND J0C10mmm ee; RCTLMPO] _XB PC_PC+], ; ; PUT GARBAGE : IN MTEMPO I*#cons IMMED]IATE MODE TEMPO GETS FIRST HALF OF DATA ; SET FLAG FOR AUDREY/FPA ! ; ;001 == mmmommme e e mcdunanan wwww: S*#cons LITERAL MODE | FPA_Q MLMDRI,LITNXT, ; PASS OPERAND TO FPA SET FLAGT, ; SHORT LITERAL FLAG FOR POLYD 245920 145921 ;2;35% 10100 ===cmcemmcm e cnun -=: VA_R[GPR,.R]_RB~CONX.S1Z, ; (LEAR FLAGO, ; PUSH RBS-, ; =(Rn) AUTODECREMENT MODE OPERAND ADDRESS IS GPR(RNUM) NEXT/0S.QRED-READ.SAV.INC ;45924 1RS: 145925 ;010 ==~ reemmsccem e e e e e; VA PC+SEXT(XB)+] PC _PC+] ; Addr RELATIVE MODE ADDRESS OF OPERAND IS PC + DSPLMT 45927 CLEAR FLAGO, CLEAR FLAG FOR AUDREY/FPA ;45914 MDRZZEXT (OSR), ;43910 1IRDX [1] ;45915 ;45926 ;zggsg L] ;65930 186! s GET SHORT LITERAL ; H FOR AUDREY/FPA RBS GETS IRNUMISI1Z2Ei~-! SIZECIDEP],CLOBBER MTEMP) DEF, . PUT GARBAGE IN MTEMPO NEXT/0S.QRED-READ.SAY, INC H J0110=~ e e e e ; e: D(Rn) DISPLACEMENT MODE ;65931 VA_SEXT(XB)+RLGPR.R] PC_P'+], ; ;45933 (LEAR FLAGO, ; CLEAR FLAG FOR AUDREY/FPA 245932 JU 01B6, 0807,7815,003C,C4A7,004F,3 e FPA_Q_MCMDR] VA R[GPR.R], ;45907 1B2: ;45908 145918 1B4: 45919 U 0185, 0¢07,7816,403D,8407,004E,3 e ; CLEARTFLAGO,CLOBBER MTEMPO DEF, NEXT/0S.QRED=AUTO, INC ;45913 u 0184, 0805,473C,003C,C4A7,004E,3 J000) mmm ; SET FLAG FOR AUDREY/FPA ;45904 ;22382 145912 1B3: U 0183, 0849,2592,5070,05€7,2000,1 SETFLAGO, 145934 STZECIDEPY CLOBBER MTEMPO DEF, NEXT/0S.QRED-READ.SAV.INC ADDRESS OF OPERAND = SIZE IS REG + DSPLMT ; PUT GARBAGE N MTEMPO ; ! i ‘ . i . H CMTO098 . MCX OSR.M Ic Page 1121; 23~N0ov=83 16:30:35 Native Mode Operand Specifier MICBO? 1M01? i OO0 00O O OO DO OO0 0O OO0 OO OO0 OO i i T T U v wes OO oo WIS L 962 a#Addr ABSOLUTE MODE VA GETS ADDRESS OF QPERAND CLEAR FLAGO, CLEAR FLAG FOR AUDREY NEXT/0S.QRED-READ. SAV. INC 188: $1000=m=mmsmmm s m o cmmm e ms VA_RCLGPR.R],(LEAR FLAGO, CLOBBER MIEMPO, SAV. INC NEXT/0S,QRED~READ, (Rn) REGISTER DEFERRED MODE OPERAND ADDRESS 1S GPR(RNUM) PUT GARBAGE IN MTEMPO 189: ;1001 —me e m e e m e e VA_PC+SEXT(XB)+] PC PC+], @Addr RELATIVE DEFERRED MODE VA GETS ADDRESS OF ADDRESS OF OPERAND PUT GARBAGE IN MTEMPO SIZECIDEP], CLUBBER MTEMPO DEF, ab(Rn) DISPLACEMENT DEFERRED MODE OPERAND IS REG + DATA FROM I-STREAM PUT GARBAGE IN MTEMPO CLEAR FLAG FOR AUDREY :1010==n=s omammmamomcamaamanen VA_SEXT(XB)+RLGPR.R] PC PC+], SIZELIPEP],CLOBBER MTEMPD DEF, CLEAR FILAGO, NEXT/0S.QRED~READ. IND 18B: Le S R FPA_Q_MCMDR] VA RCGPR.RJ, . CLEAR"FLAGO, CLOBBER MTEMPO DEF, 4 D. INC. NEXT/0S,QRED-REA 18C: 18D: S N R N . : 1 0_MDR MTEMPO_RLGPR.RJ, RFLAGO,PUSH? ¢ BUT/LOD.BRA,NEXT/0S.BOA-QUAD ; N o L J U1BE, 0480,0036,4030,0450,004E,4 1B8E: 1110=m=mmmmmmmmmmm———————— READ,SIZELIDEP], VA _VA+4, NERT/0S.QRED~READ2 ; CLEAR FLAG FOR AUDREY CLEAR FLAGO, NEXT/0S.QRED~-READ. IND 1BA: i PUT GARBAGE IN MTEMPO a(Rn)+ AUTO-INCREMENT DEFERRED MUDE VA GETS OPERAND GPR (RNUM) PUT GARBAGE IN MTEMPO SAVE MDR IN @ (RN)LPCY INDEL MODE PC ILLEGAL ADDRESSING MODE TELL CHARLIE (Rn)[Rx] INDEX MODE GET INDEX REGISTER CLEAR FLAG FOR AUDREY CALL ROUTINE TO GET BASE OPERAND ADD A J 018D, 0407,2004,7%F(C,(047,1743,0 ;011 mmm e e VA_XB PC FC+b CLDBBER MTEMPO DEF, I Y t} 018C, 0C80,0036,4030,0047,00FD,C PR TR Y S o SN O U 01BB, 0807,2004,703C,C4A7,104E,7 UNAES S5 D B B I 0 D SO NN WDN O w AMALVAVAWALAL NN NS NN = OO0~ o — OO0OO NN L~ AN = OO e o o~ vl i AP P o P viuinaius i v Y T PR TR TR T N N U 01BA, 0807,7815,003C,C4A7,004E,5 % ol ol o S o T P e y 0189, 0007,7816,403D,8407,004F,5 kR Rl R U 0788, 0006,05BE,403C,C4A7,004E,3 A P U 0187, 0407,7002,402D,A4A7,004E,3 [P PR R NN ;45935 1B7: READ FIRST HALF OF OPERAND POINT VA TO NEXT HALF OF OPERAND ' ; ; (MT098 MO OSR.MIC MICROZ2 IM(Q1) 28-NOV=83 Native Mode Operand Specifier 16:30:35 8 8 CLOKX Rev 13,00, Clock rate = 160ns ¢ OS.FIDRED ,228;5 05.FIDRED-REG: ‘ FPa M[TEMPOJ MDR_RLGPR. R 11, L 06F 3, GOBO,05BE,407F ,C467,1000,1 :45977 '228;9 ;CaFh, (48Y,2592,5030,0067,104F,5 Ezggg? 0S.FIDRED. IMMED: 145982 FPA_Q MIMDR], ;zgggz NExT/Ds FIDRED,READ? IRDX [1] : GET SECOND HALF OF OPERAND ; ' PASS LAST OPERAND TO FPA ; Ezgggg 0S.FIDRED.READ2: 2 04FS, Q4B1,7002,402D,A667,004F ,6 o Q4F6, 008y,003%6,4070,0067,1000,7 3fgggg MDR_XB P(_PC+4 145990 FPA_MLTEMPO], LTSt $459 S IRDR [1] —B Y GET SECOND HALF OF OPERAND * PASS UPERAND TO FPA Page 1122 . : CMT098 .M X OSR.MIC MICRO2 TM(OT) 28-NOV-83 Native Mode Operand Specifier ,2?83%.TOC ' 16:30:35 ¢ 8 I CLOKX Rev 13,00, Clock rate = 160ns Page 1123 : 0S,FIDMOD Native Mode Operand Specifier : 0S.FIDMOD"' ;45994 'fltt*t*iktt*tti*fl*tttt*ttt*ttttfltw!tfitttuti*iqtfi*tfi*i*l*ttnt*t****it*********t 145995 145996 145997 ;65998 145999 : ; MDR is not saved and is destroyed in all but register and immediate mudes, Evaluates read t pe operands for double data type routines, Bits 31-0 of the operand are left in TEMP1 and bits 63-32 are left in MDR, ; ; :46000 166001 ; 146002 JUB003 ;66004 MTEMPO is destroyed. Write accecs is checked, This routine xR R is used only by FPA interface. RN N RN KA R KRR AR AR AR R AR R R AR AR ARk Aw 146005 1C0: ;46006 0S.FIDMOD: 010, 0087,2004,703C,C047,104F,3 166007 ;46008 :228?8 146011 111 01C1, Q087,2004,703C,C4A7,104E,D 01C2, 0(80,0036,4030,0047,00FD,¢ 01C3, 0080,0036,4030,0047,00FD,C ; :228}2 NEXT/0S. DMOD-AUTO IN( H 166013 146016 102 ;228}; 146019 103: :2285? ;66024 ;22852 1646007 15 i 01C5, 0487,7816,4U3D,8407,004F,7 10107, 0C87,7002,402D,A4A7,004F ,7 ; PUT GARBAGE IN MTEMPO ;0010==m=m==mm=cmmmam—————————— ; 1*#cons IMMEDJATE MODE ;001 mmmm e e ; S*Mcons LITERAL MODE ;0100====m=scmamemmemmcaum—au—— ~; =(Rn) AUTODE CREMENT MODE NEXT/IE ADDR,MODE NFEXT/1E.ADDR.MODE ; UNPREDICTABLE, TAKE ADDRESS MODE FAULT ; ILLEGAL ADDRESSING MODE VA RLGPR.R]_RB-(ONX,S12Z, ; OPERAND ADDRESS IS GPR(RNUM) - SIZE NEXT/OS.FIDMOD-READ1 : PUSH RBS=,SIZELIDEP], ; RBS GETS RNUMISIZE!-! ;010]~====mmmommmmmmm oo ; Addr RELATIVE MODE VA PC+SEXT(XB)+] PC_P(C+] ; ADDRESS OF OPERAND IS PC + DSPLMT ;228%? NEXT/0%5.7 : :46029 166033 ;66034 ;228%2 146037 107: . CLOBBRER MTEMPO DEF AUTOINCREMENT MODE ADDRESS OF LOW PART QOF OPERAND 2466028 146032 1C6: i V1C6, 0087,7815,003C,C4A7,004F,7 Rn REGISTER MODE GET OPERAND FROM REGISTER ;0001 m=nemmeuccneacen e ————— : (Rn)+ fPA_Q _MIMDRI VA_RIGPR.R1, 166023 D085,473(C,003C,C4A7,004F,7 NEXT/0S.FIDRED=-REG 166012 146022 1041 i) C1C4, 10000=cmmwmemm e e c e n v: FPA Q_MDR MTEMPQ R[GPR.R], ; SIZ2ECIDEP],CLOBBER HTEMPé DEF, I DMOD~READ1 0110memnnmmmemnmnnccmacnceanaa ~; D(Rn) VA SEXT(XB)+R[GPR,R] P{ _PC+], SIZECIDEPY,CLOBBER MTEMPO DEF, NEXT/0S.F10MOD-RCAD1 : ; : VA_XR PC P(+4 246040 NEXT/0S.F1DMOD=- READ1 (. 0OBBER HIEMPb DEF, ; DISPLACEMENT MODE ADDRESS OF OPERAND IS REG + DSPLMT PUT GARBAGE IN MTEMRO ;011)=m=cmcceccecmacencnea———— -=; @#Addr ;66038 ;46039 ; PUT GARBAGE IN MTEMPO ABSOLUTE MODE VA GETS ADDRESS OF OPERAND ; PUT GARBAGE IN MTEMPQ : (MT098.MCX OSR.MIC 1M(Q1) 28-NOV-83 01cB, 0887,2004,703C,C4A7,104F ,2 o1cc, 0C80,0036,4030,0047,00FD,C 01(p, 0(87,2004,71FC,(047,1443,0 SN AR O\ SN D S DS B D o 2 TNV NN THAND =2 O 000 NN 0087,7815,003C,C4A7,004F ,8 1C8: O1CE, 0080,0036,4030,0454,004E ,€ ;1001 == m o c e e s, VA_PC+SEXT(XB)+] PC PC+], SIZECIVEP], CLOBBER MTEMPO DEF, 1CA: REGISTER DEFERRED MODE (Rn) OPERAND ADDRESS IS GPR(RNUM) PUT GARBAGE IN MTEMPO NEXT/0S.F1DMOD={NDIRECT @Addr RELATIVE DEFERRED MODE VA GETS ADDRESS OF ADDRESS OF OPERAND PUT GARBAGE IN MTEMPO DISPLACEMENT DEFERRED MODE 1010 =mmmsmommmmm oo aD(Rn) OPERAND IS REG + DATA FROM I-STREAM VA_SEXT(XB)+R[GPR.R] PC PC+I, PUT GARBAGE IN MTEMPC SIZECIDEP],CLOBBER MTEMPO DEF, NEXT/0S.F1DMOD=INDIRECT 108: ;1011= mmm e e ——— FPA_Q MIMDR] VA _REGPR.RJ], CLOBBER MTEMPO DEF, NEXT/0S.DMOD~READ. INC. 4 2(Rn)+ AUTO-INCREMENT DEFERRED MODE VA GETS OPERAND GPR (RNUM) PUT GARBAGE IN MTEMPO SAVE MDR IN Q 061 1CC: ;466062 NEXT/1E. ADDR. MODE ILLEGAL ADDRESSING MODE 246064 1CD: $110] === e s e fPA_Q_MDR MTEMPQ_RLGPR.R],PUSH, (Rn. [Rx] INDEX MODE GET INDEX REGISTER READ MOD,SIZEUIDEP], VA _VA+4, READ FIRST HALF OF OPERAND POINT VA TO NEXT HALF OF OPERAND $46066 ;46068 1CE: J :1000=-wmm=nswacnn ——mme R, VA_RLGPR.R], CLUBBER MTENMPO, 109: Page 1124 Clock rate = 160ns NEXT/0S, F IDMOD~READ1 OOV 01CA, 8 O 01(9, 0487,7816,403D,8407,004F ,8 J\3\3\3\Pnhl\l\t\J\J\I\I\J\J\J\J\J\t\:\ 01(8, 0486,058E,403C,C4A7,004F,7 [e Yo Yoo S0 Yo Yo Yo Yo Lo Jo o Jo To Jo o 00 ol oALSA0 N QOOQOOOCOOOOOOCOOOOOOO 46041 U D 16:30:35 CLOKX Rev 13.00, ¢ 0S.FIDMOD Native Mode Operand Specifi ar MICROZ H ;66071 1100======mmmmmmmmmmmceamnaans BUT7LDD.BRA,NEXT70S .BOA~QUAD NERT/0S.DMOD~READ2 (Rn)[PC] INDEX MODE PC CALL ROUTINE TO GET BASE OPERAND ADD '46073 0S.FIDMOD~READ1: Rt it D L L S L L LE L T GET FIRST HALF OF OPERAND SAVE MDR GARBAGE MTEMPO READ.MOD, SIZECIDEP], FPA_Q MCMDR], CLOBBER MTEMPO DEF, 04F7, 0487,2592,5030,0454, 104F £ }46079 POINT TO NEXT HALF FINNISH IN REGULAR DMOD VA_VA+4, NERT/0S.DMOD-READ2 4608; 0S.FIDMOD~INDIRECT: o o o o o READ,SIZE[LONG], Q4F8, 0881,2592,5020,0050,104F,1 :46085 FPA_Q M[WDRI, NEXT/US DMOD=VA_MDR B S e TELL CHARLIE e GET ADDRESS OF SAVE MDR FINNISH OPERAND IN REGULAR DMOD MICROZ2 Y > L NOBIN ;646092 146093 ,T0C "' Revision History'' ;46094 166095 ; EXPLAINATION 66097 ;09 REV ;46096 ;10 ;46098 ;08 ;66099 ; 07 16:30:35 6 .T0C "'UVERFY.MIC" 8 CLOKX Rev 13.00, (Clock rate = 160ns 460 8 ;460 8 7 [T0C “REVISION 10.0" ;460 8 3 i CHARL1E MCDOWELL 460 8 ;46090 166091 28=NOV~83 1M(01) UVERFY.MIC “evenen == —rY (M109 UVERF ~< 0o : : E Clean up DSIZE Clean up DSIZE test. test. Remoye tree locations 173A and 1738 Initial release. 146100 .BIN . Page 11255 i i ; MICRO VERIFY TR AT N N S R O e T and a halt code of /tbs/ which will error condition in micro verify. ke k% is typed. ; ; ; If. If an error i¢ indicate this halt is due to an T ) b b 0000005X E 000000AX J 000000CE L SCRATCH PAD DUAL PORT ADDRESS Q XB, PC_PC+ISIZE 0000012x 0000014X 0000018x L | ? 0000006X 0000009 0000018X 000001DX Ak kwkNOTEwxnnr TEST NAME R-BUS, W-BUS, D-REG TEST 00UG000X 0000003X : T is typed at the console. PC+2(see below) CHAR : N ok kk ok kb kAR Rk The following is a list or the test sections and their associated error codes (for a complete error list see CHARTS): : ; R | detected, a single error character (see List below) is typed at the console and then the CPU is halted in console mode, When the CPU halts an error code will be_t%ped in place of the PC (see List below) 0000011 LI Rk Ak ARk tests run successfully, a second 'X' T T all T D D d b D e ed ed 3 ek e kb b D B e D rd At the start of micro verify, a '4' 000000F X 3 o 7 Page 1126! The micro verify routines are invoked bg doing a PUSH,NEXT/MV,TEST and upon successful completicn a RETURN [+1] is done. 000000CX TR ' : TEST INITIALIZATION" AR AR KA R AR RN R AN KRR NN AR R AR R AR KRR AR R Ak b b o b e o8 (LOKX Rev 13.00, Clock rate = 160ns t TEST INITIALIZATION b b P .TOC "' L b b R R A A A S A R S X : e e : o : A O A¥ A ; : o : : Ns No N6 No No No No ¥o ¥o ¥o No No No X No No No No Yo No o JoNo Yo Jo To o Yo Jodo To o do T o T o To T o] ; 16:30:35 L N A N A N N A AN PO NU RO PO PO RO DR TN S e a3 2 s 3 2 D Sl O O OO OO OO O O OO NN L WP ~— OO 0 OIS WA = OO 00 NI NN = O 000 NOM TS s — : e o YAy TR TR TR TR T TR O A L at al al al R .o P o ol o P el b ab el ket Y Y F 28-NOV~-83 S 01 T , MC CMT098 M| UVERFY O : : 000001EX The PC that ( M-BUS. Q=REG TEST F i SCRATCH PAD EXPLICIT ADDR MTEMPS SCRATCH PAD EXPLICIT ADDR RTEMPS L 0 X8, IR, OSR TEST | : : YESY [ T8 PARITY CHECKER A . , SCRATCH PAD EXPLICIT ADDR GPRS psize TesT ] | SCRATCH PAD EXPLICIT ADDR IPRS R T X | SCRATCH PAD TEST ; DSIZE TEST CACHE PARITY CHECKER : | ' CONTROL STORE PARITY CHECKER CACHE TEST is typed out on the console is 2 less than the value that micro verity loads into the P(, To find the exact point of the error gou should first add 2 to the PC then look in the Llisting for (_Z2L1T0{nnn] where nnn is the value of the typed out P( + 2, AR AR KRR AN KA R R AR AR R R R R R A AR AR AR R AR A AR R AR AR AR R AR AN ARk kR R AR ARk kR kR ke ' 0880,058E ,402(,(5p8,057D,D 1634, 0581,8C10,0030,24A7,0179,9 1799, 0581,DC30,2A70,0847,0963,8 378« i - D D h b d ONONONONONON b d e 162D: =00 C LOKX Re v 13. 00, ST INITIALIZAT] I *****t***FORCE Clock Page 1127 rate = 160ns ADDRESS**xkxkunw; ;00--mmsmemceem oo cem e ; ACTEMPS) ZL1TOCOD],DEC STERC, b B 3 d ¢ PUSH,NEXT/CN. TYPE. CHAR ; d b D D Rttt e LS L L CEL L DR L; f MEMSCR_-1 00 DO INIT BEFORE TESTING LOAD ADDRESS OF CMI DISABLE REGISTER TYPE <CR><LF> : STEPC MUST BE 1. ettt Lt : :; METEMPSI ZLITOL25], D ed : ;les—esmccccssscccccmccoonnconann; MEMSCAR_2L1T24L0E],STEPC_2 ;' PUSH,NEXT/CN. TYPE . CHAR b e ek d 8 PUSH,NEXT/IN, INIT d R A AR A A A A R G MV.TEST: b [ o 16:30:35 LREGION/MV.R1L,MV.R1H/MV.R2L g M «R2H/MV.R3L ,MV.R3H 162( b B A R A Y b e A A N A R A Joto e JogoJoJo Yo gopoole Lo o lod oo A b ok ad b NoNoNo N W e e Yo NoNo NoNoXo N R S A 0484,0587,0032,44£7,0179,D N S o 179¢C, T ¥) COO0COOOO0CRCO00 I~ NN NNNNND OO OO OO VWA VIUVTN AN DS IS B Do B B o 2 \IOMJ\W'\J—‘OOW\JO‘\J!J\MN—-‘OOCD\IO*\J’IJ\WM—‘O“«Om\loml\wf\)—‘oom\lom&\wf\)—-‘ 1639, O J 008,058k ,402(,(5D8,0179,( o 1638, b ad i 1797, 0D80,0C37,0039,E4A7,0163,9 o No Yo NoNo X 1795, 0p81,pC37,2030,7847,0179,7 B o 0c80,0£77,0030,0607,0179,5 b 1632, b o ok omh e ,4 1631, 0586,5(37,0031,2847,049F e ,049F ,4 059€,5€37,0030,6847 e 1630, 01A0,0CB7,0030,7687,0163,0 T T e e N T 162D, R 162C, 0080,0036,4030,0047,0487,9 2 8-NOV~83 D) TR T [P — <cx: 33 . CMT09 UVERF (RETURNED AS 1 ALSO) TYPE % TO INDICATE STARY OF TEST. DISABLE THE (M b_RNUM_ZLITOTOFI : PREPARE TO SAVE GPRS va_ironiza, : NEXT/MV, SAVE,GPRS. 01 : SAVE THEM IN CACHE 100-13C MV. SAVE.GPRS: URITE RUGPR.RJ.SIZECLONGI, NEXT/MV.F INISH, SETUP : ; MV.SAVE.GSRS 01: WRITE RLGPR.R1,SIZELLONG], : (A MDvAl-zLITOLY : b RNUM D-2L1T0C13, : PUSH,NEXT/MV.STALL.FOR,CACHE WR.NE.D? ,NEXT/MV.SAVE .GPRS : : MV.FINISH.SETUP: RCTEMP9]_0,MDR_O ; MDR_O TO ALLOW CACHE WRITE TO FINISH, : (MTO98. MCX : UVERFY.MIC MICRO2 1M(01) 28-NOV-83 MICRO VERIFY ;zg}gg LT0C "' 16:30:35 H 8 CLOKX Rev 13.00, Clock rate = 160ns 266192 Page 1128! : R-BUS, W=-BUS, D=-REG TEST MICRO VERIFY : R-BUS, W-BUS, D=REG TEST" ;46190SRR AR AR RRA KRR ;66191 ; R AR RN AR AR RAR RN AR RN AR AN R Ak khkkk ok S TEST R-BUS, W=~BUS, AND D-REG 166193 146194 :22}82 ; RIMP8 HOLDS THE ALP TEST VALUE MTMP8 HOLDS THE BASE VALUE USED TO GENERATE SUPROT TEST VALUES MTMPO HOLDS THE SHIFT COUNT USED TO GENERATE SUPROT TEST VALUES SUPROT TEST VALUE = MTMP8 ROTATED LEFT MTMP9 BITS 246197 :w*****wt*t*kt*******tt**tnk******fi****k**it******tk*******t**fi*i*i**t*i****** ;46198 ;66199 MV,BUS.TEST: U 1790, 0086,8DB7,0030,3047,0179,E :46200 MLERRCOD]_ZL1T8L6] ;46203 JREKAKARE RN AR KRR AR 166205 SRR A 146204 146206 146207 U 179F, 0484,00A9,2032,0047,017A,0 } U 17A0, 0586,8(37,0030,0847,017A,2 [o o N=NoNoXvNoNaNo Ne NeNo Yo No Ho o No o No No Yo Yo To Jo o e o ;2 NURLALNOALNLNL NNV NUNLRJIPY NONL NV AL N NV LML NV TV Sond LN A LA RO PO NUNO NUNUNO PO PO N = e s 2 b b ek e 3 D ;46208 U 179€, 0086,98FE,303D,8047,0179,F e e CE B EE LT : :22%8} 8 146211 ;2 % 146214 ;2 24 g 7 JVERIFY WITH A 1 A RR NI LOAD THE BASE ERROR CODE FOR ; BUS TEST ERRORS (6XX) R kR AR KRRk RN IN A FIELD OF 0'S R IRk R AR RNk Rk Rk ; DO INITIALIZATION QF GENERATINGA 1 s ; IN BITO FROM THE ALP AND THE SUPROT, ALSO INITJALIZ E THE STEP COUNTER SHOULD ALREADY BE ZERO THE LOOP COUNT IN jemmecmecsecececcecesmeaceeeaee- ; PL_MLTEMP9]_D_Q_0 ; jmmmmmememm s ——e——————— ; GET ALP TEST VALUE RCTEMP8]_D_D+0+1 ; DREG=00000001 RTMP8=00000001 meessesesecsessscmscssomemenes : GET SUPROT BASE TEST VALUE 146218 MCTEMP8] ZLITOL1), 32 ;x«x*BEGIN LOOP LPT1%x%x+; WALK A 1 IN A FIELD OF 0'S FROM BITO TO BIT32 ;2 8 ; ; MTMP8=00000001 NEXT/MV.RWBUS.FLOAT1,10 ; SKIP 1ST PART OF LOOP THE 15T TIME $46223 =0 52 P TR P U 17A1, 0086,98(9,0030,3047,0174,2 e e et LSRR L L PR R LR ; RCTEMP8I D_(D+RB).SL.1 NEXT/MV.RNBUS.FLOATT.S Q<O>_1, GET ALP TEST VALUE : DREG=,..010... : 246227 46228 46229 e; 46230 PL_MCTEMP9] D 00, ; 46231 NEXT/MV.MBUS.TEST' : 46232 46233 MV.RWBUS.FLOAT1,5: 46234 ieieetindr it ; eyt PL_MLTEMP9]_MB+Q ; 46235 I U 1649, 0086,98FE,303D,8047,017A,3 146226 R 1 1648, 0884,0425,0032,0047,017A,1 g MV.RWBUS.FLOAT?: END OF RWBUS.FLOAT1 QREG=DREG=00000000 RTMP8=...010... LOOP MTMP9=00000000 ADD 1 TO THE SHIFT COUNT MTMPO=MTMPO+1 PLATCH=MTMP9 - : © ——— e (MT098.MCX MICRO2 UVERFY.MIC - e 1M(01) MICRO VERIFY , U 17A2, OCBC,BB75,5430,0047,0964,C 325+ U 164C, 0D80,0C37,0030,0487,003E,F 16:30:35 :46238 146239 146243 146246 agaer u 165D, 0080,0036,4330,0047,0164,8 46250 146251 46953 [T U 8 CLOKX Rev 13.00, Clock rate = 160ns _D.XOR, (MLTEMP8].RL.P), WX.£Q.0? i COMPARE ALP AND SUPROT TEST VALUES ; T ; BAD D-REG OR SUPROT PC_ZLITOL000I,NEXT/MV.ERROR ; D S ; COMPARE 0K TEST RRWBUS(RTMP8 WAS WRITTEN VIA WBUS) ¢ QREG=DREG=00000000 D _0_D.XOR.RLTEMP8], WX.EQ.0? ;0mmmmmm = e e oo oooooeea e ; BAD RBUS OR WBUS PC_ZLITOL0011,NEXT/MV.ERROR ;1= i Page 1129 i | 146241 MV.ERR.605: 146242 e : R-BUS, W-BUS, D=REG TEST $46249 MV, ERR.606: u 165¢, 0980,0037,0030,087,003E,F 1 e :225%9 MV.RWBUS.FLOAT1.10: 146245 U 164D, 0CBO,0023,7A32,0047,0165,C 28-NOV-83 e mmmm e m e ; mnme e e ; COMPARE OK 46254 DBZ STEPC?,NEXT/MV.RWBUS.FLOATT 146256 ;AKAAREND LOOP LPT%kwuss; ; STEPCNTR=STEPCNTR-1 ! | i j i 1744, .T00 " MICRO VERIFY 8 : M-BUS Q-REG TEST" ARAAKIREANK AN KKK I 166D, 1745, 0780,0777,7777,7047 ,017A,8 0084,0BF9,0032,40647,0174,6 1746, 0880,0877,1030,0047,017A,7 KAk ko MTMPO HOLDS THE SUPROT BASE TEST VALUE SUPROT TEST VALUE = MTMPO ROTATED LEFT MTMP9 BITS H NN KA AR R R R R R R AR AR R AR AR RRNRRAR A AR AR R AR ARk kA ko kA ARk ok ok k ok ke ko :t*tttt*tfi*'**ttt**t*fittt**t**k*t*flkit*** DO JVERIFY WITH A 1 IN A FIELD OF 0'S JRARRRNA R RN KR AR KRR KRR AN R R AR KRR RN = O . DO INITIALIZATION OF GENERATING A 1 IN BITO FROM ; ; THE THE ALP AND THE SUPROT, STEP COUNTER. ALSO INITIALIZE MV.MBUS.TEST: -------------------------------- ; MCTEMP8I_D_a_D+0+1 146277 THE LOOP COUNT GET ALP TEST VALUE * DREG=00000001 --------------------------------- : MCTEMPOI ZLITOC1], NEXT/MV.RBUS.FLOAT1.10 GET SUPROT BASE : MIMP0=00000001 [N MTMP8=00000001 TEST VALUE ; ;%%*#BEGIN LOOP LP3%#x%x; WALK A 1 IN A FIELD OF Q'S FROM BITO TO BIT32 MV.MBUS.FLOAT1: et ; J AR KRR MTMPO HOLDS THE SUPROT TEST VALUE SHIFT COUNT ; 0986,0037,0030,0847,017A,6 0086,840D,E030,0047,0174A,5 Page 1130 M-BUS Q-REG TEST IRRARKAEREREN KRR H =0 U 1660, ; CLOKX Rev 13.00, Clock rate = 160ns {TEST M=BUS AND Q-REG : MTMP8 HOLDS THE ALP TEST VALUE NN = O 000~ 16:30:35 NN RO PO PO J 28-NOV-83 O AU AU TRLAL PN NUNIND NV AU NNOND NN 0C86,80A9,3030,0047,0174,4 P kAl P o o Rl o o Db b [e N e NoNo Ne NoNoNo Yo Ho Jw Ne No Yo No JoJo T Yo Yo 17A3, NNNNNNNOON OO OO OO W [an D4 233 —_— -<m CMT09 UVERF MCTEMPB) D_(MB+0Q).SL,.1 Q<0>_1, NEXT/MV.HBUS.FLOAT1.0S B R o LONLIT [111111112, NEXT/MY,SP.TEST GET ALP TEST VALUE ; DREG=...010.. : MTMP8=...010... L L L L C L : END MBUS TEST, BEGIN SP ADDRESS TEST ; INCREMENT FOR ALL 8 NIBBLES ; MV,MBUS,FLOAT1.05: R L LI L LEECE LS E ; PL_RLTEMPY]_RB+Q : ADD 1 TO THE SHIFT COUNT PLATCH=RTMP9=RTMPO+1 MV.MBUS.FLOAT1.10: -------------------------------- ; GET SUPROT TEST VALUE Q_MLTEMPOJ.RL.P ; OREG=,..010... CMT098.MCX UVERFY .MIC MICRO2 1M(01) MICRO VERIFY 1747, 0080,002B,6A30,0047,0168,¢ 28=NOV=83 ;46300 ;22%8% 16:30:35 K 8 CLOKX Rev 13,00, Clock rate = 160ns : M-BUS Q-REG TEST jemeessssiemssosmcoae cecemcmmnen; TEST Q-REG D_D.XOR.Q,WX.EQ.0? 146303 MV.ERR.60D: 168¢, 0980,0¢37,0031,8C87,003€,F 168D, 0C80,8008,7A30,0047,016A,C : DREG=00000000 146304 ;22§SZ e PC_ZLITOC031],NEXT/MY,ERROR $46307 s e : COMPARE 0K 146308 ;22393 -0 0_MLTEMP81.XOR.Q, wR Fa.0? ; BAD Q-REG : * TEST MBUS * QREG=DREG=00000000 146311 MV.ERR.6OE: < 16AC, 0080,0C37,0031,9C87,003E,F 16AD, 0C80,0036.4330,0047,0166,C 146312 ;22512 146315 146316 146317 === e ; BAD MBUS PC_2L1TOL033],NEXT/MV. ERROR ; Sl mmmmmm e : COMPARE OK PBZ STEPC?,NEXT/My,MBUS.FLOAT] ;x*xakEND [ OOP LP3kkkxx ; Page 1131 01 o> 28~NOV-83 T T T P 46318 46319 46320 46321 46322 46323 66324 46325 46326 46327 S T —> — N PO NI NNV NN KRR KA AR A NN A Resources i : SCRATCH PAD TEST' KA AN RR AR KRR AN AR R AR AR AR AR AR RN IR AR ! AR Ak hkow DREG Hold register number for loading RNUM. STEPC Used to Loop on filling s.p. with ones. RNUM Used for address1n? scratch pads. QREG FLAG? Temp used to fill s.p. with ones. Set to flag end of s.p. test. 46331 This section does a memory test of the 48 scratch pads that are driven onto the R-bus (16 RTEMPs, 16 GPRs, and 16 IPRs) and the 16 scratch pads that are driven onto the M-bus (the 8 dual ports are tested twice). 46332 46333 46334 46335 46336 46337 ; 4 gg H First all PC Error code if error exit, f | 56 (not 64 since 8 are dual flort) scratch pads are zeroed. Then starting with RTEMPO to RTEMP15(MM.TEMP1) each scratch pad checked for zero and then filtled with ones, one bit at a time. This is repeated for GPRO to GPR15(RTEMPGPR), IPRO(KSP) to s i it t et tatstainiainletateleludedeie bttt ; LOAD RNUM TO ZERO ALL 16 SCRATCH D_RNUM_ZLITOCOF] ; PADS IN EACH OF THE 4 GROUPS ! IPR15(MM_TEMP4) and MTEMPB to MTEMP15(SISR), 40 }k*ti**k&***t**********kkk****k*ll****k**k**kt**k*kkk***tk*t******t***** 46341 46342 MV,SP,TEST: 46343 22%22 _ L page 1132! Output 46346 MV.SP.,ZERO: ;40348 ;22%@3 146351 1617, 0981,p(37,2030,0107,0158,F R 46329 ;46347 1615, 0C84,0587,003C,04E7,017A,9 CLOKX Rev 13,00, Clock rate = 160ns : SCRATCH PAD TEST 46328 2 . 17A8, 0581,DC37,2030,7847,0161,5 16:30:35 .TOC '* MICRO VERIFY N NRO NN e N N R LA TE TR TS P P PR TR T Y [oYo NoNe o NeNoSoNo NoXoNo JoJo JoJeo o JoJo Jolo Lo Jed LN A AN AT N NN VNN O NN N W NN VN == —r ~< 00 (MT09 UVERF ? ' L 8 $46352 ;22%22 ) D vt tatiiaaltatal e Rt Lt H RCTEMP.R] 0,MDR_O, NEXT/MV.SP.ZEROTGPR ; IERO RTEMPO-RTEMP15 (MM, TEMP1) : |[ U —; STEPC D_RNUM_ZL1Y0L0], ; NEXT/RVISP.TEST.RTEMPS ; INIT RNUM FOR START Of | TEST Ezgggg MV.SP.ZERO.GPR: 146359 ;26%2? sh0 17AC, 0581,DC30,2860,0847,0961,5 413x . H ;4636 ~NO~ oo~ NN PO~ ;22%22 - 17AB, (JOF,05BE,403D,8047,017A,C ;46362 166363 £~ . RL[GPR.RI_O : 2ERO GPRO-GPR15(RTMPGPR) e T T; RLIPR.RI_O ' : ZERO IPRO(KSP)~IPR15(MM.TEMP4) b iitebiitb CLEAR FLAG! b b METEMP.RI_REZERD] H ; CLEAR TO INDICATE BEGINNING OF ; IERO MTEMPO-MTEMP15(SISR) = - D - RN.M_D-ZL1TO[1 ) I ECLONG], = 17AA, 0884,0587,003(,8047,017A,8 }2g§§§ mwg 17A9, 0484,0587,003C,C047,017A,A STGND TMP DEF?,N X1/ V.SP.ZERD . LOOP TO ZERO ALL 16 TEMPS TEST MICRO2 1M(01) 28~NOV-83 MICRO VERIFY 158F, 0080,05BE,5A3C,0047,0968,8 322% 16:30:35 ;Zg%;i ; ?LOKX Rev 13.00, Clock rate = 160ns Page 1123: : SCRATCH PAD TEST 146369 =001111 146370 MV,.SP,TEST.RTEMPS: 146371 100711 = mmmmmmommcc e a e ieenean ; 146372 Q RLTEMP.R],WX.EQ.0?, : NEXT/Mv, SP.RTEMP,ADR.ERR : CHECK IF RTEMP IS ZERO 146375 MV.SP,TEST, GPRS 159F, 0880,05BE,5A3C,C047,096C,2 322+ 146376 146377 P ———— : 0_RIGPR.RI,WX.EQ.07, * ;zgggg NEXT/MV.SP.GPR.ADR.ERR : 146380 MV.SP.TEST.IPRS: 15AF, 0C80,05BE,5A3(,8047,096(,8 322* 146381 146382 5107111 = mmm e e @_RCIPR.R],WX.EQ.07, ;zgggz 158F, 0581,DC31,2030,4047,015F,F e: : NEXT/Mv.SP.IPR.ADR.ERR 146385 : $11171 == mm s m e eee : 146386 ;zgggg 0 D_RNUM D+2L1T0C83, : NEXT/MU.SP.TEST.MTEMPS ; 146389 MV.SP,RTEMP.ADR.ERR: 1688, 0980,0C37,0032,8C87,003E,F 1689, 0084,0737,100C,0047,0168,A 146390 ;22;35 ;Qmmmeemmseccemeccma e an—— ; PC_2L1TOCO511,NEXT/MV.ERROR : 146393 22%32 CHECK IF GPR IS ZERO CHECK [F IPR IS ZERO SKIP DUAL PORTS RYEMP WAS NOT ALL ZERO SET ERROR CODE. i lememem—ccmccnccceeceeeeemaoae ; =0 RLTEMP RI_Q_CONX(1) © PREPARE TO FILL RTEMP WITH ONES Rele-] OO (e 16BA, 0880,003B,4A3(,0047,016C,0 J\D 46396 MV.SP.CHESK.RTEMPS: oo -~ CMTO98 ,MCX UVERFY.MIC Mg ;46400 46401 1688, 0181,DC3",2230,0847,0958,F 377+ 146402 ;22282 -0 WB_RCTEMP.R].XOR.Q,WX.EQ.0?, NERT/MV.SP.RTEMP.ERROR 146406 ;22285 146409 146410 16C1, 0485,2109,D33C,0047,0168,A 146411 ;222}% 0 ; T LT ; D_RNUM D+ZLITO[1],WB<5=0>7, NEXT/MV.,SP, TEST.RTEMPS 146405 MV, SP.RTEMP,ERROR: 1600, 0980,0C37,0032,9487,003E,F : COMPARE RTEMP AND Q Py R SO PC_2L1TNL052],NEXT/MV.ERROR * INCREMENT RTEMP ADDRESS AND CHECK ; ¢ ERKOR FILLING RTEMP WITH ONES, SET ERROR CODE AND EXIT. ¢ jles=memmemme—meocmemme—emoeo; R[TEMP R Q_((MIMDR1+Q).SL.1). OR.1, DBZ STEP(C? NEXT7MV.SP.CHECK ,RTEMPS : 1603, 0084.0737,100C,C0647,016(,4 146415 ;222}9 146418 146619 B; PC_2L1T0C054],NEXT/MV.ERROR ¢ $lmmmmemm e RIGPR,RI_G_CONX(1) ; SET ANOTHER BIT : LOOP UNTIL ALL ONES : 146414 MV,SP,GPR,ADR.ERR: 1602, 0580,0037,0032,A487,003E,F IF DONE WITH RTEMPS naee m———=; : IN RTEMP GPR NOT ALL ZEROS, SET ERROR CODE AND EXIT. PREFARE TO FILL GPR WITH ONES 2DV OO NSNS O Page 1134 CLOKX Rev 13.00, Clock rate = 160ns SCRATCH PAD TEST * COMPARE GPR AND Q : NERT/Mv.$P,GPR. ERROR R 0 U ettt : D RNUM D+ZL1TO[1],WB<5=0>?, * NEXT/MY.SP. TEST.RTEMPS INCREMENT GPR ADDRESS AND CHECK * IF DONE WITH GPRS MV.SP.GPR, ERROR: 1 N : ERROR FILLING GPR WITH ONES, PC_zL1TOLO571,NEXT/MV.ERROR * SET ERROR .DE AND EXIT, NS NN TR TR S 8 WB_RLGPR.RI.XOR.0,WX.EQ.07, vt Q_((MCMDRI+0).SL.1).0R.1, ; SET ANOTHER BIT IN GPR -0 DBg CTERTY: :"LOOP UNTIL ALL ONES NEXT/MV,SP,CHECK,GPRS : MV.SP. IPR.ADR.ERR: ;Qmmmmmmmm e e e ; IPR NOT ALL ZERO, bC_zL1TOL058],NEXT/MV.ERROR . SET ERROR CODE AND EXIT. 0 ATPRoR] a_conx(D T PREPARE TO FILL IPR WITH ONES MV. P, CHECK, IPRS AN = O 0o Litawvnoaauuilau O o PO OO NN NS A o i Al 2 F P o o g o e No oo de Reoatede dod k. [ode L ,F U 1600, 0989,0037,0032,D087,003E o DR T N 377« Tl 1} 1608, 0181,DC31,2230,0847,0958,F o U 16CA, 0480,0038,4A3(,8047,016D,0 o PR R TR TR U 16C9, 0C84,0737,100C,8047,016%,A ¢ N =0 T DN AN N N A AT N AN AN O PO PO RO PO PO MO PO RO D PR P 0989,0C37,0032,C487,003¢ ,F 16:30:35 MV, SP.CHECK. GPRS : I U 16c7, 0485,2109,D33C,C047,016C,4 =S OO U 1606, 0580,0C37,0032,8C87,003E,F Lo Yo Yo do Na Jo Jodeododo ol ev.maw. 377« Fa o bl el Al A F ol bl b %O*OO*O*O‘O‘ U 1605, 0181,DC31,2230,0847,0958,F L U 16C4, 0880,003B,4A3C,(047,016C,6 U 1608, 28~NOV~-83 1M(01) MICROZ MICRO VERIFY “evan CMT098.MCX UVERFY.MIC el al ot 2l b btk ab ol ol Pl : H ;66459 —— G160, 0885,2109,033(,8047,016(,A WB_RCIPR.R].XOR.0Q,WX.EQ.07, NERT/MV. $P. PR, ERROR ' COMPARE IPR AND Q : T —— b RNUM D+2LITOL11,WB<5-052, * NEXT/MV,SP,TEST.RTEMPS =0 MV.SP. IPR,ERROR: § 0o m e m e e : m e —————— o RCIPR.R] 0 _((MCMDR1+N D87 STEPI NEXT/MV,SP. CHECK . IPRS IF DONE WITH IPRS e : ERROR FILLING IPR WITH ONES, PC_ZL1TOLOSBI,NEXT/MV,ERROR e INCREMENT IPR ADDRESS AND CHECK : SET ERROR CODE AND EXIT, ———— SL.1),0R. 1 ; SET ANOTHER BIT ; LOOP UNTIL ALL ONES H IN IPR 28=NDV-83 B 9 16:30:35 CLOKX Rev 13,00, t SCRA TCH PAD TEST 1464063 011111 1664664 Mv. 5P, MTEMP LOOP: [ . ———————- ——naae cm——; 166465 * 46466 R[MM TEMP1]_D_0_-1, 1460667 00L4,0E77,3033,0047 ,017A,D 46448 ;46469 Page 1135 Clock rate = 160ns (LEAR FLAGOS ; BEGIN SP EXPLICIT ADDRESS TEST. TEST VALUE(8 NIBBLES OF ADDRESS) : NEXT/My.SP.EXPLICIT,ADR 146470 MV SP.TEST MTEMPS ¢081,0592,5A30,0047,096D,2 322 u teb?, U580,0037,0032,E(87,003E,f J 16D3, 0187,0637,1030,0847,016D,4 46471 46472 0_MCTEMP.R],WX.E0Q.0? * CHECK IF MTEMP IS ZEPO 66473 166474 =0 Y s w===; 66475 PC_ZLITOLO5DI,NEXT/MV. ERROR * ;66476 166477 166478 146479 =0 ;66480 MV.SP, (HECK .MTEMPS: ;66481 .0 M[;EA;-§S~5 ZL170013 T MTEMP IS NOT ALL ZERO, SET ERROR CODE AND EXIT. i PREPARE TO FILL M; WITH ONES ey 2 io16b4, 165, ;46482 146483 V681,010F ,6A30,0067,016D,6 0181,0C31,2230,0847,095D,f 577 46484 ;46485 1464686 146487 ;46488 WB_M{TEMP,RI.XOR.Q 0_(Q.SL.1), OR 1, WX, FQ,0?, NEX1/MV.SP.MTEMP . ERROR D_RNUM D+20L11001],uWB<5=057, NEXT/MU.SP,MTEMP.LOOP -0 ;66489 1466490 MV, SP. MTEMP ERROR: 46491 166492 P(_ZLITO[OSEJ.NEXT/MV.ERROR 146493 1464694 C887,00%4,458p,3047,016D,4 ;466495 146496 SHIFT [N ANOTHER ONE : 1 ------------------------- m———— ------------------------- L 1 0s80,01%87, 0032,FLB7 ,003F ,F ; : COMPARE MTEMP AND Q ; ; INCREMLNT MTEMP ADDRESS AND C(HECK IF DONE WITH MTEMPS ; : ERROR FILLING MTEMP WITH ONES, SET ERROR CODE AND EXIT, U m————— ML TEMP.R] G,DBZ STEPC?, NEXT/My,SP, CHECK.MTEMPS ; H SET ANOTHER BIT IN MTEMP T J U 1641, 0084,8008,1A3(,0047,096D,8 344+ J 1643, 0484,8008,1A3(,8047,096D,8 344% I value. . Hold register number for loading RNUM. Used for addressin$ scratch pads. Yo r R-bus scratch pads ) Constant 11111111 RNUM MTEMP8 I Ton You Voo ¥ TR TR R Temp to hold test DREG FLAG<T: 0> [ A R iRttt lldi Constant 11111111 LONLIT OREG e sttt loading RTEMPs. loading GPRs. not used, toading MTEMP8 (end setup). S This section tests that the scratch pads can be addressed explicitly instead of using RNUM (ie MSRC/TEMPO instead of MSRC/TEMP.R). First all R-bus scratch pads and MTEMP8 are loaded with their address in all B nibbles(ie RTEMP3=33333333, GPR14=EEEEEEEE), L AR Then the registers with addresses 0,1,2,4 and 8 are read explicitly. The dual ports are written only from RSRC but are read from both sides. R R R AR R R AN R R R AR N AR R AR R R AR A AR A AR R AR AR Rk R R R Ak h kA k ko MV.SP.EXPLICIT,ADR: S . - O ot S g MCTEMP8]_RCLONLITI, CLEAR FLAGT, NEXT/MV.SP.ADR.LP ;00 ¢ LOAD Dt CREMENT FOR RTEMP TESTS RLTEMP_R] Q_Q-M[TEMP8], ¢ WRITE ADDRESS OF RTEMP TO ALL 8 NIBS RIGPR.RI_0_Q~M{TEMPS], : WRITE ADDRESS OF GPR TO ALL 8 NIBS WX.EQ.07,REXT/MV,SP,ADR.LP " e evanan v v vl i T U L LN VA LT R 2223220228 802202222222 222222228 Resources Page 11 : SCRATCH PAD EXPLICIT ADDRESS TEST' trete MICRO VERIFY : o —=Oo .TOC "' O AY LT U AT T LY UL U U LU LA LT LY U T R T 0084,8008,743(,0047,096D,8 344 O 5 1640, 16:30:35 LN A WAL WA A NN N WU AU NN MU RU RS RUINUTN) — D b e e 0 b s b SO O O O O O OO OO0 D00 O N B NN = O OO0 NN W IS AN — O O O NN 2 O D OO NOMA IS AN — OO N 080t ,85BE,403D,4047,016D,8 TIL T ¢ 17AD, VNV P MICRO T TR T T N UVERFY MIC MICROZ N A A N T 2l aF o ¥ ol o o e a2l et Al uEaE 2 af AP o P L F L E ol ol AN No ¥o Xo N No ¥e No No Ne No Vo No Xo No Xu No Yo Yo No No Yo No Jo Xo Yo Yo Jo To Yo Jo Lo No loaloal>aleatoal® : (MTD9B.MCX Fo N o X= s ; 9 (L OKX Rev 13.0 0, Ct ock rate = 160ns SCRATC H PAD EXPLIC IT AD DRESS TEST C 28-NOV~83 WX.EQ. 0?2 NEXT/MV.SP,ADR.LP MV,SP.IPR,ADR: R ettt betntadrtn btttk - RLIPR.RJ_Q_Q=M[TEMPB], WX.EQ, 07 NEXT/MV.SP.ADR,LP ; WRITE ADDRESS OF IPR TO ALL 8 NIBS CMTO98.MCX UVERFY . MI( MICRO2 _IM( (y)fl MI1CRO VERIF 28=NOV=-83 16:30:35 b 9 (LOKX Rev 13.00, Clock rate = 160ns : SCRATCH PAD EXPLICIT ADDRESS TEST Page 11375 ;46540 = :2222; MV.SP. ADR LP: 1608, 0981,D(30,2530,0847,0164,0 1609, 080,0036,4530,0047,0164,4 1644, 0C45,DE77,3037,0047,016D,8 1645, 044D,DE?7,303B,0047,016D,8 1647, 0C86,85BE,4032,0047,017A,F 17AE, 0080,05BE,503D,4047,017A,F 17AF, 0880,0592,4A30,0047,096D,A 322+ 16DA, 0980,0037,0033,0c87,003E,F 146543 ;Zggzg 146546 160, 0980,0(37,0033,1487,003E,F : 16E2, 0580,0037,0033,2487,003€,F 16E4, 0580,0037,0033,3(87,003¢,F 16E5, 0480,8008,4A30,0047,016E,6 ;lmmmemmmemmmmmeme e ————— : USE FLAGS TO MOVE FROM RTEMPS TO GPRS © TO IPRS THEN MTEMPS 146550 R[RTMPGPR] D_G_RNUM_=1, * TEST VALUE (8 NIBBLES OF ADDRESS) :22;2% NEXT/MV.SP.ADR.LP * LOOP BACK TO LOAD GPRS 146554 146555 R T RCMM. TEMP4]_D_Q_RNUM_-1, ; * TEST VALUE (8 NIBBLES OF ADDRESS) 22225 NEXT/MV,SP,ADR.LP : 146559 =11 ;2222? 1]=mmmmmssmme—mecemcemcmemeee ; mcrempsn _RLTEMPB] ¢ PUT 88888888 IN MTEMPS 146551 146556 146362 ;22222 146365 ;zgggg (46368 20 ;22293 146572 :222;2 166575 =0 :223;9 146579 ;2223? 46582 =0 ;22;32 46585 16E3, 0880,430F ,4A30,0047,016E,4 * ALL 16 RETMPS/GPRS/IPRS FLAGKT =057 146578 T6E1, 0880,230F ,4A30,0047,016E,2 : LOOP DECREMENTING RNUM TO WRITE 146547 146571 1608, 0080,130F,4A30,0047,016E,0 D_RNUM D=-2LITOL11,FLAG<T=0>?, NEXT/MV SP.RTEMP.ADR 146586 ;zgggg 146589 =0 SET FLAGO,” SET FLAGT, ¢ SET FLAG TO TEST GPRS * SET FLAG TO TEST IPRS jommmmmmmeumm—samoaas mmemmemaee- ; Q_RCLONLIT] * PUT CHECK VALUE IN DREG=11111111 P ot ; WB_MCTEMP0],WX.EQ.0? : MTEMPO SHOULD BE 0 ;Q=m===m=s=mm—memmeemmceesmeann ; PC ZLITOL061],NEXT/MV.ERROR : lemesmeccmmmmseccmecocceoceneee : B _MITEMP11.XOR.Q Q_0.RL.1, WX7EQ.0? : MTEMP1 SHOULD BE 11111111 ; SHIFT FOR NEXT CHECK VALUE ;Qme=mm=e=meecemmm—ea—e—cea—aeee- ; hC_7L17000621,NEXT/MV. ERROR : ;leseemmeeecmemcecscce—eeeceaaes ; 8 _MITEMP2].XOR.Q G_G.RL.1, WXTEQ.0? : MTEMP2 SHOULD BE 22222222 : SHIFT FOR NEXT CHECK VALUE ;0mmesmossos—emmermemmeeeeeeeee : BC_2L17000643,NEXT/MY. ERROR : jlemmmmmmmmmmmmecmoeoeeeeceeees ; ua _MITEMP4].XOR.Q G_Q.RL.1, WXTEQ.0? : MTEMP4 SHOULD BE 44444444 : SHIFT FOR NEXT CHECK VALUE ;0==m==mmoesaseceeccacocsmmasaes : 146590 PC_IL1TOC067],NEXT/MV,ERROR : 146593 WB_MLTEMP81.XO0R.0Q,WX.F0Q.0? : MTEMP8 SHOULD BE 83388888 o600 . f 16E6, TM(OD) MICRO VERIFY 0980,0037,0033,4487,003E,F 146594 146596 16E7, 0480,05BE,4A30,0047,096E,8 322% 16E8, 0980,0037,0034,3C87,003E,F 146600 146601 16E9, 0480,1003,4A30,4047,016E,A 166605 16EB, 0480,2003,4A30,8047,016E,C 16EC, 0580.,0C37,0034,A487,003E,F 16€D, 0(80,4003,4A31,0047,016F,0 16F0, 0580,0037,0034,8(87,003€,F 16F1, 0480,8003,4A32,0047,016F,°2 t6F2, 0980,0037,0034,(487,003E,F 16F3, 0880,05BE,4A38,0047,096F,4 322% _ . 16F4, 0980,0037,0035,0087,003E,F 9 CLOKX Rev 13.0 0 E 16:30:35 + SCRATCH PAD EXPLIC I 146599 146602 146603 166604 1466606 ;66607 1466608 ;46609 ;66610 146611 ;66612 ;646613 166614 ;46615 146616 146617 ;66618 ;46619 146620 66621 166622 146623 146624 166625 1466626 1646627 166628 -y o s W T o s o ¢ RTEMPO SHOULD BE 0 ——— - - - - - - S - RTEMP1 SHOULD BE 11111111 NB _MLTEMP1].XOR.RLTEMP1], WXTEQ.0? B e = 0 - e o T o T ey PC _IZLITOL092],NEXT/MV. ERROR Rttt : w3 _MLTEMP2].XOR.RLTEMP2], WXTEQ,0? - " v W > T o o o o 0 e A o RTEMP2 SHOULD BE 22222222 O PC _ZLITOC094],NEXT/MV.ERROR mma cmemcm e ilmmmmmm—memcccm w8 _MOTEMP4], XOR,RLITEMP4], RTEMP4 SHOULD BE 44444444 WXTEQ.0? s - e e ey s o S S o o O PC _ZLITOC0973 ,NEXT/MV.ERROR ilemmmmmememccecmemocec—memmen—— ;: B _MLTEMP8],XOR.RLTEMP8], RTEMP8 SHOULD BE 88888888 WXTEQ.0? s e 0t e . 246630 146631 - A - T S ¢ IPRO (KSP) SHOULD BE 0 ;466632 ;66633 146634 1466635 146636 - - s 8 - - 5 e o - W Ty T 46638 ;46639 UB _MCTEMP1]. XOR.RLESF], WXTEQ.0? 16fF6, 0980,0037,0035,1487,003¢€,F 166642 PC _ZLITOC0A2],NEXT/MV.ERROR $66640 ;66641 ;46643 L6644 166645 146646 * o 16F5, 0880,1003,4A38,4047,016F,6 0080,2003,4A38,8047,016F,8 o S L 166629 166637 16F7, TEST ¢ o - ———— oy T Page 1138. ck rate = 160ns RESS ;46595 146597 ;46598 16EA, 0980.0¢37,0034,9487,003E.F 28~N0OV-83 4=l UVERFY MIC MICRO2 —t CMT098.MCX H etttk ; B _MOTEMP2],XOR.RISSP], WXTEQ.0? IPRT (ESP) SHOULD BE 11111111 IPR2 (SSP) SHOULD BE 22222222 16FC, 0980,0037,0035,4487,003E ,F 16FD, 0880,05BE ,4A34,0047,096F ,E 322+ 16FE, 0980,0¢37,0036,00(87,003E,F U 16FF, 0080,1003,4A34,4047,0170,0 V) 1700, ,F 0980,0037,0036,1487,003E J 1701, 0880,2003,4A34,8047,0170,2 U 1702, 0580,0037,0036,2487,003E,F 1703, 0880,4003,4A35,0047,0170,4 1704, 0580,0€37,0036,3C87,003E,F 1705, 1706, 0080,8003,4A36,0047,0170,6 0980,0037,0036,4487,003E ,F " o NSNS0 00~ O 0880,8003,4A3A,0047,016F,C (S, VI VIVAIVIVAIVA IS S o~ o e 16F8, L I 0580,0¢37,0035,3(87,003t,F A 16FA, Dl 0880,4003,6A39,0047,016F ,A L 16F9, oo[e oo Xe o Jodo Jo Jo o Jeo o [oadeyd oo ONONOONONON 0580,0037,0035,2487,003E,F :wb Pl 16F8, 146660 146661 9 CLOKX Rev 13. 00, Clock rate = 160ns F 16:30:35 SCRATCH PAD EXPLI cIT ADDRESS TEST t o 28~NOV~-83 . MCX CMT098 UVERFY MIC g oy 8 _MUTEMP4], XOR,RLISP], - o > — 3 - o ; IPR4 (ISP) SHOULD BE 44444444 WXTEQ,07? - e s s e g 80 WXTEQ.0? ————— 1 ; IPR8 (POBR) SHOULD BE 83888883 ; RO SHOULD BE 0O - 146662 146663 ;66664 ;66665 : 46666 246667 o e - s e o e e o ey e O S o 146668 ;46669 246670 166671 46672 166673 146674 ;46675 ;46676 146677 146678 ;66679 166680 ;66681 ;46682 146683 166684 ;46685 ;66686 ;46687 ;66688 ;46689 o - - O e o -———— ey ; WXTEQ.0? - - - " - - - ; R2 SHOULD BE 22222222 WXTEQ.0? R4 SHOULD BE 44444444 WXTEQ.0? " > -- ;46690 ;46691 1466692 146693 J 66694 UB _MCTEMPB].XOR.R[RB], WX7EQ.0? 146696 PC _ZLITOLOCBI,NEXT/MV.ERROR ;46695 SHOULD BE 11111111 - —-————— - - R1 - - - - - . T ey - - ; R8 SHOULD BE 88888888 - ————— Page 1139| 28-NOV-83 .ToC 16:30:35 : 9 G ' Page 1140 CLOKX Rev 13.00, Clock rate = 160ns SCRATCH PAD DUAL PORT ADDRESS TEST i 1 : SCRATCH PAD DUAL PORT ADDRESS TEST' MICRO VERIFY i i i | 1 1 22223222322 222222322 22322222388 22233 . ’ . 323 3223 f Resources DREG Hold register number for loading Output PC Error code if error exit. RNUM . . ! 3Rttt ldld Used for addressing TEMPs in a RNUM. loop. . ’ . ’ . This section checks that ) ’ ’ ports are written from the The 8 dual ports are written with 0-7 using SPW/MLONG and MSRC/TEMP.R. They are then read and checked using RSRC/TEMP.R. ¢ ’ v K d KRk ko e o %R T . 0 U 1707, 0181,D(37,2030,3847,0165,1 if the dual 'M' side then they can be read from the 'R' side. Other tests have done partial implicit testing of writing from the 'R' side and read1ng from the 'M' side. . . . ’ ko ok ok st L e e ek o K e B_RNUM_ZL1T0L07) g T e ok ok ek O e ke ok o ok ke e ok e ke e ok bk ok ek R ke * ; MV, SP,DUAL,PORT.WRT: MCTEMP.R] D, U 1651, 0887,0582,4030,0047,0178,0 * LOAD REGISTER WITH ADDRESS NEXT/MV.SP.DUAL.PORT.LP ; D_RNUM_ZLITOC73, * LOOP OVER 8 DUAL PORTS NEXT/MV.SP.DUAL .PORT.READ U 1653, 0981,0C37,2030,3847,0165,5 : MV.SP.DUAL.PORT.LP: D RNUM_D~ZLITO[13,SIZECLONG], U 1780, 0581,DC30,2B60,0847,0965,1 413 STGND [MP DEF?, =01 NEXT/MV.SP.DUAL . PORT .WRT - o e ; = =0 ¢ WB D.XOR.RLTEMP.R],WX,EQ.0?, ; READ DUAL PORT ON R-BUS AND CHECK D _ANUM_ZL1TOCO], ' PREPARE TO RESTORE GPRS. NERT/MV.SP.DUAL .PORT (HK U 1655, 0880,0023,4A3(,0047,0170,8 U 1657, 0981,DC37,2030,0047,0178,1 0 ' DECREMENT REGISTER ADDRESS AND LOOP NEXT/M7.RESTORE . GPRS H : MV,SP.DUAL ,PORT.(CHK: U 1708, 0580,0C37,0036,7487,003€,F U 1709, 0081,DC30,2B60,0847,0965,5 413+ Le PC_ZL1TOCOCE],NEXT/MV, ERROR ; D v ttninebetale ittt bt : D_ANUM_D-ZLITOC1], _ : STGND TMP DEF?,SIZ27CLONG], . DECREMENT REGISTER ADDRESS AND LOOP NEXT/MV.SP.DUAL . PORT.READ : 28-NOV~83 O NI (NN DO = O bt o~ oo ONORONONONON N SN N NN NSNS N SN N P T TR AL -t o L T T o =~ Pl e P O OO WU LVIWLh 1 H 16:30:35 : RESTORE GPRS .ToC MICRO VERIFY KKK R . ] 13 . . . . ’ KRR RN 9 CLOKX Rev 13.00, AR KRR INPUT A AR AR AR AR R AN AR AR RN A RA ARk A bk bk u 1708, 0€85,2592,403C,C047,0178,3 0085,2592,4037,(047,0178,4 0D81,DC31,2030,0847,0178,2 k ke akkkok used by the boot and/or console code. They had been previously saved in CACHE locations 100~-114(hex). AR KRR AR AN A AR AR STEPC_ZLITOC10] READ,SIZELLONG],VA_VA+4, DBZ STEPC? AR Ak A Ak kAR AR A A ; D RNUM D+ZLITOL1], Ak Ak K i i t ! | | RESTORE ALL 16 GPRS. : ; : s Sttt bkttt : RCRTMPGPRI_MLMDRI, ; : NEXT/MV. XBTTEST NEXT/MY.RESTORE.GPR.10 f | D S D Dbt ; ittt RLGPR.R]_MIMDRJ, ; NEXT/MV.RESTORE.GPR.LP ! ! This section restores GPR1-5 and RTMPGPR which all contain values MV.RESTORE.GPR.LP: J 1783, I i MV.RESTORE.GPR.10: U 170A, i i MV.RESTORE.GPRS: =0 | VA MUST BE 100(HEX) ek R AR A AR AR ARk Rk kA A AR AR KRR U 1782, 0880,0036,4320,0450,0170,A ' : RESTORE GPRS' . U 1781, 0980,037,0030,8107,0178,2 Page 1141 Clock rate = 160ns ; ; GO TO NEXT TEST. : ; (MT098.M(X UVERFY.MIC MICRO2 1M(01) MICRO VERIFY 28-NOV-83 :22;3% .TOC ' 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : XB, IR, AND OSR TEST ;46785 ; Resources ;66787 ; ;46788 146789 A KA ARk A AR A AR AN * Nk . STEPC Loop counter for floating 1. TEMP1 Test pattern for XB<63:32>, Test pattern for XB<31:0>. TEMPO VA Used to write test pattern to cache. Error code if error exit, MICRO-STACK .Zg;g? : Page 1142 : XB, IR, AND OSR TEST" MICRO VERIFY E46784 TRAARIR KR RIAR R URIKR KR IRIRRK KA KR AR AR ;46786 ; ' 19 Clobbered by Mv.CHECK.XB if error exit. ;22;3§ ; Output PC '22;32 : Subroutines MV. CHECK.XB 146796 This section tloats a 1 in a field of 0's through all 64 bits of the XB 46798 ; 46799 ; of the XB each time the XB is tested. OSR being tested redundantly with many ;46801 ; 46802 ; and TEMP1 each time callinfi MV.CHECK.XB which write TEMPO and TEMP1 to the cache then source the data through the XB to check it. 46797 ; and the IR and OSR. Tne IR and OSR are tested with the low 2 bytes 66800 ; '46803 : 46804 The test pattern (1 in a field of 0's) This results in the IR and 0's but uses very Little code. is floated through TEMPQ ;k*t*'l*tk*kk****t***kk**kkk*fi*'«**'l*k*'('H(‘(**************t*******t***t**** :22282 MV.XB.TEST: U 1784, 0186,1€37,0030,0047,0178,5 U 1785, 0986,0037,0030,0847,0165,8 U 1658, 0580,0037,0030,04A7,0570,C Ezgggg ;46809 ;zgg}? 146814 ;Zgg%g ;46818 ;223}8 :46821 1 1654, 0086,0301,(28D,8047,0965,8 355 00 * SETUP TO LOOP 32 TIMES, XB<63:32>=0 Jmmemmm—mmeme—ecsscosseasmesmosous ; MLTEMPOZ_2LITO01] ; SETUP TO FLOAT A 1 THRU XB<31:0> VA_ZL1T0LO], : TEST PATTERN IS WRITTEN AT O. Efi%g}% MV.XB.TEST.LOOP1: 146817 U 1659, 0585,0037,0030,0047,0178,6 MCTEMP13_2LITOCO) ;46822 ;2%252 PUSH,NEXT/MV, CHECK. XB B MCTEMPO] _ZLITOLO], H ; NEXT/MV . XB.TEST.HIGH.BITS ; SETUP TO LOOP 32 TIMES, XB<31:0>=0 : T: MCTEMPO] MB.RL.1,WB<0>?, NEXT/MV.XB,TEST.LOQP1 ; ; FLOAT A 1 THRU XB<31:0> i UVERFY.M MICROZ MO MICRO VER If Y 28=NOV=83 16:30:35 : J 9 XB, IR, CLOKX Rev 13.00, Clock rate = 160ns 1 CMTO98.ME AND OSR TEST ;46825 MV, XB.TEST.HIGH.BITS: U 1786, 0586,1C37,0030,0847,0166,0 146826 ;46827 ;46828 =00 jemmmmemmmemm——e—smemaaeee MCTEMP11_ZLITOL1) ;46829 Mv.XB. TEST LOOP?2: 146830 00 ;00=eememsmcesuescocce e |y 1660, 0580,0037,0030,04A7,0570,C u 1661, 0080,0036,4030,0047,0178,C J 1662, 0085,1301,C2BD,8047,0966,0 355+ ;46831 246832 ;46833 ;46834 ;66835 ;466836 ;46837 ;46838 22323 VA ZL1T0C0], PUSH, NEXT/MV CHECK.XB 10 ccmm e m e r e e NEXT/MV XB.PC.TEST : TEST PATTERN IS WRITTEN AT 0. ae 10— mee em e MLTEMP1] _MB.RL,1,WB<0>?, NEXT/Mmv.XB. TEST LOOP2 * SETUP TO FLOAT A 1 THRU XB<63:32> -t P FLOAT A 1 THRU XB<63:32> Page 1143? 16:30:35 J0C " MICRO VERIFY MV.CHECK.XB P 22t TEMP1 VA T s il it It sisadiitssiiitinnsds Test pattern for XB<31:0>. Test gattern for XB<63:32>. TEMPQ Inputs S R Page 1144 MV, CHECK.XB"' Must e zero *xw+THE (M] SHOULD BE DISABLED OR MEMORY WILL BE WRITTEN I = OO 00 NN LS AN — O QO NN ES AN CLOKX Rev 13.00, Clock rate = 160ns 1223322322 2232 2223222323222 TR TRTR L o 00 Co £ 00 Co & 0o Co G Go o Co 00 Co 0o oo Co LAV NN IS D I D S o D D P ol TNV T R ol ol D cewe bl ol ol aE ak al oyl L T R T .. 28-NOV-83 9 Clobbered as side effect. Used to source XB and to load IR and OSR Used to hold TEMP0<15:8> for testing OSR MDR Resources PC TEMP?7 Error code if error exit. Clobbered if error exit. PC Output . Result of compare if error exit. MICRO-STACK VA I 1M(0 1 MICRO VERIFY L S R O MICRO2 S UVERFY . MIC Fo (MTO98.MCX This subroutine writes TEMPO and TEMP1 into the first 64 bits of the cache, then points PC to 0 to fill the XB and compares the XB with TEMPO and TEMP1. It then points PC to 0_and uses IRD1TEST to load IR and OSR and compares them with TEMP0<7:0> and TEMP0<15:8>, In order for main memory to not be changed, the calling routine must make sure that the (Ml is disabled. 'n\*t'(k****’(*k*************’(ik*'{*********k*Yf'(*t********\\'**************** 0980,0037,0037,9487,003€,F D NARANIUAN - OO0 NN SWNN = O O T PUSH,NEXT/MV. STALL.FOR. CACHE _-__..---------.--__-_--_..--- M[TEMP?] _MB.AND,ZLITBLOFF], WRITE PATTERN FOR XB<63:32> TO CACHE. LET XB PRE~FETCH COMPLETELY. —— CRECK XB<31:0> WXTEQ.0? - - o o (2 o O e B0 e e e b ——— ERROR IN XB<31:0> - = W . - o VA XB.XOR.RLTEMP1] PC_PC+4, WXTEQ.0? ;0 46893 ISOLATE 2ND BYTE FOR TESTING OSR. ~ VA_VA+4 — OL 1712, 0081,7017,4A20,64A7,0171,°2 SAVE INPUT IN A TEMP WRITE PATTERN FOR XB<31:0> TO CACHE R[TEMP?J MCTEMPO], WRITE,SIZELLONG], ~N 1711, Co oCo oot60 Ga 60 60 60 0o Co G0 &0 = (el ele.]00 C0 20 o OO OO COOOCO I CO00CH TM NN NN NN NN o 1710, 0980,0C37,0037,8(87,003E,F ONON O~ o OO~ rrORONONONOTM rONONON OO 170F, 0081,7017,4A20,24A7,0171,0 L AL U i S L 170€, 0080,1592,4020,05D8,0578,A O 1700, 0186,7D92,0037,FC47,0170,E A 170C, 0C84,0592,4021,C5D8,057D,D o LB Po My, CHECK XB: L\‘l\l\ EaB ol o ’ K CHECK XB<63:32> ---------------------------- P _ILITOCOF2],NEXT/MV,ERROR {ERROR IN XB<63:32> i MICRO2 CMT098.MCX : © UVERFY.MIC 1M(01) MICRO VERIFY U 1713, 0580,0037,0030,0487,0178,7 U 1787, 0480,0036,4170,0047,0018,F ;46894 L 16:30:35 28-NOV-83 9 CLOKX Rev 13.00, Ctock rate = 160ns MV. CHECK . XB ; Page 1145: lesmesescemmsemcmmmeeeooone oo : * TO WAIT FOR XB TO FINISH PRE-FETCHING 'zgggg bC_zL17000] 146897 j=mmmmmemmees—mesmemecmmee———— : NEXT ADDRESS MUST BE IN 0-1K .22333 IRD1TEST * LOAD IR AND OSR 146900 .REGION/IRD1.R1L,IRD1.R1H 146901 21111 u 018F, 0C80,0036,4030,0567,0178,8 146902 '22382 U; MDR_ZEXT(IR) : ’22382 LREGION/MV.R1L ,MV.RTH/MV.P2L ,MV.R2H/MV.R3L MV .R3H U 1788, 0881,2000,0840,04A7,0954,6 374+ U 1546, 0580,0C37,0037,A487,003E,F 146907 VA_MIMDRI-RLTEMPOD, ‘22383 46910 ;zgg}; =10 146913 U 1547, 0C84,0287,0001,C567,0178,9 $46914 ’223}2 Y46917 U 1789, 0081,2003,4A31,(4A7,0171,4 u 1714, 0580,037,0037,8087,003E,F , , U 1715, 0980,0C37,0080,0487,0000,2 146918 ;223;3 146921 =0 ,2235% ;46924 146925 46926 * CHECK IR AGAINST TEST PATTERN<7:0> SIGND CMP?,SiZECBYTE] : 10=m=mmmmmosnmmmomemmmmman s ; ERROR IN IR hC_ZLITOCOF4T,NEXT/MV.ERROR ;1] mmmm ; os : MDR_ZEXT(OSR), : RCTEMP7]_RB.RR.8 * ROTATE TEST PATTERN<15:8> T0 <7:0> jemmememccemscccesemeseemecae——- ; VA_MIMDR].XOR.RCTEMP71, * CHECK USR AGAINST TEuT PATTERN<15:8> WXTEG.0? : ;0==mmmmmmmesem e cmomo oo s : ERROR IN OSR PC_zLITOLOF71,NEXT/MV.ERROR R e eL L D L L L R PC_ZLITOLO], RETURN [+2] e : L e: ' ZERO FOR MV.XB.PC.TEST TEST 0K H : (MTO98.MCX UVERFY .M I¢ M]CROZ IM(01) MICRO VE RIFY 28-NOV-83 :Zgggg LTOC ' M9 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : MV.FILL.XB : MICRO VERIFY Mv.FILL.XB" }46929 ;tt*kt***t*w*tt***t**k****t****tt****k********kiiw**it**tt******t******* 146930 146931 Input ;46933 Output 146932 ; 166934 . ;46937 46938 146939 S R 146941 U 17BA, 0C80,0036,4030,04E7,0178B,8 U 178B, 0D80,0(37,0030,0487,0171,6 U 1717, 0880,0036,4080,0047,0000,1 VA 0 X8 Cache from VA to VA+7 0 . e L A A e PR A R AT ;66942 MV, FILL.XB: ;46943 jeeem memmem————— Semmem MDR_0O 166944 ;46945 ;46946 :2232; 0 166951 $66952 , 66953 146954 146955 . This subroutine is used to point the PC to 2ero, and wait for the XB to finish pre-fetching, this is done to make sure all 64 bits of the XB are tested and not just the first 32 bits. R AT AR LSRR AL AR R AR AR A LA AL AL - ——— ; STALL FOR CACHE WRITE TO FINISH, fmmm—em———— eemem o cem .o ——— ; PC_ZLITOLO] 166949 MV XB.WAIT: 146950 B u 1716, 0981,BC10,0A30,0CA7,0971,6 342« Must be between 3 and 20 PC 166935 146936 ; VA ; POINT PC TO TEST PATTERN TO FILL XB e ettt ittt b - VA_MLVAJ-ZLITOL1], WXTEQ.07 ,NEXT/MV XB.WAIT ; WAIT FUR XB TO FINISH PRE~FETCHING : S ittt —mmemeee—————— : RETURN [+1] H Cf T098.MCX UVERFY.MIC MICRQ2 1M(01) 28-NOV=-83 MICRO VERIFY ;228?9 LT0C ' 16:30:35 : XB, KX Rev 13,00, Clock rate = 160ns Page 1147 PC_PC+ISIZE TEST : XB, PC_PC+ISIZE TEST" MICRO VERIFY 2469§8 SRREA KRR R KA R R KR KRR KK ARk kAR AR A KA A A KRR AR AN RN AR R KR XAk ;66959 246960 ; Resources ;46951 166962 ; :223?2 ; 246904 LONLIT Used to generate test TEMP1 Test pattern for 2nd 32 bits of istream Test pattern for 1st 32 TEMPQ Used to load test patterns into cache. Error code if error exit. . Result of bad compare if error exit, Output PC VA '22323 ; Subrout ines MV.CHECK.XB This section tests the auto incrementing of the PC when fetching istream 46971 146972 A I bits of istream VA 146965 2282? ; 146970 : patterns data. R A byte, a wora, a longword, and then another byte are fetched from the XB e and checked, letting PC be incremented automatically. A L A LA R S AR LA A AR I AR AR AL AR 146974 :223;2 MV.XB.PC,TEST: 178C, 0380,02AD,5667,8047,0178,D 178D, 0486,05BF,403D,4047,0178,E 17BE, 0286,1E7F,(03D,4047,0152,8 1528, 0(80,0036,4030,0047,0570,¢ . 152A, 0081,7014,0B840,24A7,0971,8 385« . 1718, 0980,0037,0038,8(87,003¢,F 1719, 0(84,0387,0000,0047,0178,F 178F, 0481,7014,0B50,24A7,0958,6 385+ 5228;; 146979 ;2232? 246982 ;22332 $46985 =0« :zggg? :46988 jmmmm—mmm e ————— —_— MCTEMPOI_RLLONLIT] ; LOAD 3¢ BITS OF TES PATTERN vttt tabis ettt bl : MCTEMPT]_RCLONLITI.NOT L L PUSH NEXT/MV, (HECK.XB ; LOAD SECOND 32 BITS OF L E LR : LOAD PATTERN INTO XB. . i1 Hmmmmmmmeoececemmcocomeeen ; THE CHECK HERE 1S A SIDE EFFECT OF LOADING, 266992 =0 :22332 JQmemmmmem—mme e —cccma oo oee o H PC_ZLITOL111],NEXT/MV,ERROR ; ERROR SOURCING FIRST BYTE 146995 ; : TEST PATTERN VA_ZEXT(XB)-RLTEMPO] PC_PC+1, SIGND CMP? ;lemcmeccccmcnm e ——— ; ;zgggg RUTEMPO] _MLTEMPO].RR.8 246998 146999 | memmmmmmmmmmm e — o — e —m o ; VA_ZEXT(XB)-RLCTEMPO] PC_PC+2, ; ;22889 247002 =10 ;22882 r ; 15987, 0F8U,UJA9,9874,A847,017(,0 : LOAD TEST PATTERN ;66989 ;2238? 247 1586, 0980,0037,0038,%487,003E,F (ONLIT_[OAA55330F ] SIGND CMP? s CHECK SOURCING OF 1 BYTE SHIFT PATTERN FOR CHECKING. CHECK INCREMENT OF PC BY 1 ; SOURCING OF A WORD, ;10=cevremcec e e acn s e o ; ERROR SOURCING 2 BYTES OR PC_ZL1TOD112],NEXT/MV,ERROR : ERRCR INCREMENTI:= PC BY 1. &/ ;47005 47006 R P LONLIT_LOAACCFOAA) L L LEL L L L LI ; s LOAD (HECK PATTERN AND ; i {MT098,M( X MICRQZ UVERFY.MIC MI(RC VERIFY o U 1700, QUBT,7017,4A2D,6647,0171,A Lo ; 1778, Ok, u037,0038,A487,003F ¢ 1718, 1 17C1, TM(01) ODB1,709F ,4000,26A7,017C,1 _ 0881,B016,4A0D,8447,0171,C o L 1710, 0580,0737,0038,BC87,003¢ ,F 28-NOV~83 ;47007 16:30:35 B 10 (LOXX Rev 13.00, Ctock rate = 160ns D e -; 147008 ;2;8?8 VA_XB.XOR.RLLONLIT] P( pc+4 WXTEQ.0? 47011 =0 ;2;8%§ 147014 ottt R 147018 VA_ZEXT(M[VAY),SIZE[BYTED, 47019 WX.EQ.0? 067001 147022 * VA_ZEXT(XB).XOR. (RTTEMPO].RR.8) 14,7017 =0 " C(HECK INCREMENT OF PC BY 2 AND * SOURCING OF AN UNALIGNED LONGWORD. . wee: ERROR SOURCING AN UNALIGNED LONGWORD PC_ILITOC114],NEXT/MV.ERROR DL ;2;8}2 147020 Page 1148 : X8, PC_PC+ISIZE TEST PC_PC+1 ———— Y ; CHECK INCREMENT OF CHECK RESULT OF PC BY 4 PREVIOUS COMPARE : j(Q=e=msmseseseeem— s e s e e s mmene ; be _2UL1TOL117] ,NEXT/MV.ERROR OR ERROR INCREMENTING PC BY 2, * ERROR INCREMENTING PC BY 4 008C,05BE,402D,4508,017(,3 17¢3, 0D81,D(37,2030,44E7,017C,4 17(4, 1720, 0887,0582,4A30,0487,0972,0 322+ 0181,0030,2030,0847,017C,4 ,F 1721, 0C80,0036,4170,0047,0019 u 019r, U48U,0036,4030,0047,0172,¢ PN Re RO BN DD DSBS 1702, R R N RN R N T ’ . . + 2202022222222 2222 RNUM DREG MTEMP0,1,2,4,8 Used to address MTEMPs. . Used to load RNUM when loading MTEMPs. Used to check loading of RNUM, ) PC VA Error code if error exit. Result of bad compare if error exit, TEMP3 . Qutput . . ¢ . ’ Rtissiitinstl sy Resources . » RS Must be zero. . ’ DSIZE TEST" VA ¢ . Page 1149 TEST Input . = OO DSIZE RS20 . ? = O D00 NN NSNS =2 OO0 NN VSN (780,07FA,FB3B,DC47,017C,2 R . : 10 (LOKX Rev 13.00, Clock rate = 160ns MICRO VERIFY JJo¢ ’ NN IS NN 121F, NN N NN N N N N N N N N N N N NN SN SN N SO N N 0880,058E,402D,45D8,057D,D NNNN YV NNNAOONGOONON O~ N T T NI VIR N S £ 1718, NN N SN TSN N SN N N N NN N SN N SN N T TN NN SN N N N Y N N 0B80,046C,F57F ,F847,0171 L OOOODOOOCOULOOOOOOOOCOODDODDOOCTOD OCOCTCOOCCOOOCOOONOOOOODOOOCOO J 171D, M T L T O R L T T T e R T o R P AR LN T T TR 2 N R S A LW N S A A N N A O aE R AP Rl L o S P o ol e Ak B Rl 2l 2E E F ol S A A A SFL Y S Rl el S o g o i SR ' 16:30:35 ¢8-NOV~-83 M Used to hold instruction dependent size. This section uses the fact that the DSIZE ROM for the HALT instruction is filted with BYTE, WwORD, LONG, QUAD, WORD, LONG, to test that ROM is properly accessed and that the DSIZE latch is working. the ) It also tests that RNUM gets loaded with the reg]stgr number portion ot the operand specifier when OSR is loaded. This is all done by loading IR with an IRD1TEST and then loading QSR and RNUM using BUT/LOD. INC.BRA which will grab a byte at a time from the istream and load the DSIZE latch with the next size out of the DSIZE ROM, Tk KRR R R AR AR KA RN AR kAR N AR AR A AR kAR ko kk ok kR kA k kA Ak ke k kA k& MV.DSIZE.TEST: LONLIT_[72615000] =0 * LOAD TEST PATTERN e bttt sttt it : WRITE RILONLITI,SIZECLONG], PUSH,NEXT/MV.STALL.FOR.CACHE L {ONL1T_[00AD9884],VA_VA+4 P -—-; * LOAD REMAINING TEST PATTERN WRITE RCLONLITI,SIZECLONG) { WRITE REMAINING 3 OPERAND SPECIFIERS D_RNUM_ZL1TO8],MDR_O : MV.DSIZE.SETUP: pRetetet AR ecmeemem; PC_MITEMP.RI_D,WX.EQ.0? * =0 WRITE HALT AND FIRST 3 OPERAND SPECS. j0mmmmm e n e m D RNUM D=ZL1TOL1], NEXT/MV.DSIZE.SETUP e memm——— * : leemmsememmcameem e mm—————— ; TRDITEST { (PC WILL GET O WHEN DONE) LOAD MTEMPS FOR CHECKING RNUM DECREMENT RNUM AND LOOP NEXT ADDRESS MUST BE LOAD IR AND OSR IN 0=1K REGION/IRD1,R1L,IRD1.RIH EPL R R Pttt —— NEXT/MV.DSIZE.FIRST ¢ LOAD IR WITH 0, OSR WITH 50. CMT098.MCX MICROZ2 UVERFY MIC 1M(01) MICRO VERIFY 28~NOV~83 16:30:35 D 10 CLOKX Rev 13.00, Clock rate = 160ns : DSIZE TEST Page 1150. ;47078 REGION/MV.R1L,MV,RTH/MV.R2L,MV.R2H/MV.R3L ,MV.R3H 147079 1111 ;47080 Mv,.LOAD,DSIZE: ;47081 B ettt : ) 16EF, €(86,3757,0080,0047,0000,1 ;47082 :2;882 -0 1722, 0080,0036,4030,0047,056E,F 47086 ;2;8%% 147089 0DB0,3C13,4A30,0CA7,0172,4 . . 1724, 0980,0037,0039,0C87,003E,F 1725, 0D81,0013,4A30,04A7,0166.,4 N 1664, 0980,0C37,0039,1487,003€,F ] 1665, 0080,0036,4180,0047,056E,F V) RETURN [¥+1] H ; GET INST., DEPENDENT SIZE FROM ROM. ;47085 MV.DSIZE.FIRST: _ 1723, MLTEMP3)_CONX. SI1Z,SI1ZECIDEP], ] 1666, 0580,3C13,4A%0,14A7,0172,6 1726, 0580,0037,0039,2487,003€E,F ;47090 ;47091 ;47092 lQ=mmmem=eewmsme—wmeesacecooaeos ; PUSH,NEXT/MV LOAD.DSIZE AR IRD COUNT IS 0 ; LOAD DSIZE ROM (BYTE) INTO TEMP3. ettt L ; VA _MOTEMP3I.XOR.ZLITO[], WX EQ.0? ; CHECK IF DSIZE IS BYTE : 147093 =0 ;2;832 0es=—mssmecesscscoconccncnomnnes H PC _2LITO0121],NEXT/MY. ERROR ; ERROR READING DSIZE ROM, 147096 147097 ;47098 jees—ms—mecsmeeccemeeessseeeeeee ; VA _MCTEMP.R].XOR,ZLITOLO], ; WX EQ.0? H CHECK THAT RNUM IS 0. 247100 =00 ;2;}8; ;00s=mmmmmmmmmmc e PC _ILITOL122] ,NEXT/MV,.ERROR H : ERROR LOADING RNUM, 147103 ;47104 :0]cmmemamcceecemeeemma——e - ; IRD COUNT 1S 1 {OD INC BRA?, : LOAD OSR WITH 61, REG DEFERRED R1 147099 ;2;}82 147107 ;47108 PUSH,_NEXT/MV,.LOAD.DSIZE ; AND LOAD DSIZE ROM (WORD) INTO TEMP3, P ; e VA MCTEMP3].XOR.2ZLITOL2D, 147109 WXTEQ.0? 147112 PC_ZLITOL124],NEXT/MV.ERROR ; CHECK IFf DSIZE 1S WORD J : ERROR READING DSIZE ROM, : Py T A S T AN : PARITY CHECKERS TEST" kb Ak ks kkk ok ko k Ak ke h kA hd ARk ok ko hnkkdx FPDOFFSET VA Used to get control back from mach check Used for addressing cache and TB. PC VA Error code if error exit. Result of bad compare if error exit. TEMP1 Output Page 1151 TEST Temp for memory status/control regs. L R R NP A Resources ' CLOKX Rev 13.00, Clock rate = 160ns PARITY CHECKERS chhkhhkkhhkkhkhhkkh bk kA kk Ak Ak kkk This section uses special micro code functions to write bad parity in, the Cache and in both sides of the Translation BUffer. The location with the bad parity is then referenced and a micro trap should occur, . FPDOFFSET is setup so the machine check micro code will return to this test and then the memory/status bits are checked to verify that the L 2 OOV DIANN V@A : T = OO0 NN NS N b 3 R SRS MICRO VERIFY S SR .TOC '" b GEUP QU G 16:30:35 = I D R QR QU G R G O U O RG-SR A S N N N A U 17¢5, 0D80,0037,0030,04A7,017C,6 R N U 1727, 0106,C(77,0030,0047,017C,5 28~NOV-83 A A A N N A NN LN RO PO AU RO PO PO PO PNUNU N DI PR 23 SN N N N TN NN N N S N SN NN SN N NN SN NN N NN N N S aal ottt Y LR TR TETETE TR DR OR N Y > (MT098. UVERFY. o H == ; E 10 error was properly detected. Also a special control store location with bad parity is referenced which should get micro trapped with the test again regaining control because of FPDOFFSET. TRKKKRNRAK R A AN AN RN AR A Ak Ak Ak ko kkk kb kb Arhk ko MV.PARITY.TEST: i lmmmmmmmmmemmmmmomeamccaneeee ; MCFPDOFFSET]_ZL1T28L183, : CLEAR FLAGO i --------------------------------- VA_ZLITOL0] ke kA kdkk ko h Aok kkd bk ddkdhdkdkk wxxx MAY NOT BE NEEDED 222?27 SETUP TO RETURN FROM MACHINE CHECK. CLEAR FLAGO FOR CACHE PARITY. xx4% MAY NOT BE NEEDED ?2222? * BE SURE VA HAS A GOOD ADDRESS 28-NOV-83 17¢C, 0580,0(37,003C, 2487,003€,F ) ek e b - 0 o e G i O e e e HOLD TO ALLOW CACHE WRITE TO COMPLETE T o) ed b 3 e b b o mad ek o b b =00 L ; ; CHECK L [ o ; VA_MLCTEMP11.XOR.ZLIT24L083, MACHINE CHECK ERROR SUMMARY REGISTER SHOULD SAY BUS ERROR. ;00~mm~mmmmm o 5C_ZLI1TOC1823,NEXT/MV.ERROR ; BAD MACHINE CHECK ERROR SUMMARY REG. PUSH,NERT/MV. GET. CLEAR. MEMSCR : ; LOAD ADDRESS OF CACHE ERROR REG. READ IT INTO TEMPT AND CLEAR IT. VA_MCTEMP1].XOR.ZLIT24T0D], ; CACHE ERROR REGISTER SHOULD SAY TAG AND DATA ERROR AND HIT. ; BAD MEMSCAR_ZLIT24[41], 3 LOAD ADDRESS OF MACHINE ERROR SUMMARY REGISTER. READ IT INTO TEMP1 AND CLEAR IT. 1 R WXTEQ.0? ¢ SOURCE MDR TO FORCE MACHINE CHECK. THIS MICRO WORD SHOULD GET TRAPPED. ;0]==etmmcmcccceccccascacanaconn ; MEMSCAR_ZL1T24[81, PUSH,NERT/MV.GET. CLEAR.MEMSCR : b b D T et e L L PC_ZLITOC181],MB_MCMDR], WXTEQ.0? b 0980, 1(93,4A30, 6CA7,0172,C L 1674, - NERT/MV.ERR b b b PR T L T T I S 0980,0(87,0030, 2687,0570,4 S 1679, CACHE PARITY TEST" MICRO VERIFY D 0980,0C37,003C, 1487,003E,F =00 3 1678, : s b eh 0580,1C93,4A30, 44A7,0167,8 P 1676, CACHE PARITY TEST MV.CACHE.PARITY: b 0580,0¢B7,0030, 4687,057D,4 .TOC '' Page 11525 CLOKX Rev 13.00, Clock rate = 160ns b N 1675, 0981,2C37,003C, 0c87,003¢,F TR TR PR PR 1674, R 0880,0036,4020, 0050,0167,4 P 17(8, e 04F8,0036,4030, 04E7,017C,8 R 17¢7, e 0CF8,0036,4030, 0508,017¢,7 A 17¢6, I N e aeh NNNSNNNNOORONOOONOONONCC I T TUITNIATWIIVL B B I DN IS D s B o B N NN OO NN W = OO0 NS W = OV NV S W — O T CRO2 (RO VE N S N S N N o 2 ol S S A A T AT o o i i o o O R it i s et o NN TN TN SN NN SN N N N SN N SN N N SN N SN N N SN SN N SN NI TN SN SN TN SN SN NN NN == —— o= — -<oo 33 CMT09 UVERF F 10 16:30:35 Y ;0 S e L DL L L L L L Lt T PC ZLITOC1843,NEXT/MV,ERROR CACHE ERROR REGISTER. H CMT098.MCX MICROZ UVERFY.MIC TM(01) MICRO VERIFY U 172D, 0980,0CB7,0030,0687,017C,9 U 17C9. 0C80,0E77,0030,0607,017C,A U 17CA, 0180,0CB7,0030,1€87,017C,B u 17¢B, 0180,0CB7,0030,5607,017C,C U 17¢C, O04F1,BE77,0030,0507,0168,0 28-NOV-83 ;47184 :47186 4717 $47189 47190 247192 40193 $47196 ;40197 147199 U 1681, 0980,0CB7,0030,6E87,057D,4 U 1682, 048%,B5BE,403D,8507,017C,D U 1688, 0180,0C37,003D,9487,017D,2 ] U 1689, 0580,0CB7,0030,4687,057D,4 u 172E, 0D80,0C37,0030,A487,017D,2 MEMSCR_-1 Page 1153 i t Ve teoan ittt H MEMSCAR_ZL 172433 : LOAD ADDRESS OF T8 DISABLE REG. e L L L L S; MEMSCR_ZL1T24L0A] : FORCE REPLACEMENT OF GROUP 0. jeemmeememesememeemcmemeeeeeoe ; TB_BAD PARITY $00=mmmmm : ome o READ,SIZE[LONG], e: * PC_z{1TOCTBT],NEXT/MV.CLEAR.MME ; e ——— ; 147203 ;10mmmmemmmm e e ;.- ; 40001 47004 147207 ;41008 147210 =00 140011 147213 47214 PUSH,NERT/MV.GET.CLEAR.MEMSCR TB_RLZERO] : THIS MICRO WORD SHOULD GET TRAPPED. : READ IT INTO TEMP1 AND CLEAR IT. : E CLEAR THE ERROR IN THE TB. | j=emmmmmmsmmemmmmemmeeemeeaee ; TB GROUP ERROR REGISTER VA_MCTEMP11.XOR.2LIT24[057, WXTEQ.0? I e v : : SHOULD SAY TAG AND DATA ERROR GROUP 0. v; PC_ZLITOT1B2],NEXT/MV.CLEAR.MME : BAD TB GROUP PARITY ERROR REGISTER. ‘ ;0] =mmmmmmmmmm e oo mmeeaemeae ; LOAD ADDRESS OF MACHINE (HECK | B ; MACHINE CHECK ERROR SUMMARY REGISTER 147219 WXTEG.0? : 147222 BC_ZLITOLTB4],NEXT/MV.CLEAR.MME : BAD MACHINE CHECK ERROR SUMMARY REG. 147553 2o ‘ LOAD ADDRESS OF TB GROUP PARITY REG. * 147218 . CAUSE TB PARITY ERROR, MEMSCAR ZL1T24(81, 47215 § E | SET MME. MEMSCAR_ZLIT24L0D], 147217 U 168A, 0180,1C93,4A30,24A7,0172,E 1B GROUP ( PARITY TEST 147200 247206 U 17CD, 0D8O,1C93,4A30,2CA7,0168,8 CLOKX Rev 13.00, Clock rate = 160ns : 47177 .T0C "' MICRO VERIFY ; T8 GROUP 0 PARITY TEST" Ezg}gg MV.T8.GRPO. PARITY: }25131 MEMSCAR ILIT24L0] : LOAD ADDRESS OF MME BIT, 247183 jmeememmemceeeecmmeeeceeeeeeeoee ; 147195 =00 U 1680, 0580,0C37,002D,8C90,017D,2 6 10 16:30:35 1 : PUSH,NEXT/MV.GET.CLEAR.MEMSCR VA_MITEMP11.XOR.ZLIT24[041, FRROR SUMMARY REGISTER. : READ IT INTO TEMP1 AND CLEAR IT. : SHOULD SAY TB ERROR. . ! ' ! 0580,0(B7,0030,4687,057D,4 1696, 0180,1093,4A30,24A7,0173,0 0080,0587,0030,0607,017F,D R ~ N 1701, L 1731, 0980,0¢87,0030,0687,017D,1 R S 1730, 0180,0¢37,003D,D(87,017D,¢ P P 1695, T PR 1694, 0180,0037,003D,(487,017D,2 N NN AT NN N N AR DO PO RO PO PO RO NN 2OV NONWASWN SN NN — OQOVONO NN = OO0 NV 0980,1C93,4A30,54A7,0169,4 LT UL A WA B B BN B B 25 B 3 8 DS 1700, 0481,B5BE,4030,8507,017D,0 .TOC "' H 10 Page 1154% CLOKX Rev 13,00, Clock rate = 160ns TB GROUP 1 PARITY TEST : | T8 GROUP 1 PARITY TEST" MICRO VERIFY | i MV.TB.GRP] PARITY MEMSCAR_ZL1T24(3) : LOAD ADDRESS OF TB DISABLE REG. ! | =00 MEMSCR_ZL1724C0D] ; FORCE REPLACEMENT OF GROUP 1, T8_BAD PARITY o Ty ; READ, SIZELLONGI, ; PC_zL1TOCTB7],NEXT/MV. CLEAR.MME ; L ettt ittty ; MEMSCAR_ZLIT24L0D], :; PUSH,NEXT/MV.GET. CLEAR.MEMSCR ;10==smromeccememcccenmen e; =00 THIS MICRO WORD SHOULD GET TRAPPED. LOAD ADDRESS OF TB GROUP PARITY REG. READ IT INTO TEMP1 AND CLEAR IT, ; VA_MITEMP11.XOR. ZL 1T24[0AT, ; SHOULD SAY TAG AND DATA ERROR GROUP 1. CLEAR ERROR IN TB. T8 GROUP ERROR REGISTER H s0 s~m m e e e ee e PC_ZLITOL1BBI,NEXT/MV. CLEAR.MME ;: BAD TB GROUP PARITY REGISTER. ;0] mmm e e m e; MEMSCAR 7L 1T24[8), ;; LOAD ADDRESS OF MACHINE CHECK ERROR SUMMARY REGISTER. READ IT INTO TEMPT AND CLEAR IT. P et iiatutebebetiintstutain ittt ; UA_MCTEMP11.XOR.ZL1T240041, : WXZEQ. C? ; MACHINE CHECK ERROR SUMMARY REGISTER SHOULD SAY TB ERROR. PUSH,NEXT/MV.GET.CLEAR.MEMSCR B CAUSE TB PARITY ERROR. 8_RL[ZERO] WX.EQ.0? TNV 1692, RO 1691, 0980,0C87,0030,6E87,057D,4 ANN = O OO NN 1690, 0980,0037,002D,8C90,917D,2 e N 17CH, OCF1,BEV7,0030,0507,0169,0 <o ~ NI 0980,0CB7,0030,6E07,017C,F [ (o2} o ONONONON 17CE. R T I L T 0180,0C87,0030,1E87,017C,E R TR PR Y < e o0 28=NOV-83 MICROZ2 MICRO VE R o R S N N N N S Y A e F ab S S g S E AR AL 2l aE Al al ol ol ol b N SN N TN SN SN SN N SN SN N SN S SN SN N SN SN TN N N N SN SN SN SN SN SN SN SN SN NN NI N NI N N N NN~ no n nono MOMLAININDASMNINRI NI NN NN RN NN AR AL NN NLAIAI N AU NN NN AR NI NN PO NI NO N 172F, - UVERF == CMTO9 16:30:35 Y |L ittt Lt : BAD MACHINE CHECK ERROR SUMMARY REG. o o e e S e o o d m a e # LOAD ADDRESS OF MME MEMSCR_0,NEXT/MV,CS.PARITY ; CLEAR MME, END OF TB TEST. 1705, 0086,1(92,0030,7847,017D,6 0480,0587,0080,0607,0000,1 ,F (980,0037,003E,9487,003E S A E Bl S o S e o e o e 0 e e o _————— e ———— Y SAVE MEMORY STATUS REGISTER. ————t CLEAR UNDEFINED BITS. . - o o o e o e e O MEMSCR_O,RETURN [+1] .TOC ** CLEAR MEMORY STATUS REGISTER. CONTROL STORE PARITY TEST" MICRO VERIFY 17FD: ;FORCE Mv.CS. PARITY FOR DIAGNOSTICS kkkkk kA BAD PC ZLITO01D1], PAR1/1,PAR2/0, 17FE: - " o = THIS WORD SHOULD GET MICRO TRAPPED. = 20 - - VA _MLERRCODI.XOR,ZLITOL1], WXTEQ.0? A PARITY ®okd kd ks ke FORCE PARITY NEXT/MV.ERROR R B , 0180,BC13,4A30,0CA7,0173,2 LR ., 0580,0037,003E,8C87,003E.F L A o o o o A Al 1706, PARITY TEST TB GROUP 1 e o e n 0886,1036,4030,0647,017D,5 Page 1155 CLOKX Rev 13.00, Clock rate = 160ns LOAD ADDRESS OF MME A AL At 1704, 0080,0587,0030,0607,003E ,F I 10 o o - - ———— o o o o 0180,0¢B7,0030,0687,017D,3 1703, 28=NOV-83 MICR MICR e T TR TR TR R U M1 098.MCX UVE REY . MIC 16:30:35 CHECK FOR CONTROL STGRE PARITY ERROR e e e e—— PC JZLITOLID2],NEXT/MV, ERROR NOT CONTROL STORE PARITY ERROR. es eo o - ORI - - e ! [ | ; ; e CMTO98.MCX UVERFY .MIC r MICRO2 e e et e e 1M(01) MICRO VERIFY e e e - e 28-NOV~83 2t S e e . 16:30:35 e e = oo oo s 2 eemtm b J 10 CLOKX Rev 13.00, Clock rate = 160ns : : CACHE TEST'' 347305 SRRRER Ak kR ko Ak R ;47307 ;47308 Page 1156: : CACHE TEST ;2;%82 .TOC '* MICRO VERIFY 267306 L Resources 147309 ; R Rk Ak Rk KRR R A AR XA AR KA RKAR KRR Constant 7FC (highest cache address). Temp for generating cache addresses. i i MDR STEPC Contents of tested cache location, Used to loop setting 1 bit at a time. i i PC Error code if error exit. : Temp to generate test patterns. }2;%}2 : Output :467316 ;47317 ;47318 clearing the entire cache, then filling the entire cache 1 bit . at a time, checking each word for zero before writing it and checking after setting each bit. 147315 { ; LONLIT TEMP1 Q J47310 ;2;?}; ; AR § | This section does a ''stuck at'' and address test of the cache by f | | ! ;47319 ;***************************t***********‘k******************************* ;47320 14731 ! E. TEST V. CACH u 1733, 0380,07FF ,FF80,1847,017D,7 Ez;gsz LONLIT_[OFFCJ U 17p7, 0886,158Bt,403D,44A7,0169,9 147325 VA_MCTEMP1I_RCLONLIT] ;2;§§$ 00 147328 =01 : LOAD ADDRESS OF HIGHEST CACHE LOCATION } jmossmesess—sssossneccsmeonoss ; ; LOAD VA FOR CLEARING CACHE. g | 147329 MV, CLEAR.CACHE: U 1699, 0880,05BE,402D,85D8,057D,D 247330 ;47331 O Rttt ettt ; WRITE RCZERO],SIZECLONG), ; :2;%%% PUSH,NEXT/MV.STALL.FOR.CACHE R. CACHE .LOOP: :47334 MV,CLEA 147335 J 169A, 0586,1€10,0B60,24A7,0969,9 413« U 1698, 0086,158E,403D,44A7,016A,1 ;10mmm v e e e 2467336 VA_MLTEMP1] MB-ZL1T0[4], :2;§§g NEXT/MV.CLEAR.CACHE 147337 SIGND CMP?,SIZELLONGI, } 147340 ;z;gz; 01 ;1) mmmm e H E | j CLEAR CACHE. ! s ——— ; | ; DECREMENT VA TO ! : ; CLEAR THE CACHE IN REVERSE ORDER. mm o e e e : VA_MITEMP1]_RCLONLIT] ; LOAD ADDRESS OF HIGHEST CACHE LOCATION 147343 MV.FILL.CACHE: ;47344 U 16A1, 0080,0587,1020,0050,017D,8 247345 ;?;;29 i U 16A3, 0CA0,0036,4030,0047,0173,6 247348 47349 R Rttt Il bty : READ,SIZELLONG],Q_O, NEXT/MV.CACHE.CHETK.ZERO L ; STEPC_2,NEXT/MV.END READ TEST LOCATION, CLEAR Q FOR ; GENERATING FILL BITS. ettt te e iiataiatniatalitede i: | i . LOAD STEPC FOR CALL TO CN.TYPE.CHAR l ] ; CMT098.MCX UVERFY .MIC MICROZ2 1M 28-NOV-83 MICRO VERI : Page 1157; K 10 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns : CACHE TEST .2;%29 MV.CACHE. CHECK. ZERD: 1708, 0881,2592,4A30,0047,096A,8 322+ 16A8, 0980,0C37,003F,087,003E,F 147352 ;2;;22 147355 =00 ;2;§§9 :47358 147359 16A9, 0080,0139,002D,85D8,057D,D 147360 ;2;32; WB_MCMDR], ' LOCATION SHOULD BE ZERO, WXTEQ.0? ; ;00=m-semssoseecssccsemossmsoons ; PC ZLITOC1E1] ,NEXT/MV, ERROR 01 mmmmmmmmmm e m oo ; WRITE Q_(Q.SL.1).0R.1, STZECLONGI, PUSH,NEXT/MV.STALL.FOR.CACHE * : ; FILL LOCATION 1 BIT AT A TIME, 147363 MV.READ. CACHE 247364 16AA, 0880,0036,4020,0050,017D,A 147365 ;2;;23 47368 147369 10m--ecsesmssccecnccmccnnae~ ; READ S1ZECLONG], NEXT/MV. CACHE.CHECK.FILL T ; * e L EEL TS ; VA_MOTEMP1]_MB-ZLITOL41, * DECREMENT VA TO FILL AND TEST 16AB, 0D86,1C10,0860,24A7,096A,1 413% :47370 ;2;;;; 17DA, 0881,2008,4A30,0047,0173,4 32;352 MV.CACHE. CHECK.FILL: ;25352 WB_MCMDR1.XOR.Q,WX.EQ.0? CHECK EACH TIME A BIT IS WRITTEN. 147377 =0 ; 1734, 0980,0037,003F,1487,003¢,F ;2;;;3 :47380 1735, 0080,0139,D020,8508,017D,C 147381 ;2;;3; 24738 17DC, 0480,0036,4330,04E7,016A,A 147385 147386 SIGND CMP?,31ZECLONGD, NEXT/MV., FI(L.CACHE READ THE TEST LOCATION. By PC_ZLITOC1E2],NEXT/MV.ERROR ; : THE CACHE IN REVERSE ORDER. ; $lmmm e : WRITE Q_(0.SL.1).0R.1, S1ZELLONG] i ; ememmmemmmmsnemmemeseeeeeeeees ; MDR_N, DBZ"STEPC?,NEXT/MV.READ.CACHE * ; FILL TEST LOCATION 1 BIT AT A TIME. ALLOW CACHE WRITE TO FINISH, LOOP UNTIL ALL 32 BITS ARE SET. ; i (MT098.MCX MICROZ IM(O1) MICRO VERIFY UVERFY.MIC 28-NOV-83 16:30:35 0 ) CLOKX Rev 13.00, Clock rate = 160ns : CACHE TEST ? Page 1158; ;zgggg MV.STALL.FOR. CACHE : U 170D, 0080,0036,4080,04E7,0000,1 147389 147390 3EF: MDR_O,RETURN [+1] : | 47391 MV.ERROR: U 03EF, 01A6,5C37,0034,0047,0168,0 147392 ;2;%32 147395 =00 U 16B0, 009B,A77D,8001,4047,049F,4 $47396 147397 ’2;%33 :47400 u 1681, 0980,0087,0030,7687,048F ,E U 1682, 0986,((37,0037,F847,0000,1 MCTEMPS]_ZLITOL80],STERC_2 ;00 === = oo oo RCTEMPS].S1Z_(RB+MLPCJ.ASR.3).SR.1, DEC STEPC, ; STEPC MUST BE 1. PUSH,NEXT/CN. TYPE ., CHAR ; $0]=mmommmm oo ; MEMSCAR_ZLIT24C0E], 167404 147405 ]0mme-msmseseseesesssseseeee—ee ; mcrpoorrssrj ZLITOLOFF], : SET ERROR CODE FOR CONSOLE HALT. ;2;289 | * CODE TO MAKE A PRINTABLE CHARACTER. 147401 ;2;285 | sxxxxxxsxxFORCE ADDRESS*x*axwxxx; GENERATE AN OFFSET TO ADD TO THE ERROR ¢ PUSH,NERT/MV. CLEANUP ; LOAD ADDRESS OF CMI DISABLE REGISTER. NEXT/MS.HALTTMICRO : METEMPST ZL1T00251,DEC STEPC, ¢ TYPE % TO INDICATE SUCCESS. 147408 —o U 1736, 059E,5C37,0031,2847,049F ,4 U 1737, 0180,0CB7,0030,7687,008F ,E J 0BFE, 0080,0587,0030,0607,0168,4 167411 147412 [45ana U 1685, 0480,0036,4030,0047,0484,D ; }2;2}2 oBFE MEMSCAR. 2L 1T24L0E 247417 MV, CLEANUP: : LOAD ADDRESS OF CMI DISABLE REGISTER. ;47418 saxxxxkx kkFORCE 2;2}3 MEMSCR_O ; 1476421 =00 U 1684, 0586,5C37,0030,6847,049F,4 PUSH,NEXT/CN. TYPE. CHAR 1647422 ;2;252 147425 ;2;259 ADDRESS**kwkkkhwn, ENABLE THE CM]. ;00=======em=s——ccoesmemee oo ; M[TEMPSJ 2LITOCODT, PUSH,NEXT/CN. TYPE . CHAR ;0] mmmm e m e : TYPE <CR><LF>. : m e m oo ee ; PUSH,NEXT/IN.CLR.CACHE ,ROUT : CLEAR THE CACHE, 10-smmmemmss s ce sH ERAR ZLIT1600C07, : LOAD ADDRESS FOR i 147428 MV, SET. (RAR: _ U 1686, 0518,0037,0086,0247,0000,1 ;47629 147430 ;zgzgg CLEAR FLAG3,RETURN [+1] SETTING HALT. i END OF TEST, RETURN TO CALLER. : MICRO2 (MT098.MCX GHROM MIC 1M(01) GHROM Mi(C 28-NOV-83 47433 .T0C 247634 ,TOC 167435 ; 267436 ;47438 47439, 147440 147441 147442 (47443 147644 ;2;222 NOBIN ' ;REV EXPLANATION H Revision History'' ADDED COMMENTS TO LISTING RELEASE OF THE SUBROUTINES FOR MAIN CONTROL ROM FOR GH FLOAT INSTRUCTIONS IN WCS 147447 (BIN M10 CLOKX Rev 13.00, Clock rate = 160ns U'GHROM MIC "REVISION 00.05 Audrey R.Reith 147437 T0C 2 00 16:30:35 [ ; Page 1159 3 ; H H MICRO2 (MT098 JMCX GHROM, MIC 1M(O1) 28~NOV-83 16:30:35 GH FLOAT Subroutines in ROM N 10 Page 1160 160ns CLOKX Rev 13.00, Clock rate : Generalized routines FX,.(C(S : Generalized routines FX.((S GH FLOAT Subroutines in RCM ' ;474648 ,T0C :k********t*******t**k***********'(***ttt***********1(****i******ti******t****** 9 4744 247450 AR KRR AR FX.CCS This_sybroutine set the floating oint ccs for most of the GFLOAT instructions (CVTS and Arithmetics) Bits 0-31 of the destination have already been written. Exit 1s to FX.WRITE.SEC to increment VA and to write bits 32-63. Note FLAG! must be clear if bits 32-63 are in Temp3 or set if in MDR. R AR AR R AR AR AR N A AR AR AR AN KRR AR AR - o AR A AR R KRR AR AR KRR AR AR AR AR ARk Ak k kA kW 47461 LREGION/GHFLT.R1L,GHFLT . R1H/GHFLT.R2L,GHFLT.RCH/GHFLT .R3L,GHF LT .R3H 147462 u 0788, 0(80,0036,4030,0047,00FF,8 _ , u 0789, 0108,0037,0030,40A7,0056,F U 078A, 0D08,0C37,0030,20A7,0056,F — U 0788, 0508,0037,0030,00A7,0056,F 167463 =00 ;47664 FX,CCS: 147465 " S o o o S oy Sy ¥ RESERVED OPERAND ¢ 147466 147467 ;47468 147469 147470 (47471 47472 CC_ZLITOCBY, CLEAR FLAG1,NEXT/FX.WRITE,SEC CC_ZLITOC4], 47475 67476 167477 £c_2L1T000s, ;47478 VALUE CLEAR FLAG1,NFXT/FX.WRITE.SEC 11mmmmm VALUE IS O " DEFINED IN FLOAT.MIC e oe CLEAR FLAG1 ,NEXT/FX.WRITE,SEC IS NEGATIVE * DEFINED IN FLOAT.MIC 10mm=mmmmememmmm e —————— 167473 J47674 i 1 47451 ;67452 ;47453 ; 1474654 147455 ; 147456 ; 147457 147458 ; ;67459 ; 167460 1 VALUE IS POSITIVE i DEFINED IN FLOAT.MIC | | i CRIOO8 MCX GHROM M1C MICROZ IM(01) 28~NOV~83 GH FLOAT Subroutines in ROM ;47679 . 10C B 1 CLOKX Rev 13,00, X 16:30:35 Clock rate = 160ns " GH FLOAT Subroutines in ROM .ttk*i*t*fith«k*fitt*nt*t*fi*tkfi*fi*fifi*k*tt******t&t*flk*fifi*tt&Qttttttttntttttt*ttt '2;232 H FX.MULSIGN YA TOTABY ) This subroutine sets D and MTemp8 to 0/B000 and FLAGQ =0/1 tor positive/negative sign of the result for DIVG,MULG,EMODG Input: ;47486 -nggg : FLAGO and FLAG! . = sign of operands 078D, 0546,8077,2080,4047,0000,2 R R 47493 47694 R R R R R R AN AR R AN R R R R MCTEMPB] D_ZLITOCO], (LEAR ADB1TFLAGO), 47495 47496 47497 47498 RETURN [+2] 0546,8077,2080,4047,0000,¢ U8, uQue, 8L37,2080,0047,0000,2 U:‘,‘)" UDBY,UF Y, 430, S847,0U77,9 147499 SET ADD1TFLAGD), ; 2;28? AR NN AR RN AN v * CD8O,UEFE, 4UBOD, 2u47, 0000 1 R AR AN R AR NN R R ANSWER IS POSITIVE ; RETS +2 !} ; RETS +2 ;10mmwomcmcmmm e e caananauanan= ANSWER IS NEGATIVE ; SIGN BIT FOR ANSWER 147505 ;47506 147507 RETURN [+2] . RETS +2 SET ADDITFLAGO), RETURN [+2] 147511 167512 ;647513 FX,SL1TRG: 47514 147518 147519 147520 st FX,PL4: 11,3 iemememmama—e- SR PL LD, RETURN [+i] IN BIT 15 ! ANSWER |S POSITIVE ; SIGN BIT FOR ANSWER IN BIT 15 ¢ ALSO USE FLAG 0 FOR SIGN OF ANSWER ¢ RETS +2 [mmmmmmmm————— e ; p-2;2}2 15 ; ALSO USE FLAG 0 FOR SIGN OF ANSWER L ittt ot wesswwawsway MOCTEMPBY D _ZL1TQL0], CLEAR ADD1TFLAGO), ;647510 IN BIT !} MCTEMPB) O _ZLIT12(8], ;647508 ;47509 A ; ALSO USE FLAG 0 FOR SIGN OF ANSWER RETURN [+2] ;67504 AN AN R RN AR ; SIGN BIT FOR ANSWER [N BIT 15 ; ALSO USE FLAG 0 FOR SIGN OF ANSWER 147503 67517 L) and 2 L Rttt tetiad ummmmummanss ANSWER |S NEGATIVE MCTEMPB) D _201T112(08], s SIGN BIT FOR ANSWER ;147502 U738t 1 : 47490 =00 ;676491 FX,MULSIGN: 47492 00=wmrmmmm————————— wemmmmmmmunw; 0906,8C37,2080,0047,0000,¢ : Generalized routines FX.MULSIGN'' ,47480 (47681 47482 ;47483 078, Page 1161 : Generalized routines FX.MULSIGN ; UUSPU SR U : H ! FOR SHARING wlTH DIFFERENT RTNS U 0781, OD5E,BC37,0030,0847,00F8,4 U 0784, 0880,0036,4030,0867,0077,D u ez, J 0785, 0486,0036,4030,0087,0078,5% 0980,0012,0471,0047,0078,0 T FX.CVTS.CC T ) This subroutine sets the ¢c for integer results in (VIG/H to integer types and it tests for integer overflow. T Input: FLAGZ = if FX.INT.OVR,TST set is integer overflow This entry is also used by EMODG and EMODH after all results have been written to determine if integer overflow il v : Generalized routines FX.CVTS.(C' in ROM has occurred and if L AR AN so whether or not on the IV bit in the PSL. AR AR FX.CVTS.CC: R AN R AT This is integer overflow ~a TRAP condition L L L LRI LT L L L >0 VALUE TEST POSITIVE INTEGER OVERFLOW VTR VT LI T VALUE = 0 TEST INTEGER OVERFLOW VALUE IS NEGATIVE INTEGER OVERFLOW A LT T TEST ) FX. 1 NT,OVR.TST: 0L R T T irRD1 . INTEGER OVERFLOW NOT ; FINISHED AN INSTRUCTION L Rttt et ———— e H USED FOR AFTER TEST V MLERRCOD)_ZLITOL(1], . NEXT/I1E.ARITH,TRP ; OFF THE MAIN TRAP CODE SET FLAGS, H =1+0 FX.INT.OVR: ;140 ; USED WHEN TE TESTING FLAG? MUST TEST PSL BIT FOR TRAP GET PSL WB_M[TEMPOI.AND.ZL1TOL20], : NEXTZFX. INT.OVR.TST : WX, NE.O?, . to honor the trap depending AR AR AR N RN A R AR AN R AR AR KRR ANRAA AR AR RN ARk R Ak r ok L L GH FLOAT jSubroutines R —_ ~ viuaauaL 1] ' .T0C il v v NNNN NN OO O O~ O VNN NN A VTN LD B 85 25 25 25 B 25 B 2 N N N W N R N N AN N RO T PO RO RO N [a¥) RIS N =2 O D00 O L (AR = O O 00 O U1 I NI = O 0 G0 NN N S NN = SO GO N O TSN = OO GO O W B AL QUBU,0036,64130,0047,Q03F,9 Page 1162A CLOKX Rev 13,00, Ctock rate = 160ns Generalized routines FX.CVTS,CC ;t**ti*t***k***Qt****t*****ttfii*t*t****fi***tk*fl*fi*t********Q**tfl*&fltififi*i'iiti WA LD UT LA U 0180,0037,04B0,4047,0078,0 WA LN W U 0780, 0p80,0037,0480,2047,0078,0 : U LA LA LU U 0790, 0580,0037,04B0,00A7,0078,0 R N TN N N S N A Y N N 2T ol 2P ST 2Tl Al o o S o e aE Rl AR AR P P ol o o el al e al d 2 N TN S SN N S TN TN SN SN SN N S SN TN N SN SN S SN TSN SN N TN SN SN SN N TN SN N SN SN SN SN N SN N SN SN SN N SN N N SN SN SN N N N | o 0792, 16:30:35 c 1 3 e A T D N T T T N TR IR TR TR PR R P PR PR PR P TR TR TR PR YR TR T T | | 1 Q791, 28=NOV~83 GH FLOAT Subroutines in ROM LT LA U GHROM.MIC MICRO2 o~ i (MTO98.MCX LI U [ MO H IS INTEGER OVERFLOW ENABLED ke ko Ak h : ; (MT098.MCX GHROM M1C MICRO2 1M(01) 28-NOV=83 16:30:35 GH FLOAT Subroutines in ROM 247576 ,T0C = OO0 = OO0 NOR VIS NN 00D O N0 D Co 00 0o 0 Co 00 00 Co 000~ OO NO NS IAN 0O 0O P A S T g i i A Y T T AP L SN TN TN SN N SN SN N TN TN SN N SN SN SN SN SN SN N N LI I I N T N U i ILuD R S P O S P TR YR iy Yy O .. ;47578 47600 267601 1647602 247603 ;67604 ;47605 147606 247607 47608 KKK e T T T T O JOTST7 ;47609 KRR D 11 i (LOKX Rev 13.00, Clock rate = 160ns v R KKK AR GH FLOAT 3Subroutines in ROM AR AR AR AR IR KA CRE AN AR KRR U 0776, 0(84,1077,0AB1,4047,0879,4 335+ : Parse routines FX.GOPER1,10,FX.GOP: AR AR A KA AR POPTC(FLAG4) - determines which routine =0/1 PLATCH = §,SLATCH = 11 respectively Templ,Temp3 . . = fraction with overflow and hidden bit PLATCH changed to 22 FLAGO = sign of operand FLAGZ = operand= 0 condition For FX. GOPER2 10 Input Templ,Temp4 = packed operand Qutput: Temp? = exponent biased Templ,Temp4é = fraction with overflow and hidden bit PLATCH changed to 22 FLAG1 = sign of operand FLAG3 = operand = 0 condition For FX.GOPER.POLY.ARG Input and Output same as above except RTemp8 gets the exponent FX.TYPE.HID used by FX.HOP1 AR position to be present RN AR KRR AN AR AR KRR R A P R R[TEMPS] METEMP1] Xz, FRO.FLTZ? and FX.HOP?2 for deciding if overflow in fraction AR AR AR AR R R AR R AR AR AR A AR A AR RAR A AR A AR AR w=mew=w=: ; K ST QPERAND TYPE EXP TO TS5 PL/SL=4/11, 267618 ;47619 lemmes—semesececdecmeoomoce e; R[TEMP?J M[TEMP1J X2, ; 2ND OPERAND TYPE EXP TO T7 PL/SL=4/11., ;47621 NEXT/FX, GOPER2.20 ;2;2}2 ;47620 NK AR A XN Rk For FX.GOPER1,10 Input Templ,Temp3 = packed operand Output : i Temp5 = exponent bdiased NEXT/FX.GOPER1.20 ; (47617 FX. GOPER? 10: U Q77F, 0884,1077,0A81,(047,0879,8 335« : These routines used to parse GFLOAT operands into exp and fraction and to test for reserved operands. Input: for both FX.GOPER1.10 and FX.GOPERZ2.10 . ;47610 =0 ;47611 FX,GOPER1.10: ;67612 147613 ;47614 Page 1163_ : Parse routines FX.GOPER1.1 0,FX.GOPER2.10 FRO.FLTZ? H VALIDATE AND CHECK SIGN ; VALIDATE AND CHECK SIGN AR kAR A K x ko : nr 098.MCX . MIC GH ROM E 1 CLOKX Rev 13.00, Clock rate = 160ns 16:30:35 : Parse routines FX.GOPER1.20 MO 28-NOV-83 GH FLOAT Subroutines in ROM MICROZ ,8 0794, 0c&0,0036,4030,0047,00FF 0795, (846,1387,0010,0047,0079,F 147625 ;Q0==mmemmmmmemmcccmmem—nn— eH 147630 B e L LR EL ; VALUE < 0 MCTEMP1] _MB.RR.16, ;; ROT TO GET FRACTION EXTRACTED SET FLAGD, H SET SIGN FLAG NEXT/FX.GOPER12 H; CONTINUE ON GETTING FRACTION 147627 147628 147629 167631 ;47632 0784, 0586,1(92,40B4,0047,0000,1 0785, 0D86,1E€92,0039,F847,0079,3 0793, 079F, (986,1(52,4080,2047,0000,1 0180,08F6,4470,B8047,0078B,6 ; RESERVED OPERAND NEXT/IE OPER.FAULT ;1Q=msmmemmemmmeeme—cmeceeoeeee ; M[TEMP1J 0, ; SET FLAGZ, ; NEXT/FX.ZEROTEMP3 :; ;47635 47636 ;47637 147638 0797, 0006,1387,0010,0047,0079,F : Parse routines FX.GOPER1.20" :467626 147633 347634 0796, 0056,1587,0030,0047,0054,2 GH FLOAT 3ubroutines in ROM n W R ~ £~ o~ . .T0C ' =00 ;4762 4 FX, GOPER1 20 P MITEMP11_MB.RR.16, ;47641 NEXT/FX.GOPER12 1467646 M[TEMP1J MB.OR,ZLIT24(80], 147640 CLEAR FLAGO, 147642 ;47643 =0 ;47644 FX,TYPE. HID: S Y 147647 e e RETURN [¥1] ;47655 ;47661 147662 ZERO SECOND HALF AND RETURN L :; CONTINUE ON GETTING FRACTION ; FOR H FLOAT MERGE UNLY : ; i lemeeeeeem e oo mee e : M[TEMP1J _MB.AND.OLIT24[13F] ; FOR G FLOAT EXTRACT AND MERGE e L C T L L: MCTEMP1]_MB.OR.ZLIT28L4], ; RETURN [¥1] H POPTC (FLAGL)?, ; WHICH ONE ;47656 ;47657 FX,GOPER12: ;47658 0 jemmmmemeeecmeemmemce e ; ;47659 PL_[22.], H 167660 FLAG =0 ; CLEAR SIGN FLAG ;47648 147649 FX. HIDBIT J67650 0 ;47651 47652 AR 147654 VALUE = 0 ZERO OUT WORKING TEMPS ettt bt T ; VALUE > 0 ; ROT TO GET FRACTION EXTRACTED ;47639 NEXT/FX.GOPER1, 30 SET UP FOR FRACTION EXTRACT ; ;47663 =0 ;47664 147665 0786, 0787, 0486,1137,0030,€047,0078,5 0086,1137,0031,0047,0078,5 147666 147667 ;47668 L 47670 47671 FX,GOPERT, 30 1 ;Q==e—=eeemomcccemcmeemeecoees : M[TEMP1J (MB RLTEMP3]).RR.P, NEXT/FX.RIDBIT ; GET BITS 0-31 : ADD HIDDEN AND OVERFLOW BITS N e e DT ; M[TEMP1] (MB RCTEMP4]).RR.P, ; NEXT/FX.HIDBIT Page 1164: SECCND OPERAND TYPE GET B]TS 0-31 H ADD HIDDEN AND OVERFLOW BITS F : CMTO98 . MCX GHROM.M]1(C 1 16:30:35 CLOKX Rev 13,00, Clock rate = 160ns : Parse routines FX.GOPER2.20 28=NOV-83 MI1CRO2 TMMD GH FLOAT Subroutines in ROM ,47673 =00 ' GH FLOAT Subroutines in ROM ;47674 FX.GOPER2.20: ! U 0799, 004E,13B7,0010,0047,0079,F U 079A, 045E,45B7,0030,0047,006F,0 v €798, 080E,1387,0010,0047,0079,F U 07A3, 0884,1077,0AB2,0047,0879,8 335« 1 t 147672 .10C u 0798, 0C80,0036,4030,0047,00FF,8 Page 1165; $47675 147676 147677 147678 § 00 == mm e e NEXT/IE OPER.FAULT MLTEMP1]_MB.RR. 16, ;67681 NEXT/FX.GOPER12 ;47682 147683 147684 47685 147686 147687 ;47688 SET FLAGT, 0= mmmm s M[TEMP4] 0, : ;; o m e mne oo SET FLAGY, et bl Dt H VALUE POSITIVE ROT TO GET FRACTION EXTRACTED :; CONTINUE ON GETTING FRACTION 147691 NEXT/FX.GOPER12 ;47694 47695 | memmmmmmee—————em——e——————m———- : RLTEMPB] _MLTEMP11.XZ, ; 167697 NEXT/FX.GOPER2,20 147692 :47693 FX.GOPER.POLY.ARG: 47696 FRO.FLTZT, VALUE IS ZERO ZERO QUT WORKING TEMP SET OPERAND IS 0_FLAG R MITEMP1]_MB.RR.16, CLEAR FLASYT, SET SIGN FLAG CONTINUE ON GETTING FRACTION : : ZERO OUT BITS 0-31 RETURN NEXT/FX.ZEROTEMP1 D ettt ettt taiaistah e ; 147689 147690 RESERVED OPERAND R et e L LD DL : VALUE NEGATIVE ;; ROT TO GET FRACTION EXTRACTED 47679 147680 eaen ; ; : Parse routines FX.GOPER2.20" : ;; ;; ARG ENTRY EXP IN RTS8, PL/SL=4/11. VALIDATE AND CHECK SIGN R U 0788, o E ... D N L ok T T . [=1 . . 16:30:35 : G 11 CLOKX Rev 13.00, Clock rate = 160ns Normalization i FX.NORM,GFL GH FLOAT Subroutines in ROM Normalization and fiacking routines for GFLOAT instructions H ;. :; ; If enter at FX.NORM.GFL Input: . . Templ, Temp3 = unnormalized fraction Temp> = biased exponent with fudge factor for PLATCH D = 0/8000 depending on sign of result The value the hidden bit removed. and ed The fraction is normaliz H : : is then rounded (B0O position in Temp3) and the carry if | present propagated through the most significant bits and into the exponent. The value of PLATCH is added to the exponent and the result is tested for under or overflow. If not H and the value of D merged into the result, ; detected the packing operation is undertaken with SLATCH set to 12 :'***t*tk***********************t*******************k*w***\\******************** FX.NORM, GFL : : WX.NE.O?, ; : CONTINUE ON PUSH, INTPEND OR TIMER?, : RETS =1 CLEAR FLAG3, NEXT/FX.NORM,GFL.10 NEXT/IE.SERV.IP.TS2 WX.NE.O?, NEXT/FX .NORM.GFL.50 ; BE SURE FLAG CLEAR : PUSH,NEXT/FX.T32ERO INT OR TIMER TEST ENTRY IF TIMER ONLY NO 1 BIT SET IN_0-31 ¢ CHECK BITS 32-63 H : e ottt : MCTEMP2] _(MB RLTEMP3]) .RR.P, H N N—=OVRONA NS NN SO\~ P TR S O D IS N 2 IS NN UAVILNES 85 08 O L e I A U 0788, 0086,5811,0850,0047,087A,0 410% .. .. B 0486,2041,003D,8047,045C,D B N o NNNN NN U 078A, ek P S b o N NN N SN NI N NI NI NI N SN NNV N N TN TN N NI N N SN TN NI TN N SN N N ol 0480,39C2,4A7D,8047,007A,4 ENTRY TO NORMALIZATION ROUTINE ANY BIT SET IN BITS 0-31 PL_MSS MLTEMP2], PL_MSS MCTEMP3], 0086,3D91,0030,4047,0078,A FX.NORM.GFL "' ; =00 FX.NORM.GFL.10: u 079, : Normalization ' 0018,29€2,4A7D,8047,0079,( ,E U 079, 0€86,2137,0030,C047,046E i .T0C U 0789, 0480,0036,4AF0,0047,04F7,0 u 079¢, Page 1166: "*t*t***wk**************k******************k********‘H«************************ 47706 : 47707 : 47708 ; SO O . . G ’ U . NDAWN ’ R . R ’ G ’ VN . SN TN NN SN NN N N ~ . . PR . g =~ . 47698 47699 47700 47701 47702 47793 47704 47705 A . ’ NN NS N NN ~ GHROM .M IC M1 ) 28-NOV-83 MICRO2 GH FLOAT Subroutines in ROM A : (MTO98.M (X P H ; CONTINUE LOOKING EXTRACT FRACTION FROM BITS 0-31 GETS RID OF HIDDEN BIT GET BITS 32-63 TOO 3 10==-csemmommcscm e mca e : MCTEMP3]_MB+ZL1T78[8] ; ROUND FRACTION (800) MCTEMP2]_MB+RLZERGI+ALKC, ; PROPAGATE CARRY INTO BITS 0-31 MOTEMPS] MB+PL, : ADD SIGND (MP?, H LOOK FOR UNDER OR OVERFLOW =0 PUSH,NEXT/FX.NORM.ADD.ALKC : ADD TO EXPONENT FX.NORM,GFL.20: SIZECWORD], NEXT/FX.NORM,.GFL, 30 H ; FACTOR TO EXPONENT : | ' (MT098.MCX GHROM.MIC MICRO2 1M(01) 28-NOV-83 GH FLOAT Subroutines in ROM 2;;22 Bgc H 11 16:30:35 " Page 1167| CLOKX Rev 13.00, Clock rate = 160ns : Normalization FX.NORM.GFL GH FLOAT Subroutines in ROM ! : Normalization FX.NORM,GFL "' ;47755 FX.NORM.GFL.30: 247756 147757 07A0, 0180,5D92,0A77,C047,0078,E 47758 :2;;23 1467761 U 07A1, 0884,0587,0030,8047,005C,E 0742, 0884,0587,0030,8047,005C,E 00mmwmmmmmmmmmmmmmmmo oo : > 0 MUST CHECK FOR OVERFLOW WB_MLTEMP5].AND. ZL1TBLOF81, : WXTNE, 07 NEXT/EX.PACK.GFL.15 $0]mmmmmmm e ; ; mme e mmeme oo mene e : =0 UNDERFLOW 47762 RCTEMP2] 0, 47765 147766 10==mmmm o ; <0 UNDERFLOW RETEMP2] 0, : IF UNDERFLOW FAULT ENABLE NO RETURN ;2;;22 ;2;;2; NEXT/FX.TESTPSL NEXT/FX.TESTPSL : CLEAR OUT BITS 0-31 : SEE IF FAULT ON U.DERFLOW : OTHERWISE RET TO CALLING RTN 147769 =00 ;47770 FX.NORM.GFL.50: 37771 = 07A4, 0C84,0587,0080,8047,0000,1 07A5, 0886,3137,003D,8047,0468,D 47772 ;2;;;2 47775 147776 ;2;;;; 147779 0746, 0586,5(10,0011,0047,0078,8 i 00=mmmmmmm e e e e e e e e e : NO BITS SET ANS IS 0 RLTEMP2]_0 : BOTH WORDS ZERO R ALTEMPSI (B RLZEROD) LRR. P, : BIT FOUND IN BITS 32-63 : EXTRACT FROM BITS 32-63 RETURN [¥1] PUSH,NEXT/FX.T3TOT2 : EXTRACT T3 INTO T2 AND T3 =0 ;10===m=mm=ceem—cccocecaeeeaaas : ADJUST EXP ;47780 M[TEMPSJ MB-ZLITOL20], : 47782 NEXT/FX.NORM.GFL .20 : NO NEED TO ROUND ;47781 SIZECWORD], ; FOR THE EXTRA 32 BITS 1 : C MT098.MCX GHROM.MIC 16:30:35 MICRC2 1M(01) 28-N0ovV-83 GH FLOAT Subroutines in ROM 47784 ,10C ;47785 =0 : " N I CLOKX Rev 13,00, Clock rate = 160ns Packing FX,PACK.GFL GH FLOAT Subroutines in ROM 247786 FX.PACK. GFL -——----------——----__-----_;47787 R[TEMPZJ (MCTEMP5] RB).RR.S, EXTRACT BITS 0-31 NEXT/FX.PACK.GFL.30 U 07BC , 0084,51F7,0030,8047,007A,8 : Packing FX.PACK.GFL'' CONTINUE FX.PACK. GFL 10: o~ = e o e e e e R[TFMP3J (MCTEMP2] RB).RR.S U 078D, 0084,21F7,0030,C047,007A,7 POSITON BITS 32-63 FX.PACK.GFL.12: MLTEMP3] MB.RR.16, TN SN = OO 0O NN N DN P AP o o L o o NN NN N SN SN N NS N NN €0 0o o Co £0 Co O0 0o 00 OO 00 0o Co P e e SO OOOOOOC U O7A8, 0886,2382,4090,0047,0000,1 o ,B U Q78F, 0549,8(10,0030,24A7,00FF B T T TE TE T T U O7BE , 0D80,0F76,4030,6047,0078,D ROT BITS 32-63 CONTINUE WITH BITS 0-31 NEXT/FX.PACK.GFL PR S U 07A7, 0686,3387,0010,0047,0078,C =0 FX.PACK. GFL 15: NO OVERFLOW SL_£12.3 SET UP FOR PACKING NERT/FX.PACK.GFL.10 VA MOVAJ-ZLITOL4], OVERFLOW DO THIS FOR POLYG NEXT/IE.FLOV.FAULT OFF SET FLAGI, TO FAULT HANDLER FX.PACK.GFL.30: - MITEMP2]_D.OR. (MB.RR.16), RETURN [¥1] MERGE BITS 0-31 WITH SIGN IN D Page 1168i ; CMT098.MCX GHROM, MIC MICROZ2 MO 28=NOV=83 16:30:35 GH FLOAT Subroutines in ROM CLOKX Rev 13.00, Clock rate = 160ns { : J N ¢ Generalized routines o Page 1169 Rl Al al 147820 = OO0 0 bl g ;47816 .T0C ' GH FLOAT 3Subroutines in ROM : Generalized routines '’ . 781 ;*************i********k********k*****k**t***************w**tt***x********w*** ;47818 147819 + : ;gg : ;gg R e, U 07CF, 0486,8041,00AD,98(7,0000,1 NN = OO O NN S D IS DD B NN — DO CO NS WA NIV RCTEMP2]_MLTEMP3)] * MOVE DATA DOWN FX.ADJTMPS.LFT: RLTEMP3]_MLTEMP4) * MOVE DATA DOWN et LS L S ; RCTEMP4]_MLTEMPS] ; FX.TSZERO: ittt b: RCTEMPS]_0, : RETURN [=1] Y RETS =1 t1i1t FX.LFTSHFT3: MITEMP3]_(MB RLTEMP41).RR.P Y LEFT SHIFT THE DATA FX.LFTSHFT4: e O - - e s T oy = - MCTEMPS]_(MB RCZERO1).RR.P, : RETURN [¥11] : FX.PROP.CRY: MLTEMP4]_MB+RLZER0OJ+ALKC MCTEMP3]_MBR[ZEROJ*ALKC OO R N R NN NN NN TN SN N N N SN N N N N SN SN N SN ONININ NN NN TR T T 'g A A U 07CE, 0C86,2041,003D,8047,007C,F gg O U 07CD, 0086.3041,0030,8047,007C,E L I T U 07CC, 0486,4041,003D,8047,007C,D R U 07(B, 0C86,5137,008D,8047,0000,1 78 €0 00 0 00 0o G 0o 0O OO CO Ca 60 €0 €O C0 OO ©o 00 Co Co o 00O CO o U 07CA, 0486,4137,0031,4047,007C,B R T T U 07€9, 0C86,3137,0031,0047,007C,A e e R T U 07C8, 0084,0587,0081,4047,03FF,F T Al 47 g FX.ADJTMPS.LFT2: O W ; 7837 "REGION/GHFLT.R1L,GHFLT.R1H/GHFLT.R2L ,GHFLT .R2H/GHFLT .R3L,GHFLT .R3H NAU = O D00 : ;g A 1478 o U 07C7, 0084,5592,4031,0047,007C,8 W AN NN ' ;gs g U 07C6, 0084,4592,4030,C047,007C,7 g : ;g% O N U 07B0, 0884,3592,4030,8047,007C,6 WN = OO0 NGRS W e aE ol ol Tl : ;gs i ! SOME OTHER SHORT SUBROUTINES L7835;**ik******k****************i***i**i**i****k********************t********k**** E 782 ! | b - = e - * CARRY FROM ROUND POSITION s o ¢ - " > o e ¢ INTO EXP SAVE SIGN VALUE . (MTO98 MCX MICROZ GHROM MIC 1M(O1) 28-NOV=-83 16:30:35 GH FLOAT Subroutines in ROM :2;898 .T0C K1 CLOKX Rev 13.00, Clock rate = 160ns + Generalized routines ' GH FLOAT Subroutines in ROM t Generalized routines Ezgggg FX.ADJTMPS.RT5: 07D0, 0884,4137,0031,4047,007D,1 Ez;g;g RCTEMPSI_(MCTEMP4] RB) .RR.P * EXTRACT THE RIGHT PARTS Ezgg;g FX.ADJTMPS,RT4: 07D1, 0884,3137,0031,0047,007D,2 }zgg;g RCTEMP4GI_(MCTEMP3] RB).RR.P 147879 FX.ADJTMPS,RT3: 07D2, 0€84,2137,0080,C047,0000,1 147880 147881 :zgggg N RCTEMP3]_(MLTEMP2] RB).RR.P, RETURN L¥1] Y SHIFT VALUE TO THE RIGHT : ; ; Ez;ggg FX.ROTTMP.TST3: V) 0703, 0(86,5387,0010,0047,007D,4 07D4, 0086,4387,0010,0047,007D,5 }Z;ggg 147888 :25338 :47891 0705, 0886,3387,0090,0047,0000,1 147892 ;2;232 MITEMP5]_MB.RR.16 T e MLTEMP4]_MB.RR.16 * ROT THE TEMP LEL L ; : e e: MCTEMP3]_MB,RR.16, RETURN L[¥1] : : 147895 0706, 0180,0EF6,4030,0047,007D,7 147896 147897 FX.PLOSL1S: 147898 jeemesecmemscamemsamamemmeme—e——- : ;?;ggg 147901 FX.SL1S _ U ) 07b7, 0980,0F76,4080,7847,0000,1 ;47902 147903 :2;382 PL_L0] : e et ettt H SL_[15.1, : RETURN [+1] : 147906 FX.ZERORTI2: . 0?D8, 0884,0587,008%,0047,0000,1 167907 147908 147909 vt bttt bdede et bttt H RITEMP121_0, : RETURN [+711 ; Page 1170 PO " ; ; This subroutine converts HFLOAT type operands to integer(CVIH to x and EMODH). The initial test for Exp>=0 is performed in GHW(S.MIC N N N NN O OO DO OO OO0 O00 ~no ORI AN —> —d ed > =3 —3 =3 3 3 E NN = OO0 N DS NP -2 SN LR A R T T N T N Y N> GH FLOAT Subroutines in ROM : HFLDAT to Integer FX.CVTFI.HSUB.20 LT0¢C ; : ; integer and fraction parts. Input: ; : : ; ; MTemp8 - exponent unbiased Temp0 - constant of 32 incremented by 32 for each iteration # tries for gosrt1on1ng Low order bits for =~ 6 STEPC 1 of T2 most significant bit Temp2-5 - fraction with bit MDR ~ O H FLAGZ -~ 0 ; Output: : . integer 12-T5 = : L FLAG4 =~ to determine if round or truncate (1/0 respectively) MDR = . fraction positioned with most FLAGZ = used to signify integer overflow ;**wtkfi*k***k*k**********'c**********************! KRRk 07C0: FREE.07C0: s0=mmmmmeos s o s mecmcm MUTEMP8] _MB-ZLI1T8(401, CLEAR FLAGZ, s; ; FLAG4? NEXT/FX.CVTFI,HSUB. 110 QD16,8D90,0472,0047,007C,2 L significant ; Akkk bit 31 ko kkkk ko k ok EXP <O NU INTEGER IS ROUND BIT CLEARED OR NOT 07(1: FREE.07C1: N 0480,88C3,00F0,0047,087A,¢C 377+ NN 07AA, 07AB, 46 FX,CVTFI.HSUB,10: 00 CONSTANT IN TEMP (32.) MCTEMPOJ_ZLITOL20],CLEAR FLAGZ =01 FX.CVTFI.g?UB.EO: PL_RCTEMPO]-MLTEMP8], EXPONENT RANGE?, NEXT/FX.CVTFI,HSUB.50 . RANGE OF EXP : NOT DONE CHECKING FOR RANGE PUT INTO WORKING TEMPS DEFINITE OVERFLOW : H FX.CVTFI.?8U8.30: MDR_R(TE SHIFT LEFT BY 3¢ 0050,05BE,4030,8467,0478,0 0836,8587,0080,0047,0000,1 1 _ 0749, 0116,0037,0031,0047,007A,9 NN N TN N NN NN N 0709, 0D86,8090,0032,00467,0070,9 OO0 0000000000 g7Cr, ittt oindediedtelledete ; EXP >=0 MLTEMP8] _MB-ZL1T8L40], ; REMOVE BIAS NEXT/FX.TVTF1.HSUB.10 : ---------------------------- - MCTEMP8]_O,RETURN [+1] DONE CHECKING ALL ZERO OUT EXP | i this routine entered to find the integer bits of significance and to window the fraction correctly all other cases have 0Os for ; | | Cnly if the exp is representable in 7 bits (less than 128) is : ; H 07(0, Page 1171 CLOKX Rev 13.00, Clock rate = 160ns ¢ HFLOAT to Integer FX.CVTFI.HSUB.Z20 ;tt*****'k***********************t****************************w**t************* ;47910 T LN Y GHROM, M1 16:30:35 GH FLOAT Subroutines ir ROM P ’ 26-NOV-83 1MC01) N W (MTO98.MCX MICRO2 of 12 kv MICR0O2 TM(OD) . 28-NOV-83 \ GH FLOAT Subroutines in ROM CMT098.MCX GHROM. MIC . 2;822 .T0C 147966 =00 " 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns ¢ HFLOAT to Integer FX.CVIFI.HSUB.20 GH FLOAT Subroutines in ROM 47967 FX.CVTF1.HSUB,50: 147968 07AC, 0486,8587,0030,0047,007D,A u 07AD, 0C80,05BE,4580,8467,0078,2 U 07AE, 0086,8587.0080.04E7,0000.,1 . 07AF, 0586,0C11,0331,0047,007A,A : MmN 0= mmmm e mm e me e man e ; Page 1172; : HFLOAT to Integer FX,CVTFI.HSUB. 20' ! - EXP <1-31> ' 147949 ;zgg;? MLTEMPB]_0 NEXT/FX.TVIFI.HSUB, 100 : ZERO OUT EXP ; ; : 147972 Dt e L L L LR : EXP=32_(WB=0) i 147973 MDR_RLTEMP2], :2;3;2 7977 NEXT/FX.CVTF1.CHKOVR : 10mmmmmememeece—e———— ————— ; EXP=U (WB=32) ; | 47919 RETURN (¥1] A 147974 i GET INTEGER FLAB<2-0>?, ;47978 M[TEMP8J_ MDR_0, ; | ; 27981 :47982 j1lemmmmmmmmmmmommecemmeee ; WB >32 EXP >32 M[TEMPO] MB+ZL1T0[201, : ;Q;ggg NEXT/FX.CVIFI.HSUB, 30 147983 | : START CHECK FOR OVERFLOW DBZ STEPT?, i ; : DONE CHECKING i ; Ezgggg FX.CVTFI.HSUB,100: '07vA, 0C81,2137,0030.8467,007D,8 Ez;ggg . 147990 07DB, 0C86,2137,0050,0047,007¢,9 147991 ;2;38% MDR_(MCMDR] RLTEMP21).RR.P 0 : GET THE INTEGER jeesmemememmmeac—sesmeeeeccacees : MCTEMP2)_(MB RCTEMP31).RR.P, NEXT/FX.LFTSHFT3 : i | i GET BITS 0-31 : GET REMAINING BITS 147994 =0 _ 07C2, 0880,0036,4080,0047,0000,1 . i 07¢3, 0C84,0587,0080,8047,0000,1 147995 FX,CVIFI.HSUB.110: 147996 (Qmmmmmmm e ————— cemm——— ; DONT CLEAR ROUND BIT ;2;33§ RETURN [+1] ; . ! 167999 $48000 :48001 lemeesmeseccsecessemeesseeee—e- ; R[TEMP2J 0, RETURN [¥1] R . ; CLEAR ROUND FOR CVTRHL $ oA ; i | i ; MICRO2 CMT098.MCX GHROM. M1C 1M(01) 16:30:35 28=NOV=83 GH FLOAT Subroutines in ROM : "HFLOAT to Integer FX.CVTFI.HSUB.20 ,2%88% (T)O(C) " 148005 148006 148007 1010mmmmmmmmms arwormmmm———— ; FLAG 2/0=0 MDR_RCTEMP2], * INTEGER TO MDR SET OVER(FLAG), ; OVERFLOW TIME 148004 e1 cHkova: U 0782, 0050,05BE,4030,8467,0078,2 ‘ U 0783, 0010,058BE,4470,8467,707C,4 ‘?2883 148010 : B DT R TR ; =2%%32 MDR_RLTEMP2], CLEAR FLAG2, * INTEGER :23812 NEXT/FX.CVTF.CHKOVR.10 148013 POPTC(FLAGL) %, * TRUNCATE OR ROUND : 1110 =mcmmmmmma—— e —— ; PREVIOUS OVERFLOW TIME 148017 MDR_MLTEMP2], ;zgg}g ¢ NEXT/FX.CVTFI.CHKOVR. 20 D 148021 ’2383% INTEGER TO MDR : CONTINUE ON De e L L LT ; PREVIOUS OVERFLOW TIME MDR_MLTEMP2], : NEXT/FX.CVTF{.CHKOVR, 20 INTEGER TO MDR : CONTINUE ON 148024 =0 48025 FX.CVTF1.CHKOVR,10: 148026 (Qmmmmmmmmmemmeeem——am——— ~w=e=; U 07C4, 0484,05F7,0A50,8047,0878,2 331« 148027 148028 zgggg RCTEMP2)_RB.ASL.1, WX.NE.C® NEXT/FX.CVTFI.CHKOVR. 20 148031 u 07C5, 0120,0EF6,4030,F847,007D,¢ PL_L1F], ;238§2 148035 U 07DC, 0886,2137,0A70,C047,0078,2 (1emmemmmm—————— S 148032 148036 148037 ;22823 = TRUNCAIE ¢ PREVIOUSLY 80---0 REMOVING BIT ; IF =2%432 ONLY ; ————— : ROUND CLEAR POP1C(FLAGA) P SET UP TO GET ROUND BIT ¢ GET RID OF SIGNAL jeemmem-esmmeme—e—emmmecece—eanee ; MLTEMP2]_(MB RLTEMP3]).RR.P, WX.NE.0? NEXT/FX.CVTF1.CHKOVR, 20 ¢ GET BITS 0-31 : : CONTINUE TESTING 148040 =00 g 0781, 0886,8587,0080,0047,0000,1 ) U Q7B2, 0086,25BE,4030,C047,047(,6 u 0783, 0450,0036,4030,0047,0078,2 fffffff e ——— - ——— 148041 =01 068042 148043 0lesseccmmcmnmenn M[TEMPSJ ;48047 148048 ;]0mmmmm e e m e e. H MCTEMP2) RLTEMP3], Y BITS 0-31 :48051 e e R EESLES LR : OVERFLOW TIME 148053 NEXT/FX.CVTFI.CHKOVR. 20 ;zggzg RETURN (1] 148046 FX.CVTFI.CHKOVR,20: ;23828 148052 cesmmaena - ; ¢ PUSH,NEXT/FX,ADJTMPS LFT SET QVER(FLAG2), : CLEAR EXP TO 12 * OTHER BITS AND RET=1 : C ' Page 1173: : HFLOAT to Integer FX.CVIFI.HSUB, 20 148011 148012 148020 U 0787, 0080,2002,403D,B8467,0078,2 GH FLOAT 3Subroutines in ROM NEXT/FX.CVTFI.CHKOVR.20 148016 U 0786, 0C80,2002,403D,8467,0078,2 N 11 (LOKX Rev 13.00, Clock rate = 160ns i GHRUM M1 MICROZ 1M(0O1) 28~NOV=-83 GH FLOAT Subroutines in ROM 48053; 16:30:35 This page : B 12 {LOKX Rev 13.0 HFLOAT to Integer intentionally lett "o ; CM7 e MY 3 (L X Qv bilank, = 160ns Page 1174 =5 — pefo) < —o — no oz MICROZ 1 M(01) FILLER.MIC 28-NOV=83 16:30:35 ¢ 12 CLOKX Rev 13.00, Clock rate = 160ns L10C VFILLER.MIC! .T0C "REVISION 16.0" ;48056 Gerard Koeckhoven, ;148054 $68055 ;48058 «NOBIN péBOéO LToc ;48065 ;48066 ;48067 148068 T ;48064 ;48072 ;48073 148074 ;48075 O ;48069 148070 148071 Revision history" EXPLANAT]ON T : 68061 ;48062 148063 P ;6EY59 ;48057 Remove OFFA,OFF7 for mem management tix Remove words for CMTO061. Remove words for CMT0S9 Remove words for CMI0S8 Remove and add words to filler tfor Remove and add words to tiller for Delete words tor rev 55 changes, Delete words for rev 54 changes. Detete words for rev S1 changes. Delete words for rey 49 changes. CMID56 crossing page boundary and modityiing destination Initial release. 148076 CMIOS? BIN (HARLIE MCDOWELL Page 1175 H (MTO98 . MCX FILLER.MIC MICROZ2 1M(01) Filler 28=NOV~-83 ,238;% LT0C " 16:30:35 D 12 CLOKX Rev 13.00, Clock rate = 160ns Filler : Filler words for unused control store' :48079 JRAKRKEK KAk AR KKK TR AR KA KAk AR AR R A Ak 248080 A A KRR AR AR AR Ezgggg josmrmssscscenueueseseseeseeene—.- ; MLERRCODI_ZLITOL200.1,NEXT/IE.UNUSED. (S J07F3 ;2283? MIERRCODI_ZL17100216.,3,NEXT/IE.UNUSED.CS 0774 A —; 148092 u 07F5, 0D86,B(37,0037,{047,017F,9 § mmm ;2%882 MLERRCODI_OL1T16032.3,NEXT/IE . UNUSED.CS :48098 : ee ; e; :23839 e e : 48100;48099 $48101 e MCERRCODI_ZLITOL248.],NEXT/IE.UNUSED.CS :48095 U OFF7, 0D86,BF37,0031,0047,017F,9 MLERRCODI_OLIT16064.1,NEXT/IE.UNUSED.CS : END OF ! ;07F2 ;2%8%5 $48089 U 07F4, 0986,B(37,0036,C047,017F,9 U OFFA, 0D86,BF37,0032,0047,017F,9 fi[ERRCODJ_ZLJTO[184.J,NEXT/IE.UNUSEb.CS :48086 J 07F3, QDB6,BC37,0036,4047,017F,9 Rk Rk Ak d ! : ;48081 .REGION/O,17FF v 07F2, 0986,B(37,0035,C047,017F,9 Page 1176. : Filler words for unused control store FILLER.MIC ;07F4 JOFF7 JOFFA ‘ s ; ' 3 g | : E : | L s o 42133 9710 9843 35319 35347 35363 35976 15379 15684 35008 35325 41321 46550 46555 13069 11885 14116 23338 46344 [ QO EX N N~ L) = 9834 35017 9839 36625 14062 14073 20103 21762 21852 44430 7729 12967 16136 33207 9603 13317 19041 36673 9637 13330 19052 36847 oo DN o no 9730 34990 ~ =W 9725 34977 NIINOO -2 O NCD 34960 o 9669 WIS O NNRONO conuCo— O N NS00 O m;\go = 9335 33556 16059 43061 47508 N~y Eo SNV ON 9735 164086 16560 46162 5991 12729 38087 38822 12709 15351 36667 47062 VO N — ool O~ ~JuINg (Vo F-Yo X ) Eodat] o —— O NOWO Vo I, TV, [V ] oony ©o S~ D00 —0O =0 o= ~CO OO — NN SN0 -0 oo~ - O~ B~ SOV, =0~ ~N=0wv L LV e [=TeNo N O — O WO~ —OWNNO £ [ IV 1) N — O 0O o—0Or0 - = N Neole X010 ] =~y ~ N OO —~ANON [VoTeW N W DW=~ BOOCOO T JWYERYo 1o RN To Ve BT e et A A0 NN—2OO0 DO = = NONBND S PONONONIND SN — = PN NWNNUONONOR = S ONONONON N0 NNV ONONON WX_D_.NOT.S WwX_DDSL.SaL WX_D_DSL.SQR WX_DZDSR. SQL WXD_DSR.SQR 56068 DWW 42124 37862 18476 38922 N\ =~y WO 42118 16978 PN [0 3%, [V, 1,¥] 14857 22098 SO=0 = ~J(ANOO ~O0OVO 14744 18682 LN00 39969 9470 14716 18509 9485 AN O O0N 9233 oNun I ro ~J\icoo 9228 14218 N -0 9222 12849 N — - 9194 I — 9189 —_— O~ P 9183 SN — oS OO —— 9612 9640 SO el NI O W pry RRRRT1TR = PONU N NNV 9606 9633 = W wB LOOPF.Q”D_0 WX_.NOT.S 9599 9628 OV O wB_LOOPF.D_0 WB_LOOPF.Q_0 | 78 60 2 3 PRO—== counrowv REM WB_ALUF WB_ALUF.D_S WB_ALUF.Q_D_S WB_ALUF.Q_S WB_LOOPF Page 1177; Clock rate = 160ns ! TR MUL SLOWNOP RTRARZTZTTRR MUL SLOW+ TR RTRVTTRTREIRT MULFAST~ NINLNO o NI NN ny ANV N n W NN AU MULFAST+ E 12 16:30:35 CLOKX Rev 13.00, 1MC01) MICROZ 28~-NOV-83 Cross Reference Listing - Field Names and Defined Values oYo Ne No Jo o~Jo g0 o 0[+ 1o Yo X0 Ra WoTo No Je i sl oAl [e ;Y=Yo e I o At N Pl o PO N AN W N NN N NN A E P 00O VT — IV (v SN N 0 D OO OV WNNO STOWIN— %] OO {MT098.MCX 47345 4 4 9 8 0 8 3 8 3 B T OO = UM T O =M TN O O = — OCUM T NN O RN A O 0 0N O v CUNIAT ST WD OO NN OO O OO P DN AN N O = = e e O IO IO O sou g U O AIM — OMMIAT OO A UM O — — O OM e 3 INANON RO OTOIMOAM— T O INONR O =N J— O O VO U 46478 WX_R.Q_XM WX S MO~cF—M0O O— ~r Page 1178: 160ns Clock rate F 12 CLOKX Rev 13.00, 28=-NOV-83 16:30:35 Cross Reference Listing -~ Field Names and Defined Values 1MC01) MICROZ (MTO98.MCX v CMT098.MCX ‘ Mo 3 M—~OF Page 1179|!| 160ns OO M MINRA N MO NGO IO — OON—OOMMA —r—= T T MO N — OO NOOOMINAARDO—O—NI NN =~ OM OO NIT OO = U ON OO — wX_5.0_0 G 12 CLOKX Rev 13,00, Clock rate 28-NOV-83 16:30:35 Cross Reference Listing - Field Names and Defined Values MICROZ | 1 1 1 i 2 T— o=— ALY a <~ o ~ -l - [ 22 ~O— - Vd Q@ -~ (=] il w Page 1180 | . CMT098.MCX . 112 CLOKX Rev 13.00, Clock rate 28=N0OV-83 16:30:35 Cross Reference Listing ~ Field Names and Defined Values MICROZ 1M01) 160ns A+B+(1.SL A+B+(1.SR A=-B=(1 WOV . A-B-(1.BCD 3IO o~ ~3 nMOPNMNADOPOM—N O~F~r 47935 26704 28469 Page 1181 CMT098.MCX 1M(01) 28-NOv-83 16:30:35 J 12 CLOKX Rev 13.00, Clock rate Cross Reference Listing ~ Field Names and Defined Values Page 1182 160ns =1MIMYCO [Faled ’ MICROZ AND. SL AND, SR ANDNOT B~A-C] NOTAND WNUONVNO NUROD~O LNToVa[blSOakIsgPetlVUSTMuaVMIN] ON O—0\O OTPNOINT NN OO0 OWMN WO W OO OO LN OR M OMONO =PI ’ ONIMNM— OOAIMOAIMN — O = ONMNMNOMAN = INONT —MANOMNA O TV N OO TN OO N — 3 0 MO OUT OO T A O — (UMM T T T NN OO OO DO OO OO == v e— (OUNICU UM MMM S~ PP GO 00OCAONON OF = 1 = £ £ £ £ T T T £ = T T e e — U IO eI AN NI NI IO N B O 1Lt oV¥ aV] eV12V Page 1183| | 160ns K 12 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate Cross Reference Listing = Field Names and Defined Values MY MICRO2 CMT098.MCX L 12 CLOKX Rev 13.00, 28-NOV-83 16:30:35 Cross Reference Listing = Field Names and Defined Values MICROZ mMon (lock rate Page 1184, 160ns 1 7103821/‘24% (MTO98.MCX o ANO— T DDONO— NP O MINA O e~ OIS O O — MYy 999900000011112223333444445555555666 OO O r r — NCUCMMMMZ < < T ~T N AN NN NN 000 30454 22 o . |Ifl 28134 28567 28764 28978 29201 29412 29574 9758 29986 30094 30220 30438 30664 (MTO98,.MCX ALull 1M 160ns Page 1185 OM N AN O N ST TN~ D OMOAO M T —NMIOM OTONO UM ONSITM NONVIO <3 I MU O e—0 N > o (=4 M 12 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 tross Reference Listing ~ Field Names and Defined Values MICRO2 ’ MICROZ (MT098.MCX 28-NOV-83 1M{01) 16:30:35 N 12 CLOKX Revy 12,00, Clock rate Cross Refe;ence Listing = Field Names and Defined Values 0ONMIN c— NN SOMUNDN WO T3 ocoaony T 26 R AT— N~rI 2698 # 46226 2695 # 46410 — 29639 M-Ae3—NONDNe— 160ns Page 1186 i CMTO98 MOX TMMon MI{ROZ 28-NOv~83 16:30:35 B 13 (LOKX Rev 13.00, Clock rate tross Reference Listing - Field Names and Defined Values HS — [ [aYaY=T SN 4 & o 81 8y 699 —~w—E ETZaA v OWI- = ~y al ~0 < 40567 ———— e W 160ns Page 1187 (MTO98.MCX Page 1188 M0 UMNATOLYOU~IO—MOC—-3XMNOM=OTODM O0~NCTF BODOHK sJTPkdl BR,SC=-4 INT=TS LAl MO0 O~FTOMN—O 36899 36911 36929 36935 36941 40178 21997 22002 22015 22057 22092 262N 3950 19279 4 BRA ON,ADD ~ MVTWO2NYRI~ DoeL[ValVYVlVal4VolValValtloVAVaiai [VYPLBoalRalYldPVaM—eLVoTOtYUM CWUMOCNP—UYFONMI oeDsLl[VaVaiXValVdalValValVYlVlVXlVaOUNM—OIN LODWUALCCDMON—UJVIM OTM— ONNI—O TOQOO BUTX8 (CBR WNO—~A0 e[PaRYheVFaolVsalValVaVelValiolValValalvoLte o]=}olaldoelelalValPalValALVlAYVATVATV [V Os["trOaa0oOO lVaOtV0aliDO YaliNValioaVolPDatVAalaAlNVWaAlL BaTt Wi WR WR WR WR WR O OO T M «NOREG ORNe —O STOSTCMYUMOUNICUONUM— LLNG N2 [Se]ROWNOM3 =x 2 A Y U — M T M O—0MOM r—rOT—NI~TODTN [ —— — [FOyee] NOO00 T —MN M ¢ 13 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 (ross Reference Listing = Field Names and Defined Values M]CRO2 (MT098.MCX D13 16:30:35 28-N0OV-83 CLOKX Rev 13.00, Clock rate C{ross Reference Listing - Field Names and Defined Values MICRO2 M0 160ns Page 1189 NN NI OON OO0~ T VO OMNIO — ORON IT—M— I AN OM N AR O~ MO O CMT098.MCX P Y(2¥{2 VLAV NLo TS NTSN ATST T NTSN SNToVIoVT VToVoWToVTAVToVToVT VToVT VToVAVIoVEQNTONTQNToNToW oVTN[o tTaVIgNTaVIo FIAN[ TR 1o ia i ia i tia L. 52 ——— e — U O O S OU U OGS OO OO U O OU U O OO NS O AU O O OO OU SO O N I U N U N NU AU IO O et g 94 5 5 7 4 6 6 4 ) 6 6 8 3 1 1 7 9 1 5 7 4 7 4 Page 1190; 160ns Clock rate E 13 28-NOV~83 16:30:35 CLOKX Rev 13.00, Cross Reference Listing = Field Names and Defined Values TMMD MICRO2 160ns 28-NOV~83 16:30:35 CLOKX Rev 13,00, Clock rate Cross Reference Listing - Field Names and Defined Values F 13 M0 ’ (MTO98.MCX MICROZ alat ot ol o olOONINOolial sTl alNo aliOaliOTa slvaliTaloTaLeala Lol al al ot ol ol etal slTN NTN T Tt e T T T —AalNe RO —OVOOMON PMOR N A ETNLN LTA TTA LAO~AVIOONS NTa TNTOO0 R N N T TN N N N L L o L R I R IR e L al e Lalialialiaha latiatisl sialiatualalos LaliahiaLialiehahalalia h a Laloa gl M M PM ST T T T T IMM7~ T3 OCOOOOOOOCOT — — CUNIOIONINIOAIOINIONICUR MIT3A {MTO98,.MCX 6 13 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 Cross Reference Listing - Field Names and Defined Values MICRO2 M) 160ns Page 11925 § 0 OAM=RNUI0 i 1 ) | ] I | ! 1 t M= | 82 73 9 7 2 5 1 | 4 2 0 4 5 5 3 0 6 7 3 2 | MICROZ Mon 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Field Names and Defined Values IN=ONIO 160ns Page 1193} NTN ONO NP ST = ONNIOIOIMI NTSIN MNONO NOVONNONON CCBRO, SRKSTAD H 13 ]NTo=OANTYIOTNIONIANOA——O ANANIAN LOtM0 * (MTO98.MCX NOL0N stl[TaYTaVaVeatPalValValtval]ielVel WNOINT oou [VolVelValValValVoI¥a V6RVoRV,RVa] 0 NAY N (N LN LN OB LY N A O ST S S A S S g o s[e To e Rnd olol ol el ad elot olot2t 2 S5tk and et OO O 0V O O OO PN N P N P A N A A N A A N A N B0 0 0 N N Nr— r e e e e F P T T T T e v N~ 0 0 O O O 1= £ = f 1 ¥ T ¥ = T € £ T T2 T T e T— OO MM~ — OMN OUMO M ST O M ANIM O NN O OO 0O ORN OO I~ D0OMN T — = J— O UM i [ee] 829 160ns 113 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate (ross Reference Listing - Field Names and Defined Values Mmoo MICRO2 CMTO98.MCX . CMT098.MCX M0 28-NOV~83 16:30:35 J 13 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Field Names and Defined Values ONOU—IMNTMF obaVTiaL1dIlgk)oVoINaOSNATO=UM0OMTM CODOCO I=NONON 20653 20682 20712 2078L 20930 062 4463 ]. . MICROZ ~r U— OO 160ns Page 1195|! l ! } T . ' CMTO98.MCX K13 CLOKX Rev 13.00, Clock rate 28=-NOV=-83 0 16:30:35 Cross Reference Listing - Field Names and Defined Values MICRO2 OUOU O OO OO O OO L IO M MM M M M M M M N MV M YA M I DO O I IO MY I Y OO AROOCOOOOO TM —r— — AUNINICIOINICUO SOOI NIM MMM 3 ~J T T ~J 7 T N ONONON N 1M(01) 160ns Page 1196i M @ > o [aVN7,] [ oo 1 —- —@ Mz Qo M aQ L~ ow M T -m wn [ = ~D— CLOKX Rev 13.00, o b -~ — (= Qo © > od — 3 o [ Clock rate 160ns Page 1197? LAMM MMMALMVAMAIAV MYAL LNNNNIU D NO OMOOMYO OI MOPOM ANBM AYALAAPMA NMAM IA NYM00MY0 MNPA0COMPN3 DODYMMMRNIPR RSOOT ST T T7 FOO0O0OOVODM00)0 P — o~ C -— ~—~o . CMTO98,MCX (SN . 3/“ (MT098.MCX . 28-NOV-83 M 13 OO — UM O OO OO OO OO OOOR P AR AP RN A A IS A A 0O TN T T T T T T I T I T T I I T T T T IT T I T M T NN OO OO DUy AN OOM OO I O e— (UM T FTUN O DO DO O~ = — NUININIM T TN OO0 O — NNV O Ty SNOU=TVM (CBR1,CCBRO.IRO x Page 1198 160ns Rv)LoegAsYy ONOA=NI~M WTIAN rIOMNU—yO NODWUMANAN [aYVPoR)olilTaleN=eloMITWgOO JrTONMU—S0NO OWANAO0 ON[oVlaNlOoVRae]lI0Val3VMalValValvCaOlvaNlMValIvalPie ’ 16:30:35 CLOKX Rev 13.00, Clock rate Defined Values and Names Field ~ Listing Reterence Cross M0 LsV[}Tea)allVTeVVoRaaslVDs VaallvVaaltVVaalVlavlaVlalVaalaYVVaalttVaallVioe[P Y- S N N A N L A [ . MICRO2 CMTO98.MCX MICROZ mMeon 28 28=N0Ov-83 o 16:30:35 N3 CLOKX Rev 13,00, Clock rate (ross Reference Listing ~ Field Names and Defined Values Page 1199§ t OO O OO OO OO I A AN S A N A A N N A N S S S R A O O O O r et e T T e T I T e 88 160ns NOOMTDOD —NMVOMTDOIOMPRO-OTFMONO O0NT—MNO ] | | | i i ] i i ! | i i L AVLN Y W T Y N Y W N VY VT VL VLo T WYVoTaVAVTAV AVLAV oVTaVEAVEANoYIpNTVi RIAVTANTAV oIVIoVIAVIAVIaVToVIaVT STaVEANTAT AVTabln ToSig ins 24486 24669 26797 24933 D0OANR80I 280060 0ARLORI P N I N I D N N Y T N N T o i N T VY ¥ S A el Vo Mo Nl Vo MoV T AVia e I Fia e iaPial Male 567 AN 2 TROOT—TN O ~ ONONDON OON M INO O TO TO ~OIANG O e A OMP ONCT<AD—PuM=RGvONI~C0MZTON 957 o @ - — [=¢ (1] =] > licd - 3 U L g La©nd [ = mZ La l-’] "2l 11 Maua - LN wn - @ — - — C- ~ @ 1] N — Eo O— CMTO9Y MOX 245 694 Page 1200 160ns CLOKX Rev 13,00, Cltock rate ~r (=] > [=Y 5 -— — (= -5 Rl > d — =] Ly " -] [=4 © M M oa B- el 11 M - @ o o+ §- 1] ~ Ow C— [+ @ O- s -— [(MTO98 MCX MNUOUNM M MMM AZ <3 <3 <3 ~F <7 T T DN vin ——— OO O CUOUNUCIOUAUM MMM A3 T T S8 ST N7 ~F ST DN NN MO NADDOC — O N OOMONNVMOOON NN — A —OWVMOT = O A NGO VOOV —0—0OD O OMMOT MOOC Page 1201 160ns Clock rate € 14 CLOKX Rev 13.00, > [==] TOr0OA0-ORr0NO0—O O~—TN0PATNDFMISW=ORV~DNM NN OO O r— UM ON OO — ON IM AT N O O O O v UM F N O N O OIS 0 O — (AT N O M O 0 O OUN—MNOMN—ONR Cross Reterence Listing ~ Field Names and Defined Values 5 5 6 7 8 8 9 0 1 1 2 36304 36496 36667 36745 36841 36908 WAAL W N O OO OO OO0 O RA AR ARARNA RNR AN0ROO0 — r—r— Y el elaliala lala el el el el et a a2l alial alat el al ol at gt el el aTalLalal ol al sl alahabalahaLalialLol b b b bt ASg 2 9 Page 1202 160ns Clock rate CLOKX Rev 13.00, D 14 16:30:35 28-NOV-~83 M MICROZ (MT098,MCX (MTO98.MCX . 28-NOV-83 M0 (ross Reference Listing - Field Names and Detfined Values Clock rate 160ns Page 1203 N T TIT TIT T TT I TT T T TN T T TTN N s DN DD O ON8 0 D0 0 0 R NI A O — ON T OTOT— RN RN OMINO N NO T NO T ROMMNINON UMM ST OO OO UM MM 59 CCBR1,INT=TS E 14 CLOKX Rev 13.00, 16:30:35 ~r ST ’ MICRO2 . (MTO98.MCX F 14 CLOKX] Rev 13,00, Clock rate 28=NOV-83 16:30:35 Cross Reference Listing = Field Names and Defined Values MICROZ Mon 160ns Page 1204 : VOO = AUM AT TN OO O OO T A O v AN NI I T DDNIN DO OO NN T OO OO IN—0OAOMNTMONONOT OVJNTIMNITNVUN-INWMI— . . . MCX {MTO98. G 14 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 Cross Reference Listing - Field Names and Defined Values MICRO2 160ns Mn Page 1205§ i | RO OTFT =TI OO =N OO ONON N ANIONA N O — OO OUNONDTON =T O ONIN O TN DN~ O 0OMONCON. O ~T i i ! i 79 T~ ToVg[aIaaiVERNV}NNN OMTINT— o —0\g . (MTO98.MCX . 29585 liatval NONON P QOO UM T OO OO NINT OO = T T NN OOV O OR O TN O OO O — OUMIN O 0 OO NIM T T TN 29636 RO OODOQOOO T r—r— NION INONAIONOIONO AIM M M MSTSN STSN ST STST 7 STiND N ni n nin in 29491 1 feNe Yo Yo XoRo Rrlolalelololeletat ot ol et 8 L 1 e L L I I S L S S I ALALA LALALA Sr- BT Bv-B s e ATARA LAL AL ALAL AL A ~ Page 1200! H 14 CLOKX Rev 13.00, Clock rate 28~ 28-NOV-83 . 16:30:35 Cross Reference Listing - Field Names and Defined Values 160ns 1M(01) MICRO2 114 28-NOV-83 16:30:35 CLOKX Rev 13.00, Cross Reference Listing - Field Names and Defined Values MICROZ M0 Clock rate 38109 SMMTNMIN 9949 ITO—OOMN0N o —0y * {MTO98,MCX 39806 160ns Page 1207| O—UOrMNVTA—=ONI— MICRO2 28-NJV-83 16:30:35 J 14 CLOKX Rev 13.00, Clock rate {ross Reference Listing ~ Field Names and Defined Values . 1 Page 1208 | 160ns i CONONO O OOV OOVONMNNNARN’PM’AMNNMNAMANM’AM ANMNMNONAIM DNOO S T O =M LTN OOT OOT T OOVT T TOOOCOMN I T T IO T I NT PNI I ART T NNI T ANT T ONNAMON T I I I T I T T T NARNRNP T T T I T T I T I T T T I I T T I T T T T T T TT I TN MMM — [=Y o - 1 =w[%~y ~.—_ [(=3 1Mo FLAGO FLAG1TO0 FLAGZ NOMONTINIO ITO—eM DMO0 WOVMN=O—TrNVO— N ST —M FLAG? ONAITM~W—=VIMOJ~N M= T0 O O~ MO OO O PAR gLl X i RIaVIEEaRAVnd OIN0 T —Me— i} 8 ., MCX (MTO9 CMTO98.MCX K 14 16:30:35 CLOKX Rev 13.00, Clock rate 28-N0OV-83 (ross Reference Listing - Field Names and Defined Values MICROZ2 Mo : Page 1209 160ns FLAG2TO0 FLAG3 RR rPs3 1R.2T00 X IRD1 NOOM—INNAIDDNOOMNI—IOTONS V0UO—MOSr—ONMPTIM —— NI O NOMO T O NIN N TMN O —M O — — 3 ORNVDO CNC O C UM INT=-TIMSERV ——3O NOe—MON NN [o] FRO.FLTZ 38913 oo — FPD FPS] FPSQ TQO . 38918 {MT098,MCX + L 14 16:30:35 CLOKX Rev 13.00, Clock rate 28-NOV-83 C(ross Reference Listing - Field Names and Defined Values MICRO2 MO OOUNIT =P O O~ FMO N NN N D ODINO T O IRD1TSY 2781 # 6139 7062 9NN 9554 9642 16294 A~<TCU=eNIONIF3OUMIMINIMN 5358 6145 7045 9195 9565 9648 17470 160ns Page 1210| | | | ! | IO~ . rOMA~N—INrO—T<IMFV~rNC—UrM ~ 3- @ Ico CLOKX Rev 13.00, Clock rate [=1 @ -~ - < 134 © > m — > i " ON-P I OOO eO=M—0 OT—N = 45098 45486 45950 7416 9180 9238 o [ w ~r MM, ALLUOW, INT =2 V—TONMARN 7830172065759306 ANOOO O =t = ==(NONOUMIMIMIMSISNT~T~ N 2785 — T OOMONIONIOT T OO O OMNINOTMINOO LUD. INC . HRA 47284 : Page 1211 160ns TANON-O (ANo NTINOW NOONITONO— SNDOTIMI OMN— QTO=N x IRDX LOD.BRA Myt — — MmZ &- QOM w T~7MNOR—MI TWN-TTO7 DTNT MA — MO @ M 14 OM—INNO A &~ - [+ @ > [ o] YOO ON N o oy C- £— w0 ’ (MT098.MCX OMO=TFPU-0NV ’ N 14 16:30:35 CLOKX Rey 13.00, (lock rate 28=-NOV=-83 (ross Reference Listing - Field Names and Defined Values MICROZ (MTO98.MCX . M0 35521 12348 —I 35589 N0OOONMNMD OOONONMT MAIT—MO SMONOWNO TN AOOTTeONINIM U N VOOV MNON—I AL 34436 15390 8 4 05 836 364 14 137 28 8 8 5 0 1 8 5 2 7 3 9 2 0 5 0 3 0 4 1 4 [} ~0 ~FOV i M~y AT = O 0O T OO I O (Yol MT IO = — MMM ST M NI MY IONY N OOV 7 OVC — A —oX- 7 160ns Pana 1212; ~OMUN—-ODN NOU—OGM0ON OMAINCmONINOMNONOsI—NToAVAAIOMOIOoMOAIROeNOSA B 15 16:30:35 (LOKX Rev 13.00, Clock rate 28-NOvy=B3 {ross Reference Listing - Field Names and Defined Values {MTO98 MO X Ioe|=Rl YP2RS - - [e 1M01) VT ~F T T U UM AF 2 AT O MO O B0 v— CUNINUNUNMI M M A M A O MY M A A - OO P O e Mo MU AU C I NU NGO M MV A o 3 o< TM - o— MICROZ 160ns Page 1213 MICROZ M0 28-NOv~83 NOP, CCBR_ALUS NUP. CCBR_STGND 160ns Page 1214 2AMOUWIT— NL— O—O V—NO—O C OO MA3OeN=—MPIMN TWMOeV—IE—D [NoaASVcTX3Ael]V-ER=klVTOeNERT—M~OMOAONF rNM~=Q2TeOr—IUF~= N~DOINM—J= D2MCO NNOO N A T r— = <U000 NO2 MITZNv Oe Ul 9742 OVOO—MY WNCTOi—Du b% NOCUAP O~MNFO OC\WTrJ~F 0+<r—MC—2NU0~rOFMv—"FOVONT— rOu—N —rOM2~ OOrO—V O0 —MPNO OO O CLOPSL,CARR.S TOND 1 (LOKX Rev 13,00, Clock rate (ross Reterence Listing = Field Names and Defined Values WX NELO CLOPT, LCBR_STGND 16:30:35 ~O T T MU 5 ON—T N (MT068,M(X -MONe b 15 16:30:35 28-NOV-83 CLOKXX Rev 13,00, (lock rate = 160ns Cross Reference Listing = Field Names and Detined Values MICROZ (M1098.MCx ~ 17o32 MO Page 1215 — NNy VO DoN — OTO MOWVNONRVOMN WNO TIR-NIOTORO ONWN DO Ty ee te b (MT098,MCX MICROZ 1M(01) 28-NOV~83 16:30:38 E 15 CLOKX Rev 13.00, Clock rate (ross Reference Listing = Field Names and Defined Values Page 1216 160ns XTND pat =} pae Da3 DTYPE 1 =< SaL SQL.D_WX SQOR SAR.D_wWX SCL.D_wX SQR.D_wX BYTE 2888 & —O W ON 5726 ATS<OU—=2MwNWO—e=FP rUCWOMA—DY 11555 46286 46226 5749 11644 22531 ~NUM T0T T NST AO N SeTMNTOPS v OWNAINDON ONOMO TDO IND OM I M MMM~ MO— N~—( IOOUC—OeP NOP Q_D_wx OCNMOPS TOMN-NAWMVIMMeN=—M INUODNGO 0Ve wX 14076 22541 14097 24307 15000 24515 37685 46212 46230 46246 46276 OMDMVIONN rT=ONU~rNI—T T~WI=OUOI- OTU—M~ON [oaVESXL4dkIN8a OTMO 15836 15841 46482 46572 46579 46586 . O e NICIO I INT TOT-3 M-I ITRNORDO OO — UM INOROY MITIONMN= OOO~AIMNO UMM OO— UMV — NN ON =T OO e r—rm e IOV T T ~T ~T M-TNDOOOOOC— v r—r— UM 3 C-3 -2 — — 00O r=MNONO O OUMN OO—NMNO M IO OOO—NAIIMMITNOR B3 ow a Page 1217 F 15 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 C(ross Reference Listing ~ Field Names and Defined Values M0 MICRO2 (MT098.MCX . (MT098.MCX 1M(01) — MO MO M OO MULM O S ’ 615 CLOKX Rev 13.00, Clock rate 28-NOV~-83 16:30:35 Cross Reference Listing ~ Field Names and Defined Values MICRO2 x LONG =-~V 2 CONO AN . ~7 TMM WONOIeTWO—M~TOM~ ASNPTN OWNI~ 1 Page 1218 160ns OrMANM0I—NReCNOVUOMN Page 1219 3 s - (] ~ > L H 15 (= pr R4 4 w oz p] [%2) ! LU " A . o ) [+4 = no - q - 3 o ’ O ) — ~— g . & TRV Tax @ I T T OO OO NIMIPIMMMM S T T F TSI O~~~ 7 O [Tt ki aV T VT g V] g ] M Ruv (=} [=— (MT098.MCX JSR 115 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Field Names and Defined Values MICROZ M(01) 28-NOV-83 16:30:35 160ns NOP 9415 T OIS AUN O O = UMMMAT I 2NN O OO OO0 — — NN JZ NU O 0 0N O O v NUM o NN OO ORI OO r= = e e = e e e e e e e PO NIO N OO NN OO OOV DI NYMINY NOP PUSY Page 1220f ~—eoo - @ - -— [-eRP- > @ 11 — LY -— OO B Xe ~T— Y- - ead LT — M— 3* > [= | =4 > ~ () -t o [*} =4 -o -2 160ns TNAMIN-T OT T O = TMMMMMINMNI T T T ST [+ 4@ Lar< Mo o~ -~ » OL. —— (= = —_ (=] o © = = > L1T FPAWALT LITRL MT3M~M MONUIMKF MT<NPR3~INMY STMPMIMMIMSE (=4 N—OTINAO—VNMDI DONMOROOOTIOMOVOWMARARMOAO—OIOOM0 6 ~PAOVPUNVO Page 1221 o~ e O~ [ — Bad (aVEZ] )~ oo P M - poke) < = Lal-'} LAl [= -T Clock rate M OOUZT—NADMO <~UOD—Pv=C3TO TO=NMvN~0 Page 122¢- 160ns ON O O VOO —NIMON. TR TNO ON—DTOT MAIA (0UOTrNM—0OIT [U w CLOKX Rev 13.00, = @ © > T —_— =} Qo »n [=Y Q -— —| OANO NN ~FNUMMIST = =1 DO )- —=][ M2 ’ CMT098,.MCX C— ' = [==] [ (MT098.MCX LITRL NURMAL M0 P = (AT DO = N ~F O M AT INM OO —M IO OOV — — UM T DR DNDD—ON — OC VDM O RO LONLIT L 15 16:30:35 CLOKX kev 13.00, Clock rate 28-NOV=~83 Cross Reference Listing - Field Names and Defined Vulues MICRO?Z 160ns Page 1223| i . ’ (MT098,MCX M 15 S 16:30:35 CLOKX Rev 13.00, Clock rate 28-NOV-83 (ross Reference Listing - Field Names and Defined Values MICROZ 1M01) oo\ A S O B N Al ["ak¥e NolValioolValva N OO O OO OO A N AN NN OO — — — e v — = — NN NN AL O NINIOC NuNUA N OSN PIN NI I L O 7958 8075 160ns Page 12243 {MT098.MCX N 15 28-NOV=-83 16:30:35 CLOKX Rev 13.00, Clock rate = 160ns (ross Reference Listing - Field Names and Defined Values MICRO2 1MC01) 4071 4197 5066 3 67 04 ; Page 1225 ongNOM—0OCIOVMNCROMWNOTOOTOVOGPNYR-3eOGNPODL— {ross Reference Listing = Field Names and Defined Values N NABN N — = NN O 3O WONO VN OO N NN DY O N NO 5 I, Lk 4 = o) NIV O e PN TPV N M MO IO N e 20— XA NN~ OVOOONINRPNOOT 1T T W T M WVMT T TT OBTOOT LT<2 —TOrT- FFTWM AT2IVPRA PNTn Sr ZPNanOwNMrTeN WAOO~UePI(3NT TN&P vTPPe e DD~UOAALxPNTe— eDOVNPVAUR INNrO2 FOVPNNUNFUM =IeO® M0O,0OORFO BW3OAnSFOO20T Wm®OS aT=) OTSNL—uAINLGCyVUel0N MO—FvPVNoIATMyOCARMD SoNGLT Page 1276 160ns (lock rate B 16 CLOKX Rey 13.00, 16:30:35 28=NOV=83 TMOD MICRC? MR MO . MCx (MTI98 MI(RO2 28-NOV~83 16:30:35 ¢ 16 (LOKX_ Rey 13,00, (ross Reference Listing = Field Names andg Detfined Values [ WO TOM— ONN IO DROOVN T ORMA ~R CONNOT— OOIM. DN O OO w - NN OO NOMOWA WO O 00 O OV 0T O Mg e T - — =2 MSR( M(D1) (lock rate 160ns Page 1227 CMTE98 MOX FEDUOFFSET MA D 16 CLOKX Rev 13.00, {ross Reference Listing = Field Names and Defined Values MICROZ TM(01) 3 TMOINIMNOASN 28=-NOV-83 16:30:35 rRM7DO—NV rO~v—V0 O[NaUNOC]R Page 1228 Clock rate = 160ns NO0INTOOOFO—ANIONIMONUOIMI0N~N—OORONMTOrI—OMOUMO~—OW~NOMMOrMe fs o3 24 AO~MN857UF3—16v09LY0AMV8O024.0151 TWMOJN—rDMYWRNICN—A M—N-AOQMAIO0NO~V OO v r— r— = e e e e (NSO OO N U N UMYMNP NIV MY Z E 16 Mo 28-NOV~B83 16:30:35 CLOKX Rev 13.00, Cross Retference Listing ~ Field Names and Defined Values MICRO2 (MT098.MC(X Clock rate = Page 1229 160ns M— 3 — NINOCOOM OO NI O NP OO DYPIM OO O DN WL IS WA YD N v e= MU OGN I O PMIT T T T T AT T T T T T T T T T T~ UMMM OO MM S 3 I M DUMINGST ST R =P T NSO(MOO0MNIe NeNONMPOITOMNDOMOWNOWNIND. iv TNOMU~TMNOM RONN TATNUOUOUNIMr— 1= O . a et UTOMMO0 “a12=l oX= HE ADKHS HNUM_WBUS 37098 LUHE 38389 Cew e enw e e —— e 37114 38404 32119 38433 37129 38443 37135 38472 + o— - o o i) -~ Ow C- o~ @ — o wn Qs MY O «w (MTO9B,MCX L] LalTMTM - L1 Lehel MmZ P NaXd > a F 16 o [~ k=4 CLOXX Rev 13.00, Clock rate [=Y a -~ — < o © > m -— 3 QL [ 160ns Page 1230- Ll LaX-T} wy —_— Eo —~O MMNMMMNMT TMZ ONNNAMMO N o= = r = e NNV UM MMM MM < OO e - (I FAMMMT T TMIT T~ MOUNIN OIM O O 1= - — = — = v — — NN O NSCUN MBI T T O r—e — N\ 0OMODNT2W—&VeUIONAI~MO poy VNN OO O e NOMN N — OMZ N 2 O N - NN NN 0O — M3 SON O NIMIWNIN OO OI VDO — M T ONONI UOUMN MM P N N A O O e e Oy 2 ONv =eNNIMv e2 eNN e eDOUGN NN OO O~T T— NIONN ~2 ~F T eO —OMUPNNI 8MIPIM MIFAMI NN OO O~ — IO IMIU OMA O —— NN NN OO ~—M 3 AN — MUV ONIN O OOV N OO o~ alial' £ - | oo 31 Mu — LM -J o— [ L~ OW C— —~ [+ w ~g .MU X (MT098 ’ (=] Page 1231 160ns 6 16 CLOKX Rev 13.00, Clock rate L-d [= hel o L ~— (=4 -] © > e =] L wn a > 3~ oo > - LY oo g5 Yol 5 9 8 09 [— [=] -+ -~ - 1= o v = [ Clock rate 160ns Page 1232 3 @ wn YON ODW0NUOMT—NTA7AT0 ANOTN.N—~ONOMCOBN ' ©TTAONPTNCMOONPMOUM=NPOMNDGSOTWMNNONONIMOUV—CMO=r=0N—OU—rMI—7P=M@OIPNPAMN otLolo ootOtVTNTVTVToVVT R R 1 4 CLOKX Rev 13.00, AON—ROV [ N A R e R T AV AVT ST VT VN ol ol s Lalal g} 3 0 3 AN = AN NON OM OOMO 4 -T A O OO NIMO Mt 2 N —MMe NNV TEMPS 66 [= TOV-OUMPMY— Qe WO — (-] 0 [ CUOUOICUM MM IV MY M N MLA O = OO NN U OO MYA2 U O O O M I N A P SO 0 v o v r— — O NN OO MM MY Y TEMP4 TN TOV N — NV OO~ NIONOIMS DOW~—NOIC =O—MN—t -4-y b~ oo ~—~ MO (>4 -4 C- =o o~ {MT098.MC(X ¢ O—_—«~ . 3 (MTO98 . M(X 116 28-NOV-83 16:30:35 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Field Names and Defined Values MICROZ TM(01) 46155 47393 47411 47422 47749 2 3 0 1 1 Ié P 3 1 4 8 8 7 2 4 2 3 0 TEMPY 9 del Ner—r—y NONO IO NP— Nr——y nNr——rg N -0—_—yr ON—DC MAIONSPTYV [XaogVI4a1bVtlIA,XNTIMONATIN=OiO]lN 4 X o } t a l o l s l L A Y V e [e O~AN NSO O OT\IONATTU0OOt~CSUTMIMAINUYMANITMPIM—Y= O M ABWOM0L0AO 0WML OOS2 VO = Lada® 47835 ONI aoLlt=a NO—M N e ONCON TEMPS yA 47788 47851 NyU N O OV 608 TEMPY 47780 TOIMNOM 7 TEMP6 47757 Page 1233 160ns wB_RBSP whhi XB.PC_PC+1 3 JX p.oal Meon 28~-NOV-83 16:30:35 J 16 CLOKX Rev 13.00, (ross Reference Listing - Field Names and Detfined Values OMNY T~MON—IS 3T<OUOCUOUMIMIMIMIPN O"MONM Page 1234 Clock rate = 160ns 14857 14872 16915 16978 OOO O—P V D O TONT~OTNT3ITMSTI3 MINTe MOMMN ONOOVV—N=N N WBUS RNUM MICROZ 15502 15508 NMOM oVl g atart ol andaVIaVIaVI NON ONITIANO Oo) VOIPVMNVoUaVMIa e-30OSV[NVPl (MTQ98 ,MCX 15525 15530 15535 W=ON T—MeO ON— We—A=NOPNG IOu—NNCOvNuMYIGe8—NTOWNOIOCO OUONSRIT 15541 24485 £E 1M MNe— OOMNOITOMeOANOOOC— N O NIMINAN OO — e~ — UM TN O OO OO~ —M 2 OO0V~ M.ut K 16 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 Cross Reference Listing -~ Field Names and Defined Values MICRO2 71 488 086 779 509 CONe—N OIR=OMOMDN M2~IOT—MZ «OCWN—AOM —~OMTQr\0INO—TMINCONIOM SONTO —OMONMONOANR0UO—MR [I4OTBa0TtNa8V O=T0 TOrU~M=~ T—OAMNONNOOWNCC (MT098.MCX 160ns Page 1235 . e e = (MT098.M(CX 1M01) T Clock rate = 160ns T V MO OMNIO M WNC NI O —INANO N O OONE—OMM WONI— ——OMDO—INAITOVOM £ @x L 16 CLOKX Rev 13,00, 28~NOV-83 16:30:35 Cross Reference Listing - Field Names and Defined Values MICROZ DDV — o Page 1236: F28 b 8-30 b 28 2 3 3 b b 28 - 3h -8 3 - - k20 3 2 2 o 28 - 2 - o - o - o 0 - o - 2 3 op 8 - 2 S 2P —_— — UL OO DL OLUL ULDOUL DLUOUL VLUL UOUVLWOL OLOL VLUDLLDLDUULLDULDLVLLDULOLOODLLLDLOLUODUO . . M(X (MT098 MI1CRO2 M0 28-nOV~83 16:30:35 1 CLOKX Rev 13.00, Clock rate (ross Reference Listing = field Names and Defined Values Page 1237: 160ns 29831 (=] O 22222?2222222222222222333333333333333333333333333333333 4|36046893826050568257802589261678905?013578]23[47803578“1 T OONT MM — MMM OO QOO N 249 (MT098.MCX ¢ 1 CLOKX Rev 13.00, Clock rate 28=NOV-83 16:30:35 M) Cross Reference Listing - Fie Ld Names and Defined Values MICROZ 160ns Page 1238| MR OO0 COO e — e NIOINIST T OON P 3 2 O Fe-O O~ oS O PN O0OOOCIN O 2 P OO = O — UV O R.Q R—OMIOAINIOWQNI~CON. . MN T ~TNO QOO —MMM 0000 ANMNN W OOOVAUONOONO o U OUOU O OO O OO O IO NI NSO IO UM M M MY MM 552419137069316139193?0724069366182981492-\.71359Iu.69115729 9344238695506?86577294992058404039?74539 L = O v v~ N MM OOWNINOUR-.3 1122af_22222222?./._a.:.a./._q./._22223333333333333333344444444444444 Ny 18 ?8000233334455677?8899901!123344566678999000122234455566 9 49 2 5 5 0 ) 1 Page 1239 160ns 1 D CLOKX Rev 13.00, Clock rate 28-=NOV-83 16:30:35 MOon (ross Reference Listing - Fie ld Names and Defined Values MICROZ (MTO98.MCX o 13460 — 16654 - OO OO O v r— r— r— r— = r— o= v —r—v—\J NEXT (=g oy 1.8 Page 1240 160ns IO — 0\ O OO = [7a) AW OO ~F O T T WNNINO kM, S ~— 0 M o UM O— 0 NONIT ANMM N TT ¥w U 1 CLOKX Rev 13.00, Clock rate Field Names and Defined Values [>o] [la) OO0 — M ONO OO MO C OO0 xM.Q XM.R L2 = w3 :2 —.o~ O -— ) L. — [ = — [==1 o [=e] = (= > i : — i 16849 27062 27067 31673 57¢ 14 r —ITOMNOO ONAOSAUN NOOMOT—M CUNINIM NN OO — rr—OMBODNOO T T OMNDRO =M CONMOAOMNCIN 5656 M PN OO IO 00 ~T SO DO SO ON 0T OM T T VO MU NI T - 6274 # 4 6 6 v, — N OO INIMZ OO O OO O r—— — NN T J NN PR — P OM I T T P T O — O MO = MO OO T O ONR N DD ~5 - —guOLY-Tw LIE < X >x 10 <nNE —_—n— —~ u@ @IwOaL T2 SLuECIOONOIIXITONWLIKLN—IWZZ s< LA AL A MDA AN AN DU NRINDIEUIANLIY. iy NT VM-I AN M OMMIr— — Oy T O—VIO (N OOT O T~ MO N O VONOONOOTAMOO—INNOOM 7126 O=~0 NX[a¥~F1 O 1 F 5821 # (ol —— . o][Yal’al . M Page 1241 160ns CLOKX Rev 13.00, Clock rate 16:30:35 (ross Reference Listing - Fie Ld Names and Defined Values 28-NOV-83 1M(01) MI1CRO2 CMT098.MCX frm s e 6 BO.IRD1_SUB 5477 5482 # BO.R-H_WARMTMCHECK 5393 5406 i 5396 " 5321 # 5389 BO.READ_RESTART ROUTINE 5772 BO.RESTART_SEARCH1 BO.RESTART_SEARCHZ BO.START_SEARCH BO.TEST_ACLO BU. TRANSFER_ROMS BO.WRITE_UBA MAP BO.WRITE_WALKO BO.WRITE_WALK] BO.WRITF_ZERO CH. CHME CH. CHMK CH.CHMS CH.CHMU CH.CHMX.10 20 CH.CHMX. CH.C. X.30 CH.Chm A.IOO CH, CHMX .45 CH.CHMX.50 C1.PATCH.RET {M-SF1.ILEAR (M-TEST.OSR (M=TEST.OSR, CONT (M-TEST.0OSR? CM.ADC-MEM (M.ADC-REG CM.ADD-MEM (M.ADD-REG CM.ASH CM_ASH=CHECKC CKV CM,ASH=CHE (M, ASH=CHFCKV.=1 (M.ASH-CHECKV. (M, ASH-NEG CM.ASH=SET( CM.ASH-STNEG CM,ASH-TESTC CM,ASH,1 (M, ASHC (M. ASHC-NEG CM.ASHC-POS CM_ASHC-STNEG (M. ASHC-TEST( (M.ASHC-TESTV (M_ASL -MEM M, ASL-REG 5399 5373 5556 5699 5528 5337 5669 5622 4 # # # 5582 5593 5684 # 36369 36376 36383 36390 36369 36376 36383 36390 36369 36376 36383 36390 s 36280 N 5576 5560 5553 5566 36230 # 3636 36225 & 3637 / 36235 # 3638 36239 & 3639 3623 36233 3626 36228 36259 36272 36316 36332 21678 42501 38616 42707 462695 41497 61478 41850 5596 3626 3627 3632 3633 2169 # 4339 3862 4270 4270 & 4327 & 4327 # 4327 4 36242 # W [ 63394 4 42428 " # 4328 # 4146 4133 # 4132 4134 4136 # 4138 # 4133 41375 # 4146 4131 41306 41398 # 4329 4144 41420 41414 4143 L1415 K 4142 L1455 41435 4144 41274 & 4329 61265 & 4329 43273 36369 36376 36383 36390 36369 36376 36383 36390 36284 36291 # 43395 42645 43395 43397 42092 4 43397 43398 43398 36246 4 43276 43276 63272 43275 43275 43284 43285 43285 43287 43287 43288 43288 43291 43291 43293 43293 43294 43294 43300 43300 43279 43278 L1856 & 4327 41295 41357 41316 41308 41342 41329 41364 41325 Clock rate = 160ns 5628 " NONON N —= OO WD _HALT 5579 5415 # 5409 6248 5696 # 5710 4 5716 3346 5682 O W NIWNNO O NO = £ 00 OMNIIAN = OIS BO.RESTART 5787 # 5824 5569 N BO.READ_SUB 5728 # 5564 43282 43281 43282 43281 " L) # " y 43290 ) = BO.READ_RPB_HEADER # (= BO.POWER_UP BO.R~B_WARM_CHECK BO.RESTARY 1 CLOKX Rev 13.00, MICROZ2 1MIOD) 28-NOV=-83 16:30:35 Cross Reference Listing = Field Names and Definad Values CMT098.MCX " 43257 43296 43299 43299 Page 1242 H 1 CLOKX Rev 13.00, Clock rate 16:30:35 1Mo MICROZ Defined Values and Names Cross Reference Listing = Fie Ld . 28-NOV-83 . 8 . .MCX CMTO9 M M MMYM M M M — - M OO M—_— n | 1 MOOO— NN T T T T LT AT TNTN MPMMMMMPMIMNN NN T TN T T T TN ........... M M M M (M Page 1243 160ns M =2 = MM o~ T M ~F~T T ~¥~2 Fr~cO OO =T~ ~T N MM OOMO I~ £ ~O-OM OO - ad — RIRVUYPTV UMM MMM 1 CLOKX Rev 13.00, Clock rate = 160ns 28~ 28-NOV-83 . 16:30:35 (ross Reference Listing - Field Names an d Detfined Values . L3 w —ruMn NN . LS ~ v QUL OUw luv/filfi/uvlwIN444444444&444‘4444444‘4444‘44444‘414‘4444‘44444‘44 OMNY OVOMMT OO D2 ORON UM~ OO—OC OOM NINI— NNOO —ONNOF C T S RN N £ R 4 TN T T T T T T T T ~ T AT T TN T T T T T T T Ll ~ o~ 1 ] 1M(01) MICRO? CMTO98.MCX R ; : CMT098.MCX (M.0S.RED=REGP( CM.0S.WRT 42740 42812 4 42888 43034 43038 CM.0S.WRT-0DD. CHECKZ2 43063 4114 4 CM.0S.WRT-0DD. CHECK4 CM.,OSR~GET.IND. CM.OSR-GET.IND.?2 CM.OSR-GET IND.3 43069 42764 42785 42804 43137 4 42913 42935 42955 CM.OSR=-1D.DEC.PC (M.0SR-MOD,END CM.OSR-RED.END CM.OSR=WRT.END 43182 43232 43227 43037 CM.CS.WRT-0DD.CHE(KIA CM.0S.WRY=0DD.CHECK2A (M, 0S.WRI-0DD.CHECKS CM.OSR=-GET.!ND,TST C(M.OSR.IND-TEST,FLAG CM,ROL=-MEM (M.ROL=PC CM.ROL-REC CM.ROL-TEST CM.ROR~MEM 43080 63063 43098 43084 43118 43048 43145 # 43155 # 43150 # 43088 43125 # 13128 ¥ 41639 # 43982 43982 # ¥ 4 # 41610 # 41597 # 41716 # L1719 41693 41679 41724 &4 41706 # 41686 # 43199 42640 # 43987 CM.RTS=REST.REG 42435 62626 1 43990 42443 L2632 & 42716 CM.RTT 42641 # 43993 (M, SBC-REG 41517 # 43996 43985 43984 43991 43991 43993 43994 43904 42445 44000 426475 & 64002 46002 64003 43996 43462 43474 43483 43493 43517 43999 43999 ] ; E ; : i 44006 44006 44018 44027 64021 46024 464024 44017 44020 44020 44023 44023 44026 41759 « L1773 4 41772 44018 | 41713 44005 44027 41750 L1763 43477 43487 43505 : l 44005 44017 (M, SWAR-RUN (M, SWAB~SET, (C 43468 | 44003 44014 44015 43465 43476 43486 43502 44027 43211 4 44000 44012 4401 41779 # 43465 43476 43486 43502 44027 ) 44012 44011 44009 44008 1767 41558 # 44026 41700 43990 43997 217640 & 44014 43473 43482 43492 43514 43462 43474 43483 43493 43517 43977 43988 (M, SWAB-P( (M, SXT 41673 41536 # 43997 61753 # 44015 43209 43988 41882 # 44009 41888 # 44008 (M, SWAB=REG 43204 43987 (M, 5UB-MEM CM,SUB-REG (M.SWAB-MEM 43473 43482 43492 43514 43459 43981 L1653 # 41669 L1661 & 43985 41681 # 43984 42664 # 42674 w2649 # 42720 (M. S0B ! 43163 # 43977 41606 CM.RTI=TEST,PC CM.RTI.CONTINUE CM,.SBC=MEM 43159 43056 43974 43192 43169 L1617 # 43975 L164R CM.RTS.CONTINUE 437153 41585 # 43974 43188 43249 43240 43259 CM.ROR-WR]TE CM.RTS 43106 # 43148 43101 # 63223 # 43978 43978 43186 641676 # 43981 CM.RTI 43059 43471 43480 43490 43511 43216 43975 43178 CM.ROR-REG (M.RORB=-MEM CM.ROSB-FEG 43471 43480 43490 43511 43175 4 43195 & 41698 CM,ROR=REG.RESULT (M.ROR-REG.TEST( 43470 43479 43489 43508 43459 43604 43076 L3094 CM.ROR=-PC . RESUL T CM.ROR-PC.WRITF Page 1245| CLOKX Rev 13.00, Clock rate = 160ns 43404 43407 43020 # 43401 43470 43479 43489 43508 CM.0S.WRT=0DD. CHECK i 1 (ross Reference Listing ~ Field Names and Defined Values LIL6B 43477 43487 43505 (M.0S . WRT~ADEC.PC CM.0S.WRT-AUTO,DE( CM,0S.WRT~]MED | 28-NOV-83 16:30:35 MICROZ TM(O1) J 44027 : : CMT098.MCX CM.TEST,PC [ , 28-NOV-83 10:30:3 5 41614 41529 42439 42398 41070 41032 41152 # 44043 41133 & 44042 CM.XOR~WRITEN CN.ADJUST,CHAR 42207 # 42226 8048 # 8041 CM.XOR CM.XOR=WRITE 42186 # 44048 42202 ¥ 44048 8060 # 7349 7478 # (N.BOOT.DEV CN.BOOT.DEV.B CN.BOOT.DEV.C CN.BOOT.DE..D 6474 /059 7071 7083 6496 7068 7080 7092 (N.BOOT.WITH,DEV CN.CHECK.DONE CNLCHKSUM, CHK CN.CLEAR.RALT 7014 8020 8063 6962 # 7019 # 8028 # 8080 (N.CLEAR.TEMPS.10 CNLCNTRLLPLHALT 8164 6125 # 8171 # CN.DEPOSIT.GPR 6880 6920 # (N.DEPOS]T,SI7F IN.D0.BOO! (N. DO, COMMAND (N.DO.CONTINUE (N.DO.DEPOSIT (N.DO.EXAMINE 6896 6675 6483 6662 6653 6648 6898 7011 6645 6667 6855 6741 CN.APT,INT (N.B.SWITCH (N.BOOT.CHK,DEV CN.BOOT.CHK.DEV.10 tN.BOOT.DEV.TYPE,OK CN.CLEAR . TEMPS (N.CONSOLE (N,DEPOSIT.PHY UN.DEPOSIT,.PSL (N.DO.START (N.DO.X (N.t.GPR rNGE. GPR IPR (N.E.IP (N.E. OR D.STAR CN.E.PSL CNLEMPTY ,BUF CN.ERROR 7029 & 7G53 7066 5171 5366 6872 6682 6671 6685 6761 6809 & 6765 7726 6679 7695 (037 CNL.EXAMINE CN.EXAMINE 10 CN.G.SWITCH (N.GET.BOOT.DEV 6753 6272 7334 CN.GET.BOOT.DEV.20 6587 N.GE~.BOOT.DEV.0S CN.GET.B00T.DEV.10 (N.GET,.BOOT.DEV.25 {N.GET.(HAR (N.GET.CHAR.NOLECHO CN.GET.NEXT 6503 44042 42626 42451 4404? 4404 7090 7102 42465 41181 44043 C(M.TEST,.PC.ODD (M. TST-MEM CM.TST-REG 41728 44048 44048 44049 44049 Page 1246! CLOKX( Rev 13.00, Clock rate = 160ns MICRO2 TM(OM) Cross Reference Listing - Field Names and Defined Values 41490 | K 1 41787 41807 41826 41869 41901 44051 44051 44051 44051 44052 44052 44052 44052 42676 # 42667 42680 # 44046 44045 44049 44049 42217 42259 42324 7042 7039 ¥ 7078 # # # # 7104 # 80es5 # 6270 8161 # 8178 5385 5403 5472 5504 5535 20969 # 6876 6929 # 6893 # 8164 # 35670 36184 # # # # 4 6949 # 6954 # 7.58 # 7138 7095 7170 7235 6578 # 6608 6621 6798 # 36174 6620 # 7731 # 6834 # 7708 # 6767 # 6776 # 7435 4 37672 6605 #» ! i 6604 6615 # ‘ 6261 645¢ 6583 # 6592 7162 7220 ) 6610 » 7846 8011 # 8006 » 6581 7306 7607 7844 4 CN.GET.NUMBER.END CN.GET,SWITCH 7630 6491 7378 7550 # 7342 CN.GNC.CRAR.GETS.Q 7521 802¢ # Cao1om AQRT CN.H.SWITCH CN.H.SWITCH,10 CN.1.SWITCH CN.IS.CHAR,READY CN.IS.IT.LOWER.CASE (N.L.SWITCH CN.NEW,.LINE CN.P.SWITCH CN.PARSE .ADDRESS CN,PARSE . COMMAND &4 7779 # 7553 7605 #7621 7679 7304 # 7683 7692 # 7543 7548 7482 7573 7456 7545 # 7769 7526 8014 8058 7365 6258 # 8016 # 8065 ¥ 7523 # 6265 6499 7380 4505 6433 7318 62°7 CN.PARSE .NUMBER (N.PARSE .RECURSE 6510 # 6461 # 6531 6520 CN.PARSE .RUBOUT. SPACE CN.PARSE . SWITCHES CN.PROMPT 6517 6467 6219 # 6525 6489 6428 6538 # 6545 82C2 3565 F ¥ # 6985 6967 # 8128 7737 CN.TD,IS.IT.READY 6554 6978 6952 (N.RESTORE, TEMP?7 (N.RUB.STAR 6178 8052 7944 7975 7955 7659 7664 7671 7706 7741 7757 7433 7438 76454 7459 7476 7499 7504 6405 6419 6454 & 7445 6487 7295 8104 7405 7610 7578 7595 6293 6307 6321 6335 6349 6363 63N 6317 6331 6345 6359 6373 6387 6548 7561 6657 6904 6911 6918 6926 6936 8136 8141 4 7383 8032 6536 7533 6557 7585 6596 7734 6613 7750 6858 7765 6932 7466 6560 6253 8026 6695 (N, SAVE .PSL (N.STRIP.PAR CN.TD.CHK,READY (N.TD.DEC,STEPC 6528 7511 ‘ 6533 6236 (N.RECE IVE.(HAR CN.RESET.STEP( (N RESTORE .MME CN.RESTORE .P( ¥ # 6303 CN.PARSE .DATA 7652 4 AQM 644 748y 6508 (N.PARSE .GET.DATA E-3 7611 P o 7762 7826 & <o 7681 7624 7632 7661 7673 7690 7759 7743 7807 7820 6552 7784 6542 NO~ 7615 7627 7644 7635 7651 0 7746 7718 7782 7801 6523 7565 6513 oo — CN.GET.NUM.9 CN.GET.NUM, A CN.GET,NUM,BUFO CNL.CoT . NUMF CN.CET . NUM,OVFLW CN.GET.NUM.PLUS CN.GET.NUM,PSL CN.GET . NUM.RO.S CN.GET . NUM,RO.BCD,CHK CN.GET.NUM.RUBQUT (N.GET.NUM,RUBOUT CN.GET.NUMBER [ 7866 76.6 # 7676 T 7874 CN.PROMPT 10 Page 1247| TR CN.GET.NEXT.NOT.RO CN.GET.NIBBLE CN.GET.NUM, 10 CN.PARSE .RUBQUT .DATA | 1 CLOKX Rev 13,00, Clock rate = 160ns 28-NOV~83 16:30:35 MICROZ 1M(01) Defined Values and Names Cross Reference Listing - Field — : CMTO98.MCX L 8038 6705 8132 7738 # # ¥ # ] " ) 6692 8055 7952 4 7980 # 7350 4 35660 7963 7211 7239 : . (MTO9B.MCX Mv CN.TH. XMIT CNLID XMIT CN.TRY.B 7965 # (N.TRY.C 7953 7971 # 6369 6341 6380 6352 # # CN.TRY.CR 6611 6422 4 64625 {N.TRY.CNTRL.P (N.TRY.D (N.TRY.H 6285 6299 6397 6313 §327 6355 6383 6149 CN.TRY, C(N.TRY.N CN.TRY.S CN.TRY T CN.TRY . X (N.TYPE .CHAR 7276 46152 7947 ¥ 8083 6843 6156 CN.TYPE.CHAR.RET CNLIYPELCTRLU CN.TYPE .DATA CN.TYPE .NUMBER CN.TYPE .NUMBER, 10 CN. TYPE .NUMBER.CONVERT (N.TYPE .NUMBER.LOOP CN.TYPE ,PC CN.TYPE .RESULT 7912 7900 7897 4 6130 & 6430 ¥ 6296 631 6408 6324 6338 6346 6394 6160 # # # H # # 6254 7873 47412 6840 7280 729 7893 # 8195 20976 6796 6818 7261 8206 19748 19748 19748 19316 19748 19319 ¥ 19354 19748 19359 19755 19755 19762 19762 7284 46156 8091 4 7281 " 6167 7917 # 7905 # 7925 6437 6791 . (0. AC3=SETCC 19284 19762 19337 19293 19304 19317 19274 # 19338 # 19276 # 19333 » 19275 # 19339 # 19400 19391 1938> 19379 # 19346 # 19343 19299 " 19300 # {0.BB=uri ~ st (0.88-ME' - T 19048 19093 19061 19098 19307 19407 [ 19402 " 19386 ¥ 19765 19768 19378 # 19775 ‘ 19775 19158 19154 - 19083 7920 7941 & 474723 # 7177 7199 7208 7264 7982 7986 8009 8094 19755 19755 19755 1€755 19762 19769 19769 19769 19769 19769 19288 # (0.ACB-TEST,ADD,REG (D.A(B~-TEST ,ADDEND C0.ACB=TEST] C0.A(B=-TEST? CO.A(BB-MEM (0.A(BB-REG {0.ACBL=-MEM C0.ACBL~EG C0.ACBW -MEM (0.A(BW=REG (0.AOB-BRA (0.AOB-MEM C0.AOB=REG, TEST CO0.AOBLEQ (0.A0BLSS (O.RR=FAULT 6974 6225 7861 47398 CN.VIRT.TO.PHY CN.W.SWITCH {N.X.DUMP CN.X.DUMP.1Q CN.X.LOAD (N.X.LOAD.L OUP (N.X.SWITCH (0.ACB=REG CN.V.SWITCH 8046 4 6783 7407 7326 6757 8118 4 7501 # 7357 7196 # 7204 7201 4 7193 7213 4 7184 7217 #7227 7575 4 7373 19327 # 19748 {0.BB=MEM,F IXPC Page 1248 {_OKX Rev 13.00, Clock rate = 160ns 28-NOV-83 16:30 35 MICRO2 1M{01) (ross Reference Listing -~ Field Na mes and Defined Values 19087 19768 19775 19140 # 19071 19100 # 19090 # 19768 19775 19776 19776 19776 19776 19776 7272 8191 19762 19762 1 . N 1 CLOKX Revy 13.00, Clock rate ld Names and Defined Values Fie = Listing Cross Reference MICROZ (MT098,MCX [l 1M(01) 16:30:35 B3 R R MR DOOMNICKONCOA OO OO OO T O NN N R 000NNVR RO R OPR OV NNNINOCO OO OO T . . - < ) ro = AL L X~ QOWECEFEITEX — 28-NOV-83 : 160ns Page 1249| 1 i o0C[YIO) NM~O 0O.G0 | ! o< ” { f :i ! [ i ! | || .i I. ,! | . ! P ' S S S S S S S S S S S |' —Oh S S 5 S S S S S S S 2 —~e S S o -= Mz —_—— 0D OO AN S S S S S S S S 5 So v LalTM (0 (0 [Hs] o 0 4] (R CR CR (R CR (R (R (R (R R (R (R (R )poge =4 D O e PO MO OO OO NGO ST 01— NN CO N © v A GO0 DN M o3 T +— O N DR OO (200 3 N EOD- v a= v ..................................................... (R < © {MT098.M(X f I 3CS1o):xw R . —S 2 — 1 ~ Eo ][~/ o [ C— OL —<« (MTO98,MCX o~ -~o - o I > 2] -— 0 Laal =] Lal w o & CLOKX Rev 13.00, Clock rate 13 M — L ld Names and Defined Values [~ 160ns Page 1251 M o R Twarw 1 1 ~r <L <L —de s o— @M s sl ~ DLV — ¢ Oeli] —e ) MWOO T Tuwxn TR R : TR 1 2 E-3 rRRR P e I, IOT OOA — aaa LLCLL G ¢+ LOO MMMMD | T ) ! | | 2 CLOKX Rev 13.00, Clock rate = 160ns Page 1252 (5.0S.MOVCS,CMPCS, E- XK -3 x> I O 25433 B = NN O N=ONMNVIVIND WA S 25433 25433 8 9 23172 23176 24627 & 39039 8 25447 25447 25447 25447 25454 25454 25454 TM xxrw 23354 Sru=— norororo (NN I~ un ~NSONON T TRrRTRT weo 1% = NIN I~ v nau GO VOO0 O WO OWWNIIW SN0 = DR NIN—= NS00 SN S Ao~ W N = NS NICO SN OO P OO=NWAOO MUNONONLNSNLNLNL PO RO NI NIND ORI RO NINU ATVNNRINLNO L NS5 PR I D NI DN NN £ N NONI £~ S NS un LU AN DA N N N AT N N N N N x 25383 25429 25477 25477 25477 25477 25477 25430 25430 25430 25430 25430 25478 25478 25478 25478 25478 25436 25436 25437 25437 25437 25437 25415 25415 25615 25415 25415 25443 25443 25443 25443 25443 25416 25416 25416 25416 25416 25416 25444 25444 25444 25444 25444 25422 25622 25422 25422 25422 25422 25450 25450 25450 25450 25450 25423 25423 25423 25423 25423 25423 25451 25451 25451 25451 25451 Vo ~oro oo I O A= N 25430 LN 25429 TR 25429 SIS S 25429 X 24869 T O NIV~ 24576 23563 25437 wr O WNWNNI O OO —Nuwe o O SWOo-ON —_m It N RN NS £ RELCLELELELETNT,E r T 5 5 OO = =S O NON00 PN S 4 ¥ ¥ R (S.0S.MOVC5.(MPCS 4 " R’ €S.0S.MOV(3.CMPC3.1 4 4 4 4 T £5.0S.MOVC3.CMPC3 PO IS = (NN .MOV.CMP.IN INT MOV.CMP, S NIAVHAC U0 N€D = v LMATCHC,1 OO £ MATCHC DO LLOCC,SKPC.1 n Q wrn OO ZTITXTTZT C S.MTC.FOB C +MTC,FOB.PRE TC.R2_0.IRM C TC.VA C TC.WR C ¢ TUC.END VT, FINISH ( .LOC C C .LOCC.SKP( NN S I S ~Jvau SO D PO DS NN 00 NENOVOO OO OMNINPNNO ON NN =S OO WO — O NN NON NN =N = NNV O NP NINVIWNIND 00 DS O~ N0 CS.MOVTC.TUC.TMP10-0 NN LA NP WA N N CS.MOVTIC.TUC.FIN NI AU N (S.MOVT,R5.GETS,.VA CS.MOVTC.TUC.BACK e (228 o OO VINO rS.MOVT.DEC.PC CS.MOVT.DEC.VA T ak 2k b CS.MOV,VA.END.IN.OO S S .MOV,UNPACK.1 S MOV, UNPACK.3 S MOV, UNPACK. 4 LIV LI LE LN LS LS .MOV,.BUT.FLAG1 S .MOV.PACK S MOV, PACK.1 S .MOV.PACK.2 S MOV, PACK.BEGIN S .MOV.R4.GETS.0 S .MOV.R5.GETS.0 S .MOV.UNPACK [ S.MAT.UNP,1 S.MAT.UNP,L.S S.MATCHC.PACK HC . UNPACK S.MATC S.MDR.MASK.SCAN g.MDR.MASK.SPAN NI . S.MAT.TMPS -1 S.MAT,TMP5. 24504 K 245 RS NI NN RJNU NI NI NI NI RJAIN NI NONINLNI NI N MURURINLRUARLRLNINL NN PUNU N NI RN APV NI RPNV NL NN PRIMUNDAL IS WIS DSOS S NP0 & 0 Snern PO S S S. D Cross Reference Listing - Field Names and Defined Values L ) ; MICROZ 1MCO1) CMT098.MCX ocOoO0O0 ; 28-NOV-83 16:30:35 25436 25436 25636 25464 25464 25464 25464 25470 25470 25470 25470 25470 25484 25484 25484 25484 25484 25471 25471 25471 25471 25471 25485 25485 25485 25485 25485 25467 25467 25481 25481 25481 25481 36 26741 26755 & B84 26888 26896 b 26746 26806 # 33261 33261 33261 33330 33330 33330 33330 33330 v _” 25467 T T_Twx 24259 24213 # — D S = I — N — ORI =S AN SONMANNG S —_ 25386 # 22743 # WO T R T v 25464 25392 # OO w ~no T 25458 OPONOWN SPL DS.ADDP4.SUB, DS.ADDP4 WRITE DS.ADDP6 25458 (59 - StV DS.ADDP4.SRC2 DS.ADDP4.SRCZSIGN DS.ADDP4,SUB 25463 winorong ANONONO- JUNP.TMP10.1S.NEG .ADDP4 .ADDP4 ,ADD .ADDP4 .ADD, SPL . FLAGS +ADDP4 .ADDP4 FLAGS.SIGN . 0P( .ADDP4 .ADDP4 .OPCODE .ADDP4 .REE .ADDP4 .REWR .ADDP4 SRCY SRCISGN .AD. DP4 25463 25289 rxrunxr . MOV .UNP <UNP_MOV.1 LUNP MOV, MT( 25463 ZTrrrr LUNP,CMP, (551 .UNP,GET.R3 25463 24248 # xR .SCSP.SPL .SK LSKLEXIT .SRCADD.VS.PESTADD 25463 25471 25470 W= NOOON NN O. .SCSP.RINC 25457 22770 4 NN O =N —b N NICO — N O NN .SCSP .SCSPLEXIT 25457 22586 22722 RYLSLVIV LRIV, Te Yo 150 1oN][a¥] R1.GETS.P( .R1.GETS.PC.SCAN .R2.GETS.DELPC.R2 .SC.SPAN,PA(K .SC.SPAN,PA(K.BEG! .SC.SPAN.UNPACK 25457 25458 25457 25458 L NI = O Te ]QO = OHA NN OO OO O(¢ To Ve Tante.lo ONCOC0 =2 \INY =2 O - O OO ON = = IV PO NOO NI OO .RO.D.GETS.RB+1.5C.SP .RO.GETS.R0+10 25457 25458 25457 25458 LNRUNURINUNI MDAO RO NO NI AL RO RL NI ALNLNJNVNUNINJ NV RN ML P NINL DAY RS ST ULWSO T,N S LS E TN L (VAR ol1,6 1o8 s 1o b V] NS DD NNV SN N0 INOCOCOCCONO OO OOOO PCK,MOV.1 .RU~1.FOR T .PLK. MOV T PC.GETS.PC~1.SCAN PC.GETS.R1 R .0S.SCSP.BEG N = ~ION NOOCO000 = DN N €0=N > —=O - 1OV O =N DSBS NS O AL NN £~ = 00 O 0O £ (N0 W — B B NCOWWN) S N AN O N 00 O NINOMNN O NONO SO OO0 NOD PO YNWODO === UNNOH B2 OWSs = .0S.SCANC.SPANC — N WO S = O OONI NI NN~ O RO NOVN OO S (A NN A O I N .0S.SCANC. SPANC.? .0OS.R3.VA.GET.TMP2 OO RO OONONO 2 NON NN O OO ON O .0S.MOVTC.TUC.CONT Page 1253 (LOKX Rev 13.00, Clock rate = 160ns Cross Reference Listing -~ Field Names and Defined Values AURLAINLRLAINALRLAINL RN RLNURIRL NI A PLRININININI PININ NI PINU NI NI NNT PLSTNLETLNLET, NI ST N L ST S Ta ST ST O TN N I S Ia N LA S 1a S ] O‘O\S\J\J\J\J\\nml\ml\J\Y\Jf\JU'!\II‘ONJ-\&‘Lfll\wi\bkfll\'\)mf\lm’\"\)f\)mf\)ml\)m w [an] wonw Il e .0S.MOVTC,MOVTUC.1 28-NOV=-83 16:30:35 MICROZ 1M(01) {S.0S.MOVTC.MOVTUC w H CMT098.MCX COTOOUTCUOTOMNTAMAOMMOM DM OIMIONE, YOI wmmmmmmmmwmmmmwwmmmmmwwmwmumwmmmmmmmmm ; o E 2 27337 33261 | o P TR IR 3 DS.CMPP,SR(?2 DS.CMPP.SRC2.SIGN DS.CMPP,SUB.1 DS.CMPP,.SUB.2 2A DS.CMPP,SUB. DS.CMPP,SUB.3 3A DS.CMPP.SUB, DS.CMPP,SUB.LAS DS.CMPP3 DS.CMPP4 l 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 33262 33345 33262 33345 33262 33345 33262 33345 3333 1 3335 8 26486 26494 4 33268 33269 33268 33269 33208 33269 33268 33269 33268 33269 31738 # 31745 31753 31757 31748 31773 4 ¥ O RRRTEIR 33357 33357 33357 1 8 33331 33358 33331 33358 33282 33282 33282 |91V ] (S0 33262 33345 33357 (¥, 1] 33357 LN 33344 TR 33344 31717 4 26880 31740 32082 32124 26027 # 25855 # O — DS.CMPP,SRC1.SGN 2 33344 wWAINY (W AV P ol DS.CMPP.SRC1. DS.CMPP,SR(1, DS.CMPP.SRCI. A gS .CMPP SR(C1. S.CMPP,SRC1,3A DS.CMPP.SRC1. 2 33344 [V e . DS.ASHP,SOURCEIN CS.CCPCIRDY DS.C(MPP,=0+0 . EXIT DS.CMPP DS.CMPPEXTI DS.CMPP FLAGS DS.CMPP.FLAGS.OK DS.CMPP.REE g 33344 WA DS.ASHP,SIGN.2 3 3 3 3 3 3 T . . DS.ASHP.NIB DS.ASHP.NIB.BIG DS.ASHP.PRE.READ DS.ASHP.REE DS.ASHP,SIGN 3 3 3 3 2 3 3 3 3 TrrrrrRrER DS.ADDP6 . EX] DS.ADDP6.E§§T.2 3 2 3 3 2 2 2 3 3 3 3 ruxrnnnr DS.ADDP6.2 33344 Page 1254 CLOKX Rev 13.00, Clock rate = 160ns Cross Reference Listing = Field Names and Defined Values — ON N =00 = Ny S IO NV S ANNIO- OO N ORI H 28-NOV-83 16:30:35 MICROZ 1M(01) CMT098.MCX NN — : 33282 33282 i i — : : = e e mstma (MT098.MCX —_— MICROZ 1M01) 28-NOV-83 16:30:35 26221 # 26181 26140 # 26131 26148 # 26143 26166 4 26136 26271 & 26322 26250 # 26318 26235 # 26256 26224 26196 # 26177 26300 # 26330 26328 4 26303 DS.CMPP4 REE 26133 # 32100 DS.CMPP4,S?2 2 26193 26198 26291 # 56003 # 33255 33255 39041 # 39117 39123 33351 33255 33351 33255 33290 33255 33255 DS.CMPP4,S3 DS.CMPP4 ,UNEQ.CC2 DS.CMPP4 ,UNEQ, SGN DS.CMPP4 UNEQ, SPL 33351 33351 33283 26118 4 26111 26368 # 26354 26343 # 26338 26346 # 33351 DS.CVILP 29455 # 33290 33290 33290 33290 33290 29595 29600 29605 29613 # DS.CVT, PACK DS.CVTLP.20 DS.CVILP.30 DS.CV'LP.40 DS.CVILP, &5 DS.LVTI#,50 DS.CVILP.70 DS.CYILP.8O 29467 # 29474 29728 # 29723 29698 29476 # 29470 29506 # 29500 29495 29517 # 29508 29522 # 29482 29527 # 29520 29563 # 29556 29609 # 29567 DS. VTIPS AR VI S By, Cht DS VT 29579 29660 29645 29680 DS.CVILP.10 DS.CVILP.100 DS.OyTLP. 81 CSLrVTLe. S DS VTP LHE . « JVFLW S UVMTUPLLONE DS.CVILP.1OOP DS.LVTLP.NON.O.DIGIT US.CVILP.OVELW DS.CVILP.SIGN DS.CVILP.SRCLEN DS.CYTLP.WRI .LVTE DS.CVILP.WRT.DSI DS.CVILE . WNT,LONG DS.CVINP DS.CVINP.SO DS.CVINP.60 DS.CVINP.80 DS.CVINP.90 DS.CVINP,CHK.10 DS.CVINP, CHK.BAD DS.CVINP, CHK. INPUT DS.CVINP.CHK,OVFLW DS.CVINP, CONVERT Page 1255 CLOKX Rev 13.00, Clock rate = 160ns Cross Reference Listing - Field Names and Defined Values DS.CMPP4,34 DS.CMPP4 . ADDG DS.CMPP4,ADDG . 1 DS.CMPP4 . (1 DS.CMPP4LELOP. 1L DS.CMPP4 ELOP, 2L DS.CMPP4 FREE? DS.CMPP4 . L DS.CMPP4 ,LOP DS.CMPP4.LOP. SPL DS.CMPP4 PRELOP G 29585 29590 29617 & 29664 29670 29677 # 29651 29682 # 29686 # 29712 29703 29552 # 29560 29719 # 29752 # 29768 29497 # 29530 29771 # 29550 29546 29582 # 29575 29532 # 29525 29540 # 29535 29700 # 29736 29634 # 29628 29647 # 29694 30202 30590 30641 30691 30714 30772 30596 30681 30581 30586 30562 # 30481 30604 # 30662 # 30702 # 30696 30721 # 30778 # 30766 4 30693 # 30593 # 30626 30638 » 33351 33283 33283 33283 33283 33283 : (MTQ98.MCX 2 CLOKX Rey 13.00, Clock rate = 160ns 28-NOV~-83 16:30: 35 MICRO2 1M(01) (ross Reference Listing = Field Names and Defined Values DS.CVINP, FILL DS.CVINP,.FILL .DONE DS.CVINP,.LQOP DS.CVINP NON. ZERO DS.CVINP.RETURN DS.CVINP,SINGLE 30620 30611 30622 # 30636 30674 30665 30687 # 30700 30653 # 30756 30670 30645 DS.CVINP,STORE.ZERO DS.CVINP.STRIP,ZEROS 30616 # 30632 30577 # 30601 DS.CVINP.SINGLE.10 DS.CVTPL DS.CVIPL.Q2 DS.CVTPL.20 DS.CVTPL.30 DS.CVIPL.50 DS.CVTIPL, CHECK,OVFLW DS.CVIPL.CLEAR,.RO DS.CVIPL.CLR.R3 DS.CVTPL.CONVERT 30747 29843 29877 29931 29850 29982 29852 29889 29966 29866 29873 29882 30046 DS.CVIPL.NO.OVFILW DS.CVIPL.OVERFLOW 29954 29977 DS.CVTPL.SKIP.ZEROS DS.CVTPL.UNPACK 30760 30729 # 30787 # # # # 30052 # 29886 29860 30017 # 30054 29879 & 29912 29950 30677 # 30725 33296 33297 29892 29897 # 29907 29971 # 29974 29969 29984 # 29839 # 29856 30005 # 33293 33293 29992 30105 30853 30849 30837 31040 31049 DS.CVIPN, INC. VA DS.CVIPN,LAST3 30959 30942 30965 # 30955 ¥ DS.CVIPN,ODD.LEN 30906 # DS.CVIPN.EVEN.LEN DS.CVIPN.LOOP DS.CVTPN.RETURN DS.CVIPN.SINGLE DS.CVIPN,SINGLE .WRT DS.CVIPN.STRIP,LAST DS.CVIPN,STRIP.LOOP DS.CVIPN.STRIP . MORE DS.CVIPN.STRIP.OVFLW 30884 30909 30888 30904 $0915 31014 30992 31002 30998 DS.CVIPN.STRIP,SNGLE 30984 DS.CVIPN.WRT.ZERO.LP 30865 DS.CVIPN,SiRIP.ZEROS DS.CVIPN.WRT.LONG DS.CVIPN,WRT.ZEROS DS.CVIPS DS.(VIPS.02 DS.CVIPS. CONVERT DS.(VIPS.FIX.R3 DS.CVIPS.RESTART 30833 30948 30893 29979 # 33293 33293 30978 31058 30934 & 30968 30911 # 31062 30921 & 30919 31036 # 30995 # 31034 31021 31009 31005 # 31026 31030 # | 31017 # i ; 30980 # 30970 # 30871 # 30322 4 33316 30329 4 33317 30384 33296 33297 30900 # 30928 # 30974 30846 # 30875 30349 # 33296 33297 29917 # 31780 31313 29998 # 30352 30820 # 30876 # 30881 # 30890 # 31046 ¥ 31044 31055 # DS.CVIPL.WRT,DST DS.CVIPN DS.CVIPN.20 DS.CVIPN.40 DS.CVIPN. CONVERT DS.CVIPN, CONVERT,10 DS.CVIPN. CONVERT .20 33296 33297 33296 33297 29989 # DS.CVIPL.END, CONVERT DS.CVIPL. IRD1 DS.CVIPL.LOOP DS.CVIPL.NEG.OVR Page 1256| | 30628 # 30753 & 29806 # 33296 29812 # 33297 { 30392 30340 # 31249 30879 33316 33317 33316 33317 30396 30398 # 33316 33317 33316 33317 33316 33317 |‘ ! , ' : I 2 CLOKX Rev 13.00, Clock rate 83 ) 16:30:35 28-NOVFile Defined Values ~ and Ld Names Cross Reference Listing TM(01) MICRO2 CMT098.MCX - “— [0 10 =] [~ 28607 — OOLI -4 OOg4 —ZD= —bond O NOCOMNr — OO ---------------------------- O =z Page 1257| 160ns T ~T ~T T MMTN =D,— OO - O — e O r v— < MMM O e oMNP POMMM MM DS CVIPS.SETCC DS CVIPS.WRT,SIGN DS CVIPT DS 02 DS CVIPT 10 DS CVIPT 20 DS CVIPT RESTART 14 MNMo0 = MY ~M MY o ~O M MY [l o O M M M l=4 O M My M — ~M M M M — Lal a2 M LA — M -- LV > —M oM o0 — [-<]d (e el [>] 0 o« — Xv SOOI S S S SO S OSSO DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD DDDDD SSSS SSSSSDDDDD SSSSS SSSSS SSSSS Sn\uS SSSSS SSSSS sSSSS sssss SSS.\vssss SO — TV S I MOWW R —m e~ — O000 X MV e e 2 e @ s eOQe—MNuM~r XMoo .- - O OO— Ay O A A UMY O — NSO00N€0MO0OOIMG0UMM00 NAOMIA MR WN—O AONO OCIN OMUNOMaNO — — O O O OO OO OCT O TNOO NNTNOMAMM AOIT ~— CU@ ©cO0O O~ O~OOGO CO~T= N=OOPv CO—O I=S0 00I €O 0UMO QOOU=D o=OO MINGNN 0 € 0 € 0D 00 O NRLIACP. O MN NNNMM N .- — O [¥ 2] Page 1258 0 [=3 < 1S o R4 > ~ > <] P P [ P [ P [ 3 P P P P P P P P P P P P P [ 74 -~ ~ £— — Fo o MCX CMTO.98 K 33327 29269 29332 # 39079 37 5 # 33276 DS.MOVP.2 OOD OO0 OMOONIMMMMOy— O (4 Z 33276 33276 T ~el M Taa]M [1 )4[STEoN1 VAT s 39067 NMIMYMY DS.UNP 2 DS.UNP CMPP34 DS.UNP (MPP4,0 DS.UNP NASH INC.VA BY.Z MovP UXO<UCOL 33327 33327 a4 acaocaocaogocooaccooa0anad DS DS DS DS DS DS . o000 0O0OMACODNNG DS DS DS DS DS DS DS DS DS Page 1259 160ns w3 8 . MCX (MT09 L. - 2 CLOKX Rev 13.00, Clock rate 28=NOV-83 16:30:35 1Mo MICROZ Fie ld Names and Defined Values Listing ce (ross Referen 33275 33275 33275 33337 33337 33337 33337 33337 33276 33276 33276 33338 33338 33338 33338 33338 M M —Cur M M O M M My N o 0 =) w DS. SR. DS.SR. DS. SR. DS.SR. GNP U N NN A N NN NN IR A NLNL A PO R U PO NN ~o AN AN COINCO NI NN RL LML TV NO N S e S N R S L L S N e NL s Ly L L dad N N N A G (O e e T N N N T L AN w 0o r TR R HRrRERE [vArr TR p 27259 25869 25873 26593 29556 32702 32717 # 32502 [, 1v3 non W — ~NN roro [e 4V 1 V] nOQo WV —_——ny noroORs NN L~y XX # " # W R 27492 £ SANHANON S = OO ONINONIW O NN LN NN N S~ — ~ O LS DD =SIINON ~ AUROAI R NINUNI RONIN NI o NN NN NN NN NN NN ~ S WO~ — o QO N NN o) MICRO2 1M(01) Tax Ead N = et =2 D= O L STV O ONOOOOOANO OO VTN IS S N—=OO00 — SO ~ WO W — = O NC =N VOISR ~n SO DWN— = NO OOIACO =N O & = NINO NV =2 NO NSNS OO OB LA A S S NN NS L = O = IS S ven oo o o~ — AN O IO O WO = DO [ ¥-3 wn v 4] =] wn SO OVO NOO - ONUILNCD N — (R U N A AR O U U L G Kt G L L ===l —- ) A A LN M nono N N AN N AUN AUN AUAN NN RUNIND A AN AUN ROSN PO PO NI PO NI AU AU SRR AN PO N RO N RO NN NN N MO SN N NN NN SN PO NI NN N N~ Fa WO ¥ Te d oo~ U SN DNS IS - CHEDDD—=NOO — NN w0 O ONE CANOVONC NN OWNMNINI W SO0 o O I N = ONONF NN — AN 2 WO N0 NI TN = O N B » DS.MULP LOP1.MUL DS.MULP.LOP2 DS.MULP.LOP2.2 DS.MULP.LOP2.LOOP P a DS.MULP.LOP1.2 DS.MULP.LOP1.23 DS.MULP.LOP1.3 DS.MULP.LOP1.ALUS DS.MULP.LOP1.END o000 0o QOO0 LA « CMT098 . MCX VU U U < Z TM o el — . P S & & & b & 3 4 > o0 e o°=Zc - . I DOOUODUUCODOUDTTOUOOT o —— mmMmmMmmmMmMmmmrmrmrmem inal . MUL DS.MULP DS.MULP .MUL.DD DS.MULP.MUL.EXIT DS.MULP.MUL .EZER P .MUL .LOP DS.MUL DS.MULP .READ DS.MULP.SRC2BIN DS.MULP.TOP DS.READ DS.READ.?2 3B DS.READ. DS.READ.3B.1 DS.7EAD.3B.2 DS.READ.BYT DS.READ.BYT.1 DS.READ.DIVP.DR DS.READ,EX DS.READ.EX. DS.READ.EX. DS.READ.EX. DS.READ. DS.READ. DS.READ. DS.READ. DS.READ. DS.READ. LLOP2 DS.READ. .LOP3 DS.READ. A1 DS.READ. DS.READ. SET DS.READ. DS.READ, DS.READ. DS.READ. DS.READ. GS.READ.MID DS.READ.WRD DS.READ.WRD,1 DS.SR.123SWP DS.SR.18 DS.ER.18.CON DS.SR.21 LaCLa B L1, V1 0] ; (S PWY1, ) ; Cross Reference Listing - Fietd Names and Defined Values 28=NOV=-83 16:30:35 L 2 CLOKX Rev 13.00, Clock rate = 160ns 27269 # 26645 27048 31527 32369 # 32375 ' Page 1260| i CMTO98.MCX DS.SR.26 MICROZ 29181 29235 32233 32248 28941 DS.SR.BIN.MULIO. 27503 DS.WRITE 25692 DS.SR.BIN.MUL10..? DS.SR.GPROIN.FLAGS DS.TABLE.ADDR DS.WRITE.3B DS.WRITE.3B.NZ DS.WRITE.3B.0UT DS.WRITE.BYT DS.WRITE.BYT.EV DS.NRITE BYT.EX DS.WRITE.BYT.OUT DS.WRITE.EX]T DS.WRITE.EXIT.OV DS.WRITELEXIT.OV.6 DS.WRITE.LNG DS.WRITE.UNG.EV DS-WRITE.LNG.EX DS.WRITE.LOP DS.WRITE.LOP.1 DS.WRITE.MID DS.WRITE.MID.? DS.WRITE.WRD DS.WRITE.WRD.FV DS.WRITE.WRD.EX DS.WRITE.WRD.OUT £D.00~04 £D.40-47 ED.ADJUST. INPUT £D.ADJUST.LOOP ED.ADJUST.OVERFL QW 33169 # 29254 29281 32271 32284 27513 27517 26790 2679 33117 # 33242 # 3133 30206 27499 28402 30109 32989 32999 33009 32876 32900 32837 32992 33002 32829 32879 32889 32916 32094 # & # # # 32923 # 32930 30926 32979 33071 # 3309 # 33083 33024 # 33034 # 2 C LOKX Rev 13.00, Clock rate = 160ns 33126 # 33213 # 27526 27530 27534 33113 # 26848 26853 27375 27379 33047 33058 # 32815 32844 32858 32633 32938 32965 32942 33643 33624 32826 # 32855 # 32865 # 34775 34776 34775 34776 33044 # 33031 32871 32820 # 32867 33814 33994 33996 32935 # 33019 32945 # 32970 32948 33709 # 33774 # 33990 # 34001 # # 34022 34015 # 34031 # 33891 4 32976 # 32984 32961 # 34038 ED.EDITPC ED.EDITPC.02 33043 # 347., 33480 # 34776 ED.END.FLOAT ED.EXIT FD.EXIT.10 ED.FILL ED.FILL.LOOP ED.FILL.P? ED.FLOAT ED.FLOAT.100 £D.FI OAT. CHK,PSLC £D.FLOAT.LOOP ED.FLOAY.PI ED.FLOAT.P? # 33061 33078 32840 33027 34733 34005 33999 33806 34755 33896 # 33904 33914 # 33908 ED.EDITPC .10 M 32913 4 £D.ADJUST.P1 FD.ADJUST.SET.CC ED.BLANK.ZERO £D.BLANK.ZERQ.LOOP £D.BLANK . ZERD. PACK ED.DONE.0S.EVAL 16:30:35 Cross Reference Listing ~ Field Names and Def ined Values DS.SR.28 DS.SR.456SWP 28-NOV-83 1M(OT) 33551 # 33515 33520 # 34775 34776 33735 & 23716 34533 & 33711 ] 34563 # 34570 34065 4 34748 33669 34078 # 34089 34072 34080 # 34751 34235 # 33677 30077 # 34283 # 34075 34243 # 34260 34047 # 34729 34037 34745 # 34051 34775 34776 34775 34776 31725 31728 32788 # Page 1261 O - CO 34133 34241 34359 34539 34597 & 34193 34198 34310 34315 34319 33862 34487 ¥ 34761 34272 34772 17825 17825 17498 17897 17784 17897 17942 17811 ~N OO v~y 34172 Eaas wvirw 34168 i 34162 NN 34093 (NN oo~ wTx:TM T (ANINA [ 33823 34762 33828 34264 33917 24076 34249 34347 34592 # £ T [TRLRETRT TR 381 372 408 TR rRRRRTRIT =~ O~ SO = NON (=] NN S SO | 34268 T OO = SN NN PVNON = VIO o ~ WN SO NV OO B I 2 B B | W S OO —-ry —— NS oo NN ~Now — JADDDZ.REG LADDD3.20 e T = - —— .ADDD?2.20 40 LADDDZ. . MEM LADDD2 | | ! LUNPACK,05 -ADDDZ2.100 Page 1262| 34312 & 34725 T — N = 2 OV NN n SN SOOI ONO ~ OWN.D = NIWOSNLNOWMND O O N NN O NG~ — (RN w T NN O NN SN OWWWES W20V NO NN NN N LAAT SN LA N N AT LS NN S I Eal WSS I DN (9] # NN LN NT . DONE . STORE.NOI . STORE .PACK <UNPA(K JUNPACK.O3 2 NN SN oSN .STORE .IOINT 10 NG LREAD.FET(H,CK .REPLACE.SIGN .RESV.OPER . SAVE .NEW.SIGN LSIGNLFILL . STORE E ., DONE . STOR .STORE .NOINT U N LA AN (L LA NS AN N LA AN AT READ.FETCH.BYTE =~ NN .READ .READ.10 .READ.50 .READ.DONE 1_ng .P0D. 30 .P0OD, 40 - VE . STORE .MO MOVE.STORE.DIGIT .MOVE .UNCONVERT .NOT.MINUS JPACK .PACK.10 20 .PACK. .PQD .P0OD.10 .POD.15 .POD.16 .P0OD.20 T .MOVE .PACK .MOVE .SIGNIF X --—----OOOOOUUOOOCOO'DO'DOOUUOOUUOODOOC‘OUOOOUOOOUO MINUS .MOVE .MOVE.CLEAR.Z .MOVE.LOOP .MOVE .P1 .MOVE .P2 N A LN (i L KA LN S U N A N A N G AN N N N A NN AN N N N N ANLA N KA NN S WWW S OS5 P B B~ BN N NN AN NN S BN DD —_,— e O = S OO VI NICo N O O NSO WNCOONO v NN OO0 CO £5NU £~ N AN NN 2 N1 00O 0 SOV N NN OO O O N O WY O WINO 0 — — o o~ o~ M= OO NNV NOPVOOC (=) LoV NN NO O =N~ n—=anon WD ND B N = YO AN AN 0 WAL O OONL .FLOAT.STORE .FLOAT.STORE,SIGN . INSERY .LOAD.51GN .LOOP A \viwlwiwielo] FLOAT.SIGNIF N L Rev 13.00, Clock rate CLOKX Values Defined and Names Field Listing Cross Reference N AN NN N LN (MTO98.MCX 16:30:35 28-NOV~-83 17784 34430 # — [ o o [%a) — ~ (=] Y] n —Me— ["al’alal) 0O L3 —0 UMNM T OO0 T OITTO—NO 2 — ~ ~O o -~ — M~ o~ e (=] — ~ o un (=4 o ~3 Laal — o~ M — — ~ o~ M QRO ZT —n MO o0 NO—O - et.....QO YAOLAeAE— Q—~T0 0 ~TTNNAGAOANNNGAOetyLQO [ P VA T T VU PO TUI PR PO TR UG PR U VRGP PRy T PR VY VR TR ERY TS v e UMD OO0O00xaTxaaXxass » N\ xe 90“68 35951808788122649092 Ne e N M 98857 MM Y MMM — MMM56833 R M M QUMM25135 A 00 AU OO 56794 LA A A U 1A 80305 U LA 31556 N~ M O— O— . R —c O O 2 M o— — a0 ]~ -— [-13 ~ 2 =Eo — (MTOS8.MCX . x Page 1264| [aa) CLOKX Rev 13.00, Clock rate d Names and Defined Values = 160ns (=] 0 Mo Mw > [~=] (Y] [+ 4 .13 ‘ Page 1265 1 CLOKX Rev 13.00, Clock rate = 160ns Cross Reference Listing - Field Names and Defined Values 1TM R o~ O~ 2O U0 NI NO- NN VN 0o LNy > APIS ON0RO= N0NN D OON SOO0 NN O O NSRRI ONPOONNU O 00 AO 2VN~00 = N (N CO 3TSRO = NN NN WOO OO no —_ 11978 11455 .ADDFOP1 1R 17695 17701 17783 17810 17810 17722 17722 17722 17784 17784 17784 17811 178U 17798 17798 17743 17750 17750 17750 17728 17728 17742 17742 17742 17749 17749 17749 17770 17770 17770 17777 7777 17770 b e — A b amd OO~ LMoo~ oo~ =~y e 17743 — NN Wi CONGO~ 17743 d = O ——a— Do~ 17783 NN N 17783 17729 11564 = OO~ NDO o -Onn N—= o — N INON B~ - D b TN — NN — v [a8) NN 11678 —— rwTM T 17721 17729 17756 17762 TR 17721 17721 17736 17736 11785 # 11825 11630 T O VI DN = O NPV 17701 b vl e b TR N3 b S NN NAWWNIWNINOD N NOO OO N = — TrI-X Bl W— =00 x =N 17694 T FP.CVTFI.SUBALT FP.CVTLF — e FP.CVTFL.SUB 2 =00 N SN FP.CVIFL, FP.CVTFI.75 FP.CVTFI.90 FP.CVTFI,ENT NOWN NONO N FP.CVTF, FP.CVTF, FP.CVTFD FP.CVTFD, FP.CVTFD. FP.CVTFI, FP.CVTFL, FP.CVTFI. FP.CVTFI, FP.CVTFI, E OO WVoo MOoOOO0O OO FP.CVIF, rxr FP.CVIDF.100 FP.CVTF. FP.CVTF, FP.CVTF, FP.CVTF, T FP.CVTD.BUWL FP,CVIDF INO WO NWNO CHNO — = SR R a W NTe - AN IVIL R, |OOV =00 FP.CVID.150 OO owWVify wrony PP pataaiad) FP,CVT.BWL. FP.CVT.BWL. FP.CVT.BWL. oo FP.CVT.BWL.FD.200 N = N SN = b el b el b NN PONSNSON IS DI 2 ONONITY = — =2 —a FP.CVT.BWL.FD.100 VI FP.CVT.BUWL.FD NN =t VYA FP.CMPF .50 QO £ 2 NPONg = : 28-NOV~83 16:30:35 MICRO2 1M(01) CMT0O98.MCX NN WWWND QOUVOWVMIVNOOO ; D 3 ‘ 15235 # j 15085 # 17791 17791 ' ’ x MMM MMMMMM IHMMHM EEEEEE..... EEEEEE..... cF_EF...... F.F_....... DDF_F_..... CCCCCC ..... ..... .......... .....DDDDDD .....CDDDDD —w e e e e T T e = e e T e e o e e o ¥ T T T ¥ e P P e ¥ e T T T e e P T e P T e T e T e ey e e e e B Page 1266 CLOKX Rev 13 .00, Clock rate = 160ns 28-NOV-83 16:30:35 1M(€01) Cross Reference Listing - Fie ld Names and Defined Values 3 E MICROQ 8 . MCX CMT09 CMTO98.MTX — oO r 2 TT T RrX r T TR T TR A O D DO e MNP 00 — ~F A O D OISV —MON. AN~ DM OINMM T MO INONIDOMDO BT 7 R 62444 04Iu.11111 5255311111 55565’1111 222?778988888881111. 11-’1.11 11111 11111 11111 11111 11111 11111 524555555662146689 Neladadad — LLLLL LLLLLPPPPP LLLLLPPPPP LLLLLPPPPP RRRRCDLLLLLLLLL00000 RRRRRNNNNP LLLLLNNNNN LLLLlMMMMM LLLLLUUUUU 00000 00000 00000 00000 COO00 OOOOA OOOOO UUUUU UUUUU P PPPPP PPPPP D-PpP MMMMM MMMMM DDDDDDDDFFfFFFFMMMMMMMMMKEYYYYYYYVYVYYYYYYYYYYVYYYVYVYY — (=3 16:30:35 ) 28=-NOV~-83 ® Page 1267 3 CLOKX Rev 13.00, Clock rate = 160ns MICRO2 M0 Fietd Names and Defined Values = (ross Reference Listing F . ~ 0 wy @ Vel O —-—h — " o~ ~ ~ ~ L N N R — 0a W . . . . . . . . oAl SN NV NOL O — M NOw!; — s WL R xR TR T [RTRR "X b plpundipui bl el pulipull bul gudh pullpuiini i v huiiedippheghu e e S bttt el ol ol ol al ad sl adanbank ek ad anl b et b A 2R Rl /4443 5555555555 Riup2 b A T51013 i aphpi it anb22000 kband egheh anb el 22222 sk buiigh bk at137.. oluipip ouiip Sttt S /.w43 Siquii iy 554/w dipui ullpu66566 iindp66565 iipnd55566 ppdpu " — ~r M ~r n — - L) — ~~ - MY © o o — [2a) ~ N~ ~ «© Cross Reterence | isting =~ F (MTO098.MCX ’ 0119. 58055 05023O EE & ° » = —_——? ~—O oo Ny. ) DU —uVM Qo = o s 2 o QQSS? ¢ » & o o RSVPP . ¢ » EFFRR et PP?BB 0 O TUNAOO > 000000 - N AOOL e QW Quu —m———00 I RRREE ESSSA CEUUU RRRTT 0000O 00000 00000 wzz 00000 Twan SSSTTTTT SSSSUUUSS PQQS DrDrPPPP DrDrOORRR PPPP PPPFPPPP PPPP00000 PPPP PPPP (=] Page 1268 160ns CLOKX Rev 13,00, Clock rate iel d Names and Defined Values 3 6 2B-NOV- 83 C16:30:35 M0 MICRO2 . . MCX CMTO98 pe S ST T T T T pe (<pe=3g — OO -—r e OO~ daxxo WM MI D D — —— e [e] (=] = ~0 T -~z (-] o s] s M * + » » 2 COOEE DM OO » GHDFH. w0000 L O??DGG O WM 00000 VWAL UMM A AA A!*/%/% —04441% PR VU TR T l. l-l [SUR T P U.I.Ilfl.l.TET EF.LLEEFFFF: 466667O —?77DDD .IvI. .I..I SvITJJJJJ BBDDD 11BBB 00001 00000 00000 00000 O0000 ROOOO C CCC( CCCC AAAC AAAA AAAA EEAA _EF_ EEEF EEEE EEEE EEEE EEEE EEEE ZEEE —rrmrrrare—— (=] Page 1269 160ns 3 CLOKX Rev 13,00, Clock rate MICROZ Defined Values and Names ld Fie Listing Cross Reference H 16:30:35 ) 28=NOV-83 1M(01) 8 8 2 39220 H 39513 39513 # 3951 3 39513 35285 # TM—_‘ -E Cross Reterence Listing - 454 # 47575 47551 ....... .oOe e I» W¢IN ZOI eEbbbEX bbbX DO lOTNI [= © ! i 5 5 [=%71 P! oW 8 2 : [1h-] 39291 # 392 7 2 # 39295 e T OT T T OO TN OO — ~3 M T T T T r T T T T T F T T~F~T~F -~ 4 7 14 14 7 39514 VAR O OM T LANO O OO v— = OM— (UF O =M r— M — 220@d 47745 39514 3 9261 47546 47992 47691 Page 1270 — 0 (=] c w " [-7] < oo ¢ |o ow c -© — MmZ Mo[7]FaW ] o o =o> @ M0 MICROZ . MCX (MT098 47657 & 47681 ------------------------- OOQ _JOOO OO WUk r—ea—— + ZOUVUITIxrxrr—oaooao 0a0 00000 IZZ2Z EZIZI JJFEE e [S-] | . co N ~I o~ 24372 37324 & IS o 24318 38402 # 40702 22 TwIEXXX® = £~ 47478 30002 36527 37885 # 38106 40763 40822 40863 T # (= ] O~ 37281 37322 # 39896 39984 ¥ 38438 40414 NN 00~ D NPUNO S N0 O NS SN0 OO Ty (] " w ~n S (N O O PN . WO ONU . . DN—2-2—20 N ~INO NN . 47474 A NN PORLNINJINNINCO G L .NOP.IRD1 1 4 105 IE !E IE 1€ !4 I£ I£ 1E I£ 1€ BORT 1E 1 E ACV 1 3 ACv.BUT I E ACV.BUT.1 [ £ ACV.CHK.CONSOLE ] 13 ACV.PUSH,PARAM I E ACV.RBACK I £ A CV.READ 1 € A CV.SAV.FA i E A CV.WRITE [ E A cv.x8 47470 NON F X.ZEROTEMP] F X.ZEROTEMP? F X.ZEROTEMP3 q L .DBG.NOP 47767 S FX .ZERORT1? 47763 LA LRI A N A A A N N N N T COO00NNNNNNOONNNN =N FX. FX. FX FX . FX 47777 47737 NN CONOO0C0 FX. FX. FX. — HRREATRERRTRRTTRRTRRRRTT TR R= bX. 137072 FX.T3Z2ERO — FX.SL11P4 FX.SL15 FX.T3GETST4 IR FX.ROTIMO T5T3 39099 = FX.PREOPS.SUBALTG FX.PRCP.CRY [ FX.PREOPS.SUB 38490 # T FX.POLYH,FPD.SAVE FX.PREOPS.POLYGTY fX.PREOPS,QT3 CLOKX Rev 13.00, Clock rate = 140ns Cross Reference Listing - Field Names and Defined Values NN S5 N 8 D A S 2N 3 DD o OIS =200 — NI NO OO O'qbo-m-az\m—hoowwom-a—-4~0-ww:~wwo—-mmmoflowox~b~o~owco o NINCO D OO £ MU0 00 W O—“\J‘Omw—'bi‘OJ\VO*OOO—'“wOO\ILNVON—'wJ\&‘OO\OO*—'—'*ObJ\\NN FX.POLYG.VAR3 FX.POLYGH.45 28-NJv-B3 16:30:35 MICRO2 1M(01) NWMWWWWWWNWWWWWWWWWWWWNW—D—-‘—l8\—-‘-—l—-‘bb—‘—l-l\—d-d—‘t\bl\b—‘—l—-‘—-'w—-'—-\—'w—l—l o NUBEAN OO0 COCOCICOCOO00D = NN NN N NN NSNS OO NWVINJWN N — == NN NOMNN N N NSNS DS OO WVNO OO M< W A PONV AU AU A A WO T0 = A0 O YO 0 £ O AND N0 = — OV O ND0 OO OO SO DO FX .POLYFD,BT30 FX .POLYFD.RES.10 FX .POLYG.FPD.SAV.10 FX .POLYG,FPD.SAVE EX .POLYG.SUB < : (MT098.MCX 2000 NN NNUNS — OOVOWVNOOWNC = : J 3 40432 o Page 1271 ‘ ’ CMT098.MCX . IE.ADDR.MODE 28-NOV=83 16:30:35 Mmoo MICROZ - Fie ld Names Listing Cross Reference K 3 LOKX Rev 13,00, Clock rate andLDefined values 160ns Page 1272 B3 Mn OO — UMM~ T O D 0O VOO OOV O OO OO OO r— r— = MM O ONININN NN S LY ~SFNO ~ OOOCOOSOOONITOOONCORCOIL OO OOONNNINININODINO OO TN ITH.PSH,CODE 032 o0 L oC —~— QL — o04[l —— ~ [~ Q — [N . =w 13 . MO OO — — NI OO MO0 34444‘444444444‘lu.l*lfi/*lu./*luvlfl..filw4‘4444444444444444‘46‘4lfl.lfi/fi/filfiIu‘ MO "~ DO OO MM IOT — OO T O—IN—INOZT Ifi/*lfi/u./.fl/'lu.44444444444444444Iv444444444444444444444444“44444 NI Page 1273 160ns » CLOKX Rev 13.00, Clock rate - -3 ld Names and Defined Values - ~— O TMM (=4 M v > o [ = - [=] o 2] = (=] > 12233445:..6667?8899001112233445566?7788990011222334/\5566 333333 ‘444444434 44444444333333 44444444333333 /filfl44333333 i/*l#lfi333333 fi./fllf333333 /{44Ifil333333 44444444333333 44444444333333 66666666666666666667?777?77?77777:7777?77888888888888888 MDA TOT LNOO~D = O C ~N5 OTN<3 GO ~TO COMB = OO O T <DT2 MIMIST N— CUOIMP ON A (IOOO0— N OO~F O O— NICIMINM NNMMOO NIOPO— OOT OOMOO— e~ CUOIMMINT 690 M ~ Mo 4|12233445 88 88888556 8888823344 7778801122 777?788990 777?766777 ./77!34‘55 7777711223 6666799001 66666./788 666665666_ 66666 1.’223344556O667?88 00 CO 0 a0 0 0 €0 33 0 0 0 a0 X) 337\. 0000 633333 I 001122 I S N33333 I R778899 AR 33333 R455667 AN e33333 P33333 I 122334 ONPN DO 990011 OO033333 OO0 OO OO OO OO 33333 33333 33333 33333 23344556 OO OO 000 OO0 OO OO O OO ORI P I P P I R NI P B e R N R G000 60 0 0 60 a0 60 60 €D O 00 a0 6O 685 Pcge 1274 160ns CMTO98.MCX M 3 16:30:35 CLOKX Rev 13.00, Clock rate 28-N0OV-83 1M(O1) 2 MICRO (ross Reference Listing = Field Names and Defined Values N CMTO98.MCX (S.Tl 1E . CM.RESOP 38554 # = w O MO OO OOWN T IOM P YO NGO MO M. NN CO~TOMM IO — NS T MM O NN — OON T 1 =N = O ONONMOM O M) Uy—i—a—Z M M [a¥=]1t TDMOOMP MIMITNY MT OM MO N- TM3 () (= = — — Page 1275 160ns e OO = OO O T OMAL CUMN. AO — N O~ VMDA COWN O T OWN T OO IR >~<T@L Ix)[TV MU A — O NN D =N N OM O— . 3 CLOKLX Rev 13.00, Clock rate 28-NOV-83 16:30:35 1M01) MICRO2 (ross Reference Listing = Fie Ld Names and Defined Values 43440 43640 43441 43441 43443 43443 43444 WNAOMNY 42970 38647 # 42711 NST 43537 ! el . —— OO > Ea VN 44033 44036 MM MM MMM M MMM MM S MO M M PN N A MM MO T MO MMM NN MY O 3959 43968 9 9 9 9 9 9 9 44033 ~ M —O —OOONO OAU ON ONNTMN M AU~ O OO OM OV I M A= OO OO DNIOONTM T T T T T I T T T T T T T T I T T T T I T T I T T I T I T I T T T I T T I I TT~T T T MO O OO BN DOUNINTM O = OO RN BN T M OOR DN DNINIMN— OO0 8 8 8 8 8 8 8 8 8 8 8 9 = 333333 T FF - ~r TFTTT333333 I T T I I T333333 T T I T T 3333?« T T T T T T333333 I T T T T I333333 T T T T T T333333 T T T T T333333 7 7 I4 7 7 ? 7 7 7 7 4444444‘44444444‘44444“Ifi.lnvlnvlfl4“44444‘4;04‘4444 Iar] [pVFvVyvE] X QoCcCcw 43948 3957 43966 SE.CM.TRAP LY M — ld Names and Defined Values O [a¥E7%] U - o~ 4 (W] o~ ~ C- o@ p-] -— CMTO98,MCX 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 o ~F vy 160ns CLOKX Rev 13.00, Clock rate ~ @ -— ~0 Ll o Laal wvy - 4 . MCX CMTO98 * 160ns x QOO 0D -3 — — ~3 Y [oe] o o o N = MM N AO O OO ToOZwDWTVHVMOOJOYuLV-—i0sWO-WRE—UIwrFxT+W»TdRXVoaI0EIlITF<ao—TLxEOgTIvsRxSEwTo>aOoQTMVDRxo>ETsRDxWuOUoLowTOCEuITxALILQEoTMCxOTDweo ATTy=R&ooI3 x 38256 # 38487 38572 38664 My ~~ o« 0 (=g ke 37647 37641 37652 TON 37655 # T(NOUMY e — . ¢ CLOKX Rev 13.00, Clock rate _28=NOV=83 16:30:35 MICROZ 1M(01) d Names and Defined Values Fiel (ross Reference Listing 2LedAltY Page 1277| 0000000000000000000?77777777777777889999999999990022222 0000000000000000000777?777?777????889999999999990022222 12234456677R.990112223756677899/»433121223469945566456678 O T T MM— U= UMTN0ON T N0 O TO vt~OO= oO= vv Q O OO N O 0 O C 0 G CONO N O 0 GO 0000 O- N0B NO P P0NMPANM’A T ~=F <o3= ~OF WOOIM~0MNPMMANM UMYV M FA0OM VOOY AOOONMMNP COB e O3 <OFANNOOUOIUM ——CUO OIS O OO NNDOOCO OOOOCCOO OO0 OGO D OOOOCOCOOOOCOOOONNANINN[N N N N O Y 725 e Yo Ne Yoo s NoRo o Yo Yo tn Lot ot NN e — = (GO OUOLOUMIMI MY M M) T T ~F ~F <2 OO O NI A I 0 0 0 60 0 O~ O~ O~ - QO A I 0 0 0 0 SOO~ O~ OO OO0 v e — 88889 ?888889997 66???77777? 44‘4607777? 33334 1111222223 O NN OO1.| 9999908 999999 ?77?8887??8 000000 000000 000000 11112222233333644445667777?888899977’8?7788889999908111‘1 00000000000000000007777?777??77?7?889 OO OCOONININS O v r— OO AT T LN OO I OO O — QUM T T N O D — R ON OO DO O — N OO — CIMMMOUM M~ OO ONOUMIST ~T N OO MO OO MNOOvONON 0’\.5‘ ?92468 367915 1.3580 813579 !4680566777 /4680244445 /4680233334 135?02 1l 811.|357 99990/91’41 88889 78777 89997 ?7888 1111222223 A COONO O v— 1= CUAIMIAS ~F LA OON R 000 C- O — o UM Sy LD02 5T WO OGNG Dot L0 = MMOV — Page 1278! 160ns CLOKX Rev 13.00, Clock rate 28~NOV~83 16:30:35 M) Cross Reference Listing ~ Fie Ld Names and Defined Values MICRO2 (MTQ98.MCX g 4 D T OO A OVDONRNI—O e ORI [¥a 0 [aV] MO0 NaRX a¥al.clrs lan] OO~ M- W~ vy => 133905r)555?4001|9561411913411239097N MMM G <2 TN O NI AL OMT T O X O R O OAD—IF~TOO0 OO OONN O — M M-POONNMNA INOM) MM— 20000 * ala] M M M MM MM MMM e OO - UMMM MMM e e UMM UM N L. Page 1279 160ns Clock rate CLOKX Rev 13.00, . 28-NOV-83 ) 16:30:35 wmon MI1CRO2 Cross Reference Listing - Fie Ld Names and Defined Values CMTO98,MCX . 4 E : : CMT098 . MCX mM(01) Cross Reference Listing - Field Names and Defined Values 371460 S7477 & 1E_TNV 21225 36509 1IE.TP.FAULT 1IE.TRAP 12.TUS8 3857 4 37179 # 358563 58154 & 1€.SOFT.INT3 1E.SOFT.IPL 1E.¥NV.CHK,CONSCLE 1E. TNV.RBACK 37099 38401 20150 37488 37507 # 39386 38467 38464 # 39890 38441 # 40417 IE.TUS8.CONT 1E.UNIBUS. INT [E.UNIBUS.INT2 1E.UNIBUS. INTS 33032 4 38157 37107 # 38144 & 37110 38169 18113 3809 1E.WCS.BASE 37204 # 38303 IE.WRITE.MSCR.O [E.WRT.BUS.ERR 38037 # 3798¢ ITI27 & L7432 38470 # 40696 39980 40436 38171 # 40759 40818 40878 48093 48096 48099 9874 9873 0874 y873 9874 9887 9874 9887 9874 9887 9881 9881 9895 9895 9895 9915 9915 9915 9915 9915 3610 26106 37649 # 48084 4BOB7 48090 37962 37040 37969 37973 37977 38031 4 {E.WRT.BUS.ERR?2 131 37557 # [L,ADAWIMEM B638 & 9853 9853 9853 9853 9853 IL.ADD2.B.W.L.MEM 1L.ADD2.B.W.L.REG 8592 # 9840 DR38 9874 ggg; # 9359 9852 9852 9852 9888 9860 9859 9860 9888 9873 9860 9888 9873 1€ .UNUSED.CS 1E.WRITE .MSCR |E.WRT.BUS.EXLEP JL.ADAWIMEM?Z [L.ADAWIRES IL.ADD3.B.W.L.MEM 374235 8645 8633 # 8599 & 37409 8 853 8650 # 2852 9/ {L.ADD3.8.W.L.REG gg?g #9837 1L, ADWCMEM 8555 & % 99 9860 9888 9859 9881 9881 9895 9895 9901 9901 9901 9901 9901 9908 9908 9908 9908 9717 9723 # 9821 9826 9832 # 9844 992¢ 9922 9922 9922 9936 9936 9936 9936 9936 9921 9921 9935 9935 9935 9935 9949 9949 9949 9867 9900 L. ASH gg¥g # 9900 990y 9908 LL.ASHL L. ASHL.A IL.ASHL .B ILASHL.C 9674 & 9477 940, 9707 9ES4L & 9700 # 9690 IL.ASHQ IL.ASHQ.A 9679 # 966¢ 9737 973% # 9re3 9711 9IS H . ASHLWRTQ 'L LASHO.A? “L.ASHQ.B ;L.ASHQ@.B81 iL.ASHQ.C 1L.ASHQ.C1 JL.ASHQ. (2 IL.ASIQ.D IL . ASHQ.D1 1L .ASHQ.DZ2 IL . ASHQ.WRT MSW IL .ASHQ.WRT ,MSW,.SETV 1t .BIC2.B.W.L MEN 1L.BIC2.B.W.L.REG 9638 9743 974S # 750 9738 Q7582 # G ¥ 9900 9867 9900 9881 9881 “YG7 o R T Y3 4 9813 302 # $796 03530 L2370 7337 # 9817 9934 G280 9950 IR 8853 # 9922 ggég a4 9867 C/58 # 9756 980V 9860 9888 9859 9867 8550 # [L.ADWCREG L MICRO2 : ' Page 1280 Fod CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 16:30:35 N 9922 9921 9950 9950 9950 9950 ! ; : CMTO98 . MCX FMiCRO2 IM(Dvy 28-NOV-83 16 :30:35 Cross Refecer.e Listing - Field Names and Defined Values 8841 ¥ 9v°9 9929 9943 9943 9956 1L.BIS3.B.W.L.MEM 8817 # vu.0 9970 9984 9984 9998 10031 10045 10045 10045 10045 10045 1L.BI1S3.8.W.L.REG IL.BIT.B.W.L.MEM IL.BIT.B.W.L.REG IL.CLR.B.W.L gggg #9929 8809 # 2463 92%] 9977 gggg #9002 gg;g #9970 8237 &4 10005 10918 10011 ?88?7# 19004 8519 & 10024 IL.CLRG 8524 # IL.CVT.LB.LW.WB.MEM 8289 # IL.CVT.LB.LW.WB.REG ?g?gofl IL.CVTWB,5TRIP 8297 IL.CMP.B.W.L.MEM IL.CMP.B.W.L.REG IL.CVT.BW.BL.WL 907y 10005 10018 10004 10024 10038 8258 # 10053 10046 10060 ?%835# 10052 206 8330 # 10 42 10053 10056 10052 10072 1u..7 10087 1007y 10094 IL.DIV2.B.W.L 1L.DIV3.B.W.L 8706 & 10120 9298# 1014y 9303 # IL.plvee 1L.DIVB3 9267 & 9283 # IL.DIVL? 1L.DIvL3 9277 4 9293 & IL.DEC.B.4W.L 1038 9929 9963 9991 9962 10156 12:57 10107 10735 10463 10:42 10.70 1AL 10 41 10053 10066 10052 10072 10107 10087 10038 10053 10066 10052 10072 10107 10087 10114 10135 10142 10163 10134 10141 10134 10141 10134 10141 10148 10155 10148 10155 8318 # 1Ci27 10038 9970 10005 10018 10004 10024 10114 gao 1vi14 9970 10005 10018 10004 10026 9929 9963 9961 9962 10101 10301 18386 9929 9963 9991 9962 10107 §o-41 10086 10114 10086 10127 10127 10163 10163 10135 10142 10170 10170 10086 10127 10135 10142 10170 PR ¥425 9549 # 42109 IL.DIVSUB. A1 059 90 & IL.DIVSUB.BY 9630 9531 96,4 4 9621 # 9625 9642 8,77 & 9585 10162 10169 10176 10162 10169 10176 10162 10169 10126 vild 9435 9441 9443 # 94 5 9449 9459 9474 # IL.DIVSUB. A IL.DIVSUB.B 1L.01vsuB.C IL.DIVW2 IL.D]VW3 IL.EDIV IL.EDIVA JIL.ED]VB 9554 9565 9570 9272 # 9238 # 9374 # 9383 10:52 10169 i¢'7/6 93 # 338 0413 # 9444 VIR IL.EDIVC S408 IL.EDIVD 9420 ILLEDIVO Y2t g 9591 9608 9998 10011 10017 10031 9998 10011 10017 10031 9998 10011 10017 10031 10053 17066 10059 10072 10060 10059 10079 10060 10059 10079 10060 10065 10079 10060 10065 10079 10060 10065 10079 10087 10094 10094 10094 1009 10094 10093 10093 10093 10100 10100 10100 101164 10120 10120 10120 10120 10120 10133 10163 10142 10149 10156 10149 10156 10149 10156 10149 10156 10149 10156 10073 10080 10080 10080 10080 10038 10038 10045 10107 17107 10101 10101 10087 10093 10114 10127 10135 10163 10142 10170 10127 10170 10108 9324 10108 9984 10011 10010 10031 10108 IL.DIVSUB 10108 9984 10011 10010 10031 9998 9984 10005 10018 10010 100264 10108 10073 1030 9956 9977 9990 9943 9963 9991 9976 10148 10155 93vs 4 10080 9¢ 74 977 9990 10148 10155 9315 10073 9956 9977 9990 10148 10155 9321 # IL.DIvAQuUO- 9943 9977 i 9976 9984 10005 10018 10010 10024 10053 10066 10059 10072 10073 10073 10162 10169 10176 _ 9943 9977 9976 10134 10141 9 9 10148 1V 35 9943 9963 9991 9976 9956 10134 10141 9301 IL.DIVFQORY Page 1281 CLOKXX Rev 13.00, Clock rate = 160ns IL.BIC3.B.W,L.MEM 1L.BIC3.B.W,.L.RES IL.BIS2.B.W.L.MEM IL.BIS2.B.W.L.REG o G 4 10073 10162 10169 10176 10108 Page 1282 160ns CLOKX Rev 13.00, Clock rate 4 Listing = Field Names and Defined Values . 28-NOV-83 . 16:30:35 H TM(¢ MICROZ ce Cross Retere ] (MT098 ,MCX M M ING —INGO OO NUM— DNt OO I Ty, Tk e = CO O VNP 2 e naXx " aWWxTB » X 2o 0 0 @ 2 5 @ oo Dowd DO Zpoaga-" & 5 . - b - X o - . - oooa 1 3D —e EEEEF—Z Ov Ov WZ2 W=2 >C COCOEe —— e deladddddaiddY DO RO 2 222222 DIDIDD DO0O0DOOD S3DIDI O> >B O> S5 «e® e s s s e e e s s s e s e e w e e s e Deid A DD DD dd Db ed i) )e d g g P u o r i r f ] L e i umn.s s. . dem Je DS R . ee. PSRS.EIIER . > S DV IVuspasipae D..... A Djurguvharusj T..... [posfurpasfar CMT098.MCX IL.ROTLREG 1L . SBWCMEM 11. SEWCREG MICROZ 1M(01) 8504 # 8725 & 8724 & 126403 10410 10409 10403 10403 10403 10409 10409 10409 10410 10410 10410 10417 10417 10417 10417 10431 10431 10431 10431 10431 10416 10416 10430 10430 10430 10430 10444 10444 10444 10451 10451 10438 10464 10493 10492 10438 10464 10493 10492 10451 10464 10493 10505 10451 10464 10493 10505 10451 10464 10493 10505 10500 10500 10513 10513 10513 15410 9550 9574 868: ¢ 10417 10417 9550 # IL,SOR=-.END+ IL.SOR-.END- 9561 & 9567 # IL.SUB2.B.W.L.MEM 9556 # 10410 1L.SUB2.B.W.L.REG ?8221# 10416 10416 10645 10445 L,5UB3.B.W.L.MEM BoB8 & ?82;1# 4276 &4 10664 B7¢5 & 10493 ?6%85# 10424 10426 10457 10471 10479 10506 10478 104264 10438 10486 IL.SUB3.B.W.L.REG IL.TST.B.W.L IL . XOR2.B.W.L.MEM , IL.XOR2.B.W.L.REG 10437 10445 10424 10457 10471 10479 10506 10478 1L.XOR3.B.W.L.REG ?8;?5" 8775 4 10486 IN.CLR. (ACHE 5995 & 4007 IN.DEC.D IN.FLAG2.NOT.SET 5608 5268 VD03 & L7y & IN.IORES[T IN.PC 5945 ¥ 5948 5878 #5799 IN.VA_O 58844 LS.LDPCTX.GPRS.0 LS. LDPCTX.GPRS.1 LS.LDPCTX.POBR 36604 o 36707 36703 # 6697 36688 26709 & 36701 1L.XOR3.8.W.L.MEN IN.CLR.CACHE.RDUT INJINIT IN. PsE LONLIT LS.LDPCTX LS.LDPCTX.PSL LS.LDPCTX.PUSH LS.LDPCTX. SUB1 . CHE CK I.S.MODE LS.SVPCTX LS.SVPCTX,GPRS.2 .4 LS.SVPCTX.GPRS LS.SVPCTX.IPL LS.SVPCTX.PC L5.SVPCTX.SPS MM,.BUT.XB.TBMISS MM.GET,ACV 10486 47426 35 E2 5873 & “90 # 5934 36065 # 76984 36984 5354 5R7¢ 36773 36777 36782 36675 SOug 36839 « 37014 36855 & :n867 A863 4 36858 34902 # 36896 4848 & 56861 69246 # 36900 39004 2 40003 & 40087 4 4044° MM.GET.BUT.PTEQS 403 73 om 40410 384 24 28277 G20 814' 3* L0484 35516 -6’79 # 36803 5806 # 36815 # 0809 36962 # ~6849 MM.GET.BUT.FLUSH MM.GET.BUT.PTET0 MM_GET.BUT.PTE20 MM GET PTE MM.GET.PTE.PO 10486 TU88 & 5923 40 388 MM.GET.BUT.PTE Fage 1283 LOKX Rev 13.00, (lock rate = 160ns tress Reference Listing = Field Names and Defined Values IL.SOR+. END+ 1L .SOR+ .END- 28-NOV-83 16:30:35 39958 10445 10438 10445 10445 10424 10457 10471 10479 10506 10478 104246 10457 10471 10479 10506 10478 10438 10457 10471 10479 10506 10492 10438 10457 10471 10479 10506 10492 10500 10500 10313 10513 6690 6960 YR 10486 36984 10486 . 36984 37014 37014 37014 40150 40169 40191 40363 # 40396 # 40403 40387 404629 4 4047 40400 40142 40056 40525 W 40480 # 10500 10500 .: (MT098.1CX HiTR e MO 28-NOV~83 16:30:35 J MM.GCT.READ.PTE20 MM.GET.WRITE.PCS33 40226 40229 # MM.GET.WRITE.PTE20 40159 40106 # 40096 40185 MM.GET.WRITE.PTEGD MM.GET.XB.PTE {0350 9885 40258 # 40026 & MM. PB. PROBE 29205 # 39726 MM.GET.PTE PX20 MM.GET.PTE PX25 MM.GET.PTE .PX25.1 MM.GE.PTE .PX32 MM.GET.PTE.SYS MM.GET.READ.PTE MM GE T. TNV MM.GET.WRITE.PTE MM.GET.WRITE.PTE2S MM.GET.WRITE.PTE30 MM.GET.WRITE.PTE3] MM.GET.WRITE.PTE3Z MM.GET.WRITE.PTE33 MA.GET.WRITE PTE4D MM.GE T .WRITE.PTESS MM.GET.XB.PTE10 MM.PB.WRITE MM.PB.WRITE ,UNLOCK MM.PB.WRITE{D MM.PB.WRITE1S MM.PB.WRITES MM.PRB.READ, TBM MM.PRE.WR1TE . L ONG MM.PRE.WRITE.LONG.10 MM.PRB.WR1TC.NR MM.PRB.WRITE.SIZ MM.PRB.WRITE.S17.00 40068 # 40091 39976 40031 # MM.READ.TBMISS.10 MM.READ . TNV MM.SAVE . INC. VA MM.SPTE.M.EQ.0 MM.UA.READ MM_UA.WRITE MM.UA.WRITE .UNLOCK MM.WRITE.TBMISS MM.WRITE . TBMISS, 10 MM XB.ACY MM.XB.ACV. =1 MM, XB. TBMISS 39740 _ 40927 A 32791 21675 14758 40715 21690 16923 40828 4 40775 29620 21885 21798 40685 # 40711 # 40850 # 36304 36300 40860 # 40882 4087 # 40858 36559 21123 39952 # 39960 38358 39927 # 39909 39625 30674 10213 30642 # 30681 # 39916 # 39941 # 39949 39684 39690 # 38346 3845/ 3683, 39810 38385 39962 # 39972 # 39965 39893 # 39831 # 39872 # 39671 # 36492 36475 40777 ¥ 39006 # 39753 # L1240 40767 20161 30932 40247 # 21450 21000 21112 21594 9495 40195 21543 5Ay57 MM.PRB.WR1.TBM MM.RFAD.ACV MM.READ.TBMISS 40208 19734 # 0w 39658 SODR) T 30677 39,57 & 3361 39745 29139 # 7., 2,439 40173 40138 # 40902 40253 # 40262 40706 MM.READ.NO.ACCESS 40154 40176 # 40:37 401¢8 # 40164 40204 # 40715 40¢10 # 40201 40239 # 40218 40180 MM.PRB.VRITE.S1Z.1J MM.PRB.WRITE] MM.PRB.WAITE1.05 MM.PRB.WRITE1.10 CLOKX Rev 13.00, Clock rate = 160ns (rc.: Reference Listing - Field Names and Defined values 40535 # 2489 40545 # 405%B 1532 40594 # 40557 40575 # 4QhS7 40607 # 40581 40618 # 40586 40568 , 40500 # 40494 40052 # 40930 4004% 40035 79920 # 40084 40GZY 40076 MM.GET.PTE.P1 MM.GET.PTE .PX 4 40222 40295 # 21518 36576 21532 39802 40749 & 40693 40690 # 40756 40815 40874 40899 # Page 1284 [|Xxr I ' 35795 35927 = 35771 361322 35806 35775 35877 35881 35889 35901 35941 # 35968 35987 35992 3¢ 35173 35191 9 3 35338 35608 35830 35846 35869 35935 35939 35946 4 35791 36161 35009 . 35857 35861 36094 36041 —, AL o AN ~Cco XX R R RE TwruETMr T g n = 36679 N ~ # NS ONINO DOONTUWNID "N DOO— w SN OO0 — &~ & DN — — @ OO OO~ O OMNIONWNO O OIS 2P0 NONI SN — VO NVICON O W= =2 N0 00 = C 3500 O ORONOHHD N O 0N~ WS BOWNWNO £ 0N NUIN OWN N LN N U U o AT AT LA AL A A S L o A N NN N LN S N NN LA N D W VIOCONCr O O NG O O O TN ONON O IO T O A O hel DOOOO C O — =~ OIOO OO IN T OO =2 NNO N NNC =W~ (o] o] S uvnaauniun s Lo T N AN AN NN (N NI N WA v LN NI N LS wr w W = DWW Tx NIWWGS -OMNICONL O S NSSOON) = DO S W WDy O O NN = O S CONOD =2 NN = S O~ Do el PO A — W —=FPIO N — o SN NN = O OO NN NP S NOONONWANC = TIOW IS Y00 =N O N N N N WA LSS AU N MP MTPR, (0 MP.MIPR. ] MP .MTPR. 00 MP_MTPR.EX MP.MTPR. FL MP.MTPR, GR MP_MTPR. 1C MP.MTPR. Ic AN N O o L MP MTPR. BRANCH MP.MIPR, CADR MP.MTPR. CADROS MP,MTPR, CADR10 . MTPR. CHK.CON MP DN OO =S OO MP . MFPR .CMIERR MP MFPR .CONSOLE MP.MFPR .CONSOLE.10 MP .MFPR .DONE MP .MFPR .FPA MP . MF PR .1CCS MP . MFPR .ICR MP . MFPR .ICR10 MP .MFPR LIPL MP . MF PR MEMSCR MP . MF PR -MME MP _MFPR PMR MP . MF PR .SID MP_MFPR .TBDATA MO_MFPR .JTODR 20 MP . MF PR .TODR, MP.MFPR .TODR.99 MP.MFPR .TODR. CHK MP . MFPR LJODR,.LP MP .MfPR .TODR.RETRY MP . MFPR .TUS8 MP . MFPR JWRITE MP . MF PR XTR.WRITE MP.MTPR MP . MTPR, ACCS MP MTPR, ASTLVL MP.MTPR, BAD.IPR N AN NN (N N N . MFPR MP MP . MFPR,ACCS MP MFPR.ASTLVL PR MP.MFPR.BAD. MP,Mf PR, BRANCH MP_MFPR.BUILD.CMIERR MP . MFPR.CHK.CON 20783 A L LN N O T O i i ov OO O D00 = WO NN NN NN = OO © =D G~ IO OO0 OO0 T8 MPTINVALIDATE I AN A LA AN A MM_PCALL_ACV_ENTRY 39882 # 39875 39806 #und LA NUN N LAT L Gl G AT U N AN A LN O G U B S vunio iAo ooV MM.XB,TBMISS.1C MM, XB., TNV 1M(01) MICROZ2 Cross Reference Listing - Field A A LY R S UL CMT098.MCX Page 1285'| - K 4 13.00, Clock rate = 160ns CLOKX Rev Values 28-NOV~83 16:30:35 Defined Names and 35653 # 36177 # 36077 — L4 ld Names and Defined Values K |R oo0&= 1 -d — -3 - ~ oQ o~ [+ QL 0« T- . » MN M M —~c> La l M TM M M Mmoututucune Moy - <QEYIY ] IDECTWS> —OEEXXO: —XIXEIC<INTXaonmniaana— [T« 22 CEEXEE LY I.I.P I.I.. DDDI. IDDDS DI‘I. RLCDD RRSSS SSRRB BBBBL CRRMMECCCC TTNWU . sQU T..I TT.I IT.I ..I. TTTT TTTT SSST SSSS NNPPPPPRRSSSX IIIMMMNN 22 waaa wwuwL e X XrEC XXX R T .....H MMMMM .....BBCCD .....SSSBB .....MMSSS .....MMMMM .....MMMMM .....nMMMM .....MMMMu .....MMMMM .....MMMMM .....MMMMM X [+ L= Page 1286| 160ns CLOKX Rev 13.00, Clock rate 4 L — ~0 Lagl < MY w > N (MT098.MCX MV, FILL.CACHE MV.FILL.XB MV.FINISH,SETUP HV.GET.CLEAR.MEMSCR AV.LOAD.DSIZE MV . MBUS.FLOAT] MV . MBUS.FLOAT1.D 5 MV.MBUS.FLOAT1.1 0 A 4 4 4 4 4 4 4 MV.MBUS.TEST MV.PARITY, TEST MV.READ.CACHE 4 MV.RESTORE.GPR,LP MV.RESTORE.GPRS 4 10 MV.RESTORE.GPR. 4 4 A 4 22140 o~ OO0 nornony 22187 22187 22187 22187 22211 22211 22212 22212 47251 47262 47269 4 rnoroN o~ 22180 — 22180 noror 22166 jrihr g —Sea— Co~O~ D=0 OO N o w _r oo [AS N1 22166 22212 22212 WIS L -2 3 = NN = [4¥) nono 2166 2171 2180 47406 x 0 ~\INY NN U — —_ (==& ]— 47237 £ = = a3 SR == U= (=128 LAV ~N~N ~N Ea DN NN VYR v o) NN —=OONONNINO OO —=0OWO PO TONY —_—0 ~ NI ey OO =] W 2 MONINONINIAINLNININININD NN NN o - 47215 47241 47255 47276 A VNIV, IV, ] — OO~ &~ ~I O~ [« ~NOAO~O~ P — GO wnisro S D= ~NONON s PO Y Ry — =N SO0~ roo~ ~No OO~ e oo — — OO~ ~NorO~O~ —S OO P SrRo—=~ NOAOO [=Ys Yo ¥ VOO O NN R C W WO N O D NN IV r=1-N-"1=] [+ JVE L\ VIV LN, ] WO OO TR! B 22140 38272 QW NN ¢ 4 221 37428 46867 # 46986 B 4 xR 4 22211 47222 NOOVINW 4 OO =000 ¢ IS NAO WO WNIN) = POWNON = 4 A 22140 37125 47409 # SO = O 4 CNOOCD 4 36337 Page 1287 Clock rate = 160ns 37256 40 20970 # 362 8 9 22140 4 47070 OO NNO NN OO PORORJND = = DWW OO NN 4 DD MV.ERR.60D MV.ERR.60E MV.ERROR A Lo MV.ERR, 606 4 OO N NN MY.CS.PARITY MV.DSIZE.FIRST MV.DSIZE.SETUP Mv DSIZE.TEST MV.END MV.ERR.605 4 4 4 4 4 2 £ -3 MV.CACHE.TEST MV.CHECK.XB Mv.CLEANUP MV.CLEAR. CACHE MV.CLEAR.CACHE.LOOP MV.CLEAR.MME 4 4 # X Mv.CACHE.CHECK.ZEROD MV.CACHE .PARITY 2 TRrET 2 2 2 P4 2 2 2 2 2 2 2 2 2 2 2 4 4 M3 INDEX x MS. INDEX.S0 MS. INDEX.60 MS .MOVPSL MS.NOP MS.POPR MS.POPR. INNER MS.POPR.LOOP MS.POPR.PRB MS.POPR,PRB.OK MS . PUSHR MS.PUSHR.LOOP MS.PUSHR . MASK MS.PUSHR . PRB MS.PUSHR.PRB.OK MS.XFC v .BUS.TEST MV.CACHE . CHECK.FILL Rax 61 O ONMAAND GO OO 0O N NI MS.HALT.MICRO B Ino =SSO OMNNIIC0OWNIA NN OO\ Cross Reference Listing - o MICROZ2 L5 H CMTO98 . MCX ommwu—-o\u\ooaaowmr\aonvow—aw»o—-oV:\wmwbomwdwooomwmbbwbomoomm—vww : M CLOKX Rev 13.00, 3 6 30:35 Fi el d Names and Defined Yalues 28=NOV-83 1M(01) 46492 46642 46911 47274 N CMT098 . MCX GPR GPR GPR IPR ——FE O Mv MV MV My My SP SP SP SP SP SP SP SP SP ADR ADR.ERR ERROR ADR 160ns Page 1288? ! | i I | ~ O [ ~M o~ ~ hed wn ~3 - T ~ 0 wny wn ~ 0 753 wn ~ i i l t »<= | ! 1 [~ oo L3 TEST.GPRS o —— e tunnununs TEST XB PC.TEST X8 TEST X8 TEST.HIGH.BITS X8 TEST.LOOP1 XB TEST.LOOFZ X8 WAIT C COOD r— = r— 0 N 'MIN OO TEST. IPRS TEST.MIEMPS TEST.RTEMPS ZERO sp ZERQ.GPR My STALL ,FOR, CACHE MV TB.GRPQ.PARITY My T8.GRP1.PARITY 05.ADD - ! < e s OV WWWLILLILILLA v My My MV A CLOKX Rev 13.00, Clock rate 28<NOV-83 16:30:35 M0 MICROZ Defined Values and Names Ld (ross Reference Listing « Fie ® ! —0 1 { i r | t | OoOwn re-x v [ n o [=] ~ OO M oMM ony cun [a¥aY] 0O w OO CUR < wn AR AN e 2 T — 2w R T T rRY R 2 X T TR rr r T xR O OM O N M e O ~r MO O OO NI — " —_— N OO > OOO O M O Ao o7 O OON I P U OS2 O = O M P MINOUON A — R O L0 I0OOOOM — NN — T66367 DM = 52566 F T P M DN55555 OO O F TR AN 90447 00O 9 72678 ,7777 67747 99000 54400 gT MmZ o >M NOM T - L OO~ | a0 5 B T Page 1289 | (=] “ Ld [ . —_ Ew g> e IOX v s - X . — 118t [ ] O OOE Y=Y~} -Y-Y~Y-Y=YoYo RAAAAAAAAAAN OOOOO TR AAAAA it 00 3 OOOE DDDDAAAAAA DDDDD i—ey wo I 2Zus OQOOOYEEX ooo WwiLwo o 54399999999944744755.“555665666666177777771678956.\:66009‘/ - e— ~ —r = — — —r—er—r—r— OO =o 5T OO ONOOCOONOND ~ OO—— — —r—r—rre— RO x — el xo 000000 xaoraxaoo@iaa:u 54018 08900 0]34591501 1578979%2q 445549710‘ 4545486014 8912455539 ?888830‘94 1334662576 9372182547 06788?7111 8999947548 — < 54788 68900 0234593501 9678976375 4455554]54 5555596521 8912525366 7889840491 133‘8?8816 9473182573 6678822651 8999957548 T Page 1290| Clock rate = 160ns ¢ 8 . MCX (MTO9 5 C CLOKX Rev 13.00 , 08~ Mon 28=NOV~83 16:30:35 MICROZ Cross Reference Listing - Field Names and Defined Values Page 1291 160ns Clock rate ’ D 5 CLJUKX Rev 13.00, M) 28-NOV-83 16:30:35 Defined Values and Names Field Cross Reference Listing = MICRO2 . CMTO98.MCX VNI NN LA MM ONONONON O O00 SO0 OOOOOCCOCOOOOCOOOONNNNNIN 0000 D e e i e e e e e e e = €= £ g € = = = T e e = = T T = £ T € £ § T o T e e 1 T — = OO CU OV NI UM M N 0OOOO0000000000000000007777777888888999999999129.5555033 ODOT ORI —MF N OCIM PN DA — -t — N O3 OINN OO OO NISTN OO NI OOM— A NI OO "M M) SOONMNMN’N OO L= o ~ [=T Y OO~ oW —— - — ST NN TN T T wO O 0y MMM OO0 N o~© VOOV OITOIAINO N — . . - o —) woow U =—z oz = MO0 B N VOO INNOOOOCOO0O00D MMMM T OCOMN T T TTITTTO DNDNINNININMMO OO0 T T e S w9 o O—MONN.ON < MO UNOMONOr MY OO 1N CGMNMNINO QOO SO0O MM MMM MM N | NI OO NOORTO ®x | N o~ Te MmO = ! WO OOOO M- OVT UMMM x3 ] WO ~F — ST ST ST\ MMMMIMAOAMIMINI £ Page 1292 | || 160ns | 5 E CLOKX Rev 13.00, Clock rate 28-NOV-83 . 16:30:35 Defined Values and (ross Reference Listing = Fie ld Names M0 MICROZ CMTO98.MCX 5 F 20279 20288 20829 20829 20829 20829 20838 20838 20838 20838 20844 20844 20633 20746 20643 nor 20663 20672 37727 37825 # 37770 37789 37796 & 36997 26997 37007 36567 36997 37007 36584 36997 37007 36997 37007 36563 36580 Page 1293 Clock rate = 160ns 20297 20305 20314 20323 20332 20682 20692 20702 20712 20721 - o~ NCo —,— e o < SN o —_ nory o o~ e o Eauia N = —_— (=] roro [AS LAV N oo | L ¥ ) —— noro [aV1aV] 2216V S~ wne b — o L= o FJ —_ rory T ?T Q. NOE SN e (=) o — — rony OO N —=Sorono OO TN NG AN AN OO0 S NN oo mnoro N oC £ OO0 — OO0 @ —= o =-+C0\N NSO DELSLELNLN N T} X no =20 == OO ruayw T UWNNON WO 000 SO & QOO ONNIVOO N OSSO WVNOIVICO O &~ DWW W SO =N SN ON N =0 0000 N NINOVON GO —= OO O H O NONOD PRONINININIPJRIRNITNOND CODOCCOOO—O RURLALRAUNJNUNONINUNSRINONONINS OOODOOIOODOVOOOO 00— 00 =00 = DWW NN rRTTTRTTHERTRIRED X:w T T AUNLRURLNY < OO OVNIWVINSY ~ NN NoNW £ S NN) S NN OWNWNON N NI = O W =2 0O I =3 NINI NN A RO TO NN LNININD N £ — QO NN 0 RS AN NINJ A NS AR AN NIRINI AU ny (=] 20270 ¥ 20820 20739 R 3 CHECK.ALIGN .CHECK,ALIGN.1 . INSGH] .INSQTI LINSOTLL10 . INSQUE O PO ISNU00 0 SN —=Ny OO0 OO NOOONON = OWVHANO NN . TNV DUPVPINDNONL LA AN N AN U N N N NN N N PPN = OO O~ NON NN N —_,N =L 2SO0 SO NNNIVNIO SNINSNSNNSN .1B.PE. .IB.PE. NVAL IDATE .1E.TB.PTE .PROBER .PROBEW .PROBEX.ACV .PROBEX.FLUSH . OK .PROBEX .PROBEX.SUB 10 .PKOBEX.SUB. TR .1B.PE. R .CHECK.FOR.CACHE .18.PE 20499 20262 20495 20253 # 20491 ¥ NORNICOWO — — 5~ — N d S = 000 NN NINUNI O N0 O = N WA LRET-EXIT LRET=F1X.STACK .RET-PROBE INSY LRET-WHICH. LRET=WRITE.GPR O = Q= £ S DNONOO SO NN N DS N NN N O ~NUNOR N N2 PC.CALLS-ALLIGN PC.REY PC.RET-DONE.REG WS OWNO N = O =0 NNO 0O LNV SO O N NN O = 0o I o SNHENNOON=S VOCON S OVOON LW PC.CALLG-ALLIGN PC.CALLS R AII AI AU PC.CALL~TNV PC.CALLG RO AU AU PC.CALL-SAVE.SP.BITS PC.CALL~-TEST,1V.DV AURD AU R o ~ PC.CALL-PUSH.R4 PC. CALL-PUSH. PC.CALL-PUSH. Pl .CALL~PUSH. P{.CALL=PUSH. PC.CALL=PUSH. N NN AN N AR PC.CALL-PUSH.R3 OO NN NN < OO0 OCOODOODOOOOCOOOOOC "~ PC.CALL-PUSH.R1 2 PC.CALL-PUSH.R} 3 PC.CALL-PUSH.R2 OO PC.CALL-PUSH.R1 1 A N AN N LN AR U PC.CALL-PUSH.RO PC.CALL-PUSH.R1 PC.CALL-PUSH.R1 0 a2 PC.CALL~PUSH.P( R e PC.CALL-FIX.PROBE PC.CALL~MASK .MASK SR = PC.CALL-EXIT PC.CALL-FIND.REG 00D NU PR AU N CMTO98.MCX —— : : ¢ L 0§X Rev 13.00, 28-NOV-83 16:30:35 MICROZ2 1M(01) pefined Values and Names Field Listing Cross Reference CMT098 ,MCX . T = — —<C . — XD EXTITocoo FEEITo X X » >MNNN W . OO OO OOt et 00amaadao >>000 >>>>> S>> L . OOTQAW WSC>>> MMNOC caoxxaw — 00— <v a @ 2 Rl R TR o~ 9 1614 4882 6940 8572 9093 1588 8414 48?2 8554 3506 3606 472 727482 119066 465961 69006/ 903Ifi 8?.I?J 86211. 190683 541-.' 7767255606 e T “ P T e rr e e e T e —— e OO O LU O OO O OO O MM OO (L e e e e e e e TT E 1 R T FFFFFV FFFFVVVVV FFFF FFFF FFFFFFFF UUFFVVVVV UUUU UUUU UUUUUUUU \/VVV VVVVV VVVVV VVVVVFFFF QQ\UV QQQQQ QQQQQ QQQQQ PATCH ROT [a=¥]z=1 — Page 1294 160ns 5 CLOKX Rev 13.00, Clock rate Devined Values and Names ld Fie Listing e Referenc (ross G 16:30:35 28-NOV~83 M0 MICRO2 o O . MCX (MT098 T— 4 [2 D — L~ -—Cg~ @ — K 13346 ASL.R.7 i1 O == wy CLOKX Reyv 13.00, Clock rate -— @ Ld Names and Defined Values — 0 ~ (=4 »y A 13374 o—~ 47 OO O—NINIM—N. OMN [= Il alA] 3 —MA.NO MTPM A Zxr-X o 5467 8995 9681 6 8 3 3 4 6 7 ONMO OO OO MIMIT I U=T OO OMO MINUST 389 ? 4 3099 & 890 3 Page 1295 4[elVaYe] ~ L 2w 160ns 13986 — ASL.R.P [t o>c > O—TN NOMNIONINICO <~ b} I Page 1296 CLOKX Rev 13.00, Clock rate = 160ns 28-NOV-83 Defined Values and Names Field g (ross Reference Listin 1M(01) MICROZ CMT098.MCX 16:30:35 ON—r— PL PL.SL_wWB PL_MS3 RL .MM .P RL ,MM.PTE ~3 RL.RM.4 =M OO T DMOON OO0 p— oLIT8 NSO~ — T INO NONMMA MMM ST O ONe—NMIT MMM — —0FTON— O OO N a 46297 40142 31595 RL ,RM,P KL.RM.PS 29773 40425 28725 28745 30913 30918 32274 31598 31603 29895 34387 35551 —M-T— OO0 TWO —M3 M-MT=S O=INM OJCOW — ODDNMO~ [Tsatl 29478 40420 OO U = OVST NN T ON PC O T — OO0 AN OUM o 21310 40336 RR.MM,PS vy 47749 40319 298N RR.MR.4 37512 40244 RL.RR.P RR.MM.P RR.MM.SI1Z 35293 MOM —OUOUCUPIMMIST TM MM OO O0 OTM o9 LALAAG OO O P P s GO O ED O 1 1 1 1 1 T o g T £ e e 7 ¥ o 4 = T T 7 e v RN ONINON N O OM O OM = A DN O — O~ A - OV I A O M e— = = PN MO DONN — M O O = MU OO TNOLVOO T OOT O TINOMNN — MM — N — O @« M @ Ui - o— Q - Eo ~ —_~C [ ]} — O o . ~ Page 1297 CLOKX Rev 13.00, Clock rate = 160ns - @ ld Names and Defined Values wy - (= TM 72 — > o~ [= = - [=] o X = (=} > CMTO98.MCX 3 K 247258456?02469357891:36913561/4.716135790024691240705825? 29702 R OO OM OO —M T O MM —NO NI R DO MO — T N OINP — NN O ANININ O CUT P O O O CNIM UM 85 O NOOIN OO ODO—MN OU NI DOO—M = NN — OO O T OO = M. O 3O 0OOMPMO— OMAO ~O ~z M~ wn M O AND O TN OO — OHA N O T O 0O MM — N\I~F O OO OO NI~ OO O —=MINDO —MACOO~T OO0 T 0 63 22 07 Fage 1298 ] 160ns CLOKX Rev 13.00, Clock rate 1M(01) 28-NOV~-83 16:30:35 MICRO2 Defined Values and Fie Names = ld Listing e Cross Referenc CMT098.MCX 5 L Rev 13.00, 16:30:35 CLOKX 1M01) 28-NOV-83 MICROZ Values Defined d an Names Field g Cross Reference Listin MMM MMM YN MMM NN IH OO v (U NN ST U A N OO ON- RS OM P~ — MMIN OV UMD OR. 00 S = — O OO UM LA NN OO A COMNO — UM AT O UM - LN I €O L1T0 TMMM 87?3 Clock rate 160ns Page 1299 . CMT098.MCX 1M(01) 28-NOV=-83 16:30:35 M 5 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Fie ld Names and Defined Values 57375084213568369086203089136827235705346816148515841!Inb CONIAIT O T OV M VN OO O OO 2 OO N — R M O NI — OO . A= OO r— — OO T WO NI O NN DO 29911 N[AV] 2 ' MICROZ o -— — wy 160ns Page 1300 x 37486 21318 <0804 3 NN O — AR O OO N N O MNP WOTO LTy OCOOCOMNOOOOVOONNAND—O OCOMAININA =0 OT AN~ MOV~ — OO NIO NO 211728 OMMODOOODIOINOTORMOOM OOMNN—MNOONN ORI ONNSONNMNAN OWr 4 4 — MM O~ D — OO — O T MO~ MM RO 39 19166 19076 19052 3 6 6 9 3 9 1 8 9 5 2 L1120 L1124 M T T T TT T T T TIT~Te—— NONMMMMIMNT 35¢87 20715 UTOPN~ ONNON L1TPL (ross Reference Listing - Field Names and Defined Values 37722 20403 L1118 N O — OO~ T OO IO O — OO = NS I — 00NN LIT16 CLOKX Rev 13,00, (lock rate 1M(01) MICRO2 . MCX CMTO98 T T ~F w ~T T T T 7 <5 T M = MIN UMMM MMM MAIT TNIT Line page 1301 160ns 5 N 16:30:35 28-NOV-83 M Pl v ~— (-] Oo w© — . . . . . . . . Attt 2 R 2 2 20 0 0 0 DO OM O O0O0O0O ””””##”””””#ufl#””####fl”ufl”#””””””##Mfl”ufl”””#”##”##”0#"»”#”-H” — @ -~ — =¢o o o 5 o cana o Qe cocOo e o o ¢ o WOo o SO2 = OO0 DIODDe LWo v MWMWW D D LLoAN ADNNV B DA PBPBd B == e —msrammyVNOOD LLLIL LLLLXALLLTI L ROTSRK Page 1302 | 160ns CLOKX Rev 13.00, Clock rate Defined Values Fie and = g ld Names (ross Reterence Listin B 28-NOV-83 _ 16:30:35 Moy MI1CROZ (MT098.MCX S A . MCX (MT098 M0 DST.ROR1 GPR.ROR1 18470 Page 1303: 160ns 18664 7 1 [} 4 8 9 3 2 9834 9839 11928 2 9 4 2 8 2 0 2 8 11933 14802 9 8 M TTTITT TIIT TITTITTI GPR.R¢) 18465 16:30:35 N T OM O — 3 OO OMUN OO = CUMLE A 00O - e — ESP GPR.R ) 28-NOV-83 COOOCN = r—r— r— (\U~T T ~T 0O DST.R+1 OO O r— v— — (U ~F ~F ~T 0O DSTY.R 78908 e 6‘83/&3089758323 — MO O 69899 OO M.84543 IO OO87890 ——— OOV69721 18460 RSRC 6 ¢ CLOKX Rev 13,00, (lock rate Defined Values and Names = g Field Cross Reference Listin MICRNDZ 14807 Page 1304} 160ns CLOKX Rev 13.00, Clock rate Defined Values and Fie Names Ld Listing e Referenc Cross 6 D 16:30:35 {MTO9B.MCX MICRO2 1M 28~ 28-N0OV=~83 ~ T UM TN MY T AV (8t [aVIaVTaY TaNTaNTaNIQNS ToNTD V o TR md oVIAVToVIaN]o],o M O = M D = LN O MNIM O — O OO N AN OO MY Al o STOUONMOUTONTOOOM— ONM — I O — T OWNINOVMNA. . MMM O AR ON = N O O — U0 OV O I — O N0 —_—_ ~ OOr NOUNDDSTCO OO~ O O = O U OO . © O AT N QU CON UM OO OVMICUED MO O~ M — E 6 CLOKX Rev 13.00, Clock rate MICROZ 28-NOV=83 16:30:35 Defined Values and Names Fie ld g Listin {ross Reference M0 (MTO98,MCX —— OO OUM M MNP MY R4 —— OO UMM MMM N R3 42557 42579 42597 42603 42643 6969 716 7129 29201 29208 N OUON M A — N 0N 0O UM OO T O — = MO —NO— NN INOON OO x R2 Page 1305| 160ns R RS ~N R7 R8 R9 RTMPGPR —uy W 6959 O ~TFOUr—NUY T ~F T TEMP.R+1 6956 O DN —OOOITF OO [ %1 a — [ [=4 - a . VNINIONOIY NI OONAIN CUNIOCUOU R6 . F 6 CLOKX Rev 13.00, Clock rate 28-NOvV-83 16:30:35 (ross Reference Listing = Fie td Names and Defined Values MICRO2 CMTO98.MCX = Page 1306 160ns e (OUMM AT N T T OO — —— NINICIMMN S O OMNINT PN INTIMOUST TN N0 VMM OO —— OO ONNOT O — MO N M =T OO OMINN = TN NINONOO 0 i MU — — UM O r— NN O OO — TMM 26735 16973 21015 26740 26808 27032 0 9 9 0 6 0 9290 9617 MICROZ 1M(01) 2B8-NOV-83 16:30:35 NORO MrMOUMY oy 0— — e QUMYST — = UMT —M= — DIV O — Iy ORI Y - B OO A T OM OO Or = A = OO O s MM OMILN — ZERO Page 1307 —-OMIMT UT—M—— —MIT A OO O N0 ONINO = A — N O N O OIS e T . =t e OUCUMIP T O o = CUOUM S e e = Qi acuNI N 31595 36026 47873 USP (LOKX Rev 13.00, Clock rate = 160ns =M O == P O N O ~T 00 G0N ~T O ~T O ~F OO NN N OONIM TEMPS TEMPY ) Cross Reference Listing - Field Names and Defined Values TEMP4 TEMP8 G —0 N CMTO98.MCX [Tal,gl VMNo0O ~ [ —- [t (o= zo — o = LR 6 CLOKX Rev 13.00, Clock rate e QL ld Names and Defined Values — ~0 M (=] M " H ZERD.CLRRBSP MLONG LX 160ns 1.40112234568899112357’890123566801112234445.\4567 SPW OO AT T ST T ST T NT T T T T MIMMINIWANO T~MM e 431{4230228747969983893666458658850242?508364 M3 o@ & o0 Tw C -— —~O o —_— [SNe) =4 = — (=4 (o4 0 = [=) >< e["alValvtalieliel Page 1308 Page 1310 160ns CLOKX Rev 13.00, Clock rate 28-NOV=-83 16:30:35 1M(01) Defined Values and Names Cross Reference Listing = Fie ld 6 J MICRO2 CMTO98.MCX NO e QO = T =T = OO— NNVNONO OO~O OOM— TN O— —NOOMO — OMNOD —MONMDO OONI ANU~ OO IO — ONN\ ON O~O — NI —M3M OO— O OTTO tN— OOTR OTONNN MO0~ O 99/*26335054865731326858761986331‘443415559419?8 12/457112‘5892?25601246025691«236713690127235825704253?.lo T OONOINON OOMON— ONG NN AT TN TN AT N AT AT N AT T T AT MO OO OINMISTN NO OO © NICOM N O O e T A DM — OO MM ONRL e~ MM Oe POOe NITSNT U eI ——VO OOOO DOUIN OO T T T e P e e e Nt OO SN OO OO e e P e R RLONG MINO OOV MOV OO— DT — el ANT o MO RO ’ Cross Reterence Listing ~ Field Names and Defined Values . NOP Page 1311 160ns CLOKX Rev 12,00, Clock rate 6 K 28-NOV--83 16:30:35 MmMon MICROZ CMTO98.MCX CMTO98.MCX v 6 L OM OO OO IST OO+— OMIOO - D OUNIMO O 0 r— COMN =LA — MU +— 00O r— NUIST OO OIM = U T — NN M MMM MMM MMM NICUM IO O OO U IO O O U O UG NI U A O U ) OO0 OO O V 0 AU U eO MI—e eDOv OO 11-|122222222222222222222-{-(222222222222223374333333333333 1111222222222222222222222.(22222222222222333333333333333 1.4|1|-|222222222222222222222.(222222.};2222222333333333333333 a.l.|1112222222222222222222nfl)._22222222222222233333333333333 YA MM MMM MMM MMM MI AICU VOe~ Page 1312 160ns CLOKX Rev 13.00, Clock rate 28-NOV~83 16:30:35 1M(01) (ross Reference Listing - Fie Ld Names and Defined Values MICROZ 6 M CLOKX Rev 13,00, Clock rate 28-NOV=-83 16:30:35 1M(01) MICRO? Defined Values and Names ld Cross Reference Listing - Fie CMT098.MCX . . 160ns Page 1313 13 ~DMyO - D w w a. =) o — o - wyo<To —w I T T AT MMM MM M OO e MM [+ = « e4 —0 a W — ~ 8] N 6 CLOKX Rev 13,00, Clock rate _28-NOV~83 16:30:35 MICRO2 Defined Values and Fie Names ld Listing Reference Cross 1MC01) CMT098.MCX Page 1314i 160ns CONREAD CONWRITE FLAGS_WB FPA,ENABLE_WB5 FPTCR 1PRTM LOADCRAR N 8013 8024 20972 358617 35821 35825 -<To—[aV¥TaVE]S + O = MO OO- =0V U OOS F-MN—ONNAIO TN — O AN M-IT—TONNONOMNO—NNODO OO VOO v = NINIMMIST T T T~ ~F T 2@ 38156 N~ = OO — IO — M-I N [+ I TU I ORO O— —(UOTAh—NO—MTROO —ONOT—NOTOM o~ M M MY wn 38095 LOADTRAR UMY NOO wmQwUnr MN ONonOs MO MOy OO M~ INIR INIR_WB 1PL CL:] MO 0O GRANT ?" (MTO98.MCX P(_wB —=0ON MOT Page 1315 160ns MM M PeMST PC_PC+WB 16:30:35 19321 =iy TP~ O MO O VO NOP 28~ 28-NOV=83 TN OR NOT~ MEMSCR_WB 1M(01) —Mt P MO OOURN — OO 2 T OF I — MNANONO MEMSCR B8 CLOKX Rev 13.00, Cleck rate Defined Values and (ross Reference Listing = Fie Ld Names MICROZ 19413 19417 19460 2 3 5 7 8 I4 ? 2 5 4 6 7 5 3 2 6 2 2 3 7 46744 47066 47262 22 38282 40869 M T OO U — DO - MW — N O NN I N D O PME PREV_CUR. ISCUR_WB PREV_WB 19409 READTRAR READTRAR REICHK 23 TB_WB TCSR.IICR TCSR_wB TopcCk NO OO NI OOV OV REVLEVEL SOFTIFR_WB STEPC wB AONC0D TODCLK w8 35999 36004 36046 TUSBWRITE 35440 35492 38109 TUSBREAD MN 19464 M~ W OO0 NN OO v =~ MMM O DO O — T OO OO0 OO NUNINIMAT I TN NLALALN M s 01149126957731!1!5037655406378986869742?«19300962894 MTOMT MNOM OO OOINT— RN TN OO 0O QO MY OO A AL GO LN CO O NI CO PN O O +— ~T OO OIM T N 58/4?9/40281‘094767836493895?2064135133&86811.16398‘30 — O ao Y VA_PC+]+W PC_PC+] VA_VA+4 VA_WB _28=NOV-83 16:30:35 M01) (ross Reference Listing =~ Fie td Names and Defined Values MICRO2 (MTO%8 MCX 8170 )88031341. 8157790368 1517571557 )428438317 1762176384 70469.'786 NITI 56802 OGMMNDO\..82 OTOMG68516 T-INF46797 NDNO— 12!%639486 UVCTR_CM. IS Page 1316' 160ns Clock rate 7 CLOKX Rev 13.00, C O O OO T T T ODOOARRAO T —r— NN NOINMMM NI 3T OO OUNNIDUNI— R ONM OOV Ty T T T M TMOT T TT TOONN MAOO =OO~T O N O— = A= QO OO— (WU = P UMMM 1 & T T TV OO OO r— = —— — CUNINICUONICUM MMM MM 3~ 7 OOV—T . WDR_WBUR 7 ] 46012 46889 47139 I T T T U DT OO OO O 1= = = — IO UM MMM MM T I T T OO~ WDR_wB Page 1317 160ns CMTO98.MLX (L.OKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 M0 MICROZ Defined Values and Names Ld Fie Listing Cross Reference . CMT098.MCX MICRNZ2 1M(01) 2B-NOV-83 16:30:35 E 7 CLOKX Rev 13.00, Clock rate = 160ns (ross Reference Listing = Field Names and Defined Values ; This page intentionally left blank. B Page 1318 — oM M O 0N [ — OO === =IO T T T ~T~F OO QO oM - i o L} TN OO OUAT O MUAT D 00 O MO O OMICO T N O M OO MO (Jr— — 2000 MFTONNOUIMNIOM g e o o~ Page 1319 160ns CLOKX Rev 13.00, Clock rate 7 F _28-NOV~83 16:30:35 - Macro Names Listing Reference Cross 1M(01) MICRO2 N OTAND.R(] .OR.R[] o LOR.ZLITOL) 0 OC] X .XOR.ZLIT ] B.AND.ZLITOL M M B.ANDNOT. CONX (1 CC X _MB.ANDNOT. CONX(4) M B.OR.CONX(1) 4 cC. ZL170C] CC_ZLITOL] ALUS? cCr) CHECK INTERRUPIS? CLEAR ADD1(FLAGD) CLEAR ADD2(FLAG1) 7 CLOKX Rev 13.00, Clock rate T—M~r Page 1320 160ns MO —oung NMNOO 6 € — T — G0 0O 0O €0 0O 0O G CO €O €O N 00 CO O '~ +— L0 v— O CCOP2 SIGND CMP .NOT.IRQ? 1MC01) —Mr (MT098.MCX ,28-NOV~-83 16:30:35 Cross Reference Listing - Macro Names MICRO2 Mmnouoc 25994 26500 16608 47494 26002 26504 47509 N OMO OO T N PNV CLEAR BOOT(FLAG MMNOINT) CLEAR FLAGO ~M T ~— CLEAR ARITH TRAPS ONM —IONOVTO (LEAR FLAGA (LEAR GFLOAT(FLAGS) CLEAR MM, MOINT S 4[ CLEAR FPD 33076 —cum ["aligle) 33081 -y (LEAR FPA(FLAGO) 0) — —0O CLEAR FP TRAPS 33086 L+la¥lo 40877 40881 40885 Page 1321 160ns (ross Reference Listing - Macro Names CLOKX Rev 13.00, Clock rate 7 H 16:30:35 28~ 28=-N0OV~-83 1M(01) — — M T T T NI TN T M N M OISR —O o ——c- M N NN O O0DOOM N0 au o O M 00 INOTT TN 3O el @ 1XO Do R Ile B o )oK o~3 NW SN 6 ) VIVLD Zw O NVLVVN OE ZZZZZZZD < ON QO+ 1 a NNz D> Z2axxo wow —L VOVLVL LY ~i Lo - VIV ue- JO O =. L = Ou~ru beZa Oa —x Tute wLdLu d 20X o wr wVE3Ix ODD a>ouw =- TEE OO xTnHnw wiwtd wwwwbwiw wowo o MICROZ (MT098.MCX 1M(01) . 28~NOV-83 16:30:35 (ross Reference Listing - Macro Names CLOKX Rev 13.00, Clock rate - 160ns Page 1322 ~T T 0N A — — — [aVI a] [ «© <o© o —r— N oy O ~ OO0~ + 1 7 o —e . —: OO o~ ¥-~ m MP—aQ s e s e - & X+t Z a«o =>x@M ((((((.CDDDDDDDDDDDDDDDMMMM )} ) e e s o v o » — M EEE + L1ee P Vnv I STP . MICROZ 0OD My N~ [*ad ~Ny M M N~ o~ =2 16:30:35 28=NOV-83 Cross Reference Listing - Macro Names MICROZ 1M(01) o 4 2 J 7 CLOKX Rev 13.00, Clock rate 160ns Page 1323 0 RE SET P.TS §SIGND P.TS Page 1324 CLOKX Rev 13.00, Clock rate = 160ns 45913 38390 38405 38473 MUY 38729 38757 3889 38913 38918 ON 869 184 202 475 284 889 21 NOMO © [R<2>? IR<5>7? 7 CMR)? IPL_MCJ.RL.16 IPL_[] 1R<2=0>? K — OO INTPEND OR TIMER? 16:30:35 28~ 28-NOV-83 (ross Reference Listing = Macro Names T ~F T T — MUAN D — e r— T e M — OO MDY . (=] T (&} ~r ~ - INIR M[]_Q 1M(01) <200 N OIR . MCX CMT098 . MICROZ IRD1 NN = DIN MO O3 OO . O T—=FMNO [a¥] [~ <13 ~ (=N} —C ) 2 (f;‘l MDR”- |LSSV [anlan] —~ oo MDR [ [anlan] xo SO o oo . i < N~ o ~ —~ OMIST [ala¥led ~r —J o0 R >O (Clock rate pPage 1325 160ns M — T—ry— =[4My+Y—M - o l <@ £v Mma won 7 CLOKX Rev 13.00, —r— M-I T OFT—ND MDR_-ML] [+ < =2 = o 4 @o L T T AT AT T N NT e NOUOCUMMN UMD OO U T O OOOFOO ONO o<o MDR_(M R[7]aV i-~ il M2 ] ME O ]b—_L [ = — [=4 o o0 = w2 > —~ o . > =+ O CMTO98. . MCX MICROZ2 EMSCR_MLI.ANDNOT. (RLJ.RL.24) 1M(OD) 28-NOV=-83 16:30:35 Cross Reference Listing - Macro Names 4058 # 35546 37807 37813 37856 47190 47230 23060 34436 23079 35521 23145 35562 23198 35589 23296 39919 23326 39975 23436 40034 23540 7857 29656 29707 15806 15812 15856 15861 15869 12849 6651 6769 7398 EMSCR-RL] EMSCRZRCY M[].RL.24 4062 # 4063 # 6277 35579 6987 37733 5160 # 5523 37409 5605 23000 26196 38931 EMSCRZZLIT24T] 4064 # MM, ALLOW. INT? 5162 # zg%gé MM_NOINT? 5163 # 7853 MOPZERO(F LAG1)? 5166 # 12845 MICRO VECTOR? MOPZERD (MUL1 XOR MUL2)? 5165 # MTEMFC_(MDR.RR.P) .AND.R[] 4066 # MTEMPO_MDR+Q 4070 & MTEMPOTD_0 Q_SEXT(MDR) MTEMPO_D MDR=ZL1TOL] MTEMPO_MDR+1 4067 # 4068 # 4069 # 14828 29872 9300 19388 19290 MTEMPO_MDR+RL] MTEMPO MDR+RL J+ALIC MTEMPO_MDR=ZL170[] 1 T8[] MTEMPO_MDR.AND.OL MYEMPO”MDR.AND.RL] MTEMPQ_MDR.AND.ZL1T0[] MTEMPO_MDR.NOTAND . R[] 4071 # 4072 4 4073 # 4074 # 4075 # 4076 # 4077 # 41647 29906 MTEMPO_MDR.OR.Z1.1T16(] 4080 # 41651 MTEMPO_MDR.OR.R[] MTEMPO_MDR.OR.2L1T0L] MTEMPQ_MDR.OR.2LIT8[] MTEMPOMDR (MDR+ZLITOC1).SL.1 MTEMPO_PC-R(] MTEMPO_PC.ANDNOT.RL] MTEMPOZPC.OR.R(] MTEMPO_RBSP MTEMPOR[J Q_MDR MTEMPO_RL[J-PTBACK MTEMPQRLI.RR.24 Q PCBACK 4078 # 4079 # 4081 # 4082 # 4783 4 4084 # 4085 # 4089 # 4086 # 4087 # 4088 # 14980 13064 29881 39172 13982 14425 29891 29895 28407 41718 41722 28974 44985 45331 45502 45874 28846 29120 32034 12977 12988 39043 27768 32692 41276 MUL2 (FLAG3)? 5168 # 5169 # 12864 13090 13884 14436 15776 165383 16623 3739 & 15818 9168 9173 9178 9183 9189 9194 9198 9202 3740 & 9207 9212 9217 9222 9228 9233 9237 9241 §171 & 5172 & 14218 45673 41251 M[] BIT24? M{1.EQ,=12 14207 41708 41712 41672 . XTR. MTEMPOTSEXT(MDR) MTEMPOTSEXT (XB) +RL ] pc _P(#2 MTEMPQ”SEXT (XB)+R[] PC_PC+4 MTEMPO_SEXT(XB)+RL] PC_PC+I] MTEMPO_UNPACK (MDR RL[1)TM MTEMPO_VA+ZLITO[] MTEMPO”VA=R[] MTEMPO”XB PC_P(+4 MTEMPO_ZEXT(RLD) MTEMPOTZEXT(XB) PC_PC+i MULFAST- CAND IN RL2 23817 40376 41668 8315 146233 23562 40261 14247 83N 15408 44959 44954 12154 20742 28953 MULFAST+ CAND IN R[] 40045 19296 4090 # 4091 # 4093 & 4095 # 4096 # 4097 & 4098 # 4099 # 4100 # 4101 4 1 (FTAG2) XOR MUT2(FLAG3)? MUL Page 1327I CLOKX Rev 13.00, Clock rate = 160ns 35450 4059 # 4060 # 4061 # 7 7426 EMSCRTML1.RL. 24 EMSCRTME] ZEXT (MB) EMSCR_RTERP7Z_M[J-2L1TOL) N 14753 38152 9829 45088 45083 12165 14670 15781 28~N0OV-83 16:30:35 MICRO2 - Macro Names Listing Reference (ross ! - MRNOON (MT098.MCX O ~F - 1M(01) 8 CLOKX Rev 13.00 , Clock rate = 160ns 15841 +ALKC) .BCD +R()).BCD x m + =4 L (] + RS —d 4 [ -~ %] - A MB+RLJ+ALK() . 5L 1 MB+ZL1T24(1) ,BCD M B--R( 1) .B(D .SL MB R M B ~-RCJ~ALK(C) R .BCD M B R [J-ALKC) . SL . M B ~RLJ-ALKC).SL.T M B .RR,4) NOT R {1 MB) RL.4 R[] MB) RL.P R[Y MB) RL.PS 1 R{J+PL) SR, RCJ.ASL 1)=-MB RCDI.ASL S1Zk) 15922 29899 26760 26763 15169 1521¢ 47666 47670 47736 27164 27168 27172 27446 28461 29519 27449 28522 28524 28527 29514 30277 52280 52285 25022 21055 27206 27216 27226 28469 28484 28488 30918 32274 ALU<O> 0 ALUCO>T1 AL U<O> 0 ALUSO> 1 24744 M[] ¢ 7 L I o] MLl CORR 3 GS M(] CONX ( 1) M{JZCONX ( 2) M[ 17CONX ( 4) St X.S17 M) CONX. (M M[] CVINP(MB) ] M D+(RLI.RR,1¢) ML ID+ALKC MC1ZD+R([) M DR JoALKC MM D+2LiT12(] D Ny P MM CUOMIOMN TR M{J_e2Lltor) ML ASTLVL MLIZATCR Page 1328é 8 8018 30741 12863 1 14676 16491 7089 8040 15792 710 8045 36087 38539 38620 46720 38205 38219 Page 1329 | 0 (=] .o -~ @> | 1 | | — [snlenlan] —M —MO (8] —r > b «© Ot N© MOND nar NLY MNOT — T ~T-TOMO MT NNUIO —O OO MINO NNO—0T MN ONG (OO OTPOII MO—@ 0Oin oM the OO Ot ~ o MO I 0O T2 P O O (RO OO T UM Lt o LoeVen Yo eT MY o DL Lo LRL LRon Lan Lan LoR n LentL en SR Re o LenO T L LMI IVA | Lo Lo LoRo 0 o L ANOO0n wEEEFEFFTIFIEE EFXFFXEXETEXTE [EFXETEE lan15lon 4Tanton]1 = e OO0 MO OOOSEMXrm—U) EXXEE J Htdd Al OO — A AW ZZ2xx T E RdD s e A NN LN PNy- ATL <Z OO VX F = v = O— ~— < U OO | LT ] vo i-— ! Mb N~Noo— :: 7] o O I Tr— O O MO M MO O ~TM s e NN 00 NI D= Mz p [ :—C i] i Page 1330% oo [© - > (ross Reference Listing ~ Macro Names [e i 8 LU s EFEE MICRO2 1Mo .28~ o ? 2 D AT O OO N0 ~ DT~ L W R L O A R R ) DR U LN L L 2 L L e | F ETTETTIFTEEEETESEEIE EFSEXEFEEEEEFIEEZXI FEYX X EFEEXTEEIEZ E M iT ] v» ;i OOo i > MR OONMMON TNV— NOD~T ——ONONNIT—MNCOODO T TN AU CUOUNO ST FMTM O T O O O = N OV 00 COO~T TM ~ ~—~ ! o OL 0—_— 0 38149 38033 37841 37827 36120 37690 37708 37804 34547 OO OO U PPNNPN AOOOOIONT —O N= OOOO 3— OMUVO . ~IG R AU ANaeuA AI OBNIyCO Ny = MUIO< CUO O UMM AU I T II NIT OOITMN-TOOe I I T OOV T IT T T UI T AU —it— [mao |M= |— @ — ~—L <4 o o 29779 Page 1331 160ns CLOKX Rev 13.00, Clock rate -] ;W &) X — () o o =[ = >< 27454 oo | ' (=] Mz T x= [« I S —~— xo a2 T —~ . — w O O D= OV O DN = TM) — OMONM — MO NIST O N =~ NN OO OO ———C —MRuRmn=NITOORRRTRO0 ROVO—INT TMO—NMNxRMOOTNORIRRTRTOO IRRRT= OOMTR R - Rl 7] : Page 1332 [=3 iH [> QO OO O WOONO OO0 N\NOO W — OO e— O LA O I GO UM GOM B0 O D+ GO r— ~F ~F — I ' i | | | ~ zo -— (=] Page 1333 0 (=) |L] ~ oV.- o0—0d ~gFrOouOd < - (! M= o 6464111222201488792?774222223333343333334‘449‘444455555 -e [} nOy OBNOSl0 — OL Auinen O— oMM T© ~[aVTaVIRERYa OOON O0XOTO - 8% o wy ~ o— o 3 X = —M MM o 5o ~ TM N D R OO M M M M MOOIT O TN — OO — O WVN O OO0 e —— [YaXVel¥aRVal N o L e e1. o [o ko gl ol LA LKy n VWMWY LAVLUVuvnuiv.yNnyvvavav RN — ! Pl e. - OOV~ @DMN O I N OO UNNN OO <3 COCUM COWN OON DO~ AN—AOR DTN ONONONOONT IO — m = —- Nz O o0 o XX d d ST A O i QW)W l M NN wM -Z~+EMO e e(& 9. A ZZMN IIWLW 2 JJ3II Sd Sd Jddd VANN ad DY OJJdDUV o NO000 LULLwCOEXZ WV ==G NUVIVJI BNND EEX TVDBNN ESEFE OO s ar—O N2 — EZ rmnov oc-ne Wi W L FLr@EIZE VWU ¢+ DA OISmrO -- Tlo)-eAwwaeaQ@OA@ U~>>~~ VVVEow OVVe I sooe e 2 b !. e el x —1 —~ Page 1335 160ns CLOKX Rev 13.00, Clock rate 8 I 28-N0V~83 16:30:35 (ross Reference Listing ~ Macro Names Mon MICRO2 . . RNUM_PDOPRBS MTEMPO_POPSIZ RNUM Q_D_G+1 RNUMZQ0¥1 RNUM RNUM RNUM RNUM RNUM RNUM PR CHECK? ONX(2) 8+1 B+CONX(2) .l — — ] M o)[y-— — ]A 6 1 2 0 66 561 oN—eo((==~]] "] RNUM RNUM RNUM 211701 9 1 8 5 1 9 9 O RNUM_Q_Q-1 5 2 @"oN~- RNUM_D_7L1T0[] A - RNUM_ D_ D+1 RNUMTD D=1 Page 1339 CLOKX Rev 13.00 , Clock rate = 160ns D RNUM_1 OO GO0 OO0 — m R e NN NI TMY 5— w RNUM_O 8 NOODMU O OOCIN =NCUMT NI OO OO INIO NN INMNIN MMNON N D—T RNUM.EQ.7? M +MO — NN T 28-NOV-83 16:30:35 (ross Reference Listing - Macro Names 1Mo MICRO2 CMT098.MCX [ | | —NA NUN. e~ L AL S —RAAVOINUON AT ONON MOO ~N w QA ~ -~ + + 4+ 1 OO w . E EFrFFIT IS STIISIISITEEEFYFCOCOOQ@aQax oaxaxam — i — —— o N N S S A S N A S S S e e e et et sty et o P FFEFETEEIFE xo 12 Z_ QO —_ oo L [ 5555542555555555r)ssr\zsssu.\_ssss YA N AN AN AN RO N C A N D NN D D NN NN BN —r—C N o A N O 1 1 - — . 723 ] . = @ -~ - Page 1340 160ns i CLOKX Rev 13.00, Clock rate 8 N 1 28-N0OV-83 16:30:35 Cross Reference Listing - Macro Names 1MC01) MICROZ 8 . MCX CMTO9 MO MICROZ 28-=NOy-83 16:30:35 - Macro Names Listing Reference (ross CMTQO8 . MCX - ~ e~ra. ~1 — v . — n 1 B8 9 CLOKX Rev 13.00, Clock rate 160ns Page 1341| | 28=NOV~83 16:30:35 Cross Reference Listing - Macro Names (MT098,MCX MICROZ 1M(01) ¢ i 9 CLOKX Rev 13.00, Clock rate Page 1342 I i 160ns i TMNe— N 3667988?968‘40760813352732013.(37 0433 O 2X- 2l — ~ S ~F wmeo =] IalaL N J+RB+ALK( 1+RB+PSLC [a¥] ~ o © (o= Oo—~ [a ¥ ~r w TM~ ["al |a¥] [Ya) — co o~ M o~ TM~ — o~ ~” M %) — o0 M ~ [Sal wy M M ~3 o o o 0 ~ 0o ~0 wn [Tal M ~r [=4 ~ (=] [al CMT098 .MCX M0 0 o axoa 1 MmMa2d om—Jxoox M 7 —O Moy 21040 21597 29086 33137 36028 9 CLOKX Rev 13.00, Clock rate 21673 21686 Page 1343 160ns 24557 24718 41746 41755 [« oo —~~ Ne— OMNIe— OOV —~ — e ON WO E O—~3~T~r0 ©© O ——NNONMYY 8 O [a¥] 1. ~NTT~ aYe oX AST N0TT MO — O T b D -~ Lake —0 16654 41766 Lh~a —lo M~-—(=] bl~—(=] " M~ —- ~ M 6666666666166066466666666666666646666666666 Ca L 1o L L Yome T Yo Vo B o T} b= wo a o — u O ]B . 28-NOV~83 16:30:35 - Macro Names Listing e Referenc Cross MICRO2 ! . gNN M O O =M [ — >< e o oO TR OMON OOt O SOOI OOO NIM—— " O OITMNDO O OND T NGT OO0 O ONQMM OO 0=O ——O AN T A N Ne— OM (I CRMMasOTMO0 ~ 8 LR L3 i ' MmZ - @> -~ o T !O Page 1344 1 \ i | — o 7] : cw 66667777?577777777777777777777_./77777777777?777777777752 oE ~ > o O ~TCONINUVMEEFIEEFIZIFEEFO WO ~r = wuirm — = FEOXN+ + + + + + 1 T 0 1 B P L1 o » o o 8 s o v e o o o o 0 ¥ s v 8 o ¢ s > ¢ o o o b 3 NDDDXx JJJxx NCEEEEXEXCrarxa RXXDxon.MM.I~ OOORRRRR OOOO OOOO AAOO AAAABBBBB CCCDIuLLMMQAZZZNN BNNE BBBBB BBBBB BBBBB BBBBB BBBBB 1+xoODD@MCCO DEDDOOO OO0BBBBB oo- eUt 1Do - ~E i(54 Eo —! ] 28-NOV-83 16:30:35 Cross Reference Listing - Macro Names MICROZ CMT098.MCX . ’ 1 - L £ s S<3=0>,NE.Q? wi LWL O - —o SET BOOT(FLAG MMNOINT) SET FLAGO SET FLAGZ SET FLAG3 glLaaVMeY 9 CLOKX Rev 13.00, Clock rate Page 1345 160ns oOM 15840 16615 47499 47504 o — 00 COUMI— O NS0 SOTOI SET FLAGI 3 00 — a Q. — 3 R[] RC] R[] F @M ON—O OO® I RLJ M OO0 MONI— T 0OF —OMn T — M2 0O~ O OO0 N OTOUCUN | RL] R(] RC] RC] R{) 1M(01) SET FLAG4 SET FPA(FLAGO) 25620 SET FPD SET GFLOAT(FLAG4) SET MM.NOINT AONOCNUD 26123 26472 — M ~3 Q he] =] - 2 ~ 1] > - -— [72] ~ — -g] ~ e e e T TC OO OOO M M — = =—=Mrr(UMS A0 O00OOO Cw~NOL oo 2N M ul ——— s OOWE— EX Xo O —W2ZO @ DZ wL—— 0D a>0w e[+ UitNeN o oa >I-w WVWD> nniy LxTBn EFFoO O OO0 e b= = e e b e b b e R ~——N ER TR —+— TR 722 93415 02433 27)69 45/46 39706 84895 32[# 3456? 89012 3?958 83622 80857 92470 94236 16478 1182222628 7978839201 7777789901 N [ 66777 Tt = ~O OOV OOMOCCr— i MNMOMOOMIO T TMITOONDVAROR—RQOOMNIN-TIMA O ! Mz Prar=1 [oY]| T = Cross Reference Listing - Macro Names . 1M01) MICROZ . MCX CMTO98 . 26582 —OINIM IO ONOeN — UM I MYOO0r— - COWNO AN<2 OO vO— MI O 00OMAO~FN OO M=NNWO D OO v—O~GO OO MY 28849 OO UMM TN ON DO — r— == v U NNTN0O TN O NNF — 003 MOUVM O OMN M — MR O MWFDTF MM 3T M3T MMMM NS 2 06032 32249 7?1213801. 295323539494052697765337326875954588145060500 02 34679 58135 31282 50838 14684 2367« 203&6 26804 T ST ST N T S T S NE w In»lfil 3333334 333333395496 2222222 2222222 2222222 1|1.|4| 111111. ,: WO OO 9491.80134 2191505981 8723054964 2824171259 62107 697?6 196/4 57802 12814 9?282 46805 2367116262 2924590933 158047/».1 .'111|1111122222222222222222222223333333333333444Ifl/u.lu.IM ST NN 26425 Page 1347 160ns 9 CLOKX Rev 13.00, Clock rate H 16:30:35 28 28-NOV-83 1M(01) 28-NOV-83 16:30:35 MICRO2 Cross Reference Listing ~ Macro Names CMTO98.MCX I 9 CLOKX Rev 13.00, Clock rate 160ns Page 1348 TN T TSI TN T T M M . — oO 172 [+4 M ~r \ 28-N0OV-83 16:30:35 = Macro Names Listing e Cross Referenc 47244 35066 35078 35381 35385 35477 35817 35821 35825 31752 25872 37482 26593 38770 26645 39179 27048 39189 27704 29213 29355 31527 CIN— £ NPD SHn— 21874 21790 36888 21870 39086 21892 42706 26337 44629 26341 31336 21471 21542 28665 21546 29697 21768 6746 36667 35588 =10 O WO~ ~I~~ Nole le) ON — VION — WO w0 P, LAV o Lo wWe NS0 O~ O oW O ) oO— OO~~~ NO P OO O V] SO~ Eal AV - AN} oo OV o~ — —— 21794 [AS LA 20899 oo 37763 VI 18405 DO wis uo NI =20 15716 LN 42896 16532 woowco 43097 17075 22046 42958 20814 21730 47204 0o 21621 20134 36570 29643 20536 40655 ~N~ 5796 20123 7219 30967 20569 40641 35390 38109 43185 26899 25868 28154 5526 35126 5917 5712 43037 43087 43083 5698 43235 43057 15991 21988 40365 S [s-Je o P L D AL O 36046 35411 5951 35492 43177 26876 25806 21588 40249 35375 5954 8640 25717 25660 35696 6678 7816 CoONU VA_MLJ+RC1+1 VAZMLI+ZL1TOL] wy VAZMLJ+G+1 VAMLI+R(] A VAZML1+CONX(2) VAZME 1+CONX (4) N PVE S VAZML J+CONX (1) — 0o 00O~ 000000 C0CO0oN) — CoCo 0o (R[ 3, ASL.S1ZE) VA_M[J+ [N P VA_MTEMPO_VA.AND.OLITOL] VA_MTEMPO_ZEXT (MDR) VAZMTEMPQZ ZEXT(XB) PC_PC+2 VA_M[] O NN SO V= OO0 0O NONWNWES =NOO O VAMTEMPO_SEXT (XB)+R[] PC_P 5960 i OO LW VA_MTEMPC PC*SEXT(XB)*Z PC_PC+? 35440 13331 47233 35598 35624 Page 1349 CLOKX Rev 13.00, Clock rate = 160ns i —_— VAZD_ZLIT VAZMTEMPQ_I VA+Z2L1T8[] VAZMTEMPO_P TR TTRRTTTT TR INVALIDATE 1B TR VATD+R[1+1 wn [P E S R VA<O>? VA_D+R[] VATD_D+ZL1I w B o I TUSBREGS_ TUSBREGS TUSBREGS_ TUSBREGS_ TUSBREGS TR TUSBREGS _ VA_C+2LITOL VAZ D~ZLITO VAZD.XOR.Z xR PN TCSR_ML1.OR.R TlMEE’ DI Ae-N DN NI TB_RL ] TCSR_O rcsn:m[] AND.ZL1T16[1 13326 47193 35584 35612 5929 35368 35337 8019 35436 35430 35427 36004 35417 35062 5488 38156 5495 5507 oo PARITY R £ CO MU 00 G0 0o 00 0o Co GJ 0o 0o 0o ©0 0o 00 CoNI COCa 000 (NRORDN D = b b O = 3 = OOOODNWOOOOD =2 HNNO NNV = WO RO SOV —=OOVONO TB_BAD T870+71 1T8L1 R SUB(FLAG1)? TTTT TR M0 CMTO98 .MCX i 9 J 28660 Page 1350 0o [o (& - - o— FEw _— 4 Tw [ = rrr o —r — e ~= .~~~ —ge IO e s e e e DD RO ¢ )¢ U U RO — ~ 0 o -~ UL =T% LR R L | O e O NC rNNJdoD J2 L O > > ~— & ooG + ¢ )b xW L D L LI L e | UV. e s + + + -+ b e QL T—N. G ANMMOM OM OO~ —MOANION— OMN—OMNIOM RO—D MM] NNO j>Te e— r C O ON COMMN — OV ~F (N0 ~T R IM OO0 ANO CITOIN OMOMA COMNO oI TN O — O ST AU T PP TN O MR VNI NO OM NOOOON V—~OOM OD OWOVNOOV —~OC® A Ny [=31751 ON OTM hO~F— OMOD - TR oI TR TR TR 1 Mn=Z > omu ~ p= 16:30:35 28-NOV-83 Cross Reference Listing - Macro Names MICROZ2 CMTO98.MCX MO 4892 # L 9 CLOKX Rev 13,00, Clock rate 20195 S 1Z2E R B-CONX(2) R B~D SQ&ADW& s Page 1351 160ns Q ONX (4) 21512 23540 23544 23888 23324 23329 23825 o Ao ]} (Yolg-cl J+RB J-CONX(4) J-CONX.SIZ Q_MCJ 21442 B+7T 21535 21584 21650 22772 23833 23838 36878 39335 VA_RL]_RB+CONX. 51 Z VA_R[I_RB~CONX (1) VA REJ_RB~CONX (2) VA RLIZRB-CONX 4 21158 39166 45607 VA R[] _RB-CONX,S1Z VA_SEX T(XB)Y+R[) PC_P(+? VA SEXT(XB)+RL] PC PC+l VA_VA+4 VA_VA+4& CLEAR CACHE VATXB FC_P(+4 VAXB+R[] PC_PC+4 VAZX B.XOR.R[J PC PC+4 VAZZEXT(MLD) +R[] VAT ZEXT(M[]) VA CZEXT M[))-R(] VAT ZEXT X8) P(_P(C+2 VA TZEXT XB)+R[] PC_P(+] VAZZEXT X8)-R{] PCTPC+1 VAZZEXT XB)=R[] P(_P(+2 XB) .XOR. (R[I.RR.8) °C_ PC+T 494 VAZZL1TOL] wB<0>? VAT ZEXT 45305 45388 45475 45717 MOWNTF-NMCO TeN=ICUMN NONO— 45621 45731 45832 45919 46023 45847 45936 46038 T M 9 CLOKX Rev 1 3.00, Ctock rate ONCON.I > 28~ M0 28=NOV-83 16:30:35 MICRO2 Cross Reference Listing -~ Macro Names W-NMeJO— e—OA (¥ e s PENWP VA PP s s 4 [ |24 N ~ [+e] ~ 5 160ns Page 1352 LD ST 28-NOV-83 Cross Reference Listing ~ Macro Names 1M{01) MICROZ CMT098.M(X — UMD DT NN OO o ST WO o0 RRTRT R xR Rz R R kTM a o~ LAO - — <O DuwL. o TM~ N 1 Z 3 Aamr—oud I e e —ocoaoad DD ao ——— DO IODDDOVDODPHDDDI@ DD DOODA DD NN e oo@o@m OO0 =] o o~ Page 135 160ns 9 CLOKX Rev 13.00, Clock rate N 16:30:35 37693 37718 37736 37743 21384 21394 32634 32701 42113 34837 34863 20539 20750 20954 32654 32996 WB_ ML), AND., Z7LiT4(] WB”ML].AND,ZL1T8L] 5010 # 29};7# 20393 7372 20398 11811 20403 12559 20408 14733 20715 WB_MLJ.ANDNOT, ZL1 0C] ), ANDNOT, 2L 4[3 WB_ML ), ASR,-P WR_M{ WB_M£].ASR.P wB_M[].BCDSWP 5012 # 5013 # 5014 # 5015 # 5016 # 15996 29659 9702 35213 32535 16990 29069 Q71" 17237 32861 9795 19153 32878 WB_ML).OR.R[) 5018 # 9816 9820 33077 6482 39015 38101 39048 41377 39146 4661 46618 46625 46638 46645 46651 46658 46671 6477 6312 7313 6340 7329 6354 7337 6368 7344 6382 7352 6396 7082 35455 6326 321 849 24376 25357 27112 46632 46665 19588 21049 7368 7643 7647 7713 77217 wB_M[J,Xx0R.ZL1T8[) 6410 5030 # wBTML].XZ MM 5031 # WR_PL*2 50383 # we_u O_Mll 5054 # WB_NOT(ML].ASR,~P) wETPSL WH_Q wB_QwB_O-M[I wB_Q-R[} wB~Q _M[} wB_RRUM WwB_RI] wB_F[1+0 WB_RL]+1 6424 7054 15398 9843 41560 19302 41641 22730 01662 35607 4169 35655 5037 & 5038 # 15328 8260 15502 19404 15525 41915 15541 5041 # 5042 # 5380 8992 7132 16203 16262 20479 5034 # 5035 # 5039 # 5040 # 28086 614660 5043 # 19352 9038 28278 424N 29748 42530 33509 42802 33642 42952 8995 18685 18688 36517 5046 # 23085 23253 23725 23829 26027 5048 # 5049 & 11015 19357 11019 11169 18320 19309 WB_R[1-D we_nt)-XB PC_P(+4 WB_R[1-ZEXT(R[)) _R[J~ZEXT(XB) PC_P(L+] WB_R[J.AND.Q 5050 & 5062 # 5053 & 5055 # 24073 23766 24082 19173 5057 &4 9825 WwB_R[].NOTAND,Q 42097 7745 5044 # 5047 # wB_R(J.OR. (ML, ASK.~P) 7070 9799 20224 WB_R({1-0 wB_R[1-M[] WwB_R[1-0Q 7058 6470 9710 5032 # 5045 # WB_R[1-CONX(4) 66463 5056 # 35239 7360 i i 42682 34,688 36522 39478 2297¢ oW 6298 — 6284 4669° —_ 6280 46685 NN 6228 wo WB_ML1.XOR,ZL1T0L) 5029 # L6678 i wB_M{1.XOR.R[1TM o~ 46586 36030 ~N~ 46604 46579 ~No~ 30699 5028 # wvo~ 46482 46572 47375 —2 O AN 5026 # 46593 40492 30689 FREN 5027 # WwB“M[].XOR.Q Q_(G,SL,1),0R,1 40621 30695 40487 21958 ONO O NN WB_M[],XOR.Q G_Q.RL. i 40482 5693 32963 PP WwB~MLJ.VPN-R[] WB"M[].XOR.0Q 5022 # 5023 # 5024 # 5025 # 32963 Ol (V] WB_ML].RR.& wB_M[].RR.8 WB_ML].RR.P 5019 # 5020 # 5021 # 32978 32554 N NN wB_M[].RR.16 WB_ML].RR.,24 S017 & 37844 E wB_M[],CLR/’B 37830 Nol o 5008 # 5000 # WMBTMLI,AND. 2L T240] Page 1354 Clock rate = 160ns r0 WB MLJ,AND, 2L 172003 B 10 CLONX Rey 13.00, — 5 (MT098.M(X ‘287N0V‘83 16:30:35 MICRDZ 1M(O1) - Macro Names Listing (ross Reference cr67? 40555 i 2381 24135 c4128 19177 i | { ; —» [ [ :! -< Page 1355 0 (=] €. o b 2 |= @> -3 =o ! — 0 ) p— 13 ]ME .- m aa e) 3 ' o~ -y Z2Z -— FOTMOW-NTOND ~— OR—OOMLnOgM - o} OO ~T (=M P~coNIteMM MO —- CMMMONIMPMPM —o . S [o 0 ACA00ICICLCCODO0xTw s L A M b e W L W s Lo i A e, orrarITITITcroaoIIZTTros xraxroTITEcxaTa corxo . ars DDOOOIRIFITIFDOODOTRXIIIODODDIIZIIZIADNAIIITIIDCOLE T2TIZTITIZIZ ZIIZIZ TTIIT az— = e Y N i L tate elYailnlmlotatatandiil 't1ol : © Y i) W ) W L W W D W W W U W @ D Dl W) il b W Ll [ay i Page 1356 0 (=) oo - ! @ ![ ;© MMM O — OO0 —r— 0N NOON. coox 233X . - [7al o OOy OVOs N &N NI MON U Q. IR | [ OO FOONONOAINCNMIAME MO —0 NN — O A N A NGO R = U= NN N OMA (IO O 0O TR TR BRI TRTHRERRIRRI TR —— I ! )- PT ! om -—w —=v Zo ot F)— (=) = E=Z s 22X XXEEXXMrN w1 )Jd20000NnNnDSIDOD~O FTIZIIIIX IILIZIIZITIZIIZIIIIZITITR - o —J e H 8 . MCX CMTO09 MICRO2 M0 . 28-NOV~83 16:30:35 Cross Reference Listing - Macro Names E 10 CLOKX Rev 13.00, Clock rate 4 2 0 9 WX.NE.O? 3246430/425 WX<15-0> .NE.0? wx<31-16>,NE.O? WX_CONX.S1Z JEXT(MC]).EQ.O? 0 1 9 5 0 20 89 79 OOM IR OMNO— OO CNAMO IO TN OO O 97487841372?53953 9 14 8 3 0 5 7 0 9 8 1 2 7 Page 1357 160ns ’ (MTO98.MCX MICRO2 1M(01) 28-NOV-83 16:30:35 Cross Reference Listing - Macro Names F 10 CLOKX Rev 13.00, Clock rate ; This page intentionally left blank. 160ns Page 1358 E Page 1359 160ns >Q —o oo .- e el Mmc =4 AP O M O 3 O T = MM MMM M OIN— M~ Ane— O\tne— Ovtnve— ANy — UM NN b Looin tnoown A 00w LNoON RO UMM R N0 CIRNM R ARG AR CANINM = OVAC MOMODOMMME OO OUR- N TOONOMOU ARN OOONCOON OO O OO oO oo -—@ CLOKX Rev 13.00, Clock rate (o] v 11 7](g 1 oo > -- o——_~ Q@ To~—L@o oQ T — (= o o = — (=] (2] (2] = fd > 1M(01) MICROZ CMTO98.MCX ’ - 000 LN CUMMMN A G000STST O =OO~COM MMOOO~ M— 0OO \IOO I 0vOO=\ —UMYOUNIOUCUM NN =IMINMMO—M — MM0 €O0 v— WOMINIA O O 00+ O MO MM M IO OMO eO M-eOOOOe (O MMM0 MMM —on o—N0 —00 MNN DO TNe oOON— — =IOIMOC.MAN OO —0T OO0 OO N MMM O O OOOOTGO o0 MMM MMM = = =N— AIMOAN O MININ - — =0 MO MO MM - — ~ M M mMmomn O DO o= U VAU MMMM MMM MMM ST SE D0 0 v r— — — IO OO OO Mm M Mo O O O O T OOM O O — MO 00O AN ON O —NA MO N3 OM—MOQOC o o000 ©O O O O — O T OO ODAUMNON — NN D OP- P OO — OT 3OO OVONUMUINO NO ROR O T 3ONONV ORONOONC NN OO O © T TOMOA OOMIOO — — — 0O NN 689111122222333333333334446891!111222223 OUMNIN 0O NI — N9764 O O 88502 O T — 75615 O T49564 OO — N OAIMIN ONOIMPA 85008 76458 85029 an Lo Lo ] 56158 e T o Ton Lo {NTIN (O7o OTaS PaSO NWNTINT 2223 11122 46891 33344 33333 22333 11222 68911 oumM — — — MMM O e D— O OIS MMM MMM M MMINMIFIAT I SN O e o e r— OO u UM AU WNE — = — = CUMICUMUM 8989895151 22223 1111113381 44578‘6667 3333412399 3333378881 22233556?7 1111233814 2578166671 2323293994 1232351519 11111 Z 22000 0 Q. - = = £ X E E EFO — 39393940404040414.6.|9266671336135566?78880126192666713361 So Page 1360 160ns CLOKX Rev 13.00, Clock rate 28~ 28-N0OV-83 16:30:35 Names Expression Cross Reference Listing - H 10 CMTO98.MCX 110 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 MICROZ Names n Expressio Listing Reference Cross 1M(01) Page 1361 160ns FLOAT.RIL FLOAT.RZH FLOAT .R2L FLOAT .R3H FLOAT.R3L 0o8[1Pat¥el-zo1. - k="ala"] ot T ~F T AT T ST MMM MMM 00O O T T T T T T MIMIMM MM 000000 O d 10000 o = . CMTO98.MCX . INTLOG.R3H INTLOG.R3L J 10 CLOKX Rev 13.00, Clock rate Cross Reference Listing - Expression Names 160ns o OO0 O O O INTLOG.R2L 16:30:35 M — OM M OO~ — O — U N O I P O N O = N O M = T OO NP~ MNP T INTLOG.R2H . 28-N0OV=-83 [o N « S T o0 * T e INTLOG.R1L 1M(01) 577??8041725647055?2840683580285840502 INTLOG.R1H MICRO2 Page 1362 . . .MCX CMT098 . IRDX.RTH IRDX,R1L IRDX ,ReH IRDX.R2L VO WOOO 0076325644262?0076325644262?00#{632564‘262700?10 IRD1.R1L 7281928198833442364159588334/u.23641595883344236415958833 IRD1,R1H K 10 CLOKX Rev 13,00, Clock rate = 160ns _2828-NOV-83 16:30:35 MICROZ Cross Reference Listing - Expression Names M0 Page 1363 CMTO98,MCX 21402 21203 21352 21402 21203 21352 21402 21203 21352 21402 21203 21352 21402 21203 21352 21402 ST 0 N 0 o N N ——eCUNMSE O OMe—MT—r— N N 1N " v ST MON0M NOOO WMNOUMON T O — I 21352 00— r— OUOUOUIMIMY M MIMIAT T 0 v— — U UM NN O = O INGD NN OO N OO T INO S 0 — O VON— O FINO ==2 MM MM MIMNO O — — UMMM MMM AT SO O v — IO Neli=Balialicl+] CUR LM O MO T ON ST — UM CO MM MM MM O O — — NCUMMMIM MM N2 OO e = U UMY OL « 8 O C C O O TuxaoaxXoo) AD FOOLAAO et ¥s s¥ £e o£ =X EEEEEFT IEETE FTEFEXIIEF Fy B A L8 L B G A O o VIR o VIR o VIR o VAN o % BN A 2 MMM NI—N.CUOr O O © O © o at aN ] T T D S SN o VIR o VIR o VEN E o VINNN o VERNRA = 21203 Page 1364 L 10 160ns CLOKX Rev 13.00, Clock rate 28~NOV=-83 16:30:35 Cross Reference Listing ~ Expression Names Mo MI1CRO2 L. | .~ | T 0000 OO0 e ) MIOTON M» O I L 4T Je—e—0ONNOuMME» UMM OMO T O~ e OO0 s e e e e e S>>0 SN ODOOTMO OO0 OO OT T TP T T OO =M O DD~ OO OOV OV ONTFw OFDVDNONDVOOO R R T R -— € WO OM— T 12] -- ~ p-] — L= [~ = (=] > w | i Page 1365 0 |© (] 2 - — 0 2 6 6 04 5 77 58057216462331508548609243015738803827251?)507J4¢|98622792? 5 6 8 1 7 8 19 14 7 I 3 0NN s N 4114306855899591054Q,03297610003498817058449911 COMT ——— e — MM GO O O O NIMIN N O OO A VM M -O— O NNIN. OO— OOONIMNMOI N OO0 ON TN O ON UL —Me—YM OO ArAMOCO 4 Page 1366| 160ns CLOKX Rev 13.00, Clock rate O v00.30.41 —~ 246780581‘1387780596794829-{03:-.6791468234680.1912509478772 i wy owm -— ~ =— e (= = = [=4 o ao = [=3 > "N I r—r—— —— CUMIM T TN O OO OO~ UM T VN A e OO O OO Ot NN TN OROOOO S MIST T T T T ~T T UM AN O O 1 v e — = T OISO U O OU NI AU O CU CIOIO N U N CUCUM MDA M A v000 N M — 3OO UM 9735568886709\(6475671457840483886127‘978/«1 0 ]1628424669126687907554227«12]02335894462226075396312329 v00.30.80 v00.71 v00,71,80 Page 1367% CLOKX Rev 13.00, Clock rate = 160ns 28-NOV~83 16:30:75 Names n Cross Reference Listing = Expressio 8N MO MICROC (MT098 ,MTX ? MO = NN MR LN —N 3333333333334444444444444444IwL.4444444444457333344444568 251416676824005149490491482727-)510801306052431680688976 WVOOOPMIA N OO O OO — — ONINININMMAT T ~J NN N ~y (=4 voo2 Cross Reference Listing ~ Expression Names ¢ 56 6 52792665979569599375984468628254155339751 Vool Page 1368f 160ns CLOKX Rev 13.00, Clock rate cn 16:30:35 28=-N9V-83 1MC01) MICROZ (MT098.MCX CMT098 . M(X ’ . 1M(01) _28-N0OV~-83 Cross Reference Listing - Expression Names OONN OT IOyN ON NT NIST LNMOQNOOTN — IO NODOO= OTN— —OCUNI v004 v005 v006 v007 v008 MICRO2 D M CLOKX Rev 13.00, Clock rate 16:30:35 39736 160ns Page 1369 Page 1370 160ns > w -J — ~ =) — N e OOMOo.cun O 017?404295?526346211950452014?544801149? O OO ARNOUMIU O NSIIN0O » o D e AUCN UM OO LA N O MIN I T MM O OM O M T I I I NN o 96666396236099662?26.68106057375815912233752826993349902 —N— Rl r r W T O MM 4444534633349111456888991 — v = = — = VOO OOV I OOV M MY MMM Y 3 T T r Lal= M I OMTMnM 349111145?88899111111111222222233333333444/&. & OO CM O = M T PO MG M ORI +— G0 O v v—~3 O e th o OO MNOVGOON UM TONTI CLOKX Rev 13.00, Clock rate OO (] = =) >< LI SN A A £k bl b g OU0 NI 00O T RIS TNOO —OIO DOM T O =T VDR O — — OO OMOOAr— NN — OANI OO0 30132 COON DO OO0 N r—COM- v02e TN~ IROOT ANT AN OO = OIONMO v021 = OUST T TN PN OO ON O OO MNP O O —MUN v020 Cross Reference Listing - Expression Names 28-NOV-83 MO MICROZ CMTO098.MCX > v02.33.41 Page 1371 160ns F 11 CLOKX Rev 13.00, Clock rate 16:30:35 Page 1372 CLOKX Rev 13.00, Clock rate I 160ns 6 N Cross Reference Listing - Expression Names 16:30:35 28-NOV-83 1M01) MICRO2 CMTO98.MCX 0O (UMMM TINON-OO— == OGIO COOTODNTINARN O OO0 OO0 VNITOODTONMN AT S MO UM N AOR 0 v e e e U AU O UL AU O O IO U DI N I OO UMMM —OUOUCUMMIMIT T ATT~ M~ Oun~r Cun-e LA NO O O ==t — — — — NI IO AU U OO U NI O OIS OV NI I O U UM — O F OOV OMONA N O —ONOODN NN SE MSrauMne CuMn-r LALALA O OO O~ v r— — e— O T OUOU IO OU O AT U A U IO U UtV EOIOINIMMMT T~ —OUOICUMMMISE TSI~ Mo i LALALA D00 OF o= 1= 1— o — v— O OU U O O DI OU AU O U O NSO NI IO UMY —OUOUNIMMMT TATT O~TN (UMY LA D 00 O8 r— o 1= v o= — OU O U OU O DU OO O OO I O A I OO UMY 3 TN OUMNSEE (UMM Ninineg S~ S <IMIA — CUOUOUMM —ORN — OrO OO ——ONIN=RONO CMT098.MCX ’ v033 16:30:35 H 11 Page 1373 CLOKX Rev 13.00, Clock rate = 160ns (ross Reference Listing ~ Expression Names 357 626 789 939 3080 4369 4593 4786 002 92 0 9 3 6 3 0 8§ 6 8 9 9 8 O=N ST <3 T ONMM OOMOMOOT M r— O~ —M ON OO T ST N OLN O OO O ANOOLNOM OMPMI— v032 28-NOV-83 MIT ~F TN LA OO OO OO R AR DU T N OO OV vo31 MICROZ 1M(01) 28 35 20 66 01 5998 6765 6783 6791 6806 CMT098.MCX » v04.33 3 888999111nl114'1!4.'11122222222333333334444444444444 gl V035 v036 v037 v038 T TT IT MTMMMMIN MMTTT V034 IN CLOKX Rev 13.00, Clock rate 28~ M) 28-NOV-83 16:30:35 MICROZ2 Names Cross Reference Listing - Expression Page 1374 160ns 3 5 8 3 5 5 8 3 6 6 9 8 0 6 9 5 9 0 40250 40441 A A 4 CMT098.MCX . ’ v041 V051 V052 V053 V054 160ns OO — OO~ OO OO FMMAT FTT N e e e OUOUOUOUIMIM M 3 3 3 ST T OO N04G 1M01) 57334444561111122223333444444444399919991999199919991 V04 .34 V04 135 J 1" CLOKX Rev 13.00, Clock rate 28-N0OV-83 16:30:35 Cross Reference Listing - Expression Names MICROZ2 Page 1375 . 1M(01) .I./no NO 10029 318 00 83 —NcO 6 V062 2 ONM O oo OCOOCOOOONNNNOCRONNMOC 39549 3635 #9850 9933 39542 OOOOCOONMNMNMNMNAGROONINMMO V06l 9898 9981 Page 1376 160ns FOOOOOCONNM’NMNNOOOONNMTO o AT O —OIM T O OO R OO — =T MM O - NIM N06.36.40 V060 K1 CLOKX Rev 13.00, Clock rate 16:30:35 28~ 28-NOV~83 Names n Cross Reference Listing - Expressio MICROZ ey — CMTO98.MCX QOO OCOOOONNNNOCGC OO NOOOOTNNOOANOOIN —OTON — T O TMe— OO DN TN OINMIN N — OCOCOOOONNNANORCO UMMD e e e (UOUMMM ee — —— PO~ AU O O N <2 OO — ON T OOV — 69890 7?899 e e,9225369890000007777899922536 v e 7892“ e e e e 1_-!?7 OO 00000 — O UMM ——— e 92253 AU N SO O M CUN O MO O NGO S LY OO OUCHNMO OB R OO OO OONNIM OO C O CNONCUMMIN.O OM e 1= = — = r— - — o — OO V064 o — ae — =)[y o [@l=) QO O— -3 — -— |4 O O MC = > Q. e~ —~Q @ -o Uel [ . COOOONNMNAMMNOOCOONLIMO GO G MIN 00 ON ON O D W 2N LN — R CO O O — M OON NI M OMA RINLA00000 OO A —69890 — OO 92253 MM} r—v—~F COCh R A CI O 3 UM = O O~ ML ~T 1= 1 CION A 6 92253 77899 000?7 89000 25369 90:92 77778 77899 V063 Page 1377 160ns CLOKX Rev 13.00, Clock rate [ > [ o o x — [=] (223 o] = 2 >< OCOOCCOOOCONNMNMMOOOONIUNMOO COOCOOCCOOMNMNNNOOCGONNMOON — T OITM = O NN DN-TM— O MM N NO UMM DOCOCOOOOONNMANDOCCONNINMMP. DOOCOOOONNNNOONO VRO OOOCONMNMMNOOONOINMMD WO OOCCOCOONNMANNODONCONNOIMMO NOEMWVNN AP LA D = I OIMIAT NON 00 ON 0 G0 6O O~ v— AU~ MY O —— UM ON OO N N OO v— — FTMMIN O T O = UM~ O V067 9860 V066 IO O = UM ST LN P 0O D O COCR OO+ ~F MM V065 Lal= o) — ~ — (W) @ 5 | z ] E -4 wn QO - o@ xQ 1-~ -— -0 Eo wno [+ —- L~ nJ (] = — (= o o = (4 < L3 Page 1378! 160ns M1 CLOKX Rev 13.00, Clock rate Lo = a0 @ -4 — a0&§- =4LA oQOE &~ oo e o —_~ O- ("2 N 11 CLOKX Rev 13.00, Clock rate =z < e Q o0 160ns Page 1379§ — = OO ® MM TalaY] L— [+ @ 11 M x @ — (=] PR OO O O A MO O SOM MMM MMM MMM Y v068 p- Ow o -C o = — j=4 o 2] = [ > > (o35 O~r 5 a 2 6 0 3 67 1 A 8 2 43930 43966 44003 9 33 969 40046 ST M 1 —unonry [l R B e AL AL AN L= 8 18418 MO O~T18 e T ONUN84184 OO OMM41841 4 MNUMMMIAT <2 T DIN O OO AN QOO O 273 0 v069 ¢ aa — oo C— D v - —— vy, ao 1- oo — [y O— N aza " - —_—C - = g N ol = 2 > ' > [==) xQ @ o (= O M =z w B 12 (LOKX Rev 13.00, Cltock rate page 1380| 160ns ]& @ n ey Ty e e T e e OO OMA OV UMM OO OPM D ONT RPN O N O O WO COON M= O 3 U - N A — 00O vO70 VA0 OO I N G000 D000 MMMV PO O OO U 47 xR o ' (MT098.MCX iAo ey o P T AT N AN T VT VY VT N VT o VT VT VTNTN VT VTN T Yo NEA VTOVT STV VTGV GVIVIAVI N IOV Ia L L e La s La Lo Lo lad Lt 53‘9681I.wIu.0/“63730865]5163284891439103586127’/57094861&3763 9 —PUMIA D O — U N O~ 3 ON OV N O OSIAONO O~ UMM OO ON 28691 NI~F OO03333N = NI N —33331) OO 222222 SO OO ON N — NI NN OO O 222222222222 P — M F N14|222 — UM OO1..4|1 222222 222222 222222 -.l14’ 6/._. Page 1381 €12 CLOKX Rev 13.00, Clock rate = 160ns MICRO2 Names n Expressio ~ Listing (ross Reterence 16:30:35 28~ 28-NOV-83 1Mo © £ Q 7} M [=X — - O O =4 CM > 0O4D -— @ C- o ~ (=] - az Q OL “—_ o . (MT098.MCX ¢ 81583723926843501464803841-{3961738254740583149730595949 ]2222333/«.4556677889900111|111«11111112222222222233334/%44Ifl 11222333/4.45566678899001111|1.|11l1.|1112222222222233334444/q. 53250402537?701974557575363205377?131249194787989998582 CONIONO Page 1382 160ns CLOKX Rev 13.00, Clock rate D 12 w > oc o 0 D0 D00NOP NINII OO0 000D T T DT T T FTTTT T LTI T T T IIETTIITT NNDNUNNIAN ND O OO0 OO O 00 O OONNIN T FTTT NNINNULANINI T T T ST T T LALA A A N IA NN AN NN NN NNO OO MO O n—O =& vo71 Cross Reference Listing - Expression Names M1 MICROZ CMT098.MCX 6990 7019 Page 1383 160ns E 12 CLOKX Rev 13.00, Clock rate 16:30:35 28~ 28-NOV=-83 CMT098.MCX F 12 CLOKX Rev 13.00, Clock rate ) mon 28-NOV-83 16:30:35 MICROZ Names n Expressio Listing Cross Reference 70?626273627466/4.1799/4.781-.!0/4.57?505701/*891461502412333/«.45 o Page 1384 160ns 58/40 MNONTRINO O0NM0 713 95 18 77 89 14 77 05 Cross Reference Listing - Expression Names . . MCX (MT098 . OONTNRAT T T e — OO ONI— MO 00U O 2222222222222222222222222222222222222222222222222222223 2222?2222222222222222222220L2222222222222222222222222223 Or=~T O F —— MMM = m——r—rr— MOO NCIMMMMN OOOOOC= OO NTF 147081742515662857?066403219804791681517?62536853860916 M T T 3T T — NIMMMMO— =OO OOCO 77662066625499646?721752074229258635588? CON 0D TOOMN OO T—INONCON N OO UL — M OMILN GO M P o= AN O U P N M = MY LA U00 LCMININ O ON OIN+— OO O +—OON O\0 25284 25650 5973 26029 Page 1385 160ns 6 12 CLOKX Rev 13.00, Clock rate 16:30:35 28~ 28-NOV-83 Mo MICRO2 M3 = OO0~ TN OTORMT T =N ONONO N QT M COINT — AT F ST AT AT T NN IN NN N N NN NN INAND O O 22346679025?134556668890456690112457 223466?90257134556668890456690123457901233/.— TN O OO OO — D e— 1NN —ON — N OO — O — A A 00 N = OOM LN OO — CUMIR O8N T <2 OO CSIN O O CWN O AU O MO OIA LN A ONGO 3333333333333333333333333333333333333333333333333333333 34029 34133 34172 34268 34363 34498 Page 1386 ! 160ns H 12 CLOKX Rev 13.00, Clock rate 28-NOovV~83 16:30:35 Cross Reference Listing - Expression Names M0 MICRO2 . MCX CMTO098 . J 12 R R R R A R R RC PRI N S 2N S £ A S SN Y at ok g WO — r— ONOCUONMNMIMIMMN AT <3 3 OO T v+ T I T T T I LT T IIIT I IIIT s M= - UMMM MM ST ST M D0O N r—r—0 V080 v09.21 v10.35 v11.34 v20.70 59419560681463071669390024622275864740630 COOMOT AN ANO—O vo72 Page 1388 160ns CMTO98.MCX CLOXKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 MICROZ M0 Names n Expressio Cross Reference Listing — = NI IM MMM AT ST T T~ I A ONCONe O— MIWN OO OOV MO NMINN T O OOO = N =P MyO— OOO AINIOIST WO r=— A SN O~ AN OO w000 [Vale JgVh e Lo S 1 CON M IOR OV ONOMD = O 31..44800332494?697834431541O8611 DO OMCOCC DN 8227 DN O6346 I OO = OO N U — NN COOOON OO —INN DO~ T OO ONDO . NN OVO O ONITINIOO— —OUOTONMN Cross Reference Listing ~ Expression MNames CMTO098.MCX . WNNOOO Page 1389 Clock rate = 160ns CLOKX Rev 13.00, 16:30:35 K 12 28~ 28-NOV-83 - V24.25.70 T vee.70 r Ve, 50-54.70 M0 MICROZ CMT098.MCX 1M(01) PO 946738457,7812946738457781294673845?7812 23029769810524556652302942455665230296243566523029 j=) = o, L 12 CLOKX Rev 13.00, Clock rate 28-NOV~83 Names g Expression Cross Reference Listin MICRO2 16:30:35 160ns Page 1390 CMT098.MCX ;Location MI1CROZ 1M(01) 2/A 3/8 28-NOV-83 Location / Line Number Index 0/8 1/9 43 ~ LAAMIPA LA <O OO M MMM OU R CUR O N M GO LN T 00 SO SO ..\;.5335661044T T44471 T ITITI 939 T I T I 98889 T I T T 45590 T T T T%?444 T T I T T T T T T T It-4 4/¢ M2 CLOKX Rev 13.00, Clock rate 16:30:35 5/b 7/F 6/t 80 86 95 804 810: 820: 994 356 881 905 M H 160ns Page 1391 : CMT098.MCX MICRO2 1M(OV) 28-NOV~83 16:30:35 Location / Line Number Index N 12 CLOKX Rev 13.00, Clock rate = 160ns Page 1392| ; i | ; This page intenticnally lett blank. Page 1393| 160ns M 7152579|l..\B AR e b;¢0gEN S 197768Nlfi/-v 864173N‘.“IHI 3763114IWI-.I 52483012113‘4 40782621311{1 8968353112111 —MOFA 1113211 ! TM 3222323 - 15‘591935391127]79(}]13’0nY\l66791\:65}/4208679808‘8:%561’lfinv. CLOKX Rev 13,00, Clock rate _.n\U.' o 2 T2 O moDs . o0 =- > ~FT T e r—re e L — UGN T AT 2T T T 2T T T~T T2~T~T T TTTT T 824490597248714692680‘730)(715‘?5458756789000000199-l-l.(.. — UM OO AL NUNu e M - ol< 28=NOV=-83 Location / Line Number Index CMTO98.MCX ;Location 1| 0/8 19 MICROZ 1MC01) 2/A 3/8 4/C 16:30:35 5/D 6/E ¢ 13 CLOKX Rev 1 3.00, Clock rate 7/F 160ns Page 1394 ’ 28-NOV-83 16:30:35 Location / Line Number Index . MCX CMT098 ;Location 0/8 1/9 MICROZ M0 2/A 3/8 4/C 5/D 6/¢ D13 CLOKX Rev 13.00, Clock rate = 160ns 7/F Page 1395 | 1 CMT098.MCX M1CRO2 Location 1”(81) 28~-NOY-83 ine Number Index 16:30:35 E 13 CLOKX Rev 13.00, Clock rate = 160ns : This page intentionally left blank. Page 1396 . 28-N0OV-83 16:30:35 MICRO2 Index Number Location / Line M0 CMT098.MCX ;Location 0/8 1/9 2/7A 3/8 4/C 5/D 6/t F13 CLOKX Rev 13.00, Clock rate 7/F 160ns Page 1397 M — P AR O MNP AT T D 0 — I — O~ T O NIOMD = O I CMT098.MCX MICROZ 1MCO1) S rate = 160ns 28-NOV-83 16:30:35 6 13CLOKX Rev 13.00, Clock Location / Line Number Index ; This page intentionally left blank. opage 1398!| . CMT0O98.MCX ;Location 2/7A 3/8B 28-NOV-83 Location / Line Number Index 0/8 1/9 803/4709190n|7468348686627793313775926376072826059931Iu‘2 U 0008 U Q0E0 U Q0E8 M(01) ar ee e e e WA I W R 1 oe e e U 0000 U 0008 U 0010 U 0018 U 0020 U 0028 U 0030 U 0038 U 0040 U 0048 U 0050 U 0058 U 0060 U 0068 U 0070 U 0078 U 0080 U 0088 U 0090 U 0098 U 00AQ U Q0A8 U 0080 U 0088 U 00€0 U 00C8 U 0000 MICRO2 4/¢ 16:30:35 5/D 6/E H 13 CLOKX Rev 13.00, Clock rate 7/F 160ns Page 1399 e an e CMT098.MCX . 7/F 6/E 5/D 4/C 3/8 2/A 1/9 0/8 ;Location Page 1400 160ns CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 MICROZ Location / Line Number Index 113 1M(01) 1 hd - R U UARL | S L U] nrenun " i e T L I L L O L | o o es ) H nou Inhnn Hhnn nnn i nan R R R R U R L (O [ R L TR LR T R LA ve =0 ve ve o i 1) L] imunnu imian HoWow e ou i n [T ) 15091 678890112 98779 63544 616349680 62636 60081 899006474 23320000 22229000. 1134 78878268 785814502 479740694 6797 5556 [ T N IR R RN U R L L e e T L e e T UL TR R U LR L L L U 113402222331111211121 82689680 | T T T U U U S T U N RN TR U] wauonn CO L T L ?8781 7887 T T I (T 6797 R5556TR6465T O T 6?97 (.888. 66074611.1 890045.’26 7987723322 3659641222 ?771181811 4282788881 94402876?8 899006860869296689?6 555664657696769 an i U L T L N T T T I L LR T T I L R B R R R T TR e N [ N T N R T N T N T | DRI 412222332251266111 Mo e 1] W e 0o n noun 88861un 81011 1t itho87778 Wy n 65977 Jl H H N 96769 o0 oe ca e 46576 v55566 555664457496?59585778677877868860124222223323012011’12 R R R L T T T L T TR LA L L) TR B U R U L L ] -0 O < MBSO OO M O 2T M = MM CON = S O O O BNL IO3201 TNR RS2262 T o TB 0262 SR 0766 3 7012 9009= 9907 9778 4559 4267 7366 4322 8990 i 7/F 6/E 5/D ~b e@M 3/8 26000?8845912991112241/4/1[444444559465667884406“I*IQS.L)SSS . ;Location 5566778899AABBCCDDEEFF00112233445566778899AABBCCDDEEF 24102608164470472442..178242412: i) ee ULl WA H 'L N O~ INOTT 2/A 25000778/&.5912636112247444444444594/45567788406544555_.}(’. WALALA <3 OM = P AT O MM e— s O NP AN M r— - OO MNINGOLC OISO N 1) 1o o= 1 10 W B e 1) i 11 QN ~F N AL Va0 O 1718336702046321583319455667778127713174411"92.\.701/*579 1216125253Q457420503048181’7069619.\/2377566161132923578 O NIRM N NS [IU NOOO37267 )t 1 L = 70352 NOO 04597 — OO JIN17058 M O RO+54818 LA GO P AR 80373 — MO GO T 15981 O = 24266 MO 488MY 311‘5 12031 4593 1/9 . 0/8 Mon 4/¢ Page 1401 160ns J 13 CLOKX Rev 13.00, Clock rate 28-NOV-83 16:30:35 Location / Line Number Index MICRO2 CMT098.MCX E o~ ~C -O 7/F 6/t 5/D 4/¢ 3/8 = 3J 1] oc o O (=] = — o o o = L >< 2/A 1/9 0/8 ;Location 1 o] M x page 1402| 160ns CLOKX Rev 13,00, Clock rate b4 — M — O [ag] o M [*a) [=} ~ — 79883382848829901301266793667902567134583344675148560 e e e e (= T o e T ¥ T e e e T e T e e ¥ T F P e e e e e e e ¥ o e ¥ o e e T e e 1!4|.|-|1|¢|.1|-|4|1111111111111111111l.'ulal11111111111.‘111111111 1796583042701&7520:)207’18699768678505636667996432096005 F004l‘|2233/4455667w18899AABB(CDDEEFf0011227_341~5566778899 Location / Line Number Index 7/F 6/¢ 5/D 3/8 sLocation 0/8 1/9 2/A 4/C Page 1403 CLOKX Rev 13.00, Clock rate = 160ns L 13 16:30:35 Mo 28-NOV-83 MICROZ {MT098,.MCX MO OO M T T M O-FTNU O 1.1111111111111114’11111111|1|Ifilu.lfilfi4444‘44‘523/&1555555555 - . Wi Nn " ~s )l H n o i oo ny .o 11111111111111111111111111l1/“44444444444453“555555555 MON o - O o : ; MICRO2 1M(O1) CMT098.MCX 28-NOV=-83 16:30:35 M3 Location / Line Number Index CLOKX Rev 13.00, CLock rate = 160ns ;Location 0/8 1/9 2/A 3/8 4/C 5/D 6/F 7/F L 0848 5913= 5920= 5924= 5927= 5617 5992= 5998= 6001= U 0858 5742= 5745z 5750= 5754= 5762= 5765= 5769= 5772= 5824 29660: 6167= 6285= 6261= 6508= 6299= 6648= 6679= 6225= 6796= 6236= €914= 6536= 6581= 680¢ 7264= 6361= 5876 29664: 61721= 6289= 6265= 6513= 6303= 6653= 6682= 6229= 7184= 6240= 7227= 6542z 6587= 7199= 7268= 6345= 5882 6007 6174= 6293= 6270= 6517= 6307= 6657= 66B6= 6779= 6621 6900= 6769 6545= 6592= 7204= 7272= 6349= 5888 6128 7975= 6139 6274= 6520= 6178 6662= 6690= 6783= 7187= 6904= 7231= 6548= 6596= 7208= 7276= 6822 5892 6132: 6156= 6264= 6142 6523= 6149= 6667= 6695= 6787= 6313= 6907= 6327= 6552= 6600= 7211= 7280= 6825 7611= 7615= 7618= 7621= U 0850 u 0860 U 0868 U 0870 U 0878 U 0880 U 0888 U 0890 U 0898 U 08A0 U 08A8 U 0880 U 0888 J 08C0 U 08(8 U 0800 U 08D8 U 08EY U 08E8 U 0BFO U 08F8 U 0900 U 0908 U 0910 U 0918 U 0920 U 0928 U 0930 U 0938 U 0940 U 0948 U 0950 U 0958 u 0960 u 0968 U 0970 U 0978 U 0980 U 0988 U 0990 U 0998 U 09A0 U 09A8 U 0980 U 0988 u 09¢0 U 09c8 u 0900 u 0908 U 09€0 U 098 5504= 5777= 5899= 5682 7548= 7607= 8123- 6355= 6383= 6611= 6753= 6956= 7306= 7762= 7027 7055 8089= 7090 6474~ 6613= 6864= 7059= 7126= 7177= 7326= 7357 7393= 7465= 7489= 7533= 7652= 7710= 7829= 5508= 5780= 5904= 5687 7553= 7726= 6359= 6387 6415= 6757= 6960= 7310= 7765= 7820= 7912= 8094= 8164= G478= 6617= 6868= 7062= 7129= 7180 7330= 7361= 7396= 7447= 7492z 7536= 7655% 7716z 7833= 5531= 5791= 5934= 5712 7557= 6836 6363= 6391 6419= 6761= 6965= 7314= 7769 7048 7066 80977102 6483= 67435 6974= 7071= 7135« 7235= 7334= 7365= 7410= 7459= 7504= 7578= 7664= 2718= 7846= 5535= 5796= 5940= 5716 7561= 7729= 80586886 6892 67265= 6918 6926 6969 7824= 7915= 7078 8168= 6487= 6766= 6978= 7074= 7138= 7239 7338z 7369= 7613= 7462= 7507= 7581= 7667= 7722~ 7B50= 5472= 5807= 5643 5723 /565= B128= 6369 6397= 6456 6872= 6922 77646= 7021 /868= 8020= 8187: 6433= 6491= 6840 7014 7083= 71627291z 7342= 7373= 7420= 7466z 7911= 7585= 7695= 7734= 7854= 5676= 5810= 5662 5726 5929 6135 6160= 6248= 7110= 614> 6152= 6671= 6698= 6791= 6317= 6911= 6331= 6800 7627= 7635= 7284= 7676= 6878 7683= 8132= 6373 6401= 6459= 6876= 6983= 7750= 7801= 7873= B8026= B191: 6437z 6494= 6843= /01/= 7086= 7166= 72957345= 73787423= 24697514= 7S5BB= 7699= 7737= 7857= 5733= 58l4= 5664 5785 5963 7062= 6163= 6251= 6277= 6528= 6281 6604 6702= BQ4i= 6321= 6425= 5737= 5818= 5667 5800 5968 7045= 79786256= 7113= 6531= 6221: 6675= 6608 BO46= 6749 5428= 6335= 6773 7569= 7573= 4557= 6803 6814 7287= 6811: 6832 B136= 6377= 6405= 6464= 6880= 6987= 7753= 7024 7877= 8032= B193 6467= 6499= (858= 7033= 7095= 7170= 7318= 7349= 7383= 7438= 7482= 7526: 7644= 7702= 7782= 7861= 6560= 7630= 7639= (B18 7679= 7686= 8139= B063= 5889 6896 68836991= 6952 7805= 7051 80368199: 6471= 6503= 6861= 7037= 7098= 7173= 732¢7353= 7386~ 7441= 74B5= 7529= 7648 7706= 7786 78b64= Page 1404 2/A 3/8 1/9 0/8 :Location R O T TR TR TR A TR I R T T | L LR L oo nonann oo ([N TR T S VI R TR R LR B 4 | ]0232 49991 ' ‘0919506746031457787?3999 27L2 222225702 2222280125 2222293125 2222227856 22222 ._222 /_2.) 2222\ 22222 77382 ?87?7 ..84562004288911094/*50672921540708982497373;537 Xl 7877?778822222222222222222227L22?2222222222222fin2222222 Vi OO— NIMAT O TNOO = NNA N TGN OGN OO0 VO~ PN VBVOOONONMINDVO NINT V0D 099909787622869835429678017850w19.l20936480.62977493884.0 ' 7/F 6/¢ 5/p 1 TMC01| ) 4/C Page 1405; 160ns N 13 CLOKX Rev 13.00, Clock rate 28~NOV=83 16:30:35 Location / Line Number Index MICROZ2 (MTO98.MCX e Location / Line Number Index .- 3 SR DN ! .- e e MW bWt AL OO v— O AL OO v T NGNS T OO .- ) —_— OO PO VNN — OOM - O M i [l o .){\(221(_,\.(1(?271).1‘,)s)l..()u)L)()..)L.)L)lw,()s\(\..\‘.,\,,G)LJ.)..\ E Tl R Ul T e VY o P Vo Wi ML S a Vi PN Via Vi) P NN OO — OO CON Y bflnO)L.lr)(;L‘].C)\VL\I‘.It’J(.Ulsgfiu‘sogqsfiuSSSé?qs ROROVBOHOBOBUR\UQUOH\U.HHUHU..G\\H”:HU.NU\U.N e Lo XD DD T X CSWV T VWOV 1 | 06 7/F 6/E 5/D 3/8 JEocation 0/8 1/9 /A 1 . (MTO0K MUX [{RO? G/C Page 1406; CLOKX Rev 13,00, Clock rate = 160ns B 14 16:30:35 28~NOV-83 Mo OO OO TN 2O T NN 54555555555555566555655566666?777’ 0:6/*75/%6462271957351458068434629560043808612107774 -« CON. M 22?2222222223333333333333333333333333333333333333831’3 UM OO AN = OO O T T M OO v— PN O 621:2/*5:)7)25/«83188342985361\.047?9 1?383 59900 24503 1\,44 3L855 ?7888 01112 88900 789?2 65689 98055 66777 SSé66 Sé‘OS SSSSS 555r) 65555 55555 ~4455 ..)5I 99995 99999 ~o Q,O,0 671915298409367776357417065680976067953277.0/-.31.896]815 ~ 0,9999999999954644/&55545556555555555665556655566666777 N~co 7/F 6/t 5/D 4/C 80808080 0808080808080808080808080 80808DDDDD w— -[we] 08080 [,tE EEE_.tr[ch EEEEE08080 EEEEE80808 EEEEE EEEEE D\uDD DDDDD DDDDDDDDDD o ac = [} x 3/8 Page 1407‘ 160ns CLOKX Rev 13,00, Clock rate 28~NOV-83 16:30:35 Location / Line Number Index C 14 M ~ k=] — 7/F 6/E 5/D 3/8 0/8 1/9 2/A 4/C i 160ns 28-NOV=-83 Location / Line Number Index . (MTO98.MCX 1M(01) ;Location | Page 1408, MICROZ 0 I D 14 CLOKX Rev 13.00, Clock rate 16:30:35 1 62824C)048445892?8503660218004803 NI O LN OO233N\ O v O O 33222 0O COLN OO23222 O NUCK 0 <O 22222 €0 CO O~ O Or36843 €0 €0 60 €0 O~ 33333 00 €0 GO A\ O 33333 6O P G0 O~ 60 33333 . OO O~ 00 €0 33333 e 0O 0 - 0 33333 33333 22293333344546970904822534600145111679809111808020222 — T O~ SN OO N0 OO OC O v =t 0 T T 0 T e 1 T o £ T i 7/F 00000000000000111‘[111..|1|..l.|1-1a.l.‘|1|.|1lal.|1..|.|1|.|.|1...|.|11..|2222222 1410964453763435223156219305856378?410[416091555641078 77666 222 33222778 2233312667 223337?111 2222389000 3222378782 2222217772 2323266667 3332262626 22222000?6 2222265996 __/75555866860007722236777_./7777888888890000011117677?88 9884346408084812 59114 20490244201564556247041'5 788 72677 00771 79200 78888 76178:3123 67777314|7 12623 60001 56996 71555 ! i 6/E 5/D 4/¢ 3/8 2/A 1/9 0/8 ;Location Page 1409|! | CLOKX Rev 13.00, (lock rate = 160ns 16:30:35 28-NOV-83 M0 MICROZ Location / Line Number Index CMT098.MCX i E 14 Location / Line Number Index 7/F 6/E 5/D 3/8 :Location 0/8 1/9 2/A 4/¢C 39?72415?8822 3445566?78899AABBCCDDEr_.._rrF004|4|2233/445C)66778899AABBCCDD 88899000000011112222222378888889990000011119112222222 22222333333333333333333322222222223333333333333333333 13184186169546101 3230 597442597326162928‘7 8548 22223 11122 11111 90000 88999 378882581 22223 :1222 01!11 00000 888903131 22223333333333333333333322222222223333333333333333333 56222 8652400011 2426599990 1?7347528087600184982732988888 22223 .-122 11111 223?7 22222 01111 00000 88890 oo Page 1410 160ns CLOKX Rev 13.00, Clock rate F 14 16:30:35 MOOD 28-NOV-83 MICROZ CMT098.MCX 7/F 6/E 5/D 4/¢C Laa] NNE -~ —O o n Hnhn WH WUyl 1 PR T T U R U U R R L U L [ L U Ui s ro nnoi U wn n TR R R R e N U N T T T T U L | [T /157104903/498903766895922130638258659829996842%7‘4976599 LKL 0o TR T T IR L I T | oSt M b e e \ad T U L L L I LA I S 1IOe e 5607 VOO ONOC ? 2485 8121 9042 8342 7412 5438 3066 3759 50?0 98 0305 7202 9632 1286 MMM MMM AMMMM 33333330‘61 l/fl4443?626 lfl/fllf3566 fi/filfl3681 “lfl/fll9131 fi/fllfi1058 ilfi/fl/1461 fi./fllf5?01 4Ifilfil0944 33114444 LTI ) L AR TNA OOUR OGO T VO~ L T TR L 1 I U [ L g .- I TR 2670 i )i 1y Hn ?769 D LN ?139 8010 7342 7312 29527328 3949re 1216 TN O ONOM U A — DO 26 54475 36815 60?74 39445 52272 4|1-2 3 3333 3333 5433 3333 3333 44444444 444489131 444461125 4444 4444 4444 3331 e un Il URRSLL WoH NNy e e ) .- U L Lt L L L L L B L i 6876860617201010458 56054 91012 26../ 1.11252_(, 33333 33333 33333 33333 44443 44444 44444 4444417990 4444455601 .%4/&73434 33314 e 1111 12 0 i H [T T R T L e ) = it n 11 % wawary N I = ~7 MR e L el a s 1lAl TV Y Py P Ta 1.4|4’1N RV RV A |1l11|1l VYV P o P Ta|1-|1|~ llu R .'1..11| ./fllf llfllu /*lfl/*/fl/f /fl/a-.4|1|4|4 4/’Iu. 444444 333344444444 14111111 1l¢|1l.| 1u.|1|~| I.414|1lllfilf 4|..I.1| ;-|..|1| .|4|.14I 1|.|111| ! = =] @ =] = oo 3/8 2/A 1/9 0/8 ation :L- | 1C > Page 1411 CLOKX Rev 13.00, Clock rate = 160ns G 14 < M [7aY — ~O [=3 ~ pug [ = — (=] o «© = [=) > Location / Line Number Index . ?972858889660870?5123356148?96700856782369898/N../.'BSSSZ 333333343434334434344[44464444434444444443444444&4444Lv 6969777080817?3795841434526n.(_nl2156326?34848485666689001 00O DOO N OO OMMMPL AT T T TN DO OO0 OO33334 C NN O43333 OO MAR N TN O LN OINOHN DI43344 T N ST T NI NP TN ST AT AT AT ‘ 44344 44344 44344 33434 33333 ey 1-1111!1(4]11..111-111111111111.1114|4l.4|..l1la|.|.1.11111:111-111!11111!11!111 80808? 8080808080808080./777 80808080808080808080 6667_ 66666 66666 )6666808066666808066666808066666 _._)c 55555 55C)5 SSC)5 537955569242898196200219?55214571?8468171?461285/&630 .o WU NN N WM 6124 ) e e )06014 A 5479 b e 0N LW el 0 TN RN e 3466 e NN 3389 3 oo 9906 0562 2427 1512 4119.I.38 5626 8132 6999 9970 02574 14648 34609 57332 26003 31759 .!.28 77250 N4 ~0 M hd 7/F 6/E 5/D ;Location 0/8 1/9 3/8 . CMT098.MCX 2/A 4/¢ Page 1412 160ns CLOKX Rev 13.00, Clock rate H 14 16:30:35 M0 28~NOV-83 MICRO2 7/F 6/E 5/D 2/A 3/8 sLocation 0/8 1/9 MO 4/C Page 1413 160ns I 14 CLOKX Rev 13.00, Clock rate 28-NOV~83 16:30:35 Location / Line Number Index MICROZ {MT098.MCX VR CUMIOO OUIN LA O ~T U OO N — DD O M OO = OO OO OO VOO NDOOOOOOORMNNNINDD—R O "o PG OV OV VOOV GOV OONNAN OO o " UOICCIN OO O OOMNN — O T — O OQOM -3 MK oy el NN S © NMARA NO [ A CcOMMY 111111111111]11111111.111!1112222222222221(2229;2 ; CMT098.MCX MICROZ 1M(01) 28-NOV-83 16:30:35 Location / Line Number Index ; J 14 CLOKX Rev 13.00, Clock rate = 160ns This page intentionally left blank, ' Page 1414 MICROZ CMT098.MCX Words CHARTS REGION DEF IN MACRQ INTT CONSOL INTLOG FLOAT VIELD CONTRL [%e ~J Used o PCALL MIsQut CHAR DE CMAL EDI MPRCHM PRLDSV 1ANDE MM CMODE 0SR UVERFY GHROM FILLER COoOO0TDOCCOODTTCOCOOOCO [olelelelelele] REV/ZS0 not in bounds o : 1M(01) (-code Microword Summary w ; 28=-NOV=83 Remaining Total micruwords used in memory (i 256 Total microwords remaining in memory (: 0 Highest address used in memory (: OQFF (hex) 16:30:35 K 14 CLOKX Rev 13,00, Clock rate = 160ns (MT098.M(X MICRO2 1M(OT) 28-NOV-83 16:30:35 (~code Microword Summary ; L 14 (LOKX Rev 13.00, Clock rate = 160ns This page intentionally left blank. Page 1416 05 (MTQ98.MCX MICROZ IMEOD 28-NOV-83 D~code Microword Summary ; This page 16:30:35 N 14 CLOKX Rev 13.00, Clock rate intentionally lett blank, = 160ns Page 1418 MI(ROZ MO0 (MTO98 . MCx REY?S0 THAKRTS REGION DEFIN MA(RO INLT CONSOHY INTLOG C ( C L V] U { CONTRL 19 {HAR ! g 16 16 MER! HM PR DSV ¢ 4 1ANDE MM : B i ! » 9 ] TMODF r O5R Uit wfy CHROM FLULER G i o 0 Vi ed Hemaining ,"‘_‘!) ) ' ' Dt (MA| tED1 : /! 47 PrALL M1SQut : Page 1419 words not in hounds FLOAT VIELD %5 2R-NOV=83 16:30: I~code Microword summary (LUKX Rev 13,00, Ctock rate = 160ns L3 g gaed Taral o mirowdr 0 memary [ 0hn W s rematrotrag oomemare f o vy micr sighest gddress ged Tnomemory Jo OFF (hex) :fl:w K B 15 ; ; {MTO98.MCX MICROZ? TMCOD) 2B-NOV-83 16:30:35 €15 page intentionally lett blank. l=-code Microwora Summary This CLOKX Rev 13.00, (lock rate = 16Uns Page 1420 ‘ ‘ (MT098.M(X REV750 CHARTS REGION DEF IN words not in bounds PCALL misaue (HAR DECMAL EDIV MPRCHM PRLDSV TANDE MM CMODE OSR Y UVERF GHROM FILLER used Remaining Pl N FLOAT VIELD CONTRL —— INTLOG 2B8-NOV-83 O=cote Microword Summary MACRO INIT (ONSOL IM(O1) COOOOC CHO =2 WOINNOOOODTO : MICR"> 054 in memory (: 256 Total microwords used Total microwords remaining in memory 0: J Highest address used in memory 0: OFF (hex) 16:30:35 D 15 CLOKX Rev 13.00, Clock rate = 160ns Page 1421 (MT098,MCX MICRO2 IMOOT) 28-NOV=83 16:30:35 O~code Microword Summary ; E 15 CLOKX Rev 13,00, (Clock rate = 160ns This page intentionally left blank, : Page 1422i | ; Page 1423: Words not OCOoO0OOOOOODOOOLCOOOOOODOCO 1in bounds O o OOC OO NO ~4OODONNOO [olelelelalelelela) 2800-2BfFF A%l o) ol olelelalelolelololnle)] [=lelelelaloleleleleleleloleiyyl — [3%] o O W n— [=ad no wvun = = NOW O O W 2000-23Ff P 0 <~ 4 QOO OO SO[eloP Relelel Jolelelele i le ] 1400~17FF oo W in memory U: 6203 Total microwords used in memory U: 1089 remaining Total microwords U: 2BF6 (hex) memory in used Highest address RO — 4 £~ 4 130 0 98 1024 0 O ORNIOOC 2O 0OOOCO 0 0 5 0 3 0 7 0 < ~N) —_ < 2 0 0 0 0 0 0 0 0 CLOKX Rev 13.00, Clock rate = 160ns 0 0 0 0 0 ¢ 0 0 0 0 1 0 0 0 0 0 no GHROM FILLER 4 1000-13F 5 F F 15 3 — CMODE OSR UVERFY S —_— MM O - — ARNJA VIELD CONTRL PCALL MISQUE CHAR DECMAL EDIT MPRCHM PRLDSV IANDE 0CO0~OFF CO=—aOQ N n FLOAT 0 0 0 0 0 9 0 2 6 0 0800=0BFF 16:30:35 k=4 ROW [an ¥ o — N = INIT CONSOL INTLOG 0400-07FF F oy DEF IN MACRO ROW 2 oy =S OOOO0O OCNIN NI O T NGO —PSS NDW— 0000-03FF CHARTS REGION Used Remaining ROW 3 U~code Microword Summary ROW 1 REV750 28-NOV=83 j=] ~ H {MT098.MCX 1M(OD) (-] ; MICROZ2 (MT098.MCX MICROZ 1M(O1) 28-NOV=-83 16:30:35 U=code Microword Summary G 15 CLOXX Rev 13.00, Clock rate = 160ns : Page 1424| ! { { I ; This page intentionally left blank, QICROZ 1M(01) CMT098.MCX : : 28=~NOV=-83 16:30:35 ummary H 15 CLOKX Rev 13.00, Clock rate = 160ns The files used in this assembly are: 1C 1C . MIC FLOAT . MIC VIELD CONTRL .MIC PCALL.MIC MISQUE .MIC CHAR.MIC DECMAL .MIC EDIT.MIC M1 ( MPRCHM PRLDSV.MIC MIC [AN.DE MM.MIC E . MIC CMOD OSR.MIC UVERFY.MIC GHROM.MI( FILLER.MIC M]ISQUE, validity failure in file PUSH,NEXT/MM_PRB.WRITE.SIZ 21675 Pas. 1 warnings: Pass 1 errors: No. No. No. No. 0 0 of micro worde extended over extended patches Fatal mul/div errs Pass 2 warnings: Pass 2 : . : : 6703 518 0 0 0 ; (HECK THAY TAIL CAN BE WRITTE 1 0 Page 1425 M]CRO2 MICRO2 M1CRO2 MICRO2 MICRO2 MICRO2 MICRO2 MICRO? MICRO2 MICROZ M| C(RO2 MICRU2 MICRO2 MICRO2 MI(RD? MICRO2 MICROQ MICROQ MICRO2 MICRO2 -~ e e e e S Y S St e N e A M MICRO2 MICRO2 MICRO2 MICRO2 MICRO2 MICRO2 MICROZ MICRO2 MICRO? —~T oMM —~ITOTMONTZIC X X TOMTOADZ I e e A A S N N S A M N e N S N N S MICRO2 MICRO2 MICRO2 MICRO2 MICRO2 MICRO2 X MICRO2 @EZ R xR —TOMMUNADZ R e N N MICRO2 ) MICRO2 MICRO2 MICRO2 MO MICRO2 MICRO2 T A MICRO2 R MICRO2 MICROQ MI(RC? MICRO2 MI(RO2 COOOOOOOOOTCOOOOO COoOOOCOOUOOOODOOOOOTCIOOCOOO0O COOOCOAOOOOCOCOCOOOOO GGt Gur GGG Surgr i@ Gur S-S Gl g I i P T 4 e h b ok ek b b e e et ek b o b b o b Ak b — 2 —b — _ N MICROZ > ’E.:;E oo el ello Poliol el o R el o X ol ol e -Te -Ye -To Jo .o -Yo <o <o ~Jo oo =le oRe o} SN NN SN NSNS N NN NONO NN OO OOV N O O O Ui 33333333333333333353 MW : o o o P e T R R P T Bt D e 1M MO \uhmzzrru—:C%WOrmzzrxg~xc*mcamzzfxg~za~mvfimzzrxg TOTMOADIT X X [otololelelele]lelelelele] O TOoOOO COODUCOCOOOOOOOOIDOOCOT COOCLDOTDOCCOOOCOODTTCTC GGG SurSurGur ur S SIFSIEPIF PR P S Y e JarQhi G Qi s O hrGrinrSurGusrinrGinr — o b b P MILRUZ et b bbb MICRO? MICRO? MI(RO?2 MICROZ MICRG2 MICROZ MICRO? M{CRO? MICROC MI(ROZ? MI(RIZ b MICROZ e bt et MICROZ MICRO? — MICRO?2 MICRO? b ek D D ed D b B ed b At A [ G U U G W QU QU QUIT U G o P ~o = -~ S WO S S P TXTTTTTZTIZTIZIIIITITIIITIZIRIXIIZIIX e e T~ P T T~ P~ i~ P~~~ P S~ N~~~ b s 8 b b s ot b 2 2 2o N AL AT IS AU TS U PO A AU PURD RO U A o A o e T B I~ T Dn B B S DN B I I o T [ TN T TS ST 2RI —TC T e~ ~@mZRET — MICROZ2 MICRD2 MI(ROZ MI(RO2 MICRO2 MICRO2 MICRO? MICRD? MICROC MICROZ MICROZ MI(RO?2 MI(RO? MICRO?Z MICRO?2 MICRO2 MICRO2 MICRO2 MICRO? MICRO2 MICRO2 MICRO2 MICRO2 MICRO2 M1CRO2 MICROZ MICRO2 MICROZ MICRO2 MICROZ MICROZ MICRO? MICROZ MiCROZ MICPOZ2 MICROZ MICROZ MICROZ MICROZ MICRO2 MICROZ MICROZ M1CRO2 MI1CRO2 MICROZ MICRO2 MICRO2 MICROZ MICROZ MICRO2 MICROZ MICRO2 MICRO2 MICROZ MIVROZ M} (RO2 MICROZ MICROZ MICROZ MICRO2 MICRO2 M]CRO2 MICROZ MICROZ MICROZ M]CRO2 . MICRO2 MI(ROZ MICRO? MICROZ MICROZ M1CROZ MiCROQ MICRO? MICROZ MICROZ MICROZ MICROZ M, CROZ MICROZ MICROS M]CRO? MICRO2 MICRO2 MICRO? IMOT Mo MO Mo Mg Mmooy TM(0T) Moy MOn Mon 1M(0Y) MO M0 M0 MO 1Mo 1M(01) mMon M0 Mo meen 1Mon AL ICA 1Mo MO M0 mon 1M01) 1Mo ILITR M0 ILIYON 1Mo MG LI TM(Q ARXN MO M0 M MG, ]"10\ M0 AL TR LIS Mg
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies