ず@沖縄

BASICMASTER

chibicc compiler を6800向けに改造する (11) whetstone

簡易プロファイラができたので、ベンチマークテストを見ながら性能改善を行なっている。今回は Whetstone。DhrystoneとWhetstoneは、1980-90年代によく使われていたベンチマークテスト。作られたのはWhetstoneが...
BASICMASTER

chibicc compiler を6800向けに改造する (10) プロファイラ

Dhrystone や Whetstone が動くようになったのだけど、Z80のコンパイラと比べると遅いのである。Z80は1命令数あたりの実行ステート数は多いが、4MHzで動く。今ならもっと高速で動作するチップもあるが、1980年ごろは4M...
BASICMASTER

chibicc compiler を6800向けに改造する (9) IEEE754 float の比較(3)

chibicc 6800のfloatの比較では、TOS (top of stack)に左辺を積んで、右辺を@longに置いて、jsr __cmpf32tos する。cmpf32tos は AccB とフラグで比較の結果を返す。両辺のどちらか...
BASICMASTER

chibicc compiler を6800向けに改造する (8) IEEE754 float (2)

「chibicc 6800 には、IEEE754形式の32bit floatを実装している。オールアセンブラなので、割と速い」などと書いたのだけど、それでも遅いのである。 chibicc compiler を6800向けに改造する (6) ...
BASICMASTER

chibicc compiler を6800向けに改造する (7) dhrystone

コンパイラが一通り動くようになったのでベンチマークしてみた。古典的な dhrystone。 z88dkで動くバージョンがあったので、それで試してみる。案の定、いくつかbugが出たが、なんとか動くようになった。z88dk/libsrc/_DE...
BASICMASTER

chibicc compiler を6800向けに改造する (6) IEEE754 float (1)

chibicc 6800 には、IEEE754形式の32bit floatを実装している。オールアセンブラなので、割と速い。 chibicc-6800-v1/libc/__float.s at main · zu2/chibicc-6800...
BASICMASTER

chibicc compiler を6800向けに改造する (5) アドレッシングと最適化

MC6800向けにコンパイラを書いていて困るのは、Acc A,B と IX,SP が別世界の住人であることだ。Acc A,B で演算した結果をIXやSPに移動するには、ゼロページを経由するしかない。12cycles, 6bytes必要だ。遅...
BASICMASTER

chibicc compiler を6800向けに改造する (4) strcpy

MC6800の泣きどころはインデックスレジスタが1つしかないことと、スタック操作が苦手なことだ。例としてstrcpyを書いてみよう。unsigned char *strcpy(unsigned char *dst, unsigned cha...
BASICMASTER

いまさらベーシックマスターの開発環境を作ってみる(47) MAME

各種エミュレーターで有名な MAMEdev.org | Home of The MAME Project が、バージョン0.270からBASICMASTER Jrをサポートしていた。(Sony NWS-3270があるのも大変そそりますが、こ...
BASICMASTER

生成AI(gemini)を使って16進ダンプリストを入力する

過去のプログラムで遊ぶ時に 避けられないのがプログラムリストの入力である。BASICであれば、入力時・実行時にエラーが出るので、まだなんとかなる。でも、16進ダンプは打ち間違えると、プログラムが暴走してどこで間違えたかわからない。後年になる...
BASICMASTER

ベーシックマスターの文字列出力は$04が終端文字(ベーシックマスター開発 その46)

最近、Quoraを読んでいたら以下のような質問があった。 C言語の文字列は、何故、文字列長を含めたデータ構造にしなかったのでしょうか?昔からのプログラマだと、MS-BASICやUCSD Pascalは文字列長+文字だったなあ、とか、その前は...
BASICMASTER

MC6800のプログラミングテクニック(14) 多バイト整数の2の補数

MC6800のプログラミングテクニック(1) 16bit数値の2の補数の計算とMC6800のプログラミングテクニック(7) 分岐条件の生成(2)の記事を書いてから、ずーっと考えていたことがある。多バイトの2の補数はもっと簡単に作れないか?1...
スポンサーリンク