Port system documentation updated

All the latest updates about the ZX Spectrum Next, Website and Forum News
User avatar
varmfskii
Posts: 144
Joined: Fri Jun 23, 2017 1:13 pm
Location: Albuquerque, NM USA

Re: Port system documentation updated

Postby varmfskii » Fri Jan 11, 2019 3:15 pm

So,if I attempt to write to a pre-existing 8-bit port that has a specified value for A16 using both out (nn),a and out (c),a I will succeed in writing to that port? If that is not the case, then it can cause incompatibilities. Very few of the 8-bit port addresses on the next are not pre-existing. It doesn't cause problems for the Eastern machines simply because they don't need compatibility with legacy software accessing those ports in the wrong way. Think about why you ignore A16 for writes to port $fe (all even ports)
Backer #2741 - TS2068, Byte, ZX Evolution

User avatar
Black_Cat
Posts: 38
Joined: Fri Aug 25, 2017 2:11 pm
Location: Saint Petersburg, Russia Today
Contact:

Re: Port system documentation updated

Postby Black_Cat » Sun Jan 13, 2019 3:24 am

The additional address line A16 is used selectively only when justified.

User avatar
Black_Cat
Posts: 38
Joined: Fri Aug 25, 2017 2:11 pm
Location: Saint Petersburg, Russia Today
Contact:

Re: Port system documentation updated

Postby Black_Cat » Sun Jan 13, 2019 11:49 am

varmfskii wrote:
Fri Jan 11, 2019 3:15 pm
It doesn't cause problems for the Eastern machines simply because they don't need compatibility with legacy software accessing those ports in the wrong way.
You are mistaken, in exUSSR computers, if possible, compatibility with old software is supported. Given example:

Example 1. The demo often uses the following hack: out (#fc), a . This hack allows the ZX Spectrum 128 to switch memory pages and change the border color at the same time. In my proposed decryption, the software that uses this hack will be executed correctly. But with the current ZX Next decoding, this software will not work.

Example 2. The old software uses two equal addresses of the Kempston joystick read port: #1f and #df. My proposed decryption allows you to correctly execute software using any port, and at the same time, thanks to the use of A16 allows you to avoid conflict with Kempston Mouse. The current ZX Next decoding does not allow to correctly execute the old software that accesses the joystick at #df.

Example 3. Some old ZX Spectrum software uses the port address #ff to read the current value of the display attribute. The same port is used in Timex 2048/2068 computers. My proposed decryption allows you to combine the use of these ports with a simple rule:

- if the port #ff was not written, then the port #ff corresponds to the architecture of the ZX Spectrum;
- if the #ff port was written to, the #ff port corresponds to the Timex architecture until the hardware reset;

In addition, it is recommended to use the additional address #bfff when using the Timex port from now on. The appeal on this address allows correctly executed software including computers Timex 2048/2068.

There is no mention in the documentation of the ZX Next computer of the possibility of execution of the software ZX Spectrum, using reading the current value of the screen attribute through the port #ff.

As you can see, my proposed decoding is more advanced than the current ZX Next decoding, which has poor compatibility with the old software.

User avatar
varmfskii
Posts: 144
Joined: Fri Jun 23, 2017 1:13 pm
Location: Albuquerque, NM USA

Re: Port system documentation updated

Postby varmfskii » Sun Jan 13, 2019 3:50 pm

I see the general superiority of your (eastern, soviet, exUSSR, etc.) decoding scheme, but you seem simply incapable of understanding how it breaks compatibility. I do not know if this is a failure in communication, you being too stubborn to actually have an open enough mind to perceive the problem, or that you are trolling.

It is very simple: if a port could be accessed through any instruction before and you restrict it to only being able to be accessed through certain instructions, you break compatibility with software that used instructions other than the ones you restrict it to. How is it that you can fail to understand this very simple concept.

It solves some problems and introduces others. As always TANSTAAFL.
Backer #2741 - TS2068, Byte, ZX Evolution


Who is online

Users browsing this forum: No registered users and 1 guest