2014/04/04

InvaderVMテスト成功

Morikawaアプリのひとつとして実装されている InvaderVM (Virtual Machine) が動作しました。 地上局からVMのバイトコードをアップロードすることで、任意のプログラムを軌道上で実行することができます。事実上のリプログラムといえます。 SOUECE CODE DOCUMENT ASSEMBLER 以下の2つのプログラムを実行し、その動作を確認しました。 1. TEXT_YにCURRENT_SOLAR(太陽電池総電流)の数値を3連続で書き込み、モールスで「invader」を送信する —- Assembly SETC, FUNC, getTelemetryCurrent SETC, ARG0, 2 CALL SET, HCUR, 0 MOV, HEAP, RETV SET, HCUR, 4 MOV, HEAP, RETV SET, HCUR, 8 MOV, HEAP, RETV CLR, HCUR SETC, ARG0, 1 SETC, ARG1, 12 SETC, FUNC, setText CALL TXT, 7, invader SETI, ARG0, 1047 SETC, ARG1, 7 SETC, FUNC, playMorse CALL SETI, ARG2, 1200 WAIT, ARG2 END —- Hex Dump by iva 2109 0301 1d03 0502 0802 0300 2000 0506 0402 0203 04c0 0800 0880 080d 0503 0305 0103 060c 0301 2308 1f07 2013 1869 6e76 6164 6572 0405 1704 0306 0703 0149 0804 07b0 041e 0700 —- Result 2. INVADERの各種電流値を音高(ピッチ)と音価(デュレーション)に変化しそのトーンを連続して送信する。 —- Assembly SETC, FUNC, getTelemetryCurrent MOV, ARG0, HEAP CALL SETI, ARG4, 1024 SETC, ARG6, 110 SETC, ARG7, 64 MOV, ARG1, RETV MUL, RETV, RETV MUL, RETV, ARG6 DIV, RETV, ARG5, ARG7 DIV, RETV, ARG5, ARG7 DIV, RETV, ARG5, ARG4 MOV, ARG0, ARG5 SETC, FUNC, playFrequency CALL SETC, ARG9, 19 MOV, ARGA, HEAP INC, ARGA DIV, ARGA, HEAP, ARG9 END —- Hex Dump by iva (Compressed) 2115 0301 1d06 0504 0804 0900 0403 0b6e 030c 4006 0602 1102 2002 040b 1202 0a0c a003 1409 0605 0a03 0145 0803 0e13 060f 040c 0f12 0f04 0e00 —- Result