2012-09-01から1ヶ月間の記事一覧

Video 実装

座標系統を修正 Y 座標関連は tilemap の上端のアドレスなり、スプライトの上端の場所を算出すると 0x80 を上端とすると無駄な加減算が発生しないことはなんとなく気づいていた。スキャンライン割り込みでも可視領域上端は 0x80 ベースなのでこれを機会にい…

実装メモ

あんまり進める気はなかったんだが、発注した基板でミスがあって到着が遅れまくっているので仕方なく進む m72 project. DRAM の配置 DRAM はアクセスするために複雑なインタフェースを組まねばならないが、大きい容量を得られる。ここで大きなサイズを使用す…

実装メモ

main CPU の信号を memory map, io map でデコード兼データバスの制御をまとめるモジュールを作成。データバスの制御というのに割り込みのベクタテーブル入力も含まれる。メモ。 NMI, INT, HLDRQ, RESET は正論理 INTAK は負論理 IO/M は 0 が IO, 1 が memo…

LSI-C86 講座その2

startup, vector STARTUP CSEG start:: CLI JMPF to_init dw 0ffffh,0ffffh ;vector table VECTOR ESEG rs 80h db "RAKUTEN EAGLES" TEXT CSEG to_init:: mov ax,4000h mov ss,ax mov sp,4000h mov ax,3800h mov ds,ax call init_## tt: hlt jmp tt CPU rese…

LSI-C86 講座

setup (LSI path)/bin に path を通す (LSI path)/bin/kmmake があるが使う利点がないはずなので普通の make を使う lcc86 コマンドラインオプション -O は -O (最適化有効) か -O0 (最適化無効) の2つだけ -B をつけると // がコメントになる (B 言語の B?)…

video priority

仕様がバラバラでエミュレータのソースコードから読み解くのが一番面倒な仕様、それがレイヤ(planeともいうが、ここらへんは方言がひどくて別の意味を言っていることもある)をどの順番に並べるかという点である。別の用途もあったので m72 を一緒にやってみ…

ROM /RAM イメージモデル

いままでは ROM や RAM のデータは case(address) と大量のラベルによって動かしていたのだが、C++ で書いたようなメモリとして組み込んだことがなかったので対照実験になってないと気づいた。なんでいままで気づかなかったのか。2年間ぐらい不思議にも思っ…

シミュレーションは早いがコンパイルが遅い

C++

コンパイルが通るようにしたところ segmentation fault で落ちた。問題は RAM クラスにある。 RAM といってもラインバッファ向けのアドレスが 15bit x 192 word だったりする。アドレスバスは 8bit あるものの、有効なアドレスは 0 から 0xbf まで。処理の都…