forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Программирование (http://forum.boolean.name/forumdisplay.php?f=54)
-   -   Почти работающий эмулятор IBM PC (http://forum.boolean.name/showthread.php?t=17034)

Artem_8086 14.07.2012 20:26

Почти работающий эмулятор IBM PC
 
Вложений: 2
Это почти работающий эмуль IBM PC, в нем есть видеоадаптер CGA, правда пока только текстовый режим, эмулирует все команды процессора intel 8086, правда пока без контролера клавиатуры и без таймера.В нем еще пока не запускается ни одна операционная система типа dos.Само нормально выглядит только GlukOS.


Требования: MIDP-2.0, приблизительно 2 Mb ОЗУ, доступ к файловой системе телефона.

Управление: пока только "0" для включения/отключения режима перемещения экрана.

Artem_8086 31.01.2013 22:50

Ответ: Почти работающий эмулятор IBM PC
 
Вложений: 3
Вот более рабочая версия эмулятора IBM PC XT, для телефонов с ОЗУ примерно 2 Mb. Эмулируются все команды процессора intel 80186, и видеоадаптер CGA, Hercules и WY-700, а также клавиатура и таймер, оптимизирован режим перемещения, поддерживает до 4-ёх образов дискет, для этого в файлменеджере вместо "открыть" нужно выбрать "добавить".

Управление:
0 - включение/отключение режима перемещения экрана;
левый сот - ввод текста (вместо клавиатуры);
правый софт - клавиша Backspase;
огонь - клавиша Enter;
вверх/вниз/влево/вправо - клавишы стрелки соответственно;
* и # - меняют режимы клавиатуры, * - уменшает режим, # - увеличает.
Режимов всего 6, значение клавиш телефона 1-9 зависит от режима клавиатуры:

Режим 1:
1-клавиша 1;
2-клавиша 2;
3-клавиша 3;
4-клавиша 4;
5-клавиша 5;
6-клавиша 6;
7-клавиша 7;
8-клавиша 8;
9-клавиша 9.

Режим 2:
1-клавиша Insert;
2-клавиша A;
3-клавиша D;
4-клавиша G;
5-клавиша J;
6-клавиша M;
7-клавиша P;
8-клавиша T;
9-клавиша W.

Режим 3:
1-клавиша Space( пробел );
2-клавиша B;
3-клавиша E;
4-клавиша H;
5-клавиша K;
6-клавиша N;
7-клавиша Q;
8-клавиша U;
9-клавиша X.

Режим 4:
1-клавиша F10;
2-клавиша C;
3-клавиша F;
4-клавиша I;
5-клавиша L;
6-клавиша O;
7-клавиша R;
8-клавиша V;
9-клавиша Y.

Режим 5:
1-клавиша Esc;
2-клавиша Alt;
3-клавиша Tab;
4-клавиша Control;
5-клавиша Delete;
6-клавиша Break;
7-клавиша S;
8-клавиша правый Shift;
9-клавиша Z.

Режим 6:
1-клавиша F1;
2-клавиша F2;
3-клавиша F3;
4-клавиша F4;
5-клавиша F5;
6-клавиша F6;
7-клавиша F7;
8-клавиша F8;
9-клавиша F9.

Запускает Dos от 6.22 версии и ниже, кроме 1 версии, а также Windows 3.0.

Igor 01.02.2013 18:07

Ответ: Почти работающий эмулятор IBM PC
 
Ты, случайно, не знаешь как в kemulator дать доступ к ФС? А то на компе потестировать охота

Artem_8086 01.02.2013 19:06

Ответ: Почти работающий эмулятор IBM PC
 
В KEmulator-е не нужен доступ к ФС, просто скинь нужные файлы в папку ...\KEmulator\file\root\ и всё.

Igor 01.02.2013 19:35

Ответ: Почти работающий эмулятор IBM PC
 
При эмуляции win3.0 очень долго рисуется стартовый экран (наверно, потому что repaint вызывается слишком часто)
Я в приложениях пишу свою функцию paint, и если между предыдущим и следующим обновлениями экрана прошло мало времени, то не обновляю его. (И обновляю через некоторое время)

Artem_8086 01.02.2013 22:00

Ответ: Почти работающий эмулятор IBM PC
 
В этой версии всё делается точно также, просто windows вначале работы считывает часть картинки с файла, а затем рисует её, а у меня перерисовка вызывается (или не вызывается, если предыдущая ещё не завершилась) через определлённое количество команд процессора (а точнее через 1024).И при том используется специальный алгоритм, который ускоряет перерисовку, его суть в том, что он рисует только те пиксели, которые изменились.

Igor 03.02.2013 02:27

Ответ: Почти работающий эмулятор IBM PC
 
стой. если телефон обновляет экран 20 раз в секунду, то система не может совершать более 1024*20 операций в секунду, так? Просто я в эмуляторе при помощи изменения времени отрисовки экрана сильно меняю время загрузки, мне кажется это нехорошо.
Ты уверен, что проверять каждую точку лучше чем просто изменить значение в массиве?
Имхо лучше создать массив int[], а потом использовать drawRGB(...);

P.S. Если бы ты показал код, было бы шикарно, а так я пытаюсь угадать в чём дело(
P.P.S. У меня телефон без клавиатуры, на нём не потестировать

Artem_8086 03.02.2013 08:47

Ответ: Почти работающий эмулятор IBM PC
 
У меня создёться дополнительная картинка (как в МП), в неё у меня всё рисуется, а алгоритм не ищет изменных точек (это просто образно), просто когда информацию записуется в видеопамять то она сразу же рисуется в картинку и изменяет переменную о периресовке, то есть если в видеопамять ничего не писать периресовка не будет происходить.

Artem_8086 18.02.2013 19:56

Ответ: Почти работающий эмулятор IBM PC
 
Вложений: 4
Новая версия моего эмулятора, поддерживает видеоадаптер EGA (при этом CGA и Hercules не поддерживаются). Добавлена новая версия БИОС, которая загружается значительно дольше старой.

Artem_8086 10.04.2013 21:27

Ответ: Почти работающий эмулятор IBM PC
 
Вложений: 2
Вот улучшенная версия исправлен ФМ, в windows запускается File Manager, Paint и калькулятор.


Часовой пояс GMT +4, время: 08:35.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot