mirror of https://github.com/nmlgc/ReC98.git
99 lines
3.4 KiB
PHP
99 lines
3.4 KiB
PHP
|
;BFILE構造体
|
||
|
BFILE struc
|
||
|
b_hdl dw ? ; int ファイルハンドル
|
||
|
b_left dw ? ; unsigned バッファ中の残りデータ数
|
||
|
b_pos dw ? ; unsigned 現在のバッファ上ポインタ
|
||
|
b_siz dw ? ; unsigned バッファサイズ
|
||
|
b_buff db ? ; unsigned char[1] 一括読み込み用バッファ
|
||
|
BFILE ends
|
||
|
|
||
|
|
||
|
; エラー番号
|
||
|
; pferr enum { ; エラー情報
|
||
|
PFEZERO = 0 ; 0 初期値
|
||
|
PFENOTOPEN = 1 ; 1 ファイルをオープンできない
|
||
|
PFENOTFOUND= 2 ; 2 ファイルがパックファイル中にない
|
||
|
PFENOMEM = 3 ; 3 メモリを確保できない
|
||
|
PFERESERVE0 = 4 ; 4 予約
|
||
|
PFEUNKNOWN = 5 ; 5 圧縮タイプが不正
|
||
|
PFEILPFILE = 6 ; 6 パックファイルがpar形式でない
|
||
|
PFEILEXE = 7 ; 7 EXEファイルが不正
|
||
|
PFEINTERNAL = 0ffh ; 255 内部エラー
|
||
|
; }
|
||
|
|
||
|
; バッファサイズデフォルト値
|
||
|
BBUFSIZE equ 512
|
||
|
|
||
|
CR equ 0dh
|
||
|
LF equ 0ah
|
||
|
EOF equ -1
|
||
|
|
||
|
; 各種マクロ
|
||
|
|
||
|
clr macro reg
|
||
|
xor reg, reg
|
||
|
endm
|
||
|
|
||
|
chk macro reg
|
||
|
or reg, reg
|
||
|
endm
|
||
|
|
||
|
;----------------------------------------------------------------------------
|
||
|
; for MS-DOS function call
|
||
|
;----------------------------------------------------------------------------
|
||
|
|
||
|
msdos macro req, param ; call msdos function
|
||
|
ifnb <param>
|
||
|
mov ax, req * 256 + param
|
||
|
else
|
||
|
mov ah, req
|
||
|
endif
|
||
|
int 21h
|
||
|
endm
|
||
|
|
||
|
DisplayChar equ 02h ; 文字のスクリーン出力
|
||
|
DisplayString equ 09h ; ストリングのスクリーン出力
|
||
|
SetInterruptVector equ 25h ; 割り込みベクタのセット
|
||
|
GetDate equ 2ah ; 日付を得る
|
||
|
KeepProcess equ 31h ; キーププロセス
|
||
|
GetInterruptVector equ 35h ; 割り込みベクタを得る
|
||
|
GetSetSwitch equ 37h ; スイッチキャラクタを得る/セットする
|
||
|
CreateHandle equ 3ch ; ハンドルの作成
|
||
|
OpenHandle equ 3dh ; ハンドルのオープン
|
||
|
CloseHandle equ 3eh ; ハンドルのクローズ
|
||
|
ReadHandle equ 3fh ; リードハンドル
|
||
|
WriteHandle equ 40h ; ライトハンドル
|
||
|
MoveFilePointer equ 42h ; ファイルポインタの移動
|
||
|
IOCTL equ 44h ; IOCTL
|
||
|
DuplicateFileHandle equ 45h ; ファイルハンドルの二重化
|
||
|
ForceDuplicateFileHandle equ 46h ; ファイルハンドルの強制二重化
|
||
|
AllocateMemory equ 48h ; メモリの割り当て
|
||
|
FreeMemory equ 49h ; 割り当てられたメモリの解放
|
||
|
SetBlock equ 4ah ; 割り当てられたメモリブロックの変更
|
||
|
EndProcess equ 4ch ; プロセスの終了
|
||
|
SetPSP equ 50h ; PSPアドレスのセット
|
||
|
GetDOSarea equ 52h ; 内部変数領域のアドレスの取得
|
||
|
CopyPSP equ 55h ; PSPの複写
|
||
|
GetSetDateTimeofFile equ 57h ; ファイルの日付/時刻を得る/セットする
|
||
|
LockUnlock equ 5ch ; ファイルアクセスのロック/アンロック
|
||
|
GetPSP equ 62h ; PSPを取得
|
||
|
|
||
|
|
||
|
; PFILE構造体
|
||
|
|
||
|
PFILE struc
|
||
|
pf_bf dw ? ; BFILE構造体のセグメント
|
||
|
pf_getc dw ? ; int (near *)(pf_t) pfgetc()用関数
|
||
|
pf_getx dw ? ; int (near *)(pf_t) getc関数
|
||
|
pf_size dd ? ; unsigned long パックサイズ
|
||
|
pf_read dd ? ; unsigned long 読込んだバイト数(物理)
|
||
|
pf_home dd ? ; unsigned long ファイル先頭
|
||
|
pf_loc dd ? ; unsigned long ロケーション(論理)
|
||
|
pf_osize dd ? ; unsigned long オリジナルサイズ
|
||
|
; pf_time dd ? ; unsigned long タイムスタンプ ※
|
||
|
pf_cnt dw ? ; int 展開用ワーク
|
||
|
pf_ch dw ? ; int 〃
|
||
|
pf_key db ? ; unsigned char 復号化用ワーク
|
||
|
; ※→未使用
|
||
|
PFILE ends
|