Каллисто

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

Каллисто — диалект языка Форт с элементами colorFORTH, написанного для МК-161 на РЯМК. Пока существует в альфа-версии, но уже позволяет определять новые слова, редактировать и компилировать экраны. Актуальная версия — 0.3.5a.

Вместо цикла LOOP Каллисто использует более простой и быстрый цикл FOR , а стек содержит 12-разрядные десятичные числа ЭКВМ с плавающей запятой. Помимо традиционных (для Форта) целочисленной операций деления, Каллисто использует традиционное для ПМК деление с плавающей запятой. Сохранены традиционные для ПМК обозначения операций умножения, а также русскоязычные операции ПМК — ЗН , СЧ и т.д.

В отличии от ранних диалектов Форт экран Каллисто содержит 48 строк и занимает 3 Кб. Каллисто использует накладную алфавитно-цифровую клавиатуру, для посимвольного ввода команд и данных.

Вводимые слова компилируются в словарь, находящийся в области двоичных данных. В этой же области располагается стек возвратов. Стек данных располагается в области десятичных регистров. Там же располагается «десятичный словарь», где хранятся десятичные переменные типа VALUE


Ключевые слова

COLD

WARM

BYE

VERSION

EXECUTE

?BREAK

(LITERAL)

TYPE

TYPE1

?BRANCH

BRANCH

(FOR)

(NEXT)

(FIND)

DIGIT

РЕГ!

РЕГ@

0=

0>

0<

=

<

>

ENCL

EMI

EMIT

C.

BELL

BEEP

(PLAY)

PLOT

DRAW

ГРФ

AT-XY

DISKOFF

KEY

ACCEPT

1+

2+

1-

2/

+

-

×

÷

/

MOD

/MOD

×

×/

×/MOD

NEGATE

><

S>D

|X|

AND

OR

XOR

INVERT

MIN

MAX

10x

Ex

LG

LN

X2

1/X

Yx

СЧ

ЗН

[[[X]]]

[[{X}]]

DEGREES

RADIANS

ARCSIN

ARCCOS

ARCTG

SIN

COS

TG

SP@

!SP

RP@

!RP

EXIT

LEAVE

UNLOOP

>R

R>

I

LEV

PICK

OVER

2SWAP

?DUP

2DUP

ROT

2DROP

DROP

CMOVE

CMOVE>

FILL

ERASE

BLANK

HOLD

TIB

+!

TOGGLE

@

U@

C@

!

C!

BODY>

!CSP

HERE

ALLOT

ДHERE

ДALLOT

[

]

HEX

DECIMAL

-TRAILING

UPPER

DEFINITIONS

UPDATE

X

CONSTANT

VARIABLE

VALUE

USER

DOES>

F#>

F#S

<F#

0

1

2

3

$\pi$

BL

C/L

B/BUF

RT

RZ

RY

RX

S0

R0

ДDP

WIDTH

WARNING

FENCE

DP

VOCL

AUTOEXEC

GRXY

BLK

>IN

SCR

OFFSET

CONTEXT

CURRENT

STATE

BASE

DPL

CSP

R#

HLD

$EX

ERB

SAVIN

,

C,

Д,

LATEST

SPACE

N>LINK

NAME>

N>BODY

?ERROR

?COMP

?EXEC

?PAIR

?CSP

?LOAD

COMPILE

SMUDGE

(;CODE)

<BUILDS

COUNT

(.")

."

.(

QUERY

\0

PAD

WORD

CONVERT

FINDN

NUMBER

FL

ERROR

ID.

CREATE

[COMPILE]

TO

LITERAL

FLITERAL

?STACK

INTERPRET

IMMEDIATE

VOCABULARY

(

QUIT

ABORT

EMPTY-BUFFERS

SAVE-BUFFERS

FLUSH

BUFFER

BLOCK

(LINE)

MESSAGE

LOAD

\

\S

-->

'N

[']

>MARK

>RESOLVE

<MARK

<RESOLVE

UNTIL

AGAIN

BEGIN

THEN

ELSE

IF

WHILE

REPEAT

FOR

NEXT

SPACES

I#>

SIGN

I#

I#S

<I#

(.)

I.

.

I.R

LIST

INDEX

WORDS

COPY

DEPTH

DUMP

.S

КАТ

SAVE-TEXT

RGRW

LORW

R/W

SAVE"

LOAD"

;CODE

FORTH

TASK

Ссылки