Z-80 SOFTCARD CP/M
MICROSOFT Z80 SOFTCARDに付属するCP/Mのソフトウェアパッケージは13と16セクターのCP/Mマスターディスク各1枚と2册のマニュアルです。
13-sectorのディスクにはMICROSOFT製でANSI (American National Standards Institute)コンパチブルのBASIC-80にApple II独自のローレゾリューショングラフィックの命令を追加したMBASIC。16-sectorのディスクにはMBASICとMBASICに更にハイレゾリューショングラフィックの命令を加えたGBASICが含まれています。(但し、GBASICはApple Language SystemやMICROSOFT RAM CARD等によりメモリーを増設していないとフリーメモリーが少なく実用的ではありません。)
両方のディスクに含まれるoperating systemであるCP/M(Control Program/Microcomputer)(Ver. 2.2)はDigital Research, Inc.からMICROSOFTがライセンスしたもので全ての機能を持った完全版で幾つかのコマンドファイルを含む他に標準CP/M 8080アセンブラやラインエディタ、デバッグ用のDDT (Dynamic Debugging Tool)、ファイル転送用のPIP (Peripheral Interchange Program)、バッチ処理用の(SUBMIT)、ファイルを16進で吐き出す(DUMP)、Apple DOSディスクからファイルを転送する(APDOS)機能を持っています。
Softcardに含まれる2册のマニュアルの一方はCP/M関係でもう一方はBASIC 5.0とBASIC 5.0で書かれたユーティリティのマニュアルです。
BASIC 5.0は構造化プログラミングをサポートしたBASICでその為の新しいコマンドを幾つか持っています。最も有用なのはIF-THEN文でELSEが使えること、PRINT USING文を使うことにより表示に書式が指定出来ること、ディスク関係のコマンドがAppleのDOSで使われるPRINT Control-D commandから普通の文になったこと、DO WHILE loop: WHILE/WEND構文によるループ制御が可能になったこと、他のANSI BASIC使用のマシンからのプログラムの移植が簡単になったこと、等があります。
SOFTCARDでMBASICをロードすると48K byteメモリー実装のApple IIの場合約14 K byte程のプログラム用のメモリーが確保され、Apple Language SystemやMICROSOFT RAM CARDを追加した場合は16K byteのメモリーのうち12K byteが追加され26K byteが使用可能になります。Language SystemやMICROSOFT RAM CARD側で使用出来ない4K byteはApple IIの各スロットに割り当てられた$C000から$CFFF番地迄のメモリーで、本体側で使用出来ない4K byteは6502 MPUのスタックに使われたり画面表示に使われるメモリーです。CP/Mのサイズで言うと48K byte実装の場合は44K CP/M、64K byte実装の場合は56K CP/Mとなります。
他機種用(標準)のCP/Mソフトウェアの利用法
Apple II(Disk II)はディスクフォーマットが標準の5インチフロッピィディスクとは違っているので市販の5インチフォーマットでCP/Mのアプリケーションを購入してもそのままでは読めないので使うことは出来ません。Apple IIで使用可能なディスクを作成するにはもう1台CP/Mマシンを別に用意してディスクの内容をRS-232Cポートを経由してApple IIに転送しなければなりません。また、逆にApple II CP/Mフォーマットのディスクを他のCP/Mマシンで読込み可能なディスクに変換する場合も同様です。
この用途に使用するプログラムがApple II CP/Mに用意されたDOWNLOADとUPLOADと名付けられたプログラムです。
また、テキストを転送する場合もApple DOSはテキストの区切りにキャリッジリターンだけを使用するのに対してCP/Mはキャリッジリターン+ラインフィードが必要です。この変換を行うのがAPDOSと名付けられたプログラムです。
このようにApple IIだけを所有するユーザーが他のCP/Mアプリケーションを使用するのは非常に難しいので(当時)通常はソフトウェアメーカーや販売店の媒体変換サービスを利用することが多かったようです。また殆どのCP/Mソフトウェアメーカーは安価にこのサービスを提供していました。これを利用すれば媒体の変換だけでは無く、Apple II CP/Mで動作可能なように事前に細部に手を加えた状態で手に入るわけですから安心して使うことが出来ました。
CP/Mから6502を使う
Z-80 SOFTCARD CP/Mの特徴としてCP/M動作中に6502のルーチンを呼ぶことができることが上げられます。6502(Appl II)用に書かれ、既にデバッグの終了した周辺機器のドライバールーチン等をそのままか少しの変更で利用出来るので大変便利な機能です。実際にZ-80 SOFTCARD CP/Mではディスクの読み書きや画面表示等を6502が行っています。
スタート時、6502が特定のアドレスをアクセスすることによってSoftcard上のZ80が処理を開始しますがZ80によって同じ特定のアドレスがアクセスされると6502に処理が移ります。この時、更に別に用意された複数のアドレスを介して6502に処理を開始するルーチンのスタートアドレスやA, X, Y,status registerの価が渡されます。注意する点はZ80から見たメモリーマップと6502から見たメモリーマップが異なることです。これは6502と画面表示に都合が良いように最適化されているApple IIのメモリーマップをCP/Mが必要とする0番地から連続したRAMに見えるようにSoftcard上の回路でアドレスを変換している為です。これは同じメモリーでもZ80から見た場合と6502から見た場合とではアドレスが異なるということです。
BASIC 5.0の新機能
Applesoft BASICとZ-80 SOFTCARD CP/Mに付属するMicrosoft MBASIC 5.0の機能比較
- AUTO -- プログラム入力時のラインナンバー自動入力
- BEEP -- Control-Gと同じBeep音が発生する
- 論理演算子 -- AND、NOT、ORに加えXOR (exclusive OR)、IMP (implication)、EQV (equivalence)が追加
- BUTTON -- PEEK関数で調べていたパドルのボタンの状態を検出
- CALL -- Z80と6502の機械語サブルーチンをパラメータ付きで呼ぶ
- CHAIN -- 実行中のBASICプログラムから他のBASICプログラムを変数を受け渡して起動する
- COMMON -- CHAIN文で受け渡す変数を指定する
- Disk I/O -- ディスクの読み書きの際にPRINT文の使用ではなくOPEN、CLOSE、GET#、INPUT#、WRITE#等の専用の命令を追加
- EDIT -- プログラムの一行エディタ
- ELSE -- IF文にELSE節の追加
- Functions -- 文字列関数にINSTRとSTRING$を追加
- HSCRN -- ハイレゾスクリーンの点の有無を検出
- LPRINT -- プリンター出力専門のPRINT文
- MERGE -- 2つのプログラムを1つに纏める
- MOD -- 割算の余りを求める演算子
- PRINT USING -- 出力書式の指定可能なPRINT文A
- RENUM -- プログラムの文番号のリナンバー
- SWAP -- 2つの変数の価を交換する
- User Functions -- 複数の引数をもつユーザー関数の定義が可能
- Variable types -- 変数のタイプに倍精度実数を追加
- VPOS -- カーソルの縦位置を検出
- WHILE/WEND -- ループ処理にFOR-NEXTに加え前条件判定構文のWHILE/WENDを追加
Applesoftから削除された命令
- カセットテープがサポートされないのでLOAD、SAVE、STORE、RECALLが削除
- ESC editing -- EDIT文が追加されたためESCキーを使用するプログラムの入力修正が削除
- FLASH -- 点滅する文字を表示するFLASH文が削除
- メモリー管理のHIMEM、LOMEMが削除
- Shape Tables -- Shape TablesがサポートされないのでShape Tablesに関する、DRAW、XDRAW、ROT、SCALE等を削除
- IN#、Pr# -- コマンドがそれぞれデバイスを指定して動作するので不要となり削除
Features and Utilities List
List of the features and utilities of the CP/M operating system included with the purchase of a Softcard.
Built-in CP/M Commands:
- DIR -- Lists the disk directory.
- ERA -- Erases a file or files from disk.
- REN -- Renames a disk file.
- SAVE -- Saves a file to disk.
- TYPE -- Displays the ASCII contents of a disk file.
- USER -- Used to divide the disk into up to 16 separate user areas. USER specifies access to one of those 16 areas.
Transient Commands:
- ASM -- Loads the 8080 assembler and assembles a program from disk.
- DDT -- Dynamic Debugging Tool, an interactive machine-language debugging aid, allows program traces and editing.
- DUMP -- Displays the hexadecimal contents of a file.
- ED -- CP/M's editor utility.
- LOAD -- Creates a transient command file from a machine-language file on disk.
- PIP -- Peripheral Interchange Program, allows you to copy, merge, print, and load disk files.
- STAT -- Provides statistical information about disk space and device assignments.
- SUBMIT -- Executes the CP/M commands put in a special file with. the editor program. Allows programs and commands to be batched together as Apple's EXEC command does.
CP/M Software:
- APDOS -- Allows transfer of ASCII and binary files from Apple-formatted disks to CP/M disks. This program requires two or more drives and cannot write CP/M files to Apple DOS disks.
- CONFIGIO -- Allows you to configure CP/M to your system, such as upper/lower case, 80 columns, and redefinition of keyboard characters for external terminals.
- COPY -- Disk copy utility.
- DOWNLOAD -- In conjunction with the UPLOAD program on another system, allows transfer of CP/M files to the Apple CP/M system.
- FORMAT -- Formats new disks.
- GBASIC -- BASIC 5.0 with. high-resolution graphics enhancements, provided on the 16-sector disk only.
- MBASIC -- BASIC 5.0, with some additional commands for use with the Apple.
- RW13 -- Allows the 16-sector CP/M to read and write on a 13-sector CP/M disk.
- UPLOAD -- A listing of a program to be used on another CP/M system in conjunction with DOWNLOAD for transferring of CP/M files. A working knowledge of assembly language will be necessary to implement this program on another system.
当時、Z-80 SOFTCARDと共に発売された関連ソフトウェアは全てお揃いのA5サイズの2リングバインダーでマニュアルが提供され、お洒落なパーケージでした。
- Apple A.L.D.S.
Apple A.L.D.S.はApple CP/M上で動作するマクロアセンブラで、Z80、8080、6502のニーモニックをサポートします。さらに6502用のダイナミックデバッガなどのユーティリティも揃っています。
- Apple FORTRAN-80
MICROSOFT社のFORTRANはマイクロコンピュータの為の非常に強力なFORTRANでJIS7000レベルに相当します。(COMPLEXデータタイプを除く)このFORTRANはApple IIのローレゾグラフィックをサポートし、Z80マシンコードを生成します。
- Apple COBOL-80
COBOL言語はビジネス用のデータ処理を行う為のコンパイラ言語です。COBOL-80は80系のマイクロコンピュータ用に作成されたCOBOLです。
- Apple M/SORT
これは非常に強力で容易に使うことの出来るCOBOL-80用のソートプログラムです。
Apple II World : A Resource for Apple II Enthusiasts.
This site is maintained by Sckop / sckop@Apple2World.jp
This file Created 2000/NOV/01, Last updated 2001/JAN/01.