home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 3
/
FREEWARE.BIN
/
ms_dos
/
dsort
/
dstdata.pre
< prev
next >
Wrap
Text File
|
1980-01-02
|
6KB
|
125 lines
page 96,132
;§∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞§
;§ §
;§ ディレクトリエントリ ソート ユーティリティ §
;§ §
;§ DSORT.EXE Ver1.11 §
;§ §
;§ Copyright (C) by 福地 邦雄 1991. All rights reserved. §
;§∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞§
.MODEL SMALL,C
;
DPB struc
drivenumber db ? ;ドライブ番号
unitnumber db ? ;ユニット番号
sectorlength dw ? ;セクタ長
sectorperalloc db ? ;1クラスタ当たりのセクタ数-1
shiftcount db ? ;1クラスタ当たりのセクタ数の2のべき乗
reservedsector dw ? ;先頭のリザーブセクタ数
numberoffat db ? ;FAT数
directoryentry dw ? ;ルートディレクトリのエントリ数
datastartsector dw ? ;データ領域開始セクタ番号
datasector dw ? ;最大クラスタ数(全クラスタ数+1)
fatsector db ? ;1FAT当たりのセクタ数
directorystart dw ? ;ディレクトリ領域開始セクタ番号
todeviceheader dd ? ;デバイスヘッダへのポインタ
mediadescriptor db ? ;メディアディスクリプタ
diskchange db ? ;ディスクの交換可能属性
tonextdpb dd ? ;次のDPBへのポインタ
currentcluster dw ? ;カレントクラスタ
reserved dw ? ;リザーブ
DPB ends
;
YES equ 1
NO equ 0
HEAD equ 0
BS equ 8
TAB equ 9
CR equ 0dh
LF equ 0ah
;
.data
;
public sweep, sortexec,recursive,dirgather,subsearch
public dta, srchname,namebuff,namebuffsiz
public dirtype,fattype,attribute,clustcount,clustsect,entrycount
public fatdrive,driveno,clustsize,fatsize,dirsize,sectcount
public fatbuff,dirbuff,sortbuff,sortcount,drvinf,movecount,adjustroot
public sortfuncs,subchain,wildcard,pathbuff
public usagemsg,msgsize,veralarm,vermsgsz
public procs,dirover,fatover,bothmsg,sortmsg,movemsg,nothmsg
;
sweep dw YES ; ソート対象外のエントリを先頭に集める
sortexec dw YES ; ソートを行う
recursive dw NO ; サブディレクトリを再帰的に処理する
dirgather dw HEAD ; サブディレクトリを集める方向
subsearch dw NO ; 再帰処理内で '.','..'を含まないように判断
attribute dw ? ; ソート対象とするファイル属性を反転したもの
;
dta dd ? ; ディレクトリサーチ用Disk Transfer Address
srchname dd ? ; ディレクトリサーチ名
namebuff dd ? ; ディレクトリ名バッファ
namebuffsiz dw 4096 ; ディレクトリ名バッファサイズ
;
dirtype dw ? ; ディレクトリタイプ ルート:サブ
fattype dw ? ; FATタイプ 12bit:16bit
clustsect dw ? ; 1クラスタのセクタ数
sectcount label word ; ルートディレクトリのセクタ数
clustcount dw ? ; サブディレクトリのクラスタ数
clustsize dw ? ; 1クラスタのバイトサイズ
entrycount dw ? ; ディレクトリの最大エントリ数
;
fatdrive dw -1 ; FATドライブ番号
driveno dw -1 ; DPBドライブ番号
fatsize dw ? ; FATサイズ
dirsize dw ? ; ディレクトリサイズ
fatbuff dw ? ; FATバッファのセグメント
dirbuff dw ? ; ディレクトリバッファのセグメント
sortbuff dw ? ; ソートバッファのセグメント
sortcount dw ? ; ソート対象エントリ数
movecount dw ? ; 先頭詰め対象エントリ数
;
drvinf DPB <> ; DPBのコピー
;
adjustroot dw ? ; ルートエントリ数を実エントリ数でチェックする
;
sortfuncs dw 33 dup(?) ; ソート用比較関数のリスト
subchain dw 129 dup(?) ; サブディレクトリのFATチェイン
;
wildcard db '\*.*',0 ; ワイルドカード
pathbuff db 96 dup(?) ; ディレクトリサーチ用パス名バッファ
;
procs db '処理中',TAB,TAB,' $'
dirover db 'ディレクトリが64KB以上',CR,LF,'$'
fatover db 'FATが64KB以上',CR,LF,'$'
;
bothmsg db 'エントリをソート/移動',CR,LF,'$'
sortmsg db 'エントリをソート',CR,LF,'$'
movemsg db 'エントリを移動',CR,LF,'$'
nothmsg db '対象エントリなし',CR,LF,'$'
;
veralarm db 'このバージョンのMS-DOSはサポートしていません',CR,LF
vermsgsz = $-offset veralarm
;
usagemsg label byte ; ヘルプメッセージ
db TAB," ディレクトリ エントリ ソート ユーティリティ 1991/01/01 Ver1.11",CR,LF
db " Copyright (C) by 福地 邦雄 1991. All rights reserved.",CR,LF
db "使い方:DSORT <オプション> ディレクトリーパス名・・・",CR,LF
db TAB,"-? -->ソート条件指定 +? -->ソート対象選択",CR,LF
db " -f -F フルネーム 11文字",TAB,"+g +G サブディレクトリを先頭(小文字)又は末尾(大文字)",CR,LF
db " -n -N ファイルネーム 8文字",TAB," に寄せる(無指定時はファイルと同格に扱う)",CR,LF
db " -e -E 拡張子 3文字",TAB,"+t ツリー構造の下部まで再帰的にソート",CR,LF
db " -s -S ファイルサイズ",TAB,TAB,"+a +d +v +s +h +r 各属性エントリを対象に加える",CR,LF
db " -d -D 最終更新日付",TAB,TAB," a=アーカイブ d=ディレクトリ v=ボリュームラベル s=システムファイル",CR,LF
db " -t -T 最終更新時刻",TAB,TAB," h=隠しファイル r=リードオンリー 初期指定値= +adr",CR,LF
db "デフォルト= -f (フルネーム・昇順) +n ソートを行わない 削除エントリ分を詰めるだけ",CR,LF
db TAB,TAB,TAB,TAB,"+f ソート対象でないエントリを先頭に詰めない",CR,LF
db "小文字=昇順 大文字=降順 複数指定可能で、指定した順番に比較する。",CR,LF
db "+a~+rの指定は トグルスイッチ になっていて、2回指定するとソート対象から外れる。",CR,LF
db "ディレクトリーパス名は必ず指定すること。 カレントの場合は'.'を、ルートの場合は'\'を使用する。",CR,LF
msgsize = $-offset usagemsg
;
.stack
;
end