| Index | wersja polska |
$80 SIN $90 ASC( $A0 GOTO $B0 ELSE $C0 CLEAR $D0 SYSTEM
$81 COS $91 LEN( $A1 GOSUB $B1 STEP $C1 PROG $D1 CLS
$82 TAN $92 VAL( $A2 RETURN $B2 THEN $C2 PUT $D2
$83 EXP $93 PI $A3 FOR $B3 TO $C3 GET $D3
$84 ASN $94 RND $A4 NEXT $B4 USING $C4 VERIFY $D4
$85 ACS $95 $A5 IF $B5 TAB( $C5 CHAIN $D5
$86 ATN $96 $A6 STOP $B6 ALL $C6 SAVE $D6
$87 LOG $97 $A7 INPUT $B7 DATA $C7 LOAD $D7
$88 LGT $98 $A8 READ $B8 REM $C8 PASS $D8
$89 SQR $99 INKEY$ $A9 RESTORE $B9 LET $C9 NEW $D9
$8A ABS $9A CHR$( $AA END $BA ANGLE $CA LIST $DA
$8B FRAC $9B STR$( $AB DRAW( $BB BEEP $CB LLIST $DB
$8C INT $9C LEFT$( $AC DRAWC( $BC DIM $CC RUN $DC
$8D SGN $9D RIGHT$( $AD LOCATE $BD ERASE $CD DELETE $DD
$8E POINT( $9E MID$( $AE PRINT $BE TRON $CE EDIT $DE
$8F ROUND( $9F MOD $AF LPRINT $BF TROFF $CF CONT $DF
There aren't any undocumented keywords.
BASIC line begins with a line number stored in 2 bytes (four 4-bit words) in packed decimal format, ends with an end marker $FF.
BASIC keywords are stored as single byte tokens, numeric values as strings of characters, colons used as statements separators as $FE.
Example:
1234 FOR I=1 TO 49 STEP 1: NEXT I
34 12 A3 49 3D 31 B3 34 39 B1 31 FE A4 49 FF
A file consists of a header segment followed by one or more data segments.
1 byte character 'H' - the header segment identifier
1 byte file type
8 bytes file name, padded with spaces to 8 characters
3 bytes 3 spaces, reserved for the file name extension?
8 bytes password, data are inverted (xor FF) and padded with FFs
12 bytes parameters - information specific to individual file type,
seem to be ignored when loading
1 byte checksum - the two's complement of the sum of all preceding
bytes modulo 256 (sum of all bytes + checksum = 0x00),
ignored, not even read from the tape when loading
1 byte end marker 0xF1, ignored, not even read from the tape
1 byte fixed value 0x00, ignored, not even read from the tape
Example:
48 character 'H'
D0 file type: PROGRAM
50 41 53 53 20 20 20 20 file name: PASS
20 20 20 file name extension
BD BA AB BE FF FF FF FF password: BETA
00 00 00 00 00 00 04 00 00 00 00 00 parameters
F1 checksum
F1 end marker
00 byte 0x00
file type 0xD0
parameters+6 the least significant byte of the program length
parameters+7 the most significant byte of the program length
1 byte character 'D' - the data segment identifier
xxxx bytes the BASIC program
1 byte end marker 0xF0
Example:
44
10 00 A3 49 3D 31 B3 34 FE A4 49 FF 10 FOR I=1 TO 4: NEXT I
20 00 A0 31 30 FF 20 GOTO 10
F0
file type 0xC1
1 byte character 'D' - the data segment identifier
xxxx bytes list of 10 BASIC programs, each program terminated with 0xE0,
an empty program is stored as 0xE0 alone
1 byte end marker 0xF0
Example:
44
00 10 AE FF E0 P0: 1000 PRINT
10 00 A2 FF E0 P1: 10 RETURN
E0 E0 E0 E0 E0 E0 E0 E0
F0
Each BASIC line is stored in a separate data segment.
file type 0x30
1 byte character 'D' - the data segment identifier
1 byte file type = 0x30
1 byte fixed value = 0x00
2 bytes length of the program line, the least significant byte
first, seems to be ignored when loading
xxxx bytes the BASIC line in the form of a string of ASCII characters
terminated by a CR character (code 0x0D)
1 byte checksum - the two's complement of the sum of all preceding
bytes modulo 256 (sum of all bytes + checksum = 00),
ignored, not even read from the tape when loading
1 byte end marker 0xF1, ignored, not even read from the tape
1 byte fixed value 0x00, ignored, not even read from the tape
Example:
280 A$=INKEY$
44 30 00 0F 00 20 32 38 30 20 41 24 3D 49 4E 4B 45 59 24 0D 50 F1 00
1 byte character 'D' - the data segment identifier
1 byte file type = 0x30
4 bytes fixed values 0xFF, 0x01, 0x00, 0x0D
1 byte checksum - the two's complement of the sum of all preceding
bytes modulo 256 (sum of all bytes + checksum = 00),
ignored, not even read from the tape when loading
1 byte end marker 0xF1, ignored, not even read from the tape
1 byte fixed value 0x00, ignored, not even read from the tape
1 byte end marker 0xF0, ignored, not even read from the tape
Example:
44 30 FF 01 00 0D 7F F1 00 F0
Each variable is stored in a separate data segment. No variable names are stored.
file type 0x24
1 byte character 'D' - the data segment identifier
1 byte file type = 0x24
1 byte fixed value = 0x00
2 bytes length of the variable, the least significant byte first,
seems to be ignored when loading
xxxx bytes the contents of the variable in the form of a string of ASCII
characters terminated by a CR character (code 0x0D),
a numerical variable begins with a space (code 0x20)
1 byte checksum - the two's complement of the sum of all preceding
bytes modulo 256 (sum of all bytes + checksum = 00),
ignored, not even read from the tape when loading
1 byte end marker 0xF1, ignored, not even read from the tape
1 byte fixed value 0x00, ignored, not even read from the tape
Examples:
a string variable containing "PIOTR":
44 24 00 06 00 50 49 4F 54 52 0D F7 F1 00
a numerical variable containing 3.141592654:
44 24 00 0D 00 20 33 2E 31 34 31 35 39 32 36 35 34 0D 28 F1 00
1 byte character 'D' - the data segment identifier
1 byte file type = 0x24
4 bytes fixed values 0xFF, 0x01, 0x00, 0x0D
1 byte checksum - the two's complement of the sum of all preceding
bytes modulo 256 (sum of all bytes + checksum = 00),
ignored, not even read from the tape when loading
1 byte end marker 0xF1, ignored, not even read from the tape
1 byte fixed value 0x00, ignored, not even read from the tape
1 byte end marker 0xF0, ignored, not even read from the tape
Example:
44 24 FF 01 00 0D 8B F1 00 F0