/* X1版HuBASIC中間コード表。 CZ-8CB01 CZ-8FB01 CZ-8FB02 (CZ-8FB03(newZ-BASIC)は非対応) この表は独自解析です。保証できるものではありません。 間違い、抜けなどがあるかもしれません。その場合は容赦なくご指摘下さい。 色分けできるテキストエディタを使用すると可読性が上がります。 */ { // 0d 0e 0f 10 11 // 中間code番号 "&O", "&B", "&H", "&J", "&K" //0x3a27 0x3aC2 "'", "ELSE", //8 0 1 2 3 4 5 6 7 8 9 a b c d e f // "GOTO" ,"GOSUB" ,"GO" ,"RUN" ,"RETURN","RESTORE","RESUME" ,"LIST" ,"LILST" ,"DELETE","RENUM","AUTO" ,"EDIT" ,"FOR" ,"NEXT" ,"PRINT", //9 0 1 2 3 4 5 6 7 8 9 a b c d e f // "LPRINT","INPUT" ,"LINPUT" ,"IF" ,"DATA" ,"READ" ,"DIM" ,"REM" ,"END" ,"STOP" ,"CONT" ,"CLS" ,"CLEAR" ,"ON" ,"LET" ,"NEW", //a 0 1 2 3 4 5 6 7 8 9 a b c d e f // "POKE" ,"OFF" ,"WHILE","WEND" ,"REPEAT","UNTIL" ,"" ,"" ,"" ,"TRON" ,"TROFF","" ,"" ,"" ,"DEFINT" ,"DEFSNG", //b 0 1 2 3 4 5 6 7 8 9 a b c d e f // "DEFDBL","DEFSTR","DEF" ,"" ,"LOAD" ,"SAVE" ,"MERGE" ,"CHAIN" ,"CONSOLE","WIDTH" ,"OUT" ,"SEARCH" ,"WAIT" ,"PAUSE","WRITE" ,"SWAP", //c 0 1 2 3 4 5 6 7 8 9 a b c d e f // "ERASE" ,"ERROR" ,"" ,"CALL" ,"MON" ,"LOCATE" ,"SCREEN","KEY" ,"PUSH" ,"POP" ,"LABEL","RANDOMIZE","OPTION","LINE" ,"OPEN" ,"CLOSE", //d 0 1 2 3 4 5 6 7 8 9 a b c d e f(t) // // 0xDF "COM"はturbo "SIZE" ,"FIELD" ,"GET" ,"PUT" ,"SET" ,"FILES" ,"LFILES","DEVICE","NAME" ,"KILL" ,"LSET" ,"RSET" ,"INIT" ,"VDIM" ,"MAXFILES","COM", //e 0 1 2 3 4 5 6 7 8 9 a b c d e f // "TO" ,"STEP" ,"THEN" ,"USING","SUB" ,"BASE" ,"TAB" ,"SPC" ,"EQV" ,"IMP" ,"XOR" ,"OR" ,"AND" ,"NOT" ,"><" ,"<>", //f 0 1 2 3 4 5 6 7 8 9 a b c d e f // 0xfe,0xff は 2byte codeの先頭 無理に 1byteにすると "^&o60!","DATA$5" "=<" ,"<=" ,"=>" ,">=" ,"=" ,">" ,"<" ,"+" ,"-" ,"MOD" ,"\\" ,"/" ,"*" ,"^", // FAの\\は\です // 以下2byteコード fe**,ff** //FE** //8 0 1 2 3 4 5 6 7 8 9 a b c d e f // "WINDOW","PSET" ,"PRESET","COLOR" ,"CIRCLE","POLY" , "PAINT","" ,"POSITION","PATTERN","HCOPY","PLAY" ,"SOUND" ,"BEEP" ,"PRW" ,"PALET", //9 0 1 2 3 4 5 6 7 8 9 a b c d e f // "LAYER" ,"CANVAS","CREV" ,"CFLASH","CGEN" ,"CSIZE" ,"EJECT" ,"CSTOP","FAST" ,"REW" ,"APSS" ,"TVPW" ,"CHANNEL","VOL" ,"CRT" ,"SCROLL", //a 0 1 2 3 4 5 6 7 8 9 a b c d e f(t) // // 0xfeaf "KMODE"はturbo "EFFECT","GRAPH" ,"MUSIC" ,"TEMPO" ,"CURSOR","VERIFY","CLR" ,"LIMIT","KLIST" ,"ASK" ,"KBUF" ,"CLICK" ,"BOOT" ,"DEVI$","DEVO$" ,"KMODE", //b 0 1 2 3 4 5 6 7 8 9 a b c d e f // // (0xfeb0から0xfeb7はturbo) "KSEN" ,"" ,"SYMBOL","HDOFF" ,"" ,"MKDIR" ,"CHDIR" ,"RMDIR", //FF** //8 0 1 2 3 4 5 6 7 8 9 a b c d e f // "INT" ,"ABS" ,"SIN" ,"COS" ,"TAN" ,"LOG" ,"EXP" ,"SQR" ,"RND" ,"PEEK" ,"ATN" ,"SGN" ,"FRAC" ,"FIX" ,"PAI" ,"RAD", //9 0 1 2 3 4 5 6 7 8 9 a b c d e f // "INP" ,"CDBL" ,"CSNG" ,"CINT" ,"" ,"EOF" ,"FPOS" ,"LOC" ,"LOF" ,"POS" ,"FAC" ,"SUM" ,"FRE" ,"LPOS" ,"STICK" ,"STRIG", //a 0 1 2 3 4 5 6 7 8 9 a b c d e f // "CHR$" ,"STR$" ,"HEX$" ,"OCT$" ,"BIN$","MKI$" ,"MKS$" ,"MKD$" ,"SPACE$" ,"CGPAT$","KANJI$","ASC" ,"LEN" ,"VAL" ,"CVS" ,"CVD", //b 0 1 2 3 4 5 6 7 8 9 a b c d e f // "CVI" ,"DEVF" ,"" ,"ERR" ,"ERL" ,"CSRLIN" ,"STRPTR","DTL" ,"" ,"" ,"LEFT$" ,"RIGHT$" ,"MID$" ,"INKEY$","INSTR" ,"HEXCHR$", //c 0 1 2 3 4 5 6 7 8 9 a b c d e f // "MEM$" ,"SCRN$" ,"VARPTR","STRING$","TIME","DAY$" ,"DATE$" ,"FN" ,"USR" ,"CALC" ,"" ,"ATTR$" ,"POINT" ,"CHARACTER$","CMT","MIRROR$", // (0xffd0から0xffd6はturbo) //d 0 1 2 3 4 5 6 7 8 9 a b c d e f(t) // "JIS$", "KTN$" ,"AKCNV$","KACNV$","KLEN","KPOS", "MOUSE" }; /* 数値変換 マニュアルにあるのは3種類。 ●整数型 // 先頭に0x12をつけて2byteで表す。 -32768から32767 明示的に末尾に"%"が付く ●単精度型 // 先頭に0x15をつけて5byteで表す。 指数部7bit+符号1bit。仮数部32bit。末尾に"!"が付く ●倍精度型 // 先頭に0x18をつけて8byteで表す。 指数部7bit+符号1bit。仮数部56bit。末尾に"#"が付く 小数は明記しない場合単精度型。 これに 0から9までは1を足して1byteで表す。( 0 = 0x1, 1 = 0x2, 9 = 0xa ) JUMP命令の後は0xbをつけて符号無し2byte。 */