PDA

Просмотр полной версии : VRCP Windows



zx_demon
11.04.2011, 11:19
Разгребая своё творчество на Speccy, добрался до одного из своих более-менее крупных проектов (на то время естественно, а точнее на 2001 год). Долго вспоминая что к чему и как это было сделано, решил всё таки разобраться поподробнее и сделать получше описание и отсортировать нужные файлы. Может кому пригодится просто так, или для опыта создания похожих вещей! Бить и ругаться не обязательно, наливаем стакан и читаем :v2_dizzy_vodka3:

http://vrcp.ru/images/vrcpwin.gif

TRD образ диска: VRCPWins.rar (http://vrcp.ru/zx/systems/VRCPWins.rar)

Прошивка ROM1 (http://vrcp.ru/zx/roms/VRCPWins.rar) (16к) для 48к.
Прошивка ROM2 (http://vrcp.ru/zx/roms/VRCPWr3x.rar) (2x16к) для 128к.

------------------------------------------------------------------------
VRCP WINDOWS 1.0 является графической оболочкой (дополнением, псевдо-ОС)
для TR-DOS любой версии на ПК ZX Spectrum 48к,128к и др. объёмом памяти!

Основные задачи - удобное отображение для пользователя файлов в виде
графических иконок, а не только текста, а так же быстрое выполнение
встроенных в TR-DOS и собственных внутренних и внешних команд,
и некоторые другие мелкие возможности.
Имеются два варианта запуска - загрука с диска или из ПЗУ/ROM.

Существует в двух вариантах сборки:
Lite - облегчённая версия, для 48к, с упрощённым управлением оболочкой;
Full - полная, для 128k, с дополнительным управлением и возможностями.

С диском работает через адреса:
#3D13 (15635), #3D03 (15619), #3D00 (15616)
Так же использует некоторые процедуры SOS BASIC-48k.
------------------------------------------------------------------------

Основные файлы:

VRCPWINS <B> - Загрузчик вместе с кодом VRCP Windows (Lite-версия);
vrcpwins <C> - Код VRCP Windows (Lite-версия без инсталляции);
VRCPWS <B> - Загрузчик (для Lite), склеиваемый с файлом vrcpwins <C>
(vrcpwins <C> может быть запакован чем угодно но при
этом должен иметь автозапуск по адресу 32768!
(в файле VRCPWS <B> со смещением 078 должно стоять
значение количества секторов, которые занимает
приклеиваемый к нему файл!);

WinSetUp <B> - Загрузчик VRCP Windows (Full-версия);
WinSetUp <©> - Код VRCP Windows (для Full-версии);

???????? <©> - Внешние коммандные файлы;
???????? < > - Иконки для <B>-файлов;
vrcpwins <W> - Краткое описание VRCP Windows;
file_id < > - Информационный файл;

CACHER2 <B> - Инсталятор VRCP Windows в ProfROM;

vrcpwins <r> - Прошивка VRCP Windows вместо EOS BASIC-128k;
vrcpwr30 <C> - Прошивки VRCP Windows вместо:
vrcpwr31 <C> - MENU (доп. банка ПЗУ PROFI) и EOS BASIC-128k.

VRCPWIN1 <H> - Исходник VRCP Windows (ALASM, часть 1)
VRCPWIN2 <H> - Исходник VRCP Windows (ALASM, часть 2)
------------------------------------------------------------------------

Описание основных клавиш управления оболочкой:

- стрелка вправо: P,8,CS+8
- стрелка влево: O,5,CS+5
- стрелка вверх: Q,7,CS+7
- стрелка вниз: A,6,CS+6
- курсор вправо: CS+L
- курсор влево: CS+K
- курсор вверх: CS+W
- курсор вниз: CS+S
- скорость курсора: ENTER,CS+ENTER
- выбор файла/команды: B,N,M,0,1,SS,SPACE,EDIT,DELETE,EXTEND,BREAK
- строка файлов вверх: W
- строка файлов вниз: S
- страница файлов вперёд: L
- страница файлов назад: K
- вид файлов иконки/текст: Y
- выбор дисковода: D
- перечитать каталог: C
- запуск файла: R
- запуск файла как MAGIC: X
- просмотр файла: V
- инфо о файле/диске: I
- создание файла: F
- удаление файла: G
- выполнить команду: J
- расширенные команды: E
- вкл/выкл фон. картинку: T
- просмотр фон. картинки: 9
- смена фоновой картинки: 1
- запуск скринсейвера: CS+2,CAPS LOCK
- выход из граф. оболочки: CS+U
- работа с прерываниями: CS+Z,3,4

------------------------------------------------------------------------

Панель управлния:

- Вверху панели 4 стрелки обозначают управление постранично и построчно
списком файлов;
- Ниже показан уровень скорости курсора;
- Далее следует стрелка, обозначающая выход из VRCP Windows туда от куда
вы его запустили;
- Следующие 2-е стрелки - это выбор внутренней команды, которые
распологается ниже;
- После команд следует окно в котором отображаются системные сообщения;
- И наконец в самом низу находятся кнопки для выхода в различные среды
ОС: BASIC-48k, TR-DOS, BASIC-128k, HALT.
------------------------------------------------------------------------

Описание основных встроенных функций: (в панели управления)

-A- - Выбор дисковода "A";
-B- - Выбор дисковода "B";
-C- - Выбор дисковода "C";
-D- - Выбор дисковода "D";
CAT - Вывод каталога диска с выбором 2-х режимов (Icon/Text);
RUN - Запуск программ с расширениями "B" и "C";
MAGIC - Запуск программ с расширением "C" как <MAGIC>-файл;
COMM - Выполнение внешней комманды, файл с расширением "(C)";
NEW - Создание нового файла с расширением "#" длиной 4кб;
DELET - Удаление файла (только метка в boot-секторе);
DINFO - Информация о текщем диске;
FDATA - Информация о выбранном файле;
TVIEW - Просмотр файла как Текст (длиной до 65280);
SWIEV - Просмотр файла как Sprite (длиной до 6144);
PVIEW - Просмотр файла как Screen (длиной до 6912);
... - Расширенные (внешние) функции.
------------------------------------------------------------------------

Список основных визуальных сообщений: (в панели управления)

0 - Ok (Действие выполнено)
1 - Error (Ошибка)
2 - Attention (Внимание)
3 - Warning (Недопустимость)
4 - Panel (Панель VRCP Windows)
5 - Files (Панель с файлами)
6 - Stop (Остановка)
7 - Start (Запуск)
------------------------------------------------------------------------

Системные характеристики: (страница памяти, адрес, длина)

0 - (49152) - Commands <16384/09472 - для 128/48к!>
1 - (49152) - None (?) <16384>
2 - (32768) - VRCP Windows <16384>
3 - (49152) - None (?) <16384>
4 - (49152) - Sustem Resurses <09472>
(58624) - Screen Save! <06912>
5 - (16384) - Screen+S.P. <06912+9472>
6 - (49152) - None (?) <16384>
7 - (49152) - None (?) <16384>

ВНИМАНИЕ!!! Недопустимо в 48к выполнение комманд длиной свыше
9472 байта, т.к. в данном случае по адресу 58624 выполняется
сохранение текущего экрана VRCP Windows!
------------------------------------------------------------------------

Адреса управления (для внешних комманд и других программ):

48896 - Внутренний СТЕК (256 байт);
32768 (33025) - Запуск VRCP Windows;
(с адреса 32768: 256 байт под инсталяцию);
33071 - Номер выбранного файла;
33070 - Скорость курсора;
33068 - Info/Catalog (#FF/#00);
33067 - Номер выбранного диска;
33066 - Нет диска/Есть в Text's/Есть в Icon's;
(#00/#AA/#FF)
33044 - Указатель на подпрограмму клавиш управления;
(2 байта) <S,U,D,R,L>
33035 - Резерв для внутренних переменных (8 байт);
33030 - 3 байта для расширения внутренних комманд;
(под CALL ...)
28670 - Хранилище для каталога диска (4096+2 байт);
24320 - Свободное пространство (4300 байт);
23734 - Системные переменные TR-DOS;
23296 - Системные переменные BASIC-48k;
16384 - Экран (CGA);
00000 - ПЗУ (ROM).
------------------------------------------------------------------------

Подпрограммы VRCP Windows: (не изменяют содержимое регистров!)

40560 - Print Icon (B=number, C=coord)
40440 - Print Symbol 4x8 (B=y, C=x, A=symbol)
40395 - Print Text 4x8 (DE=addr_mem, B=y, C=x)
40280 - Print Panel
40170 - CLS (A=attr)
40045 - CLS without Panel (A=attr)
39945 - Clear 1 Icon+Text (A=attr, C=coord)
39865 - Print Message (A=number)
39815 - Clear Message
39500 - Load Catalog Disk (HL=addr_mem)
39460 - Screen Save to Mem.
39420 - Screen Load from Mem.
39345 - Print Attrs for File (A=number, HL=addr_mem)
39305 - Print Text 8x8 (DE=addr_mem)
------------------------------------------------------------------------

Адреса внутренних данных (ресурсов) VRCP Windows:

48776 - Attrs for Panel (5x24)
47816 - Sprite of Panel (5x192)
47424 - Attrs of Icons (98x2x2)
44288 - Sprites of Icons (98x2x16)
42240 - Font ZX-WORD (256x4x8)
41472 - Font CHARS (96x8x8)
41152 - Cursor Sprites (2x8x16x10)
40768 - Tabl Y-coords Screen (192x2)
39525 - Sprites of Messages (8x2x16)
39220 - ScreenSaver Sprites (10x1x8)
33025 - Code VRCP Windows (15872)
------------------------------------------------------------------------

Примечание:

- Для того чтобы на файле типа <B> отображалась своя иконка, необходимо
создать файл цветной иконки размером 16x16 пикселей с расширением < >,
тем же именем и поместить рядом на диск;
- Для создания внешней команды можно воспользоваться файлом:
WIN_OSC <H> (исходник шапки на ALASM)
- Для создания внутренней команды можно воспользоваться файлом:
WIN_EISC <H> (исходник шапки на ALASM)
- Для создания оверлеев (как скринсейвер) можно воспользоваться файлами:
WINOVL <H> и PRGOVL <H> (исходники примеров на ALASM)
------------------------------------------------------------------------

baxter
11.04.2011, 19:10
Жаль что мышу не поддержывает:(

zx_demon
11.04.2011, 19:30
Жаль что мышу не поддержывает:(

У меня на Speccy мышки то никогда и небыло просто...поэтому и не дописал это управление, а вообще можно его несложно приклеить дополнительно внутрь, либо включая его внешней командой либо изменив немного код, все исходники и описание где что находится в памяти по каким адресам прилагаются!
:v2_dizzy_coder: