[Home] - [Programs] - [Dash-80]
Dash-80

 Dash-80とは

Dash-80は NEC PC-8001/8801シリーズ用のプログラムローダーです。
N-BASIC用に作成されたプログラム(BASIC/マシン語)をディスクから読み込んで、起動することができます。

セーブ機能/ファイル操作機能はありません。
Disk BASICからLOAD/RUN/FILES機能だけを抜き出したものと考えていただけるとわかりやすいと思います。
「抜き出した」と書きましたが、Disk BASICからのコードの流用はしておりませんので安心してお使いください。
(抜き出したとしてもDisk BASICのコードがそのままディスクユニット内で実行できるはずはないですが…)

 概要

 詳細

Dash-80 は NEC PC-8001 / 8801 シリーズの N-BASIC モードで動作するプログラムローダーです。
セーブ機能はありません。

N80-BASIC / N80SR-BASIC / N88-BASIC(V1) / N88-BASIC(V2) モードでは動作しません。
PC-88 VA シリーズには N-BASIC ROM が搭載されていないため動作しません。
PC-98 DO シリーズでの動作については未確認です。

Disk BASIC ではシステムがフリーエリアに常駐するため、ユーザーが使えるメモリの量が制限されてしまい、ROM BASIC で起動した場合よりもフリーエリアが少なくなってしまいます。
Dash-80 のシステムは IPL によって本体ワークエリア内の未使用領域と、5インチインテリジェントドライブ内のサブシステムの未使用領域に読み込まれます。
ファイルの検索や「FILES」命令での一覧の作成等の、従来は Disk BASIC が行っていたディスク操作用の拡張機能のほとんどはサブシステム側で処理されるため、本体側での処理は命令解析、データ転送、ハンドシェイクのみです。
この程度のルーチンならば本体内の BASIC ワークエリアの未使用領域に収まってしまいますので、起動処理以外ではフリーエリアを全く使用しません。
よってユーザーの使用できるフリーエリアは ROM BASIC の時と変わりません。

(注)
NEC の8ビット機(PC-8001 / PC-8801 シリーズ)ではディスクから起動処理を行う場合、最初にシステム起動用の IPL をディスクから読み込みますが、この IPL やそれに続く起動処理用のルーチンは、フリーエリア内の C000H 番地以降に読み込まれます。
これは仕様であり、フリーエリアを全く使用することなく、ディスク操作用の拡張機能を追加することは不可能です。
そのため「フリーエリアを全く使用しない」のではなく「起動処理以外ではフリーエリアを全く使用しない」のです。(使用しないのはフリーエリアであって、メインメモリではないので念の為)

Disk BASIC の 2D(DS) タイプのディスクと同じファイルシステムを採用しているため、Dash-80 で起動すれば従来の Disk BASIC の 2D メディアに変更を加えることなく、ディスクの差し替えだけでプログラムをロード/実行できます。

N-BASIC で書かれた BASIC プログラムはもちろん、N80 / N80SR / N88-Disk BASIC の BSAVE コマンドと同じ形式で作成されたバイナリデータ/プログラムをロード/実行することができます。
バイナリデータは、セーブされた時と同じ領域にロードされます。ロードアドレスの指定はできません。

ASCII 形式でセーブされた BASIC プログラムのロードには対応していません。

Disk BASIC のシステムディスクに付属の「setinfo」を使用してオートスタートを設定することで、起動時にプログラムを自動実行することが可能です。
なお、オートスタート機能の設定には必ず Disk BASIC 用の「setinfo」を使用し、N80-Disk BASIC 用の「setinf.N80」、N88-Disk BASIC 用の「setinf.n88」等は使用しないでください。システムセクタに設定されるデータ形式が異なります。

「setinfo」を使用しなくてもバイナリエディタ等でシステムセクタを書き換えればオートスタート機能を利用することは可能です。

ROM BASIC 時のエラーメッセージに加え、Disk BASIC と同等のエラーメッセージが表示されます。
ON ERROR GOTO nnnn / ERROR nn 命令、ERR / ERL システム変数にも対応しています。

Disk BASIC の難点であった MOUNT / REMOVE 命令を排除し、N80 / N80SR / N88-Disk BASIC と同様にオートマウント/オートリムーブ(笑)を実現しました。

FILES / LFILES 命令のパラメータは、Disk BASIC では <数値> ですが、Dash-80 では <ファイルディスクリプタ> です。

1行に1ファイル表示にすることで、LOAD / RUN 命令の実行が容易になりました。
目的のファイルの表示されている行へカーソルを移動し、行の先頭で「LOAD "」または「RUN "」と入力すれば、ファイル名のミスタイプが防げます。

Disk BASIC では拡張子セパレータの位置にファイル形式がマークで表示されますが、Dash-80 では行の先頭にアルファベット3文字の略号で表示されます。

Disk BASIC ではファイル属性を表示するには PRINT ATTR$("1:abc.n") など、別途コマンドで指定する必要がありますが、Dash-80 ではファイルリスト内に表示されます。

ファイルサイズ表示が Disk BASIC ではクラスタ単位ですが、Dash-80 ではセクタ単位です。

ディレクトリ/ FAT 読み込み時に FAT の正当性/整合性チェックを行い、不正なクラスタ番号/単一ファイルの同一クラスタ重複リンクの場合は、ファイル毎にファイルサイズ表示位置に「Bad」と表示します。
(複数のファイルによる同一クラスタリンクはチェックしていません)

2Dメディア専用です。 (1Dメディアは使用できません)

無印 PC-8001 / 8801 の Disk BASIC では 'STOP' + 'RESET' (Hot Start) を実行するとディスクユニットがリセットされてしまい、そのままディスク関係の命令を実行するとハングアップしてしまいましたが、Dash-80 では正常に動作します。
フリーウェアですので、自作のプログラムを組み込んで公開が可能です。

 スクリーンショット

Dash-80 V1.0 の起動画面と各種実行結果表示N-BASIC の起動画面とフリーエリアサイズ表示

画像をクリックすると拡大して表示します。

2つのスクリーンショットを比較してもらうと分かりますが、Dash-80 と ROM BASIC の起動時のフリーエリアサイズは同じです。

 ダウンロード

Dash-80 Version 1.0b1  (Dash-80_10b1.zip, ZIP 形式, 15.26 KiB, MD5:bd60be16e23ad0078e4d5aebaadb1e22)

Dash-80 Version 1.0b のバージョン表記修正版です。
タイトル表記は「Version 1.0b」となっています。

 仕様

システム名Dash-80
バージョンVersion 1.0b1
カテゴリDOS
機能Disk BASIC とファイルシステム互換のプログラムローダー
対応機種NEC PC-8001 シリーズ、PC-88VA シリーズ以外の PC-8801 シリーズ
対応環境要 2D ディスクドライブ
動作環境N-BASIC モード
特長起動時以外メインメモリを使用しない
使用方法アーカイブに同梱の'Readme.txt'を参照
Top

Last modified : 2010-06-06 01:03:50 (UTC+0900)

Copyright © Thunderbolt⚡, All rights reserved.

inserted by FC2 system