ロジックアナライザ LAP-C(16032)を購入

古パソコン系の未知のLSIの動作を解析するため、ロジックアナライザを入手しました。モノは台湾のZEROPLUS社のLAP-C(16032)で、マルツオンラインで購入。 ロジアナやオシロスコープはとても高価で子供のころからあこがれの機械でしたが、この機種は一番下位のモデルで12,800円です。安い。けれども、これでも16チャンネルで1チャンネル当たり32Kビットのメモリを持っているので、ちょっとした実験には足りるような気がします。 ということで取り急ぎRaspberry PiのI2Cのデータをサンプリングしてみました。I2Cのプロトコルアナライザは現在無料で利用できるので、データの繊維の様子が分 … “ロジックアナライザ LAP-C(16032)を購入” の続きを読む

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

作成したアセンブラのプロトを使って、JR-100の実機試してみました。最終的な目的はJR-100に搭載されているVIA(6522)のテストのためなので、マシン語から直接VIAのレジスタを叩いてJR-100のスピーカーから音階を鳴らしてみました。JR-100への入力は同じく自作のFSKプレイヤーを使います。 プログラム JR-100ではVIAのPB7がスピーカーに接続されています。つまりVIAのタイマー1のフリーランモードでPB7に出力される方形波が音声として再生されるため、タイマー1の初期値を生成したい周波数に合わせて調整すればよいということです。タイマーが0になるごとにPB7出力が反転するの … “6802用アセンブラを作る(4) JR-100でのテスト” の続きを読む

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

構文解析部分で少し悩みましたが、ひとまずプロトタイプはできました。パーサーを自分で作るのとは異なり、ジェネレータを使うとエラー処理をうまく書くのが難しいです。いまのところ最低限の処理しか実装していません。またたまに例外を発生しますのでお気を付けを……。 2017/3/25追記 アセンブラの正式版の説明はこちらに移動しました。お手数をおかけします。 構文解析について 行の構文解析のところで二つの方式で悩みました。 方式1: 命令の正当性を構文規則で表現する こんな規則になります。

この方式だと構文エラーが自動的に判定できるので(当 … “6802用アセンブラを作る(3) プロトタイプ完成” の続きを読む

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

6802用アセンブラの構文解析部分を、将来の拡張性を見据えて、自前で作成するのではなく字句解析にJFlex、構文解析にCUPを使って作成することにしました。この記事ではそれぞれの導入と、それらを使った構文解析部分のプロトタイプを紹介します。 インストール 以下の環境にインストールするためのメモを記します。 Windows 10 Eclipse Version Mars.2 Release 4.5.2 JFlex ダウンロードページからtar.gzまたはzipファイルをダウンロードし、適当な場所に保存します。2017年2月26日現在、最新版は1.6.1。tar.gzもzipも内容は同じです。 以 … “6802用アセンブラを作る(2) JFlexとCUPの導入” の続きを読む

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

VIA(6522)の動作をJR-100上で試すために、マシン語をハードコーディングする必要があります。中学生の頃は16進数のマシン語コードのまま平気でハードコーディングできましたが、この歳になるとさすがにつらい。 web上ではMS-DOS用のものなどが公開されていますが、JR-100エミュレータ用に作成したディスアセンブラがあるのでそのコードを流用して自作することにします。 アセンブリ言語の仕様書はこれを参考にします。 6800 Assembly Language Programming (外部リンク) これまでの記録 6802用アセンブラを作る(1) はじめに 6802用アセンブラを作る(2 … “6802用アセンブラを作る(1) はじめに” の続きを読む

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

JR-100: 全体

JR-100ではプログラムを音声データにより外部媒体(カセットテープ)に保存することが可能です。この音声データ(仕様)を再生するプログラムを作成しました。目的は、JR-100のVIAのエミュレーションを正しく行うために、VIAの仕様書を読むだけでは理解できない動作をJR-100実機を使って検証するためです。様々なパターンのマシン語プログラムを毎回打ち込んだりカセットからロードするのは時間がかかりすぎるので、PCから直接再生することにしました。 使い方 Java 1.7以降のJREがインストールされていることが前提です。 ファイルをダウンロードして適当なフォルダに格納してください。JR-100の … “JR-100のプログラムデータを再生するツール” の続きを読む

JR-100のセーブデータのフォーマット

JR-100: 全体

JR-100でSAVEコマンド実行時に再生される音声データの形式を示す。 記録方式 FSK (Frequency Shift Keying)方式で記録する。 スペース: 1,200Hz マーク: 2,400Hz ボーレート: 600ボー 1秒間に600個のスペース(0)またはマーク(1)を送ることができる。 つまり1変調あたり、スペースは2周期分、マークは4周期分が含まれることになる。 バイト表現 1バイトの値は、スタートビット1ビット(0b)とストップビット2ビット(11b)を合わせて、11ビット分を送信する。送信するビット列はLSB(ビット0)からMSB(ビット8)の順に出力される(リトル … “JR-100のセーブデータのフォーマット” の続きを読む

USB Type Micro BとType Aの変換アダプタ

Raspberry Pi ZeroのUSBコネクタはType Micro-Bです。これにType Aのコネクタをもつ無線LANアダプタ(PLANEX GW-USNANO2A)を、これまで変換ケーブルを使って接続していましたが、せっかくの小さいデバイスにケーブルがぶら下がっているのは小ささを台無しにしてしまいます。そこでケーブルなしで形状変換するアダプタを購入。 実際にGW-USNANO2Aと並べてみるとこんな感じです。 これを差し込むとこんな感じ。Type Aオスの穴の部分にジャストフィット。ぴったりはまりこんで抜けなくなるかというとそんなことはなく、指でつかんでひっぱると軽く抜けます。 これ … “USB Type Micro BとType Aの変換アダプタ” の続きを読む

Adafruitの8×8ミニLEDマトリックス制御API(Raspberry Pi用)

Adafuitの8×8のLEDマトリックスをRaspberry Piで使う方法のAPI編です。 初期セットアップの仕方は参考記事を参照してください。 この記事はサンプルコードを思いついたときに適宜追加していきます。そのため見るたびに内容が変わっている可能性があることをご承知おきください。 サンプルコード Raspberry PiのIPアドレスをスクロール表示(2017/1/29作成) 前提パッケージ: netifaces 使用API: animate(), horizontal_scroll() Raspberry Piに設定されているIPアドレスをスクロール表示します。フォントデータはJR- … “Adafruitの8×8ミニLEDマトリックス制御API(Raspberry Pi用)” の続きを読む

PSPの壁紙設定

PSPのシステムソフトウェアVer2.00から、メニュー画面に壁紙として任意の画像を設定できるようになってます(最近出荷されているPSPはすでにVer2.80になっているはず)。 「PSP 壁紙」で検索すると、山ほど壁紙提供サイトが出てきますが、せっかくなのでこの画像を自作してみましょう。 簡単に言えば、480*272のサイズの画像ファイルを作って、PSP内のメモリスティック内のディレクトリ「\PSP\PHOTO」の下に保存するだけです。画像をまだ一枚も保存していない場合はPHOTOディレクトリが存在しませんが、新規にPSPディレクトリ直下に作ればOKです。画像フォーマットは、JPEG/GIF … “PSPの壁紙設定” の続きを読む