KRIEGSSPIELE!
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

[__My 4tH__]

Участников: 2

Страница 1 из 2 1, 2  Следующий

Перейти вниз

[__My 4tH__] Empty [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 5:37 pm

Я тут готовлюсь выпустть новую версию. Как тебе мой FIND(я буду уже хочу со словарями):
Код:
: (FIND) ( Addr,Len,VocNFA --> FALSE/NFA,TRUE )
  S@ -ROT R> COUNTSZ + 5 + @ ( VocNFA,Addr,Len,NFAn )
    BEGIN
      COUNTSZ ( VocNFA,Addr,Len,NFAn,Size )
      2OVER NIP = ( VocNFA,Addr,Len,NFAn,flag )
      IF ( VocNFA,Addr,Len,NFAn )
        3DUP SWAP ( VocNFA,Addr,Len,NFAn,Addr,NFAn,Len )
        COMPARE ( VocNFA,Addr,Len,NFAn, flag )
        IF -ROT 2DROP 1- NIP TRUE UNBEGIN EXIT THEN
      THEN
      1- COUNTSZ + ( VocNFA,Addr,Len,LFA )
      @ ( VocNFA,Addr,Len,newNFA )
      2OVER DROP OVER = ( VocNFA,Addr,Len,newNFA,flag )
      OVER OR ( VocNFA,Addr,Len,newNFA,fullflag )
    UNTIL
    2DROP 2DROP FALSE
;

\ Поиск в словарях: CONTEXT->CURRENT->USER->FORTH
: FIND ( Addr,Len --> FALSE/NFA,TRUE )
  2DUP CONTEXT @ (FIND)
  DUP NOT ?EXIT DROP
  2DUP CURRENT @ (FIND)
  DUP NOT ?EXIT DROP
  2DUP ' USER DROP @ (FIND) \ Выбрасываем флаг, т.к. слово всё-равно в системе должно быть!
  DUP NOT ?EXIT DROP
  ' FORTH DROP @ (FIND)
;
Словарь у меня представляет собой:
Код:
**********************
*...Заголовок...*
**********************
* call VOC_does *
*****************
* dw Latest    *
* dw VLFA      *
****************


Последний раз редактировалось: _KROL (Пт Июл 28, 2017 6:20 pm), всего редактировалось 1 раз(а)

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Пт Июл 28, 2017 5:47 pm

Ну, как бы, прежде, чем делать словари, надо бы решить, зачем они нужны. Тем более, сразу два взаимоисключающих подхода: CURRENT/CONTEXT и USER. Попробуйте прикинуть, какая задача потребует такой схемы словарей?
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 5:52 pm

Ну не знаю. У меня первоначально словари:
FORTH (системный)
USER (пользовательский, по умолчанию слов в нём нет)

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Пт Июл 28, 2017 5:58 pm

_KROL пишет:FORTH/USER
Это подход, скорее, многопользовательских FORTH-систем. И в USER при этом заранее помещаются все USER-переменные. См. "Начальный курс" Броуди.
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 5:59 pm

Вот, я выделил структуры:
Код:
TEMPLATE
****************************\
* NFA:                    *|
* sz_flags rb 1 ; IC0nnnnn *|
* I=IMM  C=CONLY  n=size *| HEADER
* name rb ?                *|
****************************|
* LFA rw 1                */
****************************
* CFA: call ?              *
****************************
* PFA: rw ?                *
****************************

AWORD
*****************
* ...HEADER...  *
*****************
* ...(on asm)  *
*****************

FWORD
*****************
* ...HEADER...  *
*****************
* call DOES    *
*****************
* dw ...        *
*****************

VARIABLE
*****************
* ...HEADER...  *
*****************
* call VAR_does *
*****************
* data rw 1    *
*****************

2VARIABLE
*******************
*  ...HEADER...  *
*******************
* call _2VAR_does *
*******************
* data rd 1      *
*******************

CONSTANT
*******************
*  ...HEADER...  *
*******************
* call CONST_does *
*******************
* data rw 1      *
*******************

2CONSTANT
*********************
*  ...HEADER...    *
*********************
* call _2CONST_does *
*********************
* data rd 1        *
*********************

VECT
******************
*  ...HEADER...  *
******************
* call VECT_does *
******************
* pointer rw 1  *
******************

VOCABULARY
*****************
* ...HEADER...  *
*****************
* call VOC_does *
*****************
* dw Latest    *
* dw VLFA      *
*****************

А что ты думаешь о хранении двойных слов в стеке? А то Ethereal мне там советовал писать, как на PDP.

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 6:04 pm

А, ладно! Буду сейчас отлаживать свой форт...

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Пт Июл 28, 2017 6:24 pm

_KROL пишет:А что ты думаешь о хранении двойных слов в стеке?
Ну, как бы, то FORTH имеет два набора: 2- и D-cлов, что подразумевает, что две ячейки и "естественное представление" двойного слова - вещи совершенно разные. И, судя по тому, что я совершенно не помню, как я реализовал это у себя, важность этого выбора достаточно сиюминутна. (Проверил: хранил в стиле IBM - младший по меньшему адресу. Стек рос вверх (по BX)). Для чего Вы будете использовать двойные слова?
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 10:03 pm

А ведь слова для работы с двойными словами часто надобятся!

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Пт Июл 28, 2017 10:10 pm

Код:
Блин, хотел было пользоваться w.w.w.downgradefiles.tk/, но потом увидел, что там файлы видны(внизу справа есть вкладка). Вот, вроде обновил циклы: rgho.st/6Mv86jrdH (день доступна ссылка).
Sad
Увидел это:
Код:
Новые пользователи этого форума не могут публиковать внешние ссылки и адреса email в течение первых 7 дней после регистрации. За более подробной информацией обращайтесь, пожалуйста, к администрации форума.

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Пт Июл 28, 2017 10:45 pm

_KROL пишет:А ведь слова для работы с двойными словами часто надобятся!
Но, если они надобятся, значит, способ их реализации диктуется этой надобностью.
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Сб Июл 29, 2017 1:30 pm

_KROL пишет:Вот, вроде обновил...
Посмотрел на кошачьем форуме Ваши материалы. Обнаружил следующую методическую ошибку:

> ... пока система не работает!.. Самостоятельная система/DOS...
В таком виде FORTH работать не может. Он должен начать запускаться до того, как будет дописан. Тем более, в двух конфигурациях. Сначала надо организовать работающий Цикл Управления, а уже потом - навешивать свистелки и перделки.

Другая неприятность (для меня) - Ваша (гитхабовская) манера выкладывать файлы общей кучей, без литературного обрамления. Мне кажется: если вы хотите, чтобы кто-то прочел то, что вы пишете, пишите интересно.
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Ср Авг 02, 2017 12:02 pm

Обновление, теперь система работает(кроме компиляции).
Другая неприятность (для меня) - Ваша (гитхабовская) манера выкладывать файлы общей кучей, без литературного обрамления.
Ну, раньше было хуже. У меня же даже слова делятся на высокоуровневые и низкоуровневые, да и по папочкам... Есть конечно пару файлов в корне.
Лучше попробуйте тогда открыть в FASM Editor: asmworld.ru/content/filez/tools/FEditor-v2.0.rar
P.S. Я сам за это GitHub не люблю.

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Глюки!

Сообщение автор _KROL Ср Авг 16, 2017 9:09 pm

(по поводу первого "коммента" в FOURTH OS)
P.s.(HELP!) В моём Форте почему-то какие-то глюки, когда я хотел послать байты напрямую в видеобуфер(B800:?), т.е. использую слова с указателями типа FAR. Как ты думаешь, с чем это связано?

Вроде переделал их правильно(не в той системе, что выложена мною на "форуме кота"):
Код:
;; @L ( seg:ofs --> [seg:ofs] )
;; Взять слово по адресу seg:ofs.
AWORD @L,"@L",0
 mov es,dx
 pop bx,es
 mov ax,[es:bx]
 push ax
 mov dx,es
AEND

;; !L ( x seg:ofs --> [seg:ofs]=x )
;; Поместить слово x по адресу seg:ofs.
AWORD !L,"!L",0
 mov es,dx
 pop bx,es,ax
 mov [es:bx],ax
 mov dx,es
AEND

;; C@L ( seg:ofs --> byte[seg:ofs] )
;; Взять байт по адресу seg:ofs.
AWORD C@L,"C@L",0
 mov es,dx
 pop bx,es
 mov al,[es:bx]
 push ax
 mov dx,es
AEND

;; C!L ( x seg:ofs --> byte[seg:ofs]=x )
;; Поместить байт Cx по адресу seg:ofs.
AWORD C!L,"C!L",0
 mov es,dx
 pop bx,es,ax
 mov [es:bx],al
 mov dx,es
AEND
а всё равно...
Код:
: cls
0 18 DO
0 4F DO
14 B800 IJ 2* NOP C!L
LOOP
LOOP
;

: a 14 B800 0 NOP C!L NOP ;
...дают какие-то странный сбои Sad

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Ср Авг 16, 2017 10:47 pm

А разве в FASM "mov откуда,куда", а не "mov куда, откуда"?
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Ср Авг 16, 2017 10:57 pm

Да, как в T(M)ASM.

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Ср Авг 16, 2017 10:59 pm

_KROL пишет:Да, как в T(M)ASM.
Боюсь, и там, и там - наоборот... "mov куда, откуда"
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 2:18 pm

Извини, я вчера чего-то не то писал. Под "Да" я почему-то подрузомевал "mov куда, откуда". Просто привык к src->dst )
А гед ты тут ошибку заметил(в коде)???

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Чт Авг 17, 2017 2:21 pm

_KROL пишет:А гед ты тут ошибку заметил(в коде)???

mov es,dx
es портится
mov dx,es


Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 2:27 pm

Вот идиот(я)!!!
Да, должнор быть всё наоборот, т.е. es сохраняться.

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 2:29 pm

Однако, как ни крути всё-равно что-то странное твориться. Даже с
Код:
;; @L ( seg:ofs --> [seg:ofs] )
;; Взять слово по адресу seg:ofs.
AWORD @L,"@L",0
 mov dx,es
 pop bx,es
 mov ax,[es:bx]
 push ax
 mov es,dx
AEND

;; !L ( x seg:ofs --> [seg:ofs]=x )
;; Поместить слово x по адресу seg:ofs.
AWORD !L,"!L",0
 mov dx,es
 pop bx,es,ax
 mov [es:bx],ax
 mov es,dx
AEND

;; C@L ( seg:ofs --> byte[seg:ofs] )
;; Взять байт по адресу seg:ofs.
AWORD C@L,"C@L",0
 mov dx,es
 pop bx,es
 mov al,[es:bx]
 push ax
 mov es,dx
AEND

;; C!L ( x seg:ofs --> byte[seg:ofs]=x )
;; Поместить байт Cx по адресу seg:ofs.
AWORD C!L,"C!L",0
 mov dx,es
 pop bx,es,ax
 mov [es:bx],al
 mov es,dx
