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

User Tag List

Страница 171 из 198 ПерваяПервая ... 167168169170171172173174175 ... ПоследняяПоследняя
Показано с 1,701 по 1,710 из 1975

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

  1. #1701
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Речь, наверное, о конвертации на лету папки с хобетными файлами в образ и обратно. Кстати, потенциально очень полезная фича. Но только это же не ерунда типа ленточных traps, тут придется навертеть килограммы эвристик, и то работать будет не всегда.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  2. #1702
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    206
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не прошло и двух лет, как я добрался до еще тогда обещанной темы.

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    хм, ATM4.50 тяжко писалась и потестить особо не начем было, с ATM7.10 проще

    А можешь проверить, дешифрация портов правильная для ATM4.50?
    Вот как они выбираются в ZXMAK2:

    #FE - маска адреса #0001, выборка #0000 (есть подозрение что маска неправильная)
    #FB - маска адреса #0004, выборка #0000
    #7FFD - маска адреса #8202, выборка #0200
    #FDFD - маска адреса #8202, выборка #8000
    #7DFD - маска адреса #8202, выборка #0000

    Updated: попробовал отключить перепутывание памяти - дема заработала на ATM4.50, но с палитрой всеравно чтото не так...
    Кидаю сюда полную схему дешифрации портов АТМ1:

    Обозначения адресных линий в портах здесь следующие:
    "1" или "0" - однозначная обязательная установка или сброс соответствующего адреса при выборе порта.
    "X" - значение этого адреса может меняться в зависимости от задач пользователя.
    "n" - значение этих линий неопределено и в дешифрации адреса порта они не участвуют.

    Также просьба уделить внимание описанию сигнала CPNET в порту out #FDFD.

    Порт out #FE: (выборка: %nnnnnnnn XXXnX1n0)

    Как и на любом Спектруме он управляет бордюром и звуком -
    D0-D2 - цвет бордюра (8 цветов) – BRG
    D3 - запись сигнала на магнитофон
    D4 - управление звуковым каналом ("бипером")
    D5-D7 - не используются.

    Кроме стандартных функций введены новые, путем сброса в "0" некоторых адресных линий порта:

    A7=0(именно адресная шина: то есть вывод не в #FE, а, например, в #7E! Не путать с шиной данных!!! В дальнейшем адресные шины будут обозначаться An: а шины данных - Dn) - CPUS: выключение ПЗУ, вместо него с адреса #0000 включается страница 0, а с адреса #4000 - страница 4 вместо страницы 5 с экраном(экран как и прежде располагается в 5(7) странице ОЗУ, но для доступа к нему необходимо включать эти страницы в верхней памяти по #7FFD). Это, естественно, нужно в CP/M, но ничто не мешает использовать его в обычном режиме. Правда в этом режиме недоступны порты TR-DOS, так что для работы с дисководом нужно прыгать в обычный режим: устанавливая в порте #FE линию A7 в единицу. Также не действует переключение ПЗУ через #7FFD (хотя ОЗУ, экраны, защелка верхней памяти работают): но попытавшись изменить через #7FFD сигнал ROM2: и включив позже ПЗУ обратно, вы увидите, что ваш труд не пропал даром!

    A6 - RG0(A6=1 - RG0=1 и наоборот)
    и
    A5 - RG1(также как и с A6)

    включение расширенных экранов, кроме того именно при обнулении RG0 происходит перепутывание памяти. Комбинации:

    RG0=1 RG1=1 - sinclair-режим 256x192
    RG0=0 RG1=1 - режим 640x200, атрибут на байт.
    RG0=0 RG1=0 - режим 320x200, 16 цветов, аналог EGA.
    RG0=1 RG1=0 - не используется...

    -----------

    A3 - Включение BRIGHT 1 для бордюра! То есть на бордюр можно выводить не 8, а 16 цветов!
    (Значение бита инверсно, то есть A3=0 - BRIGHT1, A3=1 - BRIGHT0)

    Маленькое НО: использование обнуления старших адресов порта #FE является не совсем удачным, так как возникла несовместимость с достаточно большим, пусть и не фатально, количеством ПО, которое вываливается в высокую графику и виснет из-за перепутывания памяти... Я это "вылечил" тумблером, которые когда надо блокировали обнуление при обращении к #FE адресов A7,6,5...

    Порт in #FE: (выборка: %XXXXXXXX nnnnn1n0)

    как и в стандартном Спектруме:

    D0-D4 - чтение одной из пяти клавиш полуряда клавиатуры.
    A8-A15 - выбор полурядов клавиатуры, путем сброса соответствующего бита в ноль.
    D5 - "готовность АЦП" (аналогично #7FFD.7 для turbo 2+)
    D6 - чтение сигнала с магнитофона.

    Исключение -

    D7 - это системный сигнал Z. Он активизируется (устанавливается в "1") строго через определенное время после INT. На этом строится защита ПЗУ CP/M в АТМ - оно закодировано (вернее та часть, которая перекидывается позднее в ОЗУ): и ключом к коду является подученное число тактов до установки Z.

    Порт out #FB (выборка: %nnnnnnnn Xnnnn0n1) - вывод на принтер (centronix):

    D0-D7 - данные. Также по #FB работает встроенный COVOX

    A7=0 - строб данных, то есть вывод в на принтер осуществляется выводом в этот порт трижды -
    OUT (#FB), A
    OUT (#7B), A
    OUT (#FB), A

    А вообще-то это стандартный LPRINT III

    Порт in #FB (выборка: %nnnnnnnn Xnnnn0n1) - чтение CENTRONIX:

    D7 - BUSY с принтера ("0" - свободен, "1" - занят)
    D6 - ULINE - для встроенного модема
    D0-D5 - всегда в "1"

    A7 - "1" - так называемый CPSYS: включение страницы ПЗУ под номером 0 с прошитой CP/M.
    "0" - работа в стандартных для Спектрума страницах ПЗУ...

    Всего в ПЗУ 27512 таких страниц 4 –
    0 - CP/M
    1 - TR-DOS 5.03
    2 - BASIC 128
    3 - BASIC 48

    Включение CPSYS также блокирует переключение ПЗУ через #7FFD с сохранением выведенного числа до отключения этого режима. Зато сохраняется возможность доступа к портам TR-DOS (без включения ПЗУ TR-DOS). Для этого просто надо сделать CALL в промежуток от 15616 до 15871, где организованы нужные подпрограммы. Стандартным же образом доступ к этим портам и прекращается - путем выхода за пределы 16383.

    В зависимости от режима работы карта памяти выглядит так:

    Mode Sp-128 Sp-48 TR-DOS CP/M-sys CP/M-users
    ROMs ROM2=0 ROM2=1 ROM2=0(!) ROM2=x ROM2=x
    #0000 ROM-2 ROM-3 ROM-1 ROM-0 RAM-0
    #4000 RAM-5 RAM-5 RAM-5 RAM-5 RAM-4
    #8000 RAM-2 RAM-2 RAM-2 RAM-2 RAM-2
    #C000 #7FFD-pgs #7FFD-pgs #7FFD-pgs RAM 1 or 3 RAM-3


    Порт in/out #FA (выборка: %nnnnnnnn nnnnn0n0) - идет на внешний разъем - и представляет собой нечто похожее на системную шину:

    Число выводимое/вводимое в/из него это D0-D7, а число выведенное в порт принтера #FB - это шина адреса A0-A7. К этому порту подключался программатор UNIPROG той же фирмы МикроАРТ.

    Порт out #7FFD (выборка: %0nnnnn1n nnnnnn0n) - такой же как и в других Спектрумах:

    D0-D2 - выбор одной из восьми страниц по 16Кб из 128Кб по адресу #C000.
    D3 - номер видеостраницы
    D4 - выбор одной из двух страниц ПЗУ: при 0 - BASIC-128, при 1 - BASIC-48
    D5 - при равенстве 1 - блокирует порт #7FFD для совместимости со Спектрумом-48.
    D6-D7 - не используются.

    Порт in #7FFD (выборка: %0nnnnn1n nnnnnn0n) - для встроенного модема:

    D0 – BELL
    D1-D7 - всегда в "1"

    Порты для AY (#FFFD и #BFFD) также стандартные...
    (выборка: %11nnnn1n nnnnnn0n и %10nnnn1n nnnnnn0n соответственно)


    Все остальные дополнительные порты образуются из порта #FD плюс
    обнуление A9, что приводит к зависанию компьютера при использовании "половинки" #FD при переключении памяти и выводе звука на AY в программах для Пентагона... "Вылечил" тумблером, отрубающим A9 когда надо вручную...

    Вот эти порты:

    Порт out #7DFD (выборка: %0nnnnn0n nnnnnn0n) - порт палитры:

    какой цвет из 16-ти в данный момент выводится на монитор (то есть лежит на шине данных контроллера графики), тот и подлежит замене. То есть это или текущий цвет бордюра, или текущий выводимый атрибут (или INK, или PAPER - в зависимости от того. Был ли установлен бит пикселя или нет).

    D0-D5 – BRGbrg

    Все биты цвета инверсны!!! То есть 0 - цвет включен, 1 - выключен.

    brg - цвета с пониженной интенсивностью, раза в два тусклее цвета в режиме BRIGHT 0.
    BRG - цвета обычной яркости - BRIGHT 0

    При включении одновременно битов BRG и brg получается цвет повышенной яркости - BRIGHT 1.

    Таким образом, каждый цвет из RGB имеет 4 градации яркости - от черного до BRIGHT1. Путем комбинации этих 6 битов и получаем 64 самых разнообразных оттенка.

    Порт in #7DFD (выборка: %0nnnnn0n nnnnnn0n) - чтение с АЦП (covox наоборот):

    D0-D7 - данные.

    Порт out #FDFD (выборка: %1nnnnn0n nnnnnn0n) - системный:

    D0-D1 - переключение расширенной памяти до 512Кб
    D2 - ROM-диск, включение дополнительных 4-х страниц пзу, если в компе стоит не 27512, а 271000, а уж что ты туда прошьешь... Располагаются выше основных четырех страниц. В ATM-2 для использования этого наворота в CP/M прошит драйвер, а в ATM-1 "забыли"... Типа крутись сам...
    D3 - CPNET - для нереализованных сетевых возможностей... Только лишь будучи установлен, приводит к зависанию при попытке обратиться к TR-DOS, ибо в этом случае при попытке обратиться в промежуток адресов РЗУ #3Dxx происходит переход не в ПЗУ TR-DOS (страница 1 в ROM-прошивке), а в ПЗУ CP/M (страница 0 в ROM-прошивке). В свое время авторы ПЗУ планировали вставить туда перехватчик обращений к портам TR-DOS, но так и не довели дело до конца, а аппаратная «мулька» осталась... Поэтому всегда это сигнал надо держать в "0"
    D4 – TON
    D5 – TNAB

    эти биты для модема...

    Порт in #FDFD (выборка: %1nnnnn0n nnnnnn0n)НЕЗАДЕЙСТВОВАННЫЙ. Сигнал выборки на схеме дешифратора присутствует, но никуда не ведет. Теоретически возможно использовать под свои нужды.

    Порты in/out #xF (выборка: %nnnnnnnn XXXnnn11) – порты BETA-disk интерфейса (#1F, #3F, #5F, #7F и #FF) – ТЕНЕВЫЕ.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  3. #1703
    Member
    Регистрация
    08.05.2016
    Адрес
    г. Южа, Ивановская обл.
    Сообщений
    33
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Del
    Последний раз редактировалось апро; 30.03.2017 в 23:39.

  4. #1704
    Veteran Аватар для abelenki
    Регистрация
    27.04.2008
    Адрес
    Perm, Russia
    Сообщений
    1,022
    Спасибо Благодарностей отдано 
    307
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    102 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CodePlex закрывается.

    ZXMAK2 будет на GitHub переезжать?
    MAME Stuff | ZX Spectrum favorites | Bubble Bobble Series chart / wiki | PC configuration

  5. #1705
    Veteran Аватар для abelenki
    Регистрация
    27.04.2008
    Адрес
    Perm, Russia
    Сообщений
    1,022
    Спасибо Благодарностей отдано 
    307
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    102 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    подкажите, можно ли как-то запустить картридж игры The Sword of Ianna на ZXMAK2?

    стандартные картриджи типа Panama Joe (размером 16,384 байт) удавалось запустить переименовнием их в 48.rom, закидыванием в архив roms.pak/ZX048 и переключением модели на ZX Spectrum 48.

    а вот как быть The Sword of Ianna? картридж весит 524,288 байт.
    Последний раз редактировалось abelenki; 01.10.2017 в 10:50.
    MAME Stuff | ZX Spectrum favorites | Bubble Bobble Series chart / wiki | PC configuration

  6. #1706
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    инфа есть как переключать страницы?

  7. #1707
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от abelenki Посмотреть сообщение
    подкажите, можно ли как-то запустить картридж игры The Sword of Ianna на ZXMAK2?

    стандартные картриджи типа Panama Joe (размером 16,384 байт) удавалось запустить переименовнием их в 48.rom, закидыванием в архив roms.pak/ZX048 и переключением модели на ZX Spectrum 48.

    а вот как быть The Sword of Ianna? картридж весит 524,288 байт.
    Нельзя, по идее. Картридж это же не только ПЗУ, но и схема по переключению страниц памяти. Его надо отдельно эмулировать.

  8. #1708
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Там, в общем, codeplex.com помер, сейчас работает только на чтение.
    Я выдрал оттуда репозиторий со всеми коммитами и сконвертил в git. "Выдрал" - это самое подходящее слово, потому что из-за невероятно странной логики работы TFS с регистром в файловых именах и ещё более странной codeplex-овской схемы сопряжения TFS с svn сделать это нормальным путем - через "git-svn clone" оказалось невозможно.

    На гитхабе уже было несколько зеркал, но все они представляют собой лишь снапшот определенной ревизии. Тут же вся история сохранена полностью. 1000 с лишним коммитов, жалко терять. ZXMAK, если будешь переезжать на гитхаб - форкай, сэкономишь время.
    https://github.com/atsidaev/ZXMAK2

    Плюс взял на себя наглость собрать рабочий эмуль из последней версии, что была в оригинальном репозитории. Там со времён последнего релиза было много изменений.
    https://github.com/atsidaev/ZXMAK2/r...g/v2.9.2.40437
    Последний раз редактировалось Eltaron; 24.01.2018 в 19:27.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  9. #1709
    Guru Аватар для ZEman
    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    112
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    23 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а что вообще случилось, куда делся автор ?
    также как и Кладов - потерял интерес, или что-то другое ?

  10. #1710
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEman Посмотреть сообщение
    а что вообще случилось, куда делся автор ?
    также как и Кладов - потерял интерес, или что-то другое ?
    Так ядро работает отлично, и 48К-128К модели сэмулированы. Это то, чего хватает 95% пользователей. Или разве остались какие-то проблемы?
    У меня, к примеру, других эмулей даже и не стоит.

    А эмуляцию других клонов или периферии можно реализовывать и без автора. Там же очень приятная плагинная архитектура, где наружу торчит этакий ZX-BUS.
    Да и в целом внутри всё хорошо распилено на блоки и уровни абстрацкии. Сорцы и доступны, и понятны. А у Кладова совсем наоборот, и непонятны, и недоступны
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

Страница 171 из 198 ПерваяПервая ... 167168169170171172173174175 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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