📄 tdata.asm
字号:
IfHelpMsgs dw 1860,1861,1862,1863,1864,1865,1866,0 ;M014
ForHelpMsgs dw 1880,1881,1882,1883,0 ;M014
TruenameHelpMsgs dw 1900,0 ;M014
LoadhighHelpMsgs dw 1920,1921,1922,1923,1924,1925,1926,1927,0 ;M014
CLSSTRING DB 4,01BH,"[2J" ; ANSI Clear screen
PROMPT_TABLE LABEL BYTE
btab "B",Print_B
btab "D",PRINT_DATE
btab "E",PRINT_ESC
btab "G",PRINT_G
btab "H",PRINT_BACK
btab "L",PRINT_L
btab "N",PRINT_DRIVE
btab "P",build_dir_for_prompt
btab "Q",PRINT_EQ
btab "T",PRINT_TIME
btab "V",PRINT_VERSION
btab "_",CRLF2
btab "$",PRINT_CHAR
DB 0 ; NUL TERMINATED
IFTAB LABEL BYTE ; Table of IF conditionals
DB 3,"NOT" ; First byte is count
DW OFFSET TRANGROUP:IFNOT
DB 10,"ERRORLEVEL"
DW OFFSET TRANGROUP:IFERLEV
DB 5,"EXIST"
DW OFFSET TRANGROUP:IFEXISTS
DB 0
; Table for internal command names
COMTAB DB 3,"DIR",fSwitchAllowed+fCheckDrive
DW OFFSET TRANGROUP:CATALOG ; In TCMD1.ASM
DW TRANGROUP:DirHelpMsgs
DB 4,"CALL",fSwitchAllowed
DW OFFSET TRANGROUP:$CALL ; In TBATCH2.ASM
DW TRANGROUP:CallHelpMsgs
DB 4,"CHCP",fSwitchAllowed
DW OFFSET TRANGROUP:CHCP ; In TCMD2B.ASM
DW TRANGROUP:ChcpHelpMsgs
DB 6,"RENAME",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:CRENAME ; In TCMD1.ASM
DW TRANGROUP:RenHelpMsgs
DB 3,"REN",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:CRENAME ; In TCMD1.ASM
DW TRANGROUP:RenHelpMsgs
DB 5,"ERASE",fSwitchAllowed+fCheckDrive
DW OFFSET TRANGROUP:ERASE ; In TCMD1.ASM
DW TRANGROUP:DelHelpMsgs
DB 3,"DEL",fSwitchAllowed+fCheckDrive
DW OFFSET TRANGROUP:ERASE ; In TCMD1.ASM
DW TRANGROUP:DelHelpMsgs
DB 4,"TYPE",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:TYPEFIL ; In TCMD1.ASM
DW TRANGROUP:TypeHelpMsgs
DB 3,"REM",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:TCOMMAND ; In TCODE.ASM
DW TRANGROUP:RemHelpMsgs
DB 4,"COPY",fSwitchAllowed+fCheckDrive
DW OFFSET TRANGROUP:COPY ; In COPY.ASM
DW TRANGROUP:CopyHelpMsgs
DB 5,"PAUSE",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:PAUSE ; In TCMD1.ASM
DW TRANGROUP:PauseHelpMsgs
DB 4,"DATE",fSwitchAllowed
DW OFFSET TRANGROUP:DATE ; In TPIPE.ASM
DW TRANGROUP:DateHelpMsgs
DB 4,"TIME",fSwitchAllowed ;AC018; P3903
DW OFFSET TRANGROUP:CTIME ; In TPIPE.ASM
DW TRANGROUP:TimeHelpMsgs
DB 3,"VER",fSwitchAllowed
DW OFFSET TRANGROUP:VERSION ; In TCMD2.ASM
DW TRANGROUP:VerHelpMsgs
DB 3,"VOL",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:VOLUME ; In TCMD1.ASM
DW TRANGROUP:VolHelpMsgs
DB 2,"CD",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$CHDIR ; In TENV.ASM
DW TRANGROUP:CdHelpMsgs
DB 5,"CHDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$CHDIR ; In TENV.ASM
DW TRANGROUP:CdHelpMsgs
DB 2,"MD",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$MKDIR ; In TENV.ASM
DW TRANGROUP:MdHelpMsgs
DB 5,"MKDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$MKDIR ; In TENV.ASM
DW TRANGROUP:MdHelpMsgs
DB 2,"RD",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$RMDIR ; In TENV.ASM
DW TRANGROUP:RdHelpMsgs
DB 5,"RMDIR",fSwitchAllowed+fCheckDrive ;AC018; P3903
DW OFFSET TRANGROUP:$RMDIR ; In TENV.ASM
DW TRANGROUP:RdHelpMsgs
DB 5,"BREAK",fSwitchAllowed ;AC018; P3903
DW OFFSET TRANGROUP:CNTRLC ; In TUCODE.ASM
DW TRANGROUP:BreakHelpMsgs
DB 6,"VERIFY",fSwitchAllowed ;AC018; P3903
DW OFFSET TRANGROUP:VERIFY ; In TUCODE.ASM
DW TRANGROUP:VerifyHelpMsgs
DB 3,"SET",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:ADD_NAME_TO_ENVIRONMENT; In TENV.ASM
DW TRANGROUP:SetHelpMsgs
DB 6,"PROMPT",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:ADD_PROMPT ; In TENV.ASM
DW TRANGROUP:PromptHelpMsgs
DB 4,"PATH",fSwitchAllowed
DW OFFSET TRANGROUP:PATH ; In TCMD2.ASM
DW TRANGROUP:PathHelpMsgs
DB 4,"EXIT",0
DW OFFSET TRANGROUP:$EXIT ; In TCMD2.ASM
DW TRANGROUP:ExitHelpMsgs
DB 4,"CTTY",fCheckDrive+fSwitchAllowed
DW OFFSET TRANGROUP:CTTY ; In TCMD2.ASM
DW TRANGROUP:CttyHelpMsgs
DB 4,"ECHO",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:ECHO ; In TUCODE.ASM
DW TRANGROUP:EchoHelpMsgs
DB 4,"GOTO",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:GOTO ; In TBATCH.ASM
DW TRANGROUP:GotoHelpMsgs
DB 5,"SHIFT",fSwitchAllowed
DW OFFSET TRANGROUP:SHIFT ; In TBATCH.ASM
DW TRANGROUP:ShiftHelpMsgs
DB 2,"IF",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:$IF ; In TBATCH.ASM
DW TRANGROUP:IfHelpMsgs
DB 3,"FOR",fSwitchAllowed+fLimitHelp
DW OFFSET TRANGROUP:$FOR ; In TBATCH.ASM
DW TRANGROUP:ForHelpMsgs
DB 3,"CLS",0
DW OFFSET TRANGROUP:CLS ; In TCMD2.ASM
DW TRANGROUP:ClsHelpMsgs
DB 8,"TRUENAME",fSwitchAllowed+fCheckDrive ;AN000; P3903 changed
DW OFFSET TRANGROUP:TRUENAME ;AN000;
DW TRANGROUP:TruenameHelpMsgs
DB 8,"LOADHIGH",fSwitchAllowed ; M003
DW OFFSET TRANGROUP:LoadHigh ; In loadhi.asm ; M003
DW TRANGROUP:LoadhighHelpMsgs ; M003
DB 2,"LH",fSwitchAllowed ; Short form; M003
DW OFFSET TRANGROUP:LoadHigh ; In loadhi.asm ; M003
DW TRANGROUP:LoadhighHelpMsgs ; M003
DB 0 ; Terminate command table
comext dB ".COM"
exeext dB ".EXE"
batext dB ".BAT"
switch_list DB "?VBAPW" ; flags we can recognize
AttrLtrs DB "RHSvDA" ; attribute letters for DIR
; Attribute letters in AttrLtrs must appear in the order that
; attribute bits occur in the attribute byte returned by
; directory searches, starting with bit 0.
; The volume label attribute is lowercased to keep it from
; being matched (by an uppercase comparison).
ifdef DBLSPACE_HOOKS
OrderLtrs DB "NEDSGC" ; sort order letters for DIR
else
OrderLtrs DB "NEDSG" ; sort order letters for DIR
endif
; Sort order letters stand for file name, extension,
; date/time, size, grouped (directory files before others),
; and compression ratio. DIR routines rely on the specific
; order of the letters in this list.
comspec_flag db 0 ;AN071;
PUBLIC BatBufLen
BatBufLen DW BatLen
; *****************************************************
; EMG 4.00
; DATA STARTING HERE WAS ADDED BY EMG FOR 4.00
; FOR IMPLEMENTATION OF COMMON PARSE ROUTINE
; *****************************************************
;
; COMMON PARSE BLOCKS
;
;
; Indicates no value list for PARSE.
;
NO_VALUES DW 0 ;AN000; no values
NULL_VALUE_LIST LABEL BYTE ; for unvalidated value
DB 0 ; no value lists
;
; PARSE control block for a required file specification (upper cased)
;
FILE_REQUIRED LABEL BYTE ;AN000;
DW 0200H ;AN000; filespec - required
DW 1 ;AN000; capitalize - file table
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE control block for an optional file specification (upper cased)
; or drive number
;
FILE_OPTIONAL LABEL BYTE ;AN000;
DW 0301H ;AN000; filespec or drive number
; optional
DW 1 ;AN000; capitalize - file table
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE control block for an optional file specification (upper cased)
;
FILE_OPTIONAL2 LABEL BYTE ;AN000;
DW 0201H ;AN000; filespec optional
DW 1 ;AN000; capitalize - file table
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE control block for an optional /P switch
;
SLASH_P_SWITCH LABEL BYTE ;AN000;
DW 0 ;AN000; no match flags
DW 2 ;AN000; capitalize - char table
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 1 ;AN000; 1 keyword
SLASH_P_SYN DB "/P",0 ;AN000; /P switch
; PARSE BLOCK FOR BREAK, VERIFY, ECHO
;
; The following parse control block can be used for any command which
; needs only the optional "ON" and "OFF" keywords as operands. Allows
; the equal sign as an additional delimiter. Returns verified result
; in PARSE1_OUTPUT. Currently used for the BREAK, VERIFY, and ECHO
; internal commands.
;
PARSE_BREAK LABEL BYTE ;AN000;
DW TRANGROUP:BREAK_PARMS ;AN000;
DB 0 ;AN032; no extra delimiter
BREAK_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:BREAK_CONTROL1;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
BREAK_CONTROL1 LABEL BYTE ;AN000;
DW 2001H ;AN000; string value - optional
DW 2 ;AN000; capitalize - char table
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:BREAK_VALUES ;AN000;
DB 0 ;AN000; no keywords
BREAK_VALUES LABEL BYTE ;AN000;
DB 3 ;AN000;
DB 0 ;AN000; no ranges
DB 0 ;AN000; no numeric values
DB 2 ;AN000; 2 string values
DB 0 ;AN000; returned if ON
DW TRANGROUP:BREAK_ON ;AN000; point to ON string
DB 'f' ;AN000; returned if OFF
DW TRANGROUP:BREAK_OFF ;AN000; point to OFF string
BREAK_ON DB "ON",0 ;AN000;
BREAK_OFF DB "OFF",0 ;AN000;
;
; PARSE BLOCK FOR CHCP
;
;
; The following parse control block can be used for any command which
; needs only one optional three digit decimal parameter for operands.
; Returns verified result in PARSE1_OUTPUT. Currently used for the
; CHCP internal command.
;
CHCP_MINVAL EQU 100 ;AN000;
CHCP_MAXVAL EQU 999 ;AN000;
PARSE_CHCP LABEL BYTE ;AN000;
DW TRANGROUP:CHCP_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
CHCP_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:CHCP_CONTROL1 ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
CHCP_CONTROL1 LABEL BYTE ;AN000;
DW 8001H ;AN000; numeric value - optional
DW 0 ;AN000; no function flags
DW TRANGROUP:PARSE1_OUTPUT ;AN000; result buffer
DW TRANGROUP:CHCP_VALUES ;AN000;
DB 0 ;AN000; no keywords
CHCP_VALUES LABEL BYTE ;AN000;
DB 1 ;AN000;
DB 1 ;AN000; 1 range
DB 1 ;AN000; returned if result
DD CHCP_MINVAL,CHCP_MAXVAL ;AN000; minimum & maximum value
DB 0 ;AN000; no numeric values
DB 0 ;AN000; no string values
;
; PARSE BLOCK FOR DATE
;
;
; The following parse control block can be used for any command which
; needs only an optional date string as an operand. Returns unverified
; result in DATE_OUTPUT. Currently used for the DATE internal command.
;
PARSE_DATE LABEL BYTE ;AN000;
DW TRANGROUP:DATE_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
DATE_PARMS LABEL BYTE ;AN000;
DB 0,1 ;AN000; 1 positional parm
DW TRANGROUP:DATE_CONTROL1 ;AN000;
DB 0 ;AN000; no switches
DB 0 ;AN000; no keywords
DATE_CONTROL1 LABEL BYTE ;AN000;
DW 1001H ;AN000; date - optional
DW 0 ;AN000; no function flags
DW TRANGROUP:DATE_OUTPUT ;AN000; result buffer
DW TRANGROUP:NO_VALUES ;AN000;
DB 0 ;AN000; no keywords
;
; PARSE BLOCK FOR TIME
;
;
; The following parse control block can be used for any command which
; needs only an optional time string as an operand. Returns unverified
; result in TIME_OUTPUT. Currently used for the TIME internal command.
;
PARSE_TIME LABEL BYTE ;AN000;
DW TRANGROUP:TIME_PARMS ;AN000;
DB 0 ;AN000; no extra delimiter
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -