📄 tdata.asm
字号:
TIME_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:TIME_CONTROL1 ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
TIME_CONTROL1 LABEL BYTE ;AN000;
DW 0801H ;AN000; TIME - optional
DW 0 ;AN000; no function flags
DW TRANGROUP:TIME_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR VOL
;
;
; The following parse control block can be used for any command which
; needs only an optional drive letter as an operand. Returns unverified
; drive number (one based) in DRIVE_OUTPUT. Currently used for the VOL
; internal command.
;
PARSE_VOL LABEL BYTE ;AN000;
DW TRANGROUP:VOL_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
VOL_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:DRIVE_CONTROL1;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
DRIVE_CONTROL1 LABEL BYTE ;AN000;
DW 0101H ;AN000; DRIVE - optional
DW 1 ;AN000; capitalize - file table
DW TRANGROUP:DRIVE_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR MKDIR, RMDIR, TYPE
;
;
; The following parse control block can be used for any command which
; needs only one required file specification as an operand. Returns a
; pointer to the unverified string in PARSE1_OUTPUT. Currently used
; for the MKDIR, RMDIR, and TYPE internal commands.
;
PARSE_MRDIR LABEL BYTE ;AN000;
DW TRANGROUP:MRDIR_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
MRDIR_PARMS LABEL BYTE ;AN000;
DB 1,1 ;AN000; 1 positional parm
DW TRANGROUP:FILE_REQUIRED ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR CHDIR, TRUENAME
;
;
; The following parse control block can be used for any command which
; needs only one optional file specification an operand. Returns a
; pointer to the unverified string in PARSE1_OUTPUT. Currently used
; for the CHDIR and TRUENAME internal commands.
;
PARSE_CHDIR LABEL BYTE ;AN000;
DW TRANGROUP:CHDIR_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
CHDIR_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:FILE_OPTIONAL ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR ERASE
;
;
; The following parse control block is used for the DEL/ERASE internal
; commands. This command has one required file specification and an
; optional switch (/p) as operands. The verified switch or unverified
; file specification is returned in PARSE1_OUTPUT.
;
PARSE_ERASE LABEL BYTE ;AN000;
DW TRANGROUP:ERASE_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
ERASE_PARMS LABEL BYTE ;AN000;
DB 1,1 ;AN000; 1 positional parm
DW TRANGROUP:FILE_REQUIRED ;AN000;
DB 1 ;AN000; 1 switch
DW TRANGROUP:SLASH_P_SWITCH;AN000;
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR DIR
;
;
; The following parse control block is used for the DIR internal command.
; This command has one optional file specification and several optional
; switches. Switches, switch values, and the filespec are returned in
; PARSE1_OUTPUT.
;
; Switches are /a[value], /-a, /o[value], /-o, /s, /-s, /?, /b, /-b,
; /w, /-w, /p, and /-p. The string values for /a and /o are optional,
; do not require colons, and are not checked against a value list.
;
; Switch /h has been removed from the DIR command ;M008
; Switch /? is no longer handled internally ;M008
;
; A list of pointers to all the switch synonyms is provided here to
; help identify which switch has been matched.
;
PARSE_DIR LABEL BYTE
DW TRANGROUP:DIR_PARMS
DB 0 ; no extra delimiters
DIR_PARMS LABEL BYTE
DB 0,1 ; 1 optional positional param
DW TRANGROUP:FILE_OPTIONAL2
DB 2 ; 2 kinds of switches
DW TRANGROUP:DIR_SW_VALUED
DW TRANGROUP:DIR_SW_UNVALUED
DB 0 ; no keywords
DIR_SW_VALUED LABEL BYTE
DW 2001H ; optional string value
DW 21H ; optional colon; capitalize
DW TRANGROUP:PARSE1_OUTPUT ; result buffer
DW TRANGROUP:NULL_VALUE_LIST ; don't validate value
ifdef DBLSPACE_HOOKS
DB 3 ; 3 'synonyms'
else
DB 2 ; 2 'synonyms'
endif
DIR_SW_A DB "/A",0
DIR_SW_O DB "/O",0
ifdef DBLSPACE_HOOKS
DIR_SW_C DB "/C",0
endif
DIR_SW_UNVALUED LABEL BYTE
DW 0 ; no value
DW 0 ; no format functions
DW TRANGROUP:PARSE1_OUTPUT ; result buffer
DW TRANGROUP:NO_VALUES
ifdef DBLSPACE_HOOKS
DB 13 ; 13 'synonyms'
else
DB 12 ; 12 'synonyms'
endif
DIR_SW_NEG_A DB "/-A",0
DIR_SW_NEG_O DB "/-O",0
DIR_SW_S DB "/S",0
DIR_SW_NEG_S DB "/-S",0
DIR_SW_B DB "/B",0
DIR_SW_NEG_B DB "/-B",0
DIR_SW_W DB "/W",0
DIR_SW_NEG_W DB "/-W",0
DIR_SW_P DB "/P",0
DIR_SW_NEG_P DB "/-P",0
DIR_SW_L DB "/L",0 ;M010
DIR_SW_NEG_L DB "/-L",0 ;M010
ifdef DBLSPACE_HOOKS
DIR_SW_NEG_C DB "/-C",0
endif
;
; Here's a list of pointers to DIR's switch synonyms, for easier
; identification. Order is critical - DIR routines rely on the
; specific order in this list. Negated options appear at odd
; positions in the list, and simple on/off options appear first.
;
DIR_SW_PTRS LABEL WORD ; list of ptrs to switch synonyms
ifdef DBLSPACE_HOOKS
DW TRANGROUP:DIR_SW_NEG_C
DW TRANGROUP:DIR_SW_C
endif
DW TRANGROUP:DIR_SW_NEG_W
DW TRANGROUP:DIR_SW_W
DW TRANGROUP:DIR_SW_NEG_P
DW TRANGROUP:DIR_SW_P
DW TRANGROUP:DIR_SW_NEG_S
DW TRANGROUP:DIR_SW_S
DW TRANGROUP:DIR_SW_NEG_B
DW TRANGROUP:DIR_SW_B
DW TRANGROUP:DIR_SW_NEG_L ;M010
DW TRANGROUP:DIR_SW_L ;M010
DW TRANGROUP:DIR_SW_NEG_O
DW TRANGROUP:DIR_SW_O
DW TRANGROUP:DIR_SW_NEG_A
DW TRANGROUP:DIR_SW_A
;
; PARSE BLOCK FOR RENAME
;
;
; The following parse control block can be used for any command which
; needs only two required file specifications as operands. Returns
; pointers to the unverified string in PARSE1_OUTPUT.
; Currently used for the RENAME internal command.
;
PARSE_RENAME LABEL BYTE ;AN000;
DW TRANGROUP:RENAME_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
RENAME_PARMS LABEL BYTE ;AN000;
DB 2,2 ;AN000; 2 positional parms
DW TRANGROUP:FILE_REQUIRED ;AN000;
DW TRANGROUP:FILE_REQUIRED ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR CTTY
;
;
; The following parse control block can be used for any command which
; needs one required device name as an operand. Returns a pointer to
; unverified string in PARSE1_OUTPUT. Currently used for the CTTY
; internal command.
;
PARSE_CTTY LABEL BYTE ;AN000;
DW TRANGROUP:CTTY_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
CTTY_PARMS LABEL BYTE ;AN000;
DB 1,1 ;AN000; 1 positional parm
DW TRANGROUP:CTTY_CONTROL1 ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
CTTY_CONTROL1 LABEL BYTE ;AN000;
DW 2000H ;AN000; string value - required
DW 11H ;AN000; capitalize - file table
;AN000; remove colon at end
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR VER
;
;
; The following parse control block can be used for any command which
; needs an optional switch "/debug". Currently used for the VER command.
;
PARSE_VER LABEL BYTE
DW TRANGROUP:VER_PARMS
DB 0 ; no extra delimiters
VER_PARMS LABEL BYTE
DB 0,0 ; no positional parameters
DB 1 ; one switch
DW TRANGROUP:SLASH_R
DB 0 ; no keywords
SLASH_R LABEL BYTE
DW 0 ; no values
DW 2 ; capitalize by filename table
DW TRANGROUP:PARSE1_OUTPUT ; result buffer
DW TRANGROUP:NO_VALUES ; no values
DB 1 ; one synonym
SLASH_R_SYN DB "/R",0
;
; M003 ; Start of changes for LoadHigh support
;
;
;Parse Control Block for LOADHIGH command
;
Parse_LoadHi label byte
dw TRANGROUP:LoadHi_Parms ;extended parm table
db 0 ;no extra delimiters
LoadHi_Parms label byte
db 1,1 ;min. 1 parm, max. 1 parm
dw TRANGROUP:File_Required ;control struc for filename
db 0 ;no switches
db 0 ;no keywords
;
; M003 ; End of changes for LoadHigh support
;
public TempVarName
TempVarName db "TEMP=",0
ifdef DBLSPACE_HOOKS
public sCVFRoot, cbCVFRoot
sCVFRoot db "\DBLSPACE." ;Compressed Volume File root file name
cbCVFRoot equ $-sCVFRoot
endif
ifdef BETA3WARN
%out Take this out before we ship
public Beta3WarnMsg
Beta3WarnMsg label byte
db '+------------------- WARNING! ------------------+', 0dh, 0ah
db '| |', 0dh, 0ah
db '| |', 0dh, 0ah
db '| This pre-release version of MS-DOS 6 is out |', 0dh, 0ah
db '| of date. Please replace it with an updated |', 0dh, 0ah
db '| version of MS-DOS 6. |', 0dh, 0ah
db '| |', 0dh, 0ah
db '| |', 0dh, 0ah
db '| <Press any key to continue> |', 0dh, 0ah
db '| |', 0dh, 0ah
db '+-----------------------------------------------+', 0dh, 0ah
db '$'
endif
TRANDATA ENDS
TRANCODE SEGMENT PUBLIC BYTE ;AN000;
.xlist
.xcref
INCLUDE SYSMSG.INC ;AN000;
.list
.cref
ASSUME DS:TRANGROUP,ES:TRANGROUP,CS:TRANGROUP
MSG_UTILNAME <COMMAND> ;AN000; define utility name
MSG_SERVICES <COMT,COMMAND.CLF,COMMAND.CL1,COMMAND.CL2> ;AN000; The transient messages
include msgdcl.inc
TRANCODE ENDS ;AN000;
TRANDATA SEGMENT PUBLIC BYTE
TRANDATAEND LABEL BYTE
TRANDATA ENDS ;AN000;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -