Forth http://fforum.winglion.ru/ |
|
Forth in QEMU http://fforum.winglion.ru/viewtopic.php?f=16&t=2412 |
Страница 1 из 2 |
Автор: | Mihail [ Пт янв 29, 2010 01:39 ] |
Заголовок сообщения: | Forth in QEMU |
Встроил Форт в 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? |
Автор: | VoidVolker [ Пт янв 29, 2010 11:31 ] |
Заголовок сообщения: | |
http://ru.wikipedia.org/wiki/QEMU |
Автор: | Mihail [ Пт янв 29, 2010 11:46 ] |
Заголовок сообщения: | |
Гость писал(а): а Как запустить TT.f
Набрать в командной строке и Enter. Вообще это СПФ. Только не в окне виртуальной машины, а в начальном терминале. |
Автор: | Гость [ Пт янв 29, 2010 19:11 ] |
Заголовок сообщения: | |
Mihail писал(а): Гость писал(а): а Как запустить TT.f Набрать в командной строке и Enter. Вообще это СПФ. Только не в окне виртуальной машины, а в начальном терминале. Не работает в экране Firmware. А что такое окно виртульной машины |
Автор: | mOleg [ Пт янв 29, 2010 19:39 ] |
Заголовок сообщения: | |
да, действительно, можно немного описать, что дает эта работа, что можно сделать. Пару примеров не помешает, имхо. |
Автор: | вопрос [ Пт янв 29, 2010 19:54 ] |
Заголовок сообщения: | |
хорошая работа добавлено Ой, вдруг кто-то подумал, что я саму работу оцениваю. Нет, замысел только. |
Автор: | Mihail [ Сб янв 30, 2010 01:20 ] |
Заголовок сообщения: | |
Гость писал(а): Не работает в экране 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 |
Автор: | Mihail [ Сб янв 30, 2010 14:12 ] |
Заголовок сообщения: | |
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 для встроенного Форта - библиотека подпрограмм. Три этом, доступны все данные в рантайме системы. |
Автор: | Mihail [ Пт фев 05, 2010 01:27 ] |
Заголовок сообщения: | |
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 и также его править ( перечитывать и сохранять ) можно из Форт консоли. |
Автор: | Mihail [ Сб фев 06, 2010 13:51 ] |
Заголовок сообщения: | |
Гость писал(а): Запуск ReactOs под этой сборкой выдаёт проблемы с определением
драйверов ( дисплея ) Это во всех новых версиях qemu. Исходники для qemu-0.9.1-windows мне не найти. Ниже нет опции -bios. |
Автор: | Mihail [ Ср апр 14, 2010 22:07 ] |
Заголовок сообщения: | |
Отладчик для qemu-system-arm.exe http://depositfiles.com/files/43cquyt5d Пришлось использовать версию qemu-0.10.6.tar.gz в версиях выiе вывод перенаправляется в файл STDOUT.TXT |
Автор: | Mihail [ Вс ноя 07, 2010 18:28 ] |
Заголовок сообщения: | Re: Forth in QEMU |
Очередная версия http://depositfiles.com/files/h1zwu3p67 source http://depositfiles.com/files/q65q4gnqv Может потребоватся http://fpauk.narod.ru/zlib1.dll |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |