BASICMASTER, 昔のパソコン

GAME68クロスコンパイラを書いてみた(2) (ベーシックマスター開発 その21) | ず@沖縄の続き。 コンパイラの改良は意外に面白く、最適化の勉強の勉強も兼ねてあれこれ手を入れてみた。最新版は以下に置く。 BASICMASTER/GA ...

BASICMASTER, 昔のパソコン

MC6800の分岐命令が面倒臭いのは6800の分岐命令(ベーシックマスター開発 その30) | ず@沖縄で書いた。 MC6800でなくても、CPUの扱えるレジスタ長を超えると大小比較は面倒くさくなる。 その面倒臭さを当時のインタプリタはどう ...

2024/09/20BASICMASTER, 昔のパソコン

6800には豊富な分岐命令がある。複数の条件フラグを参照する分岐命令もあり、プログラミングを楽にしてくれる……はずなのだけど、うっかりすると罠にハマってしまう。実際ハマった。 解説資料も少なくて、初学者の参考になるようなサイトも見つけきれな ...

2024/09/05BASICMASTER, 昔のパソコン

BASICMASTERには、64x48dotの簡易グラフィックスを表示する機能がある。64x48は、今ではフォント1文字のサイズである。 それでも、この制限された狭いグラフィック表示の中で、頑張って見栄えの良い画面を作ろうとしたものだ。 簡 ...

2024/09/03BASICMASTER, 昔のパソコン

6800のCPX命令とエミュレーター(2)(ベーシックマスター開発 その27) | ず@沖縄の続き。 さて、MC6800のCPX命令はわかりにくいフラグ変化があるという話をしてきた。実は、いくつかのエミュレータ実装でも誤っているものがあるの ...

2024/09/02BASICMASTER, 昔のパソコン

6800のCPX命令とエミュレーター(1)(ベーシックマスター開発 その26) | ず@沖縄の続き。 MC6800のCPX命令は上位・下位を別々に引き算していて、N,Vフラグには上位同士の結果しか反映されないことはわかった。なぜそうなってい ...

2024/09/01BASICMASTER, 昔のパソコン

開発にはエミュレーターを使っているのだけど、CPX命令の処理が正しくないエミュレーターがあるようだ。そもそも6800のCPX命令は変なのである。 私がBASICMASTERを使っていたころは、世の中のプログラムはCPX命令の後は必ずBEQ/ ...

BASICMASTER, 昔のパソコン

昔は1バイトでも短いプログラムの方が大事だった。私の買ったベーシックマスターは全メモリが16KBぐらい。狭い。 メモリ追加して 32KB使えるようになっても言語処理系を入れるとカツカツだった。 (メモリも今のようなモジュールじゃなくて、16 ...

2024/08/25BASICMASTER, 昔のパソコン

前回はさまざまな乗算処理を見てみた。今回は除算。乗算ではシフト方向によって 大きく2つの方法があるが、除算も同様。 また、16bit*16bitの乗算で結果の下16bitだけを使う場合は符号あり・符号なしのどちらでも同じルーチンが使えるが、 ...

BASICMASTER, 昔のパソコン

BASICMASTERは日立製のCPU HD6800を使っている。これはモトローラのMC6800の互換品。昔のCPUなので乗算・除算命令は無く、シフト命令と加減算を組み合わせる必要がある。 コンパイラを作成・改良するにあたり、各種言語で、1 ...

2024/08/19BASICMASTER, 昔のパソコン

GAMEコンパイラの書き直しのために、参考になる6800で動くコンパイラがないかと探していたら、EtchedPixels氏(aka Alan Cox氏)によるFuzix OS内にCコンパイラがあった。 6502用のCコンパイラであるCC65 ...

2024/08/16BASICMASTER, 昔のパソコン

前回記事で「区切りとして github に置きました。この版はこれで終わりにして、第2版を作ろう」と書いたのですが、2週間で書いた割には意外に実用になるので、バグ修正と高速化を1週間ほど頑張ってみました。 現在では、ASCII 1979年7 ...