WARM: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
(не показано 15 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''WARM''' («горячий» старт) — стандартное слово [[Каллисто]]. «Тёплая» перезагрузка. [[Словарь]] сохраняется.
'''WARM''' («горячий» старт) — стандартное слово [[Каллисто]]. «Тёплая» перезагрузка. [[Словарь]] сохраняется.
  ( -- )
  WARM          ( −− )                               Тёплая перезагрузка, словарь сохраняется.
WARM не возвращает управление назад. Всё идущее после WARM игнорируется.


WARM не возвращает управление назад, всё идущее после WARM игнорируется.
== Ввод слова WARM ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша В↑|{{Серая клавиша|В↑}}]] {{ШГ←}} [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]]


== Детали реализации ==
== Реализация ==
WARM содержит высокоуровневый код, инициализирующий [[Каллисто]] без удаления слов из [[Словарь|словаря]].
WARM содержит высокоуровневый код, инициализирующий [[Каллисто]] без удаления слов из [[Словарь|словаря]].


WARM выводит на экран [[ВК|перевод строки]] и количество свободных байт в [[Словарь|словаре]], после чего проверяет содержимое переменной [[AUTOEXEC]]. Если оно отлично от нуля, управление передаётся на записанный в [[AUTOEXEC]] адрес с помощью [[EXECUTE]]. В противном случае происходит переход на [[QUIT]] — [[Каллисто]] начинает свой диалог с пользователем.
WARM выводит на экран [[ВК|перевод строки]] и [[UNUSED|количество свободных байт]] в [[Словарь|словаре]], после чего проверяет содержимое переменной [[APP]]. Если оно отлично от нуля, управление передаётся на записанный в [[APP]] [[CFA|токен]] с помощью [[EXECUTE]]. В противном случае происходит переход на [[QUIT]] — [[Каллисто]] начинает свой диалог с пользователем.
<pre>
492 ;#WARM
493 ; WARM            ( −− )                              Тёплая перезагрузка, словарь сохраняется.
494 ; Если может, запускает слово, токен которого лежит в APP
495 LWARM:          .DB    4
496                .TEXT  "WARM"                  ; К
497                .DW    LCOLD
498 WARM:          .DW CALL
499 RWARM:          .DW SPSTO,RPSTO,DEC            ; Объём памяти выводится в десятичной системе
500                .DW CLD                        ; Если мы выключим МК−161, начать сначала
501                .DW ZERO,FONTSTO,DARK,LITB      ; Установить шрифт 0, вывод тёмным по светлому
502                .DB 13                          ; RC
503                .DW EMIT,FREE,DOT              ; Вывести размер свободной памяти
504                .DW PDOTQ
505                .DB 13                          ; Начать с CR
506                .TEXT "байт свободно"          ; Суровое московское приветствие Каллисто
507                .DW BUFN,ZSTORE                ; Сбросить флаг UPDATE и номер загруженного блока
508                .DW DISKOFF,LBRAC
509                .DB 2bH,8fH                    ; 11151 FORTH (xt)
510                .DW DEFIN, AUTOEXEC,UAT
511                .DW QDUP,ZBRAN,RQUIT
512                .DW EXEC                        ; Начать исполнение стартового кода, обычно это QUIT
513                .DW BRAN,RQUIT                  ; На случай, если слово вернуло управление
</pre>


== Ссылки ==
== Ссылки ==
* {{Исходник|WARM|WARM}}
* См. статью [[Начальная загрузка Каллисто]]
* См. слова [[QUIT]], [[ABORT]] и [[BYE]]
* См. также [[COLD]] — «холодный» старт.
* См. также [[COLD]] — «холодный» старт.


Строка 15: Строка 44:
{{нет иллюстраций}}
{{нет иллюстраций}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Описание бета-версии Каллисто]]
[[Категория:Слова высокого уровня]]

Текущая версия от 05:14, 9 ноября 2017

WARM («горячий» старт) — стандартное слово Каллисто. «Тёплая» перезагрузка. Словарь сохраняется.

WARM           ( −− )                               Тёплая перезагрузка, словарь сохраняется.

WARM не возвращает управление назад. Всё идущее после WARM игнорируется.

Ввод слова WARM[править]

В режиме ЛАТ последовательно нажмите четыре клавиши  В↑   ШГ←   ×   ÷ 

Реализация[править]

WARM содержит высокоуровневый код, инициализирующий Каллисто без удаления слов из словаря.

WARM выводит на экран перевод строки и количество свободных байт в словаре, после чего проверяет содержимое переменной APP. Если оно отлично от нуля, управление передаётся на записанный в APP токен с помощью EXECUTE. В противном случае происходит переход на QUITКаллисто начинает свой диалог с пользователем.

 492 ;#WARM
 493 ; WARM             ( −− )                               Тёплая перезагрузка, словарь сохраняется.
 494 ; Если может, запускает слово, токен которого лежит в APP
 495 LWARM:          .DB     4
 496                 .TEXT   "WARM"                  ; К
 497                 .DW     LCOLD
 498 WARM:           .DW CALL
 499 RWARM:          .DW SPSTO,RPSTO,DEC             ; Объём памяти выводится в десятичной системе
 500                 .DW CLD                         ; Если мы выключим МК−161, начать сначала
 501                 .DW ZERO,FONTSTO,DARK,LITB      ; Установить шрифт 0, вывод тёмным по светлому
 502                 .DB 13                          ; RC
 503                 .DW EMIT,FREE,DOT               ; Вывести размер свободной памяти
 504                 .DW PDOTQ
 505                 .DB 13                          ; Начать с CR
 506                 .TEXT "байт свободно"           ; Суровое московское приветствие Каллисто
 507                 .DW BUFN,ZSTORE                 ; Сбросить флаг UPDATE и номер загруженного блока
 508                 .DW DISKOFF,LBRAC
 509                 .DB 2bH,8fH                     ; 11151 FORTH (xt)
 510                 .DW DEFIN, AUTOEXEC,UAT
 511                 .DW QDUP,ZBRAN,RQUIT
 512                 .DW EXEC                        ; Начать исполнение стартового кода, обычно это QUIT
 513                 .DW BRAN,RQUIT                  ; На случай, если слово вернуло управление

Ссылки[править]


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.