MBASIC tokenized file
From Just Solve the File Format Problem
(Difference between revisions)
Dan Tobias (Talk | contribs) (→Format documentation) |
Dan Tobias (Talk | contribs) (→Other links and references) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
MBASIC used a similar file format to that of the later [[GW-BASIC tokenized file]], though the token values were different. | MBASIC used a similar file format to that of the later [[GW-BASIC tokenized file]], though the token values were different. | ||
+ | |||
+ | == Tokens == | ||
+ | |||
+ | Blanks are unused, or at least unknown. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! title="Hexadecimal code point" | Hex | ||
+ | ! title="Decimal code point" | Dec | ||
+ | ! title="BASIC element the token stands for" | Token meaning | ||
+ | |- | ||
+ | |80||128|| | ||
+ | |- | ||
+ | |81||129||END | ||
+ | |- | ||
+ | |82||130||FOR | ||
+ | |- | ||
+ | |83||131||NEXT | ||
+ | |- | ||
+ | |84||132||DATA | ||
+ | |- | ||
+ | |85||133||INPUT | ||
+ | |- | ||
+ | |86||134||DIM | ||
+ | |- | ||
+ | |87||135||READ | ||
+ | |- | ||
+ | |88||136||LET | ||
+ | |- | ||
+ | |89||137||GOTO | ||
+ | |- | ||
+ | |8A||138||RUN | ||
+ | |- | ||
+ | |8B||139||IF | ||
+ | |- | ||
+ | |8C||140||RESTORE | ||
+ | |- | ||
+ | |8D||141||GOSUB | ||
+ | |- | ||
+ | |8E||142||RETURN | ||
+ | |- | ||
+ | |8F||143||REM | ||
+ | |- | ||
+ | |90||144||STOP | ||
+ | |- | ||
+ | |91||145||PRINT | ||
+ | |- | ||
+ | |92||146||CLEAR | ||
+ | |- | ||
+ | |93||147||LIST | ||
+ | |- | ||
+ | |94||148||NEW | ||
+ | |- | ||
+ | |95||149||ON | ||
+ | |- | ||
+ | |96||150||DEF | ||
+ | |- | ||
+ | |97||151||POKE | ||
+ | |- | ||
+ | |98||152||CONT | ||
+ | |- | ||
+ | |99||153|| | ||
+ | |- | ||
+ | |9A||154|| | ||
+ | |- | ||
+ | |9B||155||LPRINT | ||
+ | |- | ||
+ | |9C||156||LLIST | ||
+ | |- | ||
+ | |9D||157||WIDTH | ||
+ | |- | ||
+ | |9E||158||ELSE | ||
+ | |- | ||
+ | |9F||159||TRACE | ||
+ | |- | ||
+ | |A0||160||NOTRACE | ||
+ | |- | ||
+ | |A1||161||SWAP | ||
+ | |- | ||
+ | |A2||162||ERASE | ||
+ | |- | ||
+ | |A3||163||EDIT | ||
+ | |- | ||
+ | |A4||164||ERROR | ||
+ | |- | ||
+ | |A5||165||RESUME | ||
+ | |- | ||
+ | |A6||166||DEL | ||
+ | |- | ||
+ | |A7||167||AUTO | ||
+ | |- | ||
+ | |A8||168||RENUM | ||
+ | |- | ||
+ | |A9||169||DEFSTR | ||
+ | |- | ||
+ | |AA||170||DEFINT | ||
+ | |- | ||
+ | |AB||171||DEFSNG | ||
+ | |- | ||
+ | |AC||172||DEFDBL | ||
+ | |- | ||
+ | |AD||173||LINE | ||
+ | |- | ||
+ | |AE||174||POP | ||
+ | |- | ||
+ | |AF||175||WHILE | ||
+ | |- | ||
+ | |B0||176||WEND | ||
+ | |- | ||
+ | |B1||177||CALL | ||
+ | |- | ||
+ | |B2||178||WRITE | ||
+ | |- | ||
+ | |B3||179||COMMON | ||
+ | |- | ||
+ | |B4||180||CHAIN | ||
+ | |- | ||
+ | |B5||181||OPTION | ||
+ | |- | ||
+ | |B6||182||RANDOMIZE | ||
+ | |- | ||
+ | |B7||183||SYSTEM | ||
+ | |- | ||
+ | |B8||184||OPEN | ||
+ | |- | ||
+ | |B9||185||FIELD | ||
+ | |- | ||
+ | |BA||186||GET | ||
+ | |- | ||
+ | |BB||187||PUT | ||
+ | |- | ||
+ | |BC||188||CLOSE | ||
+ | |- | ||
+ | |BD||189||LOAD | ||
+ | |- | ||
+ | |BE||190||MERGE | ||
+ | |- | ||
+ | |BF||191||FILES | ||
+ | |- | ||
+ | |C0||192||NAME | ||
+ | |- | ||
+ | |C1||193||KILL | ||
+ | |- | ||
+ | |C2||194||LSET | ||
+ | |- | ||
+ | |C3||195||RSET | ||
+ | |- | ||
+ | |C4||196||SAVE | ||
+ | |- | ||
+ | |C5||197||RESET | ||
+ | |- | ||
+ | |C6||198||TEXT | ||
+ | |- | ||
+ | |C7||199||HOME | ||
+ | |- | ||
+ | |C8||200||VTAB | ||
+ | |- | ||
+ | |C9||201||HTAB | ||
+ | |- | ||
+ | |CA||202||INVERSE | ||
+ | |- | ||
+ | |CB||203||NORMAL | ||
+ | |- | ||
+ | |CC||204||GR | ||
+ | |- | ||
+ | |CD||205||COLOR | ||
+ | |- | ||
+ | |CE||206||HLIN | ||
+ | |- | ||
+ | |CF||207||VLIN | ||
+ | |- | ||
+ | |D0||208||PLOT | ||
+ | |- | ||
+ | |D1||209||HGR | ||
+ | |- | ||
+ | |D2||210||HPLOT | ||
+ | |- | ||
+ | |D3||211||HCOLOR | ||
+ | |- | ||
+ | |D4||212||BEEP | ||
+ | |- | ||
+ | |D5||213||WAIT | ||
+ | |- | ||
+ | |D6||214|| | ||
+ | |- | ||
+ | |D7||215|| | ||
+ | |- | ||
+ | |D8||216|| | ||
+ | |- | ||
+ | |D9||217|| | ||
+ | |- | ||
+ | |DA||218|| | ||
+ | |- | ||
+ | |DB||219|| | ||
+ | |- | ||
+ | |DC||220|| | ||
+ | |- | ||
+ | |DD||221||TO | ||
+ | |- | ||
+ | |DE||222||THEN | ||
+ | |- | ||
+ | |DF||223||TAB( | ||
+ | |- | ||
+ | |E0||224||STEP | ||
+ | |- | ||
+ | |E1||225||USR | ||
+ | |- | ||
+ | |E2||226||FN | ||
+ | |- | ||
+ | |E3||227||SPC( | ||
+ | |- | ||
+ | |E4||228||NOT | ||
+ | |- | ||
+ | |E5||229||ERL | ||
+ | |- | ||
+ | |E6||230||ERR | ||
+ | |- | ||
+ | |E7||231||STRING$ | ||
+ | |- | ||
+ | |E8||232||USING | ||
+ | |- | ||
+ | |E9||233||INSTR | ||
+ | |- | ||
+ | |EA||234||' | ||
+ | |- | ||
+ | |EB||235||VARPTR | ||
+ | |- | ||
+ | |EC||236||SCRN | ||
+ | |- | ||
+ | |ED||237||HSCRN | ||
+ | |- | ||
+ | |EE||238||INKEY$ | ||
+ | |- | ||
+ | |EF||239||> | ||
+ | |- | ||
+ | |E0||240||= | ||
+ | |- | ||
+ | |F1||241||< | ||
+ | |- | ||
+ | |F2||242||+ | ||
+ | |- | ||
+ | |F3||243||- | ||
+ | |- | ||
+ | |F4||244||* | ||
+ | |- | ||
+ | |F5||245||/ | ||
+ | |- | ||
+ | |F6||246||^ | ||
+ | |- | ||
+ | |F7||247||AND | ||
+ | |- | ||
+ | |F8||248||OR | ||
+ | |- | ||
+ | |F9||249||XOR | ||
+ | |- | ||
+ | |FA||250||EQV | ||
+ | |- | ||
+ | |FB||251||IMP | ||
+ | |- | ||
+ | |FC||252||MOD | ||
+ | |- | ||
+ | |FD||253||(signals that next byte represents token from List 2) | ||
+ | |- | ||
+ | |FE||254|| | ||
+ | |- | ||
+ | |FF||255|| | ||
+ | |} | ||
+ | |||
+ | === List 2: 2nd-byte tokens === | ||
+ | |||
+ | These are preceded by a FD (hex) byte. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! title="Hexadecimal code point" | Hex | ||
+ | ! title="Decimal code point" | Dec | ||
+ | ! title="BASIC element the token stands for" | Token meaning | ||
+ | |- | ||
+ | |81||129||LEFT$ | ||
+ | |- | ||
+ | |82||130||RIGHT$ | ||
+ | |- | ||
+ | |83||131||MID$ | ||
+ | |- | ||
+ | |84||132||SGN | ||
+ | |- | ||
+ | |85||133||INT | ||
+ | |- | ||
+ | |86||134|| | ||
+ | |- | ||
+ | |87||135||SQR | ||
+ | |- | ||
+ | |88||136||RND | ||
+ | |- | ||
+ | |89||137||SIN | ||
+ | |- | ||
+ | |8A||138||LOG | ||
+ | |- | ||
+ | |8B||139||EXP | ||
+ | |- | ||
+ | |8C||140||COS | ||
+ | |- | ||
+ | |8D||141||TAN | ||
+ | |- | ||
+ | |8E||142||ATN | ||
+ | |- | ||
+ | |8F||143||FRE | ||
+ | |- | ||
+ | |90||144||POS | ||
+ | |- | ||
+ | |91||145||LEN | ||
+ | |- | ||
+ | |92||146||STR$ | ||
+ | |- | ||
+ | |93||147||VAL | ||
+ | |- | ||
+ | |94||148||ASC | ||
+ | |- | ||
+ | |95||149||CHR$ | ||
+ | |- | ||
+ | |96||150||PEEK | ||
+ | |- | ||
+ | |97||151||SPACE$ | ||
+ | |- | ||
+ | |98||152||OCT$ | ||
+ | |- | ||
+ | |99||153||HEX$ | ||
+ | |- | ||
+ | |9A||154||LPOS | ||
+ | |- | ||
+ | |9B||155||CINT | ||
+ | |- | ||
+ | |9C||156||CSNG | ||
+ | |- | ||
+ | |9D||157||CDBL | ||
+ | |- | ||
+ | |9E||158||FIX | ||
+ | |- | ||
+ | |9F||159|| | ||
+ | |- | ||
+ | |A0||160|| | ||
+ | |- | ||
+ | |A1||161|| | ||
+ | |- | ||
+ | |A2||162|| | ||
+ | |- | ||
+ | |A3||163|| | ||
+ | |- | ||
+ | |A4||164|| | ||
+ | |- | ||
+ | |A5||165|| | ||
+ | |- | ||
+ | |A6||166|| | ||
+ | |- | ||
+ | |A7||167|| | ||
+ | |- | ||
+ | |A8||168|| | ||
+ | |- | ||
+ | |A9||169|| | ||
+ | |- | ||
+ | |AA||170||CVI | ||
+ | |- | ||
+ | |AB||171||CVS | ||
+ | |- | ||
+ | |AC||172||CVD | ||
+ | |- | ||
+ | |AD||173|| | ||
+ | |- | ||
+ | |AE||174||EOF | ||
+ | |- | ||
+ | |AF||175||LOC | ||
+ | |- | ||
+ | |B0||176||LOF | ||
+ | |- | ||
+ | |B1||177||MKI$ | ||
+ | |- | ||
+ | |B2||178||MKS$ | ||
+ | |- | ||
+ | |B3||179||MKD$ | ||
+ | |- | ||
+ | |B4||180||VPOS | ||
+ | |- | ||
+ | |B5||181||PDL | ||
+ | |- | ||
+ | |B6||182||BUTTON | ||
+ | |} | ||
== Format documentation == | == Format documentation == | ||
* [http://ripxplore.rubyforge.org/doc/classes/MBasic.html MBASIC tokens] | * [http://ripxplore.rubyforge.org/doc/classes/MBasic.html MBASIC tokens] | ||
+ | |||
+ | == Manuals == | ||
+ | * [https://archive.org/details/BASIC-80_MBASIC_Reference_Manual BASIC-80 (MBASIC) manual] | ||
== Other links and references == | == Other links and references == | ||
* [http://www.interact-sw.co.uk/altair/other%20versions/ian.htm Info on some early documents about the development of Microsoft BASIC in 1975] | * [http://www.interact-sw.co.uk/altair/other%20versions/ian.htm Info on some early documents about the development of Microsoft BASIC in 1975] | ||
+ | * [https://github.com/option8/Altair-BASIC Altair BASIC source code on Github] | ||
+ | |||
+ | [[Category:Microsoft]] | ||
+ | [[Category:CP/M]] |
Latest revision as of 01:43, 2 November 2019
MBASIC is the direct descendant of the original Altair BASIC from Microsoft, adapted for the CP/M operating system. The various BASICs descended from that starting point were generically known as BASIC-80, and had varying degrees of similarity.
MBASIC used a similar file format to that of the later GW-BASIC tokenized file, though the token values were different.
Contents |
[edit] Tokens
Blanks are unused, or at least unknown.
Hex | Dec | Token meaning |
---|---|---|
80 | 128 | |
81 | 129 | END |
82 | 130 | FOR |
83 | 131 | NEXT |
84 | 132 | DATA |
85 | 133 | INPUT |
86 | 134 | DIM |
87 | 135 | READ |
88 | 136 | LET |
89 | 137 | GOTO |
8A | 138 | RUN |
8B | 139 | IF |
8C | 140 | RESTORE |
8D | 141 | GOSUB |
8E | 142 | RETURN |
8F | 143 | REM |
90 | 144 | STOP |
91 | 145 | |
92 | 146 | CLEAR |
93 | 147 | LIST |
94 | 148 | NEW |
95 | 149 | ON |
96 | 150 | DEF |
97 | 151 | POKE |
98 | 152 | CONT |
99 | 153 | |
9A | 154 | |
9B | 155 | LPRINT |
9C | 156 | LLIST |
9D | 157 | WIDTH |
9E | 158 | ELSE |
9F | 159 | TRACE |
A0 | 160 | NOTRACE |
A1 | 161 | SWAP |
A2 | 162 | ERASE |
A3 | 163 | EDIT |
A4 | 164 | ERROR |
A5 | 165 | RESUME |
A6 | 166 | DEL |
A7 | 167 | AUTO |
A8 | 168 | RENUM |
A9 | 169 | DEFSTR |
AA | 170 | DEFINT |
AB | 171 | DEFSNG |
AC | 172 | DEFDBL |
AD | 173 | LINE |
AE | 174 | POP |
AF | 175 | WHILE |
B0 | 176 | WEND |
B1 | 177 | CALL |
B2 | 178 | WRITE |
B3 | 179 | COMMON |
B4 | 180 | CHAIN |
B5 | 181 | OPTION |
B6 | 182 | RANDOMIZE |
B7 | 183 | SYSTEM |
B8 | 184 | OPEN |
B9 | 185 | FIELD |
BA | 186 | GET |
BB | 187 | PUT |
BC | 188 | CLOSE |
BD | 189 | LOAD |
BE | 190 | MERGE |
BF | 191 | FILES |
C0 | 192 | NAME |
C1 | 193 | KILL |
C2 | 194 | LSET |
C3 | 195 | RSET |
C4 | 196 | SAVE |
C5 | 197 | RESET |
C6 | 198 | TEXT |
C7 | 199 | HOME |
C8 | 200 | VTAB |
C9 | 201 | HTAB |
CA | 202 | INVERSE |
CB | 203 | NORMAL |
CC | 204 | GR |
CD | 205 | COLOR |
CE | 206 | HLIN |
CF | 207 | VLIN |
D0 | 208 | PLOT |
D1 | 209 | HGR |
D2 | 210 | HPLOT |
D3 | 211 | HCOLOR |
D4 | 212 | BEEP |
D5 | 213 | WAIT |
D6 | 214 | |
D7 | 215 | |
D8 | 216 | |
D9 | 217 | |
DA | 218 | |
DB | 219 | |
DC | 220 | |
DD | 221 | TO |
DE | 222 | THEN |
DF | 223 | TAB( |
E0 | 224 | STEP |
E1 | 225 | USR |
E2 | 226 | FN |
E3 | 227 | SPC( |
E4 | 228 | NOT |
E5 | 229 | ERL |
E6 | 230 | ERR |
E7 | 231 | STRING$ |
E8 | 232 | USING |
E9 | 233 | INSTR |
EA | 234 | ' |
EB | 235 | VARPTR |
EC | 236 | SCRN |
ED | 237 | HSCRN |
EE | 238 | INKEY$ |
EF | 239 | > |
E0 | 240 | = |
F1 | 241 | < |
F2 | 242 | + |
F3 | 243 | - |
F4 | 244 | * |
F5 | 245 | / |
F6 | 246 | ^ |
F7 | 247 | AND |
F8 | 248 | OR |
F9 | 249 | XOR |
FA | 250 | EQV |
FB | 251 | IMP |
FC | 252 | MOD |
FD | 253 | (signals that next byte represents token from List 2) |
FE | 254 | |
FF | 255 |
[edit] List 2: 2nd-byte tokens
These are preceded by a FD (hex) byte.
Hex | Dec | Token meaning |
---|---|---|
81 | 129 | LEFT$ |
82 | 130 | RIGHT$ |
83 | 131 | MID$ |
84 | 132 | SGN |
85 | 133 | INT |
86 | 134 | |
87 | 135 | SQR |
88 | 136 | RND |
89 | 137 | SIN |
8A | 138 | LOG |
8B | 139 | EXP |
8C | 140 | COS |
8D | 141 | TAN |
8E | 142 | ATN |
8F | 143 | FRE |
90 | 144 | POS |
91 | 145 | LEN |
92 | 146 | STR$ |
93 | 147 | VAL |
94 | 148 | ASC |
95 | 149 | CHR$ |
96 | 150 | PEEK |
97 | 151 | SPACE$ |
98 | 152 | OCT$ |
99 | 153 | HEX$ |
9A | 154 | LPOS |
9B | 155 | CINT |
9C | 156 | CSNG |
9D | 157 | CDBL |
9E | 158 | FIX |
9F | 159 | |
A0 | 160 | |
A1 | 161 | |
A2 | 162 | |
A3 | 163 | |
A4 | 164 | |
A5 | 165 | |
A6 | 166 | |
A7 | 167 | |
A8 | 168 | |
A9 | 169 | |
AA | 170 | CVI |
AB | 171 | CVS |
AC | 172 | CVD |
AD | 173 | |
AE | 174 | EOF |
AF | 175 | LOC |
B0 | 176 | LOF |
B1 | 177 | MKI$ |
B2 | 178 | MKS$ |
B3 | 179 | MKD$ |
B4 | 180 | VPOS |
B5 | 181 | PDL |
B6 | 182 | BUTTON |