nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:08



Reply to topic  [ 85 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
RFORTH 
Author Message
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
В далеком 2001 году написал русифицированный форт для дос :)

Недавно решил его "реанимировать". Переписывать, конечно, не собираюсь :) Портировал на фасм и добавил внутрь русификацию.

http://shoorick.ho.ua/forth/

Интересует - будет ли работать эта русификация на буржуйских системах? проверять, естественно, нужно не в оконном режиме, а полноэкранном, + прерывание 10х не перехватывается и не отслеживается, т.е. после смены видеорежима возможна потеря кириллицы, которая восстанавливается словом RUS.


14 Nov 2008 05:24
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Я тут в очередной раз "свалился в FORTH"... :osad: совсем не нарошно...

Мне что-то вспомнился Бейсик "Вильнус" и "шитый код", и я набрал это в поисковике...
Бейсик "Вильнус" была лишь пара ссылок, все остальное про "шитый код" вело в FORTH.

Я подумал - видимо, судьба - всё прочитал и скачал рекомендуемые книжки.
Скачал RFORTH Шурика, его недоFORTH для "Специалиста" и неожиданно я обнаружил
у себя на диске FORTH для "Специалиста".
Надеюсь, что описание FORTH для "РК-86" подойдёт...

У меня просьба, если кто писал на FORTH для "РК-86" или для 580ВМ80: выложите здесь
пару-тройку вменяемых программ НЕ ТИПА "ХЭЛЛОУ ВОРД", а чтобы было обращение к УВВ,
к примеру, к портам...

Я не первый раз пытаюсь постигнуть FORTH, и оказалось помню, что написано в книжках,
но хотелось бы живого неабстрактного примера - как это делается...

_________________
iLavr


29 Apr 2020 12:13
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
для реализации IN и OUT в своем недописанном форте для 8080 я формировал микропроцедуру в стеке и ее потом вызывал, т.к. у 8080 нет косвенной адресации портов, а хотелось размещать тело в пзу... хотя можно было и без этого - все равно где-то в озу размещались служебные ячейки (регистров не хватало) - можно было и эту пару команд туда вынести...


29 Apr 2020 13:41
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
...и неожиданно я обнаружилу себя на диске FORTH для "Специалиста".
Надеюсь, что описание FORTH для "РК-86" подойдёт...

FORTH для "Специалиста" у меня оказался вот такой:
Attachment:
FORT_SP.gif
FORT_SP.gif [ 2.09 KiB | Viewed 10277 times ]


А словарный запас у него следующий:
Attachment:
FORT_W1.gif
FORT_W1.gif [ 5.71 KiB | Viewed 10277 times ]

Attachment:
FORT_W2.gif
FORT_W2.gif [ 4.86 KiB | Viewed 10277 times ]

_________________
iLavr


29 Apr 2020 13:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
FORTH для "Радио-86РК" это, похоже, вот этот ФОРТ, что на скриншотах выше, но порезаный неким Н. ШИХОВым, из странного г. Козьмодемьянск, Республики Марий-Эл.
Н. ШИХОВ wrote:
Предлагаемая читателям версия языка ФОРТ не единственная, адаптированная для «Радио 86РК». У автора имеется версия ФОРТ системы разработанная в НИИСЧЕТМАШ ЛГУ. Она выполнена в строгом соответствии со стандартом FORTH 83, имеет объем 14 Кбайт и словарь примерно из 500 слов. По мнению автора, владельцами «Радио 86РК» эта программа использоваться на практике не может. Ее словарь перегружен промежуточными словами, не используемыми в прикладных программах, есть слова с одинаковыми функциями. Достоинствами этой версии являются, ее соответствие стандарту, и наличие встроенного ФОРТ АССЕМБЛЕРа. Стандартный строчный редактор ничего кроме сожаления не вызывает.

Собственно говоря, вновь поковыряться с FORTH-ом меня сподвигла прочитанная где-то фраза, что ФОРТ со всем своим "блэкджеком и плюшками" может занимать ВСЕГО 1 КБайт.
Вижу что это не так: FORTH.RKS ~ 12 КБайт, FORTH.RKI ~ 16 КБайт, FORTH.RKR ~ 17 КБайт.
И лишь у г-на Н. ШИХОВа FORTH обструган до 4 КБайт, причем текстовый буфер на привычном месте - 1100Н.


P.S. Видимо, г-н Н. ШИХОВ имел в виду вот этот ФОРТ для "Радио-86РК" (FORTH.RKR ~ 17 КБайт)
Attachment:
fs1.gif
fs1.gif [ 3.84 KiB | Viewed 10265 times ]

_________________
iLavr


29 Apr 2020 17:06
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Джентльмены, а ни у кого не завалялось вот этого короткого Форта из Радио 7, 1995?

 Язык ФОРТ для Радио-86РК
Attachment:
_1995_07_20.gif
_1995_07_20.gif [ 386.03 KiB | Viewed 10243 times ]

А то я вчера и гуглил... и яндексил... - нигде не нашел... :osad:
А набирать таблицу так неохота... :-?

_________________
iLavr


30 Apr 2020 06:22
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Распознавалкой распознай :)

Кунеформ какой-нить, которым в 90х такое распознавалось на ура

_________________
:dj: https://mastodon.social/@Shaos


30 Apr 2020 07:39
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Распознавалкой распознай :)
Кунеформ какой-нить, которым в 90х такое распознавалось на ура

Кокой ти умный... :lol:
Файнридером вчера пробовал - плохо берётся... Всё равно придётся построчно сличать КС.
Поэтому и обратился тут к людям, чтобы не мучаться лишний раз...

"Да и ОСОАВИАХИМА больше нет, Глеб Егорыч..." (с) Не 90-е на дворе... :wink:

_________________
iLavr


30 Apr 2020 08:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
В общем, если кому, также как мне, приспичит маленький FORTH для "Радио-86РК" (580ВМ80А),
то вот он:
Attachment:
FORTHR86.zip [1.68 KiB]
Downloaded 412 times
(Расширение bin запрещено администратором.) :lol:

На всякий случай, приведу поблочные контрольные суммы, вдруг FORTH "зацепил коронавирус",
пока летел на форум: :wink:
Attachment:
KS_1995_07_20.gif
KS_1995_07_20.gif [ 8.68 KiB | Viewed 10205 times ]


Поскольку описания на этот FORTH нет, а автор утверждает, что фактически стандарт FORTH 83,
то вот ссылка на автора:
Язык Форт для "Радио-86РК". Н.Шихов, г.Козьмодемьянск, Республика Марий-Эл
Если все обратили внимание, г.Козьмодемьянск приводит меня в эйфорию! :esurprised:

Что я хочу от этого Форта: я хочу посмотреть, насколько эффективный "шитый код" он генерирует,
как он его генерирует, и механизм я тоже посмотреть хочу - думаю, я эти 4 КБайт декомпилирую в исходник.
Всё это для того, чтобы сравнить с тем, что делает компилятор С (к примеру, Бест_С), который я тут
некоторое время назад декомпилировал до исходника и не остался в восторге от генерируемого им кода.

Кстати, пока я тут просеивал просторы Интернета на слово "FORTH" в разных сочетаниях, попался мне
весьма хороший материал от нашего коллеги Дёмина (aka begoon):
Реализация простого ядра Forth

Я не удивился уже, но Дёмин также не в восторге от того, что создаёт компилятор С для i8080:
Дёмин wrote:
Знаю, что С - это начало всех начал, и при правильном использовании можно писать очень близко по эффективности к ассемблеру. Но, все же есть еще системы, где компилятору С сложно развернуться. Например, захотел я подыскать компилятор С для Intel 8080, чтобы замутить небанальную программу для Радио-86РК. Из реально собираемого я нашел только пару наследников знаменитого Small-Csmallc-85 и smallc-scc3.

