Class C64BasicPrg
In: lib/native_file_types/c64/C64BasicPrg.rb
Parent: C64Prg

Methods

Constants

CBM_BASIC_TOKENS = { 0x80=>"END", 0x81=>"FOR", 0x82=>"NEXT", 0x83=>"DATA", 0x84=>"INPUT#", 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=>"ON", 0x92=>"WAIT", 0x93=>"LOAD", 0x94=>"SAVE", 0x95=>"VERIFY", 0x96=>"DEF", 0x97=>"POKE", 0x98=>"PRINT#", 0x99=>"PRINT", 0x9A=>"CONT", 0x9B=>"LIST", 0x9C=>"CLR", 0x9D=>"CMD", 0x9E=>"SYS", 0x9F=>"OPEN", 0xA0=>"CLOSE", 0xA1=>"GET", 0xA2=>"NEW", 0xA3=>"TAB(", 0xA4=>"TO", 0xA5=>"FN", 0xA6=>"SPC(", 0xA7=>"THEN", 0xA8=>"NOT", 0xA9=>"STEP", 0xAA=>"+", 0xAB=>"-", 0xAC=>"*", 0xAD=>"/", 0xAE=>"^", 0xAF=>"AND", 0xB0=>"OR", 0xB1=>">", 0xB2=>"=", 0xB3=>"<", 0xB4=>"SGN", 0xB5=>"INT", 0xB6=>"ABS", 0xB7=>"USR", 0xB8=>"FRE", 0xB9=>"POS", 0xBA=>"SQR", 0xBB=>"RND", 0xBC=>"LOG", 0xBD=>"EXP", 0xBE=>"COS", 0xBF=>"SIN", 0xC0=>"TAN", 0xC1=>"ATN", 0xC2=>"PEEK", 0xC3=>"LEN", 0xC4=>"STR$", 0xC5=>"VAL", 0xC6=>"ASC", 0xC7=>"CHR$", 0xC8=>"LEFT$", 0xC9=>"RIGHT$", 0xCA=>"MID$", 0xCB=>"GO", 0xCC=>'RGR', 0xCD=>'RCLR', 0xCE=>'RLUM', 0xCF=>'JOY', 0xD0=>'RDOT', 0xD1=>'DEC', 0xD2=>'HEX', 0xD3=>'ERR', 0xD4=>'INSTR', 0xD5=>'ELSE', 0xD6=>'RESUME', 0xD7=>'TRAP', 0xD8=>'TRON', 0xD9=>'TROFF', 0xDA=>'SOUND', 0xDB=>'VOL', 0xDC=>'AUTO', 0xDD=>'PUDEF', 0xDE=>'GRAPHIC', 0xDF=>'PAINT', 0xE0=>'CHAR', 0xE1=>'BOX', 0xE2=>'CIRCLE', 0xE3=>'GSHAPE', 0xE4=>'SSHAPE', 0xE5=>'DRAW', 0xE6=>'LOCATE', 0xE7=>'COLOR', 0xE8=>'SCNCLR', 0xE9=>'SCALE', 0xEA=>'HELP', 0xEB=>'DO', 0xEC=>'LOOP', 0xED=>'EXIT', 0xEE=>'DIRECTORY', 0xEF=>'DSAVE', 0xF0=>'DLOAD', 0xF1=>'HEADER', 0xF2=>'SCRATCH', 0xF3=>'COLLECT', 0xF4=>'COPY', 0xF5=>'RENAME', 0xF6=>'BACKUP', 0xF7=>'DELETE', 0xF8=>'RENUMBER', 0xF9=>'KEY', 0xFA=>'MONITOR', 0xFB=>'USING', 0xFC=>'UNTIL', 0xFD=>'WHILE', 0xFF=>"PI", }   tokens taken from www.zimmers.net/anonftp/pub/cbm/programming/cbm-basic-tokens.txt
CBM_BASIC_EXTENDED_TOKENS = { 0x02=>'BANK', 0x03=>'FILTER', 0x04=>'PLAY', 0x05=>'TEMPO', 0x06=>'MOVSPR', 0x07=>'SPRITE', 0x08=>'SPRCOLOR', 0x09=>'RREG', 0x0A=>'ENVELOPE', 0x0B=>'SLEEP', 0x0C=>'CATALOG', 0x0D=>'DOPEN', 0x0E=>'APPEND', 0x0F=>'DCLOSE', 0x10=>'BSAVE', 0x11=>'BLOAD', 0x12=>'RECORD', 0x13=>'CONCAT', 0x14=>'DVERIFY', 0x15=>'DCLEAR', 0x16=>'SPRSAV', 0x17=>'COLLISION', 0x18=>'BEGIN', 0x19=>'BEND', 0x1A=>'WINDOW', 0x1B=>'BOOT', 0x1C=>'WIDTH', 0x1D=>'SPRDEF', 0x1E=>'QUIT', 0x1F=>'STASH', 0x21=>'FETCH', 0x23=>'SWAP', 0x24=>'OFF', 0x25=>'FAST', 0x26=>'SLOW', 0x27=>'TYPE', 0x28=>'BVERIFY', 0x29=>'ECTORY', 0x2A=>'ERASE', 0x2B=>'FIND', 0x2C=>'CHANGE', 0x2D=>'SET', 0x2E=>'SCREEN', 0x2F=>'POLYGON', 0x30=>'ELLIPSE', 0x31=>'VIEWPORT', 0x32=>'GCOPY', 0x33=>'PEN', 0x34=>'PALETTE', 0x35=>'DMODE', 0x36=>'DPAT', 0x37=>'PIC', 0x38=>'GENLOCK', 0x39=>'FOREGROUND', 0x3B=>'BACKGROUND', 0x3C=>'BORDER', 0x3D=>'HIGHLIGHT', }
CBM_CHR_CODES = { 5=>"<WHITE>", 14=>"<LOWER CASE>", 17=>"<DOWN>", 18=>"<RVS ON>", 19=>"<CLR/HOME>", 20=>"<INST/DEL>", 28=>"<RED>", 29=>"<RIGHT>", 30=>"<GRN>", 31=>"<BLU>", 129=>"<ORANGE>", 133=>"<F1>", 134=>"<F3>", 135=>"<F5>", 136=>"<F7>", 137=>"<F2>", 138=>"<F4>", 139=>"<F6>", 140=>"<F8>", 141=>"<SHIFT RETURN>", 142=>"<UPPER CASE>", 144=>"<BLK>", 145=>"<DOWN>", 146=>"<RVS OFF>", 147=>"<CLR/HOME>", 148=>"<INST/DEL>", 149=>"<BROWN>", 150=>"<LT RD>", 151=>"<GREY 1>", 152=>"<GREY 2>", 153=>"<LT GREEN>", 154=>"<LT BLUE>", 155=>"<GREY 3>", 156=>"<PUR>", 157=>"<LEFT>", 158=>"<YEL>", 159=>"<CYN>"   the following codes have special functions in strings

Public Class methods

Public Instance methods

CBM Basic files have the following structure;

 first 2 bytes in file are mem address for file to be relocated to
 then come 1 or more lines. each line has following structure:
 <2 bytes start of next line in RAM>
 <2 bytes line number>
 <tokens>
 0 byte

[Validate]