AEND

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 2:33 pm

Вот, даже выложил http://rgho.st/7L7YHnJ6B

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Чт Авг 17, 2017 2:54 pm

_KROL пишет:Однако, как ни крути всё-равно что-то странное твориться.
А почему бы и нет, собственно?
Одно из двух: Вы наврали в программировании и требуется разобрать код на части и проверить каждую часть в отдельности, а потом соединять попарно, снова проверяя... или Вы наврали во взаимодействии с системой и требуется найти работающий в ней пример и пытаться его, опять постепенно, приблизить к тому, что Вам надо. Просто так написать большой кусок и попросить найти в нем ошибки - не выход. Хотя бы потому, что исправления породят новые ошибки...

И, воопче, наблюдение за поиском ошибок для м-моей м-пользы на Форуме будет полезным.
(Только не забывайте, если надо, просить меня удалять потерявшие, по Вашему мнению, актуальность фрагменты).

Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 3:10 pm

Кхм. Я не везде там "наврал", ибо в низкоуровневых словах у меня почти всё отточено, кроме, разумеется, этого момента и SSEG/DSEG(я до них ещё не добрался).
P.s. А вообще извини. Наверное над этим проектом вечно буду работать один я!

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор Gudleifr Чт Авг 17, 2017 3:27 pm

_KROL пишет:Наверное над этим проектом вечно буду работать один я!
Разумеется! Он же Ваш. Вы даже не потрудились описать, что, как и зачем делается, зачем нужны все эти файлы в Вашем архиве, в чем состоят глюки... Разве не очевидно, что когда человека спрашивают: "Почему эта хреновина не работает?" - он начинает тупо думать: "А почему она вообще должна работать?" Мои учителя в таком случае отвечали: "Не работает? Значит, Вы что-то сделали неправильно!"
Gudleifr
Gudleifr
Admin

Сообщения : 3219
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

[__My 4tH__] Empty Re: [__My 4tH__]

Сообщение автор _KROL Чт Авг 17, 2017 8:27 pm

Вы просто не внимательны. Кое-что я описал в DOCS\SOURCES.TXT. Да и вообще в DOCS я обычно сейчас и пишу всё!

_KROL

Сообщения : 93
Дата регистрации : 2017-07-28
Возраст : 24
Откуда : Беларусь

Вернуться к началу Перейти вниз

Страница 1 из 2 1, 2  Следующий

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения