プログラミング

プログラミング

6802アセンブラで逆アセンブラ形式の出力に対応

6802アセンブラで逆アセンブラ形式の出力に対応した。こんな感じで出力する。とりあえず相対分岐命令の時にラベル名を出すようにした。理想的にはアドレッシングモードがdirectとextendedのときもラベル名を出すべきな気もするけどまだでき...
プログラミング

R6522のシフトレジスタの挙動が分からない

R6522のシフトレジスタの挙動をデータシートをもとに調べていますが、理解できないところが多い。 モード0: SRが無効になるモードなのに、CB1の立ち上がりエッジでCB2にシフトアウトするように読める。("In this mode the...
プログラミング

6802用アセンブラを作る(5) 一応完成

ひとまず仕様をfixさせ、ユーザーズガイドを作成しました。結局構文解析部分は命令毎に規則を書き下す方式にしました。状態遷移表の状態数は740状態、遷移数は3445個です。これくらいなら許容範囲かな? 規則部はこんな感じ。各命令に対応するシン...
プログラミング

6802用アセンブラを作る(4) JR-100でのテスト

作成したアセンブラのプロトを使って、JR-100の実機試してみました。最終的な目的はJR-100に搭載されているVIA(6522)のテストのためなので、マシン語から直接VIAのレジスタを叩いてJR-100のスピーカーから音階を鳴らしてみまし...
プログラミング

6802用アセンブラを作る(3) プロトタイプ完成

構文解析部分で少し悩みましたが、ひとまずプロトタイプはできました。パーサーを自分で作るのとは異なり、ジェネレータを使うとエラー処理をうまく書くのが難しいです。いまのところ最低限の処理しか実装していません。またたまに例外を発生しますのでお気を...
プログラミング

6802用アセンブラを作る(2) JFlexとCUPの導入

6802用アセンブラの構文解析部分を、将来の拡張性を見据えて、自前で作成するのではなく字句解析にJFlex、構文解析にCUPを使って作成することにしました。この記事ではそれぞれの導入と、それらを使った構文解析部分のプロトタイプを紹介します。...
プログラミング

6802用アセンブラを作る(1) はじめに

VIA(6522)の動作をJR-100上で試すために、マシン語をハードコーディングする必要があります。中学生の頃は16進数のマシン語コードのまま平気でハードコーディングできましたが、この歳になるとさすがにつらい。 web上ではMS-DOS用...
プログラミング

JR-100のプログラムデータを再生するツール

JR-100ではプログラムを音声データにより外部媒体(カセットテープ)に保存することが可能です。この音声データ(仕様)を再生するプログラムを作成しました。目的は、JR-100のVIAのエミュレーションを正しく行うために、VIAの仕様書を読む...
プログラミング

PNG API

自前で進めている古パソコンの解析作業(古パソコンの部屋参照)を進めるにあたって、文字フォントのビットマップから画像ファイルを機械的に生成するために、ビットマップデータから画像ファイルへの変換プログラムが必要になった。ブラウザで画像が見られる...
プログラミング

MMLプレイヤ

古いパソコンのエミュレータ作成の一環として、各種音源ICのエミュレーションをしたいと思っています。また、昔さんざんいじったMMLを使って今のマシンから簡単に音楽演奏できたら楽しそうだと考えました。そこで、Javaのプログラミングテクニック向...