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

Re: simple memory test?

Expand Messages
  • Steve
    Thanks for the link, Mardy. Unfortunately, that file is password protected against printing, extracting, etc. I found a printable unlocked version (and
    Message 1 of 8 , May 22 10:25 PM
      Thanks for the link, Mardy. Unfortunately, that file is password
      protected against printing, extracting, etc. I found a printable
      unlocked version (and slightly better resolution, too) here:
      http://www.tech-systems-labs.com/S-100/Vector-8K-SRAM.pdf

      I'll give the machine language test a try.

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

      --- In altaircomputerclub@yahoogroups.com, "mardy_marshall" <mardy@...>
      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
      > > ===========================
      > >
      >
      > I've had good luck using the memory test published in the Vector
      Graphics 8K SRAM manual
      (http://maben.homeip.net/static/S100/vector/cards/Vector%208K%20SRAM%20U\
      sers%20Manual.pdf).
      >
      > -Mardy
      >
    • Tom Sanderson
      Are you boards all static? It is my understanding that different tests are required for dynamic memory. A simple test is better than nothing, but perhaps
      Message 2 of 8 , May 23 1:16 PM

        Are you boards all static? It is my understanding that different tests are required for dynamic memory. A simple test is better than nothing, but perhaps someone can comment on testing dynamic memory vs. static. I assume MITS MTST tests both static & dynamic. Steve. we can use MTST to test your boards if you want to bring some to my workshop and test them in a disk system.

        The 8K Vector Graphic SRAM board is an appropriate choice for test program. This is the board that started Vector Graphic. The board was designed to work in an Altair and helped fill the market niche created by MITS dynamic memory problems.  The board and memory test were created at a time when Vector Graphic used an 8080, so there shouldn't be any Z80 code in the test program. I notice the manual has two memory tests, one in MITS BASIC and one in machine language.

        The MITS BASIC memory test won't be too useful on a diskless system unless you have a ROM BASIC board. Thinking of a diskless system reminds me of APE. http://frankbarberis.tech.officelive.com/ APE could load CP/M and MBASIC4 to run the BASIC memory test.  A better solution might be to make an APE disk image with a CP/M memory test. I suggest using a 1702 to make an APE boot prom in addition to a memory test prom. Can anyone point to an appropriate CP/M memory test utility? This approach assumes you have a working 32K to run CP/M.

        The 8K Static RAM machine language program is interesting because it is abstracted from the Vector 1 Monitor. Has anyone ported a Vector Monitor to an Altair? I have the source code for the Vector 4.0c serial monitor (2K) and a version stripped down to 1K that I believe still contains the memory test. This code would be easy to modify for Motorola 6850 IO. I'm not sure if the code has Z80 instructions. Here is the link to the 1K monitor version in case anyone is interested: http://vector-graphic.info/Documents/40X.ASM.

        My wish list for a diskless Altair is not just a memory test prom, but a 1K monitor that includes a memory test and a modified APE Serial Boot Loader.  The modified serial boot loader would load CP/M or ROM BASIC. It could also load  a program like the MITS memory test MTST.

        Here is link to a my page for the Vector 8K Static in case someone wants to see an image and description http://vector-graphic.info/vg_8k_static_ram.aspx. I added a link to the manual. The manual at tech-systems-labs.com is from the Howard Harte Vector Graphic page http://www.hartetechnologies.com/manuals/Vector%20Graphics/


        Tom Sanderson
        www.virtualaltair.com
        www.vector-graphic.info


        --- In altaircomputerclub@yahoogroups.com, "Steve" <alltare@...> wrote:
        >
        > Thanks for the link, Mardy. Unfortunately, that file is password
        > protected against printing, extracting, etc. I found a printable
        > unlocked version (and slightly better resolution, too) here:
        > http://www.tech-systems-labs.com/S-100/Vector-8K-SRAM.pdf
        >
        > I'll give the machine language test a try.
        >
        > Steve
        > ================================
        >
        > --- In altaircomputerclub@yahoogroups.com, "mardy_marshall" mardy@
        > 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
        > > > ===========================
        > > >
        > >
        > > I've had good luck using the memory test published in the Vector
        > Graphics 8K SRAM manual
        > (http://maben.homeip.net/static/S100/vector/cards/Vector%208K%20SRAM%20U\
        > sers%20Manual.pdf).
        > >
        > > -Mardy
        > >
        >

      • Steve
        Tom, The main boards I want to test are all MITS 16K statics. They were all tested good with a disk-based test program before they were stored away about 15
        Message 3 of 8 , May 25 7:59 PM
          Tom,

          The main boards I want to test are all MITS 16K statics. They were all tested good with a disk-based test program before they were stored away about 15 years ago, so they should all still be OK now for the most part. In case of oxidized connectors and socket pins and other mechanical problems, I think a simple quickie test would be enough to ensure functionality. That's why Mardy's suggestion of the Vector Graphic machine language program looks good, but I'm having trouble moving it onto a 1702 EPROM starting at 176000 (FCOO). It's been too long since I did any 8080 coding and I'm forgetting something.

          I also have a stack of MITS 16K dynamics. Most of them should be OK too, but again, oxidized sockets are always a possibility. You're right about 'special' test procedures for the dynamics. Although regular memory tests will check static as well as dynamic memories, sometimes with MITS dynamics, you would see an error if you read an address too quickly after addressing it. At other times, it was not uncommon for long-term data retention (more than a few milliseconds) to fail because of refresh timing problems. So testing for quick write-read and for write-delay-read errors was best. I'm pretty sure the MITS test checked both ways, but it took a long time to run. When at MITS, I always had good luck with a test called 'ETC', named for the East Texas Computer Club who wrote it. It was pretty fast and still uncovered most problems. Unfortunately, a working 8" drive is necessary to load it. However, the Vector Graphic test will probably show up most of the major problems here too.

          steve
          ===========================

          --- In altaircomputerclub@yahoogroups.com, "Tom Sanderson" <yahoo@...> wrote:
          >
          >
          > Are you boards all static? It is my understanding that different tests
          > are required for dynamic memory. A simple test is better than nothing,
          > but perhaps someone can comment on testing dynamic memory vs. static. I
          > assume MITS MTST tests both static & dynamic. Steve. we can use MTST to
          > test your boards if you want to bring some to my workshop and test them
          > in a disk system.
          >
          > The 8K Vector Graphic SRAM board is an appropriate choice for test
          > program. This is the board that started Vector Graphic. The board was
          > designed to work in an Altair and helped fill the market niche created
          > by MITS dynamic memory problems. The board and memory test were created
          > at a time when Vector Graphic used an 8080, so there shouldn't be
          > any Z80 code in the test program. I notice the manual has two memory
          > tests, one in MITS BASIC and one in machine language.
          >
          > The MITS BASIC memory test won't be too useful on a diskless system
          > unless you have a ROM BASIC board. Thinking of a diskless system reminds
          > me of APE. http://frankbarberis.tech.officelive.com/
          > <http://frankbarberis.tech.officelive.com/> APE could load CP/M and
          > MBASIC4 to run the BASIC memory test. A better solution might be to
          > make an APE disk image with a CP/M memory test. I suggest using a 1702
          > to make an APE boot prom in addition to a memory test prom. Can anyone
          > point to an appropriate CP/M memory test utility? This approach assumes
          > you have a working 32K to run CP/M.
          >
          > The 8K Static RAM machine language program is interesting because it is
          > abstracted from the Vector 1 Monitor. Has anyone ported a Vector Monitor
          > to an Altair? I have the source code for the Vector 4.0c serial monitor
          > (2K) and a version stripped down to 1K that I believe still contains the
          > memory test. This code would be easy to modify for Motorola 6850 IO.
          > I'm not sure if the code has Z80 instructions. Here is the link to
          > the 1K monitor version in case anyone is interested:
          > http://vector-graphic.info/Documents/40X.ASM
          > <http://vector-graphic.info/Documents/40X.ASM> .
          >
          > My wish list for a diskless Altair is not just a memory test prom, but a
          > 1K monitor that includes a memory test and a modified APE Serial Boot
          > Loader. The modified serial boot loader would load CP/M or ROM BASIC.
          > It could also load a program like the MITS memory test MTST.
          >
          > Here is link to a my page for the Vector 8K Static in case someone wants
          > to see an image and description
          > http://vector-graphic.info/vg_8k_static_ram.aspx
          > <http://vector-graphic.info/vg_8k_static_ram.aspx> . I added a link to
          > the manual. The manual at tech-systems-labs.com is from the Howard Harte
          > Vector Graphic page
          > http://www.hartetechnologies.com/manuals/Vector%20Graphics/
          > <http://www.hartetechnologies.com/manuals/Vector%20Graphics/>
          >
          >
          > Tom Sanderson
          > www.virtualaltair.com <http://www.virtualaltair.com>
          > www.vector-graphic.info <http://www.vector-graphic.info>
          >
          >
          > --- In altaircomputerclub@yahoogroups.com, "Steve" <alltare@> wrote:
          > >
          > > Thanks for the link, Mardy. Unfortunately, that file is password
          > > protected against printing, extracting, etc. I found a printable
          > > unlocked version (and slightly better resolution, too) here:
          > > http://www.tech-systems-labs.com/S-100/Vector-8K-SRAM.pdf
          > >
          > > I'll give the machine language test a try.
          > >
          > > Steve
          > > ================================
          > >
          > > --- In altaircomputerclub@yahoogroups.com, "mardy_marshall" mardy@
          > > 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
          > > > > ===========================
          > > > >
          > > >
          > > > I've had good luck using the memory test published in the Vector
          > > Graphics 8K SRAM manual
          > >
          > (http://maben.homeip.net/static/S100/vector/cards/Vector%208K%20SRAM%20U\
          > \
          > > sers%20Manual.pdf).
          > > >
          > > > -Mardy
          > > >
          > >
          >
        • Tom Sanderson
          The memory test in the Vector Graphic monitor prom is very handy, T 0000 DFFF ......... A . meaning a successful test from 0000 to just before the prom at
          Message 4 of 8 , May 25 10:07 PM
            The memory test in the Vector Graphic monitor prom is very handy, T 0000
            DFFF ......... A "." meaning a successful test from 0000 to just before
            the prom at E000.

            Vector had two memory tests that ran under CP/M. I can't remember why
            they supplied two different tests.

            I always assumed everyone at MITS used MTST. The diskette is labled
            DIAG: MEMORY DIAGNONTIC PROG, REV #1.1 MITS PN: 103339, COPYRIGHT 1978
            BY MITS INC. The "DIAGNONTIC" spelling is on the PCC label, not my typo.

            The diskette boots MITS DOS and you enter 16383 for MEMORY SIZE? That
            leaves 006505 BYTES AVAILABLE for MTST to test any memory above the
            first 16K. The test is not real fast and uses several types of tests
            GALPAT/GALCOL/ and two more I can't remember, maybe ROWPAT and another.
            There are two files on the disk, #MTST and &MTST. I think &MTST is the
            source code.

            I was wondering how to get source code off of a MITS DOS disk. Can MITS
            BASIC or hard-sectored CP/M read a MITS DOS file? The question will have
            to wait because my system died before I could test the first 4K. No
            lights at all on the front panel. A very helpless feeling for a Turnkey
            user.

            Tom


            --- In altaircomputerclub@yahoogroups.com, "Steve" <alltare@...> wrote:
            >
            > Tom,
            >
            > The main boards I want to test are all MITS 16K statics. They were
            all tested good with a disk-based test program before they were stored
            away about 15 years ago, so they should all still be OK now for the most
            part. In case of oxidized connectors and socket pins and other
            mechanical problems, I think a simple quickie test would be enough to
            ensure functionality. That's why Mardy's suggestion of the Vector
            Graphic machine language program looks good, but I'm having trouble
            moving it onto a 1702 EPROM starting at 176000 (FCOO). It's been too
            long since I did any 8080 coding and I'm forgetting something.
            >
            > I also have a stack of MITS 16K dynamics. Most of them should be OK
            too, but again, oxidized sockets are always a possibility. You're right
            about 'special' test procedures for the dynamics. Although regular
            memory tests will check static as well as dynamic memories, sometimes
            with MITS dynamics, you would see an error if you read an address too
            quickly after addressing it. At other times, it was not uncommon for
            long-term data retention (more than a few milliseconds) to fail because
            of refresh timing problems. So testing for quick write-read and for
            write-delay-read errors was best. I'm pretty sure the MITS test checked
            both ways, but it took a long time to run. When at MITS, I always had
            good luck with a test called 'ETC', named for the East Texas Computer
            Club who wrote it. It was pretty fast and still uncovered most
            problems. Unfortunately, a working 8" drive is necessary to load it.
            However, the Vector Graphic test will probably show up most of the major
            problems here too.
            >
            > steve
            > ===========================
            >
            > --- In altaircomputerclub@yahoogroups.com, "Tom Sanderson" yahoo@
            wrote:
            > >
            > >
            > > Are you boards all static? It is my understanding that different
            tests
            > > are required for dynamic memory. A simple test is better than
            nothing,
            > > but perhaps someone can comment on testing dynamic memory vs.
            static. I
            > > assume MITS MTST tests both static & dynamic. Steve. we can use MTST
            to
            > > test your boards if you want to bring some to my workshop and test
            them
            > > in a disk system.
            > >
            > > The 8K Vector Graphic SRAM board is an appropriate choice for test
            > > program. This is the board that started Vector Graphic. The board
            was
            > > designed to work in an Altair and helped fill the market niche
            created
            > > by MITS dynamic memory problems. The board and memory test were
            created
            > > at a time when Vector Graphic used an 8080, so there shouldn't be
            > > any Z80 code in the test program. I notice the manual has two memory
            > > tests, one in MITS BASIC and one in machine language.
            > >
            > > The MITS BASIC memory test won't be too useful on a diskless system
            > > unless you have a ROM BASIC board. Thinking of a diskless system
            reminds
            > > me of APE. http://frankbarberis.tech.officelive.com/
            > > <http://frankbarberis.tech.officelive.com/> APE could load CP/M and
            > > MBASIC4 to run the BASIC memory test. A better solution might be to
            > > make an APE disk image with a CP/M memory test. I suggest using a
            1702
            > > to make an APE boot prom in addition to a memory test prom. Can
            anyone
            > > point to an appropriate CP/M memory test utility? This approach
            assumes
            > > you have a working 32K to run CP/M.
            > >
            > > The 8K Static RAM machine language program is interesting because it
            is
            > > abstracted from the Vector 1 Monitor. Has anyone ported a Vector
            Monitor
            > > to an Altair? I have the source code for the Vector 4.0c serial
            monitor
            > > (2K) and a version stripped down to 1K that I believe still contains
            the
            > > memory test. This code would be easy to modify for Motorola 6850 IO.
            > > I'm not sure if the code has Z80 instructions. Here is the link to
            > > the 1K monitor version in case anyone is interested:
            > > http://vector-graphic.info/Documents/40X.ASM
            > > <http://vector-graphic.info/Documents/40X.ASM> .
            > >
            > > My wish list for a diskless Altair is not just a memory test prom,
            but a
            > > 1K monitor that includes a memory test and a modified APE Serial
            Boot
            > > Loader. The modified serial boot loader would load CP/M or ROM
            BASIC.
            > > It could also load a program like the MITS memory test MTST.
            > >
            > > Here is link to a my page for the Vector 8K Static in case someone
            wants
            > > to see an image and description
            > > http://vector-graphic.info/vg_8k_static_ram.aspx
            > > <http://vector-graphic.info/vg_8k_static_ram.aspx> . I added a link
            to
            > > the manual. The manual at tech-systems-labs.com is from the Howard
            Harte
            > > Vector Graphic page
            > > http://www.hartetechnologies.com/manuals/Vector%20Graphics/
            > > <http://www.hartetechnologies.com/manuals/Vector%20Graphics/>
            > >
            > >
            > > Tom Sanderson
            > > www.virtualaltair.com <http://www.virtualaltair.com>
            > > www.vector-graphic.info <http://www.vector-graphic.info>
            > >
            > >
            > > --- In altaircomputerclub@yahoogroups.com, "Steve" <alltare@> wrote:
            > > >
            > > > Thanks for the link, Mardy. Unfortunately, that file is password
            > > > protected against printing, extracting, etc. I found a printable
            > > > unlocked version (and slightly better resolution, too) here:
            > > > http://www.tech-systems-labs.com/S-100/Vector-8K-SRAM.pdf
            > > >
            > > > I'll give the machine language test a try.
            > > >
            > > > Steve
            > > > ================================
            > > >
            > > > --- In altaircomputerclub@yahoogroups.com, "mardy_marshall" mardy@
            > > > 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
            > > > > > ===========================
            > > > > >
            > > > >
            > > > > I've had good luck using the memory test published in the Vector
            > > > Graphics 8K SRAM manual
            > > >
            > >
            (http://maben.homeip.net/static/S100/vector/cards/Vector%208K%20SRAM%20U\
            \
            > > \
            > > > sers%20Manual.pdf).
            > > > >
            > > > > -Mardy
            > > > >
            > > >
            > >
            >
          • john_crane_59
            ... 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
            Message 5 of 8 , May 28 5:31 PM
              --- 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
            • 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 6 of 8 , May 29 12:29 PM
                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.