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 |