• Please review our updated Terms and Rules here

Commodore pet 2001-n professional computer start up problem

Are the ROMs socketed? Do you have any way to read them? I would be curious as to what shows up at 1111111111100 (1FFCh) and 1111111111101 (1FFDh).

Wm,
Junior has indicated he has 32K of RAM, but are you looking for the AA hex pattern at the top of RAM to see if it initialized or did you want to check the top of ROM?
 
...I have more than 30 vintage computers in excellent condition...

Years and years and years ago I had two of these machines. I was only young but I vaguely remember having the exact same problem a number of times on both machines. The problem would progress until the units stopped working and then my Dad would have to replace "The Faulty Chip" from a stock that his friend had. Eventually that stock ran out and that's how I lost my original PETs. Looking back I assume that it was environmental conditions (damp) that led to the failures since the machines were not kept in the best place. My guess is that the "The Faulty Chip" was the 6502 and my suggestion is that since you have many vintage computers you might try swapping a good 6502 from one of them into the PET to see if it cures the problem.
 
I swap the 6502 processor but continue with the same problem. (know good processor).
Thanks
 
Power off and on again and appears some code see below:
B*
PC IRQ SR AC XR YR SP
.; 0141 E62E B0 FC A9 DC FC
.

This is telling us that the computer got to the machine language monitor by way of a break instruction and the program counter (PC) was at location 0141H. This is in low memory. Something is fishy as the PC should never be at that location. It seems the CPU read bad data from one of the ROMs.

Can you still get the PET to come up in the ML monitor when it is cold?
 
So the new issue is the debug prompt/corrupt code coming in after reflowing the solder. You only re-soldered on the CRT board?

I'm mostly thinking out loud but does the CPU just run the code off the ROM or does it copy the code to RAM and then run using the RAM? I'm just questioning if this could still be bad RAM (which you can piggy back another chip on top of existing RAM chips to see if the error changes or goes away).

Otherwise since you swapped out the 6502 already it could be one of the program ROMs that has bad code or a problem, in which maybe someone has one they could mail you or you could mail yours to someone who can dump and compare the chips to a known good ROM image.
 
So the new issue is the debug prompt/corrupt code coming in after reflowing the solder. You only re-soldered on the CRT board?

I'm mostly thinking out loud but does the CPU just run the code off the ROM or does it copy the code to RAM and then run using the RAM? I'm just questioning if this could still be bad RAM (which you can piggy back another chip on top of existing RAM chips to see if the error changes or goes away).

Otherwise since you swapped out the 6502 already it could be one of the program ROMs that has bad code or a problem, in which maybe someone has one they could mail you or you could mail yours to someone who can dump and compare the chips to a known good ROM image.
Couldn't hurt I suppose, but ROMs aren't usually intermittent; could be RAM, but the system code does run in the ROMs.

So, after it warms up it often starts up OK? Does it then keep working reliably? Did you (the OP) try putting an ice cube on various chips (in a baggie of course)?
 
I place and order for a cooler as soon receive I will make a job and let us know the findings.
Thanks again.
 
...but ROMs aren't usually intermittent; could be RAM...

Mike,
It might be a ROM socket, that a little contact cleaner or your Stabilant 22 stuff might fix.

Do you know what happens during power-up sequence if system finds bad RAM in low memory and can't complete initialization? Does it call the ML monitor?
-Dave
 
Mike,
It might be a ROM socket, that a little contact cleaner or your Stabilant 22 stuff might fix.

Do you know what happens during power-up sequence if system finds bad RAM in low memory and can't complete initialization? Does it call the ML monitor?
-Dave
Yeah, sure sounds like an intermittent connection somewhere (but checking the ROMs in another system won't find that); I've had my share and that stuff really did the job, even with the old really cheap & nasty sockets.

In my experience it just stops counting when it hits a bad RAM chip, sets max RAM to that, and carries on normally. But presumably initialization uses low RAM (esp. Page 0) for some indexes & pointers and if one or more of those were corrupted it could well send it off to the monitor or never-never-land.
 
In my experience it just stops counting when it hits a bad RAM chip, sets max RAM to that, and carries on normally. But presumably initialization uses low RAM (esp. Page 0) for some indexes & pointers and if one or more of those were corrupted it could well send it off to the monitor or never-never-land.

I'm not sure about the PETs but that seems to be what my Apple II+s do. A bad RAM IC in the lower regions will give a garbage screen OR throw the machine into the monitor. A bad RAM higher up and the machine will appear normal. Until you go to run a program that is.

In fact, I've used this phenomena to test individual 4116 RAM ICS on my Apple II+ clone by substituting the first RAM IC in the whole bank with the IC under test. If the machine boots, the RAM is ok.

Tez
 
In my experience it just stops counting when it hits a bad RAM chip, sets max RAM to that, and carries on normally.

Mike,
I looked at the power-on memory check and you are correct. It starts at the start of BASIC ($0401) and checks each location first with a $55 and then a $AA pattern (it leaves the $AA in memory). It will either compete at location $8000 or if there is an error will quit the test at that point and continue with the power-on sequence showing the lower amount of free memory.

It is a nice bit of code. I commented the listing below:
Code:
;
;Memory Test
;
D400   INC $11      ; increment contents of memory containing low byte address (initialized at 0) 
D402   BNE $D408    ; If not zero, continue to D408
D404   INC $12      ; If zero, bump high byte address which was initialized to 04
D406   BMI $D417    ; Jump when hi byte hits $80 (32K) to initms Output Power-Up Message
D408   LDA #$55     ; Load $55 test pattern
D40A   STA ($11),Y  ; Store test pattern in memory indirectly addressed by location 11 & 12
                    ; Y register will always stay at zero in this loop 
D40C   CMP ($11),Y  ; Compare Memory contents with ACC
D40E   BNE $D417    ; If not equal, quit and go to initms Output Power-Up Message
D410   ASL          ; Shift ACC left to $AA test pattern
D411   STA ($11),Y  ; Store test pattern in memory 
D413   CMP ($11),Y  ; Compare Memory contents with ACC
D415   BEQ $D400    ; If Pass, go back to start of memory test loop to increment address
                    ; If Fail, drop to initms with current RAM memory address
;
; initms Output Power-Up Message
 
Back
Top