最新 RSS

tips@free BLOG

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

<前の3件 次の3件>

2013/01/25

[z80]自作Z80 CP/Mマシン(35)

引き続きunix用Z80(CP/M)シミュレータのz80packのメモ。

CP/Mディスクイメージとのファイルのやりとりには cpmtoolsを使用、ubuntuソフトウェアセンター等でインストールする。 ドライブI,J,PのHDDイメージへのアクセスは /etc/cpmtools/diskdefsに以下の定義を追加すること。

4MB HDD (I:, J:)

diskdef hd
 seclen 128
 tracks 255
 sectrk 128
 blocksize 2048
 maxdir 1024
 skew 0
 boottrk 0
 os 2.2
end

512MB HDD (P: MP/M、CP/M3のみ)

diskdef hdb
 seclen 128
 tracks 256
 sectrk 16384
 blocksize 16384
 maxdir 8192
 skew 0
 boottrk 0
 os 2.2
end

ドライブI,J(4MB HDD)の場合はオプション -f hd を付ける(P: 512MB HDD の場合は -f hdb)

使用例

cpmls drivea.cpm               <-- ドライブA ファイル名表示
cpmls -f hd drivei.cpm         <-- ドライブI(4MB HDD)ファイル名表示
cpmcp drivea.cpm 0:hoge.com .  <- ドライブA の hoge.com ファイルをコピー
cpmcp -f hd drivei.cpm hoge.com 0:   <- ドライブI へ hoge.com をコピー

manコマンドで cpmls, cpmcp, cpm の説明が見れる。

z80packに付属のサポートプログラムは bin2hex, format, receive, send がある。

  • bin2hex バイナリファイルを16進のテキストファイルに変換
  • format 仮想ドライブイメージファイルの作成
  • receive CP/Mエミュレータの外部出力(PUN:)をファイルに落とす(cpmsimが自動で起動する)
  • send CP/Mエミュレータの外部入力(RDR:)にファイルを送る

関連エントリ&リンク:

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

関連エントリ&リンク:

2012/12/29

[z80]自作Z80 CP/Mマシン(33)

unix用Z80(CP/M)シミュレータz80packのメモ。

現在の作業環境は、MOTHER: GIGABYTE Z77M-D3H, CPU: intel Core i5 3570K(HD Graphics 4000), RAM: 8GB, SSD: intel520 240GB, HDD: SEAGATE ST2000DM001 2TB、 OS: Ubuntu12.04(64bit)てな感じ。

Ubuntuではビルドできなかったので VirtualBOX(ver4.1.12)にVineLinux6.1(32bit DVD/USB版)をインストール、忘れずに3DアクセラレーションをONにしておく、せっかくのクアッドコアなのでプロセッサは2個割り当てる、以降は仮想PCの中で操作。

なにはともあれGuest Additionsをインストール、そして最新の状態にアップデートで準備完了。

まずはz80packのサイトからダウンロード(z80pack-1.17.tgz)、適当なフォルダに解凍する。 次に画面上部のメニュー [システム]-[システム管理]-[Synapticパッケージマネージャ]を使って libjpeg-turbo-devel, glew-devel, libXmu-develをインストール。

そのままだとコンパイルに失敗するので、解凍したフォルダの z80pack-1.17/frontpanel/jpeg.cpp:174行: ERREXIT(cinfo, JERR_BMP_COLORSPACE); をコメントアウトする。

$ cd  ~/z80pack-1.17/frontpanel
$ make
$ sudo cp ./libfrontpanel.so /usr/local/lib
$ export LD_LIBRARY_PATH="/usr/local/lib"

$ cd ~/z80pack-1.17/altairsim/srcsim
$ make
$ make clean

$ cd ~/z80pack-1.17/imsaisim/srcsim
$ make
$ make clean

以下は、参考リンクなど。

前回のエントリにコメントをいただきCromemco(クロメンコ)というメーカーを初めて知ったのですが、IMSAIの筐体を使いZ80CPUシステムを作っていたメーカがあったんですね。

ググってみましたらCromemco Z-1の画像がありました、また@ITの"IT業界の冒険者たち"55話クロメンコを作った2人によると、Altair8800の製造番号No.0002はクロメンコを起業した2人が所有したなんて逸話も面白かったです。

関連エントリ&リンク:

<前の3件 次の3件>