
No.5ベストアンサー
- 回答日時:
ネットで見つかるのはこの程度だと思います。
http://community.osdev.info/index.php?%28FDC%297 …
BIOSだったら下のURLです。
参考URL:http://community.osdev.info/index.php?%28AT%29BIOS
No.3
- 回答日時:
DOSの話なら、セクタサイズが違うっていうかPC98系のフォーマットは1.2Mで、DOS/Vなら皆知ってる1.44MBですね。
ただし、akasyatuさんの質問では、mikeさんの回答の通り、88(86)BASICのSAVEコマンドがどのようなデータを書くのか熟知した上で、自力でプログラム作成してバイナリデータの読み出し掛けないとデータ取り出せませんので、相当にプログラム能力を必要とするでしょう。
それよりは、98をオークション等で入手してデータ吸い出した後にDOS/V形式でFDDにコピーしてから読み出す方が簡単な気がしてなりません。(プログラムのアドバイスじゃないけど)
この回答への補足
ありがとうございます。
読み書きしたいFDの構成は
トラック0のヘッド0、1が片面単密
8 セクタ/トラック
128 byte/セクタ
以降76トラックまでが
26 セクタ/トラック
256 byte/セクタ
で、
[Track=0, Head=0 Sector=5]がエラーマップ領域
[Track=0, Head=0 Sector=7]がボリュームラベル
[Track=0, Head=0 Sector=8]から
[Track=1, Head=1 Sector=26]がファイルラベル領域(FATの様なもの)
以降がデータ領域となっています。
現在PC-9801においてはCによりFD-BIOISをコールしてのプログラム
・FDリスト表示
・ファイル変換(相互)
・ディスクフォーマット
・セクタ読み書き
・ディスク丸ごと保存/復元
は作成済みであり利用しています。
PC98シリーズ用のFD-BIOS資料として
秀和システムトレーディング(株)の
「PC-9800シリーズ フロッピィディスクパーフェクトブック」を所持していた為、簡単に作成できたのですが、
PC/ATのFD-BIOSの資料が皆無な為、物理的に不可能かどうかも分からない状態なのです。
A/Tで出来ないかと思う様になった理由としては
・自前のPC-9801NS/Aの1台が起動しなくなった事。
・バックアップにMAXLINKが利用できなくなった事。
・MAXLINKの代わりとしてWIN98の起動デスクによるDOSLANにしたが、プロトコルっがNetBEUIであり、XPが標準でサポートしていない事。
また、DOS側からしかアクセス出来ない事。
・PC98の中古を探すのが面倒ですし、値段も意外と高くなってきている事。
などでしょうか。
No.2
- 回答日時:
ここで出た答えでプログラムできるような
生易しいものではないと思います。
専門書を何冊も読破して
C言語で眠りながらプログラムをかけるぐらいでないと無謀でしょう。
この回答への補足
PC98の場合がFD-BIOSがわかれば簡単にできます。
例えば下記コードは1セクタ読み出しとトラックフォーマットです。
セクタ読み込み
int read_1sector( int daua, int track, int head, int sector, char *buff )
{
struct diskinfo dinfo;
/* AH : MT|MF|R|SK|0110| */
dinfo.cmd = 0x56;/* 倍密度 */
if( track == 0 && head == 0 )
dinfo.cmd = 0x16;/* 単密度 */
/* AL : PDA (Physical Device Address) */
dinfo.devtype = daua;
/* BX : 転送データ長 ( 128 or 256 ) */
if( track == 0 && head == 0 )
dinfo.datalen = 128;
else
dinfo.datalen = 256;
/* CH : (N) セクタ長 (0:128byte 1:256byte) */
if( track == 0 && head == 0 )
dinfo.seclen = 0;
else
dinfo.seclen = 1;
/* CL : (C) シリンダ番号 ( 0 - 76 ) */
dinfo.cylnum = track;
/* DH : (H) サーフェス番号 ( 0 or 1 ) */
dinfo.headnum = head;
/* DL : (R) セクタ番号 ( 1 - 26 ) */
dinfo.secnum = sector;
/* ES : データバッファのセグメント */
/* BP : データバッファのオフセット */
dinfo.databuf = buff;
return (pc98disk( &dinfo ) & 0xff );
}
1トラックフォーマット
int format_track( int daua, int track, int head )
{
struct diskinfo dinfo;
int i, sector, n;
char buff[4 * 26 + 1];
char *data;
data = buff;
if( (unsigned int)data & 1 )
data++;/* to even address */
for( i = 0, sector = 1, n = 0 ; i<26 ; i++, sector++, n += 4 ){
data[ n ] = track;/* C */
data[ n + 1 ] = head;/* H */
data[ n + 2 ] = sector;/* R */
if( track == 0 && head == 0 )
data[ n + 3 ] = 0;/* N (128 byte) */
else
data[ n + 3 ] = 1;/* N (256 byte) */
}
if( track == 0 && head == 0 )
dinfo.cmd = 0x3D;/* WRITE_ID (単密度) */
else
dinfo.cmd = 0x7D;/* WRITE_ID (倍密度) */
/* AL : PDA (Physical Device Address) */
dinfo.devtype = daua;
/* BX : 転送データ長 (|C H R N| * sector) */
dinfo.datalen = 4 * 26;
/* CH : (N) セクタ長 (0:128byte 1:256byte) */
if( track == 0 && head == 0 )
dinfo.seclen = 0;
else
dinfo.seclen = 1;
/* CL : (C) track番号 ( 0 - 76 ) */
dinfo.cylnum = track;
/* DH : (H) サーフェス番号 ( 0 or 1 ) */
dinfo.headnum = head;
/* DL : Data Pattern */
dinfo.secnum = 0x40;
/* ES : データバッファのセグメント */
/* BP : データバッファのオフセット */
dinfo.databuf = data;
return ( pc98disk( &dinfo ) & 0xff );
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの開き方
-
あるプログラムのコマンドライ...
-
ドロップダウンリストの文字を...
-
javaからAS400のプログラム起動
-
銃を発砲するならともかく、日...
-
自動クエリとはどういうもので...
-
PICマイコンのコピー(クローン...
-
OS入ってる機器のソフト・アプ...
-
UWSCで指定のフォルダを開きたい。
-
グラフをC#のASP.net MVCで表示...
-
powered byの表記について
-
VBAにてメール作成した際、一部...
-
サイト訪問者のIPアドレスを判...
-
テキストボックスのエンターキ...
-
Excelで4096点以上のFFTの方法
-
モジュール、アプリケーション...
-
VBScriptで作成したプログラム...
-
VBAでユーザーフォームが自動的...
-
exeファイルしかないプログラム...
-
ウイルスセキュリティ メッセー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
ファイルの開き方
-
Excelで4096点以上のFFTの方法
-
VBAにてメール作成した際、一部...
-
読み込み中にアクセス違反が発...
-
ドロップダウンリストの文字を...
-
OS入ってる機器のソフト・アプ...
-
PICマイコンのコピー(クローン...
-
自動クエリとはどういうもので...
-
XnViewにwebpを「いつも開く」...
-
未使用の変数を一括検索する方法
-
VBAでユーザーフォームが自動的...
-
「Outlookが他のプログラムによ...
-
powered byの表記について
-
excelのexe化について
-
Excelに埋め込んだVBAのプログ...
-
銃を発砲するならともかく、日...
-
画像を読み込むのと取り込むの...
-
visual studio 2019を使ってい...
-
UWSCで指定のフォルダを開きたい。
おすすめ情報