Зачем нужен аккаунт на Viva-Games?
Пользователи, у которых есть аккаунт, могут сохранять игровой процесс на сервер в любой игре и создавать списки игр (как на Youtube, например).
Создание аккаунта абсолютно бесплатно и займёт всего минуту Вашего времени.
Для создания аккаунта просто кликните в блоке "Войти на сайт" иконку социальной сети, в которой у вас уже есть активный профиль и следуйте подсказкам.
Mira
https://viva-games.ru/game/miraYour Computer (Великобритания), 1985
Автор: Mike Rains
Жанр: Программирование: BASIC
Язык
- Русский
- English
Управление
- Клавиатура(?)
Игроков
- Один
Рассказать друзьям
Доступные версии
Нет доступных файлов
Доступные версии
Нет доступных файлов
- Описание (авт.пер.)
- Информация
MIRA
Майк Дожди дает свой Microdrive случайный объект доступа.
[Одно замечание для начала: как это программа, которая работает
с Microdrives, было предусмотрено на файл .mdr, не .tzx файл как более привычно. Если ваш эмулятор не может обрабатывать Microdrive файлы, ну, у вас нет никакой пользы MIRA в любом случае …]
Одним из главных ограничений Sinclair Microdrive Система является то, что это возможно только, чтобы получить доступ к файлам данных от Basic, который накладывает жесткое ограничение на базе и другие подобные приложения, которые обращаются файлы данных. Для пример, изменении записи в файле данных включает в себя открытие Новый файл, копируя предыдущие записи из старого к новый, писать измененную запись в новый файл, копирования остальную часть старого файла, удаление оригинал файл и переименовать новый файл как старого файла.
Даже этот последний не просто, как Синклер Basic не хватает команду Переименовать. На практике, следующий код иллюстрирует тип подпрограммы, которые потребуются изменить п-ю запись файла 100 записей под названием “Данные”, в котором каждая запись имеет длину 24 байта. Новый запись в строку N $.
9000 REM Alter рекорд (Sinclair BASIC) 9010 ОТКРЫТЫЙ # 5; “м”; 1; “данные” 9020 ОТКРЫТЫЙ # 6; “м”; 1; “new.data” 9030 ЕСЛИ п = 1 THEN GOTO 9070 9040 р = 1 до п-1 9050 ВХОД # 5; ЛИНИЯ х $: PRINT # 6; х $ 9060 Вперед р 9070 ВХОД # 5; ЛИНИЯ х $: PRINT # 6, п $: REM написать новый рекорд 9080 ЕСЛИ п = 100 THEN GOTO 9120 9090 р = п + 1 до 100 9100 ВХОД # 5; ЛИНИЯ х $: PRINT # 6; х $ 9110 Вперед р 9120 ЗАКРЫТЬ # 5: CLOSE # 6 9130 Удалить “м”; 1; “данные” 9140 MOVE “м”; 1; “new.data” К “м”; 1; “данные” 9150 ERASE “м”; 1; “new.data” 9160 ВОЗВРАЩЕНИЕ
Должно быть ясно, что это как извилистый и очень
замедлится, поскольку она включает в себя много операций Microdrive, который также приводит к увеличению износа на картридже и ездить. MIRA решает эти проблемы, предоставляя Синклер Основные три новых команд, которые совместно позволяют поддержание произвольного доступа файлы аналогичны доступны состоянии на микроскопии, таких как BBC с интерфейсом диска.
Новые команды (РНД #, POINT # и восстановить #) все получены с использованием существующих Синклер ключевые слова, но в новый контексты. Использование и синтаксис новых команд и Теория, лежащая их реализации описаны ниже, но Во-первых, в качестве примера, приведенные выше подпрограмма переписан с использованием команды MIRA.
Обратите внимание, что запись 24 байт занимает 25 байт в файле из-за включения возврата каретки (CHR $ 13).
9000 REM Alter запись (MIRA) 9010 ОТКРЫТЫЙ # 5; “м”; 1; “данные”: РНД # 5 9020POINT # 5,25 * (п-1): PRINT # 5, п $ 9030 ВОССТАНОВЛЕНИЕ # 5 9040 ВОЗВРАЩЕНИЕ
Первый из новых команд, RND последующим потока
Идентификатор (например, # 5) приводит к тому, файл, прикрепленный к дано Поток, который был объявлен в качестве случайного доступа к файлу. Файл должны уже были открыты со стандартным ОТКРЫТО # Команда и должно быть “читать” файл.
Команда RND не может быть использован, чтобы создать или открыть файл. В приведенном выше примере, “Данные” файл будет первоначально нужно чтобы были созданы с кодом, такие как:
100 DIM х $ (24)
110 ОТКРЫТОЕ # 5; “м”; 1; “данные” 120 для р = 1 до 100: PRINT # 5; х $: СЛЕДУЮЩЕЙ р 130 ЗАКРЫТЬ # 5
POINT последующим идентификатором потока и числовое
Выражение разделены запятой (например POINT # 5, п) движется внутренний указатель файла прилагается к данному потоку к п й байт файла, где на следующий INPUT #, PRINT #, или INKEY $ # будет иметь место при условии, что в файле был открыт с открытыми # и сделал случайный с РНД #.
Ошибка будет генерироваться, если вы пытаетесь переместить указатель за пределы файла. Базовая программа погрузчик для MIRA – листинг 1 [на .mdr как “Мира”, а также в качестве “Запустить” для вашего авто-загрузки удобства] – также определяет Функция, FN р (х), которая возвращает текущее значение внутренний указатель файла, прикрепленной к потоковой х – например, ПУСТЬ поз = FN р (5). Для чего это стоит, это будет работать с любой “читать” файл, а не просто случайный доступ один.
ВОССТАНОВЛЕНИЕ последующим идентификатором потока (например, # 5) закрывает Файл произвольного доступа присоединен к данному потоку.
ВОССТАНОВЛЕНИЕ # должен использоваться в предпочтении к ЗАКРЫТЬ # для случае корректировки лы закрыть файл, который был отмечен как случайная с РНД #, но не могут быть использованы, чтобы закрыть любой другой тип файла. Теория добавления новых команд в Sinclair продлен Основные (т.е., с Интерфейс 1 прилагается) полностью описывается А. Пернелл, Master Ваша ZX Microdrive (Саншайн 1983) и И. Логан, Спектр Microdrive Книга (Melbourne House 1983). Короче говоря, теневая система переменной ВЕКТОР (адрес 23735), которые, как правило, содержит адрес ошибки ROM процедура обработки, должны быть загружены с адресом Новый команды рутина, которая должна затем выполнить два различных функции.
Во-первых, он должен проверить синтаксис новых команд и вызвать ошибку, если это неверно, а затем, во время выполнения только, выполнить команду. “Run-время” означает время работает из программы или во время выполнения прямых Команда. Линии 9030-9040 программы загрузчика MIRA Basic изменить значение вектора (линии 9030 Первый гарантирует, что Тень системные переменные были созданы).
А также предоставление новых команд, как описано выше, MIRA также должны предоставить новые подпрограммы для замены стандартного Печати и входной команды. Чтобы продемонстрировать, как это делается и объяснить фактическое функционирование новых команд это Необходимо сначала описать структуру микро- езды канал.
Каждый Microdrive канал занимает 595 байт в области памяти зарезервирован для канала информации. Начало этого Площадь содержится в переменной Чаны системы (адрес 23631). Фактическое расположение конкретного канала найдено путем добавления смещения, содержащихся в соответствующих Система переменной STRMS – два байта для каждого из потоков от -3 до 14, начиная с адреса 23568 – со значением в чаны и вычитания 1. FN д (х), определенный в основной программе загрузчика выполняет эту функцию для потока х. Распределение байт в Microdrive канал показан на рисунке 1 и должны упоминаться в течение следующего обсуждения
работа различных подпрограмм Мира.
Рисунок 1. Microdrive структуру канала.
Байт Длина Описание
0 2 “выход” рутина 2 2 “вход” рутина 4 1 канал спецификатор “М” 5 2 тень выход ROM 7 2 тень вход ROM 9 2 Длина этого Чаны области (595) 11 2 текущее положение буфера (0-512) 13 1 позиция записи в файле (0-255) 14 10 10 байт файла 24 1 бит 0 – сброс – “читать” файл набор – “писать” файл Биты 1-7 – не используется (все сброса) 25 1 номер диска (1-8) 26 2 диска карте местоположение 28 12 12 байт заголовка, предварительно иноходь 40 1 бит 0 – установить, чтобы сигнализировать заголовок Биты 1-7 – неиспользованные 41 1 номер сектора (0-255) 42 2 не используется (см текст) 44 10 10 байт имени патрона Сумма 54 1 заголовок 55 12 12 байт данных предварительно иноходь 67 1 бит 0 – сброс – не заголовок бит 1 – сброс – не конец файла бит 1 – набор – конец файла бит 2 – сброс – файл PRINT бит 2 – набор – не файл PRINT Биты 3-7 – не используется (все сброса) 68 1 рекордное количество (0-255) 69 2 число байтов в записи (0-512) 71 10 10 байт файла 81 1 контрольная сумма 82 512 буферные данные
Сумма 594 1 данные
РНД # Команда рутина время выполнения выполняет три действия:
Бит 0 # байта 24 в соответствующем канале установлен на означает файл “записи”.
# Адреса новых выходных и входных процедур являются загружается в байтах 5-6 и 7-8 канала.
Бит 0 # неиспользованного 42-й байт канала используется как Флаг сигнализирует о том, что содержимое буфера были изменена. РНД # сбрасывает этот бит для обозначения “неизменной”. Следующие действия выполняются с помощью команды POINT #: # Номер записи, в которых желаемое положение файла ложь вычисляется и сравнивается со значением в байте 13 канал.
# Если они не совпадают, «буфер написать” и “читать буферные “подпрограмм призваны принести требуемое запись в буфер.
# Желаемая должность в записи загружается в Места канала 11 и 12.
ВОССТАНОВЛЕНИЕ # называет «буфер подпрограмму написать написать текущая запись, если она помечена как “измененное” (то есть: немного 0 байта 42 установлен), сброс, но 0 байта 24 канала для Флаг файл как “читать”, а затем вызывает тень ROM ЗАКРЫТЬ # рутина.
Новая процедура вывода используется всеми PRINT # утверждений вступил с характером, чтобы быть записаны в файл в Регистр. Следующие действия: # Текущее положение буфера получается из байтов 11 и 12 канала, добавляется 82 – начало данных Площадь – дать правильный адрес, и характер от регистра хранится там.
# Позиция буфера увеличивается и повторно хранится в байтах 11 и 12.
# Запись помечается как “изменены”, установив бит 0 байт 42.
# “Следующая запись” подпрограмма вызывается, если конец Настоящий рекорд был достигнут.
Новая процедура ввода используется INPUT # и INKEY $ # государственно менты выполняет следующие действия: # Проверка на конец текущей записи и называет “рядом запись “, если требуется.
# Увеличивает позицию буфера в байтах 11 и 12 канал.
# Использование этой позиции, – добавляется в 82, как раньше, – говорится персонаж из буфера в регистр A и наборы флаг переноса, чтобы сигнализировать успешный чтения.
[Статья заканчивалась с некоторыми инструкциями для вступления, которые были перемешаны, и ни полной, ни правильно; они похоже, что они были написаны для другой версии.
Последнее замечание является правильным, хотя:] Следует отметить, что MIRA необходимо будет вновь активирована с использованием Линии 9020-60 из листинга 2 следующая новая команда.
[А теперь немного о содержимом .mdr. Это включает в себя “Мира” ака “запустить” и “MiraLoader”, как описано выше, а также “C: Мира” машинный код файла производится последний и читать первым.
Поскольку г-н Дожди не обеспечивают пример приложения его инструмент, но мне нужно один себе, чтобы проверить, что у меня было Вступил MC правильно, я написал очень простой называется “Блокнот”, который я также предоставил на .mdr.
Не обманывайтесь его тривиальности; гораздо более слож- приложения шие может быть написано, но у меня не было время, чтобы сделать так, для примера программы.
Наконец, после написания этой программы, я обнаружил, что
он не работает, и через какое-то работы с дизассемблера, Я обнаружил, что причиной этого была не опечатка, но Дело в том, что г-н Дожди не используется коды крюк, чтобы позвонить Интерфейс 1 внутренние процедуры, но абсолютные адреса.
Конечно Мерфи заверил, что мой эмулятор имеет разные Вопрос IF1 ROM, чем некий мистер Рейнс, кодируемых.
К счастью, это было легко патча: всего несколько адресов должны быть вновь ткнул, и кажется, что те, используется сделал не изменится после второго выпуска IF1. Результат это является окончательная программа на .mdr, “MiraPatch”.
Он загружает оригинальный машинный код, поддерживает это, патчи это для новых дисков, и сохраняет новую версию под старое название. На самом деле, для моего собственного удобства, “C: Мира” что находится на .mdr является исправленная версия (и Резервное копирование также присутствует).
Вы, возможно, даже более новую (или просто другой) версии ПЗУ, и в этом случае даже это может не работать; если да, то извините, я не могу помочь, но вы можете попробовать найти правильные адреса для вашей версии, использующие те Mira использует, копию Джанлуки Карри в “Spectrum Shadow Рим Разборка “(доступно для загрузки в Мире Спектр, amongs другие), и демонтаж самостоятельно IF1 ROM. Затем можно ввести правильные адреса в MiraPatch и создать свою собственную версию кода.
Ричард Бос, май 2012 года]
Запустите Mira и играйте. Это утилита для разработчиков на BASIC, которую создал Mike Rains, была выпущена компанией Your Computer в 1985 году в Великобритании.
Сохранённые игры[X]
Справка[X]
Помощь уже в пути!
- x1
- x2
- x3
<<<<
<<<<
<<<<
Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!
Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.
Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.
Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.
Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.