ず@沖縄

BASICMASTER

EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(4)emu6800も使ってみる

rcbus-6800+MIKBUGでプログラムが動くようになったが、デバッグが面倒くさい。emu6800のように逆アセンブルしながら動作できるとデバッグしやすいので、emu6800にMIKBUG、Altair680の互換サブルーチンを仕込ん...
BASICMASTER

EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(3)

引き続き rcbus-6800+MIKBUGでプログラムを動かしてみる。モトローラ6800CPUボード(SBC6800)で電大版TinyBASICを動かす (6) テストプログラム動作確認と電大版TinyBASIC | KUNINET BL...
BASICMASTER

EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(2)

rcbus-6800でMIKBUGが動くようになったので、何かプログラムを動かしてみよう。モトローラ6800CPUボード(SBC6800)で電大版TinyBASICを動かす (6) テストプログラム動作確認と電大版TinyBASIC | K...
BASICMASTER

EtchedPixels/EmulatorKit でMIKBUGを動かしてみた(1)

6800系の開発テストには、Fuzix-Compiler-Kit/testにあるemu6800を使っているのだが、これは文字出力はできても入力ができない。言語処理系のテストでは出力だけでも良いのだけど、ライブラリのテストや、ちょっとしたゲー...
BASICMASTER

MC6800のプログラミングテクニック(25) 除算の再検討 電大版TinyBASICの除算

除算の再検討のために、過去に発表されたプログラムの除算を見ていたら、あれ?と思う部分があった。Nakamozu Tiny BASIC と 電大版Tiny BASICである。前者は後者を参考にしたと思われるので、電大版を見てみよう。電大版Ti...
BASICMASTER

MC6800のプログラミングテクニック(24) 除算の再検討 整数除算

いままで開設した整数除算では、被除数Aを1bitずつ左シフトしつつ除数と比較していた。以下の8bit比較法除算を例に考えてみよう。被除数 AccAの上位ビットを、ワーク領域 AccBに 1ビットずつシフトしている。シフトして除数を引いて、引...
BASICMASTER

MC6800のプログラミングテクニック(23) 除算の再検討 32bit版

32bit版の除算を考える。考え方は8/16bit版と一緒だが、32bitだとレジスタが全く足りない。32bit加減算が必要なのに、AccAB合わせても16bit幅しかない。被除数とワーク領域(剰余)だけで合計8バイトものシフトが発生するの...
BASICMASTER

MC6800のプログラミングテクニック(22) 除算の再検討 16bit版

こんどは16bit版の除算を考える。考え方は8bit版と一緒だが、16bitだとレジスタが足りないので工夫が必要になる。ワーク領域(剰余)は加減算が必要なので、レジスタに置く。16bit除算なので加減算も16bit幅だ。これでAccABを使...
BASICMASTER

MC6800のプログラミングテクニック(21) 除算の再検討・データの性質

整数除算の商のビットの0,1を数えると、0になるビットが多く 1は少ない。その性質が整数除算の高速化に使える。被除数(a)と除数(d)がランダムに分布していると仮定してみよう(実際には扱うデータによって異なるはずだが、簡単に考えてみる)。ビ...
BASICMASTER

MC6800のプログラミングテクニック(20) 除算の再検討 8bit版

1978年に発表された Intel 8086 には乗除算命令が搭載されていた。それ以前の8bitマイクロプロセッサでは、MC6801やMC6809に8bit乗算命令があるぐらい。初期のRISCであるSPARCでも パイプラインを乱さないよう...
BASICMASTER

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

chibicc compiler を6800向けに改造する (5) アドレッシングと最適化 の続き。MC6800で良いコードを生成するには、Acc A,B と IX,SP の使い分けが必要だと書いたが、もっと場合分けが必要なことに気がついた...
BASICMASTER

chibicc compiler を6800向けに改造する (13) strcpy その2

chibicc compiler を6800向けに改造する (4) strcpy | ず@沖縄 の続きです。前回も書いたように、MC6800の泣きどころはインデックスレジスタが1つしかないことと、スタック操作が苦手なこと。例としてstrcp...
スポンサーリンク