Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт ноя 21, 2017 19:37

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Пт апр 28, 2017 18:18 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 196
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Почитал, теперь думаю: чем отличется слова BLOCK и LOAD?
Код:
Есть область памяти для буферов(в "верхней" части сегмента, до стека).
[BCBT] (table)
BUFFERS:
[BUF0] (64x16)
[BUF1]
...

Buffer Control Block(BCB) [size=16]
{
hnd rw 1
ofs rw 1
fname rb 12 ; ********.*** (without 0)
}

? CONSTANT MAXBUF
? CONSTANT BCBT
? CONSTANT BUFFERS
? CONSTANT BCBSIZE
? CONSTANT BUFSIZE
VARIABLE CURBUF

: BCB BCBSIZE * BCBT + ; ( n -- BCBn )
: BUFFER BUFSIZE * BUFFERS + ; ( n -- BUFn )
: BUFFNAME BCB 2+ 2+ 2+ ; ( n -- filename(ptr of strz) )

: LOAD ( n -- BUFn: data; BCBn.ofs=n ) ;
: BLOCK ( n -- BUFn: data; BCBn.ofs=n ) LOAD ;
: UPDATE .... ;
: LIST CURBUF BUFFER 10 LITERAL DO DUP 40 LITERAL TYPE CR LOOP DROP ;
: SAVE-BUFFERS .... ;
: EMPTY-BUFFERS .... ;
: FLUSH SAVE-BUFFERS EMPTY-BUFFERS ;


...Сожалею что WINGLION умер. Я с его (SPRINTER)PC-FORTHа начинал понимать "внутринности". Возможно
без него и не было б моей упрощённой архитектуры...


Последний раз редактировалось _KROL Пн май 01, 2017 16:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Пт апр 28, 2017 18:33 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1987
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 33 раз.
_KROL писал(а):
Почитал, теперь думаю: чем отличется слова BLOCK и LOAD?
BLOCK - просто загрузка в память (например, для редактирования), LOAD - загрузка и исполнение.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Пт апр 28, 2017 18:41 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 196
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Точно! А то я забыл как-то...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Пт май 12, 2017 23:09 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 196
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Дорогие коллеги, пожалуйста всё-же проясните один вопрос на счёт словарей F83!
Я понял что:
1. CONTEXT - указатель на последний словарь, с которого идёт поиск
Т.е.

...(слова системы)
FORTH
...(пользовательские слова)
MYVOC(польз. словарь)

Так как словари связаны тоже списком, то поиск идёт тоже последовательно.
(и нет никакого стека, как в F94)

2. CURRENT - текущий словарь. В него вроде должны добавляться слова...
Но обьясните такую вещь: как могут добавляться слова допустим в FORTH, если
перед ним MYVOC? Или может я чего-нибудь не понимаю??

P.s. Была мысль о доп. поле в словах, но это же занимает и больше места!
P.p.s. MOleg про словари F94 хорошо написал. Спасибо ему!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Пт май 12, 2017 23:54 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 382
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Да уж, ДОС это сила. Зато api нет, а вместо них прерывания

Цитата:
Сейчас думаю над словами для работы с файлами

Это для трансляции текстов имеется ввиду?

_________________
Цель: написать форт-систему
Подцель: pe-формат, отладка, инициализация, словарь


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Сб май 13, 2017 12:55 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 196
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
Ага, была мысль сделать как в Turbo Pascal поддержку несколько файлов...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Сб май 13, 2017 13:04 
Не в сети

Зарегистрирован: Пт янв 06, 2017 14:57
Сообщения: 196
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.
(!) Hishnik, я только что заметил, что в теме "Навешивание обработчиков на компиляцию"(by Victor__v) я могу добавлять вложения(всё разрешено), а в своих (двух) темах не могу! С чем это связано?
...
Уточняю, при создании темы на некоторых(не всех) форумах мне также не разрешается добавлять файлы...
Перехожу на новый форум - Programming.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Ср июн 07, 2017 08:29 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 482
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
_KROL писал(а):
М... У Баранова есть VOC-LINK, что нету в F83(я всё-таки лучше буду придерживаться этого стандарта ;])

(я просто хочу написать для начала чисто классическую систему)

VOC-LINK это внутренняя кухня организации словарей. Она отдана на усмотрение создателя Форт-системы и в стандартах не фиксируется никак. И вообще тебе этот VOC-LINK понадобится только для того, чтобы написать слово FORGET (ну или MARKER). А пользователю твоей Форт-системы и вовсе не понадобится. Поэтому я и говорю "внутренняя кухня".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Ср июн 07, 2017 08:42 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 482
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
_KROL писал(а):
Но обьясните такую вещь: как могут добавляться слова допустим в FORTH, если перед ним MYVOC? Или может я чего-нибудь не понимаю??
Когда ты создаешь некий новый словарь резервируется ячейка, которая будет хранить адрес самого последнего слова в этом словаре. Она создается при исполнении VOCABULARY. И у каждого словаря такая ячейка есть. И у словаря FORTH тоже от рождения есть.

Поэтому добавление слова к словарю FORTH (переменная CURRENT при этом указывает на упомянутую выше ячейку для словаря FORTH, из нее ты адрес этой ячейки и берешь), после того как был создан словарь MYVOC делается так. Пусть последнее слово в словаре FORTH имеет имя BLI. А ты создаешь слово BLA. Так вот выбираешь из ячейки для адреса последнего слова в словаре FORTH адрес BLI и вставляешь в заголовок BLA. Чтобы BLA по цепочке указывала на BLI. А потом адрес слова BLA записываешь в ячейку для хранения последнего слова словаря FORTH. Все.
_KROL писал(а):
P.s. Была мысль о доп. поле в словах, но это же занимает и больше места!
Так это поле итак есть. Оно называется LFA. И больше ничего не надо.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Некоторые вопросы устройства системы(_KROL)
СообщениеДобавлено: Ср июн 07, 2017 09:23 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 482
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
_KROL писал(а):
AWORD FNEXT,"FNEXT"
cld
lodsw
jmp ax

_KROL писал(а):
Т.е. правильно:
FNEXT:
cld
lodsw
jmp [ax]
Нет здесь никакого правильно.
Первый вариант - прямой шитый код (шитый код хранит значения адресов куда прыгать для исполнения).
Второй вариант - косвенный шитый код (шитый код хранит значения адресов где лежат адреса куда прыгать для исполнения).

Первый вариант быстрее. Второй - классичнее. Собственно понятие PFA органическим образом подходит только ко второму варианту. При косвенном шитом коде PFA - адрес где начинается шитый код определения этого слова, если оно создавалось через двоеточие или адрес точки входа нативного кода слова, если оно определено в кодах. А поле CFA для определений в нативном коде указывает на и содержит значение PFA.
При прямом шитом коде понятие PFA как-то сохраняет смысл для слов, определенных через двоеточие, но теряет смысл для слов в нативном коде. Ибо точка входа в код определения - это сразу адрес CFA.


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

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


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

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


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

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