Loading ...
Sorry, an error occurred while loading the content.

Re: simple memory test?

Expand Messages
  • Steve
    Thanks for the listing, John. I ll give it a try this weekend. I m having problems getting Mardy s VG test program to work, so your message comes at an
    Message 1 of 8 , May 29, 2009
    • 0 Attachment
      Thanks for the listing, John. I'll give it a try this weekend. I'm having problems getting Mardy's VG test program to work, so your message comes at an opportune time.

      Steve
      ==============================

      --- In altaircomputerclub@yahoogroups.com, "john_crane_59" <john_crane_59@...> wrote:
      >
      > --- In altaircomputerclub@yahoogroups.com, "Steve" <alltare@> wrote:
      > >
      > > I need to run memory tests on a huge pile of MITS 16K and 4K memory boards, but all of my disk drives are currently inoperative so I can't run any disk-based tests. Does anyone here know of a simple rudimentary test (less than 500 bytes or so) that I could toggle into my 8800b's front panel? Hopefully, I could blast the code to EPROMs (1702s) and make the program run at bootup.
      > >
      > > Thanks for any feedback or comments.
      > >
      > > Steve
      > > ===========================
      > >
      >
      > Steve,
      >
      > There are probably as many memory test routines as versions of Star Trek.
      >
      > I use a quick and dirty technique I read about in an article by Uncle Bill back when he was knocking out 8080 code. It simply tests the complement and alternating bit patterns. Supposedly, the theory is that nearly all errors fit into these categories. (and BTW, I never use dynamic memory cards - it's all too easy to pickup a static one on ebay and simply never have to live out that unpleasant bit of Altair history. It's like one of those Civil War re-enactment clubs deciding to use real bullets!)
      >
      > You will have to attach your own I/O to handle the front panel; replacing the following, which were written for keyboard & screen:
      >
      > rdhlde - reads HL and DE register pairs from keyboard. HL is the starting address to test, and DE is the ending address.
      >
      > ilprt - the famous "inline print" routine that outputs all subsequent bytes as a string until reaching a null.
      >
      > outhl - outputs contents of register HL as hex digits.
      >
      >
      >
      > ;------------------
      > ;Test block of memory
      >
      > mem:
      > F288 CD40F1 CALL rdhlde ;Get Range (test mem from HL to DE)
      >
      > F28B CDECF5 CALL ilprt
      > F28E 0A0D4D656D db lf,cr,'Memory Test - Bad Bytes:',lf,cr,00h
      >
      >
      > F2AB 2B DCX H ; adjust pointer for looping
      > F2AC 23 mloop: INX H ;Point to next byte
      > F2AD 7E MOV A,M ;Get byte
      > F2AE 2F CMA ;Complement
      > F2AF 77 MOV M,A ;Put back complement
      > F2B0 BE CMP M ;Same?
      > F2B1 C2F4F2 JNZ badm ;No - bad memory
      > F2B4 2F CMA ;Orig byte
      > F2B5 77 MOV M,A ;Restore it
      >
      > F2B6 4E MOV C,M ; Save mem byte for bit test
      > ;
      > F2B7 3655 MVI M, 55H ; Bit test pattern 55H
      > F2B9 46 MOV B,M ;
      > F2BA 3E55 MVI A, 55H ;
      > F2BC B8 CMP B ;
      > F2BD C2F4F2 JNZ badm ;
      > ;
      > F2C0 36AA MVI M, 0AAH ; Bit test pattern 0AAH
      > F2C2 46 MOV B,M ;
      > F2C3 3EAA MVI A, 0AAH ;
      > F2C5 B8 CMP B ;
      > F2C6 C2F4F2 JNZ badm ;
      > ;
      > F2C9 71 MOV M,C ; Restore mem byte
      >
      >
      > F2CA 7C mcont: MOV A,H ; Compare HL to DE, at end?
      > F2CB BA CMP D ;
      > F2CC C2ACF2 JNZ mloop ;
      > F2CF 7D MOV A,L ;
      > F2D0 BB CMP E ;
      > F2D1 C2ACF2 JNZ mloop ;
      >
      > F2D4 CDECF5 CALL ilprt
      > F2D7 0A0D4D656D db lf,cr,'Memory Test Completed',lf,cr,00h
      >
      > F2F1 C33BF0 JMP wrmst ; at end
      >
      >
      > F2F4 CD99F1 badm: CALL outhl ; Display address of bad memory
      >
      > F2F7 C3CAF2 JMP mcont ; continue
      >
    Your message has been successfully submitted and would be delivered to recipients shortly.