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:)にファイルを送る
関連エントリ&リンク:
- CpmtoolsGUI windows用の cpmtool GUI版
- Z80に関するエントリ、 動画(ニコニコ)はこちら
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
以下は、参考リンクなど。
- IMSAI8080の画像やAltairの画像や資料など、昔の電脳は楽しい
- Altair8800bや互換メーカーの画像や解説など、半導体コレクション展示会場
- Altairのドキュメント、Daves Old Computers - ALTAIR 8800 - Documentation
前回のエントリにコメントをいただきCromemco(クロメンコ)というメーカーを初めて知ったのですが、IMSAIの筐体を使いZ80CPUシステムを作っていたメーカがあったんですね。
ググってみましたらCromemco Z-1の画像がありました、また@ITの"IT業界の冒険者たち"55話クロメンコを作った2人によると、Altair8800の製造番号No.0002はクロメンコを起業した2人が所有したなんて逸話も面白かったです。
関連エントリ&リンク: