Редактирование:
LOAD
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 3574 ;#LOAD 3575 ; LOAD ( c −− ) Загрузить с диска и интерпретировать экран номер c. 3576 LLOAD: .DB 4 3577 .TEXT "LOAD" ; ( i∗x №блока −− j∗x) 3578 .DW LMESS ; Загрузить экран с номером u (компилирует или исполняет) 3579 LOAD: .DW CALL, BLK,UAT,TOR, IN,UAT,TOR, IN,ZSTORE, BLK,STORE 3580 .DW INTER, FROMR,IN,STORE, FROMR,BLK,STORE, EXIT </pre> === Советская реализация === Юрий Семёнов приводит следующее определение слова LOAD (стр. 135): : LOAD BLK @ >IN @ ( в стеке номер загружаемого экрана N, старые значения переменных BLK и >IN) 0 >IN ! ( обнуление указателя экранного буфера) ROT ( в стеке BLK,>IN,N ) BLK ! ( BLK=N, в стеке BLK, >IN ) INTERPRET ( загрузка и интерпретация текста блока с номером BLK слово за словом) >IN ! ( восстановление прежнего значения >IN) BLK ! ; ( восстановление прежнего значения BLK) Там же на стр. 158 приводится более длинное определение, позволяющее описывать слова, размещённые на двух или более экранах: : LOAD BLK @ >R >IN @ >R 0 >IN ! BLK ! INTERPRET R> >IN ! R> BLK ! ; У Баранова-Ноздрунова определение слова LOAD выглядит так (стр. 80): : LOAD ( N:Номер ---> Интерпретировать экран) >IN @ >R BLK @ >R ( Сохранить текущий) BLK ! 0 >IN ! ( Установить новый) INTERPRET ( Проинтерпретировать его) R> BLK ! R> >IN ! ; ( Вернуться к прежнему) Описание и определение слова LOAD в ядре ФОРТ-ЕС: <PRE> LOAD +N-> ИНТЕРПРЕТИРОВАТЬ ЭКРАН С НОМЕРОМ +N 41 Экран номер 41 ( 31.03.86 -TRAILING ' ['] [COMPILE] LOAD THRU ;S --> ) : LOAD ( N-> ИНТЕРПРЕТИРОВАТЬ БЛОК С НОМЕРОМ N) >IN @ >R BLK @ >R BLK ! >IN 0! INTERPRET R> BLK ! R> >IN ! ; </PRE> Определение слова LOAD в FORTH ИТЭФ: <PRE> HEAD 204Q,'LOA',304Q,LOAD,$COL ; LOAD DW BLK,AT,IN,AT,ZERO,IN,STORE,ROT,BLK DW STORE,INTER,IN,STORE,BLK,STORE,SEMI </PRE> === colorForth (cf2019.nasm 2019 Sep 14) === <PRE> ; convert block start address to cell address, add the RELOCATED colorForth system base blockToCellAddress: ; ( blk -- a' ) \ add the RELOCATED offset and convert to cell address add _TOS_, [ v_offset ] ; add the RELOCATED block number offset shl _TOS_, 0x08 ; convert to cell address ret cellAddressToBlock: ; ( a -- blk ) \ convert cell address to block number and subtract the RELOCATED block number offset shr _TOS_, 0x08 ; convert cell address to block number sub _TOS_, [ v_offset ] ; subtract the block number of block 0 ret _load_: ; ( blk -- ) \ load the given block number call blockToCellAddress ; add the RELOCATED block number offset and convert to cell address push edi mov edi, _TOS_ _DROP_ interpret: mov edx, [ ( edi * 4 ) + 0x00 ] inc edi and edx, byte 0x0F call [ ( edx * 4 ) + tokenActions ] jmp short interpret </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице