• 20251201
    • V30のゆりかご
      • サンプルで、1と2を足して、100番地に書くプログラムを実行していたが、IOに出した方がいいと聞いて試す。
      • asmで書かれたサンプルコードにout命令を入れたら動いた。
  • 20251202
    • アドベントカレンダー
      • はじまってた。
      • 自分の分を書かないと。
    • V30のゆりかご
      • C版にインラインアセンブラでout命令を入れようとしたが動かなかった。
  • 20251203
    • V30のゆりかご
      • C版をデバッグしてたがお手上げ。
    • アドベントカレンダー
      • 記事をcoins advent calendarに一つあげた。
      • この記事のフォーマットは少し整理したい。
  • 20251204
    • V30のゆりかご
      • 先輩に泣きついたら、8ビット単位の読み書きの時の挙動がおかしいと教えてもらった。
      • こう思ってた。
        • 16ビットアクセスの時は、アドレスを受け取って、そのアドレスと次のアドレスのデータを送受信する。
          • これは正しい。
        • 8ビット読み込みの時は、メモリは16ビットの時と同じデータを送り、そのうち8ビットだけが使われる。
        • 16ビットか8ビットかは、~BHEピンで決まる。
          • こっちは間違いだった。
      • このページの解説によると8ビットの場合はちょっと違った。
        • アドレスが偶数の時:
          • データバスにそのまま繋がる。(D0-D7を使う)
          • ~BHEは無効(ハイ)
        • アドレスが奇数の時:
          • データバスの上位ビットにつながる。(D8-D15を使う)
          • ~BHEは有効(ロー)
        • 上のページの説明がわかりやすかった。
          • 偶数アドレス用メモリチップと奇数アドレス用メモリチップがある。
          • アドレスを下に1ビットシフトしたものが、メモリチップ2つのアドレスラインに繋がっている。
          • 偶数アドレス用メモリチップのデータがD0-D7に繋ってる。
          • 奇数アドレス用メモリチップのデータがD8-D15に繋ってる。
          • アドレスの最下位ビットを反転したものが、偶数アドレス用メモリの有効ピンにつながってる。
          • ~BHEを反転したものが、奇数アドレス用メモリの有効ピンにつながってる。
        • なるほど、「8086は8ビットCPUの後継である」というのはこういう事か。
  • 20251205
    • V30のゆりかご
      • 昨日の指摘を元にコードと挙動を見直してみる。
      • 関数呼び出しの所と指摘されたら、良くみると確かに呼び出した関数は奇数番地に配置されている。
      • モニタ側のコードは、アドレスで指定された番地のメモリをそのままD0から詰めて出していた。
      • これを上のコードに合わせて修正。
      • 関数呼び出しが動き出した。
    • Projectsページ
      • 今年作ったものをページにまとめる。
      • 今年はあんまり物を作ってないなぁ。と思ったが、いままで通りだった。
  • 20251206
    • 週報を更新
    • V30のゆりかご
      • 65536回のループにどれぐらいかかるか?と聞かれて、試した。
      • 次のコードで、クロック125khzで42秒、250khzで21秒、500khzで10.5秒。
      • 750khzではoutされた値がおかしく、1Mhzではプログラムカウンタが暴走した。
      • クロックに対して線形で時間がかわる。
      • 例のスリープでタイミングを見てるところをいじったら、もうちょい早くなるかも。
unsigned short delay(){
  unsigned short i=0,j=0;
  while(++i>0)j+=i;
  return j;
}
  • 20251207
    • アドベントカレンダーとProjectsページ
      • 写真が足りてなかったのを撮る。
      • キーボード関連の部分だけまとめて、キーボードアドベントカレンダーに出しておく。
    • V30のゆりかご
      • pi86というプロジェクトを見つけたので見てみる。
      • 説明によると、クロックは300khzぐらいだとのこと。
      • BIOSを実装しているとのこと。
      • SDL経由でグラフィックを実装しているらしい。
        • ゲームとか動かしていてすごい。
      • なんとクロックを、PWMではなく手で作っている。
      • クロックは一定間隔じゃなくていいのか。
    • 冬タイヤに交換
      • 夏タイヤが、右前D、右後ろA、左前B、左後ろCとついていた。
        • 記録通りだな。
      • 冬タイヤを、右前A、右後ろD、左前C、左後ろBとつけた。