V20ボードでMS-DOSを動かしたい! その2

V20-MBCエミュレータ進捗

ちょっとずつですが、動き始めてます、V20-MBCエミュレータ

 

f:id:PocketGriffon:20200809222448p:plain

ムダにスタートアップのテキストまでマネして表示させてしまったら、実機で動いてるのかエミュレータで動いてるのか区別が付かなくなってしまったw

↑の画面は、私がプログラムで出力しているハリボテ表示。

RTC(時計)の表示が変になってる辺りが手抜き感を感じさせる!!

 

そして、そんな遊びをしつつも気合いを入れて作ってる!

f:id:PocketGriffon:20200809222637p:plain

f:id:PocketGriffon:20200809222700p:plain

まだまだ機能は足りてないけど、V20-MBC付属のautoboot.binが動くようになった。

上の写真がデバッグ表示付きの実行、下の写真が表示なし。

「Hello, World!」って出力されてるのに注目!

 

構造的なお話

現状の進捗としては2%程度かなーって気がしてる。

手抜き出来るところはトコトン手を抜いてるw

 

Atmega32Aのエミュレーションは、ほぼ何もしていない。

ハードウェアエミュレーションというよりは、機能をマネしている程度。

Atmega32Aに書き込まれているであろうプログラムのソースコードを見ながら、似たような動きをさせてる。

 

V20側は割とマジメに実装してる。

アセンブラエミュレータの2つを同時開発な感じ。

必要最低限の命令だけをエミュレーションすればいいやって感じで作ってある。

今はautoboot.binで使われている命令の12個のみを実装。

 

V20のメモリは1024KBを用意。

そこにautoboot.binを読み込み、実行させてる。

それで表示されたのが「Hello, World!」という事。

実際には表示されるというよりは、シリアル経由で送られる…という事だけど。

 

さあ、次はCP/M-86を起動させるべく頑張ってみる!

この先は長いぞー!(TT)/

 

ではまた次回!(^-^)ノ