Page 5 of 6

Re: Forth

Posted: Sun May 08, 2011 10:58 pm
by Eruman
Пока изучаю то, что народ накодил.

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 2:57 pm
by Kopa
red.kaktus.37 wrote:полез сорсы ядра курить и обдумывать, да там же и поник... не совсем понятно ещё пока, это ведь не просто программка под контроллер восьмибитный...
Для интерактивного изучения (опробования) ядра и управления функциональностью колибри с уровня терминала может быть
полезным использования версии ядра со встроенной Форт системой в нём. Правда последней актуальной сборки ещё (пока, уже ...) нет.

P.S. Если слово Форт (Forth) вам достаточно знакомо: и что-то значит для Вас:)
Кстати Форт систему SP-Forth (для windows) запускали под "раcширенной" версией DOS системы (загрука консольных приложений PE с необходимым
минимальным сервисом ввода/вывода) на 486 процессоре.

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 3:25 pm
by Kopa
XVilka wrote:Слово Forth совсем ничего нам не говорит, и даже поиск по форуму его не может найти: viewtopic.php?f=45&t=395
Икать ещё можно по слову Форт и да Форт не представили разработчикам Колибри "на блюдечке" и тема не получила продолжение.
Была такая тема Форт в ядре колибри (4-е года назад, но что значит время при проектировании ОС:)
P.S. Хотя сборку ядра можно найти (у меня точно осталась) и возможно будет желание поддержать и продолжить авторские изыскания (Михаила) в данном направлении:)
Тем по Форту на местном форуме немного (наверное его идея не была понята и оказалась не интересной)

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 3:29 pm
by XVilka
OpenBIOS (OpenFirmware) использует Forth для написания переносимой прошивки http://www.openfirmware.info/Forth/FCode

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 3:32 pm
by Kopa
XVilka wrote:OpenBIOS (OpenFirmware) использует Forth для написания переносимой прошивки http://www.openfirmware.info/Forth/FCode
Форт "достаточно полно" представлен в промышленных изделиях, кроме OpenBiosа. (или это только мой субъективный взгляд широко открытыми глазами)

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 3:34 pm
by red.kaktus.37
из однокоренных слов только фортран, но это не в ту сторону. так же напомню, что владение ассемблером на х86 равно 0.001%, есть конечно правое и левое полушария, но работают поочерёдно и не всегда в нужном направлении, и вот ответьте мне Уважаемый, какие шансы понять сию ассемблерную птичку, пользуясь абсолютно непонятным интерпретатором? :)
тут у меня может и танковый подход, но как мне кажется наиправильнейший - не городить огороды из непонятного с изучаемым, а как молодой джедай - прочел, проверил, покурил, видоизменил, подумал, понял.

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 3:50 pm
by Kopa
red.kaktus.37 wrote:из однокоренных слов только фортран, но это не в ту сторону. так же напомню, что владение ассемблером на х86 равно 0.001%,
Для меня ассемблер х86 и для контроллеров не пустой звук, а вполне достойная практическая область для изучения и возможного применения.
Фортран? Вы не оригинальны в этом ответе: :wink:
red.kaktus.37 wrote: есть конечно правое и левое полушария, но работают поочерёдно и не всегда в нужном направлении, и вот ответьте мне Уважаемый, какие шансы понять сию ассемблерную птичку, пользуясь абсолютно непонятным интерпретатором? :)
Следуя ниже означенной мысли
red.kaktus.37 wrote: тут у меня может и танковый подход, но как мне кажется наиправильнейший - не городить огороды из непонятного с изучаемым, а как молодой джедай - прочел, проверил, покурил, видоизменил, подумал, понял.

P.S. Попробуйте понять что такое Форт и возможно это облегчит Ваш путь джедая. Ассемблер в нём, штатное средство применения, хотя и может отличаться
от Фасм ассемблера.

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 4:06 pm
by red.kaktus.37
Kopa wrote: Для меня ассемблер х86 и для контроллеров не пустой звук, а вполне достойная практическая область для изучения
для меня тоже, под контроллеры я уже давно пишу разные мелочи, но там и уровень... 130 команд и 32 РОНа простор конечно, но по сравнению с иа-32 - это как Куба с Россией...
так что разбегать мысли на форты и прочие ему подобные, когда уже выбран боевой друг и товарищ... со временем конечно можно обрасти и масмом с пасмом и фортом но это не сейчас.

Re: Запуск на 80486

Posted: Thu Feb 21, 2013 5:22 pm
by Kopa
red.kaktus.37 wrote: для меня тоже, под контроллеры я уже давно пишу разные мелочи, но там и уровень... 130 команд и 32 РОНа простор конечно, но по сравнению с иа-32 - это как Куба с Россией...
Не такие уж и разные, в общей точке понимания. Для контроллеров, в частности для AVR и процессора PDP-11, решал на Форте со "слоем" на асме х86 задачу эмуляции
ядра и периферии контроллера, эдак лет 10 назад . Сложилось мнение, что ассемблер может иметь "достаточно высокий" уровень абстрагирования с приближением по дизайну к языкам условно называемых высокоуровневыми.
red.kaktus.37 wrote: так что разбегать мысли на форты и прочие ему подобные, когда уже выбран боевой друг и товарищ... со временем конечно можно обрасти и масмом с пасмом и фортом но это не сейчас.
Изучение ассемблера на примере ядра операционной системы не лучший возможный вариант ИХМО. Ассемблер, при всех его достоинствах, всё же средство решения
определённого класса задач, а в варианте Фасм он не так уж и достаточно "гибок". Есть, например, и ассемблер HLA в котором улучшен общий дизайн использования.
(но возможно имеет и свои "слабые" стороны.)

P.S. Есть ли какие моменты требующие разъяснения по теме обсуждения?
При заинтересованности в дальнейшем развитии тематики топика, по возможности, продолжу разяснение и развитие Форта для Колибри и смежных вопросов.

Re: Forth

Posted: Mon Apr 21, 2014 5:48 pm
by Leency
Kopa wrote: Это Она из базиса 11-ой подправленная мной на некоторые ошибки и собранная более поздней версией SPF4.
Она рабочая. Проверил сегодня ещё раз. Проходит тест ANSI за некоторыми замеченными "фефектами" :D
В тетрисе она и есть упакованная kpack
(сборка Форта для Kolibri из исходников Kolspforth11 немного капризное действие т.к. SPF4 исходники довольно хитро самосабираются
и какие то "неувязки" приводящие к неработоспособности Форта может вносить макрооптимизатор задействованный при компиляции.
- этим можно управлять включая/отключая его не особо проникаясь сначала в различия результирующего "псевдо" кода результирующего FASM образа). Макрооптимизатор взят из последних версий. База исходников SPF4 не последней оф. версии.

P.S. 12-ю Сборку для Linux подправил Mak44 на предмет некоторых текстовых различий для сборки под Linux. 12-ю можно разместить в топике KolSpforth.
Какие ещё вопросы?
Собрал http://fforum.winglion.ru/download/file.php?id=98, запускаю ошибка

Re: Forth

Posted: Mon Apr 21, 2014 7:36 pm
by Kopa
Leency wrote: Собрал http://fforum.winglion.ru/download/file.php?id=98, запускаю ошибка
У меня тоже сейчас запустил и ошибка (правда err=5) но симптомы теже не нахождения подключаемого файла (запуск Kolibri на железе)
errr=2003 не нашла слово (расшифровка ошибок есть в оригинальном SPF4)

P.S. Пока не понятно откуда "грабли" выросли. Что то подобное наблюдал при запуске Форта в рамках Fasm (в Win7 и XP) c использованием консольного API и что интересно в Win7 исполняемый код корректно работал, а в XP вываливалось подобное сообщение.
(указывающее на непонятную разницу в этом моменте - разобраться сразу не удалось).

А бинарно cобранный Kolspf совпадает с Форт в CTetris если его распаковать?
В архиве ещё находятся и ранее собранные meForth.bin и meForth.asm как с ними?
От версии Kolibri "по идее" ничего не должно было измениться. И в какой ОС cобирался Форт.

Re: Forth

Posted: Mon Apr 21, 2014 10:16 pm
by Leency
Вот шайтан!!!1 Всё дело в либах!
Слева либа с форума о форте, справа своя тила из тетриса.

Re: Forth

Posted: Mon Apr 21, 2014 11:40 pm
by Leency
Kopa
Я залил Форт на SVN.
Изменения: пофиксил заголовок и уменьшил перерисовку в 2 раза.
Что нужно сделать:

1. Всё равно перерисовка очень сильно видна. Причина в том, что сначала заливается фон через функцию erase_screen, потом выводится поверх текст - это неправильно. А правильно:
- простой вариант: рисовать чёрную полосу, потом выводить на неё текст и так с каждой линией текста
- правильный вариант: рисовать всё в буфер и выводить в экран картинку с буфером, при нынешней реализации функции 4 - это проще простого

2.
Файл img.asm, строка 25258:

Code: Select all

DB '/sys/INIT.F',0
ему сюда нужно подсунуть переменную params и вуа-ля мы сможем запускать любой файл Форта откуда угодно.

Ты сможешь пофиксить 1 и 2?

Re: Forth

Posted: Tue Apr 22, 2014 2:50 pm
by Kopa
Leency wrote: Ты сможешь пофиксить 1 и 2?
Хорошо, только я с SVN "не дружу" поэтому выложу в данной теме. :)

P.S. Какие ещё идеи?

Re: Forth

Posted: Tue Apr 22, 2014 3:31 pm
by Leency
Если пофиксишь 1 и 2, то будем думать дальше. Тогда можно будет даже в сборку KolibriN Форт и Тетрис добавить.