Резидентные Расширения Системы 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}