• Please review our updated Terms and Rules here

Commodore 8032 memory test

It looks like you specify the range of addresses to test when the program starts. Luckily, RAM starts at address zero.
 
hm... looks like you say... can you make changes for testing 32k? maybe 16k too...

Thank you
 
I don't think any changes are necessary - you just specify the end address as 32K, 16K or whatever.
 
Ok, understand....

I just try enter 0,31743 but program report errors on the begining and freeze... because obviously overwrite the program or what... which number I must enter for start address... obviously can not be zero...

Thank you
 
I believe you should test memory from address 1025 to 32767. That equals 31K of RAM, since you shouldn't dabble with the first 1K while running Basic. The screen memory starts at 32768. Actually you should start even higher, perhaps 1536 or 2048 since you have typed in a Basic program which you don't want to overwrite while running.

In short terms, the PET memory map looks like this:
0 - 255 = Zeropage, very special workspace memory you usually should leave alone since Basic itself uses it
256 -511 = Stack, also wise to not touch
512 - 1023 = Various buffers incl. tape buffer, user changable vectors
1024 - XXX = Basic RAM.

The program is stored from address 1024 and upwards. Variables will be assigned past the program end. Strings and arrays (?) are assigned from top of RAM (XXX) and downwards, which makes me wonder what happens with A$ and B$ once that test program reaches the end of its cycle. Practically speaking you could test almost all RAM and hope the rest is good. A small machine code program would be faster and possibly allocate less memory cells.
 
Yes, when I start at address 2047 everything was ok but test is very very slow... Does someone can make same program in machine code for faster testing?
But with a small correction to make stops when an error occurs that I can write on paper and after pressing Enter goes on. I can stare at the screen all the time :)

Thank you
 
Looking at the source code (wow that's difficult to read without spaces) but it looks like the code already does stop if it finds an error. Actually ok I see where it resumes now. It will continue until you have 5 errors then it would stop.

You can probably get it to stop on the first error by taking out line 21 and line 605. Then I think it will just print the first non-matching memory address and stop.

Welcome to the forums by the way :) Glad to see another Pet getting used.
 
Actually I would be surprised if there already doesn't exist a memory tester for the PET. There were tons of user group and public domain programs, of which quite a number of them are archived at various web and FTP sites. However I can't point to one particular program/download at the moment. I would have to look for it first. Often the disks are archived as a whole with some more or less detailed listing what it contains, but sometimes not even the listing is clear about what each program does.
 
Actually I would be surprised if there already doesn't exist a memory tester for the PET. There were tons of user group and public domain programs, of which quite a number of them are archived at various web and FTP sites. However I can't point to one particular program/download at the moment. I would have to look for it first. Often the disks are archived as a whole with some more or less detailed listing what it contains, but sometimes not even the listing is clear about what each program does.

Yes, true. It would be great to identify a good diagnostic program for a cassette-based 32k PET which tested RAM and ROM (although most ROM faults are fairly obvious yes? It just doesn't boot). There must be one out there.

Recently I wrote a very simple program for my 16k TRS-80 M1 which poked a value in a RAM location then read it out again before moving to the next one....just to check the RAM. I found it hung when it got a few bytes off the top of memory. My first though was that the top of RAM was faulty until I realised that I'd probably poked into the String space the program itself was using. RAM is not always FREE RAM, a point which Anders has made. Some of it is used by the testing program itself.

One tends to forget these things when one has been away from coding these old machines for a while (like 28 years!)

Tez
 
Yes, when I start at address 2047 everything was ok but test is very very slow... Does someone can make same program in machine code for faster testing?
How many times were you planning to run it? I'd have thought once to find any errors and once more to check after any repairs, so maybe two or three times at most. Is that so bad?

But with a small correction to make stops when an error occurs that I can write on paper and after pressing Enter goes on.
Adding an "INPUT" between lines 600 and 605 should do that for you.

Looking at the source code (wow that's difficult to read without spaces) but it looks like the code already does stop if it finds an error. Actually ok I see where it resumes now. It will continue until you have 5 errors then it would stop.
OK, I don't have my BASIC glasses on this morning, but I don't see anything that would make it stop after 5 errors.

You can probably get it to stop on the first error by taking out line 21 and line 605. Then I think it will just print the first non-matching memory address and stop.
605, yes - removing that will have it stop (rather untidily) after the first error. Removing line 21 would however mess up the loop that cycles through the four test values.
 
Here is a program called 8032.mem.prg which however seems to test the 64K expansion memory in a 8096/8296.
http://zimmers.net/anonftp/pub/cbm/pet/utilities/index.html

A bunch of assorted disk images, compressed with Lynx + Zip. Only Ken Ross would know what's on them.
http://zimmers.net/anonftp/pub/cbm/pet/unsorted/index.html

Unfortunately Larry Anderson at Port Commodore seems to have taken his PET file archive offline. However it is said to mostly consist of games, which doesn't apply in this case.

Fastah: Why do you suspect RAM fault? Does the computer boot up with the correct amount of bytes free, do some programs crash unexpectedly and so on? You wrote you have performed some sort of repair, or did you mean you're in the middle of doing repair but yet don't know what to fix?
 
Yes, ram was failed... I accidentally discover the failed chip... 8032 now looks like full working :))

Before repairing 8032 boot up with the randomly bytes free memory free amount (ex. 15359, 15369, 15368, 15363, 25933...)... with heating or working a few minutes and short power off (max 15sec) power up and 8032 boot up with correct memory free amount but still not work correctly...
For example after entering basic command "50 rem QWERTZUIOPASDFGHJKLZXCVBNM", list command say "50 rem collectcatalogvalbackupappend... )
http://img96.imageshack.us/img96/2717/p2230128.jpg
Entering "50 rem qwertzuiopasdfghjklyxcvbnm" (not capital) works great.

Memory chip UA6 4116 was failed. Believe now work good but I wanna full memory test.

btw: that my 8032 had a lot of errors.
I must sort images, make complete restoration story and upload on the internet for all old computers lovers. This will be a long story :)

Thank you
 
Back
Top