PDA

Просмотр полной версии : Фирменный ZX128 и порт $ff



ram_scan
05.03.2018, 16:46
Друзья, не так давно (ну точнее давно) на форуме промелькивало сообщение со ссылкой, что в фирменном 128к таки обнаружен аналог порта $ff. С техническими подробностями. В букмарки я себе его дурак не поставил, а теперь весь гугель истерзал, не могу найти хоть убейся. Подскажите пожалуйста кто помнит, где оно это было. Да и а FAQ внести было бы это дело некисло.

Spectramine
05.03.2018, 16:55
Друзья, не так давно (ну точнее давно) на форуме промелькивало сообщение со ссылкой, что в фирменном 128к таки обнаружен аналог порта $ff. С техническими подробностями. В букмарки я себе его дурак не поставил, а теперь весь гугель истерзал, не могу найти хоть убейся. Подскажите пожалуйста кто помнит, где оно это было. Да и а FAQ внести было бы это дело некисло.

В фирменном 128к/+2 порт #FF всегда был, вот в +2А/+3 обнаружили его аналог сравнительно недавно, а плотно исследовали в сентябре прошлого года. Вот тема на WoS, ссылка (https://www.worldofspectrum.org/forums/discussion/comment/921973/#Comment_921973) ведет на краткие результаты исследований:

The floating bus on the +2A/+3 behaves differently from the 48K/128K/+2. The key differences are listed below.

1. It is found on different ports.
The formula for the port number is (1 + (4 * n) && n < 0x1000) (that is ports 1, 5, 9, 13 . . . 4093)
2. The bus always returns $FF if bit 5 of port 32765 is set (i.e. paging is disabled).
3. However, if bit 5 is reset, the port read returns the value currently read by the ULA ORed with 1 (i.e. bit 0 is always set).
4. During non-contended intervals (that is, when the ULA is drawing the border or during the four T states in between reading the two pairs bitmap+attribute bytes of the display file), the bus retains the value that was last read from contended memory (usually, the last attribute byte read) and not $FF, as would be the case on the 48K/128K/+2.
5. Reading and writing from/to slow memory pages by Z80 (including operation code fetching) affects on floating bus too. So, (the value of the last operation with slow memory (pages 4,5,67) by Z80 or ULA) OR 1, will be returned by reading of floating bus ports.
6. The main pattern of the floating bus reading see there: https://www.worldofspectrum.org/forums/discussion/comment/921229/#Comment_921229

ram_scan
05.03.2018, 17:00
Во, это именно то что я искал. Спасибо большое.