Sign in or 

People just like you can add or edit the content on this site. If you want to try editing, but aren't ready to add to this site, try our demo area.
Read more about editing pages at Wetpaint Central.
)
動作説明 | オブジェクトコード | 備考 |
| 可変命令語の行終了 | 0x00 | |
| イミディエイト値 = 0 | 0x10 | |
| イミディエイト値 = 1 | 0x11 | |
| イミディエイト値 = 2~255 | 0x12, 1バイトデータ | |
| イミディエイト値 = 256~ (2B データ) | 0x13, データ下位バイト, データ上位バイト | |
| 1バイト変数アドレス指定 | 0x15, 0x40+n | ※なぜか0x40足しているので256バイト分の変数を定義できない(バグか?) |
| 2バイト変数アドレス指定 | 0x16, 0x40+n | |
| 変数のビット指定 | 0x1B, 0x40+n, ビット位置 | b7 = 0x80 ~ b0 = 0x01 |
| + | 0x21 | |
| - | 0x22 | |
| * | 0x23 | |
| / | 0x24 | |
| % | 0x26 | |
| AND | 0x27 | |
| OR | 0x28 | |
| XOR | 0x2A | |
| << | 0x2C | |
| >> | 0x2D | |
| 比較< | 0x30 | |
| 比較> | 0x31 | |
| 比較<= | 0x32 | |
| 比較>= | 0x33 | |
| 比較<> | 0x34 | |
| 比較= | 0x35 | |
| GYROSET | 0xA0, サーボ開始No, 個数, d1,~dn | dx は適用ジャイロNo(1~4) |
| GYRODIR | 0xA1, サーボ開始No, 個数, d1,~dn | dx は0 or 1 |
| GYROSENSE | 0xA2, サーボ開始No, 個数, d1,~dn | dxは感度値 |
| MOVE | 0xB0, サーボ開始No, 個数, d1,~dn | dx は10~190で指定 |
| POS | 0xB1, サーボ開始No, 個数, d1,~dn | |
| MOVEPOS ラベルアドレス | 0xB2、アドレス下位バイト、アドレス上位バイト | |
| ZERO | 0xB3, サーボ開始No, 個数, d1,~dn | dx は零点で中心は100 |
| DIR | 0xB4, サーボ開始No, 個数, ビット指定 | ビット指定は b7=#7の方向 ~ b0 = #0 |
| INIT | 0xB5, サーボ開始No, 個数, d1,~dn | |
| HISPEED SETOFF | 0xB6, 0x00 | |
| HISPEED SETON | 0xB6, 0x01 | |
| AIMOTOR SETOFF | 0xB6, 0x02 | |
| AIMOTOR SETON | 0xB6, 0x03 | |
| AIMOTOR INIT | 0xB6, 0x04 | |
| PTP ALLOFF | 0xB6, 0x05 | |
| PTP ALLON | 0xB6, 0x06 | |
| AIMOTOR n | 0xB7, イミディエイト値 | |
| AIMOTOROFF n | 0xB8, イミディエイト値 | |
| GETMOTORSET | 0xB9, サーボ開始No, 個数, d1,~dn | dxは0または1 |
| MUSIC 音符データ | 0xBA, 次命令アドレスLo, 次命令アドレスHi, 音の長さ, 音階,[音の長さ, 音階…], 0x00 | 音階 C=36,#C=37,D=38,#D=39, E=40,F=41,#F=42,G=43,#G=44, A=45,#A=46,B=47,… |
| ? | 0xBB | SRAM(0x050A) b7=1 |
| ? | 0xBC | SRAM(0x050A) b7=0 |
| ? | 0xBD | SRAM(0x050A) b5=1 |
| ? | 0xBE | SRAM(0x050A) b7=1, b6=1 |
| TEMPO n | 0xBF, イミディエイト値 | |
| IF | 0xC0, 非一致時Jumpアドレス(Lo,Hi),変数,比較子,データ,[OR/AND, 変数、比較子,データ],0x00,処理コード… | |
| FOR i = 0 | 0xC1, 変数iアドレス, 初期イミディエイト値 | |
| NEXT i | 0xC2, 変数iアドレス, TOのあるアドレス | |
| TO n | 0xC3, 変数アドレス, 終了イミディエイト値, 終了アドレス | |
| GOTO アドレス | 0xC4, アドレスLo, アドレスHi | |
| END | 0xC4, ←ココのアドレスLo、Hi | END命令ををループする |
| GOSUB アドレス | 0xC5, アドレスLo, Hi | |
| RETURN | 0xC6 | |
| ON n GOTO k1,k2 …kn | 0xC7, 変数nアドレス, 個数, 第一アドレス, 第2アドレス, …第nアドレス | |
| BREAK | 0xCB | |
| POKE 内部SPAMアドレス、データ | 0xCC, アドレスイミディエイト値, データイミディエイト値 | |
| ROMPOKE 外部EEPROMアドレス,データ | 0xCD, アドレスイミディエイト値, データイミディエイト値 | |
| SOUND 音程、長さ,[…] (2000系) | 0xCE, 音程イミディエイト値,長さイミディエイト値、[…], 0x00 | |
| BEEP (2000系) | 0xCF, 0x14, 0x02, 0x00 | |
| PLAY (2000系) | 0xCF, 0x4F, 0x38, 0x4F, 0x38, 0x00 | (未確認) |
| 代入文 A =直接値または文 | 0xD0, 変数Aアドレス, イミディエイト値又は読み取りコマンド,[…],0x00 | |
| 例) A = 2 | 0xD0, 0x15, 0x40, 0x12, 0x02, 0x00 | |
| 例) A = REMOCON(1) | 0xD0, 0x15, 0x40, 0xFB, 0x11, 0x00 | |
| ACTION n | 0xD0, 0x15, 0x40, 0x12, 0x32+n,0x00, 0xC5, メインルーチンアドレスLo,Hi | n+50の値を第一変数に代入し、メインルーチンをサブルーチンコールしている |
| OUT port,n | 0xD1, portイミディエイト値, nイミディエイト値 | |
| PULSE port | 0xD2, イミディエイト値 | |
| TOGGLE port | 0xD3, イミディエイト値 | |
| DELAY n | 0xD4, イミディエイト値, 0xE9 | 自動的にWAIT命令が入る |
| ERX 速度,変数、ラベル | 0xD5,速度No, 変数, ラベルアドレス | 速度No= 0=2400, 1=4800, 2=9600, ~ 9=115200, 10=230400 |
| RX 速度、変数、ラベル (2000系) | 0xD5,速度No, 変数, ラベルアドレス | 速度No=(0xCC=1200,0xE6=2400,0xF3=4800) |
| ETX 速度、値 | 0xD6, 速度No, 変数orイミディエイト値 | 速度No= 0~10 |
| TX 速度、値 (2000系) | 0xD6, 速度No, 変数orイミディエイト値 | 速度No = 0xCC,0xE6,0xF3 |
| MINIOUT データ,… (2000系) | 0xD7, イミディエイト値,[…], 0x00 | |
| MOTOR n | 0xDA, イミディエイト値 | 一個づつ指定する命令しかない |
| MOTOROFF n | 0xDB, イミディエイト値 | 一個づつ指定する命令しかない |
| SPEED n | 0xDD, イミディエイト値 | |
| PWM ポートNo、パルス値 | 0xDE, portイミディエイト値, パルスイミディエイト値 | |
| SERVO n,角度 | 0xDF, サーボNoイミディエイト値, 角度イミディエイト値 | |
| LCDINIT | 0xE0 | |
| CLS | 0xE1 | |
| LOCATE x,y | 0xE2, xイミディエイト値, yイミディエイト値 | |
| PRINT 文字列 | 0xE3, 0x18, 文字列[…], 0x00 | |
| PRINT FORMAT(変数、HEX、桁) | 0xE3, 0x19, 変数, 桁数 | |
| PRINT FORMAT(変数、DEC、桁) | 0xE3, 0x1A, 変数, 桁数 | |
| PRINT FORMAT(変数、BIN、桁) | 0xE3, 0x1B, 変数, 桁数 | |
| CSON | 0xE4 | |
| CSOFF | 0xE5 | |
| CONS 明るさ | 0xE6, イミディエイト値 | |
| BYTEOUT port, n | 0xE7, portイミディエイト値, nイミディエイト値 | |
| ACCEL n (2000系) | 0xE8, 0x11*n | n:0 = 0x00 ~ n:15 = 0xFF |
| WAIT | 0xE9 | |
| STOP | 0xEA | |
| RUN | 0xEB | |
| ? | 0xEC, Dir値 | サーボG6AだけのDIR指定 |
| PTP SETON | 0xED, 0x01 | |
| PTP SETOFF | 0xED, 0x00 | |
| FPWM ポート、パルス、duty比 | 0xEE, portイミディエイト値, パルスイミディエイト値, dutyイミディエイト値 | |
| IN (n) | 0xF0, nイミディエイト値, 0x00 | |
| INKEY (n) (2000系) | 0xF1, nイミディエイト値, 0x00 | |
| KEYIN (port, n) | 0xF1, portイミディエイト値, nイミディエイト値, 0x00 | |
| BYTEIN (n) | 0xF2, nイミディエイト値, 0x00 | |
| AD (n) | 0xF3, nイミディエイト値 | |
| RCIN (n) | 0xF3, (n+100)イミディエイト値 | RCIN(n) は AD(n+100)に等しい |
| MINIIN (2000系) | 0xF4 | |
| STATE (port) | 0xF6, portイミディエイト値,0x00 | |
| RND | 0xF8, 0x00 | |
| PEEK (SRAMアドレス) | 0xF9, アドレスイミディエイト値, 0x00 | |
| ROMPEEK (外部EEPROMアドレス) | 0xFA, アドレスイミディエイト値, 0x00 | |
| REMOCON (n) | 0xFB, nイミディエイト値 | |
| AIMOTORIN (n) | 0xFC, nイミディエイト値, 0x00 | |
| SONAR (n) | 0xFD, nイミディエイト値 | |
| MOTORIN (n) | 0xFE, nイミディエイト値, 0x00 | |
|
Latest page update: made by
Anonymous
, Jun 10 2007, 7:54 PM EDT
(about this update
About This Update
Edited anonymously
1 word added 1 word deleted view changes - complete history) |
|
More Info: links to this page
|
| Started By | Thread Subject | Replies | Last Post | ||
|---|---|---|---|---|---|
| micono | RE:変数が有る場合 | 0 | Jun 14 2007, 10:52 AM EDT by micono | ||
|
Thread started: Jun 14 2007, 10:52 AM EDT
Watch
コードの方にサイズとアドレスが書き込まれている訳だから、必要ないんでしょうね。ありがとうございました。
|
|||||
| Anonymous | RE:変数が有る場合 | 0 | Jun 11 2007, 5:18 AM EDT by Anonymous | ||
|
|
Thread started: Jun 11 2007, 5:18 AM EDT
Watch
確かに、変数が有る場合はOBJファイルのヘッダーに変数情報が追加されますね。
解析してから1年ぐらい経っているのですっかり忘れてました。 アドレス0x0091は変数がない場合だけですね、変数があればその分+αされたところからファイル名が始まってますね。 と言うわけで訂正しますと、 プログラムをノバに転送するときは、OBJファイルのファイル名のところからEEPROMの0x0000アドレスに書き込まれます。 です。 変数情報は書き込まれません。たぶん |
||||
| micono | 変数が有る場合 | 0 | Jun 10 2007, 10:35 PM EDT by micono | ||
|
Thread started: Jun 10 2007, 10:35 PM EDT
Watch
「お気軽に修正OKです」にリプライ書いたけど、やっぱり文字化けしてしまったので、「Add a Comment」でもう一度書き直します。
私、ROBOZAKを定期購入していまして、今週、やっとマイコンボードが届きます。マックユーザーなんで、Parallels DesktopかBootcampを使いながら、roboBASICに変わるマックで動く物を作っていまして、OBJファイルをはく所までは大体できてきました。マイコンボードが来たら転送部分のプログラミングに取りかかろうと思っています。 で、 OBJファイルは、ソースに変数がある場合、ファイル名の前の部分にその情報を書き込んでいるようです。 0x00が 25バイト+0x20が100バイト+変数の情報(バイト数は可変)+ファイル名+...となっています。 変数がある場合も、ない場合も、やはりファイル名から書き込まれるのでしょうか?それとも変数のところから書き込まれるのでしょうか? プログラミングは本業でもないし、まったくのサンデープログラマーです。おまけにデバイスがらみのプログラミングも初めてで、右も左もわかりませんですが、なんとか動く物を作りたいと思っていますので、いろいろお世話になることもあると思いますが、よろしくお願い致します。 |
|||||