Re: option ROM into a 3032 - A better test rom for PET?

From: Mia Magnusson <mia_at_plea.se>
Date: Fri, 29 Sep 2017 20:08:37 +0200
Message-ID: <20170929200837.00001e5a@plea.se>
Den Thu, 28 Sep 2017 19:14:02 +0200 skrev Francesco Messineo
<francesco.messineo@gmail.com>:
> Now for the real "funny" part: pettester.bin shows no error both on
> VRAM and on the system RAM, but using the original kernel EPROM on UD9
> gives a garbage screen.

I haven't had a look at the source code that dave_m just posted, but
AFAIK the petester.bin can't tell if there is something wrong with the
adress lines/decoding, only if some data bit is stuck.

I.e. you'd need a test that fills memory with 0,1,2,3,4,... and
afterwards check if they read back correct. Preferably only fill up to
254 instead of 255 as that would be good enough to catch problems even
if A0-A7 are good. (Just filling all memory with 0-255 and mirror that
on each page would of course not show any problem with A8 and the
higher adress lines).

Maybe it's kind of hard to do this without reling on any ram at all.
Although without any reliable ram at all you might use the stack
pointer as a temporary storage (TAS, TSA or whatever the instructions
are called) and with a large enough rom you could unroll some loops so
you don't need a loop counter.

Or the tester code could start with a check if some screen ram or some
main ram seems ok and use that as a temporary storage. (If access to
main ram does bad things with screen ram or vice versa I think it would
be hard to make the tester run at all).

Ideally I think the test should run through all memory with 0-254 or
perhaps preferable 0-255 but repeating one of the values, and run the
test 256 times starting with a different number each time. That'd
probably catch more or less all kinds of errors.

One thing the tester could do is check if the I/O chips work and output
it's state to the user port or use the user port data register as a
temporary storage.

I haven't looked that much at how the two popular tests for C64 works,
but AFAIK one of the tests uses border color to send "flash codes" to
tell if it detects bad ram (i.e. one flash and a long pause for fault
related to D0, two flashes with short pause between them and then a
longer pause for faults at D1 and so on). I don't know it it's possible
to do anything similar on a PET. If it isn't possible to flash the
screen somehow it might be possible to "flash" the tape recorder motor.

However as you anyhow need some electronic skills to insert a test rom
in a PET you might aswell use some dongle on some port to display
results, i.e. a row of LED:s on some port.

The tests that are available for C64 requires no electronic skills
torun as they are usually placed in a cardridge that you just plug in
(using the GAME signal with disables most on-board adress decoding so
the cartridge is placed at the top of memory and the CPU will run the
cartridge even if all ROM and RAM is broken in the C64. You just need a
working CPU, PLA and partially working VIC and all other chips mustn't
drive the bus when they aren't adressed, then the test runs).

P.S. I'm one of the best at making up more or less good ideas and one
of the worst at actually taking the time and energy to implement them :)

-- 
(\_/) Copy the bunny to your mails to help
(O.o) him achieve world domination.
(> <) Come join the dark side.
/_|_\ We have cookies.

       Message was sent through the cbm-hackers mailing list
Received on 2017-09-29 19:00:03

Archive generated by hypermail 2.2.0.