たまりば

  パソコン・インターネット パソコン・インターネット  三鷹市 三鷹市

ファミコンはじめました。
2010年05月27日 06:17

HELLO WORLD
ふとファミコンソフト作りたいなーと思って検索したら、
[ギコ猫でもわかるファミコンプログラミング]
見事に凄く詳しそうなサイトが見つかった。
ここにあったスプライトを表示するサンプルプログラムを書き換えてまずはHelloWorldを作ってみた。

やってて思ったのだが、PICのアセンブラが分かってるお陰で理解がすごく楽。しょせんどれも似たようなものなんだなあ。
それと、両方やって分かる各々の特徴もある。

ファミコンはアドレッシングモードが(PICと比べれば)多い。つまり例えば加算命令で言えば、
・"10"を足せ
・"10"番地のメモリの内容を足せ
・["10"番地のメモリの内容]番地のメモリの内容を足せ
・["10"番地のメモリの内容+インデックスレジスタの内容]番地のメモリの内容を足せ
とか色々ある。
こうしてみるとPICのアドレッシングモードって少なかったんだなあと分かる。なにせ一番低性能な部類のやつだと、
・"10"番地のメモリの内容を足せ
しかない。

ファミコンは命令長が複数ある。つまり一つの命令が1バイトだったり2バイトだったり3バイトだったりする。
PICは(高機能なのになると違うらしいが)一律12ビットor14ビットだ。
命令の実行時間も、PICは分岐命令を除き一定だがファミコンは2クロックから7クロック(8クロック?)までいろいろある。

あと、1バイトに10進数2桁を保存しようとしたのだがやってみるとうまく扱えない。なるほど、ファミコンのCPUは2進化10進数の演算機能を削除したとあったがこれのことか。
そう思ってPICを見ると2進化10進数演算そのものはないが、ハーフキャリーフラグとSWAPF命令があってそれなりに扱えそう。今まで何に使うのか分からなかったSWAPF命令が輝いて見える。


今後の予定は、とりあえず電卓っぽいものを作りたいなあと思っている。double精度で三角関数を計算できるくらいの。
あとは実機で動くようにしたいけど、…それってマジコンだよね。  

  • N進数変換機
    2010年05月25日 17:04

    16進数→10進数変換とか逆とか8進2進その他進も、世の中に星の数ほどあるわけですが、どうも使いやすいのが無いなーと思って、作ってみました。
    何が使いにくいかというと、たとえば16進数を入力しようと思ったとき、まず「16進」ボタンを押さなければならなかったり、あるいは進数ごとに入力欄が分かれていて適切なところに入れないと変換できなかったりするわけです。
    そんなことしないでも、とりあえず入力してから何進数から何進数に変換するかを選べれば便利なのになあと思って、そういうのを探したんですが見つからず、仕方が無いので自分で作りました。

    使い方は簡単です。
    下の入力欄に任意の進数で数を入れて、実行を押すかあるいはEnterで変換が行われます。
    何進数から何進数への変換かを選ぶのも面倒なので、メジャーな2,8,10,16進の相互変換の計12種類は無条件で行います。
    (でも逆に目的の結果を探すのが面倒かもしれない。ここは改良の余地あり。)
    その他の変換を行いたいときは上の入力欄に入れてください。36進数まで対応しています。
    エラー処理はあんまりやっていません。まともな数字を入れるようにしてください。

    from: to:


    from\to161082
    16-000
    100-00
    800-0
    2 000-


      
    タグ :JavaScript

  • PICはじめました。
    2010年05月16日 05:59

    PIC12F510
    はじめました。去年の12月ごろに。
    PICというのはマイクロチップ社の作っているマイコンです。

    以前からなんとなくマイコンやりたいなーと思っていて、CQ出版の雑誌に付録が付いた時には買っていたのですが、
    CQ出版の雑誌
    封も切らずに本棚の肥やしになっていたり、サンプルプログラムを走らせただけだったりしてました。
    唯一自分で書いたプログラムはLED点滅だけ。
    なんでかなーと考えてみると、高機能すぎて何やっていいか分からないのと、必要な外付け部品に結構金がかかるのが原因な気がします。
    「とりあえずマイコン始めたい」という欲求にはこの辺のは向かないのかなと、今になって思います。

    一方、PICは低機能で安価なので初めてのマイコンに向いています。
    高機能なマイコンはふつうC言語などの高級言語でプログラミングするので中で何をやっているか分からず、いまいち「マイコンをやっている」感に乏しいのですが、PICなら命令が35個しかないので簡単にアセンブラで書けます。むしろC言語で書くのが困難です。
    まあこれは普通は欠点というのだと思いますが、別に実用的なものを作るのが目的ではなくマイコンで遊びたいだけなので、こっちの方が楽しめます。
    そしてなんといっても安い。今一番安い石は1個60円です。ライター(書き込み装置)に金がかかりますが、自作すれば数百円で済みます。

    なおこの辺を読むに、
    いますぐPICをやめてAVRに移行すべき10の理由
    PICを捨ててAVRを使おう
    どうもPICよりAVRの方が圧倒的に優れているように感じます。
    が、まず最初のマイコンとしてはPICを選んで間違いではなかったと思います。ここに書いてある事の大半は実際にPICをやってみて初めて理解できたので。

    AVRも使ってみたいので、そうしたら自分なりの比較記事を書くと思います。  
    タグ :マイコン