]>
wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/DEBUG/DEBMES.ASM
2 TITLE DEBMES
.SAL - DEBUGGER MESSAGES PC DOS
4 %
OUT COMPONENT
=DEBUG
, MODULE
=DEBMES
7 ;******************* START OF SPECIFICATIONS *****************************
9 ; MODULE NAME:DEBMES.SAL
11 ; DESCRIPTIVE NAME: SUPPLIES APPLICABLE MESSAGES TO DEBUG.ASM
13 ; FUNCTION: THIS ROUTINE PROVIDES A MEANS BY WHICH MESSAGES MAY BE
14 ; OUTPUT FOR DEBUG. THIS IS HANDLED THROUGH THE MESSAGE
15 ; RETRIEVER FUNCTION SYSDISPMSG. TO
16 ; FACILITATE MIGRATION AWAY FROM THE PRINTF UTILITY
17 ; THE INTERFACE FOR INVOKING MESSAGES HAS REMAINED THE SAME.
18 ; THIS IS ACCOMPLISHED THROUGH THE USE OF MACROS AND TABLES.
19 ; EACH MESSAGE HAS A TABLE OF VALUES REQUIRED BY THE MESSAGE
20 ; RETRIEVER UTILITIES. THE MACROS OPERATE ON THESE TABLES
21 ; TO SUPPLY SYSDISPMSG WITH THE VALUES NECESSARY
26 ; INPUT: PRINTF IS INVOKED AS IT HAS ALWAYS BEEN INVOKED. DX MUST
27 ; POINT TO THE OFFSET OF A MESSAGE TABLE. THE TABLE POINTED TO
28 ; BY DX CONTAINS ALL THE NECESSARY INFORMATION FOR THAT MESSAGE
31 ; EXIT-NORMAL: NO CARRY
33 ; EXIT-ERROR: CARRY SET - EITHER MESSAGE NOT FOUND OR UNABLE TO BE DISPLAYED
35 ; INTERNAL REFERENCES:
37 ; ROUTINE:DISP_MESSAGE - THIS MACRO IS USED TO DIPLAY A MESSAGE
38 ; VIA SYSDISPMSG. IT TAKES AS INPUT A POINTER
39 ; IN DX. THIS POINTER POINTS TO A TABLE OF
40 ; VALUES FOR THE REQUESTED MESSAGE.
41 ; DISP_MESSAGE OBTAINS THE VALUES IT NEEDS TO
42 ; TO INVOKE SYSDISPMSG FROM THIS TABLE.
44 ; EXTERNAL REFERENCES:
46 ; ROUTINE: SYSMSG.INC - THIS ROUTINE IS SUPPLIED TO INTERFACE THE
47 ; MESSAGE RETRIEVER SERVICES.
49 ; NOTES: THIS MODULE SHOULD BE PROCESSED WITH THE SALUT PRE-PROCESSOR
51 ; LINK DEBUG+DEBCOM1+DEBCOM2+DEBCOM3+DEBASM+DEBUASM+DEBERR+DEBCONST+
56 ; AN000 VERSION DOS 4.0 - MESSAGE RETRIEVER IMPLEMENTED. DMS:6/17/87
59 ; COPYRIGHT: "MS DOS DEBUG Utility"
60 ; "Version 4.00 (C) Copyright 1988 Microsoft"
61 ; "Licensed Material - Property of Microsoft "
63 ;******************** END OF SPECIFICATIONS ******************************
66 include sysmsg
.inc ;an000;message retriever
70 msg_utilname
<DEBUG
> ;an000;DEBUG messages
72 ;=========================================================================
74 ;=========================================================================
76 fatal_error equ
45 ;fatal message handler error
77 unlim_width equ
00h ;unlimited output width
78 pad_blank equ 20h
;blank pad
79 pre_load equ
00h ;an000;normal pre-load
80 pad_zero equ 30h
;an000;zero pad
86 ;SYSVER EQU FALSE ;if true, i/o direct to bios
89 ;=========================================================================
90 ; macro disp_message: the macro takes the message obtained in get_message
91 ; and displays it to the applicable screen device.
92 ;=========================================================================
94 disp_message
macro tbl
;an000;display message macro
96 push si ;an000;save affected reg
103 push tbl
;an000;exchange tbl with si
106 mov ax,[si] ;an000;move message number to ax
107 mov bx,[si+3] ;an000;display handle
108 mov cx,[si+7] ;an000;number of subs
109 mov dl,[si+9] ;an000;function type
110 mov di,[si+10] ;an000;input buffer if appl.
111 mov dh,[si+2] ;an000;message type
112 mov si,[si+5] ;an000;sublist
114 call sysdispmsg
;an000;display the message
116 pop dx ;an000;restore affected reg
124 endm
;an000;end macro disp_message
126 ;=========================================================================
127 ; macro disp_message: end macro
128 ;=========================================================================
132 CODE SEGMENT PUBLIC BYTE
135 CONST
SEGMENT PUBLIC BYTE
141 DATA SEGMENT PUBLIC BYTE
145 DG GROUP
CODE,CONST
,CSTACK
,DATA
148 code segment public byte ;an000;code segment
149 assume
cs:dg
,ds:dg
,ss:dg
,es:dg
;an000;
151 public printf
;an000;share printf
152 ;; public disp_fatal ;an000;fatal error display
153 public pre_load_message
;an000;message pre load
157 msg_services
<MSGDATA
>
161 ;=========================================================================
162 ; include sysmsg.inc - message retriever services
174 ;=========================================================================
178 msg_services
<LOADmsg
> ;an000;load the messages
179 msg_services
<DISPLAYmsg
,CHARmsg
,NUMmsg
>;an000;get and display messages
180 msg_services
<INPUTmsg
> ;an000;input from keyboard
181 msg_services
<DEBUG
.CLA
,DEBUG
.CLB
> ;an000;message types
182 msg_services
<DEBUG
.CLC,DEBUG
.CLD> ;an000;
183 msg_services
<DEBUG
.CL1
,DEBUG
.CL2
> ;an000;
187 ;=========================================================================
188 ; printf: printf is a replacement of the printf procedure used in DOS
189 ; releases prior 4.00. printf invokes the macros get_message and
190 ; disp_message to invoke the new message handler. the interface
191 ; into printf will continue to be a pointer to a message passed
192 ; in DX. the pointer is pointing to more than a message now. it
193 ; is pointing to a table for that message containing all relevant
194 ; information for retieving and printing the message. the macros
195 ; get_message and disp_message operate on these tables.
196 ;=========================================================================
198 printf proc
near ;an000;printf procedure
200 disp_message
dx ;an000;display a message
201 ;; $if c ;an000;if an error occurred
202 ;; call disp_fatal ;an000;display the fatal error
205 ret ;an000;return to caller
207 printf endp
;an000;end printf
210 ;=========================================================================
211 ; disp_fatal: this routine displays a fatal error message in the event
212 ; an error occurred in disp_message.
213 ;=========================================================================
215 ;;disp_fatal proc near ;an000;fatal error message
217 ;; mov ax,fatal_error ;an000;fatal_error number
218 ;; mov bx,stdout ;an000;print to console
219 ;; mov cx,0 ;an000;no parameters
220 ;; mov dl,no_input ;an000;no input will be coming
221 ;; mov dh,UTILITY_MSG_CLASS ;an000;utility messages
222 ;; call sysdispmsg ;an000;dispaly fatal error
223 ;; ret ;an000;return to caller
225 ;;disp_fatal endp ;an000;end disp_fatal
228 ;=========================================================================
229 ; PRE_LOAD_MESSAGE : This routine provides access to the messages required
230 ; by DEBUG. This routine will report if the load was
231 ; successful. An unsuccessful load will cause DEBUG
232 ; to terminate with an appropriate error message.
235 ;=========================================================================
237 PRE_LOAD_MESSAGE proc
near ;an000;pre-load messages
239 call SYSLOADMSG
;an000;invoke loader
241 ; $if c ;an000;if an error
243 pushf ;an000;save flags
244 call SYSDISPMSG
;an000;let him say why
245 popf ;an000;restore flags
249 ret ;an000;return to caller
251 PRE_LOAD_MESSAGE endp
;an000;end proc
255 code ends
;an000;end code segment
258 CONST
SEGMENT PUBLIC BYTE
260 PUBLIC ENDMES_PTR
,CRLF_PTR
,NAMBAD_PTR
261 PUBLIC NOTFND_PTR
,NOROOM_PTR
,BADVER
262 PUBLIC NOSPACE_PTR
,DRVLET
263 PUBLIC ACCMES_PTR
,PROMPT_PTR
264 PUBLIC TOOBIG_PTR
,SYNERR_PTR
,BACMES_PTR
265 PUBLIC HEXERR_PTR
,HEXWRT_PTR
,WRTMES_PTR
,EXEBAD_PTR
,EXEWRT_PTR
266 PUBLIC EXECEMES_PTR
, PARITYMES_PTR
, NONAMESPEC_PTR
267 PUBLIC dr1_ptr
,dr2_ptr
,dr3_ptr
,dr4_ptr
;ac000;new messages
268 PUBLIC CHANGE_FLAG_PTR
,DF_ERROR
,BF_ERROR
,BR_ERROR
,BP_ERROR
271 ;======================= TABLE STRUCTURE =================================
273 ; byte 1 - message number of message to be displayed
274 ; byte 2 - message type to be used, i.e.;class 1, utility, etc.
275 ; byte 3 - display handle, i.e.; console, printer, etc.
276 ; byte 4 - pointer to substitution list, if any.
277 ; byte 6 - number of replaceable parameters, if any.
278 ; byte 7 - type of input from keyboard, if any.
279 ; byte 8 - pointer to buffer for keyboard input, if any.
281 ;=========================================================================
285 PUBLIC BADDEV_PTR
,BADLSTMES_PTR
288 baddev_ptr
label word ;an000;"Bad device name",0
289 dw 0006 ;an000;message number 6
290 db UTILITY_MSG_CLASS
;an000;utility message
291 dw stdout
;an000;display handle
294 db no_input
;an000;no keyboard input
295 dw 00 ;an000;no keyboard buffer
297 badlstmes_ptr
label word ;an000;"Couldn't open list device
298 ; PRN","Enter name of list
300 dw 0007 ;an000;message number 7
301 db UTILITY_MSG_CLASS
;an000;utility message
302 dw stdout
;an000;display handle
305 db DOS_KEYB_INP
;an000;keyboard input
306 dw 00 ;an000;no keyboard buffer
311 ;================= REPLACEABLE PARAMETER SUBLIST STRUCTURE ===============
313 ; byte 1 - substitution list size, always 11
314 ; byte 2 - reserved for use by message handler
315 ; byte 3 - pointer to parameter to be used as a substitution
316 ; byte 7 - which parameter is this to replace, %1, %2, etc.
317 ; byte 8 - determines how the parameter is to be output
318 ; byte 9 - determines the maximum width of the parameter string
319 ; byte 10 - determines the minimum width of the parameter string
320 ; byte 11 - define what is to be used as a pad character
322 ;=========================================================================
325 ;=========================================================================
326 ; replaceable parameter sublists
327 ;=========================================================================
329 db_synerr_sub
label dword ;an000;synerr parameters
330 db Sublist_Length
;an000;sublist size
331 db reserved
;an000;reserved
332 dd dg
:arg_buf
;an000;point to argument buffer
333 db 01 ;an000;parameter one
334 db left_align
+Char_field_ASCIIZ
335 ;an000;left align/ASCIIZ/character
336 db unlim_width
;an000;unlimited width
337 db 00 ;an000;minimum width
338 db pad_blank
;an000;blank pad
340 db_change_sub
label dword ;an000;synerr parameters
341 db Sublist_Length
;an000;sublist size
342 db reserved
;an000;reserved
343 dd dg
:arg_buf
;an000;point to argument buffer
344 db 01 ;an000;parameter one
345 db left_align
+Char_field_ASCIIZ
346 ;an000;left align/ASCIIZ/character
347 db unlim_width
;an000;unlimited width
348 db 00 ;an000;minimum width
349 db pad_blank
;an000;blank pad
351 db_drive_error
label dword ;an000;drive error parameters
352 db Sublist_Length
;an000;sublist size
353 db reserved
;an000;reserved
354 dd dg
:drvlet
;an000;point to drive letter
355 db 01 ;an000;parameter one
356 db left_align
+Char_field_ASCIIZ
357 ;an000;left align/ASCIIZ/character
360 db pad_blank
;an000;blank pad
364 ;=========================================================================
365 ; end replaceable parameter sublists
366 ;=========================================================================
369 crlf_ptr
label word ;an000;13,10,0
370 dw 0008 ;an000;message number
371 db UTILITY_MSG_CLASS
;an000;utility message
372 dw stdout
;an000;display handle
375 db no_input
;an000;no keyboard input
376 dw 00 ;an000;no keyboard buffer
379 bacmes_ptr
label word ;an000;32,8,0
380 dw 0044 ;an000;message number
381 db UTILITY_MSG_CLASS
;an000;utility message
382 dw stdout
;an000;display handle
385 db no_input
;an000;no keyboard input
386 dw 00 ;an000;no keyboard buffer
389 badver
label word ;an000;"Incorrect DOS version"
390 dw 0001 ;an000;message number
391 db UTILITY_MSG_CLASS
;an000;utility message
392 dw stdout
;an000;display handle
395 db no_input
;an000;no keyboard input
396 dw 00 ;an000;no keyboard buffer
398 endmes_ptr
label word ;an000;13,10,"Program terminated
400 dw 0009 ;an000;message number
401 db UTILITY_MSG_CLASS
;an000;utility message
402 dw stdout
;an000;display handle
405 db no_input
;an000;no keyboard input
406 dw 00 ;an000;no keyboard buffer
409 nambad_ptr
label word ;an000;"Invalid drive specification",0
410 dw 0010 ;an000;message number
411 db UTILITY_MSG_CLASS
;an000;utility message
412 dw stdout
;an000;display handle
415 db no_input
;an000;no keyboard input
416 dw 00 ;an000;no keyboard buffer
419 notfnd_ptr
label word ;an000;"File not found",0
420 dw 0002 ;an000;message number
421 db Ext_Err_Class
;an000;extended error
422 dw stderr
;an000;display handle
425 db no_input
;an000;no keyboard input
426 dw 00 ;an000;no keyboard buffer
429 noroom_ptr
label word ;an000;"File creation error",0
430 dw 0012 ;an000;message number
431 db UTILITY_MSG_CLASS
;an000;utility message
432 dw stdout
;an000;display handle
435 db no_input
;an000;no keyboard input
436 dw 00 ;an000;no keyboard buffer
439 nospace_ptr
label word ;an000;"Insufficient space on disk",0
440 dw 0013 ;an000;message number
441 db UTILITY_MSG_CLASS
;an000;utility message
442 dw stdout
;an000;display handle
445 db no_input
;an000;no keyboard input
446 dw 00 ;an000;no keyboard buffer
449 dr1_ptr
label word ;an000;"Disk error reading drive %1"
450 dw 0014 ;an000;message number
451 db UTILITY_MSG_CLASS
;an000;utility message
452 dw stdout
;an000;display handle
453 dw dg
:db_drive_error
;an000;sublist
455 db no_input
;an000;no keyboard input
456 dw 00 ;an000;no keyboard buffer
459 dr2_ptr
label word ;an000;"Disk error writing drive %1"
460 dw 0015 ;an000;message number
461 db UTILITY_MSG_CLASS
;an000;utility message
462 dw stdout
;an000;display handle
463 dw dg
:db_drive_error
;an000;sublist
465 db no_input
;an000;no keyboard input
466 dw 00 ;an000;no keyboard buffer
469 dr3_ptr
label word ;an000;"Write protect error reading
471 dw 0016 ;an000;message number
472 db UTILITY_MSG_CLASS
;an000;utility message
473 dw stdout
;an000;display handle
474 dw dg
:db_drive_error
;an000;sublist
476 db no_input
;an000;no keyboard input
477 dw 00 ;an000;no keyboard buffer
480 dr4_ptr
label word ;an000;"Write protect error writing
482 dw 0017 ;an000;message number
483 db UTILITY_MSG_CLASS
;an000;utility message
484 dw stdout
;an000;display handle
485 dw dg
:db_drive_error
;an000;sublist
487 db no_input
;an000;no keyboard input
488 dw 00 ;an000;no keyboard buffer
491 toobig_ptr
label word ;an000;"Insufficient memory",0
492 dw 0008 ;an000;message number
493 db Ext_Err_Class
;an000;utility message
494 dw stderr
;an000;display handle
497 db no_input
;an000;no keyboard input
498 dw 00 ;an000;no keyboard buffer
500 synerr_ptr
label word ;an000;"%1^Error",0
501 dw 0019 ;an000;message number
502 db UTILITY_MSG_CLASS
;an000;utility message
503 dw stdout
;an000;display handle
504 dw dg
:db_synerr_sub
;an000;sublist
505 dw 01 ;an000;1 sub - leading spaces
506 db no_input
;an000;no keyboard input
507 dw 00 ;an000;no keyboard buffer
510 hexerr_ptr
label word ;an000;"Error in EXE or HEX file",0
511 dw 0020 ;an000;message number
512 db UTILITY_MSG_CLASS
;an000;utility message
513 dw stdout
;an000;display handle
516 db no_input
;an000;no keyboard input
517 dw 00 ;an000;no keyboard buffer
519 exebad_ptr
label word ;an000;"Error in EXE or HEX file",0
520 dw 0020 ;an000;message number
521 db UTILITY_MSG_CLASS
;an000;utility message
522 dw stdout
;an000;display handle
525 db no_input
;an000;no keyboard input
526 dw 00 ;an000;no keyboard buffer
529 hexwrt_ptr
label word ;an000;"EXE and HEX files cannot be
531 dw 0021 ;an000;message number
532 db UTILITY_MSG_CLASS
;an000;utility message
533 dw stdout
;an000;display handle
536 db no_input
;an000;no keyboard input
537 dw 00 ;an000;no keyboard buffer
539 exewrt_ptr
label word ;an000;"EXE and HEX files cannot be
541 dw 0021 ;an000;message number
542 db UTILITY_MSG_CLASS
;an000;utility message
543 dw stdout
;an000;display handle
546 db no_input
;an000;no keyboard input
547 dw 00 ;an000;no keyboard buffer
550 execemes_ptr
label word ;an000;"EXEC failure",0
551 dw 0022 ;an000;message number
552 db UTILITY_MSG_CLASS
;an000;utility message
553 dw stdout
;an000;display handle
556 db no_input
;an000;no keyboard input
557 dw 00 ;an000;no keyboard buffer
560 nonamespec_ptr
label word ;an000;"(W)rite error, no destination
562 dw 0023 ;an000;message number
563 db UTILITY_MSG_CLASS
;an000;utility message
564 dw stdout
;an000;display handle
567 db no_input
;an000;no keyboard input
568 dw 00 ;an000;no keyboard buffer
570 accmes_ptr
label word ;an000;Access denied",0
571 dw 0024 ;an000;message number
572 db UTILITY_MSG_CLASS
;an000;utility message
573 dw stdout
;an000;display handle
576 db no_input
;an000;no keyboard input
577 dw 00 ;an000;no keyboard buffer
580 paritymes_ptr
label word ;an000;"Parity error or nonexistant
581 ; memory error detected",0
582 dw 0025 ;an000;message number
583 db UTILITY_MSG_CLASS
;an000;utility message
584 dw stdout
;an000;display handle
587 db no_input
;an000;no keyboard input
588 dw 00 ;an000;no keyboard buffer
591 prompt_ptr
label word ;an000;"-",0
592 dw 0026 ;an000;message number
593 db UTILITY_MSG_CLASS
;an000;utility message
594 dw stdout
;an000;display handle
597 db no_input
;an000;no keyboard input
598 dw 00 ;an000;no keyboard buffer
601 change_flag_ptr
label word ;an000;"%1 -",0
602 dw 0027 ;an000;message number
603 db UTILITY_MSG_CLASS
;an000;utility message
604 dw stdout
;an000;display handle
605 dw dg
:db_change_sub
;an000;sublist
607 db no_input
;an000;no keyboard input
608 dw 00 ;an000;no keyboard buffer
620 DATA SEGMENT PUBLIC BYTE
622 PUBLIC HEX_ARG1
,HEX_ARG2
,HEX_PTR
,ARG_BUF
623 PUBLIC ARG_BUF_PTR
,ADD_PTR
,ERR_TYPE
624 PUBLIC CRLF_PTR
,ADD_ARG
,SUB_ARG
,PROMPT_PTR
625 PUBLIC REGISTER_PTR
,REG_NAME
,REG_CONTENTS
626 PUBLIC SINGLE_REG_PTR
,SINGLE_REG_ARG
627 PUBLIC ERRMES_PTR
,LOC_PTR
,LOC_ADD
628 PUBLIC LITTLE_PTR
,BIG_PTR
,LITTLE_CONTENTS
629 PUBLIC BIG_CONTENTS
,COMP_PTR
,COMP_ARG1
,COMP_ARG2
630 PUBLIC COMP_ARG3
,COMP_ARG4
,COMP_ARG5
,COMP_ARG6
631 PUBLIC WRTMES_PTR
,WRT_ARG1
,WRT_ARG2
633 PUBLIC ONE_CHAR_BUF
,ONE_CHAR_BUF_PTR
634 PUBLIC OPBUF
,UNASSEM_LN_PTR
636 PUBLIC xm_han_ret_ptr
650 PUBLIC xm_err_gen_ptr
651 PUBLIC xm_parse_err_ptr
653 PUBLIC xm_page_seg_ptr
657 PUBLIC xm_han_alloc_ptr
659 EXTRN XM_HANDLE_RET
:word
662 EXTRN XM_PAGE_CNT
:word
664 EXTRN XM_DEALL_HAN
:word
665 EXTRN XM_ALLOC_PG
:word
666 EXTRN XM_TOTAL_PG
:word
667 EXTRN XM_HAN_ALLOC
:word
668 EXTRN XM_HAN_TOTAL
:word
670 ;=========================================================================
671 ; begin parameter sublists
672 ;=========================================================================
674 ;======================= unassemble parameter sublists ===================
676 db_unassem_sb1
label dword ;an000;unassemble parameter 1
677 db Sublist_Length
;an000;sublist size
678 db reserved
;an000;reserved
679 dd dg
:arg_buf
;an000;point to argument buffer
680 db 01 ;an000;parameter one
681 db left_align
+Char_field_ASCIIZ
682 ;an000;left align/ASCIIZ/character
683 db unlim_width
;an000;unlimited width
684 db 00 ;an000;minimum width
685 db pad_blank
;an000;blank pad
687 db_unassem_sb2
label dword ;an000;unassemble parameter 2
688 db Sublist_Length
;an000;sublist size
689 db reserved
;an000;reserved
690 dd dg
:opbuf
;an000;point to argument buffer
691 db 02 ;an000;parameter two
692 db left_align
+Char_field_ASCIIZ
693 ;an000;left align/ASCIIZ/character
694 db unlim_width
;an000;unlimited width
695 db 00 ;an000;minimum width
696 db pad_blank
;an000;blank pad
699 ;================== hex argument parameter sublists ======================
701 db_hexarg_sb1
label dword ;an000;hex argument parameter 1
702 db Sublist_Length
;an000;sublist size
703 db reserved
;an000;reserved
704 dd dg
:hex_arg1
;an000;point to argument buffer
705 db 01 ;an000;parameter one
706 db right_align
+bin_hex_word
707 ;an000;right align/word/hexadecimal
708 db 04 ;an000;maximum of 4 bytes
709 db 04 ;an000;minimum of 4 bytes
710 db pad_zero
;an000;blank pad
712 db_hexarg_sb2
label dword ;an000;hex argument parameter 2
713 db Sublist_Length
;an000;sublist size
714 db reserved
;an000;reserved
715 dd dg
:hex_arg2
;an000;point to argument buffer
716 db 02 ;an000;parameter two
717 db right_align
+bin_hex_word
718 ;an000;left align/word/hexadecimal
719 db 04 ;an000;maximum of 4 bytes
720 db 04 ;an000;minimum of 4 bytes
721 db pad_zero
;an000;blank pad
723 db_hexarg_sb3
label dword ;an000;hex argument parameter 3
724 db Sublist_Length
;an000;sublist size
725 db reserved
;an000;reserved
726 dd dg
:arg_buf
;an000;point to argument buffer
727 db 03 ;an000;parameter one
728 db left_align
+Char_field_ASCIIZ
729 ;an000;left align/ASCIIZ/character
730 db unlim_width
;an000;unlimited width
731 db 00 ;an000;minimum width
732 db pad_blank
;an000;blank pad
735 ;================== hex add parameter sublists ===========================
737 db_hexadd_sb1
label dword ;an000;hex add parameter 1
738 db Sublist_Length
;an000;sublist size
739 db reserved
;an000;reserved
740 dd dg
:add_arg
;an000;point to add_arg
741 db 01 ;an000;parameter one
742 db right_align
+bin_hex_word
743 ;an000;left align/word/hexadecimal
744 db 04 ;an000;maximum of 4 bytes
745 db 04 ;an000;minimum of 4 bytes
746 db pad_zero
;an000;blank pad
748 db_hexadd_sb2
label dword ;an000;hex argument parameter 1
749 db Sublist_Length
;an000;sublist size
750 db reserved
;an000;reserved
751 dd dg
:sub_arg
;an000;point to sub_arg
752 db 02 ;an000;parameter two
753 db right_align
+bin_hex_word
754 ;an000;left align/word/hexadecimal
755 db 04 ;an000;maximum of 4 bytes
756 db 04 ;an000;minimum of 4 bytes
757 db pad_zero
;an000;blank pad
759 ;================== end hex add parameter sublists =======================
761 ;================== single register parameter sublists ===================
762 ;string: "%1 %2",13,10,":",0
764 db_singrg_sb1
label dword ;an000;single register parameter 1
765 db Sublist_Length
;an000;sublist size
766 db reserved
;an000;reserved
767 dd dg
:arg_buf
;an000;point to argument buffer
768 db 01 ;an000;parameter one
769 db left_align
+Char_field_ASCIIZ
770 ;an000;left align/ASCIIZ/character
771 db unlim_width
;an000;unlimited width
772 db 00 ;an000;minimum of 0 bytes
773 db pad_blank
;an000;blank pad
775 db_singrg_sb2
label dword ;an000;single register parameter 2
776 db Sublist_Length
;an000;sublist size
777 db reserved
;an000;reserved
778 dd dg
:single_reg_arg
;an000;point single_reg_arg
779 db 02 ;an000;parameter two
780 db right_align
+bin_hex_word
781 ;an000;left align/word/hexadecimal
782 db 04 ;an000;maximum of 4 bytes
783 db 04 ;an000;minimum of 4 bytes
784 db pad_zero
;an000;blank pad
786 ;================== register parameter sublists ==========================
789 db_regist_sb1
label dword ;an000;register parameter 1
790 db Sublist_Length
;an000;sublist size
791 db reserved
;an000;reserved
792 dd dg
:reg_name
;an000;point to reg_name
793 db 01 ;an000;parameter one
794 db left_align
+Char_field_ASCIIZ
795 ;an000;left align/ASCIIZ/character
796 db 02 ;an000;unlimited width
797 db 02 ;an000;minimum of 0 bytes
798 db pad_blank
;an000;blank pad
800 db_regist_sb2
label dword ;an000;register parameter 2
801 db Sublist_Length
;an000;sublist size
802 db reserved
;an000;reserved
803 dd dg
:reg_contents
;an000;point to reg_contents
804 db 02 ;an000;parameter two
805 db right_align
+bin_hex_word
806 ;an000;left align/word/hexadecimal
807 db 04 ;an000;maximum of 4 bytes
808 db 04 ;an000;minimum of 4 bytes
809 db pad_zero
;an000;blank pad
811 ;================== error message parameter sublists =====================
812 ;string: "%1 Error",0
814 db_error_sb1
label dword ;an000;error message parameter 1
815 db Sublist_Length
;an000;sublist size
816 db reserved
;an000;reserved
817 dd dg
:err_type
;an000;point to argument buffer
818 db 01 ;an000;parameter one
819 db left_align
+Char_field_ASCIIZ
820 ;an000;left align/ASCIIZ/character
821 db unlim_width
;an000;unlimited width
822 db 00 ;an000;minimum of 0 bytes
823 db pad_blank
;an000;blank pad
825 ;================== writing message parameter sublists ===================
826 ;string: "Writing %1%2 bytes",0
828 db_wrtmes_sb1
label dword ;an000;wrtmes parameter 1
829 db Sublist_Length
;an000;sublist size
830 db reserved
;an000;reserved
831 dd dg
:wrt_arg1
;an000;point to argument buffer
832 db 01 ;an000;parameter one
833 db right_align
+bin_hex_word
834 ;an000;right align/word/hexadecimal
835 db 04 ;an000;maximum of 4 bytes
836 db 04 ;an000;minimum of 4 bytes
837 db pad_zero
;an000;blank pad
839 db_wrtmes_sb2
label dword ;an000;wrtmes parameter 2
840 db Sublist_Length
;an000;sublist size
841 db reserved
;an000;reserved
842 dd dg
:wrt_arg2
;an000;point to argument buffer
843 db 02 ;an000;parameter two
844 db left_align
+bin_hex_word
845 ;an000;left align/word/hexadecimal
846 db 04 ;an000;maximum of 4 bytes
847 db 04 ;an000;minimum of 4 bytes
848 db pad_zero
;an000;blank pad
850 ;================== loc address parameter sublists =======================
853 db_locadd_sb1
label dword ;an000;loc address parameter 1
854 db Sublist_Length
;an000;sublist size
855 db reserved
;an000;reserved
856 dd dg
:arg_buf
;an000;point to argument buffer
857 db 01 ;an000;parameter one
858 db right_align
+Char_field_ASCIIZ
859 ;an000;left align/ASCIZZ/character
860 db unlim_width
;an000;unlimited width
861 db 00 ;an000;minimum of 0 bytes
862 db pad_blank
;an000;blank pad
864 db_locadd_sb2
label dword ;an000;loc address parameter 2
865 db Sublist_Length
;an000;sublist size
866 db reserved
;an000;reserved
867 dd dg
:loc_add
;an000;point to loc_add
868 db 02 ;an000;parameter two
869 db right_align
+bin_hex_word
870 ;an000;left align/word/hexadecimal
871 db 04 ;an000;maximum of 4 bytes
872 db 04 ;an000;minimum of 4 bytes
873 db pad_zero
;an000;blank pad
875 ;================== little contents parameter sublists ===================
878 db_little_sb1
label dword ;an000;one byte output parameter 1
879 db Sublist_Length
;an000;sublist size
880 db reserved
;an000;reserved
881 dd dg
:little_contents
;an000;point to little_contents
882 db 01 ;an000;parameter one
883 db right_align
+bin_hex_byte
884 ;an000;left align/byte/hexadecimal
885 db 02 ;an000;maximum of 2 bytes
886 db 02 ;an000;minimum of 2 bytes
887 db pad_zero
;an000;blank pad
889 ;================== big argument parameter sublists ======================
892 db_big_sb1
label dword ;an000;word argument parameter 1
893 db Sublist_Length
;an000;sublist size
894 db reserved
;an000;reserved
895 dd dg
:big_contents
;an000;point to big_contents
896 db 01 ;an000;parameter one
897 db right_align
+bin_hex_word
898 ;an000;left align/word/hexadecimal
899 db 04 ;an000;maximum of 4 bytes
900 db 04 ;an000;minimum of 4 bytes
901 db pad_zero
;an000;blank pad
903 ;======================= comp argument parameter sublists ================
904 ;string "%1:%2 %3 %4 %5:%6",0
906 db_comp_sb1
label dword ;an000;comp argument parameter 1
907 db Sublist_Length
;an000;sublist size
908 db reserved
;an000;reserved
909 dd dg
:comp_arg1
;an000;point to comp_arg1
910 db 01 ;an000;parameter one
911 db right_align
+bin_hex_word
912 ;an000;left align/word/hexadecimal
913 db 04 ;an000;maximum of 4 bytes
914 db 04 ;an000;minimum of 4 bytes
915 db pad_zero
;an000;blank pad
917 db_comp_sb2
label dword ;an000;comp argument parameter 2
918 db Sublist_Length
;an000;sublist size
919 db reserved
;an000;reserved
920 dd dg
:comp_arg2
;an000;point to comp_arg2
921 db 02 ;an000;parameter two
922 db right_align
+bin_hex_word
923 ;an000;left align/word/hexadecimal
924 db 04 ;an000;maximum of 4 bytes
925 db 04 ;an000;minimum of 4 bytes
926 db pad_zero
;an000;blank pad
928 db_comp_sb3
label dword ;an000;comp argument parameter 3
929 db Sublist_Length
;an000;sublist size
930 db reserved
;an000;reserved
931 dd dg
:comp_arg3
;an000;point to comp_arg3
932 db 03 ;an000;parameter three
933 db right_align
+bin_hex_byte
934 ;an000;left align/byte/hexadecimal
935 db 02 ;an000;maximum of 2 bytes
936 db 02 ;an000;minimum of 2 bytes
937 db pad_zero
;an000;blank pad
939 db_comp_sb4
label dword ;an000;comp argument parameter 4
940 db Sublist_Length
;an000;sublist size
941 db reserved
;an000;reserved
942 dd dg
:comp_arg4
;an000;point to comp_arg4
943 db 04 ;an000;parameter four
944 db right_align
+bin_hex_byte
945 ;an000;left align/byte/hexadecimal
946 db 02 ;an000;maximum of 2 bytes
947 db 02 ;an000;minimum of 2 bytes
948 db pad_zero
;an000;blank pad
950 db_comp_sb5
label dword ;an000;comp argument parameter 5
951 db Sublist_Length
;an000;sublist size
952 db reserved
;an000;reserved
953 dd dg
:comp_arg5
;an000;point to comp_arg5
954 db 05 ;an000;parameter five
955 db right_align
+bin_hex_word
956 ;an000;left align/word/hexadecimal
957 db 04 ;an000;maximum of 4 bytes
958 db 04 ;an000;minimum of 4 bytes
959 db pad_zero
;an000;blank pad
961 db_comp_sb6
label dword ;an000;comp argument parameter 6
962 db Sublist_Length
;an000;sublist size
963 db reserved
;an000;reserved
964 dd dg
:comp_arg6
;an000;
965 db 06 ;an000;parameter 6
966 db right_align
+bin_hex_word
967 ;an000;left align/word/hexadecimal
968 db 04 ;an000;maximum of 4 bytes
969 db 04 ;an000;minimum of 4 bytes
970 db pad_zero
;an000;blank pad
972 ;======================= disk error parameter sublists ===================
973 ;string: "%1 error %2 drive %3",0
975 db_disk_sb1
label dword ;an000;disk argument parameter 1
976 db Sublist_Length
;an000;sublist size
977 db reserved
;an000;reserved
978 dd dg
:mestyp
;an000;point to mestyp
979 db 01 ;an000;parameter one
980 db left_align
+Char_field_ASCIIZ
981 ;an000;left align/ASCIIZ/character
982 db unlim_width
;an000;unlimited width
983 db 00 ;an000;minimum of 0 bytes
984 db pad_blank
;an000;blank pad
986 db_disk_sb2
label dword ;an000;disk argument parameter 2
987 db Sublist_Length
;an000;sublist size
988 db reserved
;an000;reserved
989 dd dg
:iotyp
;an000;point to iotyp
990 db 02 ;an000;parameter two
991 db left_align
+Char_field_ASCIIZ
992 ;an000;left align/ASCIIZ/character
993 db unlim_width
;an000;unlimited width
994 db 00 ;an000;minimum of 0 bytes
995 db pad_blank
;an000;blank pad
997 db_disk_sb3
label dword ;an000;disk argument parameter 3
998 db Sublist_Length
;an000;sublist size
999 db reserved
;an000;reserved
1000 dd dg
:drive
;an000;point to drive
1001 db 03 ;an000;parameter three
1002 db left_align
+char_field_char
1003 ;an000;left align/character/character
1004 db unlim_width
;an000;unlimited width
1005 db 00 ;an000;minimum of 0 bytes
1006 db pad_blank
;an000;blank pad
1008 arg_buf_sb1
label dword ;an000;argument sublist
1009 db Sublist_Length
;an000;sublist size
1010 db reserved
;an000;reserved
1011 dd dg
:arg_buf
;an000;point to argument buffer
1012 db 01 ;an000;parameter one
1013 db left_align
+Char_Field_ASCIIZ
1014 ;an000;left align/ASCIIZ/character
1015 db unlim_width
;an000;unlimited width
1016 db 00 ;an000;minimum of 0 bytes
1017 db pad_blank
;an000;blank pad
1019 one_char_sb1
label dword ;an000;character buffer sublist
1020 db Sublist_Length
;an000;sublist size
1021 db reserved
;an000;reserved
1022 dd dg
:one_char_buf
;an000;point to argument buffer
1023 db 01 ;an000;parameter one
1024 db left_align
+Char_Field_Char
1025 ;an000;left align/character/character
1026 db unlim_width
;an000;unlimited width
1027 db 00 ;an000;minimum of 0 bytes
1028 db pad_blank
;an000;blank pad
1030 xm_han_sub
label dword ;an000;sublist for handles
1031 db Sublist_Length
;an000;11 bytes
1032 db Reserved
;an000;reserved field
1033 dd dg
:XM_HANDLE_RET
;an000;parameter 1
1034 db 01 ;an000;parameter 1
1035 db right_align
+Bin_Hex_Word
;an000;
1036 db 04 ;an000;maximum width
1037 db 04 ;an000;minimum width
1038 db 30h
;an000;pad with zeros
1040 xm_map_sub
label dword ;an000;sublist for mappings
1041 db Sublist_Length
;an000;11 bytes
1042 db Reserved
;an000;reserved field
1043 dd dg
:XM_LOG
;an000;parameter 1
1044 db 01 ;an000;parameter 1
1045 db right_align
+Bin_Hex_Byte
;an000;
1046 db 02 ;an000;maximum width
1047 db 02 ;an000;minimum width
1048 db 30h
;an000;pad with zeros
1050 db Sublist_Length
;an000;11 bytes
1051 db Reserved
;an000;reserved field
1052 dd dg
:XM_PHY
;an000;parameter 2
1053 db 02 ;an000;parameter 2
1054 db right_align
+Bin_Hex_Byte
;an000;
1055 db 02 ;an000;maximum width
1056 db 02 ;an000;minimum width
1057 db 30h
;an000;pad with zeros
1059 xm_sta_sub
label word ;an000;sublist for status
1060 db Sublist_Length
;an000;11 bytes
1061 db Reserved
;an000;reserved field
1062 dd dg
:XM_HANDLE_RET
;an000;parameter 1
1063 db 01 ;an000;parameter 1
1064 db right_align
+Bin_Hex_Word
;an000;
1065 db 04 ;an000;maximum width
1066 db 04 ;an000;minimum width
1067 db 30h
;an000;pad with zeros
1069 db Sublist_Length
;an000;11 bytes
1070 db Reserved
;an000;reserved field
1071 dd dg
:XM_PAGE_CNT
;an000;parameter 2
1072 db 02 ;an000;parameter 2
1073 db right_align
+Bin_Hex_Word
;an000;
1074 db 04 ;an000;maximum width
1075 db 04 ;an000;minimum width
1076 db 30h
;an000;pad with zeros
1078 xm_page_seg_sub
label word ;an000;sublist for frame seg status
1079 db Sublist_Length
;an000;11 bytes
1080 db Reserved
;an000;reserved field
1081 dd dg
:XM_PHY
;an000;parameter 1
1082 db 01 ;an000;parameter 1
1083 db right_align
+Bin_Hex_Byte
;an000;
1084 db 02 ;an000;maximum width
1085 db 02 ;an000;minimum width
1086 db 30h
;an000;pad with zeros
1088 db Sublist_Length
;an000;11 bytes
1089 db Reserved
;an000;reserved field
1090 dd dg
:XM_FRAME
;an000;parameter 2
1091 db 02 ;an000;parameter 2
1092 db right_align
+Bin_Hex_Word
;an000;
1093 db 04 ;an000;maximum width
1094 db 04 ;an000;minimum width
1095 db 30h
;an000;pad with zeros
1097 xm_deall_sub
label word ;an000;sublist for handle deallocation
1098 db Sublist_Length
;an000;11 bytes
1099 db Reserved
;an000;reserved field
1100 dd dg
:XM_DEALL_HAN
;an000;parameter 1
1101 db 01 ;an000;parameter 1
1102 db right_align
+Bin_Hex_Byte
;an000;
1103 db 04 ;an000;maximum width
1104 db 04 ;an000;minimum width
1105 db 30h
;an000;pad with zeros
1107 xm_unall_sub
label word ;an000;sublist unallocated page report
1108 db Sublist_Length
;an000;11 bytes
1109 db Reserved
;an000;reserved field
1110 dd dg
:XM_ALLOC_PG
;an000;parameter 1
1111 db 01 ;an000;parameter 1
1112 db right_align
+Bin_Hex_Word
;an000;
1113 db 04 ;an000;maximum width
1114 db 04 ;an000;minimum width
1115 db 20h
;an000;pad with blanks
1117 db Sublist_Length
;an000;11 bytes
1118 db Reserved
;an000;reserved field
1119 dd dg
:XM_TOTAL_PG
;an000;parameter 1
1120 db 02 ;an000;parameter 1
1121 db right_align
+Bin_Hex_Word
;an000;
1122 db 04 ;an000;maximum width
1123 db 04 ;an000;minimum width
1124 db 20h
;an000;pad with zeros
1127 xm_han_alloc_sub
label word ;an000;sublist unallocated page report
1128 db Sublist_Length
;an000;11 bytes
1129 db Reserved
;an000;reserved field
1130 dd dg
:XM_HAN_ALLOC
;an000;parameter 1
1131 db 01 ;an000;parameter 1
1132 db right_align
+Bin_Hex_Word
;an000;
1133 db 04 ;an000;maximum width
1134 db 04 ;an000;minimum width
1135 db 20h
;an000;pad with blanks
1137 db Sublist_Length
;an000;11 bytes
1138 db Reserved
;an000;reserved field
1139 dd dg
:XM_HAN_TOTAL
;an000;parameter 1
1140 db 02 ;an000;parameter 1
1141 db right_align
+Bin_Hex_Word
;an000;
1142 db 04 ;an000;maximum width
1143 db 04 ;an000;minimum width
1144 db 20h
;an000;pad with zeros
1145 ;=========================================================================
1146 ; end parameter sublists
1147 ;=========================================================================
1150 unassem_ln_ptr
label word ;an000;"%1%2",0
1151 dw 0032 ;an000;message number
1152 db UTILITY_MSG_CLASS
;an000;utility message
1153 dw stdout
;an000;display handle
1154 dw dg
:db_unassem_sb1
;an000;sublist
1156 db no_input
;an000;no keyboard input
1157 dw 00 ;an000;no keyboard buffer
1160 hex_ptr
label word ;an000;"%1:%2 %3",0
1161 dw 0033 ;an000;message number
1162 db UTILITY_MSG_CLASS
;an000;utility message
1163 dw stdout
;an000;display handle
1164 dw dg
:db_hexarg_sb1
;an000;sublist
1166 db no_input
;an000;no keyboard input
1167 dw 00 ;an000;no keyboard buffer
1170 add_ptr
label word ;an000;"%1 %2",0
1171 dw 0034 ;an000;message number
1172 db UTILITY_MSG_CLASS
;an000;utility message
1173 dw stdout
;an000;display handle
1174 dw dg
:db_hexadd_sb1
;an000;sublist
1176 db no_input
;an000;no keyboard input
1177 dw 00 ;an000;no keyboard buffer
1181 single_reg_ptr
label word ;an000;"%1 %2",13,10,":",0
1182 dw 0035 ;an000;message number
1183 db UTILITY_MSG_CLASS
;an000;utility message
1184 dw stdout
;an000;display handle
1185 dw dg
:db_singrg_sb1
;an000;sublist
1187 db no_input
;an000;no keyboard input
1188 dw 00 ;an000;no keyboard buffer
1192 register_ptr
label word ;an000;"%1=%2 ",0 ex: AX=FFFF
1193 dw 0036 ;an000;message number
1194 db UTILITY_MSG_CLASS
;an000;utility message
1195 dw stdout
;an000;display handle
1196 dw dg
:db_regist_sb1
;an000;sublist
1198 db no_input
;an000;no keyboard input
1199 dw 00 ;an000;no keyboard buffer
1202 errmes_ptr
label word ;an000;"%1 Error",0
1203 dw 0037 ;an000;message number
1204 db UTILITY_MSG_CLASS
;an000;utility message
1205 dw stdout
;an000;display handle
1206 dw dg
:db_error_sb1
;an000;sublist
1208 db no_input
;an000;no keyboard input
1209 dw 00 ;an000;no keyboard buffer
1212 wrtmes_ptr
label word ;an000;"Writing %1 bytes",0
1213 dw 0038 ;an000;message number
1214 db UTILITY_MSG_CLASS
;an000;utility message
1215 dw stdout
;an000;display handle
1216 dw dg
:db_wrtmes_sb1
;an000;sublist
1218 db no_input
;an000;no keyboard input
1219 dw 00 ;an000;no keyboard buffer
1222 loc_ptr
label word ;an000:"%1;%2=",0 ex:CX:0000
1223 dw 0039 ;an000;message number
1224 db UTILITY_MSG_CLASS
;an000;utility message
1225 dw stdout
;an000;display handle
1226 dw dg
:db_locadd_sb1
;an000;sublist
1228 db no_input
;an000;no keyboard input
1229 dw 00 ;an000;no keyboard buffer
1232 little_ptr
label word ;an000;"%1",0 ex:FF
1233 dw 0040 ;an000;message number
1234 db UTILITY_MSG_CLASS
;an000;utility message
1235 dw stdout
;an000;display handle
1236 dw dg
:db_little_sb1
;an000;sublist
1238 db no_input
;an000;no keyboard input
1239 dw 00 ;an000;no keyboard buffer
1242 big_ptr
label word ;an000;"%1",0
1243 dw 0041 ;an000;message number
1244 db UTILITY_MSG_CLASS
;an000;utility message
1245 dw stdout
;an000;display handle
1246 dw dg
:db_big_sb1
;an000;sublist
1248 db no_input
;an000;no keyboard input
1249 dw 00 ;an000;no keyboard buffer
1252 comp_ptr
label word ;an000;"%1:%2 %3 %4 %5:%6",0
1253 dw 0042 ;an000;message number
1254 db UTILITY_MSG_CLASS
;an000;utility message
1255 dw stdout
;an000;display handle
1256 dw dg
:db_comp_sb1
;an000;sublist
1258 db no_input
;an000;no keyboard input
1259 dw 00 ;an000;no keyboard buffer
1262 arg_buf_ptr
label word ;an000;"%1"
1263 dw 0046 ;an000;message number
1264 db UTILITY_MSG_CLASS
;an000;utility messages
1265 dw stdout
;an000;display handle
1266 dw dg
:arg_buf_sb1
;an000;sublist
1268 db no_input
;an000;no keyboard input
1269 dw 00 ;an000;no keyboard buffer
1272 one_char_buf_ptr
label word ;an000;"%1"
1273 dw 0047 ;an000;message number
1274 db UTILITY_MSG_CLASS
;an000;utility messages
1275 dw stdout
;an000;display handle
1276 dw dg
:one_char_sb1
;an000;sublist
1278 db no_input
;an000;no keyboard input
1279 dw 00 ;an000;no keyboard buffer
1281 xm_unall_ptr
label word ;an000;unallocated message report
1282 dw 0050 ;an000;"%1 of a total %2 EMS pages
1283 ; have been allocated",cr,lf
1284 db UTILITY_MSG_CLASS
;an000;utility messages
1285 dw stdout
;an000;display handle
1286 dw dg
:XM_UNALL_SUB
;an000;sublist
1288 db no_input
;an000;no keyboard input
1289 dw 00 ;an000;no keyboard buffer
1291 xm_han_alloc_ptr
label word ;an000;unallocated message report
1292 dw 0051 ;an000;"%1 of a total %2 EMS handles
1293 ; have been allocated",cr,lf
1294 db UTILITY_MSG_CLASS
;an000;utility messages
1295 dw stdout
;an000;display handle
1296 dw dg
:XM_HAN_ALLOC_SUB
;an000;sublist
1298 db no_input
;an000;no keyboard input
1299 dw 00 ;an000;no keyboard buffer
1301 xm_han_ret_ptr
label word ;an000;prints handle created
1302 dw 0055 ;an000;message number
1303 db UTILITY_MSG_CLASS
;an000;utility messages
1304 dw stdout
;an000;display handle
1305 dw dg
:XM_HAN_SUB
;an000;sublist
1307 db no_input
;an000;no keyboard input
1308 dw 00 ;an000;no keyboard buffer
1310 xm_mapped_ptr
label word ;an000;prints log/phy pages
1311 dw 0056 ;an000;message number
1312 db UTILITY_MSG_CLASS
;an000;utility messages
1313 dw stdout
;an000;display handle
1314 dw dg
:XM_MAP_SUB
;an000;sublist
1316 db no_input
;an000;no keyboard input
1317 dw 00 ;an000;no keyboard buffer
1319 xm_err80_ptr
label word ;an000;ems error message
1320 dw 0057 ;an000;message number
1321 db UTILITY_MSG_CLASS
;an000;utility messages
1322 dw stdout
;an000;display handle
1323 dw 00 ;an000;sublist
1325 db no_input
;an000;no keyboard input
1326 dw 00 ;an000;no keyboard buffer
1328 xm_err83_ptr
label word ;an000;ems error message
1329 dw 0058 ;an000;message number
1330 db UTILITY_MSG_CLASS
;an000;utility messages
1331 dw stdout
;an000;display handle
1332 dw 00 ;an000;sublist
1334 db no_input
;an000;no keyboard input
1335 dw 00 ;an000;no keyboard buffer
1337 xm_err84_ptr
label word ;an000;ems error message
1338 dw 0059 ;an000;message number
1339 db UTILITY_MSG_CLASS
;an000;utility messages
1340 dw stdout
;an000;display handle
1341 dw 00 ;an000;sublist
1343 db no_input
;an000;no keyboard input
1344 dw 00 ;an000;no keyboard buffer
1346 xm_err85_ptr
label word ;an000;ems error message
1347 dw 0060 ;an000;message number
1348 db UTILITY_MSG_CLASS
;an000;utility messages
1349 dw stdout
;an000;display handle
1350 dw 00 ;an000;sublist
1352 db no_input
;an000;no keyboard input
1353 dw 00 ;an000;no keyboard buffer
1355 xm_err86_ptr
label word ;an000;ems error message
1356 dw 0061 ;an000;message number
1357 db UTILITY_MSG_CLASS
;an000;utility messages
1358 dw stdout
;an000;display handle
1359 dw 00 ;an000;sublist
1361 db no_input
;an000;no keyboard input
1362 dw 00 ;an000;no keyboard buffer
1364 xm_err87_ptr
label word ;an000;ems error message
1365 dw 0062 ;an000;message number
1366 db UTILITY_MSG_CLASS
;an000;utility messages
1367 dw stdout
;an000;display handle
1368 dw 00 ;an000;sublist
1370 db no_input
;an000;no keyboard input
1371 dw 00 ;an000;no keyboard buffer
1373 xm_err88_ptr
label word ;an000;ems error message
1374 dw 0063 ;an000;message number
1375 db UTILITY_MSG_CLASS
;an000;utility messages
1376 dw stdout
;an000;display handle
1377 dw 00 ;an000;sublist
1379 db no_input
;an000;no keyboard input
1380 dw 00 ;an000;no keyboard buffer
1382 xm_err89_ptr
label word ;an000;ems error message
1383 dw 0064 ;an000;message number
1384 db UTILITY_MSG_CLASS
;an000;utility messages
1385 dw stdout
;an000;display handle
1386 dw 00 ;an000;sublist
1388 db no_input
;an000;no keyboard input
1389 dw 00 ;an000;no keyboard buffer
1391 xm_err8a_ptr
label word ;an000;ems error message
1392 dw 0065 ;an000;message number
1393 db UTILITY_MSG_CLASS
;an000;utility messages
1394 dw stdout
;an000;display handle
1395 dw 00 ;an000;sublist
1397 db no_input
;an000;no keyboard input
1398 dw 00 ;an000;no keyboard buffer
1400 xm_err8b_ptr
label word ;an000;ems error message
1401 dw 0066 ;an000;message number
1402 db UTILITY_MSG_CLASS
;an000;utility messages
1403 dw stdout
;an000;display handle
1404 dw 00 ;an000;sublist
1406 db no_input
;an000;no keyboard input
1407 dw 00 ;an000;no keyboard buffer
1409 xm_err8d_ptr
label word ;an000;ems error message
1410 dw 0067 ;an000;message number
1411 db UTILITY_MSG_CLASS
;an000;utility messages
1412 dw stdout
;an000;display handle
1413 dw 00 ;an000;sublist
1415 db no_input
;an000;no keyboard input
1416 dw 00 ;an000;no keyboard buffer
1418 xm_err8e_ptr
label word ;an000;ems error message
1419 dw 0068 ;an000;message number
1420 db UTILITY_MSG_CLASS
;an000;utility messages
1421 dw stdout
;an000;display handle
1422 dw 00 ;an000;sublist
1424 db no_input
;an000;no keyboard input
1425 dw 00 ;an000;no keyboard buffer
1427 xm_err_gen_ptr
label word ;an000;ems error message
1428 dw 0070 ;an000;message number
1429 db UTILITY_MSG_CLASS
;an000;utility messages
1430 dw stdout
;an000;display handle
1431 dw 00 ;an000;sublist
1433 db no_input
;an000;no keyboard input
1434 dw 00 ;an000;no keyboard buffer
1436 xm_parse_err_ptr
label word ;an000;input error message
1437 dw 0071 ;an000;message number
1438 db UTILITY_MSG_CLASS
;an000;utility messages
1439 dw stdout
;an000;display handle
1440 dw 00 ;an000;sublist
1442 db no_input
;an000;no keyboard input
1443 dw 00 ;an000;no keyboard buffer
1445 xm_status_ptr
label word ;an000;prints status of EMS
1446 dw 0072 ;an000;message number
1447 db UTILITY_MSG_CLASS
;an000;utility messages
1448 dw stdout
;an000;display handle
1449 dw dg
:XM_STA_SUB
;an000;sublist
1451 db no_input
;an000;no keyboard input
1452 dw 00 ;an000;no keyboard buffer
1454 xm_page_seg_ptr
label word ;an000;"Physical page %1 = Frame
1456 dw 0075 ;an000;message number
1457 db UTILITY_MSG_CLASS
;an000;utility messages
1458 dw stdout
;an000;display handle
1459 dw dg
:XM_PAGE_SEG_SUB
;an000;sublist
1461 db no_input
;an000;no keyboard input
1462 dw 00 ;an000;no keyboard buffer
1464 xm_deall_ptr
label word ;an000;"Handle %1 deallocated"
1466 dw 0076 ;an000;message number
1467 db UTILITY_MSG_CLASS
;an000;utility messages
1468 dw stdout
;an000;display handle
1469 dw dg
:XM_DEALL_SUB
;an000;sublist
1471 db no_input
;an000;no keyboard input
1472 dw 00 ;an000;no keyboard buffer
1474 xm_errff_ptr
label word ;an000;"EMS not installed"
1476 dw 0078 ;an000;message number
1477 db UTILITY_MSG_CLASS
;an000;utility messages
1478 dw stdout
;an000;display handle
1479 dw 00 ;an000;sublist
1481 db no_input
;an000;no keyboard input
1482 dw 00 ;an000;no keyboard buffer
1484 arg_buf db 80 dup (?
) ;an000;argument buffer
1485 one_char_buf db ?
;an000;character buffer
1487 opbuf db 51h
dup (?
)
1500 err_type db 3 dup(0) ;ac000;changed to hold bf,bp,etc.
1507 little_contents dw ?