Палитра Каллисто

Материал из ПМК вики
Перейти к навигации Перейти к поиску

Чтобы предоставить вам больше места для творчества, следующие слова не включены в ядро Каллисто. При необходимости они могут быть скопированы отсюда и добавлены программистом в свой исходный код.


Константы

0 Constant false
-1 Constant true
'"' Constant quote

Определяющие слова

: Array   ( #cells -- )  <Builds 2× allot
    DOES> ( i -- ’cell)   ↔ 2× + ;


Манипуляции со стеком

: -rot  ( a b c -- c a b )   rot rot ;


Арифметика

: 2-   ( a -- a-2 )   BODY> ;
: <=   ( a,b ---> a <= b )   ↔  <  0= ;
: ≥    ( a,b ---> a ≥ b )    ↔  >  0= ;
: ≠    ( a,b ---> a ≠ b  )   =  0= ;
: D0=  ( aa ---> aa = 0 )   or  0=  ;
: under+  ( a b c -- a+c b )   rot  +  ↔ ;
: within  ( n lo hi+1 -- ? )
     >r  1- over <  ↔ r>  < and ;

Работа с памятью

: 0!  ( a -- )   0 ↔ ! ;
: 2@  ( a -- bb )   ↑ 2+ @  ↔ @ ;


Преобразование адресов полей словарной статьи

: >body  ( CFA -- PFA )  2+ ;
: >link  ( CFA -- LFA )  body> ;        \ 2-
: link>  ( LFA -- CFA )  2+ ;
: b>link ( PFA -- LFA )  body> body> ;  \ 4-
: l>body ( LFA -- PFA )  2+  2+ ;       \ 4+

Ввод-вывод

Вывод строк, завершающихся нулевым символом:

: typez   ( a -- )   BEGIN ↑ c@  ↑ WHILE emit 1+ REPEAT   2drop ;


Работа с внешней памятью

: thru   ( n1,n2 -- Интерпретировать экраны)
         (         от n1 до n2 включительно)
  1+ over - for ↑ load 1+ next drop ;


Отладка

: ?   ( a -- )    @ . ;
: S.  ( a -- a )  ↑ . ;

Остальное

: octal     8 base ! ;