How to test a ceramic 6502 for the ROR bug?

8 posts / 0 new
Last post
Offline
Last seen: 4 days 9 hours ago
Joined: Jan 17 2017 - 17:31
Posts: 21
How to test a ceramic 6502 for the ROR bug?

Hey - Apologies if I've got the wrong sub-forum, I just thought this would be the one with the most early 6502 experts ;)

What is the most effective and SAFEST way to check a ceramic 6502 for the ROR bug? I don't want to put too much stress on it.

Thanks,
AC

Offline
Last seen: 10 hours 17 min ago
Joined: Oct 9 2011 - 12:54
Posts: 1139
Do you have access to an

Do you have access to an Apple II or Apple-1 replica?  Is the chip in a carrier so you can insert/remove it without damaging the legs?

 

Use Mike Willegal's memory test program, make sure NOT to use the one that works around the ROR bug.  He has both on his website.  I believe it will crash if your chip has the ROR bug.

Offline
Last seen: 10 hours 17 min ago
Joined: Oct 9 2011 - 12:54
Posts: 1139
Here is a link to the 6502

Here is a link to the 6502 test program...

 

http://www.willegal.net/appleii/6502mem.htm

 

 

 

 

Offline
Last seen: 4 days 9 hours ago
Joined: Jan 17 2017 - 17:31
Posts: 21
Thanks Corey! I'll have to

Thanks Corey! I'll have to give it a try :) I might try to cook up something to 'safely' check 6502 chips, could be a nice little project for me. Will try to make it as cheap as possible (maybe a $10 budget for components) and will create a post to list hardware components and software used - Watch this space!

Offline
Last seen: 1 day 4 hours ago
Joined: Jun 5 2008 - 07:26
Posts: 394
According to my web site, the

According to my web site, the version of the memory test that uses ROR will hang when run on a 6502 with the ROR problem.  This was found when someone tried the memory test with one of these early chips.  You might want to first try the non-ROR version of the test, to verify that everything else in the system is working well.  This will also give an idea of how long that the test should take, so you know that the test really hung, and isn't taking a while.

 

I would swap a ZIF socket into a working motherboard of some sort in order to create a test bed for checking this processor.

 

 

regards,

Mike Willegal

Offline
Last seen: 4 days 9 hours ago
Joined: Jan 17 2017 - 17:31
Posts: 21
Hey Mike,I bought a 40-pin

Hey Mike,

I bought a 40-pin ZIF socket - I'm wondering if it's possible to write something for the Arduino that can run your script and give some indication if it was successful (maybe use a green LED for pass and red LED for fail), could even have a 3rd blue LED to indicate ROR bug.

Have you ever done this before? I can try to gather all the hardware needed, will probably need some kind of AVR board w/ the ZIF socket pin outs connected to the different GPIO ports... Let me know your thoughts :)

Offline
Last seen: 1 day 4 hours ago
Joined: Jun 5 2008 - 07:26
Posts: 394
This idea is way beyond

This idea is way beyond anything that I have time for. 

 

regards,

Mike Willegal

Offline
Last seen: 3 hours 22 min ago
Joined: Sep 21 2017 - 11:10
Posts: 1
Would something like this help?

If you have a Mimeo or a Replica 1 you could add a ZIF socket and try this to check the CPU.  Unfortunately, I don't have a processor that has the ROR bug so I can't test this to be sure.  

 

0300: A9 0D     LDA #$0D        ; Load linefeed

0302: 20 EF FF  JSR $FFEF       ; display A to screen
0305: A9 01     LDA #$01        ; Set up the accumulator
0307: 18        CLC             ; Clear the carry flag
0308: 6A        ROR A           ; Rotate A right for the test.
                                ; The buggy ROR doesn't rotate 
                                ; into the carry flag, or right.
0309: A2 00     LDX #$00        ; Set X to success message offset
030B: B0 02     BCS $030F       ; If carry set, ROR works. Output that.
031D: A2 03     LDX #$03        ; Set X to fail message offset
030F: BD 1D 03  LDA $031D,X     ; Load A with text byte at offset X
0312: 20 EF FF  JSR $FFEF       ; display A to screen
0315: E8        INX             ; Increment character offset
0316: C9 00     CMP #$00        ; is it the last character?
0318: D0 F5     BNE $030F       ; if not then recurse
031A: 4C 00 FF  JMP $FF1F       ; Return to woz monitor
031D: 4E 4F 20 52 4F 52 20      ; NO<space>ROR<space>
0324: 42 55 47 00               ; BUG<EOL>


0300: A9 0D 20 EF FF A9 01 18 
:6A A2 00 B0 02 A2 03 BD 
:1D 03 20 EF FF E8 C9 00 
:D0 F5 4C 1F FF 4E 4F 20 
:52 4F 52 20 42 55 47 00

 

Log in or register to post comments