Skip to content

ritsuro/exeload1991

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

exeload1991

このプロジェクトの内容は1991年10月頃にIBM-PC上で作りました。
PCのフロッピーディスク専用のオリジナルDOS『EXELOAD』のソースコードです。
ゲーム専用OSです。
8086アセンブラで作られています。
1990年のPC−9801版EXELOADを元にIBM-PC用に修正して作りました。

この文を書いている時点で、34年前のソースコードです。動作の保証はありません。
参考用として参照してください。

1991年12月29日作成の ”README.DOC” から引用して、ここに掲載します。

ここから ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

; "README.DOC" J-3100GS001 make by R.Hashimoto 1991/08/06
; 1991/09/20
; 1991/12/28

EXELOAD/world-PC ver0.25 (C) R.Hashimoto 1989,1990,1991 in tokyo japan.
PSHELL/world-PC ver0.13 (C) R.Hashimoto 1989,1990,1991 in tokyo japan.

(0) 本製品は、使用時のライセンス料は無料です。

コピーおよび配布なども自由です。
改造、改良、組み込み、掲載も自由です。

ただし、本プログラムのソースコードおよび
実行形式ファイルなどの、著作権と配布の権利
販売の権利を、阻害する行為は絶対にやめて下さい。

本製品(EXELOADとPSHELL)
は、今後もいっさいのライセンス料は無料にします。

本製品を改造してオリジナルDOSとして製品化して
ジャンジャン売って一億円もうけても構いません。
ただし、そのときはEXELOADとPSHELLの
メッセージは使用しないでくださいね。

制作者

(1) はじめに

本製品は、IBM−PC上でゲームプログラムを
修正無しで動かすためにつくられた

EXELOAD/world−PC ver0.25
PSHELL/world−PC ver0.13

です。

本品に含まれるソースリストは次のようなものです。

¥IPLKIT		IPLSYS.EXE   EXELOADを書き込むツール
¥PSHELL		PSHELL.EXE   簡易DOSシステム用シェル
¥PCTEST		IPLTST.EXE   IPLの実験プログラム
¥BEEP		TSTBEEP.EXE BEEPテストプログラム
¥MOUSE		TSTMS.EXE     PS/2マウステストプログラム
¥SYSTIMER	TSTTIM.EXE  システムタイマ・テストプログラム

DOSを利用する場合はEXELOADと
PSHELLを組み合わせて利用します。

(2) DOSの組み込み手順

大体の手順は

1.システムを組み込みたいディスクをFORMATします。
  (これは標準DOSのFORMATコマンドを使用してください)

2.IPLSYS.EXEを使って
  EXELOAD.SYSを組み込みます。

3.PSHELL.EXEをコピーします。

と、なります。

実際の手順をDynaBook上で
2DDのディスクを使った例をつぎに
示します。

C:¥> FORMAT A:/3

新しいフロッピーディスク(2DD)を装置 A: に挿入してください.
準備ができたらキーをどれか押してください.

フォーマッティング中...トラック番号(79),ヘッド番号(1)
ディスクのボリューム・ラベルを入力してください
(2バイト文字−5文字、1バイト文字−11文字、省略−エンターキー)
?J3100


   730112 バイト:全ディスク空間
   730112 バイト:使用可能ディスク空間

別のフロッピーディスクをフォーマッティングしますか <Y/N>? N
C:¥> IPLSYS

IPLSYS/EXELOAD/world-PC ver0.25 (C) R.Hashimoto 1991 in tokyo japan.
 media type 1=360KB,2=1.2MB,3=720KB,4=1.44MB['Q':exit]:3
 system write FD drive number.['Q':exit]:1
 system write ok? ['Q':exit]
IPL code size=  469
system code size= 4923
IPL
cylinder=    0
head    =    0
sector  =    1
system
cylinder=    0
head    =    1
sector  =    6
cylinder=    0
head    =    1
sector  =    7
.....
head    =    1
sector  =    5
complete.

C:¥> COPY PSHELL.EXE A:
    1 個のファイルをコピーしました.

C:¥> DIR A:

 装置 A: のディスクのボリュームラベルはありません.
 ディレクトリは A:¥

EXELOAD  SYS     4923
PSHELL   EXE    54848  91-08-03  18:32
        2 個のファイルがあります.
   669696 バイトが使用可能です.

C:¥>

(3) プログラムの組み込み

AUTOEXEC.EXEを
自動立ち上げします。

(4) DOSの仕様について

このDOSはまだ試作の領域を出ていない
部分が多いので、サイズも大きく不安定な
動作をすることがあると思いますが、随時
対応していく予定なのでご了承ください。

PC98の1.2MB(1024バイトセクタ)の
ディスクを読みたいときはDMDコマンドを使って
モードを強制的に切り替えてください。

近いうちに漢字表示ドライバを組み込む予定ですが
漢字フォントのライセンスが有料になってしまいますので
フォントファイルの部分を切り放して別々に
供給して行きたいと考えています。

漢字フォントセットは0.3水準をサポートする予定です。

(5) ファンクション21H

INT21Hでサポートされる機能は
次の通りです。


プログラムの終了
	AH=00H

1文字出力
	AH=02H
	入力	DL : 出力する文字

コンソール入出力
	AH=06H
	入力	DL : 0FFH ならば1文字入力 0FFH以外ならば
			DL=出力する文字
	出力	AL : 入力文字
		zf : off:入力なし,on:入力あり

文字列の出力

	AH=09H
	入力	DS:DX : 文字列 ('$':文字列の終わり)

文字列の入力

	AH=0AH
	入出力	DS:DX : バッファ
		+0:最大入力文字列(CRも含む)
		+1:実際の入力された文字数(CRを含まない)
        	+2:入力された文字列

ディスクのリセット

	AH=0DH

FCBファイルオープン

	AH=0FH
	入力	DS:DX : 初期化されたユーザFCB
	出力	AL    : 0=正常, FFh=ファイルがない


FCBファイルクローズ

	AH=10H
	入力	DS:DX : オープン中のユーザFCB
	出力	AL    : 0=正常, FFh=クローズ出来ない

FCBファイルREAD

	AH=14H
	入力	DS:DX : オープン中のユーザFCB
	出力	AL    : 0=正常
		      : 1=E.O.F(もう続きのデータは無い)
		      : 2=ディスクエラー
DTAセット

	AH=1AH
	入力	DS:DX : セットするDTAのアドレス


プロセスの常駐

	AH=31H
	入力	DX : 確保パラグラフ値

ディスクの空き容量
	AH=36H
	入力	DL : 0=カレントドライブ,1=A:,2=B:...
	出力	AX : セクタ数/1クラスタ,ドライブが無効のときはFFFFh
		BX : 空きクラスタ数
		CX : バイト数/1セクタ
		DX : クラスタ数/1ドライブ

ハンドルクリエイト

	AH=3CH
	入力	DS:DX : ハンドル名
	出力	cf    : off:正常,on:異常
		AX    : cf=off: ファイルハンドル
			cf=on : 3=ハンドル名が無効

ハンドルのオープン

	AH=3DH
	入力	DS:DX : ハンドル名
	出力	cf    : off:正常,on:異常
		AX    : cf=off: ファイルハンドル
		      : cf=on : 2=ファイルがない

ハンドルのクローズ

	AH=3EH
	入力	BX : ファイルハンドル
	出力	cf : off:正常,on:異常
		AX : cf=on : 6=ファイルハンドルが無効

ハンドルのREAD

	AH=3FH
	入力	DS:DX : バッファのアドレス
		CX    : 読み込みバイト数
		BX    : ファイルハンドル
	出力	cf    : off:正常,on:異常
		AX    : cf=off: 読み込めたバイト数。EOFならば0
		      : cf=on : 6=ファイルハンドルが無効

ハンドルのWRITE

	AH=40H
	入力	DS:DX : データバッファのアドレス
		CX    : 書き込みバイト数
		BX    : ファイルハンドル
	出力	cf    : off:正常,on:異常
		AX    : cf=off: 書き込めたバイト数。
		      : cf=on : 6=ファイルハンドルが無効

メモリの割り当て

	AH=48H
	入力	BX       : 割り当てるメモリサイズ(パラグラフサイズ)
	出力	cf       : off:正常,on:異常
		cf=0  AX : 割り当てられたフリーエリアの先頭セグメント
		cf=1  AX : 08H=空きメモリが足りない
		cf=1  BX : フリーエリアのサイズ(パラグラフサイズ)

メモリの開放

	AH=49H
	入力	ES : 開放するメモリのパラグラフ値


メモリの割り当ての変更

	AH=4AH

	入力	ES	: メモリ領域のセグメント値
		BX	: 割り当てるメモリサイズ(パラグラフサイズ)
	出力	cf	: off:正常,on:異常
		cf=1 AX	: 08H=メモリが足りない
		cf=1 BX	: 最大サイズ(パラグラフサイズ)


プロセスの終了

	AH=4CH


PSPアドレスの取得

	AH=62H

	出力	BX : PSPセグメント値

(6) テクニカルメモ

・本製品は標準DOSに見られるサブディレクトリィの
 機能はありませんので、予めご了承下さい。

・本製品を使用する場合は、8086マクロアセンブラの
 知識が必要です。

・EXELOAD.SYSはセクタ位置が決まっていますので
 単体のコピーは出来ません。

・PSHELL.EXEは単体でのコピーが可能です。

・PSHELLのコマンド

	DIR		ディレクトリィ一覧(ワイルドカードは不可)
	TYPE	タイプ
	HELP	コマンド一覧
	CTRL−C	強制終了
	CTRL−S	一時停止
	CTRL−Q	一時停止の解除

・本ソースプログラムはMASMver5.1でアセンブル
 できます。リンカはOPTLINK(MS−LINK)を使用しています。

・構造体定義やレコード、マクロ内のIF分等、
 複雑な定義は一切使っていません。

・MAKEFILEはMS−MAKE(Version 4.07)で実行出来ます。

・シェル上のコマンドはHELPで一覧を見ることが出来ます。

・標準DOSに見られるサブディレクトリィの機能はありません。

・いまのところ、書き込み中/読み込み中の2つのハンドルのみ
 サポートします。従って同時にオープンできるファイル数は
 READ/WRITEともに一つずつです。

・メモリ管理が出来ますが、機構は単純なフラットなもので
 ブロックは持っていません。下記の5つのパラメータのみで
 管理されているだけです。

	"SSADRS.ASM"

	ADRS_MIN	; 空きエリア(パラグラフ)下限
	ADRS_MAX	; 空きエリア(パラグラフ)上限+1 (A000H)
	ADRS_PSP	; PSPエリア(パラグラフ)
	ADRS_PNEXT	; プログラムの直後エリア(パラグラフ)
	ADRS_FRE	; 空きエリア(パラグラフ)先頭

(重要)・PSHELLのサイズ

	PSHELL.ASMの約16行目に
	PSHELL.EXEのパラグラフサイズ
	が入っています。
	改造時にはリンクマップを参照して変更を
	忘れないようにして下さい。
	(若干の余裕を持たせるのがコツ)

	MY_SYSTEM_SIZE	EQU 01000H	;このプログラムのサイズ
						(パラグラフ)
	リンクマップ
	Start  Stop   Length Name                   Class
	00000H 023FFH 02400H CHASH1                 CHASH1
	02400H 05924H 03525H CODE                   CODE
	05930H 0CD2FH 07400H DATA                   DATA
	0CD30H 0D4FFH 007D0H STACK                  
	0D500H 0D58FH 00090H PALET                  PALET
	       ------これにEXEのヘッダサイズを
	       加算したのがプログラムサイズです。

;
; end of "README.DOC"
;

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ここまで

directory date....
"picture"

r.h 2025/5/10

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors