Важная информация

User Tag List

Показано с 1 по 8 из 8

Тема: Особенности программирования под ZXM-Phoenix

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Banned Аватар для Black_Cat
    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation Особенности программирования под ZXM-Phoenix

    К сожалению, из-за временного отсутствия доки по портам Феникса, возникают непонятки с его программированием. Поэтому в двух словах постараюсь восполнить этот пробел.
    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 не активируется и можно работать с теневыми портами прямо из ПЗУ Спектрума. Вот краткое описание логики работы:
    D7 #EFF7 - IODOS: 0-off, 1-on - D7=1 - открывает доступ ко всем портам доступным в режиме DOS, а так же портам Gluk RTC, при этом ПЗУ TR-DOS не активируется, кроме того вырабатывает инверсный сигнал IODOS/, подаваемый на линию B20 шины NemoBus v.1.1, предназначенный для активации DOS портов внешних устройств. По сбросу устанавливается в ноль.
    Такое использование D7 #EFF7 является программно-прозрачным и совместимым сверху вниз со всеми клонами, не создаёт для них никаких проблем, и может сразу включаться в алгоритмы программ, дабы они работали везде.
    Т.е. программы использующие эту фунцию будут корректно и прозрачно выполняться и на других клонах! А потому предлагается при написании программ сразу учитывать эту расширенную возможность Феникса, и включать её в драйвера всех клонов - им от этого хуже не будет, но программа при этом станет универсальной, и будет работать так же и на Фениксе!
    Учитывать это необходимо в программах работающих одновременно с TR-DOS и Gluk RTC (т.е. с глюкочасами), а так же с устройствами, пересекающимися по портам в теневом и обычном режиме, например Kempston Joystick, который нельзя будет опрашивать при открытых постоянно теневых портах, а надо будет закрывать их на время опроса.

    P.S. В заключение хочу сказать, что внедрённое в Фениксе новшество по открытию теневых портов - очень нужное и удачное решение, открывающее новые возможности работы не только с ВГ93, но и со SMUC. И особенно это новшество будет полезно при портировании CP/M, т.к. позволяет избавиться от доступа к флопу через открытие ПЗУ TR-DOS.
    Поэтому рекомендую доработтать таким образом и другие компьютеры - это очень облегчит вам жизнь при работе с теневыми портами!
    Последний раз редактировалось Black_Cat; 01.05.2012 в 15:01.

  2. Этот пользователь поблагодарил Black_Cat за это полезное сообщение:

    USERHOME (29.12.2020)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Banned Аватар для Black_Cat
    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    3) Ещё одной особенностью является программирования NemoIDE для Феникса. В отличие от оригинальной версии этого контроллера, не работающего в режиме DOS, на Фениксе (и на выпускаемых сейчас новых контроллерах NemoIDE) возможна работа в любом режиме, не зависимо от сигналов DOS и IODOS.
    Последний раз редактировалось Black_Cat; 02.03.2011 в 23:55.

  5. #3
    Banned Аватар для Black_Cat
    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    4) Ещё одной аппаратной особенностью Фениса является биперный выход. Этот выход имеет гибкую систему выходной комутации с помощью системы перемычек, позволяющей подавать сигналы на смеситель внутреннего усилителя, либо на внутренний или внешний аудио разъём. При этом, возможны различные варианты выводимого сигнала:

    a) однобитный стерео сигнал переменного тока с закрытым выходом (т.е. выход через конденсаторы на смеситель, или внутренний, или внешний разъём).
    Вывод стереосигнала осуществляется через разряды D3 и D4 #xxFE.

    b) двухбитный аналоговый моно сигнал с резистивного ЦАПа, с закрытым или открытым выходом (т.е. выход прямой, или через конденсатор на смеситель, или внутренний, или внешний разъём). Сигнал может иметь 4 уровня амплитуды, и линейно меняться в зависимости от комбинации битов записанных в разряды D3 (младший), D4 (старший) порта #xxFE. ЦАП, встроенный в Феникс, является чуть улучшеной модифиацией оригинального, встоенного в ULA ZX Spectrum 48kb, но в отличии от оригинала имеет линейную зависимость амплитуды сигнала от состояния разрядов D3, D4 #xxFE, и пригоден для генерации простейшего сигнала с четырьмя уровнями амплитуды как для получения более качественного биперного звука, так и для управления внешними устройствами, например в качестве регулятора громости на 4 положения для Covox или SounDrive.
    Последний раз редактировалось Black_Cat; 30.04.2012 в 17:58.

  6. #4
    Banned Аватар для Black_Cat
    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    5) Аппаратное беззнаковое умножение в ZXMC-2.

    Возможность аппаратного беззнакового умножения существует в любом контроллере ZXMC-2 с прошивкой v2.6 и старше, в т.ч. и для интегрированного в Феникс контроллера. Ниже приведена дешифрация портов:
    Код:
    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
    Как видно, в порты множителя и результата можно и писать и читать. По включению компьютера, в регистрах портов множителей значение неопределено. При любой записи в эти порты, вычисляется результат их перемножения, который записывается в регистры результата, откуда доступен для чтения. В порты результата возможна прямая запись данных, при этом имевшееся там значение умножения портится. При аппаратном сбросе компьютера произведённом как с клавиатуры, так и кнопкой системного блока, содержание всех регистров перемножения не меняется.

    Ниже приведён пример кода умножения:
    Код:
    ; 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
    Аппаратное беззнаковое умножение рекомендуется использовать в первую очередь в firmware ZXM-Phoenix, т.к. ZXMC-2 является неотъемлемой частью этого компьютера.
    Последний раз редактировалось Black_Cat; 30.04.2012 в 17:45.

  7. #5
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кого благодарить за переезд?

  8. #6
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Keeper, меня. Когда в теме будет больше программирования, чем концепта - буду первым голосовать за перезд обратно.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  9. #7
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    больше программирования, чем концепта
    Какой концепт? Продано больше 120 плат компьютера! RTFM: http://micklab.narod.ru/ZXMPhoenix.htm

  10. #8
    Activist Аватар для Zorki-4k
    Регистрация
    26.10.2011
    Адрес
    г. Харьков, Украина
    Сообщений
    361
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    127 если точно. И одна нулевой ревизии у Mick'a.
    ZXM-Phoenix 1024 rev04
    Leningrad-2012

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Продажа ZXM-Phoenix 1024
    от Mick в разделе Барахолка (архив)
    Ответов: 419
    Последнее: 01.04.2011, 19:36
  2. Недокументированные особенности КР1818ВГ93
    от EARL в разделе Программирование
    Ответов: 6
    Последнее: 19.10.2009, 23:17
  3. Языки программирования
    от BlackWolf в разделе Программирование
    Ответов: 188
    Последнее: 26.04.2009, 15:34
  4. Особенности фирменного Спектрума
    от dwt в разделе Программирование
    Ответов: 45
    Последнее: 08.01.2009, 14:34
  5. Ответов: 26
    Последнее: 01.08.2008, 20:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •