diff options
Diffstat (limited to 'v4.0/src/CMD/EDLIN/EDLMES.ASM')
| -rw-r--r-- | v4.0/src/CMD/EDLIN/EDLMES.ASM | 665 |
1 files changed, 665 insertions, 0 deletions
diff --git a/v4.0/src/CMD/EDLIN/EDLMES.ASM b/v4.0/src/CMD/EDLIN/EDLMES.ASM new file mode 100644 index 0000000..889a044 --- /dev/null +++ b/v4.0/src/CMD/EDLIN/EDLMES.ASM | |||
| @@ -0,0 +1,665 @@ | |||
| 1 | PAGE 60,132; | ||
| 2 | title EDLIN Messages | ||
| 3 | ;======================= START OF SPECIFICATIONS ========================= | ||
| 4 | ; | ||
| 5 | ; MODULE NAME: EDLMES.SAL | ||
| 6 | ; | ||
| 7 | ; DESCRIPTIVE NAME: MESSAGE RETRIEVER INTERFACE MODULE | ||
| 8 | ; | ||
| 9 | ; FUNCTION: THIS MODULE PROVIDES AN INTERFACE FOR THE MODULES THAT ARE | ||
| 10 | ; NEEDED TO INVOKE THE MESSAGE RETRIEVER. | ||
| 11 | ; | ||
| 12 | ; ENTRY POINT: PRINTF | ||
| 13 | ; | ||
| 14 | ; INPUT: OFFSET CARRIED IN DX TO APPLICABLE MESSAGE TABLE | ||
| 15 | ; | ||
| 16 | ; EXIT NORMAL: NO CARRY | ||
| 17 | ; | ||
| 18 | ; EXIT ERROR : CARRY | ||
| 19 | ; | ||
| 20 | ; INTERNAL REFERENCES: | ||
| 21 | ; | ||
| 22 | ; ROUTINE: PRINTF - PROVIDES THE ORIGINAL INTERFACE FOR THE ORIGINAL | ||
| 23 | ; PRINTF USED PRIOR TO VERSION 4.00. PRINTS MESSAGES. | ||
| 24 | ; | ||
| 25 | ; DISP_MESSAGE - BUILDS THE REGISTERS NECESSARY FOR INVOCATION | ||
| 26 | ; OF THE MESSAGE RETRIEVER, BASED ON THE TABLE | ||
| 27 | ; POINTED TO BY DX. | ||
| 28 | ; | ||
| 29 | ; DISP_FATAL - INVOKED IF AN ERROR OCCURS (CARRY) IN THE | ||
| 30 | ; MESSAGE RETRIEVER. IT DISPLAYS THE APPROPRIATE | ||
| 31 | ; MESSAGE. | ||
| 32 | ; | ||
| 33 | ; EXTERNAL REFERENCES: | ||
| 34 | ; | ||
| 35 | ; ROUTINE: SYSLOADMSG - LOAD MESSAGES FOR THE MESSAGE RETRIEVER | ||
| 36 | ; SYSDISPMSG - DISPLAYS THE REQUESTED MESSAGE | ||
| 37 | ; | ||
| 38 | ; NOTES: THIS MODULE IS TO BE PREPPED BY SALUT WITH THE "PR" OPTIONS | ||
| 39 | ; LINK EDLIN+EDLCMD1+EDLCMD2+EDLMES+EDLPARSE | ||
| 40 | ; | ||
| 41 | ; REVISION HISTORY: | ||
| 42 | ; | ||
| 43 | ; AN000 VERSION DOS 4.00 - IMPLEMENTATION OF MESSAGE RETRIEVER | ||
| 44 | ; | ||
| 45 | ; COPYRIGHT: "MS DOS EDLIN UTILITY" | ||
| 46 | ; "VERSION 4.00 (C) COPYRIGHT 1988 Microsoft" | ||
| 47 | ; "LICENSED MATERIAL - PROPERTY OF Microsoft " | ||
| 48 | ; | ||
| 49 | ; MICROSOFT REVISION HISTORY | ||
| 50 | ; | ||
| 51 | ; MODIFIED BY: AARON R | ||
| 52 | ; M.A. U | ||
| 53 | ; N. P | ||
| 54 | ;======================= END OF SPECIFICATIONS =========================== | ||
| 55 | |||
| 56 | .xlist | ||
| 57 | |||
| 58 | include sysmsg.inc ;an000;message retriever | ||
| 59 | |||
| 60 | msg_utilname <EDLIN> ;an000;EDLIN messages | ||
| 61 | .list | ||
| 62 | ;-----------------------------------------------------------------------; | ||
| 63 | ; ; | ||
| 64 | ; Done for Vers 2.00 (rev 9) by Aaron R ; | ||
| 65 | ; Update for rev. 11 by M.A. U ; | ||
| 66 | ; Printf for 2.5 by Nancy P ; | ||
| 67 | ; ; | ||
| 68 | ;-----------------------------------------------------------------------; | ||
| 69 | |||
| 70 | ;========================================================================= | ||
| 71 | ; revised edlmes.asm | ||
| 72 | ;========================================================================= | ||
| 73 | |||
| 74 | fatal_error equ 30 ;an000;fatal message handler | ||
| 75 | unlim_width equ 00h ;an000;unlimited output width | ||
| 76 | pad_blank equ 20h ;an000;blank pad | ||
| 77 | pre_load equ 00h ;an000;normal pre-load | ||
| 78 | |||
| 79 | |||
| 80 | |||
| 81 | message_table struc ;an000;struc for message table | ||
| 82 | |||
| 83 | entry1 dw 0 ;an000;message number | ||
| 84 | entry2 db 0 ;an000;message type | ||
| 85 | entry3 dw 0 ;an000;display handle | ||
| 86 | entry4 dw 0 ;an000;pointer to sublist | ||
| 87 | entry5 dw 0 ;an000;substitution count | ||
| 88 | entry6 db 0 ;an000;use keyb input? | ||
| 89 | entry7 dw 0 ;an000;keyb buffer to use | ||
| 90 | |||
| 91 | message_table ends ;an000;end struc | ||
| 92 | |||
| 93 | ;========================================================================= | ||
| 94 | ; macro disp_message: this macro takes a pointer to a message table | ||
| 95 | ; and displays the applicable message based on | ||
| 96 | ; the table's contents. | ||
| 97 | ; this is to provide an interface into the module | ||
| 98 | ; of the message retriever, SYSDISPMSG. | ||
| 99 | ; | ||
| 100 | ; Date : 6/11/87 | ||
| 101 | ;========================================================================= | ||
| 102 | |||
| 103 | disp_message macro tbl ;an000;display message macro | ||
| 104 | |||
| 105 | push bx ;an000; | ||
| 106 | push cx ;an000; | ||
| 107 | push dx ;an000; | ||
| 108 | push di ;an000; | ||
| 109 | push si ;an000; | ||
| 110 | |||
| 111 | push tbl ;an000;exchange tbl with si | ||
| 112 | pop si ;an000;exchanged | ||
| 113 | |||
| 114 | mov ax,[si].entry1 ;an000;move message number | ||
| 115 | mov bx,[si].entry3 ;an000;display handle | ||
| 116 | mov cx,[si].entry5 ;an000;number of subs | ||
| 117 | mov dl,[si].entry6 ;an000;function type | ||
| 118 | mov di,[si].entry7 ;an000;input buffer if appl. | ||
| 119 | mov dh,[si].entry2 ;an000;message type | ||
| 120 | mov si,[si].entry4 ;an000;sublist | ||
| 121 | |||
| 122 | call sysdispmsg ;an000;display the message | ||
| 123 | |||
| 124 | pop si ;an000;restore affected regs | ||
| 125 | pop di ;an000; | ||
| 126 | pop dx ;an000; | ||
| 127 | pop cx ;an000; | ||
| 128 | pop bx ;an000; | ||
| 129 | |||
| 130 | endm ;an000;end macro disp_message | ||
| 131 | |||
| 132 | ;========================================================================= | ||
| 133 | ; macro disp_message: end macro | ||
| 134 | ;========================================================================= | ||
| 135 | |||
| 136 | CODE SEGMENT PUBLIC BYTE | ||
| 137 | CODE ENDS | ||
| 138 | |||
| 139 | CONST SEGMENT PUBLIC BYTE | ||
| 140 | CONST ENDS | ||
| 141 | |||
| 142 | cstack segment stack | ||
| 143 | cstack ends | ||
| 144 | |||
| 145 | DATA SEGMENT PUBLIC BYTE | ||
| 146 | |||
| 147 | extrn path_name:byte | ||
| 148 | |||
| 149 | DATA ENDS | ||
| 150 | |||
| 151 | DG GROUP CODE,CONST,cstack,DATA | ||
| 152 | |||
| 153 | code segment public byte ;an000;code segment | ||
| 154 | assume cs:dg,ds:dg,es:dg,ss:CStack ;an000; | ||
| 155 | |||
| 156 | public printf ;an000;share printf | ||
| 157 | public disp_fatal ;an000;fatal error display | ||
| 158 | public pre_load_message ;an000;message loader | ||
| 159 | |||
| 160 | .xlist | ||
| 161 | msg_services <MSGDATA> ;an000; | ||
| 162 | .list | ||
| 163 | |||
| 164 | ;======================= sysmsg.inc invocation =========================== | ||
| 165 | ; | ||
| 166 | ; include sysmsg.inc - message retriever services | ||
| 167 | ; | ||
| 168 | ; | ||
| 169 | ; options selected: | ||
| 170 | ; NEARmsg | ||
| 171 | ; DISPLAYmsg | ||
| 172 | ; LOADmsg | ||
| 173 | ; CHARmsg | ||
| 174 | ; NUMmsg | ||
| 175 | ; CLSAmsg | ||
| 176 | ; CLSBmsg | ||
| 177 | ; CLSCmsg | ||
| 178 | ; | ||
| 179 | ;========================================================================= | ||
| 180 | |||
| 181 | .xlist | ||
| 182 | |||
| 183 | msg_services <LOADmsg> ;an000;no version check | ||
| 184 | msg_services <DISPLAYmsg,CHARmsg,NUMmsg,INPUTmsg> ;an000;display messages | ||
| 185 | msg_services <EDLIN.CLA,EDLIN.CLB,EDLIN.CLC> ;an000;message types | ||
| 186 | msg_services <EDLIN.CL1,EDLIN.CL2> ;an000;message types | ||
| 187 | msg_services <EDLIN.CTL> ;an000; | ||
| 188 | |||
| 189 | .list | ||
| 190 | |||
| 191 | ;========================================================================= | ||
| 192 | ; printf: printf is a replacement of the printf procedure used in DOS | ||
| 193 | ; releases prior to 4.00. printf invokes the macro disp_message | ||
| 194 | ; to display a message through the new message handler. the | ||
| 195 | ; interface into printf will continue to be a pointer to a message | ||
| 196 | ; passed in DX. the pointer is pointing to more than a message | ||
| 197 | ; now. it is pointing to a table for that message containing | ||
| 198 | ; all relevant information for printing the message. the macro | ||
| 199 | ; disp_message operates on these tables. | ||
| 200 | ; | ||
| 201 | ; Date : 6/11/87 | ||
| 202 | ;========================================================================= | ||
| 203 | |||
| 204 | printf proc near ;an000;printf procedure | ||
| 205 | |||
| 206 | disp_message dx ;an000;display a message | ||
| 207 | ; $if c ;an000;if an error occurred | ||
| 208 | JNC $$IF1 | ||
| 209 | call disp_fatal ;an000;display the fatal error | ||
| 210 | ; $endif ;an000; | ||
| 211 | $$IF1: | ||
| 212 | |||
| 213 | ret ;an000;return to caller | ||
| 214 | |||
| 215 | printf endp ;an000;end printf proc | ||
| 216 | |||
| 217 | |||
| 218 | ;========================================================================= | ||
| 219 | ; disp_fatal: this routine displays a fatal error message in the event | ||
| 220 | ; an error occurred in disp_message. | ||
| 221 | ; | ||
| 222 | ; Date : 6/11/87 | ||
| 223 | ;========================================================================= | ||
| 224 | |||
| 225 | disp_fatal proc near ;an000;fatal error message | ||
| 226 | |||
| 227 | mov ax,fatal_error ;an000;fatal_error number | ||
| 228 | mov bx,stdout ;an000;print to console | ||
| 229 | mov cx,0 ;an000;no parameters | ||
| 230 | mov dl,no_input ;an000;no keyboard input | ||
| 231 | mov dh,UTILITY_MSG_CLASS ;an000;utility messages | ||
| 232 | |||
| 233 | call sysdispmsg ;an000;display fatal error | ||
| 234 | |||
| 235 | ret ;an000;return to caller | ||
| 236 | |||
| 237 | disp_fatal endp ;an000;end disp_fatal proc | ||
| 238 | |||
| 239 | ;========================================================================= | ||
| 240 | ; PRE_LOAD_MESSAGE : This routine provides access to the messages required | ||
| 241 | ; by EDLIN. This routine will report if the load was | ||
| 242 | ; successful. An unsuccessful load will cause EDLIN | ||
| 243 | ; to terminate with an appropriate error message. | ||
| 244 | ; | ||
| 245 | ; Date : 6/11/87 | ||
| 246 | ;========================================================================= | ||
| 247 | |||
| 248 | PRE_LOAD_MESSAGE proc near ;an000;pre-load messages | ||
| 249 | |||
| 250 | |||
| 251 | call SYSLOADMSG ;an000;invoke loader | ||
| 252 | |||
| 253 | ; $if c ;an000;if an error | ||
| 254 | JNC $$IF3 | ||
| 255 | pushf ;an000;save flags | ||
| 256 | call SYSDISPMSG ;an000;let him say why | ||
| 257 | popf ;an000;restore flags | ||
| 258 | ; $endif ;an000; | ||
| 259 | $$IF3: | ||
| 260 | |||
| 261 | ret ;an000;return to caller | ||
| 262 | |||
| 263 | PRE_LOAD_MESSAGE endp ;an000;end proc | ||
| 264 | |||
| 265 | include msgdcl.inc | ||
| 266 | |||
| 267 | code ends ;an000;end code segment | ||
| 268 | |||
| 269 | |||
| 270 | |||
| 271 | |||
| 272 | CONST SEGMENT PUBLIC BYTE | ||
| 273 | |||
| 274 | extrn arg_buf:byte ;an000; | ||
| 275 | extrn line_num:byte ;an000; | ||
| 276 | extrn line_flag:byte ;an000; | ||
| 277 | extrn Temp_Path:byte ;an000; | ||
| 278 | |||
| 279 | public baddrv_ptr,bad_vers_err,opt_err_ptr,nobak_ptr | ||
| 280 | public too_many_ptr,dskful_ptr,memful_ptr,badcom_ptr | ||
| 281 | public nodir_ptr,filenm_ptr,newfil_ptr,read_err_ptr | ||
| 282 | public nosuch_ptr,toolng_ptr,eof_ptr,dest_ptr | ||
| 283 | public mrgerr_ptr,ro_err_ptr,bcreat_ptr,ndname_ptr | ||
| 284 | public ask_ptr,qmes_ptr,crlf_ptr,lf_ptr,yes_byte | ||
| 285 | public prompt_ptr | ||
| 286 | public line_num_buf_ptr ;an000;DMS:6/15/87 | ||
| 287 | public arg_buf_ptr ;an000;DMS:6/15/87 | ||
| 288 | public cont_ptr ;an000;DMS:6/18/87 | ||
| 289 | public cp_err_ptr ;an000;DMS:6/22/87 | ||
| 290 | public Del_Bak_Ptr ;an000;dms; | ||
| 291 | |||
| 292 | yes_byte db "y" | ||
| 293 | |||
| 294 | ;============== REPLACEABLE PARAMETER SUBLIST STRUCTURE ================== | ||
| 295 | ; | ||
| 296 | ; byte 1 - substitution list size, always 11 | ||
| 297 | ; byte 2 - reserved for use by message handler | ||
| 298 | ; byte 3 - pointer to parameter to be used as a substitution | ||
| 299 | ; byte 7 - which parameter is this to replace, %1, %2, etc. | ||
| 300 | ; byte 8 - determines how the parameter is to be output | ||
| 301 | ; byte 9 - determines the maximum width of the parameter string | ||
| 302 | ; byte 10 - determines the minimum width of the parameter string | ||
| 303 | ; byte 11 - define what is to be used as a pad character | ||
| 304 | ; | ||
| 305 | ;========================================================================= | ||
| 306 | |||
| 307 | ;========================================================================= | ||
| 308 | ; replaceable parameter sublists | ||
| 309 | ;========================================================================= | ||
| 310 | |||
| 311 | ed_read_sub label dword ;an000;a read error occurred | ||
| 312 | |||
| 313 | db 11 ;an000;sublist size | ||
| 314 | db 00 ;an000;reserved | ||
| 315 | dd dg:path_name ;an000;pointer to parameter | ||
| 316 | db 01 ;an000;parm 1 | ||
| 317 | db Char_Field_ASCIIZ ;an000;left align/asciiz/char. | ||
| 318 | db unlim_width ;an000;unlimited width | ||
| 319 | db 00 ;an000;minimum width of 0 | ||
| 320 | db pad_blank ;an000;pad with blanks | ||
| 321 | |||
| 322 | arg_sub label dword ;an000;line output buffer | ||
| 323 | |||
| 324 | db 11 ;an000;sublist size | ||
| 325 | db 00 ;an000;reserved | ||
| 326 | dd dg:arg_buf ;an000;pointer to parameter | ||
| 327 | db 01 ;an000;parm 1 | ||
| 328 | db Char_Field_ASCIIZ ;an000;left align/asciiz/char. | ||
| 329 | db unlim_width ;an000;unlimited width | ||
| 330 | db 00 ;an000;minimum width of 0 | ||
| 331 | db pad_blank ;an000;pad with blank | ||
| 332 | |||
| 333 | num_sub label dword ;an000;line number | ||
| 334 | |||
| 335 | db 11 ;an000;sublist size | ||
| 336 | db 00 ;an000;reserved | ||
| 337 | dd dg:line_num ;an000;pointer to parameter | ||
| 338 | db 01 ;an000;parm 1 | ||
| 339 | db Right_Align+Unsgn_Bin_Word ;an000;right align/decimal | ||
| 340 | db 08 ;an000;maximum width | ||
| 341 | db 08 ;an000;minimum width of 0 | ||
| 342 | db pad_blank ;an000;pad with blank | ||
| 343 | |||
| 344 | db 11 ;an000;optional flag | ||
| 345 | db 00 ;an000;reserved | ||
| 346 | dd dg:line_flag ;an000;pointer to parameter | ||
| 347 | db 02 ;an000;parm 2 | ||
| 348 | db Char_Field_Char ;an000;character | ||
| 349 | db 01 ;an000;minimum width of 1 | ||
| 350 | db 01 ;an000;maximum width of 1 | ||
| 351 | db pad_blank ;an000;pad with blank | ||
| 352 | |||
| 353 | BAK_Sub label dword ;an000;line output buffer | ||
| 354 | |||
| 355 | db 11 ;an000;sublist size | ||
| 356 | db 00 ;an000;reserved | ||
| 357 | dd dg:Temp_Path ;an000;pointer to parameter | ||
| 358 | db 00 ;an000;parm 0 | ||
| 359 | db Char_Field_ASCIIZ ;an000;left align/asciiz/char. | ||
| 360 | db unlim_width ;an000;unlimited width | ||
| 361 | db 00 ;an000;minimum width of 0 | ||
| 362 | db pad_blank ;an000;pad with blank | ||
| 363 | |||
| 364 | |||
| 365 | ;========================================================================= | ||
| 366 | ; end replaceable parameter sublists | ||
| 367 | ;========================================================================= | ||
| 368 | |||
| 369 | ;======================= TABLE STRUCTURE ================================= | ||
| 370 | ; | ||
| 371 | ; bute 1-2 : message number of message to be displayed | ||
| 372 | ; byte 3 : message type to be used, i.e.;class 1, utility, etc. | ||
| 373 | ; byte 4-5 : display handle, i.e.; console, printer, etc. | ||
| 374 | ; byte 6-7 : pointer to substitution list, if any. | ||
| 375 | ; byte 8-9 : number of replaceable parameters, if any. | ||
| 376 | ; byte 10 : type of input from keyboard, if any. | ||
| 377 | ; byte 11-12: pointer to buffer for keyboard input, if any. | ||
| 378 | ; | ||
| 379 | ;========================================================================= | ||
| 380 | |||
| 381 | |||
| 382 | bad_vers_err label word ;an000;"Incorrect DOS version" | ||
| 383 | dw 0001 ;an000;message number | ||
| 384 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 385 | dw stdout ;an000;display handle | ||
| 386 | dw 00 ;an000;no sublist | ||
| 387 | dw 00 ;an000;no sub | ||
| 388 | db no_input ;an000;no keyboard input | ||
| 389 | dw 00 ;an000;no keyboard buffer | ||
| 390 | |||
| 391 | prompt_ptr label word ;an000;"*",0 | ||
| 392 | dw 0006 ;an000;message number | ||
| 393 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 394 | dw stdout ;an000;display handle | ||
| 395 | dw 00 ;an000;no sublist | ||
| 396 | dw 00 ;an000;no sub | ||
| 397 | db no_input ;an000;no keyboard input | ||
| 398 | dw 00 ;an000;no keyboard buffer | ||
| 399 | |||
| 400 | |||
| 401 | baddrv_ptr label word ;an000;"Invalid drive or file name" | ||
| 402 | ;an000;,0d,0a,0 | ||
| 403 | dw 0007 ;an000;message number | ||
| 404 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 405 | dw stdout ;an000;display handle | ||
| 406 | dw 00 ;an000;no sublist | ||
| 407 | dw 00 ;an000;no sub | ||
| 408 | db no_input ;an000;no keyboard input | ||
| 409 | dw 00 ;an000;no keyboard buffer | ||
| 410 | |||
| 411 | ndname_ptr label word ;an000;"File name must be | ||
| 412 | ;an000;specified",0d,0a,0 | ||
| 413 | dw 0008 ;an000;message number | ||
| 414 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 415 | dw stdout ;an000;display handle | ||
| 416 | dw 00 ;an000;no sublist | ||
| 417 | dw 00 ;an000;no sub | ||
| 418 | db no_input ;an000;no keyboard input | ||
| 419 | dw 00 ;an000;no keyboard buffer | ||
| 420 | |||
| 421 | opt_err_ptr label word ;an000;"Invalid parameter",0d,0a,0 | ||
| 422 | dw 0010 ;an000;message number | ||
| 423 | db Parse_Err_Class ;an000;utility message | ||
| 424 | dw StdErr ;an000;display handle | ||
| 425 | dw 00 ;an000;no sublist | ||
| 426 | dw 00 ;an000;no sub | ||
| 427 | db no_input ;an000;no keyboard input | ||
| 428 | dw 00 ;an000;no keyboard buffer | ||
| 429 | |||
| 430 | ro_err_ptr label word ;an000;"File is READ-ONLY",0d,0a,0 | ||
| 431 | dw 0010 ;an000;message number | ||
| 432 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 433 | dw stdout ;an000;display handle | ||
| 434 | dw 00 ;an000;no sublist | ||
| 435 | dw 00 ;an000;no sub | ||
| 436 | db no_input ;an000;no keyboard input | ||
| 437 | dw 00 ;an000;no keyboard buffer | ||
| 438 | |||
| 439 | bcreat_ptr label word ;an000;"File Creation Error",0d,0a,0 | ||
| 440 | dw 0011 ;an000;message number | ||
| 441 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 442 | dw stdout ;an000;display handle | ||
| 443 | dw 00 ;an000;no sublist | ||
| 444 | dw 00 ;an000;no sub | ||
| 445 | db no_input ;an000;no keyboard input | ||
| 446 | dw 00 ;an000;no keyboard buffer | ||
| 447 | |||
| 448 | too_many_ptr label word ;an000;"Too many files open",0d,0a,0 | ||
| 449 | dw 0012 ;an000;message number | ||
| 450 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 451 | dw stdout ;an000;display handle | ||
| 452 | dw 00 ;an000;no sublist | ||
| 453 | dw 00 ;an000;no sub | ||
| 454 | db no_input ;an000;no keyboard input | ||
| 455 | dw 00 ;an000;no keyboard buffer | ||
| 456 | |||
| 457 | read_err_ptr label word ;an000;"Read error in:", | ||
| 458 | ;an000;0d,0a,"%1",0d,0a,0 | ||
| 459 | dw 0013 ;an000;message number | ||
| 460 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 461 | dw stdout ;an000;display handle | ||
| 462 | dw dg:ed_read_sub ;an000;point to sublist | ||
| 463 | dw 0001 ;an000;1 sub | ||
| 464 | db no_input ;an000;no keyboard input | ||
| 465 | dw 00 ;an000;no keyboard buffer | ||
| 466 | |||
| 467 | |||
| 468 | nobak_ptr label word ;an000;"Cannot edit .BAK file | ||
| 469 | ;an000;--rename file",0d,0a,0 | ||
| 470 | dw 0014 ;an000;message number | ||
| 471 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 472 | dw stdout ;an000;display handle | ||
| 473 | dw 00 ;an000;no sublist | ||
| 474 | dw 00 ;an000;no sub | ||
| 475 | db no_input ;an000;no keyboard input | ||
| 476 | dw 00 ;an000;no keyboard buffer | ||
| 477 | |||
| 478 | nodir_ptr label word ;an000;"No room in directory | ||
| 479 | ;an000;for file",0d,0d,0 | ||
| 480 | dw 0015 ;an000;message number | ||
| 481 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 482 | dw stdout ;an000;display handle | ||
| 483 | dw 00 ;an000;no sublist | ||
| 484 | dw 00 ;an000;no sub | ||
| 485 | db no_input ;an000;no keyboard input | ||
| 486 | dw 00 ;an000;no keyboard buffer | ||
| 487 | |||
| 488 | dskful_ptr label word ;an000;"Disk full. Edits lost.",0d,0a,0 | ||
| 489 | dw 0016 ;an000;message number | ||
| 490 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 491 | dw stdout ;an000;display handle | ||
| 492 | dw 00 ;an000;no sublist | ||
| 493 | dw 00 ;an000;no sub | ||
| 494 | db no_input ;an000;no keyboard input | ||
| 495 | dw 00 ;an000;no keyboard buffer | ||
| 496 | |||
| 497 | memful_ptr label word ;an000;"Insufficient memory",0d,0a,0 | ||
| 498 | dw 0008 ;an000;message number | ||
| 499 | db Ext_Err_Class ;an000;extended error | ||
| 500 | dw stderr ;an000;display handle | ||
| 501 | dw 00 ;an000;no sublist | ||
| 502 | dw 00 ;an000;no sub | ||
| 503 | db no_input ;an000;no keyboard input | ||
| 504 | dw 00 ;an000;no keyboard buffer | ||
| 505 | |||
| 506 | filenm_ptr label word ;an000;"File not found",0d,0a | ||
| 507 | dw 0002 ;an000;message number | ||
| 508 | db Ext_Err_Class ;an000;utility message | ||
| 509 | dw stderr ;an000;display handle | ||
| 510 | dw 00 ;an000;no sublist | ||
| 511 | dw 00 ;an000;no sub | ||
| 512 | db no_input ;an000;no keyboard input | ||
| 513 | dw 00 ;an000;no keyboard buffer | ||
| 514 | |||
| 515 | badcom_ptr label word ;an000;"Entry error",0d,0a,0 | ||
| 516 | dw 0018 ;an000;message number | ||
| 517 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 518 | dw stdout ;an000;display handle | ||
| 519 | dw 00 ;an000;no sublist | ||
| 520 | dw 00 ;an000;no sub | ||
| 521 | db no_input ;an000;no keyboard input | ||
| 522 | dw 00 ;an000;no keyboard buffer | ||
| 523 | |||
| 524 | newfil_ptr label word ;an000;"New file",0d,0a,0 | ||
| 525 | dw 0019 ;an000;message number | ||
| 526 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 527 | dw stdout ;an000;display handle | ||
| 528 | dw 00 ;an000;no sublist | ||
| 529 | dw 00 ;an000;no sub | ||
| 530 | db no_input ;an000;no keyboard input | ||
| 531 | dw 00 ;an000;no keyboard buffer | ||
| 532 | |||
| 533 | nosuch_ptr label word ;an000;"Not found",0d,0a,0 | ||
| 534 | dw 0020 ;an000;message number | ||
| 535 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 536 | dw stdout ;an000;display handle | ||
| 537 | dw 00 ;an000;no sublist | ||
| 538 | dw 00 ;an000;no sub | ||
| 539 | db no_input ;an000;no keyboard input | ||
| 540 | dw 00 ;an000;no keyboard buffer | ||
| 541 | |||
| 542 | ask_ptr label word ;an000;"O.K.? ",0 | ||
| 543 | dw 0021 ;an000;message number | ||
| 544 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 545 | dw stdout ;an000;display handle | ||
| 546 | dw 00 ;an000;no sublist | ||
| 547 | dw 00 ;an000;no sub | ||
| 548 | db DOS_KEYB_INP ;an000;keyboard input - AX | ||
| 549 | dw 00 ;an000;no keyboard buffer | ||
| 550 | |||
| 551 | toolng_ptr label word ;an000;"Line too long",0d,0a,0 | ||
| 552 | dw 0022 ;an000;message number | ||
| 553 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 554 | dw stdout ;an000;display handle | ||
| 555 | dw 00 ;an000;no sublist | ||
| 556 | dw 00 ;an000;no sub | ||
| 557 | db no_input ;an000;no keyboard input | ||
| 558 | dw 00 ;an000;no keyboard buffer | ||
| 559 | |||
| 560 | eof_ptr label word ;an000;"End of input file",0d,0a,0 | ||
| 561 | dw 0023 ;an000;message number | ||
| 562 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 563 | dw stdout ;an000;display handle | ||
| 564 | dw 00 ;an000;no sublist | ||
| 565 | dw 00 ;an000;no sub | ||
| 566 | db no_input ;an000;no keyboard input | ||
| 567 | dw 00 ;an000;no keyboard buffer | ||
| 568 | |||
| 569 | qmes_ptr label word ;an000;"Abort edit (Y/N)? ",0 | ||
| 570 | dw 0024 ;an000;message number | ||
| 571 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 572 | dw stdout ;an000;display handle | ||
| 573 | dw 00 ;an000;no sublist | ||
| 574 | dw 00 ;an000;no sub | ||
| 575 | db DOS_KEYB_INP ;an000;keyboard input - AX | ||
| 576 | dw 00 ;an000;no keyboard buffer | ||
| 577 | |||
| 578 | dest_ptr label word ;an000;"Must specify destination | ||
| 579 | ;an000;line number",0d,0a,0 | ||
| 580 | dw 0025 ;an000;message number | ||
| 581 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 582 | dw stdout ;an000;display handle | ||
| 583 | dw 00 ;an000;no sublist | ||
| 584 | dw 00 ;an000;no sub | ||
| 585 | db no_input ;an000;no keyboard input | ||
| 586 | dw 00 ;an000;no keyboard buffer | ||
| 587 | |||
| 588 | mrgerr_ptr label word ;an000;"Not enough room to | ||
| 589 | ;an000;merge the entire file",0d,0a,0 | ||
| 590 | dw 0026 ;an000;message number | ||
| 591 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 592 | dw stdout ;an000;display handle | ||
| 593 | dw 00 ;an000;no sublist | ||
| 594 | dw 00 ;an000;no sub | ||
| 595 | db no_input ;an000;no keyboard input | ||
| 596 | dw 00 ;an000;no keyboard buffer | ||
| 597 | |||
| 598 | crlf_ptr label word ;an000;0d,0a,0 | ||
| 599 | dw 0027 ;an000;message number | ||
| 600 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 601 | dw stdout ;an000;display handle | ||
| 602 | dw 00 ;an000;no sublist | ||
| 603 | dw 00 ;an000;no sub | ||
| 604 | db no_input ;an000;no keyboard input | ||
| 605 | dw 00 ;an000;no keyboard buffer | ||
| 606 | |||
| 607 | lf_ptr label word ;an000;0a,0 | ||
| 608 | dw 0028 ;an000;message number | ||
| 609 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 610 | dw stdout ;an000;display handle | ||
| 611 | dw 00 ;an000;no sublist | ||
| 612 | dw 00 ;an000;no sub | ||
| 613 | db no_input ;an000;no keyboard input | ||
| 614 | dw 00 ;an000;no keyboard buffer | ||
| 615 | |||
| 616 | cont_ptr label word ;an000;"Continue (Y/N)?" | ||
| 617 | dw 0029 ;an000;message number | ||
| 618 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 619 | dw stdout ;an000;display handle | ||
| 620 | dw 00 ;an000;no sublist | ||
| 621 | dw 00 ;an000;no sub | ||
| 622 | db DOS_KEYB_INP ;an000;keyboard input | ||
| 623 | dw 00 ;an000;no keyboard buffer | ||
| 624 | |||
| 625 | arg_buf_ptr label word ;an000;argument buffer for | ||
| 626 | ; line output | ||
| 627 | dw 0031 ;an000;message number | ||
| 628 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 629 | dw stdout ;an000;display handle | ||
| 630 | dw dg:arg_sub ;an000;argument sublist | ||
| 631 | dw 01 ;an000;1 sub | ||
| 632 | db no_input ;an000;no keyboard input | ||
| 633 | dw 00 ;an000;no keyboard buffer | ||
| 634 | |||
| 635 | line_num_buf_ptr label word ;an000;holds line numbers | ||
| 636 | dw 0032 ;an000;message number | ||
| 637 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 638 | dw stdout ;an000;display handle | ||
| 639 | dw dg:num_sub ;an000;argument sublist | ||
| 640 | dw 02 ;an000;2 subs | ||
| 641 | db no_input ;an000;no keyboard input | ||
| 642 | dw 00 ;an000;no keyboard buffer | ||
| 643 | |||
| 644 | cp_err_ptr label word ;an000;"Cannot merge - Code page | ||
| 645 | ; mismatch",0d,0a | ||
| 646 | dw 0033 ;an000;message number | ||
| 647 | db UTILITY_MSG_CLASS ;an000;utility message | ||
| 648 | dw stdout ;an000;display handle | ||
| 649 | dw 00 ;an000;no sublist | ||
| 650 | dw 00 ;an000;no subs | ||
| 651 | db no_input ;an000;no keyboard input | ||
| 652 | dw 00 ;an000;no keyboard buffer | ||
| 653 | |||
| 654 | del_bak_ptr label word ;an000;"Access Denied - xxxxxxxx.BAK" | ||
| 655 | dw 0005 ;an000;message number | ||
| 656 | db Ext_Err_Class ;an000;utility message | ||
| 657 | dw stderr ;an000;display handle | ||
| 658 | dw dg:BAK_Sub ;an000;no sublist | ||
| 659 | dw 01 ;an000;no subs | ||
| 660 | db no_input ;an000;no keyboard input | ||
| 661 | dw 00 ;an000;no keyboard buffer | ||
| 662 | |||
| 663 | CONST ENDS | ||
| 664 | END | ||
| 665 | \ No newline at end of file | ||