Редактирование: Палитра Каллисто
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 4: | Строка 4: | ||
== Константы == | == Константы == | ||
2 Constant cell | 2 Constant cell | ||
0 Constant false | |||
-1 Constant true | |||
'"' Constant quote | '"' Constant quote | ||
== | == Определяющие слова == | ||
: Vector ( #cells -- ) <Builds 2× allot | |||
DOES> ( i -- ’cell) ↔ 2× + ; | |||
: CVector ( #cells -- ) <Builds allot | |||
: | DOES> ( i -- ’cell) + ; | ||
DOES> ( i -- ’cell) | : CMatrix ( i' j' -- ) <Builds over , × allot | ||
: | DOES> ( i j -- 'cell) ↔ over @ × + + 2+ ; | ||
DOES> ( i j -- 'cell) | |||
== Манипуляции со стеком == | == Манипуляции со стеком == | ||
Строка 22: | Строка 20: | ||
: tuck ( a b -- b a b ) ↔ over ; | : tuck ( a b -- b a b ) ↔ over ; | ||
: nip ( a b -- b ) ↔ drop ; | : nip ( a b -- b ) ↔ drop ; | ||
== Арифметика == | == Арифметика == | ||
: 2- ( a -- a-2 ) body> ; | |||
: <= ( a,b -- a <= b ) ↔ < 0= ; | : <= ( a,b -- a <= b ) ↔ < 0= ; | ||
: ≥ ( a,b -- a ≥ b ) ↔ > 0= ; | : ≥ ( a,b -- a ≥ b ) ↔ > 0= ; | ||
: ≠ ( a,b -- a ≠ b ) = 0= ; | : ≠ ( a,b -- a ≠ b ) = 0= ; | ||
: 0≠ ( a -- a ≠ 0 ) 0= 0= ; | : 0≠ ( a -- a ≠ 0 ) 0= 0= ; | ||
: not ( a -- b ) inverse ; | |||
: under+ ( a b c -- a+c b ) rot + ↔ ; | : under+ ( a b c -- a+c b ) rot + ↔ ; | ||
: within ( n lo hi+1 -- ? ) | : within ( n lo hi+1 -- ? ) | ||
Строка 34: | Строка 33: | ||
== Работа с памятью == | == Работа с памятью == | ||
: 0! ( a -- ) 0 ↔ ! ; | |||
: 1+! ( a -- ) 1 ↔ +! ; | : 1+! ( a -- ) 1 ↔ +! ; | ||
: 1-! ( a -- ) -1 ↔ +! ; | : 1-! ( a -- ) -1 ↔ +! ; | ||
Строка 40: | Строка 40: | ||
: compile, ( a --) , ; | : compile, ( a --) , ; | ||
== Преобразование адресов полей [[Словарь|словарной]] статьи == | |||
== Преобразование адресов полей [[ | |||
: >link ( CFA -- LFA ) body> ; \ 2- | : >link ( CFA -- LFA ) body> ; \ 2- | ||
: link> ( LFA -- CFA ) 2+ ; | : link> ( LFA -- CFA ) 2+ ; | ||
Строка 51: | Строка 46: | ||
: l>body ( LFA -- PFA ) 2+ 2+ ; \ 4+ | : l>body ( LFA -- PFA ) 2+ 2+ ; \ 4+ | ||
== | == Ввод-вывод == | ||
Вывод строк, завершающихся [[Символ с кодом 0|нулевым символом]]: | |||
: | : typez ( a -- ) BEGIN ↑ c@ ↑ WHILE emit 1+ REPEAT 2drop ; | ||
: home ( -- ) 0 ↑ at-xy ; | : home ( -- ) 0 ↑ at-xy ; | ||
: wait ( -- ) | : wait ( -- ) key drop ; | ||
== Работа с внешней памятью == | == Работа с внешней памятью == | ||
: thru ( n1,n2 -- Интерпретировать экраны) | |||
( от n1 до n2 включительно) | |||
1+ over - for ↑ load 1+ next drop ; | |||
: sclr ( n -- ) ." S# " s. ." Clear ? <Y/CR> " | : sclr ( n -- ) ." S# " s. ." Clear ? <Y/CR> " | ||
key 'Y' = IF buffer b/buf blank update flush then ; | key 'Y' = IF buffer b/buf blank update flush then ; | ||
: .line (line) type ; | : .line (line) type ; | ||
== Отладка == | == Отладка == | ||
: c? | : ? ( a -- ) @ . ; | ||
: рег? | : c? ( a -- ) c@ . ; | ||
: s. | : рег? ( u -- ) рег@ . ; | ||
: h. | : s. ( a -- a ) ↑ . ; | ||
: b. | : h. ( a -- a ) base @ hex over i. base ! ; | ||
: prs | : b. ( -- ) base @ . ; | ||
: | : prs ( n -- ) depth 1- min for i 1- pick . next ; | ||
: free ( -- n ) rp@ pad - ; | |||
== Остальное == | == Остальное == | ||
: binary 2 base ! ; | : binary 2 base ! ; | ||
: octal 8 base ! ; | : octal 8 base ! ; | ||
: recurse latest name> , ; immediate | |||
: recurse | |||
[[Категория:Каллисто]] | [[Категория:Каллисто]] |