Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт дек 15, 2017 23:28

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Forth in QEMU
СообщениеДобавлено: Пт янв 29, 2010 01:39 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Встроил Форт в QEMU : http://depositfiles.com/files/mpm81t3la
Можно исследовать и расширить QEMU в рантайме по средствам
встроенного Форта. Функции QEMU могут быть доступны по средствам мап-файла.
В примере TT.F загружается мап-файл и используется функция disas для дизассемблирования.

Исходный текст QEMU c Фортом со всем необходимым для сборки
http://depositfiles.com/files/b7wx1dwnm
Достаточно запустить msys.bat там в каталоге QEMU запустить make
Пока только под видной.

Oдно из первых приложений под новую ОС должен быть эмулятор машины
чтобы использовать приложения других ОС.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 04:22 
Класс!
а Как запустить TT.f
и поподробней возможности использования


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 07:38 
вас ис дас QEMU?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 11:31 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1252
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
http://ru.wikipedia.org/wiki/QEMU

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 11:46 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Гость писал(а):
а Как запустить TT.f


Набрать в командной строке и Enter.
Вообще это СПФ.
Только не в окне виртуальной машины, а в начальном терминале.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 19:11 
Mihail писал(а):
Гость писал(а):
а Как запустить TT.f


Набрать в командной строке и Enter.
Вообще это СПФ.
Только не в окне виртуальной машины, а в начальном терминале.


Не работает в экране Firmware.
А что такое окно виртульной машины


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 19:39 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4832
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
да, действительно, можно немного описать, что дает эта работа, что можно сделать. Пару примеров не помешает, имхо.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 29, 2010 19:54 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
хорошая работа

добавлено
Ой, вдруг кто-то подумал, что я саму работу оцениваю. Нет, замысел только.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 30, 2010 01:20 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Гость писал(а):
Не работает в экране Firmware.
А что такое окно виртульной машины


Экран Firmware и есть окно виртульной машины.
Форт встроенный в QEMU доступен по средствам терминала куда вывотится:
Код:
SPFOPT  ANS FORTH 94 for Linux
A.Cherezov  http://www.forth.org.ru/
M.Maksimov  http://maksimov435.rtc.neva.ru/  http://www.chat.ru/~mak


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 30, 2010 14:12 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
mOleg писал(а):
что дает эта работа, что можно сделать.


Само по себе внедрение Форта существенный этап освоения.
Я использовал своего рода корпоративную многозадачность.
ForthStep - процедура переключения имеет вмд
Код:
.globl ForthStep
ForthStep:
   xchgl %eax,seax
   xchgl %ebp,sebp
   xchgl %esp,sesp
   xchgl %edi,sedi
   ret


Со стороны Форта она запускается в SLDKEY? которую вызывают KEY? KEY .
Со стороны QEMU запускается в sdl_refresh в msys\1.0\home\QEMU\sdl.c
Это обработчик событий для виртуальной машины.
Там-же работает драйвер клавиатуры для Форта - if(kbhit())KeyPut(getch());

Для вызова сишных функций из форта на этапе сборки системы,
ее имя нужно прописать в Файле: msys\1.0\home\QEMU\src\global.f
в виде переопределения ABORT. Т.к. исполнять ее нельзя и чтобы
исключить инлайн подстановку при компиляции.
В рантайме системы, сишные функции могут быть доступны по средствам
файла qemu.map. Если у функции есть параметры, перед вызовом нужно
положить параметры на стек возвратов в соответствии с сишной дисциплиной,
затем очистить стек возвратов.

Напирмер:
Вызаыв
void target_disas(FILE *out, target_ulong code, target_ulong size, int flags)
из msys\1.0\home\QEMU\disas.c
Имеет вид:

: REST ( addr len -- )
>R >R
stdout
DUP \ чтобы не испортить EAX
>R disas
DROP \ парамр не возвращается , восстанавливаем EAX
3RDROP ;

Где
: stdout ['] _imp___iob @ 0x20 + ;

_imp___iob взят из msys\1.0\mingw\include\stdio.h
в определении stdout .

Переменная _imp___iob в форте представлена как функция
т.к. в qemu.map процедуы и переменные представлены одинаково.

Т.о. тело QEMU для встроенного Форта - библиотека подпрограмм.
Три этом, доступны все данные в рантайме системы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 05, 2010 01:27 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
http://depositfiles.com/files/k094qr2ct

В примере TT.F
команда ZZ - динамический вывод EIP (можно заменить на любой другой регистр)
команда M> - вызов команды монитора (запускаемого по Ctrl-Alt-2) из базовой консоли с Фортом
M> help
M> index
M> x /10i $eip

В каталоге patch обновления для версии http://depositfiles.com/files/b7wx1dwnm


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 05, 2010 16:50 
Запуск ReactOs под этой сборкой выдаёт проблемы с определением
драйверов ( дисплея )

P.S. Патчить код QEMU, уже наверное, можно из Форт скрипта вставляя в код
нужной функции адрес перехода на форт слова.
А какая структура emuowf и также его править ( перечитывать и сохранять ) можно из Форт консоли.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб фев 06, 2010 13:51 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Гость писал(а):
Запуск ReactOs под этой сборкой выдаёт проблемы с определением
драйверов ( дисплея )


Это во всех новых версиях qemu. Исходники для qemu-0.9.1-windows мне не найти.
Ниже нет опции -bios.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 14, 2010 22:07 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Отладчик для qemu-system-arm.exe http://depositfiles.com/files/43cquyt5d

Пришлось использовать версию qemu-0.10.6.tar.gz
в версиях выiе вывод перенаправляется в файл STDOUT.TXT


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth in QEMU
СообщениеДобавлено: Вс ноя 07, 2010 18:28 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Очередная версия http://depositfiles.com/files/h1zwu3p67
source http://depositfiles.com/files/q65q4gnqv

Может потребоватся http://fpauk.narod.ru/zlib1.dll


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB