レトロマイコン86ボードの構想(その9)bootstrapでのCP/M-86の起動 [8086]
前回の記事でCP/M-86をCold Start Loaderで起動できたことを書きました。
今回はBootstrapを使ってCP/M-86を本来の起動方法で立ち上げます。
BootstrapはDiskAのシステム用トラック(今回は1トラックをシステム用に確保しています)からCold Start Loaderを読込んで起動するだけの機能なので作成は簡単なのですが、ブレッドボード上で回路を組んでいるため、ハードが不安定になることが度々あり、その都度、原因調査と対策をして時間が掛かりました(何度か安定化したといっているのでオオカミ少年状態です(少年ではないのですがw))
ブレッドボードで評価する時は、次回から新しいブレッドボードを使い、結線の線材も自作するなど、検討した方がいいかもしれません。
話をBootstrapに戻すとシステムトラック上のBootstrapとCold Boot Loaderの配置はSDカードのブロックサイズが512bytesであることを考慮してCold Boot Loaderのヘッダを除く、コード部を0200H(2ブロック目)から配置しました。
Bootstrapは先頭の128バイトに収めます。
Bootstrapのソースは短いので全リストを貼っておきます。
Pic24V20でのCP/M-86用Bootstrap(アセンブラ)
★2019/11/16 変更 Bootstrapリストを最新版に変更
ハードが安定している時には、CP/M-86の起動がメチャ楽になりました。
電源投入時からCP/M-86起動までのサンプルログを以下に示します。
下記のサンプルログでは手動でCP/M-86を起動していますが、picle言語で書いたCP/M-86booterを自動起動するように設定すれば電源オンでCP/M-86が起動するようになります。
BootstrapでのCP/M-86の起動
★2019/09/07 追記
CP/M-86用のデジタルリサーチ社製Cコンパイラでhello表示してみた。
stdio.hの67行目でエラーが発生しましたがリンク後起動したところ、hello表示できました。
DRCでhello
★2019/09/15 追記
デジタルリサーチ社の Personal Basic でASCIIARTを動かしてみました。
Personal Basicはプロンプト行がそのまま入力行になっているためかプログラムからの出力が80文字手前で次の行へ改行してしまうので冒頭にwidth命令を追加して80文字/行に設定しています。
実行時間は2分5秒でした(V20のクロックは8MHzです)
因みにマイクロソフトのMBASICでの実行時間は2分42秒でした。
CP/M-68Kではデジタルリサーチ社のCBASICはBCD演算のためかASCIIARTの実行時間がかなり遅かったのですがCP/M-86ではMSより速いですね。
Personal BasicでのASCIIART実行
★2019/09/22 追記
CP/M-86はネットから入手できるソフトが思ったより多くないですね^^;
デジタルリサーチ以外のCコンパイラを探したところ、Aztec Cを見つけました。
でもincludeでファイルが読めないとのエラーが出てコンパイルできない・・
CP/M-86が正常に動いていないのか・・
Aztec Cでのコンパイルエラー
★2019/09/22 追記
上に書いたAztec Cのコンパイルエラーですが、#includeで指定するファイルを<>ではなく""で囲むとエラーが出なくなりました。
下のログはDRC(デジタルリサーチ社製)とAztecCでのコンパイル状況と実行ファイルのサイズの比較です。
AztecCの方がかなりコンパクトな実行ファイルを作成してますね。
まぁもっと大きなプログラムの場合、どうなるかはやってみないと判らないですが・・
Aztec CとDRCとの比較
★2019/10/22 追記
Aztec Cのコンパイルオプションでインクルードドライブを標準ヘッダファイルのあるドライブ(今回の場合はCドライブ)に指定するとエラーが出なくなりました。
cc -ic: SrcFileName
★2019/09/23 追記
AztecCの著作権についてメモしておきます。
the official AZTEC C onlineのサイトでApple IIとCommondore 64用のAztec Cが公開されていて、このサイト内のLeap into a new dimension with Aztec Cのページで免責事項として次のように記載されています。
Apple IIとCommondore 64用のAztec Cに関してはfreeで使っていいようです。
google翻訳が下記で「所有権を一切主張せず」とあるので少なくともこのサイトで公開されているApple IIとCommondore 64用のコンパイラに関しては自由に使えるようです。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
今回はBootstrapを使ってCP/M-86を本来の起動方法で立ち上げます。
BootstrapはDiskAのシステム用トラック(今回は1トラックをシステム用に確保しています)からCold Start Loaderを読込んで起動するだけの機能なので作成は簡単なのですが、ブレッドボード上で回路を組んでいるため、ハードが不安定になることが度々あり、その都度、原因調査と対策をして時間が掛かりました(何度か安定化したといっているのでオオカミ少年状態です(少年ではないのですがw))
ブレッドボードで評価する時は、次回から新しいブレッドボードを使い、結線の線材も自作するなど、検討した方がいいかもしれません。
話をBootstrapに戻すとシステムトラック上のBootstrapとCold Boot Loaderの配置はSDカードのブロックサイズが512bytesであることを考慮してCold Boot Loaderのヘッダを除く、コード部を0200H(2ブロック目)から配置しました。
Bootstrapは先頭の128バイトに収めます。
; ++++ SD block assign ++++ ; ; blk No adr length content ; 0 0000H 80H Bootstrap ; 0 0080H 100H not use ; 0 0180H 80H ColdStartLoader's header ; 1 0200H nnnn code of ColdStartLoader ; ...
Bootstrapのソースは短いので全リストを貼っておきます。
|
★2019/11/16 変更 Bootstrapリストを最新版に変更
ハードが安定している時には、CP/M-86の起動がメチャ楽になりました。
電源投入時からCP/M-86起動までのサンプルログを以下に示します。
下記のサンプルログでは手動でCP/M-86を起動していますが、picle言語で書いたCP/M-86booterを自動起動するように設定すれば電源オンでCP/M-86が起動するようになります。
|
★2019/09/07 追記
CP/M-86用のデジタルリサーチ社製Cコンパイラでhello表示してみた。
stdio.hの67行目でエラーが発生しましたがリンク後起動したところ、hello表示できました。
|
★2019/09/15 追記
デジタルリサーチ社の Personal Basic でASCIIARTを動かしてみました。
Personal Basicはプロンプト行がそのまま入力行になっているためかプログラムからの出力が80文字手前で次の行へ改行してしまうので冒頭にwidth命令を追加して80文字/行に設定しています。
実行時間は2分5秒でした(V20のクロックは8MHzです)
因みにマイクロソフトのMBASICでの実行時間は2分42秒でした。
CP/M-68Kではデジタルリサーチ社のCBASICはBCD演算のためかASCIIARTの実行時間がかなり遅かったのですがCP/M-86ではMSより速いですね。
|
★2019/09/22 追記
CP/M-86はネットから入手できるソフトが思ったより多くないですね^^;
デジタルリサーチ以外のCコンパイラを探したところ、Aztec Cを見つけました。
でもincludeでファイルが読めないとのエラーが出てコンパイルできない・・
CP/M-86が正常に動いていないのか・・
|
★2019/09/22 追記
上に書いたAztec Cのコンパイルエラーですが、#includeで指定するファイルを<>ではなく""で囲むとエラーが出なくなりました。
下のログはDRC(デジタルリサーチ社製)とAztecCでのコンパイル状況と実行ファイルのサイズの比較です。
AztecCの方がかなりコンパクトな実行ファイルを作成してますね。
まぁもっと大きなプログラムの場合、どうなるかはやってみないと判らないですが・・
|
★2019/10/22 追記
Aztec Cのコンパイルオプションでインクルードドライブを標準ヘッダファイルのあるドライブ(今回の場合はCドライブ)に指定するとエラーが出なくなりました。
cc -ic: SrcFileName
★2019/09/23 追記
AztecCの著作権についてメモしておきます。
the official AZTEC C onlineのサイトでApple IIとCommondore 64用のAztec Cが公開されていて、このサイト内のLeap into a new dimension with Aztec Cのページで免責事項として次のように記載されています。
Apple IIとCommondore 64用のAztec Cに関してはfreeで使っていいようです。
Disclaimer This website and the content available from this website unless otherwise noted are original or derivative works and as such the licencing by the original authors applies insofar as legal Copyright ownership applies. Bill Buckels makes no claims of ownership whatsoever for the content available from this website unless otherwise noted, and further assumes no liability for the results of its use. You may use the content available from this website in any way you find useful (subject to all the aforestated conditions of use) and provided that you agree that Bill Buckels has no warranty obligations or liability resulting from said use in any way whatsoever. If you do not agree or if your use is not Fair then do not download from this website . |
google翻訳が下記で「所有権を一切主張せず」とあるので少なくともこのサイトで公開されているApple IIとCommondore 64用のコンパイラに関しては自由に使えるようです。
免責事項 このウェブサイトおよびこのウェブサイトから入手可能なコンテンツは、特に明記しない限り、オリジナルまたは二次的著作物であり、著作権の法的所有権が適用される限り、オリジナル著者によるライセンスが適用されます。ビル・バックルズは、特に明記しない限り、このウェブサイトから入手可能なコンテンツの所有権を一切主張せず、さらにその使用結果について責任を負いません。 このウェブサイトから入手できるコンテンツは、有用と思われる方法で使用することができます(すべての植林された使用条件に従うものとします)。また、Bill Buckelsが何らかの方法で上記の使用に起因する保証義務または責任を負わないことに同意するものとします。同意しない場合、または使用が公正でない場合は、このWebサイトからダウンロードしないでください 。 |
[TOP] [ 前へ ] 連載記事 [ 次へ ]
コメント 0