Увы, для простейшей программы типа:
main() {
static char a;
for (a = 1; a < 10; ++a) {
++a;
}
}


Генерируется адЪ...


И у меня возник вопрос ко всем нашим Гуру FORTH-а, вопрос следующего характера...
Когда я что-то ищу по Интернету, я читаю все источники, что попадаются по пути, прочитал в этот раз
и такой неавторитетный источник, как: https://m.lurkmore.to/Forth и он меня заставил просто
неподецки смеяться: :ebiggrin:
Луркоморье wrote:
...в общем случае начинающий фортер думает также и о том, чтобы сделать в форте всё как у людей. Но через некоторое время начинает уже у людей всё делать как в форте .

Я, видимо, даже не "начинающий фортер"... но как раз по пути думал, что можно ведь сделать редактор
для Форта, в котором писать всё "по-человечески, как у людей", а для FORTH-а делать синтаксическую
предкомпиляцию в его формат обратной польской записи.
Так вот вопрос: такого никогда не делали или всё же были попытки?

_________________
iLavr


01 May 2020 06:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Собственно говоря, вновь поковыряться с FORTH-ом меня сподвигла прочитанная где-то фраза,
что ФОРТ со всем своим "блэкджеком и плюшками" может занимать ВСЕГО 1 КБайт.
Вижу что это не так: FORTH.RKS ~ 12 КБайт, FORTH.RKI ~ 16 КБайт, FORTH.RKR ~ 17 КБайт.
И лишь у г-на Н. ШИХОВа FORTH обструган до 4 КБайт, ...

Оказалось, что FORTH от г-на Н. ШИХОВа к искомому мной идеалу ВСЕГО 1 КБайт весьма близок! :kruto:
4 КБайт - это он вместе с редактором "Микрон" (0000-0FFFH) занимает, а сам FORTH - ровно в
половину меньше: всего-то 2 КБайт (0800-0FFFH).
И при этом встроенный редактор у него есть, хотя "Микрон" и удобнее...

Никаких длинных сказок он о себе при старте не сказал, а сразу вывел свой словарь:
Attachment:
forthr86.gif
forthr86.gif [ 4 KiB | Viewed 10186 times ]

Даже WORDS печатать не пришлось...

Да, словарный запас не так велик, как у экземпляра FORTH от "Специалиста", но словарный запас-то
расширяемый у FORTH-а...

Попробую запустить под эмулятором "Специалиста_МХ", системные вызовы стандартные - должно
получиться... Под emu80 работать неудобно - то в текст, то в графику окна перекидывает.
Посмотрю, на что способен этот FORTH.

P.S. Да, под RAMFOS этот FORTH нормально запускается, поскольку системные вызовы стандартны.
Attachment:
ForthSP.gif
ForthSP.gif [ 2.74 KiB | Viewed 10181 times ]

Естественно, в Редактор "Микрон" он не выйдет, потому как его там нет...
Надо, видимо, декомпильнуть этот FORTH сначала, чтобы не заниматься патчами.

_________________
iLavr


01 May 2020 14:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Надо, видимо, декомпильнуть этот FORTH сначала, чтобы не заниматься патчами.

Декомпильнул в черновом варианте, причесываю пока, чтобы правильно собрался.

Неудобно, что слова разбросаны по коду, но, видимо, это и есть связанный список FORTH.

_________________
iLavr


02 May 2020 04:49
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
А он самописный или цельнотянутый у буржуинов?

_________________
:dj: https://mastodon.social/@Shaos


02 May 2020 11:22
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
А он самописный или цельнотянутый у буржуинов?

Трудно сказать однозначно... идею он наверняка читал в книжках переводных от буржуинов.
Код у него оригинальный, никаких лишних чужих меток нет. В этом плане - он самописный.
И как он сам пишет - алгоритм у него несколько не такой, как в стандартных FORTH-ах.
Ну это подробнее лучше прочитать по ссылке выше, хотя там очень небрежный OCR... :-?

Насчет кода: исходный код хорошо причесанный мной - вот он:
Attachment:
FORTH86R.zip [11.25 KiB]
Downloaded 397 times

Компилируется без ошибок с совпадением всех контрольных сумм.
Работает под RAMFOS также, как оригинал.

Собственно, там в коде лишь один момент я не причесал, а оставил как есть.
По коду часто встречается что-то типа:
Code:
   RAR
   RST 7

Но это точно не оно, на RST 7 этот Форт точно не обращается...
Я хотел заменить это на 2 DB ... , но оставил пока как есть - посмотрю внимательнее,
что это может быть...

Пока я причесывал код - очень идеями FORTH-а проникся! :esurprised:
В нем для простоты всё взвалили на пользователя... :lol:
Разбор строки со стеками - не нужен, всё и так в обратной польской записи! :ebiggrin:
Но идея подкупает - она в коде очень хорошо видна: связанный список, который можно дополнять.

Я выше несколько ошибся: 1100Н - это как раз начало списка пользователя у этого Форта.
А текстовый буфер у него: 2100Н - это, вероятно, стандарт редактора "Микрон".

В общем в книге Шурика писали правду:"Форт может написать даже ребёнок", только вот
ребенку надо правильно объяснить основную идею...

В общем идеями я проникся, они мне понравились, и слежение за стеком уже не кажется
таким омерзительным, как раньше... :mrgreen:
Думаю, титула "начинающий фортер" я уже заслуживаю, ибо у меня уже родились крамольные
мысли, что там в коде почекрыжить и сделать иначе. 8)

_________________
iLavr


02 May 2020 21:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
По коду часто встречается что-то типа:
Code:
   RAR
   RST 7

Но это точно не оно, на RST 7 этот Форт точно не обращается...

Это некий аналог функции 0F818H co стоп-байтом 0FFH, который и декомпилируется как RST 7.
Если кардинальные переделки не вносить, то можно и не трогать эти байты - они не повлияют,
привязки к адресам там нет. Эта функция вывода строки на экран L0A06 выводит то, что сразу за
её вызовом дальше по коду:
Code:
L0860:
  POP  H                ;0860  E1
  CALL L0A06            ;0861  CD 06 0A
  DB   0AH              ;0864  0A 'CR'
  DB   25H              ;0865  25 '%'
  DB   0FFH             ;0866  FF stop-byte

L0867:
  LXI  H,L107E          ;0867  21 7E 10
  POP  PSW              ;086A  F1
  CALL L0A06            ;086B  CD 06 0A
  DB   0AH              ;086E  0A
  DB   'stek'           ;086F  73  s
                        ;0870  74  t
                        ;0871  65  e
                        ;0872  6B  k
  DB   20H              ;0873  20
  DB   'pust'           ;0874  70  p
                        ;0875  75  u
                        ;0876  73  s
                        ;0877  74  t
  DB   0FFH             ;0878  FF  stop-byte
  JMP  L0BEA            ;0879  C3 EA 0B

Вот "СТЕК ПУСТ" - это единственная русская фраза в тексте в КОИ-7.
Я её не трогал, чтобы контрольные суммы сошлись.
Но теперь трогать можно! :kruto:

_________________
iLavr


02 May 2020 23:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
А он самописный или цельнотянутый у буржуинов?

А знаешь, что интересно, может быть, он с "Сетуни-70" цельнотянутый ... :wink:
У Брусенцова там же был стековый язык отчень форто-подобный, хотя... это скорее
уж Форт тогда "подобный"...

И везде пишут, что даже ассемблера не было для "Сетуни-70" - в кодах легко писалось.
Вот я тоже тут думаю - почему в Форте слова токенами не заменяют...

_________________
iLavr


03 May 2020 00:02
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 85 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: shiny and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.