2.2 KiB
Literals and initializers
Numeric literals
Decimal: 1
, 10
Binary: %0101
, 0b101001
Quaternary: 0q2131
Octal: 0o172
Hexadecimal: $D323
, 0x2a2
String literals
String literals are surrounded with double quotes and followed by the name of the encoding:
"this is a string" ascii
Characters between the quotes are interpreted literally, there are no ways to escape special characters or quotes.
In some encodings, multiple characters are mapped to the same byte value, for compatibility with multiple variants.
Currently available encodings:
-
ascii
– standard ASCII -
pet
orpetscii
– PETSCII (ASCII-like character set used by Commodore machines) -
scr
– Commodore screencodes -
apple2
– Apple II charset ($A0–$FE) -
bbc
– BBC Micro and ZX Spectrum character set -
jis
orjisx
– JIS X 0201 -
iso_de
,iso_no
,iso_se
,iso_yu
– various variants of ISO/IEC-646 -
iso_dk
,iso_fi
– aliases foriso_no
andiso_se
respectively
When programming for Commodore,
use pet
for strings you're printing using standard I/O routines
and scr
for strings you're copying to screen memory directly.
Character literals
Character literals are surrounded by single quotes and followed by the name of the encoding:
'x' ascii
From the type system point of view, they are constants of type byte.
Array initialisers
An array is initialized with either:
-
a string literal
-
a
file
expression -
a
for
-style expression -
a list of byte literals and/or other array initializers, surrounded by brackets:
array a = [1, 2] array b = "----" scr array c = ["hello world!" ascii, 13] array d = file("d.bin") array e = file("d.bin", 128, 256) array f = for x,0,until,8 [x * 3 + 5] // equivalent to [5, 8, 11, 14, 17, 20, 23, 26]
Trailing commas ([1, 2,]
) are not allowed.
The parameters for file
are: file path, optional start offset, optional length
(start offset and length have to be either both present or both absent).
The for
-style expression has a variable, a starting index, a direction, a final index,
and a parametrizable array initializer.
The initializer is repeated for every value of the variable in the given range.