2021年12月27日月曜日

Z8K CP/Mボード その2

こんなものを試す人はかなりのハッカー基質の人だと思い、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に含まれています。

こんな状況になると予想しておらず、慌てて書いたので間違っているかもしれません。

3 件のコメント:

  1. 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

    返信削除
    返信
    1. 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.

      削除
  2. 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.

    返信削除