![]() |
|
|
|
|
|
#1 | |
|
Banned
Join Date: 15th June 2006
Location: S.Pb
Posts: 5,931
Thanks: 26
Thanked 116 Times in 106 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
К сожалению, из-за временного отсутствия доки по портам Феникса, возникают непонятки с его программированием. Поэтому в двух словах постараюсь восполнить этот пробел.
1) ZXM-Phoenix - это развитие KAY и Scorpion, при котором основной целью было соединить эти два компьютера в одну машину, объединяющую достоинства обоих клонов. Поэтому Феникс поддерживает управление и Кая и Скорпа. Но это не значит, что поддерживаются какие-либо любительские доработки сделанные для этих компов!!! так же это не значит, что поддерживаются порты GMX, который уже не является Скорпом!!! Поэтому искать порты GMX, а тем более всякие доработки под GMX на Фениксе бесполезно - их там нет, и быть не может!! ZXM-Phoenix - это чистый KAY-1024 + чистый Scorpion ZS256 без всяких левых доработок!!! 2) На Фениксе интегрирована мультикарта Caro ZXMC-2, но с небольшими отличиями от оригинала. Одним из отличий является поддержка мультикартой джойстика (точнее стандартного геймпада), что на программировании никак не сказывается, т.к. видится он как обычный Kempston. Вторым отличием мультикарты на Фениксе является расширенные возможности управления теневыми портами через D7 #EFF7 - сигнал IODOS. Здесь D7 #EFF7 выполняет роль включателя абсолютно всех теневых портов, а не только Gluk RTC (для тех, кто не знал - Gluk RTC использует собственные теневые порты, активируемые D7 #EFF7). В Фениксе же включение всех теневыех портов - и TR-DOS и Gluk RTC - объединено вместе. Функционально это сопоставимо с включением теневых портов в Профи и Кворуме при работе с ними в CP/M. При таком включении ПЗУ TR-DOS не активируется и можно работать с теневыми портами прямо из ПЗУ Спектрума. Вот краткое описание логики работы: Quote:
Т.е. программы использующие эту фунцию будут корректно и прозрачно выполняться и на других клонах! А потому предлагается при написании программ сразу учитывать эту расширенную возможность Феникса, и включать её в драйвера всех клонов - им от этого хуже не будет, но программа при этом станет универсальной, и будет работать так же и на Фениксе! Учитывать это необходимо в программах работающих одновременно с TR-DOS и Gluk RTC (т.е. с глюкочасами), а так же с устройствами, пересекающимися по портам в теневом и обычном режиме, например Kempston Joystick, который нельзя будет опрашивать при открытых постоянно теневых портах, а надо будет закрывать их на время опроса. P.S. В заключение хочу сказать, что внедрённое в Фениксе новшество по открытию теневых портов - очень нужное и удачное решение, открывающее новые возможности работы не только с ВГ93, но и со SMUC. И особенно это новшество будет полезно при портировании CP/M, т.к. позволяет избавиться от доступа к флопу через открытие ПЗУ TR-DOS. Поэтому рекомендую доработтать таким образом и другие компьютеры - это очень облегчит вам жизнь при работе с теневыми портами! Last edited by Black_Cat; 1st May 2012 at 16:01. |
|
|
|
|
| The Following User Says Thank You to Black_Cat For This Useful Post: | Djoni (8th January 2011) |
|
|
#2 |
|
Banned
Join Date: 15th June 2006
Location: S.Pb
Posts: 5,931
Thanks: 26
Thanked 116 Times in 106 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
3) Ещё одной особенностью является программирования NemoIDE для Феникса. В отличие от оригинальной версии этого контроллера, не работающего в режиме DOS, на Фениксе (и на выпускаемых сейчас новых контроллерах NemoIDE) возможна работа в любом режиме, не зависимо от сигналов DOS и IODOS.
Last edited by Black_Cat; 3rd March 2011 at 00:55. |
|
|
|
|
|
#3 |
|
Banned
Join Date: 15th June 2006
Location: S.Pb
Posts: 5,931
Thanks: 26
Thanked 116 Times in 106 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
4) Ещё одной аппаратной особенностью Фениса является биперный выход. Этот выход имеет гибкую систему выходной комутации с помощью системы перемычек, позволяющей подавать сигналы на смеситель внутреннего усилителя, либо на внутренний или внешний аудио разъём. При этом, возможны различные варианты выводимого сигнала:
a) однобитный стерео сигнал переменного тока с закрытым выходом (т.е. выход через конденсаторы на смеситель, или внутренний, или внешний разъём). Вывод стереосигнала осуществляется через разряды D3 и D4 #xxFE. b) двухбитный аналоговый моно сигнал с резистивного ЦАПа, с закрытым или открытым выходом (т.е. выход прямой, или через конденсатор на смеситель, или внутренний, или внешний разъём). Сигнал может иметь 4 уровня амплитуды, и линейно меняться в зависимости от комбинации битов записанных в разряды D3 (младший), D4 (старший) порта #xxFE. ЦАП, встроенный в Феникс, является чуть улучшеной модифиацией оригинального, встоенного в ULA ZX Spectrum 48kb, но в отличии от оригинала имеет линейную зависимость амплитуды сигнала от состояния разрядов D3, D4 #xxFE, и пригоден для генерации простейшего сигнала с четырьмя уровнями амплитуды как для получения более качественного биперного звука, так и для управления внешними устройствами, например в качестве регулятора громости на 4 положения для Covox или SounDrive. Last edited by Black_Cat; 30th April 2012 at 18:58. |
|
|
|
|
|
#4 |
|
Banned
Join Date: 15th June 2006
Location: S.Pb
Posts: 5,931
Thanks: 26
Thanked 116 Times in 106 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
5) Аппаратное беззнаковое умножение в ZXMC-2.
Возможность аппаратного беззнакового умножения существует в любом контроллере ZXMC-2 с прошивкой v2.6 и старше, в т.ч. и для интегрированного в Феникс контроллера. Ниже приведена дешифрация портов: Code:
PORT ADRESS DECODING hex/dec A15 ... A0 A15 ... A0 READ WRITE -------------------------------------------------------------------------------- #E8F7/59639 1110100011110111 1110100011110111 multipli data 1 multipli data 1 #E9F7/59895 1110100111110111 1110100111110111 multipli data 2 multipli data 2 #EAF7/60151 1110101011110111 1110101011110111 multiplicat lo multiplicat lo #EBF7/60407 1110101111110111 1110101111110111 multiplicat hi multiplicat hi Ниже приведён пример кода умножения: Code:
; hl = e*d ld bc,#E8EF out (c),e ; inc b out (c),d ; inc b in l,(c) ;мл.байт e*d inc b in h,(c) ;ст.байт e*d Last edited by Black_Cat; 30th April 2012 at 18:45. |
|
|
|
| The Following User Says Thank You to Black_Cat For This Useful Post: | Djoni (30th April 2012) |
|
|
#6 |
|
Veteran
Join Date: 18th February 2005
Location: Набережные Челны
Posts: 1,556
Thanks: 598
Thanked 115 Times in 75 Posts
![]() ![]() ![]() |
Keeper, меня. Когда в теме будет больше программирования, чем концепта - буду первым голосовать за перезд обратно.
|
|
|
|
|
|
#7 |
|
Master
Join Date: 16th November 2007
Location: Харьков
Posts: 873
Thanks: 356
Thanked 392 Times in 257 Posts
![]() ![]() ![]() ![]() ![]() |
Какой концепт? Продано больше 120 плат компьютера! RTFM: http://micklab.narod.ru/ZXMPhoenix.htm
|
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|