Class: MBasic
- Inherits:
-
CPMFile
- Object
- NativeFileType
- CPMFile
- MBasic
- Defined in:
- lib/native_file_types/cpm/MBasic.rb
Overview
the CP/M MBASIC file format is very similar to the MS-DOS BASICA/GWBASIC formats, described at www.chebucto.ns.ca/~af380/GW-BASIC-tokens.html
Constant Summary collapse
- SINGLE_BYTE_TOKENS =
{ 0x81=>'END', 0x82=>'FOR', 0x83=>'NEXT', 0x84=>'DATA', 0x85=>'INPUT', 0x86=>'DIM', 0x87=>'READ', 0x88=>'LET', 0x89=>'GOTO', 0x8A=>'RUN', 0x8B=>'IF', 0x8C=>'RESTORE', 0x8D=>'GOSUB', 0x8E=>'RETURN', 0x8F=>'REM', 0x90=>'STOP', 0x91=>'PRINT', 0x92=>'CLEAR', 0x93=>'LIST', 0x94=>'NEW', 0x95=>'ON', 0x96=>'DEF', 0x97=>'POKE', 0x98=>'CONT', 0x9B=>'LPRINT', 0x9C=>'LLIST', 0x9D=>'WIDTH', 0x9E=>'ELSE', 0x9F=>'TRACE', 0xA0=>'NOTRACE', 0xA1=>'SWAP', 0xA2=>'ERASE', 0xA3=>'EDIT', 0xA4=>'ERROR', 0xA5=>'RESUME', 0xA6=>'DEL', 0xA7=>'AUTO', 0xA8=>'RENUM', 0xA9=>'DEFSTR', 0xAA=>'DEFINT', 0xAB=>'DEFSNG', 0xAC=>'DEFDBL', 0xAD=>'LINE', 0xAE=>'POP', 0xAF=>'WHILE', 0xB0=>'WEND', 0xB1=>'CALL', 0xB2=>'WRITE', 0xB3=>'COMMON', 0xB4=>'CHAIN', 0xB5=>'OPTION', 0xB6=>'RANDOMIZE', 0xB7=>'SYSTEM', 0xB8=>'OPEN', 0xB9=>'FIELD', 0xBA=>'GET', 0xBB=>'PUT', 0xBC=>'CLOSE', 0xBD=>'LOAD', 0xBE=>'MERGE', 0xBF=>'FILES', 0xC0=>'NAME', 0xC1=>'KILL', 0xC2=>'LSET', 0xC3=>'RSET', 0xC4=>'SAVE', 0xC5=>'RESET', 0xC6=>'TEXT', 0xC7=>'HOME', 0xC8=>'VTAB', 0xC9=>'HTAB', 0xCA=>'INVERSE', 0xCB=>'NORMAL', 0xCC=>'GR', 0xCD=>'COLOR', 0xCE=>'HLIN', 0xCF=>'VLIN', 0xD0=>'PLOT', 0xD1=>'HGR', 0xD2=>'HPLOT', 0xD3=>'HCOLOR', 0xD4=>'BEEP', 0xD5=>'WAIT', 0xDD=>'TO', 0xDE=>'THEN', 0xDF=>'TAB(', 0xE0=>'STEP', 0xE1=>'USR', 0xE2=>'FN', 0xE3=>'SPC(', 0xE4=>'NOT', 0xE5=>'ERL', 0xE6=>'ERR', 0xE7=>'STRING$', 0xE8=>'USING', 0xE9=>'INSTR', 0xEA=>"'", 0xEB=>'VARPTR', 0xEC=>'SCRN', 0xED=>'HSCRN', 0xEE=>'INKEY$', 0xEF=>'>', 0xF0=>'=', 0xF1=>'<', 0xF2=>'+', 0xF3=>'-', 0xF4=>'*', 0xF5=>'/', 0xF6=>'^', 0xF7=>'AND', 0xF8=>'OR', 0xF9=>'XOR', 0xFA=>'EQV', 0xFB=>'IMP', 0xFC=>'MOD', 0xFD=>'\\', }
- DOUBLE_BYTE_TOKENS =
{ 0x81=>'LEFT$', 0x82=>'RIGHT$', 0x83=>'MID$', 0x84=>'SGN', 0x85=>'INT', 0x87=>'SQR', 0x88=>'RND', 0x89=>'SIN', 0x8A=>'LOG', 0x8B=>'EXP', 0x8C=>'COS', 0x8D=>'TAN', 0x8E=>'ATN', 0x8F=>'FRE', 0x90=>'POS', 0x91=>'LEN', 0x92=>'STR$', 0x93=>'VAL', 0x94=>'ASC', 0x95=>'CHR$', 0x96=>'PEEK', 0x97=>'SPACE$', 0x98=>'OCT$', 0x99=>'HEX$', 0x9A=>'LPOS', 0x9B=>'CINT', 0x9C=>'CSNG', 0x9D=>'CDBL', 0x9E=>'FIX', 0xAA=>'CVI', 0xAB=>'CVS', 0xAC=>'CVD', 0xAE=>'EOF', 0xAF=>'LOC', 0xB0=>'LOF', 0xB1=>'MKI$', 0xB2=>'MKS$', 0xB3=>'MKD$', 0xB4=>'VPOS', 0xB5=>'PDL', 0xB6=>'BUTTON', }
Instance Attribute Summary
Attributes inherited from NativeFileType
#aux_code, #contents, #file_system_image, #file_type, #filename, #meta_data
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from CPMFile
Methods inherited from NativeFileType
#<=>, #==, all_native_file_types, best_fit, code_for_tests, compatability_score, #data_without_header, file_type_matches?, #full_filename, #header_length, #initialize, is_valid_file_if, #load_address, load_address, matching_score, native_file_types_possible_on_file_system, non_matching_score, #to_hex_dump, #to_info_dump, #type_description
Methods included from SubclassTracking
Constructor Details
This class inherits a constructor from NativeFileType
Class Method Details
Instance Method Details
#to_listing ⇒ Object
178 179 180 181 182 183 184 |
# File 'lib/native_file_types/cpm/MBasic.rb', line 178 def to_listing if @contents[0]==0xFF then buffer_as_gbasic(@contents) else @contents end end |