最新 RSS

tips@free BLOG

レトロなマイコン、電子工作、PCやフリーソフト関係のTipsと私的備忘録

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 など多数のインストール済みイメージファイルがあります。

関連エントリ&リンク:

コメント
お名前 コメント