IMD 1.16: 2/09/2008 12:13:25 84-93895-01 a000 f89501 pat 4/12 source diskette part 1 of 2  ž ªªž @0‚|†ø)®wÂwЀЀÎtQº®qŠl) ˆ " ž}‚gÿA ¢`œžúžœžä×_l M@’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’IOS4 €MÁÚF283022013540000830220140718 830220140718"6F89501 VOLPAT 4/12 SOURCE DISKETTE - PART I (OF 2)   ’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’Ižúžœžä×_l M@†iŸøG€ÿìÆy†y ŸõG€ÿæG‚ÿñ‚ÿðGÿÜ`HÂZ@ †b G€ÿÚ`ú^žƒŸÿž©ÒYŸü žáe‡ †IÂQŸ€Ÿæ ŸïÀˆÆBÆBp@€„†;€…†:€††9€ƒ †:Â7P@ G€ÿµÆ:à‰æÙŸ‹NŸÒ Ÿìžùž8‚!¢0ŸÐÆ.ž¶ *•Šÿ CŠ'Ÿ¿Ÿx¢«„C# b# ž}€BŸÒ!9 @0DAJ÷LÆ ¢w+™ЀЀΖQA1¹" Š † †Š†€Ÿ¥i€„Žœ žŸ} šŸ}ˆªªžö @¬E°EšF€F)€DŸ‘ÄE‚Û„Fž8 æÑŸ} ŠÔŸ} ÆÌŸ} ž* `jUBˆBŸŒ I,Ÿv Ÿ‡°Ÿ…€BŸƒ I,žº ž# @ G€ÿ9Æáæ¬HÿÆàÆà@pÆÜŸ³ŸrâèCHùC €ˆC ˜GãTºà€q` †Lg€ÿ"žgÿò‘æEXŸC P¢Žâ‰+ì„s=è„胟Pž¿ޞÂ+âc fžQŸžN ‚Šp ž‹Ÿ$R†¡ŸxÆn†j‚Ê ž¢žû Þž‚ÞޔžniæâZ悌Ÿ ތ⊞ì ŠŸ} ŠŸ}ÿÿŠHŠGŸÂž†§Ÿ¬žÄŸë Š¡ÂŸ@AúœLèSÃ)"$ C ž‰žkžëª2žâŠ0žjŠ.žžh†( ’ªÂ+¢$`îƒæ%ꂜ€\ÿö1 !ŠMž' ²y‚ žˆò%€À'+ò²oŸsæ…Ÿâƒ)žsžY ‡eÞdŸ|Ÿ{ @ž8 ožœ Ož¶ mžŽ Jž² Kž° iž¿ gžœ†N ž)V% tž¹ž%ì„sLè„n`" EŸ  F.¹Ÿ  F„ Dž>)žÿ Ÿ=`Ÿ;nrgŸy Ÿw"ŸGÞ,ž{žKŸq1 ŸAÞ&ž}žEŸ*`Ÿ(tŸž@Ÿ% ²;Ÿc Ÿ Þ7Þ6Þ5žyŠ3ž4Ÿž2ŸüŸ(ž.OS:: SYSžŠž"ªªiüþŒþ‹Âwþ‹þŠÂvc Bc A@6<# þIc B# ÞgIþjHÀc r‡Ÿ TITL PAT4/12 INSTRUCTION SET PART1 84-93895-10-A000 MACHINE =:08 NAM ALLPAT NAM A01000 NAM A02000 ************************************************** * * *------------ SECTION A0 ------------ * * OBJECTIVE: IN THIS SECTION SOME DEGREE OF * CONFIDENCE IS OBTAINED ON CERTAIN * BASIC INSTRUCTIONS. * * INSTRUCTIONS: THE FOLLOWING INSTRUCTIONS ARE * TESTED.(IN ORDER OF THE LIST). * NOTE:ONLY ABSOLUTE DIRECT ADDRESSING IS USED: * * HLT HALT A01000 * COPY P,A LOAD 'A' FROM 'P' A01000 * SELP A,4 DISPLAY 'A'  A01000 * JST MEM JUMP AND STORE A01000 * JMP MEM UNCONDITIONAL JMP A01000 * COPY LIT,2REG A02000 * CSK 2REG,LIT A02000 * COPY MEM,2REG LOAD (DIRECT ADD.) A02000 * CSK 2REG,MEM ARITH COMP A&Q A02000 * COPY 2REG,MEM STORE (DIRECT ADD.) A02000 * COPY  8REG,8REG REG TO REG LOAD A03000 * JEQ 4REG,MEM A04000 * JNE 4REG,MEM  A04000 * JLT 4REG,MEM A04000 * JLE 4REG,MEM A04000 * JGT   4REG,MEM A04000 * JGE 4REG,MEM A04000 * OR MEM,2REG INCLUSIVE OR  A06000 * XOR MEM,2REG EXCLUSIVE OR A07000 * AND MEM,2REG A08000 * RBIT OV,S A0A000 * SBIT OV,S A0A000 * JT OV,MEM  A0A000 * JF OV,MEM A0A000 * SBIT BY,S BYTE MODE A0B000 * RBIT BY,S  WORD MODE A0B000 * SIN STATUS INHIBIT A0C000 * IMS MEM INCR. MEM AND SKIP A0D000 * SHIFT 4REG,LO,CNT A0E000 * FMT 4REG A0F000 * XNX 4REG  A10000 * IN 4,4REG A11000 * ************************************************** TITL ************************************************** * * *------TEST STRUCTURE------- * * FROM HERE ONWARD STEP BY STEP CONFIDENCE IS * GAINED IN VARIOUS INSTRUCTIONS BY EXECUTING * EACH INSTRUCTION TO PERFORM ITS SIMPLEST * FUNCTION IN ABSOLUTE DIRECT ADDRESSING AND * WORD MODE. NORMALLY TWO INSTRUCTIONS ARE * TAKEN IN PAIR TO TEST EACH OTHER USING * KNOWN WORKING INSTRUCTIONS. * * BY THE END OF THIS TEST IT CAN BE SAFELY * ASSUMED THAT ALL THE INSTRUCTIONS LISTED * ABOVE ARE PERFORMING THEIR FUCTION UNDER * ABSOLUTE DIRECT ADDRESSING AND WORD MODE. * * THIS SECTION (A0) PROVIDES BASIC CONFIDENCE * AND TOOLS FOR EXTENSIVE CHECKOUT OF * INSTRUCTIONS IN THE FOLLOWING SECTIONS. * ********************************************************** TITL * * THIS WILL SAVE THE STARTING ADDRESS FOR THE NEXT MODULE * PART2ST SET PART2ST SAVE * * LOAD CONSOLE INTERRUPT TEST DELAY CELL * ABS DELAY1 IFT LSI410  WORD :C000 ENDC IFF LSI410 WORD :8000 ENDC * ABS :FF ALLPAT HLT TITL ******************************************************* * * * PAT INITIALIZATION * * ******************************************************* JMP DEFLT DEFAULT MODE STARTING POINT JMP DEMND DEMAND MODE STARTING POINT JMP RESTRT DEMAND MODE RESTART POINT DEFLT EQU $ DEFAULT MODE INITIALIZATION COPY =DEFAULT,A SELECT TESTS 1,2,3,5,6,7,8,9,A * TEST 4 RUN IF I/O CARD PRESENT COPY A,DEMAND COPY TO DEMAND MODE SELECTION WORD 1 COPY A,DMAND2 COPY TO DEMAND MODE SELECTION WORD 2 COPY =0,Q COPY Q,PUPCT CLEAR POWER UP COUNT COPY Q,PDNCT CLEAR POWER DOWN COUNT JMP A01000 START IDP DEMND EQU $ DEMAND MODE INITIALIZATION  COPY =0,Q COPY Q,PUPCT CLEAR POWER-UP COUNT COPY Q,PDNCT CLEAR POWER-DOWN COUNT COPY Q,PFERRS CLEAR POWER UP/DOWN MISCOMPARE COUNTER COPY Q,COUNT1 CLEAR PASS COUNTER COPY Q,COUNT2 CLEAR PASS COUNTER RESTRT COPY A,DMAND2 SET DEMAND SELECTION WORD 2 IN 4,A INPUT TEST SELECTION FROM CONSOLE WORD REGISTER  COPY A,DEMAND SET DEMAND MODE SELECTION WORD 1 TITL ************************************************** * *----- SECTION  A0 TEST 1 ----- * TEST: HLT, COPY P,A, SELP A,4 * JST, ERROR MACRO, AND JMP * * HALT1 -- :A000 * HALT2 -- :XX17 * HALT3 -- MACHINE TYPE * ****************************************************** * A01000 EQU $ COPY =:A000,A REVISION NO. OF PAT4 SELP A,4 DISPLAY IT ERROR: --HALT1-- DISPLAY :A000 * COPY P,A SELP A,4 ERROR: --HALT2--DISPLAY,:XX17,-,TEST,ERROR,MACRO * * ---- IF PROGRAM COUNTER INCREMENTS PROPERLY, * ---- THEN COPY P,8REG IS VERIFIED * FMT A  FETCH MACHINE TYPE IN 'A' COPY A,MACHIN SAVE MACHINE TYPE FOR FUTURE SELP A,4 DISPLAY MACHINE TYPE HLT HALT3--DISPLAY MACHINE TYPE JMP A01020 TEST JMP ERROR: ERROR,--,JMP,FAILED A01020 EQU $ JMP  A01000 LOOP PATCH ORG $-1 NOP TITL * * INITIALIZATION * A02000 EQU $ ABS STARTPTR WORD A02000 INSERT WORD ORG A02000 ORG BACK * OUT A,4 RESET MMU SIN 2 COPY STATSV,A COPY A,S JMP PART1 LPOOL PART1 COPY =0,A COPY A,IDPCNT CLEAR IDP PASS COUNTER SELP A,:5E INITIALIZE I/O TEST MODULE COPY HLT1,A HLT INSTRUCTION COPY A,1 STORE AT LOCATION 1 A02002 EQU $ COPY  =1,A COPY A,PCOUNT INITIALIZE IDP TEST COUNTER SELP A,4 DISPLAY IDP TEST CODE TITL ******************************************************* * * ----- A02000 ----- * * ----- TEST COPY LIT,2REG AND CSK 2REG,LIT * ******************************************************* CSK A,=:1 NOP ERROR: --ERROR,CSK,FAILED,A=1 CSK A,=0 ERROR: '--ERROR--CSK FAILED ' JMP $+2 ERROR: --ERROR--,CSK,FAILED CSK A,=2 JMP $+3 NOP ERROR: --ERROR--,CSK,FAILED COPY =:FF,Q CSK Q,=:FF NOP ERROR: IF,Q=:FF,CSK,FAILED,ELSE,COPY,FAILED TITL *************************************************** * * IN THE FOLLOSING TEST, COPY MEM,2REG, * CSK 2REG,MEM, AND COPY 2REG,MEM ARE TESTED * ************************************************** A02010 EQU $ COPY PTFFFF,A LOAD'A'WITH FFFF CSK A,PTFFFF 'A' SHOULD BE FFFF NOP ERROR: IF,'A'=:FFFF,CSK,FAILED,ELSE,COPY,FAILED. COPY PTFFFF,Q LOAD 'Q' WITH FFFF CSK Q,PTFFFF NOP ERROR: IF,'Q'=:FFFF,CSK,FAILED,ELSE,COPY,FAILED CSK A,PT0000 'A' LT 0 JMP $+3 NOP ERROR: 'A',SHOULD,BE,:FFFF CSK A,PTFFFE JMP $+2 JMP $+2 ERROR: 'A',SHOULD,=,:FFFF COPY A,TEMP01 CSK A,TEMP01 NOP ERROR: COPY,FAILED,'A'=,:FFFF JMP A02000  ORG $-1 NOP IMS PCOUNT SHOULD = :0002 JMP A03000 * PWRVC3 WORD POWUP TITL ************************************************** * ----- A03000 ----- * * ----- TEST ON COPY 7REG,7REG ----- * * ----- NOTE - COPY REG,P AND COPY P,REG * ARE TESTED IN SEC. A01000 * ************************************************** A03000 COPY =0,Q  LOAD 'Q' WITH ZEROS COPY PTFFFF,A LOAD 'A' WITH FFFF TRLD: A,Q,X,PTFFFF TRLD: A,Q,Y,PTFFFF TRLD: A,Q,K,PTFFFF TRLD: A,Q,L,PTFFFF COPY STATSV,A TRLD: A,Q,S,STATSV COPY PTFFFF,Q LOAD 'Q ' WITH FFFF TRLD: Q,A,X,PTFFFF JMP A03000 ORG $-1 NOP IMS PCOUNT SHOULD = :0003 TITL *************************************************** * * -------A04000------ * * -----TEST FOR JMP, JEQ, JNE, JGT, JGE, JLT, JLE * *************************************************** A04000 EQU $ COPY PTFFFF,A JEQ A,$+2 JMP $+2 ERROR: JEQ,FAILED,ON,A,<,0 JNE A,$+2 ERROR: JNE,FAILED,ON,A,<,0 JLT A,$+2 ERROR: JLT,FAILED,ON,A,<,0 JGE A,$+2 JMP $+2 ERROR: JGE,FAILED,ON,A,<,0 * COPY =0,Q JEQ Q,$+2 ERROR: JEQ,FAILED,ON,Q,=,0 JNE Q,$+2 JMP $+2 ERROR: JNE,FAILED,ON,Q,=,0 JLT Q,$+2 JMP $+2 ERROR: JLT,FAILED,ON,Q,=,0 JLE Q,$+2 ERROR: JLE,FAILED,ON,Q,=,0 JGT Q,$+2 JMP $+2 ERROR: JGT,FAILED,ON,Q,=,0 JGE Q,$+2 ERROR: JGE,FAILED,ON,Q,=,0 * COPY =1,X JLE X,$+2 JMP $+2 ERROR: JLE,FAILED,ON,X,>,0 JGT X,$+2 ERROR: JGT,FAILED,ON,X,>,0 JMP A04000 ORG $-1 NOP IMS PCOUNT SHOULD = :0004 JMP A06000 LPOOL TITL ************************************************** * * ----- A06000 ----- * *----- TEST FOR OR MEM,2REG (INCLUSIVE OR) * * ************************************************** A06000 EQU $ COPY PT00FF,A COPY PTF0F0,Q COPY Q,TEMP01 STORE '0'  OR TEMP01,A CSK A,=:F0FF NOP ERROR: 'OR',FAILED,'A',SHOULD,BE,:F0FF * *************************************************** * * ------A07000------ * * TEST FOR XOR MEM,2REG (EXCLUSIVE OR) * * *************************************************** COPY PT00FF,Q COPY PTF0F0,A COPY A,TEMP01 XOR TEMP01,Q CSK Q,=:F00F NOP ERROR: 'XOR',FAILED, QREG,SHOULD,=,:F00F TITL ************************************************** * * ----- A08000 ----- * * TEST FOR AND MEM,2REG * * ************************************************** COPY PT00FF,A COPY PTF0F0,Q COPY Q,TEMP01 STORE 'Q'  AND TEMP01,A TEMP01=0, A=:FFFF CSK A,=:F0 NOP ERROR: 'AND',FAILED,'A',SHOULD,BE,:F0 JMP  A06000 ORG $-1 NOP IMS PCOUNT SHOULD = :0005 TITL ************************************************** * * ----- A0A000 ----- * * TESTS FOR RBIT OV,S SBIT OV,S JT OV,MEM JF OV,MEM * * ************************************************** * * DETAIL TEST ON STATUS WORD (OV AND BYTE MODE ) * * A0A000 EQU $ COPY STATSV,A COPY A,S  RESET STATUS COPY =2,A OR STATSV,A NORMAL STATUS W/ OV SET COPY A,TEMP01 SBIT OV,S  SET OVERFLOW COPY S,Q LOAD Q FROM S CSK Q,TEMP01 NOP ERROR: ---ERROR-,SBIT,FAILED--  JF OV,$+3 JT OV,$+3 ERROR: ---ERROR-,JT,FAILED,OV=1 ERROR: ---ERROR-,JF,FAILED,OV=1 COPY S,Q CSK Q,STATSV NOP ERROR: 'JT',DID,NOT,RESET,OV,BIT JT OV,$+3 JF OV,$+3  ERROR: ---ERROR-,JF,FAILED,OV=0 ERROR: ---ERROR-,JT,FAILED,OV=0 SBIT OV,S SET OV RBIT OV,S CO PY =:FF,Q COPY S,Q CSK Q,STATSV NOP ERROR: ---ERROR---,RBIT,FAILED JMP A0A000 ORG $-1 NOP IMS PCOUNT SHOULD BE :0006 TITL *************************************************** * * ----- A0B000 ----- * *----- TEST FOR SBM AND SWM * CHECK TO SEE IF SBM TURNS ON BIT 2 IN PSW * AND SWM TURNS OFF BIT 2 IN PSW * * ************************************************** A0B000 EQU $ COPY =0,Q ZERO Q REG COPY STATSV,A CLEAR A REG COPY A,S ZERO PSW COPY  =4,Q OR STATSV,Q NORMAL STATUS W/ BYTE MODE SET COPY Q,TEMP01 SBIT BY,S BYTE MODE BIT ON COPY S,A RBIT BY,S BYTE MODE BIT OFF CSK A,TEMP01 NOP ERROR: 'SBM',DID,NOT,SET,BYTE,MODE,BIT. COPY S,A CSK A,STATSV NOP ERROR: 'SWM',DID,NOF,TURN,OFF,BYTE,MODE,BIT JMP A0B000  ORG $-1 NOP IMS PCOUNT SHOULD = :0007 TITL ************************************************** * * ----- A0C000 ----- * *----- SIMPLE TEST ON SIN . FORCED WORD MODE AND * EFFECT ON Q REG ARE CHECKED HERE.FORCED * INTERRUPT * * ************************************************** A0C000 EQU $ COPY =4,A OR STATSV,A COPY =:00FF,Q 00FF TO Q REG COPY Q,TEMP01 COPY A,S SET S TO BYTE MODE SIN :6 COPY TEMP01,A LOAD A WITH 00FF CSK A,=:00FF NOP ERROR: 'SIN',FAILED,'A'=:00FF,=TEMP01 COPY STATSV,A  COPY A,S RESTORE 'S' TO WORD MODE JMP A0C000 ORG $-1 NOP IMS PCOUNT SHOULD = :0008 JMP A0D000 LPOOL TITL *************************************************** * * ------A0D000------- * * -----TEST FOR IMS MEM ------- * ************************************************** A0D000 EQU $ COPY =:FE,A COPY A,TEMP01 STORE AREG IMS TEMP01 JMP $+2 ERROR: 'IMS',FAILED,AREG,SHOULD,BE,:00FE COPY TEMP01,A CSK A,=:FF NOP  ERROR: IMS,FAILED,---,NO,INCREMENT COPY PTFFFF,A :FFFF TO 'A' COPY A,TEMP01 STORE 'A' AT TEMP01  IMS TEMP01 -1+1 = 0 ERROR: 'IMS',FAILED,'A',SHOULD,BE,:FFFF,AND,TEMP01,SHUD,BE,0 COPY PT7FFF,A :7FFF TO 'A' COPY A,TEMP01 IMS TEMP01 :7FFF+1=:8000, OV SET JMP $+2 ERROR: 'IMS',FAILED,TEMP01,SHOULD,BE,:8000 JT OV,$+2 ERROR: 'IMS',FAILED,TEMP01,=:8000,OV=1,:7FFF+1,=:8000 JMP A0D000 ORG  $-1 NOP IMS PCOUNT SHOULD = :0009 TITL ************************************************** * * ---- A0E000 ---- * * SHIFT 4REG,LO,CNT * ************************************************** * * SHIFT A,LO,CNT * A0E000 EQU $  COPY STATSV,A COPY A,S COPY PT5555,A SHIFT A,LO,1 CSK A,PTAAAA NOP ERROR: SHIFT,FAILED,--,A,SHOULD,=,:AAAA * * SHIFT Q,LO,4 * COPY PTAAAA,Q SHIFT Q,LO,4 CSK Q,=:AAA0  NOP ERROR: SHIFT,FAILED,--,Q,SHOULD,=,:AAA0 * * SHIFT X,LO,9 * COPY PT6666,X SHIFT X,LO,8 COPY  X,A CSK A,=:6600 NOP ERROR: SHIFT,FAILED,--,X,SHOULD,=,:6600 JT OV,$+2 JMP $+2   ERROR: SHIFT,FAILED,--,OV,WAS,SET * * SHIFT Y,LO,13 * COPY PTAAAA,Y SHIFT Y,LO,13 COPY Y,A CSK A,=:4000 NOP ERROR: SHIFT,FAILED,--,Y,SHOULD,=,:4000 JT OV,$+2 ERROR: SHIFT,FAILED,--,OV,WAS,NOT,SET PATCHX A0E000 JMP A0F000 LPOOL TITL ******************************************************* * *----- SECTION A0F000 ----- * * FMT 4REG * ******************************************************* * A0F000 EQU $ COPY STATSV,A COPY A,S COPY PTFFFF,Y FMT Y  FETCH M/C TYPE IN 'Y' COPY Y,A CSK A,MACHIN COMPARE WITH EXPECTED MACHINE TYPE NOP ERROR: 'FMT',FAILED TITL ************************************************** * * ---- A10000 ---- * * XNX 4REG * ************************************************** A10000 EQU $ COPY =:10,A XNX A COPY =:20,Q CSK  Q,=:30 NOP ERROR: XNX,FAILED,--,Q,SHOULD,=,:30 JMP A0F000 ORG $-1 NOP IMS PCOUNT SHOULD = :000B TITL ******************************************************* * * ---- A11000 ---- * * IN 4,REG  INPUT FROM CONSOLE WORD REGISTER * ******************************************************* A11000 COPY PTFFFF,A SELP A,4 IN 4,Q CSK Q,PTFFFF NOP ERROR: Q,SHOULD,=,:FFFF.,IF,DISPLAY=Q,THEN,SELP,FAILED,ELSE,IN COPY PTAAAA,Q SELP Q,4 IN 4,X COPY X,A CSK A,PTAAAA NOP ERROR: X,SHOULD,=,:AAAA.,IF,DISPLAY=X,THEN,SELP,FAILED,ELSE,IN COPY PT5555,X SELP X,4 IN 4,Y COPY Y,A CSK A,PT5555  NOP ERROR: Y,SHOULD,=:5555.,IF,DISPLAY=Y,THEN,SELP,FAILED,ELSE,IN COPY PT6666,Y SELP Y,4 IN 4,A CSK A,PT6666 NOP ERROR: A,SHOULD,=:6666.,IF,DISPLAY=A,THEN,SELP,FAILED,ELSE,IN COPY =1,A IDP TEST CODE SELP A,4 OUTPUT TO CONSOLE JMP A11000 PATCH FOR LOOPING ORG $-1 JMP *A11001 PATCH FOR LOOPING ORG $-1  NOP OVERLAY WITH NOP * COPY PCOUNT,A CSK A,=:000B NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED JMP A12000 A11001 WORD A02000 LPOOL A12000 EQU $ TITL INSTRUCTION DIAGNOSTIC -- SEC. B0-1 ******************************************************* * * *------------ SECTION B0 ------------ * * OBJECTIVE: IN THIS SECTION EXTENSIVE TESTING OF * THE FOLLOWING INSTRUCTIONS IS DONE. * * * COPY 4REG,MEM * * ******************************************************* * * *----- TEST STRUCTURE ----- * * GENERAL: EACH INSTRUCTION TEST IS VERIFIED UNDER *  THE FOLLOWING CONDITIONS: * * (1) ADDRESSING MODES: THERE ARE SIX MODES. * ABSOLUTE DIRECT ADDRESSING (SPAD) * ABSOLUTE INDIREC ADDRESSING * RELATIVE DIRECT ADDRESSING * RELATIVE INDIRECT ADDRESSING *  INDEXED DIRECT ADDRESSING * INDEXED INDIRECT ADDRESSING * * (2) WORD MODE * * (3) BYTE MODE * * (4) MULTIPLE LEVEL INDIRECT ADDRESSING * ******************************************************* TITL ******************************************************* * * PROGRAM STRUCTURE: PROGRAM IS DIVIDED INTO THE * FOLLOWING SECTIONS: * * B04000 -- IN THIS  SECTION 'COPY 4REG,MEM' * INSTRUCTION IS TESTED UNDER ALL THE * ADDRESSING MODES AND UNDER WORD MODE. * * B05000 -- SAME TEST AS IN SECTION B04000 EXCEPT IT IS * PERFORMED UNDER BYTE MODE. * * B06000 -- IN THIS SECTION 'COPY 4REG,MEM' AND * 'CSK 2REG,MEM' ARE EXECUTED UNDER MULTIPLE LEVEL * INDIRECT ADDRESSING FOR WORD MODE. * ************************************************************* TITL ************************************************** * *----- B04000 ----- * * ADDRESSIN MODES ON COPY 4REG,MEM * -- WORD MODE -- ************************************************** * * ****** * ABSOLUTE DIRECT ADDRESSING. USING 'A'. * -- WORD MODE -- ****** * B04000 EQU $ COPY STATSV,A  COPY A,S ZERO PSW COPY =:0F,A COPY A,TEMP01 STORE'A' CSK A,TEMP01 NOP ERROR: 'A'=,TEMP01,=:0F,IF,NOT,COPY,FAILED,ELSE,CSK TITL ****** * ABSOLUTE INDIRECT ADDRESSING USING 'A' * -- WORD MODE -- * COPY A,*MEM ****** * * COPY A,*MEM * B04010 EQU $ COPY STATSV,A COPY A,S CLEAR 'S' COPY =TEMP01,A COPY A,TEMP02 COPY =:0F,A COPY A,*TEMP02 CSK A,TEMP01 NOP ERROR: CSK,FAILED,IF,'A'=,TEMP01=,:0F,ELSE,COPY,FAILED. PATCHX B04000 TITL ****** * RELETIVE DIRECT ADDRESSING. USING 'A' * -- WORD MODE -- * COPY A,MEM ****** * * COPY A,MEM * B04020 EQU $ COPY STATSV,A COPY A,S  ZERO 'S' COPY =:0F,A COPY A,CEL442 STORE 'A' CSK A,CEL442 NOP ERROR: CSL,FAILED,IF,A=CEL442=:0F,ELSE,COPY,FAILED TITL ***** * RELATIVE INDIRECT ADDRESSING USING AREG * -- WORD MODE -- * COPY A,*MEM ***** * * COPY A,*MEM * B04030 EQU $ COPY STATSV,A COPY A,S ZERO PSW COPY =CEL442,A COPY  A,CEL441 CEL441 = CEL442 ADD. COPY =:FF,A FF TO 'A' COPY A,*CEL441 CSK A,CEL442 NOP  ERROR: CSK,FAILED,IF,'A'=CEL442,=:FF,ELSE,COPY,FAILED PATCHX B04020 JMP B04040 LPOOL TITL ****** *  INDEXED ADDRESSING USING 'X'. (DIRECT) * -- WORD MODE -- * COPY A,1(X) ****** CEL440 WORD 0 CEL441 WORD 1 CEL442 WORD 0 * * COPY A,1(X) * B04040 EQU $ COPY STATSV,A COPY A,S ZERO PSW COPY =CEL441,X CEL441 ADD IN X COPY =:F0,A COPY A,1(X) STORE 'A' AT CEL442 CSK A,CEL442 NOP  ERROR: CSK,FAILED,IF,'A'=,CEL442,=:F0,ELSE,COPY,FAILED. TITL ****** * INDEXED ADDRESSING USING 'Y'. (DIRECT) * -- WORD MODE -- * COPY A,1(Y) ****** * * * COPY A,1(Y) * B04050 EQU $ COPY STATSV,A COPY A,S ZERO PSW COPY =CEL441,Y CEL441 ADD IN 'Y' COPY =:A5,A LOAD 'A' WITH :00A5 COPY A,1(Y) STORE 'A' AT CEL442 CSK A,CEL442 NOP ERROR: CSK,FAILED,IF,'A'=:A5,=CEL442,ELSE,COPY,FAILED TITL ****** * INDEXED ADDRESSING USING 'X','Y'.(DIRECT) * -- WORD MODE -- * COPY A,1(X,Y) ****** * * COPY A,1(X,Y) * B04060 EQU $ COPY STATSV,A COPY A,S COPY =CEL440,Y COPY =1,X COPY =:5A,A COPY A,1(X,Y) STORE AT CEL442 CSK A,CEL442 NOP ERROR: CSK,FAILED,IF ,A=:5A=CEL442,ELSE,COPY,FAILED PATCHX B04040 JMP B04070 TITL ****** * INDIRECT INDEXED ADDRESSING USING 'X'. *  -- WORD MODE -- * COPY A,*1(X) ****** CEL470 WORD 0 CEL471 WORD 1 CEL472 WORD 0 * * COPY A,*1(X) * B04070 EQU  $ COPY STATSV,A COPY A,S COPY =1,A COPY A,TEMP01 COPY =CEL471,X COPY =:FF,A LOAD :00FF IN 'A' COPY A,*TEMP01(X) CEL472=:00FF CSK A,CEL472 NOP ERROR: CSK,FAILED,IF,'A'=:FF,=CEL472,ELSE,COPY,FAILED TITL ****** * INDIRECT INDEXED ADDRESSING USING 'Y'. * -- WORD MODE -- * COPY A,*1(Y) ****** * * COPY A,*1(Y) * B04080 EQU $ COPY STATSV,A COPY A,S ZERO PSW COPY =CEL472,A COPY A,CEL471 CEL471=.CEL472 ADD. COPY =CEL470,Y COPY =:0F,A LOAD 'A' BY :000F COPY  A,*1(Y) CEL472=:000F CSK A,CEL472 NOP ERROR: CSK,FAILED,IF,'A'=:0F,=CEL472,ELSE,COPY,FAILED TITL ****** * INDIRECT INDEXED ADDRESSING USING X,Y. * -- WORD MODE -- * COPY A,*1(X,Y) ****** * * COPY A,*1(X,Y) * B04090 EQU $ COPY =1,A COPY A,CEL471 COPY STATSV,A COPY A,S ZERO S REG COPY =CEL471,X CEL471 ADD IN'X' COPY =CEL470,Y CEL470 ADD IN 'Y' COPY =:55,A COPY A,*1(X,Y) STORE A AT CEL472 CSK A,CEL472 NOP ERROR: CSK,FAILED,IF,A=:55=CEL472,ELSE,COPY,FAILED PATCHX B04070 JMP B04100 LPOOL TITL ****** * ADDRESSING MODES ON 'Q', 'X', AND 'Y' * EACH REGISTER IS TESTED UNDER ONE * ADDRESSING MODE ONLY. SELECTION OF A * REGISTER AND ADDRESSING MODE IS RANDOM. * -- WORD MODE -- ****** CEL410 WORD 0 CEL411 WORD 0 CEL412 WORD 0 * ****** * RELATIVE INDIRECT ADDRESSING USING 'Q'. * COPY Q,*MEM ****** * * COPY Q,*MEM * B04100 EQU $ COPY PT6666,Q COPY  STATSV,A COPY A,S CLEAR 'S' COPY =CEL412,A COPY A,CEL411 CEL411 =ADD.OF CEL412 COPY Q,*CEL411 STORE 'Q' AT CEL412 CSK Q,CEL412 NOP ERROR: CSK,FAILED,IF,'Q'=:6666,=CEL412,ELSE,COPY,FAILED TITL ****** * INDEXED INDIRECT ADDRESSING USING INDEX * REGISTER 'Y' ON ''X' * -- WORD MODE -- * COPY X,*1(Y) ****** * * COPY X,*1(Y) * B04110 EQU $ COPY PT00FF,X COPY STATSV,A COPY A,S CLEAR 'S'  COPY =CEL412,A COPY A,CEL411 CEL411=ADD.OF CEL412 COPY =CEL410,Y COPY X,*1(Y) STORE'X' AT CEL412 COPY X,A CSK A,CEL412 NOP ERROR: 'A'=,CEL412=,:00FF,CEL411=,CEL412 ADDRESS,'Y'=,CEL410,ADD TITL ****** * INDEXED INDIRECT ADDRESSING USING INDEX * REGISTER 'X' ON 'Y' * -- WORD MODE -- * COPY Y,*1(X) ****** * * COPY Y,*1(X) * B04120 EQU $ COPY PTF0F0,Y COPY STATSV,A COPY A,S COPY =1,A COPY A,TEMP01 COPY =CEL411,X COPY Y,*TEMP01(X) STORE Y AT CEL412 COPY Y,A CSK A,CEL412 NOP ERROR: AREG=YREG=CEL412=:F0F0,CEL411=CEL412,ADDR PATCHX B04100 COPY PCOUNT,A CSK A,=:0010 NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED JMP B05000 LPOOL  TITL INSTRUCTION DIAGNOSTIC -- SEC. B0-5 ************************************************** *----- B05000 ----- *  ADDRESSING MODES ON COPY 4REG,MEM * -- BYTE MODE -- ************************************************** * ABSOLUTE DIRECT ADDRESSING MODE. USING 'A' * -- BYTE MODE -- * COPYB A,SPAD ****** B05000 EQU $ COPY STATSV,A  COPY A,S CLEAR 'S' COPY =0,A COPY A,TEMP01 COPY PTAA55,A COPY PT55AA,Q SBIT BY,S COPYB A,TEMP01 RBIT BY,S COPY =:5500,A CSK A,TEMP01 NOP ERROR: COPY,FAILED,--,A,=,TEMP01,=,:5500 SBIT BY,S COPYB Q,TEMP01+1 RBIT BY,S CSK Q,TEMP01 NOP ERROR: COPY,FAILED,--,Q,=,TEMP01,=,:55AA PATCHX B05000 TITL ****** * ABSOLUTE INDIRECT ADDRESSING. USING 'A' * -- BYTE MODE -- * COPY A,*SPAD ****** * * COPY A,*SPAD * B05010 EQU $ COPY =TEMP01,A SHIFT A,LO,1 TEMP01 BYTE ADD. IN 'A' COPY A,TEMP02 TEMP02 = TEMP01 BYTE ADD. COPY =0,A COPY A,TEMP01 COPY  STATSV,A COPY A,S CLEAR 'S' COPY PTAA55,A SBIT BY,S COPY A,*TEMP02 :55 TO TEMP01 BYTE 0 RBIT BY,S COPY =:5500,A CSK A,TEMP01 NOP ERROR: COPY,FAILED,--,A=TEMP01=:5500 PATCHX B05010 JMP B05020 LPOOL TITL ******************************** * RELATIVE DIRECT ADDRESSING USING 'A' * -- BYTE MODE -- * COPYB A,MEM ****** * * COPYB A,MEM * B05020 EQU $ COPY STATSV,A COPY A,S CLEAR 'S' COPY =0,A COPY A,CEL542 COPY  PTAA55,A COPY PT55AA,Q SBIT BY,S COPYB A,CEL542 RBIT BY,S COPY =:5500,A CSK A,CEL542 NOP ERROR: COPY,FAILED,--,A,=,CEL542,=,:5500 SBIT BY,S COPYB Q,CEL542+1 RBIT BY,S  CSK Q,CEL542 NOP ERROR: COPY,FAILED,--,Q,=,CEL542,=,:55AA PATCHX B05020 TITL ****** * RELATIVE INDIRECT ADDRESSING USING 'A' * -- BYTE MODE -- * COPY A,*MEM MEM = BYTE ADD. OF DESTINATION. ****** * * * COPY A,*MEM * B05030 EQU $ COPY =0,A COPY A,CEL540 COPY =CEL540,A SHIFT A,LO,1 COPY  A,CEL542 IMS CEL542 CEL542 = CEL540 BYTE 1 ADD COPY STATSV,A COPY A,S COPY =:AA,A  COPY PT55AA,Q SBIT BY,S COPY Q,*CEL542 RBIT BY,S CSK A,CEL540 NOP ERROR: COPY,FAILED,--,Q,=,CEL540,=,:AA PATCHX B05030 JMP B05040 LPOOL TITL ****** * INDEXED DIRECT ADDRESSING. INDEX REG IS X * -- BYTE MODE-- * COPY A,(NTCX) XREG=BYTE ADDR * EA=XREG+CNT ********* CEL540 WORD 0 CEL541 WORD 0 CEL542 WORD 0 * * COPY A,1(X) * B05040 EQU $ COPY =CEL541,X SHIFT X,LO,1 CEL541 BYTE ADD IN 'X'  COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL542 COPY =:5566,A SBIT BY,S  COPY A,2(X) :66 TO CEL542 BYTE 0 RBIT BY,S COPY =:6600,A CSK A,CEL542 NOP ERROR: COPY,FAILED,--,A,=,CEL542,=,:6600 PATCHX B05040 JMP B05050 LPOOL TITL ****** * INDEXED DIRECT ADDRESSING. INDEX REG. = 'Y' * -- BYTE MODE -- * COPY A,CNT(Y) 'Y'= WORD ADD * EA = 2(Y) + CNT ****** * * COP  Y A,CNT(Y) * B05050 EQU $ COPY =CEL541,Y CEL541 WORD ADD IN 'Y' COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL542 COPY =:5566,A SBIT BY,S COPY A,2(Y) CEL542 BYTE0 =:66 RBIT BY,S COPY =:6600,A CSK A,CEL542 NOP ERROR: COPY,FAILED,--,A,=,CEL542,=,:6600 PATCHX B05050  JMP B05060 LPOOL TITL ****** * INDEXED DIRECT ADDRESSING USING 'X' & 'Y' * -- BYTE MODE -- * COPY A,CNT(X,Y) 'X'=BYTE ADD. * 'Y'= WORD ADD. * EA = 2(Y) + CNT + (X) ****** * * COPY A,CNT(X,Y) * B05060 COPY =CEL540,Y CEL540 WORD ADDRESS IN 'Y' COPY =2,X COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL542 COPY =:5566,A SBIT BY,S COPY A,2(X,Y) CEL542 BYTE 0 = :66 RBIT BY,S COPY =:6600,A CSK A,CEL542 NOP ERROR: COPY,FAILED,--,CEL542=:6600 PATCHX B05060 JMP B05070 LPOOL TITL ****** * INDEXED INDIRECT ADDRESSING USING XREG * -- BYTE MODE -- * COPY A,*CNT(X) AP =(CNT) (AP)=BYTE ADD *  EA= (AP)+(X) * 'X'=BYTE ADD ****** * CEL570 WORD 0 CEL571 WORD 0 CEL572 WORD 0 * * COPY A,*CNT(X) * B05070 EQU $ COPY =2,A COPY A,TEMP01 COPY =CEL571,X SHIFT X,LO,1 CEL571 BYTE ADD IN 'X' COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL572 COPY =:66FF,A SBIT BY,S COPY A,*TEMP01(X) CEL572 BYTE0 =:FF RBIT BY,S COPY =:FF00,A CSK A,CEL572 NOP  ERROR: COPY,FAILED,--,A,=,CEL572,=,:FF00 PATCHX B05070 TITL ****** * INDEXED INDIRECT ADDRESSING USING 'Y'. * -- BYTE MODE -- * COPY A,*CNT(Y) AP=(CNT)+(Y) (AP)=BYTE ADD. * EA=(AP) ****** * * COPY A,*CNT(Y) * B05080 EQU $ COPY =CEL572,A SHIFT A,LO,1 CEL572 BYTE ADD IN 'A' COPY A,CEL571 COPY =CEL570,Y COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL572 COPY =:66FF,A  SBIT BY,S COPY A,*1(Y) CEL572 BYTE0 =:FF RBIT BY,S COPY =:FF00,A CSK A,CEL572 NOP  ERROR: COPY,FAILED,--,A,=,CEL572,=,:FF00 PATCHX B05080 TITL ****** * INDEXED INDIRECT ADDRESSING USING AREG AND YREG * -- BYTE MODE -- * COPY A,*CNT(X,Y) AP=(Y)+(CNT) * EA=(AP)+(X) ****** * * COPY A,*CNT(X,Y) * B05090 EQU $ COPY =CEL572,A SHIFT A,LO,1 CEL572 BYTE ADDR IN AREG COPY A,CEL571 COPY =CEL570,Y COPY =0,X COPY STATSV,A COPY A,S COPY =0,A COPY A,CEL572 COPY =:FF66,A COPY =:66FF,Q SBIT BY,S COPY A,*1(X,Y) CEL572 BYTE0 =:66 RBIT BY,S COPY =:6600,A CSK A,CEL572  NOP ERROR: COPY,FAILED,--,A,=,CEL572,=,:6600 COPY =1,X SBIT BY,S COPY Q,*1(X,Y) CEL572 BYTE1 =:FF RBIT BY,S CSK Q,CEL572 NOP ERROR: COPY,FAILED,--,Q,=,CEL572,=,:66FF PATCHX B05090  JMP B050B0 LPOOL TITL ****** * TEST ADDRESSING MODES ON 'X' & 'Y'. * -- BYTE MODE -- ****** * CEL5A0 W  ORD 0 CEL5A1 WORD 0 CEL5A2 WORD 0 ****** * INDEXED DIRECT ADDRESSING * --BYTE MODE -- * COPY X,CNT(Y) *  COPY Y,CNT(X) ****** * * * COPY X,CNT(Y) * B050B0 EQU $ COPY =CEL5A0,Y COPY PT5555,X COPY STATSV,A COPY A,S SBIT BY,S COPY X,2(Y) CEL5A1 BYTE0 =:55 COPY X,3(Y) CEL5A1 BYTE1 =:55  RBIT BY,S COPY PT5555,A CSK A,CEL5A1 NOP ERROR: COPY,FAILED.,'X'=:5555,CEL5A1=,:5555 * * COPY Y,CNT(X) * B050B1 EQU $ COPY =CEL5A0,X SHIFT X,LO,1 CEL5A0 BYTE ADDR IN XREG COPY PTF0F0,Y COPY STATSV,A COPY A,S SBIT BY,S COPY Y,2(X) CEL5A1 BYTE 0 =:F0 COPY Y,3(X) BYTE 1 = :F0 RBIT BY,S COPY PTF0F0,A CSK A,CEL5A1 NOP ERROR: COPY,FAILED,'Y'=,:F0F0,=CEL5A1 PATCHX B050B1 JMP B06000 TITL INSTRUCTION DIAGNOSTIC -- SEC. B0-6 ************************************************** * ----- B06000 ----- * * TEST COPY 4REG,MEM USING MULTIPLE LEVEL * INDIRECT ADDRESSING FOR WORD MODE. * ************************************************** * * INDEXED INDIRECT ADDRESSING USING 'X'. * * COPY A,*TEMP01(X) TEMP01 = AP1 * (TEMP01) = TEMP02 = AP2 XA=0, BIT 15=1 *  (TEMP02) + (X) = EA ************************************************* * * COPY A,*MEM(X) B06000 EQU $ COPY =0,A COPY A,S RESET XA COPY A,TEMP02 COPY =TEMP02,A OR =:8000,A  COPY A,TEMP01 TEMP01 = TEMP02 ADD + BIT 15 SET COPY =TEMP,X COPY PTFFFF,A COPY A,*TEMP01(X) :FFFF TO TEMP COPY STATSV,Q COPY Q,S CSK A,TEMP NOP ERROR: CSK,FAILED,IF,'A'=,:FFFF,=TEMP,ELSE,COPY PATCHX B06000 TITL ************************************************* * * INDEXED INDIRECT ADRESSING USING 'Y'. * * COPY A,*TEMP01(Y) TEMP01 + (Y) = AP1 * (AP1) = TEMP02 = AP2 XA=0, BIT 15=1 * (TEMP02) = EA * ************************************************* * * COPY A,*0(Y) * B06010 EQU  $ COPY =0,A COPY A,S RESET XA COPY =TEMP,A COPY A,TEMP02 TEMP02 = TEMP ADD. COPY =TEMP02,A OR PT8000,A COPY A,TEMP01 TEMP01 = TEMP02 ADD + BIT15 SET COPY =TEMP01,Y COPY PTAAAA,Q COPY Q,*0(Y) :AAAA TO TEMP COPY STATSV,A COPY A,S CSK Q,TEMP NOP ERROR: CSK,FAILED,IF,AREG=:FFFF=TEMP,ELSE,COPY,FAILED PATCHX B06010 COPY PCOUNT,A CSK A,=:1D NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED GLPOL: TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-1 ****************************************************** * * ----------- SECTION B1 ---------- * * TESTING OF THE FOLLOWING INSTRUCTIONS: * * COPY MEM,4REG B11000 * CSK 2REG,MEM B12000 * ADD MEM,4REG B13000 * SUB MEM,4REG B14000 * JST MEM B16000 * EXCH MEM,4REG B17000 * ****************************************************** TITL ****************************************************** * * ----------- TEST STRUCTURE ---------- * * B11000 -- COPY MEM,4REG IS TESTED IN BYTE MODE * (WORD MODE TESTED IN SEC. A0  ). BYTE * ADDRESSABILITY OF THREE SUCCESSIVE * BYTES IS TESTED. ONE ADDRESSING MODE * IS TESTED * * B12000 -- SAME AS B11000, PLUS ONE SPECIAL CASE IS TESTED * * B13000 -- ADD MEM,4REG IS TESTED FOR POSITIVE *  AND NEGATIVE OVERFLOW, IN ADDITION TO * NORMAL OPERATION, WITH ONE ADDRESSING * MODE. WORD MODE AND BYTE MODE ARE TESTED * * B14000 -- SUB MEM,4REG IS TESTED WITH ONE ADDRESSING * MODE. WORD MODE AND BYTE MODE ARE TESTED. * * B16000 -- JST MEM IS TESTED WITH ONE ADDRESSING MODE * * B17000 -- EXCH MEM,4REG IS TESTED WITH ALL ADDRESSING * MODES. WORD MODE AND BYTE MODE ARE TESTED. * ****************************************************** TITL ******************************************************* * * ---- SECTION B11000 ---- * * TEST COPY MEM,REG USING * POST INDEXED DIRECT ADDRESSING - BYTE MODE. * THREE ADJACENT BYTE ADDRESSES ARE CHECKED. * ******************************************************* B11000 COPY PT55AA,A COPY A,TEMP01 COPY A,TEMP02 COPY =TEMP01,X SHIFT X,LO,1 SBIT BY,S COPY 0(X),A COPY 1(X),Q COPY 2(X),Y RBIT BY,S CSK A,=:55 NOP ERROR: COPY,FAILED,--,AREG,SHOULD,BE,=:55 CSK Q,=:AA NOP ERROR: COPY,FAILED,--,QREG,SHOULD,BE,=:AA CSK Y,=:55 NOP ERROR: COPY,FAILED,--,Y,SHOULD,=,:55  PATCHX B11000 TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-2 ******************************************************* * *  TEST CSK REG,MEM USING * PRE INDEXED DIRECT ADDRESSING - BYTE MODE. * ******************************************************* B12000 EQU $ COPY PT00FF,A COPY A,TEMP01 COPY PT55AA,A COPY A,TEMP02 COPY =TEMP01,Y COPY =:55,A SBIT BY,S CSK A,0(Y) COMPARE A TO 0 ERROR: CSK,FAILED,--,A,>,MEM  JMP $+2 ERROR: CSK,FAILED,--,A,>,MEM SBIT BY,S CSK A,1(Y) COMPARE A TO :FF JMP $+3  NOP ERROR: CSK,FAILED,--,A,<,MEM SBIT BY,S CSK A,2(Y) COMPARE A TO :55 NOP ERROR: CSK,FAILED,--,A,=,MEM RBIT BY,S TITL ****** * * SPECIAL CASE CSK TEST -- WORD MODE * ****** COPY PT8000,Q  COPY =1,A COPY A,TEMP01 CSK Q,TEMP01 JMP $+3 NOP ERROR: CSK,FAILED,--,Q,<,MEM PATCHX B12000 TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-3 ******************************************************* * * ---- SECTION B1-3 * * TEST ADD MEM,REG USING * DIRECT RELATIVE ADDRESSING * ******************************************************* * * ADD MEM,A WORD MODE * B13000 EQU $ COPY STATSV,A COPY A,S COPY PT5555,A COPY A,CEL300 COPY =:1FFF,A ADD CEL300,A CSK A,=:7554 NOP ERROR: ADD,FAILED,--,AREG,SHOULD,=:7554 * * ADD MEM,Q OVERFLOW * COPY =:5AAA,A COPY A,CEL300 COPY =:2FFF,Q ADD CEL300,Q JT OV,$+2 ERROR: ADD,FAILED,--,DID,NOT,SET,OVERFLOW CSK Q,=:8AA9 NOP ERROR: ADD,FAILED,--,Q,SHOULD,=,:8AA9 * * ADD MEM,X OVERFLOW * COPY STATSV,A COPY A,S COPY PTAAAA,A COPY A,CEL300 COPY =:A000,X   ADD CEL300,X JT OV,$+2 ERROR: ADD,FAILED,--,DID,NOT,SET,OVERFLOW COPY X,A CSK A,=:4AAA NOP ERROR: ADD,FAILED,--,X,SHOULD,=,4AAA * * ADDB MEM,Y BYTE MODE * COPY STATSV,A COPY A,S COPY =:0010,Y COPY =:FF10,Q COPY Q,CEL300 SBIT BY,S ADDB CEL300,Y RBIT BY,S COPY Y,A CSK A,=:010F NOP ERROR: ADDB,FAILED,--,Y,SHOULD,=,:010F PATCHX B13000  JMP B14000 LPOOL CEL300 RES 1,0 TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-4 ******************************************************* * * ---- SECTION B14000 * * TEST SUB MEM,REG USING * ABSOLUTE DIRECT ADDRESSING * ******************************************************* * * SUB MEM,A * B14000 COPY STATSV,A COPY A,S COPY =:0100,A COPY A,TEMP01 COPY =:000A,A SUB TEMP01,A CSK A,=:FF0A NOP ERROR: SUB,FAILED,--,AREG,SHOULD,=:FF0A * * SUBB MEM,Q * COPY =:50,Q COPY =:48,A COPY A,TEMP01 SBIT BY,S SUBB TEMP01+1,Q RBIT BY,S CSK Q,=:08 NOP ERROR: SUBB,FAILED,--,Q,SHOULD,=,:0008 PATCHX B14000 TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-6 ******************************************************* * * TEST JST MEM USING * RELATIVE DIRECT ADDRESSING * ******************************************************* B16000 EQU $ COPY STATSV,A COPY A,S JST B16002 B16001 EQU $ ERROR: JST,FAILED JMP B16003 B16002 ENT COPY =B16001,A CSK A,B16002 NOP ERROR: JST,FAILED,--,WRONG,RETURN,ADDRESS IMS B16002 JMP *B16002 B16003 EQU $ PATCHX B16000 TITL INSTRUCTION DIAGNOSTIC -- SEC. B1-7 ******************************************************* * *------------ SECTION B1-7 ------------- * * OBJECTIVE: EXTENSIVE TESTING OF THE FOLLOWING * INSTRUCTIONS: * * EXCH MEM,4REG * * *----- TEST STRUCTURE ----- * * 'EXCH' IS VERIFIED UNDER ALL THE ADDRESSING * MODES, WORD MODE AND BYTE MODE * ******************************************************* TITL ******************************************************* * *----- SECTION B17000 ----- * **** * -- WORD MODE -- * ABSOLUTE DIRECT ADDRESSING * ******************************************************* B17000 EQU $ COPY =0,A COPY PTF0F0,Q COPY Q,TEMP01 EXCH TEMP01,A COPY =0,Q CSK Q,TEMP01 NOP ERROR: 'EXCH',FAILED,-,TEMP01,SHOULD,=0 CSK A,PTF0F0 NOP ERROR: 'EXCH',FAILED,AREG,SHOULD,=:F0F0 TITL ********* * * ABSOLUTE INDIRECT ADDRESSING * ---WORD MODE--- * ******** B17010 EQU $ COPY PTF0F0,Q COPY PTFFFF,X COPY =TEMP01,A COPY A,TEMP02 COPY Q,TEMP01 EXCH *TEMP02,X COPY PTFFFF,A CSK A,TEMP01 NOP ERROR: 'EXCH',IN,INDIRECT,ADD,FAILED COPY X,A CSK A,PTF0F0 NOP ERROR: EXCH,FAILED,X,SHOULD,=,:F0F0 PATCHX B17000 JMP B17020 TITL ****** * *----- B17020 ----- * * RELATIVE DIRECT AND INDIRECT ADDRESSING * --WORD MODE-- * ***** CEL171 RES 1,0 CEL172 RES 1,0 B17020  EQU $ COPY PTFFFF,A COPY PTF0F0,Q COPY Q,CEL175 EXCH CEL175,A COPY PTFFFF,Q  CSK Q,CEL175 NOP ERROR: EXCH,FAILED,CEL175,SHOULD,=,:FFFF CSK A,PTF0F0 NOP ERROR: EXCH,FAILED,A,SHOULD,=,:F0F0 * * INDIRECT RELATIVE * COPY =CEL174,A COPY A,CEL173 COPY PT00FF,X  COPY =0,A COPY A,CEL174 EXCH *CEL173,X COPY PT00FF,A CSK A,CEL174 NOP ERROR: EXCH,FAILED,CEL174,SHOULD,=,:00FF COPY X,A CSK A,=0 NOP ERROR: EXCH,FAILED,X,SHOULD,=,0  PATCHX B17020 JMP B17030 LPOOL TITL ****** * ---B17030--- * * INDEX DIRECT AND INDIRECT ADDRESSING USING XREG * --WORD MODE-- ****** CEL173 WORD 0 CEL174 WORD 0 CEL175 WORD 0 B17030 EQU $ COPY PT00FF,Q COPY PTFFFF,Y COPY PTFFFF,A COPY =CEL174,X CEL174 ADD IN 'X' COPY Q,CEL175 EXCH 1(X),Y  CEL175 SHULD = :FFFF CSK A,CEL175 NOP ERROR: 'EXCH',FAILED,CEL175,SHULD,=:FFFF COPY Y,A  CSK A,PT00FF NOP ERROR: EXCH,FAILED,A,SHOULD,=,:00FF * * INDIRECT INDEX 'X' * COPY =1,A COPY A,TEMP01 COPY =CEL174,X COPY =0,A COPY A,CEL175 EXCH *TEMP01(X),Y CSK Q,CEL175 NOP ERROR: 'Q',SHULD,=,CEL175,=:00FF COPY Y,A CSK A,=0 NOP ERROR: EXCH,FAILED,Y,SHOULD,=,0 PATCHX B17030 TITL ****** * *----- B17040 ----- * * INDEX DIRECT AND INDIRECT ADDRESSING USING 'Y' *  --WORD MODE-- * ****** B17040 EQU $ COPY PTFFFF,A COPY PT00FF,Q COPY PTFFFF,X COPY =CEL173,Y COPY Q,CEL174 EXCH 1(Y),X CSK A,CEL174 NOP ERROR: 'A',SHOULD,=,CEL174,=:FFFF  COPY X,A CSK A,PT00FF NOP ERROR: EXCH,FAILED,X,SHOULD,=,:00FF * * INDIRECT INDEX 'Y' *  COPY =CEL175,A COPY A,CEL174 COPY =CEL173,Y COPY =0,A COPY A,CEL175 EXCH *1(Y),X CSK Q,CEL175 NOP ERROR: QREG,SHOULD,=CEL175=:00FF COPY X,A CSK A,PT0000 NOP ERROR: EXCH,FAILED,XREG,SHOULD,=0 PATCHX B17040 TITL ********* * *----- B17050 ----- * * INDEX DIRECT AND INDIRECT ADDRESSING USING HX' 'Y' * --WORD MODE-- * ****** B17050 EQU $ COPY PTFFFF,A COPY PTFFFF,Q COPY =CEL173,Y COPY =1,X COPY X,CEL175 EXCH 1(X,Y),A CSK Q,CEL175 NOP ERROR: 'Q',SHULD,=,CEL175,=:FFFF CSK A,=1 NOP ERROR: EXCH,FAILED,A,SHOULD,=,1 * * INDIRECT INDEX 'X' 'Y' * COPY =1,X COPY X,CEL174 CEL174 = 1  COPY =CEL173,Y COPY =CEL174,X COPY A,CEL175 CEL 175 = 1 COPY PTFFFF,A EXCH *1(X,Y),Q CSK A,CEL175 NOP ERROR: 'A',SHULD,=,CEL175,=:FFFF CSK Q,=1 NOP ERROR: EXCH,FAILED,Q,SHOULD,=,1 PATCHX B17050 JMP B17060 LPOOL TITL ****** * *----- B17060 ----- * * ABSOLUTE DIRECT AND INDIRECT ADDRESSING * -- BYTE MODE -- * ****** B17060 EQU $ COPY PTF0F0,Q COPY PT6666,Y   COPY Q,TEMP01 :F0F0 - TEMP01 SBIT BY,S EXCHB Y,TEMP01 RBIT BY,S COPY =:66F0,A  CSK A,TEMP01 NOP ERROR: 'A',SHULD,=,TEMP01,=:66F0 COPY Y,A CSK A,=:F0 NOP ERROR: EXCHB,FAILED,YREG,SHOULD,=:F0 * * ABSOLUTE INDIRECT * COPY PT00FF,X COPY =TEMP01,A SHIFT A,LO,1 BYTE ADDRESS COPY A,TEMP02 TEMP02 = TEMP01 BYTE ADDRESS (BYTE 0) COPY A,TEMP IMS TEMP TEMP = TEMP01 BYTE ADDRESS (BYTE 1) COPY PT55AA,A COPY A,TEMP01 SBIT BY,S EXCH Q,*TEMP02 TEMP01 BYTE0 =F0 EXCH X,*TEMP TEMP01 BYTE1 = FF RBIT BY,S COPY =:F0FF,A CSK A,TEMP01 NOP ERROR: EXCH,FAILED,A,SHOULD,=,:F0FF CSK Q,=:55  NOP ERROR: EXCH,FAILED,Q,SHOULD,=,:55 COPY X,Q CSK Q,=:AA NOP ERROR: EXCH,FAILED,X,SHOULD,=,.:66 PATCHX B17060 JMP B17070 TITL ****** * *----- B17070 ----- * * RELATIVE DIRECT AND INDIRECT ADDRESSING * -- BYTE MODE -- * ****** CEL177 RES 1 CEL178 RES 1 B17070 EQU $ COPY =:F0AA,A COPY  PTAAAA,Q COPY PTF0F0,X COPY Q,CEL177 :AAAA IN SBIT BY,S EXCHB X,CEL177 RBIT BY,S CSK A,CEL177 NOP ERROR: 'A',SHULD,=,CEL177,=:F0AA COPY X,A CSK A,=:AA NOP  ERROR: EXCH,FAILED,X,SHOULD,=,:AA * * INDIRECT RELATIVE * COPY =CEL178,A SHIFT A,LO,1 BYTE ADD COPY A,CEL177 COPY Q,CEL178 COPY PTF0F0,X COPY =:F0AA,A SBIT BY,S EXCH X,*CEL177 RBIT BY,S CSK A,CEL178 NOP ERROR: 'A',SHOULD,=,CEL178,=:AAF0 COPY X,A CSK A,=:AA NOP ERROR: EXCH,FAILED,XREG,SHOULD,=:AA PATCHX B17070 JMP B17080 LPOOL TITL ******* * * ---B17080--- * * INDEX DIRECT AND INDIRECT ADDRESSING 'X' AND 'Y' * --BYTE MODE -- * ***** CEL179 RES 1 CEL180 RES 1 CEL181 RES 1 B17080 EQU $  COPY PTFFFF,A COPY PTF0F0,Q COPY =CEL179,X SHIFT X,LO,1 CEL179 BYTE ADD IN 'X' COPY A,CEL179 CEL179 = :FFFF. COPY Q,CEL180 CEL180 = :F0F0 COPY =CEL179,Y CEL179 WORD ADD IN 'Y' SBIT BY,S EXCH 1(X),Q CEL179 = :FFF0, Q=:00FF EXCHB 2(Y),A CEL180 = :FFF0, A=:00F0 RBIT BY,S CSK A,=:F0 NOP ERROR: EXCH,FAILED,A,SHOULD,=,:F0 CSK Q,=:FF NOP  ERROR: EXCH,FAILED,A,SHOULD,=,:FF COPY =:FFF0,A CSK A,CEL179 NOP ERROR: 'A',SHOULD,=,CEL179,=:FFF0 CSK A,CEL180 NOP ERROR: CEL180,SHOULD,=:FFF0 * * INDIRECT INDEX USING (X) * COPY  =2,A COPY A,TEMP01 COPY =CEL179,X SHIFT X,LO,1 CEL179 BYTE ADD IN 'X' COPY PT5555,A COPY A,CEL180 COPY =0,Q SBIT BY,S EXCH *TEMP01(X),Q RBIT BY,S COPY =:0055,A  CSK A,CEL180 NOP ERROR: 'A',SHULD,=,CEL180,=:0055 CSK Q,=:55 NOP ERROR: EXCH,FAILED,Q,SHOULD,=,:55 * * INDIRECT INDEX USING (Y) * COPY =CEL179,Y COPY =CEL181,A SHIFT A,LO,1   COPY A,CEL180 COPY PTF0F0,A COPY A,CEL181 COPY PTFFFF,A SBIT BY,S EXCH A,*1(Y) RBIT BY,S COPY =:FFF0,Q CSK Q,CEL181 NOP ERROR: EXCH,FAILED,CEL181,SHOULD,=:FFF0 CSK A,=:F0 NOP ERROR: EXCH,FAILED,AREG,SHOULD,=:F0 PATCHX B17080 GLPOL: TITL ***** * *----- B17090 ----- * * INDEX DIRECT AND INDIRECT ADDRESSING USING (X,Y) * -- BYTE MODE -- * ****** B17090 EQU $ COPY =CEL180,Y COPY =1,X COPY PTFFFF,A COPY A,CEL181 COPY PTF0F0,A SBIT BY,S EXCH 2(X,Y),A RBIT BY,S CSK A,=:FF NOP ERROR: EXCH,FAILED,A,SHOULD,=,:FF COPY =:FFF0,A CSK A,CEL181 NOP ERROR: EXCH,FAILED,CEL181,SHOULD,=,:FFF0 * * INDIRECT INDEX * COPY PTFFFF,Q COPY =CEL181,A SHIFT A,LO,1 CEL181 BYTE ADD IN HA' COPY A,CEL180 COPY =CEL179,Y 'Y' = CEL179 ADD COPY =0,X COPY PT6666,A COPY A,CEL181  CEL181 =:6666 COPY =:FF66,A SBIT BY,S EXCH *1(X,Y),Q RBIT BY,S CSK A,CEL181 NOP ERROR: 'A',SHULD,=,CEL181,=:FF00 CSK Q,=:66 NOP ERROR: EXCH,FAILED,Q,SHOULD,=,:66 PATCHX B17090 TITL ***** * *----- B170A0 ----- * * INDEX MULTILEVEL INDIRECT ADDRESSING USING 'X' * ***** B170A0 EQU $  COPY =0,A COPY A,S COPY A,TEMP02 COPY =TEMP02,A OR =:8000,A COPY A,TEMP01 COPY =TEMP,X COPY PTAAAA,A COPY A,TEMP COPY PTFFFF,A EXCH A,*TEMP01(X) CSK A,PTAAAA NOP ERROR: EXCH,FAILED,AREG,SHOULD,=:AAAA COPY TEMP,Q CSK Q,PTFFFF NOP ERROR: EXCH,FAILED,TEMP,SHOULD,=,:FFFF * * INDEX MULTILEVEL INDIRECT ADDRESSING USING 'Y' * B170B0 EQU $ COPY =0,A COPY A,S COPY =TEMP,A COPY A,TEMP02 COPY =TEMP02,A  OR PT8000,A COPY A,TEMP01 COPY =TEMP01,Y COPY PTFFFF,A COPY A,TEMP COPY PTAAAA,Q EXCH Q,*0(Y) CSK Q,PTFFFF NOP ERROR: EXCH,FAILED,Q,SHOULD,=,:FFFF COPY TEMP,A  CSK A,PTAAAA NOP ERROR: EXCH,FAILED,TEMP,SHOULD,=,:AAAA COPY STATSV,A COPY A,S PATCHX B170A0 COPY PCOUNT,A CSK A,=:2C NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED GLPOL: TITL INSTRUCTION DIAGNOSTIC -- SEC. C ************************************************** * * ----------- SECTION C ---------- * * TESTING OF THE FOLLOWING INSTRUCTIONS: * * NEG 8REG,8REG C02000 * ADD 8REG,8REG C11000 * SUB 8REG,8REG C12000 * AND 8REG,8REG C13000 * XOR 8REG,8REG C14000 * OR 8REG,8REG C15000 * CSM 8REG,8REG C21000 * CSN 8REG,8REG C22000 * CSK 8REG,8REG C23000 * EXCH 8REG,8REG C24000 * COMP 8REG,8REG C25000 * ************************************************** * * ----------- TEST STRUCTURE ---------- * * EACH INSTRUCTION IS TESTED FOR CORRECT * OPERATION WITH A DIFFERENT REGISTER PAIR * FOR EACH INSTRUCTION, OR EACH CONDITION * OF AN INSTRUCT ION. NEG & ADD ARE CHECKED * FOR CORRECT SETTING OF OV. CSM, CSN, & CSK * ARE CHECKED FOR ALL COMPARE OUTCOMES. * **************************************************** TITL ******** * * ---C02000--- * * NEG Q,A * ***** C02000 EQU $ COPY PT5555,Q COPY =0,A NEG Q,A CSK A,=:AAAB NOP ERROR: NEG,FAILED,--,A,SHOULD,=,:AAAB COPY =:8000,X NEG X,Q JT OV,$+2 ERROR: NEG,FAILED,--,DID,NOT,SET,OV CSK Q,PT8000 NOP ERROR: NEG,FAILED,--,Q,SHOULD,=,:8000 TITL INSTRUCTION DIAGNOSTIC -- SEC. C1-1 ***** * * ---- C11000 * * ADD Y,X * ***** C11000 EQU $ COPY PT6666,Y COPY =:0FFF,X ADD Y,X COPY X,A CSK A,=:7665 NOP ERROR: ADD,FAILED,--,X,SHOULD,=,:7665 *** * ADD L,Y POS. OVERFLOW ***  COPY PT5555,Y COPY PT5555,A COPY A,L ADD L,Y JT OV,$+2 ERROR: ADD,FAILED,--,DID,NOT,SET,OV COPY Y,A CSK A,PTAAAA NOP ERROR: ADD,FAILED,--,Y,SHOULD,=,:AAAA *** * ADD  K,L NEG. OVERFLOW *** COPY PTAAAA,A COPY A,K COPY A,L ADD K,L JT OV,$+2 ERROR: ADD,FAILED,--,DID,NOT,SET,OV COPY L,A CSK A,=:5554 NOP ERROR: ADD,FAILED,--,L,SHOULD,=,:5554 TITL INSTRUCTION DIAGNOSTIC -- SEC. C1-2 ***** * * ---C12000--- * * SUB S,K * ******** C12000 EQU $ COPY =:FF,A COPY A,K COPY =:43,A COPY A,S SUB S,K COPY STATSV,A COPY A,S COPY K,A CSK A,=:BC NOP ERROR: SUB,FAILED,--,K,SHOULD,=,:BC PATCHX C02000 TITL INSTRUCTION DIAGNOSTIC -- SEC. C1-3 ***** * * ---- C13000 ---- * * AND A,Q * ***** C13000 EQU $ COPY PTF0F0,A COPY PT00FF,Q AND A,Q CSK Q,=:F0 NOP ERROR: AND,FAILED,--,Q,SHOULD,=,:F0 * ***** * * ---- C14000 ---- * * XOR  Q,X * ***** C14000 EQU $ COPY PTAAAA,Q COPY PT6666,X XOR Q,X COPY X,A CSK A,=:CCCC NOP ERROR: XOR,FAILED,--,X,SHOULD,=,:CCCC TITL INSTRUCTION DIAGNOSTIC -- SEC. C1-5 ***** * * ---- C15000 ---- * * OR X,Y * ***** C15000 EQU $ COPY PT6666,X COPY PT5555,Y OR X,Y COPY Y,A CSK A,=:7777 NOP ERROR: OR,FAILED,--,Y,SHOULD,=,:7777 PATCHX C13000 JMP C21000 LPOOL TITL INSTRUCTION DIAGNOSTIC -- SEC. C2-1 ***** * * ---C21000--- * * CSM Y,L * ******* C21000 EQU $ COPY PTFFFF,Y COPY =0,A COPY A,L CSM Y,L GREATER ERROR: CSM,FAILED,--,Y>L JMP $+2 ERROR: CSM,FAILED,--,Y>L *** *  CSM L,K *** COPY PT6666,A COPY A,K CSM L,K LESS JMP $+3 NOP ERROR: CSM,FAILED,--,LY JMP $+2 ERROR: CSK,FAILED,--,X>Y *** * CSK X,K *** COPY PT6666,A COPY A,K CSK X,K LESS JMP $+3 NOP  ERROR: CSK,FAILED,--,XMEM * ****** H23000 EQU $ COPY PT5555,A COPY A,TEMP01 COPY PTFFFF,A CSME A,TEMP01 ERROR: CSME,FAILED,--,A,>,TEMP01,(MAG) JMP $+2 ERROR: CSME,FAILED,--,A,>,TEMP01,(MAG) * * CSME X,MEM X=2 AT LEAST 2 PARAM. COPY #1,A CSK A,=#2 TEST MEM1 NOP ERROR: -#1-,SHOULD,BE,=#2 IFT #?>=4 AT LEAST 4 PARAM. COPY #3,A  CSK A,=#4 TEST MEM2 NOP ERROR: -#3-,SHOULD,BE,=#4 ENDC IFT #?>=6 AT LEAST 6 PARAM. COPY #5,A CSK A,=#6 TEST MEM3 NOP ERROR: -#5-,SHOULD,BE,=#6 ENDC IFT #?>=8 AT LEAST 8 PARAM. COPY #7,A CSK A,=#8 TEST MEM4 NOP ERROR: -#7-,SHOULD,BE,=#8 ENDC ENDC COPY ATEMP,A RESTORE A REG VALUE. ENDM ************************************************************************ * THIS MACRO ACCEPTS AS PARAMETERS AN INSTRUCTION CODE, AND UP TO * * 3 ADDRESSES. EITHER WITH OR W/OUT INDIRECTIN. IT BUILDS * * THE BINARY MULTI-WORD INSTRUCTION FOR THAT INSTRUCTION. THE * * BINARY IS LEFT AT THE END OF THE MACRO FOR EXECUTION. * *  * * EXAMPLE CALL: * * INSTR: H  EX-CD,M41,ADDR1,M42,ADDR2,M43,ADDR3 * * WHERE:  * * HEX-CD = THE ACTUAL HEX-CODE FOR THEINSTRUCTION. * * M4N = THE M4 FIELD OF THE NTH ADDRESS  * * ADDRN = THE NTH ADDRESS NECESSARY FOR THIS INSTRUCTION. * * EXAMPLE ACTUAL CALL:  * * INSTR: :7C05,:7,PTRSDB,:0,SDBY * * ASSEMPLY: * * :7C05 * * :7;PTRSDB * * :0;SDBY  * * WHERE: * * :7C05 = CMPC  * * :7;PTRSDB = M4 FOR ABSOLUTE INDIRECT ORED WITH ADDRESS. * * :0;SDBY = M4 FOR ABSOLUTE DIRECT ORED WITH ADDRESS. * ************************************************************************ XMACRO INSTR: * INSTR: #1,#2,#3,#4,#5,#6,#7 IFT #?>7 TOO MANY PARAMETERS DON'T MAKE SENSE. NOTE W,'TOO MANY PARAMETERS EXTRAS SKIPPED.' ENDC IFT #?<=4 TOO FEW PARAMETERS DON'T MAKE SENSE. NOTE W,'TOO FEW PARAMETERS, NO ASSEMBLY TAKES PLACE.' ENDC IFT #?>=5 NUMBER OF PARAMETERS IS OK SO FAR.  IFT #?<=7 FINAL CHECK FOR CORRECT # OF PARAMETERS. !INS DATA #1 HEX CODE FOR INSTRUCTION. IFT #2<=:F CHECK FOR CORRECT VALUE OF MODE INSTRUCTION. !M41 DATA #2%12;#3;:100 M4 W/ADDRESS FOR #3 ENDC IFF #2<=:F M4 TOO LARGE. NOTE W,'#2 SHOULD BE <=:F' ENDC IFT #4<=:F !M42 DATA #4%12;#5;:100 M4 W/ADDRESS FOR #5 ENDC IFT #?>4 CHECK FOR ERROR IN THE NUMBER OF PARAMETERS. IFT :F<#4 NOTE W,'#4 SHOULD BE LESS THAN OR = :F' ENDC IFT #?>5 SEE IF LAST ADDRESS IS THERE. IFT #6<=:F !M43  DATA #6%12;#7;:100 M4 W/ADDRESS FOR #7 ENDC IFT :F<#6 #6 IS TOO LARGE A NUMBER. NOTE W,'#6 SHOULD BE LESS THAN OR = :F' ENDC ENDC ENDC ENDC ENDC ENDM TITL * #(1),#(2) = AQ REGISTER PAIR * #(3) = OPERATION * #(4),#(5) = OPERAND * #(6) = STATUS * OK = NORMAL * OV = OVERFLOW * UF = UNDERFLOW * DP = DOUBLE PRECISION RESULT (FIX) * SP = SINGLE PRECISION RESULT (FIX) * LT = LESS THAN (CSKF) * GT = GREATER THAN (CSKF) * EQ = EQUAL (CSKF) * #(7),#(8) = EXPECTED RESULT * #(9) = CARRY FLAG * #(10) = OVERFLOW FLAG * #(11) = X REGISTER * #(12) = Y REGISTER * #(13) = BYTE MODE B=BYTE W=WORD OPTEST XMACRO * CY=#(9) OV=#(10) A=#(1) Q=#(2) #(3) #(4) #(5)=#(7) #(8) #(6) FLOAT1 SET $ JST INITRP INITIALIZE TRAP LOCATIONS COPY =#(1),A #(1) ==> 'A' COPY =#(2),Q #(2) ==> 'Q' COPY =#(11),X #(11) ==> 'X' COPY =#(12),Y #(12) ==> 'Y' #(9)BIT CY,S #(9) ==> CARRY FLAG #(10)BIT OV,S!  #(10) ==> OVERFLOW FLAG IFT #(13,'B') SBIT BY,S CHECK FOR BYTE MODE INDEPENDENCE ENDC IFT #(3,'ADDF');#(3,'SUBF');#(3,'MULF');#(3,'DIVF');#(3,'CSKF') JMP $+3 JUMP AROUND WORD FLOAT2 SET $ WORD  #(4) INSTRUCTION OPERAND WORD #(5) FLOAT3 SET $ IFT #(6,'OK');#(3,'CSKF') #(3) FLOAT2  DO THE OPERATION ENDC IFT #(6,'OV') IFF #(3,'FIX') #(3) FLOAT2 SHOULD OVERFLOW AND T R A P ENDC ENDC IFT #(6,'UF') #(3) FLOAT2 SHOULD UNDERFLOW ENDC ENDC  IFT #(3,'FIX');#(3,'FLOAT') FLOAT3 SET $ IFT #(3,'FLOAT') #(3) --DO THE OPERATION ENDC IFT #(6,'OV') #(3) -- SHOULD OVERFLOW ENDC IFT #(6,'DP') #(3) -- EXPECT DOUBLE PRECISION RESULT ENDC IFT #(6,'SP') #(3) -- EXPECT SINGLE PRECISION RESULT ENDC ENDC IFT #(3,'CSKF') IFT #(6,'LT') JMP $+3 OK-- AQ IS LESS THAN OPERAND NOP  ERROR: INCORRECT,COMPARE ENDC IFT #(6,'GT') ERROR: INCORRECT,COMPARE JMP $+2 OK-- AQ IS GREATER THAN OPERAND ERROR: INCORRECT,COMPARE ENDC IFT #(6,'EQ') NOP ERROR: INCORRECT,COMPARE NOP OK-- AQ IS EQUAL TO OPERAND ENDC ENDC IFT #(13,'B') RBIT BY,S  ENDC IFF #(3,'CSKF') CSK A,=#(7) CHECK -A- NOP ERROR: -A-,SHOULD,CONTAIN,#(7)  CSK Q,=#(8) CHECK -Q- NOP ERROR: -Q-,SHOULD,CONTAIN,#(8) ENDC IFT #(3,'CSKF') CSKÿÿÿÿÿÿe830220135400830220135400830220141044eÚ@€830220135400830220135400830220141043" e830220135400830220135400830220135400e830220135400830220135400830220135400830220135400830220135400830220135400eÈ4÷É830104084158 830104084246 830220140938eR&O830104084324 830104084328 830220140945ef 830104084329 830104084332 830220140951 ep# !w830104084333 830104084338 830220140958 e3830104084339 830104084340 830220141002 e‚€830104084341 830104084342 830220141005 eƒ.Z2830104084343 830104084353 830220141017 e±1`K830104084354 830104084404 830220141031eâÌ@8302201405250083022014054350830220140543d$ % & ' ( ) * + ÿÀ?ÿð. PAT412P1 ASMPAT412P3 ASMPAT412P4 ASM PAT412NUC ASM PAT412CNT ASM PAT412END ASM PAT412 OBJ PAT412 BINPAT4 MAC,  TEMP02,AQ CSK A,=:E82A NOP ERROR: MUL,FAILED,--,A,SHOULD,=,E82A CSK Q,PT8000 NOP  ERROR: MUL,FAILED,--,Q,SHOULD,=,:8000 * COPY =:D037,A MUL TEMP02,AY CSK A,=:17D5 NOP  ERROR: MUL,FAILED,--,A,SHOULD,=,:17D5 COPY Y,Q CSK Q,=:7F80 NOP ERROR: MUL,FAILED,--,Y,SHOULD,=,:7F80 IFT NWFRMWRE=1 COPY =:8000,A MULT. TWO LARGEST NEGATIVE NUMBERS COPY A,TEMP01 COPY =:8000,Q COPY =0,A MUL TEMP01,AQ CSK A,=:4000 NOP HLT MULT. FAILED -- A SHOULD =:4000 CSK Q,=0 NOP HLT MULT. FAILED -- Q SHOULD = 0 ENDC PATCHX H28000 TITL INSTRUCTION DIAGNOSTIC -- SEC. H2-9 ****** * * ---- H29000 ---- * * DIV MEM,AQ/AX/AY * ****** * * QUADRANT 1 TRAP TEST * H29000 EQU $ COPY =:A8,X AE TRAP LOCATION COPY =:9F80,A COPY A 'JMP *$+1' COPY A,2(X) IN 3RD WORD OF TRAP COPY =H29003,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) STORE IN 4TH WORD OF TRAP  COPY =:4000,A COPY A,TEMP01 COPY PT7FFF,A COPY =:0,Q H29001 DIV TEMP01,AQ SHOULD TAKE AE TRAP H29002 EQU $ ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP JMP H29005 H29003 CSK A,PT7FFF NOP ERROR: DIV,FAILED,--,AREG,SHOULD,=:7FFF CSK Q,=0 NOP ERROR: DIV,FAILED,--,QREG,SHOULD,=0 COPY 0(X),A 1ST WORD 0F TRAP (:A8) CSK A,=H29002 NOP ERROR: S/B,ADDRESS,AT,H29002 COPY 1(X),Q 2ND WORD OF TRAP (:A9) CSK Q,H29001 NOP ERROR: S/B,DIVIDE,INST.,AT,H29001 PATCHX H29000 IFT LSI410=2 FMT A AND =2,A TEST FOR OPTION CARD INSTALLED JNE A,$+2 JUMP IF INSTALLED JMP H29070 NOT INSTALLED, SKIP TESTS ENDC JMP H29005 LPOOL H29005 EQU $ TITL IFF LSI410=1 * * QUADRANT 2 TRAP TEST * H29010 EQU $ COPY =H29013,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY PTFFFE,A COPY A,TEMP01 COPY PT8000,A COPY =0,Y DIV TEMP01,AY SHOULD TAKE TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29013 EQU $  JMP H29020 LPOOL TITL * * QUADRANT 3 TRAP TEST * CEL290 WORD 0 H29020 EQU $ COPY =:A8,Y AE TRAP LOCATION COPY =H29023,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) COPY PTFFFE,A COPY A,CEL290 COPY PT7FFF,A COPY =0,X DIV CEL290,AX SHOULD TAKE TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29023 EQU $ * * QUADRANT 4 TRAP TEST * COPY =H29033,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y)  COPY =:10,A COPY A,CEL290 COPY PTAAAA,A COPY A,Q DIV CEL290,AQ SHOULD TAKE TRAP  ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29033 EQU $ PATCHX H29010 TITL * * SPECIAL CASE TRAP TEST * H29040 EQU $ COPY =H29043,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) COPY =0,A COPY A,0(Y) CLEAR STORED P COPY A,1(Y) CLEAR STORED INSTRUCTION COPY =1,A COPY A,CEL290 COPY =0,A COPY PT8000,Q H29041 DIV CEL290,AQ SHOULD TAKE TRAP H29042 EQU $ ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP JMP H29050 ERROR EXIT H29043 CSK A,=0 NOP -  ERROR: DIV,FAILED,--,A,SHOULD,=,0 CSK Q,PT8000 NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,:8000 COPY 0(Y),A 1ST WORD OF TRAP (:A8) CSK A,=H29042 NOP ERROR: S/B,ADDRESS,AT,H29042 COPY 1(Y),Q 2ND WORD OF TRAP (:A9) CSK Q,H29041 NOP ERROR: S/B,DIV,INST.,AT,H29041 TITL * * SPECIAL CASE TRAP TEST * H29050 EQU $ COPY =:A8,X AE TRAP LOCATION COPY =H29053,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY PTFFFF,A COPY A,TEMP01 COPY PT8000,Y DIV TEMP01,AY SHOULD TAKE TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29053 EQU $ * * SPECIAL CASE TRAP TEST * H29060 EQU $ COPY =H29063,A COPY A,3(X) COPY =:C000,A COPY A,TEMP01 COPY =:E000,A COPY =0,Y DIV TEMP01,AY SHOULD TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29063 EQU $ PATCHX H29040 TITL ENDC * * DIVISION BY ZERO TRAP TEST * H29070 EQU $ COPY =H29073,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =0,A COPY A,TEMP01 COPY PT5555,Q DIV TEMP01,AQ SHOULD TAKE TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29073 EQU $ * * SPECIAL CASE TRAP TEST * H29080 EQU $ COPY =H29083,A COPY A,3(X) COPY =:4000,A COPY A,TEMP01 COPY =:2000,A COPY =0,Q DIV TEMP01,AQ SHOULD TAKE TRAP ERROR: DIV,FAILED,--,DID,NOT,TAKE,TRAP H29083 EQU $ PATCHX H29070 JMP H29090 LPOOL TITL * 99,999,071 Q A * QUADRANT 1 NORMAL DIVIDE ------------- = 3053 , 16374 * 32749 CEL291 WORD 0 H29090 EQU $ COPY =H29093,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:7FED,A  COPY A,CEL291 COPY =:05F5,A COPY =:DD5F,Q DIV CEL291,AQ CSK A,=:3FF6 REMAINDER  NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:3FF6 CSK Q,=:0BED QUOTIENT NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,:0BED JMP $+2 H29093 EQU $ TRAP SERVICE ROUTINE ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP  PATCHX H29090 IFT LSI410 FMT A AND =2,A TEST FOR OPTION BOARD JNE A,H290A0 IS INSTALLED JMP H291A0 NOT INSTALLED ENDC TITL * 8,388,863 Y A * QUADRANT 2 NORMAL DIVIDE ------------- = -32768 , 255 * -:100 H290A0 EQU $ COPY =:A8,X AE TRAP LOCATION COPY =H290A3,A AE TRAP SERVICE ROURINE LOCATION COPY A,3(X) COPY =:FF00,A -:100 COPY A,CEL291 COPY =:0080,A COPY =:00FF,Y DIV CEL291,AY CSK A,=:00FF NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:00FF COPY Y,Q CSK Q,PT8000  NOP ERROR: DIV,FAILED,--,Y,SHOULD,=,:8000 JMP $+2 H290A3 EQU $ AE TRAP SERVICE ROUTINE ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP JMP H290B0 LPOOL TITL * * -65279 X .  A * QUADRANT 3 NORMAL DIVIDE -------------- = -255 , -254 * 255 H290B0 EQU $ COPY =:A8,Y AE TRAP LOCATION COPY =H290B3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) COPY =:FF,A COPY A,TEMP01 COPY PTFFFF,A COPY =:0101,X DIV TEMP01,AX CSK A,=:FF02 NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:FF02  COPY X,Q CSK Q,=:FF01 NOP ERROR: DIV,FAILED,--,X,SHOULD,=,:FF01 JMP $+2 H290B3 EQU  $ AE TRAP SERVICE ROUTINE ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP TITL *  -399,867,904 Q A * QUADRANT 4 NORMAL DIVIDE -------------- = 19996, -7892 *  -19997 COPY =:A8,Y AE TRAP LOCATION COPY =H290C3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) COPY =:B1E3,A COPY A,TEMP01 COPY =:E82A,A COPY PT8000,Q DIV TEMP01,AQ  CSK A,=:E12C NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:E12C CSK Q,=:4E1C NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,:4E1C JMP $+2 H290C3 EQU $ AE TRAP SERVICE ROUTINE ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP H290C4 EQU $ PATCHX H290A0 JMP H290D0 LPOOL IFT LSI410 TITL * *  QUADRANT 2 UNIMPLEMENTED INSTRUCTION TRAP TEST * H291A0 EQU $ COPY =:84,X UNIMP. INSTR. TRAP LOCATION COPY =H291A4,A UI TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:A8,X AE TRAP LOCATION COPY =H291A3,A AE TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:FF00,A COPY A,TEMP01 COPY =:0080,A  COPY =:00FF,Y DIV TEMP01,AY ERROR: DIV,FAILED,--,SHOULD,TAKE,UNIMP.,INSTR.,TRAP JMP $+2 H291A3 EQU $ AE TRAP SERVICE LOCATION ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,AE,TRAP H291A4 EQU $ UI TRAP SERVICE LOCATION TITL * * QUADRANT 3 UNIMPLEMENTED INSTRUCTION TRAP TEST * H291B0 EQU $ COPY =:84,X UNIMP. INSTR. TRAP LOCATION COPY =H291B4,A UI TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:A8,X  AE TRAP LOCATION COPY =H291B3,A AE TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:FF,A COPY A,TEMP01 COPY PTFFFF,A COPY =:0101,X DIV TEMP01,AX ERROR: DIV,FAILED,--,SHOULD,TAKE,UNIMP.,INSTR.,TRAP JMP $+2 H291B3 EQU $ AE TRAP SERVICE LOCATION ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,AE,TRAP H291B4 EQU $ UI TRAP SERVICE LOCATION TITL * * QUADRANT 4 UNIMPLEMENTED INSTRUCTION TRAP TEST * H291C0 EQU $ COPY =:84,X UNIMP. INSTR. TRAP LOCATION COPY =H291C4,A UI TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:A8,X AE TRAP LOCATION COPY =H291C3,A AE TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY =:B1E3,A COPY A,TEMP01 COPY =:E82A,A COPY PT8000,Q DIV TEMP01,AQ ERROR: DIV,FAILED,--,SHOULD,TAKE,UNIMP.,INSTR.,TRAP JMP $+2 H291C3 EQU $ AE TRAP SERVICE LOCATION ER/ ROR: DIV,FAILED,--,SHOULD,NOT,TAKE,AE,TRAP H291C4 EQU $ UI TRAP SERVICE LOCATION PATCHX H291A0 COPY =:84,X UNIMP. INSTR. TRAP LOCATION COPY =UIT1,A UNEXPECTED UNIMP. INSTR. TRAP SERVICE ROUTINE COPY A,3(X)  RESTORE UI TRAP LOCATION JMP H290D0 LPOOL ENDC TITL * * * QUADRANT 1 ZERO QUOTIENT DIVIDE * H290D0 EQU $ COPY =H290D3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) STORE IN 4TH WORD OF TRAP  COPY =:FF,A COPY A,TEMP01 COPY =0,A COPY =1,Q DIV TEMP01,AQ CSK A,=1 NOP ERROR: DIV,FAILED,--,A,SHOULD,=,1 CSK Q,=0 NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,0 JMP  $+2 H290D3 EQU $ TRAP SERVICE ROUTINE ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP PATCHX H290D0 IFT LSI410=2 FMT A AND =2,A TEST FOR OPTION CARD INSTALLED JNE A,$+2 JMP H290H4  NOT INSTALLED, SKIP TESTS ENDC IFF LSI410=1 TITL INSTRUCTION DIAGNOSTIC -- SEC. H2-9 * * QUADRANT 2 ZERO QUOTENT DIVIDE * H290E0 EQU $ COPY =H290E3,A COPY A,3(Y) STORE IN 4TH WORD OF TRAP COPY PT8000,A COPY A,TEMP01 COPY  =0,A COPY PT7FFF,X DIV TEMP01,AX CSK A,PT7FFF NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:7FFF CSK X,=0 NOP ERROR: DIV,FAILED,--,X,SHOULD,=,0 JMP $+2 H290E3 EQU $ ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP TITL * * QUADRANT 3 ZERO QUOTIENT DIVIDE * H290F0 EQU $ COPY =:A8,X AE TRAP LOCATION COPY =H290F3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY PT7FFF,A COPY A,TEMP01 COPY PTFFFF,A COPY PTAAAA,Q DIV TEMP01,AQ CSK A,PTAAAA  NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:AAAA CSK Q,=0 NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,0  JMP H290G0 H290F3 EQU $ ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP JMP H290G0 LPOOL TITL * * QUADRANT 4 ZERO QUOTIENT DIVIDE * H290G0 EQU $ COPY =H290G3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY PT8000,A COPY A,TEMP01 COPY PTFFFF,A COPY =:FF01,Y DIV TEMP01,AY CSK A,=:FF01 NOP ERROR: DIV,FAILED,--,A,SHOULD,=,:FF01 CSK Y,=0 NOP ERROR: DIV,FAILED,--,Y,SHOULD,=,0 JMP $+2 H290G3 EQU $ ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP PATCHX H290E0 JMP H290H0 LPOOL TITL * :4000 :7FFF Q A * SPECIAL CASE NORMAL DIVIDE  -------------- = :8000, :7FFF * :8000 H290H0 EQU $ COPY =H290H3,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) COPY TO 4TH WORD OF TRAP COPY PT8000,A COPY A,TEMP01 COPY =:4000,A COPY PT7FFF,Q DIV TEMP01,AQ CSK A,PT7FFF NOP ERROR: DIV,FAILED,--,AREG,SHOULD,=:7FFF CSK Q,PT8000 NOP ERROR: DIV,FAILED,--,Q,SHOULD,=,:8000 JMP $+2 H290H3 EQU $ ERROR: DIV,FAILED,--,SHOULD,NOT,TAKE,TRAP PATCHX H290H0 ENDC * * BOU0 NDARY CONDITION DIVIDE * H290H4 EQU $ COPY =H290H5,A SET TRAP ROUTINE LOCATION COPY A,3(X) COPY =1,A STORE EXPECTED RESULT COPY A,TEMPSAV COPY =0,A SET DIVIDEND TO 1 COPY =1,Q DIV PT7FFF,AQ DIVIDE 1 BY MAXIUM +VE NO. JEQ Q,$+2 HLT DIV FAILED -- Q SHOULD =0 CSK A,TEMPSAV NOP HLT DIV FAILED -- A SHOULD =1 JMP $+2 H290H5 EQU $ HLT DIV FAILED -- SHOULD NOT TRAP COPY =H290H6,A SET TRAP ROUTINE LOCATION COPY A,3(X) COPY =0,A SET DIVIDEND TO ZERO COPY A,Q DIV PT5555,AQ DIVIDE ZERO BY ANY +VE NO. JEQ A,$+2 HLT DIV FAILED -- A SHOULD BE 0 JEQ Q,$+2 HLT DIV FAILED -- Q SHOULD BE 0 JMP $+2 H290H6 EQU $ HLT DIV FAILED -- SHOULD NOT TAKE TRAP IFF LSI410=1 COPY =H290H7,A SET TRAP ROUTINE LOCATION COPY A,3(X) COPY =:FFFB,A COPY A,TEMPSAV STORE EXPECTED RESULT COPY =0,A COPY =5,Q SET DIVIDEND TO FIVE DIV PTFFFF,AQ DIVIDE 5 BY -1 JEQ A,$+2 HLT DIV FAILED -- A SHOULD BE 0 CSK Q,TEMPSAV NOP HLT DIV FAILED -- Q SHOULD =:FFFB JMP $+2 H290H7 EQU $ HLT DIV FAILED, SHOULD NOT TAKE TRAP ENDC JMP H290H4 PATCH FOR LOOPING ORG $-1 NOP * H291H0 EQU $ COPY =:A8,X ARITHMETIC ERROR TRAP COPY =AET1,A ADDRESS OF UNEXPECTED ARITHMETIC ERROR TRAP COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY PCOUNT,A  IFT LSI410 IFT LSI410=2 FMT Q AND =2,Q TEST FOR OPTION CARD INSTALLED JNE Q,$+3 JUMP IF INSTALLED ENDC ADD =7,A PARTS OF SECTION H-2 NOT IMPLEMENTED ON 4/10 COPY A,PCOUNT ENDC CSK A,=:5D NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED JMP H290J0 TEMPSAV WORD 0 TEMPORARY STORAGE LPOOL H290J0 EQU $ TITL INSTRUCTION DIAGNOSTIC -- SEC. I ************************************************** * * ---------- SECTION I ---------- * * TESTING OF THE FOLLOWING INSTRUCTIONS * * JSK MEM I01000 * RSK MEM I11000 * PUSH VAL I21000 * POP I22000 * ************************************************** * * TEST STRUCTURE: * * ALL ASPECTS OF OPERATION OF THE INSTRUCTIONS * ARE TESTED. TRAP OPERATION IS COMPLETELY * TESTED FOR JSK AND PUSH. EFFECT ON S IS * CHECKED ON PUSH AND POP. EFFECT ON ALL * REGISTERS IS CHECKED ON POP. * ************************************************** TITL INSTRUCTION DIAGNOSTIC -- SEC. I0-1 ****** * * ---- I01000 ---- * * JSK MEM * ****** I01000 EQU $ COPY =:9C,X STACK EXCEPTION TRAP ADDRESS COPY =I01003,A TRAP SERVICE ROUTINE ADDRESS COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY =0,A COPY A,STAK1 CLEAR STACK CELLS USED COPY A,STAK2 COPY =STAKL,A INITIALIZE LREG COPY A,L COPY =STAKK,A INITIALIZE KREG COPY A,K JSK I01002 I01001 EQU $ ERROR: JSK,FAILED,--,DID,NOT,JUMP JMP $+2 I01003 EQU $ TRAP SERVICE ROUTINE ERROR: JSK,FAILED,--,SHOULD,NOT,TAKE,TRAP I01002 COPY =STAK1,A CSK A,K NOP ERROR: JSK,FAILED,--,K,WAS,NOT,DECREMENTED COPY STAK1,A CSK A,=I01001 NOP ERROR: JSK,FAILED,--,DID,NOT,STORE,P+1,IN,STAK1 TITL * * JSK MEM WITH FORCED STACK OVERFLOW TRAP * I01010 EQU $ COPY =I01014,A TRAP SERVICE ROUTIN1 E ADDRESS COPY A,3(X) I01011 JSK I01013 I01012 EQU $ ERROR: JSK,FAILED,--,DID,NOT,TAKE,TRAP I01013 EQU $  ERROR: JSK,FAILED,--,DID,NOT,TAKE,TRAP I01014 EQU $ TRAP SERVICE ROUTINE COPY 0(X),A 1ST WORD OF TRAP  CSK A,=I01013 NOP ERROR: :9C,SHOULD,BE,JSK,JUMP,ADD COPY 1(X),A CSK A,I01011 NOP ERROR: :9D,SHOULD,BE,JSK,INSTRUCTION COPY =STAK2,A CSK A,K NOP ERROR: JSK,FAILED,--,K,WAS,NOT,DECREMENTED COPY STAK2,A CSK A,=I01012 NOP ERROR: JSK,FAILED,--,DID,NOT,STORE,P+1,IN,STAK2 * IFT LSI490 * JSK CROSS 32 K BOUNDARY WITH STACK AT UPPER 32K MEMORY * I01020 EQU $ COPY =:88,X MEMORY EXCEPTION TRAP LOC. COPY =I01024,A COPY A,3(X) STORE SERVICE ROUTINE ADDR. SBIT 6,S TURN ON XA BIT COPY A,*RESTAK+1 WRITE SOMETHIG IN UPPER 32K COPY =:9C,X STACK EXCEPTIN TRAP ADDRESS COPY =I01023,A TRAP SERVICE ROUTINE ADDRESS COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY STACKLR,A INITIALIZE L REGISTER COPY A,L COPY STACKKR,A COPY A,K INTIALIZE K REGISTER COPY =:9F80,A STORE JMP *$+1 FOR JSK RETURN COPY A,*RESTAK COPY =I01022,A STORE JSK RETURN ADDRESS COPY A,*RESTAK+1 COPY S,A COPY A,SAVSTA SAVE STATUS WORD JSK *RESTAK JUMP ACROSS 32K BOUNDARY I01021 EQU $ HLT JSK FAILED -- DID NOT JUMP RBIT 6,S TURN OFF XA BIT JMP I01024 I01023 EQU $ HLT JSK FAILED -- SHOULD NOT TAKE TRAP RBIT 6,S TURN OFF X A BIT JMP I01024 I01022 EQU $ RBIT 6,S TURN OFF XA BIT COPY SAVSTA,A GET STATUS BACK COPY =0,Q CARRY BIT RESET JF CY,$+2 TEST CARRY BIT COPY =1,Q CARRY BIT SET AND =:0001,A MASK OFF UNWANTED BITS XOR Q,A COMPARE CARRY BITS JEQ A,$+2 HLT JSK FAILED -- CARRY BIT INVERTED I01024 EQU $ RBIT 6,S JMP I11000 GOTO DO RSK TEST STACKLR WORD :8000 STACKKR WORD :800F RESTAK WORD :8100 WORD :8101 SAVSTA WORD 0 LPOOL ENDC TITL INSTRUCTION DIAGNOSTIC -- SEC. I1-1 ****** * * ---- I11000 ---- * * RSK * ****** I11000 EQU $ COPY =I11011,A COPY A,STAK2 LOAD STACK WITH RETURN ADDRESS COPY =STAK2,A STACK CELL 6 COPY A,K  LOAD STACK POINTER RSK ERROR: RSK,FAILED,--,DID,NOT,RETURN I11011 COPY =STAK1,A STACK CELL 7 ADD CSK  A,K NOP ERROR: RSK,FAILED,--,K,WAS,NOT,INCREMENTED PATCHX I01000 JMP I21000 TITL * * DATA * STAK RES 8,0 STAKL EQU STAK STAK2 EQU STAK+6 STAK1 EQU STAK+7 STAKK EQU STAK+8 JMP3 JMP 0(Y) LPOOL TITL INSTRUCTION DIAGNOSTIC -- SEC. I2-1 ****** * * ---- I21000 ---- * * PUSH VAL * ****** I21000 EQU $ * COPY =STK1,Y START OF NEXT 6 WORD BLOCK COPY =0,A COPY A,0(Y) CLEAR STACK COPY A,1(Y) COPY A,2(Y) COPY A,3(Y)  COPY A,4(Y) COPY A,5(Y) * COPY =STKK,A INITIALIZE STACK POINTER COPY A,K COPY =STKL,A INITIALIZE STACK POINTER COPY A,L COPY STATSV,A INITIALIZE S COPY A,S COPY PT55AA,A  INITIALIZE A COPY PTAA55,Q INITIALIZE Q COPY =I21001,Y TRAP SERVICE ROUTINE ADDRESS COPY Y,3(X) PUSH :FE23 COPY =:0113,A CSK A,S NOP ERROR: PUSH,FAILED,--,DID,NOT,LOAD,CORRECT,S COPY 2 =0,A COPY A,S COPY =STK1,Y COPY 0(Y),A GET 'L' FROM STACK CSK A,=STKL COMPARE WITH CORRECT L NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,L COPY 1(Y),A GET 'S' FROM STACK CSK A,STATSV COMPARE WITH CORRECT S NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,S COPY 2(Y),A GET 'A' FROM STACK CSK A,PT55AA COMPARE WITH CORRECT A NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,A  COPY 3(Y),A GET 'Q' FROM STACK CSK A,PTAA55 NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,Q  COPY 4(Y),A GET 'X' FROM STACK CSK A,=:9C NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,X  COPY 5(Y),A GET 'Y' FROM STACK CSK A,=I21001 NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,Y COPY K,A CSK A,=STK1 NOP ERROR: PUSH,FAILED,--,KREG,SHOULD,=,STK1,ADDR JMP $+2 I21001 EQU $ TRAP SERVICE ROUTINE ERROR: PUSH,FAILED,--,SHOULD,NOT,TAKE,TRAP PATCHX I21000 TITL * * PUSH VAL WITH FORCED STACK OVERFLOW TRAP * I21010 EQU $ COPY =STK2,Y START OF NEXT 6 WORD BLOCK COPY =0,A COPY A,0(Y) CLEAR STACK COPY A,1(Y) COPY A,2(Y) COPY A,3(Y) COPY A,4(Y) COPY A,5(Y) * COPY =STK1,A INITIALIZE STACK POINTER  COPY A,K COPY STATSV,A INITIALIZE S COPY A,S RBIT 4,S RBIT 8,S COPY PT55AA,A INITIALIZE A COPY PTAA55,Q INITIALIZE Q COPY =I21013,Y TRAP SERVICE ROUTINE ADDRESS COPY Y,3(X) * I21011 PUSH :FF71 SHOULD TAKE TRAP AND SET XA AND CY I21012 EQU $ ERROR: PUSH,FAILED,--,DID,NOT,TAKE,TRAP JMP I21013 TITL * * DATA * STK RES 13,0 STKL EQU STK STK2 EQU STK+1 STK1 EQU STK+7 STKK EQU STK+13 * LPOOL TITL I21013 EQU $ TRAP SERVICE ROUTINE COPY =:0041,A CSK A,S NOP ERROR: PUSH,FAILED,--,DID,NOT,LOAD,CORRECT,S COPY =0,A COPY A,S COPY =STK2,Y COPY 0(Y),A GET 'L' FROM STACK CSK A,=STKL NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,L COPY STATSV,A  AND =:40,A FORM EXPECTED S CSK A,1(Y) COMPARE WITH 'S' FROM STACK NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,S COPY 2(Y),A GET 'A' FROM STACK CSK A,PT55AA NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,A COPY 3(Y),A GET 'Q' FROM STACK CSK A,PTAA55 NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,Q COPY 4(Y),A GET 'X' FROM STACK CSK A,=:9C NOP ERROR: PUSH,FAILED,--,DID,NOT,STORE,CORRECT,X COPY 5(Y),A GET 'Y' FROM STACK CSK A,=I21013 NOP ERROR: PUSH,FAILED,--,DID,NOT.STORE,CORRECT,Y COPY K,A CSK A,=STK2 NOP ERROR: PUSH,FAILED,--,DID,NOT,DECREMENT,K COPY 0(X),A 1ST WORD OF TRAP CSK A,=I21012 NOP ERROR: PUSH,FAILED,--,SHOULD,BE,ADDR.,FOLLOWING,PUSH COPY 1(X),A 2ND WORD OF TRAP CSK A,I21011 NOP ERROR: PUSH,FAILED,--,SHOULD,BE,PUSH,INSTR. PATCHX I21010 COPY JMP1,A GET INDIRECT JUMP COPY A,2(X) STORE IN 3RD WORD O3 F TRAP COPY =SET1,A STACK EXCEPT. TRAP ADDRESS COPY A,3(X) STORE IN 4TH WORD OF TRAP TITL INSTRUCTION DIAGNOSTIC -- SEC. I2-2 ****** * * ---- I22000 ---- * * POP * ****** I22000 EQU $ COPY =STK2,A INITIALIZE REGISTERS COPY A,K COPY =0,Q COPY =0,X COPY =0,Y COPY Y,L COPY =:0003,A COPY A,S SBIT 4,S SBIT 8,S * POP SIN 8 CSK A,PT55AA NOP ERROR: POP,FAILED,--,A,SHOULD,=,:55AA COPY STATSV,A CSK A,S NOP ERROR: POP,FAILED,--,S,SHOULD,=,'STATSV'  COPY A,S CSK Q,PTAA55 NOP ERROR: POP,FAILED,--,Q,SHOULD,=,:AA55 CSK X,=:9C NOP  ERROR: POP,FAILED,--,X,SHOULD,=,:009C COPY Y,A CSK A,=I21013 NOP ERROR: POP,FAILED,--,Y,SHOULD,=,STAK1,ADDR. COPY L,A CSK A,=STKL NOP ERROR: POP,FAILED,--,L,SHOULD,=,STAK,ADDR COPY K,A CSK A,=STK1 NOP ERROR: POP,FAILED,--,K,WAS,NOT,INCREMENTED PATCHX I22000 JMP M01000 LPOOL TITL INSTRUCTION DIAGNOSTIC -- SEC. M0-1 **************************************************** * * -------SECTION M-------- * * TESTING OF THE FOLLOWING INSTRUCTIONS: * * STRAP 4REG,VAL M01000 * UTRAP 4REG,VAL M01010 * ************************************************** * * TEST STRUCTURE: * * TRAP OPERATION IS COMPLETELY TESTED ON * EACH INSTRUCTION. * ************************************************** TITL ****** * * ---- M01000 ---- * * STRAP 4REG,VAL * ****** M01000 EQU $ COPY =:A4,X STRAP LOCATION COPY =0,A CLEAR TRAP LOCATION COPY A,0(X) COPY A,1(X) COPY =M01003,Y TRAP SERVICE ROUTINE ADDR. M01001 STRAP A,:A5 M01002 EQU $ ERROR: STRAP,FAILED,--,DID,NOT,TAKE,TRAP M01003 EQU $ TRAP SERVICE ROUTINE COPY 0(X),A 1ST WORD OF TRAP (:A4) CSK A,=M01002 NOP ERROR: STRAP,FAILED,--,SHOULD,BE,M01002,ADDR COPY 1(X),A 2ND WORD OF TRAP (:A5) CSK A,M01001  NOP ERROR: STRAP,FAILED,--,SHOULD,BE,STRAP,INSTR. TITL ****** * * ---- M01010 ---- * * UTRAP 4REG,VAL * ****** M01010 EQU $ COPY =:A0,X UTRAP LOCATION COPY =0,A CLEAR TRAP LOCATION COPY A,0(X) COPY A,1(X) COPY =M01013,Y TRAP SERVICE ROUTINE ADDR. M01011 UTRAP Q,:66 M01012 EQU $ ERROR: UTRAP,FAILED,--,DID,NOT,TAKE,TRAP M01013 EQU $ TRAP SERVICE ROUTINE COPY 0(X),A 1ST WORD OF TRAP (:A0) CSK A,=M01012  NOP ERROR: UTRAP,FAILED,--,SHOULD,BE,M01012,ADDR COPY 1(X),A 2ND WORD OF TRAP (:A1) CSK A,M01011 NOP ERROR: UTRAP,FAILED,--,SHOULD,BE,UTRAP,INSTR. PATCHX M01000 TITL COPY PCOUNT,A CSK A,=:62 NOP ERROR: SOME,OF,TESTS,NOT,EXECUTED COPY =:A8,X UNEXP. DIVIDE TRAP LOCATION COPY =AET1,A TRAP SERVICE ROUTINE COPY A,3(X) STORE THERE IMS IDPCNT COPY =8,A CSK A,IDPCNT JMP $+2 JMP *M01015 JUMP TO NEXT TEST JMP *$+1 WORD PART2ST * M01015 WORD A02002 LPOOL RES $;:1F-$&:1F+1,0 PART2ST SET $ END WORD OF TRAP (:A1) CSK A,M01011 NOP ERROR: UTRAP,FAI4  TITL PAT4/12 FLT. POINT INSTR. TEST 84-93895-10-A000 * * THIS WILL SAVE THE STARTING ADDRESS OF THE NEXT MODULE * PART4ST SET PART4ST SAVE EXTR PATEND TITL FLOATING POINT INITIALIZATION NAM FLPT MACHINE =:20 ORG PART3ST ATRAP EQU :A8 FLPT EQU $ FLTPT EQU $ COPY DEMAND,A FETCH TEST SELECTION JEQ A,$+4 TBIT 5,A DO WE WNAT TO DO THIS TEST JT OV,$+2 JUMP IF WE DO JMP PART4ST COPY =6,A FLOATING POINT RUN INDICATOR SELP A,4 OUTPUT TO CONSOLE JMP FLTPT0 INITRP ENT COPY IMSQ,A COPY 'IMS QTEMP' TO INTERRUPT LOCATION COPY A,ATRAP+2 FOR ARITHMETIC EXCEPTION TRAP COPY =:9F7C,A COPY 'JMP *$-3' TO RETURN FROM TRAP COPY A,ATRAP+3 COPY =0,A IFT LSI410=0 COPY A,ATRAP CLEAR SAVED 'P' COPY A,ATRAP+1 CLEAR SAVED 'I' ENDC COPY A,QTEMP ZERO OUT TRAP FLAG JMP *INITRP IMSQ IMS QTEMP LPOOL FLTPT0 COPY =0,A COPY A,IDPCNT SET UP LOOP COUNTER FLTPT1 COPY =0,A COPY A,PCOUNT SET UP TEST COUNTER TITL --FIX-- INSTRUCTION TEST (PART 3-1) * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * FIX * * * +:FDF64F +0 FIX = :0000 :0000 ALL FRACTION FLTEST :407F,:F64F,FIX,,,SP,:0000,:0000,S TITL * +:FFFFEC +15 FIX = :0000 :7FFF MAX S.P., CHECK TRUNCATION FLTEST :47FF,:FFEC,FIX,,,SP,:0000,:7FFF,R TITL * +:800000 +16 FIX = :0000 :8000 SMALLEST D.P. FLTEST :4800,:0000,FIX,,,DP,:0000,:8000,S TITL * +:800000 +17 FIX = :0001 :0000 CROSS WORD BOUNDRY FLTEST :4880,:0000,FIX,,,DP,:0001,:0000,R TITL * +:FFFFFF +31 FIX = :7FFF :FF80 MAX D.P. FLTEST :4FFF,:FFFF,FIX,,,DP,:7FFF,:FF80,S TITL * -:800000 -128 FIX= :0000 :0000 SMALL NEG FRACTION FLTEST :8000,:0000,FIX,,,SP,:0000,:0000,R TITL * -:C00001 +02 FIX= :FFFF :FFFD NEG INT, FRACT  FLTEST :C140,:0001,FIX,,,SP,:FFFF,:FFFD,S TITL * +:CFFFFF +02 FIX= :0000 :0003 POS INT, TRUNCATION FLTEST :417F,:FFFF,FIX,,,SP,:0000,:0003,R TITL * +:FFFFFF +32 FIX = :FFFF :FF00 OVERFLOW FLTEST :507F,:FFFF,FIX,,,OV,:FFFF,:FF00,S IMS PCOUNT COPY PCOUNT,A CSK A,=1 NOP ERROR: PCOUNT,SHOULD,=1 TITL --FLOAT-- INSTRUCTION TEST (PART 3-2) * * *  THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * FLOAT * * FLTEST :0000,:7FFF,FLOAT,,,OK,:47FF,:FE00,S TITL FLTEST :0000,:8000,FLOAT,,,OK,:4800,:0000,R TITL FLTEST :0001,:0000,FLOAT,,,OK,:4880,:0000,S TITL FLTEST :7FFF,:FF80,FLOAT,,,OK,:4FFF,:FFFF,R TITL FLTEST :FFFF,:FFFF,FLOAT,,,OK,:C080,:0000,S IFT NWFRMWRE=1 TITL * * NEGATIVE NUMBER :FFA5 A5A5 CONVERTING TO FLOATING POINT * NUMBER, AND RETURNING TO FIX NUMBER, THE RESLUTING * NUMBER SHOULD BE :FFA5 A5A5 * COPY =:FFA5,A COPY =:A5A5,Q FLOAT FIX CSK A,=:FFA5 NOP JMP $+2 CSK Q,=:A5A5 NOP HLT 'FIX' FAILED, A & Q SHOULD REMAIN THE SAME ENDC FLPT2 IMS PCOUNT COPY PCOUNT,A CSK A,=2 NOP ERROR: PCOUNT,SHOULD,=2 TITL --CSKF-- INSTRUCTION TEST (PART 3-3) * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * CSKF * *  FLTEST :0000,:0000,CSKF,:0000,:0001,LT,,,S TITL FLTEST :0000,:0000,CSKF,:8000,:0001,GT,,,R TITL FLTEST :0000,:0000,CSKF,:0000,:0000,EQ,,,S TITL FLTEST :577C,:D405,CSKF,:57FC,:D405,LT,,,R TITL FLTEST :577C,:D405,CSKF,:56F5 C,:D405,GT,,,S TITL FLTEST :577C,:D405,CSKF,:577C,:D405,EQ,,,R TITL FLTEST :C6A6,:4ED3,CSKF,:C6A6,:4ED2,LT,,,S TITL FLTEST :C6A6,:4ED3,CSKF,:C6A6,:4ED4,GT,,,R IMS PCOUNT COPY PCOUNT,A CSK A,=3 NOP ERROR: PCOUNT,SHOULD,=3 TITL --CSKF-- INSTRUCTION TEST (PART 3-4) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * CSKF * * FLTEST :C6A6,:4ED3,CSKF,:C6A6,:4ED3,EQ,,,S TITL FLTEST :3CBE,:7428,CSKF,:3CBE,:7429,LT,,,R TITL FLTEST :3CBE,:7428,CSKF,:3CBE,:7427,GT,,,S TITL FLTEST :3CBE,:7428,CSKF,:3CBE,:7428,EQ,,,R TITL FLTEST :7FFF,:FFFF,CSKF,:007F,:FFFF,GT,,,S TITL FLTEST :7FFF,:FFFF,CSKF,:7FFF,:FFFE,GT,,,R TITL FLTEST :7FFF,:FFFF,CSKF,:7FFF,:FFFF,EQ,,,S IFT NWFRMWRE=1 TITL * * 'CSKF' INSTRUCTION TEST, -4 COMPARED WITH -2 * COPY =:C100,A COPY -2 FLOATING NO. IN AQ COPY =:0000,Q JMP $+3 DUMM WORD :C180 STORE -4 FLOATING NO. WORD :0000 CSKF DUMM COMPARE JMP $+2 'CSKF' FAILED JMP $+2 'CSKF' O.K. HLT 'CSKF' FAILED, -4 SHOULD BE LESS THAN -2 ENDC * IMS PCOUNT COPY PCOUNT,A CSK A,=4 NOP ERROR: PCOUNT,SHOULD,=4 TITL --ADDF-- INSTRUCTION TEST (PART 3-5) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * *  ADDF * * * +:C43D4E +34 ADDF +:9EFB4C +34 = +:B19C4D +35 CARRY INTO EXP. FLTEST :5144,:3D4E,ADDF,:511E,:FB4C,OK,:51B1,:9C4D,S TITL * -:8264CA +13 ADDF -:A6B183 +8 = -:879A56 +13 PRE-SCALE REQUIRED FLTEST :C682,:64CA,ADDF,:C426,:B183,OK,:C687,:9A56,R TITL * -:A6B183 +8 ADDF -:8264CA +13 = -:879A56 +13 PRE-SCALE REQUIRED FLTEST :C426,:B183,ADDF,:C682,:64CA,OK,:C687,:9A56,S TITL * +:E483A9 -37 ADDF +:B73145 -44 = +:E5F20C -37 CHECK ROUNDING FLTEST :2DE4,:83A9,ADDF,:2A37,:3145,OK,:2DE5,:F20C,R TITL * +:B73145 -44 ADDF +:E483A9 -37 = +:E5F20C -37 CHECK ROUNDING FLTEST :2A57,:3145,ADDF,:2DE4,:83A9,OK,:2DE6,:320C,S TITL * +:A94868 +83 ADDF -:8C547E +83 = +:E79F50 +80 SUB, NO BORROW FLTEST :69A9,:4868,ADDF,:E98C,:547E,OK,:6867,:9F50,R TITL * -:8C547E +83 ADDF +:A94868 +83 = +:E79F50 +80 SUB, NO BORROW FLTEST :E98C,:547E,ADDF,:69A9,:4868,OK,:6867,:9F50,S TITL * -:C84986 -23 ADDF +:8246A1 -26 = -:B800B2 -23 SUB, NO BORROW FLTEST :B4C8,:4986,ADDF,:3302,:46A1,OK,:B4B8,:00B2,R IMS PCOUNT COPY PCOUNT,A CSK A,=5 NOP ERROR: PCOUNT,SHOULD,=5 TITL --ADDF-- INSTRUCTION TEST (PART 3-6) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * ADDF * * * +:8246A1 -26 ADDF -:C84986 -23 = -:B800B2 -23 SUB, WITH BORROW+RNDUP FLTEST :3302,:46A1,ADDF,:B4C8,:4986,OK,:B4B8,:00B2,S TITL * +:A6ED4F-128 ADDF +:0 = +:A6ED4F-128 ADD ZERO FLTEST :0026,:ED4F,ADDF,:0000,:0000,OK,:0026,:ED4F,R TITL * +:0 ADDF +:A6ED4F-128 = +:A6ED4F-128 ADD ZERO FLTEST :0000,:0000,ADDF,:0026,:ED4F,OK,:0026,:ED4F,S TITL * +:FFFC00+127 ADDF +:FFF7FF+112 = +:FFFFFF+127 MAX POS W/ROUNDUP FLTEST :7FFF,:FC00,ADDF,:78FF,:BFFF,OK,:7FFF,:FFFF,R TITL * +:FFFFFF+127 ADDF +:800000+104 = +:800000 +0 OVERFLOW FLTEST :7FFF,:FFFF,ADDF,:7400,:0000,OV,:0000,:0000,S TITL * +:FFC000+127 ADDF +:FFE000+113 = +:800000 +0 OVERFLOW W/ROUNDUP FLTEST :7FFF,:FC00,ADDF,:78FF,:E000,OV,:0000,:00006 ,R TITL * +:C00001-128 ADDF -:800001-128 = +:0 UNDERFLOW FLTEST :0040,:0001,ADDF,:8000,:0001,UF,:0000,:0000,S IFT NWFRMWRE=1 TITL * * 'ADDF' TEST OF +VE AND -VE NUMBERS * COPY =:49FF,A COPY =:FF00,Q JMP $+3 DUMDA WORD :C9FF WORD :FF00 ADDF DUMDA CSK A,=:0000 NOP JMP $+3 CSK Q,=:0000 NOP HLT 'ADDF' OF MIXED NOS. FAILED ENDC * IMS PCOUNT COPY PCOUNT,A CSK A,=6 NOP ERROR: PCOUNT,SHOULD,=6 TITL --SUBF-- INSTRUCTION TEST (PART 3-7) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * SUBF * * * +:A94868 +83 SUBF +:8C547E +83 = +:E79F50 +80 SUB, NO BORROW  FLTEST :69A9,:4868,SUBF,:698C,:547E,OK,:6867,:9F50,S TITL * +:8C547E +83 SUBF +:A94868 +83 = -:E79F50 +80 SUB, NO BORROW  FLTEST :698C,:547E,SUBF,:69A9,:4868,OK,:E867,:9F50,R TITL * +:C84986 -23 SUBF +:8246A1 -26 = +:B800B2 -23 SUB, WITH BORROW+RNDUP * +:8246A1 -26 SUBF +:C84986 -23 = +:B800B2 -23 SUB, WITH BORROW FLTEST :3302,:46A1,SUBF,:34C8,:4986,OK,:B4B8,:00B2,S TITL * +:FFFFFF+127 SUBF -:800000+104 = +:800000 +0 OVERFLOW FLTEST :7FFF,:FFFF,SUBF,:F400,:0000,OV,:0000,:0000,R TITL * +:C00001-128 SUBF +:800001-128 = +:0 UNDERFLOW FLTEST :0040,:0001,SUBF,:0000,:0001,UF,:0000,:0000,S IMS PCOUNT COPY PCOUNT,A CSK A,=7 NOP ERROR: PCOUNT,SHOULD,=7 TITL --MULF-- INSTRUCTION TET (PART 3-8) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION: * * MULF * * FLTEST :405D,:3E8D,MULF,:4411,:8EE0,OK,:43FB,:97D0,S TITL FLTEST :C2CD,:5542,MULF,:402A,:A9BB,OK,:C288,:E2C1,R TITL FLTEST :C30D,:0FC8,MULF,:C1B4,:3D71,OK,:4446,:A1E7,S TITL FLTEST :3B0B,:9E2E,MULF,:4161,:9581,OK,:3BF6,:0F20,R TITL FLTEST :0000,:0001,MULF,:4000,:0000,UF,:0000,:0000,S TITL FLTEST :7FFF,:FFFF,MULF,:4080,:0000,OK,:7FFF,:FFFF,R TITL FLTEST :D000,:03FF,MULF,:C77F,:FC00,OK,:5700,:01FF,S TITL FLTEST :487E,:DC00,MULF,:C85E,:AD00,OK,:D05D,:AF03,R IMS PCOUNT COPY PCOUNT,A CSK A,=8 NOP ERROR: PCOUNT,SHOULD,=8 TITL --DIVF-- INSTRUCTION TEST (PART 3-9) * * * * THE FOLLOWING INSTRUCTION IS TESTED IN THE FOLLOWING SECTION: * * DIVF * * FLTEST :405D,:3E8D,DIVF,:4411,:8EE0,OK,:3CC2,:8E77,S TITL  FLTEST :465E,:A92F,DIVF,:C124,:E704,OK,:C5AC,:D545,R TITL FLTEST :C2CD,:5542,DIVF,:402A,:A9BB,OK,:C31A,:00CA,S TITL  FLTEST :C30D,:0FC8,DIVF,:C1B4,:3D71,OK,:41C8,:5A97,R TITL FLTEST :3B0B,:9E2E,DIVF,:4161,:9581,OK,:3A1E,:7161,S TITL FLTEST :4362,:8789,DIVF,:38D5,:92EF,OK,:4B07,:C3B8,R TITL FLTEST :0000,:0001,DIVF,:4100,:0000,UF,:0000,:0000,S TITL FLTEST :7FFF,:FFFF,DIVF,:4000,:0000,OV,:007F,:FFFF,R IMS PCOUNT COPY PCOUNT,A CSK A,=9 NOP ERROR: PCOUNT,SHOULD,=9 * * IMS IDPCNT COPY IDPCNT,A CSK A,=32 JMP FLTPT1 NOP * * END OF FLOATING POINT TESTING * COPY JMP1,A JMP *$+1 INSTRUCTION COPY A,ATRAP+2 STORE AT TRAP LOCATION COPY =AET1,A UNEXPECTED ARITH. EXCEPTION TRAP ROUTINE COPY A,ATRAP+3 STORE AT TRAP LOCATION JMP PART4ST LPOOL RES $;:1F-$&:1F+1,0 PART4ST SET $ END EST :0000,:0001,DIVF,:4100,:0000,UF,:0000,:0000,S TITL FLTEST :7FFF,:FFFF,DIVF,:4000,:0000,OV,:007F,:FFFF,R IMS PCOUNT COPY PCOUNT,A CSK A,=9 NOP ERROR: PCOUNT,SHOU7 LD,=9 * * IMS IDPCNT COPY IDPCNT,A CSK A,=32 JMP FLTPT1 NOP * * END OF FLOATING POINT TESTING * COPY JMP1,A JMP *$+1 INSTRUCTION COPY A,ATRAP+2 STORE AT TRAP LOCATION COPY =AET1,A UNEXPECTED ARITH. EXCEPTION TRAP ROUTINE COPY A,ATRAP+3 STORE AT T* * THIS MACRO CREATES THE SAL OPCODE * MACRO SAL QQ SET #(1)%4 WORD :6600;QQ;#(2) ENDM * * TITL PAT 4/12 AUTOLOAD AND SAL TEST 84-93895-10-A000 MACHINE :08 EXTR PATEND TITL LOOP ROUTINE NAM PARTX  NAM ALT NAM ALTRTN NAM ALTBUF ABS LENGTH WORD PATEND ORG PART4ST ****** * * LOOP ROUTINE AND 32 BIT PASS COUNTER * ****** PARTX EQU $ IMS COUNT1 JMP $+2 IMS COUNT2 NOP  JMP *$+1 LOOP TO BEGINNING OF PAT495 WORD A02000 * RES $;:1F-$&:1F+1,0 TITL * * ---------- AUTOLOAD TEST ---------- * * THIS TEST VERIFIES THAT THE AUTOLOAD PROGRAM * IS LOADED INTO MEMORY CORRECTLY. SINCE THIS TEST * REQUIRES OPERATOR INTERVENTION, IT CANNOT BE * RUN IN DEMAND OR DEFAULT MODE. IT MUST BE RUN * BY LOADING THE P REGISTER WITH THE ADDRESS OF * 'ALT' (OBTAINED FROM THE OS:LNK MEMORY MAP. * LOCATIONS 0-:100 WILL BE SAVED IN A BUFFER, * AND THE PROCESSOR WILL HALT AND DISPLAY A * :FFFF. THE OPERATOR SHOULD LEAVE THAT VALUE IN * THE CONSOLE DATA REGISTER, MAKE SURE THAT THE * SENSE SWITCH IS OFF, AND PRESS AUTOLOAD. THE * AUTOLOAD PROGRAM WILL THEN LOAD ITSELF INTO LOW * MEMORY AND HALT. THE OPERATOR SHOULD THEN SET * P TO THE ADDRESS OF 'ALTRTN' AND PRESS RUN. *  THE TEST WILL THEN EXCHANGE THE CONTENTS OF LOW * MEMORY AND THE BUFFER, RESULTING IN THE AUTOLOAD * PROGRAM IN THE BUFFER AND LOW MEMORY RESTORED * TO ITS ORIGINAL CONTENTS. THE CHECKSUM OF THE * AUTOLOAD PROGRAM INSTRUCTIONS WILL BE CALCULATED * AND COMPARED TO A KNOWN CHECKSUM (:FFFF). THE * TEST WILL HALT WITH A VALUE IN THE CONSOLE DATA * REGISTER. IF IT IS A :FF00, THE TEST WAS SUCCESSFUL, * AND IF IT IS A :00FF, THE TEST WAS UNSUCCESSFUL. * AT THIS POINT PRESSING RUN WILL CAUSE PAT TO * TO EXECUTE A SAL INSTRUCTION THAT WILL AUTOLOAD * OS::.SYS WHICH SHOULD BE PAT 4/12. ******************************************************* TITL * * COPY LOCATIONS 0-:100 TO BUFFER AREA * ALT EQU $ S01000 EQU $ COPY =0,X INITIALIZE READ INDEX COPY =ALTBUF,Y INITIALIZE WRITE INDEX S01001 COPY 0(X),A  READ MEMORY COPY A,0(Y) STORE IN BUFFER CSK X,=:FF END OF COPYING? JMP $+3 NO, CONTINUE NOP JMP S01005 YES, EXIT ADD =1,X INCREMENT READ INDEX ADD =1,Y INCREMENT WRITE INDEX JMP S01001 LOOP TO CONTINUE * * HALT AND WAIT FOR OPERATOR TO PRESS AUTOLOAD * S01005 COPY =0,A  OUT A,0 RESET SENSE SWITCH COPY =:FFFF,A LOAD A WITH SIGNAL TO LOAD AUTOLOAD BUT NOT RUN SELP  A,4 OUTPUT SIGNAL TO OPERATOR HLT TITL * * WHEN THE AUTOLOAD PROGRAM IS LOADED IN LOW MEMORY * THE OPERATOR SHOULD RESTART THE AUTOLOAD AT THIS * POINT. THIS ROUTINE WILL RESTORE THE ORIGINAL * CONTENTS OF LOCATIONS 0-:108 0 FROM THE BUFFER AND * MOVE THE AUTOLOAD PROGRAM TO THE BUFFER * ALTRTN EQU $ COPY =0,X COPY =ALTBUF,Y S01011 COPY 0(X),A READ AUTOLOAD PROGRAM COPY 0(Y),Q READ BUFFER COPY A,0(Y) WRITE AUTOLOAD PROG. INTO BUFFER COPY Q,0(X) RESTORE ORIGINAL CONTENTS OF 0-:7F CSK X,=:FF END OF COPY ? JMP $+3  NO, CONTINUE NOP JMP S01015 YES, EXIT ADD =1,X INCREMENT LOW MEMORY INDEX ADD  =1,Y INCREMENT BUFFER INDEX JMP S01011 LOOP TO CONTINUE TITL * THIS ROUTINE WILL COMPUTE THE CHECKSUM OF THE * AUTOLOAD PROGRAM, WHICH IS IN THE BUFFER AREA * S01015 COPY =ALTBUF,X INITIALIZE BUFFER INDEX COPY =0,A  CLEAR CHECSUM HOLDER COPY =BUFEND,Q ADDRESS OF END OF BUFFER S01016 ADD 0(X),A CSK X,Q END OF BUFFER ? JMP $+3 NOP JMP S01020 END OF BUFFER, EXIT ADD =1,X JMP S01016 LOOP TO CONTINUE S01020 COPY =:FF00,Q DISPLAY FOR CORRECT RESULT CSK A,=:FFFF COMPARE COMPUTED AND KNOWN CHECKSUMS  NOP COPY =:00FF,Q DISPLAY FOR ERROR RESULT SELP Q,4 OUTPUT TO CONSOLE DATA REGISTER HLT  JMP S01000 PATCH FOR LOOPING ORG $-1 NOP OVERLAY WITH NOP S01021 EQU $ COPY =1,A SET BIT FOR SENSE SWITCH OUT A,0 TURN SENSE SWITCH ON SAL 1,0 THIS SHOULD REBOOT PAT 4/12 HLT SAL SHOULD HAVE EXECUTED PAT4/12 JMP S01021 PATCH FOR LOOPING ORG $-1 NOP JMP *$+1 WORD A02000 BEGINING OF PAT LPOOL RES $;:1F-$&:1F+1,0 ALTBUF RES :100,0 BUFFER FOR AUTOLOAD PROGRAM BUFEND EQU $-1 SAVE END FOR LOOPING ORG $-1 NOP OVERLAY WITH NOP S01021 EQU $ COPY =1,A SET BIT FOR SENSE SWITCH OUT A,0 TURN SENSE SWITCH ON SAL 1,0 THIS SHOULD REBOOT PAT 4/12 HLT S TITL PAT 4/12 NUCLEUS SECTION 84-93895-10-A000 NAM COUNT1 NAM COUNT2 NAM PUPCT * NAM  PDNCT NAM PFERRS * * MOVE ROUTINE * * MOVES PAT FROM ANY START LOCATION TO START LOCATION 0 * ABS  0 JMP *$+1 GOTO DEBUG WORD :3000 COPY P,X COPY P TO X (:XXXQ+) SUB =3,X  SOURCE START ADDRESS COPY =0,Y START-OF-DESTINATION ADDRESS SBIT 6,S SET XA BIT WORD :C287 COPY $+8,Q -- PROGRAM LENGTH SELP Y,4 0 TO CONSOLE HLT * WORD :8285 COPY  $+6,A -- MOVE ROUTINE ADDR. ADD X,A ADD DISPLACEMENT OF PAT IN MEMORY WORD :8681 COPY A,$+2  WORD :9F80 JMP *$+1 -- JUMP TO MANUAL MOVE ROUTINE RES 1,0 LENGTH RES 1 ADDR. OF END OF PAT (PATEND) MOVADR RES 1 ADDR. OF MOVE ROUTINE (MOVE) TITL * * WORD AND TEMP. LOCATIONS USED BY PAT * ABS  :10 TEMP01 RES 1,0 TEMP02 RES 1,0 TEMP RES 1,0 P55AA WORD :55AA NAA55 WORD :AA55 PTFFFF WORD :FFFF PTF0F0 WORD :F0F0 PT00FF WORD :00FF PT0000 WORD 0 PT7FFF WORD :7FFF PT5555 WORD :5555 PT6666 WORD :6666 PTAAAA WORD :AAAA 9 PTFFFE WORD :FFFE PT8000 WORD :8000 PTAA00 WORD :AA00 PT55AA EQU P55AA PTAA55 EQU NAA55 TITL * * (PSW) STATUS REGISTER EQUATES * CY EQU 0 CARRY OV EQU 1 OVERFLOW BY EQU 2 BYTE MODE BM EQU BY ALTERNATE NAME CI EQU 4 CONSOLE INTERRUPT RI EQU 5 RTC INTERRUPT ENABLE XA EQU 6 EXTENDED ADDRESSING INT EQU 8 INTERRUPT ENABLE UM EQU 10 USER MODE UP EQU 11 USER PROTECT TITL * * I/O TEST MODULE INTERRUPT LOCATION (:20) * ABS :20 WORD 0 WORD 0 WORD 0 WORD 0 * * ATEMP RES 1,0 XTEMP RES 1,0 QTEMP RES 1,0 YTEMP RES 1,0 KTEMP RES 1,0 LTEMP RES 1,0 MACHIN RES 1,0 PCOUNT RES 1,0 COUNT1 RES 1,0 COUNT2 RES 1,0 IDPCNT RES 1,0 DELAY1 RES 1 CONSOLE INTERRUPT TEST DELAY (LOADED IN A0-1) STATSV WORD :0110 JMP1 WORD :9F80 JMP *$+1 RELATIVE JST1 WORD :BF80 JST *$+1 RELATIVE HLT1 HLT HLT INSTRUCTION ROMONFLG WORD 0 ROM ON FLAG * * * I/O TEST MODULE ECHO INTERRUPT LOCATION (:40) * ABS :40 JST *$+1 WORD 0 TITL * * CONSOLE INTERRUPT SERVICE ROUTINE * CONINT ENT  SIN 5 COPY A,ATEMP SAVE A COPY =2,A EXCH A,S LOAD STATUS (SET OV) COPY A,YTEMP SAVE PREVIOUS STATUS COPY Q,QTEMP SAVE Q IN 4,A INPUT CONSOLE WORD REGISTER COPY A,XTEMP SAVE COPY =-10,Q INITIALIZE PASS COUNTER OUT A,1 TURN OFF CONSOLE INTERRUPT LIGHT COPY  PTAAAA,A DISPLAY PATTERN CNINT2 EQU $ SELP A,4 OUTPUT TO CONSOLE WORD REGISTER COPY DELAY1,A  COPY A,TIMER1 INITIALIZE DELAY COUNT IMS TIMER1 DELAY JMP $-1 IN 4,A INPUT CONSOLE WORD REGISTER ROTATE A,L,1 SHIFT PATTERN FOR NEXT DISPLAY IJNE Q,CNINT2 TEST PASS COUNTER * COPY XTEMP,A SELP A,4 RESTORE CONSOLE WORD REGISTER COPY QTEMP,Q RESTORE Q COPY YTEMP,A FETCH SAVED STATUS SIN 4 COPY A,S RESTORE STATUS COPY ATEMP,A RESTORE A SBIT 8,S ENABLE INTERRUPTS JMP *CONINT * TIMER1 RES 1,0 * * I/O TEST MODULE REAL-TIME CLOCK INTERRUPT LOCATION (:60) *  ABS :60 IMS $+1 WORD 0 * * I/O TEST MODULE DMA COMPLETE INTERRUPT LOCATION (:62) * JST *$+1 WORD 0 TITL UMT1 ENT COPY =:EA00,Q UNEXPECTED MEMORY PARITY ERROR TRAP JMP $+9 * UIT1 EQU $ COPY =:EB00,Q UNEXPECTED UNIMPLEMENTED INSTRUCTION TRAP JMP $+7 * AET1 EQU $ COPY =:EC00,Q UNEXPECTED DIVIDE/FLOATING POINT TRAP  JMP $+5 * AET2 ENT COPY =:ED00,Q UNEXPECTED CHARACTER/NUMERIC TRAP JMP $+2 * SET1 EQU $ COPY =:EE00,Q JST LIGHTS HLT UNEXPECTED STACK EXCEPTION TRAP JMP START LPOOL STARTP WORD :00FF * * ROUTINE TO DISPLAY :AAXX FOR UNEXPECTED TRAPS * LIGHTS ENT IN 4,A INPUT CONSOLE WORD REGISTER AND =:00FF,A TURN OFF BITS 8-15 OR Q,A INSERT :AA IN BITS 8-15 SELP A,4 OUTPUT TO CONSOLE WORD REGISTER JMP *L: IGHTS TITL * * POWER UP VECTOR * ABS :80 POWUP JST *$+1 PUPPTR WORD PUPRTN * * UNIMPLEMENTED INSTRUCTION VECTOR (:84) * ABS :84 LOC84 WORD 0 INTERRUPT LOC + 1 LOC85 WORD 0 INTERRUPT INSTRUCTION JMP *$+1 UNIMPT WORD UIT1 * * UNEXPECTED MEMORY PARITY ERROR TRAP VECTOR (:88) * UNMEM0 WORD 0 P+1 UNMEM1 WORD 0 I JST *$+1 UNMEM3 WORD UMT1 * * POWER DOWN VECTOR (:8C) * PWNVEC WORD 0 P+1 WORD 0 I JST *$+1 PDNPTR WORD PDWN WORD 0 * * REAL TIME CLOCK INT. CELLS (:91) * RTCTIM WORD 0 RTC TIMING CELL * JST *$+1 RTC TIMING CELL OVERFLOW VECTOR RTCPTR WORD 0 * * CONSOLE INTERRUPT VECTOR (:94) * JST *$+1 WORD CONINT HLT HLT * * CHARACTER / NUMERIC ARITHMETIC EXCEPTION TRAP (:98) * HLT HLT JST *$+1 WORD AET2 * * STACK EXCEPTION TRAP (:9C) *  WORD 0 WORD 0 JMP *$+1 WORD SET1 * * USER TRAP (:A0) * ABS :A0 UTRAP1 HLT UTRAP2 HLT UTRAP3 JMP 0(Y) UTRAP4 HLT * * SYSTEM TRAP (:A4) * STRAP1 HLT STRAP2 HLT STRAP3 JMP 0(Y) STRAP4 HLT * * DIVIDE FAULT / FLOATING POINT EXPONENT OVERFLOW TRAP (:A8) * ARERR EQU :A8 ABS ARERR ARERR0 WORD 0 WORD 0  JMP *$+1 ARERR1 WORD AET1 TITL * * POWER DOWN ROUTINE * PDWN WORD 0 SIN 15 COPY A,SAVEA SAVE 'A' COPY X,SAVEX SAVE 'X' COPY Q,SAVEQ SAVE 'Q' COPY Y,SAVEY SAVE 'Y'  COPY K,A COPY A,SAVEK SAVE 'K' COPY L,A COPY A,SAVEL SAVE 'L' COPY S,A COPY A,SAVPSW SAVE 'PSW' COPY =00,A CLEAR 'A' JF SS,$+2 JUMP IF SENSE SWITCH OFF ADD =1,A SET 'A' =1 SIN 6 COPY A,SENSW SAVE SENSE SW. SETTING IN :04,A READ WORD REGISTER COPY A,DATSAV SAVE WORD REG. IMS PDNCT BUMP DOWN COUNTER NOP HLT * * * POWER UP ROUTINE * PUPRTN ENT  SIN 15 COPY PDWN,A TEST FOR COLD START JNE A,PRTN00 JUMP IF NOT COLD START JMP *STARTPTR  COLD *STARTPTR PRTN00 EQU $ IMS PUPCT BUMP POWER UP COUNT NOP PRTN01 EQU $ COPY =SAVEL,A  COPY A,K POP COPY A,K COPY SENSW,A OUT A,0 PRTN02 EQU $ COPY DATSAV,A  SIN 15 SELP A,4 RESTORE CONSOLE DISPLAY AND =:F4,A REPRTN04 PAT JGT A,PRTN04 COPY PUPCT,A FETCH POWER UP COUNT SUB PDNCT,A SUB DOWN COUNT JNE A,PRTN03 JUMP IF NOT EQUAL COPY ROMONFLG,A SELP A,1 SET THE ROM ON OR OF DEPENDING ON THE ROM FLAG COPY *PWRVC2,A GET PROGRAM RETURN POINTER COPY A,$+3 STORE AS INDIRECT POINTER COPY SAVEA,A RESTORE THE A REG JMP *$+1 RETURN TO WHAT WAS HAPPENING WORD 0 * PRTN03 EQU $ IMS PFERRS BUMP POWER UP / DOWN MISCOMPARE COUNTER NOP SIN  11 COPY DMAND2,A AND =:02,A JNE A,PRTN04 IF BIT 1 SET, DO NOT HALT COPY HLT4,A C; OPY A,*PWRVEC STORE IN POWER-UP VECTOR HLT4 HLT POWER UP/DOWN COUNT NOT EQ PRTN04 EQU $ COPY =:40,A COPY A,S COPY PDNCT,A COPY A,PUPCT SET UP/DOWN COUNTS EQUAL START JMP *STARTPTR * * PUPCT WORD 0 PDNCT WORD 0 PFERRS WORD 0 SAVEA WORD 0 SAVEL WORD 0 SAVPSW WORD 0 SAVEK WORD 0 SAVEQ WORD 0 SAVEX WORD  0 SAVEY WORD 0 SENSW WORD 0 DATSAV WORD 0 STARTPTR WORD :0FF INITIALIZE START POINTER PWRVEC WORD POWUP PWRVC2 WORD PWNVEC DEMAND RES 1,0 MODE SEL WORD 1 DMAND2 RES 1,0 RESERVE FOR SELECT. MODE #2 SAVE END COPY =:40,A COPY A,S COPY PDNCT,A COPY A,PUPCT SET UP/DOWN COUNTS EQUAL START JMP *STARTPTR * * PUPCT  TITL PAT4/12 CONTROL 84-93895-10-A000 * * VARIOUS FLAGS ARE SET TO CONTROL SOME ASSEMBLY OPTIONS. * LSI410 SET 2 LSI430 SET 0 LSI490 SET 0 COBOL SET 0 LISTS SET 0 FLOAT SET 1 NWFRMWRE SET 0 OLD FIRMWARE=0/NEW FIRMWARE=1 * * TEST CONTROL WORD * DEFAULT EQU 0 SAVE END 830220135400830220135400830220135400 NAM PATEND * * END OF PAT LABEL -- REFERENCED BY MEMORY TEST * PATEND EQU $ WORD 0 NOP NOP NOP END 830220135400830220135400830220135400O0SEGMENTBLANK oim MACRO (F360) @ÿÿJPFERRS PDNCT PUPCT JCOUNT2 COUNT1 O0SEGMENTBLANK oim MACRO (F360) @i 0 *ýie‡d ‚…"†Ÿ€ UªªUÿÿððÿÿUUffªªÿþ€ª gg0Ÿ€¿€ @ ¿€ O„$ 0„'Ä&„%Hö €€/†ŽÞž~Tž€%À&€'?0€$…Ÿc` ހ¿€ ŒžˆÂ‹ž†ÂŠž„  ˆžÂ‡ŸŠ žùêëìíîÿ ÿGŸz€¿€Â„ Ÿ€g¿€d¿€¬ ¿€¿€B    ¿€kŸ€n   œ@   œ@ š Ÿ€iï†ÀŠÄÆÂæÃp†Ÿ P†º0†¹ Á _†¹†žÞ­   ï‚gÁŸ±Þ€ ðpc  p‚š‚§ïôS‚—Ž—ǀ4 ƒ †‚‚“Ÿ€Þ¯‚šÃ‚‡“ @0‚ƒ†ŸŒggg ÿ€ŒÿÿJA02000 A01000 ALLPAT O0SEGMENTBLANK oim MACRO (F360) @i/Àÿg  ž‚žˆž †v†vIÆdÆdž‰IÆ`Æ`Æ`Ä,Ä-†k†hg ‚‘  „* ž žsgø   €00ž‚  „.^€3„ „+   ž ž‚  IÿMÿ €ž Àø  žž‚ žžž „ž žMR Ü+ž€I€ @ ø I `@`ø Ip@pø I P@Pø I€00@0ø0  IÀ @ ž žW~ Ü+€Až Á Á Až  IQA QÁž SÁž RÁ  RAž SA )2Áž 2A ž^¡ Ü+ž€ÀÄŽºÒ À €„ØúÌ €ÀÄ” ð žjº Ü+€00 Ž0„@0ø  6Â6B  @0ø0 6B6  Iÿ@0ø0 žbÙ Ü+I€00Iô0Ä%0'ž 0ž0 žoë Ü+ Ž0IÿÄ0_€ ÿ < €00žsù Ü+žƒðÿð þ„Üž € ÿ €„Ü €„Üž 6A žk Ü+€00€ž ÀN1ú–   .q º‘ 6Až ànÁ`º‰ 6A žb2 Ü+ž„ª f@€00àc` ž*  I M0 žqG Ü+€Aø ÀD!  ž  $a`ž àdž žceŸ…e €+  ž‚ €00 „ ž €00 „ …ž žo} Ü+€00 †•º” €00‚І ÿ‡‹º‹ žo Ü+ž‡—˜€00 ¢v ð„ºy €00ân ¥„Aºq  €00â®) Z„Áºh žf² Ü+žƒ€00 „¢ž ÿ …ºw €00‚—†p■…Aºm  †h€00¢Šâ‹ U…Áºb ž`× Ü+žˆ–¶·µÀ €00‚¢†yÇxúx  €00‚™ †p☥A ºm à€00 „¢Žå`ºb ž` Ü+€+  ž„áßà€0 0 „€À%„ '‚ž %Ä!'ø žl Ü+ „ „€00€%…'‚†ž žp0 Ü+ž‚U€00 †¬€À% †Ð'‚tº¥ %ÆÃ'úŸ žlH Ü+ †—‚†–Þ•€00 ªÀ%Ǐ'º‹ žoZ Ü+ž‰c ¢.€00 †y‚‹%„‚'‚ˆºs žqt Ü+ž„dUffâ{€00 †e ‚w%„B'‚tº_ žrˆ Ü+žâP)€00 †S‚e%„Â'‚bºM žqš Ü+ž„ „¢œ.€0 0 †w‚ž%…'ºq žo± Ü+‚¯†i⭀00 †e‚Š%…A'º_ žoà Ü+‚†Wâ›)€00 †Rf ’%…Á'‚%ºK )%ÅÁ'úD žfÞ Ü+žˆŸfÿ žâÁ  €00%€B€C'€ºt ¢µ .à€00%ä‚äƒ'€ºg žr Ü+ž€ 0„ ¶¢„)€…À00@ž žq Ü+ 0 „ Ž„iÀÅ@€00ø žp$ Ü+€+  æ€*ž‚- €„„).%€€Àà‚' U Mª mU žl@ Ü+€„€„i U%ž@ ž  %žAž‚ %žB 'À „øž‚ žc^ Ü+€00€†Ž‚šŠ²º§ ‚¥ †­Â€Ê«6A ú¡ €00€†¢ ¢›ª 6A º— €00iH ƕ%êŠ'`ºŒ žUŠ Ü+žŒÿuTZª/ÿŠ© Jª €00‚Ü„ ŒºÙ IP H„%Ì!'M žm« Ü+€00Ÿ‚ ž‡ ‚ƺ} ÞzŸyžs¹ Ü+ ÀĐIø ž  À  „ı€ž ž žfÔÜ+ž‚ €ÀÆ£’¢Àú  ž ‚‘ †—  †•³“€º’  žfò Ü+ž‹ÿþýÿ ° Àà€¢rÆzðºx ` ž „¢f †mñúk `  že Ü+€À âWÆ]°Aº[  ž ‚K†SâK †Q±AúO  ž že6 Ü+€Àâ<)ŠBÁú@   )Š8â0¢.†6€ÑÁº3 M žfQ Ü+žÀàÄ%ð '‚Äž  ` ð   „„Ü €„%ѱ'‚±ž MU @ Mª žZzÜ+ž‚~ ‚¢À Æz%²p'ºv ª  ‚•†mÆm ‚%³h'ºg ª žaÜ+žˆfððÿðª~Чš €À¢º.†xÆxâ¶%ЁB' ð  Mÿ ðºj ºh  „¢¢.€†`I%ѐ' UºZ  MU Ⓜ“†Q€†P€ %‘A'HðúJ ð žEâÜ+¥§äž‚ç âÑ)€†<€%Â' ÿ ð º3 À‚n†,âj)€†)f %ÑÁ'º$ Mf ž^ Ü+ 0„ ¶©„)€„€ ‘ž Àø 0 „ Ž„i€„ÀÑ@ø €ž €00žX1 Ü+€+ , €Š7ž‚: À AºÈ ¢w@!6A ø  ࢟ b ºŒ à€P`R 6A `ž €pPPr6A  Pº© ÿp C0p3€00p Œ žLm Ü+€À@Mð À  E  º  à`'`ºŠ žkƒ Ü+ž‡ª«ÿveUTÌÌwwà  P`V ž €pPvž‚ p p €À@  @ Jž   à k ž €p {ž‚ P  [ €IP@[ž‚ žOœ Ü+€Àp@pž @pø €` @`ø žnÐ Ü+€+ 0 ž€00)i p P`)i€#  c ÂÖK  6Až r`Rmžq€ù  6A ž`÷ Ü+ÂÑNúÎ 6Až NSM  6A  . ž 6Až  .K º¹ 6A ž@ Ü+â°n `º° 6A= ž à n¬`  6A ‚ º6A ž Bº› 6Až ž`8 Ü+ž•@ €@ ÌfRªæ€ ŀ+ „+Ÿ€ŠIUN ú¯  6Á NÚMª 6Á )s.  æ 6Až .€ ºY 6A ž àn`ž 6Až nØ`  6Až žP‡ Ü+ž‚€*€ÀOž ú  6Až Oº‰ ú‡  6A ž„ÌÌU™˜€)/ ž  @ ø 6Á /ù  @ ø 6A žOŒ Ü+ ào  @`ø  6Až €oLž @`ú…  6A ž‚úª€ÀOž úB  6Á O#ºŠ úˆ 6A žPí Ü+žƒUVfb€ / º”  @ ø 6Až /«ºŠ @  ú‡ 6A ž„33UFfj€à oº­ @`ú© 6Až oà ž @`M 6Á žL& Ü+€ÀOº“ ú 6A ž Oh ð ø 6Až  žƒxxþ€ / ž @ úu  6Až /êž @ ø 6Až žMZ Ü+‚ŒÂ‹OºŠ ú‡ 6A ž žƒÌ̙™€ /rž  @ ø 6Až €àoòž  @`ø 6Až žU† Ü+ž Ž00Iô00K  Ž000ž0  Ž00Iô00K Ž0 06A 6Á €00žV³ Ü+I)€C C  6A @" ú™žvI@ @M ) > N- iÿ`6A žbÒ Ü+€+ ; ž‚[ºŒ  ºKÿø Kø 6A žpê Ü+ *š º« àjÿ`ž  6A àlªž l¥ žk  Ü+ 8f-" ÀYfú’  €3ºŽ € ž‚ žk  Ü+ž†ÿ[ªDUwfUÿA  Až  HÿTÁž TÁ M žm 1 Ü+)5Až 5A ž  iuÁ uÁž `ž žk G Ü+€00VÂVB  0ž0  VBV  ÂB  B  žd d Ü+€+ A ž€„  ž „ Bž žo | Ü+)€„ "ž „ bž žn  Ü+i€„ ž   „€„ Rž žl € Ü+)i€„ 2ž  ) „ rž žl ¹ Ü+žƒ€†{  Œž  ‚Άs€†r B Œž žm Ñ Ü+)€†g " Œž ‚¹ †^€†^ b Œž žl æ Ü+i€†R  Œž i ‚£†H R Œž žm ú Ü+)i€†> 2 Œž  i‚ކ3 r Œž žl  Ü+€+ I ž‚ œCXQà „+Ÿç€' ' ž  'ž‚ )i „€„ Ghø ÀGYø ž_ > Ü+ÀÄâÃg @`úÀ   '  ºº 6A )€ÂŽÄ +º± iž 6A ž\ c Ü+)i€„ÀG<ø  €ž )‚†‹€†‹€n º žf ~ Ü+žŒ ‚ îjä»»"" ˆˆDDi‚Ú†r€†qÀg^ úÔ  )i€†g€? ºË žj ¢ Ü+' š žˆ ‚º}ž‚ÞzŸy  ³ žp ³ Ü+ÂNÆJÿ†IGM  GM ž  ‚A  €†<Þ;ž 6A  „ „gM gMž € ž €„g ž 6A žR â Ü+€+ O ž‰ ƒîî33 Š Ážé)œ‚Ý„ƒ‚ÜP‚Ûp  †”†’ ÿ ‚Ô{ ‹úÐ ž‹ œ@ žl‚„ƒ‚Ÿp   ž€ €€º¹ €ºu ‚³{ ‚eº¯ žE , Ü+€1„‚ n„ƒi) „Gt @  €„€ ž ) 'ž‚ àg žc N Ü+žŠ     þ       {  VAž €  {  VA € |ž  6A VÁ `žƒ Ig {M VA Ig { ø VAž Àg |ú‰ 6A VA ž@ š Ü+ž‚þ „ €'ž  - IÄ€àgGÀø Àø že ¹ Ü+ž „IG   Mÿ ª 'ž @ úŸ  ‚Œ`„º‚ºGºž  ø ‚³gº± @`ú® žR ê Ü+)š‚©„‚‚š„ƒ‚œ„€IG  ž£ž M €€º˜ Àúp žd  Ü+ÁžàžŽ@ú ±ãN/I è*Ð7Õ€Ÿ€ ù ÷‚‰„ƒ€ „€ig žƒ %iš‚Ö „C€†z€)' ( ‚΄C †q€@G ( ž_ < Ü+‚Ä„C „@„A †c ÀG ( žŽ  ø €@º±  ÀAúp )š‚ª„ƒ€„àg  ‚£„ƒ‚¢„‚¡ig žR k Ü+‚›„ƒ „ÀG ‚”„ƒ‚„‚‘IG žn ~>  Ü+ž 3 < K I b kÀà u ~ ‚š„ƒ‚§†{‚ŠÂŠG  º€ ú¢ ž žo ž Ü+ÁžÌ)š‚—„ƒ†d € iÿg  ÿ @`ø ž  ž‰ íõÝ_?ö í µiš‚š „C ÿ„€¢Ÿ'º¡ @ úž  ž iš‚™„C‚‘„‚ÀG º’ ú ž ž@ ã Ü+žÃ±ãè* ) Ñÿÿ âá, N)„‚±„ƒ)š‚¯„ƒ„ €iÿg  ž )„‚€„ƒ)š‚¢„ƒ ÿ„ €¢]' ž )„‚—„ƒ)š‚• „ƒ‚R„‚QÀG ž žR  Ü+)„ g„ƒž† ÿ þ    ‚·„C ÿ„ IG  M ž žo 9 Ü+ÁžÏ‚¢„C€„   'ž - ž )š‚’ „ƒ€„€ÀGž M  ž‡ ž… 8 N _‚’„ƒ€ „€hgº‹ m ž žH v Ü+žƒ uÿ‚Ê„ƒ€„‚ÇÀ Gž ø ž žo Œ Ü+‚º„ƒ †Ž IGQA  º­ ž ‚¬„ƒ @GA  QA ž ‚¡„ƒû†™ IG A ú’ ž žU ž )š i„ƒ€+CXQ „+ ]  ž‡ ‹@ œ š ·)œ‚¿„ƒ †º†ž‚»P‚ºpþƒ ž ‚µ { ‚¬º± ‚¯„ƒþ   €€ºª €ºw ‚€{  ‚–º  ‚ž†‘‚šp#  ‚’{ žJÜ+ž” œ@ Ú  Ø è ç æ þ âÝ „@„A„B„C„D„E‚Ùp‚ÔP €00€ÀâÒäƒC þ#‚Ï;  0âÀ@ºÂ €Až0 €B ž €Cž €D œ €E º² pº© ž žFR Ü+†„@„A„B„C„D„E‚šp €00G‡€Àâ•äƒC ÿq ž”  qjk~wQ A;  0ât€@ºq €0@žA €B ž €Cž €D œ €E º^ pºY €€ºµ €º> ž)ª Ü+€1„‚ n„ƒ‚HpI)iP` 0E…c ž €0;  0ø -œ `º.  Pº( pº# žYÖ Ü+ž‚h)€ „€„âª¥  €€º§ €ºx )  „€„ â[f €€ºš €ºx žaù Ü+€+ b )š i„ƒÜ. ž. žŸ‚Ÿ€ ,âáñðÿÿJPART2 O0SEGMENTBLANK oKPATEND im MACRO (F360) @i g ƒÊC6AžÂi„ ‚Ä„CÂè ?= ž‚ÂâÆâ †á€00ÞÞ žž­6l)‚Ù# –Ø# ºžžž† +@ úΞtžm‚ˆ…–Ÿ   „@  žb€@¿֖ú–ž„º”  žƒº‘ €Aºm žP g„Cž6i žÆûÿUŸSR  v  |\\\&F|\ ' žŸŸÿߟŸ ŸŸÿÿÿ ÿÿÿÿðŸÿŸŸHŸLÿO¿OŸ Ÿ Ÿƒ9C/6AŸÙ  Á  ‡Ù€00‚Ñ„ÿ‡Ô‚Ô‡Ô‚Ì ÿ¶Ò  „4ÂÍĀ€€EÈÂÉĀ €€EêÅ1Pžs§ž.˜ @# ž† ž„ ž‚¿¯p†úžŠÃŽÖQC ¿Š@ÿ†ð †ï „4ç֧ QRNxLž‡Lž…Lžƒ¿“žˆ‚Þ xKžž‚¿Š@‚Ö ž‘b t `Ža]_@^ÿªªUUü ÿ‚ÀÁž•† „4¢¶ €€@ „€Ø€QB¿b+ނžuž‚ „4€žž¢¢£€„€ eƒ—ÀKžžƒŸé ž€€ÂA KžžƒŸàÄ€00 d„Cž]ZžŠ€ ž÷ڀ‚*p‚vPpVžží p „€ Vž‚ž†+-€žw+0žu pI€€ žž‚Ÿ²€ Vž‚ ž†+-€žq+0žoŸµ p€€ Vž‚ ž†+-€žw+0žu p€€@ + žž‚Ÿ’@ Vž‚ž†+-€žp+0žnŸ•ž>® ‚-†ö‚,†õž­ † †Ÿ–¢‹z ‚š Ÿ…‚˜‚•ÞrŸq Á šÐ žƒ‚ŠŸs†‡ ŸoŸm žÏžÏ€i@` pĀ Vž‚ž‡N+-€žv+0žt p @`€€Kžž‚Ÿ< Vž‚ž‡ N+-€žp+0žnŸ>`ÿ6BnžYžW  p ` U%„@ ª„A&€€º— žž‚Ÿ Vž‚ž†+-€žj+0žhŸžd%žˆ žØžî™UªVÁžœƒî6Ážä ‚rÂéöéKFžÝJÿP@`Pk )€€„@ [ž‚žƒ+kžw@PK _ ÂB‡Ë ¬B‡É‚ÎB‡Ç‚ÌB ‡Å pƒÈ ü‡‚ÃR  †‡P ºŸž‚eŸ€Ÿ‚Ÿ€™  P`Pn` €@„€-žžƒ*ÿ jÿžw…Ÿop ž“žg ŸŠ  ŸfŸ€ë Ÿ„ Ÿ`Ÿ€ë ÿ¶‘ŸzŸ™ž±‡‹üt ÿ‡am€ªƒŽC?6A Ÿ¯ )‘‚­„‚€00„€†£ …UIޟTJ€€º›ž{  žž…OžrW ž‹W žˆ €€  ‚‡A W…žOÚž† bûÐG‡÷†î †u†sþ „€‚ë„‚U…Þmž~? Þjž|  ‡ €€  ‚ٺܞƒ †]†[ÞÒ žf‚XÂXO)†ËÆËO9†ËÆËGS R†¿Æ¿‚¿Â¿gV6A ÿ Žº†¶Æ¶†µ †<þ„€‚µ„‚U… Þ-ž~Þ*ž|  ‡€€  ‚™ ºžžžŒðq ‚ºŒž‚ ºŠ ވžRžMŸMž“ª ôÿ÷4ÿƒš CO6Až„ P ¯ž‚Ÿ€‚ž ^€00ž€ ^)i¯ # P c ž ,žƒ+jÿžt AªLUž žj‰ žƒûÀ€Bššž   "šAšø àbš!š@ ø  €šaš@`ø žd© I^€¯Ašø ^© ž žp¹ ^¬P Q ­Pž Qž žqÈ €2„ ‚„!i@‚À„A‡ †Ž^ «Rž~…  ‡  ž  0–©A ‚wºŠ  ž‚  ^0…‚—„ €„! ‚™„A « ž• €!A 0; ž@ žˆÞ€ÿ€áîÝÿ ^€00‚t„ ‚¶„!‚µ„A)œ€2 „‚‚±„ƒ‚«P‚®p †¥„€„ « ž•/€00ž0 p º— ‚’º˜ ž…  ž‚  žNEž GN0@CO. ^…‚È „!‚Ç„A‚Æ„ƒ‚nP‚mp †g„€ „« ž° €2„ ‚µ„!À0 0H ¿ ž„  @6Á  @Œø0 pº¢ ‚EºŸ  €€º– €»˜ ‚YºŽ ž…‡ ž‚  ž9 €1„‚ n„ƒžˆ˜›mxMk  ^…‚¡„ ‚ „!eÿ‡œ ‚œ„Ag «‡ žŽ ‚“ º‘žž‚ ž…eƒˆB ž d„ƒž\Î ž‡ß€€Ÿ ZEš ^€0 0‚y„ ‚ø„!‚õ„"‚®„A) #  †è5œ‚šš «‡ ž €! ÿ6A ýA €"º˜ )• # ‚ÏA +# ‚ÊK NÒ+-žqžI  žˆOððªTxU ^ …‚;„ ‚º„!‚p ÿ„"‚¶„A) # †§5œ€š «‡ žš  €!ÿ6A ýA €"NJÿ K )À# ‚‹K +-žwžKK žŽ%šešNÿú ÿôU1 ^…‚n„ ‚t„") ‚­# †i+-žy‚Š„A)ÿ „! «‡ ž™ š# ÂUK  ^…+-žj€!ÿ6A  ýA €"º žK ž„v ^…‚5„ ‚û  ÿ„")€# †-+-žy ‚ï„A)ÿ„! «‡ ž¥  šVDqpžŒw# ÂK  +-žž„ ^…ža€! ÿ6A ýA €"ÂNJÿK ž<Ø ^…‚·„ ÿ„!€„"‚µ„A «‡ ž‹ €!ÿ6Á ýA €"A žcõ ^…‚›„ ÿ„!€„"‚™„A «‡ ž‹ €!ÿ6Á ýA €"A žc ž‡EšešO³ê ^€0 0€2„ ‚°„! «Ÿƒ‡  ž‰ ‡ žƒ Á žf4 ] ^€00‚–„!  «' G‡ ž‰ ‡ žƒ Á žgP žƒ1M ^€00‚Ñ„!)œ ‚Ï„ƒ‚ËP‚Ìp «þƒ‡  žŒ ‡ ž‡ Á žƒ‡ ž^v w ^€00‚¯„!‚®„ƒ ‚§P‚šp «‡  žŒ ‡ ž‡ Á žƒ‡ ž^›ž”  os¥”˜ ^€00‚ž „!‚·„ƒ‚pP‚Žp «C  ‡ ž‡ Á žƒ‡ žaÏ n„ƒ ^€00‚š„!‚QP‚— p€0†G †F«c ‡ žƒ Á žeì ž†ÈÌªé€ ^0‚Ý „! «… ‡ žƒ Á žn ^0‚Ì„! «† ‡ žƒ Á žn ^0‚»„! «€00 ‡ žƒ A žm* ^0‚©„! «… Ÿƒ‡  ž‰ ‡ žƒ Á žiA ^0‚“„! «… ‡ žƒ Á žnS ž†'>P ^€00 )b‚œ„ š biba b  ž‰ bA šž ždv ^…‚€„€š bâœba †b ž‰ bA €@ž že‘ žŽ “mˆ ^‚Ú„…‚Øš  b‚ra I C †cUœb¿ ž‘  bA ‚Äâaž@ âk@`úœžxžžvžZÆ ^…‚¶„!‚µ„ ÿš b ‚Ja I C †;Uœ«b†6‡  žœ š…¿ ž– Á b A â/ ž@ ÿâkž@ @`ú†žxžJü ž†µªfœàæ ^0o )€‚ª„Ž‚©„€3„‚§„ „P ž €Á )€‚„ „?P Üž €  )€O „€2„Ž ¬„žS0ބž~Ÿ…Ü#ÆÿÿJFLPT O0SEGMENTBLANK oim MACRO (F360) @ig ƒC_6AŸ @ ž ‚†‡ˆ‚ˆ ‡ˆ „&ŸxÜ&û#ÀªŸ|«  „. „+Ÿl‚ŸÂŸ¢›â›   M º `ºŒ  VÁ 6Á €&A žb833@öO9ž„> ŸI‚žHì¢xâx  ú“  ºl `ºi VÁ 6Á €&A žb[ÿGÿ\ž‚_ Ÿ(‚žI¢WâW  ú“  ºK `ºH VA 6Á €&A žb|€H}ž‚€ Ÿ‚I¢6â6  M  º* `º' VA 6Á €&A žbH€žž  ¿ž‚žHÿ¢â º4 ú•  º  `º VA 6Á €&A žbœOÿÿ€ŸžƒÂ ¿|‚:I¢›â›  M  º `ºŒ VÁ 6Á €&A žbß33àž‚ã ¿[‚žI¢zâz º– ú•  ºn `ºk VÁ 6Á €&A žbÿÿÁ@ÿýžƒ ¿9‚Hÿ¢XâX  M  ºL `ºI VÁ 6Á €&A žb"A#ž% ¿‚Hÿ¢8â8 ºT ú”  º, `º) VA 6A €&A žbBPÿCž‚F Ü+€+  ¿ž ¢â  º˜ ú– º ` º 6A VA €&A žbhÿGÿþiž„n ¿{ ž¢›â› º™ M  º `ºŒ 6Á VÁ €&A žb‹33€HŒž„‘ ¿X I¢xâx º– M  ºl `ºi 6A VA €&A žb®H€¯ž± ¿8‚8H€¢XâX º– ú”  ºL `ºI 6Á VÁ €&A žbÎOÿÿÿÏž‚Ò ¿ÿHÿ¢7â7 º– M  º+ `º( 6A VA €&A žbïÀ€ðžò Ü+€+  ¿­ I(⪠ž‚\ÿž‚  M  º™ `º” ‚j   ‚g  6A VA €&A žS#UUÿ$žƒ( ¿| I(âyž‚€\0  ž  M ºh  `ºc ‚jº ‚g   6Á VÁ €&A žST€UžW ¿M I(âJž‚\_   M º9  `º4 ‚j  ‚g   6A VA €&A žSƒ„ž€… ¿‚¬Â¬(âž‚WüÔ\ ž‚ ºž úœ º   `º ‚jº‘ ‚gºŒ  6Á VÁ €&A žS±W|ÔWü²žƒ¶ ¿­‚{Â{(⪞‚VüÔ\Ÿ  ž ºm úk º™  `º” ‚jº’ ‚gº[  6A VA €&A žSâUUÿVüãž„è ¿{‚IÂI(âxž‚W|Ô\ð  º; ú9 ºg  `ºb ‚jº, ‚gº)  6Á VÁ €&A žSž€ ¿M‚¬Â¬(âJž‚ÆŠNÒ\ ž‚ ºž úœ º9  `º4 ‚jº ‚gº  6A VA €&A žSBÆŠNÓNÒCžƒG ¿‚{Â{(➂ƊNÔ\O  ž ºm úk º  `º ‚jº^ ‚gº‹  6Á VÁ €&A žSsNÔtžv Ü+€+  ¿­‚GÂG(⪠ž‚ÆŠNÓ\ƒ º9 ú7  º™ `º” ‚jº*  ‚gº' 6A VA €&A žS§UUÿšžƒ¬ ¿|‚¬Â¬(âyž‚<Ÿt)\Ž ž‚ ºž úœ ºh  `ºc ‚jº ‚gº  6Á VÁ €&A žSØ<Ÿt(t)ÙžƒÝ ¿K‚{Â{(âHž‚<Ÿt'\å  ž ºm úk º7  `º2 ‚jº^ ‚gº‹  6A VA €&A žS t' ž  ¿‚LÂL(âž‚<Ÿt(\  º> ú< º  `º ‚jº/ ‚gº,  6Á VÁ €&A žS89ž€: ¿­‚­Hÿ(⫞‚ÿÿ\B  ž ºŸ úž º›  `º• ‚j  ‚gºŽ  6A VA €&A žSfÿUUÿÿÿgž…m ¿z‚zHÿ(âxž‚ÿÿþ\u  ž ºl úk ºh  `ºb ‚jº] ‚gº‹  6Á VÁ €&A žS™ÿþšžœ ¿K‚KHÿ(âIž‚ÿÿÿ\€  º= ú< º9  `º3 ‚jº. ‚gº,  6A VA €&A žSÈÉž€Ê Ü+€+  ¿‚«Â«¢§â§A  ž‚QûL\׺¢ ú   º— `º” ‚mº• ‚j º’ 6A VA €&A žVø 33QD=NQ±œMQûLùžˆ ¿ª‚ªÂª¢tâtž‚Ä&±ƒ\  º¡ úŸ ºd `ºa  ‚mº” ‚jº‘ 6Á VÁ €&A žV+ ƂdÊÆ‡šVÄ&±ƒ,ž‡4 ¿x‚|Â|¢BâBž‚Æ‚dÊ\< ºo úm º2 `º/  ‚mº^ ‚jº[ 6A VA €&A žV]^ž€_ ¿M‚©Â©¢âž‚*71E\g º¡ úŸ º `º  ‚mº” ‚jº 6Á VÁ €&A žVˆ-䃩1E-åò *7‰ž† ¿‚«Ây¢§â§ž‚-䃩\˜ º¡ úŸ º— `º”  ‚mº^ ‚jº[ 6A VA €&A žV¹33*W-æ2 ºž…À ¿ª‚ªÂª¢wâwž‚éŒT~\È º¡ úŸ ºg `ºd  ‚mº” ‚jº‘ 6Á VÁ €&A žVé i©HhhgŸPéŒT~ꞇò ¿x‚|Â|¢EâEž‚i©Hh\ú ºo úm º5 `º2  ‚mº^ ‚jº[ 6A VA €&A žVž€ ¿M‚©Â©¢âž‚3F¡\% º  M² º  `º  ‚mº’ ‚jº 6Á VÁ €&A žVFŽÈI†Žž3F¡Gž…M Ü+€+  ¿‚wÂw¢§â§ ž‚ŽÈI†\Zºk M²  º— `º” ‚mºZ ‚j ºW 6A VA €&A žV{33|ž‚ ¿ª &©¢zâzž‚\‡ & úœ ºj `ºg  ‚m  ‚j  6Á VÁ €&A žVšíO©ž‚¬ ¿} I¢MâMž‚&íO\Ž  & úo º= `º:  ‚m & ‚jº_ 6A VA €&A žVÕÖž€× ¿R‚©Â©¢"â"ž‚xÿ¿ÿ\ß ºž úž º `º  ‚mº‘ ‚jº 6Á VÁ €&A žVÿüxÿÿÿ¿ÿž… ¿"‚yHÿ¢šâšž‚t\  M  º˜ `º•  ‚mº’ ‚j  VA 6A €&  žU133t2žƒ6 ¿«‚JÂJ¢yâyž‚xÿà\>  M ºi `ºf  ‚mº2 ‚jº VÁ 6A €&  žU`àaž‚d ¿} @I¢KâKž‚€\l  M º; `º8  ‚mº ‚j  VA 6A €&A žV€Žž Ü+€+  ¿L‚©Â©¢â ž‚iŒT~\º£ ú  º  `º ‚mº’ ‚j º 6A VA €&A žVŸi©HhŸPiŒT~hg¿ž†Æ ¿‚{Â{¢§â§ž‚i©Hh\Î º  úl º— `º”  ‚mº^ ‚jº[ 6Á VÁ €&A žVï33ègðžƒô ¿ª‚ªÂª¢yâyž‚4ÈI†\ü º¡ M² ºi `ºf  ‚mº“ ‚jº 6A VA €&A žV 3F¡Žž4ÈI† ž† % ¿y‚ªHÿ¢HâHž‚ô\ -  M º8 `º5  ‚mº‘ ‚j  VÁ 6A €&  žU Oÿô Pž‚ S ¿K @I¢âž‚\ [  M º  `º  ‚m  ‚j  VA 6A €&A žV | }ž€ ~ Ü+€+  ¿‚«Â«¢§â§ ž‚DŽà\ ‹º¢ ú   º— `º” ‚mº• ‚j º’ 6A VA €&A žV ¬ 33@]>Cû—ÐDŽà ­žˆ ¶ ¿ª‚ªÂª¢tâtž‚@*©»\ Ÿ º¡ úŸ ºd `ºa  ‚mº” ‚jº‘ 6Á VÁ €&A žV ß ÂÍUBˆâÁ@*©» àž‡ è ¿x‚©Â©¢BâBž‚ÁŽ=q\ ð º  úž º2 `º/  ‚mº“ ‚jº 6A VA €&A žV!à ÈDF¡çÁŽ=q!ž†! ¿G‚ªÂª¢âž‚Aa•\!! º¡ úŸ º `º“  ‚mº” ‚jº‘ 6Á VÁ €&A žV!B ; ž.;ö Aa•!Cž‡!K ¿ I¢§âtž‚@\!S  M º— `ºa  ‚mº ‚j  VA 6A €&A žV!t33@!už‚!x ¿ª‚ªHÿ¢zâGž‚@€\!€ ºŸ ú ºj `º4  ‚mº’ ‚j  6Á VÁ €&A žV!¡ÿÿÿ@€!¢ž„!§ ¿{‚©Â©¢Kâž‚Çü\!¯ º  úž º; `ºB   ‚mº“ ‚jº 6A VA €&A žV!ÐÐÿWÿÇü!Ñž†!Ø ¿J‚ªÂª¢âŠž‚È^­\!à º¡ úŸ º  `º“  ‚mº” ‚jº‘ 6Á VÁ €&A žV" H~ÜÐ]¯È^­"ž‡"  Ü+€+  ¿‚ªÂª¢§âo ž‚DŽà\"º¡ úŸ   º— `º\ ‚mº” ‚j º‘ 6A VA €&A žV"8 33@]><ŽwDŽà"9ž‡"A ¿ª‚ªÂª¢uâ=ž‚Á$ç\"I º¡ úŸ ºe `º*  ‚mº” ‚jº‘ 6Á VÁ €&A žV"j F^©/ŬÕEÁ$ç"kž‡"s ¿x‚ªÂª¢Câ ž‚@*©»\"{ º¡ MÊ º3 `º“  ‚mº“ ‚jº 6A VA €&A žV"œÂÍUBÃ@*©»"ž†"€ ¿G‚©Â©¢âuž‚ÁŽ=q\"¬ º  úž º `ºb  ‚mº“ ‚jº 6Á VÁ €&A žV"Íà ÈAÈZ—ÁŽ=q"Ξ†"Õ ¿‚ªÂª¢§âDž‚Aa•\"Ý º¡ úŸ º— `º1  ‚mº” ‚jº‘ 6A VA €&A žV"þ 33; ž.:qaAa•"ÿž‡# ¿ª‚«Â«¢uâž‚8Ւï\# º¢ ú  ºe `º”  ‚mº• ‚jº’ 6Á VÁ €&A žV#0 Cb‡‰KÞ8Ւï#1žˆ#: ¿w I¢Bâtž‚A\#B  M º2 `ºa  ‚mº ‚j  VA 6A €&A žV#cA#dž#f ¿K‚ªHÿ¢âHž‚@\#n  ú º `º5  ‚mº’ ‚j  VÁ 6A €&  žU#ÿÿÿ@#‘žƒ#• Ü+€+  Ü.€. Ÿ†€1‡„ i‡ƒžœª«ÿÿJALTBUF ALTRTN ALT JPARTX O0SEGMENTBLANK oKPATEND im MACRO (F360) @it#ÀgÜ,žÜ-Ÿ€ g )Ⳁ€„@-ÿž‚žƒ+kžw ÿ g )⣀€À@„@Ā-ÿž‚žƒ+k žu¢— –ˆ€ Kž‚ž‚+žyHºŽIÿD žR$  f ž{$Ÿ€ $ %ÿÿgÿÿ VA 6A €&A žV#cA#dž#f ¿K‚ªHÿ¢âHž‚@\#n  ú º `º5  ‚mº’ ‚j  VÁ 6A €&  žU#ÿÿÿ@#‘žƒ#• Ü+€+  Ü.€. Ÿ†€1‡„ i‡ƒžœª«ÿÿJALTBUF ALTRTN ALT JPARTX O0SEGMENTBLANK oKPATEND im MACRO (F360) @it#ÀgÜ,žÜ-Ÿ€ g )Ⳁ€„@-ÿž‚žƒ+kžw ÿ g )⣀€À@„@Ā-ÿž‚žƒ+k žu¢— –ˆ€ Kž‚ž‚+žyHºŽIÿD žROVicEdDano7Ø7Ô 0 *ýie‡d ‚…"†Ÿ€ UªªUÿÿððÿÿUUffªªÿþ€ª  0Ÿ€¿€ @¿€ O„$ 0„'Ä&„%Hö€€/†ŽÞž~Tž€%À&€'?0€$…Ÿc` ހ¿€ ŒžˆÂ‹ž†ÂŠž„ ˆžÂ‡ŸŠ žùêëìíîÿ ÿGŸz€¿€Â„Ÿ€g¿€d¿€¬¿€¿€B    ¿€kŸ€n   œ@   œ@ šSŸ€iï†ÀŠÄÆÂæÃp†ŸP†º0†¹ Á _†¹†žÞ­  ï‚gÁŸ±Þ€ ðpc p‚š‚§ïôS‚—Ž—ǀ4ƒ †‚‚“Ÿ€Þ¯‚š‡“ @0‚ƒ†ŸŒÿ€Œ/Àÿ! ž‚žˆž †v†vIÆdÆdž‰IÆ`Æ`Æ`Ä,Ä-†k†h‚‘  „* ž žsø  3€00ž‚  „.^€3„ „+   ž ž‚ IÿMÿ €ž Àø žž‚ žžž „ž žMR-Ü+ž€I€ @ ø I`@`ø Ip@pø IP@Pø I€00@0ø0 IÀ @ ž žW~$Ü+€Až Á Á Až IQA QÁž SÁž RÁ RAž SA )2Áž 2A ž^¡Ü+ž€ÀÄŽºÒ À€„ØúÌ €ÀÄ” ð žjº Ü+€00 Ž0„@0ø 6Â6B  @0ø0 6B6  Iÿ@0ø0 žbÙÜ+I€00Iô0Ä%0'ž 0ž0 žoëÜ+ Ž0IÿÄ0_€ ÿ €00žsùÜ+žƒðÿð þ„Üž € ÿ €„Ü €„Üž 6A žk Ü+€00€ž ÀN1ú–  .q º‘ 6Až ànÁ`º‰ 6A žb2C Ü+ž„ª f@€00àc`ž*  I M0 žqGÜ+€Aø ÀD! ž  $a`ž àdž žceŸ…e€+  ž‚ €00 „ž €00 „ …ž žo}Ü+€00 †•º” €00‚І ÿ‡‹º‹ žo$Ü+ž‡—˜€00¢v ð„ºy €00ân ¥„Aºq €00â®) Z„Áºh žf²&Ü+žƒ€00 „¢ž ÿ…ºw €00‚—†p■…Aºm †h€00¢Šâ‹ U…Áºb ž`×+Ü+žˆ–¶·µÀ€00‚¢†yÇxúx  €00‚™†p☥A ºm à€00 „¢Žå`ºb ž`Ü+€+  ž„áßà€00 „€À%„ '‚ž %Ä!'ø žlÜ+ „ „€00€%…'‚†ž žp0Ü+ž‚U€00 †¬€À%†Ð'‚tº¥ %ÆÃ'úŸ žlHÜ+ †—‚†–Þ•€00 ªÀ%Ǐ'º‹ žoZÜ+ž‰c¢.€00 †y‚‹%„‚'‚ˆºs žqtÜ+ž„dUffâ{€00 †e‚w%„B'‚tº_ žrˆÜ+žâP)€00 †S‚e%„Â'‚bºM žqšÜ+ž„ „¢œ.€00 †w‚ž%…'ºq žo±Ü+‚¯†i⭀00 †e‚Š%…A'º_ žoÃÜ+‚†Wâ›)€00 †Rf’%…Á'‚%ºK )%ÅÁ'úD žfÞ%Ü+žˆŸfÿ žâÁ €00%€B€C'€ºt ¢µ.à€00%ä‚äƒ'€ºg žrÜ+ž€ 0„ ¶¢„)€…À00@ž žqÜ+ 0 „ Ž„iÀÅ@€00ø žp$ Ü+€+  æ€*ž‚-€„„).%€€Àà‚' U Mª mU žl@Ü+€„€„i U%ž@ ž %žAž‚ %žB 'À „øž‚ žc^-Ü+€00€†Ž‚šŠ²º§ ‚¥†­Â€Ê«6A ú¡ €00€†¢¢›ª 6A º— €00iHƕ%êŠ'`ºŒ žUŠÜ+žŒÿuTZª/ÿŠ© Jª€00‚Ü„ ŒºÙ IP H„%Ì!'M žm«Ü+€00Ÿ‚ ž‡ ‚ƺ} ÞzŸyžs¹Ü+ ÀĐIø ž À  „ı€ž ž žfÔÜ+ž‚€ÀÆ£’¢Àú  ž ‚‘†—  †•³“€º’  žfò)Ü+ž‹ÿþýÿ °Àà€¢rÆzðºx `ž „¢f †mñúk `  žeÜ+€À âWÆ]°Aº[ ž ‚K†SâK †Q±AúO ž že6Ü+€Àâ<)ŠBÁú@  )Š8â0¢.†6€ÑÁº3 M žfQ*Ü+žÀàÄ%ð '‚Äž ` ð   „„Ü€„%ѱ'‚±ž MU @ Mª žZzÜ+ž‚‚¢À Æz%²p'ºv ª ‚•†mÆm ‚%³h'ºg ª žaÜ+žˆfððÿðª~š;€À¢º.†xÆxâ¶%ЁB' ð Mÿ ðºj ºh „¢¢.€†`I%ѐ' UºZ MU Ⓜ“†Q€†P€%‘A'HðúJ ð žEâÜ+¥§äž‚ç"âÑ)€†<€%Â' ÿ ðº3 À‚n†,âj)€†)f%ÑÁ'º$ Mf ž^*Ü+ 0„ ¶©„)€„€‘ž Àø 0 „ Ž„i€„ÀÑ@ø €ž €00žX1 Ü+€+ , €Š7ž‚:4À AºÈ ¢w@!6A ø ࢟ b ºŒ à€P`R6A `ž €pPPr6A Pº© ÿp C0p3€00p Œ žLmÜ+€À@Mð À  E º  à`'`ºŠ žkƒ;Ü+ž‡ª«ÿveUTÌÌwwà P`V ž €pPvž‚ pp €À@  @ Jž  à k ž €p {ž‚ P [ €IP@[ž‚ žOœÜ+€Àp@pž @pø €` @`ø žnÐ(Ü+€+ 0 ž€00)ip P`)i€#  c ÂÖK 6Až r`Rmžq€ù  6A ž`÷!Ü+ÂÑNúÎ 6Až NSM 6A  . ž 6Až .K º¹ 6A ž@"Ü+â°n `º° 6Až àn¬`  6A ‚ º6Až Bº› 6Až ž`8PÜ+ž•@ €@ ÌfRªæ€ŀ+ „+Ÿ€ŠIUN ú¯ 6Á NÚMª 6Á )s. æ 6Až .€ ºY 6Až àn`ž 6Až nØ`  6Až žP‡6Ü+ž‚€*€ÀOž ú 6Až Oº‰ ú‡ 6A ž„ÌÌU™˜€)/ ž @ ø 6Á /ù  @ ø 6A žOŒ2Ü+ ào  @`ø 6Až €oLž @`ú… 6A ž‚úª€ÀOž úB D 6Á O#ºŠ úˆ 6A žPí:Ü+žƒUVfb€ / º” @ ø 6Až /«ºŠ @ ú‡ 6A ž„33UFfj€àoº­ @`ú© 6Až oàž @`M 6Á žL&5Ü+€ÀOº“ ú 6Až Oh ð ø 6Až žƒxxþ€ / ž @ úu 6Až /êž @ ø 6Až žMZ-Ü+‚ŒÂ‹OºŠ ú‡ 6Až žƒÌ̙™€ /rž @ ø 6Až €àoòž @`ø 6Až žU†.Ü+ž Ž00Iô00K Ž000ž0 Ž00Iô00K Ž006A 6Á €00žV³ Ü+I)€C C  6A @"ú™žvI@ @M ) > N- iÿ`6A žbÒÜ+€+ ; ž‚[ºŒ ºKÿø Kø 6A žpêÜ+ *š º« àjÿ`ž 6A àlªž l¥ žk Ü+ 8f-" ÀYfú’ €3ºŽ € ž‚ žk Ü+ž†ÿ[ªDUwfUÿA Až  HÿTÁž TÁ M žm 1Ü+)5Až 5A ž iuÁ uÁž `ž žk GÜ+€00VÂVB  0ž0 VBV  ÂB  B  žd dÜ+€+ A ž€„ ž „ Bž žo |Ü+)€„ "ž „ bž žn Ü+i€„ ž „€„ Rž žl €Ü+)i€„ 2ž ) „ rž žl ¹Ü+žƒ€†{  Œž ‚Άs€†r B Œž žm ÑÜ+)€†g " Œž ‚¹†^€†^ b Œž žl æÜ+i€†R  Œž i‚£†H R Œž žm úÜ+)i€†> 2 Œž i‚ކ3 r Œž žl 0Ü+€+ I ž‚ œCXQà „+Ÿç€' ' ž 'ž‚ )i „€„Ghø ÀGYø ž_ >&Ü+ÀÄâÃg @`úÀ  '  ºº 6A )€ÂŽÄ+º± iž 6A ž\ cÜ+)i€„ÀG<ø €ž )‚†‹€†‹€n º žf ~%Ü+žŒ ‚ îjä»»""ˆˆDDi‚Ú†r€†qÀg^ úÔ )i€†g€? ºË žj ¢Ü+' š žˆ ‚º}ž‚ÞzŸy  ³ žp ³0Ü+ÂNÆJÿ†IGM  GM ž ‚A  €†<Þ;ž 6A „ „gM gMž €ž €„g ž 6A žR â&Ü+€+ O ž‰ ƒîî33 ŠÁžé)œ‚Ý„ƒ‚ÜP‚Ûp †”†’ ÿ ‚Ô{ ‹úÐ ž‹œ@ žl‚„ƒ‚Ÿp   ž€€€º¹ €ºu ‚³{ ‚eº¯ žE ,#Ü+€1„‚ n„ƒi) „Gt@  €„€ ž )'ž‚ àg žc NMÜ+žŠ     þ      {  VAž € {  VA € |ž 6A VÁ `žƒIg {M VA Ig {ø VAž Àg |ú‰ 6A VA ž@ š Ü+ž‚þ „ €'ž - IÄ€àgGÀø Àø že ¹2Ü+ž „IG  Mÿ ª 'ž @ úŸ ‚Œ`„º‚ºGºž ø ‚³gº± @`ú® žR êÜ+)š‚©„‚‚š„ƒ‚œ„€IG ž£ž M €€º˜ Àúp žd 6Ü+ÁžàžŽ@ú ±ãN/Iè*Ð7Õ€Ÿ€ ù ÷‚‰„ƒ€„€ig žƒ %iš‚Ö„C€†z€)' ( ‚΄C †q€@G ( ž_ <0Ü+‚Ä„C „@„A †c ÀG ( žŽ  ø €@º± ÀAúp )š‚ª„ƒ€„àg ‚£„ƒ‚¢„‚¡ig žR kÜ+‚›„ƒ „ÀG ‚”„ƒ‚„‚‘IG žn ~!Ü+ž 3 < K I b kÀà u ~ ‚š„ƒ‚§†{‚ŠÂŠG º€ ú¢ ž žo žFÜ+ÁžÌ)š‚—„ƒ†d €iÿg  ÿ @`ø ž ž‰ íõÝ_?ö í µiš‚š„C ÿ„€¢Ÿ'º¡ @ úž ž iš‚™„C‚‘„‚ÀGº’ ú ž ž@ ã;Ü+žÃ±ãè* ) Ñÿÿ âá,N)„‚±„ƒ)š‚¯„ƒ„ €iÿg ž )„‚€„ƒ)š‚¢„ƒ ÿ„€¢]' ž )„‚—„ƒ)š‚•„ƒ‚R„‚QÀG ž žR Ü+)„ g„ƒž† ÿ þ   ‚·„C ÿ„ IG  M ž žo 9>Ü+ÁžÏ‚¢„C€„  'ž - ž )š‚’„ƒ€„€ÀGž M ž‡ ž… 8 N _‚’„ƒ€„€hgº‹ m ž žH vÜ+žƒ uÿ‚Ê„ƒ€„‚ÇÀGž ø ž žo Œ-Ü+‚º„ƒ †Ž IGQA º­ ž ‚¬„ƒ @GA QA ž ‚¡„ƒû†™ IGA ú’ ž žU žK)š i„ƒ€+CE XQ „+ ] ž‡ ‹@ œ š ·)œ‚¿„ƒ †º†ž‚»P‚ºpþƒ ž ‚µ{ ‚¬º± ‚¯„ƒþ  €€ºª €ºw ‚€{ ‚–º  ‚ž†‘‚šp#  ‚’{ žJÜ+ž”Fœ@ Ú  Ø è ç æ þâÝ „@„A„B„C„D„E‚Ùp‚ÔP€00€ÀâÒäƒC þ#‚Ï; 0âÀ@ºÂ €Až0 €Bž €Cž €D œ €Eº² pº© ž žFRÜ+†„@„A„B„C„D„E‚šp€00G‡€Àâ•äƒC ÿq ž” 4qjk~wQ A; 0ât€@ºq €0@žA €Bž €Cž €D œ €Eº^ pºY €€ºµ €º> ž)ª-Ü+€1„‚ n„ƒ‚HpI)iP` 0E…c ž €0; 0ø -œ `º. Pº( pº# žYÖ$Ü+ž‚h)€ „€„âª¥ €€º§ €ºx )  „€„â[f €€ºš €ºx žaùÜ+€+ b )š i„ƒÜ. ž.žŸ‚Ÿ€ ,âáñð JƒÊC6AžÂi„ ‚Ä„CÂè?= ž‚ÂâÆâ †á€00Þޞž­6l)‚Ù# –Ø# ºžžž†+@ úΞtžm‚ˆ…–Ÿ  „@  žb€@¿֖ú–ž„º” žƒº‘ €Aºm žP g„Cž6i,žÆûÿUŸSR v |\\\&F|\ 'ŸžŸŸÿߟŸ ŸŸÿÿÿÿÿÿÿðŸÿŸŸHŸLÿO¿OŸŸ Ÿƒ9C/6AŸÙ  Á ‡Ù€00‚Ñ„ÿ‡Ô‚Ô‡Ô‚Ì ÿ¶Ò  „4ÂÍĀ€€EÈÂÉĀ€€EêÅ1Pžs§ž.˜ @# ž† ž„ ž‚¿¯p†úžŠÃŽÖQC ¿Š@ÿ†ð †ï „4ç֧QRNxLž‡Lž…Lžƒ¿“žˆ‚ÞxKžž‚¿Š@‚Ö ž‘b 7Ô`Ža]_@^ÿªªUUüÿ‚ÀÁž•† „4¢¶€€@ „€Ø€QB¿b+ނžuž‚$ „4€žž¢¢£€„€eƒ—ÀKžžƒŸé ž€€ÂAKžžƒŸàÄ€00 d„Cž]ZžŠ€Mž÷ڀ‚*p‚vPpVžží p „€ Vž‚ž†+-€žw+0žu pI€€ žž‚Ÿ²€ Vž‚ž†+-€žq+0žoŸµ p€€ Vž‚ž†+-€žw+0žu p€€@ +žž‚Ÿ’@ Vž‚ž†+-€žp+0žnŸ•ž>®(‚-†ö‚,†õž­ † †Ÿ–¢‹z‚š Ÿ…‚˜‚•ÞrŸq Á šÐ žƒ‚ŠŸs†‡ ŸoŸm1žÏžÏ€i@` pĀ Vž‚ž‡N+-€žv+0žt p@`€€Kžž‚Ÿ< Vž‚ž‡N+-€žp+0žnŸ>`ÿ6BnžYžW  p ` U%„@ ª„A&€€º—žž‚Ÿ Vž‚ž†+-€žj+0žhŸžd%žˆqžØžî™UªVÁžœƒî6Ážä‚rÂéöéKFžÝJÿP@`Pk)€€„@ [ž‚žƒ+kžw@PK_ ÂB‡Ë ¬B‡É‚ÎB‡Ç‚ÌB‡Å pƒÈ ü‡‚ÃR †‡P ºŸž‚eŸ€Ÿ‚Ÿ€™ P`Pn` €@„€-žžƒ*ÿjÿžw…Ÿop ž“žg ŸŠ ŸfŸ€ë Ÿ„ Ÿ`Ÿ€ë ÿ¶‘ŸzŸ™Bž±‡‹ü7Ôÿ‡am€ªƒŽC?6AŸ¯ )‘‚­„‚€00„€†£…UIޟTJ€€º›ž{ žž…OžrW ž‹W žˆ €€  ‚‡A W…žOÚž†IbûÐG‡÷†î †u†sþ„€‚ë„‚U…Þmž~Þjž|  ‡€€  ‚ٺܞƒ †]†[ÞҞf‚XÂXO)†ËÆËO9†ËÆËGSR†¿Æ¿‚¿Â¿gV6A ÿŽº†¶Æ¶†µ †<þ„€‚µ„‚U…Þ-ž~Þ*ž|  ‡€€  ‚™ºžžžŒðq ‚ºŒž‚ ºŠ ވžRžMŸMž“ª3ôÿ÷4ÿƒšCO6Až„ P ¯ž‚Ÿ€‚ž ^€00ž€ ^)i¯ # Pc ž ,žƒ+jÿžt AªLUž žj‰!žƒûÀ€Bššž  "šAšø àbš!š@ ø €šaš@`ø žd©I^€¯Ašø ^© ž žp¹ ^¬P Q ­Pž Qž žqÈA€2„ ‚„!i@‚À„A‡ †Ž^«Rž~…  ‡ ž  0–©A ‚wºŠ ž‚  ^0…‚—„ €„!‚™„A « ž• €!A 0; ž@>žˆÞ€ÿ€áîÝÿ ^€00‚t„ ‚¶„!‚µ„A)œ€2„‚‚±„ƒ‚«P‚®p †¥„€„« ž•/€00ž0 pº— ‚’º˜ ž…  ž‚  žNEžOGN0@CO. ^…‚È„!‚Ç„A‚Æ„ƒ‚nP‚mp †g„€„« ž° €2„ ‚µ„!À00H ¿ ž„  @6Á @Œø0 pº¢ ‚EºŸ €€º– €»˜ ‚YºŽ ž…‡ ž‚  ž92€1„‚ n„ƒžˆ˜›mxMk ^…‚¡„ ‚ „!eÿ‡œ‚œ„Ag «‡ žŽ ‚“º‘žž‚ ž…eƒˆB ž d„ƒž\Î@ž‡ß€€Ÿ ZEš ^€00‚y„ ‚ø„!‚õ„"‚®„A) # †è5œ‚šš «‡ ž €!ÿ6A ýA €"º˜ )•# ‚ÏAF  +# ‚ÊK NÒ+-žqžI ?žˆOððªTxU ^…‚;„ ‚º„!‚p ÿ„"‚¶„A) # †§5œ€š «‡ žš €!ÿ6A ýA €"NJÿK )À# ‚‹K +-žwžKKEžŽ%šešNÿúÿôU1 ^…‚n„ ‚t„")‚­# †i+-žy‚Š„A)ÿ„! «‡ ž™ š# ÂUK ^…+-žj€!ÿ6A ýA €"º žKJž„v ^…‚5„ ‚û ÿ„")€# †-+-žy‚ï„A)ÿ„! «‡ ž¥ šVDqpžŒw# ÂK +-žž„ ^…ža€!ÿ6A ýA €"ÂNJÿK ž<Ø ^…‚·„ ÿ„!€„"‚µ„A «‡ ž‹ €!ÿ6Á ýA €"A žcõ ^…‚›„ ÿ„!€„"‚™„A «‡ ž‹ €!ÿ6Á ýA €"A žc#ž‡EšešO³ê ^€00€2„ ‚°„! «Ÿƒ‡ ž‰ ‡ žƒ Á žf4] ^€00‚–„! «' G‡ ž‰ ‡ žƒ Á žgP'žƒ1M ^€00‚Ñ„!)œ‚Ï„ƒ‚ËP‚Ìp «þƒ‡ žŒ ‡ ž‡ Á žƒ‡ ž^v&w ^€00‚¯„!‚®„ƒ‚§P‚šp «‡ žŒ ‡ ž‡ Á žƒ‡ ž^›ž” &os¥”˜ ^€00‚ž„!‚·„ƒ‚pP‚Žp «C ‡ ž‡ Á žƒ‡ žaÏ n„ƒ ^€00‚š„!‚QP‚—p€0†G †F«c ‡ žƒ Á že잆ÈÌªé€ ^0‚Ý„! «… ‡ žƒ Á žn ^0‚Ì„! «† ‡ žƒ Á žn ^0‚»„! «€00 ‡ žƒ A žm* ^0‚©„! «… Ÿƒ‡ ž‰ ‡ žƒ Á žiA ^0‚“„! «… ‡ žƒ Á žnS$ž†'>P ^€00)b‚œ„ š biba b ž‰ bA šž ždv ^…‚€„€š bâœba †b ž‰ bA €@ž že‘6žŽ“mˆ ^‚Ú„…‚Øš b‚ra I C †cUœb¿ ž‘ bA ‚Äâaž@ âk@`úœžxžžvžZÆ7 ^…‚¶„!‚µ„ ÿš b‚Ja I C †;Uœ«b†6‡ žœ š…¿ ž– Á bA â/ ž@ ÿâkž@ @`ú†žxžJü5ž†µªfœàæ ^0o)€‚ª„Ž‚©„€3„‚§„ „Pž €Á )€‚„ „?PÜž €  )€O „€2„Ž ¬„žS0ބž~Ÿ…Ü#Æ9ƒC_6AŸ ž ‚†‡ˆ‚ˆ‡ˆ „&ŸxÜ&û#ÀªŸ|« „. „+Ÿl‚ŸÂŸ¢›â›  M º `ºŒ VÁ 6Á €&A žb833@öO9ž„>ŸI‚žHì¢xâx  ú“ ºl `ºi VÁ 6Á €&A žb[ÿGÿ\ž‚_Ÿ(‚žI¢WâW  ú“ ºK `ºH VA 6Á €&A žb|€H}ž‚€Ÿ‚I¢6â6  M º* `º' VA 6Á €&A žbH€žž ¿ž‚žHÿ¢â º4 ú• º  `º VA 6Á €&A žbœOÿÿ€ŸžƒÂ¿|‚:I¢›â›  M º `ºŒ VÁ 6Á €&A žbß33àž‚ã¿[‚žI¢zâz º– ú• ºn `ºk VÁ 6Á €&A žbÿÿÁ@ÿýžƒ¿9‚Hÿ¢XâX  M ºL `ºI VÁ 6Á €&A žb"A#ž%¿‚Hÿ¢8â8 ºT ú” º, `º) VA 6A €&A žbBPÿCž‚F#Ü+€+  ¿ž ¢â º˜ ú– º `º 6A VA €&A žbhÿGÿþiž„n¿{ ž¢›â› º™ M º `ºŒ 6Á VÁ €&A žb‹33€HŒž„‘¿X I¢xâx º– M ºl `ºi 6A VA €&A žb®H€¯ž±¿8‚8H€¢XâX º– ú” ºL `ºI 6Á VÁ €&A žbÎOÿÿÿÏž‚Ò¿ÿHÿ¢7â7 º– M º+ `º( 6A VA €&A žbïÀ€ðžò2Ü+€+  ¿­ I(⪞‚\ÿž‚  M º™ `º” ‚j  ‚g  6A VA €&A žS#UUÿ$žƒ(-¿| I(âyž‚€\0 ž  M ºh `ºc ‚jº ‚g G  6Á VÁ €&A žST€UžW-¿M I(âJž‚\_  M º9 `º4 ‚j  ‚g  6A VA €&A žSƒ„ž€…-¿‚¬Â¬(âž‚WüÔ\ž‚ ºž úœ º  `º ‚jº‘ ‚gºŒ 6Á VÁ €&A žS±W|ÔWü²žƒ¶-¿­‚{Â{(⪞‚VüÔ\Ÿ ž ºm úk º™ `º” ‚jº’ ‚gº[ 6A VA €&A žSâUUÿVüãž„è-¿{‚IÂI(âxž‚W|Ô\ð º; ú9 ºg `ºb ‚jº, ‚gº) 6Á VÁ €&A žSž€-¿M‚¬Â¬(âJž‚ÆŠNÒ\ž‚ ºž úœ º9 `º4 ‚jº ‚gº 6A VA €&A žSBÆŠNÓNÒCžƒG-¿‚{Â{(➂ƊNÔ\O ž ºm úk º `º ‚jº^ ‚gº‹ 6Á VÁ €&A žSsNÔtžv2Ü+€+  ¿­‚GÂG(⪞‚ÆŠNÓ\ƒ º9 ú7 º™ `º” ‚jº* ‚gº' 6A VA €&A žS§UUÿšžƒ¬-¿|‚¬Â¬(âyž‚<Ÿt)\Žž‚ ºž úœ ºh `ºc ‚jº ‚gº 6Á VÁ €&A žSØ<Ÿt(t)ÙžƒÝ-¿K‚{Â{(âHž‚<Ÿt'\å ž ºm úk º7 `º2 ‚jº^ ‚gº‹ 6A VA €&A žS t' ž -¿‚LÂL(âž‚<Ÿt(\ º> ú< º `º ‚jº/ ‚gº, 6Á VÁ €&A žS89ž€:-¿­‚­Hÿ(⫞‚ÿÿ\B ž ºŸ úž º› `º• ‚j  ‚gºŽ 6A VA €&A žSfÿUUÿÿÿgž…m-¿z‚zHÿ(âxž‚ÿÿþ\u ž ºl úk ºh `ºb ‚jº] ‚gº‹ 6Á VÁ €&A žS™ÿþšžœ-¿K‚KHÿ(âIž‚ÿÿÿ\€ º= ú< º9 `º3 ‚jº. ‚gº, 6A VA €&A žSÈÉž€Ê/Ü+€+  ¿‚«Â«¢§â§ž‚QûL\׺¢ ú  º— `º” ‚mº• ‚jº’ 6A VA €&A žVø 33QD=NQ±œMQûLùžˆ*¿ª‚ªÂª¢tâtž‚Ä&±ƒ\ º¡ úŸ ºd `ºa ‚mº” ‚jº‘ 6Á VÁ €&A žV+ ƂdÊÆ‡šVÄ&±ƒ,ž‡4*¿x‚|Â|¢BâBž‚Æ‚dÊ\<ºo úm º2 `º/ ‚mº^ ‚jº[ 6A VA €&A žV]^ž€_*¿M‚©Â©¢âž‚*71E\gº¡ úŸ º `º ‚mº” ‚jº 6Á VÁ €&A žVˆ-䃩1E-åò *7‰ž†*¿‚«Ây¢§â§ž‚-䃩\˜º¡ úŸ º— `º” ‚mº^ ‚jº[ 6A VA €&A žV¹33*W-æ2 ºž…À*¿ª‚ªÂª¢wâwž‚éŒT~\Ⱥ¡ úŸ ºg `ºd ‚mº” ‚jº‘ 6Á VÁ €&A žVé i©HhhgŸPéŒT~ꞇò*¿x‚|Â|¢EâEž‚i©Hh\úºo úm º5 `º2 ‚mº^ ‚jº[ 6A VA €&A žVž€*¿M‚©Â©¢âž‚3F¡\%º  M² º  `º ‚mº’ ‚jº 6Á VÁ €&A žVFŽÈI†Žž3F¡Gž…M/Ü+€+  ¿‚wÂw¢§â§ž‚ŽÈI†\Zºk M² º— `º” ‚mºZ ‚jºW 6A VA €&A žV{33|ž‚*¿ª &©¢zâzž‚\‡ & úœ ºj `ºg ‚m  ‚j  6Á VÁ €&A žVšíO©ž‚¬*¿} I¢MâMž‚&íO\Ž & úo º= `º: ‚m & ‚jº_ 6A VA €&A žVÕÖž€×*¿R‚©Â©¢"â"ž‚xÿ¿ÿ\ߺž úž º `º ‚mº‘ ‚jº 6Á VÁ €&A žVÿüxÿÿÿ¿ÿž…+¿"‚yHÿ¢šâšž‚t\  M º˜ `º• ‚mº’ ‚j  VA 6A €&  žU133t2žƒ6+¿«‚JÂJ¢yâyž‚xÿà\>  M ºi `ºf ‚mº2 ‚jº VÁ 6A €&  žU`àaž‚d*¿} @I¢KâKž‚€\l  M º; `º8 ‚mº ‚j  VA 6A €&A žV€ŽH ž/Ü+€+  ¿L‚©Â©¢âž‚iŒT~\º£ ú º  `º ‚mº’ ‚jº 6A VA €&A žVŸi©HhŸPiŒT~hg¿ž†Æ*¿‚{Â{¢§â§ž‚i©Hh\κ  úl º— `º” ‚mº^ ‚jº[ 6Á VÁ €&A žVï33ègðžƒô*¿ª‚ªª¢yâyž‚4ÈI†\üº¡ M² ºi `ºf ‚mº“ ‚jº 6A VA €&A žV 3F¡Žž4ÈI† ž† %+¿y‚ªHÿ¢HâHž‚ô\ -  M º8 `º5 ‚mº‘ ‚j  VÁ 6A €&  žU Oÿô Pž‚ S*¿K @I¢âž‚\ [  M º  `º ‚m  ‚j  VA 6A €&A žV | }ž€ ~/Ü+€+  ¿‚«Â«¢§â§ž‚DŽà\ ‹º¢ ú   º— `º” ‚mº• ‚jº’ 6A VA €&A žV ¬ 33@]>Cû—ÐDŽà ­žˆ ¶*¿ª‚ªÂª¢tâtž‚@*©»\ Ÿº¡ úŸ ºd `ºa ‚mº” ‚jº‘ 6Á VÁ €&A žV ß ÂÍUBˆâÁ@*©» àž‡ è*¿x‚©Â©¢BâBž‚ÁŽ=q\ 𺠠úž º2 `º/ ‚mº“ ‚jº 6A VA €&A žV!à ÈDF¡çÁŽ=q!ž†!*¿G‚ªÂª¢âž‚Aa•\!!º¡ úŸ º `º“ ‚mº” ‚jº‘ 6Á VÁ €&A žV!B ; ž.;ö Aa•!Cž‡!K*¿ I¢§âtž‚@\!S  M º— `ºa ‚mº ‚j  VA 6A €&A žV!t33@!už‚!x*¿ª‚ªHÿ¢zâGž‚@€\!€ºŸ ú ºj `º4 ‚mº’ ‚j  6Á VÁ €&A žV!¡ÿÿÿ@€!¢ž„!§*¿{‚©Â©¢Kâž‚Çü\!¯º  úž º; `º ‚mº“ ‚jº 6A VA €&A žV!ÐÐÿWÿÇü!Ñž†!Ø*¿J‚ªÂª¢âŠž‚È^­\!ມ úŸ º  `º“ ‚mº” ‚jº‘ 6Á VÁ €&A žV" H~ÜÐ]¯È^­"ž‡" /Ü+€+  ¿‚ªÂª¢§âož‚DŽà\"º¡ úŸ º— `º\ ‚mº” ‚jº‘ 6A VA €&A žV"8 33@]><ŽwDŽà"9ž‡"A*¿ª‚ªÂª¢uâ=ž‚Á$ç\"Iº¡ úŸ ºe `º* ‚mº” ‚jº‘ 6Á VÁ €&A žV"j F^©/ŬÕEÁ$ç"kž‡"s*¿x‚ªÂª¢Câ ž‚@*©»\"{º¡ MÊ º3 `º“ ‚mº“ ‚jº 6A VA €&A žV"œÂÍUBÃ@*©»"ž†"€*¿G‚©Â©¢âuž‚ÁŽ=q\"¬º  úž º `ºb ‚mº“ ‚jº 6Á VÁ €&A žV"Íà ÈAÈZ—ÁŽ=q"Ξ†"Õ*¿‚ªÂª¢§âDž‚Aa•\"ݺ¡ úŸ º— `º1 ‚mº” ‚jº‘ 6A VA €&A žV"þ 33; ž.:qaAa•"ÿž‡#*¿ª‚«Â«¢uâž‚8Ւï\#º¢ ú  ºe `º” ‚mº• ‚jº’ 6Á VÁ €&A žV#0 Cb‡‰KÞ8Ւï#1žˆ#:*¿w I¢Bâtž‚A\#B  M º2 `ºa ‚mº ‚j  VA 6A €&A žV#cA#dž#f+¿K‚ªHÿ¢âHž‚@\#n  ú º `º5 ‚mº’ ‚j  VÁ 6A €&  žU#ÿÿÿ@#‘žƒ#•Ü+€+  Ü.€. Ÿ†€1‡„ i‡ƒžœª«7Ô#ÀÜ,žÜ-Ÿ€ .)Ⳁ€„@-ÿž‚žƒ+kžw ÿ )⣀€À@„@Ā-ÿž‚žƒ+kžu¢— –ˆ€ Kž‚ž‚+žyHºŽIÿD žR$  f ž{$Ÿ€ $ %ÿÿ0ŸŸñ Þ~ŸÖž±8ÄOé]€‚±&µEa«Ó3žx_|lå*æš×¿Å|þÿ ä}躇~·ˆÑÐgÒ¡í# A `ÅïQÁŸÍ T…òŸÝ (œÓ :œÓ‚<Š’œÔ -œÓ :œÓ‚" ÿЉœÔ )œÓ œÓ Š‚…ìÆÿþÍ ¿†ßæáŠßÆÝp†ÞP†Ý0†Ü @0†ÙB ž †Õ¢` Ÿh † ‚}’ ŸcÅíž= ¢Ââ‚łĂŸp‚œP‚Œ0/‚³Ÿo ÁðXð)C $ `Áð)C ")PC ")ºC " `Ÿm œÑ DœÓ EœÓ BœÓ UœÓ GœÓ 4œÓ œÓ EœÓ 8œÓ 0œÓ 0œÓ œÓŸe Ÿ Ÿ} œÑ œÓ‚zœÓŸ¶Ÿµ PŸ«ìœÚ AŸ§‚CœÛ QŸ£‚@œÛ XŸŸ‚=œÛ YŸ›‚:œÔœÑŸŸŸžŸ KŸ“‚3œÛ LŸ‚0œÛ SŸ‹‚-œÛ DŸ‡‚*œÛ CŸƒ‚'œÔŸK œÓ =œÓI Ÿ{ ŸŸ} œÓŸ| Áð@)C ")PC ")ŽC " `Ÿr‚Æ"„ †ÁœÑ *œÙœÒ†Œ Yž  Qžž žç Až¹ Gžž„œÒœØ†­ž Ržž†œÒ ž¡œ×Æ€ž† Dà Và WáœÖƚ›LBžæLCÐLFÎLLÍLSÏLJžÄLIÊLGÉLRÈLZßÅ …ëœÇž< Ÿ!Ÿ}œÒ†{œÒ†uœÒ žÅ‚t Pž— LžÅ‚j TžŽ Pžƒ BžÅïÁŸô…ñ P…ò œÓ‚Y…òž …ó‚T Hž„ TžÅ…óž œÒ Äž|ÁãQE‚F…ìç ,ž‘ç ,ž‡œÑ `ì†‚œÕŸ€ _œÙžšž0 Ÿ6Ÿ}ªžŠž `î JžŒ Bž†Áì YK QJÿžˆ‚šfÁ䞁œÖ‚€ žcÞ¡ @‚²€ÞŸ‡žÞ§œ `ç@E ;ž‚ž†žßœÖRA@EN@Aޏǎ QÁފ‡‰ç ,ž^ž:žFÅBœž& oŸ*‚| ÿ…ì†x‚`Ä D `…ëžž†oì¢Y*üž‚ž›€ƒQ€„†d À ‚Ѐª_Ѐ ā„‚ÂZ@AĄ܃žT B `…ëœÇë DÝ임*üÞLž_žU‚3 `Ä¢1*üŠ/€ ‚„€‚) ÿ†'žrœË ºÁê"B†œãƜу˜œÛœÖœËãCå‡‘Äæ Ä /ž† XžÅƒ‡ž‚ƒ„ œÑœÛži Ğ]œÑä†«@œÚƒšœÛœÖãB…éÇ¢ç ,žœÂžæ[ +ž‰ -žˆ *žŠ Xž‹ /žŒÅKJÿƎÅäž^ƒ‹…äž[ƒˆž{ƒ… žxނžZÄ ,ÅŸ|ŸÛ ž†œÖœËL žÅÆÎò Pžž„ô…ñ œÞœÑä†àœÚø†Á†ŸƒÛœÛœÝÞºž{‚¹ Ÿƒ‚Ӝўq ‚±†ŽŽ±k†¬ŠÉ†È‚­Gû†©œÌÞ§ž}ÞŠžyý†¢œÌÞ ž}ƒ¹y ‚E ~ à ž .œÓƒ®ÿ ‚E ~ à ž .œÓޣރžfŸN ,žÅœÖ†s@ÁäFž…C ’kŸqÁîLLžÅŸ (žwž{žu Â^Þ|JÿQBÆZŸyî Lžˆ Sžžò TžŠœÑžˆÞN‚M Ÿ †IžsÄŸ‰…éäŸË†_‚”‡]Ÿ]Š’ž| IƎŸ> ,žÅœÖƇ ,žžƒ†·œÖƂŸpIưŸk ,ž“ ’« ,žƒHÿÆtž’‚r žŽHÿÆmæ -žÅ†›ž†œÖæ -žÅ†”ä†(ƒ'š\–\Fžƒ‚Š -ž‚ŸžtœÑ‚œÚƒœÔžx ’@"Fž‚Ÿzž‡@ Ό‰è ÿFž„ …éÅè ŸlÊŸ#…éä† † ‚.Ÿb†žÁèÆƒ™‡šÞ™Þ–JÿQº‚”†’‚!†’Â’ƒŽ»ž…ÞŠÞ‹JÿQžÄœÑ %œÓ‚‚œÔžu †U œÓ œÓ ’‰B *ž œÓ œÓ‚GŸo †hœÔ †fÿ†e Ä"†cIƒaM K ÿ¢Y&žž†¢V&žƒ†RÆR `ÞQKL$žžk‚K N =œÓ‚DŽDœÔ GœÓ‚A öÁ  :œÓž€ œÓŸL Ÿƒ œÓŸ{ †’¹Ÿ‡yŸ…9ŸƒŸ‚Ÿu  öÁ  :œÓ‚Ÿw @0Ƶ‡ÁïQŸ˜žÂˢ̂¬C C 96ŒC C " z až‚ ࢜0 `Ÿa ÂŽC /6» C C 6Œ C C 6ŒC Ÿ¡Ÿh† ÁïQŸ¬Ÿ{…唢’C "C ¢C I6=2 COPY A,ATEMP SAVE THE ORIGINAL CONTENTS OF THE A REGISTER COPY #1,A CSK A,#2 CHECK #1 = #2 NOP ERROR: -#1,SHOULD,=,#2 IFT #?>=4 COPY #3,A CSK A,#4 CHECK #3 = #4 NOP ERROR: -#3-,SHOULD,=,#4 ENDC IFT #?>=6 COPY #5,A  CSK A,#6 CHECK #5 = #6 NOP ERROR: -#5-,SHOULD,=,#6 ENDC IFT #?>=8 COPY #7,A CSK A,#8 CHECK #7 = #8 NOP ERROR: -#7-,SHOULD,=,#8 ENDC COPY ATEMP,A RESTORE A TO ORIGINAL CONTENTS. ENDC ENDM ************************************************************************ * * * TMEM: MACRO ’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I’I