Редактирование:
QUIT
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 3427 ;#QUIT 3428 ; QUIT ( −− ) Передать управление на пульт. Ждать команд молча, без приглашения. 3429 ; Очистить стек возвратов, устанавить состояние исполнения и возвратить управление на пульт Каллисто. 3430 ; Не выдаётся никаких сообщений. Резидентный монитор среды Каллисто. 3431 LQUIT: .DB 4 3432 .TEXT "QUIT" 3433 .DW LPAREN 3434 QUIT: .DW CALL 3435 RQUIT: .DW BLK,ZSTORE, LBRAC 3436 QUI: .DW RPSTO, CR, QUERY, INTER, STATE,UAT 3437 .DW ZEQU, ZBRAN,QUI, PDOTQ 3438 .DB 3 3439 .TEXT " ok" ; Это приглашение не будет видно при 2 FONT! 3440 .DW BRAN,QUI </pre> Реализация из SP-Forth 4.20: <pre> : MAIN1 ( -- ) BEGIN REFILL WHILE INTERPRET OK REPEAT BYE ; : QUIT ( -- ) ( R: i*x ) \ CORE 94 \ Сбросить стек возвратов, записать ноль в SOURCE-ID. \ Установить стандартный входной поток и состояние интерпретации. \ Не выводить сообщений. Повторять следующее: \ - Принять строку из входного потока во входной буфер, обнулить >IN \ и интепретировать. \ - Вывести зависящее от реализации системное приглашение, если \ система находится в состоянии интерпретации, все процессы завершены, \ и нет неоднозначных ситуаций. BEGIN CONSOLE-HANDLES 0 TO SOURCE-ID 0 TO SOURCE-ID-XT [COMPILE] [ ['] MAIN1 CATCH ['] ERROR CATCH DROP ( R0 @ RP! \ стек не сбрасываем, т.к. это за нас делает CATCH :) S0 @ SP! \ стек сбрасываем, т.к. OPTIONS может оставить значения :( AGAIN ; </pre> === Советская реализация === Юрий Семёнов приводит следующее определение слова QUIT через [[QUERY]] и [[INTERPRET]] (стр. 56): : QUIT 0 BLK ! ( переход в пультовый режим) [ ( установка режима исполнения) BEGIN ( начало бесконечного цикла ожидания) !RP ( установка указателя возвратного стека в начальное состояние) ↵ QUERY ( приглашение ввести команду с терминала) INTERPRET ( интерпретация и исполнение команды) STATE @ 0= IF ." OK" ( сообщение о благополучном выполнении в режиме "исполнения") THEN 0 ( засылка 0 для поддержания цикла) UNTIL ; Оно же, с использованием слова [[0!]] и цикла [[BEGIN]]…[[AGAIN]]: : QUIT BLK 0! ( переход в пультовый режим) [ ( установка режима исполнения) BEGIN ( начало бесконечного цикла ожидания) !RP ( установка указателя возвратного стека в начальное состояние) ↵ QUERY ( приглашение ввести команду с терминала) INTERPRET ( интерпретация и исполнение команды) STATE @ 0= IF ." OK" ( сообщение о благополучном выполнении в режиме "исполнения") THEN AGAIN ; У Баранова-Ноздрунова определение слова QUIT выглядит так (стр. 81): : QUIT ( ---> ) BEGIN ↵ ." >" ( Приглашение к вводу) TIB 80 EXPECT ( Ввести текст с терминала) SPAN @ #TIB ! ( Установить его длину) 0 TIB #TIB @ + C! ( Установить ограничитель) 0 >IN ! 0 BLK ! ( Установить входной поток) INTERPRET ( Интерпретировать введённый текст) STATE @ 0= IF ." OK" THEN ( Подтверждение) AGAIN ; В ядре ФОРТ-ЕС слово QUIT называлось ФОРТ-СИСТЕМА Вот его описание и определение: <PRE> ФОРТ-СИСТЕМА * -> ТЕКСТОВЫЙ ИНТЕРПРЕТАТОР ФОРТ-СИСТЕМЫ 40 Экран номер 40 ( 31.03.84 EXPECT OUERY INTERPRET ФОРТ-СИСТЕМА X ) : ФОРТ-СИСТЕМА ( ->) BEGIN QUERY INTERPRET AGAIN ; </PRE> Определение слова QUIT в FORTH ИТЭФ: <PRE> HEAD 204Q,'QUI',324Q,QUIT,$COL ; QUIT DW ZERO,BLK,STORE,LBRAC QUI: DW RPSTO,CR,QUERY,INTER,STATE,AT DW ZEQU,ZBRAN,QUI-$,PDOTQ DB 3,' OK' DW BRAN,QUI-$ </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице