|
Joined: Aug 2009
Posts: 8
Member
|
Member
Joined: Aug 2009
Posts: 8 |
IIRC, with old PIO if I called port write with interrupt clear, it would mask interrupt requests completely, so no further interrupt was taken. That's why I was callin PIO port write only when interrupt line was active.
BTW, according to your changes descripton, handshaking inPIO was rewritten, but Megatouch doesn't use handshaking on PIO (I assume you are referring to READY lines). Maybe something else got broken then?
Mariusz.
|
|
|
|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
Ok, I fixed Kaypro II/4 booting.
Problem was that PIO output register can apparently be written even when in input mode.
Another problem was that Kaypro II and 4 have disk side selection polarities switched. Thank you Curt.
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
IIRC, with old PIO if I called port write with interrupt clear, it would mask interrupt requests completely, so no further interrupt was taken. That's why I was callin PIO port write only when interrupt line was active.
BTW, according to your changes descripton, handshaking inPIO was rewritten, but Megatouch doesn't use handshaking on PIO (I assume you are referring to READY lines). Maybe something else got broken then? I was able to get it working again by changing the PIO implementation slightly and adding 2 scanline timers to assert/clear the vblank interrupts. Need to check that other drivers are still working tomorrow. I don't understand how the driver could ever have worked in the first place
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
But this doesn't explain why Megatouch games break with new PIO, V9938 didn't change afterall. They broke because they were signaling a vblank interrupt (60Hz) at about 0.5Hz. The lack of keep-alive ints made the Z80 code crash and a watchdog reset occured. The new PIO cares about the fact that the logic equation has to go false->true before an interrupt is signalled. The old PIO just banged in interrupts one after another until the V9938 bothered to toggle the VINT line, thus creating an illusion of a working system. At least that's how I understood it, anyway it works now
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
great! the new pio code definitely beats the old one in every aspects
on an unrelated note, can anyone point me to a d64 image with error codes (either giving me the TOSEC name or the file CRC). they should be recognizable by their size, 175531 byte vs. 174848
I'd like to test the improved support, but I have no test cases
EDIT: @Curt: is there any reason to still have two different implementation of the mos6530 in the source? can we remove mos6530.c?
Last edited by etabeta78; 02/18/10 07:50 AM.
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
great! the new pio code definitely beats the old one in every aspects
on an unrelated note, can anyone point me to a d64 image with error codes (either giving me the TOSEC name or the file CRC). they should be recognizable by their size, 175531 byte vs. 174848
I'd like to test the improved support, but I have no test cases
EDIT: @Curt: is there any reason to still have two different implementation of the mos6530 in the source? can we remove mos6530.c? I'm not sure if nibconv supports d64 errors, you could convert a G64 game which has a simple sector error protection (like Ocean loader in Rambo 3 PAL). http://c64preservation.com/dp.php?pg=database (search for "Ocean" protection) The miot6530 should be converted to use devcb, so I left the mos6530 in there so you could do a quick copypaste
|
|
|
|
Joined: Aug 2004
Posts: 1,458 Likes: 9
Very Senior Member
|
Very Senior Member
Joined: Aug 2004
Posts: 1,458 Likes: 9 |
The last pio change broke the super80.
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
The last pio change broke the super80. How?
|
|
|
|
Joined: Aug 2004
Posts: 1,458 Likes: 9
Very Senior Member
|
Very Senior Member
Joined: Aug 2004
Posts: 1,458 Likes: 9 |
you changed the mode 3 interrupts.
So, it is interrupting constantly and cannot get started.
super80 shows a black screen, while super80v shows the title then hangs before getting to the prompt.
I've reverted my copy of pio back to r7411, and it all works fine there.
Last edited by robbbert; 02/18/10 11:54 AM.
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
|
|
|
1 members (1 invisible),
292
guests, and
2
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,930
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|