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¾¦€„œ+â  fG¾úŞõC)3à `joBˆ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Şpwâ‚p¾ Şkâiº† ’ŸÂ¢œ€15 !¦^æ\d ²X‚ ˆò %€À'+ò²NŸs愾Qâ‚)s ‡EŞDŸ|Ÿ{ @% oµ O® m¬ Jª K¨ i· gµ†. V t±ì„sFè„n`" FàED) ¾E`¾CnrgŸy ¾w"¾NŞ{R¾q¾IŞ}M¾3`¾1t¾H¾. ²C¾d ¾)Ş?Ş>Ş=y¦;<¾":¾ ü¾06OS:: SYSÿe%OM790111120000OM790111120000OM790723150547e  @OM790111120000OM790111120000OM790111120000e$OM790111120000OM790111120000OM790111120000eOM790111120000OM790111120000OM790111120000OM790111120000OM790111120000OM790111120000ew ?¡OM790111120000OM790111120000OM790111120000eGç7603010000245076030100002750deOÁ7603010000300076030100003225d  eT 7603010000347576030100003825d e_/,OM790111120000OM790111120000OM790111120000 e(Í7907231532232579072315322600 e" 7907231539550079072315401450 eÑQ¡?7907231505195079072315054400790723150544e"•7907231509195079072315125900de# 7907231513430079072315134650eH7907161135045079072315382275eEc¥ í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€Ds¤Dc # ˆF ÿâŸû¢whæ †r†l# ‚mr„€‚lr„ şIş)ş=„…Ć€ş9„ƒÄ„‚å€ş4„Ä‚+# ‚XŠQ†V æ# ‚N †Q†KI# †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-Mt ƒ†½õ~"%€!²ªª÷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 ¾ †Jsľ‰…éä¾Ë†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 =½Óü‚DD½Ô 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ƒ‚Š -‚¾0t½Ñ‚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 =½Ó‚DD½Ô 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 =½Ô‚DD½Õ 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º ȃ Í‚‡½¿½¿½…Ÿ¼onmlƒ´ È„ö¿­Ğªƒ±‡±¿©N¿ª1º Æ‹ ĉ Ô‡¿£ˆŸ¢pTnm‡Ÿ¿švƒ‡¿“E¿›1K I·§•¿šŸr[poƒ7l)"4§t{zõ¨uº‡š— ƒv ƪ Ô¨ö¿hj¿f ‡›¿e1±¿dœŸcmFx @© ÷' £, c‹‹  €ƒ‡Šˆ „€ÿ„ße.ğjı¿@ªw¿>¿?1i§« ‡ª*ÿ§©ƒ© ¬‡¿6©Ÿ5l>jiƒ ‡ ßŸ¿+ »—‚·`‡”‡”ƒ” ¬j¿ »‹‚T»ˆR‡†_ƒLwxy–»ˆı¿­z¿.¿É1g§È ‡Ç*ÿ§Æƒn ¬‡¿Ã ŸÂl0jißf¿· »¶‚b‡³‡³ƒ[ ¬l¿« »ª‚V»§T‡¥aƒ¦Nı¿£°}¿¡"¿—1Oƒ ħœ ‡›*ÿ§š¿‘šŸl9jiƒŒ7f È#m {z{|zõ—"4u}~ƒ¶‡¶¿w+¿m1Kƒt Ä‹§®¿kŒŸjrEpoƒf7l £)qƒ¡‡¡ƒ` ÔŸZƒ ÈŸ¿Y¿O1P —D•¯  ‡¿HŸGgNedƒC7a³€¿Œt˜ƒ¹‡¹ƒ9 ÆŸ3¿57¿´1H§±¿,‹ørpo£'1B)t¢§rü¿!µ‚¿@ ‡Ÿ¿1U rƒ˜ oƒ•Š• „€ÿ„ß¿‘ÓdLjaƒ‰7)k´šm¶.‚—ƒ–‡–¿–b¿•1º Ù‹ ·¿’¶rFpo  ‡ƒ¿„s©v4{zƒã‡ã¿x¿W1K 9·§Û¿rˆ˜rSpoƒN7uƒÑ‡Ñ¿d{¿C B ÿ·§É¿^…„r]poÍ¿Á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Ÿ€« ƒjs‡{¢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„‚ „ƒ „„+ßhs „€¢Î¿Îÿ‡g‚Ê¿dö÷¿Ç¿ÇƒÇ‡V‚Å‹W ¾Õ¿Â¢ÂƒÂ „…¿·<.¿¶¿¶ÿ‡F¢µ¾Ç‚·‡·‚·‡·ƒ²¿µˆ‚¯ Šú‡±‚ø¿°›°L ¿®¿®ˆƒ­6E¢4‚ì ¿§¿˜¢¦‚燜 Šâß™}„…¿‡IL¿†¿†¿ˆŸ—²˜ıù ¬¥¼B¾¤ü(m¶ %,ª”,SY½+Ê›8 §t¢´€y‡²‹°‹m‡¯û‡¬€€›¬Ğ+ߨߦy*û ¿a˜…Ç‚Z˜†Ä+ßeŸa ¿X¿X{ƒW68£•€… ˆ¢“*ÿ !§£Œˆ…ß‹}¢‚¿Fgö0/”/."1¼öÖ»öå¾ÿÿÿÙZ Ä¿î¿î¾’¿íŸì  »ëyx÷‹è‡æ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 ‡‰¿‰Štsrqp4{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¶/ '‡Ì¿yc¿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Æ  ‚°“°†¡¿¯¿¯“¿®“ƒ©¿¬¿¬×¿¬¿¦{‚¨šÌ‚œ ÿšLj … ƒ ¾æ‚‚‡Ÿ[ªU ñ"øÿò % £uÿ„‰„Š„‹¿u€‡Q…¿˜¿q~‡¿i ¾»Ÿn¾€¿eŸi ¾³Ÿf¿ˆ¿^Ÿb¿^{ ¾ªŸ]õ  † ¦¿ ›ƒŸ6P¾“¿œ&‚•¿š¾ ø†“¾‹ƒ¿”Ş  ¿ Ş‹Ÿgމuq ƒ‡ 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Şgm w‚b¢`Ÿd ¦.󦇂ù¢ù96½ø"ù€¢„.¢Ÿn† ߃›»›Ÿ{ ‡–ß—ƒ—»•‚Ÿrƒ“‡ß’ƒ’»‚Ÿjƒ‡‹ŞgŸf ‚~†ch*°'¯®#¬«.  Ÿ} " Ÿ} †„ ¤‚Ÿ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˜‚šºº{xvñ†wó’t.BŠŒ+Şmw’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Á# IpBN  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€@ÆŸ¯€@+ *„qr şä€qşâ ` Iÿ şÜş§,’1’Âş©yş§ `+ „Nÿ” `+ „Oÿ „q2) ÿˆŸˆ .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¤Dz)ÿ†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ÿ¬ÜOw 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ş£ @+ÜIt‚¼…r€r¤r)4 b# Iÿ± rÜHZ# 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¶ÜIh,‰`p¤DŒHò) ÿ1·T¼\Àq@İÄqş„`pÜFc # ^b„F#  $C @şx€qÿ R„I F¤r F ˆF„FşŒş¢„ş–*øş°zş¸ÜIrş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`(ÜImŸEÜIlŸ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¾¦€„œ+â  fG¾úŞõC)3à `joBˆ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Şpwâ‚p¾ Şkâiº† ’ŸÂ¢œ€15 !¦^æ\d ²X‚ ˆò %€À'+ò²NŸs愾Qâ‚)s ‡EŞDŸ|Ÿ{ @% oµ O® m¬ Jª K¨ i· gµ†. V t±ì„sFè„n`" FàED) ¾E`¾CnrgŸy ¾w"¾NŞ{R¾q$¾IŞ}M¾3`¾1t¾H¾. ²C¾d ¾)Ş?Ş>Ş=y¦;<¾":¾ ü¾06OS:: 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¾¼ü€„œ+â¶ fF¾ıŞû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Şkoâ‚s¾ Şrâpº† ’ŸÂ¢ œ€15 !¦YæW\ ²f‚ ˆò %€À'+ò²\Ÿs愾Iâ‚)s ‡SŞRŸ|Ÿ{ @$ oµ O® m¬ Jª K¨ i· gµ†< V t±ì„sFè„n`" FàED) ¾E`¾CnrgŸy ¾w"¾NŞ!{R¾q¾IŞ}M¾3`¾1t¾H¾. ²C¾d ¾)Ş?Ş>Ş=y¦;<¾":¾ ü¾06OS:: SYS RC @`p€B)ÿÍ1ş)ÿÊ1ûÿ@âÇ€@JAk»`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Œ WOş ‚Äh tÄş3R´Äƒş/R°Ä Ÿ ,XfJ 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 kuà‚ 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 TYPPTVw3C @.)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 EC @şÁ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 -ıDxıC)Ÿ„+ /*%i܃¦A Ÿ Ğ -‘“ ıD …ıD „… ´‚ϸDsr u_6±• 0m 1 iÿ„ƒŸàƒìsÄ} ª˜à‘܃„† „…‚®˜DH ıD À†L ıDL ˆ€† ƒÜ… Ÿ.…@ UBıD} …ıDt ƒLpqàıDÿ„ƒ LhL fıDıDıDlê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 şNxÅ-şJ-HF†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€Ds¤Dc # ˆF ÿâŸû¢whæ †r†l# ‚mr„€‚lr„ şIş)ş=„…Ć€ş9„ƒÄ„‚å€ş4„Ä‚+# ‚XŠQ†V æ# ‚N †Q†KI# †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-Mt ƒ†½õ~"%€!²ªª÷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‚‚‰‚†„€+ŞXiƒ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‚‚‰‚†„€+ŞXiƒ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‚‚‰‚†„€+ŞXiƒ 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‚‚‰‚†„€+ŞXiƒ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‚‚‰‚†„€+ŞXiƒ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 åååååååååååååååååååååååååå