2013/01/23
■ [z80]自作Z80 CP/Mマシン(34)
前回に引き続きunix用Z80(CP/M)シミュレータのz80packのメモ。
z80packのサイトからダウンロード(z80pack-1.17.tgz)し、適当なフォルダに解凍。 そしてQuickstart DRI OS'sをよく読む。
エミュレータのコンパイル $ cd ~/z80pack-1.17/cpmsim/srcsim $ make $ make clean サポートツールのコンパイル $ cd ~/z80pack-1.17/cpmsim/srctools $ make $ make clean 仮想ディスクイメージのバックアップ $ cd ~/z80pack-1.17/cpmsim/disks/library $ cp * ../backups CP/M 2.2 の実行(A:BYEで終了) $ cd ~/z80pack-1.17/cpmsim $ ./cpm2
- 使用可能なドライブはA,B,C,D,I,J,Pで、 A〜Dは8"SD形式(256KB)、I,JはHDD(4MB)、PはHDD(512M、CPM3とMP/Mのみ使用可)。
- 仮想ドライブは ~/z80pack-1.17/cpmsim/disks ディレクトリに drive[a-p].cpm のイメージファイルが存在すると実行時に自動に認識する。
- A,Bドライブのイメージファイル drivea.cpm, driveb.cpm は ~/z80pack-1.17/cpmsim/disks/liblary ディレクトリ中の cpm2-1.dsk, cpm2-2.dskへのリンクファイルであり cpm2スクリプト中で実行時にリンクされる。
cpm2スクリプトの内容は以下の通り。
#!/bin/sh rm -f disks/drive[ab].cpm ln disks/library/cpm2-1.dsk disks/drivea.cpm ln disks/library/cpm2-2.dsk disks/driveb.cpm ./cpmsim
z80packのサイトには各種インストール済みイメージファイルがあります。
例えば HI-TECH Cを使う場合は イメージファイル(hd-htc.tgz)をダウンロード&解凍し、 hd-htc.dskを ~/z80pack-1.17/cpmsim/disks/library にコピー、cpm2スクリプトファイルを以下のように編集します。
#!/bin/sh rm -f disks/drive[abi].cpm ln disks/library/cpm2-1.dsk disks/drivea.cpm ln disks/library/cpm2-2.dsk disks/driveb.cpm ln disks/library/hd-htc.dsk disks/drivei.cpm ./cpmsim
使用例
$ cd ~/z80pack-1.17/cpmsim $ ./cpm2 ####### ##### ### ##### ### # # # # # # # # # # ## ## # # # # # # # # # # # # ##### # # ##### ##### # # # # # # # # # # # # # # # # # # # # # # # ####### ##### ### ##### ### # # Release 1.17, Copyright (C) 1987-2008 by Udo Munk CPU speed is unlimited Booting... 64K CP/M Vers. 2.2 (Z80 CBIOS V1.2 for Z80SIM, Copyright 1988-2007 by Udo Munk) A>i: <-- ドライブ I: に切替え I>dir I: ASSERT H : CONIO H : CPM H : CTYPE H I: EXEC H : FLOAT H : HITECH H : LIMITS H I: MATH H : SETJMP H : SIGNAL H : STAT H I: STDARG H : STDDEF H : STDIO H : STDLIB H I: STRING H : SYS H : TIME H : UNIXIO H I: MAKE COM : CGEN COM : CPP COM : CREF COM I: DEBUG COM : DEHUFF COM : $EXEC COM : LIBR COM I: LINK COM : OBJTOHEX COM : OPTIM COM : P1 COM I: ZAS COM : CRTCPM OBJ : RRTCPM OBJ : LIBC LIB I: LIBF LIB : OPTIONS : READ ME : Z80DOC TXT I: CPM HUF : C ORG : FLOAT HUF : GEN HUF I: STDIO HUF : MAKEFILE : C C : C COM I: MAKE DOC I>a:ed hello.c <-- ラインエディタでソースファイルを新規作成 NEW FILE : *i <-- i コマンドで入力モード 1: #include <stdio.h> 2: 3: int main(argc, argv) 4: int argc; 5: char *argv[]; 6: { 7: printf("hello world\n"); 8: } 1: *e <-- CTRL-Z で入力を抜け、e で保存終了 I>c -v hello.c <-- コンパイル HI-TECH C COMPILER (CP/M-80) V3.09 Copyright (C) 1984-87 HI-TECH SOFTWARE 0:CPP -DCPM -DHI_TECH_C -Dz80 -I HELLO.C $CTMP1.$$$ 0:P1 $CTMP1.$$$ $CTMP2.$$$ $CTMP3.$$$ 0:CGEN $CTMP2.$$$ $CTMP1.$$$ 0:ZAS -N -oHELLO.OBJ $CTMP1.$$$ ERA $CTMP1.$$$ ERA $CTMP2.$$$ ERA $CTMP3.$$$ 0:LINK -Z -Ptext=0,data,bss -C100H -OHELLO.COM CRTCPM.OBJ HELLO.OBJ LIBC.LIB ERA HELLO.OBJ ERA $$EXEC.$$$ I>hello <-- できたプログラムを実行 hello world I>a:bye
他にも Turbo Pascal や figFORTH など多数のインストール済みイメージファイルがあります。
関連エントリ&リンク: