Forth http://fforum.winglion.ru/ |
|
Kolibri http://fforum.winglion.ru/viewtopic.php?f=16&t=1232 |
Страница 1 из 12 |
Автор: | Mihail [ Сб апр 12, 2008 20:33 ] |
Заголовок сообщения: | Kolibri |
http://fpauk.narod.ru/fkolibri.rar -- компиляция части Колибри с фортом в ядре с помощью СПФ в fkolibri\devel\~mak\kolibri\kernel.f исходики Колибри в неком временом представлении. Пока демонстрируется принципиальная возможность. http://fpauk.narod.ru/k_svn.700_src_f.rar -- компиляция того-же с помощью ФАСМ http://fpauk.narod.ru/kbochs.rar -- эмулятор ПС с образом дискеты с системой. В sys\DRIVERS\autoexec.f загружается оставшаяся чать колибри и запускается словом KOLRUN. |
Автор: | вопрос [ Вс апр 13, 2008 15:51 ] |
Заголовок сообщения: | |
И что оно может -чем принципиально отличается? |
Автор: | Гость [ Пн апр 14, 2008 08:18 ] |
Заголовок сообщения: | |
При компиляции не находим rom.f P.S. А Форт консоль, при этой сборке, будет? |
Автор: | Mihail [ Пн апр 14, 2008 11:53 ] |
Заголовок сообщения: | |
Гость писал(а): При компиляции не находим rom.f Сори, Файл - fkolibri\devel\~mak\kolibri\rom.f содержит только S" ~MAK\kolibri\kernel.f" INCLUDED вопрос писал(а): И что оно может -чем принципиально отличается?
При компиляции генерится файл KWORDS.F После интерпретации его в системе, все процедуры базовой части Колибри становятся доступны для вызова из Форта по имени. Естественно, для вызова процедур принимающих параметры из регистров или из стека возвратов, требуется соответствующая инициализация параметров. ЗЫ: ФАСМ не умеет генерить мап-файл. Эквивалентом KWORDS.F мог-бы служить мап-файл. |
Автор: | chess [ Пн апр 14, 2008 17:15 ] |
Заголовок сообщения: | |
Mihail, если возможно и нетрудно, может сделаешь (как ты раньше уже делал) файл kolibri.img. Сразу чтобы хотя-бы посмотреть возможности форта когда он в ядре Колибри-ОС. А документация по системным функциям там вроде приличная, дальше можно самостоятельно разобраться. Я так понял, что раньше форт в Колибри был просто приложением, или нет(я файл http://fpauk.narod.ru/kolforimg.rar тут имею ввиду)? |
Автор: | Mihail [ Пн апр 14, 2008 18:57 ] |
Заголовок сообщения: | |
chess писал(а): Mihail, если возможно и нетрудно, может сделаешь (как ты раньше уже делал) файл kolibri.img В http://fpauk.narod.ru/kbochs1.rar KBOCHS\k_svn\kolibrid.img Сразу хотел так сделать, да забыл. Без него вообще смысла нет. chess писал(а): Я так понял, что раньше форт в Колибри был просто приложением
И сейчас, там есть Форт в виде приложения. http://fpauk.narod.ru/kolspforth11.rar Был Форт в виде драйвера. Сейчас просто форт в ядре. |
Автор: | Гость [ Вт апр 15, 2008 11:44 ] |
Заголовок сообщения: | |
Mihail писал(а): ЗЫ: ФАСМ не умеет генерить мап-файл. Эквивалентом KWORDS.F мог-бы служить мап-файл.
? Насколько полно под spf в данном проекте поддерживается совместимость с fasm? P.S. И как, колибристроители, одобрили внедрение Форта в ядро? или они об этом варианте еще не информированы или им все равно? |
Автор: | Mihail [ Вт апр 15, 2008 12:53 ] |
Заголовок сообщения: | |
Гость писал(а): Насколько полно под spf в данном проекте поддерживается совместимость с fasm? В fkolibri.rar я просто компилирую СПФом результат дизассемблирования модуля, который был создан в k_svn.700_src_f.rar с помощью ФАС. Причем, воспринимается не мнемоническая часть дисассеблированного кода, а HEX данные прилагаемые к коду. Я только повставлял команду Code для представления меток в виде словарных статей. Гость писал(а): И как, колибристроители, одобрили внедрение Форта в ядро? Вариант без KWORDS.F я им представил, но преимущество Форта именно в доступе ко всем процедурам (ресурсам) системы. Гость писал(а): они об этом варианте еще не информированы или им все равно?
Думаю пока рано им представлять. Код пока генерится без разрешения ссылок т.е. практически невозможно модифицировать. Думаю сделать 2-х проходность для разрешения ссылок вперед. Затем постепенно можно заменять результат дизассемблирования на наглядное представление программы. |
Автор: | Гость [ Вт апр 15, 2008 13:27 ] |
Заголовок сообщения: | |
Mihail писал(а): Затем постепенно можно заменять результат
дизассемблирования на наглядное представление программы. Ядро в виде Форт программы? c адаптацией правил оптимизации генерации ассемблерного кода требуемого качества? или, что то другое? P.S. Просматривались ли исходники на используемое подмножество ассемблерных команд PC в kolibri? и как оно отличается от используемых команд макро-оптимизатора? |
Автор: | Hishnik [ Вт апр 15, 2008 13:31 ] |
Заголовок сообщения: | |
Mihail писал(а): Вариант без KWORDS.F я им представил, но преимущество Форта именно в доступе ко всем процедурам (ресурсам) системы. Только это не эксклюзивное свойство Форта, так что люди могут и не проникнуться. Mihail писал(а): Думаю сделать 2-х проходность для разрешения ссылок вперед.
При объявлении ссылки вперед резервируется место в коде и запоминается адрес, с которого еще не сделан переход, и название/номер метки. При ее появлении адрес или смещение вписывается во все места, запомненные ранее. Если в таблице неразрешенных ссылок остались элементы, генерируется ошибка. |
Автор: | Kopa [ Вт апр 15, 2008 14:28 ] |
Заголовок сообщения: | |
Хищник писал(а): ...
При объявлении ссылки вперед резервируется место в коде и запоминается адрес, с которого еще не сделан переход, и название/номер метки. При ее появлении адрес или смещение вписывается во все места, запомненные ранее. Если в таблице неразрешенных ссылок остались элементы, генерируется ошибка. Так, примерно у меня и было, когда делал GOTO в spf ( исходники адаптировал от MPE) в топиках форума можно найти:) Правда решение было громоздкое и отключался оптимизатор spf. ( у ~profit-а в либах, вроде, должны быть более корректные решения обхода заморочек с оптимизатором? ) У ~chess, в его асме использовалось более легковесное решение. |
Автор: | chess [ Вт апр 15, 2008 18:38 ] |
Заголовок сообщения: | |
Mihail писал(а): В http://fpauk.narod.ru/kbochs1.rar KBOCHS\k_svn\kolibrid.img
Mihail, спасибо. Я так понял, что NOTFOUND ты из транслятора убрал. Почему? |
Автор: | Mihail [ Ср апр 16, 2008 14:07 ] |
Заголовок сообщения: | |
Гость писал(а): Ядро в виде Форт программы? На первом этапе в виде Форт-примитивов. Проста для всех процедур (из которых Колибри состоит) создается словарные статьи (словарь отделен от кода). За тем можно поменять дисциплину передачу параметров (через стек). Полноценные форт-примитивы (процедуры с передачей параметров через стек) можно заменять на высокоуровневые форт-определения. Т.е. можно скрестить с http://www.openbios.org/viewvc/?root=OpenFirmware http://www.cvs.cx/uCForth.php http://fpauk.narod.ru/protoos_.rar Гость писал(а): c адаптацией правил оптимизации генерации ассемблерного кода требуемого качества? Пока об эффективности думать рановато. Вообще, для критических по быстродействию мест можно добавить правила к оптимизатору. Гость писал(а): Просматривались ли исходники на используемое подмножество ассемблерных команд PC в kolibri? На сколько я понял, речь идет о восприятии изначального ассемблерного кода с помощью СПФ. Ассемблер в fkolibri.rar - fkolibri\devel\~mak\asm имеет условную совместимость с традиционным. Для неких фрагментов можно использовать его. Можно ФАСМ загрузить в СПФ или форт встроить в ФАСМ, но я этим в обозримом будущем заниматься не буду. Скорее я сделаю свой форт-ассемблер из постфиксного из OpenFirmware, но тоже не в ближайшем бидущем. Хищник писал(а): но преимущество Форта именно в доступе ко всем процедурам (ресурсам) системы. Только это не эксклюзивное свойство Форта, так что люди могут и не проникнуться. Зато понятное и объективное. Хищник писал(а): При объявлении ссылки вперед резервируется место в коде и запоминается адрес, с которого еще не сделан переход, и название/номер метки. Думаю предварительно объявить ссылки вперед с помощью некого определяющего слова. На первом проходе они могут быть инициализированы любым значение. В результате прохода они инициализируются CFA любым определяющим словом. chess писал(а): Я так понял, что NOTFOUND ты из транслятора убрал. Почему?
Ради упрощения и для увеличения скорости компиляции. Добавить NOTFOUND не проблема, можно в рантайме. |
Автор: | in4 [ Пт апр 18, 2008 00:25 ] |
Заголовок сообщения: | |
А почему выбрана именно Колибри? Мне она быстродействия на первом пне не показала. А должна была - ведь внутри все простое, как описывают... Так почему она ТАК тормозит?! |
Автор: | garbler [ Пт апр 18, 2008 10:20 ] |
Заголовок сообщения: | |
там нет аппаратной поддержки (доступ к железу примитивен). вот почему. выключи в винде акселерацию и ты увидишь точно такие же тормоза. (это касается не только графики, а так-же ввода/вывода и т.п.) |
Страница 1 из 12 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |