The data of a file of type 00 is a BASIC program in the form it has in the Oric’s memory,
starting at $0501. The table here is the keyword table of the BASIC 1.1 ROM (the Atmos’s), checked word
by word against a ROM image. The ROM 1.0 of the first Oric-1s was not available to check against.
Lines
| Size | Name | Description |
|---|---|---|
| 2 | Link | The address of the next line, low byte first (in memory, so counted from the start address). |
| 2 | Line number | Low byte first. |
| n | Text | Characters, with each keyword as one token byte (80 to F6). |
| 1 | End of line | 00. |
Text in quotation marks, and everything after REM (9D), is stored as typed.
The first line of a program saved from BASIC is at $0501, so the first link is at least
$0505.
00000000 09 05 0A 00 B6 22 22 00 12 05 14 00 97 20 31 30 .....""......10
00000010 00 00 00 ...
$0509, line 10, token B6 (CLOAD) and ""; link $0512, line 20, token 97 (GOTO) and 10.End of the program
A link of 00 00 in place of the next line. With the 00 that ends the last line, a program
ends with three zero bytes, as above.
Tokens
| Byte | Keyword | Byte | Keyword | Byte | Keyword | Byte | Keyword |
|---|---|---|---|---|---|---|---|
80 | END | 9E | HIMEM | BC | LIST | DA | FRE |
81 | EDIT | 9F | GRAB | BD | CLEAR | DB | POS |
82 | STORE | A0 | RELEASE | BE | GET | DC | HEX$ |
83 | RECALL | A1 | TEXT | BF | CALL | DD | & |
84 | TRON | A2 | HIRES | C0 | ! | DE | SQR |
85 | TROFF | A3 | SHOOT | C1 | NEW | DF | RND |
86 | POP | A4 | EXPLODE | C2 | TAB( | E0 | LN |
87 | PLOT | A5 | ZAP | C3 | TO | E1 | EXP |
88 | PULL | A6 | PING | C4 | FN | E2 | COS |
89 | LORES | A7 | SOUND | C5 | SPC( | E3 | SIN |
8A | DOKE | A8 | MUSIC | C6 | @ | E4 | TAN |
8B | REPEAT | A9 | PLAY | C7 | AUTO | E5 | ATN |
8C | UNTIL | AA | CURSET | C8 | ELSE | E6 | PEEK |
8D | FOR | AB | CURMOV | C9 | THEN | E7 | DEEK |
8E | LLIST | AC | DRAW | CA | NOT | E8 | LOG |
8F | LPRINT | AD | CIRCLE | CB | STEP | E9 | LEN |
90 | NEXT | AE | PATTERN | CC | + | EA | STR$ |
91 | DATA | AF | FILL | CD | - | EB | VAL |
92 | INPUT | B0 | CHAR | CE | * | EC | ASC |
93 | DIM | B1 | PAPER | CF | / | ED | CHR$ |
94 | CLS | B2 | INK | D0 | ^ | EE | PI |
95 | READ | B3 | STOP | D1 | AND | EF | TRUE |
96 | LET | B4 | ON | D2 | OR | F0 | FALSE |
97 | GOTO | B5 | WAIT | D3 | > | F1 | KEY$ |
98 | RUN | B6 | CLOAD | D4 | = | F2 | SCRN |
99 | IF | B7 | CSAVE | D5 | < | F3 | POINT |
9A | RESTORE | B8 | DEF | D6 | SGN | F4 | LEFT$ |
9B | GOSUB | B9 | POKE | D7 | INT | F5 | RIGHT$ |
9C | RETURN | BA | D8 | ABS | F6 | MID$ | |
9D | REM | BB | CONT | D9 | USR |
Bytes F7 to FF are not keywords in this table, and the explorer shows them in braces,
such as {F7}.