Резидентные Расширения Системы
Resident System Extentions
Существуют модули для ZXVGS, которые уве-
личивают его возможности и при этом не за-
висят от железа и системного кода. Они за-
гружаются в память,доступную только систе-
ме и пребывают там в дальнейшем.
Существующие или разрабатываемые RSX
Расширения синтаксиса:
$B.RZX - эмулятор TR-DOS - доступ к реаль-
ным фaйлам, низкая совместимость (уже
имеется, ограничено)
BA2.RZX - расширяет синтаксис Бейсика -
совместимость с TOS A.2 (в планах)
BD1.RZX - расширяет синтаксис Бейсика -
совместимость с DISCiPLE/+D (в планах)
BI1.RZX - расширяет синтаксис Бейсика -
совместимость с Microdrive (в планах)
BJR.RZX - расширяет синтаксис Бейсика -
совместимость с ELWRO 800 Junior (в план-
ах)
BZX.RZX - расширяет синтаксис Бейсика -
позволяет загружать и сохранять дисковые
файлы (уже имеется, не меняет директории)
PRG.RZX - расширяет синтаксис Бейсика -
совместимость с ELWRO 800 Junior (в план-
ах)
Загрузка данных:
BLK.RZX - загружает файлы "*.BLK", наподо-
бие TAP.RZX (имеется)
SCL.RZX - эмулятор TR-DOS - читает контей-
нер файлов, средняя совместимость (имеет-
ся, ограничено)
TAP.RZX - загружает файлы *.TAP (имеется)
Z80.RZX - загружает снапшоты "*.Z80"
(имеется)
SNA.RZX - загружает снапшоты "*.SNA"
(разрабатывается)
SLT.RZX - загружает снапшоты "*.SLT" с пе-
рехватами обращения к ленте
(разрабатывается)
Драйверы диска:
DSK.RZX - образ диска ??? (в планах)
FDI.RZX - эмулятор TR-DOS - доступ к обра-
зу диска, полная совместимость (в планах)
MDR.RZX - эмулятор Interface 2 (в планах)
MGT.RZX - образы дисков (в планах)
TRD.RZX - эмулятор TR-DOS - доступ к обра-
зу диска, высокая совместимость
(в планах)
PLUS3DOS.RZX - позволяет использовать дис-
ки с заголовками PLUS3DOS (в планах)
TRDOS.RZX - эмулятор TR-DOS - использует
настоящий дисковод (в планах)
Загрузчики графики:
BMP.RZX - позволяет загружать и записывать
BMP-картинку (имеется, очень ограничено)
GIF.RZX - позволяет загружать и записывать
GIF-картинки (в планах)
GRP.RZX - позволяет загружать и записывать
GRP-картинки (в планах)
IFF.RZX - позволяет загружать и записывать
ILBM-картинки (в планах)
JPG.RZX - позволяет загружать и записывать
JPG-картинки (в планах)
PCX.RZX - позволяет загружать и записывать
PCX-картинки (в планах)
Драйверы принтера:
DESKJET.RZX - инсталлирует принтер HP Desk
Jet (в планах)
EPSONFX.RZX - инсталлирует матричный прин-
тер с 9 иголками (имеется, ограничено)
GP500AS.RZX - инсталлирует принтер
Seikosha GP500AS (в планах)
LASERJET.RZX - инсталлирует принтер
HP LaserJet (в планах)
PRINTER.RZX - текущий используемый драйвер
принтера (создаётся пользователем из дру-
гих)
Прочее:
51X24.RZX - драйвер экрана на 51 колонку
(в планах)
SAMTAPE.RZX - (SAM only) позволяет загру-
жать с кассеты через код SAMROM
(в планах)
ZXVGSVBM.RZX - менеджер виртуальных
банков (в планах)
------------------------------------------
(упрощённая форма Бэкуса-Науэра):
x, y, z... представляют числовые выражения
x$, y$ ... представляют алфавитно-цифровые
выражения
c представляет любой символ
d предстваляет одну цифру (0..9)
b представляет любую команду
Бейсика
[A] означает 'A может быть опущен'
{A|B|C} означает 'A или B или C'
[A...] означает 'A может быть опущен
или повторён много раз'
Определения синтаксиса Бейсика
(упрощённая форма Бэкуса-Науэра):
знак смысл
@ одна буква
v,v1,v2... имена числовых переменных
x, y, z числовое выражение
(действительное)
i, j, k числовое выражение
(округлённое до целого)
e числовое или строковое выраже-
ние
f строковое выражение
[ ] необязательная часть
-----------------------------------------
51X24.RZX - Драйвер символьного экрана
$B.RZX - Эмулятор HoBeta TR-DOS
Фатальные ошибки:
$B.RZX: Unknown function #nn
$B.RZX: Unknown call to #nnnn
$B.RZX: Access to outside file
$B.RZX: Directory not avaiable
RSX не в силах запустить эту TR-DOS прог-
рамму. Попытайтесь скопировать её в конте-
йнер "*.SCL" или в образ диска "*.TRD" или
"*.FDI".
BA2.RZX - Эмулятор
Timex Operating System
BD1.RZX - Синтаксис DISCiPLE/+D
Этот RSX сейчас не существует.
В начале, когда привязка не существует,
"D1:" привязан к текущему пути. Остальные
диски требуют привязки (assign) перед пер-
вым использованием.
* CAT 1 Показывает каталог.
* CAT 1! Показывает сокращённый каталог.
* SAVE D1"filename" Сохраняет файл.
* VERIFY D1"filename" Проверяет, что за-
пись была произведена.
* LOAD D1"filename" Загружает файл (кро-
ме снапшотов).
* LOAD D1"filename" SCREEN$ Загружает
экранный файл.
* ERASE D1"file" TO "new file" Переиме-
новывает файл.
* ERASE D1"filename" Удаляет файл
* SAVE D1"file" TO D2 Копирует файл с
диска 1 на 2
* OPEN #n;D1"filename"IN Открывает файл
на чтение в поток n.
* OPEN #n;D1"filename"OUT Открывает файл
на запись в поток n.
* CLOSE #*n Закрывает файл в потоке n.
* CLOSE #* Закрывает все открытые файлы.
* MOVE D1"filename" TO #n Читает файл;
выводит в поток n.
* MOVE D1"fileA" TO D1"fileB" Читает
файл; записывает его во 2-й файл.
* CLEAR # Очищает все открытые потоки и
каналы.
* CLS # Очищает экран и область атрибу-
тов.
* LLIST line-no Пересылает листинг прог-
раммы на принтер.
* LPRINT variable-list Печатает на прин-
тер.
* SAVE SCREEN$ 1 Производит 32-колоноч-
ный дамп экрана.
* SAVE SCREEN$ 2 Производит дамп экрана
большого размера.
* LPRINT TAB n; Табуляция на позицию n в
текущей строке.
* LPRINT AT n1,n2; Прокручивает принтер
на n1 строк вниз, табуляция на n2 позицию.
* SAVE...TO , ERASE , CAT могут быть ис-
пользованы с * и ? в качестве фильтров
(wildcards).
SNAPSHOT BUTTON - временно останавливает
программу и позволяет выбрать:
1. - 32-колоночный дамп экрана;
2. - Дамп экрана большого размера;
3. - Запись экрана;
4. - Запись 48K снапшота;
5. - Запись 128K снапшота;
Клавиша X выходит из режима снапшота и во-
звращает в программу.
Это работает не так, как в оригинале:
LOAD D1"filename"S Загружает 48K снапшот.
-загружает через RSX
LOAD D1"filename"K Загружает 128K снапшот.
-загружает через RSX
LOAD Pn Загружает программу.
-использует селектор файлов для выбора
программы; число игнорируется.
RUN
-вызывает меню ZXVGS.
Дальнейшее не поддерживается из-за другой
структуры ZXGVS:
* FORMAT D1 Форматирует диск в устройст-
ве 1.
* FORMAT D1 TO D2 Форматирует диск 1;
копирует с 2 на 1.
* SAVE D1"filename"X,Address Сохраняет
510-байтный запускающий(ся?) файл.
* LOAD D1"filename"X Исполняет файл в
ОЗУ PLUS D.
* LOAD @ D,T,S,Address Читает выбранный
сектор в память.
* SAVE @ D,T,S,Address Записывает ука-
занный сектор на диск.
BI1.RZX - Эмулятор Interface 1
BJR.RZX - Эмулятор Elwro 800 Junior
BLK.RZX - Имитация ленты
См. {TAP.RZX}. Отличается только расшире-
ние файла.
BMP.RZX - Драйвер картинок
BZX.RZX - Дисковый синтаксис
в Бейсике
"BZX.RZX" - простое расширение Бейсика,
предоставляющее несколько новых инструк-
ций.
* LOAD *f
* LOAD *f CODE [i][,j]
* LOAD *f DATA @[$]()
* LOAD *f SCREEN$
* MERGE *f
* SAVE *f [LINE i]
* SAVE *f CODE i,j
* SAVE *f DATA @[$]()
* SAVE *f SCREEN$
* VERIFY *f
* VERIFY *f CODE [i][,j]
* VERIFY *f DATA @[$]()
* VERIFY *f SCREEN$
Их назначение аналогично магнитофонным эк-
вивалентам.Отличие в том,что их длина име-
ни должна быть в диапазоне 1..127. Звёздо-
чка "*" должна быть помещена сразу после
ключевого слова. Если не указано расшире-
ния файла,оно будет добавлено автоматичес-
ки:
* ".BZX" для Бейсик-файлов,
* ".DZX" для массивов обоих типов,
* ".CZX" для файлов CODE,
* ".SCR" для файлов SCREEN$.
(В следующей версии.) Команда "LOAD *f"
имеет специальное использование. С именем
директории она меняет текущую директорию
(как в PLUS3DOS, но здесь только одно умо-
лчание для обоих - LOAD и SAVE).
DESKJET.RZX - Драйвер
струйного принтера
DSK.RZX - Драйвер образа диска
EPSONFX.RZX - Драйвер
матричного принтера
FDI.RZX - Драйвер образов TR-DOS
GIF.RZX - Драйвер картинок
GP500AS.RZX - драйвер
матричного принтера
GRP.RZX - Драйвер картинок
IFF.RZX - Драйвер картинок
JPG.RZX - Драйвер картинок
LASERJET.RZX - Драйвер
лазерного принтера
MDR.RZX - Драйвер образа
ленты Interface 1
MGT.RZX - Драйвер образа диска
PCX.RZX - Драйвер картинок
PLUS3DOS.RZX - Драйвер диска PLUS3DOS
PRG.RZX - Эмулятор Elwro 800 Junior
PRINTER.RZX - Текущий драйвер принтера
Это имя используется системой ZXVGS при
первом вызове функций принтера #F0..#F6.
Этот RSX генерируется из существующего
драйвера принтера (например, EPSONFX.RZX)
переименованием его в PRINTER.RZX.
SAMTAPE.RZX - Ленточный загрузчик
для Sam Coupe'
TAP.RZX - Имитация ленты
"TAP.RZX" позволяет загружать "ленточные
файлы", из файла "*.TAP", выбранного функ-
цией #AF.
Для загрузки файла "*.TAP", выберите его
из SHELL.V00. После сброса введите:
LOAD ""
или можете ввести:
PRINT USR 8
и загрузить из SHELL.V00 другую программу,
которая в свою очередь может читать с лен-
ты (ARTSTDIO.V00, ZEBRA.V00, COPYNEW1.V00)
и загрузите содержимое файла "*.TAP" в
неё.
Для чтения данных из файла "*.TAP", ZX ПЗУ
должно быть запатчено для вызова #7E hook
code. Содержимое IX должно быть перенесено
в HL, AF (которое впоследствии переместит-
ся в AF') - в BC (bit 6 в C может быть ус-
тановлен для загрузки байта типа как соде-
ржимого порции данных (chunk). Число заг-
ружаемых байт помещается в DE (для чисел,
больших,чем длина порции данных,загружает-
ся также контрольная сумма, и возвращается
ошибка #01).
Стандартная ошибка RST #08 генерируется,
когда файлы "*.TAP" не поддерживаются (как
при отсутствии ZXVGS). В противном случае
A возвращает информацию об ошибке:
#00 - порция данных загружена корректно,
#01 - ошибка чтения ("*.TAP" файл не най-
ден или нажат <SPACE>),
#02 - неверный тип данных.
Число загруженных байтов лежит в BC (долж-
но быть добавлено к IX), число незагружен-
ных байтов - в DE, последний загруженный
байт - в L, и вычисленная контрольная сум-
ма - в H.
Внимание. Не используйте #7E hook code в
программах! Он может быть использован то-
лько в патче ZX ПЗУ.
!!! Временно в L тоже возвращается "вычис-
ленная контрольная сумма".
#7E TAPLOAD
(DE=length,HL=address,B=type,C=flags)
(DEHL=standard,BC=readed,A=error)
Патч ZX ПЗУ (48kB модель) для "TAP.RZX".
Успешно испытан 2002-03-21. Возможно доба-
вление этих изменений в PROM и EPROM без
их стирания. Поместите это в ПЗУ:
ORG #0025
#0025 JP #3881 ;#C3,#81,#38
;вместо #FF,#FF,#FF
ORG #056C
#056C CALL #0025 ;#CD,#25,#00
;вместо #CD,#E7,#05
ORG #3881 ;тут область #FF-ок
tapld LD HL,(#5C68)
PUSH HL
LD HL,(#5C65)
PUSH HL
LD HL,(#5C5F)
PUSH HL
LD H,(IY+0)
LD L,C ;добавлено 1999-12-08
PUSH HL
LD HL,(#5C3D)
PUSH HL
LD HL,taperr ;переход, если
;нету ZXVGS
PUSH HL
LD (#5C3D),SP
PUSH IX
POP HL
EX AF,AF' ;здесь флаги и байт
;типа данных
PUSH AF
POP BC
EX AF,AF' ;возвращаем на место
RST #08
DEFB #7E ;загрузка DE байт
;по адресу HL
ADD IX,BC ;добавить к IX число
;загруженных байт
POP BC ;снять "taperr"
POP BC ;снять (#5C3D)
LD (#5C3D),BC ;это было здесь и
;раньше,остальное не изменено
POP BC ;снять (IY+0) и C
POP BC ;снять (#5C5F)
POP BC ;снять (#5C65)
POP BC ;снять (#5C68)
POP BC ;снять адрес возврата
;в ленточный загрузчик
LD BC,#0022 ;имитация BC после
;загрузки...надо улучшить!!!
CP #01 ;Cy=0 - error
RET NC ;Z=1 - loading error,
;Z=0 - wrong chunk type
LD A,H
CP #01
RET ;если ZXVGS (или файл "TAP.RZX"
;не найден, вызывается стандар-
;тный обработчик ошибок
taperr POP HL
LD (#5C3D),HL ;всё это изменено
POP HL
LD (IY+0),H
LD C,L ;добавлено 1999-12-08
POP HL
LD (#5C5F),HL
POP HL
LD (#5C65),HL
POP HL
LD (#5C68),HL
LD B,#00 ;добавлено 2002-03-21
JP #05E7
;LD-EDGE-1 - стандартная загрузка с ленты
;продолжается
TRD.RZX - Драйвер
образа диска TR-DOS
TRDOS.RZX - Драйвер диска TR-DOS
TZX.RZX - Имитация ленты
SCL.RZX - Эмулятор контейнера TR-DOS
Фатальные ошибки:
SCL.RZX: Unknown function #nn
SCL.RZX: Unknown call to #nnnn
RSX не в силах загрузить эту TR-DOS прог-
рамму. Попытайтесь скопировать её в файлы
"*.$B" или на образы дисков: "*.TRD" или
"*.FDI".
SLT.RZX - Загрузчик снапшотов
SNA.RZX - Загрузчик снапшотов
Z80.RZX - Загрузчик снапшотов
Для загрузки снапшота "*.Z80" просто выбе-
рите его из SHELL.V00. Загрузка занимает
некоторое время, так как файл упакован.
Белые линии на бордере и жужжащий звук оз-
начают, что декомпрессия в процессе. После
правильной загрузки появляется главное ме-
ню,которое предусмотрено для использования
опции pOke. Выберите Continue для запуска
снапшота.
Не все снапшоты можно загрузить через
Z80.RZX. Помните, что этот формат предназ-
начен для эмуляторов, а не для реальной
аппаратуры. Без особого железа возможна
проблема с прерываниями. ZXVGS имеет здесь
ограничение - режим прерываний (IM) выби-
рается на основании содержимого регистра
I. Для I=#3F выбирается IM 1, для всех ос-
тальных значений - IM 2. Однако снапшот
можер иметь включенный режим IM 1 при
I<>#3F! А в этом случае ZXVGS устанавлива-
ет IM 2.
Z80.RZX открывает банки ZX128 и AY-3-891X,
если возможно.
Фатальные ошибки:
Z80.RZX: Wrong file structure
- RSX не может распознать содержимое файла
Z80.RZX: No I'face 1 support
Z80.RZX: SamRam not available
- RSX не может запускать снапшоты с подде-
ржкой дополнительной аппаратуры.
Z80.RZX: ZX128 banks required
Ваша железяка не позволяет переключать ба-
нки памяти через порт #7FFD, чего требует
снапшот.
Z80.RZX: AY-3-8910/2 not found
Снапшот требует наличия звукового сопро-
цессора на портах #BFFD и #FFFD, а вы его
не имеете или же отключили.
ZXVGSVBM.RZX - Менеджер
виртуальных банков
------------------------------------------
(c) 2002-07-03 18:59:04 Jarek Adamski
{zxvgs@yarek.com},{http://zxvgs.yarek.com}