Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт дек 01, 2020 18:44

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 31, 2008 20:44 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
я так, кстати и не понял, что означает расширение fts

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 31, 2008 20:46 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
вопрос писал(а):
я так, кстати и не понял, что означает расширение fts

ForTh Source ;)
расширение попросило поменять несколько человек, чтобы не пересекаться с СПФовским *.f

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 02, 2009 10:41 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Ктати, не помешало бы и описание этих циклов
Там имеется статейка. Но вот незадача, почитав всё (многое) собрал себе форк, а он не желает работать - в бесконечном цикле выводит построчно сообщение
Error: Неверный хэндл

интересно, откуда начинать искать ошибку, чтобы не долго?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 02, 2009 19:16 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
вопрос писал(а):
Error: Неверный хэндл

оп, интересно.
вышли мне на почту пожалуйста fork.ini и options.f
и, если не сложно dir по корневому каталогу.
да, и какая у тебя винда стоит.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 02, 2009 21:17 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
98 ME, файлы - позже

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 03, 2009 18:38 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
вопрос писал(а):
98 ME, файлы - позже

ясно. К сожалению у меня просто не осталось под рукой места, где есть 9х ветка виндов 8(
но ошибка узнаваема, поэтому попробуй в файле .\kernel\os\win\file_io.f
заменить в RdLine ( buff # fid --> # flag )
первую строку на:
<pre>
H-STDIN OVER = IF READ-FILE THROW TRUE EXIT THEN
</pre>
дальше трогать не надо ничего.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 03, 2009 21:01 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
да, запустился, будем смотреть дальше

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Ср апр 05, 2017 14:00 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1061
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
У меня форк не ловит аппаратные исключения
Форк выводит сообщение и закрывается
Windows 10

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Чт апр 06, 2017 16:12 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
Цитата:
У меня форк не ловит аппаратные исключения
Форк выводит сообщение и закрывается
Windows 10

не имею под рукой десятой винды.
а в режиме совместимости что?

ну и пример как бы не лишний

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Чт апр 06, 2017 21:23 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1061
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
в совместимости также
а примеры
10 0 /
3 @

: tt 10 @ 2 + ;
' tt catch

результат один и тот же

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Пт апр 07, 2017 16:41 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
под семеркой не наблюдаю (64 битной), а десятки под рукой нет.
В чем разница не понятно 8(

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Сб май 09, 2020 16:04 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1061
Благодарил (а): 1 раз.
Поблагодарили: 8 раз.
Еще одна неприятность.
Решил я посмотреть как Форк создает лямбды.

Ввел SEE <: и словил вылет

Если что:
Винда 8,
аппаратные исключения там перехватываются, проверял.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Чт май 14, 2020 20:01 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
Victor__v писал(а):
Ввел SEE <: и словил вылет

скорее всего все же с перехватом исключений проблема.
Посмотрю на выходных.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: разруливание мелких проблем
СообщениеДобавлено: Пт май 15, 2020 19:13 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5016
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
В определении ~NAME был пропущен вариант определения слова COMPILE
замените код see.fts на следующий:

source file: see.fts
\ 28.06.2009 ~mOleg
\ Copyright [C] 2009-2013 mOleg mOlegg@ya.ru
\ декомпиляция подпрограммного шитого кода

math/ useful.fts
util/ ufl.fts
memory/ dump.fts
string/ print.fts
branch/ handlers.fts
vocs/ deref.fts
vocs/ unit.fts

ALSO HIDDEN DEFINITIONS

VECT STARE \ раннее объявление

Unit: disForth

20 VALUE lines# \ количество линий для отображения
USER Lines \ сколько линий уже показано

\ после отображения lines# линий ожидать нажатия клавиши
\ в случае нажатия ESC вернуть false, по нажатию любой другой клавиши true
: ?lines ( --> )
Lines @ IF -1 Lines +!
ELSE lines# Lines !
KEY 0x1B = IF FALSE ;THEN
THEN TRUE ;

\ ловим либо определения, либо данные
: ~box ( addr --> # )
>L TOKEN L+ L@ @ TOKEN +
CELL L+

\ если call то считаем, что <: встретился
L@ B@ 0xE8 = IF ." <: "
L> OVER TOKEN CELL + - STARE ." ;> "
;THEN

L@ SCNT@ DROP OVER > IF ." (BOX) " L> OVER ELSE L> COUNT THEN
<| [CHAR] " KEEP KEEPS [CHAR] " KEEP |> PTYPE ;

\ отобразить литеральные данные
: ~LIT ( n --> )
DUP BODY> *IF SWAP ." ( " H. ." ) " ID>ASC
<| [CHAR] ' KEEP Bl_ KEEP KEEPS |> TYPE
;THEN DROP
DUP N. ." ( " H. ." )" ;

\ отобразить имя по адресу внутри CFA+PFA определения
: ~name ( addr --> )
BODY>
*IF ID>ASC <| KEEPS Bl_ KEEP |> TYPE
ELSE ." ???" H.
THEN ;

\ отобразить содержимое
: ~NAME ( addr --> # )
DUP TOKEN@
DUP ['] (LIT) = IF DROP TOKEN + @ ~LIT TOKEN CELL + ;THEN
DUP ['] (DLIT) = IF DROP TOKEN + D@ D. TOKEN 2 CELLS + ;THEN
DUP ['] BRANCH = IF DROP TOKEN + ." BRANCH " DUP @ + H. TOKEN REF + ;THEN
DUP ['] ?BRANCH = IF DROP TOKEN + ." ?BRANCH " DUP @ + H. TOKEN REF + ;THEN
DUP ['] N?BRANCH = IF DROP TOKEN + ." N?BRANCH " DUP @ + H. TOKEN REF + ;THEN
DUP ['] -BRANCH = IF DROP TOKEN + ." -BRANCH " DUP @ + H. TOKEN REF + ;THEN
DUP ['] *BRANCH = IF DROP TOKEN + ." *BRANCH " DUP @ + H. TOKEN REF + ;THEN
DUP ['] COMPILE = IF DROP TOKEN + ." COMPILE " TOKEN@ ~name TOKEN TOKEN + ;THEN
DUP ['] (BOX) = IF DROP ~box ;THEN
NIP ~name TOKEN ;

\ по указанному адресу находится токен?
: ?TOKEN ( addr --> flag )
DUP TOKEN@ IMAGE-BASE HERE BETWEEN
IF B@ 0xE8 = ;THEN
DROP FALSE ;

\ декодирование одного токена ШК
: DECODE ( addr --> asc # )
DUP CR H. ." \t"
DUP ?TOKEN IF ~NAME ;THEN
DUP B@ 0xE9 = IF ." JUMP " DUP 1 + @ + ~LIT TOKEN ;THEN
DUP B@ 0x90 = IF DROP ." nop" 1 ;THEN
DUP B@ 0xC3 = IF DROP ." EXIT " 1 ;THEN
DUP B@ 0x68 = IF ." RLIT " 1 + @ ~LIT TOKEN ;THEN
DUP B@ 0x05 = IF ." off_" 1 + @ ~LIT TOKEN ;THEN
@ ~LIT CELL ;

\ дизФорт куска кода длиной в # байт с адреса addr
: (STARE) ( addr # --> ) OVER +
<: BEGIN DDUP < WHILE
OVER DECODE *WHILE
ROT + SWAP
?lines WHILE
REPEAT THEN THEN -2 THROW \ тут просто ошибка нужна
;> CATCH TDROP ;

\ дизФорт слова, начинающегося с адреса addr
F: (DIS) ( addr --> )
lines# Lines !
BODY>
DUP &PRI GET-ATTR IF THROW THEN
ABORT" заданное слово является примитивом!"
DUP LINK>C SWAP to_flag off_eow W@ STARE ;F

' (STARE) IS STARE

EndUnit

ALSO ROOT DEFINITIONS

\ дизФорт слова, которому принадлежит addr
: DIS ( addr --> ) BODY> disForth (DIS) ;

\ дизФорт слова с именем name
: SEE ( / name --> ) ' disForth (DIS) ;

RECENT RECENT

?ABSENT test{ \EOF -- тестовая секция ------------------------------------------
test{

}test


FORTH(0)>SEE <:

0x005CF317 COMPILE (BOX)
0x005CF321 HERE
0x005CF326 nil
0x005CF32B ,
0x005CF330 536870946 ( 0x20000022 )
0x005CF339 EXIT Ok
FORTH(0)> Ok

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB