forked from KolibriOS/kolibrios
C Minus Minus programs in one location, one library, uploaded src new @rb, new end, new notify. dicty, tmpdisk and browser moved
git-svn-id: svn://kolibrios.org@3067 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
77593a15ec
commit
263a9a4c7d
261
programs/cmm/browser/HTMLv.c
Normal file
261
programs/cmm/browser/HTMLv.c
Normal file
@ -0,0 +1,261 @@
|
||||
//HTML Viewer in C--
|
||||
//Copyright 2007-2012 by Veliant & Leency
|
||||
//Asper, lev, Lrz, Barsuk, Nable.
|
||||
//home icon - rachel fu, GPL licence
|
||||
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\strings.h"
|
||||
#include "..\lib\figures.h"
|
||||
#include "..\lib\encoding.h"
|
||||
#include "..\lib\file_system.h"
|
||||
#include "..\lib\mem.h"
|
||||
#include "..\lib\dll.h"
|
||||
//áèáëèîòåêè .obj
|
||||
#include "..\lib\libio_lib.h"
|
||||
#include "..\lib\libimg_lib.h"
|
||||
#include "..\lib\edit_box_lib.h"
|
||||
#include "..\lib\scroll_lib.h"
|
||||
#include "..\lib\truetype.h"
|
||||
//êàðòèíêè
|
||||
#include "img\toolbar_icons.c"
|
||||
#include "img\URLgoto.txt";
|
||||
|
||||
|
||||
#define URL param
|
||||
int use_truetype = 0;
|
||||
|
||||
char editURL[sizeof(URL)],
|
||||
page_links[12000],
|
||||
header[300];
|
||||
|
||||
struct lines{
|
||||
int visible, all, first, column_max;
|
||||
};
|
||||
|
||||
int mouse_dd;
|
||||
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,sizeof(editURL),#editURL,#mouse_dd,2,19,19};
|
||||
scroll_bar scroll1 = { 18,200,398, 44,18,0,115,15,0,0xeeeeee,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; //details in scroll_lib.h--
|
||||
|
||||
|
||||
proc_info Form;
|
||||
#define WIN_W 640
|
||||
#define WIN_H 480
|
||||
|
||||
|
||||
dword stak[100]; //ìåíþ ÏÊÌ
|
||||
mouse m;
|
||||
|
||||
#include "TWB.h"
|
||||
#include "include\menu_rmb.h"
|
||||
|
||||
|
||||
void tre()
|
||||
{
|
||||
char *font_picture;
|
||||
char text[20];
|
||||
int width=600;
|
||||
int height=20;
|
||||
// char palette[256*4];
|
||||
int x;
|
||||
|
||||
text_out stdcall ("hello world\0",#fontlol, 17, 0x0, 10, 10);
|
||||
text_out stdcall ("heyeyey!\0",#fontlol, 27, 0x0, 10, 30);
|
||||
text_out stdcall ("alarm!\0", #fontlol, 47, 0x00FF0000, 10, 70);
|
||||
/*
|
||||
strcpy(#text, "hello world\0");
|
||||
|
||||
debug("get width\n");
|
||||
get_width stdcall (#text, #fontinfo, height);
|
||||
width=EAX;
|
||||
for (x=0;x<20;x++) {
|
||||
init_font(#fontinfo);
|
||||
debug("yaya\n");
|
||||
font_picture=mem_Alloc(width*height);
|
||||
text[1]=30+x;
|
||||
truetype stdcall (#text, #fontinfo, font_picture, width, height);
|
||||
|
||||
debug("blyad'!\n");
|
||||
|
||||
|
||||
|
||||
PutPaletteImage(font_picture,width,height,0,20*x,8,#palette);
|
||||
mem_Free(font_picture); }*/
|
||||
}
|
||||
|
||||
char fontlol[64];
|
||||
|
||||
void main()
|
||||
{
|
||||
int btn;
|
||||
byte key;
|
||||
int half_scroll_size;
|
||||
int scroll_used=0;
|
||||
|
||||
mem_Init();
|
||||
if (load_dll2(libio, #libio_init,1)!=0) debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó libio"w);
|
||||
if (load_dll2(libimg, #libimg_init,1)!=0) debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó libimg"w);
|
||||
if (load_dll2(boxlib, #edit_box_draw,0)!=0) {RunProgram("@notify", "System Error: library doesn't exists /rd/1/lib/box_lib.obj"); ExitProcess();}
|
||||
load_dll2(#abox_lib, #boxlib_init,0);
|
||||
if (load_dll2(libtruetype, #truetype,0)!=0) {debug("Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó TrueType"w); use_truetype = 2; }
|
||||
else init_font(#fontlol);
|
||||
|
||||
if (!URL) strcpy(#URL, "/sys/home.htm");
|
||||
strcpy(#editURL, #URL);
|
||||
|
||||
Form.width=WIN_W;
|
||||
Form.height=WIN_H;
|
||||
|
||||
SetElementSizes();
|
||||
|
||||
WB1.OpenPage();
|
||||
|
||||
SetEventMask(0x27);
|
||||
loop()
|
||||
{
|
||||
WaitEventTimeout(2);
|
||||
switch(EAX & 0xFF)
|
||||
{
|
||||
CASE evMouse:
|
||||
/*scrollbar_v_mouse (#scroll1); //êîí÷åíûé ñêðîëë ïðèòîðìàæèìàåò, èä¸ì "ñâîèì ïóò¸ì"
|
||||
if (lines.first <> scroll1.position)
|
||||
{
|
||||
lines.first = scroll1.position;
|
||||
WB1.ParseHTML(buf, filesize);
|
||||
//break;
|
||||
};*/
|
||||
|
||||
btn=GetProcessSlot(Form.ID);
|
||||
IF (btn<>GetActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì
|
||||
|
||||
edit_box_mouse stdcall (#edit1);
|
||||
|
||||
m.get();
|
||||
|
||||
if (m.pkm) && (m.y>WB1.top) && (m.y<Form.height) && (filesize)
|
||||
{
|
||||
SwitchToAnotherThread();
|
||||
CreateThread(#menu_rmb,#stak);
|
||||
}
|
||||
|
||||
IF (m.vert==65535) //ïðîêðóòêà êîë¸ñèêîì
|
||||
{
|
||||
IF (lines.first==0) break;
|
||||
IF (lines.first>3) lines.first-=2; ELSE lines.first=1;
|
||||
WB1.Scan(ID1);
|
||||
break;
|
||||
}
|
||||
IF (m.vert==1)
|
||||
{
|
||||
IF(lines.visible+lines.first+3>=lines.all) WB1.Scan(181);
|
||||
ELSE {
|
||||
lines.first+=2;
|
||||
WB1.Scan(ID2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!m.lkm) scroll_used=0;
|
||||
if (m.x>=WB1.width-14) && (m.x<=WB1.width+6) && (m.y>WB1.top+16)
|
||||
&& (m.y<WB1.top+WB1.height-16) && (lines.all>lines.visible) && (m.lkm)
|
||||
scroll_used=1;
|
||||
|
||||
if (scroll_used)
|
||||
{
|
||||
half_scroll_size = WB1.height - 16 * lines.visible / lines.all - 3 /2;
|
||||
IF (half_scroll_size+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=half_scroll_size+WB1.top; //åñëè êóðñîð íàä îêíîì
|
||||
btn=lines.first; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
|
||||
lines.first = m.y -half_scroll_size -WB1.top * lines.all / WB1.height;
|
||||
if (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible;
|
||||
if (btn<>lines.first) WB1.ParseHTML(buf); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
|
||||
}
|
||||
|
||||
break;
|
||||
case evButton:
|
||||
btn=GetButtonID();
|
||||
IF (btn==1)
|
||||
{
|
||||
KillProcess(downloader_id);
|
||||
ExitProcess();
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
WB1.Scan(btn);
|
||||
}
|
||||
break;
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
|
||||
if (edit1.flags == 66) || (edit1.flags == 98) SWITCH(key) //åñëè àêòèâíà ñòðîêà àäðåñà èãíîðèðóåì íåêîòîðûå êíîïêè
|
||||
{ CASE 52: CASE 53: CASE 54: goto _EDIT_MARK; }
|
||||
|
||||
WB1.Scan(key);
|
||||
|
||||
_EDIT_MARK:
|
||||
IF (key<>0x0d) && (key<>183) && (key<>184) && (key<>173) {EAX=key<<8; edit_box_key stdcall(#edit1);} //àäðåñíàÿ ñòðîêà
|
||||
break;
|
||||
case evReDraw:
|
||||
Draw_Window();
|
||||
break;
|
||||
default:
|
||||
if (downloader_id<>0)
|
||||
{
|
||||
if (GetProcessSlot(downloader_id)<>0) break;
|
||||
downloader_id=0;
|
||||
lines.first = lines.all = 0;
|
||||
WB1.ReadHtml(_WIN);
|
||||
Draw_Window();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetElementSizes()
|
||||
{
|
||||
edit1.width=Form.width-266;
|
||||
WB1.top=44;
|
||||
WB1.width=Form.width-13;
|
||||
WB1.height=onTop(43,5);
|
||||
lines.column_max = WB1.width - 30 / 6;
|
||||
lines.visible = WB1.height - 3 / 10 - 2;
|
||||
}
|
||||
|
||||
|
||||
void Draw_Window()
|
||||
{
|
||||
int j;
|
||||
DefineAndDrawWindow(215,100,WIN_W,WIN_H,0x73,0x00E4DFE1,0,0);
|
||||
|
||||
GetProcessInfo(#Form, SelfInfo);
|
||||
if (Form.status_window>2) //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
||||
{
|
||||
DrawTitle(#header);
|
||||
return;
|
||||
}
|
||||
if (Form.height<120) MoveSize(OLD,OLD,OLD,120);
|
||||
if (Form.width<280) MoveSize(OLD,OLD,280,OLD);
|
||||
|
||||
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
||||
if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10);
|
||||
|
||||
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //çàêðàøèâàåì ôîí ïîä òóëáàðîì
|
||||
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //âûïóêëîñòü
|
||||
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //âûïóêëîñòü
|
||||
for (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0xE4DFE1);
|
||||
PutImage(#URLgoto,40,19,onLeft(57,0),14);
|
||||
DefineButton(onLeft(37,0),15, 18, 16, GOTOURL+BT_HIDE, 0xE4DFE1);
|
||||
DefineButton(onLeft(56,0),15, 17, 16, SEARCHWEB+BT_HIDE, 0xE4DFE1);
|
||||
DrawRectangle(205,14,onLeft(58,205),18,0x94AECE); //îáîäîê ïîëîñû àäðåñà
|
||||
DrawRectangle(206,15,onLeft(59,205),16,0xE4ECF3);
|
||||
|
||||
SetElementSizes();
|
||||
WB1.ShowPage();
|
||||
//tre();
|
||||
DefineButton(scroll1.start_x+1, scroll1.start_y+1, 16, 16, ID1+BT_HIDE, 0xE4DFE1);
|
||||
DefineButton(scroll1.start_x+1, scroll1.start_y+scroll1.size_y-18, 16, 16, ID2+BT_HIDE, 0xE4DFE1);
|
||||
}
|
||||
|
||||
int onLeft(dword right,left) {return Form.width-right-left;}
|
||||
int onTop(dword down,up) {return Form.height-GetSkinHeight()-down-up;}
|
||||
|
||||
|
||||
stop:
|
418
programs/cmm/browser/History.txt
Normal file
418
programs/cmm/browser/History.txt
Normal file
@ -0,0 +1,418 @@
|
||||
20.11.12 - 0.98
|
||||
- интелектуальная система кеширования изображений.
|
||||
|
||||
18.11.12 - 0.97.7
|
||||
- если изображение не загрузилось, но содержит ссылку отображается
|
||||
заменяющий его текст;
|
||||
- полностью исправлены переносы ссылках в тексте;
|
||||
- отображение в меню текущей кодировки;
|
||||
- SoUrcerer - Синхронизация программы с новой оптимизированной
|
||||
версией библитеки TryeType.
|
||||
|
||||
|
||||
|
||||
10.11.12 - 0.97.6
|
||||
- нормальный запуск программы даже без библиотеки lib_img;
|
||||
- оповещение если box_lib не найдена;
|
||||
- исправлена ошибка приводящая к торможению при отображении
|
||||
TrueType шрифтов;
|
||||
- обновление библиотек.
|
||||
|
||||
05.11.12 - 0.97.5
|
||||
Переключалка на шрифты TrueType из меню ПКМ.
|
||||
|
||||
16.07.12 - 0.97
|
||||
- небольшие улучшения в обработке ссылок и изображений;
|
||||
- включение обработки разрывов строк через меню;
|
||||
- поддержка цветов вида #abc, улучшения в обработке цветов;
|
||||
- пропадали изображения при начале загрузки страницы;
|
||||
- исправлен баг 100% загрузки процессора при использовании
|
||||
скролла (спасибо hidnplayer).
|
||||
|
||||
14.07.12 - 0.96
|
||||
- исправлен баг со строкой адреса
|
||||
- исправлен баг с незакрытыми тегами <a>
|
||||
- частично исправлен баг с длинными адресами урлов
|
||||
- меню - новое окно
|
||||
|
||||
22.06.12 - 0.95
|
||||
|
||||
22.06.12 - 0.94c
|
||||
- испрвлена регрессия со ссылками;
|
||||
- исправлена регрессия с ползунком;
|
||||
- исправлено затирание первой строки.
|
||||
|
||||
19.06.12 - 0.94
|
||||
- улучшение кода.
|
||||
|
||||
14.06.12 -- v0.93
|
||||
- заработали якоря;
|
||||
- улучшено меню.
|
||||
|
||||
13.06.12 -- v0.92
|
||||
- базовое меню ПКМ;
|
||||
- убрана постоянная загрузка страницы при перерисовке окна;
|
||||
- костыли версии 2.0 для работы с downloader'ом;
|
||||
- разделение кода загрузки и отображения страницы: часть 1.
|
||||
|
||||
04.06.12 -- v0.90
|
||||
- новый скроллбар из box_lib (спасибо lev);
|
||||
- нормальная загрузка страниц без скидывания фокуса с окна;
|
||||
- гениальный и грязный хак для работы с downloader'ом, который
|
||||
у меня на машине даёт 99% загрузки страниц вместо 50% ранее;
|
||||
- масса исправлений в работе с историей посещений и навигацией;
|
||||
- в теге <font> исправлена регрессия.
|
||||
|
||||
|
||||
27.05.12 -- v0.83
|
||||
- новая иконка кнопки "домой";
|
||||
- оптимизация тега <b>;
|
||||
- улучшения при работе с книгами xml-подобного формата fb2.
|
||||
|
||||
|
||||
13.04.12 -- v0.80
|
||||
- поддержка <body> "bgcolor=" и "text=";
|
||||
- обработка перехода вверх "../";
|
||||
- jpg, gif, png открываются через kiv.
|
||||
- теперь изображения легко могут быть ссылками;
|
||||
- 2 небольших фикса для изображений, кнопки BackSpace;
|
||||
- чуток улучшена обработка урлов, содержащих #;
|
||||
- заработала кнопка "Вперёд".
|
||||
|
||||
|
||||
|
||||
29.02.12 -- v0.76 -- 11.3
|
||||
- исправлена работа кнопки "Назад";
|
||||
- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд;
|
||||
- исправлено исчезание заголовка страниц;
|
||||
- исчезала кнопка вверх в прокрутке - исправлено;
|
||||
- некоторые другие исправления.
|
||||
|
||||
|
||||
27.02.12 -- v0.75 -- 11.? Кб
|
||||
- при закрытии HTMLv, downloader тоже завершается;
|
||||
- невозможно запустить больше одного downloader'a;
|
||||
- отображение процесса загрузки страницы из Интернета через кнопочку
|
||||
"остановить", надпись "Loading...", возможность прервать процесс;
|
||||
- обновление страницы из Интернета приводит к её повторной загрузке.
|
||||
|
||||
|
||||
24.02.12 -- v0.71 -- 11.? Кб
|
||||
- просто починил эти самые интернеты.
|
||||
|
||||
|
||||
26.09.11 -- v0.70с -- 11.4 Кб
|
||||
- универсальная обработка цветов;
|
||||
- улучшения в обработке title;
|
||||
- исправлена обработка станиц в кодировке iso-8859-1.
|
||||
|
||||
22.09.11 -- v0.70 -- 11.3 Кб
|
||||
- улучшен и оптимизирован код обработки юникодовских тегов (&), исправлен
|
||||
и дополнен их список;
|
||||
- устранён вылет программы при нажатии клавиши CapsLock (спасибо Mario);
|
||||
- заглушка на вылет программы при загрузке страниц из и-нэта (спасибо Mario).
|
||||
|
||||
13.09.11 -- v0.69 -- 11.2 Кб
|
||||
- нормальная прокрутка изображений;
|
||||
- работа с файлами любого размера;
|
||||
- оптимизация процедуры парсинга тега с параметрами.
|
||||
|
||||
05.09.11 -- v0.68 -- 11.2 Кб
|
||||
- устранён вылет программы при неправильном параметре color тега <font> - алсо
|
||||
иногда действительно полезно читать маны;
|
||||
- memory.h-- удалён как старый дубликат, все функции работы с памятью отныне
|
||||
используют mem.h--, написанный Asper'ом;
|
||||
- изображения теперь вписываются в окно по ширине;
|
||||
- устранён частый вылет программы при прокрутке страницы, содержащей изображения.
|
||||
|
||||
20.08.11 -- v0.67 -- 11.1 Кб
|
||||
- более адекватная прокрутка изображений;
|
||||
- корректная обработка табов в тексте и с тегом <pre> (спасибо Nazarus и Jaeger);
|
||||
- улучшена отзывчивость программы при прокрутке больших страниц (фикс изначально
|
||||
был написан Gluk'ом для игры Косилка по моей просьбе, сюда перенесен мной);
|
||||
- небольшие исправления в реакции ползунка прокрутки;
|
||||
- исправлено залезание текста в наклонном шрифте на левый ободок окна;
|
||||
- кнопка "Новая вкладка" и комбинации Ctrl+N, Ctrl+T банально создают новое окно;
|
||||
- правильное распознание украинской буквы ґ;
|
||||
- поддержка кодировки "UTF8" для универсальности (идея фичи Joaquin).
|
||||
|
||||
|
||||
|
||||
20.06.11 -- v0.63 -- 11.32 Кб
|
||||
lev
|
||||
- наклонный шрифт
|
||||
- таблица именованных цветов
|
||||
|
||||
08.06.10 -- v0.62a -- 9.68 Кб
|
||||
- в адресную строку нельзя было нормально ввести цифры 4 и 6 (спасибо Nasarus
|
||||
за найденные баги)
|
||||
- поддержка DOS-кодировки страниц (по просьбе Nasarus'a)
|
||||
|
||||
|
||||
14.02.10 -- v0.62 -- 9.42 Кб
|
||||
- поиск в Интернетах с помощью nigma.ru, поиск только по английским символам,
|
||||
горячая комбинация клавиш Ctrl+Enter;
|
||||
- улучшено и оптимизировано определение кодировки;
|
||||
- небольшой фикс для работы с XHTML-тегами типа br/;
|
||||
- исправлен баг: не работал просмотр (по f3) страниц из интернета;
|
||||
- немного улучшено отображение изображений, но, всё равно, ещё очень плохо;
|
||||
- поддержка тегов с кавычками ' (как на главной странице kolibrios.org);
|
||||
- работа с историей вынесена в отдельный файл;
|
||||
- исправлена поломанная в предыдущей версии работа в Интернетах.
|
||||
|
||||
|
||||
31.01.10 -- v0.60 -- 8.94 Кб
|
||||
- поддержка utf-8 реализованная Asper'ом ещё в ноябре, увы не попавшая в
|
||||
дистр 0.7.7.0. От меня огромное спасибо Asper'у в помощи!
|
||||
- исправлена ошибка при открытии страницы с /fd и /cd (спасибо Nasarus и IgorA,
|
||||
которые сообщили мне об ошибке);
|
||||
- поддержка шайтанской кодировки mht-страниц, то есть, сохранённых со всем
|
||||
содержимым через ИЕ7 (спасибо за помощь IgorA);
|
||||
- улучшено определение кодировки: например, теперь можно нормально читать хабр;
|
||||
- небольшое исправление в парсинге параметров тега;
|
||||
- увеличена длина URL до 4096 символов.
|
||||
|
||||
|
||||
08.11.09 -- v0.57 -- 8.69 Кб
|
||||
- Asper реализовал поддержку изображений, которую в HTMLv ещё надо пилить;
|
||||
- поддержка .mht, скорее всего старых версий (страница Albom'a), в новых (я
|
||||
сохранил в .mht через ИЕ7) вместо буковок какая-то ересь, очень похожая на
|
||||
hex-коды;
|
||||
- исправлено появление кнопки "остановить загрузку" когда не надо;
|
||||
- оптимизации поиска и загрузки файла.
|
||||
|
||||
|
||||
03.11.09 -- v0.53 -- 7.87 Кб
|
||||
- восстановлена совместимость с библиотекой box_lib.obj;
|
||||
- исправлена заглушка с адресами страниц, содержащими знак # ;
|
||||
- программа больше не вылетает, если несколько раз нажать на локальную ссылку;
|
||||
- серьёзное улучшение обработки разных ссылок;
|
||||
- исправлено превышение максимальной длины истории ссылок;
|
||||
- корректная обработка ссылок, содержащих знак = ;
|
||||
- исправлено исчезание ссылок, если тег находится за границей видимой области;
|
||||
- во время загрузки страницы, пишет "Loading...";
|
||||
- небольшие обновления кода.
|
||||
|
||||
|
||||
05.06.09 -- v0.5 -- 7.91 Кб
|
||||
- barsuk прикрутил загрузку страниц из Интернета через downloader за что
|
||||
ему огромнейший респект :)
|
||||
- исправление падения программы в случае, если страница недокачана -
|
||||
исправлен выход за границы памяти при парсинге тегаов и обработке <-- -->;
|
||||
- исправлена передача параметров downloader'y: обрезается / в конце;
|
||||
- корректная обработка некоторых символов;
|
||||
- некоторые оптимизации.
|
||||
|
||||
|
||||
28.01.08 -- v0.48.5 -- 6.95 Кб
|
||||
- если присутствует только закрывающий тег </a>, без открывающего, ссылки
|
||||
больше не "съезжают";
|
||||
- корректная обработка параметров, не взятых в скобки, пример: href=1.htm ;
|
||||
- исправлен баг с цветом ссылок и цветом текста после ссылок;
|
||||
- многоуровневые списки;
|
||||
- немного улучшен алгоритм парсинга тегов;
|
||||
- клавиша BackSpace опять возвращает назад;
|
||||
- подчёркивание цветных ссылок теперь цвета самих ссылок;
|
||||
- исправлен баг в заглушке с переходом по ссылке внутри страницы #.
|
||||
|
||||
|
||||
28.01.08 -- v0.48.2 -- 6.95 Кб
|
||||
- устранён вылет программы при прокрутке страницы с большим кол-вом ссылок;
|
||||
- устранено "синение" текста в некоторых случаях;
|
||||
- исправлен баг в чтении тега с параметрами;
|
||||
- автоопределение кодировки KOI8;
|
||||
|
||||
|
||||
22.01.08 -- v0.48.1 -- 6,88 Кб
|
||||
21.12.08 -- v0.48.0
|
||||
- перенос по словам;
|
||||
- координаты считаются от конца заголовка;
|
||||
- исправлена перерисовка окна, когда страница маленькая;
|
||||
- исправил баг в теге <pre>;
|
||||
- исправлен баг перерисовки первой строки;
|
||||
|
||||
|
||||
07.12.08 -- v0.47 -- 7,50 Кб
|
||||
- добавлен символ "апостроф", украинские буквы для кодировки win1251;
|
||||
- инфа внутри <!-- --> фильтруется;
|
||||
- переписана процедура парсинга параметров тега;
|
||||
- зачатки вывода изображений (спасибо Nable и Asper за помощь);
|
||||
- исправлен баг, из-за которого страницы могли не отображаться;
|
||||
- исправлен баг с тегом font, из-за которого весь текст могло плющить;
|
||||
- исправлен недочёт в теге <pre> (нашёл diamond);
|
||||
- немного увеличена скорость обработки страниц;
|
||||
- немного улучшена полоса прокрутки, исправлен один мелкий баг;
|
||||
|
||||
|
||||
02.12.08 -- v0.45 -- 6,79 Кб
|
||||
- поддержка кодировки KOI8-R(U) - активируется нажатием Ctrl+R. Спасибо Velianty
|
||||
за написаный код;
|
||||
- вывод какой-то win кодировки, где все символы отображаются, как А и т.д.
|
||||
(заработал файл, присланый Albom'ом);
|
||||
- исправлен очень серьёзный баг из-за которого страницы с большим количеством
|
||||
ссылок приводили к вылету программы;
|
||||
- кодировка DOS'a (cp866) активируется нажатием Ctrl+D;
|
||||
- улучшен скролл;
|
||||
- исправлен баг кнопки "Обновить";
|
||||
- иконки тулбара выводится одним изображением с палитрой, как результат меньше
|
||||
перерисовка окна и размер программы.
|
||||
|
||||
|
||||
20.10.08 -- v0.40 -- 7,36 Кб
|
||||
- обработка нескольких параметров тега для ссылки и текста;
|
||||
- перечёркивание и подчёркивание отображается тем же цветом что и текст
|
||||
- правильная обработка табов;
|
||||
- улучшение тега <li>;
|
||||
- корректный переход на страницу, адрес которой содержит знак "#";
|
||||
- исправлен баг из-за которого часть текста могла стать невидимой;
|
||||
- исправлен тег <q>;
|
||||
- некоторые спецсимволы заменены своими "аналогами": (с), (r), обычное тире
|
||||
вместо типографического;
|
||||
- поддержка тегов <ins> и <del>;
|
||||
- прочие доработки и хитрожопые оптимизации отображения :)
|
||||
|
||||
|
||||
19.10.08 -- v0.38.1 -- 6,85 Кб
|
||||
- суровые оптимизации и как результат увеличилась скорость загрузки страниц на
|
||||
7-10% (было проверено с использованием секундомера);
|
||||
- правильное отображение файлов с расширением ".txt" в окне программы;
|
||||
|
||||
18.10.08 -- v0.38 -- 6,88 Кб
|
||||
- для полосы адреса теперь используется отдельная переменная;
|
||||
- хождение по относительным ссылкам, с косяками, но то фигня. Сделаю;
|
||||
- улучшения в обработке тегов: корректно обрабатываются таб и переход на
|
||||
следующую строку в теге.
|
||||
- немного улучшена обработка тегов вообще, догадываюсь как сделать ваще зашибись;
|
||||
- добавлена обработка цвета линий (hr).
|
||||
|
||||
17.10.08 -- v0.37 -- 6,82 Кб
|
||||
- реализовано преобразование тегов вида в символы (пока только 5 основных);
|
||||
- немного улучшен скролл, но, всё равно, это не дело;
|
||||
- F3 - просмотр исходного кода страницы;
|
||||
- обновлены кнопочки "Вперёд/Назад".
|
||||
Правка багов:
|
||||
- исправлена табота со ссылками;
|
||||
- исправлен баг с тем, что иногда отображалось два пробела в тексте вместо одного;
|
||||
- исправил баг из-за которого часть текста при прокрутке могла стать синей;
|
||||
- исправлен баг, связаный с клавишей BackSpace;
|
||||
Огромное спасибо diamond'y за тестирование.
|
||||
|
||||
|
||||
16.10.08 -- v0.35.3 -- 6,74 Кб
|
||||
- кнопки от ссылок не удалялись в случае, если страница не найдена, fixed;
|
||||
- улучшены кнопочки тулбара;
|
||||
- пофиксил последнюю страницу от Albom'a, со скриптом; оказалось просто надо было
|
||||
обнулить переменную во время её объявления;
|
||||
- при сворачивании окна в заголовок, его название не исчезает.
|
||||
|
||||
|
||||
15.10.08 -- v0.35 -- 6,75 Кб
|
||||
- исправлен баг - вылет проги из-за переполнения памяти во время создания ссылок
|
||||
(спасибо Albom'у, который прислал страницу, на которой проявляется баг);
|
||||
- при перемотке колёсиком теперь проматывается 3 строчки;
|
||||
- исправлена перемотка PgUp/PgDn;
|
||||
- исправлена работа программы в случае, если страница не найдена;
|
||||
- новые фирменные изображения на кнопках;
|
||||
- исправлен тег <title> для длинных названий;
|
||||
- теперь переход Домой записывается в хистори;
|
||||
- программа больше не должна вылетать :)
|
||||
|
||||
|
||||
03.10.08 -- v0.30.2 -- 6,56 Кб
|
||||
- обновление страницы не приводит к записи новой ссылки в историю посещений;
|
||||
- оптимизация перебора символов;
|
||||
- больше не появляются белые полосы на ободке нижней части окна;
|
||||
- установлены минимальные размеры окна, убраны артефакты при сворачивании окна в заголовок.
|
||||
|
||||
|
||||
02.08.08 -- v0.30.1 -- 6,48 Кб
|
||||
- поправил баг с историей посещений страниц;
|
||||
- устранён баг, когда под самой нижней строкой появлась прозрачная полоса;
|
||||
- игнорируется текст между <style>;
|
||||
- немного оптимизирован скролл.
|
||||
|
||||
|
||||
29.07.08 -- v0.30 -- 6,46 Кб
|
||||
- клавиша BackSpace, если полоса адреса не активна, возвращает на предыдущую страницу;
|
||||
- игнорируется текст после тега <script>;
|
||||
- сносно работает прокрутка;
|
||||
- заглушка на PgUp\PgDown, работает End;
|
||||
- исправлен баг с заголовком окна.
|
||||
|
||||
|
||||
28.07.08 -- v0.27 -- 6,21 Кб
|
||||
- вывод цвета текста, поддержка до 10 вложеных тегов цвета - за всё это спасибо Veliant'y;
|
||||
- адаптирован код под новую версию библиотеки <Lrz>, отвечающей за строку адреса (box_lib);
|
||||
- теперь корректно определяется конец файла при обработке (by Veliant);
|
||||
- теперь текст декодируется win -> dos, исправлено отображение некоторых специальных символов;
|
||||
- почищен код, оптимизована структура документа;
|
||||
- опредение длины страницы, заглушки на прокрутку её вверх и вниз;
|
||||
- сильно уменьшена перерисовка первых двух строк.
|
||||
|
||||
|
||||
23.07.08 -- v0.24 -- 6,05 Кб
|
||||
- полностью исправлена работа ссылок;
|
||||
- Энтер теперь добавляется как пробел в тексте, в случае если до него не было пробела;
|
||||
- обработка тега "hr" - рисование линий;
|
||||
- исправлен баг при деактивации окна.
|
||||
|
||||
|
||||
07.07.08 -- v0.23 alpha -- 5.68 Кб
|
||||
- исправлен баг кнопки "Назад";
|
||||
- некоторые ссылки работают :)
|
||||
- PageUp, PageDown.
|
||||
|
||||
|
||||
05.07.08 -- v0.22 -- 5.68 Кб
|
||||
- исправлен баг, из-за которого строка в конце окна отображалась без "стиля";
|
||||
- теперь программа умеет отделять теги от параметров - улучшена совместимость;
|
||||
- поддержка параметров в режиме тестирования (пока недоступно).
|
||||
|
||||
|
||||
04.07.08 -- v0.21 -- 5.58 Кб
|
||||
- небольшие изминения в интерфейсе;
|
||||
- рабочая клавиша "Назад".
|
||||
|
||||
|
||||
29.06.08 -- v0.2 -- 5.48 Кб
|
||||
- уменьшена перерисовка при открытии проги, во время перехода по страницам,
|
||||
во время их прокрутки - текст выводится не побуквенно, а короткими строчками;
|
||||
- изменения в структуре программы, она стала ещё чуть более гибкой;
|
||||
- теперь заголовок не перерисовывается постоянно во время перемотки;
|
||||
- теперь не выводится больше 1 пробела;
|
||||
- запуск с параметром - открывается страница;
|
||||
- немного подправлено положение строки адреса при разной высоте заголовков;
|
||||
- если страница не существует, выводится предупреждение.
|
||||
|
||||
|
||||
26.06.08 -- v0.1.3 -- 5.59 Кб
|
||||
- при прокрутке не перерисовывается заголовок;
|
||||
- теги обнуляются перед началом перерисовки;
|
||||
- устранён глюк из-за которого внизу списка мог появляться левый текст;
|
||||
- поддержка тегов ul, blockquote, q, некоторые другие частично;
|
||||
- теперь вместе обрабатываются теги с / и без него.
|
||||
|
||||
|
||||
24.06.08 -- v0.1.1 -- 5.37 Кб
|
||||
- исправления и улучшения тега <li>;
|
||||
- теперь можно прописывать путь к странице не добавляя в конце ".htm",
|
||||
программа добавит расширение автоматически;
|
||||
- немного уменьшена перерисовка окна;
|
||||
- добавлен тег "strike", аналог "s";
|
||||
- начальная поддержка некоторых других тегов;
|
||||
- исправлен баг, из-за которого нельзя было перематывать текст вниз до конца.
|
||||
|
||||
|
||||
22.06.08 -- v0.1 -- 5.11 Кб
|
||||
- более или менее полная поддержка тегов: b, strong, i, u, s, br, pre, title,
|
||||
li, p. Поддержка закрывающих тегов соответственно;
|
||||
- поддержка вложеных тегов;
|
||||
- игнорирование ненужных пробелов в теге (пример: < b >);
|
||||
- увеличена скорость прокрутки и программы;
|
||||
- полоса адреса (EditBox) от <Lrz>, спасибо ему огромное;
|
||||
- остановка рисования после тега </html>.
|
||||
|
||||
|
||||
20.02.08 -- v0.000001 -- 7.32 Кб
|
||||
Типа начало. :)
|
||||
Переписал браузер Veliant'a под новую библиотеку, немного доделан.
|
884
programs/cmm/browser/TWB.h
Normal file
884
programs/cmm/browser/TWB.h
Normal file
@ -0,0 +1,884 @@
|
||||
|
||||
int downloader_id;
|
||||
|
||||
dword
|
||||
buf,
|
||||
filesize,
|
||||
blink;
|
||||
|
||||
char download_path[]="/rd/1/.download";
|
||||
char search_path[]="http://nigma.ru/index.php?s=";
|
||||
char version[]=" Text-based Browser 0.98";
|
||||
|
||||
|
||||
struct TWebBrowser {
|
||||
int left, top, width, height;
|
||||
void Scan(int);
|
||||
void GetNewUrl();
|
||||
void OpenPage();
|
||||
void ReadHtml(byte);
|
||||
void ShowPage();
|
||||
void ParseHTML(dword);
|
||||
void WhatTextStyle(int left1, top1, width1);
|
||||
void DrawPage();
|
||||
void DrawScroller();
|
||||
};
|
||||
|
||||
TWebBrowser WB1;
|
||||
|
||||
byte rez, b_text, i_text, u_text, s_text, pre_text, blq_text, li_text,
|
||||
link, ignor_text, li_tab, first_line_drawed, cur_encoding;
|
||||
|
||||
|
||||
dword text_colors[300],
|
||||
text_color_index,
|
||||
link_color,
|
||||
bg_color;
|
||||
|
||||
int stroka,
|
||||
stolbec,
|
||||
tab_len;
|
||||
|
||||
char anchor[256];
|
||||
int anchor_line_num;
|
||||
|
||||
char line[500],
|
||||
tag[100],
|
||||
tagparam[10000],
|
||||
parametr[1200],
|
||||
options[4096];
|
||||
|
||||
#include "include\history.h"
|
||||
#include "include\colors.h"
|
||||
#include "include\unicode_tags.h"
|
||||
#include "include\some_code.h"
|
||||
#include "include\parce_tag.h"
|
||||
|
||||
|
||||
void TWebBrowser::Scan(int id)
|
||||
{
|
||||
if (id >= 400)
|
||||
{
|
||||
GetURLfromPageLinks(id);
|
||||
|
||||
//#1
|
||||
if (URL[0] == '#')
|
||||
{
|
||||
strcpy(#anchor, #URL+strrchr(#URL, '#'));
|
||||
|
||||
strcpy(#URL, BrowserHistory.CurrentUrl());
|
||||
|
||||
lines.first=lines.all-lines.visible;
|
||||
ShowPage();
|
||||
return;
|
||||
}
|
||||
//liner.ru#1
|
||||
if (strrchr(#URL, '#')<>-1)
|
||||
{
|
||||
strcpy(#anchor, #URL+strrchr(#URL, '#'));
|
||||
URL[strrchr(#URL, '#')-1] = 0x00; //çàãëóøêà
|
||||
}
|
||||
|
||||
GetNewUrl();
|
||||
|
||||
if (!strcmp(#URL + strlen(#URL) - 4, ".gif")) || (!strcmp(#URL + strlen(#URL) - 4, ".png")) || (!strcmp(#URL + strlen(#URL) - 4, ".jpg"))
|
||||
{
|
||||
//if (strstr(#URL,"http:"))
|
||||
RunProgram("/sys/media/kiv", #URL);
|
||||
strcpy(#editURL, BrowserHistory.CurrentUrl());
|
||||
strcpy(#URL, BrowserHistory.CurrentUrl());
|
||||
return;
|
||||
}
|
||||
if (!strcmpn(#URL,"mailto:", 7))
|
||||
{
|
||||
RunProgram("@notify", #URL);
|
||||
strcpy(#editURL, BrowserHistory.CurrentUrl());
|
||||
strcpy(#URL, BrowserHistory.CurrentUrl());
|
||||
return;
|
||||
}
|
||||
|
||||
OpenPage();
|
||||
return;
|
||||
}
|
||||
|
||||
IF(lines.all < lines.visible) SWITCH(id) //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
|
||||
{ CASE 183: CASE 184: CASE 180: CASE 181: return; }
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case 011: //Ctrk+K
|
||||
ReadHtml(_KOI);
|
||||
break;
|
||||
case 021: //Ctrl+U
|
||||
ReadHtml(_UTF);
|
||||
break;
|
||||
case 004: //Ctrl+D
|
||||
ReadHtml(_DOS);
|
||||
break;
|
||||
case 001:
|
||||
if (!pre_text) pre_text=2;
|
||||
else pre_text=0;
|
||||
break;
|
||||
case 002: //free img cache
|
||||
FreeImgCache();
|
||||
break;
|
||||
case 005: //truetype
|
||||
if (use_truetype == 2)
|
||||
{
|
||||
RunProgram("@notify", "Library does not exists /rd/1/lib/truetype.obj"w);
|
||||
return;
|
||||
}
|
||||
if (use_truetype == 1) use_truetype=0; else use_truetype=1;
|
||||
break;
|
||||
case BACK:
|
||||
if (!BrowserHistory.GoBack()) return;
|
||||
OpenPage();
|
||||
return;
|
||||
case FORWARD:
|
||||
if (!BrowserHistory.GoForward()) return;
|
||||
OpenPage();
|
||||
return;
|
||||
case 052: //Íàæàòà F3
|
||||
if (strcmp(get_URL_part(5),"http:")<>0) RunProgram("/rd/1/tinypad", #URL); else RunProgram("/rd/1/tinypad", #download_path);
|
||||
return;
|
||||
case 054: //F5
|
||||
IF(edit1.flags == 66) break;
|
||||
case REFRESH:
|
||||
if (GetProcessSlot(downloader_id)<>0)
|
||||
{
|
||||
KillProcess(downloader_id);
|
||||
Pause(20);
|
||||
Draw_Window();
|
||||
return;
|
||||
}
|
||||
anchor_line_num=lines.first; //âåñ¸ëûé êîñòûëü :Ð
|
||||
anchor[0]='|';
|
||||
OpenPage();
|
||||
return;
|
||||
case 014: //Ctrl+N íîâîå îêíî
|
||||
case 020: //Ctrl+T íîâàÿ âêëàäêà
|
||||
case NEWTAB:
|
||||
MoveSize(190,80,OLD,OLD);
|
||||
RunProgram(#program_path, #URL);
|
||||
return;
|
||||
|
||||
case HOME:
|
||||
strcpy(#editURL, "http://kolibri-os.narod.ru");
|
||||
case GOTOURL:
|
||||
case 0x0D: //enter
|
||||
strcpy(#URL, #editURL);
|
||||
OpenPage();
|
||||
return;
|
||||
case 173: //ctrl+enter
|
||||
case SEARCHWEB:
|
||||
strcpy(#URL, #search_path);
|
||||
strcat(#URL, #editURL);
|
||||
OpenPage();
|
||||
return;
|
||||
|
||||
case ID1: //ìîòàåì ââåðõ
|
||||
IF(lines.first <= 0) return;
|
||||
lines.first--;
|
||||
break;
|
||||
case ID2: //ìîòàåì âíèç
|
||||
IF(lines.visible + lines.first >= lines.all) return;
|
||||
lines.first++;
|
||||
break;
|
||||
case 183: //PgDown
|
||||
IF(lines.first == lines.all - lines.visible) return;
|
||||
lines.first += lines.visible + 2;
|
||||
IF(lines.visible + lines.first > lines.all) lines.first = lines.all - lines.visible;
|
||||
break;
|
||||
case 184: //PgUp
|
||||
IF(lines.first == 0) return;
|
||||
lines.first -= lines.visible - 2;
|
||||
IF(lines.first < 0) lines.first = 0;
|
||||
break;
|
||||
case 180: //home
|
||||
IF(lines.first == 0) return;
|
||||
lines.first = 0;
|
||||
break;
|
||||
case 181: //end
|
||||
IF (lines.first == lines.all - lines.visible) return;
|
||||
lines.first = lines.all - lines.visible;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
ParseHTML(buf);
|
||||
}
|
||||
|
||||
|
||||
char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", "/rd/", "/fd/", "/bd/", "/hd/", "/cd/", "/tmp/", 0};
|
||||
|
||||
//dword TWebBrowser::GetNewUrl(dword CUR_URL, NEW_URL){
|
||||
void TWebBrowser::GetNewUrl(){
|
||||
int i, len;
|
||||
|
||||
for (i=0; ABSOLUTE_LINKS[i]; i++)
|
||||
{
|
||||
len=strlen(ABSOLUTE_LINKS[i]);
|
||||
if (!strcmpn(#URL, ABSOLUTE_LINKS[i], len)) return;
|
||||
}
|
||||
|
||||
IF (!strcmpn(#URL,"./", 2)) strcpy(#URL, #URL+2); //èãíîðèì :)
|
||||
if (URL[0] == '/') strcpy(#URL, #URL+1);
|
||||
|
||||
strcpy(#editURL, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
||||
|
||||
_CUT_ST_LEVEL_MARK:
|
||||
|
||||
if (editURL[strrchr(#editURL, '/')-2]<>'/') // åñëè íå http://
|
||||
{
|
||||
editURL[strrchr(#editURL, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||
}
|
||||
|
||||
IF (!strcmp(get_URL_part(3),"../")) //íà óðîâåíü ââåðõ
|
||||
{
|
||||
strcpy(#URL,#URL+3);
|
||||
editURL[strrchr(#editURL, '/')-1] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||
goto _CUT_ST_LEVEL_MARK;
|
||||
}
|
||||
|
||||
if (editURL[strlen(#editURL)-1]<>'/') strcat(#editURL, "/");
|
||||
|
||||
strcat(#editURL, #URL); //êëåèì íîâûé àäðåñ
|
||||
strcpy(#URL, #editURL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TWebBrowser::ReadHtml(byte encoding)
|
||||
{
|
||||
if (!strcmp(get_URL_part(5),"http:")))
|
||||
file_size stdcall (#download_path);
|
||||
else
|
||||
file_size stdcall (#URL);
|
||||
|
||||
filesize = EBX;
|
||||
if (!filesize) return;
|
||||
|
||||
mem_Free(buf);
|
||||
buf = mem_Alloc(filesize);
|
||||
if (!strcmp(get_URL_part(5),"http:")))
|
||||
ReadFile(0, filesize, buf, #download_path);
|
||||
else
|
||||
ReadFile(0, filesize, buf, #URL);
|
||||
|
||||
cur_encoding = encoding;
|
||||
if (encoding==_WIN) wintodos(buf);
|
||||
if (encoding==_UTF) utf8rutodos(buf);
|
||||
if (encoding==_KOI) koitodos(buf);
|
||||
}
|
||||
|
||||
|
||||
void TWebBrowser::OpenPage()
|
||||
{
|
||||
if (GetProcessSlot(downloader_id)<>0) PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
|
||||
KillProcess(downloader_id);
|
||||
strcpy(#editURL, #URL);
|
||||
BrowserHistory.AddUrl();
|
||||
strcpy(#header, #version);
|
||||
pre_text =0;
|
||||
if (!strcmp(get_URL_part(5),"http:")))
|
||||
{
|
||||
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ
|
||||
DeleteFile(#download_path);
|
||||
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=NULL;
|
||||
downloader_id = RunProgram("/sys/network/downloader", #URL);
|
||||
//Browser Hack v2.0
|
||||
Pause(60);
|
||||
if (GetProcessSlot(downloader_id)<>0)
|
||||
{
|
||||
debug("Browser Hack v2.0: Killing downloader and trying to run it one more!");
|
||||
KillProcess(downloader_id); //óáèâàåì ñòàðûé ïðîöåññ
|
||||
downloader_id = RunProgram("/sys/network/downloader", #URL);
|
||||
}
|
||||
//
|
||||
IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable.");
|
||||
Draw_Window();
|
||||
return;
|
||||
}
|
||||
lines.first = lines.all =0;
|
||||
ReadHtml(_WIN);
|
||||
WB1.ShowPage();
|
||||
}
|
||||
|
||||
|
||||
void TWebBrowser::ShowPage()
|
||||
{
|
||||
edit1.size = edit1.pos = strlen(#editURL);
|
||||
edit1.offset=0;
|
||||
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
|
||||
|
||||
if (!filesize)
|
||||
{
|
||||
DrawBar(left, top, width+4, height, 0xFFFFFF); //çàêðàøèâàåì âñ¸ äîíèçó
|
||||
if (GetProcessSlot(downloader_id)<>0) WriteText(left + 10, top + 18, 0x80, 0, "Loading...", 0);
|
||||
else
|
||||
{
|
||||
WriteText(left + 10, top + 18, 0x80, 0, "Page not found. May be, URL contains some errors.", 0);
|
||||
if (!strcmp(get_URL_part(5),"http:"))) WriteText(left + 10, top + 32, 0x80, 0, "Or Internet unavilable for your configuration.", 0);
|
||||
}
|
||||
//return;
|
||||
}
|
||||
else
|
||||
ParseHTML(buf);
|
||||
|
||||
if (!header) strcpy(#header, #version);
|
||||
if (!strcmp(#version, #header)) DrawTitle(#header);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TWebBrowser::ParseHTML(dword bword){
|
||||
word bukva[2];
|
||||
int j, perenos_num;
|
||||
byte ignor_param;
|
||||
char temp[768];
|
||||
|
||||
stroka = -lines.first;
|
||||
stolbec = 0;
|
||||
|
||||
for (j = 400; j < blink + 1; j++;) DeleteButton(j);
|
||||
blink = 400;
|
||||
|
||||
b_text = i_text = u_text = s_text = blq_text = first_line_drawed =
|
||||
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab = 0; //îáíóëÿåì òåãè
|
||||
link_color = 0x0000FF;
|
||||
bg_color = 0xFFFFFF;
|
||||
line = NULL;
|
||||
strcpy(#page_links,"|");
|
||||
strcpy(#header, #version);
|
||||
|
||||
if (pre_text<>2)
|
||||
{
|
||||
pre_text=0;
|
||||
if (!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1;
|
||||
if (!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
|
||||
}
|
||||
|
||||
for ( ; buf+filesize > bword; bword++;)
|
||||
{
|
||||
bukva = ESBYTE[bword];
|
||||
if (ignor_text) && (bukva<>'<') continue;
|
||||
switch (bukva)
|
||||
{
|
||||
case 0x0a:
|
||||
if (pre_text)
|
||||
{
|
||||
bukva = temp = NULL;
|
||||
goto NEXT_MARK;
|
||||
}
|
||||
case '\9':
|
||||
if (pre_text) //èíà÷å èä¸ì íà 0x0d
|
||||
{
|
||||
tab_len=strlen(#line)/8;
|
||||
tab_len=tab_len*8;
|
||||
tab_len=8+tab_len-strlen(#line);
|
||||
for (j=0; j<tab_len; j++;) strcat(#line," ");
|
||||
break;
|
||||
}
|
||||
case 0x0d:
|
||||
bukva = ' ';
|
||||
goto DEFAULT_MARK;
|
||||
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7
|
||||
if (strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK;
|
||||
|
||||
bword++;
|
||||
bukva=ESBYTE[bword];
|
||||
strcpy(#temp,#bukva);
|
||||
bword++;
|
||||
bukva=ESBYTE[bword];
|
||||
strcat(#temp,#bukva);
|
||||
|
||||
bukva=Hex2Symb(#temp);
|
||||
if (bukva) goto DEFAULT_MARK;
|
||||
break;
|
||||
|
||||
case '&': // and so on
|
||||
bword++;
|
||||
tag=0;
|
||||
for (j=0; (ESBYTE[bword]<>';') && (j<7); j++, bword++;)
|
||||
{
|
||||
bukva = ESBYTE[bword];
|
||||
strcat(#tag, #bukva);
|
||||
}
|
||||
|
||||
bukva = GetUnicodeSymbol();
|
||||
if (bukva) goto DEFAULT_MARK;
|
||||
break;
|
||||
case '<':
|
||||
bword++; //ïðîìîòàåì ñèìâîë <
|
||||
tag = parametr = tagparam = ignor_param = NULL;
|
||||
if (ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
|
||||
{
|
||||
bword++;
|
||||
if (ESBYTE[bword] == '-')
|
||||
{
|
||||
HH_:
|
||||
do
|
||||
{
|
||||
bword++;
|
||||
if (buf + filesize <= bword) break 2;
|
||||
}
|
||||
while (ESBYTE[bword] <>'-');
|
||||
|
||||
bword++;
|
||||
if (ESBYTE[bword] <>'-') goto HH_;
|
||||
}
|
||||
}
|
||||
while (ESBYTE[bword] !='>') && (bword < buf + filesize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
|
||||
{
|
||||
bukva = ESBYTE[bword];
|
||||
if (bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
|
||||
if (!ignor_param) && (bukva <>' ')
|
||||
{
|
||||
if (strlen(#tag)<sizeof(tag)) strcat(#tag, #bukva);
|
||||
}
|
||||
else
|
||||
{
|
||||
ignor_param = true;
|
||||
if (!ignor_text) && (strlen(#tagparam)+1<sizeof(tagparam)) strcat(#tagparam, #bukva);
|
||||
}
|
||||
bword++;
|
||||
}
|
||||
strlwr(#tag);
|
||||
strlwr(#tagparam);
|
||||
|
||||
if (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=NULL; //for br/
|
||||
if (tagparam) && (strlen(#tagparam) < 4000) GetNextParam();
|
||||
|
||||
if (stolbec + strlen(#line) > lines.column_max)
|
||||
{
|
||||
perenos_num = strrchr(#line, ' ');
|
||||
if (!perenos_num) && (strlen(#line)>lines.column_max) perenos_num=lines.column_max;
|
||||
strcpy(#temp, #line + perenos_num); //ïåðåíîñ ïî ñëîâàì
|
||||
line[perenos_num] = 0x00;
|
||||
if (stroka >= lines.visible) && (lines.first <>0) break 1; //óõîäèì...
|
||||
DrawPage();
|
||||
strcpy(#line, #temp);
|
||||
|
||||
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
|
||||
}
|
||||
DrawPage();
|
||||
line=NULL;
|
||||
|
||||
if (tag) WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ
|
||||
|
||||
tag = parametr = tagparam = ignor_param = NULL;
|
||||
break;
|
||||
default:
|
||||
DEFAULT_MARK:
|
||||
if (!pre_text) && (bukva == ' ')
|
||||
{
|
||||
if (line[strlen(#line)-1]==' ') break; //óáðàòü 2 ïðîáåëà ïîäðÿä
|
||||
if (!stolbec) && (!line) break; //ñòðîêà íå ìîæåò íà÷èíàòüñÿ ñ ïðîáåëà
|
||||
}
|
||||
if (strlen(#line)<sizeof(line)) strcat(#line, #bukva);
|
||||
|
||||
if (stolbec + strlen(#line) > lines.column_max)
|
||||
{
|
||||
NEXT_MARK:
|
||||
perenos_num = strrchr(#line, ' ');
|
||||
if (!perenos_num) && (strlen(#line)>lines.column_max) perenos_num=lines.column_max;
|
||||
strcpy(#temp, #line + perenos_num); //ïåðåíîñ ïî ñëîâàì
|
||||
line[perenos_num] = 0x00;
|
||||
if (stroka >= lines.visible) && (lines.first <>0) break 1; //óõîäèì...
|
||||
DrawPage();
|
||||
strcpy(#line, #temp);
|
||||
|
||||
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DrawPage(); //ðèñóåò ïîñëåäíþþ ñòðîêó, ïîòîì ýòî íàäî óáðàòü, îïòèìèçèðîâàâ êîä
|
||||
if (lines.visible * 10 + 25 <= height)
|
||||
DrawBar(left, lines.visible * 10 + top + 25, width - 15, -lines.visible * 10 + height - 25, bg_color);
|
||||
if (stroka * 10 + 15 <= height)
|
||||
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, bg_color); //çàêðàøèâàåì âñ¸ äî êîíöà
|
||||
if (lines.first == 0) lines.all = stroka;
|
||||
if (anchor) //åñëè ïîñðåäè òåêñòà ïîÿâèòñÿ íîâûé ÿêîðü - áóäåò áåñêîíå÷íûé öèêë
|
||||
{
|
||||
anchor=NULL;
|
||||
lines.first=anchor_line_num;
|
||||
ParseHTML(buf);
|
||||
}
|
||||
DrawScroller();
|
||||
}
|
||||
|
||||
void TWebBrowser::DrawPage() //ðåçàòü çäåñü!!1!
|
||||
{
|
||||
int start_x, start_y, line_length;
|
||||
char temp[sizeof(line)];
|
||||
|
||||
if (!header) //&& (tag)
|
||||
{
|
||||
if (strlen(#version)+strlen(#line)+2>sizeof(header))
|
||||
{
|
||||
strcpy(#temp, #line);
|
||||
temp[sizeof(header)-strlen(#version)-2]=0;
|
||||
strcpy(#header, #temp);
|
||||
strcpy(#line, #line+strlen(#temp));
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(#header, #line);
|
||||
line=0;
|
||||
}
|
||||
strcat(#header, " -");
|
||||
strcat(#header, #version);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stroka >= 0) && (stroka - 2 < lines.visible) && (line) && (!anchor)
|
||||
{
|
||||
if (!stroka) && (!stolbec)
|
||||
{
|
||||
DrawBar(left, top, width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||
first_line_drawed=1;
|
||||
}
|
||||
|
||||
start_x=stolbec * 6 + left+5;
|
||||
start_y=stroka * 10 + top + 5;
|
||||
line_length=strlen(#line)*6;
|
||||
|
||||
if (use_truetype == 1)
|
||||
{
|
||||
//line_length = get_length stdcall (#line,-1,16,line_length);
|
||||
text_out stdcall (#line, #fontlol, 17, text_colors[text_color_index], start_x, start_y-3);
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteText(start_x, start_y, 0x80, text_colors[text_color_index], #line, 0);
|
||||
IF (b_text) { $add ebx, 1<<16 $int 0x40 }
|
||||
}
|
||||
IF (i_text) Skew(start_x, start_y, line_length+6, 10);
|
||||
IF (s_text) DrawBar(start_x, start_y + 4, line_length, 1, text_colors[text_color_index]);
|
||||
IF (u_text) DrawBar(start_x, start_y + 8, line_length, 1, text_colors[text_color_index]);
|
||||
IF (link) {
|
||||
DefineButton(start_x-2, start_y, line_length + 3, 9, blink + BT_HIDE, 0xB5BFC9);
|
||||
DrawBar(start_x, start_y + 8, line_length, 1, text_colors[text_color_index]);
|
||||
}
|
||||
stolbec += strlen(#line);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char oldtag[100];
|
||||
void TWebBrowser::WhatTextStyle(int left1, top1, width1) {
|
||||
dword hr_color;
|
||||
|
||||
//ïðîâåðÿåì òåã îòêðûâàåòñÿ èëè çàêðûâàåòñÿ
|
||||
if (tag[0] == '/')
|
||||
{
|
||||
rez = 0;
|
||||
strcpy(#tag, #tag+1);
|
||||
}
|
||||
else rez = 1;
|
||||
|
||||
if (!chTag("html"))
|
||||
{
|
||||
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) IF (rez==0) ignor_text = 1; ELSE ignor_text = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!chTag("script")) || (!chTag("style")) || (!chTag("binary")) ignor_text = rez;
|
||||
|
||||
if(!chTag("title"))
|
||||
{
|
||||
if (rez) header=NULL;
|
||||
else if (!stroka) DrawTitle(#header); //òåã çàêðûëñÿ - âûâåëè ñòðîêó
|
||||
return;
|
||||
}
|
||||
|
||||
if (ignor_text) return;
|
||||
|
||||
|
||||
|
||||
IF(!chTag("q")) strcat(#line, "\"");
|
||||
|
||||
if (anchor) && (!strcmp(#parametr, "id=")) //î÷åíü ïëîõî!!! ïîòîìó ÷òî åñëè íå ïîñëåäíèé òåã, ðàáîòàòü íå áóäåò
|
||||
{
|
||||
if (!strcmp(#anchor, #options)) anchor_line_num=lines.first+stroka;
|
||||
}
|
||||
|
||||
if (!chTag("body"))
|
||||
{
|
||||
do{
|
||||
if (!strcmp(#parametr, "link=")) link_color = GetColor(#options);
|
||||
if (!strcmp(#parametr, "text=")) text_colors[0]=GetColor(#options);
|
||||
if (!strcmp(#parametr, "bgcolor=")) bg_color=GetColor(#options);
|
||||
} while(GetNextParam());
|
||||
return;
|
||||
}
|
||||
|
||||
if (!chTag("a"))
|
||||
{
|
||||
if (rez)
|
||||
{
|
||||
if (link) IF(text_color_index > 0) text_color_index--; //åñëè ïðåäûäóùèé òåã à íå áûë çàêðûò
|
||||
|
||||
do{
|
||||
if (!strcmp(#parametr, "href="))
|
||||
{
|
||||
if (stroka - 1 > lines.visible) || (stroka < -2) return;
|
||||
|
||||
text_color_index++;
|
||||
text_colors[text_color_index] = text_colors[text_color_index-1];
|
||||
|
||||
link = 1;
|
||||
blink++;
|
||||
text_colors[text_color_index] = link_color;
|
||||
strcat(#page_links, #options);
|
||||
strcat(#page_links, "|");
|
||||
}
|
||||
if (anchor) && (!strcmp(#parametr, "name="))
|
||||
{
|
||||
if (!strcmp(#anchor, #options))
|
||||
{
|
||||
anchor_line_num=lines.first+stroka;
|
||||
}
|
||||
}
|
||||
} while(GetNextParam());
|
||||
}
|
||||
else {
|
||||
link = 0;
|
||||
IF(text_color_index > 0) text_color_index--;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!chTag("font"))
|
||||
{
|
||||
if (rez)
|
||||
{
|
||||
text_color_index++;
|
||||
text_colors[text_color_index] = text_colors[text_color_index-1];
|
||||
|
||||
do{
|
||||
if (strcmp(#parametr, "color=") == 0) //&& (parametr[1] == '#')
|
||||
{
|
||||
text_colors[text_color_index] = GetColor(#options);
|
||||
}
|
||||
} while(GetNextParam());
|
||||
}
|
||||
else
|
||||
if (text_color_index > 0) text_color_index--;
|
||||
return;
|
||||
}
|
||||
if(!chTag("tr")) || (!chTag("br")) {
|
||||
TextGoDown(left1, top1, width1);
|
||||
return;
|
||||
}
|
||||
if (!chTag("div")) {
|
||||
IF(oldtag[0] <>'h') TextGoDown(left1, top1, width1);
|
||||
return;
|
||||
}
|
||||
if (!chTag("p")) {
|
||||
IF(oldtag[0] == 'h') return;
|
||||
TextGoDown(left1, top1, width1);
|
||||
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
||||
return;
|
||||
}
|
||||
if (!chTag("h1")) || (!chTag("h2")) || (!chTag("h3")) || (!chTag("h4")) {
|
||||
TextGoDown(left1, top1, width1);
|
||||
IF(rez) TextGoDown(left1, top1 + 10, width1);
|
||||
b_text = rez;
|
||||
strcpy(#oldtag, #tag);
|
||||
return;
|
||||
}
|
||||
else
|
||||
oldtag=NULL;
|
||||
|
||||
if (!chTag("b")) || (!chTag("strong")) || (!chTag("big")) {
|
||||
b_text = rez;
|
||||
return;
|
||||
}
|
||||
if(!chTag("i")) || (!chTag("em")) || (!chTag("subtitle")) {
|
||||
i_text = rez;
|
||||
return;
|
||||
}
|
||||
if (!chTag("dt"))
|
||||
{
|
||||
li_text = rez;
|
||||
IF(rez == 0) return;
|
||||
TextGoDown(left1, top1, width1);
|
||||
return;
|
||||
}
|
||||
if(!chTag("li")) || (!chTag("dt")) //íàäî ñäåëàòü âëîæåííûå ñïèñêè
|
||||
{
|
||||
li_text = rez;
|
||||
IF(rez == 0) return;
|
||||
TextGoDown(left1, top1, width1);
|
||||
IF(stroka > -1) && (stroka - 2 < lines.visible) DrawBar(li_tab * 5 * 6 + left1 - 5, top1 + 12, 2, 2, 0);
|
||||
return;
|
||||
}
|
||||
if (!chTag("u")) || (!chTag("ins")) u_text = rez;
|
||||
if (!chTag("s")) || (!chTag("strike")) || (!chTag("del")) s_text = rez;
|
||||
if (!chTag("ul")) || (!chTag("ol")) IF(!rez)
|
||||
{
|
||||
li_text = rez;
|
||||
li_tab--;
|
||||
TextGoDown(left1, top1, width1);
|
||||
} ELSE li_tab++;
|
||||
if (!chTag("dd")) stolbec += 5;
|
||||
if (!chTag("blockquote")) blq_text = rez;
|
||||
if (!chTag("pre")) pre_text = rez;
|
||||
if (!chTag("hr"))
|
||||
{
|
||||
TextGoDown(left1, top1, width1);
|
||||
TextGoDown(left1, top1 + 10, width1);
|
||||
IF(strcmp(#parametr, "color=") == 0) hr_color = GetColor(#options);
|
||||
ELSE hr_color = 0x999999;
|
||||
IF(stroka > 0) DrawBar(left1, top1 + 14, width1 - 8, 1, hr_color);
|
||||
}
|
||||
if (!chTag("img"))
|
||||
{
|
||||
Images( left1, top1, width1);
|
||||
return;
|
||||
}
|
||||
if (!chTag("meta")) || (!chTag("?xml"))
|
||||
{
|
||||
do{
|
||||
if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content=")) || (!strcmp(#parametr, "encoding="))
|
||||
{
|
||||
strcpy(#options, #options[strrchr(#options, '=')]); //ïîèñê â content=
|
||||
if (!strcmp(#options,"utf-8")) || (!strcmp(#options,"utf8")) ReadHtml(_UTF);
|
||||
if (!strcmp(#options, "koi8-r")) || (!strcmp(#options, "koi8-u")) ReadHtml(_KOI);
|
||||
if (!strcmp(#options, "dos")) || (!strcmp(#options, "cp-866")) ReadHtml(_DOS);
|
||||
}
|
||||
} while(GetNextParam());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TextGoDown(int left1, top1, width1)
|
||||
{
|
||||
if (!stroka) && (!stolbec) && (!first_line_drawed)
|
||||
{
|
||||
DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||
first_line_drawed=1;
|
||||
}
|
||||
stroka++;
|
||||
if (blq_text) stolbec = 8;
|
||||
ELSE stolbec = 0;
|
||||
if (li_text) stolbec = li_tab * 5;
|
||||
IF(stroka >= 0) && (stroka - 2 < lines.visible) && (!anchor) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, bg_color);
|
||||
}
|
||||
|
||||
|
||||
struct s_image
|
||||
{
|
||||
dword *image;
|
||||
char path[4096];
|
||||
};
|
||||
s_image pics[100]; //pics = mem_Alloc( 100*sizeof(s_image) );
|
||||
int num_of_pics;
|
||||
|
||||
int GetOrSetPicNum(dword i_path)
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<num_of_pics; i++)
|
||||
{
|
||||
if (!strcmp(#pics[i].path, i_path)) return i;
|
||||
}
|
||||
num_of_pics++;
|
||||
return num_of_pics;
|
||||
}
|
||||
|
||||
void FreeImgCache()
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<=num_of_pics; i++)
|
||||
{
|
||||
mem_Free(pics[num_of_pics].image);
|
||||
pics[num_of_pics].path=NULL;
|
||||
}
|
||||
num_of_pics=0;
|
||||
}
|
||||
|
||||
|
||||
void Images(int left1, top1, width1)
|
||||
{
|
||||
dword image;
|
||||
char img_path[4096], alt[4096];
|
||||
int w=0, h=0, img_lines_first=0, cur_pic=0;
|
||||
|
||||
if (GetFileInfo(libimg)<>0) return; //åñëè áèáëèîòåêè íåò
|
||||
do{
|
||||
if (!strcmp(#parametr,"src=")) //íàäî îáúåäèíèòü ñ GetNewUrl()
|
||||
{
|
||||
if (downloader_id) strcpy(#img_path, #history_list[history_current-1].Item);
|
||||
else strcpy(#img_path, BrowserHistory.CurrentUrl()); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
|
||||
|
||||
if (strcmpn(#img_path, "http:", 5)!=0) || (strcmpn(#options, "http:", 5)!=0)
|
||||
{
|
||||
img_path[strrchr(#img_path, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||
strcat(#img_path, #options);
|
||||
|
||||
cur_pic=GetOrSetPicNum(#img_path);
|
||||
if (!pics[cur_pic].path)
|
||||
{
|
||||
pics[cur_pic].image=load_image(#img_path);
|
||||
strcpy(#pics[cur_pic].path, #img_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!strcmp(#parametr,"alt="))
|
||||
{
|
||||
strcpy(#alt, "[");
|
||||
strcat(#alt, #options);
|
||||
strcat(#alt, "]");
|
||||
}
|
||||
|
||||
} while(GetNextParam());
|
||||
|
||||
if (!pics[cur_pic].image)
|
||||
{
|
||||
if (alt) && (link) strcat(#line, #alt);
|
||||
return;
|
||||
}
|
||||
|
||||
w=DSWORD[pics[cur_pic].image+4];
|
||||
h=DSWORD[pics[cur_pic].image+8];
|
||||
if (w>width1) w=width1;
|
||||
|
||||
if (stroka==0) DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||
stroka+=h/10;
|
||||
if (top1+h<WB1.top) || (top1>WB1.top+WB1.height-10) return; //åñëè ÂѨ èçîáðàæåíèå óøëî ÂÅÐÕ èëè ÂÍÈÇ
|
||||
if (top1<WB1.top) //åñëè ÷àñòü èçîáðàæåíèÿ ñâåðõó
|
||||
{
|
||||
DrawBar(WB1.left, WB1.top, WB1.width-15, 10, bg_color); //çàêðàøèâàåì ïåðâóþ ñòðîêó
|
||||
img_lines_first=WB1.top-top1;
|
||||
h=h-img_lines_first;
|
||||
top1=WB1.top;
|
||||
}
|
||||
if (top1>WB1.top+WB1.height-h-15) //åñëè ÷àñòü èçîáðàæåíèÿ ñíèçó
|
||||
{
|
||||
h=WB1.top+WB1.height-top1-15;
|
||||
}
|
||||
if (h<=0) return;
|
||||
if (anchor) return;
|
||||
|
||||
img_draw stdcall (pics[cur_pic].image,left1-5,top1+10,w, h,0,img_lines_first);
|
||||
DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color);
|
||||
IF (link) DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9);
|
||||
}
|
||||
|
||||
|
||||
//ñêðîëë
|
||||
void TWebBrowser::DrawScroller() //íå îïòèìàëüíàÿ îòðèñîâêà, íî çàòî â îäíîì ìåñòå
|
||||
{
|
||||
scroll1.max_area = lines.all;
|
||||
scroll1.cur_area = lines.visible;
|
||||
scroll1.position = lines.first;
|
||||
|
||||
scroll1.all_redraw=1;
|
||||
scroll1.start_x=Form.width-28; //left + width - 15
|
||||
scroll1.size_y=WB1.height;
|
||||
|
||||
scrollbar_v_draw(#scroll1);
|
||||
}
|
6
programs/cmm/browser/compile.bat
Normal file
6
programs/cmm/browser/compile.bat
Normal file
@ -0,0 +1,6 @@
|
||||
..\C--\c-- HTMLv.c /lst
|
||||
del HTMLv
|
||||
rename HTMLv.com HTMLv
|
||||
rem ..\C--\kpack HTMLv
|
||||
del warning.txt
|
||||
pause
|
BIN
programs/cmm/browser/img/URLgoto.png
Normal file
BIN
programs/cmm/browser/img/URLgoto.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 816 B |
256
programs/cmm/browser/img/URLgoto.txt
Normal file
256
programs/cmm/browser/img/URLgoto.txt
Normal file
@ -0,0 +1,256 @@
|
||||
unsigned char URLgoto[2280] = {
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
|
||||
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
|
||||
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
|
||||
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
|
||||
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD3,
|
||||
0xB8, 0xA4, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
|
||||
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4,
|
||||
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2,
|
||||
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
|
||||
0xF4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4,
|
||||
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2,
|
||||
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
|
||||
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xE5, 0xDA, 0xD5, 0xD1, 0xB3, 0x9C, 0xDE, 0xD4, 0xD1,
|
||||
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA,
|
||||
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xE5, 0xDA, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8,
|
||||
0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E,
|
||||
0x98, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA,
|
||||
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0x32, 0xAD,
|
||||
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
|
||||
0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8,
|
||||
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x94, 0x8E, 0x87, 0xA6, 0x9F, 0x99, 0xD0, 0xCA, 0xBE,
|
||||
0xEC, 0xE2, 0xC8, 0xCD, 0xC4, 0xB0, 0xA3, 0x9A, 0x8F, 0x94, 0x8E, 0x86, 0xE9, 0xE8, 0xEC, 0xE9,
|
||||
0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xD9, 0xD7,
|
||||
0xDD, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC,
|
||||
0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x6B, 0xD4, 0xA5, 0x32,
|
||||
0xAD, 0x76, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8,
|
||||
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE8, 0xE6, 0xEA, 0xD9, 0xD7, 0xDD, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xA3, 0x9E, 0x98, 0xA4,
|
||||
0x9D, 0x95, 0xFE, 0xFD, 0xFB, 0xF3, 0xE8, 0xD6, 0xEC, 0xDB, 0xBF, 0xEE, 0xE1, 0xC4, 0xF1, 0xEA,
|
||||
0xCE, 0xA1, 0x9A, 0x8F, 0xA3, 0x9E, 0x98, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB,
|
||||
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9,
|
||||
0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0x32, 0xAD,
|
||||
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE9, 0xE7, 0xEB,
|
||||
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE7,
|
||||
0xE5, 0xE9, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6,
|
||||
0xEA, 0xE8, 0xE6, 0xEA, 0x8C, 0x86, 0x7D, 0xCF, 0xCA, 0xB9, 0xF1, 0xE5, 0xCF, 0xEE, 0xE0, 0xC5,
|
||||
0xF2, 0xEE, 0xD3, 0xF4, 0xF2, 0xD8, 0xF4, 0xF3, 0xD8, 0xCF, 0xC9, 0xB6, 0x8C, 0x86, 0x7D, 0xE8,
|
||||
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xD8, 0xD6,
|
||||
0xDC, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA,
|
||||
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
|
||||
0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6,
|
||||
0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE6, 0xE4, 0xE8, 0xD8, 0xD6, 0xDC, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x81, 0x7A, 0x71, 0xEC,
|
||||
0xE5, 0xCC, 0xEB, 0xD9, 0xBC, 0xF1, 0xED, 0xD1, 0xF7, 0xF7, 0xE4, 0xF9, 0xF9, 0xEB, 0xF8, 0xF8,
|
||||
0xE7, 0xF0, 0xEF, 0xD9, 0x81, 0x7A, 0x71, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9,
|
||||
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7,
|
||||
0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x32, 0xAD,
|
||||
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5,
|
||||
0x32, 0xAD, 0x76, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE2,
|
||||
0xE1, 0xE5, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4,
|
||||
0xE8, 0xE6, 0xE4, 0xE8, 0x8C, 0x86, 0x7D, 0xCB, 0xC3, 0xB2, 0xEE, 0xE3, 0xC6, 0xF3, 0xF1, 0xD6,
|
||||
0xF9, 0xF9, 0xEB, 0xFD, 0xFD, 0xF9, 0xFD, 0xFD, 0xF8, 0xCF, 0xCB, 0xBE, 0x8C, 0x86, 0x7D, 0xE6,
|
||||
0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xD6, 0xD3,
|
||||
0xDA, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8,
|
||||
0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
|
||||
0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xE6, 0xE4,
|
||||
0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xDF, 0xDD, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xA3, 0x9E, 0x98, 0xA1,
|
||||
0x9A, 0x91, 0xEF, 0xE7, 0xCD, 0xF4, 0xF3, 0xD8, 0xF8, 0xF8, 0xE6, 0xFC, 0xFC, 0xF5, 0xFB, 0xFA,
|
||||
0xF9, 0xA2, 0x9C, 0x94, 0xA3, 0x9E, 0x98, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5,
|
||||
0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2,
|
||||
0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0x32, 0xAD,
|
||||
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86,
|
||||
0x32, 0xAD, 0x76, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xDF,
|
||||
0xDC, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD,
|
||||
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x94, 0x8F, 0x87, 0xA2, 0x9B, 0x92, 0xCB, 0xC6, 0xB8,
|
||||
0xF1, 0xF2, 0xE0, 0xCE, 0xCA, 0xBF, 0xA2, 0x9D, 0x95, 0x83, 0x7F, 0x7A, 0x80, 0xAD, 0xC8, 0xDF,
|
||||
0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xD4, 0xD2,
|
||||
0xD9, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2,
|
||||
0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
|
||||
0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD,
|
||||
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDC, 0xDB, 0xE1, 0xD4, 0xD2, 0xD9, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE,
|
||||
0xDC, 0xE2, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E,
|
||||
0x98, 0x6F, 0x77, 0x93, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2,
|
||||
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE,
|
||||
0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0x32, 0xAD,
|
||||
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDE, 0xDC, 0xE2,
|
||||
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD9,
|
||||
0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB,
|
||||
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1,
|
||||
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x6C, 0x77, 0x9A, 0x6C,
|
||||
0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD3, 0xD1,
|
||||
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1,
|
||||
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x39, 0xC5, 0x86, 0x32,
|
||||
0xAD, 0x76, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB,
|
||||
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD9, 0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA,
|
||||
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9,
|
||||
0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9,
|
||||
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA,
|
||||
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x32, 0xAD,
|
||||
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF,
|
||||
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD8,
|
||||
0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8,
|
||||
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD,
|
||||
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9,
|
||||
0xD8, 0xDD, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD3, 0xD0,
|
||||
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD,
|
||||
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9,
|
||||
0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8,
|
||||
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD8, 0xD6, 0xDA, 0xD2, 0xCF, 0xD6, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8,
|
||||
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6,
|
||||
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA,
|
||||
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8,
|
||||
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6,
|
||||
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA,
|
||||
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD6,
|
||||
0xD4, 0xD8, 0xD8, 0xD2, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0,
|
||||
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7,
|
||||
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3,
|
||||
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD1, 0xCE,
|
||||
0xD5, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7,
|
||||
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3,
|
||||
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0,
|
||||
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD8, 0xD2, 0xD5, 0xD0, 0xB8, 0xA7, 0xDE, 0xD4, 0xD1,
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
|
||||
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
|
||||
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
|
||||
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
|
||||
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
|
||||
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD2,
|
||||
0xBC, 0xAE, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4
|
||||
};
|
||||
|
||||
unsigned char stop_btn[1728] = {
|
||||
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
|
||||
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xEA, 0xE9, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
|
||||
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA,
|
||||
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xC2, 0xC5, 0xE5,
|
||||
0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2,
|
||||
0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC6, 0xE5, 0xE7, 0xE6, 0xED, 0xE8, 0xE7, 0xED, 0xEB, 0xEA,
|
||||
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE,
|
||||
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
|
||||
0xEA, 0xEE, 0xB3, 0xB8, 0xE3, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19,
|
||||
0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1,
|
||||
0x8C, 0x95, 0xDB, 0xE3, 0xE3, 0xEC, 0xE7, 0xE6, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
|
||||
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
|
||||
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xB2, 0xB8, 0xE2, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7,
|
||||
0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74,
|
||||
0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x00, 0x19, 0xC1, 0x87, 0x92, 0xDA, 0xE1, 0xE1,
|
||||
0xEB, 0xE8, 0xE7, 0xEC, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
|
||||
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xB1, 0xB5, 0xE0, 0x00,
|
||||
0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x49, 0x5F, 0xDB, 0x4C, 0x65, 0xDD, 0x4C, 0x64,
|
||||
0xDD, 0x46, 0x5E, 0xDB, 0x3E, 0x55, 0xDA, 0x34, 0x4D, 0xDA, 0x29, 0x45, 0xD7, 0x2D, 0x47, 0xD8,
|
||||
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x90, 0xD8, 0xDF, 0xDE, 0xE8, 0xE7, 0xE5, 0xE9, 0xE8,
|
||||
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6,
|
||||
0xEA, 0xB1, 0xB5, 0xE0, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x4A, 0x61, 0xDC,
|
||||
0x50, 0x64, 0xDC, 0x52, 0x67, 0xDD, 0x4D, 0x64, 0xDC, 0x4B, 0x62, 0xDC, 0x46, 0x5E, 0xDB, 0x3C,
|
||||
0x53, 0xD9, 0x30, 0x4A, 0xD8, 0x28, 0x44, 0xD6, 0x29, 0x45, 0xD7, 0x48, 0x5F, 0xDB, 0x00, 0x19,
|
||||
0xC1, 0x86, 0x90, 0xD8, 0xE3, 0xE2, 0xE9, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA,
|
||||
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xB0, 0xB5, 0xDF, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49,
|
||||
0x5F, 0xDB, 0x47, 0x5E, 0xDB, 0x51, 0x65, 0xDD, 0x6C, 0x80, 0xE2, 0x4C, 0x62, 0xDC, 0x47, 0x5F,
|
||||
0xDC, 0x48, 0x60, 0xDC, 0x44, 0x5C, 0xDC, 0x3B, 0x55, 0xD9, 0x58, 0x6D, 0xDE, 0x2C, 0x45, 0xD7,
|
||||
0x27, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x8F, 0xD8, 0xE5,
|
||||
0xE3, 0xE8, 0xE6, 0xE4, 0xE8, 0xE7, 0xE5, 0xE9, 0xE5, 0xE3, 0xE7, 0xBA, 0xBD, 0xDF, 0x00, 0x19,
|
||||
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x49, 0x5F, 0xDB, 0x45, 0x5D, 0xDB, 0x8D, 0x9D, 0xE7,
|
||||
0xA8, 0xB6, 0xEF, 0xBC, 0xC9, 0xEE, 0x41, 0x59, 0xDB, 0x45, 0x5D, 0xDB, 0x44, 0x5C, 0xDC, 0x90,
|
||||
0xA0, 0xE9, 0xA8, 0xB6, 0xEF, 0x6B, 0x7E, 0xE2, 0x27, 0x41, 0xCF, 0x1A, 0x35, 0xCA, 0x21, 0x3C,
|
||||
0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x9B, 0xA2, 0xDA, 0xE5, 0xE3, 0xE7, 0xE4, 0xE2, 0xE7,
|
||||
0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x46,
|
||||
0x5F, 0xDB, 0x67, 0x7B, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB6, 0xC6,
|
||||
0xE9, 0x43, 0x5B, 0xDC, 0x80, 0x93, 0xE3, 0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xE1, 0xE8, 0xF9,
|
||||
0x5C, 0x70, 0xE0, 0x26, 0x41, 0xD0, 0x17, 0x32, 0xC9, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71,
|
||||
0x7E, 0xD3, 0xDF, 0xDE, 0xE4, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19,
|
||||
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x43, 0x5B, 0xDC, 0x3E, 0x57, 0xDD, 0xBC, 0xC9, 0xEE,
|
||||
0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB4, 0xC5, 0xE6, 0x86, 0x99, 0xE4, 0xDE,
|
||||
0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xE7, 0xEE, 0xFB, 0x27, 0x43, 0xD5, 0x27, 0x41, 0xD2, 0x22, 0x3B,
|
||||
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71, 0x7E, 0xD3, 0xDA, 0xDA, 0xE3, 0xE2, 0xE1, 0xE5,
|
||||
0xE1, 0xE0, 0xE4, 0xB7, 0xBB, 0xDC, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F,
|
||||
0x56, 0xDD, 0x3E, 0x57, 0xDD, 0x3E, 0x57, 0xDA, 0xB6, 0xC6, 0xE9, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7,
|
||||
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7, 0xF5, 0x2D, 0x46, 0xD8,
|
||||
0x28, 0x44, 0xD7, 0x28, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x70,
|
||||
0x7D, 0xD2, 0xD4, 0xD5, 0xE2, 0xDC, 0xDC, 0xE3, 0xDF, 0xDE, 0xE3, 0xB5, 0xB9, 0xDC, 0x00, 0x19,
|
||||
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F, 0x58, 0xDB, 0x40, 0x59, 0xDD, 0x3E, 0x57, 0xDC,
|
||||
0x3E, 0x57, 0xDA, 0xB4, 0xC5, 0xE6, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE,
|
||||
0xE7, 0xF5, 0x34, 0x4D, 0xD7, 0x30, 0x48, 0xD8, 0x29, 0x44, 0xD7, 0x28, 0x43, 0xD4, 0x22, 0x3D,
|
||||
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6F, 0x7C, 0xD2, 0xD2, 0xD3, 0xE1, 0xDA, 0xDA, 0xE2,
|
||||
0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x55, 0xD9, 0x41,
|
||||
0x5B, 0xDB, 0x41, 0x5B, 0xDD, 0x3F, 0x58, 0xDB, 0x80, 0x93, 0xE3, 0xA4, 0xB4, 0xE8, 0xDE, 0xE7,
|
||||
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0x30, 0x49, 0xD8,
|
||||
0x28, 0x43, 0xD8, 0x28, 0x43, 0xD4, 0x22, 0x3B, 0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E,
|
||||
0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0, 0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19,
|
||||
0xC1, 0x74, 0x85, 0xE7, 0x34, 0x4F, 0xDA, 0x40, 0x57, 0xDA, 0x3E, 0x57, 0xDD, 0x90, 0xA0, 0xE9,
|
||||
0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE,
|
||||
0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0xE0, 0xE9, 0xF7, 0x27, 0x43, 0xD8, 0x29, 0x43, 0xD1, 0x21, 0x3B,
|
||||
0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E, 0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0,
|
||||
0xDB, 0xDA, 0xE0, 0xB2, 0xB6, 0xD9, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x2B, 0x45, 0xD8, 0x3A,
|
||||
0x52, 0xD8, 0x5E, 0x74, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7,
|
||||
0xF5, 0x3A, 0x52, 0xD9, 0xD7, 0xE2, 0xF3, 0xD7, 0xE2, 0xF3, 0xDE, 0xE7, 0xF5, 0xE6, 0xED, 0xFB,
|
||||
0x5E, 0x71, 0xE1, 0x28, 0x43, 0xD0, 0x1D, 0x38, 0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6D,
|
||||
0x7A, 0xD0, 0xCE, 0xCF, 0xDE, 0xD6, 0xD6, 0xDF, 0xD9, 0xD7, 0xDB, 0xB1, 0xB4, 0xD6, 0x00, 0x19,
|
||||
0xC1, 0x74, 0x85, 0xE7, 0x2D, 0x47, 0xD8, 0x2F, 0x49, 0xD8, 0x30, 0x49, 0xD8, 0x73, 0x86, 0xE5,
|
||||
0xE1, 0xE8, 0xF9, 0xE7, 0xEE, 0xFB, 0x34, 0x4F, 0xDB, 0x34, 0x4D, 0xDA, 0x34, 0x4D, 0xD9, 0xE0,
|
||||
0xE9, 0xF7, 0xE6, 0xED, 0xFB, 0x77, 0x88, 0xE5, 0x27, 0x41, 0xD1, 0x25, 0x3F, 0xCF, 0x24, 0x3D,
|
||||
0xCF, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xCD, 0xCD, 0xD9, 0xD5, 0xD4, 0xDA,
|
||||
0xD9, 0xD7, 0xDB, 0xD6, 0xD4, 0xDA, 0x86, 0x8F, 0xD1, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x2B,
|
||||
0x45, 0xD7, 0x28, 0x44, 0xD7, 0x2C, 0x46, 0xD8, 0x63, 0x78, 0xE2, 0x2D, 0x47, 0xD9, 0x31, 0x4B,
|
||||
0xD9, 0x31, 0x4B, 0xD8, 0x30, 0x4A, 0xD8, 0x2D, 0x47, 0xD8, 0x62, 0x78, 0xE2, 0x27, 0x41, 0xD1,
|
||||
0x25, 0x3F, 0xCF, 0x25, 0x3E, 0xD0, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xB1,
|
||||
0xB4, 0xD6, 0xCF, 0xCE, 0xD9, 0xD6, 0xD4, 0xDA, 0xD9, 0xD7, 0xDB, 0xD7, 0xD5, 0xDA, 0xD3, 0xD1,
|
||||
0xDA, 0x7E, 0x88, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x26, 0x43, 0xD6, 0x27, 0x43, 0xD2,
|
||||
0x2C, 0x46, 0xD7, 0x2D, 0x47, 0xD7, 0x30, 0x49, 0xD8, 0x31, 0x4B, 0xD8, 0x2E, 0x48, 0xD8, 0x2C,
|
||||
0x46, 0xD6, 0x28, 0x43, 0xD4, 0x26, 0x43, 0xD0, 0x25, 0x3F, 0xD1, 0x48, 0x5F, 0xDB, 0x00, 0x19,
|
||||
0xC1, 0x6C, 0x78, 0xCD, 0xAD, 0xB1, 0xD6, 0xC4, 0xC5, 0xD8, 0xD3, 0xD1, 0xDA, 0xD7, 0xD5, 0xDA,
|
||||
0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00,
|
||||
0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x28, 0x44, 0xD7, 0x21, 0x3A, 0xCD, 0x25, 0x40, 0xCD, 0x27, 0x43,
|
||||
0xD2, 0x28, 0x43, 0xD2, 0x27, 0x43, 0xD2, 0x26, 0x41, 0xD0, 0x25, 0x3E, 0xCE, 0x1A, 0x35, 0xCA,
|
||||
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1,
|
||||
0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6,
|
||||
0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB,
|
||||
0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48,
|
||||
0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0,
|
||||
0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB,
|
||||
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1,
|
||||
0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A,
|
||||
0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1,
|
||||
0x6C, 0x79, 0xCE, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8,
|
||||
0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7,
|
||||
0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x87, 0x8F, 0xD1,
|
||||
0x78, 0x83, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77,
|
||||
0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0xAF, 0xB2, 0xD6, 0xC3, 0xC4, 0xD8, 0xD1, 0xD0,
|
||||
0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB,
|
||||
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8,
|
||||
0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD2, 0xD1, 0xDA, 0xC6, 0xC6, 0xD8, 0xC3, 0xC4, 0xD8, 0xC2, 0xC3,
|
||||
0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC3, 0xC4, 0xD8,
|
||||
0xC6, 0xC6, 0xD8, 0xD2, 0xD1, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9,
|
||||
0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7,
|
||||
0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA,
|
||||
0xD6, 0xD4, 0xDA, 0xD3, 0xD2, 0xDA, 0xD3, 0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xCB, 0xCB, 0xD9, 0xD2,
|
||||
0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xD3, 0xD1, 0xDA, 0xD3, 0xD2, 0xDA, 0xD6, 0xD4, 0xDA, 0xD8, 0xD6,
|
||||
0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB
|
||||
};
|
529
programs/cmm/browser/img/toolbar_icons.c
Normal file
529
programs/cmm/browser/img/toolbar_icons.c
Normal file
@ -0,0 +1,529 @@
|
||||
dword toolbar_pal[249]= {0x00E4DFE1,0x00EDE9EA,0x00C2BEC0,0x00D6DFEB,0x00E9E6E8,0x00D4B9E8,0x00C29ADA,0x00B688D7,0x005FA8ED,0x0064ABED,0x00D6D8E2,0x008A9DC3,0x00D5D7E1,0x00DCC5EC,0x00B179D7,0x00C5A4DA,0x00C9A9E2,0x00C097E1,0x00A96AD4,0x00CEB1E5,0x005BA5EB,0x007DC1F2,0x00A4DFF8,0x0060A8EB,0x00CAD9EA,0x00C4C8D8,0x005376B5,0x006482BC,0x00BBC2D4,0x00E8E4E6,0x00E5D5F2,0x00ECEBF1,0x00E1CCF0,0x00DFD0E2,0x00DDE1E9,0x006CACE9,0x0092D5F4,0x0099D6F5,0x0089CDF2,0x009ADCF6,0x005EA5E9,0x00549CE2,0x008DA8D4,0x00E1DDE0,0x00A9B2C9,0x00E4E1E2,0x00E0CDEE,0x00D1B8DC,0x0064ABE5,0x008BD3F4,0x00A9EDFC,0x007FC4F0,0x0075BCEC,0x005CA0E3,0x00C6D5E7,0x0080CBF2,0x00B3BCD2,0x005A7BB9,0x009BB2DC,0x00CFE0F2,0x00A1ADC8,0x00BB95D6,0x00D6DBE4,0x0064A4E3,0x0079C4EE,0x00839CBD,0x008D9DB1,0x0091DAF6,0x00A6B1C8,0x00A5BBE1,0x00C4D6ED,0x00D3E2F3,0x0092A2C4,0x00E1D4E3,0x009FE6F9,0x0085A2C2,0x00F0EFF0,0x0099A8BC,0x005298DC,0x004B982C,0x00ACC2E4,0x00CDDEF1,0x00BCD1EB,0x00DCDDE2,0x00909FC0,0x00AC78D4,0x005A9BDC,0x0097E0F7,0x006CB7E9,0x00F7F7F8,0x00F8F8F9,0x0096A6BA,0x004690D7,0x0083D0F3,0x004B93DA,0x00DCD9DC,0x00AEE594,0x00A2ADC6,0x00A2B8DF,0x00B9CEE9,0x00B2C8E7,0x00AEB8CE,0x00D4D4DA,0x00CCB3D5,0x00D9CCDB,0x0073C1ED,0x0065B3E7,0x00F5F4F4,0x00EDECEE,0x009AAAC1,0x007DCCF2,0x004590D8,0x00D1CED1,0x00C2C2C8,0x00BFC0C6,0x007BD34A,0x00607EB9,0x00B6CBE8,0x00B0C5E6,0x00CDD2DC,0x00E3E1DF,0x00909EBF,0x00DDC3F0,0x00D2D7E0,0x005193D5,0x006BBBEA,0x005FB0E5,0x00EAEAEC,0x00408AD3,0x0079C7F0,0x00BBCADD,0x008A94A7,0x00737D90,0x00428F25,0x00A4DD8E,0x0073CC45,0x0067C833,0x00CED1D6,0x00A9BEE3,0x00D8C5DD,0x004C8FD2,0x005BAAE2,0x00DAD6D8,0x00C3C0C3,0x003B84CE,0x003C86D0,0x00BDBCC2,0x00519D31,0x00B4EB9A,0x0083DA51,0x0073D33C,0x00B9BECE,0x00CCCCD4,0x00E1DBDC,0x00E3D2EF,0x00488BCF,0x0056A5E0,0x006582A4,0x00E9E8EA,0x00B9B8B8,0x00D9EDED,0x00D8F6F6,0x00B3B2B2,0x008696AD,0x003782CD,0x006FC0ED,0x00B8C7DB,0x00E5E8EE,0x0080D74F,0x005578B7,0x00A1B6DE,0x008597BF,0x00D5C4D8,0x004688CC,0x0050A2DE,0x007895B6,0x00AEADAE,0x00317BC7,0x00337DC9,0x006B8AC2,0x0099AFDA,0x00738BBB,0x00C6C8D2,0x00D6CBD8,0x009AB5D4,0x002877C7,0x004D9FDC,0x00D2D0D5,0x00798AA0,0x0073A0CF,0x00E3E5EC,0x008096C1,0x006887BE,0x00BEC1CD,0x0096B1D0,0x009D9CA2,0x00ECEAEC,0x00EDAC35,0x00EBA525,0x00B6C3D6,0x007AA3CF,0x00B4B5BB,0x0096ADD9,0x00D2C4D6,0x00D9D3D4,0x00AF85D2,0x00A3A2A7,0x00F8EE27,0x00E89D1A,0x009A989F,0x00CCCFDD,0x008499C3,0x00C8C3C5,0x007890BF,0x00A09FA5,0x00E6E3E4,0x00E39C28,0x00F8EA2F,0x00F5E22C,0x00E3961A,0x0098969C,0x007591C6,0x00DB9326,0x00F7DE38,0x00F5D435,0x00F7E13A,0x00DC8E19,0x00939298,0x007996C9,0x00B4BBCB,0x007A94C3,0x00D58A24,0x00F4D545,0x00F4C741,0x00BD6516,0x00D68517,0x00929097,0x008DA1C6,0x00C4C5D1,0x00CDCBCE,0x00CE8223,0x00F5CA56,0x00F3C943,0x00CF7D17,0x008F8D94,0x00A8ABB5,0x0089888F,0x009BA9C9,0x0084838A};
|
||||
|
||||
unsigned char toolbar[8400] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x04, 0x05, 0x06, 0x07, 0x05, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03,
|
||||
0x08, 0x09, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x0B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0B,
|
||||
0x0C, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x0D, 0x0E, 0x07, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x14, 0x15, 0x16, 0x17, 0x18, 0x01, 0x01, 0x03, 0x03,
|
||||
0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x19, 0x1A,
|
||||
0x1B, 0x0C, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x1A, 0x1C, 0x1D, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x10, 0x1E, 0x1F, 0x1F, 0x1F, 0x20, 0x10,
|
||||
0x07, 0x21, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x22, 0x23, 0x24,
|
||||
0x25, 0x26, 0x27, 0x28, 0x18, 0x01, 0x17, 0x17, 0x17, 0x29, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x1A, 0x2A, 0x1B, 0x1C, 0x2B, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1B,
|
||||
0x2A, 0x1A, 0x2C, 0x2D, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07, 0x07,
|
||||
0x05, 0x1E, 0x1E, 0x1E, 0x2E, 0x05, 0x10, 0x13, 0x13, 0x07, 0x2F, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x03, 0x30, 0x31, 0x32, 0x33, 0x34, 0x24, 0x27, 0x35, 0x36, 0x17, 0x32,
|
||||
0x37, 0x29, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x38, 0x39, 0x3A, 0x3B,
|
||||
0x1B, 0x38, 0x0A, 0x1D, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1D, 0x1B, 0x3B, 0x3A, 0x39, 0x3C, 0x2D, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x10, 0x0E, 0x13, 0x2E, 0x1E, 0x2E, 0x0F, 0x3D, 0x3D, 0x3D, 0x0F,
|
||||
0x06, 0x07, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3E, 0x3F, 0x26, 0x32, 0x40,
|
||||
0x41, 0x42, 0x29, 0x24, 0x43, 0x29, 0x17, 0x32, 0x37, 0x29, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D,
|
||||
0x1D, 0x1D, 0x1D, 0x44, 0x39, 0x45, 0x46, 0x47, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
|
||||
0x1B, 0x1B, 0x1B, 0x2B, 0x2D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
|
||||
0x47, 0x46, 0x45, 0x39, 0x48, 0x2B, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x21, 0x12, 0x0F, 0x0D,
|
||||
0x1E, 0x2E, 0x3D, 0x07, 0x2F, 0x21, 0x49, 0x2B, 0x1D, 0x1D, 0x2B, 0x21, 0x1D, 0x1D, 0x1D, 0x1D,
|
||||
0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||
0x04, 0x04, 0x3E, 0x35, 0x37, 0x4A, 0x34, 0x4B, 0x1D, 0x4C, 0x4D, 0x4E, 0x31, 0x31, 0x4E, 0x32,
|
||||
0x37, 0x29, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D,
|
||||
0x1D, 0x1D, 0x1D, 0x4F, 0x4F, 0x4F, 0x4F, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x3C, 0x39, 0x50, 0x46, 0x46, 0x51,
|
||||
0x47, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x52, 0x1B, 0x1C, 0x53, 0x1D, 0x1D, 0x1D,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1B, 0x52, 0x3B,
|
||||
0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x47, 0x51, 0x46, 0x46, 0x50, 0x39, 0x54, 0x53, 0x1D,
|
||||
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D,
|
||||
0x1D, 0x2F, 0x21, 0x2B, 0x12, 0x07, 0x20, 0x20, 0x20, 0x3D, 0x55, 0x2F, 0x21, 0x1D, 0x1D, 0x1D,
|
||||
0x1D, 0x1D, 0x1D, 0x07, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x3E, 0x56, 0x40, 0x57, 0x58, 0x4B, 0x2B,
|
||||
0x59, 0x5A, 0x4C, 0x5B, 0x5C, 0x5D, 0x5D, 0x5E, 0x37, 0x29, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1D, 0x1D, 0x1D, 0x1D, 0x5F, 0x5F, 0x5F, 0x5F,
|
||||
0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F, 0x4F, 0x60, 0x60, 0x4F, 0x5F,
|
||||
0x2B, 0x1D, 0x1D, 0x1D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D,
|
||||
0x2D, 0x61, 0x39, 0x62, 0x46, 0x52, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
|
||||
0x63, 0x64, 0x1B, 0x65, 0x66, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x1B, 0x64, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
|
||||
0x63, 0x63, 0x52, 0x46, 0x62, 0x39, 0x54, 0x5F, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x0E, 0x07, 0x10, 0x12, 0x05, 0x1E, 0x05,
|
||||
0x13, 0x55, 0x67, 0x68, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2F, 0x0E, 0x07, 0x12, 0x2D, 0x2D, 0x2D,
|
||||
0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
|
||||
0x0C, 0x4E, 0x69, 0x43, 0x6A, 0x4B, 0x2B, 0x6B, 0x5A, 0x5A, 0x5A, 0x6C, 0x6D, 0x5C, 0x6E, 0x37,
|
||||
0x6F, 0x29, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x2D, 0x2D, 0x2D, 0x70, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72,
|
||||
0x72, 0x4F, 0x4F, 0x4F, 0x60, 0x73, 0x4F, 0x4F, 0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x61, 0x74, 0x45, 0x63, 0x75, 0x64, 0x75, 0x75,
|
||||
0x75, 0x63, 0x75, 0x75, 0x63, 0x63, 0x63, 0x63, 0x76, 0x75, 0x1B, 0x2C, 0x77, 0x2D, 0x2D, 0x2D,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x78, 0x1B, 0x75, 0x76,
|
||||
0x63, 0x63, 0x63, 0x63, 0x75, 0x75, 0x63, 0x75, 0x75, 0x75, 0x75, 0x75, 0x63, 0x45, 0x74, 0x79,
|
||||
0x5F, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D,
|
||||
0x67, 0x12, 0x3D, 0x0E, 0x0F, 0x1E, 0x7A, 0x05, 0x10, 0x0E, 0x68, 0x2D, 0x2D, 0x2D, 0x2D, 0x2F,
|
||||
0x0E, 0x07, 0x06, 0x05, 0x0E, 0x10, 0x2D, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x2D, 0x7B, 0x7C, 0x7D, 0x31, 0x7E, 0x4B, 0x5F, 0x6B, 0x59,
|
||||
0x5A, 0x59, 0x59, 0x6B, 0x7F, 0x5B, 0x80, 0x81, 0x81, 0x80, 0x82, 0x2D, 0x2D, 0x2D, 0x2D, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x72, 0x83, 0x84, 0x84, 0x84,
|
||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x86, 0x86, 0x87, 0x87, 0x87, 0x88,
|
||||
0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2D, 0x61,
|
||||
0x1B, 0x45, 0x63, 0x76, 0x76, 0x76, 0x64, 0x64, 0x64, 0x64, 0x76, 0x64, 0x64, 0x75, 0x75, 0x75,
|
||||
0x76, 0x75, 0x1B, 0x2C, 0x89, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x2D, 0x2D, 0x2D, 0x2B, 0x1B, 0x75, 0x76, 0x75, 0x75, 0x75, 0x75, 0x64, 0x76, 0x64, 0x64,
|
||||
0x64, 0x64, 0x76, 0x76, 0x76, 0x63, 0x8A, 0x1B, 0x79, 0x5F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2D, 0x2D, 0x2F, 0x07, 0x0D, 0x0D, 0x1E, 0x20, 0x7A, 0x0D,
|
||||
0x11, 0x07, 0x8B, 0x2D, 0x2D, 0x8B, 0x0E, 0x07, 0x0F, 0x0D, 0x20, 0x1E, 0x11, 0x55, 0x78, 0x2D,
|
||||
0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7B, 0x8C,
|
||||
0x58, 0x5D, 0x8D, 0x41, 0x8E, 0x6B, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x4C, 0x04, 0x42, 0x90,
|
||||
0x69, 0x69, 0x91, 0x82, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x2D, 0x2D, 0x2D, 0x92, 0x84, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,
|
||||
0x59, 0x93, 0x94, 0x95, 0x95, 0x95, 0x96, 0x88, 0x4F, 0x2D, 0x2D, 0x2D, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x97, 0x1A, 0x50, 0x63, 0x45, 0x50, 0x50, 0x50, 0x50, 0x50,
|
||||
0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x76, 0x45, 0x75, 0x1B, 0x2C, 0x98, 0x2B, 0x2B, 0x2B,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x99, 0x1B, 0x75, 0x45,
|
||||
0x76, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x45, 0x63, 0x50,
|
||||
0x1A, 0x3C, 0x5F, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B,
|
||||
0x5F, 0x0E, 0x11, 0x0D, 0x9A, 0x0D, 0x05, 0x0D, 0x07, 0x0E, 0x07, 0x2B, 0x67, 0x0E, 0x3D, 0x05,
|
||||
0x0D, 0x0D, 0x0D, 0x9A, 0x0D, 0x0E, 0x0F, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x2B, 0x2B, 0x77, 0x9B, 0x6A, 0x5D, 0x9C, 0x9D, 0x8E, 0x9E, 0x6B, 0x9F, 0x6B,
|
||||
0x89, 0xA0, 0xA1, 0xA2, 0x7F, 0x9E, 0x2D, 0xA3, 0xA4, 0xA5, 0xA5, 0xA4, 0xA6, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x92, 0x84, 0x59, 0xA7, 0xA7,
|
||||
0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0x93, 0x93, 0x93, 0xA8, 0x96, 0x93, 0x85,
|
||||
0x4F, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x61, 0xA9,
|
||||
0x75, 0x76, 0x62, 0x3A, 0x3A, 0x62, 0x8A, 0x8A, 0xAA, 0x45, 0x3A, 0x62, 0x45, 0x45, 0x45, 0x45,
|
||||
0x45, 0x63, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x63, 0x45, 0x45, 0x8A, 0x45, 0x45, 0x62, 0x3A, 0x45, 0xAA,
|
||||
0x8A, 0x8A, 0x62, 0x3A, 0x3A, 0x62, 0x76, 0x75, 0xA9, 0xAB, 0x98, 0x5F, 0x99, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x67, 0x55, 0x05, 0x2E, 0x05, 0x05, 0x05,
|
||||
0x10, 0x0E, 0x12, 0x06, 0x99, 0x3D, 0x07, 0x11, 0x0D, 0x0D, 0x2E, 0x9A, 0x0D, 0x11, 0x55, 0xAC,
|
||||
0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0xAD, 0x7E, 0x6E,
|
||||
0xAE, 0xAF, 0x8E, 0x04, 0x4C, 0x59, 0x9F, 0xA2, 0xA2, 0xA2, 0xA2, 0xB0, 0x2D, 0x2D, 0x1D, 0x2B,
|
||||
0xA3, 0xB1, 0x7D, 0x7D, 0xB2, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x99, 0x99, 0x99, 0x92, 0x84, 0x59, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
|
||||
0xA7, 0xA7, 0xA7, 0x93, 0x96, 0x96, 0x93, 0x84, 0x92, 0x99, 0x99, 0x99, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0xAB, 0xB3, 0x76, 0x76, 0x45, 0xB4, 0x45, 0x8A, 0x45,
|
||||
0x3A, 0xAA, 0x3A, 0x62, 0xAA, 0x3A, 0x3A, 0xAA, 0x62, 0x63, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99,
|
||||
0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x63, 0x62,
|
||||
0xAA, 0x3A, 0x3A, 0xAA, 0x62, 0x3A, 0xAA, 0x3A, 0x45, 0x8A, 0x45, 0xB4, 0x45, 0x76, 0x76, 0xB3,
|
||||
0xB5, 0x65, 0xB6, 0x5F, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99,
|
||||
0x99, 0x99, 0x0E, 0x07, 0x20, 0x0D, 0x13, 0x07, 0x55, 0x12, 0x0F, 0xB7, 0x99, 0x99, 0x07, 0x10,
|
||||
0x2E, 0x7A, 0x20, 0x1E, 0x0D, 0x0D, 0x07, 0x0F, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x99, 0x99, 0xB8, 0xB9, 0xBA, 0x9D, 0xBB, 0x2D, 0x4C, 0x6B, 0x4C, 0x4C, 0x4C,
|
||||
0x4C, 0x7F, 0x2D, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2D, 0xBC, 0xB1, 0xAE, 0xBD, 0x99, 0x99, 0x8F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x92, 0x84, 0x59, 0xBE, 0xBE,
|
||||
0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0x93, 0x93, 0x93, 0x93, 0x84,
|
||||
0x92, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x8E,
|
||||
0xBF, 0xC0, 0x8A, 0x76, 0x45, 0x50, 0x76, 0x50, 0xAA, 0x62, 0xAA, 0x45, 0x45, 0xAA, 0x3A, 0xB4,
|
||||
0xAA, 0x52, 0x1B, 0x44, 0x98, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x99, 0x99, 0x99, 0x5F, 0x1B, 0x52, 0xAA, 0xB4, 0x3A, 0xAA, 0x45, 0x45, 0xAA, 0x62, 0xAA,
|
||||
0x50, 0x76, 0x50, 0x45, 0x76, 0x8A, 0xC0, 0xB5, 0x44, 0xC1, 0x66, 0x99, 0x99, 0x8F, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0x99, 0x2F, 0x0E, 0x13, 0x07, 0x55, 0x12,
|
||||
0x06, 0xAC, 0xAC, 0x99, 0x99, 0x99, 0x07, 0x13, 0x0D, 0x7A, 0x1E, 0x3D, 0x0E, 0x07, 0x12, 0x06,
|
||||
0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x99, 0x99, 0xC2, 0xC2,
|
||||
0xC3, 0xC4, 0x6C, 0x6B, 0x4C, 0x4C, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x5F, 0x5F, 0x5F, 0x5F,
|
||||
0x04, 0xC3, 0xC7, 0xC8, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x99, 0x99, 0x99, 0xC9, 0x84, 0x59, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x59, 0x84, 0xC9, 0x99, 0x99, 0x99, 0x8F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xBF, 0xB3, 0x8A, 0x76, 0x50, 0x64, 0x76,
|
||||
0x8A, 0xAA, 0x3A, 0x45, 0x8A, 0x45, 0xAA, 0xCA, 0xCA, 0x52, 0x1B, 0x61, 0xB6, 0x8E, 0x8E, 0x99,
|
||||
0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x52, 0xCA,
|
||||
0xCA, 0xAA, 0x45, 0x8A, 0x45, 0x3A, 0xAA, 0x8A, 0x76, 0x64, 0x50, 0x76, 0x8A, 0xB3, 0xB5, 0x61,
|
||||
0x97, 0xBB, 0x8E, 0x8E, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x12, 0x55, 0x12, 0x3D, 0x67, 0xCB, 0xCC, 0x8E, 0x8E, 0x8E, 0xCB, 0x07, 0x05,
|
||||
0x0D, 0x9A, 0x13, 0x55, 0x3D, 0xCD, 0x0E, 0x67, 0x5F, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x99, 0x99, 0x99, 0xCC, 0xCE, 0x6B, 0x4C, 0x6C, 0x6C, 0xC4, 0xC6, 0xCF,
|
||||
0xCF, 0xCF, 0xCF, 0xD0, 0x66, 0x66, 0x66, 0x66, 0x1D, 0xD1, 0x99, 0x99, 0x99, 0x99, 0x99, 0x8F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0x59, 0xD2, 0xD2,
|
||||
0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0x59, 0x84,
|
||||
0xC9, 0x8E, 0x8E, 0x99, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0xBB, 0xD3, 0xB3, 0x45, 0x76, 0x76, 0x63, 0x63, 0x63, 0x75, 0x75, 0x75, 0x64, 0x64, 0x76,
|
||||
0x76, 0x50, 0x1B, 0x61, 0xB6, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x50, 0x76, 0x76, 0x64, 0x64, 0x75, 0x75, 0x75, 0x63, 0x63,
|
||||
0x63, 0x76, 0x76, 0x45, 0xB3, 0xD5, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x55, 0x67, 0xCB, 0xCC,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x07, 0x06, 0x9A, 0x20, 0x0D, 0x3D, 0x55, 0x67, 0x67, 0x06, 0xB7,
|
||||
0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB,
|
||||
0xD6, 0x4C, 0x2D, 0x2D, 0xD7, 0x1D, 0xD8, 0xD9, 0xDA, 0xDA, 0xD9, 0xDB, 0xBB, 0xBB, 0xBB, 0xBB,
|
||||
0x2D, 0xDC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0x1F, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x84, 0xC9, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x0B, 0xDD, 0xAA, 0x76, 0x64,
|
||||
0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x44, 0xB6, 0x8E, 0x8E, 0x8E,
|
||||
0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x1B, 0x1B, 0x1B,
|
||||
0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x64, 0x76, 0xAA, 0xDD, 0xD5, 0x61, 0x97, 0xBB,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB7, 0x3D, 0x0F, 0x1E, 0x1E,
|
||||
0x0D, 0x0F, 0xCD, 0x0F, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xC3, 0xC4, 0x2B, 0x2B, 0x2B, 0x2B, 0xDE, 0xDF,
|
||||
0xE0, 0xE0, 0xE1, 0xE2, 0xBB, 0xBB, 0xBB, 0xBB, 0x2B, 0xE3, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xD4,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0xA7, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0xA7, 0x84,
|
||||
0xC9, 0x8E, 0x8E, 0x8E, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0xBB, 0x0B, 0xE4, 0x3A, 0x76, 0x1B, 0x6D, 0x61, 0x44, 0x2C, 0x2C, 0x2C, 0x2C,
|
||||
0x2C, 0x2C, 0x2C, 0x65, 0xBB, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xE5, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x44, 0x1B,
|
||||
0x76, 0x3A, 0xE4, 0xE6, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x07, 0x3D, 0x0F,
|
||||
0x67, 0x0F, 0x3D, 0x06, 0x10, 0x1E, 0x1E, 0x0D, 0x10, 0xCD, 0x3D, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB,
|
||||
0xD1, 0x9E, 0x5F, 0x5F, 0x5F, 0x5F, 0xE7, 0xE8, 0xE9, 0xE9, 0xEA, 0xEB, 0xBB, 0xBB, 0xBB, 0xBB,
|
||||
0x5F, 0xEC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x8E, 0x8E, 0x8E, 0xC9, 0x84, 0xA7, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0xA7, 0x84, 0xC9, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xED, 0xE4, 0xB4,
|
||||
0x1B, 0x61, 0xEE, 0xB6, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x89, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x89,
|
||||
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x1B, 0xB4, 0xE4, 0xBF, 0x61, 0x97, 0xBB, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x06, 0x07, 0x06, 0x0F, 0x0F, 0x05, 0x0D, 0x9A, 0x1E, 0x2E, 0x13,
|
||||
0x07, 0xCD, 0xCB, 0x68, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xEF, 0xDC, 0x1D, 0x66, 0x66, 0x66, 0x66, 0xF0, 0xF1,
|
||||
0xF2, 0xF2, 0xF1, 0xF3, 0xBB, 0xBB, 0xBB, 0xBB, 0x5F, 0xF4, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x71, 0xF5, 0x84, 0x19, 0x19, 0x19,
|
||||
0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x84,
|
||||
0xF5, 0x71, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xED, 0xE4, 0x1B, 0x2C, 0x98, 0x66, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x66, 0x1B,
|
||||
0xE4, 0xD3, 0x61, 0x97, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x0F, 0x3D,
|
||||
0x0F, 0x05, 0x2E, 0x1E, 0x9A, 0x0D, 0x0F, 0x07, 0x07, 0xCB, 0xB7, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x70,
|
||||
0xE3, 0x5F, 0xBB, 0xBB, 0xBB, 0xBB, 0xF0, 0xF2, 0xF2, 0xF2, 0xF2, 0xF0, 0xBB, 0xBB, 0xBB, 0xBB,
|
||||
0x5F, 0xF6, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x8E, 0x8E, 0xF5, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
|
||||
0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0xF5, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0xF7,
|
||||
0xBF, 0xE5, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xED, 0x48, 0x2C, 0xC1, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB7, 0x3D, 0x3D, 0x06, 0x0F, 0x0F, 0x3D, 0xCD, 0x0F,
|
||||
0xCB, 0xB7, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0xE3, 0x8F, 0x5F, 0x5F, 0x5F, 0x5F, 0xF0, 0xF0,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0x5F, 0x5F, 0x5F, 0x5F, 0x8F, 0xE3, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0xCC, 0xCC, 0xCC, 0xCC,
|
||||
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xBB, 0x97, 0xEE, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0xB6,
|
||||
0xEE, 0xB6, 0xBB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x0F, 0x07, 0x07, 0x3D, 0x3D, 0x67, 0xCB, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0xCE, 0xE3, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
|
||||
0xE3, 0xDC, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x66, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x68, 0xB7, 0xB7, 0xCC, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
|
||||
0x8E, 0x8E, 0x8E, 0x8E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
BIN
programs/cmm/browser/img/toolbar_icons.png
Normal file
BIN
programs/cmm/browser/img/toolbar_icons.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
131
programs/cmm/browser/include/acid_0.1.htm
Normal file
131
programs/cmm/browser/include/acid_0.1.htm
Normal file
@ -0,0 +1,131 @@
|
||||
<!--doctype html public "-//w3c//dtd html 4.0 transitional//ru"-->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
||||
<title>Òåñò Acid 0.1</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF">
|
||||
|
||||
<img src="background.gif" alt="background">
|
||||
|
||||
<b>Ýòî òåñòîâàÿ ñòðàíèöà äëÿ ïðîâåðêè HTML Viewer</b><br />
|
||||
<br />
|
||||
Ýòà ïðîãðàììà ïîääåðæèâàåò âñå ïîïóëÿðíûå êîäèðîâêè: cp1251, koi-8, cp866, Unicode.<br><br>
|
||||
|
||||
<b>
|
||||
<font color="#FF0000">C</font>
|
||||
<font color="#FFC005">r</font>
|
||||
<font color="#F6F574">e</font>
|
||||
<font color="#9EFC36">a</font>
|
||||
<font color="#29FDFD">t</font>
|
||||
<font color="#36A8FC">e</font>
|
||||
<font color="blueviolet">d </font>
|
||||
<font color="#C911FF">b</font>
|
||||
<font color= #C911FF >y </font>
|
||||
<font color="#C911FF">L</font>
|
||||
<font color="#36A8FC">e</font>
|
||||
<font color="#29FDFD">e</font>
|
||||
<font color="#9EFC36">n</font>
|
||||
<font color="#FFC005">c</font>
|
||||
<font color="red">y</font><br>
|
||||
</b>
|
||||
Æèòîìèð 2008-2012
|
||||
|
||||
<p>
|
||||
Íåáîëüøîé ñïèñîê:<ol>
|
||||
<li><q>Ýòîò òåêñò â êàâû÷êàõ</q></li>
|
||||
<li><u>Ýòî ïîä÷åðêíóòûé òåêñò</u></li>
|
||||
<li><s>Ýòî ïåðå÷åðêíóòûé òåêñò</s></li>
|
||||
<li><i>Ýòî íàêëîííûé òåêñò</i></li>
|
||||
<li><strong>Ýòî òåêñò ñ óñèëåííûì âûäåëåíèåì</strong></li>
|
||||
<li><b><u><s><font color="#6495ED">Êó÷à òåãîâ</font></s></u></b></ol>
|
||||
</p>
|
||||
<br>
|
||||
|
||||
<pre>
|
||||
Àòü!
|
||||
Äâà!
|
||||
Òðè!
|
||||
|
||||
Àâòîð ñåãî òâîðåíèÿ íå èçâåñòåí.
|
||||
|
||||
</pre>
|
||||
<!--ýòîãî òåêñòà çäåñü <íåò>-->
|
||||
|
||||
<font color=#777777>
|
||||
<a href='/SYS/index.htm'>Index.htm</a><br>
|
||||
<a href='./index.htm'>Index.htm</a><br>
|
||||
<a href='/sys/index.htm'>Íåçàêðûòûé òåã à - Index.htm<br>
|
||||
<a href="/sys/kernel.mnt">Kernel.mnt</a><br>
|
||||
<a href="index.htm#2.1.4">index.htm#2.1.4</a><br>
|
||||
<a href="http://bash.im">http://bash.im</a><br>
|
||||
<a href="mailto:leency@mail.ru">Mail to leency</a><br>
|
||||
<a href="#2.1.4">#2.1.4</a><br>
|
||||
<a href="background.gif">Ôîíîâàÿ êàðòèíêà</a><br>
|
||||
</font>
|
||||
<a href='1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
1111111111111111111111111111111111111111111111111111111111111111
|
||||
'>Î÷åíü äëèííûé àäðåñ ñòðîêè</a><br>
|
||||
|
||||
|
||||
|
||||
<hr color="#758999">
|
||||
 ýòîì òåêñòå åñòü ïåðåõîä íà ñëåäóþùóþ ñòðîêó, íî áðàóçåð
|
||||
åãî äîëæåí ïðîèãíîðèðîâàòü. Åùå ìíîãî ïðîáåëîâ. À òóò åñòü
|
||||
òàáû. Êîå-êàêèå ñèìâîëû: " & < > • © ® „ “ — ¯æà÷îê ³íøîãî áîêó ð. ªâôðàò ç'¿â ´ðóíò òà ºâðåéñüêèé ´åðáàëàéô.
|
||||
<hr color="grey">
|
||||
|
||||
</body>
|
||||
</html>
|
193
programs/cmm/browser/include/colors.h
Normal file
193
programs/cmm/browser/include/colors.h
Normal file
@ -0,0 +1,193 @@
|
||||
//Íàäî áóäåò ïåðåäåëàòü íà "äåðåâî ïîèñêà" èëè, ÷òî-òî ïîäîáíîå
|
||||
//áóäåò íå÷èòàáåëüíî, çàòî ìåíüøå è áûñòåå
|
||||
|
||||
struct color_spec {
|
||||
char *name;
|
||||
int rgb;
|
||||
};
|
||||
|
||||
struct color_spec color_specs[] = {
|
||||
"aliceblue", 0xF0F8FF,
|
||||
"antiquewhite", 0xFAEBD7,
|
||||
"aqua", 0x00FFFF,
|
||||
"aquamarine", 0x7FFFD4,
|
||||
"azure", 0xF0FFFF,
|
||||
"beige", 0xF5F5DC,
|
||||
"bisque", 0xFFE4C4,
|
||||
"black", 0x000000,
|
||||
"blanchedalmond",0xFFEBCD,
|
||||
"blue", 0x0000FF,
|
||||
"blueviolet", 0x8A2BE2,
|
||||
"brown", 0xA52A2A,
|
||||
"burlywood", 0xDEB887,
|
||||
"cadetblue", 0x5F9EA0,
|
||||
"chartreuse", 0x7FFF00,
|
||||
"chocolate", 0xD2691E,
|
||||
"coral", 0xFF7F50,
|
||||
"cornflowerblue",0x6495ED,
|
||||
"cornsilk", 0xFFF8DC,
|
||||
"crimson", 0xDC143C,
|
||||
"cyan", 0x00FFFF,
|
||||
"darkblue", 0x00008B,
|
||||
"darkcyan", 0x008B8B,
|
||||
"darkgoldenrod", 0xB8860B,
|
||||
"darkgray", 0xA9A9A9,
|
||||
"darkgreen", 0x006400,
|
||||
"darkkhaki", 0xBDB76B,
|
||||
"darkmagenta", 0x8B008B,
|
||||
"darkolivegreen",0x556B2F,
|
||||
"darkorange", 0xFF8C00,
|
||||
"darkorchid", 0x9932CC,
|
||||
"darkred", 0x8B0000,
|
||||
"darksalmon", 0xE9967A,
|
||||
"darkseagreen", 0x8FBC8F,
|
||||
"darkslateblue", 0x483D8B,
|
||||
"darkslategray", 0x2F4F4F,
|
||||
"darkturquoise", 0x00CED1,
|
||||
"darkviolet", 0x9400D3,
|
||||
"deeppink", 0xFF1493,
|
||||
"deepskyblue", 0x00BFFF,
|
||||
"dimgray", 0x696969,
|
||||
"dodgerblue", 0x1E90FF,
|
||||
"firebrick", 0xB22222,
|
||||
"floralwhite", 0xFFFAF0,
|
||||
"forestgreen", 0x228B22,
|
||||
"fuchsia", 0xFF00FF,
|
||||
"gainsboro", 0xDCDCDC,
|
||||
"ghostwhite", 0xF8F8FF,
|
||||
"gold", 0xFFD700,
|
||||
"goldenrod", 0xDAA520,
|
||||
"gray", 0x808080,
|
||||
"green", 0x008000,
|
||||
"greenyellow", 0xADFF2F,
|
||||
"honeydew", 0xF0FFF0,
|
||||
"hotpink", 0xFF69B4,
|
||||
"indianred", 0xCD5C5C,
|
||||
"indigo", 0x4B0082,
|
||||
"ivory", 0xFFFFF0,
|
||||
"khaki", 0xF0E68C,
|
||||
"lavender", 0xE6E6FA,
|
||||
"lavenderblush", 0xFFF0F5,
|
||||
"lawngreen", 0x7CFC00,
|
||||
"lemonchiffon", 0xFFFACD,
|
||||
"lightblue", 0xADD8E6,
|
||||
"lightcoral", 0xF08080,
|
||||
"lightcyan", 0xE0FFFF,
|
||||
"lightgoldenrodyellow", 0xFAFAD2,
|
||||
"lightgreen", 0x90EE90,
|
||||
"lightgrey", 0xD3D3D3,
|
||||
"lightpink", 0xFFB6C1,
|
||||
"lightsalmon", 0xFFA07A,
|
||||
"lightseagreen", 0x20B2AA,
|
||||
"lightskyblue", 0x87CEFA,
|
||||
"lightslategray",0x778899,
|
||||
"lightsteelblue",0xB0C4DE,
|
||||
"lightyellow", 0xFFFFE0,
|
||||
"lime", 0x00FF00,
|
||||
"limegreen", 0x32CD32,
|
||||
"linen", 0xFAF0E6,
|
||||
"magenta", 0xFF00FF,
|
||||
"maroon", 0x800000,
|
||||
"mediumaquamarine",0x66CDAA,
|
||||
"mediumblue", 0x0000CD,
|
||||
"mediumorchid", 0xBA55D3,
|
||||
"mediumpurple", 0x9370DB,
|
||||
"mediumseagreen",0x3CB371,
|
||||
"mediumslateblue",0x7B68EE,
|
||||
"mediumspringgreen",0x00FA9A,
|
||||
"mediumturquoise",0x48D1CC,
|
||||
"mediumvioletred",0xC71585,
|
||||
"midnightblue", 0x191970,
|
||||
"mintcream", 0xF5FFFA,
|
||||
"mistyrose", 0xFFE4E1,
|
||||
"moccasin", 0xFFE4B5,
|
||||
"navajowhite", 0xFFDEAD,
|
||||
"navy", 0x000080,
|
||||
"oldlace", 0xFDF5E6,
|
||||
"olive", 0x808000,
|
||||
"olivedrab", 0x6B8E23,
|
||||
"orange", 0xFFA500,
|
||||
"orangered", 0xFF4500,
|
||||
"orchid", 0xDA70D6,
|
||||
"palegoldenrod", 0xEEE8AA,
|
||||
"palegreen", 0x98FB98,
|
||||
"paleturquoise", 0xAFEEEE,
|
||||
"palevioletred", 0xDB7093,
|
||||
"papayawhip", 0xFFEFD5,
|
||||
"peachpuff", 0xFFDAB9,
|
||||
"peru", 0xCD853F,
|
||||
"pink", 0xFFC0CB,
|
||||
"plum", 0xDDA0DD,
|
||||
"powderblue", 0xB0E0E6,
|
||||
"purple", 0x800080,
|
||||
"red", 0xFF0000,
|
||||
"rosybrown", 0xBC8F8F,
|
||||
"royalblue", 0x4169E1,
|
||||
"saddlebrown", 0x8B4513,
|
||||
"salmon", 0xFA8072,
|
||||
"sandybrown", 0xF4A460,
|
||||
"seagreen", 0x2E8B57,
|
||||
"seashell", 0xFFF5EE,
|
||||
"sienna", 0xA0522D,
|
||||
"silver", 0xC0C0C0,
|
||||
"skyblue", 0x87CEEB,
|
||||
"slateblue", 0x6A5ACD,
|
||||
"slategray", 0x708090,
|
||||
"snow", 0xFFFAFA,
|
||||
"springgreen", 0x00FF7F,
|
||||
"steelblue", 0x4682B4,
|
||||
"tan", 0xD2B48C,
|
||||
"teal", 0x008080,
|
||||
"thistle", 0xD8BFD8,
|
||||
"tomato", 0xFF6347,
|
||||
"turquoise", 0x40E0D0,
|
||||
"violet", 0xEE82EE,
|
||||
"wheat", 0xF5DEB3,
|
||||
"white", 0xFFFFFF,
|
||||
"whitesmoke", 0xF5F5F5,
|
||||
"yellow", 0xFFFF00,
|
||||
"yellowgreen", 0x9ACD32,
|
||||
0};
|
||||
|
||||
dword StrToCol(char* htmlcolor)
|
||||
{
|
||||
dword j=1,
|
||||
color=0,
|
||||
textlen=0;
|
||||
char ch=0x00;
|
||||
|
||||
if (ESBYTE[htmlcolor]<>'#') return text_colors[0];
|
||||
|
||||
textlen = strlen(htmlcolor);
|
||||
|
||||
if (textlen==7) || (textlen==4)
|
||||
{
|
||||
FOR (; j<textlen; j++)
|
||||
{
|
||||
ch=ESBYTE[htmlcolor+j];
|
||||
IF ((ch>='0') && (ch<='9')) ch -= '0';
|
||||
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
|
||||
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
|
||||
color = color*0x10 + ch;
|
||||
if (textlen==4) color = color*0x10 + ch; //#abc ->> #aabbcc (ñëàâà âèêèïåäèè!!1)
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
return text_colors[0];
|
||||
}
|
||||
|
||||
dword GetColor(char* color_str)
|
||||
{
|
||||
int ii;
|
||||
|
||||
if (ESBYTE[color_str] == '#')
|
||||
return StrToCol(color_str);
|
||||
else
|
||||
for (ii=0; color_specs[ii].name!=0; ii++)
|
||||
{
|
||||
if (!strcmp(color_str, color_specs[ii].name)) return color_specs[ii].rgb;
|
||||
}
|
||||
|
||||
return text_colors[0];
|
||||
}
|
59
programs/cmm/browser/include/history.h
Normal file
59
programs/cmm/browser/include/history.h
Normal file
@ -0,0 +1,59 @@
|
||||
struct UrlsHistory {
|
||||
dword CurrentUrl();
|
||||
void AddUrl();
|
||||
byte GoBack();
|
||||
byte GoForward();
|
||||
};
|
||||
|
||||
UrlsHistory BrowserHistory;
|
||||
|
||||
struct path_string {
|
||||
char Item[4096];
|
||||
};
|
||||
|
||||
#define MAX_HISTORY_NUM 40
|
||||
path_string history_list[MAX_HISTORY_NUM];
|
||||
int history_num;
|
||||
int history_current;
|
||||
|
||||
dword UrlsHistory::CurrentUrl()
|
||||
{
|
||||
return #history_list[history_current].Item;
|
||||
}
|
||||
|
||||
void UrlsHistory::AddUrl() //òóò íóæåí ââîäèìûé ýëåìåíò - äëÿ óíèâåðñàëüíîñòè
|
||||
{
|
||||
int i;
|
||||
if (history_num>0) && (!strcmp(#URL,#history_list[history_current].Item)) return;
|
||||
|
||||
if (history_current>=MAX_HISTORY_NUM-1)
|
||||
{
|
||||
history_current/=2;
|
||||
for (i=0; i<history_current; i++;)
|
||||
{
|
||||
strcpy(#history_list[i].Item, #history_list[MAX_HISTORY_NUM-i].Item);
|
||||
}
|
||||
}
|
||||
history_current++;
|
||||
strcpy(#history_list[history_current].Item, #URL);
|
||||
history_num=history_current;
|
||||
}
|
||||
|
||||
|
||||
byte UrlsHistory::GoBack()
|
||||
{
|
||||
if (history_current<=1) return 0;
|
||||
|
||||
history_current--;
|
||||
strcpy(#URL, #history_list[history_current].Item);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
byte UrlsHistory::GoForward()
|
||||
{
|
||||
if (history_current==history_num) return 0;
|
||||
history_current++;
|
||||
strcpy(#URL, #history_list[history_current].Item);
|
||||
return 1;
|
||||
}
|
99
programs/cmm/browser/include/menu_rmb.h
Normal file
99
programs/cmm/browser/include/menu_rmb.h
Normal file
@ -0,0 +1,99 @@
|
||||
//Leency - 2012
|
||||
|
||||
#define ITEM_HEIGHT 18
|
||||
#define ITEM_WIDTH 138
|
||||
|
||||
char *ITEMS_LIST[]={
|
||||
"View in Tinypad F3",52,
|
||||
"WIN F5",REFRESH,
|
||||
"DOS Ctrl+D",04,
|
||||
"KOI Ctrl+K",11,
|
||||
"UTF Ctrl+U",21,
|
||||
"Line breaks ON" ,01,
|
||||
"Free image cache" ,02,
|
||||
"TrueType fonts" ,05,
|
||||
0};
|
||||
|
||||
|
||||
proc_info MenuForm;
|
||||
|
||||
|
||||
void menu_rmb()
|
||||
{
|
||||
mouse mm;
|
||||
int items_num, items_cur;
|
||||
int id1, key, i;
|
||||
|
||||
SetEventMask(100111b);
|
||||
|
||||
loop() switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
mm.get();
|
||||
|
||||
GetProcessInfo(#MenuForm, SelfInfo);
|
||||
id1=GetProcessSlot(MenuForm.ID);
|
||||
if (id1<>GetActiveProcess()) ExitProcess();
|
||||
|
||||
id1=mm.y/ITEM_HEIGHT;
|
||||
if (id1<0) || (id1+1>items_num) || (mm.x<0) || (mm.x>ITEM_WIDTH) break;
|
||||
if (mm.lkm) || (mm.pkm)
|
||||
{
|
||||
WB1.Scan(ITEMS_LIST[items_cur*2+1]);
|
||||
ExitProcess();
|
||||
}
|
||||
if (items_cur<>id1)
|
||||
{
|
||||
items_cur=id1;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
break;
|
||||
|
||||
case evButton:
|
||||
id1=GetButtonID()-10;
|
||||
WB1.Scan(ITEMS_LIST[id1*2+1]);
|
||||
ExitProcess();
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
if (key==27) ExitProcess();
|
||||
if (key==178) && (items_cur)
|
||||
{
|
||||
items_cur--;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
if (key==177) && (items_cur+1<items_num)
|
||||
{
|
||||
items_cur++;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
if (key==13)
|
||||
{
|
||||
WB1.Scan(ITEMS_LIST[items_cur*2+1]);
|
||||
ExitProcess();
|
||||
}
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
while (ITEMS_LIST[items_num*2]) items_num++;
|
||||
DefineAndDrawWindow(Form.left+m.x,Form.top+m.y+GetSkinHeight()+3,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,0x10FFFFFF,0,0x01fffFFF);
|
||||
|
||||
DrawRectangle(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x777777); //îáîäîê
|
||||
_ITEMS_DRAW:
|
||||
for (i=0; i<items_num; i++;)
|
||||
{
|
||||
if (i<>items_cur) EDX=0xFFFFFF; else EDX=0x94AECE;
|
||||
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, ITEM_HEIGHT, EDX);
|
||||
WriteText(8,i*ITEM_HEIGHT+6,0x80,0x000000,ITEMS_LIST[i*2],0);
|
||||
if (ITEMS_LIST[i*2+1]==1) && (pre_text==2) DrawBar(ITEM_WIDTH-18, i*ITEM_HEIGHT+8, 4, 4, 0x444444);
|
||||
if (ITEMS_LIST[i*2+1]==5) && (use_truetype==1) DrawBar(ITEM_WIDTH-18, i*ITEM_HEIGHT+8, 4, 4, 0x444444);
|
||||
}
|
||||
DrawBar(33, cur_encoding+1*ITEM_HEIGHT+8, 4, 4, 0x444444); //ïîêàçûâàåò âûáðàíóþ êîäèðîâêó
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
50
programs/cmm/browser/include/parce_tag.h
Normal file
50
programs/cmm/browser/include/parce_tag.h
Normal file
@ -0,0 +1,50 @@
|
||||
unsigned int GetNextParam()
|
||||
{
|
||||
byte kavichki = false;
|
||||
int i = strlen(#tagparam) - 1;
|
||||
|
||||
if (!tagparam) return 0;
|
||||
|
||||
WHILE((i > 0) && ((tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/')))
|
||||
{
|
||||
IF (tagparam[i] == '"') || (tagparam[i] == '\'') kavichki=tagparam[i];
|
||||
tagparam[i] = 0x00;
|
||||
i--;
|
||||
}
|
||||
|
||||
if (kavichki)
|
||||
{
|
||||
i=strrchr(#tagparam, kavichki);
|
||||
if (i>sizeof(options))
|
||||
strcpy(#options, #tagparam + sizeof(options));
|
||||
else
|
||||
strcpy(#options, #tagparam + i);
|
||||
}
|
||||
else
|
||||
{
|
||||
WHILE((i > 0) && (tagparam[i] <>'=')) i--; //i=strrchr(#tagparam, '=')+1;
|
||||
i++;
|
||||
if (i>sizeof(options))
|
||||
strcpy(#options, #tagparam + sizeof(options));
|
||||
else
|
||||
strcpy(#options, #tagparam + i);
|
||||
|
||||
WHILE (options[0] == ' ') strcpy(#options, #options+1);
|
||||
}
|
||||
tagparam[i] = 0x00;
|
||||
|
||||
FOR ( ; ((tagparam[i] <>' ') && (i > 0); i--)
|
||||
{
|
||||
IF (tagparam[i] == '=') //äåðçêàÿ çàãëóøêà
|
||||
tagparam[i + 1] = 0x00;
|
||||
}
|
||||
|
||||
if (i>sizeof(parametr))
|
||||
strcpy(#parametr, #tagparam + sizeof(parametr));
|
||||
else
|
||||
strcpy(#parametr, #tagparam + i + 1);
|
||||
|
||||
tagparam[i] = 0x00;
|
||||
|
||||
return 1;
|
||||
}
|
66
programs/cmm/browser/include/some_code.h
Normal file
66
programs/cmm/browser/include/some_code.h
Normal file
@ -0,0 +1,66 @@
|
||||
//êíîïêè
|
||||
#define BACK 300
|
||||
#define FORWARD 301
|
||||
#define REFRESH 302
|
||||
#define HOME 303
|
||||
#define NEWTAB 304
|
||||
#define GOTOURL 305
|
||||
#define SEARCHWEB 306
|
||||
#define ID1 178
|
||||
#define ID2 177
|
||||
|
||||
#define _WIN 0
|
||||
#define _DOS 1
|
||||
#define _KOI 2
|
||||
#define _UTF 3
|
||||
|
||||
|
||||
dword get_URL_part(int len) {
|
||||
char temp1[sizeof(URL)];
|
||||
strcpy(#temp1, #URL);
|
||||
temp1[len] = 0x00;
|
||||
return #temp1;
|
||||
}
|
||||
|
||||
inline byte chTag(dword text) {return strcmp(#tag,text);}
|
||||
|
||||
|
||||
void GetURLfromPageLinks(int id)
|
||||
{
|
||||
int i, j = 0;
|
||||
for (i = 0; i <= id - 401; i++)
|
||||
{
|
||||
do
|
||||
{
|
||||
j++;
|
||||
if (j>=strlen(#page_links)) return; //íå ñàìîå óäà÷íîå ðåøåíèå
|
||||
}
|
||||
while (page_links[j] <>'|');
|
||||
}
|
||||
page_links[j] = 0x00;
|
||||
strcpy(#URL, #page_links+strrchr(#page_links, '|'));
|
||||
}
|
||||
|
||||
|
||||
//Ó íàñ íåò íàêëîííûõ øðèôòîâ, ïîýòîìó äåëàåì êîñòûëü èç
|
||||
//ïàëî÷åê äëÿ ìîðîæåíîãî è æåâàòåëüíîé ðåçèíêè:
|
||||
//Ñíèìàåì îáëàñòü ýêðàíà è âûâîäèì å¸ îáðàòíî ïîëîñêàìè ñî ñìåùåíèåì,
|
||||
//÷òî äà¸ò ïåðåêîñ êàðòèíêè
|
||||
//Ïðè íàëè÷èè ôîíà è ò.ï. ïðîÿâèòñÿ âñÿ êîñòûëüíîñòü ðåøåíèÿ :)
|
||||
|
||||
inline void Skew(dword x,y,w,h)
|
||||
{
|
||||
dword italic_buf;
|
||||
int tile_height=2, //áóäåì âûâîäèòü äâóõïèêñåëüíûìè ïîëîñêàìè
|
||||
shift=-2, //ñ äâóõïèêñåëüíûì ñìåùåíèåì
|
||||
i, skin_height;
|
||||
|
||||
italic_buf = mem_Alloc(w*h*3);
|
||||
skin_height = GetSkinHeight();
|
||||
CopyScreen(italic_buf, x+Form.left+2, y+Form.top+skin_height, w, h);
|
||||
|
||||
FOR (i=0;i*tile_height<h;i++)
|
||||
PutImage(w*3*tile_height*i+italic_buf,w,tile_height,x+shift-i+1,i*tile_height+y);
|
||||
|
||||
mem_Free(italic_buf);
|
||||
}
|
89
programs/cmm/browser/include/unicode_tags.h
Normal file
89
programs/cmm/browser/include/unicode_tags.h
Normal file
@ -0,0 +1,89 @@
|
||||
char *unicode_tags[]={
|
||||
"nbsp", " ",
|
||||
"#38", " ",
|
||||
"#160", " ",
|
||||
|
||||
"copy", "(c)",
|
||||
"#169", "(c)",
|
||||
|
||||
"trade", "[TM]",
|
||||
|
||||
"reg", "(r)",
|
||||
"#174", "(r)",
|
||||
|
||||
"bdquo", ",,",
|
||||
|
||||
"amp", "&",
|
||||
"#38", "&",
|
||||
|
||||
"lt", "<",
|
||||
"#60", "<",
|
||||
|
||||
"gt", ">",
|
||||
"#62", ">",
|
||||
|
||||
"minus", "-",
|
||||
"ndash", "-",
|
||||
"mdash", "-", //--
|
||||
"#8722", "-",
|
||||
"#8211", "-",
|
||||
"#151", "-",
|
||||
"#149", "-",
|
||||
|
||||
"rsquo", "'",
|
||||
"#39", "'",
|
||||
"#96", "'",
|
||||
"#8217", "'",
|
||||
|
||||
"quot", "\"",
|
||||
"#34", "\"",
|
||||
"ldquo", "\"",
|
||||
"rdquo", "\"",
|
||||
"#8222", "\"",
|
||||
"#8221", "\"",
|
||||
|
||||
"laquo", "<<",
|
||||
"#171", "<<",
|
||||
"raquo", ">>",
|
||||
"#187", ">>",
|
||||
|
||||
"uarr", "\24",
|
||||
"darr", "\25",
|
||||
"rarr", "\26",
|
||||
"larr", "\27",
|
||||
|
||||
"#1028", "\242",
|
||||
"#1030", "I",
|
||||
"#1031", "\244",
|
||||
|
||||
"#8470", "N",
|
||||
"bull", "-", //âîîáùå çäåñü òî÷êà
|
||||
"percnt","%",
|
||||
|
||||
0};
|
||||
|
||||
|
||||
byte unicode_chars[] = "€<EFBFBD>‚ƒ„…†‡ˆ‰Š‹Œ<EFBFBD>Ž<EFBFBD><EFBFBD>‘’“”•–—˜™š›œ<EFBFBD>žŸ ¡¢£¤¥¦§¨©ª«¬®¯àáâãäåæçèéêëìíîïðñh£\243i\105\244\0";
|
||||
|
||||
unsigned char GetUnicodeSymbol()
|
||||
{
|
||||
int j;
|
||||
|
||||
for (j=0; unicode_tags[j]!=0; j+=2;)
|
||||
{
|
||||
if (!strcmp(#tag, unicode_tags[j]))
|
||||
{
|
||||
strcat(#line, unicode_tags[j+1]);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
rez = atoi(#tag + 1) - 1040;
|
||||
if (tag[1] == '1') && (rez>=0) && (rez<=72) && (strlen(#tag) == 5)
|
||||
{
|
||||
return unicode_chars[rez];
|
||||
}
|
||||
|
||||
strcat(#line,#tag); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò
|
||||
return NULL;
|
||||
}
|
5
programs/cmm/dict/compile.bat
Normal file
5
programs/cmm/dict/compile.bat
Normal file
@ -0,0 +1,5 @@
|
||||
del dicty
|
||||
..\C--\C-- dicty
|
||||
rename dicty.com dicty
|
||||
del warning.txt
|
||||
pause
|
274
programs/cmm/dict/dicty.c
Normal file
274
programs/cmm/dict/dicty.c
Normal file
@ -0,0 +1,274 @@
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\strings.h"
|
||||
#include "..\lib\file_system.h"
|
||||
#include "..\lib\mem.h"
|
||||
#include "..\lib\dll.h"
|
||||
#include "..\lib\edit_box_lib.h"
|
||||
|
||||
char title[]= "Dictionary v1.0";
|
||||
char direction[] = "Translate direction:";
|
||||
char translate_caption[] = "Translate";
|
||||
char dict_not_found[] = "Dictionary not found";
|
||||
char dict_opened[] = "Dictionary loaded";
|
||||
char empty_word[] = "Type a word to translate";
|
||||
//char direction[] = "Íàïðàâëåíèå ïåðåâîäà:"w;
|
||||
|
||||
|
||||
int mouse_dd;
|
||||
edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b};
|
||||
|
||||
system_colors sc;
|
||||
proc_info Form;
|
||||
|
||||
char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096];
|
||||
#define DEFAULT_DICT_DIRECROTY "dictionaries/"
|
||||
#define DEFAULT_DICT "eng - rus.dict";
|
||||
dword files_buf;
|
||||
dword buff, fsize;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
int id;
|
||||
word key;
|
||||
|
||||
mem_Init();
|
||||
load_dll2(boxlib, #edit_box_draw,0);
|
||||
|
||||
|
||||
program_path[strrchr(#program_path, '/')] = 0; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||
strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY);
|
||||
SetCurDir(#program_path);
|
||||
|
||||
strcpy(#cur_dict, DEFAULT_DICT);
|
||||
OpenDictionary(#cur_dict);
|
||||
|
||||
if (param)
|
||||
{
|
||||
strcpy(#edword, #param);
|
||||
edit1.size=edit1.pos=strlen(#edword);
|
||||
Translate();
|
||||
}
|
||||
|
||||
SetEventMask(0x27);
|
||||
loop()
|
||||
{
|
||||
switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
edit_box_mouse stdcall (#edit1);
|
||||
break;
|
||||
|
||||
case evButton:
|
||||
id=GetButtonID();
|
||||
if (id==1) ExitProcess();
|
||||
if (id==10)
|
||||
{
|
||||
Translate();
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
if (id==11)
|
||||
{
|
||||
ShowDictList();
|
||||
break;
|
||||
}
|
||||
if (id==12)
|
||||
{
|
||||
Draw_Window();
|
||||
break;
|
||||
}
|
||||
|
||||
if (id>=20)
|
||||
{
|
||||
strcpy(#cur_dict, id-20*304+files_buf+72);
|
||||
OpenDictionary(#cur_dict);
|
||||
}
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
IF (key==013) //Enter
|
||||
{
|
||||
Translate();
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
EAX=key<<8;
|
||||
edit_box_key stdcall(#edit1);
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
Draw_Window();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Draw_Window()
|
||||
{
|
||||
sc.get();
|
||||
DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title);
|
||||
GetProcessInfo(#Form, SelfInfo);
|
||||
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
||||
if (Form.height<140) MoveSize(OLD,OLD,OLD,140);
|
||||
if (Form.width<400) MoveSize(OLD,OLD,400,OLD);
|
||||
|
||||
DrawBar(0, 0, Form.width-9, 69, sc.work);
|
||||
edit1.focus_border_color=sc.work_graph;
|
||||
edit1.width=Form.width-edit1.left-edit1.left-9;
|
||||
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
|
||||
DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button);
|
||||
WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption, 0);
|
||||
DrawBar(0, 69, Form.width-9, 1, sc.work_graph);
|
||||
|
||||
WriteText(edit1.left,35+7,0x80,sc.work_text,#direction, 0);
|
||||
DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button);
|
||||
WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19", 0);
|
||||
DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF);
|
||||
WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict, 0);
|
||||
|
||||
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
|
||||
void OpenDictionary(dword dict_path)
|
||||
{
|
||||
dword j, words_count=0;
|
||||
|
||||
mem_Free(buff);
|
||||
buff = mem_Alloc(3500576);
|
||||
ReadFile(0, 3500576, buff, dict_path);
|
||||
IF (EAX<>6)
|
||||
{
|
||||
fsize=0;
|
||||
strcpy(#translate_result, #dict_not_found);
|
||||
Draw_Window();
|
||||
return;
|
||||
}
|
||||
fsize=EBX;
|
||||
|
||||
strcpy(#search_word, dict_path);
|
||||
strcpy(#translate_result, #dict_opened);
|
||||
Draw_Window();
|
||||
}
|
||||
|
||||
void ShowDictList()
|
||||
{
|
||||
int j, fcount=10;
|
||||
|
||||
mem_Free(files_buf);
|
||||
files_buf= mem_Alloc(32);
|
||||
ReadDir(0, files_buf, #program_path);
|
||||
fcount=ESDWORD[files_buf+8];
|
||||
mem_Free(files_buf);
|
||||
files_buf = mem_Alloc(fcount+1*304+32);
|
||||
|
||||
ReadDir(fcount, files_buf, #program_path);
|
||||
|
||||
fcount-=2;
|
||||
mem_Move(files_buf,files_buf+608,fcount*304);
|
||||
|
||||
|
||||
DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button);
|
||||
for (j=0; j<fcount; j++;)
|
||||
{
|
||||
DefineButton(edit1.left+130,j+1*20+35, 107,20, 20+j, sc.work_button);
|
||||
WriteText(edit1.left+130+8,j+1*20+35+7,0x80,sc.work_button_text, j*304+files_buf+72, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void Translate()
|
||||
{
|
||||
dword tj;
|
||||
char w_native[100], w_translation[100], bukva[1];
|
||||
|
||||
byte InfType;
|
||||
#define NATIVE_WORD 0
|
||||
#define TRANSLATION 1
|
||||
#define IGNORE 2
|
||||
|
||||
if (!fsize) return;
|
||||
|
||||
translate_result = 0;
|
||||
strcpy(#search_word, #edword);
|
||||
strupr(#search_word);
|
||||
|
||||
if (!edword)
|
||||
{
|
||||
strcpy(#translate_result, #empty_word);
|
||||
return;
|
||||
}
|
||||
|
||||
for (tj=0; tj<fsize; tj++;)
|
||||
{
|
||||
bukva = ESBYTE[buff+tj];
|
||||
switch (bukva)
|
||||
{
|
||||
case '"':
|
||||
if (w_translation)
|
||||
{
|
||||
if (!strcmp(#w_native, #search_word))
|
||||
{
|
||||
|
||||
if (translate_result) strcat(#translate_result, ", ");
|
||||
strcat(#translate_result, #w_translation);
|
||||
}
|
||||
else
|
||||
if (translate_result) return;
|
||||
|
||||
w_translation = w_native = 0;
|
||||
}
|
||||
InfType = TRANSLATION;
|
||||
break;
|
||||
case 0x0a:
|
||||
InfType = NATIVE_WORD;
|
||||
break;
|
||||
default:
|
||||
if (InfType==NATIVE_WORD)
|
||||
{
|
||||
strcat(#w_native, #bukva);
|
||||
//if (w_native<>search_word) InfType = IGNORE; //åñëè ïåðâàÿ áóêâà íå ñîâïàäàåò èãíîðèì âñ¸ ñëîâî
|
||||
}
|
||||
if (InfType==TRANSLATION) strcat(#w_translation, #bukva);
|
||||
}
|
||||
}
|
||||
if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary");
|
||||
}
|
||||
|
||||
|
||||
void DrawTranslation()
|
||||
{
|
||||
int text_break=0;
|
||||
char tt[4096]='';
|
||||
|
||||
int y_pos=70, skin_height=GetSkinHeight();
|
||||
char draw_buf[4096];
|
||||
strcpy(#draw_buf, #translate_result);
|
||||
|
||||
DrawBar(0, y_pos, Form.width-9, Form.height - y_pos-skin_height-4, 0xFFFFFF);
|
||||
strttl(#draw_buf);
|
||||
WriteText(10+1, y_pos+8, 0x90, 0x800080, #search_word, 0);
|
||||
WriteText(10 , y_pos+8, 0x90, 0x800080, #search_word, 0);
|
||||
while (draw_buf)
|
||||
{
|
||||
text_break= Form.width/6-6;
|
||||
if (text_break>strlen(#draw_buf))
|
||||
{
|
||||
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0);
|
||||
return;
|
||||
}
|
||||
while (draw_buf[text_break]<>' ') && (text_break>0) text_break--;
|
||||
strcpy(#tt, #draw_buf+text_break+1);
|
||||
draw_buf[text_break]=0x0;
|
||||
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0);
|
||||
strcpy(#draw_buf, #tt);
|
||||
y_pos+=12;
|
||||
if (y_pos+24+skin_height+12>Form.height) return; //÷òîá íå çàëåçàëî íà íèæíèé îáîäîê
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
stop:
|
306
programs/cmm/dict/dicty_.c
Normal file
306
programs/cmm/dict/dicty_.c
Normal file
@ -0,0 +1,306 @@
|
||||
//dict_path > cur_dict
|
||||
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\strings.h"
|
||||
#include "..\lib\file_system.h"
|
||||
#include "..\lib\mem.h"
|
||||
#include "..\lib\dll.h"
|
||||
#include "..\lib\edit_box_lib.h"
|
||||
|
||||
unsigned char title[]= "Dictionary v1.0";
|
||||
unsigned char direction[] = "Translate direction:";
|
||||
unsigned char translate_caption[] = "Translate";
|
||||
unsigned char dict_not_found[] = "Dictionary not found";
|
||||
unsigned char dict_opened[] = "Dictionary loaded";
|
||||
unsigned char empty_word[] = "Type a word to translate";
|
||||
//char direction[] = "Íàïðàâëåíèå ïåðåâîäà:"w;
|
||||
|
||||
|
||||
int mouse_dd;
|
||||
edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b};
|
||||
|
||||
system_colors sc;
|
||||
proc_info Form;
|
||||
|
||||
unsigned char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096];
|
||||
#define DEFAULT_DICT_DIRECROTY "dictionaries/"
|
||||
#define DEFAULT_DICT "eng - rus.dict";
|
||||
dword files_buf;
|
||||
dword buff, fsize;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
int id;
|
||||
word key;
|
||||
|
||||
mem_Init();
|
||||
load_dll2(boxlib, #edit_box_draw,0);
|
||||
|
||||
|
||||
program_path[strrchr(#program_path, '/')] = 0; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
|
||||
strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY);
|
||||
SetCurDir(#program_path);
|
||||
|
||||
strcpy(#cur_dict, DEFAULT_DICT);
|
||||
OpenDictionary(#cur_dict);
|
||||
|
||||
if (param)
|
||||
{
|
||||
strcpy(#edword, #param);
|
||||
edit1.size=edit1.pos=strlen(#edword);
|
||||
Translate();
|
||||
}
|
||||
|
||||
SetEventMask(0x27);
|
||||
loop()
|
||||
{
|
||||
switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
edit_box_mouse stdcall (#edit1);
|
||||
break;
|
||||
|
||||
case evButton:
|
||||
id=GetButtonID();
|
||||
if (id==1) ExitProcess();
|
||||
if (id==10)
|
||||
{
|
||||
Translate();
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
if (id==11)
|
||||
{
|
||||
ShowDictList();
|
||||
break;
|
||||
}
|
||||
if (id==12)
|
||||
{
|
||||
Draw_Window();
|
||||
break;
|
||||
}
|
||||
|
||||
if (id>=20)
|
||||
{
|
||||
strcpy(#cur_dict, id-20*304+files_buf+72);
|
||||
OpenDictionary(#cur_dict);
|
||||
}
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
IF (key==013) //Enter
|
||||
{
|
||||
Translate();
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
EAX=key<<8;
|
||||
edit_box_key stdcall(#edit1);
|
||||
|
||||
//LiveSearch();
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
Draw_Window();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*void LiveSearch()
|
||||
{
|
||||
dword bj, i;
|
||||
byte IsNativeWord=1;
|
||||
unsigned char native[256];
|
||||
unsigned char bukovka;
|
||||
|
||||
for (bj=0; bj<fsize; bj++;)
|
||||
{
|
||||
bukovka=ESBYTE[buff+bj];
|
||||
if (buff+bj==0x0a)
|
||||
{
|
||||
bj++;
|
||||
if (buff+bj!='"') IsNativeWord=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0; i<strlen(#edword); i++) if (edword[i]<>native[i]) goto __NE_RAVNO;
|
||||
debug(#native);
|
||||
__NE_RAVNO:
|
||||
native = '\0';
|
||||
IsNativeWord = 0;
|
||||
}
|
||||
if (IsNativeWord==1) native[strlen(#native)] = bukovka;
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
void Translate()
|
||||
{
|
||||
dword tj;
|
||||
char w_native[100], w_translation[100], bukva[1];
|
||||
|
||||
byte InfType;
|
||||
#define NATIVE_WORD 0
|
||||
#define TRANSLATION 1
|
||||
#define IGNORE 2
|
||||
|
||||
if (!fsize) return;
|
||||
|
||||
translate_result = 0;
|
||||
strcpy(#search_word, #edword);
|
||||
strupr(#search_word);
|
||||
|
||||
if (!edword)
|
||||
{
|
||||
strcpy(#translate_result, #empty_word);
|
||||
return;
|
||||
}
|
||||
|
||||
for (tj=0; tj<fsize; tj++;)
|
||||
{
|
||||
bukva = ESBYTE[buff+tj];
|
||||
switch (bukva)
|
||||
{
|
||||
case '"':
|
||||
if (w_translation)
|
||||
{
|
||||
if (!strcmp(#w_native, #search_word))
|
||||
{
|
||||
|
||||
if (translate_result) strcat(#translate_result, ", ");
|
||||
strcat(#translate_result, #w_translation);
|
||||
}
|
||||
else
|
||||
if (translate_result) return;
|
||||
|
||||
w_translation = w_native = 0;
|
||||
}
|
||||
InfType = TRANSLATION;
|
||||
break;
|
||||
case 0x0a:
|
||||
InfType = NATIVE_WORD;
|
||||
break;
|
||||
default:
|
||||
if (InfType==NATIVE_WORD)
|
||||
{
|
||||
strcat(#w_native, #bukva);
|
||||
//if (w_native<>search_word) InfType = IGNORE; //åñëè ïåðâàÿ áóêâà íå ñîâïàäàåò èãíîðèì âñ¸ ñëîâî
|
||||
}
|
||||
if (InfType==TRANSLATION) strcat(#w_translation, #bukva);
|
||||
}
|
||||
}
|
||||
if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary");
|
||||
}
|
||||
|
||||
|
||||
void OpenDictionary(dword dict_path)
|
||||
{
|
||||
dword j, words_count=0;
|
||||
|
||||
mem_Free(buff);
|
||||
buff = mem_Alloc(3500576);
|
||||
ReadFile(0, 3500576, buff, dict_path);
|
||||
IF (EAX<>6)
|
||||
{
|
||||
fsize=0;
|
||||
strcpy(#translate_result, #dict_not_found);
|
||||
Draw_Window();
|
||||
return;
|
||||
}
|
||||
fsize=EBX;
|
||||
|
||||
strcpy(#search_word, dict_path);
|
||||
strcpy(#translate_result, #dict_opened);
|
||||
Draw_Window();
|
||||
}
|
||||
|
||||
|
||||
void ShowDictList()
|
||||
{
|
||||
int j, fcount=10;
|
||||
|
||||
mem_Free(files_buf);
|
||||
files_buf= mem_Alloc(32);
|
||||
ReadDir(0, files_buf, #program_path);
|
||||
fcount=ESDWORD[files_buf+8];
|
||||
mem_Free(files_buf);
|
||||
files_buf = mem_Alloc(fcount+1*304+32);
|
||||
|
||||
ReadDir(fcount, files_buf, #program_path);
|
||||
|
||||
fcount-=2;
|
||||
mem_Move(files_buf,files_buf+608,fcount*304);
|
||||
|
||||
|
||||
DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button);
|
||||
for (j=0; j<fcount; j++;)
|
||||
{
|
||||
DefineButton(edit1.left+130,j+1*20+35, 107,20, 20+j, sc.work_button);
|
||||
WriteText(edit1.left+130+8,j+1*20+35+7,0x80,sc.work_button_text, j*304+files_buf+72, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DrawTranslation()
|
||||
{
|
||||
int text_break=0;
|
||||
char tt[4096]='';
|
||||
|
||||
int y_pos=70, skin_height=GetSkinHeight();
|
||||
char draw_buf[4096];
|
||||
strcpy(#draw_buf, #translate_result);
|
||||
|
||||
DrawBar(0, y_pos, Form.width-9, Form.height - y_pos-skin_height-4, 0xFFFFFF);
|
||||
strttl(#draw_buf);
|
||||
WriteText(10+1, y_pos+8, 0x90, 0x800080, #search_word, 0);
|
||||
WriteText(10 , y_pos+8, 0x90, 0x800080, #search_word, 0);
|
||||
while (draw_buf)
|
||||
{
|
||||
text_break= Form.width/6-6;
|
||||
if (text_break>strlen(#draw_buf))
|
||||
{
|
||||
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0);
|
||||
return;
|
||||
}
|
||||
while (draw_buf[text_break]<>' ') && (text_break>0) text_break--;
|
||||
strcpy(#tt, #draw_buf+text_break+1);
|
||||
draw_buf[text_break]=0x0;
|
||||
WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0);
|
||||
strcpy(#draw_buf, #tt);
|
||||
y_pos+=12;
|
||||
if (y_pos+24+skin_height+12>Form.height) return; //÷òîá íå çàëåçàëî íà íèæíèé îáîäîê
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Draw_Window()
|
||||
{
|
||||
sc.get();
|
||||
DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title);
|
||||
GetProcessInfo(#Form, SelfInfo);
|
||||
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
||||
if (Form.height<140) MoveSize(OLD,OLD,OLD,140);
|
||||
if (Form.width<400) MoveSize(OLD,OLD,400,OLD);
|
||||
|
||||
DrawBar(0, 0, Form.width-9, 69, sc.work);
|
||||
edit1.focus_border_color=sc.work_graph;
|
||||
edit1.width=Form.width-edit1.left-edit1.left-9;
|
||||
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
|
||||
DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button);
|
||||
WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption, 0);
|
||||
DrawBar(0, 69, Form.width-9, 1, sc.work_graph);
|
||||
|
||||
WriteText(edit1.left,35+7,0x80,sc.work_text,#direction, 0);
|
||||
DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button);
|
||||
WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19", 0);
|
||||
DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF);
|
||||
WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict, 0);
|
||||
|
||||
DrawTranslation();
|
||||
}
|
||||
|
||||
|
||||
stop:
|
173
programs/cmm/lib/dll.h
Normal file
173
programs/cmm/lib/dll.h
Normal file
@ -0,0 +1,173 @@
|
||||
//Asper
|
||||
char a_libdir[43] = "/sys/lib/\0";
|
||||
|
||||
|
||||
//proc dll.Load, import_table:dword
|
||||
int dll_Load(dword import_table)
|
||||
{
|
||||
$mov esi, import_table
|
||||
@next_lib: $mov edx, DSDWORD[esi]
|
||||
$or edx,edx
|
||||
$jz exit_
|
||||
$push esi
|
||||
$mov esi,DSDWORD[esi+4]
|
||||
$mov edi,#a_libdir
|
||||
|
||||
$push edi
|
||||
$push esi
|
||||
EAX=strlen(#a_libdir);
|
||||
$pop esi
|
||||
$pop edi
|
||||
$add edi, eax //9
|
||||
|
||||
@loc01: $lodsb
|
||||
$stosb
|
||||
$or al,al
|
||||
$jnz loc01
|
||||
|
||||
//IntToStr(EBX);
|
||||
//$push edx
|
||||
//WriteDebug(#a_libdir);
|
||||
//$pop edx
|
||||
//mcall 68,19,a_libdir
|
||||
$mov eax, 68
|
||||
$mov ebx, 19
|
||||
$mov ecx,#a_libdir
|
||||
$int 0x40
|
||||
|
||||
$or eax,eax
|
||||
$jz fail
|
||||
//stdcall dll.Link,eax,edx
|
||||
dll_Link(EAX, EDX);
|
||||
$push eax
|
||||
$mov eax, DSDWORD [eax]
|
||||
$cmp DSDWORD [eax], 'lib_'
|
||||
$pop eax
|
||||
//$jnz loc02
|
||||
//IntToStr(EBX);
|
||||
//$push eax
|
||||
//WriteDebug(DSDWORD[EAX]);
|
||||
//$pop eax
|
||||
//stdcall dll.Init,[eax+4]
|
||||
//dll_Init(DSDWORD[EAX]); //dll_Init(DSDWORD[EAX+4]);
|
||||
@loc02:
|
||||
$pop esi
|
||||
$add esi,8
|
||||
$jmp next_lib
|
||||
@exit_: $xor eax,eax
|
||||
return 0;
|
||||
@fail: $add esp,4
|
||||
$xor eax,eax
|
||||
$inc eax
|
||||
return -1;
|
||||
}
|
||||
|
||||
//proc dll.Link, exp:dword,imp:dword
|
||||
void dll_Link(dword exp, imp)
|
||||
{
|
||||
$push eax
|
||||
$mov esi, imp
|
||||
$test esi, esi
|
||||
$jz done
|
||||
@next: $lodsd
|
||||
$test eax,eax
|
||||
$jz done
|
||||
|
||||
//stdcall dll.GetProcAddress,[exp],eax
|
||||
dll_GetProcAddress(exp,EAX);
|
||||
$or eax,eax
|
||||
$jz loc03
|
||||
|
||||
$mov DSDWORD[esi-4],eax
|
||||
$jmp next
|
||||
@loc03:
|
||||
$mov DSDWORD[esp],0
|
||||
@done: $pop eax
|
||||
}
|
||||
|
||||
//proc dll.Init, dllentry:dword
|
||||
void dll_Init(dword dllentry)
|
||||
{
|
||||
$pushad
|
||||
EAX=#mem_Alloc;
|
||||
EBX=#mem_Free;
|
||||
ECX=#mem_ReAlloc;
|
||||
EDX=#dll_Load;
|
||||
DSDWORD [dllentry+4] stdcall ();
|
||||
$popad
|
||||
}
|
||||
|
||||
//proc dll.GetProcAddress, exp:dword,sz_name:dword
|
||||
dword dll_GetProcAddress(dword exp, sz_name)
|
||||
{
|
||||
$push esi
|
||||
$mov edx, exp
|
||||
$xor eax,eax
|
||||
@next: $or edx,edx
|
||||
$jz end_
|
||||
$cmp edx,0
|
||||
$jz end_
|
||||
strcmp(DSDWORD[EDX],sz_name);
|
||||
$test eax,eax
|
||||
$jz ok
|
||||
$add edx,8
|
||||
$jmp next
|
||||
@ok:
|
||||
$mov eax, DSDWORD[edx+4]
|
||||
@end_:
|
||||
$pop esi
|
||||
return EAX;
|
||||
}
|
||||
|
||||
|
||||
int load_dll2(dword dllname, import_table, byte need_init)
|
||||
{
|
||||
//dword dllentry=0;
|
||||
// load DLL
|
||||
$mov eax, 68
|
||||
$mov ebx, 19
|
||||
ECX=dllname;
|
||||
$int 0x40
|
||||
$test eax, eax
|
||||
$jz exit01
|
||||
|
||||
// initialize import
|
||||
$mov edx,eax
|
||||
ESI=import_table;
|
||||
|
||||
@import_loop01:
|
||||
$lodsd
|
||||
$test eax,eax
|
||||
$jz import_done01
|
||||
$push edx
|
||||
@import_find01:
|
||||
$mov ebx,DSDWORD[EDX]
|
||||
$test ebx, ebx
|
||||
$jz exit01
|
||||
$push eax
|
||||
@nex101:
|
||||
$mov cl,DSBYTE[EAX];
|
||||
$cmp cl,DSBYTE[EBX];
|
||||
$jnz import_find_next01
|
||||
$test cl,cl
|
||||
$jz import_found01
|
||||
$inc eax
|
||||
$inc ebx
|
||||
$jmp nex101
|
||||
@import_find_next01:
|
||||
$pop eax
|
||||
$add edx, 8
|
||||
$jmp import_find01
|
||||
@import_found01:
|
||||
$pop eax
|
||||
$mov eax,DSDWORD[edx+4]
|
||||
$mov DSDWORD[esi-4],eax
|
||||
$pop edx
|
||||
|
||||
$jmp import_loop01
|
||||
@import_done01:
|
||||
IF (need_init) dll_Init(EDX);
|
||||
return 0;
|
||||
@exit01:
|
||||
return -1;
|
||||
}
|
49
programs/cmm/lib/edit_box_lib.h
Normal file
49
programs/cmm/lib/edit_box_lib.h
Normal file
@ -0,0 +1,49 @@
|
||||
//BOX_LIB
|
||||
dword boxlib = #aEdit_box_lib; //Asper
|
||||
char aEdit_box_lib[22]="/sys/lib/box_lib.obj\0"; //Asper
|
||||
|
||||
dword edit_box_draw = #aEdit_box_draw;
|
||||
dword edit_box_key = #aEdit_box_key;
|
||||
dword edit_box_mouse = #aEdit_box_mouse;
|
||||
dword version_ed = #aVersion_ed;
|
||||
|
||||
dword am__ = 0x0;
|
||||
dword bm__ = 0x0;
|
||||
|
||||
char aEdit_box_draw[9] = "edit_box\0";
|
||||
char aEdit_box_key[13] = "edit_box_key\0";
|
||||
char aEdit_box_mouse[15] = "edit_box_mouse\0";
|
||||
char aVersion_ed[11] = "version_ed\0";
|
||||
|
||||
char aCheck_box_draw [15] = "check_box_draw\0";
|
||||
char aCheck_box_mouse [16] = "check_box_mouse\0";
|
||||
char aVersion_ch [11] = "version_ch\0";
|
||||
|
||||
char aOption_box_draw [16] = "option_box_draw\0";
|
||||
char aOption_box_mouse[17] = "option_box_mouse\0";
|
||||
char aVersion_op [11] = "version_op\0" ;
|
||||
|
||||
|
||||
struct edit_box{
|
||||
dword width, left, top, color, shift_color, focus_border_color, blur_border_color,
|
||||
text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old;
|
||||
};
|
||||
|
||||
//ed_width equ [edi] ;è¨à¨ ª®¬¯®¥â
|
||||
//ed_left equ [edi+4] ;¯®«®¦¥¨¥ ¯® ®á¨ å
|
||||
//ed_top equ [edi+8] ;¯®«®¦¥¨¥ ¯® ®á¨ ã
|
||||
//ed_color equ [edi+12] ;梥â ä® ª®¬¯®¥â
|
||||
//shift_color equ [edi+16] ;=0x6a9480
|
||||
//ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®¥â
|
||||
//ed_blur_border_color equ [edi+24] ;梥⠥ ªâ¨¢®£® ª®¬¯®¥â
|
||||
//ed_text_color equ [edi+28] ;梥â ⥪áâ
|
||||
//ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦® ¬ ªá¨¬ «ì® ¢¢¥áâ¨
|
||||
//ed_text equ [edi+36] ;㪠§ â¥«ì ¡ãä¥à
|
||||
//ed_flags equ [edi+40] ;ä« £¨
|
||||
//ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
|
||||
//ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à
|
||||
//ed_offset equ [edi+50] ;ᬥ饨¥
|
||||
//cl_curs_x equ [edi+54] ;¯à¥¤ë¤ãé ï ª®®à¤¨ â ªãàá®à ¯® å
|
||||
//cl_curs_y equ [edi+58] ;¯à¥¤ë¤ãé ï ª®®à¤¨ â ªãàá®à ¯® ã
|
||||
//ed_shift_pos equ [edi+62] ;¯®«®¦¥¨¥ ªãàá®à
|
||||
//ed_shift_pos_old equ [edi+66] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
182
programs/cmm/lib/encoding.h
Normal file
182
programs/cmm/lib/encoding.h
Normal file
@ -0,0 +1,182 @@
|
||||
|
||||
inline fastcall void wintodos( ESI)
|
||||
{
|
||||
while (BL=ESBYTE[ESI])
|
||||
{
|
||||
IF (BL>=192)
|
||||
{
|
||||
IF (BL>=240) ESBYTE[ESI] = BL - 16;
|
||||
ELSE ESBYTE[ESI] = BL - 64;
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
IF (BL==178) ESBYTE[ESI] = 73; //I
|
||||
IF (BL==179) ESBYTE[ESI] = 105; //i
|
||||
IF (BL==175) ESBYTE[ESI] = 244; //J
|
||||
IF (BL==191) ESBYTE[ESI] = 245; //j
|
||||
IF (BL==170) ESBYTE[ESI] = 242; //E
|
||||
IF (BL==186) ESBYTE[ESI] = 243; //e
|
||||
IF (BL==168) ESBYTE[ESI] = 240; //ð
|
||||
IF (BL==184) ESBYTE[ESI] = 'e'; //e
|
||||
IF (BL==180) ESBYTE[ESI] = 254; //ã
|
||||
IF ((BL==147) || (BL==148) || (BL==171) || (BL==187)) ESBYTE[ESI] = 34;
|
||||
IF ((BL==150) || (BL==151)) ESBYTE[ESI] = 45;
|
||||
}
|
||||
ESI++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
byte mas[66] = "î ¡æ¤¥ä£å¨©ª«¬®¯ïàáâ㦢ìë§èíéçꞀ<EFBFBD>–„…”ƒ•ˆ‰Š‹Œ<EFBFBD>Ž<EFBFBD>Ÿ<EFBFBD>‘’“†‚œ›‡˜<EFBFBD>™—š";
|
||||
inline fastcall void koitodos( EDI)
|
||||
{
|
||||
WHILE (BL=ESBYTE[EDI])
|
||||
{
|
||||
IF (BL >= 0xC0)
|
||||
{
|
||||
BL -= 0xC0;
|
||||
ESBYTE[EDI] = mas[BL];
|
||||
}
|
||||
//IF (ESBYTE[EDI]=='\244') ESBYTE[EDI]='i';
|
||||
EDI++;
|
||||
}
|
||||
}
|
||||
|
||||
//Asper, lev
|
||||
//uncomplete
|
||||
inline fastcall void utf8rutodos( ESI)
|
||||
{
|
||||
EDI=ESI;
|
||||
while (BL=ESBYTE[ESI])
|
||||
{
|
||||
IF (BL == 0xD0) || (BL == 0xD1) EDI--;
|
||||
else IF (BL == 0x81) && (ESBYTE[ESI-1]==0xD0) ESBYTE[EDI] = 0xF0; //ø
|
||||
else IF (BL == 0x91) && (ESBYTE[ESI-1]==0xD1) ESBYTE[EDI] = 0xF1; //ì
|
||||
//0xE2 0x80 - ñãðóïïèðîâàòü
|
||||
else IF (BL == 0xE2) && (ESBYTE[ESI+1]==0x80)
|
||||
SWITCH (ESBYTE[ESI+2])
|
||||
{
|
||||
case 0x93: //long defis
|
||||
CASE 0x94:
|
||||
{
|
||||
ESBYTE[EDI] = '-';
|
||||
ESI+=2;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xA2: //central point
|
||||
{
|
||||
ESBYTE[EDI] = '*';
|
||||
ESI+=2;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xA6: //ìíîãîòî÷èå
|
||||
{
|
||||
ESBYTE[EDI] = ESBYTE[EDI+1] = ESBYTE[EDI+2] = '.';
|
||||
EDI+=2;
|
||||
ESI+=2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
else IF (BL == 0xC2) //òàáëèöó ïåðåêîäèðîâîê?
|
||||
SWITCH(ESBYTE[ESI+1]) {
|
||||
case 0xAB: //"
|
||||
CASE 0xBB: //"
|
||||
{
|
||||
ESBYTE[EDI] = '\"';
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xB7: // _
|
||||
{
|
||||
ESBYTE[EDI] = '_';
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xA0: // Alt+160 - íåðàçáèâàþùèé ïðîáåë
|
||||
{
|
||||
ESBYTE[EDI] = ' ';
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xB0: // ãðàäóñ
|
||||
{
|
||||
ESBYTE[EDI] = '\29';
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xA9: // (c) --- âûëåò Î_î
|
||||
{
|
||||
ESBYTE[EDI] = 'c';
|
||||
//ESBYTE[EDI] = '(';
|
||||
//ESBYTE[EDI+1] = 'c';
|
||||
//ESBYTE[EDI+2] = ')';
|
||||
//EDI+=2;
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
CASE 0xAE: // (r)
|
||||
{
|
||||
ESBYTE[EDI] = 'r';
|
||||
//ESBYTE[EDI] = '(';
|
||||
//ESBYTE[EDI+1] = 'r';
|
||||
//ESBYTE[EDI+2] = ')';
|
||||
//EDI+=2;
|
||||
ESI++;
|
||||
BREAK;
|
||||
}
|
||||
}
|
||||
|
||||
ELSE IF (BL >= 0x90) && (BL <= 0xAF)
|
||||
{
|
||||
BL -= 0x10;
|
||||
ESBYTE[EDI] = BL;
|
||||
}
|
||||
ELSE IF (BL >= 0x80) && (BL <= 0x8F)
|
||||
{
|
||||
BL += 0x60;
|
||||
ESBYTE[EDI] = BL;
|
||||
}
|
||||
ELSE IF (BL >= 0xB0) && (BL <= 0xBF)
|
||||
{
|
||||
BL -= 0x10;
|
||||
ESBYTE[EDI] = BL;
|
||||
}
|
||||
ELSE ESBYTE[EDI] = BL;
|
||||
ESI++;
|
||||
EDI++;
|
||||
}
|
||||
WHILE (EDI<ESI)
|
||||
{
|
||||
ESBYTE[EDI] = ' ';
|
||||
EDI++;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
dword Hex2Symb(char* htmlcolor)
|
||||
{
|
||||
dword j=0, symbol=0;
|
||||
char ch=0x00;
|
||||
FOR (;j<2;j++)
|
||||
{
|
||||
ch=ESBYTE[htmlcolor+j];
|
||||
IF (ch==0x0d) || (ch=='\9') RETURN '';
|
||||
IF ((ch>='0') && (ch<='9')) ch -= '0';
|
||||
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
|
||||
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
|
||||
symbol = symbol*0x10 + ch;
|
||||
}
|
||||
wintodos(#symbol);
|
||||
AL=symbol;
|
||||
}
|
||||
|
||||
/*
|
||||
int hex2char(dword c)
|
||||
{
|
||||
if (c <=9)
|
||||
return (c+48);
|
||||
|
||||
return (c - 10 + 'a');
|
||||
}*/
|
33
programs/cmm/lib/figures.h
Normal file
33
programs/cmm/lib/figures.h
Normal file
@ -0,0 +1,33 @@
|
||||
void DrawRectangle(dword x,y,width,height,color1)
|
||||
{
|
||||
DrawBar(x,y,width,1,color1);
|
||||
DrawBar(x,y+height,width,1,color1);
|
||||
DrawBar(x,y,1,height,color1);
|
||||
DrawBar(x+width,y,1,height+1,color1);
|
||||
}
|
||||
|
||||
void DrawRectangle3D(dword x,y,width,height,color1,color2)
|
||||
{
|
||||
DrawBar(x,y,width+1,1,color1);
|
||||
DrawBar(x,y+1,1,height-1,color1);
|
||||
DrawBar(x+width,y+1,1,height,color2);
|
||||
DrawBar(x,y+height,width,1,color2);
|
||||
}
|
||||
|
||||
void DrawCaptButton(dword x,y,width,height,id,color,text,text_len)
|
||||
{
|
||||
DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF);
|
||||
WriteText(-text_len*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
|
||||
}
|
||||
|
||||
void DrawCircle(int x, y, r)
|
||||
{
|
||||
int i;
|
||||
float px=0, py=r, ii = r * 3.1415926 * 2;
|
||||
FOR (i = 0; i < ii; i++)
|
||||
{
|
||||
PutPixel(px + x, y - py, 0);
|
||||
px = py / r + px;
|
||||
py = -px / r + py;
|
||||
}
|
||||
}
|
208
programs/cmm/lib/file_system.h
Normal file
208
programs/cmm/lib/file_system.h
Normal file
@ -0,0 +1,208 @@
|
||||
struct f70{
|
||||
dword func;
|
||||
dword param1;
|
||||
dword param2;
|
||||
dword param3;
|
||||
dword param4;
|
||||
char rezerv;
|
||||
dword name;
|
||||
};
|
||||
|
||||
struct BDVK{
|
||||
dword attr;
|
||||
byte type_name;
|
||||
byte rez1, rez2, rez3;
|
||||
dword timecreate;
|
||||
dword datecreate;
|
||||
dword timelastaccess;
|
||||
dword datelastaccess;
|
||||
dword timelastedit;
|
||||
dword datelastedit;
|
||||
dword sizelo;
|
||||
dword sizehi;
|
||||
char name[518];
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////
|
||||
// Çàïóñê ïðîãðàììû //
|
||||
///////////////////////////
|
||||
f70 run_file_70;
|
||||
:int RunProgram(dword run_path, run_param)
|
||||
{
|
||||
run_file_70.func = 7;
|
||||
run_file_70.param1 =
|
||||
run_file_70.param3 =
|
||||
run_file_70.param4 =
|
||||
run_file_70.rezerv = 0;
|
||||
run_file_70.param2 = run_param;
|
||||
run_file_70.name = run_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#run_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Ñîçäàíèå ïàïêè //
|
||||
///////////////////////////
|
||||
f70 create_dir_70;
|
||||
:int CreateDir(dword new_folder_path)
|
||||
{
|
||||
create_dir_70.func = 9;
|
||||
create_dir_70.param1 =
|
||||
create_dir_70.param2 =
|
||||
create_dir_70.param3 =
|
||||
create_dir_70.param4 =
|
||||
create_dir_70.rezerv = 0;
|
||||
create_dir_70.name = new_folder_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#create_dir_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
// Óäàëåíèå ôàéëà/ïàïêè //
|
||||
////////////////////////////
|
||||
f70 del_file_70;
|
||||
:int DeleteFile(dword del_file_path)
|
||||
{
|
||||
del_file_70.func = 8;
|
||||
del_file_70.param1 =
|
||||
del_file_70.param2 =
|
||||
del_file_70.param3 =
|
||||
del_file_70.param4 =
|
||||
del_file_70.rezerv = 0;
|
||||
del_file_70.name = del_file_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#del_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
// Ïðî÷èòàòü ôàéë //
|
||||
////////////////////////////
|
||||
f70 read_file_70;
|
||||
:int ReadFile(dword read_pos, read_file_size, read_buffer, read_file_path)
|
||||
{
|
||||
read_file_70.func = 0;
|
||||
read_file_70.param1 = read_pos;
|
||||
read_file_70.param2 = 0;
|
||||
read_file_70.param3 = read_file_size;
|
||||
read_file_70.param4 = read_buffer;
|
||||
read_file_70.rezerv = 0;
|
||||
read_file_70.name = read_file_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#read_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
// Çàïèñàòü ôàéë //
|
||||
////////////////////////////
|
||||
f70 write_file_70;
|
||||
:int WriteFile(dword write_file_size, write_buffer, write_file_path)
|
||||
{
|
||||
write_file_70.func = 2;
|
||||
write_file_70.param1 = 0;
|
||||
write_file_70.param2 = 0;
|
||||
write_file_70.param3 = write_file_size;
|
||||
write_file_70.param4 = write_buffer;
|
||||
write_file_70.rezerv = 0;
|
||||
write_file_70.name = write_file_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#write_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
// Ïðî÷èòàòü ïàïêó //
|
||||
///////////////////////////
|
||||
f70 read_dir_70;
|
||||
:int ReadDir(dword file_count, read_buffer, dir_path)
|
||||
{
|
||||
read_dir_70.func = 1;
|
||||
read_dir_70.param1 =
|
||||
read_dir_70.param2 =
|
||||
read_dir_70.rezerv = 0;
|
||||
read_dir_70.param3 = file_count;
|
||||
read_dir_70.param4 = read_buffer;
|
||||
read_dir_70.name = dir_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#read_dir_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////
|
||||
// Ïàðàìåòðû ôàéëà //
|
||||
///////////////////////////
|
||||
f70 getinfo_file_70;
|
||||
BDVK getinfo_file_info;
|
||||
:dword GetFileInfo(dword file_path)
|
||||
{
|
||||
getinfo_file_70.func = 5;
|
||||
getinfo_file_70.param1 =
|
||||
getinfo_file_70.param2 =
|
||||
getinfo_file_70.param3 = 0;
|
||||
getinfo_file_70.param4 = #getinfo_file_info;
|
||||
getinfo_file_70.rezerv = 0;
|
||||
getinfo_file_70.name = file_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#getinfo_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////
|
||||
// Ñêîïèðîâàòü ôàéë //
|
||||
///////////////////////////
|
||||
:int CopyFile(dword copy_from, copy_in)
|
||||
{
|
||||
BDVK CopyFile_atr;
|
||||
dword cBufer=0;
|
||||
|
||||
if (! GetFileInfo(copy_from))
|
||||
{
|
||||
mem_Init();
|
||||
cBufer = mem_Alloc(CopyFile_atr.sizelo);
|
||||
if (! ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, copy_from))
|
||||
if (! WriteFile(CopyFile_atr.sizelo, cBufer, copy_in)) return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//Asper
|
||||
void ReadAttributes(dword read_buffer, file_path)
|
||||
{
|
||||
read_file_70.func = 5;
|
||||
read_file_70.param1 = 0;
|
||||
read_file_70.param2 = 0;
|
||||
read_file_70.param3 = 0;
|
||||
read_file_70.param4 = read_buffer;
|
||||
read_file_70.rezerv = 0;
|
||||
read_file_70.name = file_path;
|
||||
$mov eax,70
|
||||
$mov ebx,#read_file_70.func
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void SetCurDir( ECX)
|
||||
{
|
||||
$mov eax,30
|
||||
$mov ebx,1
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void GetCurDir( ECX, EDX)
|
||||
{
|
||||
$mov eax,30
|
||||
$mov ebx,2
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void notify(dword notify_param)
|
||||
{
|
||||
RunProgram("@notify", notify_param);
|
||||
}
|
463
programs/cmm/lib/kolibri.h
Normal file
463
programs/cmm/lib/kolibri.h
Normal file
@ -0,0 +1,463 @@
|
||||
//CODED by Veliant, Leency, Nable. GNU GPL licence.
|
||||
|
||||
#startaddress 0
|
||||
#code32 TRUE
|
||||
|
||||
char os_name[8] = {'M','E','N','U','E','T','0','1'};
|
||||
dword os_version = 0x00000001;
|
||||
dword start_addr = #main;
|
||||
dword final_addr = #stop+32;
|
||||
dword alloc_mem = #0x00100000;
|
||||
dword x86esp_reg = #0x00100000;
|
||||
dword I_Param = #param;
|
||||
dword I_Path = #program_path;
|
||||
char param[4096];
|
||||
char program_path[4096];
|
||||
|
||||
//Events
|
||||
#define evMouse 6
|
||||
#define evButton 3
|
||||
#define evKey 2
|
||||
#define evReDraw 1
|
||||
|
||||
#define OLD -1
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
#define NULL 0
|
||||
|
||||
//Button options
|
||||
#define BT_DEL 0x80000000
|
||||
#define BT_HIDE 0x40000000
|
||||
#define BT_NOFRAME 0x20000000
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
struct mouse
|
||||
{
|
||||
int x,y,lkm,pkm,hor,vert;
|
||||
void get();
|
||||
};
|
||||
|
||||
void mouse::get()
|
||||
{
|
||||
EAX = 37;
|
||||
EBX = 1;
|
||||
$int 0x40
|
||||
$mov ebx, eax
|
||||
$shr eax, 16
|
||||
$and ebx,0x0000FFFF
|
||||
x = EAX;
|
||||
y = EBX;
|
||||
EAX = 37;
|
||||
EBX = 2;
|
||||
$int 0x40
|
||||
$mov ebx, eax
|
||||
$and eax, 0x00000001
|
||||
$shr ebx, 1
|
||||
$and ebx, 0x00000001
|
||||
lkm = EAX;
|
||||
pkm = EBX;
|
||||
EAX = 37; //áªà®««
|
||||
EBX = 7;
|
||||
$int 0x40
|
||||
$mov ebx, eax
|
||||
$shr eax, 16
|
||||
$and ebx,0x0000FFFF
|
||||
//hor = EAX;
|
||||
vert = EBX;
|
||||
}
|
||||
|
||||
|
||||
struct system_colors
|
||||
{
|
||||
dword frame,grab,grab_button,grab_button_text,grab_text,
|
||||
work,work_button,work_button_text,work_text,work_graph;
|
||||
void get();
|
||||
};
|
||||
|
||||
void system_colors::get()
|
||||
{
|
||||
EAX = 48;
|
||||
EBX = 3;
|
||||
ECX = #frame;
|
||||
EDX = 40;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
inline fastcall dword WaitEvent()
|
||||
{
|
||||
$mov eax,10
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall dword CheckEvent()
|
||||
{
|
||||
$mov eax,11
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall dword WaitEventTimeout( EBX)
|
||||
{
|
||||
$mov eax,23
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall SetEventMask( EBX)
|
||||
{
|
||||
$mov eax,40
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall ScancodesGeting(){
|
||||
$mov eax,66
|
||||
$mov ebx,1
|
||||
$mov ecx,1 //᪠ª®¤ë
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall word GetKey() //+Gluk fix
|
||||
{
|
||||
$push edx
|
||||
@getkey:
|
||||
$mov eax,2
|
||||
$int 0x40
|
||||
$cmp eax,1
|
||||
$jne getkeyi
|
||||
$mov ah,dh
|
||||
$jmp getkeyii //jz?
|
||||
@getkeyi:
|
||||
$mov dh,ah
|
||||
$jmp getkey
|
||||
@getkeyii:
|
||||
$pop edx
|
||||
$shr eax,8
|
||||
}
|
||||
|
||||
|
||||
inline fastcall Pause( EBX)
|
||||
{
|
||||
$mov eax, 5
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall word GetButtonID()
|
||||
{
|
||||
$mov eax,17
|
||||
$int 0x40
|
||||
$shr eax,8
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
|
||||
inline fastcall dword GetFreeRAM()
|
||||
{
|
||||
$mov eax, 18
|
||||
$mov ebx, 16
|
||||
$int 0x40
|
||||
//return eax = ðàçìåð ñâîáîäíîé ïàìÿòè â êèëîáàéòàõ
|
||||
}
|
||||
|
||||
inline fastcall dword LoadDriver( ECX) //ECX - èìÿ äðàéâåðà
|
||||
{
|
||||
$mov eax, 68
|
||||
$mov ebx, 16
|
||||
$int 0x40
|
||||
//return 0 - íåóäà÷à, èíà÷å eax = õýíäë äðàéâåðà
|
||||
}
|
||||
|
||||
inline fastcall dword RuleDriver( ECX) //óêàçàòåëü íà óïðàâëÿþùóþ ñòðóêòóðó
|
||||
{
|
||||
$mov eax, 68
|
||||
$mov ebx, 17
|
||||
$int 0x40
|
||||
//return eax = îïðåäåëÿåòñÿ äðàéâåðîì
|
||||
}
|
||||
|
||||
struct proc_info
|
||||
{
|
||||
#define SelfInfo -1
|
||||
dword use_cpu;
|
||||
word pos_in_stack,num_slot,rezerv1;
|
||||
char name[11];
|
||||
char rezerv2;
|
||||
dword adress,use_memory,ID,left,top,width,height;
|
||||
word status_slot,rezerv3;
|
||||
dword work_left,work_top,work_width,work_height;
|
||||
char status_window;
|
||||
void GetInfo( ECX);
|
||||
byte reserved[1024-71];
|
||||
};
|
||||
|
||||
inline fastcall void GetProcessInfo( EBX, ECX)
|
||||
{
|
||||
$mov eax,9;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int GetPointOwner( EBX, ECX) //ebx=m.x, ecx=m.y
|
||||
{
|
||||
$mov eax,34
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int GetProcessSlot( ECX)
|
||||
{
|
||||
EAX = 18;
|
||||
EBX = 21;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int GetActiveProcess()
|
||||
{
|
||||
EAX = 18;
|
||||
EBX = 7;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int CreateThread( ECX,EDX)
|
||||
{
|
||||
$mov eax,51
|
||||
$mov ebx,1
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void SwitchToAnotherThread()
|
||||
{
|
||||
$mov eax,68
|
||||
$mov ebx,1
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int KillProcess( ECX)
|
||||
{
|
||||
$mov eax,18;
|
||||
$mov ebx,18;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
#define TURN_OFF 2
|
||||
#define REBOOT 3
|
||||
#define KERNEL 4
|
||||
inline fastcall int ExitSystem( ECX)
|
||||
{
|
||||
$mov eax, 18
|
||||
$mov ebx, 9
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall ExitProcess()
|
||||
{
|
||||
$mov eax,-1;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//eax = ÿçûê ñèñòåìû (1=eng, 2=fi, 3=ger, 4=rus)
|
||||
inline fastcall int GetSystemLanguage()
|
||||
{
|
||||
EAX = 26;
|
||||
EBX = 5;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall GetSkinHeight()
|
||||
{
|
||||
$push ebx
|
||||
$mov eax,48
|
||||
$mov ebx,4
|
||||
$int 0x40
|
||||
$pop ebx
|
||||
}
|
||||
|
||||
inline fastcall void SetSystemSkin( ECX)
|
||||
{
|
||||
EAX = 48;
|
||||
EBX = 8;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int GetScreenWidth()
|
||||
{
|
||||
$mov eax, 14
|
||||
$int 0x40
|
||||
$shr eax, 16
|
||||
}
|
||||
|
||||
inline fastcall int GetScreenHeight()
|
||||
{
|
||||
$mov eax, 14
|
||||
$int 0x40
|
||||
$and eax,0x0000FFFF
|
||||
}
|
||||
|
||||
inline fastcall dword LoadLibrary( ECX)
|
||||
{
|
||||
$mov eax, 68
|
||||
$mov ebx, 19
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall int TestBit( EAX, CL)
|
||||
{
|
||||
$shr eax,cl
|
||||
$and eax,1
|
||||
}
|
||||
|
||||
inline fastcall int PlaySpeaker( ESI)
|
||||
{
|
||||
$mov eax, 55
|
||||
$mov ebx, 55
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void debug( EDX)
|
||||
{
|
||||
$push ebx
|
||||
$push ecx
|
||||
$mov eax, 63
|
||||
$mov ebx, 1
|
||||
next_char:
|
||||
$mov ecx, DSDWORD[edx]
|
||||
$or cl, cl
|
||||
$jz done
|
||||
$int 0x40
|
||||
$inc edx
|
||||
$jmp next_char
|
||||
done:
|
||||
$mov cl, 13
|
||||
$int 0x40
|
||||
$mov cl, 10
|
||||
$int 0x40
|
||||
$pop ecx
|
||||
$pop ebx
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
void DefineAndDrawWindow(dword x,y, sizeX,sizeY, byte WindowType,dword WindowAreaColor, EDI, ESI)
|
||||
{
|
||||
EAX = 12; // function 12:tell os about windowdraw
|
||||
EBX = 1;
|
||||
$int 0x40
|
||||
|
||||
EAX = 0;
|
||||
EBX = x << 16 + sizeX;
|
||||
ECX = y << 16 + sizeY;
|
||||
EDX = WindowType << 24 | WindowAreaColor;
|
||||
$int 0x40
|
||||
|
||||
EAX = 12; // function 12:tell os about windowdraw
|
||||
EBX = 2;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall DeleteAllButtons()
|
||||
{
|
||||
EAX = 12; // function 12:tell os about windowdraw
|
||||
EBX = 1;
|
||||
$int 0x40
|
||||
EBX = 2;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall MoveSize( EBX,ECX,EDX,ESI)
|
||||
{
|
||||
$mov eax, 67
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void DrawTitle( ECX)
|
||||
{
|
||||
EAX = 71;
|
||||
EBX = 1;
|
||||
$int 0x40;
|
||||
}
|
||||
|
||||
void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
|
||||
{
|
||||
EAX = 4;
|
||||
EBX = x<<16+y;
|
||||
ECX = fontType<<24+color;
|
||||
$int 0x40;
|
||||
}
|
||||
|
||||
void WriteNumber(dword x,y,byte fontType, dword color, count, ECX)
|
||||
{
|
||||
EAX = 47;
|
||||
EBX = count<<16;
|
||||
EDX = x<<16+y;
|
||||
ESI = fontType<<24+color;
|
||||
$int 0x40;
|
||||
}
|
||||
|
||||
void CopyScreen(dword EBX, x, y, sizeX, sizeY)
|
||||
{
|
||||
EAX = 36;
|
||||
ECX = sizeX << 16 + sizeY;
|
||||
EDX = x << 16 + y;
|
||||
$int 0x40;
|
||||
}
|
||||
|
||||
dword GetPixelColor(dword x, x_size, y)
|
||||
{
|
||||
$mov eax, 35
|
||||
EBX= y*x_size+x;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void PutImage(dword EBX,w,h,x,y)
|
||||
{
|
||||
EAX = 7;
|
||||
ECX = w<<16+h;
|
||||
EDX = x<<16+y;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void _PutImage(dword x,y, w,h, EBX)
|
||||
{
|
||||
EAX = 7;
|
||||
ECX = w<<16+h;
|
||||
EDX = x<<16+y;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI)
|
||||
{
|
||||
EAX = 65;
|
||||
ECX = w<<16+h;
|
||||
EDX = x<<16+y;
|
||||
EBP = 0;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void PutPixel( EBX,ECX,EDX)
|
||||
{
|
||||
EAX=1;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void DrawBar(dword x,y,w,h,EDX)
|
||||
{
|
||||
EAX = 13;
|
||||
EBX = x<<16+w;
|
||||
ECX = y<<16+h;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
void DefineButton(dword x,y,w,h,EDX,ESI)
|
||||
{
|
||||
EAX = 8;
|
||||
EBX = x<<16+w;
|
||||
ECX = y<<16+h;
|
||||
$int 0x40
|
||||
}
|
||||
|
||||
inline fastcall void DeleteButton( EDX)
|
||||
{
|
||||
EAX = 8;
|
||||
EDX += BT_DEL;
|
||||
$int 0x40;
|
||||
}
|
104
programs/cmm/lib/libimg_lib.h
Normal file
104
programs/cmm/lib/libimg_lib.h
Normal file
@ -0,0 +1,104 @@
|
||||
//Asper
|
||||
|
||||
//library
|
||||
dword libimg = #alibimg;
|
||||
char alibimg[21] = "/sys/lib/libimg.obj\0";
|
||||
|
||||
dword libimg_init = #alibimg_init;
|
||||
dword img_is_img = #aimg_is_img;
|
||||
dword img_to_rgb2 = #aimg_to_rgb2;
|
||||
dword img_decode = #aimg_decode;
|
||||
dword img_destroy = #aimg_destroy;
|
||||
dword img_draw = #aimg_draw;
|
||||
//dword img_flip = #aimg_flip;
|
||||
//dword img_rotate = #aimg_rotate;
|
||||
|
||||
dword am1__ = 0x0;
|
||||
dword bm1__ = 0x0;
|
||||
|
||||
//import libimg , \
|
||||
char alibimg_init[9] = "lib_init\0";
|
||||
char aimg_is_img[11] = "img_is_img\0";
|
||||
char aimg_to_rgb2[12] = "img_to_rgb2\0";
|
||||
char aimg_decode[11] = "img_decode\0";
|
||||
char aimg_destroy[12] = "img_destroy\0";
|
||||
char aimg_draw[9] = "img_draw\0";
|
||||
//char aimg_flip[9] = "img_flip\0";
|
||||
//char aimg_rotate[11] = "img_rotate\0 ";
|
||||
|
||||
|
||||
|
||||
dword load_image(dword filename)
|
||||
{
|
||||
//align 4
|
||||
dword img_data=0;
|
||||
dword img_data_len=0;
|
||||
dword fh=0;
|
||||
dword image=0;
|
||||
|
||||
byte tmp_buf[40];
|
||||
$and img_data, 0
|
||||
//$mov eax, filename
|
||||
//$push eax
|
||||
//invoke file.open, eax, O_READ
|
||||
file_open stdcall (filename, O_READ);
|
||||
$or eax, eax
|
||||
$jnz loc05
|
||||
$stc
|
||||
return 0;
|
||||
@loc05:
|
||||
$mov fh, eax
|
||||
//invoke file.size
|
||||
file_size stdcall (filename);
|
||||
$mov img_data_len, ebx
|
||||
//stdcall mem.Alloc, ebx
|
||||
mem_Alloc(EBX);
|
||||
|
||||
$test eax, eax
|
||||
$jz error_close
|
||||
$mov img_data, eax
|
||||
//invoke file.read, [fh], eax, [img_data_len]
|
||||
file_read stdcall (fh, EAX, img_data_len);
|
||||
$cmp eax, -1
|
||||
$jz error_close
|
||||
$cmp eax, img_data_len
|
||||
$jnz error_close
|
||||
//invoke file.close, [fh]
|
||||
file_close stdcall (fh);
|
||||
$inc eax
|
||||
$jz error_
|
||||
//; img.decode checks for img.is_img
|
||||
//; //invoke img.is_img, [img_data], [img_data_len]
|
||||
//; $or eax, eax
|
||||
//; $jz exit
|
||||
//invoke img.decode, [img_data], [img_data_len], 0
|
||||
EAX=img_data;
|
||||
img_decode stdcall (EAX, img_data_len,0);
|
||||
$or eax, eax
|
||||
$jz error_
|
||||
$cmp image, 0
|
||||
$pushf
|
||||
$mov image, eax
|
||||
//call init_frame
|
||||
$popf
|
||||
//call update_image_sizes
|
||||
mem_Free(img_data);//free_img_data(img_data);
|
||||
$clc
|
||||
return image;
|
||||
|
||||
@error_free:
|
||||
//invoke img.destroy, [image]
|
||||
img_destroy stdcall (image);
|
||||
$jmp error_
|
||||
|
||||
@error_pop:
|
||||
$pop eax
|
||||
$jmp error_
|
||||
@error_close:
|
||||
//invoke file.close, [fh]
|
||||
file_close stdcall (fh);
|
||||
@error_:
|
||||
mem_Free(img_data);
|
||||
$stc
|
||||
return 0;
|
||||
}
|
36
programs/cmm/lib/libio_lib.h
Normal file
36
programs/cmm/lib/libio_lib.h
Normal file
@ -0,0 +1,36 @@
|
||||
//Asper
|
||||
|
||||
//library
|
||||
dword libio = #alibio;
|
||||
char alibio[21] = "/sys/lib/libio.obj\0"; //"libio.obj\0";
|
||||
|
||||
dword libio_init = #alibio_init;
|
||||
dword file_size = #afile_size;
|
||||
dword file_open = #afile_open;
|
||||
dword file_read = #afile_read;
|
||||
dword file_close = #afile_close;
|
||||
|
||||
dword am2__ = 0x0;
|
||||
dword bm2__ = 0x0;
|
||||
|
||||
|
||||
//import libio , \
|
||||
char alibio_init[9] = "lib_init\0";
|
||||
char afile_size[11] = "file_size\0";
|
||||
char afile_open[12] = "file_open\0";
|
||||
char afile_read[11] = "file_read\0";
|
||||
char afile_close[12] = "file_close\0";
|
||||
|
||||
//align 4
|
||||
//dword fh=0;
|
||||
|
||||
#define O_BINARY 0
|
||||
#define O_READ 1
|
||||
#define O_WRITE 2
|
||||
#define O_CREATE 4
|
||||
#define O_SHARE 8
|
||||
#define O_TEXT 16
|
||||
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
#define SEEK_END 2
|
203
programs/cmm/lib/mem.h
Normal file
203
programs/cmm/lib/mem.h
Normal file
@ -0,0 +1,203 @@
|
||||
//mem.Init
|
||||
dword mem_Init()
|
||||
{
|
||||
$push ebx
|
||||
$mov eax, 68
|
||||
$mov ebx, 11
|
||||
$int 0x40
|
||||
|
||||
$pop ebx
|
||||
return EAX;
|
||||
}
|
||||
|
||||
//mem.Alloc
|
||||
dword mem_Alloc(dword size)
|
||||
{
|
||||
$push ebx
|
||||
$push ecx
|
||||
$mov eax, 68
|
||||
$mov ebx, 12
|
||||
$mov ecx, size
|
||||
$int 0x40
|
||||
|
||||
$pop ecx
|
||||
$pop ebx
|
||||
return EAX;
|
||||
}
|
||||
|
||||
//mem.ReAlloc
|
||||
stdcall dword mem_ReAlloc(dword mptr, size)
|
||||
{
|
||||
$push ebx
|
||||
$push ecx
|
||||
$push edx
|
||||
$mov eax, 68
|
||||
$mov ebx, 20
|
||||
$mov ecx, size
|
||||
$mov edx, mptr
|
||||
$int 0x40
|
||||
|
||||
$pop edx
|
||||
$pop ecx
|
||||
$pop ebx
|
||||
return EAX;
|
||||
}
|
||||
|
||||
//mem.Free
|
||||
void mem_Free(dword mptr)
|
||||
{
|
||||
$push eax
|
||||
$push ebx
|
||||
$push ecx
|
||||
$mov eax, 68
|
||||
$mov ebx, 13
|
||||
$mov ecx, mptr
|
||||
$test ecx, ecx
|
||||
$jz end0
|
||||
$int 0x40
|
||||
@end0:
|
||||
$pop ecx
|
||||
$pop ebx
|
||||
$pop eax
|
||||
}
|
||||
|
||||
//stdcall dword ??
|
||||
inline fastcall mem_Move( EDI, ESI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EAX, ECX
|
||||
CMP EDI, ESI
|
||||
JG L1
|
||||
JE L2
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
REP MOVSB
|
||||
JMP SHORT L2
|
||||
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
|
||||
LEA EDI, DSDWORD[ EDI+ECX-4]
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
STD
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
ADD ESI, 3
|
||||
ADD EDI, 3
|
||||
REP MOVSB
|
||||
CLD
|
||||
L2:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*:void fastcall memsetz( EDI, ECX)
|
||||
{
|
||||
asm {
|
||||
XOR EAX, EAX
|
||||
MOV EDX, ECX
|
||||
SHR ECX, 2
|
||||
REP STOSD
|
||||
MOV ECX, EDX
|
||||
AND ECX, 3
|
||||
REP STOSB
|
||||
}
|
||||
}
|
||||
|
||||
:void fastcall memset( EDI, ECX, AL)
|
||||
{
|
||||
asm {
|
||||
MOV AH, AL
|
||||
MOVZX EDX, AX
|
||||
SHL EAX, 16
|
||||
OR EAX, EDX
|
||||
MOV EDX, ECX
|
||||
SHR ECX, 2
|
||||
REP STOSD
|
||||
MOV ECX, EDX
|
||||
AND ECX, 3
|
||||
REP STOSB
|
||||
}
|
||||
}
|
||||
|
||||
:void fastcall memcpy( EDI, ESI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EDX, ECX
|
||||
SHR ECX, 2
|
||||
REP MOVSD
|
||||
MOV ECX, EDX
|
||||
AND ECX, 3
|
||||
REP MOVSB
|
||||
}
|
||||
}
|
||||
|
||||
:void fastcall memsetd( EDI, ECX, EAX)
|
||||
{
|
||||
asm {
|
||||
REP STOSD
|
||||
}
|
||||
}
|
||||
|
||||
:void fastcall memcpyd( EDI, ESI, ECX)
|
||||
{
|
||||
asm {
|
||||
REP MOVSD
|
||||
}
|
||||
}
|
||||
|
||||
:void fastcall memmov( EDI, ESI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EAX, ECX
|
||||
CMP EDI, ESI
|
||||
JG L1
|
||||
JE L2
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
REP MOVSB
|
||||
JMP SHORT L2
|
||||
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
|
||||
LEA EDI, DSDWORD[ EDI+ECX-4]
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
STD
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
ADD ESI, 3
|
||||
ADD EDI, 3
|
||||
REP MOVSB
|
||||
CLD
|
||||
L2:
|
||||
}
|
||||
}
|
||||
|
||||
:long fastcall memcmp( ESI, EDI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EAX, ECX
|
||||
SHR ECX, 2
|
||||
REPE CMPSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
REPE CMPSB
|
||||
XOR EAX, EAX
|
||||
XOR ECX, ECX
|
||||
MOV AL, DSBYTE[ ESI-1]
|
||||
MOV CL, DSBYTE[ EDI-1]
|
||||
SUB EAX, ECX
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
/*#define memzset memsetz
|
||||
#define memset0 memsetz
|
||||
#define mem0set memsetz
|
||||
#define memset32 memsetd
|
||||
#define memcpy32 memcpyd*/
|
66
programs/cmm/lib/memory.h
Normal file
66
programs/cmm/lib/memory.h
Normal file
@ -0,0 +1,66 @@
|
||||
#code32 TRUE
|
||||
|
||||
inline fastcall dword malloc(dword ECX){
|
||||
dword size, heap;
|
||||
#speed
|
||||
size = ECX;
|
||||
EAX = 68;
|
||||
EBX = 11;
|
||||
$int 0x40;
|
||||
heap = EAX;
|
||||
IF (size<=heap)
|
||||
{
|
||||
EAX = 68;
|
||||
EBX = 12;
|
||||
ECX = size;
|
||||
$int 0x40;
|
||||
}
|
||||
ELSE EAX=-1;
|
||||
#codesize
|
||||
}
|
||||
|
||||
inline fastcall dword free(dword ECX){
|
||||
#speed
|
||||
EAX = 68;
|
||||
EBX = 13;
|
||||
$int 0x40;
|
||||
#codesize
|
||||
}
|
||||
|
||||
inline fastcall dword realloc(dword ECX, EDX){
|
||||
#speed
|
||||
EAX = 68;
|
||||
EBX = 20;
|
||||
$int 0x40;
|
||||
#codesize
|
||||
}
|
||||
|
||||
inline fastcall memmov( EDI, ESI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EAX, ECX
|
||||
CMP EDI, ESI
|
||||
JG L1
|
||||
JE L2
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
REP MOVSB
|
||||
JMP SHORT L2
|
||||
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
|
||||
LEA EDI, DSDWORD[ EDI+ECX-4]
|
||||
SAR ECX, 2
|
||||
JS L2
|
||||
STD
|
||||
REP MOVSD
|
||||
MOV ECX, EAX
|
||||
AND ECX, 3
|
||||
ADD ESI, 3
|
||||
ADD EDI, 3
|
||||
REP MOVSB
|
||||
CLD
|
||||
L2:
|
||||
}
|
||||
}
|
55
programs/cmm/lib/random.h
Normal file
55
programs/cmm/lib/random.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*******************************************************************************
|
||||
|
||||
MenuetOS MineSweeper
|
||||
Copyright (C) 2003 Ivan Poddubny
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
dword generator; // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
|
||||
|
||||
inline fastcall int random( ECX)
|
||||
// get pseudo-random number - ïîëó÷èòü ïñåâäîñëó÷àéíîå ÷èñëî
|
||||
{
|
||||
$push ebx
|
||||
|
||||
$rdtsc // eax & edx
|
||||
$xor eax,edx
|
||||
$not eax
|
||||
|
||||
EBX = generator;
|
||||
$ror ebx,3
|
||||
$xor ebx,0xdeadbeef
|
||||
EBX += EAX;
|
||||
generator = EBX;
|
||||
|
||||
EAX += EBX;
|
||||
EAX = EAX % ECX;
|
||||
|
||||
$pop ebx
|
||||
}
|
||||
|
||||
inline fastcall randomize()
|
||||
// initialize random number generator - èíèöèàëèçèðîâàòü ãåíåðàòîð ñëó÷àéíûõ ÷èñåë
|
||||
{
|
||||
asm
|
||||
{
|
||||
mov eax,3
|
||||
int 0x40
|
||||
ror eax,16
|
||||
}
|
||||
generator = EAX;
|
||||
}
|
95
programs/cmm/lib/scroll_lib.h
Normal file
95
programs/cmm/lib/scroll_lib.h
Normal file
@ -0,0 +1,95 @@
|
||||
//lev
|
||||
//:dword boxlib = #abox_lib;
|
||||
:char abox_lib[]="/sys/lib/box_lib.obj";
|
||||
|
||||
:char aboxlib_init[] = "lib_init";
|
||||
:char aScrollbar_v_draw = "scrollbar_v_draw";
|
||||
:char aScrollbar_v_mouse = "scrollbar_v_mouse";
|
||||
:char aScrollbar_h_draw = "scrollbar_h_draw";
|
||||
:char aScrollbar_h_mouse = "scrollbar_h_mouse";
|
||||
:char aVersion_scrollbar = "version_scrollbar";
|
||||
|
||||
dword boxlib_init = #aboxlib_init;
|
||||
dword scrollbar_v_draw = #aScrollbar_v_draw;
|
||||
dword scrollbar_v_mouse = #aScrollbar_v_mouse;
|
||||
dword scrollbar_h_draw = #aScrollbar_h_draw;
|
||||
dword scrollbar_h_mouse = #aScrollbar_h_mouse;
|
||||
:dword version_scrollbar = #aVersion_scrollbar;
|
||||
|
||||
dword sc_am__ = 0x0;
|
||||
dword sc_bm__ = 0x0;
|
||||
|
||||
struct scroll_bar
|
||||
{
|
||||
//scroll_bar:
|
||||
word size_x,// equ [edi]
|
||||
start_x,// equ [edi+2]
|
||||
size_y,// equ [edi+4]
|
||||
start_y;// equ [edi+6]
|
||||
dword btn_height, // equ [edi+8]
|
||||
type,// equ [edi+12]
|
||||
max_area,// equ [edi+16]
|
||||
cur_area,// equ [edi+20]
|
||||
position,// equ [edi+24]
|
||||
bckg_col,// equ [edi+28]
|
||||
frnt_col,// equ [edi+32]
|
||||
line_col,// equ [edi+36]
|
||||
redraw;// equ [edi+40]
|
||||
word delta,// equ [edi+44]
|
||||
delta2,// equ [edi+46]
|
||||
r_size_x,// equ [edi+48]
|
||||
r_start_x,// equ [edi+50]
|
||||
r_size_y,// equ [edi+52]
|
||||
r_start_y;// equ [edi+54]
|
||||
dword m_pos,// equ [edi+56]
|
||||
m_pos_2,// equ [edi+60]
|
||||
m_keys,// equ [edi+64]
|
||||
run_size,// equ [edi+68]
|
||||
position2,// equ [edi+72]
|
||||
work_size,// equ [edi+76]
|
||||
all_redraw,// equ [edi+80]
|
||||
ar_offset;// equ [edi+84]
|
||||
};
|
||||
|
||||
/*scroll_bar scroll1 = {
|
||||
18,//word size_x,
|
||||
200, //start_x,
|
||||
398, //size_y,
|
||||
44,//start_y;
|
||||
18,//dword btn_height,
|
||||
0,//type,
|
||||
115,//max_area, (100+cur_area)
|
||||
15,//cur_area,
|
||||
0,//position,
|
||||
0xeeeeee,//bckg_col,
|
||||
0xD2CED0,//frnt_col,
|
||||
0x555555,//line_col,
|
||||
0,//redraw;
|
||||
0,//word delta,
|
||||
0,//delta2,
|
||||
0,//r_size_x,
|
||||
0,//r_start_x,
|
||||
0,//r_size_y,
|
||||
0,//r_start_y;
|
||||
0,//dword m_pos,
|
||||
0,//m_pos_2,
|
||||
0,//m_keys,
|
||||
0,//run_size,
|
||||
0,//position2,
|
||||
0,//work_size,
|
||||
1,//all_redraw,
|
||||
1//ar_offset;
|
||||
};*/
|
||||
|
||||
//btn_height - ¢ëá®â ¡®ª®¢ëå ª®¯®ª («¥¢ ï ¨ ¯à ¢ ï ¤«ï £®à¨§. ¨ ¢¥àåïï ¨ ¨¦ïï ¤«ï ¢¥àâ.)
|
||||
//type - type - 0-1-2, ®áâ «ìë¥ ¢ë£«ï¤ïâ ª ª 0.
|
||||
//max_area - ®¡« áâì ¬ ªá¨¬ «ì ï, ªâã «ì® ª®£¤ ¥ ¢« §¨â ¢ ®â®¡à ¦ ¥¬ãî ®¡« áâì, â.¥. á«ãç © ªâ¨¢®á⨠ª®¬¯®¥â (¢¥áì ¬ ªá¨¬ «ìë© à §¬¥à ¤®ªã¬¥â )
|
||||
//cur_area - à §¬¥à ¡¥£ãª //®¡« áâì ®â®¡à ¦ ¥¬ ï (ª ª ï ç áâì ¤®ªã¬¥â ¢« §¨â ¢ íªà )
|
||||
//position - ¯®§¨æ¨ï ¡¥£ãª ¨§¬¥ï¥¬ ï ®â 0 ¤® § 票ï (max_area-cur_area)
|
||||
//bckg_col - 梥⠢ãâ२©, ¯à¨¬¥ï¥âáï ¤«ï ®¡« á⥩ ¬¥¦¤ã ¡¥£ãª®¬ ¨ ª®ª ¬¨
|
||||
//frnt_col - 梥â àã¦ë©, ¯à¨¬¥ï¥âáï ¤«ï ®¡« á⥩ ®â«¨çëå ®â ¯à¨¬¥ï¥¬ëå ¢ bckg_col
|
||||
//line_col - 梥⠫¨¨© ¨ áâ५®ª ª®¯ª å
|
||||
//redraw - ¨¤¨ª â®à ¥®¡å®¤¨¬®á⨠¯¥à¥à¨á®¢ª¨ ã¯à ¢«ï¥¬®© ®¡« á⨠ãç¨âë¢ ï ¨§¬¥¥¨¥ position ¨ cur_area
|
||||
//delta2 - ¨¤¨ª â®à § å¢ â 䮪ãá áªà®««¡ ஬ (㤥ঠ¨¥ ¡¥£ãª )
|
||||
//all_redraw - ä« £ ãáâ ¢«¨¢ ¥¬ë© ¢ 1 ¤«ï ¯¥à¥à¨á®¢ª¨ ¢á¥£® ª®¬¯®¥â , ¥á«¨ ¯®áâ ¢¨âì 0, â® ¯¥à¥à¨á®¢ª ¯à®¨á室¨â ⮫쪮 ¤«ï ®¡« á⨠¡¥£ãª . ‚¢¥¤¥® ¤«ï ãáª®à¥¨ï ®âà¨á®¢ª¨, ¯®áª®«ìªã ¥ ¢® ¢á¥å á«ãç ïå âॡã¥âáï ¯à¨ã¤¨â¥ì® ®âà¨á®¢ë¢ âì ¢á¥ ç á⨠ª®¬¯®¥â . Š®£¤ ¢ë§ë¢ ¥âáï ¯® ᮡëâ¨î ¬ëè¨ ¢á¥£¤ ®âà¨á®¢ë¢ ¥âáï á ¬¨¬ ª®¬¯®¥â®¬ á® § 票¥¬ 0.
|
||||
//ar_offset - ¢¥«¨ç¨ á¬¥é¥¨ï ¯à¨ ®¤®ªà ⮬ ¦ ⨨ ¡®ª®¢®© ª®¯ª¨.
|
336
programs/cmm/lib/strings.h
Normal file
336
programs/cmm/lib/strings.h
Normal file
@ -0,0 +1,336 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// strcmp( ESI, EDI)
|
||||
// strlen( EDI)
|
||||
// strcpy( EDI, ESI)
|
||||
// strcat( EDI, ESI)
|
||||
// strchr( ESI,BL)
|
||||
// strrchr( ESI,BL)
|
||||
// strstr( EBX, EDX)
|
||||
// itoa( ESI)
|
||||
// atoi( EAX)
|
||||
// strupr( ESI)
|
||||
// strlwr( ESI) ----- âîçìîæíî íå ïîääåðæèâàåò êèðèëëèöó
|
||||
// strttl( EDX)
|
||||
// strtok( ESI)
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
inline fastcall signed int strcmp( ESI, EDI)
|
||||
{
|
||||
loop()
|
||||
{
|
||||
IF (DSBYTE[ESI]<DSBYTE[EDI]) RETURN -1;
|
||||
IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1;
|
||||
IF (DSBYTE[ESI]=='\0') RETURN 0;
|
||||
ESI++;
|
||||
EDI++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline fastcall signed int strncmp( ESI, EDI, ECX)
|
||||
{
|
||||
asm {
|
||||
MOV EBX, EDI
|
||||
XOR EAX, EAX
|
||||
MOV EDX, ECX
|
||||
OR ECX, ECX
|
||||
JE L1
|
||||
REPNE SCASB
|
||||
SUB EDX, ECX
|
||||
MOV ECX, EDX
|
||||
MOV EDI, EBX
|
||||
XOR EBX, EBX
|
||||
REPE CMPSB
|
||||
MOV AL, DSBYTE[ ESI-1]
|
||||
MOV BL, DSBYTE[ EDI-1]
|
||||
SUB EAX, EBX
|
||||
L1:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
inline fastcall signed int strcmpi( ESI,EDI)
|
||||
uses EBX
|
||||
{
|
||||
do{
|
||||
$lodsb
|
||||
IF(AL>='a')&&(AL<='z')AL-=0x20;
|
||||
BL=DSBYTE[(E)DI];
|
||||
IF(BL>='a')&&(BL<='z')BL-=0x20;
|
||||
AL-=BL;
|
||||
IF(!ZEROFLAG)BREAK;
|
||||
(E)DI++;
|
||||
}while(BL!=0);
|
||||
}
|
||||
|
||||
inline char STRNCMPI((E)SI,(E)DI,(E)CX)
|
||||
{
|
||||
(E)AX=0;
|
||||
LOOPNZ((E)CX){
|
||||
$lodsb
|
||||
IF(AL>='a')&&(AL<='z')AL-=0x20;
|
||||
AH=DSBYTE[EDI];
|
||||
IF(AH>='a')&&(AH<='z')AH-=0x20;
|
||||
EDI++;
|
||||
IF(AL==0)||(AH==0)||(AL!=AH)BREAK;
|
||||
}
|
||||
AL=AL-AH;
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
inline fastcall unsigned int strlen( EDI)
|
||||
{
|
||||
$xor eax, eax
|
||||
$mov ecx, -1
|
||||
$REPNE $SCASB
|
||||
EAX-=2+ECX;
|
||||
}
|
||||
|
||||
|
||||
inline fastcall strcpy( EDI, ESI)
|
||||
{
|
||||
$cld
|
||||
l2:
|
||||
$lodsb
|
||||
$stosb
|
||||
$test al,al
|
||||
$jnz l2
|
||||
}
|
||||
|
||||
|
||||
inline fastcall strcat( EDI, ESI)
|
||||
{
|
||||
asm {
|
||||
mov ebx, edi
|
||||
xor ecx, ecx
|
||||
xor eax, eax
|
||||
dec ecx
|
||||
repne scasb
|
||||
dec edi
|
||||
mov edx, edi
|
||||
mov edi, esi
|
||||
xor ecx, ecx
|
||||
xor eax, eax
|
||||
dec ecx
|
||||
repne scasb
|
||||
xor ecx, 0ffffffffh
|
||||
mov edi, edx
|
||||
mov edx, ecx
|
||||
mov eax, edi
|
||||
shr ecx, 2
|
||||
rep movsd
|
||||
mov ecx, edx
|
||||
and ecx, 3
|
||||
rep movsb
|
||||
mov eax, ebx
|
||||
}
|
||||
}
|
||||
|
||||
dword itoa( ESI)
|
||||
{
|
||||
unsigned char buffer[11];
|
||||
EDI = #buffer;
|
||||
ECX = 10;
|
||||
if (ESI < 0)
|
||||
{
|
||||
$mov al, '-'
|
||||
$stosb
|
||||
$neg esi
|
||||
}
|
||||
|
||||
$mov eax, esi
|
||||
$push -'0'
|
||||
f2:
|
||||
$xor edx, edx
|
||||
$div ecx
|
||||
$push edx
|
||||
$test eax, eax
|
||||
$jnz f2
|
||||
f3:
|
||||
$pop eax
|
||||
$add al, '0'
|
||||
$stosb
|
||||
$jnz f3
|
||||
|
||||
$mov al, '\0'
|
||||
$stosb
|
||||
|
||||
return #buffer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
inline fastcall dword atoi( EDI)
|
||||
{
|
||||
ESI=EDI;
|
||||
IF(DSBYTE[ESI]=='-')ESI++;
|
||||
EAX=0;
|
||||
BH=AL;
|
||||
do{
|
||||
BL=DSBYTE[ESI]-'0';
|
||||
EAX=EAX*10+EBX;
|
||||
ESI++;
|
||||
}while(DSBYTE[ESI]>0);
|
||||
IF(DSBYTE[EDI]=='-') -EAX;
|
||||
}
|
||||
|
||||
|
||||
inline fastcall signed int strchr( ESI,BL)
|
||||
{
|
||||
int jj=0;
|
||||
do{
|
||||
jj++;
|
||||
$lodsb
|
||||
IF(AL==BL) return jj;
|
||||
} while(AL!=0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
inline fastcall signed int strrchr( ESI,BL)
|
||||
{
|
||||
int jj=0, last=0;
|
||||
do{
|
||||
jj++;
|
||||
$lodsb
|
||||
IF(AL==BL) last=jj;
|
||||
} while(AL!=0);
|
||||
return last;
|
||||
}
|
||||
|
||||
|
||||
inline fastcall strupr( ESI)
|
||||
{
|
||||
do{
|
||||
AL=DSBYTE[ESI];
|
||||
IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f;
|
||||
IF (AL>=160) && (AL<=175) DSBYTE[ESI] = AL - 32; //à-ï
|
||||
IF (AL>=224) && (AL<=239) DSBYTE[ESI] = AL - 80; //à-ï
|
||||
ESI++;
|
||||
}while(AL!=0);
|
||||
}
|
||||
|
||||
inline fastcall strlwr( ESI)
|
||||
{
|
||||
do{
|
||||
$LODSB
|
||||
IF(AL>='A')&&(AL<='Z'){
|
||||
AL+=0x20;
|
||||
DSBYTE[ESI-1]=AL;
|
||||
CONTINUE;
|
||||
}
|
||||
}while(AL!=0);
|
||||
}
|
||||
|
||||
inline fastcall strttl( EDX)
|
||||
{
|
||||
AL=DSBYTE[EDX];
|
||||
IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f;
|
||||
IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32; //à-ï
|
||||
IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80; //à-ï
|
||||
do{
|
||||
EDX++;
|
||||
AL=DSBYTE[EDX];
|
||||
IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;}
|
||||
IF(AL>='€')&&(AL<='<EFBFBD>')DSBYTE[EDX]=AL|0x20; // -¯
|
||||
IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80; //à-ï
|
||||
}while(AL!=0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
inline fastcall dword strstr( EBX, EDX)
|
||||
{
|
||||
asm {
|
||||
MOV EDI, EDX
|
||||
XOR ECX, ECX
|
||||
XOR EAX, EAX
|
||||
DEC ECX
|
||||
REPNE SCASB
|
||||
NOT ECX
|
||||
DEC ECX
|
||||
JE LS2
|
||||
MOV ESI, ECX
|
||||
XOR ECX, ECX
|
||||
MOV EDI, EBX
|
||||
DEC ECX
|
||||
REPNE SCASB
|
||||
NOT ECX
|
||||
SUB ECX, ESI
|
||||
JBE LS2
|
||||
MOV EDI, EBX
|
||||
LEA EBX, DSDWORD[ ESI-1]
|
||||
LS1: MOV ESI, EDX
|
||||
LODSB
|
||||
REPNE SCASB
|
||||
JNE LS2
|
||||
MOV EAX, ECX
|
||||
PUSH EDI
|
||||
MOV ECX, EBX
|
||||
REPE CMPSB
|
||||
POP EDI
|
||||
MOV ECX, EAX
|
||||
JNE LS1
|
||||
LEA EAX, DSDWORD[ EDI-1]
|
||||
JMP SHORT LS3
|
||||
LS2: XOR EAX, EAX
|
||||
LS3:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* strtok( LPSTR dest, src, divs);
|
||||
src - óêàçàòåëü íà èñõîäíóþ ñòðîêó èëè ðåçóëüòàò ïðåäûäóùåãî âûçîâà
|
||||
dest - óêàçàòåëü íà áóôåð, êóäà áóäåò ñêîïèðîâàíî ñëîâî
|
||||
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè
|
||||
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò
|
||||
íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå
|
||||
â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */
|
||||
|
||||
inline fastcall dword strtok( EDX, ESI, EBX)
|
||||
{
|
||||
asm {
|
||||
XOR ECX, ECX
|
||||
MOV EDI, EBX
|
||||
XOR EAX, EAX
|
||||
DEC ECX
|
||||
REPNE SCASB
|
||||
XOR ECX, 0FFFFFFFFH
|
||||
DEC ECX
|
||||
PUSH ECX
|
||||
L1: LODSB
|
||||
OR AL, AL
|
||||
JZ L4
|
||||
MOV EDI, EBX
|
||||
MOV ECX, SSDWORD[ ESP]
|
||||
REPNE SCASB
|
||||
JZ L1
|
||||
DEC ESI
|
||||
L2: LODSB
|
||||
MOV EDI, EBX
|
||||
MOV ECX, SSDWORD[ ESP]
|
||||
REPNE SCASB
|
||||
JZ L3
|
||||
MOV DSBYTE[ EDX], AL
|
||||
INC EDX
|
||||
JMP SHORT L2
|
||||
L3: MOV EAX, ESI
|
||||
L4: POP ECX
|
||||
} DSBYTE[ EDX] = 0;
|
||||
}
|
||||
|
||||
#define strncpy strcpyn
|
||||
#define strnmov strmovn
|
||||
#define stricmp strcmpi
|
||||
#define strcmpn strncmp
|
||||
#define strncmpi strcmpni
|
||||
#define stricmpn strcmpni
|
||||
#define strnicmp strcmpni
|
||||
#define strincmp strcmpni
|
||||
#define strcmpin strcmpni
|
29
programs/cmm/lib/truetype.h
Normal file
29
programs/cmm/lib/truetype.h
Normal file
@ -0,0 +1,29 @@
|
||||
//ýòî âñòàâèòü ïîñëå çàãðóçêè îñíîâíûõ áèáëèîòåê
|
||||
|
||||
char fontinfo[28];
|
||||
|
||||
dword libtruetype = #att;
|
||||
|
||||
char att[] = "/sys/lib/truetype.obj"; //"truetype.obj\0";
|
||||
|
||||
dword truetype = #att_truetype;
|
||||
dword get_length = #att_get_length;
|
||||
dword get_width = #att_get_width;
|
||||
dword text_out = #att_text_out;
|
||||
dword init_font = #att_init_font;
|
||||
|
||||
dword am3__ = 0x0;
|
||||
dword bm3__ = 0x0;
|
||||
|
||||
//import libimg , \
|
||||
|
||||
char att_truetype[] = "truetype";
|
||||
char att_get_length[] = "get_length";
|
||||
char att_get_width[] = "get_width";
|
||||
char att_text_out[] = "text_out";
|
||||
char att_init_font[] = "init_font";
|
||||
|
||||
//load_dll2(libtruetype, #truetype,0);
|
||||
|
||||
//à ýòî - â ìîìåíò îòðèñîâêè îêíà
|
||||
//text_out stdcall (#text, -1, 40, 0xFF0000, 100, 100);
|
6
programs/cmm/new_end/compile.bat
Normal file
6
programs/cmm/new_end/compile.bat
Normal file
@ -0,0 +1,6 @@
|
||||
..\C--\C-- end.c
|
||||
del end
|
||||
rename end.com end
|
||||
..\C--\kpack end
|
||||
pause
|
||||
del warning.txt
|
161
programs/cmm/new_end/end.c
Normal file
161
programs/cmm/new_end/end.c
Normal file
@ -0,0 +1,161 @@
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\figures.h"
|
||||
#include "..\lib\strings.h"
|
||||
#include "..\lib\random.h"
|
||||
#include "..\lib\mem.h"
|
||||
#include "..\lib\file_system.h"
|
||||
|
||||
#ifndef ru
|
||||
char *BUTTONS_CAPTIONS[]={
|
||||
"Ïåðåçàãðóçêà [Enter]"w, 13,
|
||||
"Âûêëþ÷åíèå [End]"w, 181,
|
||||
"ßäðî [Home]"w, 180,
|
||||
"Îòìåíà [Esc]"w, 27,
|
||||
0};
|
||||
#else
|
||||
char *BUTTONS_CAPTIONS[]={
|
||||
" Reboot [Enter]",13,
|
||||
" Power off [End]",181,
|
||||
" Kernel [Home]",180,
|
||||
" Close [Esc]",27,
|
||||
0};
|
||||
#endif
|
||||
|
||||
system_colors sc;
|
||||
|
||||
unsigned char moon[6*6] = FROM "moon.raw";
|
||||
|
||||
int WIN_SIZE_X, WIN_SIZE_Y;
|
||||
int PANEL_X, PANEL_Y;
|
||||
|
||||
#define NIGHT_PALEL_HEIGHT 45
|
||||
#define STARS_COUNT 30
|
||||
|
||||
#define PANEL_SIZE_X 260
|
||||
#define PANEL_SIZE_Y 165
|
||||
|
||||
dword stars_col[4]={0xD2CF19, 0x716900, 0x002041}; //0x005BFF - ãîëóáîé, ðåäêî
|
||||
|
||||
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
int key;
|
||||
|
||||
Pause(10);
|
||||
|
||||
WIN_SIZE_X=GetScreenWidth()+1;
|
||||
WIN_SIZE_Y=GetScreenHeight()+1;
|
||||
|
||||
PANEL_X=WIN_SIZE_X-PANEL_SIZE_X/2;
|
||||
PANEL_Y=WIN_SIZE_Y-PANEL_SIZE_Y/2;
|
||||
|
||||
loop()
|
||||
{
|
||||
WaitEventTimeout(130);
|
||||
switch(EAX & 0xFF)
|
||||
{
|
||||
case evButton:
|
||||
key=GetButtonID();
|
||||
if (key==1) ExitProcess();
|
||||
GOTO _BUTTON_MARK;
|
||||
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
_BUTTON_MARK:
|
||||
if (key== 13) ExitSystem(REBOOT); //ENTER
|
||||
if (key==180) ExitSystem(KERNEL); //HOME
|
||||
if (key==181) ExitSystem(TURN_OFF); //END
|
||||
if (key== 27) ExitProcess(); //ESC
|
||||
if (key== 19) //CTRL+S
|
||||
{
|
||||
RunProgram("rdsave",0);
|
||||
ExitProcess();
|
||||
}
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
draw_window();
|
||||
break;
|
||||
default:
|
||||
draw_stars();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void draw_window()
|
||||
{
|
||||
int x, y;
|
||||
sc.get();
|
||||
|
||||
DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF);
|
||||
|
||||
draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y);
|
||||
|
||||
//draw grid
|
||||
for (y=0; y<WIN_SIZE_Y; y++)
|
||||
{
|
||||
for (x=0; x<WIN_SIZE_X; x++)
|
||||
{
|
||||
if (y>PANEL_Y) && (y<PANEL_Y+PANEL_SIZE_Y) && (x==PANEL_X) x+=PANEL_SIZE_X; //íà ïàíåëè íå ðèñóåì
|
||||
if (! y&1) && (! x&1) {PutPixel(x, y, 0); continue;}
|
||||
if ( y&1) && ( x&1) PutPixel(x, y, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void draw_main_area()
|
||||
{
|
||||
int i=0;
|
||||
|
||||
DrawRectangle(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y, 0);
|
||||
DrawBar(PANEL_X+1, PANEL_Y+NIGHT_PALEL_HEIGHT+1, PANEL_SIZE_X-1, PANEL_SIZE_Y-NIGHT_PALEL_HEIGHT-1, sc.work);
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
{
|
||||
DefineButton(PANEL_X+33, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+16, 190,19, BUTTONS_CAPTIONS[i*2+1],sc.work_button);
|
||||
WriteText(PANEL_X+59, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+22, 0x80,sc.work_button_text, BUTTONS_CAPTIONS[i*2], 0);
|
||||
}
|
||||
|
||||
draw_stars();
|
||||
}
|
||||
|
||||
void draw_stars()
|
||||
{
|
||||
|
||||
int i, x_pic, y_pic, col;
|
||||
|
||||
DrawBar(PANEL_X+1, PANEL_Y+1, PANEL_SIZE_X-1, NIGHT_PALEL_HEIGHT, 0x002041);
|
||||
|
||||
for (i=0; i<STARS_COUNT; i++)
|
||||
{
|
||||
x_pic = random(PANEL_SIZE_X-1);
|
||||
y_pic = random(NIGHT_PALEL_HEIGHT-1);
|
||||
col = random(3);
|
||||
PutPixel(PANEL_X+1 +x_pic, PANEL_Y+1 +y_pic, stars_col[col]);
|
||||
}
|
||||
/*for (i=0; i<3; i++)
|
||||
{
|
||||
x_pic = random(PANEL_SIZE_X-8)+4;
|
||||
y_pic = random(NIGHT_PALEL_HEIGHT-8)+4;
|
||||
|
||||
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic, stars_col[0]);
|
||||
PutPixel(PANEL_X+1 +x_pic, PANEL_Y +y_pic, stars_col[1]);
|
||||
PutPixel(PANEL_X-1 +x_pic, PANEL_Y +y_pic, stars_col[1]);
|
||||
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic+1, stars_col[1]);
|
||||
PutPixel(PANEL_X +x_pic, PANEL_Y +y_pic-1, stars_col[1]);
|
||||
}*/
|
||||
|
||||
PutImage(#moon,6,6, PANEL_X+PANEL_SIZE_X-60,PANEL_Y+10);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
stop:
|
BIN
programs/cmm/new_end/moon.bmp
Normal file
BIN
programs/cmm/new_end/moon.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 614 B |
BIN
programs/cmm/new_end/moon.raw
Normal file
BIN
programs/cmm/new_end/moon.raw
Normal file
Binary file not shown.
BIN
programs/cmm/notify/@notify
Normal file
BIN
programs/cmm/notify/@notify
Normal file
Binary file not shown.
6
programs/cmm/notify/compile.bat
Normal file
6
programs/cmm/notify/compile.bat
Normal file
@ -0,0 +1,6 @@
|
||||
..\C--\C-- notify.c
|
||||
del @notify
|
||||
rename notify.com @notify
|
||||
..\C--\kpack notify
|
||||
pause
|
||||
del warning.txt
|
92
programs/cmm/notify/notify.c
Normal file
92
programs/cmm/notify/notify.c
Normal file
@ -0,0 +1,92 @@
|
||||
//notify 0.5
|
||||
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\strings.h"
|
||||
|
||||
|
||||
int SCREEN_SIZE_X,
|
||||
SCREEN_SIZE_Y;
|
||||
|
||||
int WIN_Y=0,
|
||||
WIN_SIZE_X=300,
|
||||
WIN_SIZE_Y=28;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
int TEXT_X=4,
|
||||
TEXT_Y=12;
|
||||
|
||||
if (!param)
|
||||
{
|
||||
if (GetSystemLanguage()==4)
|
||||
strcpy(#param, "Ýòà ïðîãðàììà ïîêàçûâàåò óâåäîìëåíèÿ."w);
|
||||
else
|
||||
strcpy(#param, "This program shows notices. Open it with params.");
|
||||
}
|
||||
|
||||
SCREEN_SIZE_X=GetScreenWidth()+1;
|
||||
if (strlen(#param)*6>WIN_SIZE_X) WIN_SIZE_X=strlen(#param)*6+8;
|
||||
|
||||
TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2;
|
||||
TEXT_Y=WIN_SIZE_Y/2-3;
|
||||
|
||||
//èçÿÿÿùíûé êîñòûëü, ðåàëèçóþùèé ìíîãîïîòî÷íîñòü :)
|
||||
while (!GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)) WIN_Y+=45;
|
||||
|
||||
|
||||
loop()
|
||||
{
|
||||
WaitEventTimeout(500);
|
||||
switch(EAX & 0xFF)
|
||||
{
|
||||
case evButton:
|
||||
if (GetButtonID()==1) ExitProcess();
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF);
|
||||
DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0);
|
||||
draw_grid();
|
||||
WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param,0); //òåíü
|
||||
WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param,0);
|
||||
WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param,0);
|
||||
|
||||
WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param,0);
|
||||
break;
|
||||
default:
|
||||
ExitProcess();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void draw_grid()
|
||||
{
|
||||
int x, y;
|
||||
|
||||
for (y=0; y<=WIN_SIZE_Y; y++)
|
||||
{
|
||||
for (x=0; x<=WIN_SIZE_X; x++)
|
||||
{
|
||||
if (! y&1) && (! x&1) PutPixel(x, y, 0);
|
||||
if ( y&1) && ( x&1) PutPixel(x, y, 0);
|
||||
//PutPixel(x, y, GetPixelColor(SCREEN_SIZE_X-WIN_SIZE_X+x, SCREEN_SIZE_X, y));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
stop:
|
BIN
programs/cmm/rb/@rb
Normal file
BIN
programs/cmm/rb/@rb
Normal file
Binary file not shown.
7
programs/cmm/rb/compile.bat
Normal file
7
programs/cmm/rb/compile.bat
Normal file
@ -0,0 +1,7 @@
|
||||
del @rb
|
||||
..\C--\C-- rb
|
||||
..\C--\kpack rb.com
|
||||
rename rb.com @rb
|
||||
del warning.txt
|
||||
del rb.com
|
||||
pause
|
134
programs/cmm/rb/rb.c
Normal file
134
programs/cmm/rb/rb.c
Normal file
@ -0,0 +1,134 @@
|
||||
//@RB - v0.5
|
||||
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\figures.h"
|
||||
#include "..\lib\file_system.h"
|
||||
|
||||
|
||||
#define ITEM_HEIGHT 18
|
||||
#define ITEM_WIDTH 138
|
||||
|
||||
char *ITEMS_LIST[]={
|
||||
"Ñìåíèòü òåìó îêîí "w, "/sys/SKINSEL", 0,
|
||||
"Âûáðàòü öâåò ôîíà "w, "/sys/media/palitra", 0,
|
||||
"Óïðàâëåíèå èêîíêàìè "w, "/sys/ICON", 0,
|
||||
"Íàñòðîéêà óñòðîéñòâ "w, "/sys/SETUP", 0,
|
||||
"Îáíîâèòü ñòîë "w, "/sys/REFRSCRN", 0,
|
||||
"Ïðîöåññû "w, "/sys/CPU", 0,
|
||||
0};
|
||||
|
||||
dword stak[100];
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
mouse mm;
|
||||
byte thread_id;
|
||||
SetEventMask(100000b);
|
||||
|
||||
loop() switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
mm.get();
|
||||
|
||||
if (GetPointOwner(mm.x, mm.y)==1) && (mm.pkm)
|
||||
{
|
||||
SwitchToAnotherThread();
|
||||
CreateThread(#window,#stak);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void window()
|
||||
{
|
||||
proc_info MenuForm;
|
||||
system_colors sc;
|
||||
mouse m;
|
||||
int items_num, items_cur;
|
||||
int id1, key, i;
|
||||
|
||||
sc.get();
|
||||
SetEventMask(100111b);
|
||||
|
||||
loop() switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
m.get();
|
||||
|
||||
GetProcessInfo(#MenuForm, SelfInfo);
|
||||
id1=GetProcessSlot(MenuForm.ID);
|
||||
if (id1<>GetActiveProcess()) ExitProcess();
|
||||
id1=m.y-1/ITEM_HEIGHT;
|
||||
if (m.y<0) || (id1+1>items_num) || (m.x<0) || (m.x>ITEM_WIDTH) break;
|
||||
if (m.lkm) || (m.pkm)
|
||||
{
|
||||
//feel clicking
|
||||
DrawBar(1, items_cur*ITEM_HEIGHT+2, ITEM_WIDTH-1, ITEM_HEIGHT-2, sc.work_graph);
|
||||
WriteText(8,items_cur*ITEM_HEIGHT+6,0x80,sc.work_button_text,ITEMS_LIST[items_cur*3],0);
|
||||
Pause(4);
|
||||
|
||||
ItemProcess(items_cur);
|
||||
}
|
||||
if (items_cur<>id1)
|
||||
{
|
||||
items_cur=id1;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case evButton:
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
if (key==27) ExitProcess();
|
||||
if (key==178) && (items_cur)
|
||||
{
|
||||
items_cur--;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
if (key==177) && (items_cur+1<items_num)
|
||||
{
|
||||
items_cur++;
|
||||
goto _ITEMS_DRAW;
|
||||
}
|
||||
if (key==13)
|
||||
{
|
||||
ItemProcess(items_cur);
|
||||
}
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
while (ITEMS_LIST[items_num*3]) items_num++;
|
||||
m.get();
|
||||
DefineAndDrawWindow(m.x+1,m.y,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,sc.work,0, 0x01fffFFF);
|
||||
DrawRectangle(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,sc.work_graph); //îáîäîê
|
||||
|
||||
_ITEMS_DRAW:
|
||||
for (i=0; i<items_num; i++;)
|
||||
{
|
||||
if (i==items_cur)
|
||||
{
|
||||
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, 1, sc.work_graph);
|
||||
DrawBar(1, i+1*ITEM_HEIGHT, ITEM_WIDTH-1, 1, 0xFFFfff);
|
||||
DrawBar(1, i*ITEM_HEIGHT+2, ITEM_WIDTH-1, ITEM_HEIGHT-2, sc.work_button);
|
||||
WriteText(8,i*ITEM_HEIGHT+6,0x80,sc.work_button_text,ITEMS_LIST[i*3],0);
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawBar(1, i*ITEM_HEIGHT+1, ITEM_WIDTH-1, ITEM_HEIGHT, sc.work);
|
||||
WriteText(8,i*ITEM_HEIGHT+6,0x80,sc.work_text,ITEMS_LIST[i*3],0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ItemProcess(int num_id)
|
||||
{
|
||||
RunProgram(ITEMS_LIST[num_id*3+1], ITEMS_LIST[num_id*3+2]);
|
||||
ExitProcess();
|
||||
}
|
||||
|
||||
stop:
|
9
programs/cmm/tmpdisk/compile_en.bat
Normal file
9
programs/cmm/tmpdisk/compile_en.bat
Normal file
@ -0,0 +1,9 @@
|
||||
del lang.h
|
||||
echo #define LANG_ENG 1 >lang.h
|
||||
|
||||
..\C--\C-- tmpdisk.c
|
||||
del tmpdisk
|
||||
rename tmpdisk.com tmpdisk
|
||||
rem ..\C--\kpack tmpdisk
|
||||
pause
|
||||
del warning.txt
|
9
programs/cmm/tmpdisk/compile_ru.bat
Normal file
9
programs/cmm/tmpdisk/compile_ru.bat
Normal file
@ -0,0 +1,9 @@
|
||||
del lang.h
|
||||
echo #define LANG_RUS 1 >lang.h
|
||||
|
||||
..\C--\C-- tmpdisk.c /lst
|
||||
del tmpdisk
|
||||
rename tmpdisk.com tmpdisk
|
||||
rem ..\C--\kpack tmpdisk
|
||||
pause
|
||||
del warning.txt
|
BIN
programs/cmm/tmpdisk/icons.ico
Normal file
BIN
programs/cmm/tmpdisk/icons.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
BIN
programs/cmm/tmpdisk/icons.raw
Normal file
BIN
programs/cmm/tmpdisk/icons.raw
Normal file
Binary file not shown.
87
programs/cmm/tmpdisk/t_console.c
Normal file
87
programs/cmm/tmpdisk/t_console.c
Normal file
@ -0,0 +1,87 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////// êîíñîëü ////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*#ifdef LANG_RUS
|
||||
char *rezult_text[]={
|
||||
"îïåðàöèÿ óñïåøíî çàâåðøåíà"w,
|
||||
"íåèçâåñòíûé IOCTL, íåâåðíûé ðàçìåð ïðåäîñòàâëÿåìûõ äàííûõ..."w,
|
||||
"íîìåð äèñêà äîëæåí áûòü îò 0 äî 9"w,
|
||||
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì âåëèê"w,
|
||||
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì ìàë"w,
|
||||
"îøèáêà âûäåëåíèÿ ïàìÿòè"w,
|
||||
"íåèçâåñòíàÿ îøèáêà O_o"w,
|
||||
0};
|
||||
#else*/
|
||||
char *rezult_text[]={
|
||||
"operation compleated successfully",
|
||||
"unknown IOCTL code, wrong input/output size...",
|
||||
"DiskId must be from 0 to 9",
|
||||
"DiskSize is too large",
|
||||
"DiskSize is too small",
|
||||
"memory allocation failed",
|
||||
"unknown error O_o",
|
||||
0};
|
||||
//#endif
|
||||
|
||||
void Console_Work()
|
||||
{
|
||||
unsigned int disk_size, driver_rezult;
|
||||
char size_t[256];
|
||||
|
||||
strlwr(#param);
|
||||
|
||||
switch (param[0])
|
||||
{
|
||||
case '?': //ïîìîùü ïî êîììàíäàì
|
||||
case 'h':
|
||||
debug("tmpdisk command line parameters:");
|
||||
debug("a[number]s[size in MB] - add RAM disk");
|
||||
debug("d[number] - delete RAM disk");
|
||||
ExitProcess();
|
||||
break;
|
||||
case 'd': //óäàëèòü äèñê
|
||||
debug("trying to delete disk");
|
||||
del_disk.DiskId = param[1]-'0';
|
||||
ioctl.handle = driver_handle;
|
||||
ioctl.io_code = DEV_DEL_DISK;
|
||||
ioctl.input = #del_disk;
|
||||
ioctl.inp_size = sizeof(del_disk);
|
||||
ioctl.output = 0;
|
||||
ioctl.out_size = 0;
|
||||
break;
|
||||
case 'a': //äîáàâèòü äèñê
|
||||
debug("trying to add disk");
|
||||
disk_size= strchr(#param, 's');
|
||||
if (!disk_size)
|
||||
{
|
||||
add_disk.DiskSize = GetFreeRAM() / 5;
|
||||
debug("disk size is not specified");
|
||||
strcpy(#size_t, "10% from free RAM will be used, new DiskSize: ");
|
||||
driver_rezult=itoa(add_disk.DiskSize/2048);
|
||||
strcat(#size_t, driver_rezult);
|
||||
//strcat(#size_t, itoa(add_disk.DiskSize/2048));
|
||||
strcat(#size_t, " MB");
|
||||
debug(#size_t);
|
||||
}
|
||||
else
|
||||
add_disk.DiskSize = atoi(#param+disk_size)*2048;
|
||||
|
||||
add_disk.DiskId = param[1]-'0';
|
||||
ioctl.handle = driver_handle;
|
||||
ioctl.io_code = DEV_ADD_DISK;
|
||||
ioctl.input = #add_disk;
|
||||
ioctl.inp_size = sizeof(add_disk);
|
||||
ioctl.output = 0;
|
||||
ioctl.out_size = 0;
|
||||
break;
|
||||
default:
|
||||
debug("unknown command line parameters");
|
||||
debug("use 'h' or '?' for help");
|
||||
ExitProcess();
|
||||
}
|
||||
|
||||
driver_rezult = RuleDriver(#ioctl);
|
||||
if (driver_rezult<7) debug(rezult_text[driver_rezult]);
|
||||
}
|
||||
|
266
programs/cmm/tmpdisk/t_window.c
Normal file
266
programs/cmm/tmpdisk/t_window.c
Normal file
@ -0,0 +1,266 @@
|
||||
#include "..\lib\figures.h"
|
||||
#include "..\lib\mem.h"
|
||||
#include "..\lib\dll.h"
|
||||
#include "..\lib\edit_box_lib.h"
|
||||
|
||||
#ifdef LANG_RUS
|
||||
unsigned char *but_text[]={
|
||||
"Äîáàâèòü äèñê [F2]"w,
|
||||
"Óäàëèòü äèñê [Del]"w,
|
||||
"Äîáàâèòü [Ctrl+Enter]"w,
|
||||
0};
|
||||
|
||||
?define INTRO_TEXT_1 "Çäåñü áóäåò îòîáðàæàòüñÿ ñïèñîê"w
|
||||
?define INTRO_TEXT_2 "âèðòóàëüíûõ äèñêîâ â ñèñòåìå."w
|
||||
?define INTRO_TEXT_3 "Ïîïðîáóéòå äîáàâèòü îäèí..."w
|
||||
|
||||
?define NOTIFY_TEXT_NO_DISK "Äëÿ íà÷àëà äîáàâüòå õîòÿ áû îäèí äèñê"w
|
||||
?define NOTIFY_TEXT_DISK_LIMIT "Äîñòèãíóò ïðåäåë êîëè÷åñòâà âèðòóàëüíûõ äèñêîâ"w
|
||||
|
||||
#else
|
||||
unsigned char *but_text[]={
|
||||
"Add disk [F2]",
|
||||
"Delete disk [Del]",
|
||||
"Add [Ctrl+Enter]",
|
||||
0};
|
||||
|
||||
?define INTRO_TEXT_1 " There will be list of mounted"
|
||||
?define INTRO_TEXT_2 " virtual disks."
|
||||
?define INTRO_TEXT_3 " Try to add one..."
|
||||
|
||||
?define NOTIFY_TEXT_NO_DISK "You need to have at least one disk"
|
||||
?define NOTIFY_TEXT_DISK_LIMIT "Reached the limit of the number of virtual disks"
|
||||
#endif
|
||||
|
||||
struct path_string { unsigned char Item[256]; };
|
||||
path_string disk_list[40];
|
||||
|
||||
dword devbuf;
|
||||
int disk_num;
|
||||
int selected;
|
||||
|
||||
system_colors sc;
|
||||
proc_info Form;
|
||||
|
||||
int mouse_dd;
|
||||
unsigned char dsize[30];
|
||||
edit_box edit1= {40,20,200,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,4,#dsize,#mouse_dd,100000000000010b};
|
||||
|
||||
unsigned char icons[14*56] = FROM "icons.raw";
|
||||
|
||||
|
||||
|
||||
void Main_Window()
|
||||
{
|
||||
unsigned int id;
|
||||
unsigned char key;
|
||||
|
||||
mem_Init();
|
||||
if (load_dll2(boxlib, #edit_box_draw,0)!=0)
|
||||
{
|
||||
notify("error: library doesn't exists /rd/1/lib/box_lib.obj");
|
||||
ExitProcess();
|
||||
}
|
||||
SetEventMask(0x27);
|
||||
loop()
|
||||
{
|
||||
switch(WaitEvent())
|
||||
{
|
||||
case evMouse:
|
||||
//edit_box_mouse stdcall (#edit1);
|
||||
break;
|
||||
case evButton:
|
||||
id=GetButtonID();
|
||||
if (id==1) ExitProcess();
|
||||
if (id==10) AddDisk();
|
||||
if (id==11) //del
|
||||
{
|
||||
_DEL_DISK:
|
||||
if (disk_num==0)
|
||||
{
|
||||
notify(NOTIFY_TEXT_NO_DISK);
|
||||
break;
|
||||
}
|
||||
param[0]='d';
|
||||
param[1]=disk_list[selected].Item[3];
|
||||
Console_Work();
|
||||
Pause(15);
|
||||
GetDisks();
|
||||
DrawTmpDisks();
|
||||
}
|
||||
if (id>=20)
|
||||
{
|
||||
if (selected==id-20) OpenTmpDisk();
|
||||
selected=id-20;
|
||||
DrawTmpDisks();
|
||||
}
|
||||
break;
|
||||
case evKey:
|
||||
key = GetKey();
|
||||
if (key==182) if (disk_num<>0) goto _DEL_DISK;
|
||||
if (key==51) AddDisk();
|
||||
if (key==13) OpenTmpDisk();
|
||||
if (key==178)
|
||||
{
|
||||
if (selected==0) break;
|
||||
selected--;
|
||||
DrawTmpDisks();
|
||||
}
|
||||
if (key==177)
|
||||
{
|
||||
if (selected+2>disk_num) break;
|
||||
selected++;
|
||||
DrawTmpDisks();
|
||||
}
|
||||
if (key==176)
|
||||
{
|
||||
if (selected<3) break;
|
||||
selected-=3;
|
||||
DrawTmpDisks();
|
||||
}
|
||||
if (key==179)
|
||||
{
|
||||
if (selected+4>disk_num) break;
|
||||
selected+=3;
|
||||
DrawTmpDisks();
|
||||
}
|
||||
//EAX=key<<8;
|
||||
//edit_box_key stdcall(#edit1);
|
||||
break;
|
||||
case evReDraw:
|
||||
Draw_Window();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OpenTmpDisk()
|
||||
{
|
||||
unsigned char eol_param[256];
|
||||
if (!disk_num) return;
|
||||
strcpy(#eol_param, "/tmp#/1/");
|
||||
eol_param[4]=disk_list[selected].Item[3];
|
||||
RunProgram("/sys/File managers/Eolite", #eol_param);
|
||||
}
|
||||
|
||||
|
||||
void GetDisks()
|
||||
{
|
||||
unsigned int j, fcount=30;
|
||||
unsigned char disk_name[256];
|
||||
|
||||
mem_Free(devbuf);
|
||||
devbuf= mem_Alloc(32);
|
||||
ReadDir(0, devbuf, "/");
|
||||
fcount=ESDWORD[devbuf+8];
|
||||
mem_Free(devbuf);
|
||||
devbuf = mem_Alloc(fcount+1*304+32);
|
||||
ReadDir(fcount, devbuf, "/");
|
||||
|
||||
disk_num=0;
|
||||
for (j=0; j<fcount; j++;)
|
||||
{
|
||||
strcpy(#disk_name, j*304+devbuf+72);
|
||||
if (disk_name[0]!='t') continue;
|
||||
strcpy(#disk_list[disk_num].Item, #disk_name);
|
||||
disk_num++;
|
||||
}
|
||||
if (disk_num>12) disk_num=12;
|
||||
}
|
||||
|
||||
|
||||
unsigned int disk_pos_x[]={13,13,13,83,83,83,153,153,153,223,223,223};
|
||||
unsigned int disk_pos_y[]={40,65,90,40,65,90,40,65,90,40,65,90};
|
||||
|
||||
void DrawTmpDisks()
|
||||
{
|
||||
int i;
|
||||
DrawBar(0,31, Form.width-9,Form.height-GetSkinHeight()-5-30, 0xFFFFFF);
|
||||
if (disk_num==0)
|
||||
{
|
||||
WriteText(17,45, 0x90, 0x777777, INTRO_TEXT_1, 0);
|
||||
WriteText(17,45+15, 0x90, 0x777777, INTRO_TEXT_2, 0);
|
||||
WriteText(17,45+42, 0x90, 0x777777, INTRO_TEXT_3, 0);
|
||||
return;
|
||||
};
|
||||
if (selected>=disk_num) selected=disk_num-1; //âîññòàíàâëèâàåò âûäåëåíèå - õîðîøàÿ ôè÷à
|
||||
for (i=0; i<10; i++) DeleteButton(20+i);
|
||||
for (i=0; i<disk_num; i++)
|
||||
{
|
||||
DefineButton(disk_pos_x[i], disk_pos_y[i], 60, 20, 20+i, 0xFFFfff);
|
||||
WriteText(disk_pos_x[i]+25,disk_pos_y[i]+6, 0x90, 0, #disk_list[i].Item, 0);
|
||||
_PutImage(disk_pos_x[i]+5,disk_pos_y[i]+4, 14,14, 3*14*14*3+#icons);
|
||||
if (selected==i) DrawRectangle(disk_pos_x[i], disk_pos_y[i], 60-1, 20-1, 0x00459A);
|
||||
}
|
||||
}
|
||||
|
||||
void AddDisk()
|
||||
{
|
||||
unsigned int i, j;
|
||||
if (disk_num>=10)
|
||||
{
|
||||
notify(NOTIFY_TEXT_DISK_LIMIT);
|
||||
return;
|
||||
}
|
||||
param[0]='a';
|
||||
for (i=0; i<9; i++)
|
||||
{
|
||||
for (j=0; j<=disk_num; j++)
|
||||
{
|
||||
if (i+48==disk_list[j].Item[3]) continue 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
param[1]=i+48;
|
||||
Console_Work();
|
||||
Pause(5);
|
||||
GetDisks();
|
||||
DrawTmpDisks();
|
||||
}
|
||||
|
||||
void Draw_Window()
|
||||
{
|
||||
int i, x;
|
||||
|
||||
sc.get();
|
||||
DefineAndDrawWindow(170,150,314,250,0x74,sc.work,"Virtual Disk Manager 0.4",0);
|
||||
GetProcessInfo(#Form, SelfInfo);
|
||||
if (Form.status_window>2) return; //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
|
||||
|
||||
//ðèñóåì ïàíåëü
|
||||
DrawBar(0,0, Form.width-9,30, sc.work);
|
||||
DrawBar(0,30, Form.width-9,1, sc.work_graph);
|
||||
x=6;
|
||||
for (i=0; i<2; i++)
|
||||
{
|
||||
DefineButton(x,5, strlen(but_text[i])*6+28,19, 10+i, sc.work_button);
|
||||
_PutImage(x+3,8, 14,14, i*14*14*3+#icons);
|
||||
WriteText(x+22,11, 0x80, sc.work_button_text, but_text[i], 0);
|
||||
x+=strlen(but_text[i])*6+37;
|
||||
}
|
||||
|
||||
//ïîëó÷àåì ñïèñîê äîñòóïíûõ äèñêîâ
|
||||
GetDisks();
|
||||
//âûâîäèì äîñòóïíûå äèñêè
|
||||
DrawTmpDisks();
|
||||
//AddPanel();
|
||||
}
|
||||
|
||||
/*void AddPanel()
|
||||
{
|
||||
DrawBar(0,Form.height-GetSkinHeight()-40, Form.width-9,1, sc.work_graph);
|
||||
DrawBar(0,Form.height-GetSkinHeight()-39, Form.width-9,35, sc.work);
|
||||
|
||||
strcpy(#dsize, itoa(GetFreeRAM()/10));
|
||||
//strcpy(#dsize, "100");
|
||||
edit1.size=edit1.pos=strlen(#dsize);
|
||||
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
|
||||
//DefineButton(-strlen(but_text[2])+Form.width-9,200, strlen(but_text[2])*6+28,19, 12, sc.work_button);
|
||||
//_PutImage(-strlen(but_text[2])+Form.width-9+3,200+3, 14,14, 2*14*14*3+#icons);
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
71
programs/cmm/tmpdisk/tmpdisk.c
Normal file
71
programs/cmm/tmpdisk/tmpdisk.c
Normal file
@ -0,0 +1,71 @@
|
||||
#include "..\lib\kolibri.h"
|
||||
#include "..\lib\strings.h"
|
||||
#include "..\lib\file_system.h"
|
||||
|
||||
#include "lang.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////// îáëàñòü äàííûõ ////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct ioctl_struct
|
||||
{
|
||||
dword handle;
|
||||
dword io_code;
|
||||
dword input;
|
||||
dword inp_size;
|
||||
dword output;
|
||||
dword out_size;
|
||||
};
|
||||
|
||||
#define DEV_ADD_DISK 1 //input = structure add_disk_struc
|
||||
#define DEV_DEL_DISK 2 //input = structure del_disk_struc
|
||||
|
||||
struct add_disk_struc
|
||||
{
|
||||
dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data
|
||||
unsigned char DiskId; // from 0 to 9
|
||||
};
|
||||
|
||||
struct del_disk_struc
|
||||
{
|
||||
unsigned char DiskId; //from 0 to 9
|
||||
};
|
||||
|
||||
|
||||
ioctl_struct ioctl;
|
||||
add_disk_struc add_disk;
|
||||
del_disk_struc del_disk;
|
||||
|
||||
int driver_handle;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////// êîä ////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
#include "t_console.c"
|
||||
#include "t_window.c"
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
debug("========= tmpdisk 0.4 =========");
|
||||
driver_handle = LoadDriver("tmpdisk");
|
||||
if (driver_handle==0)
|
||||
{
|
||||
notify("error: /rd1/1/lib/tmpdisk.obj driver loading failed");
|
||||
notify("program terminated");
|
||||
ExitProcess();
|
||||
}
|
||||
else
|
||||
debug("tmpdisk.obj driver loaded successfully");
|
||||
|
||||
if (param)
|
||||
Console_Work();
|
||||
else
|
||||
Main_Window();
|
||||
|
||||
|
||||
ExitProcess();
|
||||
}
|
||||
|
||||
stop:
|
Loading…
Reference in New Issue
Block a user