PC-9801エミュレータ(T98-Next)でMS-DOSプログラミング ID:7aG66mNX

16名無しさん@Next2ch:2021/08/07(土) 02:05:32.03 ID:7aG66mNX

PC-98で使ってたHDDをそのまま残してたわけじゃなくて、中のファイルをごっそりバックアップしたのを代々HDDに継続コピーしてたのよ。
流石に実機で使ってたSASIや98SCSIのHDDが今あったってデータは取り出せそうもないわw
98を初めて手に入れた時は貧乏学生で、バイトしまくってPC-9801RX2をやっと買ったんだよね。
モニタと色々小物を揃えて40万くらいしたようなw
その後就職して40MBのSCSI-HDDを8万くらい出して買って、コンパイラもボチボチ揃えてって頃で、プログラミングが楽しかったあの頃の思い出が一杯詰まっているHDD内容を消すのが忍びなくてね。
ずっとHDDにコピーしては保存してた。
それを今回エミュレータにぶっこんだわけ。
惜しむらくは開発環境以外のアプリケーションソフトを取ってなかったことかな。
一太郎Ver.3とかVJE-penとかマルチプランとか、その辺のソフトが今あればなぁ・・
DOS標準の日本語FEPがバカ過ぎるのに驚愕したけど、WX2が深いディレクトリから見つかったのでそれに置き換えた。
これ当時としてはすごいわ。
今のWindows標準の漢字変換より確実に賢くてびっくり。

フォントデータは解決したよ。
np2.exeのフォルダにあったfont.tmpをfont.bmpにリネームしたらそのまま使えた。

17名無しさん@Next2ch:2021/08/07(土) 02:15:08.88 ID:7aG66mNX

ついでに当時作った小物プログラム
何かのソフトを動かしてグラフィック表示が残ったままになった場合に消去するやつ。
LSI-C86試食版でコンパイルしたらちゃんと動いた

/*-------------------
gvram クリア
-------------------*/

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <dos.h>
#ifdef LSI_C
#include <machine.h>
#define outportb( p, v ) outp( p, v )
#endif

/*
GVRAM アドレス
*/
#define PLANE1 ((unsigned char far *)0xa8000000L) /* 青プレーン */
#define PLANE2 ((unsigned char far *)0xb0000000L) /* 赤プレーン */
#define PLANE3 ((unsigned char far *)0xb8000000L) /* 緑プレーン */
#define PLANE4 ((unsigned char far *)0xe0000000L) /* 輝度プレーン */

union REGS regs; /* 8086レジスタ */

/*----------------------------------
グラフィックバンク選択
----------------------------------*/
void bank( int bank )
{
if ( bank == 0 ) {
regs.h.ch = 0xc0;
} else if (bank == 1) {
regs.h.ch = 0xd0;
}
regs.h.ah = 0x42;
int86( 0x18, &regs, &regs );
}

/*----------------------------------
GVRAM クリア
----------------------------------*/
void cls( void )
{
register int i;

for ( i = 0; i < 32000; i++ ) {
*( PLANE1 + i ) = 0x00;
*( PLANE2 + i ) = 0x00;
*( PLANE3 + i ) = 0x00;
*( PLANE4 + i ) = 0x00;
}
}

/*----------------------------------
グラフィック表示 OFF
----------------------------------*/
void groff( void )
{
regs.h.ah = 0x41;
int86( 0x18, &regs, &regs );
}

/*----------------------------------
メイン
----------------------------------*/
void main( void )
{
groff();
bank( 1 );
cls();
bank( 0 );
cls();
}


このIDをNGリストに追加する

今後このIDの書き込みやスレッドを表示したくない場合、以下のボタンをクリックしてください。
NGリストに追加

レスを書き込む