Эмулятор ZX-Spectrum 128K + TR-DOS 1.05 (c) 1995 Н.В.Шалаев, Москва Документация по программе. Требования к аппаратуре. 1. Программа работает на компьютерах, совместимых с IBM AT 386 и выше. 2. Для работы необходима видеокарта, совместимая с VGA. Видеокарта работает в нестандартном режиме 256*192 с большим бордюром, который по частотам разверток эквивалентен режиму 320*240. 3. Программа использует для работы около 320k основной памяти. Память свыше 1MB не используется. 4. Запуск программы должен производиться из MS-DOS версии не ниже 5.0. 5. Программа работает в защищенном режиме, но стартует только из реального режима. 6. Во время работы эмулятора память свыше 30Mb использоваться не должна, любая попытка какого-либо резидентного драйвера обратиться к этой памяти кончится, в лучшем случае, "Системной ошибкой 0E". 7. Возможны конфликты с драйверами и резидентами. По возможности желательно их минимальное количество (если, конечно, возникают проблемы). Комплект поставки. Стандартный комплект поставки включает в себя следущие файлы: SPECTRUM.EXE - непосредственно эмулятор; SPECTRUM.DOC - документация по эмулятору. Опции. Программа может быть запущена как с опциями так и без них. DOS команда для запуска эмулятора имеет вид: SPECTRUM [<-опции>...] [<выбор диска A> <выбор диска B>...] Перед опцией может стоять "-" или "/". Возможные опции: H или любая неиспользуемая опция - помощь по опциям. S - игнорирование установки конфигурации и быстрый старт эмулятора. В случае ошибочной конфигурации будет осуществлен выход в программу установки конфигурации независимо от наличия опции. I - игнорирование загрузки конфигурации и установка конфигурации "по умолчанию". Выбор диска - имя файла образа диска, с которым эмулятор работает как с диском TR-DOS. Всего может быть четыре диска. Выбор пятого воспринимается как неиспользуемая опция и приводит к помощи по опциям. Установка конфигурации (Setup). Режимы работы. 1. Выбор ПЗУ. ПЗУ находятся в файлах с расширением ROM. Эти файлы имеют длину 16384 (4000h) и являются копиями оригинальных ПЗУ один в один. В ПЗУ не требуется доработка или адаптация к эмулятору. Программа не отслеживает попыток некорректных установок ПЗУ, таким образом каждый желающий может установить вместо 128 ПЗУ второе 48 и т.д. 2. Выбор диска. Эмулятор использует для работы файлы образа диска TR-DOS. Это файлы с расширением TRD имеющие длину 655360 (A0000h) - объем 80-дорожечной дискеты TR-DOS, являющиеся копиями дисков без какой-либо служебной информации. С помощью дисковых утилит, имеющихся в эмуляторе можно создать файл диска и восстановить диск из файла. Эмулятор не работает с дисками, имеющими нестандартный формат, а также свыше 80 дорожки! 3. Выбор ПЗУ для RESET. В этом пункте выбирается какое ПЗУ будет находиться в адресном пространстве 0-16383 (0-3FFFh) в момент передачи управления по 0-ому адресу. Во время работы эмулятора RESET - F2 (48), F3 (128) и F4 (TR-DOS). 4. Экранный режим: Непосредственный - данные, попадая в видеопамять Spectrumа, параллельно "копируются" в видеопамять IBM, и "сразу" выводятся на экран. В этом режиме достаточно сильно "тормозят" экранные операции, делая этот режим неподходящим для медленных машин. Периодический - данные видеопамяти Spectrumа выводятся на экран с определенной частотой. 5. Частота обновления экрана относится исключительно к периодическому режиму работы. Оптимальная установка - максимально возможная частота при которой все это хозяйство не тормозит. 6. Настройка быстродействия: Нормальное - автоматическая настройка по результатам тестирования быстродействия. Максимальное - отсутствие каких-либо задержек. Ускоренное и замедленное - тестирование быстродействия и установка скорости на 1/8 быстрее или медленнее. 7. Установка звука (beeper): включение и отключение звука beeperа. Клавиатура. ESC, F10 - выход. F1 - Помощь по клавиатуре. F2 - RESET 48k F3 - RESET 128k F4 - RESET TR-DOS F5 - Выбор диска для TR-DOS. F6 - Установка/снятие защиты записи. F7 - Выбор режима трассировок. F8 - Отладочная информация. Цифры и английские буквы соответствуют Spectrumу. Enter (белый и серый) - Enter. Shift, Ctrl (левые и правые) - Caps Shift (CS). Alt (левый и правый) - Symbol Shift (SS). Caps Lock - Caps Lock (CS+2). Tab - Ext Mode (CS+SS). ~ - Edit (CS+1). Белые: '-' - '-' (SS+J); '=' - '=' (SS+L); '\' - ':' (SS+Z); '[' - '(' (SS+8); ']' - ')' (SS+9); ';' - ';' (SS+O); ''' - '"' (SS+P); ',' - ',' (SS+N); '.' - '.' (SS+M); '/' - '?' (SS+C) Серые: '/' - '/' (SS+V); '*' - '*' (SS+B); '-' - '-' (SS+J); '+' - '+' (SS+K) Backspace - Delete (CS+0). Серые стрелки - лево (CS+5), право (CS+8), вниз (CS+6) и вверх (CS+7). Стрелки, центр и диагонали расширенной клавиатуры - KEMPSTON JOYSTICK. Особенности работы. 1. Кадровая развертка имеет частоту 70 Hz, что несоответствует частоте Spectrumа (50 Hz). Изображения на бордюре выглядят не так, как хотелось бы, а также возможны некоторые накладки программ, синхронизированных с кадрами. Кадровые прерывания остались по-прежнему 50 Hz. 2. ВГ93 работает по принципу "всегда готов". Никакие задержки не осуществ- ляются, при следущем обращении после передачи вспомогательной команды ВГ, эта команда уже выполнена, а на следущее обращение после передачи любой другой команды ВГ готов к передачи или приему данных. Мнимый дисковод вечно вращается и остановить его нельзя даже OUT (0FFh),0. 3. Отсутствующий файл образа диска воспринимается как неформатированная дискета. Файл с атрибутом Read Only как дискета, защищенная от записи. Установить или снять этот атрибут можно во время работы эмулятора с помощью клавиши F6. 4.01. Команда ВГ "Чтение адреса" всегда выдает: 00 00 01 01 00 00 для 0-ой стороны и 01 00 01 01 00 00 для 1-ой. 4.02. Команда ВГ "Запись дорожки" принимает массив 1800h данных и их не распознает: как бы дорожка не форматировалась, ее формат всегда будет одинаков. Если файл образа диска отсутствует то он создается. Соответствующие этой дорожке сектора в файле образа диска заполняются нулями. 4.03. Реальная дорожка мнимого дисковода одна для всех дисководов: на всех дисководах головка находится в одном и том же месте. 5. Некоторые стандартно форматированные дискеты не поддаются копированию в файл (судя по всему это неизлечимо). Ошибка при этом возникает на первом секторе каждой дорожки и связана с недостаточным для IBM AT расстоянием от начала дорожки до начала первого сектора. Выбирайте лучше форматировщики на Spectrume, Господа! Для переписывания программ с нечитаемых дискет можно пользоваться дискетами, записанными эмулятором. Они читаются и пишутся и на Spectrumе и на IBM. Могу также предложить способ частичной заклейки отверстия синхронизации на дискете: Заклейте чем-нибудь непрозрачным приблизительно половину отверстия, которое находится рядом с центральным отверстием на дискете так, чтобы луч который через него светит прерывался чуть раньше. Этого хватит для чтения некоторых ранее нечитаемых дискет. Правда, при таком подходе на некоторых дискетах и при заклейке слишком большой части отверстия эмулятор просто виснет. 6. Во время работы эмулятора прерывание клавиатуры системе не передается - никакие горячие клавиши системы и загруженных драйверов не работают. Отладочная информация и создание файла трассировки (логического протокола работы). Вызов отладочной информации осуществляется с помощью клавиши F8 во время работы эмулятора. На экран выводятся содержимое регистров Z80; дамп памяти по адресам на которые указывают PC, SP, BC, DE, HL, IX, IY; карта памяти - информация о том, какие сегменты в данный момент работают; содержимое регистров ВГ. Трассировку можно включить и выключить из меню, вызываемого клавишей F7. Трассировка в данном случае - запись в файл информации о регистрах трассируемого устройства после каждого шага трассируемого устройства. Файл трассировки для Z80 называется Z80.LOG, для ВГ93 - VG.LOG. Файл Z80.LOG содержит информацию об основных регистрах процессора; трехбайтный дамп памяти по адресу, на который указывает PC; карту памяти после каждого переключения сегментов, включая вход в TR-DOS и выход из него; информацию о запросах прерываний и режимах их обработки. Во время создания файла трассировки Z80 работа эмулятора происходит значительно медленнее (со всеми вытекающими отсюда последствиями). Файл VG.LOG содержит информацию о порте к которому было обращение; данные, которые в этот порт записаны или с него считаны; операция (R - чтение, W - запись); значение регистров ВГ; значение системного регистра TR-DOS (запись в порт FFh, выбор дисковода, стороны диска ...); сигналов Intrq и Drq (чтение с порта FFh); реального положения головки мнимого дисковода. Недоработки и найденные, но неисправленные ошибки! 1. В ВГ Отсутствует команда "Чтение дорожки". 2. Не работают или неправильно работают некоторые программы (скорее всего из-за ошибки в эмуляции процессора Z80). 3. В некоторых командах Z80 неправильно выставляются неиспользуемые 3 и 5 биты флагового регистра (например CP (HL), BIT...). 4. Полностью отсутствует музыкальный сопроцессор AY-3-8910/12. Новое в версиях. Отличия от предыдущих версий. Версия 1.00 09.06.1995 г. 1. Первоначальная версия. Версия 1.01 19.06.1995 г. 1. Изменен режим работы клавиатуры, с 3-его редко используемого на 2-ой, установленный по умолчанию, в результате чего программа стала менее прихотлива к аппаратуре компьютера. 2. Добавлены клавиши знаков препинания, арифметических действий, скобки и серый Enter. 3. Перед выходом из программы восстанавливаются первоначальные значения адресной линии A20 и системного регистра CR0. Версия 1.02 07.07.1995 г. 1. Расширена битовая карта ввода-вывода и таблица страниц, теперь BIOS и драйвера могут работать с портами свыше 400h (до FFF7h) и памятью свыше 2Mb (до 30Mb). 2. Эмулятор заработал с PCI и SCSI. 3. Исправлены некоторые ошибки и недочеты, найденные в предыдущей версии. 4. Во время создания файла трассировки Z80 клавиатура стала реагировать значительно лучше. Версия 1.03 08.07.1995 г. 1. Исправлены некоторые ошибки предыдущих версий. 2. Убраны излишества (типа разрешения адресной линии A20, которая теперь остается в покое). 3. Теперь после выхода из эмулятора в установку конфигурации можно вернуться в эмулятор и продолжить работу (без Resetа). Версия 1.04 12.07.1995 г. 1. Исправлены некоторые ошибки и недочеты предыдущих версий. 2. Изменен видеорежим. Теперь программа стала менее прихотлива к качеству монитора. Режим более устойчиво стоит на всех мониторах, не растягивается, не сжимается и не сдвинут в горизонтальном направлении. 3. Убран режим "Настройка экрана", за ненадобностью. 4. Теперь файл конфигурации называется SPECTRUM.INI (раньше SPECTRUM.CFG). Версия 1.05 31.07.1995 г. 1. Добавлены многие недокументированные комманды, некоторые стали работать корректней. 2. Теперь, если отсутствует файл ПЗУ при запуске эмулятора, то эмулятор выдает соответствующее сообщение, а не вываливается в DOS. 3. Из меню "Установка конфигурации" убрана конфигурация дисковых утилит, которая теперь присутствует только в меню "Дисковые утилиты". 4. После некоторых операций, например загрузки и выгрузке конфигурации, теперь на некоторое время выскакивает сообщение "Операция прошла успешно". 5. Клавиши 7, 9, 1, 3 на расширенной клавиатуре теперь отрабатываются как диагонали Kempston джойстика. 6. Появилась возможность отключения beeperа. 7. Исправлены некоторые недочеты предыдущих версий и сделаны некоторые другие изменения.