6800のCPX命令とエミュレーター(1)(ベーシックマスター開発 その26)
開発にはエミュレーターを使っているのだけど、CPX命令の処理が正しくないエミュレーターがあるようだ。そもそも6800のCPX命令は変なのである。 私がBASICMASTERを使っていたころは、世の中のプログラムはCPX命令の後は必ずBEQ/ ...
6800のアセンブラプログラム最適化(1)(ベーシックマスター開発 その25)
昔は1バイトでも短いプログラムの方が大事だった。私の買ったベーシックマスターは全メモリが16KBぐらい。狭い。 メモリ追加して 32KB使えるようになっても言語処理系を入れるとカツカツだった。 (メモリも今のようなモジュールじゃなくて、16 ...
除算ルーチンの検討(ベーシックマスター開発 その24)
前回はさまざまな乗算処理を見てみた。今回は除算。乗算ではシフト方向によって 大きく2つの方法があるが、除算も同様。 また、16bit*16bitの乗算で結果の下16bitだけを使う場合は符号あり・符号なしのどちらでも同じルーチンが使えるが、 ...
乗算ルーチンの検討(ベーシックマスター開発 その23)
BASICMASTERは日立製のCPU HD6800を使っている。これはモトローラのMC6800の互換品。昔のCPUなので乗算・除算命令は無く、シフト命令と加減算を組み合わせる必要がある。 コンパイラを作成・改良するにあたり、各種言語で、1 ...
6800用のコンパイラを探して – Fuzix/CC6303(ベーシックマスター開発 その22)
GAMEコンパイラの書き直しのために、参考になる6800で動くコンパイラがないかと探していたら、EtchedPixels氏(aka Alan Cox氏)によるFuzix OS内にCコンパイラがあった。 6502用のCコンパイラであるCC65 ...
GAME68クロスコンパイラを書いてみた(2) (ベーシックマスター開発 その21)
前回記事で「区切りとして github に置きました。この版はこれで終わりにして、第2版を作ろう」と書いたのですが、2週間で書いた割には意外に実用になるので、バグ修正と高速化を1週間ほど頑張ってみました。 現在では、ASCII 1979年7 ...
GAME68クロスコンパイラを書いてみた(1) (ベーシックマスター開発 その20)
GAME68は移植できたので、順番からすると次はGAME68コンパイラの移植になるのだが、どうも気乗りしない。 変数領域を0ページ外に移動したので、コンパイラの修正が必要になる。いまさらベーシックマスターの狭い画面(32x24)で、vi以外 ...
いまさらベーシックマスターの開発環境を作ってみる(19) プロファイラを作ってみる(2)
いまさらベーシックマスターの開発環境を作ってみる(17) プロファイラを作ってみるで作ったプロファイラ、たいへん便利。時間喰ってるルーチンが簡単にわかるので、最適化しやすい。 調子に載って、メモリアクセス回数をカウントするように改造してみた ...
いまさらベーシックマスターの開発環境を作ってみる(18) NAKAMOZU Tiny BASICを高速化する
いまさらベーシックマスターの開発環境を作ってみる(17) プロファイラを作ってみる | ず@沖縄で作った簡易プロファイラを使ってNAKAMOZU Tiny BASIC(以下NTB)を高速化してみた。NTBは、下記連載で移植したものだ。 いま ...
いまさらベーシックマスターの開発環境を作ってみる(17) プロファイラを作ってみる
私が使っていたBASICMASTER L2II (MB-6881)は、標準で16KBのRAMが内蔵されていた。もちろん、これでは少なすぎるので16KBを追加して32KBで使っていた。今のCPUならL1 cache以下のサイズである。 外部記 ...
いまさらベーシックマスターの開発環境を作ってみる(16) 各種エディタ
BASICMASTERには標準でLevel2 BASICが搭載されていて、内蔵エディタでBASICプログラムを書くことはできる。このエディタは入力したBASIC文を中間言語に変換してしまうし、エラーがあれば入力時点で弾いてしまうので、他の言 ...
いまさらベーシックマスターの開発環境を作ってみる(15) 文字コード(4)
いまさらベーシックマスターの開発環境を作ってみる(13) 文字コード(3) | ず@沖縄の続き。 Unicodeのテキストファイルを、BASICMASTERの機種依存文字(以下BM独自文字)を含むファイルに変換するプログラムは書けた。これを ...