Эмулятор БК 0010(01) версия 2.3 для Windows 95/98/ME/2000/XP

 

Данный эмулятор работает под управлением любой 32-х битной операционной системы типа Windows и эмулирует компьютер  «БК 0010(01)» в различных конфигурациях. В состав эмулятора входят две утилиты «BK Disk Explorer» - утилита для работы с образами дисков БК и «BK Memory Viewer» - утилита для визуального просмотра и получения слепков экрана и памяти БК. Создаются следующие служебные папки.

 

Bin                   – программы БК в формате BIN

Img                   – образы дисков БК

Memory             – записанные состояния памяти

Rom                 – прошивки ПЗУ

Tools                – служебные утилиты

UserSaves             – файлы сохраненные пользователем

 

 

Системные требования:

 

Самая минимальная тестируемая конфигурация: Pentium 200Mhz/32M Ram/2M SVGA.

Минимальный требования: Pentium II 350Mhz/64M Ram/4M SVGA/1M HDD, желательно DirectX 4.0 или более позднюю версию, для поддержки полноэкранного режима и эмуляции динамика БК.

Рекомендуемые требования: Pentium III 800Mhz/64M Ram/8M SVGA/1M HDD, желательно DirectX 4.0 или более позднюю версию, для поддержки полноэкранного режима и эмуляции динамика БК.

 

 

Характеристики:

 

Данная программа является программным эмулятором отечественного бытового компьютера БК 0010(01). Поддерживаются конфигурации:

 

БК 0010(01) + стандартный БЕЙСИК «Вильнюс 1986»

БК 0010(01) + блок МСТД (Фокал и подпрограммы тестов)

БК 0010(01) + блок дополнительной памяти 32Кб

БК 0010(01) + блок КНГМД с дополнительной памятью 16Кб

 

Данный эмулятор корректно эмулирует все команды процессора БК, включая недокументированные команды установки и сброса битов состояния процессора, команду MARK. Также корректно эмулируются системные регистры:

 

177660 – регистр состояния клавиатуры полностью

177662 – регистр кода клавиатуры полностью

177664 – регистр рулонного сдвига полностью

177706, 177710, 177712 – регистры таймера частично

177714 – регистр внешнего порта в/в в настоящий момент не работает

177716 – полностью

177130 – регистр управления НГМД частично

177132 – регистр данных НГМД частично

 

Эмулируется звук динамика БК через звуковую плату, реальное поведение клавиатуры БК, имеется возможность подключения джойстика со стандартной распайкой через регистр параллельного порта. Поддерживается два режима дисплея БК – черно-белый и цветной, причем черно-белый режим существует в двух вариантах нормальном, и адаптированном. Адаптированный вариант дает более реальное изображение (более схожее с черно-белым режимом БК) в полноэкранном режиме. В оконном режиме оба варианта идентичны. Эмулируется рулонный сдвиг и режим расширенной памяти. Имеется мощный встроенный отладчик с возможностью установки точек останова по условию и пошагового выполнения программы (данный отладчик использовался автором в процессе создания этого эмулятора). Корректно срабатывает обращение по нечетным адресам, а также обрабатывается запись в ПЗУ. Эмулятор поддерживает распечатку экрана БК на принтере в двух режимах обычном и инверсном (для экономии тонера), а также распечатку ассемблерного кода их ОЗУ в заданном диапазоне адресов. Поддерживается возможность сохранения текущего состояния БК, а также сохранения файлов БК на жестком диске.

 

 

Руководство по запуску программ

 

После запуска эмулятора в любой конфигурации, первое что необходимо сделать для запуска программы в кодах, это перейти в монитор БК. Монитор визуально отличается своим приглашением  ввода пользователя которое выглядит как вопросительный знак «?». Из БЕЙСИКа выход в монитор осуществляется командой «МО ?» (MONIT). Из Фокала можно выйти по команде «P_M ?». Монитор БК поддерживает следующие команды:

 

От «А» до «K» ?          - переход обратно в Бейсик или Фокал, в зависимости от конфигурации. На самом деле происходит вызов подпрограммы по адресу 120000. В общем случае по данному адресу может находится что угодно.

 

«M ?» - загрузка файла с магнитофона. В эмуляторе загрузка осуществляется с диска PC. По умолчанию из директории «Bin». Имя данной директории можно поменять изменив ключ «Program directory» в файле «bk.ini». На приглашение «Имя ?» можно просто нажать «ввод», после чего появится стандартный диалог открытия файла. Также вместо простого нажатия «ввода», можно набрать имя запускаемой программы. Файлы программ обычно имеют расширение «.bin».

 

«S [адрес] ?» – запуск загруженной программы с указанного адреса. Запускает только что загруженную программу с адреса указанного после команды «S». Например команда «S 1000 ?« запускает программу с адреса 1000 (типичный адрес запуска программ  на БК). Также можно после «S» сразу нажать «ввод» ничего не указывая. При этом программа начнет выполнение с адреса указанного в заголовке. Это наиболее рекомендуемый способ запуска, т.к. далеко не все программы имеют адрес запуска 1000. Только для конфигурации БК 0010 + КНГМД (BK 0010(01) with FDD): команда «S 160000» запускает начальный загрузчик системной дискеты. Поиск системной дискеты осуществляется сначала в приводе «A:», а потом в приводе  «B:».

 

«Т ?» – запуск программы тестов зашитой в ПЗУ. Данная команда запускает тесты различных узлов БК. Тесты зашиты в ПЗУ блока МСТД. В эмуляторе данная конфигурация называется «Run BK 0010(01) with Focal». На самом деле команда вызывает подпрограмму зашитую  в ПЗУ по адресу 160100, и в других конфигурациях ее действие может отличаться.

 

 

Подробное описание функций эмулятора

Меню «File»

 

Load State – загрузить, ране сохраненное, состояние БК с диска. Файлы состояния БК имеют расширение «.mfs», и по умолчанию хранятся в директории memory. Путь к данной директории можно изменить в файле настроек «bk.ini», поменяв строку с именем ключа «Memory directory».    Эмулятор считывает конфигурацию, имидж памяти БК и состояние всех регистров. После загрузки выполнение программы  тут же начинается с записанного места, причем именно в нужной конфигурации (т.е если состояния было сохранено как БК 0010(01) + Бейсик, а текущая конфигурация БК 0010(01) + МСТД, то будет включена конфигурация с Бейсиком). В диалоге выбора файла состояния имеется окно «Preview», в котором показывается уменьшенная копия экрана БК на момент сохранения.

 

Save State - сохранить текущее состояние БК на диск. Файлы состояния БК имеют расширение «.mfs», и по умолчанию хранятся в директории memory. Путь к данной директории можно изменить в файле настроек «bk.ini», поменяв строку с именем ключа «Memory directory».    Эмулятор сохраняет конфигурацию, записывает имидж памяти БК и состояние всех регистров. После записи выполнение программы продолжается дальше.

 

Print – распечатка экрана БК или Ассемблерного кода из ОЗУ на принтере. Появляется модифицированный диалог настройки принтера, с возможностью выбора принтера и изменения его стандартных настроек. Также предоставляется возможность выбора двух функций:

«Print screen» - распечатка экрана БК в двух режимах. Если в поле «Inverse» не стоит галочка, то распечатка экрана будет производится в обычном режиме, т.е. черный экран и на бумаге будет распечатан черным, а буквы белым или серым цветами, что приводит к неэкономному расходу тонера. Если же в поле «Inverse» стоит галочка, то экран БК будет распечатан в инвертированном режиме, экран белым (т.е. никаким), а буквы черным цветами. Соответственно тонера израсходуется намного меньше. Рекомендуется ставить эту опцию при распечатке большого количества листов для экономии тонера, и не ставить если необходимо получить более похожую на реальный экран БК картинку.

«Print code» - распечатка ассемблерного текста из ОЗУ БК. В поле «From address» нужно ввести начальный адрес программы в ОЗУ БК, а в поле «то» конечный адрес.  При этом в окне «Pages» показывается точное (не примерное) рассчитанное количество листов бумаги необходимое для распечатки всего листинга программы, что очень полезно для оценки расхода бумаги для распечатки большого кода.

Для обеих возможностей распечатки «Print screen» и «Print code», если необходимо, можно указать название программы или любую другую полезную информацию, которая будет распечатана в левом верхнем углу каждого листа. Также на каждом листе будет распечатан его номер и общее количество страниц программы.

 

Exit – выход из эмулятора. По данной команде осуществляется выход их эмулятора также, как по команде Alt + F4.

 

 

Меню «CPU»

 

Reset CPU – перезагрузка БК. При выборе данного пункта меню перезапускается текущая конфигурация эмулятора, при этом осуществляется так называемый «мягкий» перезапуск, т.е. не происходит полной потери данных в памяти БК и ее регистрах. Выполнение программ начинается с адреса зашитого в старших битах регистра 177716. На реальной БК это значение равно 100000. При необходимости его можно поменять в файле конфигурации «bk.ini», изменив значение ключа «CPU start address». После перезагрузки восстанавливаются конфигурация, а также все точки останова.

 

Run BK 0010(01) – запуск обычной конфигурации БК 0010(01) с БЕЙСИКом «Вильнюс 1986». Данная версия БЕЙСИКа была хорошо документирована  и на 80% совпадает по синтаксису с GW Basic на PC. Карта памяти:

 

Адреса

Описание

Объем Кб.

000000 – 000377

прерывания и системные данные

0.5

000400 – 037777

ОЗУ пользовательской программы

15.5

040000 – 077777

ОЗУ экрана

16.0

100000 – 177777

Монитор

8.0

120000 – 137777

1-е ПЗУ БЕЙСИКа

8.0

140000 – 157777

2-е ПЗУ БЕЙСИКа

8.0

160000 – 177377

3-е ПЗУ БЕЙСИКа

7.5

177400 – 177777

область системных регистров

0.5

 

Run BK 0010(01) with Focal – запуск конфигурации БК 0010(01) с блоком МСТД – ПЗУ с интерпретатором Фокала и тестами. Карта памяти:

 

Адреса

Описание

Объем Кб.

000000 – 000377

прерывания и системные данные

0.5

000400 – 037777

ОЗУ пользовательской программы

15.5

040000 – 077777

ОЗУ экрана

16.0

100000 – 177777

Монитор

8.0

120000 – 137777

ПЗУ Фокала

8.0

140000 – 157777

Не используется

8.0

160000 – 177377

ПЗУ тестов

7.5

177400 – 177777

область системных регистров

0.5

 

Run BK 0010(01) extended 32K – запуск конфигурации БК 0010(01) с дополнительным блоком ОЗУ 32Кб. Данный блок ОЗУ расширял стандартные 16Кб ОЗУ, дополнительными 32Кб., причем общий объем ОЗУ становился равным 48Кб. Блок проецировался на адреса памяти 120000 – 140000. Карта памяти:

 

Адреса

Описание

Объем Кб.

000000 – 000377

прерывания и системные данные

0.5

000400 – 037777

ОЗУ пользовательской программы

15.5

040000 – 077777

ОЗУ экрана

16.0

100000 – 177777

Монитор

8.0

120000 – 137777

Одна из 8кб страниц блоку ДОЗУ 32К

8.0

140000 – 157777

Не используется

8.0

160000 – 177377

Не используется

7.5

177400 – 177777

область системных регистров

0.5

 

Run BK 0010(01) with FDD + extended 16K – запуск БК 0010(01) с контроллером НГМД и блоком ДОЗУ 16К. В этой конфигурации эмулируется БК с подключенными к ней диковводами. В настоящее время максимальное число приводов может достигать 4-х. Их имена «A:», «B:», «C:» и «D:». Соответствующие имена образов дисков можно указать в файле «bk.ini». Имена ключей: «Drive A:», «Drive B:», «Drive C:» и «Drive D:». Обычно образ диска имеет расширение «.img» или «.bkd», но может иметь и другое расширение. Естественно, что для загрузки операционной системы диск должен быть загрузочным. Все изменения Правила запуска файлов и работы с ними читайте в руководство к конкретной операционной системе. Карта памяти:

 

Адреса

Описание

Объем Кб.

000000 – 000377

прерывания и системные данные

0.5

000400 – 037777

ОЗУ пользовательской программы

15.5

040000 – 077777

ОЗУ экрана

16.0

100000 – 177777

Монитор

8.0

120000 – 137777

1-я страница расширенного ОЗУ НГМД

8.0

140000 – 157777

2-я страница расширенного ОЗУ НГМД

8.0

160000 – 177377

ПЗУ контроллера НГМД

7.5

177000 – 177777

область системных регистров

0.5

 

 

Accelerate – увеличить скорость трансляции команд в два раза. По умолчанию количество команд обрабатываемых процессором составляет 100000 в секунду, что примерно соответствует реальной скорости БК. При необходимости  можно поменять ключ «Instructions per second» в файле «bk.ini» и поменять данное число.

 

Slow Down – уменьшить скорость трансляции команд в два раза. По умолчанию количество команд обрабатываемых процессором составляет 100000 в секунду, что примерно соответствует реальной скорости БК. При необходимости  можно поменять ключ «Instructions per second» в файле «bk.ini» и поменять данное число.

 

 

Меню «Options»

 

Enable Sound – данная опция включает эмуляцию динамика реальной БК через звуковую плату. По умолчанию обновление звуковых буферов осуществляется 25 раз в секунду. При этом звук довольно хорошо синхронизирован с изображением на экране, т.е., например, между каким-то событием в игре и звуком задержка порядка 40мс, что естественно не улавливается на слух. При этом, на медленных компьютерах (зависит не только от компьютера, но и от звуковой платы) могут быть слышны трески и хрипы. Для данных машин рекомендуется уменьшить количество обновлений звуковых буферов путем изменения ключа «FPS divider» на более большое число. Например, с 2 по умолчанию, на 3 или 4, что приведет к более плавному воспроизведению звука. Также стоит иметь ввиду, что данный ключ меняет и количество кадров, воспроизводимых эмулятором за секунду. По умолчанию количество кадров в секунду рано 25, а параметр «FPS divider» 2. Количество кадров в секунду вычисляется по формуле:

 

Количество кадров в секунду  = 50 / divider

 

Emulate BK Keyboard – опция задает будет ли эмулироваться реальное поведение клавиатуры БК. Если данная опция включена, то клавиатура PC начинает работать также как и реальная клавиатура БК, т.е. при нажатии любой клавиши в мониторе автоповтора не происходит, а обработка кода новой клавиши не производится, пока не отпущена старая. При выключенной опции автоповтор работает стандартным образом, а клавиатура ведет себе также как в Windows.

 

Enable Joystick – опция включает эмуляцию джойстика. Включение данной опции рекомендуется в играх поддерживающих джойстик. При этом в играх становится возможной обработка нажатия нескольких одновременно, что делает управление более плавным. Клавиши эмулирующие джойстик эмулируется на дополнительной клавиатуре:

 

NumPad 6 – вправо

NumPad 4 – влево

NumPad 5 – вниз

NumPad 8 – вверх

NumPad 7 – кнопка 1

NumPad 1 – кнопка 2

NumPad 9 – кнопка 3

NumPad 3 – кнопка 4

 

Use Saves directory as defaultиспользовать директорию UserSaves как директорию для чтения файлов по умолчанию. По умолчанию, если данная опция не установлена, чтение файлов происходит из текущей директории, если программа запущена из командой строки (указана в строке параметров, или просто запущена двойным щелчком) или из директории Bin, если эмулятор запущен без параметров. Сохранение фалов, по умолчанию, производится в каталог UserSaves. Данный путь содержится в файле «bk.ini», ключ «User Saves directory». В том случае, если вы постоянно сохраняете и загружаете файлы, установка данной опции изменит папку по умолчанию на UserSaves.

 

Disk Image Manager – показать диалог настройки образов дисков. С помощью данного диалога можно изменить соответствие образов дисков и логических приводов в БК. Каждый образ представляется в таблице где отображаются соответствующий ему логический диск, его имя, его формат, а также системный он или нет. Возможна сортировка по любому из этих полей. Изменить букву диска можно простым вывозом контекстного меню, по нажатию правой клавиши мыши. В файле «bk.ini» каждому логическому диску соответствуют ключи из секции [Drives].

 

Show Perfomance on Status Bar – включает информацию о текущем количестве кадров выводимых в секунду, и текущем количестве команд исполняемых в секунду. Данные числа не обязательно совпадают со значениями заданными в файле «bk.ini», и могут отличатся в меньшую или большую стороны в зависимости от мощности процессора и его текущей загруженности. Если значения постоянно не совпадают с заданными в «bk.ini», то необходимо уменьшить их до состояния, когда данные показатели будут стабильны. В противном случае возможна сильная рассинхронизация процессора БК и звука. Ключи отвечающие за количество воспроизводимых кадров в секунду и количество исполняемых команд в секунду:

 

FPS divider – задает количество выводимых кадров в секунду по формуле: FPS = 50 / divider

Instructions per second – задает количество исполняемых команд в секунду.

 

 

Меню «Debug»

 

Данный пункт меню подробно описан в отдельном руководстве по Debugеру. В Debugере предоставляются следующие возможности:

 

-        Остановка выполнения программы на текущей команде

-        Продолжение  выполнения программы с текущего места

-        Трассировка программы по шагам

-        Трассировка программы до заданного места

-        Установка точек останова с условиями (например, когда по заданному адресу изменилось значение, или когда значение в регистре больше чем заданное).

 

Данные возможности предназначены для специфических задач и не представляют интереса для обычных пользователей. Поэтому описание меню «Debug» не представлено в данном руководстве.

 

Меню «View»

 

Status Bar – показывать строку статуса в нижней части окна. На ней обычно отображается различная служебная информация,  например, текущее количество кадров в секунду.

 

СPU Registers – показывать или не показывать окно состояния регистров процессора. В первой строке отображаются значения регистров общего назначения R0, R1, R2, R3, R4, R5, во второй регистров SP (указатель стека), PC (указатель текущей команды) и PS (биты слова состояния процессора). Подробнее см. руководство по Debugеру. По умолчанию, значение данного пункта меню можно установит изменив ключ «Show CPU registers» в файле «bk.ini».

 

System Registers – показывать или не показывать состояние системных регистров. Подробнее см. раздел «Характеристики» и руководство по Debugеру. По умолчанию, значение данного пункта меню можно установит изменив ключ «Show system registers» в файле «bk.ini».

 

Debug Window – показывать или не показывать окно Debugера. В данном окне можно увидеть то, какая команда выполняется в данный момент и ее операнды, или код программы по заданному адресу. Подробнее см. руководство по Debugеру. По умолчанию, значение данного пункта меню можно установить изменив ключ «Show memory dump» « в файле «bk.ini».

 

Memory Dump – показывать или не показывать дамп памыти. В данном окне можно увидеть значение заданный ячейки памяти и соответствующее ему коды ASCII, а также  изменить данное значение. Подробнее см. руководство по Debugеру. По умолчанию, значение данного пункта меню можно установить изменив ключ «Show debug window» « в файле «bk.ini».

 

Color Mode – переключает цветной и черно-белый режим экрана. В полноэкранном режиме, возможно два варианта:

 

черно-белый – нормальный

черно-белый – адаптированный

 

Адаптированный режим не полностью соответствует реальному черно-белому режиму БК, но визуально выглядит более похоже. Какой именно режим будет применяться определяет ключ «Adapt black & white mode» в файле «bk.ini».

 

Fullscreen mode – перевести эмулятор в полноэкранный режим работы. При этом устанавливается разрешение 1024х768х16bit с частотой вертикальной развертки по умолчанию для данного режима. По умолчанию количество кадров в секунду рано 25. За это отвечает ключ «FPS divider» (по умолчанию равен 2) в файле . Количество кадров в секунду вычисляется по формуле:

 

Количество кадров в секунду  = 50 / divider

 

Также необходимо иметь ввиду, что данный параметр влияет на плавность звука. Обновление звуковых буферов, на данный момент жестко синхронизировано с выводом кадров. При большом FPS возможно, что будут слышны трески или хрипы при эмуляции звука. В таком случае количество кадров в секунду необходимо понизить, увеличив значение ключа  «FPS divider» в файле «bk.ini».

 

 

Меню «Tools»

 

В данном меню отображаются имена утилит поставляемых вместе с эмулятором. По умолчанию утилиты находятся в папке Tools заданной ключом «Tools directory» в файле «bk.ini». Подробнее утилиты будут описаны в приложении 4.


Плиложение 1. Соответствия раскладки клавиатур PC и БК и горячие клавиши

 

Соответствие раскладки таб.1.

Название клавиш(и) на БК

Название клавиш(и) на PC

Алфавитно-цифровая клавиатура

Алфавитно-цифровая клавиатура

Стрелки

Стрелки

СТОП

Break (Pause)

Лат

End

Рус

Home

BC

Insert

СБР

Delete

KT

Esc

ТАБ

Tab

Ctrl

АР2

c (сдвижка)

Ins (Num.)

e (раздвижка)

Del (Num.)

 

Горячие клавиши таб.2.

Сочетание клавиш

Пункт меню

Функция

Alt+F4

Exit

Выход их эмулятора

F11

Reset CPU

Перезапустить процессор

+ (Num.)

Accelerate

Увеличить скорость процессора в два раза

- (Num.)

Slow Down

Уменьшить скорость процессора в два раза

Alt+S

Enable Sound

Включить/Выключить звук

F5

Break

Прервать выполнение программы

Shift+F5

Continue

Продолжить выполнение программы

F10

Step Over

Выполнить одну команду

Ctrl+F10

Step to Cursor

Выполнить программы до указанной команды

PageUp

One Instruction Up

Скролировать окно отладки на одну позицию вверх

PageDown

One Instruction Down

Скролировать окно отладки на одну позицию вниз

Ctrl+F9

Breakpoint Condition

Поставить точку останова по условию

Alt+C

CPU Registers

Показать/Спрятать окно регистров процессора

Alt+R

System Registers

Показать/Спрятать окно системных регистров

Alt+D

Debug Window

Показать/Спрятать окно отладки

Alt+M

Memory Dump

Показать/Спрятать окно просмотра памяти

Scroll Lock

Color Mode

Переключение Цветной/Черно-белый режим экрана

Alt+Enter

Fullscreen Mode

Переключение полноэкранного/оконного режим экрана

 


Плиложение 2. Описание ключей в файле «bk.ini»

Горячие клавиши таб.3.

Название ключа

Значение по умолчание

Описание

 

[Rom modules]

 

Monitor

ROM\Monit10.rom

Путь к ПЗУ монитора БК 0010

First Basic module

ROM\Basic10first.rom

Путь к 1му ПЗУ  Бейсика

Second Basic module

ROM\Basic10second.rom

Путь к 2му ПЗУ  Бейсика

Third Basic and registers module

ROM\Basic10third.rom

Путь к 3му ПЗУ  Бейсика

Focal module

ROM\Focal.rom

Путь к ПЗУ Фокала

Tests module

ROM\Tests.rom

Путь к ПЗУ блока МСТД

Floppy disk driver module

ROM\Disk_327.rom

Путь к ПЗУ блока КНГМД

 

[Directories]

 

Program directory

Bin

Путь к программам в формате Bin

Tools directory

Tools

Путь к утилитам

Memory directory

Memory

Путь к файлам состояния

User Saves directory

UserSaves

Путь к записываемым файлам

 

[Options]

 

Speaker enabled          

Yes

Включить звук

Run in color mode

Yes

Запуск в цветном режиме

Adapt black & white mode

Yes

Вкл. адаптированный ч/б режим

Run in fullscreen mode

No

Запуск в полноэкранном режиме

Emulate BK Keyboard

No

Эмулировать клавиатуру БК

Joystick enabled

Yes

Эмулировать джойстик

Use Saves directory as default

No

Поменять директорию для записи

Enable Window Wrapped mode

No

Включить встроенный режим

Pause CPU after emulator start

No

Остановить процессор

CPU start address

100000

Адрес начального запуска

FPS divider

2

Делитель частоты кадров

Instructions per second

100000

Скорость выполнения команд/сек.

Show CPU registers

No

Показать окно процессора

Show system registers

No

Показать окно регистров

Show debug window

No

Показать окно отладчика

Show memory dump

No

Показать окно листинга памяти

 

[Drives]

 

Drive A:

Img\Не определено

Путь к имиджу диска А:

Drive B:

Img\Не определено

Путь к имиджу диска B:

Drive C:

Img\Не определено

Путь к имиджу диска C:

Drive D:

Img\Не определено

Путь к имиджу диска D:

 


Плиложение 3. Описание параметров командной строки

 

Bk.exe [/Флаг].

 

Флаги:

/?, /H                - помошь

/B путь             - запуск указанного файла в формате .BIN (Binary File).

/M путь             - запуск указанного файла состояния в формате .MSF (Memory state file).

/W                    - запуск в режиме встраивания в окно (усеченный интерфейс). Только при включенном ключе «Enable Window Wrapped mode».

 

 

Перейдти на страницу эмулятора: Эмулятор БК 0010(01) версия 2.3 для Windows 95/98/ME/2000/XP

Используются технологии uCoz