1 TITLE COMMAND Language midifiable
Code Transient
15 DATARES
SEGMENT PUBLIC
19 TRANDATA
SEGMENT PUBLIC
20 EXTRN SUREMES
:BYTE,NOTFND
:BYTE,ECHOMES
:BYTE,CTRLCMES
:BYTE
21 EXTRN ONMES
:BYTE,OFFMES
:BYTE,VERIMES
:BYTE,BAD_ON_OFF
:BYTE
22 EXTRN VOLMES
:BYTE,GOTVOL
:BYTE,NOVOL
:BYTE,WeekTab
:BYTE
26 TRANSPACE
SEGMENT PUBLIC
27 EXTRN RESSEG
:WORD,CURDRV
:BYTE,DIRBUF
:BYTE,CHARBUF
:BYTE
30 TRANCODE
SEGMENT PUBLIC BYTE
32 EXTRN PRINT
:NEAR,SCANOFF
:NEAR,CRLF2
:NEAR,RESTUDIR
:NEAR,CERROR
:NEAR
33 EXTRN CRPRINT
:NEAR,OUT:NEAR,ZPRINT
:NEAR
34 EXTRN ERROR_PRINT
:NEAR,MesTran
:NEAR,P_Date
:NEAR
39 PUBLIC NOTEST2
,ECHO
,CNTRLC
,VERIFY
,PRINTVOL
,GetDate
,PRINT_DATE
41 ASSUME
CS:TRANGROUP
,DS:TRANGROUP
,ES:TRANGROUP
,SS:NOTHING
43 ;***************************************
44 ; ARE YOU SURE prompt when deleting *.*
58 MOV DX,OFFSET TRANGROUP
:SUREMES
; "Are you sure (Y/N)?"
62 MOV WORD PTR [SI],120 ; zero length
63 MOV AX,(STD_CON_INPUT_FLUSH
SHL 8) OR STD_CON_STRING_INPUT
69 OR AL,20H
; Convert to lower case
84 MOV DX,OFFSET TRANGROUP
:NOTFND
91 ;************************************************
92 ; ECHO, BREAK, and VERIFY commands. Check for "ON" and "OFF"
95 ASSUME
DS:TRANGROUP
,ES:TRANGROUP
109 MOV AL,BYTE PTR DS:[80H
]
111 JB PECHO
; Gota have at least 2 characters
112 MOV DX,82H
; Skip one char after "ECHO"
123 MOV DX,OFFSET TRANGROUP
:ECHOMES
130 ; is rest of line blank?
132 MOV SI,81h
; point at text spot
133 CALL SCANOFF
; skip separators
134 SUB SI,81h
; number of characters advanced
135 MOV CX,SI ; put count in byte addressable spot
136 CMP CL,DS:[80h
] ; compare with count
142 MOV AX,(SET_CTRL_C_TRAPPING
SHL 8) OR 1
146 INT int_command
; Set ^C
150 INT int_command
; Turn off ^C check
154 CALL IsBlank
; rest of line blank?
155 JNZ CERRORJ
; no, oops!
159 MOV DX,OFFSET TRANGROUP
:CTRLCMES
162 MOV DX,OFFSET TRANGROUP
:ONMES
165 MOV DX,OFFSET TRANGROUP
:OFFMES
171 MOV AX,(SET_VERIFY_ON_WRITE
SHL 8) OR 1
174 INT int_command
; Set verify
178 INT int_command
; Turn off verify after write
182 CALL IsBlank
; is rest of line blank?
183 JNZ CERRORJ
; nope...
184 MOV AH,GET_VERIFY_ON_WRITE
187 MOV DX,OFFSET TRANGROUP
:VERIMES
197 OR AX,2020H
; Convert to lower case
200 CMP AH,' ' ; ' ' ORed with 20H is still ' '
202 RET ; Carry clear from CMP
209 INC AL ; Reset zero Carry clear from CMP
212 MOV DX,OFFSET TRANGROUP
:BAD_ON_OFF
216 ;********************************
217 ; Print volume ID info
219 ASSUME
DS:TRANGROUP
,ES:TRANGROUP
222 PUSH AX ; AX return from SEARCH_FIRST for VOL ID
223 MOV DX,OFFSET TRANGROUP
:VOLMES
236 MOV DX,OFFSET TRANGROUP
:NOVOL
240 MOV DX,OFFSET TRANGROUP
:GOTVOL
242 MOV SI,OFFSET TRANGROUP
:DIRBUF
+ 8
244 MOV DI,OFFSET TRANGROUP
:CHARBUF
253 ;*************************************************************************
260 MOV DI,OFFSET TRANGROUP
:CHARBUF
262 INT int_command
; Get date in CX:DX
264 CALL GetDate
; get date and put into DI
267 MOV SI,OFFSET TRANGROUP
:CURDAT_MID
272 MOV DX,OFFSET TRANGROUP
:CHARBUF
282 ADD SI,OFFSET TRANGROUP
:WEEKTAB