IMD 1.16: 31/08/2008 10:33:53 84-93926-04 a300 f92604 omega utility vol 2 mos ram srce  �� � @0‚|†ø)€€ªv1½®u¦o) ˆ " �}‚jÿA ¢cœ�OMEGA4€MÁOM790111120000OM790111120000OM790111120000 UTILITY.DLD      �ù�¼�õ—µ.Mˆ@†jæjg€ÿíg�ÿèÂg@ †o G€ÿò`úk��¾ò�½¢_„C# b# �}€BŸ€ �uÒ[¾ä �ü�]e‡ †JÂR¾¬æîi¾ğÀˆÆCp@€„†=€…†<€††;€ƒ †GÂ9P@ G€ÿÂÆ<à‰¾•NÆéP¾èâÖèCHùC €ˆC ˜GÈTºà€qE�æ‚â¢(ŸÈ�¤ *�¦Â C¦ ¦ÎŸxÆ�ë @0DAJ÷LÆ)À€ªè1½" ¦ † i¾¦€„�œ�+â  f�G¾úŞõ�C)3�à `jo�BˆB¾ I,Ÿv ¾ °¾ €B¾ I,Ÿm�Ë � @¬E°E¨F¤F)¤D¾^ÄE‚‚„F�& †ÊæjHÿÆÄÆÄ@pÆO¾ÄŸv g€ÿ9g�ÿ6ò]X¾] P¢hâV+ì„s=è„胾c��Æ_†N‚£ �ˆ�ôŠGŠF¾Ö�Üÿö†š¾À�×¾÷ ¦”Â’@AúvLèSÃ)"$ C �‰�j�÷ª0�îŠ.�jŠ,�Ÿ�hÿÿ ‚p �…âv¾R†Ÿw ŞpŞp�wâ‚p¾ Şkâi�º† ’ŸÂ¢œ€15 !¦^æ\�d ²X‚ �ˆò %€À'+ò²NŸs愾Qâ‚)�s ‡EŞDŸ|Ÿ{ @�% o�µ O�® m�¬ J�ª K�¨ i�· g�µ†. �V t�±�ì„sFè„n`" FàE�D)� ¾E`¾CnrgŸy ¾w"¾NŞ�{�R¾q¾IŞ�}�M¾3`¾1t¾�H¾. ²C¾d ¾)Ş?Ş>Ş=�y¦;�<¾"�:¾ ü¾0�6OS:: SYSÿe%OM790111120000OM790111120000OM790723150547e  @OM790111120000OM790111120000OM790111120000e$OM790111120000OM790111120000OM790111120000eOM790111120000OM790111120000OM790111120000OM790111120000OM790111120000OM790111120000ew ?¡OM790111120000OM790111120000OM790111120000eGç7603010000245076030100002750deOÁ7603010000300076030100003225d  eT 7603010000347576030100003825d e_/,OM790111120000OM790111120000OM790111120000 e(Í7907231532232579072315322600 e" 7907231539550079072315401450 eÑQ¡?7907231505195079072315054400790723150544e"•7907231509195079072315125900de# 7907231513430079072315134650e�H7907161135045079072315382275eEc¥ í7603010001360076030100020025  ÿÿşÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿşÿÿÿÿÿÿÿÿÿÿÿğ. OS:: SYSDEBUGS BINDEBUGM BIN DEBUGX BIN MOSRAMDIAG JCL MOSRAMDIAG BIN MOSRAMDIAG ASMMOSRAMDIAG BAKMOSRAMDIAG BAKMOSRAMDIAG OBJMOSRAMDIAG BAK /AS LO=LP /MACRO DF0.MOSRAMDIAG.ASM /CNC DF0.MOSRAMDIAG.ASM /DE DF0.MOSRAMDIAG.BIN /LINK DF0.MOSRAMDIAG.BIN=DF0.MOSRAMDIAG.OBJ /CO PP(FB)=DF0.MOSRAMDIAG.OBJ(FB) /CO PP(FB)=DF0.MOSRAMDIAG.BIN(FB) OM790111120000OM790111120000OM790111120000/AS LO=LP /MACRO DF0.MOSRAMDIAG.ASM /CNC DF0.MOSRAMDIAG.ASM /DE DF0.MOSRAMDIAG.BIN /AS XX DM /LINK DF0.MOSRAMDIAG.BIN=DF0.MOSRAMDIAG.OBJ /CO PP(FB)=DF0.MOSRAMDIAG.OBJ(FB) /CO PP(FB)=DF0.MOSRAMDIAG.BIN(FB) OM790111120000OM790111120000OM790111120000A,$+5 COPY =HALTM,X JST ASKQ HLT ****OPERATOR MUST RELOAD**** JMP GO COPY BEG,A OR =PER,A COPY A,PEI . INTO PAR ERR INT ROUT COPY BEG,A OR =PFR,A COPY A,PFI . INTO POW UP INT ROUT COPY BEG,A SHIFT A,RO,8 SHIFT A,RO,4 COPY A,PMOD CSK A,=7 JMP $+2 SBIT 6,S COPY =0,A RESET : COPY A,PARFLG COPY A,ERACNT COPY A,ERBCNT COPY A,PERCNT COPY =1,A COPY A,PASN COPY =SIGNON,X JST ASKQ SIGN ON JMP QROUT GO START QUERY * PARFLG NOP PERCNT NOP PASN WORD 1 ERACNT WORD 0 ERBCNT WORD 0 SPACE 1 ** POWER UP ROUTINE ** SPACE 1 PFR EQU $ COPY =PFM,X JST ASKQ "POWER FAIL" JMP GO  LPOOL TITL **************************************** * QUERY ROUTINE * QROUT EQU $ COPY =FULLM,X JST ASKQ JST IKB READ REPLY JST CHK CHK IF "Y" OR "N" JMP QROUT NEITHER COPY A,FULL SAVE Y OR N QAGN1 COPY =STRTM,X RANGE? JST ASKQ JST IHEX INPUT + CONV TO BIN JMP QQAGN CLSN ='^',A JMP QROUT CLSN =',',A MUST TERM WITH "," JMP $+2 YES - OK JMP QQAGN NOPE - ERROR COPY X,STRTA START ADDRESS JST IHEX JMP QQAGN CLSN  ='^',A JMP QROUT CLSN ='_',A JMP QAGN1 JEQ X,QQAGN VALID ? CLSN =:0D,A TERM CHAR ? JMP $+3 YES - OK QQAGN JST BAKER NO - ERROR JMP QAGN1 COPY X,A CSK  A,=:7FFF JMP $+2 SBIT 6,S TURN ON XA BIT COPY X,FINISH END ADDRESS QAGN3 COPY =BANKM,X BANKED? JST ASKQ JST IKB JST CHK JMP QAGN3 CLSN ='^',A JMP QAGN1  COPY A,BNKFLG CLSN ='Y',A BANKED? JMP BANKQ YES JMP SETMOD NO SPACE 1 ** ERROR ON INPUT - OUTPUT "_" ** SPACE 1 BAKER ENT COPY =ARROW,X JST ASKQ RTN BAKER * FULL NOP  LPOOL TITL * ASKQ - OUTPUT MESSAGES ASKQ ENT COPY 0(X),A CLSN =:FF,A END OF MESS RTN ASKQ YES SHIFT A,RO,8 JST OTT OUTPUT 0 BYTE COPY 0(X),A JST OTT OUTPUT 1 BYTE ADD =1,X BUMP ADD PTR JMP ASKQ+1 LPOOL * CHK-- MUST BE "Y" "N" "^" "_" OTHERWISE ERROR CHK  ENT CLSN ='Y',A JMP RETN YES CLSN ='N',A JMP RETN YES CLSN ='^',A  JMP RETN YES CLSN ='_',A JMP INPUT2 YES RETN2 JST BAKER NONE OF THE ABOVE RTN  CHK RETN COPY A,AS SAV AREG JST IKB READ TERM CHAR CLSN =:0D,A TERM CHAR ? JMP  RETN1 YES JMP RETN2 NO INPUT2 JST IKB READ ANOTHER REPLY JMP CHK+1 WHAT IS IT RETN1 COPY AS,A GET CHAR BACK IMS CHK RTN CHK AS NOP ************************************************* * INPUT FULL LINE OF RESPONSE TO BUF1 * RETURN IKL+1 OR BQ (ASK QUEST AGAIN) * SKIP _ CHAR + START QUERY OVER IF _CR FOUND * IKL ENT COPY *IKL,X IMS IKL IK1 JST IKB GET CHAR CLSN ='_',A JMP ER1 CLSN ='^',A JMP QAGN3 SHIFT A,LO,8 COPY A,0(X) SHIFT A,RO,8 CLSN =:0D,A CR ?  RTN IKL YES IK2 JST IKB CLSN ='_',A JMP ER2 CLSN ='^',A JMP QAGN3 OR 0(X),A COPY A,0(X) CLSN =:0D,A RTN IKL ADD =1,X JMP IK1 ER1 SUB =1,X COPY 0(X),A AND =:FF00,A COPY A,0(X) JST IKB CLSN =:0D,A WANT TO DELETE LINE ? JMP BQ YES - ASK AGAIN JMP IK2+1 NO - CONTINUE ER2 JST IKB CLSN =:0D,A JMP BQ  JMP IK1+1 LPOOL ************************************************** * READ BUF ROUTINE * READ CHARS IN BUF AND CONVERTS TO BIN * UNTIL A NON-DEC VALUE FOUND (TERM CHAR) * EXIT AR=TERM CHAR XR=VALUE * IF XR=0 ONLY A TERM CHAR INPUTTED * BUFPTR POINTS TO CHAR FOLLOWING TERM CHAR * IDEC ENT COPY =0,A COPY A,V J3 SBIT 2,S  COPYB *BUFPTR,A GET A CHAR RBIT 2,S IMS BUFPTR BUMP BUF1 PTR COPY A,T SAV CHAR SUB =:3A,A JGE A,J2 NO ADD =:A,A JLT A,J2 NO EXCH V,A YES - GET VAL  SHIFT A,LO,1 COPY A,T SHIFT A,LO,2 ADD T,A ADD V,A ADD DIGIT COPY A,V  NEW VALUE JMP J3 J2 COPY V,X COPY T,A TERM CHAR RTN IDEC * V NOP T NOP BUFPTR NOP ************************************************* * INPUT HEX ROUTINE * TERM WHEN NON HEX DIGIT FOUND * EXIT XR=BIN VAL AR=TERM CHAR * IF XR=0 TERM CHAR ONLY INPUT * IF _ FOUND OR MORE THAN 5 CHAR INPUT * RETURN IHEX; OTHERWISE RETURN IHEX+1 * IHEX ENT COPY =-6,A COPY A,DCNT COPY =0,A COPY A,V I2 JST IKB GET CHAR IMS DCNT JMP $+2 RTN IHEX STRT QUERY AGAIN CLSN ='_',A DID HE GOOF   RTN IHEX YES COPY A,T SAV CHAR SUB =:3A,A JGE A,IH4 MAYBE ADD =:A,A  JGE A,IH5 YES I3 COPY V,X GET VALUE COPY T,A GET TERM CHAR IMS IHEX RTN  IHEX IH4 SUB =:D,A TEST IF HEX JGE A,I3 NO ADD =6,A JLT A,I3 NO ADD =:A,A IH5 EXCH V,A YES GET VAL SHIFT A,LO,4 X 16 ADD V,A ADD DIGIT COPY A,V JMP I2 DCNT WORD 0 ************************************************* * IKB - INPUT A CHAR FROM TTY INTO AREG * IKB ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S  COPY =:100,X COPY =:8618,A XNX Q OUT A,1 XNX Q IN 1,A SHIFT A,RO,4  JF OV,$-3 XNX Q IN 0,A XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY Y,X RTN IKB SAVES WORD 0 DIOTY WORD :F0+:8 ************************************************* * OTT---OUTPUT A CHARACTER FROM A REG * OTT ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S COPY =:8612,X XNX Q OUT X,1 XNX Q OUT A,0  COPY =:100,X XNX Q IN 1,A SHIFT A,RO,5 JT OV,$-3 XNX Q IN 1,A  SHIFT A,RO,5 JF OV,$-3 XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY  Y,X RTN OTT LPOOL TITL ************************************************* * BANK QUERY ROUTINE * BUILD A MEM TABLE AS FOLLOWS * 1ST WRD = PRI MEMORY SIZE * 2ND WRD = # ALT'S / # ALT'S INT.BANK * 3RD WRD = ALT # / # INT.BANKS * 4TH WRD = SAME AS 3RD * ETC * INPUT EXAMPLE: 8,8(4),8,8(8) * 8K PRI SIZE, 3 ALT'S, 2 ALT'S I.B. * ALT1 HAS 4 I.B. ALT3 HAS 8 I.B. * BANKQ EQU $ COPY =0,A RESET : COPY A,NPRI # PRI MOD COPY A,MALT MAX #ALT PER 1 ROW COPY A,MEMSZE MEM SIZE COPY =TBLE,X COPY X,TBLPTR COPY PFILL,A  COPY A,P0M BQ EQU $ COPY =BUF1,X SHIFT X,LO,1 CONVERT TO BYTE ADD COPY X,BUFPTR RESTORE REAL TIME BYTE ADD COPY =0,A RESET : COPY A,PRISZE PRI SIZE COPY A,ALTN ALT # COPY A,NIB # INT BANK COPY A,NAIB # ALT'S INT BANKED COPY DYN1,A COPY A,DYNIN1 STA 1(X)  COPY =CRLFM,X JST ASKQ COPY =P0M,X JST ASKQ "P0?" JST IKL READ LINE OF INPUT INTO BUF1 WORD BUF1 BUF1 ADDRESS JST IDEC CLSN ='#',A OPERATOR DONE? JMP TSTPAR YES COPY A,ASAV COPY X,A SUB =4,A PRI SIZE LESS THAN 4K? JGE A,$+2 NO - IF POS  JMP BQ YES - ERROR COPY X,*TBLPTR STORE IN TABLE COPY X,PRISZE SAV IT COPY ASAV,A NXTCHR CLSN =',',A COMMA FOLLOWS? JMP C YES - PROCESS ALT'S CLSN ='(',A INT. BANKED? JMP   PIB YES - PROCESS I.B. CLSN =:0D,A END OF P0? INPUT? JMP $+2 YES JMP BQ NONE OF ABOVE - ERROR JMP E GO TO END INPUT ROUT PFILL BYTE 'P0' DYN1 WORD :8481 LPOOL ************************************************* * PROCESS THE ALT'S ENTER: AREG=, * C EQU $ JST IDEC GET ALT SIZE CLSN =0,X JMP BQ COPY A,ASAV COPY X,A CSK A,PRISZE ALT = PRI SIZE NOP  JMP BQ NO ERR IMS ALTN COPY ALTN,A SUB =15,A ALT # > 15 JLE A,$+2  NO - OK JMP BQ YES - ERROR COPY ASAV,A GET TERM CHAR BACK JMP NXTCHR * * PROCESS INTERNAL BANKS * XREG=PRI SIZE AREG=( PIB EQU $ JST IDEC INPUT # I.B. CLSN =0,X JMP BQ  CLSN =')',A BETTER BE JMP $+2 JMP BQ NOPE COPY X,A SUB =8,A NIB>8?  JLE A,$+2 NO JMP BQ YES - ERROR IMS NAIB IMS DYNIN1 COPY X,NIB COPY ALTN,A SHIFT A,LO,8 XOR NIB,A COPY TBLPTR,X DYNIN1 COPY A,1(X) JST IDEC GET NXT PUNCT. JMP NXTCHR GO CHK IT OUT ASAV NOP * * END OF INPUT ON ONE LINE * E EQU $ COPY TBLPTR,X COPY 0(X),A GET PRISZE ADD MEMSZE,A . AND ADD TOTAL MEM SIZE SUB =32,A MORE THAN 32K  JLE A,$+2 NO JMP BANKQ TURKEY CAN'T COUNT - ERROR ADD =32,A BANK TO TOTAL SZE COPY A,MEMSZE SAV IT COPY ALTN,A MAX ALT'S IN THIS ROW CSK A,MALT IS IT THE GREATEST? JMP $+2 NO COPY A,MALT YES REPLACE OLD MALT IMS NPRI BUMP PRI # (0-X) COPY ALTN,A # ALT'S  SHIFT A,LO,8 XOR NAIB,A # ALT'S I.B. COPY A,1(X) STORE #ALT'S/#ALT'S I.B. IN TBLE COPY X,A ADD NAIB,A ADD =2,A COPY A,TBLPTR RESET TBLPTR FOR NXT ROW IMS P0M JMP BQ * TBLPTR NOP STRTA NOP FINISH NOP NPRI NOP MALT NOP MEMSZE NOP PRISZE NOP ALTN NOP NIB NOP NAIB NOP ************************************************* * TEST PARAMETERS INPUT FROM BANK QUERY * TSTPAR EQU $ COPY NPRI,A MUST HAVE AT LEAST CLSN =1,A . 2 TO RELOC JMP BANKQ DIDN'T COPY FINISH,A ADD =1,A  SHIFT A,RO,8 SHIFT A,RO,2 SUB MEMSZE,A JLE A,$+2 JMP QROUT COPY =0,A RESET: COPY A,MATFLG COPY NPRI,A NEG A,A COPY A,PRICNT SET UP COUNTER COPY NPRI,A  SUB =4,A 8X8 OR 4X16 MATRIX ? JLE A,$+2 STILL DON'T KNOW JMP M8X8 8X8 MATRIX COPY MALT,A MAX ALT IN 1 ROW SUB =7,A 8X8 OR 4X16 MATRIX ? JGT A,$+2 4X16 MATRIX JMP M8X8 8X8 MATRIX * * 4X16 MATRIX LOGIC * COPY TBLPTR,X P1 COPY 1(X),A AND =:FF,A GET #ALT'S I.B.  COPY A,ASAV JEQ A,NOIB1 NO INT.BANKS COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =1  2,A > 12 ? JLE A,NXT1 NO - OK JMP ER YES - ERROR NOIB1 COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =15,A > 15 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT1 COPY X,A  TBLE PTR TO A REG ADD ASAV,A # ALT'S INT.BANKED ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS? JMP P1 NO - LOOK AT NXT ROW JMP SETMOD YES - GO SET UP MOD #'S * * 8X8 MATRIX LOGIC * M8X8 IMS MATFLG COPY TBLPTR,X P2 COPY 1(X),A AND =:FF,A GET ALT' I.B. COPY A,ASAV JEQ A,NOIB2 NO I.B. COPY 1(X),A SHIFT A,RO,8 GET # ALT'S  SUB =4,A > 4? JLE A,NXT2 NO - OK JMP ER YES - ERROR NOIB2 COPY 1(X),A SHIFT A,RO,8 GET # ALT'S SUB =7,A > 7 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT2 COPY X,A TBLE PTR TO AREG ADD ASAV,A #ALT'S I.B. ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS ? JMP P2 NO - LOOK AT NEXT ROW COPY =1,A YES - COPY A,PASN INITIAL PASS # JMP SETMOD GO SETUP MOD #'S PRICNT NOP * TITL ****SORRY CHARLIE - YOU LOSE**** SPACE 1 ER EQU $ JMP QROUT DO IT AGAIN LPOOL SPACE 2 ******************************************** * EACH PASS AFTER FIRST STARTS HERE * ******************************************** * SET UP MODULE #'S * CONV : STRTA- SMOD/SROW * PROGA - PMOD/PROW * FINISH - EMOD/EROW SETMOD EQU $ COPY =TBLE,A COPY A,TBLPTR COPY STRTA,A START ADD OF TEST AND =:F000,A CONV TO MOD# SHIFT A,RO,8  SHIFT A,RO,4 COPY A,SMOD COPY FINISH,A END ADD OF TST AND =:F000,A SHIFT A,RO,8  Ÿ€%!C @`UD€@„€k4»c B# J SC„€+T½# !+OM790111120000!2 C @‚„„ş‰…�¿€!<  ‡ş‚c # F“‚Ó‚# ”•!Gÿƒ ,�‚ŸêZhææ ÿç1AŸæI �Š ,��ŸŞÿà ��ŸÚMRAŸ×ÇÚ)ÿÙ ��Ÿ×€H�Ö£€E�Ô  `àAIÄ‚À�ıD ŸÉ ŸÇ€C�ÈU€C�Æ�ƒ¾ ş  �à@`(ƒ¸ÿ¾ # ÿ»@6Ã@¢¸ÿ©Ÿ· @§¶`@NXdzÿ³ ‡²‡² ¤§°«°â˜Â¯@&�„`&�‡Ÿª¢ªI ÿ¨Ÿœ¢§I ÿ£ †…Â�P@Kp@Ÿš�."0 9"#/"/ Qñ »³€% "1"""&7"'"("+"*!Û"ƒ!ÔÖ!ŞINSUFFICIENT MEMORY UTILITY WILL HALT, REBOOT C @ Àhør6Áš‰t¼UC˜€hğ4¸`p„Bc # !C @�ƒC @ş† păşƒÄ‚c # høHÿ Nt½# C @`pÌ„D`@€@şi„€Ä�k+@``p€D�s¤Dc # ˆF ÿâŸû¢whæ †r†l# ‚mr„€‚lr„� şIş)ş=„…Ć€�ş9„ƒÄ„‚å�€ş4„�Ä‚+# ‚XŠQ†V æ# ‚N †Q†K�I# †L®M¦KâB‚Ïc c �}‚GÂ?D �†¢ÅÃÅQÂÿÄ�� )¦5ª3¦2# ÿ„€+T½Hú‚¸„€+T½# „€+# ş/HÙşp‚®şxHæşlş.Hõşi‚¨şqH€‚¦şnT¾‚¤şk‚£şiÿşgş6­ş9«ş=ş+.+ ş+•ş,»ş/¹ş3-M�t ƒ†½�õ~"%€!²�ªª÷zõoş»»û¯ª"º"ºÛ"ƒ!ÔÖ!ŞINSUFFICIENT MEMORY UTILITY WILL HALT, REBOOT C @ Àhør6Áš‰t¼UC˜€hğ4¸O0SEGMENTBLANK oUø¾�¾ç Ş~¾Ì�® š#È1TV…‰ <†®?ùnÜù'Àôìj_<BÑS{|}å¿TÇ™>UXWï T…ğ¾Ê (½Ó :½Ó‚FŠ’½Ô -½Ó :½Ó‚�" ÿЉ½Ô )½Ó ½Ó Š‚…ì�ÆÿşU ¿†ÈÆÈ¦ÈæÈp†ÇP†Æ0†Å @0†ÂB �� †¾¢` Ÿh †‚}’  ¾cÅí�D «¢«â«‚®‚­‚§p‚¦P‚¥0/‚œŸo ½Ñ D½Ó E½Ó B½Ó U½Ó G½Ó 4½Ó ½Ó C½Ó 0½Ó ½ÓŸi ¾7Ÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ½Ñ ½Ó‚z½Ó¾¶¾µ P¾«�ì½Ú A¾§‚C½Û Q¾£‚@½Û X¾Ÿ‚=½Û Y¾›‚:½Ô½Ñ¾Ÿ¾�¾� K¾“‚3½Û L¾�‚0½Û S¾‹‚-½Û D¾‡*‚*½Û C¾ƒ‚'½ÔŸK ½Ó =½ÓŸ{ ¾Ÿ} ½ÓŸ|‚Ì"„ †Ç½Ñ *½Ù½Ò†Â NŸ� �ì A�Á G���Œ½Ò½Ø†µ�—WV9 y R���†½Ò �¡½×Ƥ�† D�à V�à W�á½Öƚ›LB�âLC�ĞLF�ÎLL�ÍLS�ÏLJ�ÁLI�ÊLG�ÉLR�ÈLZ�ß�Å …ë½Ç�6é ¾)Ÿ}½Ò†{½Ò†u½Ò ���Å‚t P�” L���Å‚j T�‹ P�ƒ B���ÅÙ…ï P…ğ ½Ó‚\…ğ� …ñ‚W H�„ T���Å…ñ�½Ò �Ä�|ÁãQE‚I…ì�ç ,���ç ,�‰½Ñ `�솂½ÕŸ€ _½ÙŸ€%7ª´¦´ `�î J�‰ B�ƒÁìK�ˆ‚§eÁä��½Ö‚£ �iŞ  @‚±�€Ş�‡�Şœ§› `�ç@E ;���…½ÖRA@EN@AŞ�Ç� QÁŞŠ‡‰�ç ,�_�?Ÿ¦�ÅÔ½ o¿‹‚| ÿ…ì†x‚aÈ D `…ë�¤QY†k�ì¢V*ü¸‚��€ƒS€„†` À� ‚Ğ€ª[Ğ€ Ä�„‚ÂV@AĄ܃Ÿ€”– B `…ë½Ç�ë Dİì�„*üŞF�]�O‚. `�Ä¢,*ü¦*€� ‚„€‚$ ÿ†"�r½Ë ™Áê"B†œ�ãƽу˜½Û½Ö½Ë�ãC�凑�Ä�æ �Ä /�† X���ч�‚ƒ„ ½Ñ½Û�i £�]½Ñ�䆫@½Úƒ¨½Û½Ö�ãB…éÇ¢�ç ,�œÂ��æ[ +�‰ -�ˆ *�Š X�‹ /�Œ�ÅKJÿÆ�Åä�^ƒ‹…ä�[ƒˆ�{ƒ… �xŞ‚�Z�Ä ,�ÅŸ|¾â �†½Ö½ËL ���ÅÆÕ�ğ P���„Ù…ï ½Ş½Ñ�ä‡�½Úø†È†Åƒı½Û½İŞÁ�{‚À ¾Š‚õ½Ñ�q!êè!9 ‚±†´�±k†¬Šä†ã‚­Gû†©½Ìާ�}ަ�yı†¢½ÌŞ �}ƒÔy ¡E _ à �� .½ÓƒÉÿ ¡E _ à �� .½Ó޾ރ�fŸNü ,���Žֆs@ÁäF�…C ’kŸqÁîLL���ž (�w�{�u Â_ޘJÿQBÆ[Ÿy�î L�ˆ S�����ğ T�нÑ�ˆŞO‚N ¾ †J�s�ľ‰…é�ä¾Ë†z‚”‡x¾\Š’�| IÆ�¾> ,���Ž֯‡ ,���ƒ†·½ÖÆ‚ŸpIư¾k ,�“ ’« ,�ƒHÿÆt�’‚r ��HÿÆm�æ -���ņ›�†½Ö�æ -���ņ”�ä†CƒBš\–\Â�F�ƒ‚Š -�‚¾�t½Ñ‚5½Úƒ3½Ô�x Â’@"F�‚Ÿz�‡@ ÎŒ‰è ÿF�„ …é�Å�è ŸlR¾#…é�䆠† ‚.¾b†�ÁèÆ�ƒ™‡šŞ™Ş–JÿQº‚”†’‚!†’Â’ƒ�»��…ŞŠŞ‹JÿQ¸�ĽÑ %½Ó‚‚½Ô�u †U ½Ó ½Ó ’‰B *�� ½Ó ½Ó‚GŸo †h½Ô †fÿ†e £"†cIƒaM K ÿ¢Y&���†¢V&�ƒ†RÆR `ŞQKL$���k‚K N =½Óü‚D�D½Ô G½Ó‚A öÁ  :½Ó�€ ½ÓŸL ¾ƒ ¾ÇŸ{ †’¹¾‡y¾…9¾ƒ¾‚Ÿu  öÁ  :¾´‚�Ÿw ® 0¦”‡¢�‚�C C 96¼C C "¢…0 `Ÿj† •…墒C "C ¢tC I6¨©ª]?½��@¾Ê (½Ó :½Ó‚PŠ’½Ô -½Ó :½Ó‚�" ÿЉ½Ô )½Ó ½Ó Š‚…ç�ÆÿşF ¿†ÈÆÈ¦ÈæÈp†ÇP†Æ0†Å @0†ÂB �� †¾¢%` Ÿh †!‚}’¾cÅè�F «¢«â«‚®‚­‚§p‚¦P‚¥0/‚œŸo ½Ñ M½Ó D½Ó B½Ó U½Ó G½Ó 4½Ó ½Ó C½Ó 0½Ó ½ÓŸi ¾7Ÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ½Ñ ½Ó‚z½Ó¾¶¾µ P¾«�ç½Ú A¾§‚C½Û Q¾£‚@½Û X¾Ÿ‚=½Û Y¾›‚:½Ô½Ñ¾Ÿ¾�¾� K¾“‚3½Û L¾�‚0½Û S¾‹‚-½Û D¾‡‚*½Û C¾ƒ‚'½ÔŸK ½Ó =½ÓŸ{ ¾Ÿ} ½ÓŸ|‚Á"„ †¼½Ñ *½Ù½Ò†· N�Õ �¸ G���‹½Ò½Ø†¬��BA&H R���†½Ò �™½×Æœ�€½ÖƘ™LB�·LC�ĞLF�ÎLL�ÍLS�ÏLJ�–LI�ÊLG�ÉLR�È�Å …æ½Ç�A« ¾4Ÿ}½Ò �Ä�|ÁŞQE‚r…ç�â ,���â ,�‰½Ñ `�熂½ÕŸ€ _½ÙŸ€å7ª´¦´ `�é J�‰ B�ƒÁçK�ˆ‚§eÁß��½Ö‚£ �iŞ  @‚±�€Ş�‡�Şœ§› `�â@E ;���…½ÖRA@EN@AŞ�Ç� QÁŞŠ‡‰�â ,�_�?�(�Å–.½ o¾‚| ÿ…ç†x‚aÆ D `…æ�¢†m�ç¢X*ü¸‚��€ƒS€„†b À� ‚Ğ€ª]Ğ€ Ä�„‚ÂX@AĄ܃Ÿ€V B `…æ½Ç�æ Dİç�„*üŞH�]�Q‚0 `�Ä¢.*ü¦,€� ‚„€‚& ÿ†$�r½Ë �Áåe"B†œ�Şƽу˜½Û½Ö½Ë�ŞC�à‡‘�Ä�á �Ä /�† X���ч�‚ƒ„ ½Ñ½Û�i ™�]½Ñ�߆«@½Úƒ¨½Û½Ö�ŞB…äÇ¢�â ,�œÂ��á[ +�‰ -�ˆ *�Š X�‹ /�Œ�ÅKJÿÆ�Åß�^ƒ‹…ß�[ƒˆ�{ƒ… �xŞ‚�Z�Ä ,�ÅŸ|¾•½Ë½Ñ�߆±½Úø†�ƒ­½Û½İމ�{‚¨½Ñ�u�’ ,���Žֆx@ÁßF�…C ’pŸqÁéLL���ž (�w�{�u ÂdŞ…JÿQBÆ`Ÿy�ľ‰…ä�߾ˆz‚”‡x¾oŠ’�| IÆ�¾Q ,���Ž֯‡ ,���ƒ†·½ÖÆ‚ŸpIư¾k ,�“ ’« ,�ƒHÿÆt�’‚r ��HÿÆm�á -���ņ›�†½Ö�á -���ņ”�߆CƒBš\–\Â�F�ƒ‚Š -�‚¾0�t½Ñ‚5½Úƒ3½Ô�x Â’@"F�‚Ÿz�‡@ ÎŒ‰ã ÿF�„ …ä�Å�ã ŸlC¾#…ä�߆ † ‚.ü¾b†�ÁãÆ�ƒ™‡šŞ™Ş–JÿQº‚”†’‚!†’Â’ƒ�»��…ŞŠŞ‹JÿQ¸�Ä½Ñ %½Ó‚‚½Ô�u †U ½Ó ½Ó ’‰B *�� ½Ó ½Ó‚GŸo †h½Ô †fÿ†e ™"†cIƒaM K ÿ¢Y&���†¢V&�ƒ†RÆR `ŞQKL$���k‚K N =½Ó‚D�D½Ô G½Ó‚A öÁ  :½Ó�€ ½ÓŸL ¾ƒ ¾ÇŸ{ †’¹¾‡y¾…9¾ƒ¾‚Ÿu  öÁ  :¾´‚�Ÿw ® 0¦”‡¢�‚�C C 96¼C C "¢…0 `Ÿj† •…࢒C "C ¢tC I6 ,���Æ½×Æ‡ ,���ƒ†·½×Æ‚ŸpIư¾k ,�“ ’« ,�ƒHÿÆt�’‚r ��HÿÆm�ñ -���Ɔ›�†½×�ñ -���Ɔ”�ï†CƒBš\–\Â�F�ƒ‚Š -�‚¾�t½Ò‚5½Ûƒ3½Õ�x Â’@"F�‚Ÿz�‡@ ÎŒ‰ó ÿF�„ …ô�Æ�ó Ÿl >¾#…ô�† ‚.¾b†�ÁóÆ�ƒ™‡šŞ™Ş–JÿQº‚”†’‚!†’Â’üƒ�»��…ŞŠŞ‹JÿQ¸�Å½Ò %½Ô‚‚½Õ�u †U ½Ô ½Ô ’‰B *�� ½Ô ½Ô‚GŸo †h½Õ †fÿ†e ¯"†cIƒaM K ÿ¢Y&���†¢V&�ƒ†RÆR `ŞQKL$���k‚K N =½Ô‚D�D½Õ G½Ô‚A öÁ  :½Ô�€ ½ÔŸL ¾ƒ ¾ÇŸ{ †’¹¾‡y¾…9¾ƒ¾‚Ÿu  öÁ  :¾´‚�Ÿw ® 0¦”‡¢�‚�C C 96¼C C "¢…0 `Ÿj† •…ğ¢’C "C ¢tC I6½Ò²D�’Ã�‘A�²³6OO6O6O�“ÿûÆKt·œ0 A F�ƒ I�� D½Ò½Ôû†mŞl�„½Ò ½Ô�x ½Ô²½Û³@9¿–@¿”@? R6A W½Ô ½Ô±Ş�DÊˊJ°R>JÿKSB±�|�ÅF¼»sƒD–ö†{½Ó �–��½Ó†v½ÓÂt’rLD¶ëLE¶êLI¶éLR¶èLW¶çÁ�Æ–å’d ,�k‚a‡'´ƒ%ü‡#�ž§�œƒÅ†yƒÄ†xƒÃ†wƒ–ÌÃÀÆpQAlýÆkL=\L>ŒL:|öÆbL<ŒL=L‡±´‚^±‚]²‚\³�Qÿü HÿÇ�½í �®’w‡˜‡œ‡š‡—‡—’q’q†n’o�ƒ �нí =�À <�Ô >�Ú :�à�ÆŞbŸa�Ƴµ·¶´²Ædyğ€‚„€€ÿş½Ò C½Ô 1½Ô =½Ô‚½Ü C½Ô 2½Ô =½Ô‚½Ü C½Ô 3½Ô =½Ô‚ ½Ü M½Ô =½ÔƒT–·½Ü½Ò�HŞ&���ƽ׆� =“FF“EF“C“CE�ÆÇ=�ƒÇ:��Ç7‚��&Ş���Æ“5½½×Ç-�Ş���Æ“,µ½×Ç&�Ş���Æ“$½ÓQ»ß‡���ƽ×LJ�?ÿ™Š½Ó �ø T���„½Ó �Ü�Æ C���‚Şè�İ I���‚Şä�Ø M���‚Şà�Ó N���‚ŞÜ�Î S���‚Şâ�É A���ÎŞŞ�Ä ‚Ì›PQI‚÷“÷†øÀ`@"ÓôÆõ †��ı-LŒ…ıŸlQÅ‚ê‡ç‚é‡æŞ„�ıM…ıŸb ¾ÿ C�Ô ‚ªÂ“KQG‚ԓ؆ÙÀa@"ÓÕÆÖ †ˆŸqQłЇÍÂÏÇÌŞ�Ÿj ¾ä I�ºŞ�Ş�Ş�Ş�ޚޚ��½Ó �Œ ,���‚½Ó�¾É�ƾ,¾N¾ˆ¾Ì¾å¾ş¾¼æw�Å ‚p“K›QG‚™“¡†¢Àb@"Ó�ÆŸ †ˆŸqQÅ‚™‡–˜ǕŞ�Ÿj ¾© M¢ZâY…ö½ß½È�Ç¿€”•†‡Š‹š›�Ÿª« †5†5†5†5†?†?Ÿw †{Ÿ| ‚,“KQG‚T“`†aÀc@"Ó]Æ^ †ˆŸqQÅ‚X‡U‚WÇTŞ�Ÿj ¾d N�: ‚“KQG‚:“J†KÀd@"ÓGÆH †ˆŸqQÅ‚B‡?ÂAÇ>Ş�Ÿj ¾J S�  ‚“KQG‚ “4†5Àe@"Ó1Æ2 †ˆŸqQÅ‚,‡)Â+Ç(Ş�Ÿj ¾0 A� ‚Ì›PQI‚÷“÷†øÀ`@"ÓôÆõ †��ı-LŒ…ıŸlQÅ‚ê‡ç‚é‡æŞ„�ıM…ıŸb ¾ÿ C�Ô ‚ªÂ“KQG‚ԓ؆ÙÀa@"ÓÕÆÖ †ˆŸqQłЇÍÂÏÇÌŞ�Ÿj ¾ä I�ºŞ�Ş�Ş�Ş�ޚޚ��½Ó �Œ ,���‚½Ó�¾É�ƾ,¾N¾ˆ¾Ì¾å¾ş¾¼æw�Å ‚p“K›QG‚™“¡†¢Àb@"Ó�ÆŸ †ˆŸqQÅ‚™‡–˜ǕŞ�Ÿj ¾© M¢ZâY…ö½ß€Ÿ€î�¿€EŞ€¿€¿€¥ŠŸ€ õ���‡g ‡Ôš¿Ó7jg¿ĞŠÍ¿Ì�j ‡ÇGƒÇ‡Ç¿Än¿Å1º È�ƒ Í���‚‡½¿½¿½�…Ÿ¼�o�n�m�lƒ´ È�„ö¿­Ğªƒ±‡±¿©N¿ª1º Æ�‹ Ä�‰ Ô�‡¿£�ˆŸ¢�p�T�n�m‡Ÿ¿š�vƒ�‡�¿“E¿›1K I·§•¿��šŸ��r�[�p�oƒ�7�l)"4§t{zõ¨uº‡š— ƒv Æ�ª Ô�¨ö¿h�j¿f ‡›¿e1±¿d�œŸc�m�F�x @© ÷' £�, �c‹‹  €ƒ‡Šˆ „€ÿ„�ß��e.ğjı¿@ªw¿>¿?1i§« ‡ª*ÿ§©ƒ© ¬�‡¿6�©Ÿ5�l�>�j�iƒ ‡ ßŸ¿+ »—�‚·�`‡”‡”ƒ” ¬���j¿ »‹�‚�T»ˆ�R‡†�_ƒ�Lwxy–»ˆı¿­z¿.¿É1g§È ‡Ç*ÿ§Æƒn ¬�‡¿Ã� ŸÂ�l�0�j�ißf¿· »¶�‚�b‡³‡³ƒ[ ¬���l¿« »ª�‚�V»§�T‡¥�aƒ¦�Nı¿£°}¿¡"¿—1Oƒ� Ä��§œ ‡›*ÿ§š¿‘�šŸ��l�9�j�iƒŒ7�f È#�m {z{|zõ—"4u}~ƒ¶‡¶¿w+¿m1Kƒt Ä�‹§®¿k�ŒŸj�r�E�p�oƒf7�l �£)�qƒ¡‡¡ƒ` ÔŸZƒ� È�Ÿ¿Y¿O1P �—D�•¯ �� ‡�¿H��ŸG�g�N�e�dƒC7�a³€¿Œt˜ƒ¹‡¹ƒ9 ÆŸ3¿57¿´1H§±¿,�‹�ø�r��p�o£'1B)�t¢§�rü¿!µ‚¿@� ‡Ÿ¿1U ���rƒ˜ �oƒ•Š• „€ÿ„�ß�¿�‘�Ó�d�L�j�aƒ‰7)�k´�šm¶.‚—ƒ–‡–¿–b¿•1º Ù�‹ Î�‡¿��’�¶�r�F�p�o �� ‡ƒ¿„�s©v4{zƒã‡ã¿x¿W1K 9·§Û¿r�ˆ�˜�r�S�p�oƒN7�uƒÑ‡Ñ¿d{¿C B ÿ·§É¿^�…�„�r�]�p�oÍ¿Áj� )ƒ¾ Í)§¼ƒ¼!‡-û‡¹ƒ¹‡¹£¹”€·%„€ß³ß°�xƒ¨ƒ° ÆŸ¯ ÔŸ®ß®D¿3üƒ©¿©ƒ© ÿ‡¨ ‡§ß¥ƒ¦A�ô‡¤Š¤‡¤B¿"° ƒ¡‡¡ÿ‡™ß�ƒ�­ …œ€½Š¾‹"§Úº/$0”0¨ T;¼�56)”64 °³32”2ƒa)6—¿Š� ‡ˆ£k€€후D+�z4.b  q °‹{‡d¿x°¿­¿uxƒtŠ¥ €€¿S¿¥¿mæƒlŠ� €€¿K¿�¿eùƒdŠ— €€¿C¿•¿]  ƒ\Š� €€¿;ßWƒV ���K¿Qüƒ2¿2�ÄÈÌÀ¥ƒ96ÁŸ…¿C2‡ Ÿ�  Á¿¥¿¥¢¥ „€ „‡¿¡°´ ¿Ÿ¿Ÿ¿�¿�¿�¿�‚�„‡¿–¹½¿”¿”¿”¿”�¼ ޾˜¬B- ¿u¿u¢ì „€ „‚„ƒ„„ƒæ „…¢ä „€¿j ¿àƒà ÿ¿İ‚Ş‡Ş ‡İƒÛ¶Û(ÿ¿Ù»Ó�‚�v¿ÎßĞ�s‚Ò‡Ò¢È „€¿M 6¿K¿K€ŠšÉB ¿Ç¿G ‡½ƒº ÿ‡Âƒ¹¶ºƒ¶¿²ƒ¼¿°ß²ƒ¹ ÿ‡·4‚¯B��Ÿ² ‡±‡±‡±‡±ƒ±‡¢ƒ°ÆŠ© „€ß›�xƒ£‹£‹£‹£ ÿʃ£‡£Š›8 ‡�ß�ƒ�=a‚��yƒ™‡™‡š��†³’éªşp.> ıÿ#† S/R�‚ƒ„5”.4Ÿ€« ƒj�s‡{¢c „€œ‡Ï¿Ïi­Lƒp„� „‚‚É„‡¿Èƒk„�¿ÅƒS ÿ‡Ã ‡Âƒa›bÁ‡½쇽‚½‡½W…‚»‡»¢»U¿º¿º�~¿¹�¾€ƒL›ME‚³‡­…¿­�¾€WƒA‹AЍ‡+¢Ÿ ¾¨¢� ¾¥ƒ5›6C¢œ ¾Ÿ¢§“¿™ß‡�7Ÿ" ¿• ¿�c0˜¬ ‘°“ �"ªòõ¶ÌBË ‡–§s€Šš”Í€‹–’‡’ƒ’—�‡‘ƒ‘‹Š €€›ŒÁŸm£b ‹‚¿ˆŸh/ÿ,”.1.S ‡ø¢ø „€¿Gñõ ¿ó¿E¿ò¿Q ¿ğ¢ğ „€ƒî „…¿8/ ¿ä¿6¿ãƒæy‡å¿å¢åƒÚ„€ƒàq·á -„�ƒà„‚ƒßq·Ş„ƒƒÔ„„ ¿Ú„…ú‡‚ׇI¢ÏƒÕ˜€ÑßD+ß�y‚Ï ‹Á‡;ƒ¿¿Ç†Ô›Éà¿ ‡ºŸ7 ¿4¿Â�xƒÁ66¿¿‚·¾…¿»Ş‚­¾��l ‡¶ú‡ ƒ´¿´  ¿³ß¯ß�yŸt ¿¿¦�\ƒ¥6¿£úƒ�¿£¿Ÿµ‚¤¿Ÿƒ‹ ¢”¿œ�K#’¬_†³½*KÂ'omnª¼”1”,Y½40”0¯Æ+ ÿÿ¼  ‹ ‹• 4€€À€@ € �€À@€@@`@ P@  €` @ 0 �€&P@0  ÿ̓ÍAŸÌƒÌ£Ì‡Ì§Ì¿ÌƒÌ È�à¢Ê „„¢È‚Æ„† „…¢Âƒ½„„¢À¿À(, ¿¾¿¾¿¾¿¾¢·ƒ²„„¢´¿´4<¿²¿²€Šš³B ¿±¿®¢¨ƒ¡„…‡ ‚«„† ƒ©‡©‡©‡©ƒ©‡©‡© ‡¨¿¨¢–¿–R” ¿”¿”€Šš•B ¿“¿��¹©R³°¤¥Ş§Ù͘¬B… S¼#,.0'-/1 û¢ã¿k}… „€ „…¿e¿e¿e¿e¿`ˆ”< „€ „…¿Z¿Z€Šš[B ¿Y¿VƒJ‡KƒÇ‡Ç‡Ç‡Ç‡Çş‡Æ¢ÆƒO„‚¶ÄƒO„ƒƒ<„…ƒ9‹7‡»ƒB‡B‡BƒC‡C‡C¿µ��Ÿ)ƒ9‡;ƒ;‡=£ª !‚2‹ª,�¨ ¿6ߢ�i¢¡¿"ÆÉ ¿!¿!¿!ƒ%‡�ƒ'‡œü¿›§¿ü¿—§Ë‚•‡•ƒ ÿ‡ˆ¢‘�’ݲ4§³¿Ë.¦00æ´µ"ö/Õ „�‹z‡y„‚ „ƒ „„+ßh�s „€¢Î¿Îÿ‡g‚Ê¿dö÷¿Ç¿ÇƒÇ‡V‚Å‹W ¾Õ¿Â¢ÂƒÂ „…¿·<.¿¶¿¶ÿ‡F¢µ¾Ç‚·‡·‚·‡·ƒ²¿µ�ˆ‚¯ Šú‡±‚ø¿°›°L ¿®¿®�ˆƒ­6E¢4‚ì ¿§¿˜¢¦‚燜 Šâß™�}„…¿‡IL¿†¿†¿ˆŸ—²˜ıù ¬¥¼B¾¤ü(m¶ %�,ª”,SY½+Ê›8 §t¢´€�y‡²‹°‹m‡¯û‡¬€€›¬Ğ+ߨߦ�y*û ¿a˜…Ç‚Z˜†Ä+ß��eŸa ¿X¿X�{ƒW68£•€… ���ˆ¢“*ÿ !§�£Œˆ…ß‹�}¢‚¿F�gö0/”/."1¼öÖ»öå¾ÿÿÿÙZ Ä¿î¿î¾’¿í��Ÿì  »ë�y�x÷‹è‡æ�t ɿ߿߾ƒ¿Ş�}Ÿİ ƒŞq1·ÙƒÚ‡Ù‹Ö‡ÖƒÔ�Ô‡Ô¿ÔƒÔAŸlƒÊ�ч˃Æ�ÈFƒÅ†ü‡Ê †ü��ƒÁ†öƒ½‡Âƒ½†ø‚À†ò¢¾‚¾‹¶„�ƒ¼C¢» ¾Éƒ¹¿¹¢¹ ¾Ä ¾Â ¿² „€¿± 5 H¾Â‚§‡­ƒ¨‡¬‚⿪���ˆ (¿§¿§�„¢š‚Ø¿£¿£ƒ–C¢• ¾£Ÿ&ŞÌR#¬-³. ¤ ¥Ko« � ”¼© ˜´_ ˆ˜(%�SY+B „€¿q u w¾‚¿tŸx ¿¬¿¬¿¬ƒU˜‚ƃ©˜ƒ瘄B )¿aŸp¼ � ” ö¬'*a Å¿!ƒ-�$ ÿ‡%¿ ‡Øƒ!¶ÖƒÕ¿Õ§Õ¿Õ—Ó»Ğ�‚�Î ÿ»»�w‡ ƒË¿Ç§Ç¿Ç—Å»Æ�‚�Ä ÿ»Ã»Ã�w‡UƒÀ¿¹§¹¿¹—·»»�‚�¹ ÿ»¸»¸�w‡HƒµE¢´ƒ´„… „¿²ƒ²‡¥¿±ƒ­¿¡§¯¿¡—­=»§���z¢©‡©„… ‚¾û ˆ¾ù¾ª¢£ƒ› ö‡¡„€¢ ¾£ƒ“C¢’ ‚¾ìßš�)Ÿ™>Pª /ı­¯®°²±© œ³ u#k, �0 ´1 ¨.R ¿• „„€¿“ / k¾Í€…d‚�‡� ‡�ö¿Œ�³ �eÌ£e !�¥_˜¼(%�3  ‹F‡xƒT ö¿v��ƒR‹N öV ��‚j‡jƒ7‡iƒE¿h�� ‡dƒ:‹>G�„‚Ó‡] £Ñ¿[�‚¿ÏŸ; 2¿Í¿Í�z¢Pƒ(¿É�u „€¿H z y |¾‚¿¾Ÿx ¿¿¿¿¿¿¿¿ƒ¿˜‚È ÿ—¼˜ƒÄ ÿ˜„—¸B 3¿¬Ÿm¼ ö € ¼ ´Æm¶ "BSY+¬Konm Æ¿¼¿¼¢¼¿¼ Ì õ%… „€¿nÿ¿µ¿µ¿µ¿µ¿µ�~�„¾€ <¿_€Š B =¿Z¢ª€€”�”‚”ƒ”„ K >¿P¿P�‡ƒŸ6D¿�‚™¿›¿EŸ€R¼ Ø Ş ÷˜_ õø¼½4B Ç¿q¿qƒ´ Í�Ÿ¢² „€¿l  & ¿! ÿ„ƒ¿€Šš¨B G¿¿ „€¿] + 5¿ ÿ„ƒ¿€Š F¿¿¢“ „€ „…‚�„ˆ¿G¿H @ R¿‹¿‹€ŠšŠL H¿ˆ�‰§ ‹„� —„S¿Õ „ˆ‚Ó„‚¿/ Y ` Y ¿s€ŠšÍB I¿p¿Ç‚É„€¿# e m¿f¿f€ŠšÂB J¿c¿ºƒ¾Ú¢½ „€ƒ»„�ƒº ÿ„‚ƒ¸„ƒƒ· ÿ„„ƒµ „…¿ ‚ ‰¿J€Šš®B K¿G¿�Ÿ€R¼¼ —¼BÀ„ÿ„» ›4ª¯°³Œ È¿¥‚¥¿£¢£§£¿¢¢§ ¿ ú‡Ÿƒ�Š�‡�ƒ�„€¿� Ê Ø¿›¿›ƒ›››ƃš›šÙ›™B P¿—¿O߈�h�•€Ş " . N/”/˜¬      S e‚j£° �¯ U�€�€ «¸�€�€µ§a ‡^ƒ^ õ‡¡¿V¢ ¾ö£�‚�„†£š¿›¿V   £•¿—¿R¿R¿£� „€¿K  0 £Š¿Œ¿G¿G¢‡¾ê¿ˆ¿�‹ Q R O¼ � § , ‡/ƒ/�� ‡œ£›¾Ç¢šƒ˜„†¾â¿( ? C¿j¿%¿%¿‘¢� „€¿ I V¿`¿¿£…¾¾¾Ø¿„�…³ P $B ‡ ƒ �w ‡v ô‡I£s¾Ÿ£Fƒp„†¾º¿– g l £?¿A¿’¿’¿h£: „€¿‹ r y ¿7¿ˆ¿ˆ£\¾•¾¯¿[g�¾˜¬4 §±ƒO‡¯ „€+ ߪ�{£§Ÿs §¤ƒB‡¢ ‡¡€€»Ÿ�†�…ßœ+ß™�xŞp£•Ÿn „€ƒ/„… „‡„ˆŸw Q‹‹¿‹£‹€† ƒ"¿‡Ÿu,/0.S"+ ‚£ş‡w‡¿�‚�‡�¢�¿7 Æ Ø0·˜0 …¿–¢”¿•¿•�~‡¿Œ�…¾€ U¿_¿�ß\����‚Š�d€ø S 0 õB 0ş‡K‡¿r‚›†å¢š¿  ò 0–ß0 …¿j¢�¿i¿i�~‡¿` V¿6¿d¾€ß1��Ÿ„‚„ �eïÿ <RÏÿ¼"¼ Ó ¼  ‰€†ÿ¿�é¿� » ı9 ‡‰¿‰�Š�t�s�r�q�p4{4z.¿º¢º§º „€ „‡¿¶¿¶¿´¿´¿´ƒ´ †ˆƒ²£²‡²‡±§±§±¾¼‡¯§¯û‡® ‡­¢­¾Î¾û�ƒß§�|�‡ƒ¢ ÁŸ¤ƒ�£��e¿N ƒ•¿�¿J ƒ“¿š‚š‡•¢•¾¶¾ã�j޾"ù¬«®,.-/0134¼ �ğ †–¦–Ş•‚”»”���„¢�Şv‚�Ÿt£c¦‹Ş‰ƒp�‡‚…�uÿ(ÿŞiŸh¯) ƒ§†Ÿƒ¥†Õ‚ζՄ€‚Ñq¶Ê„�ŞÍ‚ȶÍ„‚‚Éq¶Ä„ƒƒ•„„+ŞŠ�l*û‚½¶À„‚ƒ‹q¶¹„ƒŸ] ‚~†Yƒ„�Y°±³¥  ¢®§ „€ƒ«„�ƒ(„‚ ÿ—§„ƒ‚¦—¤y„„ƒj„…¿¡¿€Š–Ÿ¿ ŸgŞfŸe¼  4½ÿË `‡¿Æ¿Æ�~¿Ã…E ‡Áö¿À_`ƒ9‡¼¿¼›6¿»‡¶,��í¿·‡·§ ı%,��惲 ÿ‡±¿­‡°‚°—®»¬���Y,��Úƒª ÿ‡¥¿¡‡§‘–¦� ,��σ ÿ‡š¿–‡�†�–,��Å¿™ Ù�› Î�™ ¬�› ��¼�8 ø_"i4D`ª,aÿ­bÿc¶/ '‡Ì¿y�c¿mÁ ‡Ç»g��� —a ���„ƒ¾»¾���,��‘¿[‡¹,���¿W‡¶‹²µ»Q���,��„¿N‡®,¬Ÿ­ƒ§Áߥú¿C_j ‚¦‡¦‚¦£œ1A ‡£‚££›1Á ‡ §�‚Ÿ‡Ÿ —/£š ) ) )§“ §” �– �½�È ed°fgh;¼p8qvñröwn0‚é‡Õ‚é‡Ó¢n‚â„€„‚ƒÍ„�ŠÍ„ƒ‡ÉƒË„„+߯�s*û‚Õ »Ä�‚�‚„ƒ�™ „ƒ‚½–É ›»BÜ‚��ÿ„‚„ƒ�Œ‚ćI‚²¿²¼½‚À‡I‚¬¿¬ö÷…Eı¿¦al‚½H‚¢¿¢�¾€‚¹�p‚š¿š¿š�~‚²�i ¿•¦‡ ‚…,¬Ÿy,�ŸwŸ/.³­ÿªş"jòš  ƒ� �Ÿ|Ş{ £ŸyŞx ߟvŞu ŞŸsŞr ¬ŸpŞoŸn– †‘Á†�ƒ�‡�›�È‚‰Âߊ߉ރ�uŞoŸn”(!%( Ÿ€; ¦—†“ †’ğ†�‚�˜€6ÁšˆŞˆ�{†ˆ+Ş…�s¢…Ÿk —Ä �¿ƒ Š¿�ŸzÆ  ‚°“°†¡¿¯¿¯�“¿®�“ƒ©¿¬¿¬×¿¬����¿¦�{‚¨š�Ì‚œ ÿš�Ç�ˆ �… �ƒ �� ¾æ‚‚‡�Ÿ[ªU ñ"øÿò % £uÿ„‰„Š„‹¿u€‡Q…¿˜¿q�~‡¿i ¾»Ÿn¾€¿e��Ÿi ¾³Ÿf¿ˆ¿^��Ÿb¿^�{ ¾ªŸ]õ  † ¦�¿ �›ƒŸ6P¾“¿œ&‚•¿š¾ ø†“¾‹ƒ�¿”Ş�  ¿ Ş‹��Ÿgމ�u�q ƒ‡ 6¸Ÿ{Y½4¯ @0g‡è‚{�çNƒæ Æ�‹‚ä‹ä Ü€‚p�àC£¿hŸİû‡Ü£ƒd6i¿b^ƒÎ¿ÕƒÎ Æ���‚¿Zò¿Xb ƒÍBƒÌ��‚T ÿ¿Qƒ¿ Æ�…¿Å¿KgƒÃ¿¾¿À¿Fjƒ¶¿¹ƒ² Æ�…¿¸¿>Ä ƒ·¿·1ÁŸ­ƒ¦= ÿ;¿4Ç ¿2¿0m€Š¿.€Š¿¨¿*v€‹¿(€‹¿¢¿$€€¿" ± ”€‡œ‚œ‹š €€£™†�¿¿�¿„�”Jó¨À4íEK�ø÷¥¼-ÆpLà" ‚ö )�� 3��€‚–ô¿l¿n¿ò‡€ƒ¿g¿i¿íŠ€„�‹ƒê¿`¿b¿æ‡ƒæ¿[¿]¿áŠƒâ¿V¿İ�€†¿Ş¿T¿Ø‘€…¿Ù¿O¿Ó” €‰¿Ô‚Ê (�ƒ 2����¿ÉšƒÌ¿Ê¿@¿Ä¢ƒÈ¿Å¿;¿¿¥ƒÄ¿À€‡D¿¹¨ €‡¿º‚° )�ƒ 3���‹¿¯Ï €‚–«¿#¿%€ƒ¿ ¿"€„¿€ˆX† ¿¡®‚�¿¢¿¿œ¹¢˜€€¿œ¿¿–¿€�¿—€ƒF‚‹ H�ƒ€ƒŞˆ�h£’@o6Áeã�œ@ÿ 4#'*¯(%!"S  ß‹ƒ‹ÁŞ{Ÿz ‡‡‚‡¿‡¼½Ÿywu¼ıù" ¦�¢zn*„€‚y†ˆ€€ „�+ރ�z¢‚Ÿr †—†˜¾¶†• PÌ öJŞ‘‚�ŠŒŠ‹ Pņ‡�p‚†¢„Ÿi ¿¿„�gÆQ †x†y¾—†v PÑ ÷Í ÷ Ì ûJ †k‚i1¶h†fŞg�m �w‚b¢`Ÿd ¦�.ó¦�‡‚�ù¢�ù96½ø"ù€¢„.¢�Ÿn† ߃›»›Ÿ{ ‡–ß—ƒ—»•�‚Ÿrƒ“‡�ß’ƒ’»��‚Ÿjƒ�‡‹ŞgŸf ‚~†c�h*°'¯®#¬«.  Ÿ} " Ÿ} †„ ¤‚�Ÿz ¤Ÿ}Ş|Ÿ{  Ÿ}Ş|Ÿ{ )D .�{Ÿx £�ƒ�„�ƒY„‚ƒT„ƒƒP„„ÿ„‰„Š„‹Ÿq"4" †�ƒ}†ŒŞ{ƒz†ŠŞxƒ‡‡‡Ş…Ş…Ş‚�zŸq ¦�£}.Ş{%€€' ÿ�ƒ¿…+�x¢�ŸqÆ ‡0‡� + ƒ"†¡ƒ†�ƒ†› � ��‹†”ÍŞ“[3ƒº‘�‚Ÿkƒ †ŒŞŒƒ ºŠ�‚Ÿcÿ†ƒ†ƒ†ƒŸ^ †™¿› ¨¾Ñ  ¾Ïü†“ü†’‚�†� °6Á ¾ÄŞŠ�w  ¾ÀŞ…�q ©¾¼Ÿe¥ ¦™‡™‚‘‡˜û‡—ƒ”)¯�•+=‹’‡� ¾§ßŒßŒ�t¢‡Ÿk¥'èd •–—‘–8 ¦y ü†�ü†� .Ş‹�| öÁ  º¾†Şƒ�r¢gŸk ¦’.󦑇¢�"ùø¢�ùI6=ùI6½"ù¢„.¢�Ÿl† ƒ‡‡‡ƒ‡‡‡ƒ‡‡‡¿‡Ÿw±*®'«#˃‰0'¿‡…ƒ…AŸ„Ÿ„+4)RA ¦Â ¢½†›.óñ†™ 6ÁŠ· .óŞ“�z6Á�±†�  Š‹6ÂŞ‰. 6Á  ‚ƒ�‚†ƒD�˜‚šºº{�x���vñ†wó’t.��BŠŒ��+Şm�w’j’h†‚¢„Ÿ?? 5×BB- £Ğ‚Ğ”€„€ ’®Xު‚ÊŠ¨† ƒŸ£Ç,È�„ºš�‚�Š£½È´€„€‚š Ş™ Ş—Ÿ“Ş•�‚’’H‚Š£®Š�††ƒ…ˆ�†ƒß‚Ÿ‡oÄÈÌ!ÿÿ"ğÿw§ §zƒ}†WŞ{ƒz†UŞx †S†S†SŸs  ¿ƒ¿‚¿�ŸzÆT †Ç‚|†Æ †Å¢î€Š _ ÿY6^ 6^€ŠšÀ×€�¢¾C. ÿ�| ¢Û”‹Ó€‹ÿ›´£J,È��›±Ë¢Ğ€‰Œ…É�� �” �’ �� �� ”€ �† �„€ˆÍ �„€‰Á�ˆ ¢‰1⳿’�‚¢°¿� †ƒŸ6 ‚~†0 �0€Ú¿S Ş…Ÿ}Ş„Ÿ{ŞzŸy   †{ı†zŸz †™q1E¿…¿…Ä‚‘¿ŸtÄ4Û% œµ£Ó Ş « Å  ´+ÿÿÿÿÈÄ›š87€m¶ÿÿ£Ó Ş « Å  ´+ÿÿÿÿÈÄ›š87€m¶ÿÿ£Ó Ş « Å  ´6ÿÿÿÿÈÄ›š87€m¶ÿÿËÊ€óöû9?DHIMNSTY]]]]]]ğ£Ó Ş « Å  ´í�ŠÁÃÔ ÃÒú  ÿÿ�ŠÁÃÔ ÈÅÁÄÅÒº ÿÿÁÌÌ ÿÿ�Š�ŠÂÁüÄ ÔÒÁÃ˺  ÃÙÌ ÿÿ   ÈÅÁÄ ÿÿ�ŠÒÕΠÏĞÔÉÏÎÓ¨°©¿ºÿÿ�Š�ŠÂÕÆÆÅÒ ÄÕÍĞ ¬ ÁÔ º ÿÿ�ŠÅÎÄ ÏÆ ÔÅÓÔÿ ¨ÔÅÓԠɯϩÿ ¨ÆÏÒÍÁÔ©ÿ ¨×ÒÉÔÅ©ÿÿ ¨ÒÅÁÄ©ÿÿ ¨ÒÄ ÒÅÇ©ÿÿ ¨ÖÅÒÉÆÙ©ÿ ¨ÓÅÅË©ÿÿ�Š�ŠÅÒ ÿ�ŠÅÒ ÁÄ ºÿĞÁÓÓ ÿÕÎÉÔ ÿ�ŠÓÔÁÔÕÓ       ºÿÿ�ŠÄÒÉÖÅ ÓÔÁÔÕÓ ºÿÿ�ŠÆÕÎàºÿÿÃÙÌ ÿÿÈÅÁÄ ÿÓÅÃÔ ÿ�ŠÂÕÆ ºÿÌÅΠºÿ×ÄÓ ØÆÒÄ ºÿÿ�Š×Ä ÉΠÅÒÒÏÒ ºÿÅØĞ ºÿÁÃÔ ºÿ�ŠÉÎÔ ÌÏàºÿ�Š�ŠÄÁÔÁ ÃÈÁÉΠÉÏ ºÿÿ×Ä ÃÏÕÎÔ ºÿÿÂÕÆ ÁÄ ºÿÿÔÅÓÔ ÿ�ŠÉÏ ÁÄÄÒÅÓÓ ºÿ�ŠÓÅÃÔÏÒ ÁÄÄÒÅÓÓ ÁÆÔÅҠɯϠ ÿÿ�ŠÅØĞ ÈÅÁÄÅÒº ÿÿÆÉÒÍ ÿ�ŠÕÎÉÔ ÔÏ ÆÏÒÍÁÔ¿ÿ ¨ÆÏÒÍÁÔÔÅÒ©ÿÿÈÁÒÄ ÿ�ŠĞÁÓÓ ÿ�ŠĞÏ×ÅÒ ÆÁÉÌÿÿ�ŠÂĞÉ ÕÎ ±ÉÔ ¨²²°°©¿ÿÿ�ŠÔÓÔÓ ¨Á­È©¿ ÿÿ�ŠÃÙÌÓ¿ ÿÿ�ŠÈÄÓ¿ÿÿ�ŠÓÅÃÔÏÒÓ¯ÔÒÁÃË¿ÿÿ�Š×ÏÒÄÓ¯ÓÅÃÔÏÒ ¨±²¸©¿ ÿÿ�ŠĞÁÔΠ¨¶Ä¶©¿º ÿÿ�ŠÕÎÉÔÓ½ÿÿ�ŠÄÅÖ ÁÄ ¨º±´©¿ºÿÿ�ŠÄÉÁǬ ÆÍÁÔÔÅÒ ÏÒ ÔÅÃÈ ÔÅÓÔ ¨Ä¬Æ¬Ô©¿ ÿÿ�ŠÓÁÖÅ ÄÁÔÁ ¨Ù ÏҠΩ¿ ÿÿ�ŠÈÉÇÈ ÏÒ ÍÅÄÉÕÍ¿ ÿÿÓÏÆÔ ÿ�ŠÓÓ× ¨°©¿ÿÿ�Š�ŠÅÒÒÏÒ ÔÏÔÁÌÓÿÿ�ŠÈÉÇȯÍÅÄ ÃÁĞ ÄÉÁÇÎÏÓÔÉà ¨Á±© ÿÿ�ŠÅÎÔÅÒº�ŠÆÃ¬Õ¬Ã¬È¬Ó¬ÉάÌάÄЬÃ̬ÃĞ �Š¿ÿÿ�ŠÕÎÉÔ  ÿÿ�ŠÅØĞ ÃÒú  ÿÿ–¼ÿÔÅÓÔ ÿ�ŠÉÏ ÁÄÄÒÅÓÓ ºÿ�ŠÓÅÃÔÏÒ ÁÄÄÒÅÓÓ ÁÆÔÅҠɯϠ ÿÿ�ŠÅØĞ ÈÅÁÄÅÒº ÿÿÆÉÒÍ ÿ�ŠÕÎÉÔ ÔÏ ÆÏÒÍÁÔ¿ÿ ¨ÆÏÒÍÁÔÔÅÒ©ÿÿÈÁÒÄ ÿ�ŠĞÁÓÓ ÿ�ŠĞÏ×ÅÒ ÆÁÉÌÿÿ�ŠÂĞÉ ÕÎ ±ÉÔ ¨²²°°©¿ÿÿ�ŠÔÓÔÓ ¨Á­È©¿ ÿÿ�ŠÃÙÌÓ¿ ÿÿ�ŠÈÄÓ¿ÿÿ�ŠÓÅÃÔÏÒÓ¯ÔÒÁÃË¿ÿO0SEGMENTBLANK oP6���†)¦{ @ª¨œ‚Æ¡Á‚¥†�I@0@Â�Ç¡Â�Ç )ªŸÀ€1½*ÿ@(@ĪJÿ☢Œ€€„@+kU»¢‘ªŠ‚†Â�œ‚Ÿ€f5Š‹PO0SEGMENTBLANK o"»@@.Pd‚ä0 €p œP�Ş`€Àpf�§`F�¥`�©` †ÏI ¢ĞÿĞÿĞ€„s ?ÿÌID LŸÉ X�ä FŸÆ CŸÅ DŸÄ RŸÃ VŸÂ) ÿÁ �jş§�|¢½I !ÿ° �zÄ¢·I ÿ©�Q INSUFFICIENT MEMORY FOR UTILITY EDIT BUFFER LOST )ÿˆ1Á# IpB�N � 0@ zÖ !Gä笔�@Qi OMEGA4 DISK UTILITY (C3) ü„qşO ,�ˆ L�… W���ø„qşE ,���` ^„F ÿÀ1Í ,��� ÿ¼1È„A@@`)ÿ·`@6 �„N˜�–±˜�„�€F„‚€A ,�� ���^C @ 1)ÿ&c À�ÿ ÿ Ÿ C @ÿ˜ÄOc I1C @@)ÿc C @À�ÿ�Ü�ÿ�ÜNc W€�–†ŒO­Ÿ† 9x?ÿú°ä „@ÿç ,��Ÿæ`ÿã U�‡ FŸâ RŸá CŸàŸàÿÙrÿךİÅÿÔ F�ƒ X��ŸÑ„@ÿÕMSAŸÌrÿȚζ` ^„Fÿ˜@ ��ŸÀÄNÿÄMSAŸ» ��Ÿ¸øN�‚��Ÿ´ÄO€@ F�ËÆ«ÀNƦ¢³ ÿ²¢² ÿ¯‚°‡° `+^C @)ÿª`pÀB€D„‚ÿ¦) ÿ£`pÀB€D„‚ÜBÿŸ‚Ÿ‡šc Œ�jŸŠ‚š‡”�fDXdDXdZ.ÈÂÅÉ,D OH K²xúòW NÒC @àNnÒ)ˆÿÇ`HÿÅc )¤G¤BIÄD‚¿„E¤C€N„A „@bˆˆ�~€I¢µ ��ş”€O„A „@bˆˆ�~€I¢ª ��şˆ)ÜB€B M�] Ÿ2C @ÿ–I ¢šÿ“ B.rÿ—r)ÿ�r)ÿ‹ )ÿˆc # ON CYL :�Ö 7€€€²ì_Xÿ Â{�…ÿÂy�‚ÿÂwÄG B�Œ S�� L�� AŸös ,��Ÿğ I �� I�† I�ƒ I�€„Nÿã ,�‚Ÿß„NÄO€Nÿß1æ ,��Ÿ×€OÿÙ1à ��ŸÑ „p NÿÏ1Ê OıG1Í Nÿ91Ä Oÿ61Ç�y,��¤p¢Ã �…,�“¤p¢¾ Iÿ& p¤pÿ") ÿ· Nÿµ Oÿ³ p1€@ÆŸ¯€@+ *„q�r şä€qşâ ` Iÿ şÜş§,�’1’Âş©�yş§ `+ „Nÿ” `+ „Oÿ� „q�2) ÿˆŸˆ .Zj¡¦à N) ÿÆr1Â) ÿÂ# C @Hùşu1Ä„@kT»)`p¤Dc # ÿ\ ,��ŸX ÿ¯1Æ) ÿU1à ,�‚) � ÿ¥ ���y) ş�„HÄIäJ) ş‰„KÄLäMşNşT�$)ÿ’# C @ÿ�1 `à�€A`p„B€�„C+¤Dc #  ü/ INPUT ERR OUTPUT ERR ¬şš ,��Ÿ­C @ `+ÿ®+`p¤B„Cc ) L �‚@ŸŸ)ÿ£1»¢¢ Iÿ™Ÿ™ÿ™1Ë ,�‚) �‡ ÿ“1Ä)ÿ”1Á# IpBŸ‡ RENAMED  ./ÖZø/׺_ ��Ÿr)ÿ�1AŸo¢‹ IÿlŸl DELETED rô)C @ÿb1Ï p�‚ ÿ’€E�‘Ç€H��Ä‚�„Hc # ) `p¤D�z)ÿ†I # /Q .  �u` ^„Fÿ@ ,��Ÿ9 ÿ<@`1Å)ÿè6Ä), `@Ÿ/`@À�NXÄAI ,�‹ (��Ÿ#ÿØ )��Ÿÿ" ,��ŸÄpH°)\‚΄À‚Í)]b„À„N„O…Oÿ �‰THÜOrÿ ��Tµ-…O NKPÄ€@`)ÿ¶) Š„q„M„B)ÿ«`H€F„‚`H6€C�©İ @`@¤J)¤@Â'ÄGšÄEIÄDHÿ `áÄ�+½N±ÄoI@0@ IÄC J# bÿ��œ€C�‹ÁŸŠŸŠ€x O!+ŞkñQ .¿€º ¾€ ‡Wÿêc p€H @I ¨E¤E\ˆD„D ş)'.ş¿€E ?�ˆ�K ‡WÿÑc p‚O„E „C„D€BÜB L���;¢Ã0    q1]€F„rÿ½  ‚�Iÿ¹ F Iÿ¶C @)ÿ³ päƒ)ÿ¯ pìƒäƒc QC FIÿ¦ÿ§ÿ§��Ÿ¦ Ÿ¥BKC @ 4b„rÜqI ¢uÿ” p „ÿ—‚—„v I `+4ÿŠc ÿ� @ ÄĞ# a0@ !Ö/‡n/ó ÜKC @€�–Å„� @HÿàÄ� çN1 èI+¹c ‚¹‡¹ıCÉÜ�‚¶‡´€�–´ t·`@�C @ �..`@ş5c �nBAD SECTOR AT AU :BAD SECTORS C @H€¢”şŠU…V¿‡Wş„c # # “‰Ó‰³‰# À²?ÿ_‘’“n"C @)Iÿİ�Ò1¾ÀpÿÙ�ΤJI)ÿÔ�ɤKÀpNÈpKNIÄIÿË�À¤L F` I ÿ¿ÿ¿ Kÿ¾‚Á;ÀI@AÄOÀLÄNI Fÿ³ÿ³ Nÿ²ş¤NI Fÿ¬ÜO�w Fƒªºª�Š�ˆ‚ªÂªÿ¡K€ÿ I ‚¦�ˆ ‚¤Â¤ÿ˜K€ÿ—I ‚ ÿ“€J„€ „�+I \  À ÿˆÿ‡ÿ†�˜`p) ¤Dc # !!$k²›y o%g 5=pFH`p„Dc # Ièÿl ]  ÀÀ€ KN ÿcÎp‚³„€+T½ƒ`º`�„�ƒ‚¬Â¬�‚‚«Â«ÿTJÿSÀF)ÿ¦�Ê¥ÿ£šÊ¢ÿ —ÊŸÿ�”I FÿC)¥ÆC @I � F+àpjúuP @ ğ;Ä€+I ğ�v  •� s©nSÄ€c  Jÿ%É)ÀIÄOIe€L„N ÿÑA�'€p„O€J„N ÿɸ€K„N „Oÿò „N „O ÿ¼«€M„NC „O�ƒ IÄOÿ±  Œp„OI Fÿ«)¥Fÿ©–ÜO�{¥F¥ǥÿ¢�`pÜFc # OMEGA4€MÁOMEGA4€ #Á. $!$q²‡$C @)¤M Mÿ� @6KÜM€Mº™�w `p„DÜFc #  F bI ÿ�ÿ� MÿŒ² Mÿ… @ ÄĞc # Üô!!$k°l¢ë 4b„r Iÿæ N..ş¸àHüØqQAğ„H‚Ü„v I)4 bÿÕ)^ 4b„r@ *¢ş±€q„I‚Í…rÜr @ÀÀ Hş› @+ÀÀ Hş£ @+ÜI�t‚¼…r€r¤r)4 b# Iÿ± rÜH�Z# AU = :C @@`ÿ©`@…rÜrÿ¥`@…rÜrc # C @@`ÿœ`@r@ÿ@¶—…rÜrÅr@`ÿ‘`@r@ÿ@µr…rÜrY ÅrÜrc # ğÖ ì $5C @ `+^¤FIÿÉc C @¥F)…Æ)ÅÆ)€N…Æ)€O…Æ) B BIÅÆ+Iş§ş¤ş£ÅÆ+…Æ )\ ÀI +_ bÿ§ÿ¦ÿ¥c C @¨JÀF )ÿ�6IÄ‚˜�–›˜�„�ıDAıD`p„Bc +# ş€ş€N# C @�fC @�dC @�_!$!x?ÿxC @ÿ– �…`p„Bc # €E��ÀH�ŒB �sÀA pä„Ä…c # /Q ”G„q„r„H„ÿÁ NşÑ U�ƒ ,�†Ÿ»€qÜ„qÿ¶�t ÿµ1í) ���§ÿ°1çşÃ�¥şÍ�£şì�¡şò�Ÿÿ§��€�–¥´�„�€qß6Qÿ �”ÿŸÀqXÿ@Aÿœ��T½Àq@ß6Eÿ—�ˆ) ÿ•Ÿ•ÿ��ƒ�o, ) @ ) ÿŒ @ŸŒZ.üsÀÒ eíà/G€qÌ„q)ÿ½# C @) ÿ¼Iÿ·��`p¤DÜFc # C @€qÏ6C@ÿ®@í„qIşş¢©ÿ©ÿ©ÉşùIÿ¦ÿ¤Ä€qì„qŸš`p„Dc # `p¤Dc # C @ş®ÿ“³ÿ‘±ŸŠC @¢�ş�ÿŠªŸƒ  ljÌ/ %!+¯ÿ™ @C @€€S` @rÿXÿJşÃ+IÿÊÿÊ ` `+�oc # C @@ ¢Àşf @à�€Aÿ¸€�ܶ¹ÿ´¢¸ş\ @`  ‚+€+9 Iÿ«ÿ«¢®şQ `+ Iÿ£ÿ£c # C @À�Kÿ8� ‚À„UC+ˆ„�| í���‚�ÇÀq@ÜÄq�ÃC @ UC)ÿ �|c #  Ö .00 3 97C @C €€ÿt :ÿ°KC €€ÿn€qï6F :ÿ§KC €€ÿec # C @C €€ÿ^ /ÿšKC €€ÿX /ÿ”KC €€ÿRc # C @C  €ÿŠÿJÿˆÿHc # `pÜFc #  ì6C @ş¯ í„I) ÿ®1Ör) ÿª1ÒV…FÜFÜqI) ÿ¢1Êr) ÿ�1Æ…FÜFU¶ÜI�h��,�‰`p¤D�ŒHò) ÿ�1·T¼�\Àq@İÄqş„`pÜFc # ^b„F#  $C @şx€qÿ R„I F¤r F ˆF„FşŒş¢�„ş–*øş°�zş¸ÜI�rşac # C @¢¼ bàFHøC €HlC „ˆT»c # C @HøC €ˆC „�T»c # C @Â¥`BHùC €HC ¸ˆ�„��T¹c # `pÜFc # C @€r ���‚`pÜFc # C @‰`BHøC €HC „�T»c # ŞC @ÁFÈ�Jÿÿ²�ış Iÿªşƒş²Ÿ¨Ÿ¨C @ ‚€„ +I ÿ Kÿ�Iÿ™I Kÿ›Iÿ”Iÿ—Iÿ�Iÿ”c # C @I F+€€şùU¼+¤Fc # ‰ÌÂǯ™ZC @Iÿr ‚€†„rş²IÿlIÿmIÿh@EÿiIÿdÀ„A „I@BKK C @ B@Eÿ[c ş¼�•+€†OI2ÿPş“IÿM€†ˆr„r`(I2ÿJ`(ÜI�mŸEÜI�lŸBÏÿ Ÿ>�gˆH„HIÿ; -ş¶€…ˆ† ÿ„…ÿ4# `p„Dc # C @ş�¸¢ŠÿŠ`(Iÿ&`(ş‡°Ÿ! ( d<$C @ ş–€ÄÜsŸş�€`p„Bc # C @)rÿÜş�r)ÿØş‰c # C @)ÿÑş‚c # 1CÀLQÁ¤# 1şr€„s şmÜs#  UNIT=VOLUME= DIRECTORY= NAME  EXTLENGTHCREATED MODIFIED EXTENTSAU'SF#NAMES  GRAND AU TOTAL=  o&�� � @0‚|†ø)€€ªv1½®u¦o) ˆ " �}‚jÿA ¢cœ� •€�ù�¼�õ—µ.Mˆ@†jæjg€ÿíg�ÿèÂg@ †o G€ÿò`úk��¾ò�½¢_„C# b# �}€BŸ€ �uÒ[¾ä �ü�]e ‡ †JÂR¾¬æîi¾ğÀˆÆCp@€„†=€…†<€††;€ƒ †GÂ9P@ G€ÿÂÆ<à‰¾•NÆéP¾èâÖèCHùC €ˆC ˜GÈTºà€qE�æ‚â¢(ŸÈ�¤ *�¦Â C¦ ¦ÎŸxÆ�ë @0DAJ÷LÆ)À€ªè1½ò" ¦ † i¾¦€„�œ�+â  f�G¾úŞõ�C)3�à `jo�BˆB¾ I,Ÿv ¾ °¾ €B¾ I,Ÿm�Ë � @¬E°E¨F¤F)¤D¾^ÄE‚‚„F�& †ÊæjHÿÆÄÆÄ@pÆO¾ÄŸv g€ÿ9g�ÿ6ò]X¾] P¢hâV+ì„s=è„胾c��Æ_†N‚£ �ˆ�ôŠGŠF¾Ö�Üÿö†š¾À�×¾÷ ¦”Â’@AúvLèSÃ)"$ C �‰�j�÷ª0�îŠ.�jŠ,�Ÿ�hÿÿ ‚p �…âv¾R†Ÿw ŞpŞp�wâ‚p¾ Şkâi�º† ’ŸÂ¢œ€15 !¦^æ\�d ²X‚ �ˆò %€À'+ò²NŸs愾Qâ‚)�s ‡EŞDŸ|Ÿ{ @�% o�µ O�® m�¬ J�ª K�¨ i�· g�µ†. �V t�±�ì„sFè„n`" FàE�D)� ¾E`¾CnrgŸy ¾w"¾NŞ�{�R¾q$¾IŞ�}�M¾3`¾1t¾�H¾. ²C¾d ¾)Ş?Ş>Ş=�y¦;�<¾"�:¾ ü¾0�6OS:: SYS 5>�¦�%iüşŒş‹Âxş‹şŠÂwc Bc A@6<# ş�Ic B# ŞhIşjHÀc r‡�c ·š‡™Ş˜T¶# @0‚X†ß)P €€ªU1½®R¦‹pI şP@6€…†=€††<€ƒ †GÂ:P@ G€ÿÂÆ=à‰¾™NÆôP¾óâíèCHùC €ˆC ˜GÌTºà€qI�ñ�/æÙI ¾°i¾İ�UŸÛ�¡ *‹¦Õ C¦¦ÕŸxÆ�ò @0DAJ÷LÆ )À€ªï1½" ¦ † i¾¼ü€„�œ�+â¶ f�F¾ıŞû�B)3�ê `j` N¾£ÀQ¾¡ÀR¾ŸÀS¾�ÀT¾›ÜTøI�‹IÄTÜSÀSøJ�„IÄSÜRI¾‹N‚# B# A@6<@6ŸY # BŸ| � †ÎævHÿÆÀÆÌ@pÆÉ¾½Ÿv g€ÿ/g�ÿ,òiX¾i P¢hâb+ì„s=è„胾c��Æ_†Z‚² �ˆ�õŠSŠR¾×�İÿö†©¾Á�ؾø ¦£Â¡@AúvLèSÃ)"$ C �‰�j�øª<�ïŠ:�jŠ8� �hÿÿ ‚‰p ��ây¾0R†ƒŸw ŞkŞk�oâ‚s¾ Şrâp�º† ’ŸÂ¢ œ€15 !¦YæW�\ ²f‚ �ˆò %€À'+ò²\Ÿs愾Iâ‚)�s ‡SŞRŸ|Ÿ{ @�$ o�µ O�® m�¬ J�ª K�¨ i�· g�µ†< �V t�±�ì„sFè„n`" FàE�D)� ¾E`¾CnrgŸy ¾w"¾NŞ!�{�R¾q¾IŞ�}�M¾3`¾1t¾�H¾. ²C¾d ¾)Ş?Ş>Ş=�y¦;�<¾"�:¾ ü¾0�6OS:: SYS RC @`p€B)ÿÍ1ş)ÿÊ1ûÿ@âÇ€@J�Ak»`pÄBc # )ÿ» p ,Ü€# I )ÿ³1Ğ ĞÍ öÅ ùÈ úE  N1@�o   0# I )ÿ�1º Ğ C 0# BBN!@�qC @) ,�;ş��9C @ÿ‰)ÿ„ÿ„ƒc # / §�5ş>�kşB ¨ pĆ�5ş6�‰ ÿ®1¡)ÿ¬1� ��ZI C�ˆÂ¥ D�… L�Œ W���Oş �‚Ä�h ���tÄ�ş3R´Ä�ƒş/R°Ä Ÿ� ,�X�fJ tP |E ² 4ş�-¢âÀ� €à€qH€CšİEC CÿÙ�s«ØT´ ÿi1A�Âã ,�Å`@À ,ÿÌ ���æØÊ\Æ×)ÿX1®)ÿIâĞğ‚ÿ¾ğ‚óêOğ‚Iÿ¸ğ‚j1ì‚ðD„À°Dğ�€@ğ�„N€�Ù„QHùèC€ˆ„@+kT»Â£Ó£â“ó¢¢¢€€ª 1½Çœçœ¦Š)A0$ ¢¤â˜œ�Š‚¢Ÿœ‚Ÿ€ÿ‰�8`p‚�„FŸŒyCIà± 9ú‹Š & a #ÿ…) ÿ„�{, �/9C @ÿ¶€EšµÁ1 Ÿ²@6Ã܃ÿ±ÿ±ÿ±ÿ¬�¥�£€�C @ p€ˆ `+IC @ p Š+ÿ¡ p ŠÀ�Kÿ—�Œ���‰ pÀˆ Šÿ‘Åc ÿ’c �ï I pB�� HÿăŸ‚ /Q+úçYF!_C @ÿs€EšrÁ1 ŸoÀ�ÿoà‚€D`€I ÿÅÀ�ÿÕà‚Ì@�ÀãÒÿHà„@kT½à‚ÀDUJC @ÀFQC EÿÅ c k�uà‚ H„AkT½À�ÿ·à‚À�Ì@Ä…KÿBÀEÿ@C @£­Hà€€ ´@„@+kT¹c ÿ¢À…ÿ1C @à‚ � Ckóšÿ› @ ó–ÄÀc ÿ’Kÿ �� „@À� ÿŠ„‡ÿŒiä�ğ€ „A„B€‡Ÿòc›Ü)àC @ÿ“`p°Dÿ‘qM `€Eš�BàB�„`piä�ğ€IÄAÄBc # /Qù#C @ :ÿŸ`p Bş†`p B.rş‚c # ÿ–`pr Eÿ‘r Eÿ�# €)şg -ÿˆƒ‰)şb ÿƒ)ÿ�#  ì"ºR)C @ ÿÍ ŸÌqS1Gà€ p ‚ÿÇ `à‚�� BC @€EšÀÇ „A„@�ƒŸ»C @`p J1º)ÿµ DŸ´r)ÿ°„H)ÿ­�H¤Jš«KšªNš©ş’`p„J¤Ec ä‚c # @6A š��sXÿM š™�m¢˜À� €¸��ƒ�‚ # + T¹) # /+Qş »PT TYPPTVw�3C @.)8ªË€€ �şµ`p D81H '�B@ ş£@ş¡ D.1.¹1G '€7ª·+ ş� D3O ş— :ş•€B¹ş�€ByşŠ€B9ş‡€Bş… )ÿœc #  ù 7)ÿ“# Iş–# **DE **PE  **SE ÁÄÇ Ê wC @` @UM p ƒ€@rÿp1ÇUF p ƒ€@ÿjk12`p¤Dc # ì.2` xꘀ@.2r` xê’´@#  0123456789ABCDEFø L,)C @ş¡Ü@6Ä p ‚ �GC @ş–qB �E��C @ş�Á�F  �†`p˜Bÿ˜B„B `p„Dc # ÿ&�‚�Œâ  ÀA @¸ƒ�‚���Š+Tº�”@ SÒâ“ÈASO.¨@À€à‚qF€� 1A „B1 # # # uXC @ÿ•qB �ˆŸ’C @ÿ�q; �†Ÿ‹€E�ŠÁŸ‰�E€E�…ÁŸ…�E/+QACuu{ÿõ§ÿöÿúg§CI §COSISOBI BO—§LOSCUIUODIøTV ÀÈ)!³²³³øTX ĞÕ)!³²³³úPR Ûà)!³²³³üPP Ûà)!³²³³şLP Ûê)!³²³³ğCR ³³)…³³³³ˆDF ñıQ6733AüDX  Q6P33AMM ³³ ß ï³³³³DU ½½:³³³³³{§¯ÿÿP§ÿÿ“§ÿÿ(¯¯×²I )@6AŸ†Ÿ† H°ıDT¾# %+ÀC @ @ÿŠ p„‚c # C @ @ÿƒc # M|C @ @ÿ’�oC @ @ÿ�c # C @ @ÿ‰�dC @ @ÿ…c # q­S«êC @ @ÿ‚c # ôñC @ş�ÿ“@p`H„B`HAÿ�c # C @ş‚ÿ‰�sà�À‚ �à@`(# õ7÷ C @ÿ�ÿ�@p`H„B`HAÿ‰c # C @ÿ‚ÿ„�s„P†!XÿC Ÿ€ Æ#;8eÆÒ.e܃�Œ € …1F܃�‚ ıDÿ„ƒ B��܃€ƒC¸„�È�ÇC @À‚ăÀ„N U@ıC �} ÿ�™ �yşĞ�›�qrşÇ�˜�…àƒ„@܃à�Ubş¿�����sKàƒjÿ䃀@à��mıC ıC �«�_qàƒ ‚ÂÙ �†‚ׄ@jÿ€@ -`*�‚@ �v„@c à‚€@�ÊÄ€Ay �‘ „ƒ `6Dè‚€@r�‚è‚€@Hÿ6 ă)Ÿ¶c ÿ„ƒ Ÿ­ıC �} ÿ�{} �‹ W„… _�‹`pÜ@`pÜ@à�# �… _�‡€…# €ƒ ¸‚�rà€€@à� �ƒÿp� ıD -ıD�xıC)Ÿ„+ /*%i܃�¦A �Ÿ �Ğ -�‘�“ ıD �…ıD „… �´‚ϸD�s�r �u_6±�• 0�m 1���� �iÿ„ƒ�ŸàƒìsÄ} �ª�˜à��‘܃��„† „…‚®˜DH ıD À†L ıDL �ˆ€† ���ƒÜ… Ÿ.�…@ UBıD�} �…ıD�t �ƒL�p�qà�ıDÿ„ƒ L�hL �fıDıDıD�lê8*܃�”ıC ÿ�…�|ÿ„ƒ Ÿ ıCrıC8@ă@Xÿ–˜ E„…ıCÿ�…★ÀƒTÉ@r@XÿıCrıCi@ i�… `Ÿ‚+ÿ%eàƒÀ„k`Jş�äƒn 6Cè‚r�„肘@ÿ˜@„@ ŸÁC @܃�ƒc  �±C @·# B# # AYìLì��# AYÔLŞ���u§# BÂ¥# BÌ QS��# AYìLü���z˜# B �„ �…c # şQşP şN�x�Å�-şJ-�H��F†2‚7c ) �Ç` ÜCŸ±C @ †¹ 1Á¡A¥A‚©# # O6+ Ê���x.®�‚�ŸJÿNY ş��Ğ‚’ü–•µA�€’ù�„’ø�…’÷�ƒ’ö¦ö¢�0 ¡A # � şÀÿ2 %`@0@/* IÆ} # c )ÿ„C Ÿp ¢p0  ¢Ó’Ñ�ƒ’Î�…’Ë�„’È�€’ÅĞ‚��¡A# !81¥àB¢W€€ �µ؆¼ş½şWr„@+ş¸şR´@„@+ºLæ°kŞ­�p⬂@„Ac ¢¨€€ �†º=�Š�‰¬B1Ç�–-„€)ˆB�„€B�— ı„C„E C¬EàB. €À6Ar¢&Ÿ c )�)E¿€Ğ.€€9@9X ‚£C бÀ€XC н� ÿ��# @`6Lâ” .  À6A.r8ÿ `pÜ@`@# 2 �‚²�wy ‚ª�s �Š01 !`a@APQpq€9IRZirz 12345678€:#@'="&ABCDEFGH�`.<(+|-JKLMNOPQ !$*);~0/STUVWXY°,%_>?abcdefghÀ^jklmnopqĞ stuvwxyà\{}[]ğ ß@6C �ƒŸ‰ Ÿ‡ÿ‡„†ÀÄ… „„Ÿ€+ş!܆�—ÿ„†Üƒà…Àƒ€j�› H€A. ��€Â6Ar6Å @„† �‚)Ÿ‹ @èAä…ÿ„ƒ )Ÿƒ) Ÿ€%!C @`UD€@„€k4»c B# J SC„€+T½# !+OM790111120000!2 C @‚„„ş‰…�¿€!<  ‡ş‚c # F“‚Ó‚# ”•!Gÿƒ ,�‚ŸêZhææ ÿç1AŸæI �Š ,��ŸŞÿà ��ŸÚMRAŸ×ÇÚ)ÿÙ ��Ÿ×€H�Ö£€E�Ô  `àAIÄ‚À�ıD ŸÉ ŸÇ€C�ÈU€C�Æ�ƒ¾ ş  �à@`(ƒ¸ÿ¾  # ÿ»@6Ã@¢¸ÿ©Ÿ· @§¶`@NXdzÿ³ ‡²‡² ¤§°«°â˜Â¯@&�„`&�‡Ÿª¢ªI ÿ¨Ÿœ¢§I ÿ£ †…Â�P@Kp@Ÿš�."0 9"#/"/ Qñ »³€% "1"""&7"'"("+"*!Û"ƒ!ÔÖ!ŞINSUFFICIENT MEMORY UTILITY WILL HALT, REBOOT C @ Àhør6Áš‰t¼UC˜€hğ4¸`p„Bc # !C @�ƒC @ş† păşƒÄ‚c # høHÿ Nt½# C @`pÌ„D`@€@şi„€Ä�k+@``p€D�s¤Dc # ˆF ÿâŸû¢whæ †r†l# ‚mr„€‚lr„� şIş)ş=„…Ć€�ş9„ƒÄ„‚å�€ş4„�Ä‚+# ‚XŠQ†V æ# ‚N †Q†K�I# †L®M¦KâB‚Ïc c �}‚GÂ?D �†¢ÅÃÅQÂÿÄ�� )¦5ª3¦2# ÿ„€+T½Hú‚¸„€+T½# „€+# ş/HÙşp‚®şxHæşlş.Hõşi‚¨şqH€‚¦şnT¾‚¤şk‚£şiÿşgş6­ş9«ş=ş+.+ ş+•ş,»ş/¹ş3-M�t ƒ†½�õ~"%€!²�ªª÷zõoş»»û¯ª"º"º"ƒ!ÔÖ!ŞINSUFFICIENT MEMORY UTILITY WILL HALT, REBOOT C @ Àhør6Áš‰t¼UC˜€hğ4¸ SHIFT A,RO,4 CONV TO MOD# COPY A,EMOD * TITL ***************************************** * FIGURE OUT WHERE TO START TESTING * TMOD/TROW=TEST MOD/ROW * COPY BNKFLG,X CLSN ='Y',X JMP BKREL COPY PMOD,A CSK A,SMOD PMODEROW JMP QAGN1 NO2A CSK A,SROW SROW>PROW? JMP NOR1 YES JMP QAGN1 NOR1 COPY SROW,A COPY A,TROW JMP EXECT MATFLG WORD 0 LPOOL TITL ************************************************* * MODCON - CONVERTS MOD# TO ROW# * ENTER: AREG=MOD# EXIT: AREG=ROW# * MODCON ENT COPY A,MODS COPY =0,A COPY A,ROWX COPY  A,MEMTOT COPY TBLPTR,X COPY X,STBLP SAV IT TO UPDATE LOPA COPY 0(X),A ADD MEMTOT,A COPY A,MEMTOT SHIFT A,RO,2 DIVIDE BY 4 CSK A,MODS IS MOD IN ROW JMP AGN NO JMP NROW+1 YES- IT'S IN THIS ROW JMP NROW NO IT'S IN NXT ROW AGN COPY 1(X),A AND =:FF,A GET #ALT' I.B. ADD =2,A ADD STBLP,A GET NEW TBLE PTR COPY A,STBLP KEEP IT COPY A,X REPOSITION TBLE PTR TO NXT ROW IMS ROWX JMP LOPA LOOK IN NXT ROW NROW IMS ROWX COPY ROWX,A  RTN MODCON STBLP NOP MEMTOT NOP MODS NOP SROW NOP SMOD NOP ROWX NOP TITL ********************************************************* * EXECUTIVE SUITE : SET UP WHICH TEST TO RUN * : CALL TESTS * : ERRORS - JST ROUT * : START WITH UAT ********************************************************** EXECT EQU $  SBIT 8,S ENABLE INTERRUPTS COPY PASN,A SELP A,4 TELL USER VIA C REG COPY =0,A  RESET : COPY A,SPAT COPY A,FLAG0 COPY A,UATFLG UA TEST FLG IMS UATFLG SET IT COPY A,WRTFLG WRITE FLG IMS WRTFLG SET IT COPY TMOD,A GET TMOD COPY A,SAVMOD SAVE FIRST TMOD  COPY TROW,A COPY A,STROW SAVE FIRST TROW SPAT NOP *************************************** * RUNTST IS ENTERED EACH TIME A TEST IS RUN * UAT READ OR WRITE OR PPT *************************************** RUNTST EQU $ COPY  BNKFLG,A CLSN ='Y',A BANKED? JMP BKED YES COPY TMOD,A COPY A,X SHIFT X,LO,8 SHIFT X,LO,4 XREG=STRT ADDRESS COPY UATFLG,A WHICH TEST SHOULD WE RUN ? JEQ A,TTB COPY  X,A AREG=STRT PAT JST UAT ****UNIQUE ADDRESS TEST**** JMP $+2 TTB JST PPT ****PING PONG TEST**** COPY TMOD,A CSK A,EMOD LAST MOD? NOP JMP $+2 NO - KEEP ON TESTING  JMP WATNOW YES - SEE WHAT'S NEXT IMS TMOD NXT TMOD SET UP JMP RUNTST BKED EQU $ COPY TROW,A AREG=TROW COPY MATFLG,X XREG=MATRIX FLAG JST ROWIN SET UP TBLPTR FOR TSTBNK ROUT * RETURN AREG=TMOD, ROW=TEST ROW CMS1 CSK A,SMOD IS THIS THE RIGHT MOD IN ROW? JMP $+3 TMOD NALT JMP NXTALT NO - DO NXT ALT JMP DONE YES - DONE THIS ROW JMP NXTALT NO - DO NXT ALT *************************** * ALT HAS INTERNAL BANKS * YIB EQU $ IMS DYNIN2 SET UP FOR NXT I.B. ALT COPY ARSAV,A AND =:FF,A GET # I.B. NEG A,A  COPY A,IBCNT SET UP COUNTER JST SETUP * WHICH MATRIX 8X8 OR 4X16 ? AAAAAA COPY MATFLA,A WHICH MATRIX 8X8 OR 4X16 ? JEQ A,M4X16 A=0 - 4X16 COPY IBN,A JEQ A,$+5 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTA SWT BANK JMP TSTIT M4X16 COPY IBN,A JEQ A,$+6 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,8 SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTB SWT BANK TSTIT JST RUNTS1 RUN A TEST IN BANK IMS IBCNT I.B.'S ? JMP AGNB NO COPY =0,A YES COPY A,IBN RESET I.B.# IMS ALTN1 COPY ALTN1,A  CSK A,NALT ALTN > NALT JMP NXTALT NO JMP DONE YES - DONE WITH ROW JMP NXTALT NO - GO TEST NEXT ALT AGNB IMS IBN JMP AAAAAA DO ANOTHER I.B. ************************************** * DONE TES TING A 4K TMOD IN THIS ROW * CHECK AND SEE IF ENTIRE ROW TESTED * DONE EQU $ COPY TBLPT,X COPY 0(X),A  SHIFT A,RO,2 HOW MANY 4K MOD'S IN ROW IMS MODSD ADD 1 TO MOD'S DONE CSK A,MODSD IS ROW COMPLETED ? NOP JMP $+2 NOT YET RTN TSTBNK IMS TMOD COPY TMOD,A CSK A,EMOD JMP $+2 NO RTN TSTBNK YES JMP TSTBNK+1 NO SADD NOP ALTNB NOP NALT NOP CONFIG WORD 0 ARSAV NOP IBCNT NOP * TITL ***************************************** * DECIDE WHICH TEST TO RUN IN BANK * SET UP UNIQUE WRD FOR ALT'S BUT IF * UNIQUE WRD > :FFFF START OVER WITH :0000 * XREG UNCHANGED ******************************************** RUNTS1 ENT COPY X,XSAV SAV XREG COPY UATFLG,A WHICH TEST? JEQ A,PTST COPY SADD,X STRT ADDRESS COPY SPAT,A STRT PATTERN JST UAT CALL UNIQUE ADRESS TEST COPY SPAT,A STRT PATTERN ADD =:1000,A COPY A,SPAT . NXT STRTING PATTERN JMP RET PTST COPY SADD,X START ADDRESS JST PPT CALL PING PONG TEST RET COPY XSAV,X RESTORE XREG RTN RUNTS1 XSAV NOP LPOOL TITL ********************************************* * SWITCH BANK ROUTINE * ENTER - CONFIG = WRD TO GIVE CONTROLLER * AREG = ROW = FUNCT CODE FOR ROW SEL * USE SWTA ROUTINE FOR 8X8 MATRIX * USE SWTB ROUTINE FOR 4X16 MATRIX *********************************************** SWTA ENT ADD OUTA,A ADD FUNCT CODE FOR ROW SEL COPY A,$+2 SET UP OTA INSTR COPY CONFIG,A NOP RTN SWTA SWTB ENT SBIT 1,S SHIFT A,LO,1 CONV TO FUNCT CODE ADD SELP,A COPY A,$+2 COPY CONFIG,A NOP RTN SWTB * SELP WORD :04F0 OUTA WORD :02F0 BANK0 WORD :0001 * TITL ******************************************** * UNIQUE ADDRESS TEST * ENTER : XREG=SRT ADDRESS * AREG=SRT PATTERN * WRTFLG = 0 - READ FUNCT * WRTFLG = 1 - WRITE FUNCT * SKIP BASE PAGE INTERRUPT HANDLERS * EXIT : AFTER 4K MODULE DONE * ERROR - JST ERROR ROUT ************************************** UAT ENT COPY A,SAVAR JNE X,$+4 DOES THIS INCLUDE BASE PAGE COPY =:FF9,A NEG  A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP -4K COUNTER COPY WRTFLG,A JEQ A,READ ****WRITE UAT PATTERN**** COPY SAVAR,A STAGN SUB =:80,X JNE X,$+2 JMP YEP1 SUB =:88-:80,X JNE X,$+2 JMP YEP2 ADD =:88,X JMP RAPVAL-2 YEP1 ADD =:80+2,X SKIP 2 WRDS ADD =2,A JMP RAPVAL-2 YEP2 ADD =:88+5,X SKIP 5 WRDS ADD =5,A JMP  RAPVAL-2 COPY A,WRTPAT COPY INVALU,Q SET UP FOR MEM. WRITE READ TEST RAPVAL EQU $ SUB BPVALU,Q SET UP TO TEST DEFFERENT BIT PATERNS COPY Q,EXPV SAVE EXPECTED VALUE COPY Q,0(X) WRITE EXPECTED VALUE INTO MEM. CELL COPY 0(X),A READ VALUE OUT OF MEM. CELL CSN A,Q DOES ECPECTED VALUE = ACT. VALUE JNE Q,RAPVAL YES,HAS ALL PATERNS BEEN CHECKED CSN A,Q COMPARE ME MORY ONCE MORE JMP NOP1 MEMORY CELL GOOD CONTINUE JST EROUT MEMORY CELL BAD STORE ERROR JMP NOP1 CONTINUE TESTING MEMORY NOP1 EQU $ COPY FLAG0,A JNE A,RELWRT COPY =0,A JMP STAA RELWRT COPY WRTPAT,A STAA COPY A,0(X) COPY WRTPAT,A ADD =1,X NXT ADD ADD =1,A NEW PAT IMS WCNT  DONE 4K? JMP STAGN NO - STORE AREG AGAIN RTN UAT ****READ UAT PATTERN**** READ COPY SAVAR,A  COPY A,EXPV EXP VALUE RDAGN SUB =:80,X JNE X,$+2 JMP YEEP1 SUB =:88-:80,X JNE  X,$+2 JMP YEEP2 ADD =:88,X JMP NOOP1 YEEP1 ADD =:80+2,X SKIP 2 WRDS COPY EXPV,A  ADD =2,A COPY A,EXPV JMP NOOP1 YEEP2 ADD =:88+5,X SKIP 5 WRDS COPY EXPV,A ADD  =5,A COPY A,EXPV NOOP1 EQU $ COPY FLAG0,A JNE A,RELRD COPY =0,A COPY EXPV,Q SAVE EXPECTED VALUE COPY A,EXPV COPY A,ZEROO COPY 0(X),A CSK A,ZEROO NOP JST EROUT COPY Q,EXPV RESTORE EXPECTED VALUE JMP NOOP2 RELRD COPY 0(X),A CSK A,EXPV ACT=EXP? NOP JST EROUT NO-ERROR NOOP2 EQU $ ADD =1,X YES - NXT ADDRESS IMS EXPV NXT PAT NOP IMS WCNT DONE 4K YET? JMP RDAGN NO - READ AGAIN RTN UAT * INVALU WORD :0100 BPVALU WORD :0101 ZEROO WORD 0 SAVAR NOP WRTPAT RES 1 WCNT NOP LPOOL TITL ************************************************** * PING PONG TEST * ENTER: XREG=START ADDRESS * EXIT: AFTER 4K MODULE TESTED * ERROR: JST ERROR ROUTINE * SKIP BASE PAGE INTERRUPT LOCATIONS PPT ENT JNE X,$+4 IS THIS BASE PAGE COPY =:FF9,A NEG A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER COPY X,STRTS SAV STRT ADDRESS * * FILL MEMORY WITH FUNNY PATTERN * AGN1 SUB =:80,X JNE X,$+2 JMP SEP1 SUB =:88-:80,X JNE X,$+2 JMP SEP2 ADD =:88,X JMP SOP1 SEP1 ADD =:80+2,X SKIP 2 WRDS JMP SOP1 SEP2 ADD =:88+5,X SKIP 5 WRDS SOP1 COPY X,A AND =:41,A JEQ A,BUMP-1 CLSN =:41,A JMP BUMP-1 COPY PAT2,A PAT2 JMP BUMP COPY PAT1,A PAT1 BUMP COPY A,0(X) STORE PAT  ADD =1,X BUMP ADDRESS PTR IMS WCNT DONE WRITTING? JMP AGN1 NO - CONTINUE JMP PPR GO CHECK IT OUT STRTS NOP PAT1 WORD :55AA PAT2 WORD :AA55 * * READ BACK MEMORY TO CHECK LOCATIONS FOR * EXPECTED PATTERNS PPR EQU $ COPY STRTS,X GET BACK START ADDRESS COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER AGN2 SUB =:80,X JNE X,$+2 JMP SEEP1 SUB =:88-:80,X JNE X,$+2 JMP SEEP2 ADD =:88,X JMP SOOP1 SEEP1 ADD =:80+2,X SKIP 2 WRDS COPY WCNT,A ADD =4,A COPY A,WCNT JMP SOOP1 SEEP2 ADD =:88+5,X SKIP 5 WRDS COPY WCNT,A ADD  =:C,A COPY A,WCNT SOOP1 COPY X,A AND =:41,A JEQ A,CPAT1 PAT1 CLSN =:41,A JMP CPAT1 COPY 0(X),A PAT2 CSK A,PAT2 CONTENTS = PAT2 ? NOP JST ERR NO - ERROR JMP SWT YES - SWT TO NEXT MEM LOC CPAT1 COPY 0(X),A CSK A,PAT1 CONTENTS = PAT1 ? NOP JST1 JST ERR NO - ERROR SWT COPY WCNT,A SHIFT A,RO,1 IS IT AN EVEN COUNT? JF OV,$+2 YES - DON'T BUMP ADDRESS-JUST SWT SUB =1,X NO - BUMP ADDRESS COPY X,A XOR =:FFF,A COPY A,X IMS WCNT DONE 4K ? JMP AGN2 NO - CONTINUE RTN PPT * ERR ENT COPY A,SAVAR  SAV AREG COPY JST1+1,A XOR ERR,A WHICH PAT ? JEQ A,PAT1D COPY PAT2,A PAT2 JMP $+2 PAT1D COPY PAT1,A PAT1 COPY A,EXPV EXP VALUE COPY SAVAR,A ACT VALUE JST EROUT  RTN ERR TITL ********************************************* * OUTPUT HEX ROUTINE * ENTER: AREG=BINARY VALUE TO CONVERT+OUTPUT * EXIT : XREG UNCHANGED * OHEX ENT COPY X,TX COPY =-4,X SET UP CNTER COPY X,NIBCNT NIBBLE COUNTER COPY A,X ROTATE X,LO,1 SET UP XREG OX1 ROTATE X,LO,4 GET A NIBBLE(STRT FROM L.)  COPY X,A AND =:F,A SAVE A NIBBLE SUB =:A,A JLT A,$+2 ADD =:7,A ADD =:3A,A JST OTT IMS NIBCNT DONE ALL 4 NIBS JMP OX1 NOPE - TAKE ANOTHER BIT COPY TX,X RESTORE XREG RTN OHEX * TX NOP NIBCNT WORD -4 LPOOL TITL ********************************** * MESSAGES * SIGNON WORD :0D0A BYTE 'MOS MEMORY DIAGNOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYYY) ? ' WORD :FFFF BANKM WORD :0D0A BYTE 'BANKED (Y/N) ? ' WORD :FFFF P0M BYTE 'P0? ' WORD :0D0A WORD :FFFF TSTAM WORD  :0D0A BYTE 'TESTA' WORD :FFFF TSTBM BYTE ' TESTB' WORD :FFFF CRLFM WORD :0D0A WORD :FFFF PASM WORD :0D0A BYTE 'PASS ' WORD :FFFF PASCM WORD :0D0A BYTE 'PASSES COMPLETED '  WORD :FFFF PAREM BYTE ' PARITY ' WORD :FFFF TAM BYTE ' TESTA ' WORD :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM BYTE ' IB# ' WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A  WORD :0D0A BYTE 'POWER FAIL - STARTING OVER' WORD :0D0A WORD :FFFF HALTM WORD :0D0A BYTE 'MUST LOAD ON 4K BOUNDARY' WORD :0D0A WORD :FFFF BUF1 RES 40,0 *** BANKING INFO INPUT BUFFER ***  TBLE RES 50,0 *** MEMORY MAP TABLE **** END GO NOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPOO0SEGMENTBLANK o[€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿòó‹#�Â>á1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|î]jÏ¢ÿ£v#ø[  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dÊ †a†˜ †5‚\†�‚u†��1 †�‚�›�‚R†…‚k††�' € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ò!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰nx`–‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸr„‰¡ ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œlk‘¨¯¶¼,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4Ò&ÂÆÌÇ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ã)… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÉN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ü1Âİ�‚‚\†×ƒÚg‚Ò*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Ä¿οÇÄÄ€€€@ Qº@ �‚¿¾�€ƒ¾ ��‚´„€‚²+ ް�[ŸN‚«‡®*€1Á�…*ø1Á&�‡+ˆ�‰+‚ƒ¤ ‡¢�„+�ƒŸ ‡�ƒŸÊ Ù‡˜†’€€º�¿”Ç’�„€€»�¿�+ߋއ�ZŸ%ÀùmÈ�v 1Âu�‚‚ë†o¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+ŞX�i�ƒUªªU¢|‚ˆO*€1Á�…*ø1Á�‡+ˆ�‰+‚‚E †C�„+�‚@ †> AG A�…€€ºc¾��„€€º]¾Š‚/ 6Á*ÿ š¥ Ş(�XŸ/ †"‚sš|B‚L��‚I‡‚¿Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�ŸnÿüÿO MOS MEMORY DIAGNOSTIC REV: A0 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0?   ÿÿ TESTA ÿÿ TuESTBÿÿ ÿÿ PASS ÿÿ PASSES COMPLETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÉN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ü1Âİ�‚‚\†×ƒÚg‚Ò*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Ä¿οÇÄÄ€€€@ Qº@ �‚¿¾�€ƒ¾ ��‚´„€ TITL ***MOS MEMORY DIAGNOSTIC 93926-12A3*** ************************************************* * MOS MEMORY DIAGNOSTIC 93926-12A3 * * REV: EQU 'A3' REVISION LEVEL PEI EQU :8B PARITY ER ROUTINE ADDRESS PTR PFI EQU :81 POWER UP ROUTINE ADDRESS PTR **************** MACRO RTN ********************** MACRO RTN JMP *#1 ENDM ************************************************* * BASE PAGE INTERRUPT ROUTINES * **** POWER UP INTERRUPT ROUTINE *********  ABS :80 JMP *$+1 NOP **** PARITY ERROR INTERRUPT ROUTINE ***** ABS :88 JST $+1  NOP ADDRESS LEFT OFF AT BEFORE INT. JMP *$+1 NOP ADDRESS IN PROG TO SERVICE INT. **** POWER FAIL INTERRUPT ROUTINE ******** ABS :8C HLT TITL REL :0 RES :FF BEG WORD $-:FF ******************************************** * INIT ALL * GO COPY BEG,A AND =:FFF,A JEQ A,$+5 COPY =HALTM,X JST ASKQ HLT ****OPERATOR MUST RELOAD**** JMP GO COPY BEG,A OR =PER,A COPY A,PEI . INTO PAR ERR INT ROUT COPY BEG,A OR =PFR,A COPY A,PFI . INTO POW UP INT ROUT COPY BEG,A SHIFT A,RO,8 SHIFT A,RO,4 COPY A,PMOD CSK A,=7 JMP $+2 SBIT 6,S COPY =0,A RESET : COPY A,PARFLG COPY A,ERACNT COPY A,ERBCNT COPY A,PERCNT COPY =1,A COPY A,PASN COPY =SIGNON,X JST ASKQ SIGN ON JMP QROUT GO START QUERY * PARFLG NOP PERCNT NOP PASN WORD 1 ERACNT WORD 0 ERBCNT WORD 0 SPACE 1 ** POWER UP ROUTINE ** SPACE 1 PFR EQU $ COPY =PFM,X JST ASKQ "POWER FAIL" JMP GO  LPOOL TITL **************************************** * QUERY ROUTINE * QROUT EQU $ COPY =FULLM,X JST ASKQ JST IKB READ REPLY JST CHK CHK IF "Y" OR "N" JMP QROUT NEITHER COPY A,FULL SAVE Y OR N QAGN1 COPY =STRTM,X RANGE? JST ASKQ JST IHEX INPUT + CONV TO BIN JMP QQAGN CLSN ='^',A JMP QROUT CLSN =',',A MUST TERM WITH "," JMP $+2 YES - OK JMP QQAGN NOPE - ERROR COPY X,STRTA START ADDRESS JST IHEX JMP QQAGN CLSN  ='^',A JMP QROUT CLSN ='_',A JMP QAGN1 JEQ X,QQAGN VALID ? CLSN =:0D,A TERM CHAR ? JMP $+3 YES - OK QQAGN JST BAKER NO - ERROR JMP QAGN1 COPY X,A CSK !  A,=:7FFF JMP $+2 SBIT 6,S TURN ON XA BIT COPY X,FINISH END ADDRESS QAGN3 COPY =BANKM,X BANKED? JST ASKQ JST IKB JST CHK JMP QAGN3 CLSN ='^',A JMP QAGN1  COPY A,BNKFLG CLSN ='Y',A BANKED? JMP BANKQ YES JMP SETMOD NO SPACE 1 ** ERROR ON INPUT - OUTPUT "_" ** SPACE 1 BAKER ENT COPY =ARROW,X JST ASKQ RTN BAKER * FULL NOP LPOOL TITL * ASKQ - OUTPUT MESSAGES ASKQ ENT COPY 0(X),A CLSN =:FF,A END OF MESS RTN ASKQ YES SHIFT A,RO,8 JST OTT OUTPUT 0 BYTE COPY 0(X),A JST OTT OUTPUT 1 BYTE ADD =1,X BUMP ADD PTR JMP ASKQ+1 LPOOL * CHK-- MUST BE "Y" "N" "^" "_" OTHERWISE ERROR CHK  ENT CLSN ='Y',A JMP RETN YES CLSN ='N',A JMP RETN YES CLSN ='^',A  JMP RETN YES CLSN ='_',A JMP INPUT2 YES RETN2 JST BAKER NONE OF THE ABOVE RTN  CHK RETN COPY A,AS SAV AREG JST IKB READ TERM CHAR CLSN =:0D,A TERM CHAR ? JMP  RETN1 YES JMP RETN2 NO INPUT2 JST IKB READ ANOTHER REPLY JMP CHK+1 WHAT IS IT RETN1 COPY AS,A GET CHAR BACK IMS CHK RTN CHK AS NOP ************************************************* * INPUT FULL LINE OF RESPONSE TO BUF1 * RETURN IKL+1 OR BQ (ASK QUEST AGAIN) * SKIP _ CHAR + START QUERY OVER IF _CR FOUND * IKL ENT COPY *IKL,X IMS IKL IK1 JST IKB GET CHAR CLSN ='_',A JMP ER1 CLSN ='^',A JMP QAGN3 SHIFT A,LO,8 COPY A,0(X) SHIFT A,RO,8 CLSN =:0D,A CR ?  RTN IKL YES IK2 JST IKB CLSN ='_',A JMP ER2 CLSN ='^',A JMP QAGN3 OR 0(X),A COPY A,0(X) CLSN =:0D,A RTN IKL ADD =1,X JMP IK1 ER1 SUB =1,X COPY 0(X),A AND =:FF00,A COPY A,0(X) JST IKB CLSN =:0D,A WANT TO DELETE LINE ? JMP BQ YES - ASK AGAIN JMP IK2+1 NO - CONTINUE ER2 JST IKB CLSN =:0D,A JMP BQ  JMP IK1+1 LPOOL ************************************************** * READ BUF ROUTINE * READ CHARS IN BUF AND CONVERTS TO BIN * UNTIL A NON-DEC VALUE FOUND (TERM CHAR) * EXIT AR=TERM CHAR XR=VALUE * IF XR=0 ONLY A TERM CHAR INPUTTED * BUFPTR POINTS TO CHAR FOLLOWING TERM CHAR * IDEC ENT COPY =0,A COPY A,V J3 SBIT 2,S  COPYB *BUFPTR,A GET A CHAR RBIT 2,S IMS BUFPTR BUMP BUF1 PTR COPY A,T SAV CHAR SUB =:3A,A JGE A,J2 NO ADD =:A,A JLT A,J2 NO EXCH V,A YES - GET VAL  SHIFT A,LO,1 COPY A,T SHIFT A,LO,2 ADD T,A ADD V,A ADD DIGIT COPY A,V  NEW VALUE JMP J3 J2 COPY V,X COPY T,A TERM CHAR RTN IDEC * V NOP T NOP " BUFPTR NOP ************************************************* * INPUT HEX ROUTINE * TERM WHEN NON HEX DIGIT FOUND * EXIT XR=BIN VAL AR=TERM CHAR * IF XR=0 TERM CHAR ONLY INPUT * IF _ FOUND OR MORE THAN 5 CHAR INPUT * RETURN IHEX; OTHERWISE RETURN IHEX+1 * IHEX ENT COPY =-6,A COPY A,DCNT COPY =0,A COPY A,V I2 JST IKB GET CHAR IMS DCNT JMP $+2 RTN IHEX STRT QUERY AGAIN CLSN ='_',A DID HE GOOF  RTN IHEX YES COPY A,T SAV CHAR SUB =:3A,A JGE A,IH4 MAYBE ADD =:A,A  JGE A,IH5 YES I3 COPY V,X GET VALUE COPY T,A GET TERM CHAR IMS IHEX RTN  IHEX IH4 SUB =:D,A TEST IF HEX JGE A,I3 NO ADD =6,A JLT A,I3 NO ADD =:A,A IH5 EXCH V,A YES GET VAL SHIFT A,LO,4 X 16 ADD V,A ADD DIGIT COPY A,V JMP I2 DCNT WORD 0 ************************************************* * IKB - INPUT A CHAR FROM TTY INTO AREG * IKB ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S  COPY =:100,X COPY =:8618,A XNX Q OUT A,1 XNX Q IN 1,A SHIFT A,RO,4  JF OV,$-3 XNX Q IN 0,A XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY Y,X RTN IKB SAVES WORD 0 DIOTY WORD :F0+:8 ************************************************* * OTT---OUTPUT A CHARACTER FROM A REG * OTT ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S COPY =:8612,X XNX Q OUT X,1 XNX Q OUT A,0  COPY =:100,X XNX Q IN 1,A SHIFT A,RO,5 JT OV,$-3 XNX Q IN 1,A  SHIFT A,RO,5 JF OV,$-3 XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY  Y,X RTN OTT LPOOL TITL ************************************************* * BANK QUERY ROUTINE * BUILD A MEM TABLE AS FOLLOWS * 1ST WRD = PRI MEMORY SIZE * 2ND WRD = # ALT'S / # ALT'S INT.BANK * 3RD WRD = ALT # / # INT.BANKS * 4TH WRD = SAME AS 3RD * ETC * INPUT EXAMPLE: 8,8(4),8,8(8) * 8K PRI SIZE, 3 ALT'S, 2 ALT'S I.B. * ALT1 HAS 4 I.B. ALT3 HAS 8 I.B. * BANKQ EQU $ COPY =0,A RESET : COPY A,NPRI # PRI MOD COPY A,MALT MAX #ALT PER 1 ROW COPY A,MEMSZE MEM SIZE COPY =TBLE,X COPY X,TBLPTR COPY PFILL,A  COPY A,P0M BQ EQU $ COPY =BUF1,X SHIFT X,LO,1 CONVERT TO BYTE ADD COPY X,BUFPTR RESTORE REAL TIME BYTE ADD COPY =0,A RESET : COPY A,PRISZE PRI SIZE COPY A,ALTN ALT # COPY A,NIB # INT BANK COPY A,NAIB # ALT'S INT BANKED COPY DYN1,A COPY A,DYNIN1 STA 1(X)  COPY =CRLFM,X JST ASKQ COPY =P0M,X JST ASKQ "P0?" JST IKL READ LINE OF IN# PUT INTO BUF1 WORD BUF1 BUF1 ADDRESS JST IDEC CLSN ='#',A OPERATOR DONE? JMP TSTPAR YES COPY A,ASAV COPY X,A SUB =4,A PRI SIZE LESS THAN 4K? JGE A,$+2 NO - IF POS  JMP BQ YES - ERROR COPY X,*TBLPTR STORE IN TABLE COPY X,PRISZE SAV IT COPY ASAV,A NXTCHR CLSN =',',A COMMA FOLLOWS? JMP C YES - PROCESS ALT'S CLSN ='(',A INT. BANKED? JMP  PIB YES - PROCESS I.B. CLSN =:0D,A END OF P0? INPUT? JMP $+2 YES JMP BQ NONE OF ABOVE - ERROR JMP E GO TO END INPUT ROUT PFILL BYTE 'P0' DYN1 WORD :8481 LPOOL ************************************************* * PROCESS THE ALT'S ENTER: AREG=, * C EQU $ JST IDEC GET ALT SIZE CLSN =0,X JMP BQ COPY A,ASAV COPY X,A CSK A,PRISZE ALT = PRI SIZE NOP  JMP BQ NO ERR IMS ALTN COPY ALTN,A SUB =15,A ALT # > 15 JLE A,$+2  NO - OK JMP BQ YES - ERROR COPY ASAV,A GET TERM CHAR BACK JMP NXTCHR * * PROCESS INTERNAL BANKS * XREG=PRI SIZE AREG=( PIB EQU $ JST IDEC INPUT # I.B. CLSN =0,X JMP BQ  CLSN =')',A BETTER BE JMP $+2 JMP BQ NOPE COPY X,A SUB =8,A NIB>8?  JLE A,$+2 NO JMP BQ YES - ERROR IMS NAIB IMS DYNIN1 COPY X,NIB COPY ALTN,A SHIFT A,LO,8 XOR NIB,A COPY TBLPTR,X DYNIN1 COPY A,1(X) JST IDEC GET NXT PUNCT. JMP NXTCHR GO CHK IT OUT ASAV NOP * * END OF INPUT ON ONE LINE * E EQU $ COPY TBLPTR,X COPY 0(X),A GET PRISZE ADD MEMSZE,A . AND ADD TOTAL MEM SIZE SUB =32,A MORE THAN 32K  JLE A,$+2 NO JMP BANKQ TURKEY CAN'T COUNT - ERROR ADD =32,A BANK TO TOTAL SZE COPY A,MEMSZE SAV IT COPY ALTN,A MAX ALT'S IN THIS ROW CSK A,MALT IS IT THE GREATEST? JMP $+2 NO COPY A,MALT YES REPLACE OLD MALT IMS NPRI BUMP PRI # (0-X) COPY ALTN,A # ALT'S  SHIFT A,LO,8 XOR NAIB,A # ALT'S I.B. COPY A,1(X) STORE #ALT'S/#ALT'S I.B. IN TBLE COPY X,A ADD NAIB,A ADD =2,A COPY A,TBLPTR RESET TBLPTR FOR NXT ROW IMS P0M JMP BQ * TBLPTR NOP STRTA NOP FINISH NOP NPRI NOP MALT NOP MEMSZE NOP PRISZE NOP ALTN NOP NIB NOP NAIB NOP ************************************************* * TEST PARAMETERS INPUT FROM BANK QUERY * TSTPAR EQU $ COPY NPRI,A MUST HAVE AT LEAST CLSN =1,A . 2 TO RELOC JMP BANKQ DIDN'T COPY FINISH,A ADD =1,A  SHIFT A,RO,8 SHIFT A,RO,2 SUB MEMSZE,A JLE A,$+2 JMP QROUT COPY =0,A RESET: COPY A,MATFLG COPY NPRI,A NEG A,A COPY A,PRICNT SET UP COUNTER COPY NPRI,A $  SUB =4,A 8X8 OR 4X16 MATRIX ? JLE A,$+2 STILL DON'T KNOW JMP M8X8 8X8 MATRIX COPY MALT,A MAX ALT IN 1 ROW SUB =7,A 8X8 OR 4X16 MATRIX ? JGT A,$+2 4X16 MATRIX JMP M8X8 8X8 MATRIX * * 4X16 MATRIX LOGIC * COPY TBLPTR,X P1 COPY 1(X),A AND =:FF,A GET #ALT'S I.B.  COPY A,ASAV JEQ A,NOIB1 NO INT.BANKS COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =12,A > 12 ? JLE A,NXT1 NO - OK JMP ER YES - ERROR NOIB1 COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =15,A > 15 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT1 COPY X,A  TBLE PTR TO A REG ADD ASAV,A # ALT'S INT.BANKED ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS? JMP P1 NO - LOOK AT NXT ROW JMP SETMOD YES - GO SET UP MOD #'S * * 8X8 MATRIX LOGIC * M8X8 IMS MATFLG COPY TBLPTR,X P2 COPY 1(X),A AND =:FF,A GET ALT' I.B. COPY A,ASAV JEQ A,NOIB2 NO I.B. COPY 1(X),A SHIFT A,RO,8 GET # ALT'S  SUB =4,A > 4? JLE A,NXT2 NO - OK JMP ER YES - ERROR NOIB2 COPY 1(X),A SHIFT A,RO,8 GET # ALT'S SUB =7,A > 7 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT2 COPY X,A TBLE PTR TO AREG ADD ASAV,A #ALT'S I.B. ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS ? JMP P2 NO - LOOK AT NEXT ROW COPY =1,A YES - COPY A,PASN INITIAL PASS # JMP SETMOD GO SETUP MOD #'S PRICNT NOP * TITL ****SORRY CHARLIE - YOU LOSE**** SPACE 1 ER EQU $ JMP QROUT DO IT AGAIN LPOOL SPACE 2 ******************************************** * EACH PASS AFTER FIRST STARTS HERE * ******************************************** * SET UP MODULE #'S * CONV : STRTA- SMOD/SROW * PROGA - PMOD/PROW * FINISH - EMOD/EROW SETMOD EQU $ COPY =TBLE,A COPY A,TBLPTR COPY STRTA,A START ADD OF TEST AND =:F000,A CONV TO MOD# SHIFT A,RO,8  SHIFT A,RO,4 COPY A,SMOD COPY FINISH,A END ADD OF TST AND =:F000,A SHIFT A,RO,8  SHIFT A,RO,4 CONV TO MOD# COPY A,EMOD * TITL ***************************************** * FIGURE OUT WHERE TO START TESTING * TMOD/TROW=TEST MOD/ROW * COPY BNKFLG,X CLSN ='Y',X JMP BKREL COPY PMOD,A CSK A,SMOD PMODEROW JMP QAGN1 NO2A CSK A,SROW SROW>PROW? JMP NOR1 YES JMP QAGN1 NOR1 COPY SROW,A COPY A,TROW JMP EXECT MATFLG WORD 0 LPOOL TITL ************************************************* * MODCON - CONVERTS MOD# TO ROW# * ENTER: AREG=MOD# EXIT: AREG=ROW# * MODCON ENT COPY A,MODS COPY =0,A COPY A,ROWX COPY  A,MEMTOT COPY TBLPTR,X COPY X,STBLP SAV IT TO UPDATE LOPA COPY 0(X),A ADD MEMTOT,A COPY A,MEMTOT SHIFT A,RO,2 DIVIDE BY 4 CSK A,MODS IS MOD IN ROW JMP AGN NO JMP NROW+1 YES- IT'S IN THIS ROW JMP NROW NO IT'S IN NXT ROW AGN COPY 1(X),A AND =:FF,A GET #ALT' I.B. ADD =2,A ADD STBLP,A GET NEW TBLE PTR COPY A,STBLP KEEP IT COPY A,X REPOSITION TBLE PTR TO NXT ROW IMS ROWX JMP LOPA LOOK IN NXT ROW NROW IMS ROWX COPY ROWX,A  RTN MODCON STBLP NOP MEMTOT NOP MODS NOP SROW NOP SMOD NOP ROWX NOP TITL ********************************************************* * EXECUTIVE SUITE : SET UP WHICH TEST TO RUN * : CALL TESTS * : ERRORS - JST ROUT * : START WITH UAT ********************************************************** EXECT EQU $  SBIT 8,S ENABLE INTERRUPTS COPY PASN,A SELP A,4 TELL USER VIA C REG COPY =0,A RESET : COPY A,SPAT COPY A,FLAG0 COPY A,UATFLG UA TEST FLG IMS UATFLG SET IT COPY A,WRTFLG WRITE FLG IMS WRTFLG SET IT COPY TMOD,A GET TMOD COPY A,SAVMOD SAVE FIRST TMOD  COPY TROW,A COPY A,STROW SAVE FIRST TROW SPAT NOP *************************************** * RUNTST IS ENTERED EACH TIME A TEST IS RUN * UAT READ OR WRITE OR PPT *************************************** RUNTST EQU $ COPY  BNKFLG,A CLSN ='Y',A BANKED? JMP BKED YES COPY TMOD,A COPY A,X SHIFT X,LO,8 SHIFT X,LO,4 XREG=STRT ADDRESS COPY UATFLG,A WHICH TEST SHOULD WE RUN ? JEQ A,TTB COPY  X,A AREG=STRT PAT JST UAT ****UNIQUE ADDRESS TEST**** JMP $+2 TTB JST PPT ****PING PONG TEST**** COPY TMOD,A CSK A,EMOD LAST MOD? NOP JMP $+2 NO - KEEP ON TESTING  JMP WATNOW YES - SEE WHAT'S NEXT IMS TMOD NXT TMOD SET UP JMP RUNTST BKED EQU $ COPY TROW,A AREG=TROW COPY MATFLG,X XREG=MATRIX FLAG JST ROWIN SET UP TBLPTR FOR TSTBNK ROUT * RETURN AREG=TMOD, ROW=TEST ROW CMS1 CSK A,SMOD IS THIS THE RIGHT MOD IN ROW? JMP $+3 TMOD NALT JMP NXTALT NO - DO NXT ALT JMP DONE YES - DONE THIS ROW JMP NXTALT NO - DO NXT ALT *************************** * ALT HAS INTERNAL BANKS * YIB EQU $ IMS DYNIN2 SET UP FOR NXT I.B. ALT COPY ARSAV,A AND =:FF,A GET # I.B. NEG A,A  COPY A,IBCNT SET UP COUNTER JST SETUP * WHICH MATRIX 8X8 OR 4X16 ? AAAAAA COPY MATFLA,A WHICH MATRIX 8X8 OR 4X16 ? JEQ A,M4X16 A=0 - 4X16 COPY IBN,A JEQ A,$+5 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTA SWT BANK JMP TSTIT M4X16 COPY IBN,A JEQ A,$+6 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,8 SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTB SWT BANK TSTIT JST RUNTS1 RUN A TEST IN BANK IMS IBCNT I.B.'S ? JMP AGNB NO COPY =0,A YES COPY A,IBN RESET I.B.# IMS ALTN1 COPY ALTN1,A  CSK A,NALT ALTN > NALT JMP NXTALT NO JMP DONE YES - DONE WITH ROW JMP NXTALT NO - GO TEST NEXT ALT AGNB IMS IBN JMP AAAAAA DO ANOTHER I.B. ************************************** * DONE TESTING A 4K TMOD IN THIS ROW * CHECK AND SEE IF ENTIRE ROW TESTED * DONE EQU $ COPY TBLPT,X COPY 0(X),A  SHIFT A,RO,2 HOW MANY 4K MOD'S IN ROW IMS MODSD ADD 1 TO MOD'S DONE CSK A,MODSD IS ROW COMPLETED ? NOP JMP $+2 NOT YET RTN TSTBNK IMS TMOD COPY TMOD,A CSK A,EMOD JMP $+2 NO RTN TSTBNK YES JMP TSTBNK+1 NO SADD NOP ALTNB NOP NALT NOP CONFIG WORD 0 ARSAV NOP IBCNT NOP * TITL ***************************************** * DECIDE WHICH TEST TO RUN IN BANK * SET UP UNIQUE WRD FOR ALT'S BUT IF * UNIQUE WRD > :FFFF START OVER WITH :0000 * XREG UNCHANGED ******************************************** RUNTS1 ENT COPY X,XSAV SAV XREG COPY UATFLG,A WHICH TEST? JEQ A,PTST COPY SADD,X STRT ADDRESS COPY SPAT,A STRT PATTERN JST UAT CALL UNIQUE ADRESS TEST COPY SPAT,A STRT PATTERN ADD =:1000,A COPY A,SPAT . NXT STRTING PATTERN JMP RET PTST COPY SADD,X START ADDRESS JST PPT CALL PING PONG TEST RET COPY XSAV,X RESTORE XREG RTN RUNTS1 XSAV NOP LPOOL TITL ********************************************* * SWITCH BANK ROUTINE * ENTER - CONFIG = WRD TO GIVE CONTROLLER * AREG = ROW = FUNCT CODE FOR ROW SEL * USE SWTA ROUTINE FOR 8X8 MATRIX * USE SWTB ROUTINE FOR 4X16 MATRIX ********** ************************************** SWTA ENT ADD OUTA,A ADD FUNCT CODE FOR ROW SEL COPY A,$+2 SET UP OTA INSTR COPY CONFIG,A NOP RTN SWTA SWTB ENT SBIT 1,S SHIFT A,LO,1 CONV TO FUNCT CODE ADD SELP,A COPY A,$+2 COPY CONFIG,A NOP RTN SWTB * SELP WORD :04F0 OUTA WORD :02F0 BANK0 WORD :0001 * TITL ******************************************** * UNIQUE ADDRESS TEST * ENTER : XREG=SRT ADDRESS * AREG=SRT PATTERN * WRTFLG = 0 - READ FUNCT * WRTFLG = 1 - WRITE FUNCT * SKIP BASE PAGE INTERRUPT HANDLERS * EXIT : AFTER 4K MODULE DONE * ERROR - JST ERROR ROUT ************************************** UAT ENT COPY A,SAVAR JNE X,$+4 DOES THIS INCLUDE BASE PAGE COPY =:FF9,A NEG  A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP -4K COUNTER COPY WRTFLG,A JEQ A,READ ****WRITE UAT PATTERN**** COPY SAVAR,A STAGN SUB =:80,X JNE X,$+2 JMP YEP1 SUB =:88-:80,X JNE X,$+2 JMP YEP2 ADD =:88,X JMP RAPVAL-2 YEP1 ADD =:80+2,X SKIP 2 WRDS ADD =2,A JMP RAPVAL-2 YEP2 ADD =:88+5,X SKIP 5 WRDS ADD =5,A JMP  RAPVAL-2 COPY A,WRTPAT COPY INVALU,Q SET UP FOR MEM. WRITE READ TEST RAPVAL EQU $ SUB BPVALU,Q SET UP TO TEST DEFFERENT BIT PATERNS COPY Q,EXPV SAVE EXPECTED VALUE COPY Q,0(X) WRITE EXPECTED VALUE INTO MEM. CELL COPY 0(X),A READ VALUE OUT OF MEM. CELL CSN A,Q DOES ECPECTED VALUE = ACT. VALUE JNE Q,RAPVAL YES,HAS ALL PATERNS BEEN CHECKED CSN A,Q COMPARE MEMORY ONCE MORE JMP NOP1 MEMORY CELL GOOD CONTINUE JST EROUT MEMORY CELL BAD STORE ERROR JMP NOP1 CONTINUE TESTING MEMORY NOP1 EQU $ COPY FLAG0,A JNE A,RELWRT COPY =0,A JMP STAA RELWRT COPY WRTPAT,A STAA COPY A,0(X) COPY WRTPAT,A ADD =1,X NXT ADD ADD =1,A NEW PAT IMS WCNT  DONE 4K? JMP STAGN NO - STORE AREG AGAIN RTN UAT ****READ UAT PATTERN**** READ COPY SAVAR,A  COPY A,EXPV EXP VALUE RDAGN SUB =:80,X JNE X,$+2 JMP YEEP1 SUB =:88-:80,X JNE  X,$+2 JMP YEEP2 ADD =:88,X JMP NOOP1 YEEP1 ADD =:80+2,X SKIP 2 WRDS COPY EXPV,A  ADD =2,A COPY A,EXPV JMP NOOP1 YEEP2 ADD =:88+5,X SKIP 5 WRDS COPY EXPV,A ADD  =5,A COPY A,EXPV NOOP1 EQU $ COPY FLAG0,A JNE A,RELRD COPY =0,A COPY EXPV,Q SAVE EXPECTED VALUE COPY A,EXPV COPY A,ZEROO COPY 0(X),A CSK A,ZEROO NOP JST EROUT COPY Q,EXPV RESTORE EXPECTED VALUE JMP NOOP2 RELRD COPY 0(X),A CSK A,EXPV ACT=EXP? NOP JST EROUT NO-ERROR NOOP2 EQU $ ADD =1,X YES - NXT ADDRESS IMS EXPV NXT PAT NOP IMS WCNT DONE 4K YET? JMP RDAGN NO - READ AGAIN RTN UAT * INVALU WORD :0100 BPVALU WORD :0101 ZER+ OO WORD 0 SAVAR NOP WRTPAT RES 1 WCNT NOP LPOOL TITL ************************************************** * PING PONG TEST * ENTER: XREG=START ADDRESS * EXIT: AFTER 4K MODULE TESTED * ERROR: JST ERROR ROUTINE * SKIP BASE PAGE INTERRUPT LOCATIONS PPT ENT JNE X,$+4 IS THIS BASE PAGE COPY =:FF9,A NEG A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER COPY X,STRTS SAV STRT ADDRESS * * FILL MEMORY WITH FUNNY PATTERN * AGN1 SUB =:80,X JNE X,$+2 JMP SEP1 SUB =:88-:80,X JNE X,$+2 JMP SEP2 ADD =:88,X JMP SOP1 SEP1 ADD =:80+2,X SKIP 2 WRDS JMP SOP1 SEP2 ADD =:88+5,X SKIP 5 WRDS SOP1 COPY X,A AND =:41,A JEQ A,BUMP-1 CLSN =:41,A JMP BUMP-1 COPY PAT2,A PAT2 JMP BUMP COPY PAT1,A PAT1 BUMP COPY A,0(X) STORE PAT  ADD =1,X BUMP ADDRESS PTR IMS WCNT DONE WRITTING? JMP AGN1 NO - CONTINUE JMP PPR GO CHECK IT OUT STRTS NOP PAT1 WORD :55AA PAT2 WORD :AA55 * * READ BACK MEMORY TO CHECK LOCATIONS FOR * EXPECTED PATTERNS PPR EQU $ COPY STRTS,X GET BACK START ADDRESS COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER AGN2 SUB =:80,X JNE X,$+2 JMP SEEP1 SUB =:88-:80,X JNE X,$+2 JMP SEEP2 ADD =:88,X JMP SOOP1 SEEP1 ADD =:80+2,X SKIP 2 WRDS COPY WCNT,A ADD =4,A COPY A,WCNT JMP SOOP1 SEEP2 ADD =:88+5,X SKIP 5 WRDS COPY WCNT,A ADD =:C,A COPY A,WCNT SOOP1 COPY X,A AND =:41,A JEQ A,CPAT1 PAT1 CLSN =:41,A JMP CPAT1 COPY 0(X),A PAT2 CSK A,PAT2 CONTENTS = PAT2 ? NOP JST ERR NO - ERROR JMP SWT YES - SWT TO NEXT MEM LOC CPAT1 COPY 0(X),A CSK A,PAT1 CONTENTS = PAT1 ? NOP JST1 JST ERR NO - ERROR SWT COPY WCNT,A SHIFT A,RO,1 IS IT AN EVEN COUNT? JF OV,$+2 YES - DON'T BUMP ADDRESS-JUST SWT SUB =1,X NO - BUMP ADDRESS COPY X,A XOR =:FFF,A COPY A,X IMS WCNT DONE 4K ? JMP AGN2 NO - CONTINUE RTN PPT * ERR ENT COPY A,SAVAR  SAV AREG COPY JST1+1,A XOR ERR,A WHICH PAT ? JEQ A,PAT1D COPY PAT2,A PAT2 JMP $+2 PAT1D COPY PAT1,A PAT1 COPY A,EXPV EXP VALUE COPY SAVAR,A ACT VALUE JST EROUT  RTN ERR TITL ********************************************* * OUTPUT HEX ROUTINE * ENTER: AREG=BINARY VALUE TO CONVERT+OUTPUT * EXIT : XREG UNCHANGED * OHEX ENT COPY X,TX COPY =-4,X SET UP CNTER COPY X,NIBCNT NIBBLE COUNTER COPY A,X ROTATE X,LO,1 SET UP XREG OX1 ROTATE X,LO,4 GET A NIBBLE(STRT FROM L.)  COPY X,A AND =:F,A SAVE A NIBBLE SUB =:A,A JLT A,$+2 ADD =:7,A ADD =:3, A,A JST OTT IMS NIBCNT DONE ALL 4 NIBS JMP OX1 NOPE - TAKE ANOTHER BIT COPY TX,X RESTORE XREG RTN OHEX * TX NOP NIBCNT WORD -4 LPOOL TITL ********************************** * MESSAGES * SIGNON WORD :0D0A BYTE 'MOS MEMORY DIAGNOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYYY) ? ' WORD :FFFF BANKM WORD :0D0A BYTE 'BANKED (Y/N) ? ' WORD :FFFF P0M BYTE 'P0? ' WORD :0D0A WORD :FFFF TSTAM WORD  :0D0A BYTE 'TESTA' WORD :FFFF TSTBM BYTE ' TESTB' WORD :FFFF CRLFM WORD :0D0A WORD :FFFF PASM WORD :0D0A BYTE 'PASS ' WORD :FFFF PASCM WORD :0D0A BYTE 'PASSES COMPLETED '  WORD :FFFF PAREM BYTE ' PARITY ' WORD :FFFF TAM BYTE ' TESTA ' WORD :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM BYTE ' IB# ' WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A  WORD :0D0A BYTE 'POWER FAIL - STARTING OVER' WORD :0D0A WORD :FFFF HALTM WORD :0D0A BYTE 'MUST LOAD ON 4K BOUNDARY' WORD :0D0A WORD :FFFF BUF1 RES 40,0 *** BANKING INFO INPUT BUFFER *** TBLE RES 50,0 *** MEMORY MAP TABLE **** END GO NOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPOO0SEGMENTBLANK o[€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿòó‹#�Â>á1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|î]jÏ¢ÿ£v#ø[  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dÊ †a†˜ †5‚\†�‚u†��1 †�‚�›�‚R†…‚k††�' € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ò!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰nx`–‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸr„‰¡ ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œlk‘¨¯¶¼,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4Ò&ÂÆÌÇ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ã)… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÉN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ü1Âİ�‚‚\†×ƒÚg‚Ò*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Ä¿οÇÄÄ€€€@ Qº@ �‚¿¾�€ƒ¾ ��‚´„€‚²+ ް�[ŸN‚«‡®*€1Á�…*ø1Á&�‡+ˆ�‰+‚ƒ¤ ‡¢�„+�ƒŸ ‡�ƒŸÊ Ù‡˜†’€€º�¿”Ç’�„€€»�¿�+ߋއ�ZŸ%ÀùmÈ�v 1Âu�‚‚ë†o¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+ŞX�i�ƒUªªU¢|‚ˆO*€1Á�…*ø1Á�‡+ˆ�‰+‚‚E †C�„+�‚@ †> AG A�…€€ºc¾��„€€º]¾Š‚/ 6Á*ÿ š¥ Ş(�XŸ/ †"‚sš|B‚L��‚I‡‚¿Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�ŸnÿüÿO MOS MEMORY DIAGNOSTIC REV: A3 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0?  ÿÿ TESTA ÿÿ TuESTBÿÿ ÿÿ PASS ÿÿ PASSES COMPLETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÉN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ü1Âİ�‚‚\†×ƒÚg‚Ò*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Ä¿οÇÄÄ€€€@ Qº@ �‚¿¾�€ƒ¾ ��‚´„€O0SEGMENTBLANK oI€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿàô‹#�Ã,Ï1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|îKXÏ¢ÿ£d#øI  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dË †a†™ †5‚\†�‚u†‘�1 †�‚�›�‚Q†…‚j†† �& € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ó!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰ny`„‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸrrw� ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œml–�¤ª,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4À°´ºÈ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ä… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¾ö¢�ŸqÿopÂÈgN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ì1ÂÍ�‚‚\†ÇƒÊ\‚Â*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†´ƒ¹ ��‚¯„€‚­+ Ş«�fŸY‚¦‡©*€1Á�…*ø1Á�‡+ˆ�‰+‚ƒŸ ‡��„+�ƒš ‡˜ƒšÇ †�€€º�¿‘�„€€»�¿Œ+߉ޅ�]Ÿ3±ùn É�s 1Âx�‚‚†r¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+Ş[�i�ƒUªªU¢|‚ˆR*€1Á�…*ø1Á�‡+ˆ�‰+‚‚H †F�„+�‚C †A AG A�…€€ºc¾��„€€º]¾Š‚2 6Á*ÿ š¥ Ş+�XŸ/ †%‚sš|B‚L��‚I‡"‚¿!Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�Ÿnÿüÿ` MOS MEMORY DIAGNOSTIC REV: A0 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0? ÿÿ TESTA ÿÿ TESTBÿÿ ÿÿ PASS  ÿÿ PASSES COMPLdETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¾ö¢�ŸqÿopÂÈgN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ì1ÂÍ�‚‚\†ÇƒÊ\‚Â*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†´ƒ¹ ��‚¯„€‚­+ Ş«�fŸY‚¦‡©*€1ÁY ROW,A JST SWTB SWT BANK TSTIT JST RUNTS1 RUN A TEST IN BANK IMS IBCNT I.B.'S ? JMP AGNB NO COPY =0,A YES COPY A,IBN RESET I.B.# IMS ALTN1 COPY ALTN1,A  CSK A,NALT ALTN > NALT JMP NXTALT NO JMP DONE YES - DONE WITH ROW JMP NXTALT NO - GO TEST NEXT ALT AGNB IMS IBN JMP AAAAAA DO ANOTHER I.B. ************************************** * DONE TESTING A 4K TMOD IN THIS ROW * CHECK AND SEE IF ENTIRE ROW TESTED * DONE EQU $ COPY TBLPT,X COPY 0(X),A  SHIFT A,RO,2 HOW MANY 4K MOD'S IN ROW IMS MODSD ADD 1 TO MOD'S DONE CSK A,MODSD IS ROW COMPLET/ ED ? NOP JMP $+2 NOT YET RTN TSTBNK IMS TMOD COPY TMOD,A CSK A,EMOD JMP $+2 NO RTN TSTBNK YES JMP TSTBNK+1 NO SADD NOP ALTNB NOP NALT NOP CONFIG WORD 0 ARSAV NOP IBCNT NOP * TITL ***************************************** * DECIDE WHICH TEST TO RUN IN BANK * SET UP UNIQUE WRD FOR ALT'S BUT IF * UNIQUE WRD > :FFFF START OVER WITH :0000 * XREG UNCHANGED ******************************************** RUNTS1 ENT COPY X,XSAV SAV XREG COPY UATFLG,A WHICH TEST? JEQ A,PTST COPY SADD,X STRT ADDRESS COPY SPAT,A STRT PATTERN JST UAT CALL UNIQUE ADRESS TEST COPY SPAT,A STRT PATTERN ADD =:1000,A COPY A,SPAT . NXT STRTING PATTERN JMP RET PTST COPY SADD,X START ADDRESS JST PPT CALL PING PONG TEST RET COPY XSAV,X RESTORE XREG RTN RUNTS1 XSAV NOP LPOOL TITL ********************************************* * SWITCH BANK ROUTINE * ENTER - CONFIG = WRD TO GIVE CONTROLLER * AREG = ROW = FUNCT CODE FOR ROW SEL * USE SWTA ROUTINE FOR 8X8 MATRIX * USE SWTB ROUTINE FOR 4X16 MATRIX *********************************************** SWTA ENT ADD OUTA,A ADD FUNCT CODE FOR ROW SEL COPY A,$+2 SET UP OTA INSTR COPY CONFIG,A NOP RTN SWTA SWTB ENT SBIT 1,S SHIFT A,LO,1 CONV TO FUNCT CODE ADD SELP,A COPY A,$+2 COPY CONFIG,A NOP RTN SWTB * SELP WORD :04F0 OUTA WORD :02F0 BANK0 WORD :0001 * TITL ******************************************** * UNIQUE ADDRESS TEST * ENTER : XREG=SRT ADDRESS * AREG=SRT PATTERN * WRTFLG = 0 - READ FUNCT * WRTFLG = 1 - WRITE FUNCT * SKIP BASE PAGE INTERRUPT HANDLERS * EXIT : AFTER 4K MODULE DONE * ERROR - JST ERROR ROUT ************************************** UAT ENT COPY A,SAVAR JNE X,$+4 DOES THIS INCLUDE BASE PAGE COPY =:FF9,A NEG  A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP -4K COUNTER COPY WRTFLG,A JEQ A,READ ****WRITE UAT PATTERN**** COPY SAVAR,A STAGN SUB =:80,X JNE X,$+2 JMP YEP1 SUB =:88-:80,X JNE X,$+2 JMP YEP2 ADD =:88,X JMP RAPVAL-2 YEP1 ADD =:80+2,X SKIP 2 WRDS ADD =2,A JMP RAPVAL-2 YEP2 ADD =:88+5,X SKIP 5 WRDS ADD =5,A JMP  RAPVAL-2 COPY A,WRTPAT COPY INVALU,Q SET UP FOR MEM. WRITE READ TEST RAPVAL EQU $ SUB BPVALU,Q SET UP TO TEST DEFFERENT BIT PATERNS COPY Q,EXPV SAVE EXPECTED VAULE COPY Q,0(X) WRITE EXPECTED VAULE INTO MEM. CELL COPY 0(X),A READ VAULE OUT OF MEM. CELL CSN A,Q DOES ECPECTED VAULE = ACT. VAULE JNE Q,RAPVAL YES,HAS ALL PATERNS BEEN CHECKED CSN A,Q COMPARE MEMORY ONCE MORE JMP NOP1 MEMORY CELL GOOD CONTINUE JST EROUT MEMORY CELL BAD STORE ERROR JMP NOP1 CONTINUE TESTING MEMORY NOP1 EQU $ COPY FLAG0,A JNE A,RELWRT COPY =0,A JMP STAA RELWRT COPY WRTPAT,A0  STAA COPY A,0(X) COPY WRTPAT,A ADD =1,X NXT ADD ADD =1,A NEW PAT IMS WCNT  DONE 4K? JMP STAGN NO - STORE AREG AGAIN RTN UAT ****READ UAT PATTERN**** READ COPY SAVAR,A  COPY A,EXPV EXP VALUE RDAGN SUB =:80,X JNE X,$+2 JMP YEEP1 SUB =:88-:80,X JNE  X,$+2 JMP YEEP2 ADD =:88,X JMP NOOP1 YEEP1 ADD =:80+2,X SKIP 2 WRDS COPY EXPV,A  ADD =2,A COPY A,EXPV JMP NOOP1 YEEP2 ADD =:88+5,X SKIP 5 WRDS COPY EXPV,A ADD  =5,A COPY A,EXPV NOOP1 EQU $ COPY FLAG0,A JNE A,RELRD COPY =0,A COPY A,ZEROO COPY 0(X),A CSK A,ZEROO NOP JST EROUT JMP NOOP2 RELRD COPY 0(X),A CSK  A,EXPV ACT=EXP? NOP JST EROUT NO-ERROR NOOP2 EQU $ ADD =1,X YES - NXT ADDRESS  IMS EXPV NXT PAT NOP IMS WCNT DONE 4K YET? JMP RDAGN NO - READ AGAIN RTN  UAT * INVALU WORD 0100 BPVALU WORD 0101 ZEROO WORD 0 SAVAR NOP WRTPAT RES 1 WCNT NOP LPOOL TITL ************************************************** * PING PONG TEST * ENTER: XREG=START ADDRESS * EXIT: AFTER 4K MODULE TESTED * ERROR: JST ERROR ROUTINE * SKIP BASE PAGE INTERRUPT LOCATIONS PPT ENT JNE X,$+4 IS THIS BASE PAGE COPY  =:FF9,A NEG A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER COPY X,STRTS SAV STRT ADDRESS * * FILL MEMORY WITH FUNNY PATTERN * AGN1 SUB =:80,X JNE X,$+2 JMP SEP1 SUB =:88-:80,X JNE X,$+2 JMP SEP2 ADD =:88,X JMP SOP1 SEP1 ADD  =:80+2,X SKIP 2 WRDS JMP SOP1 SEP2 ADD =:88+5,X SKIP 5 WRDS SOP1 COPY X,A AND =:41,A JEQ A,BUMP-1 CLSN =:41,A JMP BUMP-1 COPY PAT2,A PAT2 JMP BUMP COPY PAT1,A PAT1 BUMP COPY A,0(X) STORE PAT ADD =1,X BUMP ADDRESS PTR IMS WCNT DONE WRITTING? JMP AGN1 NO - CONTINUE JMP PPR GO CHECK IT OUT STRTS NOP PAT1 WORD :55AA PAT2 WORD :AA55 * * READ BACK MEMORY TO CHECK LOCATIONS FOR * EXPECTED PATTERNS PPR EQU $ COPY STRTS,X GET BACK START ADDRESS  COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER AGN2 SUB =:80,X JNE X,$+2 JMP SEEP1 SUB =:88-:80,X JNE X,$+2 JMP SEEP2 ADD =:88,X JMP SOOP1 SEEP1 ADD  =:80+2,X SKIP 2 WRDS COPY WCNT,A ADD =4,A COPY A,WCNT JMP SOOP1 SEEP2 ADD =:88+5,X  SKIP 5 WRDS COPY WCNT,A ADD =:C,A COPY A,WCNT SOOP1 COPY X,A AND =:41,A JEQ A,CPAT1 PAT1 CLSN =:41,A JMP CPAT1 COPY 0(X),A PAT2 CSK A,PAT2 CONTENTS = PAT2 ? NOP JST ERR NO - ERROR JMP SWT YES - SWT TO NEXT MEM LOC CPAT1 COPY 0(X),A CSK1  A,PAT1 CONTENTS = PAT1 ? NOP JST1 JST ERR NO - ERROR SWT COPY WCNT,A SHIFT A,RO,1 IS IT AN EVEN COUNT? JF OV,$+2 YES - DON'T BUMP ADDRESS-JUST SWT SUB =1,X NO - BUMP ADDRESS COPY  X,A XOR =:FFF,A COPY A,X IMS WCNT DONE 4K ? JMP AGN2 NO - CONTINUE RTN PPT * ERR ENT COPY A,SAVAR SAV AREG COPY JST1+1,A XOR ERR,A WHICH PAT ? JEQ A,PAT1D COPY PAT2,A PAT2 JMP $+2 PAT1D COPY PAT1,A PAT1 COPY A,EXPV EXP VALUE COPY SAVAR,A ACT VALUE JST EROUT RTN ERR TITL ********************************************* * OUTPUT HEX ROUTINE * ENTER: AREG=BINARY VALUE TO CONVERT+OUTPUT * EXIT : XREG UNCHANGED * OHEX ENT COPY X,TX COPY =-4,X SET UP CNTER COPY X,NIBCNT NIBBLE COUNTER COPY A,X ROTATE X,LO,1 SET UP XREG OX1 ROTATE X,LO,4 GET A NIBBLE(STRT FROM L.) COPY X,A AND =:F,A SAVE A NIBBLE SUB =:A,A JLT  A,$+2 ADD =:7,A ADD =:3A,A JST OTT IMS NIBCNT DONE ALL 4 NIBS JMP OX1  NOPE - TAKE ANOTHER BIT COPY TX,X RESTORE XREG RTN OHEX * TX NOP NIBCNT WORD -4 LPOOL  TITL ********************************** * MESSAGES * SIGNON WORD :0D0A BYTE 'MOS MEMORY DIAGNOSTIC REV:'  WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYYY) ? ' WORD :FFFF BANKM WORD :0D0A BYTE 'BANKED (Y/N) ? ' WORD :FFFF P0M BYTE 'P0? ' WORD :0D0A WORD :FFFF TSTAM WORD :0D0A BYTE 'TESTA' WORD :FFFF TSTBM BYTE ' TESTB' WORD :FFFF CRLFM WORD :0D0A WORD :FFFF PASM WORD :0D0A BYTE 'PASS ' WORD :FFFF PASCM WORD  :0D0A BYTE 'PASSES COMPLETED ' WORD :FFFF PAREM BYTE ' PARITY ' WORD :FFFF TAM BYTE '  TESTA ' WORD :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM  BYTE ' IB# ' WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A WORD :0D0A BYTE 'POWER FAIL - STARTING OVER' WORD :0D0A  WORD :FFFF HALTM WORD :0D0A BYTE 'MUST LOAD ON 4K BOUNDARY' WORD :0D0A WORD :FFFF BUF1 RES 40,0 *** BANKING INFO INPUT BUFFER *** TBLE RES 50,0 *** MEMORY MAP TABLE **** END GO NOSTIC REV:'  WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYY2  TITL ***MOS MEMORY DIAGNOSTIC 93926-12A0*** ************************************************* * MOS MEMORY DIAGNOSTIC 93926-12A0 * * REV: EQU 'A0' REVISION LEVEL PEI EQU :8B PARITY ER ROUTINE ADDRESS PTR PFI EQU :81 POWER UP ROUTINE ADDRESS PTR **************** MACRO RTN ********************** MACRO RTN JMP *#1 ENDM ************************************************* * BASE PAGE INTERRUPT ROUTINES * **** POWER UP INTERRUPT ROUTINE *********  ABS :80 JMP *$+1 NOP **** PARITY ERROR INTERRUPT ROUTINE ***** ABS :88 JST $+1  NOP ADDRESS LEFT OFF AT BEFORE INT. JMP *$+1 NOP ADDRESS IN PROG TO SERVICE INT. **** POWER FAIL INTERRUPT ROUTINE ******** ABS :8C HLT TITL REL :0 RES :FF BEG WORD $-:FF ******************************************** * INIT ALL * GO COPY BEG,A AND =:FFF,A JEQ A,$+5 COPY =HALTM,X JST ASKQ HLT ****OPERATOR MUST RELOAD**** JMP GO COPY BEG,A OR =PER,A COPY A,PEI . INTO PAR ERR INT ROUT COPY BEG,A OR =PFR,A COPY A,PFI . INTO POW UP INT ROUT COPY BEG,A SHIFT A,RO,8 SHIFT A,RO,4 COPY A,PMOD CSK A,=7 JMP $+2 SBIT 6,S COPY =0,A RESET : COPY A,PARFLG COPY A,ERACNT COPY A,ERBCNT COPY A,PERCNT COPY =1,A COPY A,PASN COPY =SIGNON,X JST ASKQ SIGN ON JMP QROUT GO START QUERY * PARFLG NOP PERCNT NOP PASN WORD 1 ERACNT WORD 0 ERBCNT WORD 0 SPACE 1 ** POWER UP ROUTINE ** SPACE 1 PFR EQU $ COPY =PFM,X JST ASKQ "POWER FAIL" JMP GO  LPOOL TITL **************************************** * QUERY ROUTINE * QROUT EQU $ COPY =FULLM,X JST ASKQ JST IKB READ REPLY JST CHK CHK IF "Y" OR "N" JMP QROUT NEITHER COPY A,FULL SAVE Y OR N QAGN1 COPY =STRTM,X RANGE? JST ASKQ JST IHEX INPUT + CONV TO BIN JMP QQAGN CLSN ='^',A JMP QROUT CLSN =',',A MUST TERM WITH "," JMP $+2 YES - OK JMP QQAGN NOPE - ERROR COPY X,STRTA START ADDRESS JST IHEX JMP QQAGN CLSN  ='^',A JMP QROUT CLSN ='_',A JMP QAGN1 JEQ X,QQAGN VALID ? CLSN =:0D,A TERM CHAR ? JMP $+3 YES - OK QQAGN JST BAKER NO - ERROR JMP QAGN1 COPY X,A CSK  A,=:7FFF JMP $+2 SBIT 6,S TURN ON XA BIT COPY X,FINISH END ADDRESS QAGN3 COPY =BANKM,X BANKED? JST ASKQ JST IKB JST CHK JMP QAGN3 CLSN ='^',A JMP QAGN1  COPY A,BNKFLG CLSN ='Y',A BANKED? JMP BANKQ YES JMP SETMOD NO SPACE 1 ** ERROR ON INPUT - OUTPUT "_" ** SPACE 1 BAKER ENT COPY =ARROW,X JST ASKQ RTN BAKER * FULL NOP3  LPOOL TITL * ASKQ - OUTPUT MESSAGES ASKQ ENT COPY 0(X),A CLSN =:FF,A END OF MESS RTN ASKQ YES SHIFT A,RO,8 JST OTT OUTPUT 0 BYTE COPY 0(X),A JST OTT OUTPUT 1 BYTE ADD =1,X BUMP ADD PTR JMP ASKQ+1 LPOOL * CHK-- MUST BE "Y" "N" "^" "_" OTHERWISE ERROR CHK  ENT CLSN ='Y',A JMP RETN YES CLSN ='N',A JMP RETN YES CLSN ='^',A  JMP RETN YES CLSN ='_',A JMP INPUT2 YES RETN2 JST BAKER NONE OF THE ABOVE RTN  CHK RETN COPY A,AS SAV AREG JST IKB READ TERM CHAR CLSN =:0D,A TERM CHAR ? JMP  RETN1 YES JMP RETN2 NO INPUT2 JST IKB READ ANOTHER REPLY JMP CHK+1 WHAT IS IT RETN1 COPY AS,A GET CHAR BACK IMS CHK RTN CHK AS NOP ************************************************* * INPUT FULL LINE OF RESPONSE TO BUF1 * RETURN IKL+1 OR BQ (ASK QUEST AGAIN) * SKIP _ CHAR + START QUERY OVER IF _CR FOUND * IKL ENT COPY *IKL,X IMS IKL IK1 JST IKB GET CHAR CLSN ='_',A JMP ER1 CLSN ='^',A JMP QAGN3 SHIFT A,LO,8 COPY A,0(X) SHIFT A,RO,8 CLSN =:0D,A CR ?  RTN IKL YES IK2 JST IKB CLSN ='_',A JMP ER2 CLSN ='^',A JMP QAGN3 OR 0(X),A COPY A,0(X) CLSN =:0D,A RTN IKL ADD =1,X JMP IK1 ER1 SUB =1,X COPY 0(X),A AND =:FF00,A COPY A,0(X) JST IKB CLSN =:0D,A WANT TO DELETE LINE ? JMP BQ YES - ASK AGAIN JMP IK2+1 NO - CONTINUE ER2 JST IKB CLSN =:0D,A JMP BQ  JMP IK1+1 LPOOL ************************************************** * READ BUF ROUTINE * READ CHARS IN BUF AND CONVERTS TO BIN * UNTIL A NON-DEC VALUE FOUND (TERM CHAR) * EXIT AR=TERM CHAR XR=VALUE * IF XR=0 ONLY A TERM CHAR INPUTTED * BUFPTR POINTS TO CHAR FOLLOWING TERM CHAR * IDEC ENT COPY =0,A COPY A,V J3 SBIT 2,S  COPYB *BUFPTR,A GET A CHAR RBIT 2,S IMS BUFPTR BUMP BUF1 PTR COPY A,T SAV CHAR SUB =:3A,A JGE A,J2 NO ADD =:A,A JLT A,J2 NO EXCH V,A YES - GET VAL  SHIFT A,LO,1 COPY A,T SHIFT A,LO,2 ADD T,A ADD V,A ADD DIGIT COPY A,V  NEW VALUE JMP J3 J2 COPY V,X COPY T,A TERM CHAR RTN IDEC * V NOP T NOP BUFPTR NOP ************************************************* * INPUT HEX ROUTINE * TERM WHEN NON HEX DIGIT FOUND * EXIT XR=BIN VAL AR=TERM CHAR * IF XR=0 TERM CHAR ONLY INPUT * IF _ FOUND OR MORE THAN 5 CHAR INPUT * RETURN IHEX; OTHERWISE RETURN IHEX+1 * IHEX ENT COPY =-6,A COPY A,DCNT COPY =0,A COPY A,V I2 JST IKB GET CHAR IMS DCNT JMP $+2 RTN IHEX STRT QUERY AGAIN CLSN ='_',A DID HE GOOF 4  RTN IHEX YES COPY A,T SAV CHAR SUB =:3A,A JGE A,IH4 MAYBE ADD =:A,A  JGE A,IH5 YES I3 COPY V,X GET VALUE COPY T,A GET TERM CHAR IMS IHEX RTN  IHEX IH4 SUB =:D,A TEST IF HEX JGE A,I3 NO ADD =6,A JLT A,I3 NO ADD =:A,A IH5 EXCH V,A YES GET VAL SHIFT A,LO,4 X 16 ADD V,A ADD DIGIT COPY A,V JMP I2 DCNT WORD 0 ************************************************* * IKB - INPUT A CHAR FROM TTY INTO AREG * IKB ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S  COPY =:100,X COPY =:8618,A XNX Q OUT A,1 XNX Q IN 1,A SHIFT A,RO,4  JF OV,$-3 XNX Q IN 0,A XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY Y,X RTN IKB SAVES WORD 0 DIOTY WORD :F0+:8 ************************************************* * OTT---OUTPUT A CHARACTER FROM A REG * OTT ENT COPY DIOTY,Q COPY X,Y SAVE X COPY S,X COPY X,SAVES RBIT 8,S COPY =:8612,X XNX Q OUT X,1 XNX Q OUT A,0  COPY =:100,X XNX Q IN 1,A SHIFT A,RO,5 JT OV,$-3 XNX Q IN 1,A  SHIFT A,RO,5 JF OV,$-3 XNX Q OUT X,1 COPY SAVES,X COPY X,S COPY  Y,X RTN OTT LPOOL TITL ************************************************* * BANK QUERY ROUTINE * BUILD A MEM TABLE AS FOLLOWS * 1ST WRD = PRI MEMORY SIZE * 2ND WRD = # ALT'S / # ALT'S INT.BANK * 3RD WRD = ALT # / # INT.BANKS * 4TH WRD = SAME AS 3RD * ETC * INPUT EXAMPLE: 8,8(4),8,8(8) * 8K PRI SIZE, 3 ALT'S, 2 ALT'S I.B. * ALT1 HAS 4 I.B. ALT3 HAS 8 I.B. * BANKQ EQU $ COPY =0,A RESET : COPY A,NPRI # PRI MOD COPY A,MALT MAX #ALT PER 1 ROW COPY A,MEMSZE MEM SIZE COPY =TBLE,X COPY X,TBLPTR COPY PFILL,A  COPY A,P0M BQ EQU $ COPY =BUF1,X SHIFT X,LO,1 CONVERT TO BYTE ADD COPY X,BUFPTR RESTORE REAL TIME BYTE ADD COPY =0,A RESET : COPY A,PRISZE PRI SIZE COPY A,ALTN ALT # COPY A,NIB # INT BANK COPY A,NAIB # ALT'S INT BANKED COPY DYN1,A COPY A,DYNIN1 STA 1(X)  COPY =CRLFM,X JST ASKQ COPY =P0M,X JST ASKQ "P0?" JST IKL READ LINE OF INPUT INTO BUF1 WORD BUF1 BUF1 ADDRESS JST IDEC CLSN ='#',A OPERATOR DONE? JMP TSTPAR YES COPY A,ASAV COPY X,A SUB =4,A PRI SIZE LESS THAN 4K? JGE A,$+2 NO - IF POS  JMP BQ YES - ERROR COPY X,*TBLPTR STORE IN TABLE COPY X,PRISZE SAV IT COPY ASAV,A NXTCHR CLSN =',',A COMMA FOLLOWS? JMP C YES - PROCESS ALT'S CLSN ='(',A INT. BANKED? JMP 5  PIB YES - PROCESS I.B. CLSN =:0D,A END OF P0? INPUT? JMP $+2 YES JMP BQ NONE OF ABOVE - ERROR JMP E GO TO END INPUT ROUT PFILL BYTE 'P0' DYN1 WORD :8481 LPOOL ************************************************* * PROCESS THE ALT'S ENTER: AREG=, * C EQU $ JST IDEC GET ALT SIZE CLSN =0,X JMP BQ COPY A,ASAV COPY X,A CSK A,PRISZE ALT = PRI SIZE NOP  JMP BQ NO ERR IMS ALTN COPY ALTN,A SUB =15,A ALT # > 15 JLE A,$+2  NO - OK JMP BQ YES - ERROR COPY ASAV,A GET TERM CHAR BACK JMP NXTCHR * * PROCESS INTERNAL BANKS * XREG=PRI SIZE AREG=( PIB EQU $ JST IDEC INPUT # I.B. CLSN =0,X JMP BQ  CLSN =')',A BETTER BE JMP $+2 JMP BQ NOPE COPY X,A SUB =8,A NIB>8?  JLE A,$+2 NO JMP BQ YES - ERROR IMS NAIB IMS DYNIN1 COPY X,NIB COPY ALTN,A SHIFT A,LO,8 XOR NIB,A COPY TBLPTR,X DYNIN1 COPY A,1(X) JST IDEC GET NXT PUNCT. JMP NXTCHR GO CHK IT OUT ASAV NOP * * END OF INPUT ON ONE LINE * E EQU $ COPY TBLPTR,X COPY 0(X),A GET PRISZE ADD MEMSZE,A . AND ADD TOTAL MEM SIZE SUB =32,A MORE THAN 32K  JLE A,$+2 NO JMP BANKQ TURKEY CAN'T COUNT - ERROR ADD =32,A BANK TO TOTAL SZE COPY A,MEMSZE SAV IT COPY ALTN,A MAX ALT'S IN THIS ROW CSK A,MALT IS IT THE GREATEST? JMP $+2 NO COPY A,MALT YES REPLACE OLD MALT IMS NPRI BUMP PRI # (0-X) COPY ALTN,A # ALT'S  SHIFT A,LO,8 XOR NAIB,A # ALT'S I.B. COPY A,1(X) STORE #ALT'S/#ALT'S I.B. IN TBLE COPY X,A ADD NAIB,A ADD =2,A COPY A,TBLPTR RESET TBLPTR FOR NXT ROW IMS P0M JMP BQ * TBLPTR NOP STRTA NOP FINISH NOP NPRI NOP MALT NOP MEMSZE NOP PRISZE NOP ALTN NOP NIB NOP NAIB NOP ************************************************* * TEST PARAMETERS INPUT FROM BANK QUERY * TSTPAR EQU $ COPY NPRI,A MUST HAVE AT LEAST CLSN =1,A . 2 TO RELOC JMP BANKQ DIDN'T COPY FINISH,A ADD =1,A  SHIFT A,RO,8 SHIFT A,RO,2 SUB MEMSZE,A JLE A,$+2 JMP QROUT COPY =0,A RESET: COPY A,MATFLG COPY NPRI,A NEG A,A COPY A,PRICNT SET UP COUNTER COPY NPRI,A  SUB =4,A 8X8 OR 4X16 MATRIX ? JLE A,$+2 STILL DON'T KNOW JMP M8X8 8X8 MATRIX COPY MALT,A MAX ALT IN 1 ROW SUB =7,A 8X8 OR 4X16 MATRIX ? JGT A,$+2 4X16 MATRIX JMP M8X8 8X8 MATRIX * * 4X16 MATRIX LOGIC * COPY TBLPTR,X P1 COPY 1(X),A AND =:FF,A GET #ALT'S I.B.  COPY A,ASAV JEQ A,NOIB1 NO INT.BANKS COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =16 2,A > 12 ? JLE A,NXT1 NO - OK JMP ER YES - ERROR NOIB1 COPY 1(X),A SHIFT A,RO,8 GET #ALTS SUB =15,A > 15 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT1 COPY X,A  TBLE PTR TO A REG ADD ASAV,A # ALT'S INT.BANKED ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS? JMP P1 NO - LOOK AT NXT ROW JMP SETMOD YES - GO SET UP MOD #'S * * 8X8 MATRIX LOGIC * M8X8 IMS MATFLG COPY TBLPTR,X P2 COPY 1(X),A AND =:FF,A GET ALT' I.B. COPY A,ASAV JEQ A,NOIB2 NO I.B. COPY 1(X),A SHIFT A,RO,8 GET # ALT'S  SUB =4,A > 4? JLE A,NXT2 NO - OK JMP ER YES - ERROR NOIB2 COPY 1(X),A SHIFT A,RO,8 GET # ALT'S SUB =7,A > 7 ? JLE A,$+2 NO - OK JMP ER YES - ERROR NXT2 COPY X,A TBLE PTR TO AREG ADD ASAV,A #ALT'S I.B. ADD =2,A COPY A,X REPOSITIONED TBLE PTR TO XREG IMS PRICNT DONE ALL ROWS ? JMP P2 NO - LOOK AT NEXT ROW COPY =1,A YES - COPY A,PASN INITIAL PASS # JMP SETMOD GO SETUP MOD #'S PRICNT NOP * TITL ****SORRY CHARLIE - YOU LOSE**** SPACE 1 ER EQU $ JMP QROUT DO IT AGAIN LPOOL SPACE 2 ******************************************** * EACH PASS AFTER FIRST STARTS HERE * ******************************************** * SET UP MODULE #'S * CONV : STRTA- SMOD/SROW * PROGA - PMOD/PROW * FINISH - EMOD/EROW SETMOD EQU $ COPY =TBLE,A COPY A,TBLPTR COPY STRTA,A START ADD OF TEST AND =:F000,A CONV TO MOD# SHIFT A,RO,8  SHIFT A,RO,4 COPY A,SMOD COPY FINISH,A END ADD OF TST AND =:F000,A SHIFT A,RO,8  SHIFT A,RO,4 CONV TO MOD# COPY A,EMOD * TITL ***************************************** * FIGURE OUT WHERE TO START TESTING * TMOD/TROW=TEST MOD/ROW * COPY BNKFLG,X CLSN ='Y',X JMP BKREL COPY PMOD,A CSK A,SMOD PMODEROW JMP QAGN1 NO2A CSK A,SROW SROW>PROW? JMP NOR1 YES JMP QAGN1 NOR1 COPY SROW,A COPY A,TROW JMP EXECT MATFLG WORD 0 LPOOL TITL ************************************************* * MODCON - CONVERTS MOD# TO 7 ROW# * ENTER: AREG=MOD# EXIT: AREG=ROW# * MODCON ENT COPY A,MODS COPY =0,A COPY A,ROWX COPY  A,MEMTOT COPY TBLPTR,X COPY X,STBLP SAV IT TO UPDATE LOPA COPY 0(X),A ADD MEMTOT,A COPY A,MEMTOT SHIFT A,RO,2 DIVIDE BY 4 CSK A,MODS IS MOD IN ROW JMP AGN NO JMP NROW+1 YES- IT'S IN THIS ROW JMP NROW NO IT'S IN NXT ROW AGN COPY 1(X),A AND =:FF,A GET #ALT' I.B. ADD =2,A ADD STBLP,A GET NEW TBLE PTR COPY A,STBLP KEEP IT COPY A,X REPOSITION TBLE PTR TO NXT ROW IMS ROWX JMP LOPA LOOK IN NXT ROW NROW IMS ROWX COPY ROWX,A  RTN MODCON STBLP NOP MEMTOT NOP MODS NOP SROW NOP SMOD NOP ROWX NOP TITL ********************************************************* * EXECUTIVE SUITE : SET UP WHICH TEST TO RUN * : CALL TESTS * : ERRORS - JST ROUT * : START WITH UAT ********************************************************** EXECT EQU $  SBIT 8,S ENABLE INTERRUPTS COPY PASN,A SELP A,4 TELL USER VIA C REG COPY =0,A RESET : COPY A,SPAT COPY A,FLAG0 COPY A,UATFLG UA TEST FLG IMS UATFLG SET IT COPY A,WRTFLG WRITE FLG IMS WRTFLG SET IT COPY TMOD,A GET TMOD COPY A,SAVMOD SAVE FIRST TMOD  COPY TROW,A COPY A,STROW SAVE FIRST TROW SPAT NOP *************************************** * RUNTST IS ENTERED EACH TIME A TEST IS RUN * UAT READ OR WRITE OR PPT *************************************** RUNTST EQU $ COPY  BNKFLG,A CLSN ='Y',A BANKED? JMP BKED YES COPY TMOD,A COPY A,X SHIFT X,LO,8 SHIFT X,LO,4 XREG=STRT ADDRESS COPY UATFLG,A WHICH TEST SHOULD WE RUN ? JEQ A,TTB COPY  X,A AREG=STRT PAT JST UAT ****UNIQUE ADDRESS TEST**** JMP $+2 TTB JST PPT ****PING PONG TEST**** COPY TMOD,A CSK A,EMOD LAST MOD? NOP JMP $+2 NO - KEEP ON TESTING  JMP WATNOW YES - SEE WHAT'S NEXT IMS TMOD NXT TMOD SET UP JMP RUNTST BKED EQU $ COPY TROW,A AREG=TROW COPY MATFLG,X XREG=MATRIX FLAG JST ROWIN SET UP TBLPTR FOR TSTBNK ROUT * RETURN AREG=TMOD, ROW=TEST ROW CMS1 CSK A,SMOD IS THIS THE RIGHT MOD IN ROW? JMP $+3 TMOD NALT JMP NXTALT NO - DO NXT ALT JMP DONE YES - DONE THIS ROW JMP NXTALT NO - DO NXT ALT *************************** * ALT HAS INTERNAL BANKS * YIB EQU ; $ IMS DYNIN2 SET UP FOR NXT I.B. ALT COPY ARSAV,A AND =:FF,A GET # I.B. NEG A,A  COPY A,IBCNT SET UP COUNTER JST SETUP * WHICH MATRIX 8X8 OR 4X16 ? AAAAAA COPY MATFLA,A WHICH MATRIX 8X8 OR 4X16 ? JEQ A,M4X16 A=0 - 4X16 COPY IBN,A JEQ A,$+5 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTA SWT BANK JMP TSTIT M4X16 COPY IBN,A JEQ A,$+6 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,8 SHIFT A,LO,3 ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COP =TSTAM,X JST ASKQ COPY ERACNT,A JST ODEC COPY =TSTBM,X JST ASKQ COPY  ERBCNT,A JST ODEC COPY =PAREM,X JST ASKQ COPY PERCNT,A JST ODEC RTN OUTER LPOOL TITL *************************************** * ERROR ROUTINE * ENTER - XREG=LOC AREG=ACT CONTENTS *  EXPV=EXP CONTENTS * ALTN=ALT # (0=PRI,1=ALT1,ETC) * IBN=I.B. # (0-7) * EXIT - *** XREG UNCHANGED**** * EROUT ENT COPY X,LOC COPY A,ACT COPY FULL,A CLSN ='N',A FULL REPORT? JMP NO5 NO - SKIP REPORT COPY =PASM,X JST ASKQ COPY PASN,A JST ODEC PASS # COPY UATFLG,A WHICH TEST? JEQ A,TB COPY =TAM,X JST ASKQ JMP $+3 TB COPY =TBM,X  JST ASKQ COPY BNKFLG,A CLSN ='N',A SYS BANKED? JMP NB NO COPY =ALTM,X  JST ASKQ COPY ALTN1,A JST ODEC COPY =IBM,X JST ASKQ COPY IBN,A JST  ODEC JMP NB LPOOL ******************************* * NOT BANKED * NB COPY PARFLG,A WAS IT A PARITY ERR JEQ A,NP NO COPY =PARM,X JST ASKQ COPY PCNTR,A JST OHEX NP COPY =LOCM,X JST ASKQ COPY LOC,A JST OHEX COPY =ACTM,X JST ASKQ COPY ACT,A  JST OHEX COPY =EXPM,X JST ASKQ COPY EXPV,A JST OHEX COPY LOC,X ***RESTORE XREG*** RTN EROUT NO5 EQU $ COPY PARFLG,A WAS THIS A PARITY ER? JEQ A,$+5 NO IMS PERCNT YES NOP COPY LOC,X *** RESTORE XREG *** RTN EROUT COPY UATFLG,A WHICH TEST HAD ERROR? JEQ A,TBC IMS ERACNT BUMP TESTA ER CNT NOP JMP $+2 TBC IMS ERBCNT  BUMP TESTB ER CNT NOP COPY LOC,X ***RESTORE XREG*** RTN EROUT ACT NOP LOC NOP EXPV NOP ALTN1 NOP IBN NOP LPOOL TITL ************************************ * OUTPUT DECIMAL VALUE ROUTINE * ENTER: AREG=BIN VALUE EXIT: DEC TO TTY * ODEC ENT COPY A,V2 SAVE THE VALUE COPY STRT,A COPY A,PTR  COPY =-5,A COPY A,T2 SET FOR 5 DIGITS O1 COPY V2,A GET VALUE COPY =:AF,X 0 TO -1 < SUB *PTR,A ADD =1,X JGE A,$-2 ADD *PTR,A COPY A,V2 COPY X,A JST OTT IMS PTR IMS T2 JMP O1 LOOP RTN ODEC T2 NOP V2 NOP STRT WORD TBL TBL  WORD 10000,1000,100,10,1 PTR NOP LPOOL TITL *************************************** * ROWIN ROUTINE - BANKING ONLY * ENTER - AREG = TROW * - XREG = MATFLG * EXIT - TBLPTR POINTS TO CORRECT ROW IN TBLE * - AREG=TMOD = FIRST TEST 4K MOD IN TROW * - ROW = ROW (0-7) WE'RE TESTING * ROWIN ENT COPY X,MATFLA COPY A,ROWS SAV TROW COPY =TBLE,A COPY A,TBLPT COPY =0,A RESET : COPY A,MEMT MEM TOTAL COPY A,ROW ROW # COPY A,MODSD MODULES DONE LOP COPY TBLPT,X COPY 0(X),A ADD MEMT,A COPY A,MEMT SHIFT A,RO,2 DIVIDE BY 4 = BEGIN TMOD OF NXT ROW COPY A,TMNR TEST MOD NXT ROW COPY  1(X),A AND =:FF,A ADD =2,A ADD TBLPT,A BUMP TBLE PTR TO NXT ROW COPY A,TBLPT . AND RESET TBLPTR IMS ROW COPY ROW,A CSK A,ROWS IS TBLE PTR SET UP JMP LOP NO JMP ZERO1 NO-BUT THIS MUST BE R0W0!!! COPY TMNR,A YES TBLE PTR SETUP COPY A,TMOD RTN ROWIN ZERO1 EQU $ COPY =TBLE,A COPY A,TBLPT COPY =0,A ROW0 IS TROW COPY A,ROW ROW0  COPY A,TMOD RTN ROWIN * TBLPT NOP ROW WORD 0 ROWS NOP TMNR NOP MATFLA NOP MEMT NOP * LPOOL  TITL ******************************************* * TEST BANKS ROUTINE - BANKING ONLY * THIS ROUTINE WILL RUN TESTS A OR B IN A 4K * MODULE THROUGH PRIMARY AND ALL IT'S BANKS. * THEN IF MORE 4K MODULES ARE IN ROW IT WILL * GET REPEATED FOR THEM UNTIL ROW IS COMPLETED * OR TEST MOD DONE EQUALS END MOD (SPEC. IN RANGE) * BANK SWITCHING LOGIC IS INCLUDED IN THIS ROUTINE. * ENTER: AREG = TMOD * TSTBNK ENT SHIFT A,LO,8 SHIFT A,LO,4 COPY A,SADD STRT ADDRESS COPY =0,A RESET: COPY A,ALTNB ALT # BIT COPY A,CONFIG BNK CONTRL WRD COPY A,ALTN1 ALT# COPY  A,IBN I.B.# COPY A,NALT #ALT'S COPY A,IBCNT I.B. CNTER COPY DYN2,A COPY A,DYNIN2  LDA 2(X) COPY TBLPT,X COPY 1(X),A AND =:FF00,A SHIFT A,RO,8 COPY A,NALT SAV # ALT'S NXTALT COPY TBLPT,X COPY 1(X),A AND =:FF,A JEQ A,NOIB JUMP IF NONE DYNIN2 COPY 2(X),A  OTHERWISE PROCESS THEM COPY A,ARSAV SAV IT AND =:FF00,A SHIFT A,RO,8 CSK A,ALTN1 IS THIS ALTN I.B.? NOP JMP NOIB NO - ALT HAS NO I.B.'S JMP YIB YES-ALT HAS I.B.'S DYN2 WORD :8082 ****************************************** * SET UP CONFIG WORD FOR BANKING CONTROLLER * SETUP ENT COPY ALTNB,A PRI MOD ? JEQ A,SKP1 YES CONFIG WRD OK SHIFT A,LO,1 COPY A,ALTNB XOR BANK0,A  COPY A,CONFIG JMP $+2 SKP1 IMS ALTNB SET UP FOR ALT1 RTN SETUP * * ALT NOT INTERNALLY BANKED=  * NOIB EQU $ JST SETUP SET UP CONFIG WRD COPY MATFLA,A WHICH MATRIX 8X8 OR 4X16 JEQ A,$+4 IF 0 - 4X16 COPY ROW,A JST SWTA SWT BANK FOR 8X8 MATRIX JMP $+3 COPY ROW,A  JST SWTB SWT BANK FOR 4X16 MATRIX JST RUNTS1 GO RUN TEST IMS ALTN1 COPY ALTN1,A  CSK A,NALT ALTN > NALT JMP NXTALT NO - DO NXT ALT JMP DONE YES - DONE THIS ROW JMP  NXTALT NO - DO NXT ALT *************************** * ALT HAS INTERNAL BANKS * YIB EQU $ IMS DYNIN2 SET UP FOR NXT I.B. ALT COPY ARSAV,A AND =:FF,A GET # I.B. NEG A,A COPY A,IBCNT SET UP COUNTER JST SETUP * WHICH MATRIX 8X8 OR 4X16 ? AAAAAA COPY MATFLA,A WHICH MATRIX 8X8 OR 4X16 ? JEQ A,M4X16  A=0 - 4X16 COPY IBN,A JEQ A,$+5 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,3  ADD CONFIG,A SET UP CONFIG FOR IB COPY A,CONFIG COPY ROW,A JST SWTA SWT BANK JMP TSTIT M4X16 COPY IBN,A JEQ A,$+6 I.B. 0 ? COPY 0(X),A GET BANK SIZE SHIFT A,LO,8 O0SEGMENTBLANK o[ii€Ÿ€ˆ¾€Ÿ€Œ iÿ ‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š †† †…¢’¾Ñ�“¢‹¾É�Znÿòó‹#�Â>á ¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^ �t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿� ¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|î]jÏ¢ÿ£v#ø[  €€ ÿŸ|y¿„€€¿‚+�w  Y�ˆ N�† ^�„ _�‡¾YŸu†‰ ¾è �ƒ�y¾ä�o‚‚ŞlŸk £~ Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€ –‰„€¾Â �ı�n¾¾  �ù�`ÿ  †”%ƒ”'Ş’†� ÆJ È ’І‰ЇЅ†„�o¢‚‚‚Ÿi  ú†› †x¾™Ş—��Ÿw _ Ÿu†r ÆF I¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •`  0¦‘‡¢«‚«C C 96¼C  C "¢ƒ0 `Ÿjø Â}`  0¦y‡¢•C "C ¢�C I 6‚dÊ †a†˜ †5 ‚\†�‚u†��1 †�‚�›�‚R†… ‚k††�'  € †¤ƒ”Áƒ“Áƒ’Á��¾’ Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ò!"ø  ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv †�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰nx`– ‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸr„‰¡  ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C ¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œlk‘¨¯¶¼ ƒ> ?D¢¥¿9‚7¿£¢£¿5 ‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸC ƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4Ò&ÂÆÌÇ!"  †’‚’†—û†�‚�)¯�’+=‹� †‡ ¿�ދނ�tŸm�'èd   ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š› †š†–€�ÿ Š�†�Ş�‚�º��q �ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ã)  q1†é †è†é†&†&†å†ç‚’ †‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù –ëyº�Œ�š€‚ ‚ÍE†Ê šú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H ¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ †µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç �‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş� �ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢ €€ß»��Ÿßƒ»���Ÿ � ¦�ƒ’G¢u ƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÉ  Š�†�‚]Ÿz  Š„†�‚UŸxğğ †Ü1à ‚İ�‚‚\†×ƒÚg‚Ò*€1Á�… *ø1Á�…+ˆ�†+‚ �ƒ+� �€†Ä ¿οÇÄÄ€€€@ Qº@ �‚¿¾�€ƒ¾  ��‚´„€‚²+ ް�[ŸN‚« ‡®*€1Á�…*ø1Á�‡+ˆ�‰+‚ƒ¤  ‡¢�„+�ƒŸ ‡�ƒŸÊ Ù‡˜†’ €€º�¿”Ç’�„€€»�¿�+ß‹އ�ZŸ%ÀùmÈ�  1Âu�‚‚ë†o¦˜ *€1Á�…*ø1Á�„+ˆ�ƒ+‚��+�  AD A�‚‚‰��‚†„€+ŞX�i�ƒ UªªU¢|‚ˆO*€1Á�…*ø1Á �‡+ˆ�‰+‚‚E †C�„+�‚@ †> AG A�…€€ºc¾��„€€º] ¾Š‚/ 6Á*ÿ š¥ Ş(�XŸ/  †"‚sš|B‚L��‚I‡‚¿Ÿt  ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�Ÿnÿüÿ MOS MEMORY DIAGNOSTI C REV: A3 93926-0 1 LSI-4 ÿÿ_ ÿÿ FULL R EPORT (Y/N) ? ÿÿ RANG E (XXXX,YYYY) ? ÿÿ BANK ED (Y/N) ? ÿÿP0? ÿÿ  TESTA ÿÿ TESTBÿÿ ÿÿ PASS ÿÿ PASSES COMPL ETED ÿÿ PARITY ÿÿ  TESTA ÿÿ TESTB  ÿÿ ALT ÿÿ IB#  ÿÿ LOC ÿÿ ACT ÿÿ  EXP ÿÿ PARITY ER  P COUNTER = ÿÿ POWE R FAIL - STARTING OVER  ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2 BYTE ' TESTA ' WORD :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM BYTE ' IB# ' WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A O0SEGMENTBLANK oX€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿïó‹#�Â;Ş1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|îZgÏ¢ÿ£s#øX  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dÊ †a†˜ †5‚\†�‚u†��1 †�‚�›�‚R†…‚k††�' € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ò!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰nx`“‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸr�†� ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œlk�¥¬³¹,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4Ï#¿ÃÉÇ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ã&… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÆN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ù1ÂÚ�‚‚\†Ôƒ×g‚Ï*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Á¼μÇÁÄ€€€@ Qº@ �‚¿»�€ƒ» ��‚±„€‚¯+ Ş­�[ŸN‚¨‡«*€1Á�…*ø1Á#�‡+ˆ�‰+‚ƒ¡ ‡Ÿ�„+�ƒœ ‡šƒœÇ †‘€€º�¿“�„€€»�¿�+ߋއ�]Ÿ(de½ùmÈ�v 1Âu�‚‚ë†o¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+ŞX�i�ƒUªªU¢|‚ˆO*€1Á�…*ø1Á�‡+ˆ�‰+‚‚E †C�„+�‚@ †> AG A�…€€ºc¾��„€€º]¾Š‚/ 6Á*ÿ š¥ Ş(�XŸ/ †"‚sš|B‚L��‚I‡‚¿Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�ŸnÿüÿR MOS MEMORY DIAGNOSTIC REV: A0 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0? ÿÿ TESTA ÿÿ TESTBÿÿr ÿÿ PASS ÿÿ PASSES COMPLETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2 Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÆN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ù1ÂÚ�‚‚\†Ôƒ×g‚Ï*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Á¼μÇÁÄ€€€@ Qº@ �‚¿»�€ƒ» ��‚±„€O0SEGMENTBLANK oI€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿàô‹#�Ã,Ï1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|îKXÏ¢ÿ£d#øI  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dË †a†™ †5‚\†�‚u†‘�1 †�‚�›�‚Q†…‚j†† �& € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ó!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰ny`„‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸrrw� ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œml–�¤ª,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4À°´ºÈ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ä… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¾ö¢�ŸqÿopÂÈgN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ì1ÂÍ�‚‚\†ÇƒÊ\‚Â*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†´ƒ¹ ��‚¯„€‚­+ Ş«�fŸY‚¦‡©*€1Á�…*ø1Á�‡+ˆ�‰+‚ƒŸ ‡��„+�ƒš ‡˜ƒšÇ †�€€º�¿‘�„€€»�¿Œ+߉ޅ�]Ÿ3±ùn É�s 1Âx�‚‚†r¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+Ş[�i�ƒUªªU¢|‚ˆR*€1Á�…*ø1Á�‡+ˆ�‰+‚‚H †F�„+�‚C †A AG A�…€€ºc¾��„€€º]¾Š‚2 6Á*ÿ š¥ Ş+�XŸ/ †%‚sš|B‚L��‚I‡"‚¿!Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�Ÿnÿüÿ` MOS MEMORY DIAGNOSTIC REV: A0 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0? ÿÿ TESTA ÿÿ TESTBÿÿ ÿÿ PASS  ÿÿ PASSES COMPLdETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(2€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¾ö¢�ŸqÿopÂÈgN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ì1ÂÍ�‚‚\†ÇƒÊ\‚Â*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†´ƒ¹ ��‚¯„€‚­+ Ş«�fŸY‚¦‡©*€1ÁY ROW,A JST SWTB SWT BANK TSTIT JST RUNTS1 RUN A TEST IN BANK IMS IBCNT I.B.'S ? JMP AGNB NO COPY =0,A YES COPY A,IBN RESET I.B.# IMS ALTN1 COPY ALTN1,A  CSK A,NALT ALTN > NALT JMP NXTALT NO JMP DONE YES - DONE WITH ROW JMP NXTALT NO - GO TEST NEXT ALT AGNB IMS IBN JMP AAAAAA DO ANOTHER I.B. ************************************** * DONE TESTING A 4K TMOD IN THIS ROW * CHECK AND SEE IF ENTIRE ROW TESTED * DONE EQU $ COPY TBLPT,X COPY 0(X),A  SHIFT A,RO,2 HOW MANY 4K MOD'S IN ROW IMS MODSD ADD 1 TO MOD'S DONE CSK A,MODSD IS ROW COMPLETA ED ? NOP JMP $+2 NOT YET RTN TSTBNK IMS TMOD COPY TMOD,A CSK A,EMOD JMP $+2 NO RTN TSTBNK YES JMP TSTBNK+1 NO SADD NOP ALTNB NOP NALT NOP CONFIG WORD 0 ARSAV NOP IBCNT NOP * TITL ***************************************** * DECIDE WHICH TEST TO RUN IN BANK * SET UP UNIQUE WRD FOR ALT'S BUT IF * UNIQUE WRD > :FFFF START OVER WITH :0000 * XREG UNCHANGED ******************************************** RUNTS1 ENT COPY X,XSAV SAV XREG COPY UATFLG,A WHICH TEST? JEQ A,PTST COPY SADD,X STRT ADDRESS COPY SPAT,A STRT PATTERN JST UAT CALL UNIQUE ADRESS TEST COPY SPAT,A STRT PATTERN ADD =:1000,A COPY A,SPAT . NXT STRTING PATTERN JMP RET PTST COPY SADD,X START ADDRESS JST PPT CALL PING PONG TEST RET COPY XSAV,X RESTORE XREG RTN RUNTS1 XSAV NOP LPOOL TITL ********************************************* * SWITCH BANK ROUTINE * ENTER - CONFIG = WRD TO GIVE CONTROLLER * AREG = ROW = FUNCT CODE FOR ROW SEL * USE SWTA ROUTINE FOR 8X8 MATRIX * USE SWTB ROUTINE FOR 4X16 MATRIX *********************************************** SWTA ENT ADD OUTA,A ADD FUNCT CODE FOR ROW SEL COPY A,$+2 SET UP OTA INSTR COPY CONFIG,A NOP RTN SWTA SWTB ENT SBIT 1,S SHIFT A,LO,1 CONV TO FUNCT CODE ADD SELP,A COPY A,$+2 COPY CONFIG,A NOP RTN SWTB * SELP WORD :04F0 OUTA WORD :02F0 BANK0 WORD :0001 * TITL ******************************************** * UNIQUE ADDRESS TEST * ENTER : XREG=SRT ADDRESS * AREG=SRT PATTERN * WRTFLG = 0 - READ FUNCT * WRTFLG = 1 - WRITE FUNCT * SKIP BASE PAGE INTERRUPT HANDLERS * EXIT : AFTER 4K MODULE DONE * ERROR - JST ERROR ROUT ************************************** UAT ENT COPY A,SAVAR JNE X,$+4 DOES THIS INCLUDE BASE PAGE COPY =:FF9,A NEG  A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP -4K COUNTER COPY WRTFLG,A JEQ A,READ ****WRITE UAT PATTERN**** COPY SAVAR,A STAGN SUB =:80,X JNE X,$+2 JMP YEP1 SUB =:88-:80,X JNE X,$+2 JMP YEP2 ADD =:88,X JMP RAPVAL-2 YEP1 ADD =:80+2,X SKIP 2 WRDS ADD =2,A JMP RAPVAL-2 YEP2 ADD =:88+5,X SKIP 5 WRDS ADD =5,A JMP  RAPVAL-2 COPY A,WRTPAT COPY INVALU,Q SET UP FOR MEM. WRITE READ TEST RAPVAL EQU $ SUB BPVALU,Q SET UP TO TEST DEFFERENT BIT PATERNS COPY Q,EXPV SAVE EXPECTED VAULE COPY Q,0(X) WRITE EXPECTED VAULE INTO MEM. CELL COPY 0(X),A READ VAULE OUT OF MEM. CELL CSN A,Q DOES ECPECTED VAULE = ACT. VAULE JNE Q,RAPVAL YES,HAS ALL PATERNS BEEN CHECKED CSN A,Q COMPARE MEMORY ONCE MORE JMP NOP1 MEMORY CELL GOOD CONTINUE JST EROUT MEMORY CELL BAD STORE ERROR JMP NOP1 CONTINUE TESTING MEMORY NOP1 EQU $ COPY FLAG0,A JNE A,RELWRT COPY =0,A JMP STAA RELWRT COPY WRTPAT,AB  STAA COPY A,0(X) COPY WRTPAT,A ADD =1,X NXT ADD ADD =1,A NEW PAT IMS WCNT  DONE 4K? JMP STAGN NO - STORE AREG AGAIN RTN UAT ****READ UAT PATTERN**** READ COPY SAVAR,A  COPY A,EXPV EXP VALUE RDAGN SUB =:80,X JNE X,$+2 JMP YEEP1 SUB =:88-:80,X JNE  X,$+2 JMP YEEP2 ADD =:88,X JMP NOOP1 YEEP1 ADD =:80+2,X SKIP 2 WRDS COPY EXPV,A  ADD =2,A COPY A,EXPV JMP NOOP1 YEEP2 ADD =:88+5,X SKIP 5 WRDS COPY EXPV,A ADD  =5,A COPY A,EXPV NOOP1 EQU $ COPY FLAG0,A JNE A,RELRD COPY =0,A COPY A,ZEROO COPY 0(X),A CSK A,ZEROO NOP JST EROUT JMP NOOP2 RELRD COPY 0(X),A CSK  A,EXPV ACT=EXP? NOP JST EROUT NO-ERROR NOOP2 EQU $ ADD =1,X YES - NXT ADDRESS  IMS EXPV NXT PAT NOP IMS WCNT DONE 4K YET? JMP RDAGN NO - READ AGAIN RTN  UAT * INVALU WORD :0100 BPVALU WORD :0101 ZEROO WORD 0 SAVAR NOP WRTPAT RES 1 WCNT NOP LPOOL TITL ************************************************** * PING PONG TEST * ENTER: XREG=START ADDRESS * EXIT: AFTER 4K MODULE TESTED *  ERROR: JST ERROR ROUTINE * SKIP BASE PAGE INTERRUPT LOCATIONS PPT ENT JNE X,$+4 IS THIS BASE PAGE COPY =:FF9,A NEG A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER COPY X,STRTS SAV STRT ADDRESS * * FILL MEMORY WITH FUNNY PATTERN * AGN1 SUB =:80,X JNE X,$+2  JMP SEP1 SUB =:88-:80,X JNE X,$+2 JMP SEP2 ADD =:88,X JMP SOP1 SEP1 ADD =:80+2,X SKIP 2 WRDS JMP SOP1 SEP2 ADD =:88+5,X SKIP 5 WRDS SOP1 COPY X,A AND =:41,A JEQ A,BUMP-1 CLSN =:41,A JMP BUMP-1 COPY PAT2,A PAT2 JMP BUMP COPY PAT1,A  PAT1 BUMP COPY A,0(X) STORE PAT ADD =1,X BUMP ADDRESS PTR IMS WCNT DONE WRITTING?  JMP AGN1 NO - CONTINUE JMP PPR GO CHECK IT OUT STRTS NOP PAT1 WORD :55AA PAT2 WORD :AA55 * * READ BACK MEMORY TO CHECK LOCATIONS FOR * EXPECTED PATTERNS PPR EQU $ COPY STRTS,X GET BACK START ADDRESS  COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER AGN2 SUB =:80,X JNE X,$+2 JMP SEEP1 SUB =:88-:80,X JNE X,$+2 JMP SEEP2 ADD =:88,X JMP SOOP1 SEEP1 ADD =:80+2,X SKIP 2 WRDS COPY WCNT,A ADD =4,A COPY A,WCNT JMP SOOP1 SEEP2 ADD =:88+5,X SKIP 5 WRDS COPY WCNT,A ADD =:C,A COPY A,WCNT SOOP1 COPY X,A AND =:41,A JEQ  A,CPAT1 PAT1 CLSN =:41,A JMP CPAT1 COPY 0(X),A PAT2 CSK A,PAT2 CONTENTS = PAT2 ? NOP JST ERR NO - ERROR JMP SWT YES - SWT TO NEXT MEM LOC CPAT1 COPY 0(X),A CC SK A,PAT1 CONTENTS = PAT1 ? NOP JST1 JST ERR NO - ERROR SWT COPY WCNT,A SHIFT A,RO,1 IS IT AN EVEN COUNT? JF OV,$+2 YES - DON'T BUMP ADDRESS-JUST SWT SUB =1,X NO - BUMP ADDRESS COPY X,A XOR =:FFF,A COPY A,X IMS WCNT DONE 4K ? JMP AGN2 NO - CONTINUE RTN PPT * ERR ENT COPY A,SAVAR SAV AREG COPY JST1+1,A XOR ERR,A WHICH PAT ? JEQ  A,PAT1D COPY PAT2,A PAT2 JMP $+2 PAT1D COPY PAT1,A PAT1 COPY A,EXPV EXP VALUE COPY SAVAR,A ACT VALUE JST EROUT RTN ERR TITL ********************************************* * OUTPUT HEX ROUTINE * ENTER: AREG=BINARY VALUE TO CONVERT+OUTPUT * EXIT : XREG UNCHANGED * OHEX ENT COPY X,TX COPY  =-4,X SET UP CNTER COPY X,NIBCNT NIBBLE COUNTER COPY A,X ROTATE X,LO,1 SET UP XREG OX1 ROTATE X,LO,4 GET A NIBBLE(STRT FROM L.) COPY X,A AND =:F,A SAVE A NIBBLE SUB =:A,A JLT  A,$+2 ADD =:7,A ADD =:3A,A JST OTT IMS NIBCNT DONE ALL 4 NIBS JMP OX1  NOPE - TAKE ANOTHER BIT COPY TX,X RESTORE XREG RTN OHEX * TX NOP NIBCNT WORD -4 LPOOL  TITL ********************************** * MESSAGES * SIGNON WORD :0D0A BYTE 'MOS MEMORY DIAGNOSTIC REV:'  WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYYY) ? ' WORD :FFFF BANKM WORD :0D0A BYTE 'BANKED (Y/N) ? ' WORD :FFFF P0M BYTE 'P0? '  WORD :0D0A WORD :FFFF TSTAM WORD :0D0A BYTE 'TESTA' WORD :FFFF TSTBM BYTE ' TESTB'  WORD :FFFF CRLFM WORD :0D0A WORD :FFFF PASM WORD :0D0A BYTE 'PASS ' WORD :FFFF PASCM WORD :0D0A BYTE 'PASSES COMPLETED ' WORD :FFFF PAREM BYTE ' PARITY ' WORD :FFFF TAM BYTE '  TESTA ' WORD :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM BYTE ' IB# ' WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A WORD :0D0A BYTE 'POWER FAIL - STARTING OVER' WORD :0D0A  WORD :FFFF HALTM WORD :0D0A BYTE 'MUST LOAD ON 4K BOUNDARY' WORD :0D0A WORD :FFFF BUF1 RES 40,0 *** BANKING INFO INPUT BUFFER *** TBLE RES 50,0 *** MEMORY MAP TABLE **** END GO NOSTIC REV:'  WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YD O0SEGMENTBLANK oX€Ÿ€ˆ¾€Ÿ€Œ ÿ&‚~–¥D¢¤¾é �y‚w¶ ‡ ‚t¶Ÿ‡Ÿ‚qy9‡œ ��e †ˆ†Š†Š†† †…¢’¾Ñ�“¢‹¾É�Znÿïó‹#�Â;Ş1¢°¾»¿­¾Ä�{†©¢«¾µ¿ª�� ^�t ,���Ч¤¿¢�‡ ^�l _�p1B �‚¾‘�k º˜��e§–¢–¾›¿�¾¤�{ ^�_‡� YŸ�Ÿ� ¢�¾�Ÿ|îZgÏ¢ÿ£s#øX  €€ ÿŸ|y¿„€€¿‚+�wf Y�ˆ N�† ^�„ _�‡¾YŸu†‰¾è �ƒ�y¾ä�o‚‚ŞlŸk £~Ş}¾Û _�’ ^�:q„€y Ÿs¾Ñ _�� ^�0´€„€ Ÿj+�k*ÿ€€–‰„€¾Â �ı�n¾¾ �ù�`ÿ †”%ƒ”'Ş’†� ÆJ È’Š†‰ЇЅ†„�o¢‚‚‚Ÿi ú†› †x¾™Ş—��Ÿw _Ÿu†r ÆF I[¢l‚lŞmŸl ó: ¸ ’c1Ša†`�g •` 0¦‘‡¢«‚«C C 96¼C C "¢ƒ0 `Ÿjø Â}` 0¦y‡¢•C "C ¢�C I6‚dÊ †a†˜ †5‚\†�‚u†��1 †�‚�›�‚R†…‚k††�' € †¤ƒ”Áƒ“Áƒ’Á��¾’Ä‚šÁ¾� ßm ‡…‡…‡‚Ÿ„ò!"ø ¢Ÿ¿šƒ]¿™ƒ™ N¾�Ş�Ÿv†�¦�ƒ”†� ‡�‚ˆ¢ˆ¾£ ‡Š‚ƒ¢ƒ…Ÿ‰nx`“‰€‰ ¢Œ¿tƒR¾å¢‰¿pƒO¾á¢†¿lƒI¾İŸr�†� ¦Ë†Éƒd N�·¢˜¿^ƒ!¾Ï‚C¢“¿X�‚¢‘¿Uƒ� N�•¢�¿P‚¸¾Á¢‹¿L‚µ¾½�Œlk�¥¬³¹,ƒ?D¢¥¿9‚7¿£¢£¿5‚›¿Ÿ¢ ¿1‚–¿›¢�¿-‚”¿—¢‘ŸCƒ+Dߢ‹Ÿ=ƒ’Cß‘��ß�¢‚Ÿ4Ï#¿ÃÉÇ!" †’‚’†—û†�‚�)¯�’+=‹�†‡ ¿�ދނ�tŸm�'èd  ¦¤†¡‚¦†� † †›‡Ÿ¢˜€€Š›†š†–€�ÿ Š�†�Ş�‚�º��q�ƒ‚‹‡�Ÿd‚�†„ †ƒ‡ˆŸ^‘Ã&… q1†é †è†é†&†&†å†ç‚’†‰¢i€�–ôy†İ¢d€�ÿS€‚†Ù–ëyº�Œ�š€‚ ‚ÍE†Êšú†Ê��ŞÆŸv¾u‚PC‚K¾á�‚‚H¾ä¾Áß҃Ѻº�\�¨�ZŞ]‚·ÿ†µ¾a‚<IƒÅD€€!Š«†ª‚1¾Ç�‰ƒ¼E€€q!Š¡† ‚'¾Ã¾ Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÆN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ù1ÂÚ�‚‚\†Ôƒ×g‚Ï*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Á¼μÇÁÄ€€€@ Qº@ �‚¿»�€ƒ» ��‚±„€‚¯+ Ş­�[ŸN‚¨‡«*€1Á�…*ø1Á#�‡+ˆ�‰+‚ƒ¡ ‡Ÿ�„+�ƒœ ‡šƒœÇ †‘€€º�¿“�„€€»�¿�+ߋއ�]Ÿ(½ùmÈ�v 1Âu�‚‚ë†o¦˜*€1Á�…*ø1Á�„+ˆ�ƒ+‚��+� AD A�‚‚‰��‚†„€+ŞX�i�ƒUªªU¢|‚ˆO*€1Á�…*ø1Á�‡+ˆ�‰+‚‚E †C�„+�‚@ †> AG A�…€€ºc¾��„€€º]¾Š‚/ 6Á*ÿ š¥ Ş(�XŸ/ †"‚sš|B‚L��‚I‡‚¿Ÿt ¦�(ü¦� ..3  öÁ  :¿ˆŞ„�v¢�ŸnÿüÿR MOS MEMORY DIAGNOSTIC REV: A0 93926-01 LSI-4 ÿÿ_ ÿÿ FULL REPORT (Y/N) ? ÿÿ RANGE (XXXX,YYYY) ? ÿÿ BANKED (Y/N) ? ÿÿP0? ÿÿ TESTA ÿÿ TESTBÿÿr ÿÿ PASS ÿÿ PASSES COMPLETED ÿÿ PARITY ÿÿ TESTA ÿÿ TESTB ÿÿ ALT ÿÿ IB# ÿÿ LOC ÿÿ ACT ÿÿ EXP ÿÿ PARITY ER P COUNTER = ÿÿ POWER FAIL - STARTING OVER ÿÿ MUST LOAD ON 4K BOUNDARY ÿÿ(E 2 Ş��ˆ ‡¯ß­ƒ¬º•�7�ƒ�5ߨ�_¢€€ß»��Ÿßƒ»���Ÿ� ¦�ƒ’G¢uƒ�¾¦ƒ�Ї‡Œ�‚¢n¿Š¢�ŸqÿnoÁÇgÆN Š�†�‚]Ÿz Š„†�‚UŸxğğ †Ù1ÂÚ�‚‚\†Ôƒ×g‚Ï*€1Á�…*ø1Á�…+ˆ�†+‚ �ƒ+� �€†Á¼μÇÁÄ€€€@ Qº@ �‚¿»�€ƒ» ��‚±„€ * SKIP BASE PAGE INTERRUPT LOCATIONS PPT ENT JNE X,$+4 IS THIS BASE PAGE COPY =:FF9,A NEG  A,A JMP $+3 COPY =:1000,A NEG A,A COPY A,WCNT SET UP 4K COUNTER COPY X,STRTS  SAV STRT ADDRESS * * FILL MEMORY WITH FUNNY PATTERN * AGN1 SUB =:80,X JNE X,$+2 JMP SEP1 SUB  =:88-:80,X JNE X,$+2 JMP SEP2 ADD =:88,X JMP SOP1 SEP1 ADD =:80+2,X SKIP 2 WRDS JMP SOP1 SEP2 ADD =:88+5,X SKIP 5 WRDS SOP1 COPY X,A AND =:41,A JEQ A,BUMP-1 CLSN =:41,A JMP BUMP-1 COPY PAT2,A PAT2 JMP BUMP COPY PAT1,A PAT1 BUMP COPY A,0(X) STORE PAT ADD =1,X BUMP ADDRESS PTR IMS WCNT DONE WRITTING? JMP AGN1 NO - CONTINUE JMP PPR GO CHECK IT OUT STRTS NOP PAT1 WORD :55AA PAT2 WORD :AA55 * * READ BACK MEMORY TO CHECK LOCATIONS FOR * EXPECTED PATTERNS PPR EQU $ COPY STRTS,X GET BACK START ADDRESS COPY =:1000,A  NEG A,A COPY A,WCNT SET UP 4K COUNTER AGN2 SUB =:80,X JNE X,$+2 JMP SEEP1 SUB  =:88-:80,X JNE X,$+2 JMP SEEP2 ADD =:88,X JMP SOOP1 SEEP1 ADD =:80+2,X SKIP 2 WRDS COPY WCNT,A ADD =4,A COPY A,WCNT JMP SOOP1 SEEP2 ADD =:88+5,X SKIP 5 WRDS COPY WCNT,A ADD =:C,A COPY A,WCNT SOOP1 COPY X,A AND =:41,A JEQ A,CPAT1 PAT1 CLSN =:41,A JMP CPAT1 COPY 0(X),A PAT2 CSK A,PAT2 CONTENTS = PAT2 ? NOP JST  ERR NO - ERROR JMP SWT YES - SWT TO NEXT MEM LOC CPAT1 COPY 0(X),A CSK A,PAT1 CONTENTS = PAT1 ? NOP JST1 JST ERR NO - ERROR SWT COPY WCNT,A SHIFT A,RO,1 IS IT AN EVEN COUNT? JF OV,$+2 YES - DON'T BUMP ADDRESS-JUST SWT SUB =1,X NO - BUMP ADDRESS COPY X,A XOR =:FFF,A COPY A,X IMS WCNT DONE 4K ? JMP AGN2 NO - CONTINUE RTN PPT * ERR ENT  COPY A,SAVAR SAV AREG COPY JST1+1,A XOR ERR,A WHICH PAT ? JEQ A,PAT1D COPY PAT2,A PAT2 JMP $+2 PAT1D COPY PAT1,A PAT1 COPY A,EXPV EXP VALUE COPY SAVAR,A ACT VALUE  JST EROUT RTN ERR TITL ********************************************* * OUTPUT HEX ROUTINE * ENTER: AREG=BINARY VALUE TO CONVERT+OUTPUT * EXIT : XREG UNCHANGED * OHEX ENT COPY X,TX COPY =-4,X SET UP CNTER  COPY X,NIBCNT NIBBLE COUNTER COPY A,X ROTATE X,LO,1 SET UP XREG OX1 ROTATE X,LO,4 GET A NIBBLE(STRT FROM L.) COPY X,A AND =:F,A SAVE A NIBBLE SUB =:A,A JLT A,$+2 ADD =:F 7,A ADD =:3A,A JST OTT IMS NIBCNT DONE ALL 4 NIBS JMP OX1 NOPE - TAKE ANOTHER BIT COPY TX,X RESTORE XREG RTN OHEX * TX NOP NIBCNT WORD -4 LPOOL TITL ********************************** * MESSAGES * SIGNON WORD :0D0A BYTE 'MOS MEMORY DIAGNOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A  BYTE 'FULL REPORT (Y/N) ? ' WORD :FFFF STRTM WORD :0D0A BYTE 'RANGE (XXXX,YYYY) ? ' WORD :FFFF BANKM WORD :0D0A BYTE 'BANKED (Y/N) ? ' WORD :FFFF P0M BYTE 'P0? ' WORD :0D0A WORD :FFFF TSTAM WORD :0D0A BYTE 'TESTA' WORD :FFFF TSTBM BYTE ' TESTB' WORD :FFFF CRLFM WORD :0D0A WORD :FFFF PASM WORD :0D0A BYTE 'PASS ' WORD :FFFF PASCM WORD :0D0A BYTE 'PASSES COMPLETED ' WORD :FFFF PAREM BYTE ' PARITY ' WORD :FFFF TAM BYTE ' TESTA ' WORD  :FFFF TBM BYTE ' TESTB ' WORD :FFFF ALTM BYTE ' ALT ' WORD :FFFF IBM BYTE ' IB# '  WORD :FFFF LOCM WORD :0D0A BYTE 'LOC ' WORD :FFFF ACTM BYTE ' ACT ' WORD :FFFF EXPM BYTE ' EXP ' WORD :FFFF PARM WORD :0D0A BYTE 'PARITY ER P COUNTER = ' WORD :FFFF PFM WORD :0D0A WORD :0D0A BYTE 'POWER FAIL - STARTING OVER' WORD :0D0A WORD :FFFF HALTM  WORD :0D0A BYTE 'MUST LOAD ON 4K BOUNDARY' WORD :0D0A WORD :FFFF BUF1 RES 40,0 *** BANKING INFO INPUT BUFFER *** TBLE RES 50,0 *** MEMORY MAP TABLE **** END GO NOSTIC REV:' WORD REV: BYTE ' 93926-01 LSI-4' WORD :0D0A WORD :FFFF ARROW BYTE '_' WORD :FFFF FULLM WORD :0D0A ååååååååååG ååååååååååååååååååååååååååH ååååååååååååååååååååååååååI ååååååååååååååååååååååååååJ ååååååååååååååååååååååååååK ååååååååååååååååååååååååååL åååååååååååååååååååååååååå