Ce topic à pour but d'expliquer comment fonctionne un fichier BAS et comment sont stocker les informations pour une gestion plus facile.
Il décrit le format d'un fichier GFA-Basic, la documentation n'est pas complète piur l'instant mais elle possède assez d'informations pour convertir un fichier tokenisé en un fichier ASCII.
===========
File Header:
===========
L'en tête d'un fichier BAS est d'exactement 20 octets.
offset size Description
-----------------------------------------------
0 8 bytes file_id "GfaBASIC"
8 byte version (always 1)
9 byte file type (always 0)
10 byte float number
11 byte integer% number
12 byte boolean! number
13 byte string$ number
14 byte float() number
15 byte integer%() number
16 byte boolean!() number
17 byte string$() number
18 byte label: number
19 byte null byte alignment
Ceci est l'en tête d'un fichier BAS, cet en-tête est suivi de la table des symboles.
Un symbole se présente de cette façon:
<STRING> <NULL BYTE> STRING étant toujours en majuscules.
Il arrive parfois que la totalité des tables des symboles soit de taille impaire,
ainsi un octet (0xFD) est ajouté pour permettre une gestion des alignements
des données tokenisées.
Ensuite se trouve la table des tokens.
Un token fait exactement un byte, il y a deux types de tokens.
"Token's Command", est le premier en début de ligne.
"Token's Function", apparaît n'importe où sur la ligne.
Certains tokens sont particuliés, la fléche -> indique une structure de comportement de lecture.
=====================
Table des structures:
=====================
float1 next byte is an index into the float symbol table.
integer1 next byte is an index into the integer% symbol table.
boolean1 next byte is an index into the boolean! symbol table.
string1 next byte is an index into the string$ symbol table.
float1() next byte is an index into the float() symbol table.
integer1() next byte is an index into the integer%() symbol table.
boolean1() next byte is an index into the boolean!() symbol table.
string1() next byte is an index into the string$() symbol table.
label1 next byte is an index into the label: symbol table.
string$ next byte is the size to the string in quote.
stringd next byte is the string size for a comment.
skip1 next byte should be skipped for alignment.
Tables des tokens (version 14/08/04):
-------------------------------------
==============
Token Command:
==============
TKC_0x00: dc.b "REM",0 ;-> stringd
TKC_0x01: dc.b "",0
TKC_0x02: dc.b "REPEAT",0
TKC_0x03: dc.b "UNTIL",0
TKC_0x04: dc.b "WHILE",0
TKC_0x05: dc.b "WEND",0
TKC_0x06: dc.b "DO",0
TKC_0x07: dc.b "LOOP",0
TKC_0x08: dc.b "FOR",0
TKC_0x09: dc.b "NEXT",0
TKC_0x0A: dc.b "EXIT",0
TKC_0x0B: dc.b "IF",0
TKC_0x0C: dc.b "ELSE",0
TKC_0x0D: dc.b "ENDIF",0
TKC_0x0E: dc.b "PRINT",0
TKC_0x0F: dc.b "ELSEIF",0
TKC_0x10: dc.b "'",0 ;-> Comment
TKC_0x11: dc.b "POKE",0
TKC_0x12: dc.b "DPOKE",0
TKC_0x13: dc.b "LPOKE",0
TKC_0x14: dc.b "",0
TKC_0x15: dc.b "QUIT",0
TKC_0x16: dc.b "",0
TKC_0x17: dc.b "",0
TKC_0x18: dc.b "",0
TKC_0x19: dc.b "",0
TKC_0x1A: dc.b "BOX",0
TKC_0x1B: dc.b "",0
TKC_0x1C: dc.b "",0
TKC_0x1D: dc.b "",0
TKC_0x1E: dc.b "PLOT",0
TKC_0x1F: dc.b "LINE",0
TKC_0x20: dc.b "",0
TKC_0x21: dc.b "",0
TKC_0x22: dc.b "SETFONT",0
TKC_0x23: dc.b "",0
TKC_0x24: dc.b "",0
TKC_0x25: dc.b "",0
TKC_0x26: dc.b "",0
TKC_0x27: dc.b "TEXT",0
TKC_0x28: dc.b "",0
TKC_0x29: dc.b "",0
TKC_0x2A: dc.b "DIM",0
TKC_0x2B: dc.b "",0
TKC_0x2C: dc.b "",0
TKC_0x2D: dc.b "GOTO",0
TKC_0x2E: dc.b "",0
TKC_0x2F: dc.b "",0
TKC_0x30: dc.b "ADD",0
TKC_0x31: dc.b "SUB",0
TKC_0x32: dc.b "MUL",0
TKC_0x33: dc.b "DIV",0
TKC_0x34: dc.b "INC",0
TKC_0x35: dc.b "DEC",0
TKC_0x36: dc.b "",0
TKC_0x37: dc.b "",0
TKC_0x38: dc.b "",0
TKC_0x39: dc.b "",0
TKC_0x3A: dc.b "INPUT",0
TKC_0x3B: dc.b "",0
TKC_0x3C: dc.b "",0
TKC_0x3D: dc.b "",0
TKC_0x3E: dc.b "",0
TKC_0x3F: dc.b "",0
TKC_0x40: dc.b "",0
TKC_0x41: dc.b "",0
TKC_0x42: dc.b "",0
TKC_0x43: dc.b "",0
TKC_0x44: dc.b "",0
TKC_0x45: dc.b "",0
TKC_0x46: dc.b "ERASE",0
TKC_0x47: dc.b "",0
TKC_0x48: dc.b "SWAP",0
TKC_0x49: dc.b "",0
TKC_0x4A: dc.b "ARRAYFILL",0
TKC_0x4B: dc.b "",0
TKC_0x4C: dc.b "",0
TKC_0x4D: dc.b "",0
TKC_0x4E: dc.b "",0
TKC_0x4F: dc.b "",0
TKC_0x50: dc.b "",0
TKC_0x51: dc.b "",0
TKC_0x52: dc.b "",0
TKC_0x53: dc.b "",0 ;-> stringd
TKC_0x54: dc.b "",0
TKC_0x55: dc.b "",0
TKC_0x56: dc.b "",0
TKC_0x57: dc.b "",0
TKC_0x58: dc.b "",0
TKC_0x59: dc.b "CLS",0
TKC_0x5A: dc.b "",0
TKC_0x5B: dc.b "",0
TKC_0x5C: dc.b "",0
TKC_0x5D: dc.b "",0
TKC_0x5E: dc.b "",0
TKC_0x5F: dc.b "",0
TKC_0x60: dc.b "SYSTEM",0
TKC_0x61: dc.b "",0
TKC_0x62: dc.b "",0
TKC_0x63: dc.b "",0
TKC_0x64: dc.b "",0
TKC_0x65: dc.b "",0
TKC_0x66: dc.b "",0
TKC_0x67: dc.b "",0
TKC_0x68: dc.b "",0
TKC_0x69: dc.b "",0
TKC_0x6A: dc.b "CLR",0
TKC_0x6B: dc.b "",0
TKC_0x6C: dc.b "",0
TKC_0x6D: dc.b "",0
TKC_0x6E: dc.b "",0
TKC_0x6F: dc.b "",0
TKC_0x70: dc.b "RUN",0
TKC_0x71: dc.b "END",0
TKC_0x72: dc.b "STOP",0
TKC_0x73: dc.b "",0
TKC_0x74: dc.b "",0
TKC_0x75: dc.b "",0
TKC_0x76: dc.b "",0
TKC_0x77: dc.b "",0
TKC_0x78: dc.b "",0
TKC_0x79: dc.b "",0
TKC_0x7A: dc.b "",0
TKC_0x7B: dc.b "PAUSE",0
TKC_0x7C: dc.b "",0
TKC_0x7D: dc.b "",0
TKC_0x7E: dc.b "",0
TKC_0x7F: dc.b "",0
TKC_0x80: dc.b "",0
TKC_0x81: dc.b "",0
TKC_0x82: dc.b "",0
TKC_0x83: dc.b "",0
TKC_0x84: dc.b "",0
TKC_0x85: dc.b "",0
TKC_0x86: dc.b "",0
TKC_0x87: dc.b "",0
TKC_0x88: dc.b "EDIT",0
TKC_0x89: dc.b "",0
TKC_0x8A: dc.b "",0
TKC_0x8B: dc.b "",0
TKC_0x8C: dc.b "",0
TKC_0x8D: dc.b "",0
TKC_0x8E: dc.b "",0
TKC_0x8F: dc.b "",0
TKC_0x90: dc.b "",0
TKC_0x91: dc.b "",0
TKC_0x92: dc.b "",0
TKC_0x93: dc.b "",0
TKC_0x94: dc.b "",0
TKC_0x95: dc.b "",0
TKC_0x96: dc.b "",0
TKC_0x97: dc.b "",0
TKC_0x98: dc.b "",0
TKC_0x99: dc.b "",0
TKC_0x9A: dc.b "",0
TKC_0x9B: dc.b "",0
TKC_0x9C: dc.b "",0
TKC_0x9D: dc.b "",0
TKC_0x9E: dc.b "",0
TKC_0x9F: dc.b "",0
TKC_0xA0: dc.b "",0
TKC_0xA1: dc.b "",0
TKC_0xA2: dc.b "",0
TKC_0xA3: dc.b "",0
TKC_0xA4: dc.b "",0
TKC_0xA5: dc.b "",0
TKC_0xA6: dc.b "",0
TKC_0xA7: dc.b "",0
TKC_0xA8: dc.b "",0
TKC_0xA9: dc.b "",0
TKC_0xAA: dc.b "",0
TKC_0xAB: dc.b "",0
TKC_0xAC: dc.b "",0
TKC_0xAD: dc.b "",0
TKC_0xAE: dc.b "",0
TKC_0xAF: dc.b "",0
TKC_0xB0: dc.b "",0
TKC_0xB1: dc.b "",0
TKC_0xB2: dc.b "",0
TKC_0xB3: dc.b "",0
TKC_0xB4: dc.b "",0
TKC_0xB5: dc.b "",0
TKC_0xB6: dc.b "",0
TKC_0xB7: dc.b "",0
TKC_0xB8: dc.b "",0
TKC_0xB9: dc.b "",0
TKC_0xBA: dc.b "",0
TKC_0xBB: dc.b "",0
TKC_0xBC: dc.b "",0
TKC_0xBD: dc.b "",0
TKC_0xBE: dc.b "",0
TKC_0xBF: dc.b "",0
TKC_0xC0: dc.b "",0
TKC_0xC1: dc.b "",0
TKC_0xC2: dc.b "",0
TKC_0xC3: dc.b "",0
TKC_0xC4: dc.b "",0
TKC_0xC5: dc.b "",0
TKC_0xC6: dc.b "",0
TKC_0xC7: dc.b "",0
TKC_0xC8: dc.b "",0
TKC_0xC9: dc.b "",0
TKC_0xCA: dc.b "",0
TKC_0xCB: dc.b "",0
TKC_0xCC: dc.b "",0
TKC_0xCD: dc.b "",0
TKC_0xCE: dc.b "",0
TKC_0xCF: dc.b "",0
TKC_0xD0: dc.b "",0
TKC_0xD1: dc.b "",0
TKC_0xD2: dc.b "",0
TKC_0xD3: dc.b "",0
TKC_0xD4: dc.b "",0
TKC_0xD5: dc.b "",0
TKC_0xD6: dc.b "",0
TKC_0xD7: dc.b "",0
TKC_0xD8: dc.b "",0
TKC_0xD9: dc.b "",0
TKC_0xDA: dc.b "",0
TKC_0xDB: dc.b "",0
TKC_0xDC: dc.b "",0
TKC_0xDD: dc.b "",0
TKC_0xDE: dc.b "",0
TKC_0xDF: dc.b "",0
TKC_0xE0: dc.b "",0 ;-> float1
TKC_0xE1: dc.b "",0 ;-> string1
TKC_0xE2: dc.b "",0 ;-> long1
TKC_0xE3: dc.b "",0 ;-> boolean1
TKC_0xE4: dc.b "",0 ;-> float1()
TKC_0xE5: dc.b "",0 ;-> string1()
TKC_0xE6: dc.b "",0 ;-> long1()
TKC_0xE7: dc.b "",0 ;-> booleean1()
TKC_0xE8: dc.b "",0 ;-> label1
TKC_0xE9: dc.b "",0
TKC_0xEA: dc.b "",0
TKC_0xEB: dc.b "",0
TKC_0xEC: dc.b "",0
TKC_0xED: dc.b "",0
TKC_0xEE: dc.b "",0
TKC_0xEF: dc.b "",0
TKC_0xF0: dc.b "",0
TKC_0xF1: dc.b "",0
TKC_0xF2: dc.b "",0
TKC_0xF3: dc.b "",0
TKC_0xF4: dc.b "",0
TKC_0xF5: dc.b "",0
TKC_0xF6: dc.b "",0
TKC_0xF7: dc.b "",0
TKC_0xF8: dc.b "",0
TKC_0xF9: dc.b "",0
TKC_0xFA: dc.b "",0
TKC_0xFB: dc.b "",0
TKC_0xFC: dc.b "",0
TKC_0xFD: dc.b "",0
TKC_0xFE: dc.b "",0 ;End line
TKC_0xFF: dc.b "",0 ;End program
===============
Token Function:
===============
TKF_0x00: dc.b "AND",0
TKF_0x01: dc.b "OR",0
TKF_0x02: dc.b "XOR",0
TKF_0x03: dc.b "IMP",0
TKF_0x04: dc.b "EQV",0
TKF_0x05: dc.b "-",0
TKF_0x06: dc.b "+",0
TKF_0x07: dc.b "*",0
TKF_0x08: dc.b "/",0
TKF_0x09: dc.b "^",0
TKF_0x0A: dc.b "MOD",0
TKF_0x0B: dc.b "NOT",0
TKF_0x0C: dc.b "DIV",0
TKF_0x0D: dc.b "<>",0 ;Nombres
TKF_0x0E: dc.b "<=",0
TKF_0x0F: dc.b "=<",0
TKF_0x10: dc.b ">=",0
TKF_0x11: dc.b "=>",0
TKF_0x12: dc.b "<",0
TKF_0x13: dc.b ">",0
TKF_0x14: dc.b "=",0
TKF_0x15: dc.b $9C,0 ;<=
TKF_0x16: dc.b $9E,0 ;>=
TKF_0x17: dc.b $9D,0 ;<>
TKF_0x18: dc.b "",0 ;Chaînes de caractères
TKF_0x19: dc.b $A8,"(",0 ;Racine carrée 'sqr('
TKF_0x1A: dc.b $96,"^(",0 ;Exponentielle 'exp(
TKF_0x1B: dc.b "",0
TKF_0x1C: dc.b "",0
TKF_0x1D: dc.b "",0
TKF_0x1E: dc.b $AD,0 ;(-)
TKF_0x1F: dc.b "",0
TKF_0x20: dc.b ")",0
TKF_0x21: dc.b ",",0
TKF_0x22: dc.b ";",0
TKF_0x23: dc.b "(",0
TKF_0x24: dc.b "SGN(",0
TKF_0x25: dc.b "INT(",0
TKF_0x26: dc.b "TRUNC(",0
TKF_0x27: dc.b "FRAC(",0
TKF_0x28: dc.b "ABS(",0
TKF_0x29: dc.b "SIN(",0
TKF_0x2A: dc.b "COS(",0
TKF_0x2B: dc.b "TAN(",0
TKF_0x2C: dc.b "ATN(",0
TKF_0x2D: dc.b "'",0
TKF_0x2E: dc.b "ROUND(",0
TKF_0x2F: dc.b "EXP(",0
TKF_0x30: dc.b "LOG(",0
TKF_0x31: dc.b "LOG10(",0
TKF_0x32: dc.b "PEEK(",0
TKF_0x33: dc.b "DPEEK(",0
TKF_0x34: dc.b "LPEEK(",0
TKF_0x35: dc.b "VAL(",0
TKF_0x36: dc.b "LEN(",0
TKF_0x37: dc.b "ASC(",0
TKF_0x38: dc.b "",0
TKF_0x39: dc.b "TIMER",0
TKF_0x3A: dc.b "LEFT$(",0
TKF_0x3B: dc.b "",0
TKF_0x3C: dc.b "RIGHT$(",0
TKF_0x3D: dc.b "",0
TKF_0x3E: dc.b "MID$(",0
TKF_0x3F: dc.b "",0
TKF_0x40: dc.b "",0
TKF_0x41: dc.b "STR$(",0
TKF_0x42: dc.b "CHR$(",0
TKF_0x43: dc.b "",0
TKF_0x44: dc.b "",0
TKF_0x45: dc.b "=",0 ;Affectation
TKF_0x46: dc.b "GETFONT",0
TKF_0x47: dc.b "TO",0
TKF_0x48: dc.b "STEP",0
TKF_0x49: dc.b "DOWNTO",0
TKF_0x4A: dc.b "THEN",0
TKF_0x4B: dc.b "",0
TKF_0x4C: dc.b "",0
TKF_0x4D: dc.b "",0
TKF_0x4E: dc.b "SQR(",0
TKF_0x4F: dc.b "",0
TKF_0x50: dc.b "",0
TKF_0x51: dc.b "",0
TKF_0x52: dc.b "",0
TKF_0x53: dc.b "GETKEY",0
TKF_0x54: dc.b "",0
TKF_0x55: dc.b "RND",0
TKF_0x56: dc.b "RANDOM(",0
TKF_0x57: dc.b "",0
TKF_0x58: dc.b "FRE",0
TKF_0x59: dc.b "AT(",0
TKF_0x5A: dc.b "IF",0
TKF_0x5B: dc.b $5C,0 ;Division entière
TKF_0x5C: dc.b "",0
TKF_0x5D: dc.b "VAL?(",0
TKF_0x5E: dc.b "",0
TKF_0x5F: dc.b "",0
TKF_0x60: dc.b "",0
TKF_0x61: dc.b "NGETCHX",0
TKF_0x62: dc.b "MKI$(",0
TKF_0x63: dc.b "MKL$(",0
TKF_0x64: dc.b "MKF$(",0
TKF_0x65: dc.b "CVI(",0
TKF_0x66: dc.b "CVL(",0
TKF_0x67: dc.b "CVF(",0
TKF_0x68: dc.b "",0
TKF_0x69: dc.b "",0
TKF_0x6A: dc.b "",0
TKF_0x6B: dc.b "",0
TKF_0x6C: dc.b "",0
TKF_0x6D: dc.b "",0
TKF_0x6E: dc.b "HEX$(",0
TKF_0x6F: dc.b "OCT$(",0
TKF_0x70: dc.b "BIN$(",0
TKF_0x71: dc.b "",0
TKF_0x72: dc.b "",0
TKF_0x73: dc.b "",0
TKF_0x74: dc.b "",0
TKF_0x75: dc.b "",0
TKF_0x76: dc.b "",0
TKF_0x77: dc.b "",0
TKF_0x78: dc.b "",0
TKF_0x79: dc.b "",0
TKF_0x7A: dc.b "VARPTR(",0
TKF_0x7B: dc.b "ARRPTR(",0
TKF_0x7C: dc.b ":",0 ;<- label
TKF_0x7D: dc.b "DIM?(",0
TKF_0x7E: dc.b "",0
TKF_0x7F: dc.b "UPPER$(",0
TKF_0x80: dc.b "SPACE$(",0
TKF_0x81: dc.b "STRING$(",0
TKF_0x82: dc.b "LOWER$(",0
TKF_0x83: dc.b "",0
TKF_0x84: dc.b "",0
TKF_0x85: dc.b "DFREE(",0
TKF_0x86: dc.b "",0
TKF_0x87: dc.b "",0
TKF_0x88: dc.b "",0
TKF_0x89: dc.b "",0
TKF_0x8A: dc.b "",0
TKF_0x8B: dc.b "",0
TKF_0x8C: dc.b "",0
TKF_0x8D: dc.b "",0
TKF_0x8E: dc.b "",0
TKF_0x8F: dc.b "",0
TKF_0x90: dc.b "",0
TKF_0x91: dc.b "",0
TKF_0x92: dc.b "",0
TKF_0x93: dc.b "",0
TKF_0x94: dc.b "",0
TKF_0x95: dc.b "",0
TKF_0x96: dc.b "",0
TKF_0x97: dc.b "",0
TKF_0x98: dc.b "",0
TKF_0x99: dc.b "",0
TKF_0x9A: dc.b "",0
TKF_0x9B: dc.b "FIX(",0
TKF_0x9C: dc.b "",0
TKF_0x9D: dc.b "",0
TKF_0x9E: dc.b "",0
TKF_0x9F: dc.b "",0
TKF_0xA0: dc.b "",0
TKF_0xA1: dc.b "",0
TKF_0xA2: dc.b "",0
TKF_0xA3: dc.b "",0
TKF_0xA4: dc.b "",0
TKF_0xA5: dc.b "",0
TKF_0xA6: dc.b "",0
TKF_0xA7: dc.b "",0
TKF_0xA8: dc.b "",0
TKF_0xA9: dc.b "",0
TKF_0xAA: dc.b "",0
TKF_0xAB: dc.b "",0
TKF_0xAC: dc.b "",0
TKF_0xAD: dc.b "",0
TKF_0xAE: dc.b "",0
TKF_0xAF: dc.b "",0
TKF_0xB0: dc.b "",0
TKF_0xB1: dc.b "",0
TKF_0xB2: dc.b "",0
TKF_0xB3: dc.b "EVEN(",0
TKF_0xB4: dc.b "ODD(",0
TKF_0xB5: dc.b "",0
TKF_0xB6: dc.b "",0
TKF_0xB7: dc.b "",0
TKF_0xB8: dc.b "",0
TKF_0xB9: dc.b "CRSLIN",0
TKF_0xBA: dc.b "CRSCOL",0
TKF_0xBB: dc.b "!",0 ;stringd
TKF_0xBC: dc.b "TRUE",0
TKF_0xBD: dc.b "FALSE",0
TKF_0xBE: dc.b "PI",0
TKF_0xBF: dc.b $8C,0 ;PI
TKF_0xC0: dc.b $96,0 ;Exponentielle
TKF_0xC1: dc.b "",0
TKF_0xC2: dc.b "",0
TKF_0xC3: dc.b "TYPE(",0
TKF_0xC4: dc.b "",0
TKF_0xC5: dc.b "",0
TKF_0xC6: dc.b "",0 ;-> stringd
TKF_0xC7: dc.b "",0
TKF_0xC8: dc.b "",0 ;-> long% DEC
TKF_0xC9: dc.b "",0 ;-> skip1 -> long% DEC
TKF_0xCA: dc.b "",0 ;-> long% HEX
TKF_0xCB: dc.b "",0 ;-> skip1 -> long% HEX
TKF_0xCC: dc.b "",0 ;-> long% OCT
TKF_0xCD: dc.b "",0 ;-> skip1 -> long% OCT
TKF_0xCE: dc.b "",0 ;-> long% BIN
TKF_0xCF: dc.b "",0 ;-> skip1 -> long% BIN
TKF_0xD0: dc.b "",0
TKF_0xD1: dc.b "",0
TKF_0xD2: dc.b "",0
TKF_0xD3: dc.b "",0
TKF_0xD4: dc.b "",0
TKF_0xD5: dc.b "",0
TKF_0xD6: dc.b "",0
TKF_0xD7: dc.b "",0
TKF_0xD8: dc.b "",0
TKF_0xD9: dc.b "",0
TKF_0xDA: dc.b "",0
TKF_0xDB: dc.b "",0
TKF_0xDC: dc.b "",0 ;-> skip1 -> string$
TKF_0xDD: dc.b "",0 ;-> skip1 -> float# DEC
TKF_0xDE: dc.b "",0 ;-> string$
TKF_0xDF: dc.b "",0 ;-> float# DEC
TKF_0xE0: dc.b "",0 ;-> float1
TKF_0xE1: dc.b "",0 ;-> string1
TKF_0xE2: dc.b "",0 ;-> long1
TKF_0xE3: dc.b "",0 ;-> boolean1
TKF_0xE4: dc.b "",0 ;-> float1()
TKF_0xE5: dc.b "",0 ;-> string1()
TKF_0xE6: dc.b "",0 ;-> long1()
TKF_0xE7: dc.b "",0 ;-> booleean1()
TKF_0xE8: dc.b "",0 ;-> label1
TKF_0xE9: dc.b "",0
TKF_0xEA: dc.b "",0
TKF_0xEB: dc.b "",0
TKF_0xEC: dc.b "",0
TKF_0xED: dc.b "",0
TKF_0xEE: dc.b "",0
TKF_0xEF: dc.b "",0
TKF_0xF0: dc.b "",0
TKF_0xF1: dc.b "",0
TKF_0xF2: dc.b "",0
TKF_0xF3: dc.b "",0
TKF_0xF4: dc.b "",0
TKF_0xF5: dc.b "",0
TKF_0xF6: dc.b "",0
TKF_0xF7: dc.b "",0
TKF_0xF8: dc.b "",0
TKF_0xF9: dc.b "",0
TKF_0xFA: dc.b "",0
TKF_0xFB: dc.b "",0
TKF_0xFC: dc.b "",0
TKF_0xFD: dc.b "",0 ;Tokens constants
TKF_0xFE: dc.b "",0 ;End line
TKF_0xFF: dc.b "",0 ;End program
Une fin de ligne est indiquée grâce au token 0xFE, suivi de 2 octets
pour le numéro de la ligne.
La fin du programme est signalé par le token 0xFF.
-Edité le Samedi 18 décembre 2004 à 20:49 par geogeo-