asic ppi (8255 port A output, AY read register, write and then read)

Started by arnoldemu, 18:27, 27 June 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

arnoldemu

I was experimenting with asic ppi again and found something interesting (not tested on cpc yet).

*  PPI port A set to output (ld bc,&f700+%10000010)
* PSG set to read (f640)
* I write values to PPI port A
* I read the values back.

What do I get?

Well PSG is driving the bus between ASIC PPI and AY. So I see AY register contents!

If I set PSG to inactive, register select or register write I see the value I wrote.


My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Apollo

Hmmm, you talk about the plus asic, not the "cost down" normal cpc version?
CPC - My beloved first computer!

arnoldemu

Quote from: Apollo on 00:12, 28 June 15
Hmmm, you talk about the plus asic, not the "cost down" normal cpc version?
Correct. The cost down doesn't have 8255 implemented inside it but the Asic does.

I plan to repeat these tests on cpc to see if there is any difference. :)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Apollo

As I don't have my 6128+ to test atm, what values do you see on the port? The port you wrote last to or some internal status of the AY?
CPC - My beloved first computer!

arnoldemu

Quote from: Apollo on 18:23, 29 June 15
As I don't have my 6128+ to test atm, what values do you see on the port? The port you wrote last to or some internal status of the AY?
I see the value of the selected ay register.

So if I wrote &38 to register 7 (as I did in my test), I see &38.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

gerald

Quote from: arnoldemu on 09:36, 28 June 15
I plan to repeat these tests on cpc to see if there is any difference. :)
I am not sure the result will be reliable, mainly because by setting the A port as output and the AY in read mode, you create a electrical conflict between the two devices : both device drive the bus.
Reading PPI port report the state of the IO, not the content of the output register port. So result will be according to who win the fight and PPI input levels.

I just hope that both will stand the temprary short circuit ...

Apollo

@gerald: Thank you for the tidbits added, I was just asking myself the question who drives the bus so is the value really read from the AY or from the latch of the PPI?
Thats why I wanted to ask what happens when you change the register selector on the AY afterwards?
CPC - My beloved first computer!

arnoldemu

Quote from: Apollo on 19:27, 29 June 15
Thats why I wanted to ask what happens when you change the register selector on the AY afterwards?
The only way I can think to test that is to use DMA to write the register. That may work....
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Powered by SMFPacks Menu Editor Mod