Forth

...
  • Я непонял каким образом можно отккрывать фортовские файлы.

    Лучшебы конечно делать это припомощи макросов из библиотеки ASCL - opendialog,savedialog.Может реализуете - это ведь недолго.
  • Открывать в смысле редактировать?

    Можно редактировать с помощью другого приложения(на пример с помощью tinypad).
    Вообще, среду разработки лучше представить в виде внешнего модуля.
    В основном, форт-система должна содержать минимум для неограниченного расширения.

    Вопрос: в Kolibri есть средства общения между приложениями?
  • http://fpauk.narod.ru/kolspforth.5.rar почти тоже что http://forth.spb.su:8888/KolSPForth.4.rar

    в режиме spf, Esc - обратное действие забою.
    В смысле, печать забитого символа (и восстановление предыдущей строки).
  • Функция 68? При чем тут она? Динамическое распределение памяти - функция 64 (и ее все три эмулятора поддерживают)
    Ушёл к умным, знающим и культурным людям.
  • 68ая функция предназначена для выделения физической памяти. Это нужно для драйверов пользовательского режима, например, для AC97 плеера.
  • Поэтому для целей, указанных выше, в форте должна использоваться именно 64-я функция...
    Ушёл к умным, знающим и культурным людям.
  • Изменение размера памяти приложения, не заменяет выделения памяти.
    В очередной версии http://fpauk.narod.ru/kolspforth.7.rar
    Для для загрузки файлов с помощью INCUDED расположил буфер 64K
    в конец приложения. Если памяти не хватает, увеличиваю размер всего
    приложения с помощью 64-ой функции. Но мне может понадобится дополнительная
    память для других задач.
    Для примитивов теперь использую ассемблер из SMAL32. Он больше
    похож на FASM.
  • Новая версия http://fpauk.narod.ru/kolspforth.9.rar
    Приведена в соответствие к Форту в виде драйвера http://fpauk.narod.ru/k_svn.566_src_f.rar

    Для работы с файлами использовал 70-ю функцию (без нее было криво). Формат словаря тоже
    сделал в соответствии с http://meos.sysbin.com/viewtopic.php?p=12736#12736

    Образ дискеты: http://fpauk.narod.ru/k_svn.566_f.rar
  • :?:
    Может ли forth создавать полнофункциональные приложения или работает исключительно в режиме текстовых скриптов?
    Куда компилируются скрипты, в текущий процесс mefort или в памать драйвера?
    Как запускать скрипты?

    Скачал дискету - нифига не вьехал.
    Примера для запуска не нашел. Запустил 'Mefort' выскреб из KolSPForth.7 примеры meforth_samples, закинул на RD (кстати что это за убогие версии Kfar и KFM при новом ядре:P), как запускать не понял :? , начал эксперименты: пишу exampl.f - выдает ошибку -2003, пишу S" /rd/1/example.f" INCLUDED - отвечает INCLUDEDERR=5 :roll: , лезу внутрь - в модуле menuet.f включается какой то файл '1st.4th' где взять непонятно.
    Нужна хотябы минимальная инфа по основным командам.
    И желательно бы сделать запуск fort-приложений по клику в kfar и kfm.
  • Alver wrote: Может ли forth создавать полнофункциональные приложения или работает исключительно в режиме текстовых скриптов?
    Можно скомпилированный скрипт представить в ассемблерном виде. Так как я это сделал для создания
    форт-систем для Колибри. Программа типа дизассемблера создает модуль img.asm, который подключается
    к базовой ассемблерной программе-оболочке.
    Куда компилируются скрипты, в текущий процесс mefort или в памать драйвера?

    Как и раньше, в конец программы отмеченной значением литерала CTOP . Смотри конец файла meforth.ASM .
    У каждой форт-приложения должен быть свой кодофайл. Однако, я бы хотел, чтобы тело форт-драйвера
    могло быть доступно из каждого приложения для чтения и передачи управления.

    В драйвере под кодофайл отведен массив : в drivers\forth\amain.asm
    CTOP DB 0x10000 DUP (?)

    Думаю сделать полный доступ к форт-драйверу во время работы системы. Чтобы можно было интерактивно капаться
    в ядре во время его работы (для суперпользователей).
    Как запускать скрипты?
    В командной строке набираешь его имя. Вообще, изначально, Форт это просто тупой исполнитель последовательности
    слов-команд разделенных пробелами.

    Скачал дискету - нифига не вьехал.
    Примера для запуска не нашел. Запустил 'Mefort' выскреб из KolSPForth.7 примеры meforth_samples, закинул на RD
    Это примеры от willow для его Форта в KolSPForth.7 были 2-а Форта в одном модуле. В http://fpauk.narod.ru/kolspforth.9.rar
    от willow форта осталось только запуск и пользовательский интерфейс. У меня пока, до примеров руки не дошли.
    Вообще, вызов системных функций производится командами SYS1 ... SYS6 фаил src\KOL\spf_kol_sys.f
    В остальном должна быть совместимость с СПФ4 http://spf.sourceforge.net/
    Примерами могут служить также, исходные тексты самой системы. Форт на форте представляет собой набор тех-же
    определений, которые можно заново переопределить в рантайме системы.
    Однако, для переопределения примитивов потребуется предворительно загрузить форт-ассемблер.
    пишу S" /rd/1/example.f" INCLUDED
    Чтобы не набирать в командной строке, можно эту строку добавить в /sys/INIT.F
    Комматда AUTOEXEC запускает этот файл при запуске форт-системы.
    Я упустил один момент. Количество одновременно открытых файлов у меня
    всего 2 и вложенность INCLUDED соответственно такая-же.
    Нужно увеличить константу MAX_OPEN_FILES (файл src\KOL\spf_kol_io.f ) и пересобрать систему.
    И желательно бы сделать запуск fort-приложений по клику в kfar и kfm.
    Думаю добавить к системному меню. Иконку тоже не помешало-бы.
    Last edited by Mihail on Sat Aug 18, 2007 5:20 pm, edited 1 time in total.
  • http://fpauk.narod.ru/kolspforth11.rar - образ загрузочного диска с примерами для Форта

    С новыми версиями

    http://fpauk.narod.ru/kolspforth11.rar - форт как приложение
    http://fpauk.narod.ru/k_svn.605_src_f.rar - форт в виде драйвера
  • первую ссылку я так понимаю не ту дал :)
    http://fpauk.narod.ru/kolforimg.rar
  • Интересно, Форт прижился в Колибри? Продолжение есть?
    Соединяй, и здравствуй.
  • Как видите, не прижился. Хотя результаты какие-то вроде были.
    Если вы программируете на Forth - у вас есть все шансы портировать его для Колибри. Пример: мне нужен был LUA - я портировал LUA.
  • Who is online

    Users browsing this forum: No registered users and 2 guests