summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/DEBUG/DEBMES.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/DEBUG/DEBMES.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/CMD/DEBUG/DEBMES.ASM')
-rw-r--r--v4.0/src/CMD/DEBUG/DEBMES.ASM1524
1 files changed, 1524 insertions, 0 deletions
diff --git a/v4.0/src/CMD/DEBUG/DEBMES.ASM b/v4.0/src/CMD/DEBUG/DEBMES.ASM
new file mode 100644
index 0000000..23f0e0d
--- /dev/null
+++ b/v4.0/src/CMD/DEBUG/DEBMES.ASM
@@ -0,0 +1,1524 @@
1PAGE 60,132 ;
2 TITLE DEBMES.SAL - DEBUGGER MESSAGES PC DOS
3 IF1
4 %OUT COMPONENT=DEBUG, MODULE=DEBMES
5 ENDIF
6
7;******************* START OF SPECIFICATIONS *****************************
8;
9; MODULE NAME:DEBMES.SAL
10;
11; DESCRIPTIVE NAME: SUPPLIES APPLICABLE MESSAGES TO DEBUG.ASM
12;
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
22; TO PRINT A MESSAGE.
23;
24; ENTRY POINT: PRINTF
25;
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
29; TO BE PRINTED.
30;
31; EXIT-NORMAL: NO CARRY
32;
33; EXIT-ERROR: CARRY SET - EITHER MESSAGE NOT FOUND OR UNABLE TO BE DISPLAYED
34;
35; INTERNAL REFERENCES:
36;
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.
43;
44; EXTERNAL REFERENCES:
45;
46; ROUTINE: SYSMSG.INC - THIS ROUTINE IS SUPPLIED TO INTERFACE THE
47; MESSAGE RETRIEVER SERVICES.
48;
49; NOTES: THIS MODULE SHOULD BE PROCESSED WITH THE SALUT PRE-PROCESSOR
50; WITH OPTIONS "PR".
51; LINK DEBUG+DEBCOM1+DEBCOM2+DEBCOM3+DEBASM+DEBUASM+DEBERR+DEBCONST+
52; DEBDATA+DEBMES
53;
54; REVISION HISTORY:
55;
56; AN000 VERSION DOS 4.0 - MESSAGE RETRIEVER IMPLEMENTED. DMS:6/17/87
57;
58;
59; COPYRIGHT: "MS DOS DEBUG Utility"
60; "Version 4.00 (C) Copyright 1988 Microsoft"
61; "Licensed Material - Property of Microsoft "
62;
63;******************** END OF SPECIFICATIONS ******************************
64.xlist
65
66 include sysmsg.inc ;an000;message retriever
67
68.list
69
70msg_utilname <DEBUG> ;an000;DEBUG messages
71
72;=========================================================================
73;revised debmes.asm
74;=========================================================================
75
76fatal_error equ 45 ;fatal message handler error
77unlim_width equ 00h ;unlimited output width
78pad_blank equ 20h ;blank pad
79pre_load equ 00h ;an000;normal pre-load
80pad_zero equ 30h ;an000;zero pad
81
82
83FALSE EQU 0
84TRUE EQU NOT FALSE
85
86;SYSVER EQU FALSE ;if true, i/o direct to bios
87 INCLUDE SYSVER.INC
88
89;=========================================================================
90; macro disp_message: the macro takes the message obtained in get_message
91; and displays it to the applicable screen device.
92;=========================================================================
93
94disp_message macro tbl ;an000;display message macro
95
96 push si ;an000;save affected reg
97 push di ;an000;
98 push ax ;an000;
99 push bx ;an000;
100 push cx ;an000;
101 push dx ;an000;
102
103 push tbl ;an000;exchange tbl with si
104 pop si ;an000;
105
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
113
114 call sysdispmsg ;an000;display the message
115
116 pop dx ;an000;restore affected reg
117 pop cx ;an000;
118 pop bx ;an000;
119 pop ax ;an000;
120 pop di ;an000;
121 pop si ;an000;
122
123
124endm ;an000;end macro disp_message
125
126;=========================================================================
127; macro disp_message: end macro
128;=========================================================================
129
130
131
132CODE SEGMENT PUBLIC BYTE
133CODE ENDS
134
135CONST SEGMENT PUBLIC BYTE
136CONST ENDS
137
138CSTACK SEGMENT STACK
139CSTACK ENDS
140
141DATA SEGMENT PUBLIC BYTE
142
143DATA ENDS
144
145DG GROUP CODE,CONST,CSTACK,DATA
146
147
148code segment public byte ;an000;code segment
149 assume cs:dg,ds:dg,ss:dg,es:dg ;an000;
150
151 public printf ;an000;share printf
152;; public disp_fatal ;an000;fatal error display
153 public pre_load_message ;an000;message pre load
154
155.xlist
156
157msg_services <MSGDATA>
158
159.list
160
161;=========================================================================
162; include sysmsg.inc - message retriever services
163;options selected:
164; NEARmsg
165; DISPLAYmsg
166; LOADmsg
167; INPUTmsg
168; CHARmsg
169; NUMmsg
170; CLSAmsg
171; CLSBmsg
172; CLSCmsg
173; CLSDmsg
174;=========================================================================
175
176.xlist
177
178msg_services <LOADmsg> ;an000;load the messages
179msg_services <DISPLAYmsg,CHARmsg,NUMmsg>;an000;get and display messages
180msg_services <INPUTmsg> ;an000;input from keyboard
181msg_services <DEBUG.CLA,DEBUG.CLB> ;an000;message types
182msg_services <DEBUG.CLC,DEBUG.CLD> ;an000;
183msg_services <DEBUG.CL1,DEBUG.CL2> ;an000;
184
185.list
186
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;=========================================================================
197
198printf proc near ;an000;printf procedure
199
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
203;; $endif ;an000;
204
205 ret ;an000;return to caller
206
207printf endp ;an000;end printf
208
209
210;=========================================================================
211; disp_fatal: this routine displays a fatal error message in the event
212; an error occurred in disp_message.
213;=========================================================================
214
215;;disp_fatal proc near ;an000;fatal error message
216;;
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
224;;
225;;disp_fatal endp ;an000;end disp_fatal
226
227
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.
233;
234; Date : 6/15/87
235;=========================================================================
236
237PRE_LOAD_MESSAGE proc near ;an000;pre-load messages
238
239 call SYSLOADMSG ;an000;invoke loader
240
241; $if c ;an000;if an error
242 JNC $$IF1
243 pushf ;an000;save flags
244 call SYSDISPMSG ;an000;let him say why
245 popf ;an000;restore flags
246; $endif ;an000;
247$$IF1:
248
249 ret ;an000;return to caller
250
251PRE_LOAD_MESSAGE endp ;an000;end proc
252
253include msgdcl.inc
254
255code ends ;an000;end code segment
256
257
258CONST SEGMENT PUBLIC BYTE
259
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
269 PUBLIC CONSTEND
270
271;======================= TABLE STRUCTURE =================================
272;
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.
280;
281;=========================================================================
282
283 IF SYSVER
284
285 PUBLIC BADDEV_PTR,BADLSTMES_PTR
286
287
288baddev_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
292 dw 00 ;an000;sublist
293 dw 00 ;an000;no subs
294 db no_input ;an000;no keyboard input
295 dw 00 ;an000;no keyboard buffer
296
297badlstmes_ptr label word ;an000;"Couldn't open list device
298 ; PRN","Enter name of list
299 ; device?"
300 dw 0007 ;an000;message number 7
301 db UTILITY_MSG_CLASS ;an000;utility message
302 dw stdout ;an000;display handle
303 dw 00 ;an000;sublist
304 dw 00 ;an000;no subs
305 db DOS_KEYB_INP ;an000;keyboard input
306 dw 00 ;an000;no keyboard buffer
307
308
309 ENDIF
310
311;================= REPLACEABLE PARAMETER SUBLIST STRUCTURE ===============
312;
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
321;
322;=========================================================================
323
324
325;=========================================================================
326; replaceable parameter sublists
327;=========================================================================
328
329db_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
339
340db_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
350
351db_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
358 db 01 ;an000;1 byte
359 db 01 ;an000;1 byte
360 db pad_blank ;an000;blank pad
361
362
363
364;=========================================================================
365; end replaceable parameter sublists
366;=========================================================================
367
368
369crlf_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
373 dw 00 ;an000;sublist
374 dw 00 ;an000;no subs
375 db no_input ;an000;no keyboard input
376 dw 00 ;an000;no keyboard buffer
377
378
379bacmes_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
383 dw 00 ;an000;sublist
384 dw 00 ;an000;no subs
385 db no_input ;an000;no keyboard input
386 dw 00 ;an000;no keyboard buffer
387
388
389badver 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
393 dw 00 ;an000;sublist
394 dw 00 ;an000;no subs
395 db no_input ;an000;no keyboard input
396 dw 00 ;an000;no keyboard buffer
397
398endmes_ptr label word ;an000;13,10,"Program terminated
399 ; normally",0
400 dw 0009 ;an000;message number
401 db UTILITY_MSG_CLASS ;an000;utility message
402 dw stdout ;an000;display handle
403 dw 00 ;an000;sublist
404 dw 00 ;an000;no subs
405 db no_input ;an000;no keyboard input
406 dw 00 ;an000;no keyboard buffer
407
408
409nambad_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
413 dw 00 ;an000;sublist
414 dw 00 ;an000;no subs
415 db no_input ;an000;no keyboard input
416 dw 00 ;an000;no keyboard buffer
417
418
419notfnd_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
423 dw 00 ;an000;sublist
424 dw 00 ;an000;no subs
425 db no_input ;an000;no keyboard input
426 dw 00 ;an000;no keyboard buffer
427
428
429noroom_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
433 dw 00 ;an000;sublist
434 dw 00 ;an000;no subs
435 db no_input ;an000;no keyboard input
436 dw 00 ;an000;no keyboard buffer
437
438
439nospace_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
443 dw 00 ;an000;sublist
444 dw 00 ;an000;no subs
445 db no_input ;an000;no keyboard input
446 dw 00 ;an000;no keyboard buffer
447
448
449dr1_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
454 dw 01 ;an000;no subs
455 db no_input ;an000;no keyboard input
456 dw 00 ;an000;no keyboard buffer
457
458
459dr2_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
464 dw 01 ;an000;no subs
465 db no_input ;an000;no keyboard input
466 dw 00 ;an000;no keyboard buffer
467
468
469dr3_ptr label word ;an000;"Write protect error reading
470 ; drive %1"
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
475 dw 01 ;an000;no subs
476 db no_input ;an000;no keyboard input
477 dw 00 ;an000;no keyboard buffer
478
479
480dr4_ptr label word ;an000;"Write protect error writing
481 ; drive %1"
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
486 dw 01 ;an000;no subs
487 db no_input ;an000;no keyboard input
488 dw 00 ;an000;no keyboard buffer
489
490
491toobig_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
495 dw 00 ;an000;sublist
496 dw 00 ;an000;no subs
497 db no_input ;an000;no keyboard input
498 dw 00 ;an000;no keyboard buffer
499
500synerr_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
508
509
510hexerr_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
514 dw 00 ;an000;sublist
515 dw 00 ;an000;no subs
516 db no_input ;an000;no keyboard input
517 dw 00 ;an000;no keyboard buffer
518
519exebad_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
523 dw 00 ;an000;sublist
524 dw 00 ;an000;no subs
525 db no_input ;an000;no keyboard input
526 dw 00 ;an000;no keyboard buffer
527
528
529hexwrt_ptr label word ;an000;"EXE and HEX files cannot be
530 ; written",0
531 dw 0021 ;an000;message number
532 db UTILITY_MSG_CLASS ;an000;utility message
533 dw stdout ;an000;display handle
534 dw 00 ;an000;sublist
535 dw 00 ;an000;no subs
536 db no_input ;an000;no keyboard input
537 dw 00 ;an000;no keyboard buffer
538
539exewrt_ptr label word ;an000;"EXE and HEX files cannot be
540 ; written",0
541 dw 0021 ;an000;message number
542 db UTILITY_MSG_CLASS ;an000;utility message
543 dw stdout ;an000;display handle
544 dw 00 ;an000;sublist
545 dw 00 ;an000;no subs
546 db no_input ;an000;no keyboard input
547 dw 00 ;an000;no keyboard buffer
548
549
550execemes_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
554 dw 00 ;an000;sublist
555 dw 00 ;an000;no subs
556 db no_input ;an000;no keyboard input
557 dw 00 ;an000;no keyboard buffer
558
559
560nonamespec_ptr label word ;an000;"(W)rite error, no destination
561 ; defined",0
562 dw 0023 ;an000;message number
563 db UTILITY_MSG_CLASS ;an000;utility message
564 dw stdout ;an000;display handle
565 dw 00 ;an000;sublist
566 dw 00 ;an000;no subs
567 db no_input ;an000;no keyboard input
568 dw 00 ;an000;no keyboard buffer
569
570accmes_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
574 dw 00 ;an000;sublist
575 dw 00 ;an000;no subs
576 db no_input ;an000;no keyboard input
577 dw 00 ;an000;no keyboard buffer
578
579
580paritymes_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
585 dw 00 ;an000;sublist
586 dw 00 ;an000;no subs
587 db no_input ;an000;no keyboard input
588 dw 00 ;an000;no keyboard buffer
589
590
591prompt_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
595 dw 00 ;an000;sublist
596 dw 00 ;an000;no subs
597 db no_input ;an000;no keyboard input
598 dw 00 ;an000;no keyboard buffer
599
600
601change_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
606 dw 01 ;an000;no subs
607 db no_input ;an000;no keyboard input
608 dw 00 ;an000;no keyboard buffer
609
610df_error db "df",0
611bf_error db "bf",0
612br_error db "br",0
613bp_error db "bp",0
614drvlet db "A",0
615
616CONSTEND LABEL BYTE
617
618CONST ENDS
619
620DATA SEGMENT PUBLIC BYTE
621
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
632 PUBLIC IOTYP,MESTYP
633 PUBLIC ONE_CHAR_BUF,ONE_CHAR_BUF_PTR
634 PUBLIC OPBUF,UNASSEM_LN_PTR
635
636 PUBLIC xm_han_ret_ptr
637 PUBLIC xm_mapped_ptr
638 PUBLIC xm_err80_ptr
639 PUBLIC xm_err83_ptr
640 PUBLIC xm_err84_ptr
641 PUBLIC xm_err85_ptr
642 PUBLIC xm_err86_ptr
643 PUBLIC xm_err87_ptr
644 PUBLIC xm_err88_ptr
645 PUBLIC xm_err89_ptr
646 PUBLIC xm_err8a_ptr
647 PUBLIC xm_err8b_ptr
648 PUBLIC xm_err8d_ptr
649 PUBLIC xm_err8e_ptr
650 PUBLIC xm_err_gen_ptr
651 PUBLIC xm_parse_err_ptr
652 PUBLIC xm_status_ptr
653 PUBLIC xm_page_seg_ptr
654 PUBLIC xm_deall_ptr
655 PUBLIC xm_errff_ptr
656 PUBLIC xm_unall_ptr
657 PUBLIC xm_han_alloc_ptr
658
659 EXTRN XM_HANDLE_RET:word
660 EXTRN XM_LOG:byte
661 EXTRN XM_PHY:byte
662 EXTRN XM_PAGE_CNT:word
663 EXTRN XM_FRAME: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
669
670;=========================================================================
671; begin parameter sublists
672;=========================================================================
673
674;======================= unassemble parameter sublists ===================
675
676db_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
686
687db_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
697
698
699;================== hex argument parameter sublists ======================
700
701db_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
711
712db_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
722
723db_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
733
734
735;================== hex add parameter sublists ===========================
736
737db_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
747
748db_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
758
759;================== end hex add parameter sublists =======================
760
761;================== single register parameter sublists ===================
762;string: "%1 %2",13,10,":",0
763
764db_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
774
775db_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
785
786;================== register parameter sublists ==========================
787;string: "%1=%2 ",0
788
789db_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
799
800db_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
810
811;================== error message parameter sublists =====================
812;string: "%1 Error",0
813
814db_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
824
825;================== writing message parameter sublists ===================
826;string: "Writing %1%2 bytes",0
827
828db_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
838
839db_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
849
850;================== loc address parameter sublists =======================
851;string: "%1:%2=",0
852
853db_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
863
864db_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
874
875;================== little contents parameter sublists ===================
876;string "%1",0
877
878db_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
888
889;================== big argument parameter sublists ======================
890;string: "%1",0
891
892db_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
902
903;======================= comp argument parameter sublists ================
904;string "%1:%2 %3 %4 %5:%6",0
905
906db_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
916
917db_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
927
928db_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
938
939db_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
949
950db_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
960
961db_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
971
972;======================= disk error parameter sublists ===================
973;string: "%1 error %2 drive %3",0
974
975db_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
985
986db_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
996
997db_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
1007
1008arg_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
1018
1019one_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
1029
1030xm_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
1039
1040xm_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
1049
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
1058
1059xm_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
1068
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
1077
1078xm_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
1087
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
1096
1097xm_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
1106
1107xm_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
1116
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
1125
1126
1127xm_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
1136
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;=========================================================================
1148
1149
1150unassem_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
1155 dw 02 ;an000;2 subs
1156 db no_input ;an000;no keyboard input
1157 dw 00 ;an000;no keyboard buffer
1158
1159
1160hex_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
1165 dw 03 ;an000;3 subs
1166 db no_input ;an000;no keyboard input
1167 dw 00 ;an000;no keyboard buffer
1168
1169
1170add_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
1175 dw 02 ;an000;2 subs
1176 db no_input ;an000;no keyboard input
1177 dw 00 ;an000;no keyboard buffer
1178
1179
1180
1181single_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
1186 dw 02 ;an000;2 subs
1187 db no_input ;an000;no keyboard input
1188 dw 00 ;an000;no keyboard buffer
1189
1190
1191
1192register_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
1197 dw 02 ;an000;2 subs
1198 db no_input ;an000;no keyboard input
1199 dw 00 ;an000;no keyboard buffer
1200
1201
1202errmes_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
1207 dw 01 ;an000;1 sub
1208 db no_input ;an000;no keyboard input
1209 dw 00 ;an000;no keyboard buffer
1210
1211
1212wrtmes_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
1217 dw 01 ;an000;1 sub
1218 db no_input ;an000;no keyboard input
1219 dw 00 ;an000;no keyboard buffer
1220
1221
1222loc_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
1227 dw 02 ;an000;2 subs
1228 db no_input ;an000;no keyboard input
1229 dw 00 ;an000;no keyboard buffer
1230
1231
1232little_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
1237 dw 01 ;an000;1 sub
1238 db no_input ;an000;no keyboard input
1239 dw 00 ;an000;no keyboard buffer
1240
1241
1242big_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
1247 dw 01 ;an000;1 sub
1248 db no_input ;an000;no keyboard input
1249 dw 00 ;an000;no keyboard buffer
1250
1251
1252comp_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
1257 dw 06 ;an000;6 subs
1258 db no_input ;an000;no keyboard input
1259 dw 00 ;an000;no keyboard buffer
1260
1261
1262arg_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
1267 dw 01 ;an000;1 sub
1268 db no_input ;an000;no keyboard input
1269 dw 00 ;an000;no keyboard buffer
1270
1271
1272one_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
1277 dw 01 ;an000;1 sub
1278 db no_input ;an000;no keyboard input
1279 dw 00 ;an000;no keyboard buffer
1280
1281xm_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
1287 dw 02 ;an000;1 sub
1288 db no_input ;an000;no keyboard input
1289 dw 00 ;an000;no keyboard buffer
1290
1291xm_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
1297 dw 02 ;an000;2 subs
1298 db no_input ;an000;no keyboard input
1299 dw 00 ;an000;no keyboard buffer
1300
1301xm_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
1306 dw 01 ;an000;1 sub
1307 db no_input ;an000;no keyboard input
1308 dw 00 ;an000;no keyboard buffer
1309
1310xm_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
1315 dw 02 ;an000;2 subs
1316 db no_input ;an000;no keyboard input
1317 dw 00 ;an000;no keyboard buffer
1318
1319xm_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
1324 dw 00 ;an000;1 sub
1325 db no_input ;an000;no keyboard input
1326 dw 00 ;an000;no keyboard buffer
1327
1328xm_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
1333 dw 00 ;an000;1 sub
1334 db no_input ;an000;no keyboard input
1335 dw 00 ;an000;no keyboard buffer
1336
1337xm_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
1342 dw 00 ;an000;1 sub
1343 db no_input ;an000;no keyboard input
1344 dw 00 ;an000;no keyboard buffer
1345
1346xm_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
1351 dw 00 ;an000;1 sub
1352 db no_input ;an000;no keyboard input
1353 dw 00 ;an000;no keyboard buffer
1354
1355xm_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
1360 dw 00 ;an000;1 sub
1361 db no_input ;an000;no keyboard input
1362 dw 00 ;an000;no keyboard buffer
1363
1364xm_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
1369 dw 00 ;an000;1 sub
1370 db no_input ;an000;no keyboard input
1371 dw 00 ;an000;no keyboard buffer
1372
1373xm_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
1378 dw 00 ;an000;1 sub
1379 db no_input ;an000;no keyboard input
1380 dw 00 ;an000;no keyboard buffer
1381
1382xm_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
1387 dw 00 ;an000;1 sub
1388 db no_input ;an000;no keyboard input
1389 dw 00 ;an000;no keyboard buffer
1390
1391xm_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
1396 dw 00 ;an000;1 sub
1397 db no_input ;an000;no keyboard input
1398 dw 00 ;an000;no keyboard buffer
1399
1400xm_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
1405 dw 00 ;an000;1 sub
1406 db no_input ;an000;no keyboard input
1407 dw 00 ;an000;no keyboard buffer
1408
1409xm_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
1414 dw 00 ;an000;1 sub
1415 db no_input ;an000;no keyboard input
1416 dw 00 ;an000;no keyboard buffer
1417
1418xm_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
1423 dw 00 ;an000;1 sub
1424 db no_input ;an000;no keyboard input
1425 dw 00 ;an000;no keyboard buffer
1426
1427xm_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
1432 dw 00 ;an000;1 sub
1433 db no_input ;an000;no keyboard input
1434 dw 00 ;an000;no keyboard buffer
1435
1436xm_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
1441 dw 00 ;an000;1 sub
1442 db no_input ;an000;no keyboard input
1443 dw 00 ;an000;no keyboard buffer
1444
1445xm_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
1450 dw 02 ;an000;2 subs
1451 db no_input ;an000;no keyboard input
1452 dw 00 ;an000;no keyboard buffer
1453
1454xm_page_seg_ptr label word ;an000;"Physical page %1 = Frame
1455 ; segment %2"
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
1460 dw 02 ;an000;2 subs
1461 db no_input ;an000;no keyboard input
1462 dw 00 ;an000;no keyboard buffer
1463
1464xm_deall_ptr label word ;an000;"Handle %1 deallocated"
1465
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
1470 dw 01 ;an000;1 subs
1471 db no_input ;an000;no keyboard input
1472 dw 00 ;an000;no keyboard buffer
1473
1474xm_errff_ptr label word ;an000;"EMS not installed"
1475
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
1480 dw 00 ;an000;0 subs
1481 db no_input ;an000;no keyboard input
1482 dw 00 ;an000;no keyboard buffer
1483
1484arg_buf db 80 dup (?) ;an000;argument buffer
1485one_char_buf db ? ;an000;character buffer
1486
1487opbuf db 51h dup (?)
1488
1489hex_arg1 dw ?
1490hex_arg2 dw ?
1491
1492add_arg dw ?
1493sub_arg dw ?
1494
1495single_reg_arg dw ?
1496
1497reg_name dw ?
1498reg_contents dw ?
1499
1500err_type db 3 dup(0) ;ac000;changed to hold bf,bp,etc.
1501
1502wrt_arg1 dw ?
1503wrt_arg2 dw ?
1504
1505loc_add dw ?
1506
1507little_contents dw ?
1508big_contents dw ?
1509
1510comp_arg1 dw ?
1511comp_arg2 dw ?
1512comp_arg3 dw ?
1513comp_arg4 dw ?
1514comp_arg5 dw ?
1515comp_arg6 dw ?
1516
1517mestyp dw ?
1518iotyp dw ?
1519drive db ?
1520
1521
1522DATA ENDS
1523 END
1524 \ No newline at end of file