« #ナラタージュは切ない夢なのだ! | Main | #初代Xboxの互換機能対応なのだ! »

2017.10.22

#iPad miniでプログラミングなのだ!

ってことで、我が家のiPad miniは初代(16GB)モデルなんだけど、既にOSアップデート対象外で、iOS 9.3.5止まり。

今年の新商品でiPad mini4の後継機種が発表されると思い、少しづつ小遣いを貯めていたんだが、結局発表は無かったのだ。

既に、一部のアプリでインストール出来ないものが出始めており、現在はネットサーフィンがメインとなっているのだ。

で、最近iPad miniと同時に購入したカバー付きプラスチックケースがボロボロになったので、ケースを新調しようと思いAmazonで探していたら、Bluetooth接続のキーボード兼用のケースを見つけゲットしたのだ。
Artec HB045 Bluetooth Keybord for iPad mini

開閉が少しキツい感じだが、iPad miniと同色で高級感があるキーボードなのだ。
キーボードタッチは、良くも悪くも無く、個人的には「並」レベルの評価なのだ。

で、折角キーボードが使えるんだから、何か有効活用を…と考えてみたのだ。
そこで、インストール済みのアプリを見ていたら、以下の3つがあったのだ。
・iDOS
・iDOS2
・PowerDOS

「iDOS」は32bit非対応で、最新OSでは動かないアプリ。
しかし、Bluetoothのキーボードからの入力が受付られず撃沈。

「iDOS2」は最新OS対応で期待したが、やはり「iDOS」同様に入力が受付られず撃沈。

最後の「PowerDOS」も同類と思い、あきらめ半分で試したら無事Bluetooth のキーボードからの入力が受付られたのだ。

しかし、これらのアプリはiOS 8.3(8.5 だったか?)以降、外部からプログラムやデータのコピーが、簡単にできなくなってしまったのだ。
以前のようにDOSアプリ(VZ Editorなど)を簡単にコピーできないし、どうにかiPad miniだけでプログラムを作れないか…

そこで、ネットをあちこち探していたら、DOSコマンドの「ECHO」だけで「wrichr.com」と言うプログラムを作るネタを発見したのだ。

で、iPad miniの「PowerDOS」上で、プログラミングに挑戦したのだ。
・「wrichr.com」の機能
「10進数の引数を与えると、1バイトのキャラクタを出力する」
という単純なもの。
ようは、「0~255」の引数で、16進数=「0x00~0xFF」を出力できるのだ。

・「wrichr.com」の作り方
wrichr.comのバイナリ情報を4つのechoコマンドで作成するのだ。
(参考サイトでは、一度にまとめてバッチファイルで実行)
もちろんechoの最後に0x0D,0x0Aが付加されるが、動作に問題無し。

echo hD1X-s0P_kUHP0UxGWX4ax1y1ieimnfeinklddmemkjanmndnadmndnpbbn > wrichr.com
echo hhpbbnpljhoxolnhaigidpllnbkdnhlkfhlflefblffahfUebdfahhfkokh >> wrichr.com
echo v17/@yEh9/@/20My/E652hs4/eDAwl/UubnT6/cukMTt//hz8jys79Ah5/c >> wrichr.com
echo yzLb/o9EnVAQn. >> wrichr.com

これは、echoコマンドで直接comファイルを作成するという神業的な手法を使うのだ。
何が神業かと言うと、echoコマンドで入力できる文字は、当然キーボードからしか入力できない訳で、comファイルの中身がキャラクタ文字に含まれていることが前提になるのだ。
参考にしたネット情報では、「左ALTキー+10進数コード」でキャラクタ以外のコードも入力できると書かれているが、iPad miniに接続したキーボードでは入力できなかったのだ。

・「wrichr.com」の使い方
例えば、0x00~0xFFのファイルを準備してみる。
wrichr.com 0 > 00.chr
wrichr.com 1 > 01.chr
 ・
 ・
 ・
wrichr.com 255 > FF.chr

出来たchrファイルには、該当する1バイトの情報のみ書かれているのだ。
そしてchrファイルを使って、キャラクタ文字以外も使ったcomファイルを作成することができるのだ。

type 00.chr > aa.com
type 01.chr >> aa.com
type FF.chr >> aa.com

こうすると、aa.comの中身は、「0x00,0x01,0xFF」と3バイトのファイルになるのだ。

echoコマンドでは、最後に「0x0D,0x0A」が自動で付加されてしまうが、このchrファイルをtypeコマンドで出力すれば、余分なデータが出力されないのだ。

で、この環境が整えば、必要なプログラムをiPad miniだけで作ることが出来るのだ。
しかし、「PowerDOS」のDOSコマンド機能はかなり弱く、まともなバッチファイルも組めそうもないことがわかり、ここまでで終了したのだ。

ようは、「PowerDOS」が「DOSBOX」をベースに作られているので仕方がないのが一番の理由なのだ。

当初は、作りたいcomファイルのバイナリ情報を該当アドレスと組み合わせて一気にcomファイルを作成する方法を考えていたのだ。

例えば、アドレス0100から「0x04,0x03,0x02,0x01」のaa.comファイルを作る場合は、以下のようにすれば良いのだ。
copy 04.chr 0100-04.chr
copy 03.chr 0101-03.chr
copy 02.chr 0102-02.chr
copy 01.chr 0103-01.chr
type *-*.chr > aa.com

しかし、「PowerDOS」のtypeコマンドでは、1ファイル単位でしか機能しないのだ。

まあ、こつこつ1アドレス単位でtypeコマンドを使えば同じことができるんだが、さすがにタイプミスの可能性もあるし…大変な作業になること間違いナシ。

とりあえず、今回のように小さなプログラムなら、なんとか打ち込みが可能なことがわかったので、後日の為に記録しておくことにしたのだ。

iPad miniでプログラミングするなら、Pytonが使える「Pythonista」がオススメかも…その前にPythonを覚えなきゃね。

|

« #ナラタージュは切ない夢なのだ! | Main | #初代Xboxの互換機能対応なのだ! »

iPod,iPad,iPhone関連」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3767/65950303

Listed below are links to weblogs that reference #iPad miniでプログラミングなのだ!:

« #ナラタージュは切ない夢なのだ! | Main | #初代Xboxの互換機能対応なのだ! »