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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
(не показано 16 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
'''WARM''' («горячий» старт) — стандартное слово [[Каллисто]]. «Тёплая» перезагрузка. [[Словарь]] сохраняется.
 
'''WARM''' («горячий» старт) — стандартное слово [[Каллисто]]. «Тёплая» перезагрузка. [[Словарь]] сохраняется.
  ( -- )
+
  WARM          ( −− )                               Тёплая перезагрузка, словарь сохраняется.
 +
WARM не возвращает управление назад. Всё идущее после WARM игнорируется.
  
 +
== Ввод слова WARM ==
 +
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша В↑|{{Серая клавиша|В↑}}]] {{ШГ←}} [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]]
 +
 +
== Реализация ==
 
WARM содержит высокоуровневый код, инициализирующий [[Каллисто]] без удаления слов из [[Словарь|словаря]].
 
WARM содержит высокоуровневый код, инициализирующий [[Каллисто]] без удаления слов из [[Словарь|словаря]].
  
WARM выводит на экран [[ВК|перевод строки]] и количество свободных байт в [[Словарь|словаре]], после чего проверяет содержимое переменной [[AUTOEXEC]]. Если оно отлично от нуля, управление передаётся на записанный в [[AUTOEXEC]] адрес с помощью [[EXECUTE]]. В противном случае происходит переход на [[QUIT]] — [[Каллисто]] начинает свой диалог с пользователем.
+
WARM выводит на экран [[ВК|перевод строки]] и [[UNUSED|количество свободных байт]] в [[Словарь|словаре]], после чего проверяет содержимое переменной [[APP]]. Если оно отлично от нуля, управление передаётся на записанный в [[APP]] [[CFA|токен]] с помощью [[EXECUTE]]. В противном случае происходит переход на [[QUIT]] — [[Каллисто]] начинает свой диалог с пользователем.
 
+
<pre>
WARM не возвращает управление назад, всё идущее после WARM игнорируется.
+
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]] — «холодный» старт.
  
  
 
{{нет иллюстраций}}
 
{{нет иллюстраций}}
{{заготовка}}
 
 
[[Категория:Слова Каллисто]]
 
[[Категория:Слова Каллисто]]
 +
[[Категория:Слова высокого уровня]]

Текущая версия на 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                  ; На случай, если слово вернуло управление

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


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