ZX Spectrum
Game

Twenty Commodes

James Smith (Великобритания),

Автор:

Жанр: Эмуляторы


Доступные версии

 Неофициальное издание
Играть!

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один
  • Описание (авт.пер.)
  • Информация

*** ДВАДЦАТЬ комоды *** V1.90

Обзор и требования

Эта программа эмулирует Commodore VIC 20 на Sinclair Spectrum! Первоначально он был выпущен в качестве ввода для CSSCGC2008, но версия 1.90 претерпела некоторые улучшения, чтобы сделать его лучше, чем когда-либо (см ниже для более подробной информации).

Программа будет работать на стандартной 48К Spectrum но будет молчать. 128к Спектры (и 48К машины с совместимых AY интерфейсов) обеспечит разумную эмуляцию звуковых генераторов ВМЦ. Кемпстон ​​джойстик может использоваться для эмуляции джойстика VIC.

Если ваш эмулятор или клон Spectrum обеспечивает возможность работать быстрее, то сейчас самое время, чтобы использовать его! Скорость Z80 из 50 МГц будет эмулировать аппаратные 6502 и достаточно хорошо.

1) Что VIC 20?

ПЭТ, возможно, был первый компьютер Commodore, но это было VIC который помог ввести компьютеры энтузиастов и семей. Когда она вышла в 1980 году он был многие черты еще подрезать конкуренцию в цене. Это было дешево, но это еще был надлежащий клавиатуры и имел аппаратную поддержку графики, сроки и I / O. Добавьте к этому, что он мог сделать цвет и звук, и вы можете видеть, почему это хорошо продается. Даже объявления Уильям Шатнер ТВ в Америке помогли продать VIC! Синклер ZX80 также вышел в 1980 году и было удивительно для продается в 99? ($ 200), но это было гораздо проще компьютер. Я не думаю, что это справедливо сравнить две машины, однако интересно отметить различия от того, как американцы и британского подхода проектирования компьютер.

Спешу добавить, я никогда не владел VIC 20 (слишком дорого!), Так что это был крутой кривой обучения … К счастью ВИЦЕ сделала тестирования намного проще для меня.

2) Эмулятор

2.1) Почему эмулировать VIC 20?

Известно, что Commodore 64 и Sinclair / Timex Spectrum пользователи имеют дружественный (и не очень дружелюбный) соперничество. Я думал, что это было бы хорошо, чтобы получить стандартный спектр (без дополнительных аппаратных средств) для эмуляции машину Commodore. Я выбрал VIC20, потому что это не имеет сложные чипы VIC-II и SID, пока он по-прежнему работает МУП Basic 2.0 В целом, это слава. Вик также имеет меньшее количество цветов и разрешение экрана меньше Спектр-х, так эмуляции облегчается. Даже в текстовом режиме 40 характер C64 будет трудно правильно эмулировать по спектру.

Имеет ли подражать все о ВМЦ 20? Короче говоря, нет! Тем не менее, он делает подражать изрядное количество VIC 20 аппаратных средств. Конечно, достаточно запустить некоторые коммерческие игры!

В разделах ниже подробно, как каждая часть архитектуры VIC эмулируется. Пожалуйста, обратите внимание, он может получить немного технических …

2.2) 6502 CPU

В соответствии с эмулятором UK101, эта программа имеет виртуальную 6502 ядро. Он эмулирует все NMOS 6502 инструкции и большую часть CMOS 6502 инструкции тоже. Только BBS, BBR, СТО, WAI, SMB и RMB инструкции не выполняются. Остальные инструкции CMOS и режимы адресации реализуются. 6502 принимает CMOS поведение при общении с прерываний (BCD выключен), BCD арифметика (флаги установлены правильно) и команда JMP (корректно работает над границами страниц).

Если “незаконным” код операции запуска затем граница станет красным, но по-прежнему работает. Код операции будут расшифрованы как NOP – так же, как КМОП 6502, а PC будет увеличен на 1,2 или 3 байта в соответствии с КМОП поведения. Там нет “JAM” код операции внутри этого эмулятора …

2.3) 6522 ВИАС

Невозможно подражать таймер 1 МГц на Spectrum, который имеет только таймер 50Hz! Поэтому не предпринимается никаких попыток подражать Т1 и Т2 (или защелки) каждого VIA. Адрес $ 9114 эмулирует младший бит Т1, вернувшись случайные значения (я думаю, что функция RND использует его). Адреса $ 911F и $ 912F оказались в ловушке и работа так же, как $ 9111 и $ 9121. Адреса $ 9111 и $ 9120 эмулировать джойстик, читая KEMPSTON джойстик спектра в. Адрес $ 9121 эмулируется к поддержке на клавиатуре VIC, см раздел 2.5

2.4) чип VIC

Пожалуйста, обратите внимание, режим Многоцветный не поддерживается!

9000 $ / 1 – позиционирование экрана (HPOS и VPOS) не эмулируется.

$ 9002 действительно позволяет ширина экрана, чтобы изменить (1-27). v1.72 года эмулирует Бит 7 (начало цветной ОЗУ) и позволяет использовать до 31 колонок.

$ 9003 позволяет высота экрана, чтобы изменить (1-23). Бит 7 поддерживается – см $ 9004. Бит 0 поддерживается с ограничениями (Double высота). Символы рисуются 2 строки выше, чем требуется, но атрибуты применяются только к верхней половине строки. Код двойной высоты еще не завершена, поскольку многие игры установить высоту строки>12, что означает, экран не может быть полностью отображается на экране ZX 24 строк. (“Утиная охота” является одним из таких примеров)

$ 9004 эмулируется. Каждый раз, когда это место читается, значение растра вернулся увеличит и петли между 0-311. Бит 0 растрового счетчика проводится в бит 7 $ 9003. Программы, которые полагаются на стоимости растрового быть точным не удастся (или, скорее, просто мерцать).

$ 9005 позволяет переопределение набор символов, перемещая его в другую точку в памяти. Биты 4-7, которые устанавливают видеопамять адрес не поддерживаются. Использование установки памяти персонажа, чтобы начать на $ 1E00 и оберните вокруг до $ 8000 поддерживается. По состоянию на V1.86 изменений в этот регистр заставить экран, чтобы перерисовать. Нажатие МД и SHIFT клавиши изменяет набор символов с немедленным вступлением в силу.

$ 9006/7 – lightpen регистры. Они не подражания.

регистры весла – $ 9008/9. Они не подражания.

$ 900A / B / C – частота альт / тенор / сопрано голосов. Эти значения преобразуются в грубой AY-3-8912 эквивалент!

$ 900D – частота шума канала плохо подражания! Ай и VIC чипсеты реализации шум по-разному.

$ 900E – регулятор громкости подражания. Биты 4-7, которые устанавливают вспомогательную цвет не поддерживаются, как нет Режим многоцветной …

900F $ – цвет границы (биты 0-2), обратная поле (бит 3) и цвет фона (биты 4-7) поддерживаются. По состоянию на V1.90 БАУ II была добавлена ​​(больше цветов). Это позволяет Спектр, чтобы отобразить все 16 цвета ВМЦ в значительной степени, как настоящий ВМЦ бы. На стандартном спектре не все фоновые цвета доступны. V1.87 позволяет стандартные Спектры для отображения цветовых сочетаний, которые перед бы уже столкнулись дать “невидимый” дисплей, такие как розовый на красном фоне (до этого уже было бы светло-красный + красный). Таблица цветов (256 байт) используется, чтобы выбрать подходящее цветовое спаривание. Это означает, что “недоступные” цвета можно изменить, например, светло-фиолетовый может быть как светло-пурпурный или светло-голубой.

Изменения по ширине экрана / высота или цвет границы заставить перерисовать ложной границы (пространство вне экрана ВМЦ, но в пределах приграничной территории Spectrum).

2.5) VIC клавиатура

VIC имеет гораздо больше ключей, чем спектр поэтому некоторые странные комбинации клавиш требуется.

В буквенно-цифровые клавиши работают прямо через их эквивалентов ВМЦ. CAPS SHIFT имитирует сдвиг влево ВМЦ, так, чтобы получить “(цитата) вы должны нажать CAPS + 2.

УДАЛЕНИЕ моделируется с CAPS + 0 (так же, как Spectrum)

F1, F3, F5 и F7 моделируются с ЯМ + 1,3,5 и 7 соответственно. F2, F4, F6 и F8 сдвинуты как реальная ВМЦ, так, чтобы получить F2 вы должны нажать CAPS + SYM + 2.

RunStop будет simualted с ЯМ + A (СТОП на Spectrum)

Ключ COMMODORE моделируется с ЯМ + C

ВОССТАНОВЛЕНИЕ + RunStop моделируется с CAPS + Space (перерыв на Spectrum)

Знаки препинания может быть сложнее. Половина из ключей пунктуации отображаются на их эквивалентов спектра. Например, чтобы получить “:” (двоеточие) вы должны нажать SYM + Z. Чтобы получить “[” (левая квадратная скобка), который на ВМЦ является сочетанием клавиш SHIFT + ‘:’, вы должны нажать CAPS + SYM + Z. Следующая таблица поможет с знаков пунктуации:

: SYM + Z

[CAPS + SYM + Z ? (GBP) SYM + X / SYM + V ? CAPS + SYM + V * SYM + B _ CAPS + SYM + B , SYM + NCAPS + SYM + M ^ SYM + H PI CAPS + SYM + H – SYM + J + SYM + K = SYM + L левая ^ SYM + R ; SYM + O ] CAPS + SYM + O @ SYM + 2

К сожалению клавиши курсора эмулируются по-другому. Это потому, что если клавиши управления курсором (CAPS + 5 до 8) эмулируются то вы не можете ввести определенные символы, в частности открытой скобкой (SHIFT + 8). VIC20 было только две клавиши управления курсором – вправо и вниз. Левая и до получены, удерживая SHIFT и влево или вверх ключи соответственно. Чтобы получить нажатой клавишу использование SYM + 6 (то же, Spectrum) и получить правильный ключ использование SYM + 8. Ключ ГЛАВНАЯ также эмулировать через SYM + 4.

ОСТАЛОСЬ CAPS + SYM + 8

ПРАВО SYM + 8 UP CAPS + SYM + 6 DOWN SYM + 6 ГЛАВНАЯ SYM + 4

CTRL, сдвиг вправо и CAPS LOCK клавиши в настоящее время не подражания.

2.6) Память

V1.90 теперь поддерживает несколько конфигураций памяти VIC-20. После того, как выбран он не может быть изменен, если вы не сбросить и загрузить программу снова.

Стандартные 48/128 / + 2 Спектры могут имитировать базу (5.5K) VIC-20 или расширенный (5.5K + 3K) VIC-20.

+ 2А и 3 Спектры могут воспользоваться их режиме RAM 64K для имитации расширенный (5.5K + 8K), (5.5K + 16K) или (5.5K + 3K + 16K) VIC-20, или эмулировать 8K / 16K ROM картридж. Да теперь вы можете играть Радар Крысиные бега! К сожалению, режим RAM 64K используется имеет более утверждало RAM, которая ведет в эмуляторе работает медленнее, чем основание или расширенных конфигураций.

2.7) Лента и устройство ввода / вывода

Никакая попытка не была сделана, чтобы подражать ленту или другие устройства IEE488. В настоящее время единственный способ загрузить игры в это импортировать бинарный образ игры в RAM пространства Вика. Смотрите раздел 3 для деталей о том, как это сделать.

2.8) прерывания

VIC 20 использует NMI и нормальные прерывания. Нажатие ВОССТАНОВЛЕНИЕ + RUN / STOP (ПЕРЕРЫВ) генерирует NMI. Регулярное прерывание генерируется эмулятором каждый 1/50 второй. Это не совсем 1/60, что VIC использует. Поэтому Курсор замигает немного медленнее и функции таймера (например, переменной TI) будет неправильно.

2.9) Что изменилось после предыдущей версии?

V1.90 имеет несколько улучшений по сравнению с предыдущими версиями.

Эмуляция 6502 быстрее, меньше и более accruate, чем предыдущие версии.

Trapped I / O был ускорен, чтобы писать на экран быстрее, чем раньше.

Поддержка ULA-II означает, что вы можете видеть игры, поскольку они должны выглядеть как Видеопамять может быть перемещен и изменения отражаются немедленно.

Различные стандартные размеры VIC памяти поддерживаются.

Восстановить поведение RUN / STOP улучшилось +.

2.10) Известные ошибки

Читать-модификация-запись коды операций не правильно работать против ввода / вывода портов и памяти экрана. Это вызывает неправильные звуки и оценки не обновлять на экране.

Режим отображения двойной высоты разбивается в v1.90 Эмулятор замедляется, если удерживать нажатой клавишу – не уверен, что это ошибка, но всего лишь побочный эффект от того, как ВМЦ Kernal процессов нажатий клавиш.

3) Использование VIC 20 Программное обеспечение

3.1), что работает?

Много коммерческого программного обеспечения делает работу. Любое программное обеспечение, которое зависит от таймеров VIA не будет работать – Необычное Официанты пример

3.2) Загрузка игры

Как лента и IEE488 устройства не эмулировать альтернативный метод требуется загрузить в играх. Следующий пример позволяет играть “Blitzkreig”, написанную Llamasoft. Это совершенно законно, чтобы скачать и играть в эту игру, как Джефф Минтер дал полное разрешение. Игра может быть получена из http://www.llamasoft.co.uk/lc-8bit.php

я) Скачать Blitzkreig игру с сайта. Он поставляется в виде файла .TAP (лента). Или, если вы аргентинец, вы, вероятно, хотите попробовать другую игру (читать блог г-MINTER не соответствует объяснения) – Gridrunner прекрасно работает на эмуляторе и приходит в виде файла .prg. Однако файл PRG только кажется, загрузить, если у вас есть полностью Нераспространенная VIC (то есть: даже не расширения 3K RAM).

б) Запустите вице (универсальный Commodore эмулятора) VIC 20 эмулятор.

III) Настройте VIC20, чтобы соответствовать спецификации эмуляторы. Выберите Настройки ->Настройки VIC и убедитесь (блок 0) вариант расширения 3K RAM выбран.

IV) Прикрепить файл .TAP и пусть он сработал.

v) После того, как игра началась пресс-Alt + M, чтобы войти в монитор

VI) Сохраните 8K RAM ВМЦ, набрав в SAVE “filename.bin” 0 $ 0000 $ значения 1FFF

VII) К сожалению ВИЦЕ сохраняет блок памяти с заголовком 2 байта. Это должно быть удалено. Я использую Filetweak как это бесплатно и очень хороший шестигранный просмотра / редактирования. Если у вас нет такого инструмента вы можете попробовать загрузить блок памяти два байта ниже (то есть: $ 7FFE вместо $ 8000), но имейте в виду, вы испортите керналь, делая это. По состоянию на V1.90 рутина может отменить коррупции после загрузки в двоичной блока, установив компьютер на $ B3F8. Это сбросит содержимое памяти и начать выполнение независимо от того, что машина делает до прерывается.

VIII) Загрузите файл .bin (который должен быть длиной ровно 8192 байт) на $ 8000 в свой Spectrum (проще это сделать на эмуляторе …)

IX) Эмулятор может зависнуть и, как правило, делают граница идти красный. Попробуйте нажать BREAK принуждать NMI. Это, как правило, работают. Если он работает, то вы будете возвращены к READY строке. Просто введите в RUN, и это должно начать игру. Если вы хотите, чтобы избежать этого как попало подход, то вы должны сделать следующее:

Загрузите блок памяти на $ 8000 (первый 8K RAM только !! – остаток оперативной памяти должен быть загружен на $ 0200, то $ 5E00, затем $ 2000)

Установка DE равным 6502 PC Набор E ‘равным 6502 S (липкости) регистр Установите IYH равным 6502 Y регистр Установите IYL равным 6502 X регистр Установить “, чтобы равняться 6502 регистра F ‘выбран равным 6502 F регистр (не совсем точной, как только Z80 C, S и Z флагов используются ядром 6502) Перейти к адресу в IX (например: JP (IX)), чтобы начать декодировании следующего 6502 инструкции.

3.3) Сохранение игры

Это, наверное, самый простой, чтобы сохранить память спектра в качестве снимка, если вы хотите играть в VIC20 игру на более поздний срок. VIC20 8K RAM ($ 0000- $ значения 1FFF) проводится в $ 8000- $ 9FFF в карте памяти Синклер. VIC памяти за $ 2000 проводится в RAM банка ZX 64K в $ 0200- $ 3FFF и $ 5E00- $ 5FFF. Смотрите раздел 4 для полного карте памяти. Вы могли бы экспортировать память из эмулятора и импортировать обратно в порок, который затем позволяет сохранять в “реальных” дисковых и ленточных форматов.

4) карта памяти

4.1) карта VIC 20 памяти

$ 0000- $ 03FF ниже 1К ОЗУ – включает нулевые страницы и стека страниц

$ 0400- $ 0FFF дополнительное расширение памяти 3K $ 1000- $ значения 1FFF стандарт 4K RAM – устанавливать на всех ВИНК из которых $ 1E00- $ значения 1FFF является видеопамяти.

$ 2000- $ 3FFF дополнительное расширение памяти 8K. Установка этого сил видеопамяти переехать в $ 1000 $ 4000- $ 5FFF не используется, можно использовать для другого расширения памяти 8K.

$ 6000- $ 7FFF Может быть другой блок расширения памяти 8K или другой 8K из картриджа ПЗУ

$ 8000- $ 8FFF набор символов ROM используется чип VIC
$ 9000- $ 900F VIC чип регистрирует 0-15
$ 9110- $ 911F VIA 1 микросхемы
$ 9120- $ 912F VIA 2 чипа
$ 9600- $ 97FF цвет Nybble памяти (всего 4 бита действительные на реальном ВМЦ). Расширение 8K переезжает этот блок до $ 9400- $ 95FF.
$ A000- $ BFFF 8K картридж ROM пространство
$ C000- $ DFFF 8K BASIC ROM
$ E000- $ FFFF Kernal ROM (на самом деле ОСНОВНЫЕ overspills в нижней части керналь)

4.2) на карте памяти Spectrum

Режим RAM 64K

$ 0200- $ значения 1FFF 8K VIC 20 RAM ($ 2000- $ 3DFF) или второй 8K картридж ROM ($ 6000- $ 7FFF) $ 2000- $ 3FFF 8K VIC 20 RAM ($ 4000- $ 5FFF) или 8K картридж ROM ($ A000- $ BFFF) $ 4000- экран $ 5AFF Спектр $ 5B00- $ 5DFF BASIC и переменная площадь система $ 5E00- $ 5FFF последняя часть 8K VIC 20 ОЗУ ($ 3E00- $ 3FFF)

стандарт 16K ROM + 48K режим RAM

$ 0000- $ 3FFF ZX 16K ROM $ 4000- экран $ 5AFF Спектр $ 5B00- $ 5FFF BASIC и переменная площадь система

оба режима

$ 6000- $ 7FFF Kernal ROM
$ 8000- $ 9FFF 8K VIC 20 RAM ($ 0000- $ значения 1FFF)
$ A000- $ AFFF набор символов ROM
$ B000- $ B1FF цвет Nybble памяти
$ B200- $ DFFF эмулятор код
$ E000- $ FFFF 8K BASIC ROM

5) Заключительные комментарии

Я надеюсь, вам понравится эта программа! Если другие люди хотят портировать код Z80 на других платформах, то не стесняйтесь изменять исходный код. Это собирает с помощью TASM. Я только прошу, чтобы вы кредитовать “двадцать комоды” в качестве источника и обеспечивает ссылки на дерьмо компьютерных игр 2008 года (CSSCGC2008) конкуренции! Если у вас есть какие-либо вопросы, то спросите в мире форумов спектр (www.worldofspectrum.org).

Мне было бы интересно посмотреть какие-либо улучшения в ядро ​​6502. Он довольно оптимизирована уже, но я уверен, что странно Т-состояние может быть сбрил здесь и там. Код не ясно, как это может быть, как ясность была принесена в жертву скорости.

Благодаря перейдите по ссылке:

Asbjorn Djupdal для ввода до ВМЦ 20 программистов Справочное руководство – invaluble! (Стоит читать, если вы хотите, чтобы запрограммировать VIC) Ричард Чини для своих хакерских статей Commodore на VIC-20 керналь. Запуск разборка была неоценима получать эмулятор до определенного момента.

Лэнс Юинг для написания достойного статью о VIC-20 клавиатуры (большинство из них о C64, а остальные не имеют достаточно подробно)

Цифровой Креветки для предоставления рекомендаций по использованию VIC и за предоставление поддержку!

Для игры в Twenty Commodes не нужны эмуляторы. Программа для эмуляции, которую подарил миру James Smith, была выпущена компанией James Smith в 2010 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 Comments
Inline Feedbacks
View all comments
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close
0
Would love your thoughts, please comment.x
()
x