IMD 1.16: 2/09/2008 14:32:05 84-93735-01 a100 f73501 nm4/08 cpu isolite test program 10feb83  /*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*’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ÁÚF182092215501304830208114929 830208114929FF73501 VOLNM4/08 CPU ISOLITE TEST PROGRAM 84-93735-01 A100 2/10/83   ’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ŸÒ× @0DAJ÷LÆ ¢w+™ЀЀΖQA1¹" ¦ † †¦†¤¾¥i€„Žœ žŸ} šŸ}ˆªªžö @¬E°E¨F¤F)¤D¾‘ÄE‚Û„Fž8 æÑŸ} ¦ÔŸ} ÆÌŸ} ž* `jUBˆ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 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 TITL TITLE PAGE * * SCOUT NM4/08 CPU * ISOLITE TEST PROGRAM * * 84-93735-10 A100 * * COPYRIGHT 1983, COMPUTER AUTOMATION INC. * ALL RIGHTS RESERVED * TITL REVISION HISTORY ************************************************************************ * * REVISION HISTORY * ************************************************************************ * * REVISION ISSUE DATE COMMENTS * -------- ---------- -------- * * A000 SEPT 1982 PILOT RELEASE * GEORGE GHARIS * * A100 FEB 1983 FIX ERRORS IN POWER UP ROUTINE AND JST * INSTRUCTION TEST. *  ADD BOARD ID FILE FOR USE BY CPU * HARDWARE TEST PROGRAM. * CHANGE DELAY1 TO ACCOMODATE FASTEST * POSSIBLE NM4/08 CPU EXECUTION * SPEED. * GEORGE GHARIS * REV: EQU 'A100' LATEST REVISION TITL DEFINITIONS MACHINE =:2 CY EQU 0 OV EQU 1  TITL NUCLEUS SECTION * TEMPORARY LOCATIONS * ABS 0 JST ERRUX1 LEAVE FOR USE BY DEBUG, N OT ALTERED BY COMMENT PGM EXCEPT IN SALTEST INITIALIZATION RETADDR JST ERRUX1 RETADDR MUST BE DEFINED AT ABS LOC :01 TEMP JST ERRUX1 JST ERRUX1 JST ERRUX1 JST ERRUX1 JST ERRUX1 JST ERRUX1 * * VARIABLES * * MUST BE DEFINED AT LOCATIONS :08,:09 * * GLOBAL * RAMSIZ WORD  :0000 ADDR OF LAST RAM LOC FOUND (NUM OF LOC-1) * * LOCAL * ROMSIZ WORD :0000 NUM OF ROM LOC FOUND * *  DATA * SPIRPAT WORD :0001 STARTING PATTERN FOR SPIRAL TEST TYPE WORD :0001 STORAGE FOR CURRENT MEM TYPE IN BITTEST * * ABSOLUTE CONSTANTS - PT = PATTERN * PTF000 WORD :F000 PT0000 WORD :0000 PTAA55 WORD :AA55 PTFFFF WORD :FFFF PTF0F0 WORD :F0F0 PT00FF WORD :00FF PT7FFF WORD :7FFF PT8000 WORD :8000 PT4000 WORD :4000 PT4444 WORD :4444 PT5555 WORD :5555 PT6666 WORD :6666 PTAAAA WORD :AAAA PTFFFE WORD :FFFE * STATSVX WORD :0040 EXTENDED ADDRESSING STATUS WORD - NO INT EN STATRI WORD :0160 RTC ENABLE STATUS WORD * * MORE DATA * JMP1 WORD :9F80 JMP *$+1 JST1 WORD :BF80 JST *$+1 JSTUX1 JST ERRUX1 JST TO UNEXPECTED MEM ACCESS OR INTERRUPT * JSTSAL JST *SALVEC JST INDIRECT TO ERRSAL THRU LOC :20 * SALVEC WORD ERRSAL SALVEC MUST BE DEFINED AT ABS LOC :20 SAL00 SAL 0,0 INSURANCE SAL SAL01 WORD :6601 SAL 0,1 SAL141 WORD :66E1 SAL 14,1 * IDPCNT WORD :FE00 (-512) EXECUTES INSTRUCTION DIAG 512 TIMES TITL * * COMMON ERROR CODE ROUTINES * ERRIDP JST ERRUX1 INSTRUCTION DIAGNOSTIC ERROR COPY =:10,Q JST ERRDSPLY * ERRSAL JST ERRUX1 SALTEST ERROR COPY =:40,Q JST ERRDSPLY * ERRUX1 JST ERRUX1 UNEXPECTED MEM ACCESS OR INTERRUPT COPY =:F0,Q JST ERRDSPLY * ERRUX2 JST ERRUX1 UNEXPECTED TRAP, MEM ACCESS OR INTERRUPT COPY =:F1,Q JST ERRDSPLY ************************************************************************ * * ERROR DISPLAY SUBROUTINE: * * ORIGIN OF ERROR IS INDICATED BY CONSOLE DATA REGISTER DISPLAY * AND TRACEABLE BY JST POINTERS. * ************************************************************************ ERRDSPLY JST ERRUX1 ERROR DISPLAY ENTRY COPY Y,SAVEY SAVE YREG IN  4,Y INPUT CONSOLE DATA REGISTER SHIFT Y,L,8 SHIFT TEST CODE TO UPPER BYTE COMMENT  - OPTIONAL INSTRUCTION - OR Q,Y OR IN ERROR CODE SELP Y,4 OUTPUT TO CONSOLE DATA REGISTER OUT Y,2 RESET WATCHDOG TIMER BEFORE HALTING HLT MAY AUTOLOAD HERE IF A BBU WITH AUTO RESTART COMMENT ENABLED IS INSTALLED JMP DONE ATTEMPT EXIT TO NEXT ISOLITE TEST PROGRAM LPOOL TITL ************************************************************************ * * WATCHDOG TIMER RESET SUBROUTINE * * BACKGROUND TASK CALLED BY REAL TIME CLOCK THAT KEEPS WATCHDOG * TIMER RESET DURING MEMORY TEST (TEST 5). * ************************************************************************ WATCHDOG JST ERRUX1 WATCHDOG TIMER RESET  ENTRY COPY Q,SAVEQ SAVE QREG COPY Y,SAVEY SAVE YREG COPY =:91,Y RTC INCREMENT CELL COPY =-9,Q .9 SEC COUNT WITH 10 HZ RTCI OUT Q,2 RESET WATCHDOG TIMER - QREG DON'T CARE COPY Q,0(Y) STORE COUNT IN RTC INCREMENT CELL COPY SAVEQ,Q RESTORE QREG COPY SAVEY,Y RESTORE YREG SBIT 8,S RE-ENABLE INTERRUPTS JMP *WATCHDOG RETURN TITL * * POWER DOWN SUBROUTINE * PDWN JST ERRUX1 POWER DOWN ENTRY OUT A,2 RESET WATCHDOG TIMER 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 PSW TO 'A' COPY A,SAVPSW SAVE PSW COPY =0,A CLEAR 'A' SIN 8 JF SS,$+2 JUMP IF SENSE SWITCH OFF  ADD =1,A SET 'A' =1 COPY A,SENSW SAVE SENSE SW. SETTING IN 4,A INPUT CONSOLE DATA REGISTER  COPY A,DATSAV SAVE CONSOLE DATA REGISTER IMS PDNCT BUMP DOWN COUNTER - NOT LIKELY TO SKIP HLT  WAIT FOR POWER FAIL * PUPCT WORD 0 PDNCT WORD 0 SAVEA JST ERRUX1 SAVEX JST ERRUX1 SAVEQ JST ERRUX1 SAVEY JST ERRUX1 SAVEK JST ERRUX1 SAVEL JST ERRUX1 SAVPSW JST ERRUX1 SENSW JST ERRUX1 DATSAV JST ERRUX1 TITL * * POWER UP SUBROUTINE * PUP JST ERRUX1 POWER UP ENTRY SIN 14 PRTN00 EQU $ IMS PUPCT  BUMP POWER UP COUNT - NOT LIKELY TO SKIP PRTN01 EQU $ COPY SAVEX,X RESTORE 'X' COPY SAVEQ,Q RESTORE 'Q' COPY SAVEY,Y RESTORE 'Y' COPY SAVEK,A COPY A,K RESTORE 'K' COPY SAVEL,A COPY A,L RESTORE 'L' COPY SENSW,A OUT A,0 RESTORE SENSE SWITCH PRTN02 EQU $ COPY PUPCT,A FETCH POWER UP COUNT SUB PDNCT,A SUB DOWN COUNT SIN 9 JNE A,PRTN03 JUMP IF NOT EQUAL  COPY SAVPSW,A COPY A,S RESTORE PSW COPY DATSAV,A SELP A,4 RESTORE CONSOLE DATA REGISTER COPY SAVEA,A RESTORE 'A' OUT A,2 RESET WATCHDOG TIMER JMP *PWNVEC RETURN THRU RETURN VECTOR AT :8C PRTN03 COPY =:F2,Q POWER UP/POWER DOWN COUNTS NOT EQUAL JST ERRDSPLY ERROR EXIT TITL * *  POWER UP VECTOR (:80) * POWUP JST *$+1 POWER UP VECTOR (WARM START) PUPPTR WORD PUP POWER UP POINTER  JST ERRUX1 JST ERRUX1 * * UNIMPLEMENTED INSTRUCTION VECTOR (:84) * LOC84 JST ERRUX1 INTERRUPT LOC + 1 LOC85 JST ERRUX1 INTERRUPT INSTRUCTION JST *$+1 UNIMPT WORD ERRUX2 UNIMPLEMENTED INSTRUCTION POINTER * * UNINSTALLED MEMORY TRAP VECTOR (:88) * UNMEM0 JST ERRUX1 P+1 UNMEM1 JST ERRUX1 I JST *$+1 UNMEM3 WORD ERRUX2 UNINSTALLED MEMORY POINTER * * POWER DOWN VECTOR (:8C) * PWNVEC JST ERRUX1 P+1 JST ERRUX1  I JST *$+1 PDNPTR WORD PDWN POWER DOWN POINTER JST ERRUX1 * * REAL TIME CLOCK INT. CELLS (:91 ) * RTCTIM JST ERRUX1 RTC TIMING CELL JST *$+1 RTC TIMING CELL OVERFLOW VECTOR RTCPTR WORD ERRUX1 * *  CONSOLE INTERRUPT VECTOR (:94) * JST *$+1 WORD ERRUX1 JST ERRUX1 JST ERRUX1 * * CHARACTER/NUMERIC EXCEPTION TRAP (:98) - NOT USED BY NM4/08 CPU * JST ERRUX1 JST ERRUX1 JST ERRUX1  JST ERRUX1 * * STACK EXCEPTION TRAP (:9C) * JST ERRUX1 JST ERRUX1 JST *$+1 ENDSTX WORD ERRUX2 * * USER TRAP (:A0) * UTRAP1 JST ERRUX1 P+1 UTRAP2 JST ERRUX1 I UTRAP3 JST *$+1 UTRAP4 WORD ERRUX2 * * SYSTEM TRAP (:A4) * STRAP1 JST ERRUX1 P+1 STRAP2 JST ERRUX1 I STRAP3 JST *$+1 STRAP4 WORD ERRUX2 * * DIVIDE FAULT / FLOATING POINT EXPONENT OVERFLOW TRAP (:A8) * ARERR EQU :A8 ARERR0 JST ERRUX1 P+1 JST  ERRUX1 I JST *$+1 ARERR1 WORD ERRUX2 TITL PRELIMINARY MEMORY CONFIDENCE TEST NAM START NAM BITTEST ******************************************************** * * BITTEST * * PERFORMS A NON-DESTRUCTIVE TEST OF MEMORY AND A WORD BY WORD * SIZING OF THE SYSTEM ADDRESS SPACE. THE QUANTITY * OF EACH TYPE OF MEMORY (RAM, ROM, & NULL) FOUND * DURING THIS TEST IS STORED FOR USE ELSEWHERE AND FOR LATER * MANUAL VERIFICATON IF REQUIRED. * * POSSIBLE ERRORS: * * 1) BAD RAM FOUND AT ONE OF THE TEST LOCATIONS. DETERMINED * AS FOLLOWS: * READ FROM MEM * WRITE TO MEM (COMPLEMENT OF DATA READ) * READ FROM MEM * *  IF (READ2<>WRITE) AND (READ1<>READ2), * THEN ITS A BAD RAM LOCATION. * * 2) NON-CONTIGUOUS BLOCKS OF A SINGLE MEMORY TYPE. THE * EXPECTED CONFIGURATIONS ARE (FROM LOW TO HIGH ADDRESSES): *  A) RAM - ROM * B) RAM * ************************************************************************ TITL * * PROGRAM ENTRY * START EQU $ BITTEST EQU $ COPY =:00,A BITTEST INDICATOR SELP A,4 OUTPUT TO CONSOLE DATA REGISTER OUT A,2 TURN OFF AUTOLOAD LIGHT AND RESET WATCHDOG COMMENT TIMER  COPY =1,A OUT A,0 TURN ON SENSE SWITCH COPY STATSVX,A COPY A,S INITIALIZE STATUS COPY =0,X INITIALIZE INDEX BITLOOP1 IJEQ X,ENDBIT INCREMENT INDEX AND EXIT IF THRU COMMENT START WITH SECOND WORD OF MEMORY COPY =2,A (ROM MEMORY = TYPE 2) OUT A,2 RESET WATCHDOG TIMER COPY P,Q ********** * NOTE: UNTESTED MEMORY STARTS HERE ! ********** UNTEST CSK X,Q TEST POINTER AT UNTEST? NOP JMP DOTEST NO - CONTINUE TEST COPY RAMSIZ,Q YES ADD =MEMSIZE-UNTEST+1,Q COPY Q,RAMSIZ BUMP RAMSIZE ADD =MEMSIZE-UNTEST+1,X BUMP TEST POINTER DOTEST COPY 0(X),A READ TEST LOCATION COMP A,Q COMPLEMENT MEMORY CONTENTS COPY Q,0(X) WRITE TO TEST LOCATION XOR 0(X),Q SEE IF MEMORY = DATA WRITTEN JEQ Q,GOODRAM YES - GOOD RAM XOR 0(X),A   SEE IF MEMORY CHANGED AT ALL JEQ A,ROM NO - ROM MEMORY BADRAM COPY =:00,Q BIT SET/RESET ERROR  JST ERRDSPLY BAD RAM MEMORY ROM COPY =2,A (ROM MEMORY = TYPE 2) JMP MEMSIZE GO TO SEQUENCE AND SIZING ROUTINE GOODRAM COPY A,0(X) RESTORE MEMORY CONTENTS COPY RAMSIZ,A * * DISPLAY CURRENT 8K WORD BLOCK OF MEMORY BEING TESTED * SHIFT A,R,1 COMPUTE MEMORY SIZE IN K-BYTES COMMENT - OPTIONAL INSTRUCTION - ADD =1,A  COPY PTF000,Q :F000 TO QREG AND Q,A MASK OFF LOWER 3 NIBBLES OR =:00,A ADD IN TEST CODE SELP A,4 OUTPUT TO CDR * COPY =1,A (RAM MEMORY = TYPE 1) ********** * UNTESTED MEMORY ENDS HERE. ********** * *  CHECK MEM SEQUENCE AND INCREMENT PROPER MEM SIZE * MEMSIZE EQU $ COPY =:01,Q NON-CONTIGUOUS MEMORY TYPE ERROR  CSK A,TYPE CHECK MEMORY TYPE SEQUENCING JST ERRDSPLY < - WRONG SEQUENCE - ERROR CODE IN 'Q' NOP > -  COPY A,TYPE = - UPDATE MEMORY TYPE COPY A,Y USE AS INDEX FOR MEMORY SIZE IMS 7(Y) INCREMENT PROPER MEM SIZE LOCATION JMP BITLOOP1 * * FILL UNUSED MEMORY WITH ERROR TRAPS AND EXIT TO NEXT TEST * ENDBIT EQU $ COPY JSTUX1,A ERROR TRAP, JST TO UNEXPECTED MEM ACCESS LOC COPY ENDPGM,X END OF PROGRAM +2 TO INDEX  COPY RAMSIZ,Q END OF RAM TO QREG BITLOOP2 COPY A,0(X) WRITE MEM OUT A,2 RESET WATCHDOG TIMER CSN X,Q DONE ALL OF RAM? * * EXIT HERE * JMP BCTEST YES - GO TO NEXT TEST ADD =1,X NO - INCREMENT INDEX JMP BITLOOP2 AND CONTINUE LPOOL TITL INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE NAM BCTEST ******************************************************************* * ************************************************************** * * SCOUT DIAGNOSTICS - SECTION A * ************************************************************** * * OBJECTIVE: IN THIS TEST BASIC CONFIDENCE IS ESTABLISHED ON * A SUBSET OF THE AVAILABLE SCOUT INSTRUCTIONS. * * INSTRUCTION SUBSET: THE FOLLOWING INSTRUCTIONS ARE TESTED * IN THE ORDER LISTED. * SUB-TEST A0: * COPY LIT,2REG * CSK 2REG,LIT * COPY MEM,2REG DIRECT,RELATIVE & ABSOLUTE * COPY 2REG,MEM ABSOLUTE * CSK 2REG,MEM DIRECT, RELATIVE *  COPY 7REG,7REG * JEQ 2REG,MEM RELATIVE * JNE 2REG,MEM RELATIVE * JGT 2REG,MEM RELATIVE * JLT 2REG,MEM RELATIVE * JLE 2REG,MEM RELATIVE *  OR MEM,REG ABSOLUTE * XOR MEM,REG ABSOLUTE * AND MEM,REG ABSOLUTE *  COPY P,REG * COPY MEM(X),3REG INDEXED, DIRECT * COPY MEM(Y),REG INDEXED, DIRECT * **************************************************************** TITL *************************************************************** * * TEST STRUCTURE: * * STEP BY STEP CONFIDENCE IS GAINED IN VARIOUS INSTRUCTIONS * BY EXECUTIN G EACH INSTRUCTION TO PERFORM ITS SIMPLEST * FUNCTION IN WORD MODE. NORMALLY TWO INSTRUCTIONS ARE * TAKEN AS A PAIR TO TEST EACH OTHER USING KNOWN WORKING * INSTRUCTIONS. * * BY THE END OF THE TEST IT CAN BE SAFELY ASSUMED THAT ALL OF * THE INSTRUCTIONS LISTED ABOVE ARE PERFORMING THEIR FUNCTIONS * UNDER THE STATED RESTRICTIONS. * *  THIS SECTION (A0) PROVIDES BASIC TOOLS FOR EXTENSIVE * CHECKOUT OF THE REMAINING PROCESSOR FUNCTIONS. * ******************************************************************* TITL ***************************************************************** * * TEST A0-2: * COPY LIT,2REG * CSK 2REG,LIT * ****************************************************************** * BCTEST EQU $ COPY =:01,A IDP INDICATOR SELP A,4 OUTPUT TO CONSOLE DATA REGISTER A00200 EQU $ OUT A,2 RESET WATCHDOG TIMER COPY STATSVX,A COPY A,S INITIALIZE STATUS COPY =1,A LOAD A CSK A,=1 TEST EQUAL CONDITION NOP JST ERRIDP  --ERROR-- CSK OR COPY FAILED * CSK A,=0 TEST GREATER THAN CONDITION JST ERRIDP --ERROR-- CSK FAILED TO DETECT R>LIT JMP $+2 JST ERRIDP --ERROR-- CSK FAILED * CSK A,=2  TEST LESS THAN CONDITION JMP $+3 NOP JST ERRIDP --ERROR-- CSK FAILED * COPY  =1,Q TEST OPERATION WITH Q CSK Q,=1 NOP JST ERRIDP --ERROR-- OPERATIONS ON Q FAILED * * GO ON TO TEST A0-3 TITL **************************************************** * * TEST A0-3: *  COPY MEM,2REG RELATIVE & ABSOLUTE ADDRESSING * COPY 2REG,MEM ABSOLUTE ADDRESSING * CSK 2REG,MEM  RELATIVE & ABSOLUTE ADDRESSING * **************************************************** * A00300 EQU $ COPY RC00FF,A LOAD :FF FROM MEM TO A. TEST OF * RELATIVE ADDRESSING. CSK A,=:FF  A SHOULD BE :FF NOP JST ERRIDP --ERROR-- COPY MEM,A FAILED * COPY RC00FF,Q LOAD :FF FROM MEM TO Q CSK Q,=:FF NOP JST ERRIDP --ERROR-- COPY MEM,Q * COPY =0,Q  COPY A,TEMP NOW TEST ABSOLUTE ADRESSING COPY TEMP,Q TEMP SHOULD BE :00FF CSK Q,=:FF  NOP JST ERRIDP --ERROR-- ABSOLUTE ADDRESSING FAILED * CSK A,PT00FF CHECK EXECUTION OF CSK 2REG,ABSMEM NOP JST ERRIDP --ERROR-- ABSOLUTE ADRESSING FAILED * CSK A,RC00FF SAME THING ONLY RELATIVE ADDRESSING NOP JST ERRIDP --ERROR-- CSK FAILED * CSK A,PT0000  A IS GREATER THAN 0 JST ERRIDP --ERROR HLT-- JMP $+2 JST ERRIDP --ERROR-- CSK FAILED * COPY PTFFFE,Q CSK Q,PTFFFF TEST FOR Q=-2 < -1 JMP $+3 NOP  JST ERRIDP --ERROR-- CSK FAILED * JMP A00400 * TEST CONSTANTS RC00FF WORD :00FF * * GO ON T O TEST A0-4 * TITL ****************************************************************** * * TEST A0-4: * COPY 7REG,7REG COPY P,REG TESTED IN A0-7 * ******************************************************************** * A00400 EQU $ COPY =0,Q CLEAR Q COPY PTFFFF,A LOAD A WITH :FFFF * * TEST A -> X -> Q COPY A,X COPY X,Q CSK Q,PTFFFF DOES X HOLD THE CORRECT VALUE? NOP JST ERRIDP  --ERROR-- X COPY'S FAILED * * TEST A -> Y -> Q COPY A,Y COPY Y,Q CSK Q,PTFFFF  TEST Y=EXPECTED VALUE NOP JST ERRIDP --ERROR-- Y COPY'S FAILED * COPY =0,Q CLEAR Q * * TEST A -> K -> Q COPY A,K COPY K,Q CSK Q,PTFFFF TEST K=EXPECTED VALUE  NOP JST ERRIDP --ERROR-- K COPY'S FAILED * COPY =0,Q CLEAR Q * * TEST A -> L -> Q COPY A,L COPY L,Q CSK Q,PTFFFF TEST L=EXPECTED VALUE NOP JST ERRIDP --ERROR-- L COPY'S FAILED * COPY =0,Q CLEAR Q * * TEST A -> S -> Q COPY STATSVX,A STATSVX = :0040 COPY A,S COPY S,Q CSK Q,STATSVX TEST S=EXPECTED VALUE NOP  JST ERRIDP --ERROR-- S COPY'S FAILED * COPY PTFFFF,Q LOAD Q WITH :FFFF * * TEST Q -> X -> A COPY Q,X COPY X,A CSK A,PTFFFF TEST X=EXPECTED VALUE NOP JST ERRIDP --ERROR-- COPY Q,X FAILED * * GO ON TO TEST A0-5 * TITL *************************************************************** * * TEST A0-5: (USING RELATIVE ADDRESSING) * JEQ 2REG,MEM * JNE 2REG,MEM * JGT 2REG,MEM * JGE 2REG,MEM * JLT 2REG,MEM * JLE 2REG,MEM * **************************************************************** * A00500 EQU $ COPY PTFFFF,A LOAD A WITH :FFFF=-1 JEQ A,$+2  JMP $+2 JST ERRIDP --ERROR-- JEQ FAILED ON A < 0 * JNE A,$+2 JST ERRIDP --ERROR-- JNE FAILED ON A < 0 * JLT A,$+2 JST ERRIDP --ERROR-- JLT FAILED ON A < 0 * JGE  A,$+2 JMP $+2 JST ERRIDP --ERROR-- JGE FAILED ON A < 0 * COPY =0,Q CLEAR Q JEQ Q,$+2 JST ERRIDP --ERROR-- JEQ FAILED ON Q = 0 * JNE Q,$+2 JMP $+2  JST ERRIDP --ERROR-- JNE FAILED ON Q = 0 * JLT Q,$+2 JMP $+2 JST ERRIDP  --ERROR-- JLT FAILED ON Q = 0 * JLE Q,$+2 JST ERRIDP --ERROR-- JLE FAILED ON Q = 0 *  JGT Q,$+2 JMP $+2 JST ERRIDP --ERROR-- JGT FAILED ON Q = 0 * JGE Q,$+2  JST ERRIDP --ERROR-- JGE FAILED ON Q = 0 * COPY =1,X JLE X,$+2 JMP $+2 JST ERRIDP --ERROR-- JLE FAILED ON X > 0 * JGT X,$+2 JST ERRIDP --ERROR-- JGT FAILED ON X  > 0 * * GO ON TO TEST A0-6 TITL ************************************************************** * * TEST A0-6: * OR MEM,REG * XOR MEM,REG * AND MEM,REG * ************************************************************** * A00600 EQU $ TEST 'OR' COPY PT00FF,A COPY PTF0F0,Q COPY Q,TEMP+1 STORE :F0F0 OR TEMP+1,A A SHOULD BE :FOFF CSK A,=:F0FF NOP JST ERRIDP  --ERROR-- OR FAILED * * A00601 EQU $ TEST 'XOR' COPY PT00FF,Q COPY PTF0F0,A  COPY A,TEMP+1 XOR TEMP+1,Q Q SHOULD BE :F00F CSK Q,=:F00F NOP JST ERRIDP  --ERROR-- XOR FAILED * * A00602 EQU $ TEST 'AND' COPY PT00FF,A COPY PTF0F0,Q  COPY Q,TEMP+1 AND TEMP+1,A A SHOULD BE :00F0 CSK A,=:F0 NOP JST ERRIDP  --ERROR-- AND FAILED JMP A00700 LPOOL * * GO ON TO TEST A0-7 * TITL ****************************************************************** * * TEST A0-7: * COPY P,REG * COPY MEM(X),3REG INDEXED DIRECT ADDRESSING * COPY MEM(Y),REG INDEXED DIRECT ADDRESSING * ****************************************************************** * A00700 EQU $ COPY =0,Q COPY =0,A * A00701 COPY P,X GET CURRENT LOCATION+1 COPY CELLOC1(X),A LOAD A WITH CONTENTS OF CEL000 CSK A,CEL000 TEST A=EXPECTED VALUE NOP JST ERRIDP --ERROR-- X INDEXED LOAD FAILED * COPY CELLOC1(X),Y LOAD Y WITH CONTENTS OF CEL000 COPY Y,Q CSK Q,CEL000 NOP JST ERRIDP --ERROR-- INDEXED LOAD FAILED *  COPY CELLOC1+1(X),X **LOAD X WITH CONTENTS OF CEL010 COPY X,A CSK A,CEL010 NOP JST ERRIDP --ERROR-- INDEXED LOAD FAILED * A00702 COPY P,Y GET CURRENT LOCATION +1 COPY CELLOC2+1(Y),Q **LOAD Q WITH CONTENTS OF CEL010 CSK Q,CEL010 NOP JST ERRIDP --ERROR-- Y INDEXED LOAD FAILED * JMP BAIDTEST CONTINUE WITH THE NEXT TEST SECTION * CELLOC1 EQU $-A00701-1 CELLOC2 EQU  $-A00702-1 CEL000 WORD :AAAA CEL010 WORD :5555 LPOOL A00END EQU $ TITL INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET NAM BAIDTEST ********************************************* * * ---------- INSTRUCTION DIAGNOSTIC ---------- * * THIS SECTION VERIFIES THE BASIC OPERATION OF * THE FOLLOWING SET OF INSTRUCTIONS. (SOME OF THE *  INSTRUCTIONS HAVE BEEN PARTIALLY TESTED IN * SECTION A0.) * * COPY MEM,3REG RELATIVE, ABSOLUTE * COPY LIT,REG IMMEDIATE * CSK 2REG,MEM RELATIVE, ABSOLUTE * CSK REG,LIT IMMEDIATE * COPY REG,MEM  ABSOLUTE * JST MEM RELATIVE * COPY 2REG,MEM POST INDEXED, BYTE MODE * SBIT BIT,S * RBIT BIT,S * COPY REG,MEM INDIRECT * AND REG,REG * OR REG,REG * XOR REG,REG * SIN   CNT BYTE MODE INHIBIT * JT OV,MEM RELATIVE * JF OV,MEM RELATIVE * ADD LIT,2REG  IMMEDIATE * SUB LIT,2REG IMMEDIATE * JSK MEM RELATIVE * JSK MEM WITH FORCED STACK OVERFLOW * SHIFT 2REG,LO,CNT * SHIFT 2REG,RO,CNT * IJNE REG,MEM RELATIVE * ADDC MEM,REG RELATIVE, DIRECT AND INDIRECT * DIV MEM,RP QUADRANT 1 TRAP * ********************************************* TITL ****** * * COPY MEM,3REG RELATIVE, ABSOLUTE * COPY LIT,REG IMMEDIATE * CSK 2REG,MEM ON EQUAL CONDITION REL, ABS * CSK REG,LIT ON EQUAL CONDITION IMMEDIATE * COPY REG,MEM ABSOLUTE * ****** * * DATA * RC0055 WORD :0055 INDIR WORD *TEMP+2 SPACE 1 BAIDTEST EQU $ B00200 EQU $ COPY PT6666,A TEST LOAD ABSOLUTE CSK A,=:6666 TEST CSK RELATIVE NOP JST ERRIDP IF A = :6666 CSK FAILED -- ELSE COPY FAILED * COPY RC0055,X TEST LOAD RELATIVE CSK X,=:0055 TEST CSK IMMEDIATE NOP JST ERRIDP IF X = :0055 CSK FAILED -- ELSE COPY FAILED * COPY =:00FF,Q TEST LOAD IMMEDIATE CSK Q,PT00FF TEST CSK ABSOLUTE NOP JST ERRIDP IF Q = :00FF CSK FAILED -- ELSE COPY FAILED * COPY PTAAAA,A COPY A,TEMP+1 TEST STORE ABSOLUTE CSK A,TEMP+1 NOP JST ERRIDP COPY FAILED -- A SHOULD = :AAAA TITL ****** * * JST MEM * ****** COPY =0,A COPY A,JSTLOC JST JSTLOC JSTRTN COPY P,A JST FAILED -- DID NOT JUMP COPY A,ERRIDP JMP ERRIDP+1 SIMULATED JST TO ERRIDP JSTLOC ENT COPY =JSTRTN,A CSK A,JSTLOC NOP B00210 JMP B00211 WRONG RETURN POINTER AT JST LOCATION JMP B00220 GOOD - CONTINUE TO NEXT TEST B00211 COPY P,A GOT HERE FROM B00210 COPY A,ERRIDP JMP ERRIDP+1 SIMULATED JST TO ERRIDP LPOOL TITL ****** * * COPY 2REG,MEM POST INDEXING IN BYTE MODE * SBIT BIT,S EFFECT ON CONTROL CHIP * RBIT BIT,S EFFECT ON CONTROL CHIP * ****** B00220 EQU $ COPY =0,A COPY A,TEMP+1  COPY A,TEMP+2 COPY =TEMP+1%1,X COPY =:AA,A COPY =:55,Q SBIT 2,S SET BYTE MODE  COPY A,0(X) COPY Q,1(X) RBIT 2,S SET WORD MODE COPY TEMP+1,A CSK A,PTAA55  NOP JST ERRIDP IF A<>:AA55 RBIT FAILED OR SBIT OR BYTE MODE TITL ****** * * COPY REG,MEM INDIRECT ADDRESSING * ****** COPY =TEMP+1,A GET ADDR. OF TEMP+1 COPY A,TEMP+2 STORE IN TEMP+2 COPY INDIR,A GET ADDR. OF TEMP+2 WIT BIT 15 ON COPY A,TEMP STORE IN TEMP RBIT 6,S RESET XA - ALLOW MULTI-LEVEL INDIRECT ADDRESSING COPY PT5555,A GET TEST DATA COPY A,*TEMP+2 STORE IN TEMP+1 CSK A,TEMP+1 NOP JST ERRIDP COPY SINGLE LEVEL INDIRECT FAILED * COPY PTAAAA,A GET TEST DATA COPY A,*TEMP STORE IN TEMP+1 CSK A,TEMP+1 NOP JST ERRIDP COPY MULTI-LEVEL INDIRECT FAILED SBIT 6,S RE  STORE STATUS TITL ****** * * AND REG,REG * OR REG,REG * XOR REG,REG * ****** B00300 COPY PTAAAA,A  COPY PT6666,Q AND A,Q CSK Q,=:2222 NOP JST ERRIDP AND FAILED -- Q SHOULD = :2222 COPY PT5555,Q COPY PT6666,X OR Q,X COPY X,A CSK A,=:7777 NOP JST  ERRIDP OR FAILED -- X SHOULD = :7777 * COPY PT6666,X COPY PTAAAA,Y XOR X,Y COPY Y,A  CSK A,=:CCCC NOP JST ERRIDP XOR FAILED -- Y SHOULD = :CCCC TITL ****** * * SIN CNT BYTE MODE INHIBIT * ****** SBIT 2,S SET BYTE MODE SIN 3 COPY PTAAAA,Q RBIT 2,S SET WORD MODE CSK Q,PTAAAA NOP JST ERRIDP SIN FAILED -- Q SHOULD = :AAAA TITL ****** * * JT OV,MEM RELATIVE * JF OV,MEM RELATIVE * ****** SBIT 1,S SET OV = 1 JF OV,$+3  JT OV,$+3 JST ERRIDP JT FAILED WITH OV = 1 -- ELSE JF RESET OV JST ERRIDP JF,FAILED,WITH,OV,=,1 * OV SHOULD BE RESET AT THIS POINT * JT OV,$+3 JF OV,$+3 JST ERRIDP JF FAILED WITH OV = 0 JST ERRIDP JT FAILED WITH OV = 0 JMP B00400 LPOOL TITL ****** * * ADD LIT,2REG  IMMEDIATE * ****** * * DATA * RC7F00 WORD :7F00 * B00400 COPY RC7F00,A ADD =:FF,A CSK A,PT7FFF  NOP JST ERRIDP ADD FAILED -- A SHOULD = :7FFF * * POSITIVE OVERFLOW * COPY PT7FFF,Q ADD  =1,Q CSK Q,PT8000 NOP JST ERRIDP ADD FAILED -- Q SHOULD = :8000 JT OV,$+2 JST ERRIDP ADD FAILED -- DID NOT SET OV ON OVERFLOW TITL ****** * * SUB LIT,2REG IMMEDIATE * ****** COPY PTAAAA,X SUB =:55,X COPY X,A CSK A,PTAA55 NOP JST ERRIDP SUB FAILED -- X SHOULD = :AA55 * * NEGATIVE OVERFLOW * COPY PT8000,Y SUB =1,Y COPY Y,A CSK A,PT7FFF  NOP JST ERRIDP SUB FAILED -- Y SHOULD = :7FFF JT OV,$+2 JST ERRIDP SUB FAILED -- DID NOT SET OV ON OVERFLOW TITL ****** * * JSK MEM RELATIVE * ****** COPY =:9C,X STACK EXCEPTION TRAP LOCATION COPY JMP1,A JMP *$+1 (:9F80) COPY A,2(X) STORE IN 3RD WORD OF TRAP COPY =B00402,A TRAP SERVICE ROUTINE ADDRESS COPY A,3(X) STORE IN 4TH WORD OF TRAP COPY =0,A COPY A,STACK1 CLEAR STACK CELLS COPY A,STACK2 COPY =STACKL,A STACK LIMIT COPY A,L INITIALIZE L REG. COPY =STACKK,A STACK POINTER COPY A,K INITIALIZE K REG. JSK B00403 B00401 EQU $ JST ERRIDP JSK FAILED -- DID NOT JMP JMP $+2 B00402 EQU $ JST ERRIDP JSK FAILED -- SHOULD NOT TAKE TRAP B00403 COPY K,A GET STACK POINTER CSK A,=STACK1 COMPARE WITH EXPECTED VALUE NOP JST ERRIDP JSK FAILED -- STACK POINTER HAS WRONG VALUE COPY STACK1,A GET RETURN POINTER CSK A,=B00401 NOP JST ERRIDP   JSK FAILED -- DID NOT STORE P+1 IN STACK TITL ****** * * JSK MEM WITH FORCED STACK OVERFLOW TRAP * ****** COPY =B00408,A STACK TRAP ROUTINE ADDRESS COPY A,3(X) STORE IN 4TH WORD OF TRAP B00405 JSK B00407 B00406 EQU $ JST ERRIDP JSK FAILED -- DID NOT TAKE TRAP JMP $+2 B00407 EQU $ JST ERRIDP JSK FAILED -- DID NOT TAKE TRAP B00408 EQU $ COPY 0(X),A GET 1ST WORD OF TRAP CSK A,=B00407  NOP JST ERRIDP LOC :9C SHOULD BE JSK JUMP ADDR COPY 1(X),A CSK A,B00405 NOP JST ERRIDP LOC :9D SHOULD BE JSK INSTRUCTION * * RESTORE TRAP LOCATIONS * COPY JST1,A JST *$+1 (:BF80)  COPY A,2(X) STORE IN 3RD WORD OF TRAP COPY =ERRUX2,A LOCATION OF UNEXPECTED TRAP SERVICE COPY A,3(X)  STORE IN 4TH WORD OF TRAP JMP B00500 TITL * * DATA * STACK RES 8,0 STACKL EQU STACK STACK2 EQU STACK+6 STACK1 EQU STACK+7 STACKK EQU STACK+8 * * LPOOL TITL ****** * * SHIFT 2REG,LO,CNT * ****** B00500 EQU $ COPY STATSVX,A COPY A,S INITIALIZE STATUS COPY PT5555,A SHIFT A,LO,1 CSK  A,PTAAAA NOP JST ERRIDP SHIFT FAILED -- A SHOULD = :AAAA JF OV,$+2 JST ERRIDP SHIFT FAILED -- OV SHOULD = 0 COPY PTAAAA,Q SHIFT Q,LO,3 CSK Q,=:5550 NOP JST ERRIDP  SHIFT FAILED -- Q SHOULD = :5550 JT OV,$+2 JST ERRIDP SHIFT FAILED -- OV SHOULD = 1 TITL ****** * *  SHIFT 2REG,RO,CNT * ****** COPY PT5555,X SHIFT X,RO,1 COPY X,A CSK A,=:2AAA NOP  JST ERRIDP SHIFT FAILED -- X SHOULD = :2AAA JT OV,$+2 JST ERRIDP SHIFT FAILED -- OV SHOULD = 1 * COPY PT5555,Y SHIFT Y,RO,10 CSK Y,=:0015 NOP JST ERRIDP SHIFT FAILED -- Y SHOULD = :0015 JF OV,$+2 JST ERRIDP SHIFT FAILED -- OV SHOULD = 0 TITL ****** * * IJNE REG,MEM * ****** COPY =0,Y IJNE Y,$+2 JST ERRIDP IJNE FAILED ON Y=0 CSK Y,=1 NOP JST ERRIDP IJNE FAILED -- DID NOT INCREMENT Y TITL ****** * * ADDC MEM,REG RELATIVE, DIRECT AND INDIRECT * ****** COPY STATSVX,A COPY A,S INITIALIZE STATUS (RESET CY). COPY PTFFFF,A ADDC CEL100,A TEST ADDC DIRECT RELATIVE --> A=2, CY=1 ADDC *CELADR,A TEST ADDC INDIRECT RELATIVE --> A=6, CY=0 CSK A,=6  NOP JST ERRIDP ADD FAILED -- A SHOULD = 6 JF CY,$+2 JST ERRIDP ADDC FAILED -- CY SHOULD = 0 JMP B00600 CEL100 WORD :0003 CELADR WORD CEL100 LPOOL TITL ****** * * DIV MEM,AY QUADRANT 1 TRAP TEST * ****** B00600 EQU $ COPY =:A8,X AE TRAP LOCATION COPY =B00603,A TRAP SERVICE ROUTINE LOCATION COPY A,3(X) STORE IN 4TH WORD OF TRAP (:AB) COPY PT4000,A COPY A,TEMP+1 COPY PT7FFF,A COPY =0,Y B00601 DIV TEMP+1,AY B00602 EQU $ JST ERRIDP DIV FAILED -- SHOULD TAKE TRA  P * B00603 JST ERRUX1 TRAP SERVICE ROUTINE ENTRY JMP EXIDTEST GO TO NEXT TEST LPOOL TITL INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET NAM EXIDTEST ************************************************************************ * * EXTENDED INSTRUCTION TEST: * * ADDF MEM,RP ABSOLUTE, DIRECT ADDRESSING * SHIFT RP,RO,CNT *  ANDE MEM,REG ABSOLUTE, INDIRECT, X-INDEXED ADDRESSING * CEA MEM,REG ABSOLUTE, INDIRECT, X,Y-INDEXED ADDRESSING *  JSTE MEM ABSOLUTE, DIRECT ADDRESSING * JMPE MEM ABSOLUTE, DIRECT ADDRESSING * ************************************************************************ * * DATA - RELATIVE CONSTANTS FOR ADDF TEST * RC5144 WORD :5144 RC3D4E WORD :3D4E RC51B1 WORD :51B1 RC9C4D WORD :9C4D RC511E WORD :511E RCFB4C WORD :FB4C SPACE 1 B00604 EQU $ EXIDTEST EQU $ FMT A CLSN A,=:43 CHECK MACHINE TYPE JMP $+2 JST ERRIDP  ERROR - WRONG MACHINE TYPE TITL ************************************************************************ * * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION * * ADDF * * +:C43D4E +34 ADDF +:9EFB4C +34 = +:B19C4D +35 CARRY INTO EXP. * CY=S OV=S A=:5144 Q=:3D4E ADDF :511E :FB4C=:51B1 :94CD OK ************************************************************************ SPACE 1 FLOAT1 EQU $ COPY RC5144,A :5144 => 'A' COPY RC3D4E,Q :3D4E => 'Q' SBIT CY,S SET CARRY FLAG SBIT OV,S SET OVERFLOW FLAG JMP $+3 JUMP AROUND OPERAND FLOAT2 EQU $ WORD :511E INSTRUCTION OPERAND WORD :FB4C FLOAT3 EQU $  ADDF FLOAT2 DO THE OPERATION CSK A,RC51B1 CHECK -A- NOP JST ERRIDP -A- SHOULD CONTAIN :51B1 CSK Q,RC9C4D CHECK -Q- NOP JST ERRIDP -Q- SHOULD CONTAIN :9C4D  COPY FLOAT2,A CSK A,RC511E CHECK OPERAND WORD 1 NOP JST ERRIDP ADDF MODIFIED OPERAND COPY FLOAT2+1,A CSK A,RCFB4C CHECK OPERAND WORD 2 NOP JST ERRIDP ADDF MODIFIED OPERAND JT OV,$+2 OVERFLOW STILL SET? JST ERRIDP NO - ADDF CHANGED OVERFLOW  JT CY,$+2 CARRY STILL SET? JST ERRIDP NO - ADDF CHANGED CARRY ENDADDF EQU $ TITL ****************************** * * SHIFT AQ,RO,CNT * ****************************** SPACE 1 * * NOTE: * * OV SHOULD HAVE BEEN RESET BY 'JT OV' IN PREVIOUS TEST * SPACE 1 D21010 EQU $ COPY PTFFFF,A COPY =0,Q SHIFT AQ,RO,1 CSK A,PT7FFF NOP JST ERRIDP SHIFT FAILED - AREG SHOULD = :7FFF CSK Q,PT8000 NOP JST ERRIDP SHIFT FAILED - QREG SHOULD = :8000 JF OV,$+2 JST ERRIDP SHIFT FAILED - OV SHOULD = 0 ENDSHIFT EQU $ TITL ****************************** * * ANDE *MEM(X),A * ****************************** SPACE 1 H16000 EQU $ COPY =1,X COPY =CEL131,A COPY A,CEL130 CEL13  1 ADD IN CEL130 COPY PT5555,A COPY A,CEL132 COPY PT6666,A ANDE *CEL130(X),A AND CEL132 WITH A CSK A,PT4444 NOP JST ERRIDP ANDE FAILED - AREG SHOULD = :4444 JMP ENDANDE * CEL130 WORD 0 CEL131 WORD 0 CEL132 WORD 0 LPOOL ENDANDE EQU $ TITL ****************************** * * CEA *MEM(X,Y),Q * ****************************** SPACE 1 H22000 EQU $ COPY =1,Y COPY  =0,X COPY =TEMP+2,A COPY A,TEMP+1 CEA *TEMP(X,Y),Q EA = TEMP+2 CSK Q,A NOP JST ERRIDP CEA FAILED - QREG SHOULD = ADDR OF TEMP+2 ENDCEA EQU $ TITL ****************************** * * JSTE MEM * JMPE MEM * ****************************** SPACE 1 H19000 EQU $ H19000 EQU $ JSTE H19002 H19001 EQU $ JST ERRIDP JSTE FAILED - DID NOT JUMP JMP H19004 GO TEST JMPE * H19002 ENT COPY =H19001,A CSK A,H19002 NOP JMP H19003 ABNORMAL EXIT - BAD RETURN ADDR IMS H19002 JMP *H19002 * H19003 JST ERRIDP JSTE FAILED - BAD RETURN ADDR IN H19002 H19004 JMPE ENDJMPE EXIT TEST JST ERRIDP JMPE FAILED - DID NOT JMP ENDJMPE EQU $ OUT A,2 RESET WATCHDOG TIMER IMS IDPCNT INCREMENT IDP PASS COUNTER JMP A00200 REPEAT IDP JMP ENDIDP EXIT TEST LPOOL ENDIDP EQU $ TITL UNIMPLEMENTED INSTRUCTION TEST NAM UITEST **************************************** * * THIS TEST EXECUTES A SINGLE UNIMPLEMENTED * INSTRUCTION (:0E0E) TO INSURE THAT IT INVOKES * THE UNIMPLEMENTED INSTRUCTION TRAP, AND * THAT THE TRAP OPERATES CORRECTLY. * **************************************** UITEST EQU $ UNIMPLEMENTED INSTRUCTION TEST ENTRY POINT COPY =:02,A UIT INDICATOR SELP A,4  OUTPUT TO CONSOLE DATA REGISTER COPY =:84,Y UNIMP. INSTR. TRAP LOCATION COPY =B00704,A TRAP SERVICE ROUTINE LOCATION COPY A,3(Y) STORE IN 4TH WORD OF TRAP (:87) COPY STATSVX,A COPY A,S INITIALIZE STATUS COPY PTF0F0,A LOOP COUNT (-3856) COPY A,TEMP INITIALIZE LOOP COUNTER B00701 COPY =0,A -- CLEAR COPY A,0(Y) -- TRAP COPY A,1(Y) -- LOCATIONS OUT A,2 RESET WATCHDOG TIMER B00702 WORD :0E0E EXECUTE UNIMPLEMENTED INSTRUCTION B00703 EQU $ COPY =:20,Q INSTRUCTION AT B00702 DID NOT CAUSE TRAP JST ERRDSPLY ERROR EXIT * B00704 ENT COPY =-9,Q IJNE Q,$ DELAY UNTIL SIN COUNTER IS EXPIRED IMS TEMP INCREMENT LOOP COUNTER JMP B00701 DO AGAIN TILL LOOP COUNTER GOES TO ZERO * COPY =ERRUX2,A UNEXPECTED UIT SERVICE ROUTINE LOCATION COPY A,3(Y) STORE IN 4TH WORD OF TRAP (:87) JMP RTCTEST EXIT TO NEXT TEST * LPOOL TITL REAL TIME CLOCK TEST NAM RTCTEST ********************************************* * * ---------- REAL TIME CLOCK TEST ---------- * * THIS TEST VERIFIES THAT THE REAL TIME CLOCK * I  NCREMENT AND INTERRUPT WORK, AND THAT STATUS * REGISTER BIT 5 CONTROLS THE REAL TIME CLOCK * * IT IS CALCULATED TO WORK WITH A REAL TIME CLOCK * TIME BASE (RTCI) OF 10 HZ TO 10 KHZ * ********************************************* * * DATA * DELAY1 WORD :AA10 (-22000) 110 MS WITH 10 HZ RTCI DELAY2 WORD :FFF8 (-8) 8 TIMES 110 MS INNER LOOP * RTCTEST EQU $ REAL TIME CLOCK TEST ENTRY POINT COPY =:03,A RTC RUN CODE SELP A,4 OUTPUT TO CONSOLE DATA REGISTER COPY A,TEMP INITIALIZE LOOP COUNTER IMS TEMP DELAY LOOP FOR DISPLAY OF RUN CODE JMP  $-1 COPY =:30,Q RTC ERROR CODE COPY =:91,X RTC INCREMENT CELL LOCATION COPY =RTCSERV,A RTC INTERRUPT SERVICE ROUTINE LOCATION COPY A,2(X) STORE IN RTC INTERRUPT LOCATION (:93) COPY =-10,A INITIAL COUNT TO AREG COPY A,0(X) STORE IN INCREMENT CELL (:91) RSTFLAG RBIT OV,S ENSURE FLAG FOR EXPECTED INTERRUPT RESET COPY STATRI,A COPY A,S ENABLE RTC NOP SHOULD INCREMENT LOC :91 ONCE HERE  RBIT 5,S DISABLE RTC COPY 0(X),A FETCH RTC INCREMENT CELL CSK A,=-9 CHECK INCREMENT CELL  JST ERRDSPLY DID NOT INCREMENT - CANNOT ENABLE RTC JST ERRDSPLY INCREMENTED MORE THAN ONCE COPY DELAY1,Y TITL RTCLOOP1 OUT A,2 RESET WATCHDOG TIMER IJNE Y,RTCLOOP1 DELAY FOR > 1 TIC INTERVAL AT 10 HZ RTCI COPY 0(X),A FETCH RTC INCREMENT CELL CSK A,=-9 CHECK THAT INCREMENT CELL DID NOT CHANGE NOP JST ERRDSPLY CANNOT DISABLE RTC SETFLAG SBIT OV,S SET FLAG FOR EXPECTED INTERRUPT SBIT 5,S ENABLE RTC RTCLOOP2 COPY DELAY1,Y LOC :91 SHD INC FROM -8 (:FFF8) AT BEGINNING RTCLOOP3 OUT A,2 RESET WATCHDOG TIMER IJNE Y,RTCLOOP3 DELAY FOR > 1 TIC INTERVAL AT 10 HZ RTCI IMS DELAY2 DELAY FOR > TIME TO COUNT TO ZERO COMMENT  AT 10 HZ RTCI JMP RTCLOOP2 JST ERRDSPLY NO RTC INTERRUPT RTCSERV ENT INTERRUPT SERVICE ROUTINE CKFLAG JT OV,$+2 CHECK FLAG FOR EXPECTED INTERRUPT JST ERRDSPLY INTERRUPTED TOO SOON - CAN'T DISABLE RTC  COPY 0(X),A FETCH INCREMENT CELL JEQ A,$+2 JST ERRDSPLY LOC :91 NOT ZERO COPY =ERRUX1,A COPY A,2(X) RESTORE ERROR TRAP IN LOC :93 JMP SALTEST EXIT TO NEXT TEST LPOOL TITL SOFTWARE AUTOLOAD TEST NAM SALTEST ****************************************************************** * * ----------SOFTWARE AUTOLOAD TEST---------- * * TEST PROGRAMS ARE LOADED INTO SCRATCHPAD MEMORY LOCATIONS * RESERVED IN THE NUCLEUS SECTION.  (LOCATIONS :01 - :07) * EXECUTION OF THE SAL INSTRUCTION IS TESTED FOR ALL COMBINATIONS * OF EXECUTION (BIT 13) AND CHAIN (BIT 14) BIT SETTINGS NOT * ALREADY USED TO LOAD AND EXECUTE THIS ISOLITE TEST PROGRAM. * * DURING THE SAL TEST THE NUMBER :0004 IS WRITTEN TO THE CONSOLE * DATA REGISTER. * * NOTE: * * IN NO CASE IS THE CHAIN INSTRUCTON ACTUALLY EXECUTED, ONLY * ITS EXISTENCE IS CHECKED FOR. THE CHAIN INSTRUCTION IS ANOTHER * SAL INSTRUCTION OF A F ORM ALREADY BEING TESTED HERE, THEREFORE * IT NEED NOT BE ACTUALLY EXECUTED. FURTHERMORE, NO ASSUMPTIONS * HAVE BEEN MADE CONCERNING THE EXISTENCE OF OTHER BOARDS IN THE * SYSTEM CONTAINING AUTOLOAD ROMS AND THEREFORE THE EFFECT OF *  EXECUTING A CHAIN INSTRUCTION AT THIS TIME IS UNDEFINED. * ******************************************************************* TITL *************************************************************** * * INITIALIZE SAL TEST SET UP * **************************************************************** * * CLEAR SCRATCHPAD AREA TO BE USED * SALTEST EQU $ COPY  =:04,A SELP A,4 OUTPUT THE TEST INDICATOR COPY A,TEMP INITIALIZE LOOP COUNTER IMS TEMP  DELAY LOOP FOR DISPLAY OF TEST INDICATOR JMP $-1 OUT A,2 RESET WATCHDOG TIMER C00000 COPY STATSVX,A COPY A,S CLEAR STATUS COPY =0,A COPY =:06,X USE XREG AS LOOP COUNTER C00001 COPY A,1(X) CLEAR MEM LOCATIONS :0001 - :0007 JNED X,C00001 REPEAT UNTIL X=0 COPY JSTSAL,A SET UP ERROR TRAP FOR POSSIBLE COPY A,0 EXECUTE BIT FAILURE * * MUST NOP ABOVE LOCATION IF WISH TO USE DEBUG BREAKPOINTS * TITL ************************************************************** * * SAL TEST 1: NO CHAIN - NO EXECUTE * * SALTEST FILE 1 CONSISTS 4 JST INDIRECT TO ERRSAL INSTRUCTIONS * (:BD20) LOADED AT LOCATION :03. * * AN EXECUTION ADDRESS IS SPECIFIED (:05) , ALTHOUGH TH EXECUTE * BIT IS OFF. * * IF THE PROGRAM IS ERRONEOUSLY EXECUTED, IT WILL VECTOR TO * ERRSAL. * **************************************************************** C00100 EQU $ SALTEST1 EQU $ * SAL 12,0 LOAD SALTEST 1 FILE * * PROGRAM EXECTUTION SHOULD RETURN TO SAL INSTR+1 (SVEXIT) * * TEST THE OVERFLOW BIT - SHOULD BE 0 * JF OV,$+2  JST ERRSAL OV NOT= 0 * COPY JSTSAL,A JST INDIR TO ERRSAL INST (:BD20) COPY =3,X C00101 CSK A,3(X) CHECK MEMORY FOR PROGRAM EXISTENCE NOP JST ERRSAL SAL PROGRAM LOAD FAILED JNED X,C00101 REPEAT UNTIL X=0 * COPY =0,A CLEAR AREG FOR CHAIN TEST  CSK A,:07 LOC :07 SHOULD BE 0 (NO CHAIN INSTR) NOP JST ERRSAL CHAIN BIT FAILURE ENDSAL1 EQU $ FALL THRU TO NEXT TEST TITL *************************************************************** * * SAL TEST 2: NO CHAIN - DO EXECUTE * * SALTEST FILE 2 IS A SINGLE INSTRUCTION: JMP *RETADDR (:9D01). * (RETADDR IS FILLED PRIOR TO THE SAL) * * THE LOAD ADDRESS IS :02. * * THE EXECUTION ADDRESS IS :02 * **************************************************************** C00200 EQU $ SALTEST2 EQU $ * COPY P,A GET THE CURRENT LOCATION ADD =C00201-$,A A POINTS TO THE RETURN LOCATION (C00201) COPY A,RETADDR SET UP THE RETURN * SAL 13,0 LOAD AND EXECUTE SALTEST 2 FILE * JST ERRSAL EXECUTE BIT FAILURE C 00201 COPY JSTSAL,Q JST INDIR TO ERRSAL INST (:BD20) * CSK Q,:03 LOC :03 SHOULD HAVE :BD20 FROM TEST 1 NOP JST ERRSAL CHAIN BIT FAILURE ENDSAL2 EQU $ FALL THRU TO NEXT TEST TITL ************************************************************** * * SAL TEST 3: CHAIN - NO EXECUTE * * SALTEST FILE 3 CONSISTS OF 4 JST INDIRECT TO ERRSAL INSTRUCTIONS * (:BD20), LOADED AT LOCATION :02. * * AN EXECUTION ADDRESS (:04) IS SPECIFIED, ALTHOUGH THE EXECUTE * BIT IS OFF. * * IF THE PROGRAM IS ERRONEOUSLY EXECUTED, IT WILL VECTOR TO * ERRSAL. * **************************************************************** C00300 EQU $ SALTEST3 EQU $ *  SAL 14,0 LOAD SALTEST 3 FILE * COPY SAL141,A SAL 14,1 (:66E1) * * NOTE: LOC :06 SHOULD CONTAIN A SAL 14,1 (:66E1) IF LOOPEN IS OFF, * OR A SAL 0,1 (:6601) IF LOOPEN IS ON. * CSK A,:06 LOC :06 SHOULD CONTAIN A SAL 14,1 (:66E1) NOP JMP $+1 LOOPEN ON - GO CHECK FOR SAL 0,1 JMP  SALTEST4 LOOPEN OFF - GO TO NEXT TEST COPY SAL01,A SAL 0,1 (:6601) CSK A,:06 TEST FOR SAL 0,1 NOP JST ERRSAL CHAIN BIT FAILURE ENDSAL3 EQU $ FALL THRU TO NEXT TEST TITL ************************************************************** * * SAL TEST 4: ATTEMPT TO LOAD NONEXISTENT PROGRAM * *************************************************************** * C00500 EQU $ SALTEST4 EQU $ SAL 11,0  ROUTINE 11 IS A NULL ROUTINE * * THE OVERFLOW BIT SHOULD HAVE BEEN SET * JT OV,$+2 IF OV = 1, GO TO NEXT TEST JST ERRSAL OV NOT SET TITL MEMORY TEST NAM MEMTEST ************************************************************************ * * ------ MEMORY TEST ------ * * MEMORY TEST FIRST STARTS A BACKGROUND TASK (WATCHDOG) TO KEEP THE * WATCHDOG TIMER RESET IF A BBU IS INSTALLED IN SYSTEM. * * THEN, USING THE VARIABLE RAMSIZ CALCULATED IN BITTEST AS THE TOP * OF RAM POINTER, ALL UNUSED RAM IS TESTED WITH AN ADDRESS TEST AND * A SPIRAL ONE'S TEST. * ************************************************************************ * * DISPLAY RAM SIZE AND TEST CODE * MEMTEST EQU $  COPY RAMSIZ,A SHIFT A,R,1 COMPUTE MEMORY SIZE IN K-BYTES COMMENT - OPTIONAL INSTRUCTION - ADD =1,A COPY =-256,Q :FF00 TO QREG AND Q,A MASK OFF LOWER BYTE  OR =:05,A ADD IN TEST CODE SELP A,4 OUTPUT TO CDR * * INITIALIZE WATCHDOG TIMER RESET *  COPY =:91,Y RTC INCREMENT CELL COPY =-9,Q .9 SEC COUNT WITH 10 HZ RTCI COPY Q,0(Y)  STORE COUNT IN INCREMENT CELL (:91) COPY =WATCHDOG,Q WATCHDOG TIMER SUBROUTINE ADDRESS COPY Q,2(Y)  STORE IN RTC INTERRUPT LOC (:93) OUT Q,2 RESET WATCHDOG TIMER - QREG DON'T CARE COPY STATRI,A  COPY A,S ENABLE RTC TITL ADDRTEST ************************************************************************ O0SEGMENTBLANK oim MACRO (F200) @820922155013820922155013830208143259OVicEdDanoG¼+¼+¼+¼+¼+¼+¼+¼+ðªUÿÿððÿÿ€@DDUUffªªÿþ@`Ÿ€¿€¼+½ (fffáþ¼+I¼1¼+I@¼1¼+Ið¼1¼+Iñ¼1¼+æ®anp`Gdb ;a³¼+Æ¢æ¢i‘H÷BÄ@œâœ…<¼+†”¦”Æ”æ”p†“P†’0†‘ Á ††ŒÞ‚ ¼+¼+¼+¼+¼+¼+¼+¼+¼+¼+ßÞr¢tÂtât‚tp‚sP‚s‚hŽhÇ‚l0‚l‚bŸŽIò¼1¿€g¼+¼+¼+¼+¿€.¼+¼+¿€.¼+¼+¿€G¼+¼+¿€+¿€+¼+¼+¼+¼+¼+¼+¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.  €0)4f @ Kž„ÀKÄ+€€@ Ā؀QF˜€BI¼1 ž‰„€€ À D I¸ ¼1„ `ÜGžY€£‡À„€@*ž†+žz¼ €0  ¼% ¼%ž¼% ž‚¼%IM¼%‚ ÿ¼%™Mÿ¼%I„ÀMÿ¼%¸¼%ºŒ¼%¸ ¼%ž¼%Àøž‚¼%žÿI€ @ ø¼%`@`ø¼%Ip@pø¼%IP@Pø¼%I€0@0ø¼%À @ ¸¼%€Až¼%Á¼%Á¼%Až¼%IQA¼%QÁž¼%SÁž¼%RÁ¼%RAž¼%SA¼%)2Áž¼%2A¼%€ÀÄ´º‘¼%À€„Øú‹¼%€ÀÄ” ð¼%žƒðÿðI €”º’¼%à”@`ú¼% • º‰¼%`ÀFú„¼%ž…ªªUUU€€ºž¼%¢y-U¼%Iÿø¼%€„¸¼% †„¾ƒ„%œ& ‚ˆº}žž†„%œ&ff« „„) ªIU%„€Ä'€¸¼% „‚K„g€…¸¼%€…¸¼%e€À@ú¡¼%À  G º›¼% à`%`º•¼%%/À'ø¼%6Â6B¼%¼%6B6¼%¼%ž…""wwÌÌ‚~ ÿ¸¼%ÀKø¼%6A¼% *« ¸¼%àjÿ`¸¼%6A¼%)œ€„‚‚¯„ƒ †«†©‚«P‚ªpþƒ¼%ž¼%pº¤¼%‚º¡¼%‚Ÿ„ƒþ‚¼%ž¼%€€º™¼%€ºv¼%€„‚ .„ƒžn+GON):9€0€¸¼%6Á¼%ÀN!ú¨¼%6A¼% . º¡¼%6A¼%àn™m¼%6Á¼%itÁ¼%m¼%€0€‰BŠ ¼%VÁ¼%ž…‰UP*ª)¨‚Š„ƒ€„€ig¼%¼+žˆ˜QD=NQ±œMQûL Cž¼%‚uÂuž‚QûL\«ºn¼%úl¼%‚uºi¼%‚rºf¼%6A¼%VA¼%€IO ¸¼%ø¼%6Á¼%)‚†‰€†‰€nظ¼%ž…Ùi) „Gt@ ¼%' ê¼%žˆ ‚º}ž‚ÞzŸy¼% õ¼%Ü$Ÿ‚žƒèê i„‚”„C€0€„ „@„AI ¼1 H÷T¿Üžt .„Cž„ ªÿø „Üž~I0)‘‚¤„‚ö„€€0W€€º›¼1¼1âit¾€€º”¼1Uâ`t¾Þ^ž{¼1 6A¼1€€A¼1 +„‚žƒ;ÿ÷ „Üž~€0 )„5¾€„fÀ6Á¼(€)¸ƒ¼(5¼ ¸¼( „fм(Àø¼(fà€#¸ž€ž„€"¸¼(f°6A¼(€ HDi‘H÷Ä@I<ÄBB€0¢´À¤€@*ž‚+ž{¢­ ˜€BIP¼1@*ž‚+žwÀà ¢¡`„€@*žƒ+žz¢™à `˜€BIQ¼1@*žƒ+nžvà nä 6§ 0€!†‡ž…¾mF1EBE5E3--E3E1¬%ø¼%6Á¼%)‚†‰€†‰€nظ¼%ž…Ùi) „Gt@ ¼%' ê¼%žˆ ‚º}ž‚ÞzŸy¼% õ¼%Ü$Ÿ‚1PAGE 0001 MULTI-TASKING LINKER (F1) 1983/02/09 11:55:27 FILE USAGE SUMMARY DM1.NM408:CPU.BIN=DM1.NM408:CPU.OBJ 1PAGE 0002 MULTI-TASKING LINKER (F1,EB,E5,E3,--,E3,E1) 1983/02/09 11:55:50 ALL SYMBOLS  THE TRANSFER ADDRESS IS 00AC(0SEGMENT) ABSOLUTE SYMBOLS (0000 - FFFE) 00AC-BITTEST 0197-BAIDTEST 02FC-UITEST 0347-SALTEST 03B3-DONE 00AC-START 02A2-EXIDTEST 0318-RTCTEST 0378-MEMTEST 03BC-ENDPGM 00E8-BCTEST MEMORY RELOCATABLE (0000 - FFFF) 0000-R:LOW FFFF-R:HIGH NO WARNINGS FILE USAGE SUMMARY DM1.NM408:CPU.BIN=DM1.NM408:CPU.OBJ 1PAGE 0002 MULTI-TASKING LINKER (F1,EB,E5,E3,--,E3,E1) 1983/02/09 11:55:50 ALL SYMBOLS   THE TRANSFER ADDRESS IS 00AC(0SEGMENT) ABSOLUTE SYMBOLS (0000 - FFFE) 00AC-BITTEST 0197-BAIDTEST 02FC-UITEST 0347-SALTEST 03B3-DONE 00AC-START 02A2-EXIDTEST 0318-RTCTEST 0378-MEMTEST 03BC-ENDPGM 00E8-BCTEST MEMORY RE1PAGE 0001 MACRO (F200) SCOUT NM4/08 CPU ISOLITE SALTEST FILES 1 & 3 84-93735-11 A000 1983/02/09 11:54:51.00 SALTEST FILES 1 & 3 SI = DM01.SALTST1:3.ASM SO = DM01.SALTST1:3.OBJ LO = DM01.SALTST1:3.LST 0003 *************************************************************** 0004 * 0005 * COPYRIGHT 1982, COMPUTER AUTOMATION, INC. 0006 * 0007 * THE FOLLOWING CODE IS DESIGNED TO BE DOWNLOADED AS PART OF THE 0008 * SOFTWARE AUTOLOAD TEST. IF ERROUNEOUSLY EXECUTED, WILL JUMP AND 0009 *  STORE INDIRECT TO THE ADDRESS IN LOCATION :20. THE XA BIT (BIT 6) 0010 * IN THE STATUS REGISTER MUST BE SET = 1 IF THE INDIRECT ADDRESS 0011 * POINTER IN LOCATION :20 WILL BE ABOVE :7FFF. 0012 * 0013 * LOAD IN ISOLITE ROM AS FOLLOWS: 0014 * 0015 * FILE NO. 12, NO CHAIN, NO EXECUTE, LOAD ADDRESS = :3 0016 * (EXECUTE ADDRESS WILL = :5)  0017 * 0018 * AND 0019 * 0020 * FILE NO. 14, CHAIN, NO EXECUTE, LOAD ADDRESS = :2 0021 * (EXECUTE ADDRESS WILL = :4)  0022 * 0023 *************************************************************** 0000 BD20 0024  RES 2,:BD20 JST INDIR TO ERRSAL INSTRUCTION (:BD20) 00000002 0025 X:TEST:1 EQU $ 0002 BD20 0026 RES 2,:BD20 2 MORE JST INDIR TO ERRSAL INSTRUCTIONS 0002 0027 END X:TEST:1  0000 ERRORS (0000/0000) 0000 WARNINGS (0000/0000) 0021 * (EXECUTE ADDRESS WILL = :4)  0022 * 0023 *************************************************************** 0000 BD20 0024 1PAGE 0001 MACRO (F200) SCOUT NM4/08 CPU ISOLITE SALTEST FILE 2 84-93735-12 A000 1983/02/09 11:55:02.25 SALTEST FILE 2 SI = DM01.SALTST2.ASM SO = DM01.SALTST2.OBJ LO = DM01.SALTST2.LST 0003 *************************************************************** 0004 * 0005 * COPYRIGHT 1982, COMPUTER AUTOMATION, INC.  0006 * 0007 * THE FOLLOWING CODE IS DESIGNED TO BE DOWNLOADED AS PART OF THE  0008 * SOFTWARE AUTOLOAD TEST. WHEN EXECUTED, WILL JUMP INDIRECT TO 0009 * ADDRESS IN LOCATION :1. THE XA BIT (BIT 6) IN THE STATUS 0010 * REGISTER MUST BE SET = 1 IF THE INDIRECT ADDRESS POINTER IN 0011 * LOCATION :1 WILL BE ABOVE :7FFF. 0012 * 0013 * LOAD IN ISOLITE ROM AS FOLLOWS: 0014 * 0015 * FILE NO. 13, NO CHAIN, EXECUTE, LOAD ADDRESS = :2  0016 * (EXECUTE ADDRESS WILL = :2) 0017 * 0018 *************************************************************** 00000000 0019 X:TEST:2 EQU $ 0000 9D01 0001 0020  JMP *1 A RETURN POINTER WILL BE PLACED IN LOC 1 BY SALTEST 0000 0021 END X:TEST:2  0000 ERRORS (0000/0000) 0000 WARNINGS (0000/0000) 0015 * FILE NO. 13, NO CHAIN, EXECUTE, LOAD ADDRESS = :21PAGE 0001 MACRO (F200) SCOUT NM4/08 CPU ISOLITE BOARD ID FILE 84-93735-13 A000 1983/02/09 11:55:13.50 NM4/08-01 CPU BOARD ID FILE SI = DM01.NM408CPU:ID.ASM SO = DM01.NM408CPU:ID.OBJ LO = DM01.NM408CPU:ID.LST 0003 ************************************************************************ 0004 * 0005 * COPYRIGHT 1983, COMPUTER AUTOMATION, INC. 0006 * 0007 * THIS DATA FILE MAY BE LOADED INTO LOCATIONS :1D THRU :1F BY ANY 0008 * PROGRAM TO DETERMINE IF A SCOUT NM4/08-01 CPU IS INSTALLED IN THE  0009 * SYSTEM. EXECUTING A SAL 2,0 INSTRUCTION WILL LOAD THIS FILE. 0010 * NO CHAIN INSTRUCTION WILL BE WRITTEN AND THE FILE WILL NOT BE 0011 * EXECUTED. AFTER THIS FILE IS LOADED, PROGRAM EXECUTION WILL 0012 * CONTINUE WITH THE INSTRUCTION FOLLOWING THE SAL 2,0 INSTRUCTION. 0013 *  IF THIS FILE IS ERROUNEOUSLY EXECUTED, THE INSTRUCTION AT 0014 * LOCATION :0 WILL BE EXECUTED.  0015 * 0016 * THE NM4/08 CPU ISOLITE TEST PROGRAM DOES NOT PRESENTLY USE THIS  0017 * FILE. 0018 * 0019 * LOAD IN ISOLITE ROM AS FOLLOWS: 0020 * 0021 * FILE NO. 2, NO CHAIN, NO EXECUTE, LOAD ADDRESS = :1D 0022 *  (EXECUTE ADDRESS WILL = :0) 0023 * 0024 ************************************************************************ 0000 0000 0025 BDID1 WORD :0000 WORD 1 NOT USED 0001 0081 0026 BDID2 WORD :0081 WORD 2 CPU -- TYPE 4/08-01 0002 0000 0027 BDID3 WORD :0000 WORD 3 NOT USED  0000 0028 END :0000 0000 ERRORS (0000/0000) 0000 WARNINGS (0000/0000) 0022 * 󽬠€°Ð€€¼+¼+¼+¼+¼+¼+¼+¼+ðªUÿÿððÿÿ€@DDUUffªªÿþ@`Ÿ€¿€¼+½ (fffáþ¼+I¼1¼+I@¼1¼+Ið¼1¼+Iñ¼1¼+æ®anp`Gdb ;a³¼+Æ¢æ¢i‘H÷BÄ@œâœ…<¼+†”¦”Æ”æ”p†“P†’0†‘ Á ††ŒÞ‚ ¼+¼+¼+¼+¼+¼+¼+¼+¼+¼+ßÞr¢tÂtât‚tp‚sP‚s‚hŽhÇ‚l0‚l‚bŸŽIò¼1¿€g¼+¼+¼+¼+¿€.¼+¼+¿€.¼+¼+¿€G¼+¼+¿€+¿€+¼+¼+¼+¼+¼+¼+¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.  €0)4f @ Kž„ÀKÄ+€€@ Ā؀QF˜€BI¼1 ž‰„€€ À D I¸ ¼1„ `ÜGžY€£‡À„€@*ž†+žz¼ €0  ¼% ¼%ž¼% ž‚¼%IM¼%‚ ÿ¼%™Mÿ¼%I„ÀMÿ¼%¸¼%ºŒ¼%¸ ¼%ž¼%Àøž‚¼%žÿI€ @ ø¼%`@`ø¼%Ip@pø¼%IP@Pø¼%I€0@0ø¼%À  @ ¸¼%€Až¼%Á¼%Á¼%Až¼%IQA¼%QÁž¼%SÁž¼%RÁ¼%RAž¼%SA¼%)2Áž¼%2A¼%€ÀÄ´º‘¼%À€„Øú‹¼%€ÀÄ” ð¼%žƒðÿðI €”º’¼%à”@`ú¼% • º‰¼%`ÀFú„¼%ž…ªªUUU€€ºž¼%¢y-U¼%Iÿø¼%€„¸¼% †„¾ƒ„%œ& ‚ˆº}žž†„%œ&ff« „„) ªIU%„€Ä'€¸¼% „‚K„g€…¸¼%€…¸¼%e€À@ú¡¼%À  G º›¼% à`%`º•¼%%/À'ø¼%6Â6B¼%¼%6B6¼%¼%ž…""wwÌÌ‚~ ÿ¸¼%ÀKø¼%6A¼% *« ¸¼%àjÿ`¸¼%6A¼%)œ€„‚‚¯„ƒ †«†©‚«P‚ªpþƒ¼%ž¼%pº¤¼%‚º¡¼%‚Ÿ„ƒþ‚¼%ž¼%€€º™¼%€ºv¼%€„‚ .„ƒž+GON):9€0€¸¼%6Á¼%ÀN!ú¨¼%6A¼% . º¡¼%6A¼%àn™m¼%6Á¼%itÁ¼%m¼%€0€‰BŠ ¼%VÁ¼%ž…‰UP*ª)¨‚Š„ƒ€„€ig¼%¼+žˆ˜QD=NQ±œMQûL Cž¼%‚uÂuž‚QûL\«ºn¼%úl¼%‚uºi¼%‚rºf¼%6A¼%VA¼%€IO ¸¼%ø¼%6Á¼%)‚†‰€†‰€nظ¼%ž…Ùi) „Gt@ ¼%' ê¼%žˆ ‚º}ž‚ÞzŸy¼% õ¼%Ü$Ÿ‚žƒèê i„‚”„C€0€„ „@„AI ¼1 H÷T¿Üžt .„Cž„ ªÿø „Üž~I0)‘‚¤„‚ö„€€0W€€º›¼1¼1âit¾€€º”¼1Uâ`t¾Þ^ž{¼1 6A¼1€€A¼1 +„‚žƒ;ÿ÷ „Üž~€0 )„5¾€„fÀ6Á¼(€)¸ƒ¼(5¼ ¸¼( „fм(Àø¼(fà€#¸ž€ž„€"¸¼(f°6A¼(€ HDi‘H÷Ä@I<ÄBB€0¢´À¤€@*ž‚+ž{¢­ ˜€BIP¼1@*ž‚+žwÀà ¢¡`„€@*žƒ+žz¢™à `˜€BIQ¼1@*žƒ+nžvà nä 6§ 0€!†‡ž…¾½ ½ ½ ½ ½ ½ ½ ½  ’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’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’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’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’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’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’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’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’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’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’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 ’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’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’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’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’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’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’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’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’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’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’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’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’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 ’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’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’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’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’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’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’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’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’IJOB /ASEMISOCPU.JCL/ /REQUIRES SYSTEM TO BE SET TO 100 CHARACTERS/LINE MINIMUM MACRO NM408:CPU.ASM(L=,P=45,NOX) MACRO SALTST1:3.ASM(L=,P=45) MACRO SALTST2.ASM(L=,P=45) MACRO NM408CPU:ID.ASM(L=,P=45) JOB DI DF0 /PUT OS4 LINKER PRODUCT DISKETTE, VOL F46004, IN DF0 /ENTER: 'C' TO CONTINUE / 'X' TO ABORT PAUSE HERE MO DF0 AS LO=NM408:CPU.MAP LINK NM408:CPU.OBJ JOB DI DF0 /PUT OS4 UTILITIES #2 PRODUCT DISKETTE, VOL F46005, IN DF0 /ENTER: 'C' TO CONTINUE / 'X' TO ABORT PAUSE HERE MO DF0 CREATE NM408:CPU.CON AS LO=NM408:CPU.CON CNC NM408:CPU.ASM(P=45) //COPY NM408:CPU.LST=NM408:CPU.LST+NM408:CPU.CON(FL) DELETE NM408:CPU.CON AUTOGEN NM408:CPU(S=4096)=NM408:CPU.BIN(N=0,C,X,:0)+ NM408CPU:ID.OBJ(N=2,:1D)+ SALTST1:3.OBJ(N=12,:3)+SALTST1:3.OBJ(N=14,C,:2)+SALTST2.OBJ(N=13,X,:2) JOB /ENTER: 'C' TO PRINT LISTING / 'X' TO ABORT PAUSE DO LISTISOCPU 8:CPU.OBJ JOB DI DF0 /PUT OS4 UTILITIES #2 PRODUCT DISKETTE, VOL F46005, IN DF0 /ENTER: 'C' TO CONTINUE / 'X' TO ABORT PAUSE HERE MO DF0  * * ADDRESS TEST * * WRITES THE ADDRESS OF EACH UNUSED RAM LOCATION INTO ITSELF AND * THEN VERIFIES THAT EACH LOCATION CONTAINS ITS ADDRESS. * ************************************************************************ SPACE 1 ADDRTEST EQU $   COPY ENDPGM,X START ADDRESS TO INDEX COPY RAMSIZ,Q END ADDRESS TO QREG ADDR1 COPY X,0(X)  WRITE ADDRESS TO MEM CSN X,Q END OF RAM? JMP CKADDR YES - GO CHECK MEM ADD =1,X NO - INCREMENT INDEX JMP ADDR1 AND CONTINUE CKADDR COPY ENDPGM,X START ADDRESS TO INDEX ADDR2 COPY X,A EXPECTED DATA TO AREG XOR 0(X),A EXCLUSIVE OR MEM WITH EXPECTED DATA  JEQ A,ADDR3 IF AREG EQ ZERO, MEM OK COPY =:50,Q ADDRESS TEST ERROR JST ERRDSPLY ERROR EXIT ADDR3 CSN X,Q END OF RAM? JMP SPIRTEST YES - GO TO SPIRAL TEST ADD =1,X  NO - INCREMENT INDEX JMP ADDR2 AND CONTINUE TITL SPIRTEST ************************************************************************ * * SPIRAL TEST * * THIS TEST WILL WRITE A SPIRAL PATTERN IN ALL UNUSED RAM. THE FIRST * UNUSED LOCATION WILL HAVE BIT 0 A ONE IN A FIELD OF ZEROS. EACH * SUCCESSIVE LOCATION WILL HAVE THE ONES BIT ROTATED LEFT ONE * POSITION. THE CONTENTS OF MEMORY WILL THEN BE VERIFIED. * * THIS PROCEDURE WILL BE REPEATED WITH THE ONES BIT OF THE STARTING * PATTERN ROTATED LEFT ONE POSITION TILL ALL LOCATIONS HAVE HAD A * ONE IN EACH BIT POSITION. (16 PASSES TOTAL) * ************************************************************************ SPACE 1 SPIRTEST EQU $ COPY  RAMSIZ,Q END ADDRESS TO QREG COPY SPIRPAT,Y START PATTERN TO YREG - BEGIN WITH :0001 SPIR1 COPY ENDPGM,X START ADDRESS TO INDEX COPY Y,A START PATTERN TO AREG SPIR2 COPY A,0(X) WRITE PATERN  CSN X,Q END OF RAM? JMP CKSPIR YES - GO CHECK MEM ADD =1,X NO - INCREMENT INDEX ROTATE A,L,1 ROTATE PATTERN LEFT 1 BIT JMP SPIR2 AND CONTINUE CKSPIR COPY ENDPGM,X START ADDRESS TO INDEX COPY SPIRPAT,Y START PATTERN TO YREG - BEGIN WITH :0001 SPIR3 COPY Y,A EXPECTED DATA TO AREG XOR 0(X),A EXCLUSIVE OR MEM WITH EXPECTED DATA JEQ A,SPIR4 IF AREG EQ ZERO, MEM OK COPY =:51,Q SPIRAL TEST ERROR JST ERRDSPLY ERROR EXIT SPIR4 CSN X,Q END OF RAM? JMP NEXTPAT YES - GO SET UP NEXT PATTERN & CK IF THRU ADD =1,X NO - INCREMENT INDEX ROTATE Y,L,1 ROTATE PATTERN LEFT 1 BIT JMP SPIR3 AND CONTINUE NEXTPAT COPY SPIRPAT,Y FETCH CURRENT START PATTERN RBIT OV,S ENSURE OV RESET ROTATE Y,LO,1 ROTATE PATTERN LEFT 1 BIT THRU OV COPY Y,SPIRPAT STORE NEW START PATTERN JF OV,SPIR1 DO MORE IF OV NOT SET, ELSE EXIT TEST TITL PROGRAM EXIT * * PROGRAM EXIT ROUTINE * NAM DONE DONE EQU $ COPY =0,A  COPY A,S DISABLE INTERRUPTS & ENSURE WORD MODE COPY SAL00,A COPY A,ENDPGM+2 PLACE INSURANCE SAL JMP ENDPGM+1 CHAIN TO NEXT ISOLITE TEST LPOOL * * DATA * NAM ENDPGM ENDPGM WORD $+2  LOC TO PLACE INSURANCE SAL END START TELL ASSEMBLER WHERE ENTRY POINT IS JF OV,SPIR1 DO MORE IF OV NOT SET, ELSE EXIT TEST TITL PROGRAM EXIT * * PROGRAM EXIT ROUTINE * NAM DONE DONE EQU $ COPY =0,A  COPY A,S DISABLE INTERRUPTS & ENSURE WORD MODE COPY SAL00,A COPY A,ENDPGM+2 PLACE INSURANCE SAL JMP ENDPGM+1 CHAIN TO NEXT ISOLITE TEST LPOOL * * DATA * NAM ENDPGM ENDPGM WORD $+2 TITL SCOUT NM4/08 CPU ISOLITE SALTEST FILES 1 & 3 84-93735-11 A000 TITL SALTEST FILES 1 & 3 *************************************************************** * * COPYRIGHT 1982, COMPUTER AUTOMATION, INC. * * THE FOLLOWING CODE IS DESIGNED TO BE DOWNLOADED AS PART OF THE * SOFTWARE AUTOLOAD TEST. IF ERROUNEOUSLY EXECUTED, WILL JUMP AND * STORE INDIRECT TO THE ADDRESS IN LOCATION :20. THE XA BIT (BIT 6) * IN THE STATUS REGISTER MUST BE SET = 1 IF THE INDIRECT ADDRESS *  POINTER IN LOCATION :20 WILL BE ABOVE :7FFF. * * LOAD IN ISOLITE ROM AS FOLLOWS: * * FILE NO. 12, NO CHAIN, NO EXECUTE, LOAD ADDRESS = :3 * (EXECUTE ADDRESS WILL = :5) * * AND * * FILE NO. 14, CHAIN, NO EXECUTE, LOAD ADDRESS = :2 * (EXECUTE ADDRESS WILL = :4) * *************************************************************** RES 2,:BD20 JST INDIR TO ERRSAL INSTRUCTION (:BD20) X:TEST:1 EQU $ RES 2,:BD20 2 MORE JST INDIR TO ERRSAL INSTRUCTIONS END X:TEST:1 LOAD IN ISOLITE ROM AS FOLLOWS: * * FILE NO. 12, NO CHAIN, NO EXECUTE, LOAD ADDRESS = :3 * (EXECUTE ADDRESS WILL = :5) * * AND * * FILE NO. 14, CHAIN, NO EXECUTE, LOAD ADDRESS = :2 * (EXECUTE ADDRESS WILL = :4) * *************************************************************** RES 2,:BD20 JST INDIR TO ERRSAL INSTRUCTION (:BD20) X:TEST:1 EQU $ RES 2,:BD20 2 MORE JS TITL SCOUT NM4/08 CPU ISOLITE BOARD ID FILE 84-93735-13 A000 TITL NM4/08-01 CPU BOARD ID FILE ************************************************************************ * * COPYRIGHT 1983, COMPUTER AUTOMATION, INC. * * THIS DATA FILE MAY BE LOADED INTO LOCATIONS :1D THRU :1F BY ANY * PROGRAM TO DETERMINE IF A SCOUT NM4/08-01 CPU IS INSTALLED IN THE * SYSTEM. EXECUTING A SAL 2,0 INSTRUCTION WILL LOAD THIS FILE. * NO CHAIN INSTRUCTION WILL BE WRITTEN AND THE FILE WILL NOT BE *  EXECUTED. AFTER THIS FILE IS LOADED, PROGRAM EXECUTION WILL * CONTINUE WITH THE INSTRUCTION FOLLOWING THE SAL 2,0 INSTRUCTION. * IF THIS FILE IS ERROUNEOUSLY EXECUTED, THE INSTRUCTION AT * LOCATION :0 WILL BE EXECUTED. * * THE NM4/08 CPU ISOLITE TEST PROGRAM DOES NOT PRESENTLY USE THIS * FILE. * * LOAD IN ISOLITE ROM AS FOLLOWS: * * FILE NO. 2, NO CHAIN, NO EXECUTE, LOAD ADDRESS = :1D * (EXECUTE ADDRESS WILL = :0) * ************************************************************************ BDID1 WORD :0000 WORD 1 NOT USED BDID2 WORD :0081 WORD 2 CPU -- TYPE 4/08-01 BDID3 WORD :0000 WORD 3 NOT USED END :0000 RUCTION AT * LOCATION :0 WILL BE EXECUTED. * * THE NM4/08   LOC TO PLACE INSURANCE SAL END START TELL ASSEMBLER WHERE ENTRY POINT IS JF OV,SPIR1 DO MORE IF OV NOT SET, ELSE EXIT TEST TITL PROGRAM EXIT * * PROGRAM EXIT ROUTINE * NAM DONE DONE EQU $ COPY =0,A ’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’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’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’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’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’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’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’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’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’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’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’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 ’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’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’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’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’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’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’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’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’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’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’IJOB /LISTISOCPU.JCL/ PRINT NM408:CPU.LST PRINT SALTST1:3.LST PRINT SALTST2.LST PRINT NM408CPU:ID.LST PRINT NM408:CPU.MAP JOB 820922155013820922155013830208143259 TITL SCOUT NM4/08 CPU ISOLITE SALTEST FILE 2 84-93735-12 A000 TITL SALTEST FILE 2 *************************************************************** * * COPYRIGHT 1982, COMPUTER AUTOMATION, INC. * * THE FOLLOWING CODE IS DESIGNED TO BE  DOWNLOADED AS PART OF THE * SOFTWARE AUTOLOAD TEST. WHEN EXECUTED, WILL JUMP INDIRECT TO * ADDRESS IN LOCATION :1. THE XA BIT (BIT 6) IN THE STATUS * REGISTER MUST BE SET = 1 IF THE INDIRECT ADDRESS POINTER IN * LOCATION :1 WILL BE ABOVE :7FFF. * * LOAD IN ISOLITE ROM AS FOLLOWS: * * FILE NO. 13, NO CHAIN, EXECUTE, LOAD ADDRESS = :2 *  (EXECUTE ADDRESS WILL = :2) * *************************************************************** X:TEST:2 EQU $ JMP *1 A RETURN POINTER WILL BE PLACED IN LOC 1 BY SALTEST END X:TEST:2 L JUMP INDIRECT TO * ADDRESS IN LOCATION :1. THE XA BIT (BIT 6) IN THE STATUS * REGISTER MUST BE SET = 1 IF THE INDIRECT ADDRESS POINTER IN * LOCATION :1 WILL BE ABJMEMTEST SALTEST RTCTEST JUITEST EXIDTESTBAIDTESTJBCTEST ENDPGM BITTEST JSTART DONE O0SEGMENTBLANK oim MACRO (F200) @i ¼+¼+¼+¼+¼+¼+¼+¼+ ðªUÿÿððÿÿ€@DDUUff ªªÿþ@`Ÿ€¿€¼+½ (fffá þ¼+I¼1¼+I@¼1¼+Ið¼1¼+Iñ ¼1¼+æ®anp`Gdb ;a³ ¼+Æ¢æ¢i‘H÷BÄ@œâœ…<¼+ †”¦”Æ”æ”p†“P†’0†‘  Á ††ŒÞ‚ ¼+¼+ ¼+¼+¼+¼+¼+¼+¼+¼+ßÞr¢tÂt ât‚tp‚sP‚s‚hŽhÇ‚l 0‚l‚bŸŽIò¼1¿€g¼+¼+ ¼+¼+¿€.¼+¼+¿€.¼+¼+¿€G ¼+¼+¿€+¿€+¼+¼+¼+¼+¼+¼+ ¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.¼+¼+¿€.g g  €0)4f @ Kž„ÀKÄ+€€@ Ā؀QF ˜€BI¼1 ž‰„€€ À D  I¸ ¼1„ `ÜGžY€ £‡À„€@*ž†+žz¼g €0  ¼% ¼%ž ¼% ž‚¼%IM¼%‚ ÿ ¼%™Mÿ¼%I„ÀMÿ¼%¸ ¼%ºŒ¼%¸ ¼%ž¼%Àøž‚ ¼%žÿI€ @ ø¼%` @`ø¼%Ip@pø¼%IP @Pø¼%I€0@0ø¼%À @ ¸¼%€Až¼%Á¼%Á ¼%Až¼%IQA¼%QÁž¼%SÁž ¼%RÁ¼%RAž¼%SA¼%)2Áž¼% 2A¼%€ÀÄ´º‘¼%À€„ Øú‹¼%€ÀÄ” ð¼%žƒ ðÿðI €”º’¼%à”@` ú¼% • º‰¼%`ÀFú„¼%ž…ªªUUU€g €ºž¼%¢y-U¼%Iÿø¼% €„¸¼% †„¾ƒ„%œ&  ‚ˆº}žž†„%œ&ff«  „„) ªIU%„€Ä'€¸ ¼% „‚K„g€…¸¼%€ …¸¼%e€À@ú¡¼%À   G º›¼% à`%`º• ¼%%/À'ø¼%6Â6B¼% ¼%6B6¼%¼%ž…""wwÌÌ‚~ ÿ¸¼%ÀKø¼%6A¼%  *« ¸¼%àjÿ`¸¼%6A ¼%)œ€„‚‚¯„ƒ †«†©‚«P‚ª pþƒ¼%ž¼%pº¤¼%‚º¡ ¼%‚Ÿ„ƒþ‚¼%ž¼%€€º™¼%€ºv¼%€„‚ .„ƒž +GON):9€0€ ¸¼%6Á¼%ÀN!ú¨¼%6A¼%  . º¡¼%6A¼%àn™m ¼%6Á¼%itÁ¼%m¼%€0€ ‰BŠ ¼%VÁ¼%ž…‰ UP*ª)¨‚Š„ƒ€„€ig ¼%¼+žˆ˜QD=NQ±œMQûLg  Cž¼%‚uÂuž‚QûL\ «ºn¼%úl¼%‚uºi¼%‚r ºf¼%6A¼%VA¼%€IO ¸ ¼%ø¼%6Á¼%)‚†‰€†‰€ nظ¼%ž…Ùi ) „Gt@ ¼%' ê¼%žˆ  ‚º}ž‚ÞzŸy¼% õ¼%Ü$Ÿ‚žƒèêg i„‚”„C€0€„ „@„A I ¼1 H÷T¿Üžt .„Cž„ ªÿøg „Üž~I0)‘‚¤„‚ö„€ €0W€€º›¼1¼1âit¾€€ º”¼1Uâ`t¾Þ^ž{¼1  6A¼1€€A¼1 +„‚žƒ;ÿ÷g „Üž~€0 )„5¾ €„fÀ6Á¼(€)¸ƒ¼(5¼  ¸¼( „fм(Àø¼( fà€#¸ž€ž„€"¸¼(f°6A¼(g € HDi‘H÷Ä@I<ÄB B€0¢´À¤€@*ž‚+ž{¢­  ˜€BIP¼1@*ž‚+žwÀà ¢¡` „€@*žƒ+žz¢™à `˜€BIQ ¼1@*žƒ+nžvà nä 6§g  0€!†‡ž…g¾¬¼%' ê¼%žˆ  ‚º}ž‚ÞzŸy¼% õ¼%Ü$Ÿ‚žƒèêg i„‚”„C€0€„ „@„A I ¼1 H÷T¿Üžt .„Cž„ ªÿøg „Üž~I0)‘‚¤„‚ö„€ €0W€€º›¼1¼1âit¾€€ º”¼1Uâ`t¾Þ^ž{¼1  6A¼1€€A¼1 +„‚žƒ;ÿ÷ Y ENDPGM,X START ADDRESS TO INDEX 0388 C008 0008 1714 COPY RAMSIZ,Q END ADDRESS TO QREG 0389 A480 0000 1715 ADDR1 COPY X,0(X) WRITE ADDRESS TO MEM 038A 402A 1716 CSN X,Q END OF RAM? 038B 9E82 038E 1717 JMP CKADDR YES - GO CHECK MEM 038C 2B01 1718 ADD =1,X  NO - INCREMENT INDEX 038D 9E7B 0389 1719 JMP ADDR1 AND CONTINUE 038E A2AD 03BC 1720 CKADDR COPY ENDPGM,X START ADDRESS TO INDEX 038F 0020 1721 ADDR2 COPY X,A EXPECTED DATA TO AREG 0390 9880 0000 1722 XOR 0(X),A EXCLUSIVE OR MEM WITH EXPECTED DATA 0391 1142 0394 1723 JEQ A,ADDR3 IF AREG EQ ZERO, MEM OK 0392 4950 1724 COPY =:50,Q ADDRESS TEST ERROR 0393 BC31 0031 1725 JST ERRDSPLY ERROR EXIT 0394 402A 1726 ADDR3 CSN X,Q END OF RAM? 0395 9E82 0398 1727 JMP SPIRTEST YES - GO TO SPIRAL TEST 0396 2B01 1728 ADD =1,X NO - INCREMENT INDEX 0397 9E77 038F 1729 JMP ADDR2 AND CONTINUE 1PAGE 0064 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:38.00 SPIRTEST 1731 ************************************************************************ 1732 * 1733 * SPIRAL TEST  1734 * 1735 * THIS TEST WILL WRITE A SPIRAL PATTERN IN ALL UNUSED RAM. THE FIRST 1736  * UNUSED LOCATION WILL HAVE BIT 0 A ONE IN A FIELD OF ZEROS. EACH 1737 * SUCCESSIVE LOCATION WILL HAVE THE ONES BIT ROTATED LEFT ONE 1738 * POSITION. THE CONTENTS OF MEMORY WILL THEN BE VERIFIED.  1739 * 1740 * THIS PROCEDURE WILL BE REPEATED WITH THE ONES BIT OF THE STARTING 1741 * PATTERN ROTATED LEFT ONE POSITION TILL ALL LOCATIONS HAVE HAD A 1742 * ONE IN EACH BIT POSITION. (16 PASSES TOTAL) 1743 * 1744 ************************************************************************ 00000398 1746 SPIRTEST EQU $ 0398 C008 0008 1747 COPY RAMSIZ,Q END ADDRESS TO QREG 0399 E00A 000A 1748 COPY SPIRPAT,Y START PATTERN TO YREG - BEGIN WITH :0001 039A A2A1 03BC 1749 SPIR1 COPY ENDPGM,X START ADDRESS TO INDEX 039B 0060 1750 COPY Y,A START PATTERN TO AREG 039C 8480 0000 1751 SPIR2 COPY A,0(X) WRITE PATERN 039D 402A 1752 CSN X,Q END OF RAM? 039E 9E83 03A2 1753 JMP CKSPIR YES - GO CHECK MEM 039F 2B01 1754 ADD =1,X  NO - INCREMENT INDEX 03A0 0E02 1755 ROTATE A,L,1 ROTATE PATTERN LEFT 1 BIT 03A1 9E7A 039C  1756 JMP SPIR2 AND CONTINUE 03A2 A299 03BC 1757 CKSPIR COPY ENDPGM,X START ADDRESS TO INDEX 03A3 E00A 000A 1758 COPY SPIRPAT,Y START PATTERN TO YREG - BEGIN WITH :0001 03A4 0060 1759 SPIR3   COPY Y,A EXPECTED DATA TO AREG 03A5 9880 0000 1760 XOR 0(X),A EXCLUSIVE OR MEM WITH EXPECTED DATA 03A6 1142 03A9 1761 JEQ A,SPIR4 IF AREG EQ ZERO, MEM OK 03A7 4951 1762 COPY  =:51,Q SPIRAL TEST ERROR 03A8 BC31 0031 1763 JST ERRDSPLY ERROR EXIT 03A9 402A 1764 SPIR4 CSN X,Q END OF RAM? 03AA 9E83 03AE 1765 JMP NEXTPAT YES - GO SET UP NEXT PATTERN & CK IF THRU 03AB 2B01 1766 ADD =1,X NO - INCREMENT INDEX 03AC 6E02 1767 ROTATE Y,L,1 ROTATE PATTERN LEFT 1 BIT 03AD 9E76 03A4 1768 JMP SPIR3 AND CONTINUE 03AE E00A 000A 1769  NEXTPAT COPY SPIRPAT,Y FETCH CURRENT START PATTERN 03AF 0E17 1770 RBIT OV,S ENSURE OV RESET 03B0 6E03 1771 ROTATE Y,LO,1 ROTATE PATTERN LEFT 1 BIT THRU OV 03B1 E40A 000A 1772 COPY Y,SPIRPAT STORE NEW START PATTERN 1PAGE 0065 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:39.75 SPIRTEST 03B2 36A7 039A 1773 JF OV,SPIR1 DO MORE IF OV NOT SET, ELSE EXIT TEST 1PAGE 0066 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:40.00 PROGRAM EXIT  1775 * 1776 * PROGRAM EXIT ROUTINE 1777 * 03B3 1778  NAM DONE 000003B3 1779 DONE EQU $ 03B3 0900 1780 COPY =0,A 03B4 3000 1781 COPY A,S DISABLE INTERRUPTS & ENSURE WORD MODE 03B5 8021 0021 1782 COPY SAL00,A 03B6 8687 03BE 1783 COPY A,ENDPGM+2 PLACE INSURANCE SAL 03B7 9E85 03BD 1784 JMP ENDPGM+1 CHAIN TO NEXT ISOLITE TEST 0004 1785 LPOOL 03B8 03B9 03BA 03BB 1786 * 1787 * DATA 1788 * 03BC 1789 NAM ENDPGM 03BC 03BE 1790 ENDPGM WORD $+2 LOC TO PLACE INSURANCE SAL 00AC 1791 END START TELL ASSEMBLER WHERE ENTRY POINT IS 0000 ERRORS (0000/0000) 0000 WARNINGS (0000/0000) 1PAGE 0001 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:18 0494 A00200 1383 0529 A00300 0581 A00400 0567 0651  A00500 0708 A00600 0718 A00601 0728 A00602 0751 A00700 0736 0755 A00701 0781  0773 A00702 0782 0786 A00END 1715 ADDR1 1719 1721 ADDR2 1729 1726 ADDR3 1723 1712 ADDRTEST 0306 ARERR 0307 ARERR0 0310 ARERR1 U 0000 AT 1482 0842 B00200  0879 B00210 0881 B00211 0879 0893 B00220 0880 0939 B00300 1004 B00400 0991  1061 B00401 1071 1064 B00402 1051 1066 B00403 1060 1082 B00405 1094 1083 B00406 1086 B00407 1082 1090 1088 B00408 1080 1123 B00500 1104 1200 B00600 1190   1208 B00601 1209 B00602 1212 B00603 1202 1239 B00604 1407 B00701 1420 1411 B00702 1412 B00703 1416 B00704 1401 1PAGE 0002 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:18 0378 BADRAM N 0841 BAIDTEST 0779 0788 N 0491 BCTEST 0424 0429 0356 BITLOOP1 0410 0418 BITLOOP2 0426 N 0346 BITTEST 0313 1537 C00000 1541 C00001 1542  1563 C00100 1577 C00101 1580 1600 C00200 1610 C00201 1604 1631 C00300 1657 C00500 0783 CEL000 0757 0763 0784 CEL010 0769 0775 1191 CEL100 1183 1192 1332 CEL130  1322* 1326 1333 CEL131 1321 1334 CEL132 1324* 1192 CELADR 1184 0781 CELLOC1 0756 0761 0767 0782 CELLOC2 0774 1720 CKADDR 1717 1486 CKFLAG 1757 CKSPIR 1753 0037 CY 1299 D21010 0199 DATSAV 0185* 0225 1444 DELAY1 1468 1478 1445 DELAY2 1481* N 1779 DONE 0141 1778 0371 DOTEST 0366 U 0000 ENABLED 0140 1285 ENDADDF 1336 ENDANDE 1330 0414 ENDBIT 0356 1353 ENDCEA 1386 ENDIDP 1384 1380 ENDJMPE 1378 N 1790 ENDPGM 0416 1713 1720 1749 1757 1783 1784 1789 1586 ENDSAL1 1PAGE 0003 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:19 1615 ENDSAL2 1649 ENDSAL3 1311 ENDSHIFT 0288 ENDSTX 0131 ERRDSPLY 0110* 0114* 0118* 0122* 0231* 0379* 0405* 1414* 1466* 1467* 1475* 1484* 1487* 1490* 1725* 1763* 0108 ERRIDP 0501* 0504* 0506* 0511* 0516* 0534* 0539* 0546* 0550* 0554* 0557* 0559* 0565* 0590* 0597* 0606* 0615* 0625* 0634* 0655* 0658* 0661* 0665* 0669*  0673* 0677* 0680* 0684* 0687* 0692* 0695* 0715* 0725* 0735* 0759* 0765* 0771* 0777* 0846* 0851* 0856* 0862* 0873* 0874 0882* 0883 0907* 0923* 0929* 0944* 0951* 0959* 0972* 0983* 0984* 0989* 0990* 1008* 1016* 1018* 1030* 1039* 1041* 1062* 1065* 1069* 1073* 1084* 1087* 1092* 1096* 1130* 1132* 1137* 1139* 1151* 1153* 1159* 1161* 1170*  1173* 1187* 1189* 1210* 1244* 1269* 1272* 1276* 1280* 1282* 1284* 1305* 1308* 1310* 1329* 1352*  1366* 1377* 1379* 0112 ERRSAL 0098 1573* 1579* 1585* 1609* 1614* 1648* 1664* 0116 ERRUX1  0043* 0045* 0046* 0047* 0048* 0049* 0050* 0051* 0094* 0108* 0112* 0116* 0120* 0131* 0152* 0167*  0191* 0192* 0193* 0194* 0195* 0196* 0197* 0198* 0199* 0204* 0238* 0239* 0243* 0244* 0250* 0251* 0257* 0258* 0261* 0265* 0267 0272 0273* 0274* 0278* 0279* 0280* 0281* 0285* 0286* 0292* 0293* 0299* 0300* 0307* 0308* 1212* 1491 0120 ERRUX2 0246 0253 0288  0295 0302 0310 1102 1422 N 1240 EXIDTEST 1213 1216 1256 FLOAT1 1262 FLOAT2 1266 1273 1277  1265 FLOAT3 0382 GOODRAM 0375 1319 H16000 1362 H19000 R 1363 H19000 1365 H19001 1370 1369 H19002 1364* 1371 1374* 1375 1377 H19003 1373 1378 H19004 1367 1344 H22000  0103 IDPCNT 1382* 1PAGE 0004 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:19 0839 INDIR 0916 0092 JMP1 1049 0093 JST1 1100 0875 JSTLOC 0870* 0871* 0877 0872 JSTRTN 0876 0096 JSTSAL 1543 1575 1610 0094 JSTUX1 0415 0243 LOC84 0244 LOC85 0402 MEMSIZE 0368 0370 0381 N 1682 MEMTEST 1666 1769 NEXTPAT 1765 0038 OV  0190 PDNCT 0186* 0220 0260 PDNPTR 0167 PDWN 0260 U 0000 PGM 0044 0236 POWUP  0206 PRTN00 0208 PRTN01 0218 PRTN02 0230 PRTN03 0222 0073 PT0000 0556 0077 PT00FF 0548 0709 0719 0729 0854 0080 PT4000 1204 0081 PT4444 1327 0082 PT5555 0919 0945 1126 1146 1155 1323 0083 PT6666 0843 0940 0946 0953 1325 0078 PT7FFF 1006 1012 1037 1206  1303 0079 PT8000 1014 1034 1306 0074 PTAA55 0905 1028 0084 PTAAAA 0858 0925 0939 0954 0968 0970 1025 1128 1133 0072 PTF000 0390 0076 PTF0F0 0710 0720 0730 1405 0085 PTFFFE 0561 0075 PTFFFF 0562 0583 0588 0595 0604 0613 0627 0632 0652 1182 1300 0204 PUP 0237 0189 PUPCT 0207* 0219 0237 PUPPTR 0257 PWNVEC 0229 1PAGE 0005 SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:20 0059 RAMSIZ 0367 0369* 0383 0417 1683 1714 1747 0838 RC0055 0848 0569 RC00FF 0530 0536 0552 1233 RC3D4E 1258 1236 RC511E 1274 1232 RC5144 1257 1234 RC51B1 1267 1002 RC7F00 1004  1235 RC9C4D 1270 1237 RCFB4C 1278 0045 RETADDR 1605* 0034 REV: 0380 ROM 0377 0063 ROMSIZ 1459 RSTFLAG 1470 RTCLOOP1 1471 1478 RTCLOOP2 1483 1479 RTCLOOP3 1480 0267 RTCPTR 1485 RTCSERV 1455 N 1447 RTCTEST 1424 1428 0265 RTCTIM 0099 SAL00  1782 0100 SAL01 1645 0101 SAL141 1636 N 1530 SALTEST 1493 1496 1564 SALTEST1 1601 SALTEST2 1632 SALTEST3 1658 SALTEST4 1644 0098 SALVEC 0096 0191 SAVEA 0169* 0227  0195 SAVEK 0174* 0212 0196 SAVEL 0176* 0214 0193 SAVEQ 0153* 0159 0171* 0210 0192 SAVEX 0170* 0209 0194 SAVEY 0132* 0154* 0160 0172* 0211 0197 SAVPSW 0178* 0223 0198 SENSW 0183* 0216 1476 SETFLAG 1749 SPIR1 1773 1751 SPIR2 1756 1PAGE 0006 SCOUT NM4/08 CPU ISO  LITE TEST PROGRAM 84-93735-10 A100 CNC (E600) 83/02/09 11:56:20 1759 SPIR3 1768 1764 SPIR4 1761 0067 SPIRPAT 1748 1758 1769 1772* 1746 SPIRTEST 1727 1109 STACK 1110 1111 1112 1113  1112 STACK1 1054* 1067 1070 1111 STACK2 1055* 1113 STACKK 1058 1110 STACKL 1056  N 0345 START 0312 0357 1791 0088 STATRI 1460 1700 0087 STATSVX 0353 0496 0620 0623 1124  1180 1403 1537 0299 STRAP1 0300 STRAP2 0301 STRAP3 0302 STRAP4 0046 TEMP 0542* 0543 0711 0712 0721 0722 0731 0732 0839 0859 0860 0895 0896 0897 0904 0914  0915 0917* 0920 0921 0926 0927 1205 1208 1347 1348 1349 1406* 1419* 1450* 1451* 1533*  1534* U 0000 TIMER 0350 0068 TYPE 0404 0407* N 1397 UITEST 1388 0246 UNIMPT 0250 UNMEM0 0251 UNMEM1 0253 UNMEM3 0364 UNTEST 0368 0370 0292 UTRAP1 0293 UTRAP2 0294 UTRAP3 0295 UTRAP4 0152 WATCHDOG 0162 1697 01791 SOURCE LINES 914  0915 0917* 0920 0921 0926 0927 1205 1208 1347 1348 1349 1406* 1419* 1450* 1451* 1533*  1534* U 0000 TIMER 0350 0068 TYPE 0404 0407* N 1397 UITEST 1388 024’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’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’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’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’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’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’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! ’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’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’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’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’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’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’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ÿÿÿÿÿe820922155013820922155013830616140335eÚ@€820922155013820922155013830209135329" e820922155013820922155013830616135734e820922155013820922155013820922155013820922155013820922155013820922155013e“m8302091136415083020911364275830616135909e®€8302091137527583020911375375830616135917ed•ÖY8302091112095083020911122425830616135956 e# 38212141131047582121411310625830616140005 e¯L8212141131520082121411315325830616140014 e± 8207231152150083020911544125830616140023  eæA8207231156230083020911545275830616140032  eç<8207231156372583020911550350830616140041 ei8302091155375083020911555325830616140051emJ8207231156450083020911555500830616140100 $ eȶÈè8207231152247583020911563000830616140237 eo<8207231156330083020911545275830616140246 es¼8207231156405083020911550350830616140255 ez  8302091156337583020911565100830616140307 e ¼8302091144540083020911445550830616140316eh@8210011121502583020911551525830616140324ev% æ8210011121520083020911551525830616140334eì8302081340250083020813402900830208134120& ' ( ) * + ÿàüÀÿð. ASEMISOCPU JCLLISTISOCPU JCLNM408:CPU ASM SALTST1:3 ASM SALTST2 ASM NM408:CPU OBJ SALTST1:3 OBJ SALTST2 OBJNM408:CPU BINNM408:CPU MAPNM408:CPU LSTSALTST1:3 LSTSALTST2 LSTNM408:CPU ROMNM408CPU:IDASMNM408CPU:IDOBJNM408CPU:IDLSTMIRRORCOPY JCL, 1PAGE 0001 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:40.25 TITLE PAGE SI = DM01.NM408:CPU.ASM SO = DM01.NM408:CPU.OBJ LO = DM01.NM408:CPU.LST 0003 * 0004 * SCOUT NM4/08 CPU 0005 * ISOLITE TEST PROGRAM 0006 * 0007 * 84-93735-10 A100 0008 * 0009 * COPYRIGHT 1983, COMPUTER AUTOMATION INC. 0010 *  ALL RIGHTS RESERVED 0011 * 1PAGE 0002 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:40.50 REVISION HISTORY 0013 ************************************************************************ 0014 * 0015 * REVISION HISTORY 0016 *  0017 ************************************************************************ 0018 * 0019  * REVISION ISSUE DATE COMMENTS 0020 * -------- ---------- -------- 0021 * 0022 * A000 SEPT 1982 PILOT RELEASE 0023 * GEORGE GHARIS 0024 * 0025 * A100 FEB 1983 FIX ERRORS IN POWER UP ROUTINE AND JST  0026 * INSTRUCTION TEST. 0027 * ADD BOARD ID FILE FOR USE BY CPU 0028 * HARDWARE TEST PROGRAM. 0029 * CHANGE DELAY1 TO ACCOMODATE FASTEST 0030 * POSSIBLE NM4/08 CPU EXECUTION 0031 * SPEED. 0032 *  GEORGE GHARIS 0033 * 41313030 0034 REV: EQU 'A100' LATEST REVISION 1PAGE  0003 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:41.25 DEFINITIONS 0004 0002 0036 MACHINE =:2 00000000 0037 CY EQU 0 00000001 0038 OV EQU 1 1PAGE  0004 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:41.25 NUCLEUS SECTION  0040 * TEMPORARY LOCATIONS 0041 * 0000 0000 0042 ABS 0 0000 BC2B 002B 0043 JST ERRUX1 LEAVE FOR USE BY DEBUG, NOT ALTERED BY 0044  PGM EXCEPT IN SALTEST INITIALIZATION 0001 BC2B 002B 0045 RETADDR JST ERRUX1 RETADDR MUST BE DEFINED AT ABS LOC :01 0002 BC2B 002B 0046 TEMP JST ERRUX1 0003 BC2B 002B 0047 JST ERRUX1 0004 BC2B 002B 0048  JST ERRUX1 0005 BC2B 002B 0049 JST ERRUX1 0006 BC2B 002B 0050 JST ERRUX1 0007 BC2B 002B 0051 JST ERRUX1 0052 * 0053 * VARIABLES 0054  * 0055 * MUST BE DEFINED AT LOCATIONS :08,:09 0056 * 0057 * GLO- BAL 0058 * 0008 0000 0059 RAMSIZ WORD :0000 ADDR OF LAST RAM LOC FOUND (NUM OF LOC-1)  0060 * 0061 * LOCAL 0062 * 0009 0000 0063 ROMSIZ WORD :0000 NUM OF ROM LOC FOUND 0064 * 0065 * DATA 0066 * 000A 0001  0067 SPIRPAT WORD :0001 STARTING PATTERN FOR SPIRAL TEST 000B 0001 0068 TYPE WORD :0001  STORAGE FOR CURRENT MEM TYPE IN BITTEST 0069 * 0070 * ABSOLUTE CONSTANTS - PT = PATTERN 0071 * 000C F000 0072 PTF000 WORD :F000 000D 0000 0073 PT0000 WORD :0000 000E AA55 0074 PTAA55 WORD :AA55 000F FFFF 0075 PTFFFF WORD :FFFF 0010 F0F0 0076 PTF0F0 WORD  :F0F0 0011 00FF 0077 PT00FF WORD :00FF 0012 7FFF 0078 PT7FFF WORD :7FFF 0013 8000 0079 PT8000 WORD :8000 0014 4000 0080 PT4000 WORD :4000 0015 4444 0081 PT4444 WORD :4444 1PAGE 0005 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:42.50 NUCLEUS SECTION 0016 5555  0082 PT5555 WORD :5555 0017 6666 0083 PT6666 WORD :6666 0018 AAAA 0084 PTAAAA WORD :AAAA 0019 FFFE 0085 PTFFFE WORD :FFFE 0086 * 001A 0040 0087 STATSVX WORD :0040 EXTENDED ADDRESSING STATUS WORD - NO INT EN 001B 0160 0088 STATRI WORD :0160 RTC ENABLE STATUS WORD  0089 * 0090 * MORE DATA 0091 * 001C 9F80 0092 JMP1 WORD :9F80 JMP *$+1 001D BF80 0093 JST1 WORD :BF80 JST *$+1 001E BC2B 002B 0094 JSTUX1 JST ERRUX1 JST TO UNEXPECTED MEM ACCESS OR INTERRUPT 0095 * 001F BD20 0020 0096 JSTSAL JST *SALVEC  JST INDIRECT TO ERRSAL THRU LOC :20 0097 * 0020 0028 0098 SALVEC WORD ERRSAL SALVEC MUST BE DEFINED AT ABS LOC :20 0021 6600 0099 SAL00 SAL 0,0 INSURANCE SAL 0022 6601 0100 SAL01  WORD :6601 SAL 0,1 0023 66E1 0101 SAL141 WORD :66E1 SAL 14,1 0102 * 0024 FE00 0103 IDPCNT WORD :FE00 (-512) EXECUTES INSTRUCTION DIAG 512 TIMES 1PAGE 0006 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:43.25 NUCLEUS SECTION 0105 *  0106 * COMMON ERROR CODE ROUTINES 0107 * 0025 BC2B 002B 0108 ERRIDP JST ERRUX1 INSTRUCTION DIAGNOSTIC ERROR 0026 4910 0109 COPY =:10,Q 0027 BC31 0031 0110 JST ERRDSPLY  0111 * 0028 BC2B 002B 0112 ERRSAL JST ERRUX1 SALTEST ERROR 0029 4940 0113 COPY =:40,Q 002A BC31 0031 0114 JST ERRDSPLY 0115 * 002B BC2B 002B 0116 ERRUX1 JST  ERRUX1 UNEXPECTED MEM ACCESS OR INTERRUPT 002C 49F0 0117 COPY =:F0,Q 002D BC31 0031 0118 .  JST ERRDSPLY 0119 * 002E BC2B 002B 0120 ERRUX2 JST ERRUX1 UNEXPECTED TRAP, MEM ACCESS  OR INTERRUPT 002F 49F1 0121 COPY =:F1,Q 0030 BC31 0031 0122 JST ERRDSPLY  0123 ************************************************************************ 0124 * 0125 * ERROR DISPLAY SUBROUTINE: 0126 * 0127 * ORIGIN OF ERROR IS INDICATED BY CONSOLE DATA REGISTER DISPLAY 0128 * AND TRACEABLE BY JST POINTERS. 0129 * 0130 ************************************************************************ 0031 BC2B 002B 0131 ERRDSPLY JST ERRUX1 ERROR DISPLAY ENTRY 0032 E6AE 0061 0132 COPY Y,SAVEY SAVE YREG 0033 6104 0133 IN 4,Y INPUT CONSOLE DATA REGISTER 0034 6E70 0134 SHIFT Y,L,8 SHIFT TEST CODE TO UPPER BYTE  0135 - OPTIONAL INSTRUCTION - 0035 6047 0136 OR Q,Y  OR IN ERROR CODE 0036 6404 0137 SELP Y,4 OUTPUT TO CONSOLE DATA REGISTER 0037 6202 0138 OUT Y,2 RESET WATCHDOG TIMER BEFORE HALTING 0038 0E0D 0139 HLT MAY AUTOLOAD HERE IF A BBU WITH AUTO RESTART 0140 ENABLED IS INSTALLED 0039 9D3B 003B 0141 JMP DONE ATTEMPT EXIT TO NEXT ISOLITE TEST PROGRAM 0002 0142 LPOOL 003A 0061 SAVEY 003B 03B3 DONE 1PAGE 0007 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09  11:53:44.75 NUCLEUS SECTION 0144 ************************************************************************  0145 * 0146 * WATCHDOG TIMER RESET SUBROUTINE 0147 * 0148 * BACKGROUND TASK CALLED BY REAL TIME CLOCK THAT KEEPS WATCHDOG 0149 * TIMER RESET DURING MEMORY TEST (TEST 5). 0150 * 0151 ************************************************************************ 003C BC2B 002B 0152 WATCHDOG JST ERRUX1 WATCHDOG TIMER RESET ENTRY 003D C6A2 0060 0153 COPY  Q,SAVEQ SAVE QREG 003E E6A2 0061 0154 COPY Y,SAVEY SAVE YREG 003F 6991 0155 COPY  =:91,Y RTC INCREMENT CELL 0040 48F7 0156 COPY =-9,Q .9 SEC COUNT WITH 10 HZ RTCI 0041 4202 0157 OUT Q,2 RESET WATCHDOG TIMER - QREG DON'T CARE 0042 C440 0000 0158 COPY Q,0(Y) STORE COUNT IN RTC INCREMENT CELL 0043 C29C 0060 0159 COPY SAVEQ,Q RESTORE QREG 0044 E29C 0061 0160 COPY SAVEY,Y RESTORE YREG 0045 0E85 0161 SBIT 8,S RE-ENABLE INTERRUPTS 0046 9D3C 003C 0162 JMP *WATCHDOG RETURN 1PAGE 0008 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:45.50 NUCLEUS SECTION 0164 * 0165 * POWER D/ OWN SUBROUTINE 0166 * 0047 BC2B 002B 0167 PDWN JST ERRUX1 POWER DOWN ENTRY 0048 0202  0168 OUT A,2 RESET WATCHDOG TIMER 0049 8694 005E 0169 COPY A,SAVEA SAVE 'A' 004A A694 005F 0170 COPY X,SAVEX SAVE 'X' 004B C694 0060 0171 COPY Q,SAVEQ SAVE 'Q' 004C E694 0061 0172 COPY Y,SAVEY SAVE 'Y' 004D 0070 0173 COPY K,A 004E 8693 0062 0174  COPY A,SAVEK SAVE 'K' 004F 0050 0175 COPY L,A 0050 8692 0063 0176 COPY A,SAVEL SAVE 'L' 0051 0030 0177 COPY S,A PSW TO 'A' 0052 8691 0064 0178 COPY  A,SAVPSW SAVE PSW 0053 0900 0179 COPY =0,A CLEAR 'A' 0054 0E7F 0180 SIN  8 0055 16C1 0057 0181 JF SS,$+2 JUMP IF SENSE SWITCH OFF 0056 0B01 0182 ADD =1,A SET 'A' =1 0057 868D 0065 0183 COPY A,SENSW SAVE SENSE SW. SETTING 0058 0104 0184  IN 4,A INPUT CONSOLE DATA REGISTER 0059 868C 0066 0185 COPY A,DATSAV SAVE CONSOLE DATA REGISTER 005A DE82 005D 0186 IMS PDNCT BUMP DOWN COUNTER - NOT LIKELY TO SKIP 005B 0E0D 0187  HLT WAIT FOR POWER FAIL 0188 * 005C 0000 0189 PUPCT WORD 0 005D 0000 0190 PDNCT WORD 0 005E BC2B 002B 0191 SAVEA JST ERRUX1 005F BC2B 002B 0192 SAVEX JST ERRUX1 0060 BC2B 002B 0193 SAVEQ JST ERRUX1 0061 BC2B 002B 0194 SAVEY JST ERRUX1 0062 BC2B 002B 0195 SAVEK  JST ERRUX1 0063 BC2B 002B 0196 SAVEL JST ERRUX1 0064 BC2B 002B 0197 SAVPSW JST ERRUX1 0065 BC2B 002B 0198 SENSW JST ERRUX1 0066 BC2B 002B 0199 DATSAV JST ERRUX1 1PAGE 0009 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:46.75 NUCLEUS SECTION 0201 * 0202 * POWER UP SUBROUTINE 0203 * 0067 BC2B 002B 0204 PUP JST ERRUX1 POWER UP ENTRY 0068 0EDF 0205 SIN 14 00000069 0206 PRTN00 EQU $ 0069 DE72 005C 0207 IMS PUPCT BUMP POWER UP COUNT - NOT LIKELY TO SKIP 0000006A 0208 PRTN01 EQU $ 006A A274 005F 0209 COPY SAVEX,X RESTORE 'X' 006B C274 0060 0210 COPY SAVEQ,Q RESTORE 'Q' 006C E274 0061 0211  COPY SAVEY,Y RESTORE 'Y' 006D 8274 0062 0212 COPY SAVEK,A 006E 7000 0213 COPY  A,K RESTORE 'K' 006F 8273 0063 0214 COPY SAVEL,A 0070 5000 0215 COPY A,L  RESTORE 'L' 0071 8273 0065 0216 COPY SENSW,A 0072 0200 0217 OUT A,0 RESTORE SENSE SWITCH 00000073 0218 PRTN02 EQU $ 0073 8268 005C 0219 COPY PUPCT,A FETCH POWER UP COUNT 0074 8E68 005D 0220 SUB PDNCT,A SUB DOWN COUNT 0075 0E8F 0221 SIN 9 0076 11C7 00 07E 0222 JNE A,PRTN03 JUMP IF NOT EQUAL 0077 826C 0064 0223 COPY SAVPSW,A 0078 3000 0224 COPY A,S RESTORE PSW 0079 826C 0066 0225 COPY DATSAV,A 007A 0404 0226  SELP A,4 RESTORE CONSOLE DATA REGISTER 007B 8262 005E 0227 COPY SAVEA,A RESTORE 'A' 007C 0202 0228 OUT A,2 RESET WATCHDOG TIMER 007D 9F8E 008C 0229 JMP *PWNVEC RETURN THRU RETURN VECTOR AT :8C 007E 49F2 0230 PRTN03 COPY =:F2,Q POWER UP/POWER DOWN COUNTS NOT EQUAL 007F BC31 0031 0231 JST ERRDSPLY ERROR EXIT 1PAGE 0010 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM  84-93735-10 A100 1983/02/09 11:53:47.75 NUCLEUS SECTION 0233 * 0234 * POWER UP VECTOR (:80) 0235 * 0080 BF80 0081 0236 POWUP JST *$+1 POWER UP VECTOR (WARM START) 0081 0067 0237 PUPPTR WORD PUP POWER UP POINTER 0082 BC2B 002B 0238 JST ERRUX1 0083 BC2B 002B 0239 JST ERRUX1 0240 * 0241 * UNIMPLEMENTED INSTRUCTION VECTOR (:84) 0242 * 0084 BC2B 002B 0243 LOC84 JST ERRUX1 INTERRUPT LOC + 1 0085 BC2B 002B 0244 LOC85 JST ERRUX1 INTERRUPT INSTRUCTION 0086 BF80 0087 0245 JST *$+1 0087 002E 0246 UNIMPT WORD ERRUX2 UNIMPLEMENTED INSTRUCTION POINTER 0247 * 0248 * UNINSTALLED MEMORY TRAP VECTOR (:88) 0249 * 0088 BC2B 002B 0250 UNMEM0 JST ERRUX1 P+1 0089 BC2B 002B 0251 UNMEM1 JST ERRUX1 I 008A BF80 008B 0252 JST *$+1 008B 002E 0253 UNMEM3 WORD ERRUX2  UNINSTALLED MEMORY POINTER 0254 * 0255 * POWER DOWN VECTOR (:8C)  0256 * 008C BC2B 002B 0257 PWNVEC JST ERRUX1 P+1 008D BC2B 002B 0258 JST ERRUX1 I 008E BF80 008F 0259 JST *$+1 008F 0047 0260 PDNPTR WORD PDWN POWER DOWN POINTER 0090 BC2B 002B 0261 JST ERRUX1 0262 * 0263 * REAL TIME CLOCK INT. CELLS (:91)  0264 * 0091 BC2B 002B 0265 RTCTIM JST ERRUX1 RTC TIMING CELL 0092 BF80 0093 0266 JST *$+1 RTC TIMING CELL OVERFLOW VECTOR 0093 002B 0267 RTCPTR WORD ERRUX1 0268 *  0269 * CONSOLE INTERRUPT VECTOR (:94) 0270 * 0094 BF80 0095 0271 JST *$+1 0095 002B 0272 WORD ERRUX1 0096 BC2B 002B 0273 JST ERRUX1 0097 BC2B 002B 0274  JST ERRUX1 1PAGE 0011 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:49.00 NUCLEUS SECTION 0275 * 0276 * CHARACTER/NUMERIC EXCEPTION TRAP (:98) - NOT USED BY NM4/08 CPU 0277 * 0098 BC2B 002B 0278 JST ERRUX1 0099 BC2B 002B 0279 JST E1 RRUX1 009A BC2B 002B 0280 JST ERRUX1 009B BC2B 002B 0281 JST ERRUX1 0282 *  0283 * STACK EXCEPTION TRAP (:9C) 0284 * 009C BC2B 002B 0285 JST ERRUX1 009D BC2B 002B 0286 JST ERRUX1 009E BF80 009F 0287 JST *$+1 009F 002E 0288 ENDSTX WORD ERRUX2 0289 * 0290 * USER TRAP (:A0) 0291 * 00A0 BC2B 002B 0292 UTRAP1 JST ERRUX1 P+1 00A1 BC2B 002B 0293 UTRAP2 JST ERRUX1 I 00A2 BF80 00A3 0294 UTRAP3 JST *$+1 00A3 002E 0295 UTRAP4 WORD ERRUX2 0296 * 0297 * SYSTEM TRAP (:A4) 0298 * 00A4 BC2B 002B 0299 STRAP1 JST ERRUX1 P+1 00A5 BC2B 002B 0300 STRAP2 JST ERRUX1 I 00A6 BF80 00A7 0301 STRAP3 JST *$+1 00A7 002E 0302 STRAP4 WORD ERRUX2  0303 * 0304 * DIVIDE FAULT / FLOATING POINT EXPONENT OVERFLOW TRAP (:A8) 0305 *  000000A8 0306 ARERR EQU :A8 00A8 BC2B 002B 0307 ARERR0 JST ERRUX1 P+1 00A9 BC2B 002B 0308  JST ERRUX1 I 00AA BF80 00AB 0309 JST *$+1 00AB 002E 0310 ARERR1 WORD ERRUX2 1PAGE 0012 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:50.25 PRELIMINARY MEMORY CONFIDENCE TEST 00AC 0312 NAM START 00AC 0313 NAM BITTEST  0314 ******************************************************** 0315 * 0316 * BITTEST 0317 * 0318 * PERFORMS A NON-DESTRUCTIVE TEST OF MEMORY AND A WORD BY WORD  0319 * SIZING OF THE SYSTEM ADDRESS SPACE. THE QUANTITY 0320 * OF EACH TYPE OF MEMORY (RAM, ROM, & NULL) FOUND 0321 * DURING THIS TEST IS STORED FOR USE ELSEWHERE AND FOR LATER 0322 * MANUAL VERIFICATON IF REQUIRED. 0323 * 0324 * POSSIBLE ERRORS: 0325 * 0326 * 1) BAD RAM FOUND AT ONE OF THE TEST LOCATIONS. DETERMINED 0327 *  AS FOLLOWS: 0328 * READ FROM MEM 0329 * WRITE TO MEM (COMPLEMENT OF DATA READ) 0330 * READ FROM MEM 0331 *  0332 * IF (READ2<>WRITE) AND (READ1<>READ2), 0333 *  THEN ITS A BAD RAM LOCATION. 0334 * 0335 * 2) NON-CONTIGUOUS BLOCKS OF A SINGLE MEMORY TYPE. THE 0336 * EXPECTED CONFIGURATIONS ARE (FROM LOW TO HIGH ADDRESSES): 0337 * A) RAM - ROM 0338 * B) RAM 0339 * 0340 ************************************************************************ 1PAGE 0013 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PR2 OGRAM 84-93735-10 A100 1983/02/09 11:53:51.00 PRELIMINARY MEMORY CONFIDENCE TEST 0342 *  0343 * PROGRAM ENTRY 0344 * 000000AC 0345 START EQU $ 000000AC 0346 BITTEST  EQU $ 00AC 0900 0347 COPY =:00,A BITTEST INDICATOR 00AD 0404 0348 SELP A,4 OUTPUT TO CONSOLE DATA REGISTER 00AE 0202 0349 OUT A,2 TURN OFF AUTOLOAD LIGHT AND RESET WATCHDOG 0350 TIMER 00AF 0901 0351 COPY =1,A 00B0 0200 0352 OUT A,0 TURN ON SENSE SWITCH 00B1 801A 001A 0353 COPY STATSVX,A 00B2 3000 0354 COPY A,S INITIALIZE STATUS 00B3 2900 0355 COPY =0,X INITIALIZE INDEX 00B4 3466 00DB 0356 BITLOOP1 IJEQ X,ENDBIT INCREMENT INDEX AND EXIT IF THRU 0357  START WITH SECOND WORD OF MEMORY 00B5 0902 0358 COPY =2,A (ROM MEMORY = TYPE 2) 00B6 0202 0359 OUT A,2 RESET WATCHDOG TIMER 00B7 4010 0360 COPY P,Q  0361 ********** 0362 * NOTE: UNTESTED MEMORY STARTS HERE ! 0363 ********** 00B8 204B 0364 UNTEST CSK X,Q TEST POINTER AT UNTEST? 00B9 0000 0365 NOP 00BA 9E84 00BF 0366 JMP DOTEST NO - CONTINUE TEST 00BB C008 0008 0367 COPY RAMSIZ,Q YES 00BC 4B1C 0368 ADD =MEMSIZE-UNTEST+1,Q 00BD C408 0008 0369 COPY Q,RAMSIZ BUMP RAMSIZE 00BE 2B1C 0370 ADD =MEMSIZE-UNTEST+1,X BUMP TEST POINTER 00BF 8080 0000 0371 DOTEST COPY 0(X),A  READ TEST LOCATION 00C0 4009 0372 COMP A,Q COMPLEMENT MEMORY CONTENTS 00C1 C480 0000 0373  COPY Q,0(X) WRITE TO TEST LOCATION 00C2 D880 0000 0374 XOR 0(X),Q SEE IF MEMORY = DATA WRITTEN 00C3 5146 00CA 0375 JEQ Q,GOODRAM YES - GOOD RAM 00C4 9880 0000 0376 XOR 0(X),A SEE IF MEMORY CHANGED AT ALL 00C5 1142 00C8 0377 JEQ A,ROM NO - ROM MEMORY 00C6 4900 0378 BADRAM COPY =:00,Q BIT SET/RESET ERROR 00C7 BC31 0031 0379 JST ERRDSPLY BAD RAM MEMORY 00C8 0902 0380 ROM COPY =2,A (ROM MEMORY = TYPE 2) 00C9 9E89 00D3 0381 JMP MEMSIZE  GO TO SEQUENCE AND SIZING ROUTINE 00CA 8480 0000 0382 GOODRAM COPY A,0(X) RESTORE MEMORY CONTENTS 00CB 8008 0008 0383 COPY RAMSIZ,A 1PAGE 0014 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:52.75 PRELIMINARY MEMORY CONFIDENCE TEST 0384 * 0385 * DISPLAY CURRENT 8K WORD BLOCK OF MEMORY BEING TESTED 0386 * 00CC 0E08 0387 SHIFT A,R,1 COMPUTE MEMORY SIZE IN K-BYTES 0388 - OPTIONAL INSTRUCTION - 00CD 0B01 0389 3  ADD =1,A 00CE C00C 000C 0390 COPY PTF000,Q :F000 TO QREG 00CF 0044 0391 AND Q,A MASK OFF LOWER 3 NIBBLES 00D0 1900 0392 OR =:00,A ADD IN TEST CODE 00D1 0404 0393 SELP A,4 OUTPUT TO CDR 0394 * 00D2 0901 0395 COPY =1,A  (RAM MEMORY = TYPE 1) 0396 ********** 0397 * UNTESTED MEMORY ENDS HERE.  0398 ********** 0399 * 0400 * CHECK MEM SEQUENCE AND INCREMENT PROPER MEM SIZE  0401 * 000000D3 0402 MEMSIZE EQU $ 00D3 4901 0403 COPY =:01,Q NON-CONTIGUOUS MEMORY TYPE ERROR 00D4 B80B 000B 0404 CSK A,TYPE CHECK MEMORY TYPE SEQUENCING 00D5 BC31 0031 0405 JST ERRDSPLY < - WRONG SEQUENCE - ERROR CODE IN 'Q' 00D6 0000 0406 NOP > - 00D7 840B 000B 0407 COPY A,TYPE = - UPDATE MEMORY TYPE 00D8 6000 0408 COPY A,Y  USE AS INDEX FOR MEMORY SIZE 00D9 DC47 0007 0409 IMS 7(Y) INCREMENT PROPER MEM SIZE LOCATION  00DA 9E59 00B4 0410 JMP BITLOOP1 0411 * 0412 * FILL UNUSED MEMORY WITH ERROR TRAPS AND EXIT TO NEXT TEST 0413 * 000000DB 0414 ENDBIT EQU $ 00DB 801E 001E 0415  COPY JSTUX1,A ERROR TRAP, JST TO UNEXPECTED MEM ACCESS LOC 00DC A387 00E4 0416 COPY ENDPGM,X END OF PROGRAM +2 TO INDEX 00DD C008 0008 0417 COPY RAMSIZ,Q END OF RAM TO QREG 00DE 8480 0000 0418 BITLOOP2 COPY A,0(X) WRITE MEM 00DF 0202 0419 OUT A,2 RESET WATCHDOG TIMER 00E0 402A  0420 CSN X,Q DONE ALL OF RAM? 0421 * 0422 * EXIT HERE  0423 * 00E1 9E86 00E8 0424 JMP BCTEST YES - GO TO NEXT TEST 00E2 2B01 0425 ADD =1,X NO - INCREMENT INDEX 1PAGE 0015 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:54.25 PRELIMINARY MEMORY CONFIDENCE TEST 00E3 9E7A 00DE 0426 JMP BITLOOP2 AND CONTINUE 0004 0427 LPOOL 00E4 03BC ENDPGM 00E5 00E6 00E7 1PAGE 0016 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:54.25 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 00E8 0429  NAM BCTEST 0430 *******************************************************************  0431 * 0432 ************************************************************** 0433 *  0434 * SCOUT DIAGNOSTICS - SECTION A 0435 * 0436 ************************************************************** 0437 * 0438 * OBJECTIVE: IN THIS TEST BASIC CONFIDENCE IS ESTABLISHED ON 0439 * A SUBSET OF THE AVAILABLE SCOUT INSTRUCTIONS. 4  0440 * 0441 * INSTRUCTION SUBSET: THE FOLLOWING INSTRUCTIONS ARE TESTED 0442 *  IN THE ORDER LISTED. 0443 * SUB-TEST A0: 0444 * COPY LIT,2REG 0445 * CSK 2REG,LIT 0446 * COPY MEM,2REG DIRECT,RELATIVE & ABSOLUTE 0447 * COPY 2REG,MEM ABSOLUTE 0448 * CSK 2REG,MEM DIRECT, RELATIVE 0449 * COPY 7REG,7REG 0450 * JEQ  2REG,MEM RELATIVE 0451 * JNE 2REG,MEM RELATIVE 0452 * JGT 2REG,MEM RELATIVE 0453 * JLT 2REG,MEM RELATIVE 0454 *  JLE 2REG,MEM RELATIVE 0455 * OR MEM,REG ABSOLUTE 0456 *  XOR MEM,REG ABSOLUTE 0457 * AND MEM,REG ABSOLUTE 0458 * COPY P,REG 0459 * COPY MEM(X),3REG INDEXED, DIRECT 0460 * COPY MEM(Y),REG INDEXED, DIRECT 0461 * 0462 **************************************************************** 1PAGE 0017 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:55.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0464 *************************************************************** 0465 * 0466 * TEST STRUCTURE: 0467 *  0468 * STEP BY STEP CONFIDENCE IS GAINED IN VARIOUS INSTRUCTIONS 0469 * BY EXECUTING EACH INSTRUCTION TO PERFORM ITS SIMPLEST 0470 * FUNCTION IN WORD MODE. NORMALLY TWO INSTRUCTIONS ARE  0471 * TAKEN AS A PAIR TO TEST EACH OTHER USING KNOWN WORKING 0472 * INSTRUCTIONS. 0473 * 0474 * BY THE END OF THE TEST IT CAN BE SAFELY ASSUMED THAT ALL OF  0475 * THE INSTRUCTIONS LISTED ABOVE ARE PERFORMING THEIR FUNCTIONS 0476 * UNDER THE STATED RESTRICTIONS. 0477 * 0478 * THIS SECTION (A0) PROVIDES BASIC TOOLS FOR EXTENSIVE 0479 * CHECKOUT OF THE REMAINING PROCESSOR FUNCTIONS. 0480 *  0481 ******************************************************************* 1PAGE 0018 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:56.00 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0483 ***************************************************************** 0484 * 0485 * TEST A0-2: 0486 * COPY LIT,2REG 0487 * CSK 2REG,LIT 0488 *  0489 ****************************************************************** 0490 * 000000E8 045 91 BCTEST EQU $ 00E8 0901 0492 COPY =:01,A IDP INDICATOR 00E9 0404 0493 SELP A,4 OUTPUT TO CONSOLE DATA REGISTER 000000EA 0494 A00200 EQU $ 00EA 0202 0495 OUT A,2 RESET WATCHDOG TIMER 00EB 801A 001A 0496 COPY STATSVX,A 00EC 3000 0497 COPY A,S INITIALIZE STATUS 00ED 0901 0498 COPY =1,A LOAD A 00EE 0D01 0499  CSK A,=1 TEST EQUAL CONDITION 00EF 0000 0500 NOP 00F0 BC25 0025 0501 JST ERRIDP --ERROR-- CSK OR COPY FAILED 0502 * 00F1 0D00 0503 CSK A,=0 TEST GREATER THAN CONDITION 00F2 BC25 0025 0504 JST ERRIDP --ERROR-- CSK FAILED TO DETECT R>LIT 00F3 9E81 00F5 0505 JMP $+2 00F4 BC25 0025 0506 JST ERRIDP --ERROR-- CSK FAILED 0507  * 00F5 0D02 0508 CSK A,=2 TEST LESS THAN CONDITION 00F6 9E82 00F9 0509 JMP $+3  00F7 0000 0510 NOP 00F8 BC25 0025 0511 JST ERRIDP --ERROR-- CSK FAILED  0512 * 00F9 4901 0513 COPY =1,Q TEST OPERATION WITH Q 00FA 4D01 0514 CSK Q,=1 00FB 0000 0515 NOP 00FC BC25 0025 0516 JST ERRIDP --ERROR-- OPERATIONS ON Q FAILED  0517 * 0518 * GO ON TO TEST A0-3 1PAGE 0019 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:57.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0520 **************************************************** 0521 * 0522 * TEST A0-3:  0523 * COPY MEM,2REG RELATIVE & ABSOLUTE ADDRESSING 0524 * COPY 2REG,MEM ABSOLUTE ADDRESSING 0525 * CSK 2REG,MEM RELATIVE & ABSOLUTE ADDRESSING 0526 *  0527 **************************************************** 0528 * 000000FD 0529 A00300  EQU $ 00FD 829D 011B 0530 COPY RC00FF,A LOAD :FF FROM MEM TO A. TEST OF 0531 *  RELATIVE ADDRESSING. 00FE 0DFF 0532 CSK A,=:FF A SHOULD BE :FF 00FF 0000 0533 NOP 0100 BC25 0025 0534 JST ERRIDP --ERROR-- COPY MEM,A FAILED  0535 * 0101 C299 011B 0536 COPY RC00FF,Q LOAD :FF FROM MEM TO Q 0102 4DFF 0537 CSK Q,=:FF 0103 0000 0538 NOP 0104 BC25 0025 0539 JST ERRIDP --ERROR-- COPY MEM,Q  0540 * 0105 4900 0541 COPY =0,Q 0106 8402 0002 0542 COPY A,TEMP NOW TEST ABSOLUTE ADRESSING 0107 C002 0002 0543 COPY TEMP,Q TEMP SHOULD BE :00FF 0108 4DFF 0544 CSK Q,=:FF 0109 0000 0545 NOP 010A BC25 0025 0546 JST ERRIDP --ERROR-- ABSOLUTE ADDRE6 SSING FAILED 0547 * 010B B811 0011 0548 CSK A,PT00FF CHECK EXECUTION OF CSK 2REG,ABSMEM  010C 0000 0549 NOP 010D BC25 0025 0550 JST ERRIDP --ERROR-- ABSOLUTE ADRESSING FAILED  0551 * 010E BA8C 011B 0552 CSK A,RC00FF SAME THING ONLY RELATIVE ADDRESSING 010F 0000  0553 NOP 0110 BC25 0025 0554 JST ERRIDP --ERROR-- CSK FAILED 0555 * 0111 B80D 000D 0556 CSK A,PT0000 A IS GREATER THAN 0 0112 BC25 0025 0557 JST ERRIDP --ERROR HLT-- 0113 9E81 0115 0558 JMP $+2 0114 BC25 0025 0559 JST ERRIDP --ERROR-- CSK FAILED 0560 * 0115 C019 0019 0561 COPY PTFFFE,Q 1PAGE 0020 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:59.00 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0116 F80F 000F 0562 CSK Q,PTFFFF TEST FOR Q=-2 < -1 0117 9E82 011A 0563 JMP $+3 0118 0000 0564  NOP 0119 BC25 0025 0565 JST ERRIDP --ERROR-- CSK FAILED 0566 * 011A 9E81 011C 0567 JMP A00400 0568 * TEST CONSTANTS 011B 00FF 0569 RC00FF WORD :00FF  0570 * 0571 * GO ON TO TEST A0-4 0572 * 1PAGE 0021 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:53:59.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE  0574 ****************************************************************** 0575 * 0576 * TEST A0-4: 0577 * COPY 7REG,7REG COPY P,REG TESTED IN A0-7 0578 *  0579 ******************************************************************** 0580 * 0000011C 0581 A00400 EQU $ 011C 4900 0582 COPY =0,Q CLEAR Q 011D 800F 000F 0583 COPY  PTFFFF,A LOAD A WITH :FFFF 0584 * 0585 * TEST A -> X -> Q 011E 2000 0586  COPY A,X 011F 4020 0587 COPY X,Q 0120 F80F 000F 0588 CSK Q,PTFFFF DOES X HOLD THE CORRECT VALUE? 0121 0000 0589 NOP 0122 BC25 0025 0590 JST ERRIDP --ERROR-- X COPY'S FAILED 0591 * 0592 * TEST A -> Y -> Q 0123 6000 0593 COPY  A,Y 0124 4060 0594 COPY Y,Q 0125 F80F 000F 0595 CSK Q,PTFFFF TEST Y=EXPECTED VALUE 0126 0000 0596 NOP 0127 BC25 0025 0597 JST ERRIDP --ERROR-- Y COPY'S FAILED  0598 * 0128 4900 0599 COPY =0,Q CLEAR Q 0600 * 0601 *  TEST A -> K -> Q 0129 7000 0602 COPY A,K 012A 4070 0603 COPY K,Q 012B F80F 000F 0604 CSK Q,PTFFFF TEST K=EXPECTED VALUE 012C 0000 0605 NOP 012D BC25 0025 0606 7 JST ERRIDP --ERROR-- K COPY'S FAILED 0607 * 012E 4900 0608 COPY =0,Q  CLEAR Q 0609 * 0610 * TEST A -> L -> Q 012F 5000 0611 COPY A,L 0130 4050 0612 COPY L,Q 0131 F80F 000F 0613 CSK Q,PTFFFF TEST L=EXPECTED VALUE 0132 0000 0614 NOP 0133 BC25 0025 0615 JST ERRIDP --ERROR-- L COPY'S FAILED 1PAGE 0022 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:00.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0616 * 0134 4900 0617 COPY =0,Q CLEAR Q 0618 *  0619 * TEST A -> S -> Q 0135 801A 001A 0620 COPY STATSVX,A STATSVX = :0040 0136 3000  0621 COPY A,S 0137 4030 0622 COPY S,Q 0138 F81A 001A 0623 CSK Q,STATSVX  TEST S=EXPECTED VALUE 0139 0000 0624 NOP 013A BC25 0025 0625 JST ERRIDP --ERROR-- S COPY'S FAILED 0626 * 013B C00F 000F 0627 COPY PTFFFF,Q LOAD Q WITH :FFFF 0628 * 0629 * TEST Q -> X -> A 013C 2040 0630 COPY Q,X 013D 0020 0631  COPY X,A 013E B80F 000F 0632 CSK A,PTFFFF TEST X=EXPECTED VALUE 013F 0000 0633 NOP 0140 BC25 0025 0634 JST ERRIDP --ERROR-- COPY Q,X FAILED 0635 * 0636 * GO ON TO TEST A0-5 0637 * 1PAGE 0023 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:01.25 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0639 *************************************************************** 0640 * 0641 * TEST A0-5: (USING RELATIVE ADDRESSING) 0642 * JEQ 2REG,MEM 0643 * JNE 2REG,MEM 0644 * JGT 2REG,MEM 0645 * JGE 2REG,MEM 0646 * JLT 2REG,MEM  0647 * JLE 2REG,MEM 0648 * 0649 **************************************************************** 0650 * 00000141 0651 A00500 EQU $ 0141 800F 000F 0652 COPY PTFFFF,A LOAD A WITH :FFFF=-1 0142 1141 0144 0653 JEQ A,$+2 0143 9E81 0145 0654 JMP  $+2 0144 BC25 0025 0655 JST ERRIDP --ERROR-- JEQ FAILED ON A < 0 0656 * 0145 11C1 0147 0657 JNE A,$+2 0146 BC25 0025 0658 JST ERRIDP --ERROR-- JNE FAILED ON A < 0  0659 * 0147 13C1 0149 0660 JLT A,$+2 0148 BC25 0025 0661 JST ERRIDP --ERROR-- JLT FAILED ON A < 0 0662 * 0149 1341 014B 0663 JGE A,$+2 014A 9E81 014C 0664 JMP $+2 014B BC25 0025 0665 JST ERRIDP --ERROR-- JGE FAILED ON A < 0 0666 * 014C 498 00 0667 COPY =0,Q CLEAR Q 014D 5141 014F 0668 JEQ Q,$+2 014E BC25 0025 0669  JST ERRIDP --ERROR-- JEQ FAILED ON Q = 0 0670 * 014F 51C1 0151 0671 JNE Q,$+2 0150 9E81 0152 0672 JMP $+2 0151 BC25 0025 0673 JST ERRIDP --ERROR-- JNE FAILED ON Q = 0 0674 * 0152 53C1 0154 0675 JLT Q,$+2 0153 9E81 0155 0676 JMP $+2 0154 BC25 0025 0677 JST ERRIDP --ERROR-- JLT FAILED ON Q = 0 0678 * 0155 52C1 0157 0679  JLE Q,$+2 0156 BC25 0025 0680 JST ERRIDP --ERROR-- JLE FAILED ON Q = 0 1PAGE 0024 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:02.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0681 * 0157 5241 0159 0682 JGT Q,$+2 0158 9E81 015A 0683 JMP $+2 0159 BC25 0025 0684 JST ERRIDP --ERROR-- JGT FAILED ON Q = 0 0685 * 015A 5341 015C 0686 JGE Q,$+2 015B BC25 0025 0687 JST ERRIDP --ERROR-- JGE FAILED ON Q = 0 0688 * 015C 2901 0689 COPY =1,X 015D 32C1 015F 0690 JLE X,$+2 015E 9E81 0160 0691  JMP $+2 015F BC25 0025 0692 JST ERRIDP --ERROR-- JLE FAILED ON X > 0 0693 *  0160 3241 0162 0694 JGT X,$+2 0161 BC25 0025 0695 JST ERRIDP --ERROR-- JGT FAILED ON X > 0 0696 * 0697 * GO ON TO TEST A0-6 1PAGE 0025 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:03.00 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0699 ************************************************************** 0700 * 0701 * TEST A0-6: 0702 * OR MEM,REG 0703 * XOR MEM,REG 0704 * AND MEM,REG 0705 * 0706 **************************************************************  0707 * 00000162 0708 A00600 EQU $ TEST 'OR' 0162 8011 0011 0709 COPY  PT00FF,A 0163 C010 0010 0710 COPY PTF0F0,Q 0164 C403 0003 0711 COPY Q,TEMP+1 STORE :F0F0 0165 B403 0003 0712 OR TEMP+1,A A SHOULD BE :FOFF 0166 BA91 0178 0713 CSK A,=:F0FF 0167 0000 0714 NOP 0168 BC25 0025 0715 JST ERRIDP --ERROR-- OR FAILED 0716 * 0717 * 00000169 0718 A00601 EQU $ TEST 'XOR' 0169 C011 0011 0719 COPY PT00FF,Q 016A 8010 0010 0720 COPY PTF0F0,A 016B 8403 0003 0721 COPY A,TEMP+1 016C D803 0003 0722 XOR TEMP+1,Q Q SHOULD BE :F00F 016D FA8B 0179 0723 CSK Q,=:F00F 016E 0000 0724 NOP 016F BC25 0025 0725 JST ERRIDP --ERROR-- XOR FAILED 0726 * 9  0727 * 00000170 0728 A00602 EQU $ TEST 'AND' 0170 8011 0011 0729 COPY PT00FF,A 0171 C010 0010 0730 COPY PTF0F0,Q 0172 C403 0003 0731 COPY Q,TEMP+1 0173 9403 0003 0732  AND TEMP+1,A A SHOULD BE :00F0 0174 0DF0 0733 CSK A,=:F0 0175 0000 0734  NOP 0176 BC25 0025 0735 JST ERRIDP --ERROR-- AND FAILED 0177 9E83 017B 0736 JMP A00700 0003 0737 LPOOL 0178 F0FF 0179 F00F 017A 1PAGE 0026 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:04.25 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0738 *  0739 * GO ON TO TEST A0-7 0740 * 1PAGE 0027 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:04.50 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0742 ****************************************************************** 0743 * 0744 * TEST A0-7:  0745 * COPY P,REG 0746 * COPY MEM(X),3REG INDEXED DIRECT ADDRESSING  0747 * COPY MEM(Y),REG INDEXED DIRECT ADDRESSING 0748 * 0749 ****************************************************************** 0750 * 0000017B 0751 A00700 EQU $ 017B 4900 0752 COPY =0,Q 017C 0900 0753 COPY =0,A 0754 * 017D 2010 0755 A00701 COPY P,X GET CURRENT LOCATION+1 017E 8094 0014 0756 COPY CELLOC1(X),A LOAD A WITH CONTENTS OF CEL000 017F BA92 0192 0757 CSK A,CEL000 TEST A=EXPECTED VALUE 0180 0000 0758 NOP 0181 BC25 0025 0759 JST ERRIDP --ERROR-- X INDEXED LOAD FAILED 0760 * 0182 E094 0014 0761 COPY CELLOC1(X),Y LOAD Y WITH CONTENTS OF CEL000 0183 4060 0762 COPY Y,Q 0184 FA8D 0192 0763 CSK Q,CEL000 0185 0000 0764 NOP 0186 BC25 0025 0765 JST ERRIDP  --ERROR-- INDEXED LOAD FAILED 0766 * 0187 A095 0015 0767 COPY CELLOC1+1(X),X **LOAD X WITH CONTENTS OF CEL010 0188 0020 0768 COPY X,A 0189 BA89 0193 0769 CSK A,CEL010 018A 0000  0770 NOP 018B BC25 0025 0771 JST ERRIDP --ERROR-- INDEXED LOAD FAILED 0772 * 018C 6010 0773 A00702 COPY P,Y GET CURRENT LOCATION +1 018D C046 0006 0774 COPY CELLOC2+1(Y),Q **LOAD Q WITH CONTENTS OF CEL010 018E FA84 0193 0775 CSK Q,CEL010 018F 0000 0776 NOP 0190 BC25 0025 0777 JST ERRIDP --ERROR-- Y INDEXED LOAD FAILED 0778 * 0191 9E85 0197 0779 JMP BAIDTEST CONTINUE WITH THE NEXT TEST SECTION 0780 * 00000014 0781 CELLOC1 EQU $-A00701-1 00000005 0782 CELLOC2 EQU $-A00702-1 0192 AAAA 0783 CEL000 WORD :AAAA 1P: AGE 0028 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:06.00 INSTRUCTION DIAGNOSTIC - BASIC CONFIDENCE 0193 5555 0784 CEL010 WORD :5555 0001 0785 LPOOL 0194 00000195 0786 A00END EQU $ 1PAGE 0029 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09  11:54:06.00 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 0197 0788 NAM BAIDTEST  0789 ********************************************* 0790 * 0791 * ---------- INSTRUCTION DIAGNOSTIC ---------- 0792 * 0793 * THIS SECTION VERIFIES THE BASIC OPERATION OF  0794 * THE FOLLOWING SET OF INSTRUCTIONS. (SOME OF THE 0795 * INSTRUCTIONS HAVE BEEN PARTIALLY TESTED IN 0796 * SECTION A0.) 0797 * 0798 * COPY MEM,3REG RELATIVE, ABSOLUTE 0799 * COPY LIT,REG IMMEDIATE 0800 * CSK 2REG,MEM RELATIVE, ABSOLUTE 0801 * CSK REG,LIT IMMEDIATE 0802 * COPY  REG,MEM ABSOLUTE 0803 * JST MEM RELATIVE 0804 * COPY 2REG,MEM  POST INDEXED, BYTE MODE 0805 * SBIT BIT,S 0806 * RBIT BIT,S  0807 * COPY REG,MEM INDIRECT 0808 * AND REG,REG 0809 * OR REG,REG 0810 * XOR REG,REG 0811 * SIN CNT BYTE MODE INHIBIT  0812 * JT OV,MEM RELATIVE 0813 * JF OV,MEM RELATIVE 0814 * ADD LIT,2REG IMMEDIATE 0815 * SUB LIT,2REG IMMEDIATE 0816 *  JSK MEM RELATIVE 0817 * JSK MEM WITH FORCED STACK OVERFLOW 0818 * SHIFT 2REG,LO,CNT 0819 * SHIFT 2REG,RO,CNT 0820 * IJNE REG,MEM  RELATIVE 0821 * ADDC MEM,REG RELATIVE, DIRECT AND INDIRECT 0822 * DIV MEM,RP QUADRANT 1 TRAP 0823 * 0824 ********************************************* 1PAGE 0030 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:07.25 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 0826 ****** 0827 * 0828 * COPY MEM,3REG  RELATIVE, ABSOLUTE 0829 * COPY LIT,REG IMMEDIATE 0830 * CSK 2REG,MEM ON EQUAL CONDITION REL, ABS 0831 * CSK REG,LIT ON EQUAL CONDITION IMMEDIATE  0832 * COPY REG,MEM ABSOLUTE 0833 * 0834 ****** 0835 * 0836 * DATA 0837 * 0195 0055 0838 RC0055 WORD :0055 0196 8004 ;  0839 INDIR WORD *TEMP+2 00000197 0841 BAIDTEST EQU $ 00000197 0842 B00200 EQU $ 0197 8017 0017 0843 COPY PT6666,A TEST LOAD ABSOLUTE 0198 BA9E 01B7 0844 CSK A,=:6666 TEST CSK RELATIVE 0199 0000 0845 NOP 019A BC25 0025 0846 JST ERRIDP IF A = :6666 CSK FAILED -- ELSE COPY FAILED 0847 * 019B A279 0195 0848 COPY RC0055,X TEST LOAD RELATIVE 019C 2D55 0849 CSK X,=:0055 TEST CSK IMMEDIATE 019D 0000 0850 NOP 019E BC25 0025 0851  JST ERRIDP IF X = :0055 CSK FAILED -- ELSE COPY FAILED 0852 * 019F 49FF 0853  COPY =:00FF,Q TEST LOAD IMMEDIATE 01A0 F811 0011 0854 CSK Q,PT00FF TEST CSK ABSOLUTE 01A1 0000 0855 NOP 01A2 BC25 0025 0856 JST ERRIDP IF Q = :00FF CSK FAILED -- ELSE COPY FAILED  0857 * 01A3 8018 0018 0858 COPY PTAAAA,A 01A4 8403 0003 0859 COPY A,TEMP+1  TEST STORE ABSOLUTE 01A5 B803 0003 0860 CSK A,TEMP+1 01A6 0000 0861 NOP 01A7 BC25 0025 0862 JST ERRIDP COPY FAILED -- A SHOULD = :AAAA 1PAGE 0031 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:08.50 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 0864 ****** 0865 * 0866 * JST MEM 0867 * 0868 ****** 01A8 0900 0869 COPY =0,A 01A9 8684 01AE 0870 COPY A,JSTLOC 01AA BE83 01AE 0871 JST  JSTLOC 01AB 0010 0872 JSTRTN COPY P,A JST FAILED -- DID NOT JUMP 01AC 8425 0025 0873 COPY A,ERRIDP 01AD 9C26 0026 0874 JMP ERRIDP+1 SIMULATED JST TO ERRIDP 01AE 0E0D 0875 JSTLOC ENT 01AF 8288 01B8 0876 COPY =JSTRTN,A 01B0 BA7D 01AE 0877 CSK A,JSTLOC 01B1 0000 0878  NOP 01B2 9E81 01B4 0879 B00210 JMP B00211 WRONG RETURN POINTER AT JST LOCATION 01B3 9E86 01BA 0880  JMP B00220 GOOD - CONTINUE TO NEXT TEST 01B4 0010 0881 B00211 COPY P,A GOT HERE FROM B00210 01B5 8425 0025 0882 COPY A,ERRIDP 01B6 9C26 0026 0883 JMP ERRIDP+1 SIMULATED JST TO ERRIDP 0003 0884 LPOOL 01B7 6666 01B8 01AB JSTRTN 01B9 1PAGE 0032 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:09.00 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  0886 ****** 0887 * 0888 * COPY 2REG,MEM POST INDEXING IN BYTE MODE  0889 * SBIT BIT,S EFFECT ON CONTROL CHIP 0890 * RBIT BIT,S EFFECT ON CONTROL CHIP  0891 * 0892 ****** 000001BA 0893 B00220 EQU $ 01BA 0900 0894 COPY =0,A 01BB 8403 0003 0895 COPY A,TEMP+1 01BC 8404 0004 0896 COPY A,TEMP+2 01BD 2906 <  0897 COPY =TEMP+1%1,X 01BE 09AA 0898 COPY =:AA,A 01BF 4955 0899 COPY =:55,Q 01C0 0E25 0900 SBIT 2,S SET BYTE MODE 01C1 8480 0000 0901 COPY A,0(X) 01C2 C481 0001 0902 COPY Q,1(X) 01C3 0E27 0903 RBIT 2,S SET WORD MODE 01C4 8003 0003  0904 COPY TEMP+1,A 01C5 B80E 000E 0905 CSK A,PTAA55 01C6 0000 0906 NOP 01C7 BC25 0025 0907 JST ERRIDP IF A<>:AA55 RBIT FAILED OR SBIT OR BYTE MODE 1PAGE 0033 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:09.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  0909 ****** 0910 * 0911 * COPY REG,MEM INDIRECT ADDRESSING  0912 * 0913 ****** 01C8 0903 0914 COPY =TEMP+1,A GET ADDR. OF TEMP+1 01C9 8404 0004 0915 COPY A,TEMP+2 STORE IN TEMP+2 01CA 824B 0196 0916 COPY INDIR,A GET ADDR. OF TEMP+2 WIT BIT 15 ON 01CB 8402 0002 0917 COPY A,TEMP STORE IN TEMP 01CC 0E67 0918  RBIT 6,S RESET XA - ALLOW MULTI-LEVEL INDIRECT ADDRESSING 01CD 8016 0016 0919 COPY PT5555,A  GET TEST DATA 01CE 8504 0004 0920 COPY A,*TEMP+2 STORE IN TEMP+1 01CF B803 0003 0921 CSK A,TEMP+1 01D0 0000 0922 NOP 01D1 BC25 0025 0923 JST ERRIDP COPY SINGLE LEVEL INDIRECT FAILED 0924 * 01D2 8018 0018 0925 COPY PTAAAA,A GET TEST DATA 01D3 8502 0002 0926  COPY A,*TEMP STORE IN TEMP+1 01D4 B803 0003 0927 CSK A,TEMP+1 01D5 0000 0928 NOP  01D6 BC25 0025 0929 JST ERRIDP COPY MULTI-LEVEL INDIRECT FAILED 01D7 0E65 0930 SBIT  6,S RESTORE STATUS 1PAGE 0034 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:10.50 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 0932 ****** 0933 *  0934 * AND REG,REG 0935 * OR REG,REG 0936 * XOR REG,REG  0937 * 0938 ****** 01D8 8018 0018 0939 B00300 COPY PTAAAA,A 01D9 C017 0017 0940  COPY PT6666,Q 01DA 4004 0941 AND A,Q 01DB FAA1 01FD 0942 CSK Q,=:2222 01DC 0000 0943 NOP 01DD BC25 0025 0944 JST ERRIDP AND FAILED -- Q SHOULD = :2222 01DE C016 0016  0945 COPY PT5555,Q 01DF A017 0017 0946 COPY PT6666,X 01E0 2047 0947 OR Q,X 01E1 0020 0948 COPY X,A 01E2 BA9B 01FE 0949 CSK A,=:7777 01E3 0000 0950 NOP 01E4 BC25 0025 0951 JST ERRIDP OR FAILED -- X SHOULD = :7777 0952 * 01E5 A017 0017 0953 COPY PT6666,X 01E6 E018 0018 0954 COPY PTAAAA,Y 01E7 6025 0955 XOR X= ,Y 01E8 0060 0956 COPY Y,A 01E9 BA95 01FF 0957 CSK A,=:CCCC 01EA 0000 0958  NOP 01EB BC25 0025 0959 JST ERRIDP XOR FAILED -- Y SHOULD = :CCCC 1PAGE 0035 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:11.25 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  0961 ****** 0962 * 0963 * SIN CNT BYTE MODE INHIBIT  0964 * 0965 ****** 01EC 0E25 0966 SBIT 2,S SET BYTE MODE 01ED 0E2F  0967 SIN 3 01EE C018 0018 0968 COPY PTAAAA,Q 01EF 0E27 0969 RBIT 2,S  SET WORD MODE 01F0 F818 0018 0970 CSK Q,PTAAAA 01F1 0000 0971 NOP 01F2 BC25 0025 0972  JST ERRIDP SIN FAILED -- Q SHOULD = :AAAA 1PAGE 0036 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM  84-93735-10 A100 1983/02/09 11:54:11.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 0974 ******  0975 * 0976 * JT OV,MEM RELATIVE 0977 * JF OV,MEM RELATIVE 0978 * 0979 ****** 01F3 0E15 0980 SBIT 1,S SET OV = 1 01F4 36C2 01F7 0981 JF OV,$+3 01F5 3642 01F8 0982 JT OV,$+3 01F6 BC25 0025 0983  JST ERRIDP JT FAILED WITH OV = 1 -- ELSE JF RESET OV 01F7 BC25 0025 0984 JST ERRIDP JF,FAILED,WITH,OV,=,1 0985 * OV SHOULD BE RESET AT THIS POINT 0986 * 01F8 3642 01FB 0987  JT OV,$+3 01F9 36C2 01FC 0988 JF OV,$+3 01FA BC25 0025 0989 JST ERRIDP JF FAILED WITH OV = 0 01FB BC25 0025 0990 JST ERRIDP JT FAILED WITH OV = 0 01FC 9E85 0202 0991  JMP B00400 0004 0992 LPOOL 01FD 2222 01FE 7777 01FF CCCC 0200 1PAGE 0037 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:12.50 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  0994 ****** 0995 * 0996 * ADD LIT,2REG IMMEDIATE  0997 * 0998 ****** 0999 * 1000 * DATA 1001 * 0201 7F00 1002 RC7F00 WORD :7F00 1003 * 0202 827E 0201 1004 B00400 COPY RC7F00,A 0203 0BFF 1005 ADD =:FF,A 0204 B812 0012 1006 CSK A,PT7FFF 0205 0000 1007 NOP 0206 BC25 0025 1008 JST ERRIDP ADD FAILED -- A SHOULD = :7FFF 1009 * 1010 * POSITIVE OVERFLOW 1011 * 0207 C012 0012 1012 COPY PT7FFF,Q 0208 4B01 1013  ADD =1,Q 0209 F813 0013 1014 CSK Q,PT8000 020A 0000 1015 NOP 020B BC25 0025 1016 JST ERRIDP ADD FAILED -- Q SHOULD = :8000 020C 3641 020E 1017 JT OV,$+2 020D BC25 0025>  1018 JST ERRIDP ADD FAILED -- DID NOT SET OV ON OVERFLOW 1PAGE 0038 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:13.00 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  1020 ****** 1021 * 1022 * SUB LIT,2REG IMMEDIATE 1023 *  1024 ****** 020E A018 0018 1025 COPY PTAAAA,X 020F 2AAB 1026 SUB =:55,X 0210 0020 1027 COPY X,A 0211 B80E 000E 1028 CSK A,PTAA55 0212 0000 1029 NOP  0213 BC25 0025 1030 JST ERRIDP SUB FAILED -- X SHOULD = :AA55 1031 * 1032 * NEGATIVE OVERFLOW 1033 * 0214 E013 0013 1034 COPY PT8000,Y 0215 6AFF 1035  SUB =1,Y 0216 0060 1036 COPY Y,A 0217 B812 0012 1037 CSK A,PT7FFF 0218 0000 1038 NOP 0219 BC25 0025 1039 JST ERRIDP SUB FAILED -- Y SHOULD = :7FFF 021A 3641 021C 1040 JT OV,$+2 021B BC25 0025 1041 JST ERRIDP SUB FAILED -- DID NOT SET OV ON OVERFLOW 1PAGE 0039 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:13.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 1043 ****** 1044 * 1045 * JSK MEM RELATIVE 1046 * 1047 ****** 021C 299C 1048 COPY =:9C,X STACK EXCEPTION TRAP LOCATION 021D 801C 001C 1049 COPY JMP1,A JMP *$+1 (:9F80) 021E 8482 0002 1050  COPY A,2(X) STORE IN 3RD WORD OF TRAP 021F 82AF 024F 1051 COPY =B00402,A TRAP SERVICE ROUTINE ADDRESS 0220 8483 0003 1052 COPY A,3(X) STORE IN 4TH WORD OF TRAP 0221 0900 1053 COPY =0,A 0222 86AB 024E 1054 COPY A,STACK1 CLEAR STACK CELLS 0223 86A9 024D 1055 COPY A,STACK2  0224 82AB 0250 1056 COPY =STACKL,A STACK LIMIT 0225 5000 1057 COPY A,L INITIALIZE L REG. 0226 82AA 0251 1058 COPY =STACKK,A STACK POINTER 0227 7000 1059 COPY A,K  INITIALIZE K REG. 0228 FE83 022C 1060 JSK B00403 00000229 1061 B00401 EQU $ 0229 BC25 0025 1062 JST ERRIDP JSK FAILED -- DID NOT JMP 022A 9E81 022C 1063 JMP $+2 0000022B 1064 B00402 EQU $ 022B BC25 0025 1065 JST ERRIDP JSK FAILED -- SHOULD NOT TAKE TRAP 022C 0070 1066 B00403 COPY K,A GET STACK POINTER 022D BAA4 0252 1067 CSK A,=STACK1 COMPARE WITH EXPECTED VALUE 022E 0000 1068 NOP 022F BC25 0025 1069 JST ERRIDP JSK FAILED -- STACK POINTER HAS WRONG VALUE 0230 829D 024E 1070 COPY STACK1,A GET RETURN POINTER 0231 BAA1 0253 1071  CSK A,=B00401 0232 0000 1072 NOP 0233 BC25 0025 1073 JST ERRIDP JSK FAILED --?  DID NOT STORE P+1 IN STACK 1PAGE 0040 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:14.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 1075 ****** 1076 *  1077 * JSK MEM WITH FORCED STACK OVERFLOW TRAP 1078 * 1079 ****** 0234 829F 0254 1080 COPY =B00408,A STACK TRAP ROUTINE ADDRESS 0235 8483 0003 1081 COPY A,3(X) STORE IN 4TH WORD OF TRAP 0236 FE82 0239 1082 B00405 JSK B00407 00000237 1083 B00406 EQU $ 0237 BC25 0025 1084 JST ERRIDP JSK FAILED -- DID NOT TAKE TRAP 0238 9E81 023A 1085 JMP $+2 00000239 1086 B00407 EQU $ 0239 BC25 0025 1087 JST ERRIDP JSK FAILED -- DID NOT TAKE TRAP 0000023A 1088 B00408 EQU $ 023A 8080 0000 1089 COPY 0(X),A GET 1ST WORD OF TRAP 023B BA99 0255 1090 CSK A,=B00407 023C 0000 1091 NOP 023D BC25 0025 1092 JST ERRIDP LOC :9C SHOULD BE JSK JUMP ADDR 023E 8081 0001 1093 COPY 1(X),A 023F BA76 0236 1094 CSK  A,B00405 0240 0000 1095 NOP 0241 BC25 0025 1096 JST ERRIDP LOC :9D SHOULD BE JSK INSTRUCTION 1097 * 1098 * RESTORE TRAP LOCATIONS 1099 * 0242 801D 001D 1100 COPY JST1,A JST *$+1 (:BF80) 0243 8482 0002 1101 COPY A,2(X) STORE IN 3RD WORD OF TRAP 0244 092E 1102 COPY =ERRUX2,A LOCATION OF UNEXPECTED TRAP SERVICE 0245 8483 0003 1103  COPY A,3(X) STORE IN 4TH WORD OF TRAP 0246 9E90 0257 1104 JMP B00500 1PAGE 0041 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:15.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  1106 * 1107 * DATA 1108 * 0247 0000 1109 STACK RES 8,0 00000247 1110 STACKL EQU STACK 0000024D 1111 STACK2 EQU STACK+6 0000024E 1112 STACK1 EQU STACK+7 0000024F 1113 STACKK EQU STACK+8 1114 * 1115 * 0008 1116 LPOOL 024F 022B B00402 0250 0247 STACKL 0251 024F STACKK 0252 024E STACK1 0253 0229 B00401 0254 023A B00408 0255 0239 B00407 0256 1PAGE 0042 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:16.00 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 1118 ****** 1119 *  1120 * SHIFT 2REG,LO,CNT 1121 * 1122 ****** 00000257 1123 B00500  EQU $ 0257 801A 001A 1124 COPY STATSVX,A 0258 3000 1125 COPY A,S INITIALIZE STATUS 0259 8016 0016 1126 COPY PT5555,A 025A 0E01 1127 SHIFT A,LO,1 025B B818 0018 1128  CSK A,PTAAAA 025C 0000 1129 NOP 025D BC25 0025 1130 JST ERRIDP SHIFT FAI@ LED -- A SHOULD = :AAAA 025E 36C1 0260 1131 JF OV,$+2 025F BC25 0025 1132 JST ERRIDP SHIFT FAILED -- OV SHOULD = 0 0260 C018 0018 1133 COPY PTAAAA,Q 0261 4E21 1134 SHIFT Q,LO,3 0262 FAA8 028B 1135 CSK Q,=:5550 0263 0000 1136 NOP 0264 BC25 0025 1137 JST ERRIDP SHIFT FAILED -- Q SHOULD = :5550 0265 3641 0267 1138 JT OV,$+2 0266 BC25 0025 1139 JST ERRIDP SHIFT FAILED -- OV SHOULD = 1 1PAGE 0043 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:17.00 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 1141 ******  1142 * 1143 * SHIFT 2REG,RO,CNT 1144 * 1145 ****** 0267 A016 0016 1146 COPY PT5555,X 0268 2E09 1147 SHIFT X,RO,1 0269 0020 1148 COPY X,A  026A BAA1 028C 1149 CSK A,=:2AAA 026B 0000 1150 NOP 026C BC25 0025 1151 JST ERRIDP SHIFT FAILED -- X SHOULD = :2AAA 026D 3641 026F 1152 JT OV,$+2 026E BC25 0025 1153 JST ERRIDP SHIFT FAILED -- OV SHOULD = 1 1154 * 026F E016 0016 1155 COPY PT5555,Y 0270 6E99 1156 SHIFT Y,RO,10 0271 6D15 1157 CSK Y,=:0015 0272 0000 1158  NOP 0273 BC25 0025 1159 JST ERRIDP SHIFT FAILED -- Y SHOULD = :0015 0274 36C1 0276 1160 JF  OV,$+2 0275 BC25 0025 1161 JST ERRIDP SHIFT FAILED -- OV SHOULD = 0 1PAGE 0044 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:17.50 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  1163 ****** 1164 * 1165 * IJNE REG,MEM 1166 *  1167 ****** 0276 6900 1168 COPY =0,Y 0277 74C1 0279 1169 IJNE Y,$+2 0278 BC25 0025 1170 JST ERRIDP IJNE FAILED ON Y=0 0279 6D01 1171 CSK Y,=1 027A 0000  1172 NOP 027B BC25 0025 1173 JST ERRIDP IJNE FAILED -- DID NOT INCREMENT Y 1PAGE 0045 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:17.75 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET 1175 ****** 1176 * 1177 * ADDC MEM,REG RELATIVE, DIRECT AND INDIRECT 1178 * 1179 ****** 027C 801A 001A 1180 COPY STATSVX,A 027D 3000 1181 COPY A,S INITIALIZE STATUS (RESET CY). 027E 800F 000F 1182 COPY PTFFFF,A 027F 0702 1183 ADDC CEL100,A TEST ADDC DIRECT RELATIVE --> A=2, CY=1 0280 0289 0281 0742  1184 ADDC *CELADR,A TEST ADDC INDIRECT RELATIVE --> A=6, CY=0 0282 028A 0283 0D06 1185 CSK  A,=6 0284 0000 1186 NOP 0285 BC25 0025 1187 JST ERRIDP ADD FAILED -- A SHOULD = 6 A  0286 56C1 0288 1188 JF CY,$+2 0287 BC25 0025 1189 JST ERRIDP ADDC FAILED -- CY SHOULD = 0 0288 9E85 028E 1190 JMP B00600 0289 0003 1191 CEL100 WORD :0003 028A 0289 1192 CELADR WORD CEL100 0003 1193 LPOOL 028B 5550 028C 2AAA 028D 1PAGE 0046 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:18.50 INSTRUCTION DIAGNOSTIC - BASIC INSTRUCTION SET  1195 ****** 1196 * 1197 * DIV MEM,AY QUADRANT 1 TRAP TEST  1198 * 1199 ****** 0000028E 1200 B00600 EQU $ 028E 29A8 1201 COPY  =:A8,X AE TRAP LOCATION 028F 828A 029A 1202 COPY =B00603,A TRAP SERVICE ROUTINE LOCATION 0290 8483 0003 1203 COPY A,3(X) STORE IN 4TH WORD OF TRAP (:AB) 0291 8014 0014 1204 COPY PT4000,A 0292 8403 0003 1205 COPY A,TEMP+1 0293 8012 0012 1206 COPY PT7FFF,A 0294 6900 1207  COPY =0,Y 0295 6701 1208 B00601 DIV TEMP+1,AY 0296 0003 00000297 1209 B00602 EQU $ 0297 BC25 0025 1210 JST ERRIDP DIV FAILED -- SHOULD TAKE TRAP 1211 * 0298 BC2B 002B 1212 B00603 JST ERRUX1 TRAP SERVICE ROUTINE ENTRY 0299 9E88 02A2 1213 JMP EXIDTEST GO TO NEXT TEST 0002 1214 LPOOL 029A 0298 B00603 029B 1PAGE 0047 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM  84-93735-10 A100 1983/02/09 11:54:19.25 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 02A2 1216  NAM EXIDTEST 1217 ************************************************************************  1218 * 1219 * EXTENDED INSTRUCTION TEST: 1220 * 1221 * ADDF  MEM,RP ABSOLUTE, DIRECT ADDRESSING 1222 * SHIFT RP,RO,CNT 1223 * ANDE MEM,REG  ABSOLUTE, INDIRECT, X-INDEXED ADDRESSING 1224 * CEA MEM,REG ABSOLUTE, INDIRECT, X,Y-INDEXED ADDRESSING 1225 * JSTE MEM ABSOLUTE, DIRECT ADDRESSING 1226 * JMPE MEM ABSOLUTE, DIRECT ADDRESSING 1227 * 1228 ************************************************************************ 1229 * 1230 * DATA - RELATIVE CONSTANTS FOR ADDF TEST  1231 * 029C 5144 1232 RC5144 WORD :5144 029D 3D4E 1233 RC3D4E WORD :3D4E 029E 51B1 1234 RC51B1 WORD :51B1 029F 9C4D 1235 RC9C4D WORD :9C4D 02A0 511E 1236 RC511E WORD :511E 02A1 FB4C  1237 RCFB4C WORD :FB4C 000002A2 1239 B00604 EQU $ 000002A2 1240 EXIDTEST EQU $ 02A2 0308 1241 FMT A 02A3 0C43 1242 CLSN A,=:43 CHECK MACHINE TYPE 02A4 9E81 02A6  1243 JMP $+2 02A5 BC25 0025 1244 JST ERRIDP ERROR - WRONG MACHINE TYPE 1PAGE 0048 MACRB O (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:20.25 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 1246 ************************************************************************  1247 * 1248 * THE FOLLOWING INSTRUCTION IS TESTED IN THIS SECTION 1249 *  1250 * ADDF 1251 * 1252 * +:C43D4E +34 ADDF +:9EFB4C +34 = +:B19C4D +35 CARRY INTO EXP. 1253 * CY=S OV=S A=:5144 Q=:3D4E ADDF :511E :FB4C=:51B1 :94CD OK 1254 ************************************************************************ 000002A6 1256 FLOAT1 EQU $ 02A6 8275 029C 1257 COPY RC5144,A :5144 => 'A' 02A7 C275 029D 1258 COPY RC3D4E,Q :3D4E => 'Q' 02A8 0E05 1259 SBIT CY,S SET CARRY FLAG 02A9 0E15 1260 SBIT OV,S  SET OVERFLOW FLAG 02AA 9E82 02AD 1261 JMP $+3 JUMP AROUND OPERAND 000002AB 1262 FLOAT2 EQU $ 02AB 511E 1263 WORD :511E INSTRUCTION OPERAND 02AC FB4C 1264 WORD :FB4C 000002AD 1265 FLOAT3 EQU $ 02AD 5C00 1266 ADDF FLOAT2 DO THE OPERATION 02AE 02AB 02AF BA6E 029E 1267 CSK A,RC51B1 CHECK -A- 02B0 0000 1268 NOP 02B1 BC25 0025 1269  JST ERRIDP -A- SHOULD CONTAIN :51B1 02B2 FA6C 029F 1270 CSK Q,RC9C4D CHECK -Q- 02B3 0000 1271 NOP 02B4 BC25 0025 1272 JST ERRIDP -Q- SHOULD CONTAIN :9C4D 02B5 8275 02AB 1273 COPY FLOAT2,A 02B6 BA69 02A0 1274 CSK A,RC511E CHECK OPERAND WORD 1 02B7 0000 1275  NOP 02B8 BC25 0025 1276 JST ERRIDP ADDF MODIFIED OPERAND 02B9 8272 02AC 1277 COPY  FLOAT2+1,A 02BA BA66 02A1 1278 CSK A,RCFB4C CHECK OPERAND WORD 2 02BB 0000 1279 NOP 02BC BC25 0025 1280 JST ERRIDP ADDF MODIFIED OPERAND 02BD 3641 02BF 1281 JT OV,$+2  OVERFLOW STILL SET? 02BE BC25 0025 1282 JST ERRIDP NO - ADDF CHANGED OVERFLOW 02BF 5641 02C1 1283  JT CY,$+2 CARRY STILL SET? 02C0 BC25 0025 1284 JST ERRIDP NO - ADDF CHANGED CARRY  000002C1 1285 ENDADDF EQU $ 1PAGE 0049 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:21.75 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 1287 ****************************** 1288 * 1289 * SHIFT AQ,RO,CNT 1290 * 1291 ****************************** 1293 * 1294 * NOTE: 1295 *  1296 * OV SHOULD HAVE BEEN RESET BY 'JT OV' IN PREVIOUS TEST 1297 * 000002C1 1299 D21010 EQU $ 02C1 800F 000F 1300 COPY PTFFFF,A 02C2 4900 1301 COPY =0,Q 02C3 4F09 1302 C  SHIFT AQ,RO,1 02C4 B812 0012 1303 CSK A,PT7FFF 02C5 0000 1304 NOP 02C6 BC25 0025  1305 JST ERRIDP SHIFT FAILED - AREG SHOULD = :7FFF 02C7 F813 0013 1306 CSK Q,PT8000 02C8 0000 1307 NOP 02C9 BC25 0025 1308 JST ERRIDP SHIFT FAILED - QREG SHOULD = :8000 02CA 36C1 02CC 1309 JF OV,$+2 02CB BC25 0025 1310 JST ERRIDP SHIFT FAILED - OV SHOULD = 0  000002CC 1311 ENDSHIFT EQU $ 1PAGE 0050 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:22.25 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 1313 ****************************** 1314 * 1315 * ANDE *MEM(X),A 1316 * 1317 ****************************** 000002CC 1319 H16000 EQU $ 02CC 2901 1320 COPY =1,X 02CD 828D 02DB 1321 COPY =CEL131,A 02CE 8689 02D8 1322 COPY A,CEL130 CEL131 ADD IN CEL130 02CF 8016 0016 1323 COPY PT5555,A 02D0 8689 02DA 1324 COPY A,CEL132 02D1 8017 0017 1325 COPY PT6666,A 02D2 076E 1326 ANDE *CEL130(X),A AND CEL132 WITH A 02D3 02D8 02D4 B815 0015 1327 CSK  A,PT4444 02D5 0000 1328 NOP 02D6 BC25 0025 1329 JST ERRIDP ANDE FAILED - AREG SHOULD = :4444 02D7 9E85 02DD 1330 JMP ENDANDE 1331 * 02D8 0000 1332 CEL130 WORD 0 02D9 0000 1333 CEL131 WORD 0 02DA 0000 1334 CEL132 WORD 0 0002 1335 LPOOL 02DB 02D9 CEL131 02DC 000002DD 1336 ENDANDE EQU $ 1PAGE 0051 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM  84-93735-10 A100 1983/02/09 11:54:23.25 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 1338 ****************************** 1339 * 1340 * CEA *MEM(X,Y),Q 1341 *  1342 ****************************** 000002DD 1344 H22000 EQU $ 02DD 6901 1345 COPY =1,Y 02DE 2900 1346 COPY =0,X 02DF 0904 1347 COPY =TEMP+2,A 02E0 8403 0003 1348 COPY A,TEMP+1 02E1 4774 1349 CEA *TEMP(X,Y),Q EA = TEMP+2 02E2 0002 02E3 400B 1350 CSK Q,A 02E4 0000 1351 NOP 02E5 BC25 0025 1352 JST ERRIDP CEA FAILED - QREG SHOULD = ADDR OF TEMP+2 000002E6 1353 ENDCEA EQU $ 1PAGE 0052 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:23.75 INSTRUCTION DIAGNOSTIC - EXTENDED INSTRUCTION SET 1355 ****************************** 1356 * 1357 * JSTE MEM 1358 * JMPE MEM 1359 * 1360 ****************************** 000002E6 1362 H19000 EQU  $ 000002E6 1363 H19000 EQU $ 02E6 270D 1364 JSTE H19002 02E7 02EA 000002E8 136D 5 H19001 EQU $ 02E8 BC25 0025 1366 JST ERRIDP JSTE FAILED - DID NOT JUMP 02E9 9E88 02F2 1367  JMP H19004 GO TEST JMPE 1368 * 02EA 0E0D 1369 H19002 ENT 02EB 828D 02F9 1370  COPY =H19001,A 02EC BA7D 02EA 1371 CSK A,H19002 02ED 0000 1372 NOP 02EE 9E82 02F1 1373 JMP H19003 ABNORMAL EXIT - BAD RETURN ADDR 02EF DE7A 02EA 1374 IMS H19002 02F0 9F79 02EA 1375 JMP *H19002 1376 * 02F1 BC25 0025 1377 H19003 JST ERRIDP JSTE FAILED - BAD RETURN ADDR IN H19002 02F2 070D 1378 H19004 JMPE ENDJMPE EXIT TEST 02F3 02F5 02F4 BC25 0025 1379 JST ERRIDP JMPE FAILED - DID NOT JMP 000002F5 1380 ENDJMPE EQU $ 02F5 0202 1381 OUT A,2 RESET WATCHDOG TIMER 02F6 DC24 0024 1382 IMS IDPCNT INCREMENT IDP PASS COUNTER 02F7 9F82 02FA 1383 JMP A00200 REPEAT IDP 02F8 9E83 02FC 1384 JMP ENDIDP  EXIT TEST 0003 1385 LPOOL 02F9 02E8 H19001 02FA 00EA A00200 02FB 000002FC 1386 ENDIDP EQU  $ 1PAGE 0053 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:24.75 UNIMPLEMENTED INSTRUCTION TEST 02FC 1388 NAM UITEST 1389 **************************************** 1390 * 1391 * THIS TEST EXECUTES A SINGLE UNIMPLEMENTED 1392 * INSTRUCTION (:0E0E) TO INSURE THAT IT INVOKES 1393 * THE UNIMPLEMENTED INSTRUCTION TRAP, AND  1394 * THAT THE TRAP OPERATES CORRECTLY. 1395 * 1396 **************************************** 000002FC 1397 UITEST EQU $ UNIMPLEMENTED INSTRUCTION TEST ENTRY POINT 02FC 0902  1398 COPY =:02,A UIT INDICATOR 02FD 0404 1399 SELP A,4 OUTPUT TO CONSOLE DATA REGISTER 02FE 6984 1400 COPY =:84,Y UNIMP. INSTR. TRAP LOCATION 02FF 8294 0314 1401  COPY =B00704,A TRAP SERVICE ROUTINE LOCATION 0300 8443 0003 1402 COPY A,3(Y) STORE IN 4TH WORD OF TRAP (:87) 0301 801A 001A 1403 COPY STATSVX,A 0302 3000 1404 COPY A,S INITIALIZE STATUS 0303 8010 0010 1405 COPY PTF0F0,A LOOP COUNT (-3856) 0304 8402 0002 1406 COPY A,TEMP INITIALIZE LOOP COUNTER 0305 0900 1407 B00701 COPY =0,A -- CLEAR 0306 8440 0000 1408  COPY A,0(Y) -- TRAP 0307 8441 0001 1409 COPY A,1(Y) -- LOCATIONS 0308 0202 1410  OUT A,2 RESET WATCHDOG TIMER 0309 0E0E 1411 B00702 WORD :0E0E EXECUTE UNIMPLEMENTED INSTRUCTION 0000030A 1412 B00703 EQU $ 030A 4920 1413 COPY =:20,Q INSTRUCTION AT B00702 DID NOT CAUSE TRAP 030B BC31 0031 1414 JST ERRDSPLY ERROR EXIT 1415 * 030C 0E0D E  1416 B00704 ENT 030D 48F7 1417 COPY =-9,Q 030E 54BF 030E 1418 IJNE Q,$ DELAY UNTIL SIN COUNTER IS EXPIRED 030F DC02 0002 1419 IMS TEMP INCREMENT LOOP COUNTER 0310 9E74 0305 1420 JMP B00701 DO AGAIN TILL LOOP COUNTER GOES TO ZERO 1421 * 0311 092E 1422  COPY =ERRUX2,A UNEXPECTED UIT SERVICE ROUTINE LOCATION 0312 8443 0003 1423 COPY A,3(Y) STORE IN 4TH WORD OF TRAP (:87) 0313 9E84 0318 1424 JMP RTCTEST EXIT TO NEXT TEST 1425 *  0002 1426 LPOOL 0314 030C B00704 0315 1PAGE 0054 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:26.25 REAL TIME CLOCK TEST 0318 1428 NAM RTCTEST  1429 ********************************************* 1430 * 1431 * ---------- REAL TIME CLOCK TEST ---------- 1432 * 1433 * THIS TEST VERIFIES THAT THE REAL TIME CLOCK  1434 * INCREMENT AND INTERRUPT WORK, AND THAT STATUS 1435 * REGISTER BIT 5 CONTROLS THE REAL TIME CLOCK 1436 * 1437 * IT IS CALCULATED TO WORK WITH A REAL TIME CLOCK  1438 * TIME BASE (RTCI) OF 10 HZ TO 10 KHZ 1439 * 1440 ********************************************* 1441 * 1442 * DATA 1443 * 0316 AA10 1444 DELAY1 WORD :AA10 (-22000) 110 MS WITH 10 HZ RTCI 0317 FFF8 1445 DELAY2 WORD :FFF8 (-8) 8 TIMES 110 MS INNER LOOP 1446 * 00000318 1447 RTCTEST EQU $ REAL TIME CLOCK TEST ENTRY POINT 0318 0903 1448 COPY =:03,A RTC RUN CODE 0319 0404 1449 SELP A,4  OUTPUT TO CONSOLE DATA REGISTER 031A 8402 0002 1450 COPY A,TEMP INITIALIZE LOOP COUNTER 031B DC02 0002 1451 IMS TEMP DELAY LOOP FOR DISPLAY OF RUN CODE 031C 9E7E 031B 1452 JMP $-1  031D 4930 1453 COPY =:30,Q RTC ERROR CODE 031E 2991 1454 COPY =:91,X RTC INCREMENT CELL LOCATION 031F 82A4 0344 1455 COPY =RTCSERV,A RTC INTERRUPT SERVICE ROUTINE LOCATION 0320 8482 0002 1456 COPY A,2(X) STORE IN RTC INTERRUPT LOCATION (:93) 0321 08F6 1457 COPY =-10,A INITIAL COUNT TO AREG 0322 8480 0000 1458 COPY A,0(X) STORE IN INCREMENT CELL (:91) 0323 0E17 1459 RSTFLAG RBIT OV,S ENSURE FLAG FOR EXPECTED INTERRUPT RESET 0324 801B 001B 1460 COPY STATRI,A 0325 3000 1461 COPY A,S ENABLE RTC 0326 0000 1462 NOP  SHOULD INCREMENT LOC :91 ONCE HERE 0327 0E57 1463 RBIT 5,S DISABLE RTC 0328 8080 0000 1464  COPY 0(X),A FETCH RTC INCREMENT CELL 0329 BA9B 0345 1465 CSK A,=-9 CHECK INCREMENT CEF LL 032A BC31 0031 1466 JST ERRDSPLY DID NOT INCREMENT - CANNOT ENABLE RTC 032B BC31 0031 1467 JST ERRDSPLY INCREMENTED MORE THAN ONCE 032C E269 0316 1468 COPY DELAY1,Y 1PAGE 0055 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:28.00 REAL TIME CLOCK TEST 032D 0202 1470  RTCLOOP1 OUT A,2 RESET WATCHDOG TIMER 032E 74BE 032D 1471 IJNE Y,RTCLOOP1 DELAY FOR > 1 TIC INTERVAL AT 10 HZ RTCI 032F 8080 0000 1472 COPY 0(X),A FETCH RTC INCREMENT CELL 0330 BA94 0345 1473  CSK A,=-9 CHECK THAT INCREMENT CELL DID NOT CHANGE 0331 0000 1474 NOP 0332 BC31 0031 1475  JST ERRDSPLY CANNOT DISABLE RTC 0333 0E15 1476 SETFLAG SBIT OV,S SET FLAG FOR EXPECTED INTERRUPT 0334 0E55 1477 SBIT 5,S ENABLE RTC 0335 E260 0316 1478 RTCLOOP2 COPY DELAY1,Y  LOC :91 SHD INC FROM -8 (:FFF8) AT BEGINNING 0336 0202 1479 RTCLOOP3 OUT A,2 RESET WATCHDOG TIMER 0337 74BE 0336 1480 IJNE Y,RTCLOOP3 DELAY FOR > 1 TIC INTERVAL AT 10 HZ RTCI 0338 DE5E 0317 1481 IMS DELAY2 DELAY FOR > TIME TO COUNT TO ZERO 1482 AT 10 HZ RTCI 0339 9E7B 0335 1483 JMP RTCLOOP2 033A BC31 0031 1484 JST ERRDSPLY NO RTC INTERRUPT 033B 0E0D  1485 RTCSERV ENT INTERRUPT SERVICE ROUTINE 033C 3641 033E 1486 CKFLAG JT OV,$+2 CHECK FLAG FOR EXPECTED INTERRUPT 033D BC31 0031 1487 JST ERRDSPLY INTERRUPTED TOO SOON - CAN'T DISABLE RTC 033E 8080 0000 1488 COPY 0(X),A FETCH INCREMENT CELL 033F 1141 0341 1489 JEQ A,$+2 0340 BC31 0031 1490 JST ERRDSPLY LOC :91 NOT ZERO 0341 092B 1491 COPY =ERRUX1,A 0342 8482 0002 1492 COPY A,2(X) RESTORE ERROR TRAP IN LOC :93 0343 9E83 0347 1493 JMP SALTEST  EXIT TO NEXT TEST 0003 1494 LPOOL 0344 033B RTCSERV 0345 FFF7 0346 1PAGE 0056 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:29.00 SOFTWARE AUTOLOAD TEST 0347 1496  NAM SALTEST 1497 ******************************************************************  1498 * 1499 * ----------SOFTWARE AUTOLOAD TEST---------- 1500 * 1501 * TEST PROGRAMS ARE LOADED INTO SCRATCHPAD MEMORY LOCATIONS 1502 * RESERVED IN THE NUCLEUS SECTION. (LOCATIONS :01 - :07) 1503 * EXECUTION OF THE SAL INSTRUCTION IS TESTED FOR ALL COMBINATIONS  1504 * OF EXECUTION (BIT 13) AND CHAIN (BIT 14) BIT SETTINGS NOT 1505 * ALREADY USED TO LOAD AND EXECUTE THIS ISOLITE TEST PROGRAM. 1506 * 1507 * DURING THE SAL TEST THE NUMBER :0004 IS WRITTEN TO THE CONSOLE 1508 * DATA REGISTER. 1509 * 15G 10 * NOTE: 1511 * 1512 * IN NO CASE IS THE CHAIN INSTRUCTON ACTUALLY EXECUTED, ONLY 1513 * ITS EXISTENCE IS CHECKED FOR. THE CHAIN INSTRUCTION IS ANOTHER 1514 *  SAL INSTRUCTION OF A FORM ALREADY BEING TESTED HERE, THEREFORE 1515 * IT NEED NOT BE ACTUALLY EXECUTED. FURTHERMORE, NO ASSUMPTIONS 1516 * HAVE BEEN MADE CONCERNING THE EXISTENCE OF OTHER BOARDS IN THE  1517 * SYSTEM CONTAINING AUTOLOAD ROMS AND THEREFORE THE EFFECT OF 1518 * EXECUTING A CHAIN INSTRUCTION AT THIS TIME IS UNDEFINED. 1519 * 1520 ******************************************************************* 1PAGE 0057 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:30.00 SOFTWARE AUTOLOAD TEST 1522 *************************************************************** 1523 * 1524 * INITIALIZE SAL TEST SET UP 1525 * 1526 **************************************************************** 1527 * 1528 * CLEAR SCRATCHPAD AREA TO BE USED 1529 * 00000347 1530 SALTEST EQU $ 0347 0904 1531  COPY =:04,A 0348 0404 1532 SELP A,4 OUTPUT THE TEST INDICATOR 0349 8402 0002 1533  COPY A,TEMP INITIALIZE LOOP COUNTER 034A DC02 0002 1534 IMS TEMP DELAY LOOP FOR DISPLAY OF TEST INDICATOR 034B 9E7E 034A 1535 JMP $-1 034C 0202 1536 OUT A,2 RESET WATCHDOG TIMER 034D 801A 001A 1537 C00000 COPY STATSVX,A 034E 3000 1538 COPY A,S CLEAR STATUS 034F 0900 1539 COPY =0,A 0350 2906 1540 COPY =:06,X USE XREG AS LOOP COUNTER 0351 8481 0001 1541 C00001 COPY A,1(X) CLEAR MEM LOCATIONS :0001 - :0007 0352 35BE 0351 1542 JNED  X,C00001 REPEAT UNTIL X=0 0353 801F 001F 1543 COPY JSTSAL,A SET UP ERROR TRAP FOR POSSIBLE 0354 8400 0000 1544 COPY A,0 EXECUTE BIT FAILURE 1545 * 1546 * MUST NOP ABOVE LOCATION IF WISH TO USE DEBUG BREAKPOINTS 1547 * 1PAGE 0058 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:31.25 SOFTWARE AUTOLOAD TEST 1549 ************************************************************** 1550 * 1551 * SAL TEST 1: NO CHAIN - NO EXECUTE 1552 * 1553 * SALTEST FILE 1 CONSISTS 4 JST INDIRECT TO ERRSAL INSTRUCTIONS  1554 * (:BD20) LOADED AT LOCATION :03. 1555 * 1556 * AN EXECUTION ADDRESS IS SPECIFIED (:05) , ALTHOUGH TH EXECUTE 1557 * BIT IS OFF. 1558 *  1559 * IF THE PROGRAM IS ERRONEOUSLY EXECUTED, IT WILL VECTOR TO 1560 * ERRSAL. H  1561 * 1562 **************************************************************** 00000355 1563 C00100 EQU $ 00000355 1564 SALTEST1 EQU $ 1565 * 0355 66C0 1566 SAL 12,0 LOAD SALTEST 1 FILE 1567 * 1568 * PROGRAM EXECTUTION SHOULD RETURN TO SAL INSTR+1 (SVEXIT) 1569 * 1570 * TEST THE OVERFLOW BIT - SHOULD BE 0 1571 * 0356 36C1 0358 1572 JF OV,$+2 0357 BC28 0028 1573 JST ERRSAL OV NOT= 0  1574 * 0358 801F 001F 1575 COPY JSTSAL,A JST INDIR TO ERRSAL INST (:BD20) 0359 2903 1576  COPY =3,X 035A B883 0003 1577 C00101 CSK A,3(X) CHECK MEMORY FOR PROGRAM EXISTENCE 035B 0000 1578 NOP 035C BC28 0028 1579 JST ERRSAL SAL PROGRAM LOAD FAILED 035D 35BC 035A 1580  JNED X,C00101 REPEAT UNTIL X=0 1581 * 035E 0900 1582 COPY =0,A CLEAR AREG FOR CHAIN TEST 035F B807 0007 1583 CSK A,:07 LOC :07 SHOULD BE 0 (NO CHAIN INSTR) 0360 0000 1584 NOP 0361 BC28 0028 1585 JST ERRSAL CHAIN BIT FAILURE 00000362 1586 ENDSAL1 EQU  $ FALL THRU TO NEXT TEST 1PAGE 0059 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:32.75 SOFTWARE AUTOLOAD TEST 1588 *************************************************************** 1589 * 1590 * SAL TEST 2: NO CHAIN - DO EXECUTE 1591 *  1592 * SALTEST FILE 2 IS A SINGLE INSTRUCTION: JMP *RETADDR (:9D01). 1593 * (RETADDR IS FILLED PRIOR TO THE SAL) 1594 * 1595 * THE LOAD ADDRESS IS :02. 1596 * 1597 * THE EXECUTION ADDRESS IS :02 1598 * 1599 **************************************************************** 00000362 1600 C00200 EQU $ 00000362 1601 SALTEST2 EQU $ 1602 * 0362 0010 1603 COPY P,A GET THE CURRENT LOCATION 0363 0B04  1604 ADD =C00201-$,A A POINTS TO THE RETURN LOCATION (C00201) 0364 8401 0001 1605 COPY A,RETADDR SET UP THE RETURN 1606 * 0365 66D0 1607 SAL 13,0 LOAD AND EXECUTE SALTEST 2 FILE 1608 * 0366 BC28 0028 1609 JST ERRSAL EXECUTE BIT FAILURE 0367 C01F 001F  1610 C00201 COPY JSTSAL,Q JST INDIR TO ERRSAL INST (:BD20) 1611 * 0368 F803 0003 1612  CSK Q,:03 LOC :03 SHOULD HAVE :BD20 FROM TEST 1 0369 0000 1613 NOP 036A BC28 0028 1614  JST ERRSAL CHAIN BIT FAILURE 0000036B 1615 ENDSAL2 EQU $ FALL THRU TO NEXT TEST 1PAGE 0060 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:33.75 SOFTWARE AUTOLOAD TEST I  1617 ************************************************************** 1618 *  1619 * SAL TEST 3: CHAIN - NO EXECUTE 1620 * 1621 * SALTEST FILE 3 CONSISTS OF 4 JST INDIRECT TO ERRSAL INSTRUCTIONS 1622 * (:BD20), LOADED AT LOCATION :02. 1623 *  1624 * AN EXECUTION ADDRESS (:04) IS SPECIFIED, ALTHOUGH THE EXECUTE 1625 * BIT IS OFF. 1626 * 1627 * IF THE PROGRAM IS ERRONEOUSLY EXECUTED, IT WILL VECTOR TO  1628 * ERRSAL. 1629 * 1630 **************************************************************** 0000036B 1631 C00300 EQU $ 0000036B 1632 SALTEST3 EQU $ 1633 *  036B 66E0 1634 SAL 14,0 LOAD SALTEST 3 FILE 1635 * 036C 8023 0023 1636  COPY SAL141,A SAL 14,1 (:66E1) 1637 * 1638 * NOTE: LOC :06 SHOULD CONTAIN A SAL 14,1 (:66E1) IF LOOPEN IS OFF, 1639 * OR A SAL 0,1 (:6601) IF LOOPEN IS ON. 1640 * 036D B806 0006 1641 CSK A,:06 LOC :06 SHOULD CONTAIN A SAL 14,1 (:66E1) 036E 0000 1642  NOP 036F 9E80 0370 1643 JMP $+1 LOOPEN ON - GO CHECK FOR SAL 0,1 0370 9E84 0375 1644  JMP SALTEST4 LOOPEN OFF - GO TO NEXT TEST 0371 8022 0022 1645 COPY SAL01,A SAL 0,1 (:6601) 0372 B806 0006 1646 CSK A,:06 TEST FOR SAL 0,1 0373 0000 1647 NOP 0374 BC28 0028 1648 JST ERRSAL CHAIN BIT FAILURE 00000375 1649 ENDSAL3 EQU $ FALL THRU TO NEXT TEST 1PAGE 0061 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:35.00 SOFTWARE AUTOLOAD TEST 1651 ************************************************************** 1652 *  1653 * SAL TEST 4: ATTEMPT TO LOAD NONEXISTENT PROGRAM 1654 * 1655 *************************************************************** 1656 * 00000375 1657 C00500 EQU $  00000375 1658 SALTEST4 EQU $ 0375 66B0 1659 SAL 11,0 ROUTINE 11 IS A NULL ROUTINE  1660 * 1661 * THE OVERFLOW BIT SHOULD HAVE BEEN SET 1662 * 0376 3641 0378 1663 JT OV,$+2 IF OV = 1, GO TO NEXT TEST 0377 BC28 0028 1664 JST ERRSAL OV NOT SET 1PAGE 0062 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:35.50 MEMORY TEST  0378 1666 NAM MEMTEST 1667 ************************************************************************ 1668 * 1669 * ------ MEMORY TEST ------ 1670 *  1671 * MEMORY TEST FIRST STARTS A BACKGROUND TASK (WATCHDOG) TO KEEP THE 1672 * WATCHDOG TJ IMER RESET IF A BBU IS INSTALLED IN SYSTEM. 1673 * 1674 * THEN, USING THE VARIABLE RAMSIZ CALCULATED IN BITTEST AS THE TOP 1675 * OF RAM POINTER, ALL UNUSED RAM IS TESTED WITH AN ADDRESS TEST AND 1676 * A SPIRAL ONE'S TEST. 1677 * 1678 ************************************************************************ 1679 * 1680 * DISPLAY RAM SIZE AND TEST CODE 1681 * 00000378 1682 MEMTEST EQU $ 0378 8008 0008 1683 COPY RAMSIZ,A 0379 0E08 1684 SHIFT A,R,1 COMPUTE MEMORY SIZE IN K-BYTES 1685  - OPTIONAL INSTRUCTION - 037A 0B01 1686 ADD =1,A 037B 4800 1687 COPY =-256,Q  :FF00 TO QREG 037C 0044 1688 AND Q,A MASK OFF LOWER BYTE 037D 1905 1689 OR  =:05,A ADD IN TEST CODE 037E 0404 1690 SELP A,4 OUTPUT TO CDR 1691 * 1692 * INITIALIZE WATCHDOG TIMER RESET 1693 * 037F 6991 1694 COPY =:91,Y RTC INCREMENT CELL 0380 48F7 1695 COPY =-9,Q .9 SEC COUNT WITH 10 HZ RTCI 0381 C440 0000 1696 COPY Q,0(Y) STORE COUNT IN INCREMENT CELL (:91) 0382 493C 1697 COPY =WATCHDOG,Q WATCHDOG TIMER SUBROUTINE ADDRESS 0383 C442 0002 1698 COPY Q,2(Y) STORE IN RTC INTERRUPT LOC (:93) 0384 4202 1699 OUT Q,2 RESET WATCHDOG TIMER - QREG DON'T CARE 0385 801B 001B 1700 COPY STATRI,A 0386 3000 1701 COPY A,S ENABLE RTC 1PAGE 0063 MACRO (F200) SCOUT NM4/08 CPU ISOLITE TEST PROGRAM 84-93735-10 A100 1983/02/09 11:54:36.75 ADDRTEST 1703 ************************************************************************ 1704 * 1705 * ADDRESS TEST 1706 * 1707 * WRITES THE ADDRESS OF EACH UNUSED RAM LOCATION INTO ITSELF AND 1708 * THEN VERIFIES THAT EACH LOCATION CONTAINS ITS ADDRESS. 1709 * 1710 ************************************************************************ 00000387 1712 ADDRTEST EQU $ 0387 A2B4 03BC 1713 COPO0SEGMENTBLANK oim MACRO (F200) @½ ½ 820922155013820922155013830208143259O0SEGMENTBLANK oim MACRO (F200) @K 820922155013820922155013830208143259’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’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’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’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’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’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’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’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’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’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’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’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’IL ’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’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’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’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’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’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’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’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’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’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’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’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’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