Reference Guide

The Development Library 6-21
The foundation of Skips is the Block structure. A block is enclosed in
{
and
}
, and can be nested within another
block. The following instructions deal with blocks.
SKIPS instructions
Equivalents
{
...
}
Defines a block (generates no code)
SKIP {
...
}
GOTO .S
...
*.S
SKIPL {
...
} GOTOL .S
...
*.S
SKIPC {
...
} GOC .S
...
*.S
SKC {
...
}
GOC .S
...
*.S
SKIPNC {
...
}
GONC .S
...
*.S
SKNC {
...
}
GONC .S
...
*.S
Test
SKIPYES {
...
}
Test
GOYES .S
...
*.S
Test
{
...
}
Test
GOYES .S
...
*.S
Test
{
...
}
/Test
GOYES .S
...
*.S
Test
-> {
...
}
/Test
GOYES .S
...
*.S
SKUB {
...
}
GOSUB .S
...
*.S
SKUBL {
...
}
GOSUBL .S
...
*.S
STRING {
...
}
$/02A2C GOIN5 *.S
...
*.S
(to create a character string)
CODE {
...
}
$/02DCC GOIN5 *.S
...
*.S
(to create a code object)
STROBJ $PROLOG {
...
}
$(5)PROLOG GOIN5 .S
...
*.S
(to create a ‘prolog – length’
object)
/Test is the opposite of Test. For example if Test is
?A<C.A
, /Test is
?A>=C.A
. The test instructions dealing
with the hardware register (
?HST=0
,
?MP=0
,
?SR=0
,
?XM=0
,
?SB=1
,
?HST=1
,
?MP=1
,
?SR=1
,
?XM=1
and
?SB=1
) cannot be inverted.
Once blocks are defined, special instructions can be used in them. The instructions called EXIT and UP allow
jumping to the end or to the beginning of a block.
These instructions
are equivalent to
{
EXIT
EXITC
EXITNC
?A=0.A EXIT
UP
UPC
UPNC
?A=0.A UP
}
*.Beginning
GOTO.End
GOC.End
GONC.End
?A=0.A ¨.End
GOTO.Beginning
GOC.Beginning
GONC.Beginning
?A=0.A ¨.Beginning
*.End
Note: In Saturn mode do not be confused between EXIT and UP instructions, which are GOTOs, and EXIT and
UP after a test, which are GOYES’s. EXIT and UP can jump to the beginning or to the end of an upper-level block
by specifying the number of blocks to exit, after the UP or EXIT instructions.