reifsnyderb Posted November 14, 2023 Author Share Posted November 14, 2023 Ok. I turned the system on this morning and everything works fine until I attach the 1091 w/SRAM. The 80 column card works, though. Last evening's testing was with all the hardware warm. Looking through the data sheets, nothing really sticks out. My best guess is that something is either shifting the timing or voltage slightly due to heat. The board works fine, with the W65C02, by itself. The 1090XL and 1091XL both are electrically identical in this situation. They both have buffers for the address lines, data lines, and some of the other lines. Since the 80 column board seems to work, and SRAM read access shouldn't be an issue, I think it makes more sense to examine the write timing more closely. 3 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5348633 Share on other sites More sharing options...
drac030 Posted November 15, 2023 Share Posted November 15, 2023 On 11/12/2023 at 5:23 PM, reifsnyderb said: MULE isn't on the list???? (MULE works!) I was just testing what I had at hand then. 1 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5348900 Share on other sites More sharing options...
reifsnyderb Posted September 22 Author Share Posted September 22 On 11/12/2023 at 2:08 AM, phaeron said: Compatibility issues that I know of between the 6502 and the 65C02: Undocumented instructions not supported JMP (abs) handles page crossing with extra cycle No false reads from the wrong address on page crossing when indexing D flag is cleared on interrupt Decimal mode takes an additional cycle to produce correct flags 65C02 stops on write cycles when RDY is pulled, meaning STA WSYNC will occasionally end one cycle too early, and INC WSYNC will always be one cycle early Read-modify-write instructions do two reads and one write instead of one read and two writes -- this invalidates ASL IRQEN style tricks for fast IRQ acknowledgment Absolute indexed RMW instructions are one cycle faster when not crossing a page In theory, if you run a math pack benchmark like SysInfo, it should show the 65C02 running slower than a 6502. Since I've got another 800XL (remake) running the W65C02, I just confirmed that the W65C02 does benchmark a little slower on the math pack. The benchmarks are as follows: Addition: 98 Subtraction: 98 Multiplication: 97 Division: 96 2 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5536751 Share on other sites More sharing options...
reifsnyderb Posted October 4 Author Share Posted October 4 The W65C816 runs the math pack at the correct speed and all 4 benchmarks are at 100. 🙂 Because of this, and other compatibility improvements, it makes more sense to me to use a W65C816 as a Sally replacement. The problem whereby RDY should only be acted upon during a read cycle is easily fixed by have the PLD handle the RDY control line as well. Here's a Re-make board with a W65C816 installed... 8 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5543687 Share on other sites More sharing options...
pancio Posted October 6 Share Posted October 6 Great work! Could you please show differences according to schematic contains W65C02? Is PLD program the same? I Want to make piggy board for W65C816... and think to increase frequency... BR, Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544660 Share on other sites More sharing options...
reifsnyderb Posted October 6 Author Share Posted October 6 7 hours ago, pancio said: Great work! Could you please show differences according to schematic contains W65C02? Is PLD program the same? I Want to make piggy board for W65C816... and think to increase frequency... BR, To increase the frequency, you will need a faster clock, buffer chips, a system to control the buffer chips, fast ROM, etc. The Atari LSI chips aren't designed for the higher speeds either. There is a lot involved. I have an experimental system board to finish and test that will do just this. Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544770 Share on other sites More sharing options...
pancio Posted October 6 Share Posted October 6 Actually I did some test with my programmable MultiClockModule and I see that 2.1MHz is okay for Atari chips - working well except colors (GTIA can't synchronize higher clock with PAL). It';s possible that not all Atari can work with higher frequency.. need make more tests but I see potential 🙂 It's of course PoF and funny experiment... 20% of power for free... nice to have! BR, Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544773 Share on other sites More sharing options...
_The Doctor__ Posted October 6 Share Posted October 6 (edited) The chips were supposed to be capable of 2Mhz, so I guess 2.1 was within your chipset's tolerance. 2 is where I'd leave it. The colorburst might be possible as an injected frequency signal at the monitor port just to turn the displays decoder on, could be interesting effects. Depends on the monitor about sync etc. Edited October 6 by _The Doctor__ Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544774 Share on other sites More sharing options...
pancio Posted October 6 Share Posted October 6 That's thing I should test. I used HDMI grabber which is probably not capable to work with given frequency. Interesting as well is when you drop down main frequency... 🙂 (power save mode?) @reifsnyderb Could you please confirm "no changes" regarding W65C02 and W65C816 adaptation? BR, Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544776 Share on other sites More sharing options...
reifsnyderb Posted October 6 Author Share Posted October 6 1 hour ago, pancio said: That's thing I should test. I used HDMI grabber which is probably not capable to work with given frequency. Interesting as well is when you drop down main frequency... 🙂 (power save mode?) @reifsnyderb Could you please confirm "no changes" regarding W65C02 and W65C816 adaptation? BR, I'll have to put out a schematic as I made 2 changes. The first was to put a 4.7k ohm resistor on one of the CPU pins so as to still be backwards compatible with the W65C02 and the other was to run the RDY signal through the PLD so as to only present the RDY signal, to the CPU, during a read cycle. I'll post PLD code as well. 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544820 Share on other sites More sharing options...
_The Doctor__ Posted October 6 Share Posted October 6 Time edit the topic to say W65C816 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5544886 Share on other sites More sharing options...
reifsnyderb Posted October 6 Author Share Posted October 6 As promised, here's the schematic and PLD code to show how to run a W65C02 or W65C816 on an Atari. Please note this schematic and PLD code has not been tested. I have taken the changes that I did to the 800XL Re-Make boards and documented them as though it would be used separately. I do not have any plan on taking this information, making up a special card, and testing it in an 800XL. Name Sally to W65C02 or W65C816 ; Partno NA; Date 10/06/2024; Revision 00; Designer Brian Reifsnyder; Company N/A; Assembly N/A; Location N/A; Device g16v8ms; /** Inputs **/ Pin 02 = Phi0; /* Phi0 from ANTIC */ Pin 03 = A_HALT; /* /HALT from ANTIC */ Pin 04 = RDY; /* RDY from Bus */ Pin 09 = CPU_RW; /* R/W from CPU */ /** Outputs **/ Pin 12 = RDY_CPU; /* RDY to CPU */ Pin 13 = BE_CPU; /* Bus Enable for CPU */ Pin 14 = Phi0_CPU; /* Phi0 to CPU */ Pin 16 = Phi2; /* Phi 2 to system */ Pin 17 = RW; /* RW to system */ Pin 18 = Phi1; /* Phi1 to system */ Pin 19 = Pulse; /* Pulse to set latch */ /** Latch **/ Pin 15 = L_HALT ; /* /HALT Latch */ /** Logic Equations **/ /** # is or **/ /** ! is not **/ /** $ is xor **/ Phi2= Phi0; /* Phi2 as generated by Sally. */ Phi1= !Phi0;/* Phi1 as generated by Sally.*/ Phi0_CPU = Phi0 & L_HALT; /* Phi0 to CPU.*/ !RW= !CPU_RW & L_HALT; /* RW from CPU to computer.*/ /* Note: When BE is low, CPU_RW is high impedance. */ RW.oe= L_HALT; BE_CPU= L_HALT; /* CPU Bus Enable.*/ L_HALT.d= A_HALT;/* Latched /HALT.*/ Pulse= !Phi0; /* Pulse to latch L_HALT.*/ !RDY_CPU= !RDY & RW; /* Only allow low RDY when read.*/ 3 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545060 Share on other sites More sharing options...
drac030 Posted October 7 Share Posted October 7 15 hours ago, pancio said: 20% of power for free... nice to have! About 20% power for free is obtainable by clocking the processor faster during its internal cycles (see the VPA/VMA lines), even without accelerating the entire system. 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545181 Share on other sites More sharing options...
reifsnyderb Posted October 7 Author Share Posted October 7 7 hours ago, drac030 said: About 20% power for free is obtainable by clocking the processor faster during its internal cycles (see the VPA/VMA lines), even without accelerating the entire system. Are you referring to the VPA (Valid Program Address) and VDA (Valid Data Address) lines? To confirm: The concept is to run the processor at a higher speed when both lines are low? 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545280 Share on other sites More sharing options...
pancio Posted October 7 Share Posted October 7 Made piggy prototype... need to be double check with schematic and correlated with your PLD program... hope I did not make mistakes 🙂 Two weeks for PCB and we will see... 4 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545513 Share on other sites More sharing options...
+David_P Posted October 8 Share Posted October 8 5 hours ago, pancio said: Made piggy prototype... need to be double check with schematic and correlated with your PLD program... hope I did not make mistakes 🙂 Two weeks for PCB and we will see... Please do not replicate the FTe problem of making all the pins gold, so soft that if you have to remove the CPU that you'll inevitably leave behind multiple pins. 2 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545686 Share on other sites More sharing options...
pancio Posted October 8 Share Posted October 8 23 hours ago, drac030 said: About 20% power for free is obtainable by clocking the processor faster during its internal cycles (see the VPA/VMA lines), even without accelerating the entire system. You suggest to rise clock to max (14MHZ) when VDA=VPA=0? I see that this state is not so often during CPU operation and depend on addressing mode: I didn't check all modes but it's looks like max 14% opcode can be run faster. (not 14% faster at all). It is power for free as well but switch for clocks stall be added (1.77MHz/14MHz). 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545779 Share on other sites More sharing options...
pancio Posted October 8 Share Posted October 8 According above I can imagine frequency switching like this: Of course we need do the same with PHI1 which is used in PLD logic. BR, 3 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545791 Share on other sites More sharing options...
drac030 Posted October 8 Share Posted October 8 7 hours ago, pancio said: You suggest to rise clock to max (14MHZ) when VDA=VPA=0? I see that this state is not so often during CPU operation and depend on addressing mode: Well, consult instructions such as CLC or TXA (section 19a), where out of two cycles, one is internal (50%), or XBA, where there are two internal cycles out of three (66%) or branches (section 20), where there can be one internal cycle out of three (33%) or two out of four (50%) etc. Generally this has already been tried out, the 40 MHz Rapidus uses this trick to compensate for memory waitstates by switching to 80 MHz during the internal cycles, and some early proptotype running at 10.56 MHz also allowed the CPU to run at full speed during VPA=VDA=0, whence I know how much processing power can be gained from there in average. The trick however may be to use the high speed clock as the main one, i.e. not "switch to 14 MHz during internal cycles" but rather to switch to 1.77 MHz during memory accesses. 1 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545865 Share on other sites More sharing options...
reifsnyderb Posted October 8 Author Share Posted October 8 8 hours ago, pancio said: According above I can imagine frequency switching like this: Of course we need do the same with PHI1 which is used in PLD logic. BR, I didn't give it a thought to use the VPA and VDA to increase the internal CPU speed. I've added that throttling capability to the PLD that controls the CPU speed on my W65C816 board design. 🙂 I'll be able to see if it this capability can be programmed in as the CPU would, internally, now run at 14MHz. 2 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545942 Share on other sites More sharing options...
_The Doctor__ Posted October 8 Share Posted October 8 Morphing the methods into one, very interesting. Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545947 Share on other sites More sharing options...
pancio Posted October 8 Share Posted October 8 @reifsnyderb if you have free place into PLD you may use not used inputs for VPA and VDA as turbo trigger for `816, otherwise divide 14Mhz by 4 and use it for rest Atari ASICs... moreover... suppose 14.18xxx will be the best as source 🙂 BR, Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545959 Share on other sites More sharing options...
reifsnyderb Posted October 8 Author Share Posted October 8 3 minutes ago, pancio said: @reifsnyderb if you have free place into PLD you may use not used inputs for VPA and VDA as turbo trigger for `816, otherwise divide 14Mhz by 4 and use it for rest Atari ASICs... moreover... suppose 14.18xxx will be the best as source 🙂 BR, Here's what I have now. There is an input for a "Turbo" switch. Also, there are multiple clock inputs. 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545964 Share on other sites More sharing options...
pancio Posted October 8 Share Posted October 8 Looks good. Is possible to use only one CLK - PHI0 14MHz as a main clock and divide it internally? Now I see you are using three input lines... @all, Need to clarifying my clock switch... one gate shall be NOR, so please forgot above schematic... it should be: Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545995 Share on other sites More sharing options...
reifsnyderb Posted October 8 Author Share Posted October 8 10 minutes ago, pancio said: Looks good. Is possible to use only one CLK - PHI0 14MHz as a main clock and divide it internally? It could probably be divided internally. Having one clock pulse and programming that pulse for multiple uses, on a PLD, is possible but complicated. 11 minutes ago, pancio said: Now I see you are using three input lines... Originally, I used a clock input for 7+MHz, 3+MHz, and Phi0 from ANTIC. Since you posted about using VPA and VDA, it made sense to scrap the 3+MHz line and add a 14+MHz line. 🙂 12 minutes ago, pancio said: Need to clarifying my clock switch... one gate shall be NOR, so please forgot above schematic... it should be: Not a problem. I was reading about the VPA and VDA lines and what they did as somebody designed a computer with a W65C816 and posted some information. So, the VPA/VDA lines were fresh on my mind and I understood what you were getting at. Here's the info: http://sbc.bcstechnology.net/index.html (Look at the "Hardware Bug" page.) 1 Quote Link to comment https://forums.atariage.com/topic/356723-w65c02-or-w65c816-on-r1-of-the-advanced-pcb-remake-for-the-atari-800xl/page/2/#findComment-5545999 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.