こんなものを試す人はかなりのハッカー基質の人だと思い、Githubの説明はあまり親切でないのと、英語があまりにひどいので、CP/M-8000を起動させるための補足をしておきます。
準備
作業はDebian系のディストリビューションで行うことを想定しています。ATMEGAのコードをビルドし書き込むために、gcc-avr, avr-libc, avrdude をインストールしておきます。Z8000のコードをアセンブルするために、GNUのサイトからbinutils をダウンロードして、 Z8001クロス開発環境 binutilsをビルドしてみるを参考にビルドしてください。私が確認しているは使っているのは、binutils-2.34 です。
ATMEGA164のヒューズビット設定
Z8001MBと同じくZ8K CP/Mでは、Z8001を起動するためにATMEGA164Pが使われていますが、JTAGの禁止と外部クロック入力にするためヒューズビットの書き換えが必要です。値は、LFUSE : 0xE0, HFUSE : 0xD9 です。ATmega164PのJTAGを禁止するを参照し、avrdudeを使って書き換えてください。
マシンモニタの書き込み
z8kboot ディレクトリでmakeを実行してください。z8kbooter.elf が作られます。 チップへの書き込みは、make write で実行できます。
CP/M-8000のビルド
COFFに変換済みのcpmsys.o と libcpm.a が入れてあるので、cpm8kディレクトリで、makeするだけです。cpm8k.bin が作られます。
CP/M-8000のディスクイメージの作成
cpmtoolsをインストールし、/etc/cpmtools/diskdefsにcpm8kディレクトリにあるdiskdefsを追加します。diska/b/c/d ディレクトリにディスクイメージに含めたいファイルを入れて、make dskimg を実行します。disk.img ができるので、dd でCFに書き込めばOKのはずです。ディスクイメージに入れるCP/M-8000のコマンド類は、 http://www.cpm.z80.de/download/cpm8k11.zip を解凍すると得られるDISKn.ZIPに含まれています。
こんな状況になると予想しておらず、慌てて書いたので間違っているかもしれません。
I tested it, and it works, thank you. I did extract the sources for disk1-4 from the image files with cpmtools and not the zip files because the text files are mangled in the zips. Also, I am using a different memory map, so I made some changes to your BIOS. Only thing is that my CPM-8000 can't generate the object file from tictac.c properly. Still can't figure out if it's my memory map or the compiler, or the BIOS...Happy 2022
返信削除Did you make a Z8001 board ? It's a great work !!
削除I haven't tested compiling tictac.c. I just compiled simple "hello world" C program. If you figure out why not work well, please let me know.
I am trying to make an M20 clone, hence the difference in memory maps. Your work on CP/M 8K is really great. I am also trying to fix the MAME M20 emulator where I found quite a few bugs. After fixing some instructions I finally succeeded in compiling tictac.c on the M20 emulator by disabling some EXT instructions. It seems that the issue now if I enable back the EXT is the handling of the alternate stacks which are used in the floating point emulation code. But I think that I am close to have a valid CPM8K "bootstrap" machine in MAME. In the actual hardware that I made with your BIOS it seems to be a memory map/copy issue. I'll keep you posted.
返信削除